trosnoth issueshttps://foss.heptapod.net/games/trosnoth/-/issues2021-04-21T12:38:39Zhttps://foss.heptapod.net/games/trosnoth/-/issues/18On server, allow setting up fixtures in advance2021-04-21T12:38:39ZJoshua D. BartlettOn server, allow setting up fixtures in advanceFor tournament support.
- Depends on #17 being completed
- Admins can set up a fixture on the server, with a game config and specific players.
- When the fixture is set to "visible", players will be able to join the game, but only if th...For tournament support.
- Depends on #17 being completed
- Admins can set up a fixture on the server, with a game config and specific players.
- When the fixture is set to "visible", players will be able to join the game, but only if they're listed as allowed players.
- A fixture can be associated with a tournament, in which case the played match will also be associated with that tournament.
- (Maybe) allow teams to be set up within a tournament, and allow adding the team to the fixture so that you don't have to manually add every player.https://foss.heptapod.net/games/trosnoth/-/issues/17On server, replace arenas with saved game configs2021-04-21T12:37:05ZJoshua D. BartlettOn server, replace arenas with saved game configs- Each saved game config stores duration, map, game type etc.
- Server has a flag about whether to enable a lobby where people can suggest game types.
- Have a server setting listing available game ports to use. Each game/lobby just uses...- Each saved game config stores duration, map, game type etc.
- Server has a flag about whether to enable a lobby where people can suggest game types.
- Have a server setting listing available game ports to use. Each game/lobby just uses the next available port
- Games can be started either from the lobby, or by admins from the server web interface.https://foss.heptapod.net/games/trosnoth/-/issues/45Provide a simpler player control mode for more casual players2021-09-06T06:26:02ZJoshua D. BartlettProvide a simpler player control mode for more casual playersWe should provide a setting that lets you move around the map using something like right click to move and left-click to shoot with no keyboard interaction required. The motion can use the bot navigation routines.
This will allow inexpe...We should provide a setting that lets you move around the map using something like right click to move and left-click to shoot with no keyboard interaction required. The motion can use the bot navigation routines.
This will allow inexperienced players or players with a disability to join in the game without having to practise the technical fingerwork. Advanced players will probably want the regular controls as it allows them to actually control where the player goes.https://foss.heptapod.net/games/trosnoth/-/issues/42Server option for creating upcoming events, with the ability for people to su...2021-09-02T12:24:02ZJoshua D. BartlettServer option for creating upcoming events, with the ability for people to subscribe to event reminder emails from the server.### Quick summary
Send automated email reminders for upcoming tournaments.
### Why it would be valuable
More people would remember scheduled tournaments.
This would also keep Trosnoth tournaments / league events top of peoples minds ...### Quick summary
Send automated email reminders for upcoming tournaments.
### Why it would be valuable
More people would remember scheduled tournaments.
This would also keep Trosnoth tournaments / league events top of peoples minds without an organiser having to constantly send reminders.
### Proposal
Trosnoth servers would have a place where people could subscribe to tournament reminders.
Server admins could add tournaments to a schedule. Some interval before each tournament, a reminder email would go out including a list of upcoming tournaments.https://foss.heptapod.net/games/trosnoth/-/issues/15Server should have UI option to save logs to file, and that file should be vi...2022-06-26T11:24:54ZJoshua D. BartlettServer should have UI option to save logs to file, and that file should be viewable through the web interface by adminshttps://foss.heptapod.net/games/trosnoth/-/issues/91Share money action2022-08-11T04:52:00ZPeter HedgesShare money action### Quick summary
Add an action that will throw some arbitrary amount of your own money on the ground in coin form.
### Why it would be valuable
It might be useful to share money between team members to buy an upgrade, like a grenade,...### Quick summary
Add an action that will throw some arbitrary amount of your own money on the ground in coin form.
### Why it would be valuable
It might be useful to share money between team members to buy an upgrade, like a grenade, if nobody can outright afford one. It might also distract players in a shootout. It might let team members stay below the coin drop threshold to avoid the opposing players getting their money.
### Proposal
A new action would be created that would be added to the keybind settings for easy use. Maybe it would be a selectable upgrade as well or instead. This would subtract a certain fixed, arbitrary amount of money from the player. That same amount of money would then be spawned into the world as a collectable coin(s), like the kind players drop when they die. This would bounce around and settle (like usual coins) and could be picked up by any player on any team, be it the original player who changed their mind, a team member or an opposing player if they are lucky enough.https://foss.heptapod.net/games/trosnoth/-/issues/35Should be able to stand on the back of couches in the habitat room2021-07-29T04:23:56ZJoshua D. BartlettShould be able to stand on the back of couches in the habitat roomBut maybe don't need to be able to stand on the cushions?But maybe don't need to be able to stand on the cushions?Larger room editionhttps://foss.heptapod.net/games/trosnoth/-/issues/58Starting a 'solo rules' game from the server web interface triggered a Humans...2022-07-12T04:56:23ZJoshua D. BartlettStarting a 'solo rules' game from the server web interface triggered a Humans vs Machines gameNext releasehttps://foss.heptapod.net/games/trosnoth/-/issues/93Starting games from admin console always starts Humans vs. Machine games2023-01-17T04:02:14ZJoshua D. BartlettStarting games from admin console always starts Humans vs. Machine gamesThere is a setting for human vs. machines, but even when you don't select it, it always starts HvM games.There is a setting for human vs. machines, but even when you don't select it, it always starts HvM games.https://foss.heptapod.net/games/trosnoth/-/issues/55Team Boost - Disarmament2021-10-22T00:56:31ZPeter HedgesTeam Boost - Disarmament### Quick summary
A new, expensive team upgrade that will explode every enemy mine and remove every active ninja upgrade from enemy players.
### Why it would be valuable
If enemies keep purchasing mines, it can be very difficult to mo...### Quick summary
A new, expensive team upgrade that will explode every enemy mine and remove every active ninja upgrade from enemy players.
### Why it would be valuable
If enemies keep purchasing mines, it can be very difficult to move freely and it can take a very long time to disarm them all with the laser upgrade, requiring you to stand still for too long resulting is frustrating deaths. If an enemy kills you while you are doing this, it may also let them tag another zone, letting them afford yet another mine. A mass disarming could help clear a cluttered playing field.
### Proposal
When this is added, the price of the team upgrade threat vision should be reduced, as it is only temporary, and the price for this should be higher than threat vision is now.https://foss.heptapod.net/games/trosnoth/-/issues/56Team Boost - Valuable Kills2021-10-22T03:55:46ZPeter HedgesTeam Boost - Valuable Kills### Quick summary
A new, expensive team upgrade that causes enemy players to drop more money on death for a short period.
### Why it would be valuable
It could be interesting to allow your team to do a big push, go for kills and drain...### Quick summary
A new, expensive team upgrade that causes enemy players to drop more money on death for a short period.
### Why it would be valuable
It could be interesting to allow your team to do a big push, go for kills and drain the enemy players of their funds, while also potentially allowing your team to earn the cost of the upgrade back. It would be a gamble.
### Proposal
Currently players drop ~35% of the money they have, over $250. Meaning players have a safety threshold of $250, never being forced to drop anything under that. This could reduce or remove this threshold. It could also increase the percentage of money dropped. It could even be fun to have additional coins dropped that did not come from the killed player's money, just bonus coins that have come from nowhere.https://foss.heptapod.net/games/trosnoth/-/issues/61Trosball goal score should not reset weapons2021-10-23T11:15:12ZJoshua D. BartlettTrosball goal score should not reset weaponsProposed by players during play-testing.Proposed by players during play-testing.https://foss.heptapod.net/games/trosnoth/-/issues/90Trosnoth freezes when hosting a new game when running from code2022-08-10T12:39:58ZPeter HedgesTrosnoth freezes when hosting a new game when running from code### Summary
A quick summary of the bug.
### Steps to reproduce
I am on windows and running the game from source, using pyCharm. I click the play button in pyCharm. I then click the "play" word button on the many menu of Trosnoth. Then...### Summary
A quick summary of the bug.
### Steps to reproduce
I am on windows and running the game from source, using pyCharm. I click the play button in pyCharm. I then click the "play" word button on the many menu of Trosnoth. Then host game. Then the "go!" word button. This bug doesn't always happen, but it does happen every couple of times I try and launc the game from source.
### What is the current *bug* behavior?
The game will then either get stuck on a blank white screen with the ui elements and the word "loading" in the middle. Or it will show the game world, but you cannot move around. I also sometimes the trosnoth server list entries twice in the other window. I do not know if this is related.
### What is the expected *correct* behavior?
That the game starts correctly, your person appears and you can move around and stuff.
### Relevant logs and/or screenshots
[Screenshots](https://postimg.cc/gallery/LSXTVTC)
This is my logs when the bug occurs.
```
"C:\Users\Peter\Documents\Python\Trosnoth 2022\venv\Scripts\python.exe" -Wdefault "C:/Users/Peter/Documents/Python/Trosnoth 2022/run-trosnoth.py"
:0: UserWarning: You do not have a working installation of the service_identity module: 'No module named 'service_identity''. Please install it from <https://pypi.python.org/pypi/service_identity> and make sure all of its dependencies are satisfied. Without the service_identity module, Twisted can perform only rudimentary TLS client hostname verification. Many valid certificate/hostname mappings may be rejected.
pygame 2.1.2 (SDL 2.0.18, Python 3.8.5)
Hello from the pygame community. https://www.pygame.org/contribute.html
2022-08-02 12:50:06,599 Failed to check trosnoth.org for stable version: [<twisted.python.failure.Failure OpenSSL.SSL.Error: [('STORE routines', '', 'unregistered scheme'), ('system library', '', ''), ('STORE routines', '', 'unregistered scheme'), ('STORE routines', '', 'unsupported'), ('STORE routines', '', 'unregistered scheme'), ('system library', '', ''), ('STORE routines', '', 'unregistered scheme'), ('STORE routines', '', 'unsupported'), ('STORE routines', '', 'unregistered scheme'), ('system library', '', ''), ('STORE routines', '', 'unregistered scheme'), ('STORE routines', '', 'unsupported'), ('SSL routines', '', 'certificate verify failed')]>]
--- deferred stack ---
Traceback (most recent call last):
Failure: twisted.web._newclient.ResponseNeverReceived: [<twisted.python.failure.Failure OpenSSL.SSL.Error: [('STORE routines', '', 'unregistered scheme'), ('system library', '', ''), ('STORE routines', '', 'unregistered scheme'), ('STORE routines', '', 'unsupported'), ('STORE routines', '', 'unregistered scheme'), ('system library', '', ''), ('STORE routines', '', 'unregistered scheme'), ('STORE routines', '', 'unsupported'), ('STORE routines', '', 'unregistered scheme'), ('system library', '', ''), ('STORE routines', '', 'unregistered scheme'), ('STORE routines', '', 'unsupported'), ('SSL routines', '', 'certificate verify failed')]>]
2022-08-02 12:50:10,259 Exception in callback <TaskStepMethWrapper object at 0x00000282CC530FA0>()
handle: <Handle <TaskStepMethWrapper object at 0x00000282CC530FA0>() created at C:\Users\Peter\Documents\Python\Trosnoth 2022\venv\lib\site-packages\asyncqt\__init__.py:364>
source_traceback: [<FrameSummary file C:\Program Files\Python\Python38\lib\contextlib.py, line 113 in __enter__>, <FrameSummary file C:\Users\Peter\Documents\Python\Trosnoth 2022\trosnoth\network\server.py, line 200 in run>, <FrameSummary file C:\Users\Peter\Documents\Python\Trosnoth 2022\trosnoth\network\server.py, line 214 in __init__>, <FrameSummary file C:\Users\Peter\Documents\Python\Trosnoth 2022\trosnoth\game.py, line 155 in __init__>, <FrameSummary file C:\Users\Peter\Documents\Python\Trosnoth 2022\trosnoth\model\universe.py, line 1589 in __init__>, <FrameSummary file C:\Users\Peter\Documents\Python\Trosnoth 2022\trosnoth\model\universe.py, line 1441 in start>, <FrameSummary file C:\Program Files\Python\Python38\lib\asyncio\tasks.py, line 661 in ensure_future>, <FrameSummary file C:\Program Files\Python\Python38\lib\asyncio\base_events.py, line 431 in create_task>, <FrameSummary file C:\Users\Peter\Documents\Python\Trosnoth 2022\venv\lib\site-packages\asyncqt\__init__.py, line 372 in call_soon>, <FrameSummary file C:\Users\Peter\Documents\Python\Trosnoth 2022\venv\lib\site-packages\asyncqt\__init__.py, line 364 in call_later>]
Traceback (most recent call last):
File "C:\Program Files\Python\Python38\lib\asyncio\events.py", line 81, in _run
self._context.run(self._callback, *self._args)
RuntimeError: Cannot enter into task <Task pending name='Task-25' coro=<ScenarioManager.run_level() running at C:\Users\Peter\Documents\Python\Trosnoth 2022\trosnoth\model\universe.py:1458> created at C:\Users\Peter\Documents\Python\Trosnoth 2022\trosnoth\model\universe.py:1441> while another task <Task pending name='Task-24' coro=<HostGamePage.ok_clicked() running at C:\Users\Peter\Documents\Python\Trosnoth 2022\trosnoth\welcome\play.py:1137> cb=[AsyncCallbackManager.task_done()] created at C:\Program Files\Python\Python38\lib\asyncio\tasks.py:382> is being executed.
2022-08-02 12:50:12,092 Max server tick jitter: 872 ms
```
This is my logs for when a game runs normally for comparison.
```
"C:\Users\Peter\Documents\Python\Trosnoth 2022\venv\Scripts\python.exe" -Wdefault "C:/Users/Peter/Documents/Python/Trosnoth 2022/run-trosnoth.py"
:0: UserWarning: You do not have a working installation of the service_identity module: 'No module named 'service_identity''. Please install it from <https://pypi.python.org/pypi/service_identity> and make sure all of its dependencies are satisfied. Without the service_identity module, Twisted can perform only rudimentary TLS client hostname verification. Many valid certificate/hostname mappings may be rejected.
pygame 2.1.2 (SDL 2.0.18, Python 3.8.5)
Hello from the pygame community. https://www.pygame.org/contribute.html
2022-08-02 12:57:35,590 Failed to check trosnoth.org for stable version: [<twisted.python.failure.Failure OpenSSL.SSL.Error: [('STORE routines', '', 'unregistered scheme'), ('system library', '', ''), ('STORE routines', '', 'unregistered scheme'), ('STORE routines', '', 'unsupported'), ('STORE routines', '', 'unregistered scheme'), ('system library', '', ''), ('STORE routines', '', 'unregistered scheme'), ('STORE routines', '', 'unsupported'), ('STORE routines', '', 'unregistered scheme'), ('system library', '', ''), ('STORE routines', '', 'unregistered scheme'), ('STORE routines', '', 'unsupported'), ('SSL routines', '', 'certificate verify failed')]>]
--- deferred stack ---
Traceback (most recent call last):
Failure: twisted.web._newclient.ResponseNeverReceived: [<twisted.python.failure.Failure OpenSSL.SSL.Error: [('STORE routines', '', 'unregistered scheme'), ('system library', '', ''), ('STORE routines', '', 'unregistered scheme'), ('STORE routines', '', 'unsupported'), ('STORE routines', '', 'unregistered scheme'), ('system library', '', ''), ('STORE routines', '', 'unregistered scheme'), ('STORE routines', '', 'unsupported'), ('STORE routines', '', 'unregistered scheme'), ('system library', '', ''), ('STORE routines', '', 'unregistered scheme'), ('STORE routines', '', 'unsupported'), ('SSL routines', '', 'certificate verify failed')]>]
2022-08-02 12:57:44,797 Exception in callback <TaskWakeupMethWrapper object at 0x00000197EEECED90>(<_GatheringFu...\tasks.py:698>)
handle: <Handle <TaskWakeupMethWrapper object at 0x00000197EEECED90>(<_GatheringFu...\tasks.py:698>) created at C:\Users\Peter\Documents\Python\Trosnoth 2022\venv\lib\site-packages\asyncqt\__init__.py:364>
source_traceback: [<FrameSummary file C:\Users\Peter\Documents\Python\Trosnoth 2022\venv\lib\site-packages\twisted\internet\asyncioreactor.py, line 255 in run>, <FrameSummary file C:\Users\Peter\Documents\Python\Trosnoth 2022\venv\lib\site-packages\asyncqt\__init__.py, line 286 in run_forever>, <FrameSummary file C:\Users\Peter\Documents\Python\Trosnoth 2022\venv\lib\site-packages\asyncqt\__init__.py, line 226 in timerEvent>, <FrameSummary file C:\Program Files\Python\Python38\lib\asyncio\events.py, line 81 in _run>, <FrameSummary file C:\Users\Peter\Documents\Python\Trosnoth 2022\trosnoth\gui\app.py, line 460 in pygame_event_loop>, <FrameSummary file C:\Users\Peter\Documents\Python\Trosnoth 2022\venv\lib\site-packages\asyncqt\__init__.py, line 226 in timerEvent>, <FrameSummary file C:\Program Files\Python\Python38\lib\asyncio\events.py, line 81 in _run>, <FrameSummary file C:\Program Files\Python\Python38\lib\asyncio\tasks.py, line 805 in _done_callback>, <FrameSummary file C:\Users\Peter\Documents\Python\Trosnoth 2022\venv\lib\site-packages\asyncqt\__init__.py, line 372 in call_soon>, <FrameSummary file C:\Users\Peter\Documents\Python\Trosnoth 2022\venv\lib\site-packages\asyncqt\__init__.py, line 364 in call_later>]
Traceback (most recent call last):
File "C:\Program Files\Python\Python38\lib\asyncio\events.py", line 81, in _run
self._context.run(self._callback, *self._args)
RuntimeError: Cannot enter into task <Task pending name='Task-5' coro=<single_entry_task.<locals>.launch_method() running at C:\Users\Peter\Documents\Python\Trosnoth 2022\trosnoth\utils\aio.py:158> wait_for=<_GatheringFuture finished result=[None, None, None, None, None, None, ...] created at C:\Program Files\Python\Python38\lib\asyncio\tasks.py:698> cb=[<TaskWakeupMethWrapper object at 0x00000197EEC94700>()] created at C:\Program Files\Python\Python38\lib\asyncio\tasks.py:382> while another task <Task pending name='Task-27' coro=<PygameRunner.pygame_event_loop() running at C:\Users\Peter\Documents\Python\Trosnoth 2022\trosnoth\gui\app.py:460> cb=[_wait.<locals>._on_completion() at C:\Program Files\Python\Python38\lib\asyncio\tasks.py:507] created at C:\Program Files\Python\Python38\lib\asyncio\tasks.py:382> is being executed.
2022-08-02 12:57:45,022 Max server tick jitter: 982 ms
```
### Possible fixes
I suspect that the reason this happens infrequently is that it is a race condition.https://foss.heptapod.net/games/trosnoth/-/issues/86Upgrade: Imposter2022-07-16T02:35:05ZPeter HedgesUpgrade: Imposter### Quick summary
An upgrade that would make a player visually appear as though they were apart of the opposing team.
### Why it would be valuable
It would be an interesting tacticle choice, to infiltrate an enemy zone without raising...### Quick summary
An upgrade that would make a player visually appear as though they were apart of the opposing team.
### Why it would be valuable
It would be an interesting tacticle choice, to infiltrate an enemy zone without raising suspicion because you look like the enemy team.
### Proposal
When a player buys this upgrade they would have the colour of their head changed to that of the opposing team. The face colour should probably remain as the orignal colour when viewed by team members, with some kind of indicator sprite showing that they are currently being an imposter. The hair style and name could also be changed to a randomly selected member of the opposing team to be extra convincing. Bullets should probably remain the orignal colour as well as kill and not kill the right teams. Otherwise it would just be super confusing. Zone crystals should probably react to you according to your oringal team colour as well. It's just a warpaint visual change, not effecting all of the other systems of the game. The upgrade would be timed. You would appear as your original colour on the minimap.https://foss.heptapod.net/games/trosnoth/-/issues/83Upgrade: Portal gun2022-07-16T02:18:14ZPeter HedgesUpgrade: Portal gun### Quick summary
A new upgrade that would have two shots, which would create a pair of portals which players could move between.
### Why it would be valuable
This could allow for extra maneuverability and tactics when navigating the ...### Quick summary
A new upgrade that would have two shots, which would create a pair of portals which players could move between.
### Why it would be valuable
This could allow for extra maneuverability and tactics when navigating the map. If the portals are bidirectional and/or are allowed to be used by both teams, then the benefit goes both ways. Plus, they could be camped to shoot anyone who tries to come through.
### Proposal
The upgrade should have two shots. Each creates a coloured visual artifact that will persist on the first surface it hits. When a player comes into contact with one of these it will transport the player to the location of the other one, preserving the momentum perfectly, but adjusting the angle of the movement appropriately. This is because if two portals are placed on level ground, jumping down into one should launch your up out of the other.
These portals could be monodirectional (only one in and only one out) with indicator arrows. They could be differently coloured or because there could be multiple portals used on a single team at once, they could just be a single colour for a set. There may be some kind of faint line giving an indication of the direction to the portal it is linked too. They could allow only a single team to pass through or all teams. They could allow bullets and/or trosballs to pass through as well. They could dissapate based on a timer or a number of uses.
Mental image:
Think of it like, if you rotated the image of the game so that the portal surface was level ground (x) and that perpendicular to that surface is perfectly vertical (y). Do this in your head for both portals. The x momentum should be preserved but the y momentum should be reversed when passing through the portals. This would cause thehttps://foss.heptapod.net/games/trosnoth/-/issues/85Upgrade: Slow field2022-07-16T02:28:59ZPeter HedgesUpgrade: Slow field### Quick summary
An upgrade that will create a visible area around the player which slows enemies that pass through it.
### Why it would be valuable
Instead of being just a plain offensive or defensive upgrade, this potentially has a...### Quick summary
An upgrade that will create a visible area around the player which slows enemies that pass through it.
### Why it would be valuable
Instead of being just a plain offensive or defensive upgrade, this potentially has a lot of tacticle applications that will probably only be discovered once it has been made.
### Proposal
When a player buys this upgrade a coloured circle of some arbitrary size would appear, centered on the player. This circle (field) would move with the player. The circle would be coloured the players team colour so that people could easily be aware of its range. On the screen of the player that purchased this upgrade the edges of the circle could be blurred to a greater radius that is determined by the smoothing time of their client. This would make it more clear that it would work inconsistently in that area. Enemy players in this zone could have their momentum halved for the duration that they are in it. Bullets and other projectiles could also be effected. The upgrade should probably only last for a fixed amount of time.https://foss.heptapod.net/games/trosnoth/-/issues/84Upgrade: Tiny person2022-07-16T02:22:59ZPeter HedgesUpgrade: Tiny person### Quick summary
An upgrade that will make your player small for a short period of time.
### Why it would be valuable
It would make it harder for the small player to be hit by bullets, giving a different kind of advantage in dog figh...### Quick summary
An upgrade that will make your player small for a short period of time.
### Why it would be valuable
It would make it harder for the small player to be hit by bullets, giving a different kind of advantage in dog fights. Anyone could choose to buy it so it should be about as balanced as any other offensive or defensive timed upgrade.
### Proposal
When the player buys the upgrade they shrink to some arbitrary size (like 50%). This would make them harder to see and harder to hit, they would have an easier time dodging. It would be an alternative defensive upgrade to, say, the shield upgrade.https://foss.heptapod.net/games/trosnoth/-/issues/49Weapon ammo display gauges should show the current hotkey for that weapon2022-02-10T05:44:19ZJoshua D. BartlettWeapon ammo display gauges should show the current hotkey for that weapon