Commit Graph

907 Commits

Author SHA1 Message Date
1brucben 5d9f10e00e eliminate worker growth 2025-06-02 18:04:24 +02:00
1brucben 3b7eb2057c slight speed boost 2025-06-02 17:27:05 +02:00
1brucben a73ba83191 reduce port spawns 2025-06-02 17:23:19 +02:00
1brucben 23cdd00537 fix NA in ratio 2025-06-02 02:38:24 +02:00
1brucben e5ddac26f3 fix exponent 2025-06-01 23:24:01 +02:00
1brucben c1de357366 raise traitor duration 2025-06-01 22:24:35 +02:00
1brucben e66475d872 raise traitor duration 2025-06-01 22:23:34 +02:00
1brucben 5590a4e41e slow fallout attacks 2025-06-01 22:06:29 +02:00
1brucben 421a940252 nerf bot speed more 2025-06-01 21:56:59 +02:00
1brucben bbc774753e nerf bots. revert pop formula 2025-06-01 21:55:26 +02:00
1brucben 2e0d8242e2 Balance Update (#996)
## Description:
This update does the following:

slight nerf to gold production by large players
Speed boost for very large attacks
5% speed buff for mountains
Defense post boost
small trade ship spawn rate increase
attack losses up 20% for all attacks
small speed effect boost for defense posts
20% population growth decrease for large players
nerfed worker growth boost slightly
nerfed troop/worker conversion rate
## Please complete the following:

- [x] I have added screenshots for all UI updates
- [x] I process any text displayed to the user through translateText()
and I've added it to the en.json file
- [x] I have added relevant tests to the test directory
- [x] I confirm I have thoroughly tested these changes and take full
responsibility for any bugs introduced
- [x] I understand that submitting code with bugs that could have been
caught through manual testing blocks releases and new features for all
contributors

## Please put your Discord username so you can be contacted if a bug or
regression is found:

1brucben
2025-06-01 09:25:03 -07:00
evanpelle dfea816bff make bots weaker (#985)
## Description:
I believe many of the complains of the game being too slow in the
beginning is due to bots being stronger in v23 than v22. This PR weakens
bots significants and it feels much closer to v22.

## Please complete the following:

- [x] I have added screenshots for all UI updates
- [x] I process any text displayed to the user through translateText()
and I've added it to the en.json file
- [x] I have added relevant tests to the test directory
- [x] I confirm I have thoroughly tested these changes and take full
responsibility for any bugs introduced
- [x] I understand that submitting code with bugs that could have been
caught through manual testing blocks releases and new features for all
contributors

## Please put your Discord username so you can be contacted if a bug or
regression is found:

<DISCORD USERNAME>
2025-05-31 18:11:02 -07:00
1brucben 05a2338fea Another Balance Change (#987)
## Description:
Reduces attack speed for large attacks. A further 10% increase in
attacker losses. minor 5% decrease in pop growth. Attacks against Terra
Nullius fade away as in v22.

This addresses the community poll finding that many players consider
current troop movements to be too fast. The latter two changes help nerf
attacking and slowdown snowballing.
## Please complete the following:

- [x] I have added screenshots for all UI updates
- [x] I process any text displayed to the user through translateText()
and I've added it to the en.json file
- [x] I have added relevant tests to the test directory
- [x] I confirm I have thoroughly tested these changes and take full
responsibility for any bugs introduced
- [x] I understand that submitting code with bugs that could have been
caught through manual testing blocks releases and new features for all
contributors

## Please put your Discord username so you can be contacted if a bug or
regression is found:

1brucben
2025-05-31 18:06:27 -07:00
Duwibi 03d11eb941 Cap lobby sizes at 150 (#984)
## Description:
Currenly, it's possible for the World map to reach 225 players. This PR
caps it at just 150.

## Please complete the following:

- [x] I have added screenshots for all UI updates
- [x] I process any text displayed to the user through translateText()
and I've added it to the en.json file
- [x] I have added relevant tests to the test directory
- [x] I confirm I have thoroughly tested these changes and take full
responsibility for any bugs introduced
- [x] I understand that submitting code with bugs that could have been
caught through manual testing blocks releases and new features for all
contributors

## Please put your Discord username so you can be contacted if a bug or
regression is found:

<DISCORD USERNAME>
Nikola123
2025-05-31 18:44:38 -04:00
1brucben 9c4317a444 Prevent Attack Spam (#977)
## Description:
This PR assigns a small cost (1% of population) to creating each new
attack. This nerfs the strategy of spamming 1% size attacks against an
enemy to max pop growth and encourages more normal >10% attack sizes.
## Please complete the following:

- [x] I have added screenshots for all UI updates
- [x] I process any text displayed to the user through translateText()
and I've added it to the en.json file
- [x] I have added relevant tests to the test directory
- [x] I confirm I have thoroughly tested these changes and take full
responsibility for any bugs introduced
- [x] I understand that submitting code with bugs that could have been
caught through manual testing blocks releases and new features for all
contributors

## Please put your Discord username so you can be contacted if a bug or
regression is found:

1brucben
2025-05-31 14:53:45 -07:00
1brucben 46ac079491 Balance Adjustment for Attack Mechanism (#973)
## Description:
Original playtests mainly focused on balancing speed. This PR adjusts
attack losses further upwards for all terrain types by around 10%. Pop
growth is decreased by around 10% to slightly slow game tempo. Worker
growth boost is also weakened a bit to nerf super low troop meta
beginning. Slight 10% speed nerf at higher attack sizes. Port spawn rate
boosted.
## Please complete the following:

- [x] I have added screenshots for all UI updates
- [x] I process any text displayed to the user through translateText()
and I've added it to the en.json file
- [x] I have added relevant tests to the test directory
- [x] I confirm I have thoroughly tested these changes and take full
responsibility for any bugs introduced
- [x] I understand that submitting code with bugs that could have been
caught through manual testing blocks releases and new features for all
contributors

## Please put your Discord username so you can be contacted if a bug or
regression is found:

1brucben
2025-05-31 11:11:43 -07:00
Scott Anderson 15cd1e9ae9 Fix discord user schema (#969)
## Description:

Update the discord user zod schema to address login failures for users
without avatars.

## Please complete the following:

- [x] I have added screenshots for all UI updates
- [x] I process any text displayed to the user through translateText()
and I've added it to the en.json file
- [x] I have added relevant tests to the test directory
- [x] I confirm I have thoroughly tested these changes and take full
responsibility for any bugs introduced
- [x] I understand that submitting code with bugs that could have been
caught through manual testing blocks releases and new features for all
contributors

Co-authored-by: Scott Anderson <662325+scottanderson@users.noreply.github.com>
2025-05-31 11:09:17 -07:00
1brucben 9ad2cfaffd change defaults to reflect meta (#942)
## Description:
Changes default target troop ratio and attack size to reflect better
early game strategies in v23
## Please complete the following:

- [x] I have added screenshots for all UI updates
- [x] I process any text displayed to the user through translateText()
and I've added it to the en.json file
- [x] I have added relevant tests to the test directory
- [x] I confirm I have thoroughly tested these changes and take full
responsibility for any bugs introduced
- [x] I understand that submitting code with bugs that could have been
caught through manual testing blocks releases and new features for all
contributors

## Please put your Discord username so you can be contacted if a bug or
regression is found:

1brucben
2025-05-30 13:22:50 -07:00
Scott Anderson 2a3240da1c Server role lookup (#954)
## Description:

- Validate that user tokens are accepted by the API server, in case of
token revoked / remote logout.
- Lookup user roles by their token.
- Sets the groundwork for validating custom flag codes, patterns, etc.

## Please complete the following:

- [x] I have added screenshots for all UI updates
- [x] I process any text displayed to the user through translateText()
and I've added it to the en.json file
- [x] I have added relevant tests to the test directory
- [x] I confirm I have thoroughly tested these changes and take full
responsibility for any bugs introduced
- [x] I understand that submitting code with bugs that could have been
caught through manual testing blocks releases and new features for all
contributors

Co-authored-by: Scott Anderson <662325+scottanderson@users.noreply.github.com>
2025-05-30 09:10:00 -07:00
Scott Anderson 32f5723c72 Simplify bots retaliation logic (#946)
## Description:

Simplify bots retaliation logic. Do not counter-attack before reaching
the trigger ratio.

## Please complete the following:

- [x] I have added screenshots for all UI updates
- [x] I process any text displayed to the user through translateText()
and I've added it to the en.json file
- [x] I have added relevant tests to the test directory
- [x] I confirm I have thoroughly tested these changes and take full
responsibility for any bugs introduced
- [x] I understand that submitting code with bugs that could have been
caught through manual testing blocks releases and new features for all
contributors

Co-authored-by: Scott Anderson <662325+scottanderson@users.noreply.github.com>
2025-05-29 17:53:18 -07:00
Scott Anderson a1a4b22351 Set singleplayer gitCommit in the client (#945)
## Description:

Set singleplayer gitCommit in the client

## Please complete the following:

- [x] I have added screenshots for all UI updates
- [x] I process any text displayed to the user through translateText()
and I've added it to the en.json file
- [x] I have added relevant tests to the test directory
- [x] I confirm I have thoroughly tested these changes and take full
responsibility for any bugs introduced
- [x] I understand that submitting code with bugs that could have been
caught through manual testing blocks releases and new features for all
contributors

---------

Co-authored-by: Scott Anderson <662325+scottanderson@users.noreply.github.com>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
2025-05-29 16:47:28 -07:00
falc 9471fdaf1f improved perfomance of PseudoRandom (#933)
## Description:
Added  XorShift algo for better random number generation
## Please complete the following:

- [x] I have added screenshots for all UI updates
- [ ] I have added relevant tests to the test directory
- [x] I process any text displayed to the user through translateText()
and i've added it to the en.json file
- [x] I confirm I have thoroughly tested these changes and take full
responsibility for any bugs introduced
- [x] I understand that submitting code with bugs that could have been
caught through manual testing blocks releases and new features for all
contributors

## Please put your Discord username so you can be contacted if a bug or
regression is found:

@qqkedsi

![Screenshot from 2025-05-29
00-25-20](https://github.com/user-attachments/assets/7e748c7f-3bc2-4275-8ffd-9adf3a224064)

---------

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
2025-05-29 15:16:35 -07:00
evanpelle 15519b95c8 fix warship targetting range (#938)
## Description:
A warship refactor caused a regressions where warships could attack at
any distance. Also refactored & simplified the trade ship logic.

## Please complete the following:

- [x] I have added screenshots for all UI updates
- [x] I confirm I have thoroughly tested these changes and take full
responsibility for any bugs introduced
- [x] I understand that submitting code with bugs that could have been
caught through manual testing blocks releases and new features for all
contributors

## Please put your Discord username so you can be contacted if a bug or
regression is found:

<DISCORD USERNAME>
2025-05-28 17:26:13 -07:00
1brucben 5136f8edc2 Meta Adjustments from [UN] clan test (#932)
## Description:
The changes seem necessary to reduce snowballing in v23 and strengthen
ports.
## Please complete the following:

- [x] I have added screenshots for all UI updates
- [x] I confirm I have thoroughly tested these changes and take full
responsibility for any bugs introduced
- [x] I understand that submitting code with bugs that could have been
caught through manual testing blocks releases and new features for all
contributors

## Please put your Discord username so you can be contacted if a bug or
regression is found:

1brucben
2025-05-28 13:59:20 -07:00
evanpelle 5446620788 fix null vs undefined trade ship check 2025-05-28 11:40:37 -07:00
evanpelle 4fa31acc51 Revert tradeship path caching (#927)
## Description:
The path caching was causing bugs, sometimes they wouldn't get removed,
sometimes they would go in circles. Deleting the cache so we can deploy
v23.

## Please complete the following:

- [x] I have added screenshots for all UI updates
- [x] I confirm I have thoroughly tested these changes and take full
responsibility for any bugs introduced
- [x] I understand that submitting code with bugs that could have been
caught through manual testing blocks releases and new features for all
contributors

## Please put your Discord username so you can be contacted if a bug or
regression is found:

<DISCORD USERNAME>
2025-05-28 11:17:37 -07:00
Scott Anderson 40932b9f5f Fix bigint serialization error (#916)
## Description:

- JSON serialization, bigint to string handling
- JSON deserialization, string to bigint handling

## Please complete the following:

- [x] I have added screenshots for all UI updates
- [x] I confirm I have thoroughly tested these changes and take full
responsibility for any bugs introduced
- [x] I understand that submitting code with bugs that could have been
caught through manual testing blocks releases and new features for all
contributors

---------

Co-authored-by: Scott Anderson <662325+scottanderson@users.noreply.github.com>
2025-05-28 10:33:20 -07:00
Scott Anderson 7926267791 Always delete tradeship on pathfinding fail (#921)
Fixes #912

## Description:

Always delete tradeship on pathfinding fail

## Please complete the following:

- [x] I have added screenshots for all UI updates
- [ ] I confirm I have thoroughly tested these changes and take full
responsibility for any bugs introduced
- [x] I understand that submitting code with bugs that could have been
caught through manual testing blocks releases and new features for all
contributors

Co-authored-by: Scott Anderson <662325+scottanderson@users.noreply.github.com>
2025-05-28 10:32:22 -07:00
DevelopingTom b6596c88ee Improve territory drawing performances (#696)
## Description:
Territory drawing are computing the same information for each pixel
drawn.
A few fixes can noticably improve the performances:
### Caching colors
some colors are computed each time they are retrieved, and according to
the profiler the border color is the most expensive to compute each
frame:


![image](https://github.com/user-attachments/assets/147c2e9d-0ce2-4859-92de-c6f99b763642)


This PR adds a cache for this color. The other colors have almost no
impact on performance, so there's no need to cache them.

After caching:

![image](https://github.com/user-attachments/assets/7b2601b2-19c9-4535-8315-6b2fe328731f)

### Retrieving player info
Drawing the player territory leads to unecessary and expensive data
gathering, such as the anonymous name list:

![442410324-2e7dbcc9-e7ba-4051-b38f-3ae57cb072e8](https://github.com/user-attachments/assets/67894616-ecec-4748-85f9-9f665c58aab1)

Instead, after retrieving the proper data directly:

![442410386-0eaffd72-045d-40b7-96c3-e04030de3d40](https://github.com/user-attachments/assets/ff59f988-9f80-4f52-b972-a155d6ae94dd)


## Please complete the following:

- [x] I have added screenshots for all UI updates
- [x] I confirm I have thoroughly tested these changes and take full
responsibility for any bugs introduced
- [x] I understand that submitting code with bugs that could have been
caught through manual testing blocks releases and new features for all
contributors

## Please put your Discord username so you can be contacted if a bug or
regression is found:

IngloriousTom
2025-05-28 00:43:33 -04:00
evanpelle 6e6fb2db3a remove known world (#914)
## Description:
Remove known world map to avoid copyright infringement.

## Please complete the following:

- [x] I have added screenshots for all UI updates
- [x] I confirm I have thoroughly tested these changes and take full
responsibility for any bugs introduced
- [x] I understand that submitting code with bugs that could have been
caught through manual testing blocks releases and new features for all
contributors

## Please put your Discord username so you can be contacted if a bug or
regression is found:

<DISCORD USERNAME>
2025-05-27 20:08:15 -07:00
Scott Anderson 6b9879e072 floor (#913)
## Description:

Floor values before converting to bigint.

## Please complete the following:

- [x] I have added screenshots for all UI updates
- [ ] I confirm I have thoroughly tested these changes and take full
responsibility for any bugs introduced
- [x] I understand that submitting code with bugs that could have been
caught through manual testing blocks releases and new features for all
contributors

Co-authored-by: Scott Anderson <662325+scottanderson@users.noreply.github.com>
2025-05-27 20:03:30 -07:00
Scott Anderson 8cf2d86a70 Convert stats to bigints (#909)
Fixes #880

## Description:

Convert numeric stat types to bigint, and serialize those values as
strings.

## Please complete the following:

- [x] I have added screenshots for all UI updates
- [ ] I confirm I have thoroughly tested these changes and take full
responsibility for any bugs introduced
- [x] I understand that submitting code with bugs that could have been
caught through manual testing blocks releases and new features for all
contributors

---------

Co-authored-by: Scott Anderson <662325+scottanderson@users.noreply.github.com>
2025-05-27 19:13:05 -07:00
Aotumuri 0b79d0be16 Unit menu (#867)
## Description:
We are adding a modal to display information about a unit.
![スクリーンショット 2025-05-25 7 45
14](https://github.com/user-attachments/assets/736262cd-6070-4a27-b58c-e85f9a02df75)

In the future, this modal will likely include buttons for upgrading or
dismantling the unit.
## Please complete the following:

- [x] I have added screenshots for all UI updates
- [x] I confirm I have thoroughly tested these changes and take full
responsibility for any bugs introduced
- [x] I understand that submitting code with bugs that could have been
caught through manual testing blocks releases and new features for all
contributors

## Please put your Discord username so you can be contacted if a bug or
regression is found:
aotumuri
2025-05-27 21:47:50 -04:00
evanpelle 1548d0a76f fix zod validation on units due to malformed array 2025-05-27 18:30:08 -07:00
evanpelle 2b1f2dca6e remove player id from Schemas, fix archive bug (#907)
## Description:

Remove all references to playerID in the archive schema, since we
reference players by client id.
Also fixed the game not archiving bug, due to invalid reference.

## Please complete the following:

- [x] I have added screenshots for all UI updates
- [x] I confirm I have thoroughly tested these changes and take full
responsibility for any bugs introduced
- [x] I understand that submitting code with bugs that could have been
caught through manual testing blocks releases and new features for all
contributors

## Please put your Discord username so you can be contacted if a bug or
regression is found:

<DISCORD USERNAME>
2025-05-27 16:34:32 -07:00
Scott Anderson cd523515f5 Use array index access instead of .at (#889)
## Description:

Use array index access instead of `.at` to try to fix a user-reported
erorr.

## Please complete the following:

- [x] I have added screenshots for all UI updates
- [x] I confirm I have thoroughly tested these changes and take full
responsibility for any bugs introduced
- [x] I understand that submitting code with bugs that could have been
caught through manual testing blocks releases and new features for all
contributors

Co-authored-by: Scott Anderson <662325+scottanderson@users.noreply.github.com>
2025-05-27 09:39:35 -07:00
DevelopingTom e8834e15e6 Add naval combat animations (#858)
## Description:


https://github.com/user-attachments/assets/b46f949a-eb50-4656-8492-216cf820ac46

Add a couple animations for naval combat:

- shell hit
- ship explosion
- ship sinking

Added a simple `Timeline` class to spread FX animations over time.
Added a `ColoredAnimatedSprite` similar to the existing `ColoredSprite`.
Refactored the latter to avoid code duplication.

## Please complete the following:

- [x] I have added screenshots for all UI updates
- [x] I confirm I have thoroughly tested these changes and take full
responsibility for any bugs introduced
- [x] I understand that submitting code with bugs that could have been
caught through manual testing blocks releases and new features for all
contributors

## Please put your Discord username so you can be contacted if a bug or
regression is found:

IngloriousTom
2025-05-26 19:59:11 -04:00
evanpelle 4d3fa6425b Bugfix: don't allow other players to move warships (#879)
## Description:
The MoveWarshipExecution now verifies that the player who requested to
move owns the warship. This prevents players from moving other players'
warships.

## Please complete the following:

- [x] I have added screenshots for all UI updates
- [x] I confirm I have thoroughly tested these changes and take full
responsibility for any bugs introduced
- [x] I understand that submitting code with bugs that could have been
caught through manual testing blocks releases and new features for all
contributors

## Please put your Discord username so you can be contacted if a bug or
regression is found:

evan
2025-05-25 13:24:04 -07:00
Vivacious Box 27792428a0 Fix cache pathfinding (#848)
## Description:
Add full path to caches
Fix A* to always start and end at given start and end
Remove pathfinder from tradeshipexecution

Should fix tradeship looping and getting stuck at ports
Fix #843


Dont know what to add so that description check is happy

[More lines to lines to make it happy]

## Please complete the following:

- [x] I have added screenshots for all UI updates
- [x] I confirm I have thoroughly tested these changes and take full
responsibility for any bugs introduced
- [x] I understand that submitting code with bugs that could have been
caught through manual testing blocks releases and new features for all
contributors

## Please put your Discord username so you can be contacted if a bug or
regression is found:

Vivacious Box

---------

Co-authored-by: evanpelle <evanpelle@gmail.com>
2025-05-25 12:39:55 -07:00
Théodore Noel 5b27bee3bd Allow lowercase letters in clan name (#877)
## Description:

Added possibility to use lowercase letters in clan name.
See issue #876 

## Please complete the following:

- [x] I have added screenshots for all UI updates
- [x] I confirm I have thoroughly tested these changes and take full
responsibility for any bugs introduced
- [x] I understand that submitting code with bugs that could have been
caught through manual testing blocks releases and new features for all
contributors

## Please put your Discord username so you can be contacted if a bug or
regression is found:

theodoreleon.aetarax
2025-05-25 14:02:13 -04:00
Scott Anderson 7a4a3a1f17 Update zod to 3.25 (#872)
## Description:

Update to zod 3.25, and use zod's built in JWT validator.

## Please complete the following:

- [x] I have added screenshots for all UI updates
- [x] I confirm I have thoroughly tested these changes and take full
responsibility for any bugs introduced
- [x] I understand that submitting code with bugs that could have been
caught through manual testing blocks releases and new features for all
contributors

Co-authored-by: Scott Anderson <662325+scottanderson@users.noreply.github.com>
Co-authored-by: evanpelle <evanpelle@gmail.com>
2025-05-24 20:06:30 -07:00
evanpelle d35d0f38cb refactor & update warships (#796)
## Description:
1. Refactor WarshipExecution so that it takes either attrs or a warship
unit. This makes testing much simpler as the unit test can construct a
warship and then pass it into a warship execution
2. Have MoveWarshipExecution set the patrol tile, not the move tile so
warships stay in new location instead of moving back to original
location.
3. Warships no longer target trade ships outside of its patrol range.
this prevents warships from wandering
4. Refactored & simplified WarshipExecution
5. Added more tests for warships
6. Move health modification from PlayerExecution to WarshipExecution
since Warships are the only unit that have health
7. Move fields from WarshipExecution to the Warship unit itself, this
allows other executions & components to see more data about the warship.



## Please complete the following:

- [x] I have added screenshots for all UI updates
- [x] I confirm I have thoroughly tested these changes and take full
responsibility for any bugs introduced
- [x] I understand that submitting code with bugs that could have been
caught through manual testing blocks releases and new features for all
contributors

## Please put your Discord username so you can be contacted if a bug or
regression is found:

<DISCORD USERNAME>
2025-05-24 13:42:56 -07:00
Léo Kosman 1ca3c608be Fix attack speed bug introduced by #740 (#862)
## Description:

The borderSize in #740 was not properly computed (incrementing it even
if the tile to add to the border was already in the border)

## Please complete the following:

- [x] I have added screenshots for all UI updates
- [x] I confirm I have thoroughly tested these changes and take full
responsibility for any bugs introduced
- [x] I understand that submitting code with bugs that could have been
caught through manual testing blocks releases and new features for all
contributors

## Please put your Discord username so you can be contacted if a bug or
regression is found:

leo21_
2025-05-24 14:09:40 -04:00
Scott Anderson 3a65efd6e2 Unified WinnerSchema (#856)
## Description:

Refactor various types across the project to use WinnerSchema.

## Please complete the following:

- [x] I have added screenshots for all UI updates
- [x] I confirm I have thoroughly tested these changes and take full
responsibility for any bugs introduced
- [x] I understand that submitting code with bugs that could have been
caught through manual testing blocks releases and new features for all
contributors

Co-authored-by: Scott Anderson <662325+scottanderson@users.noreply.github.com>
2025-05-23 20:42:47 -07:00
1brucben 08216855f7 Add Giant World Map (#845)
## Description:
Adds giant world map. Uses same nations as former world map. Does not
include translations beyond English.
## Please complete the following:

- [x] I have added screenshots for all UI updates
- [x] I confirm I have thoroughly tested these changes and take full
responsibility for any bugs introduced
- [x] I understand that submitting code with bugs that could have been
caught through manual testing blocks releases and new features for all
contributors

## Please put your Discord username so you can be contacted if a bug or
regression is found:

1brucben

---------

Co-authored-by: evanpelle <evanpelle@gmail.com>
2025-05-23 22:26:01 -04:00
Léo Kosman 2c4d2334dd Feat : focus attack average position and some movement camera fixes (#740)
## Description:

Makes so that when clicking on the attack warning message in chat, the
camera focuses on the "average position" of the attack, instead of just
the player.

The average position is calculated by taking the average position of all
attacking border cells. It makes the calculation for every AttackUpdate,
which adds some calculations every tick, but it shouldn't affect
performance that much, as it's just a sum of coordinates.
If you have a better way of getting the averagePosition information
(calculating it only when necessary instead of every tick), it would be
great.

closes #703 

## Please complete the following:

- [x] I have added screenshots for all UI updates
- [x] I confirm I have thoroughly tested these changes and take full
responsibility for any bugs introduced
- [x] I understand that submitting code with bugs that could have been
caught through manual testing blocks releases and new features for all
contributors

## Please put your Discord username so you can be contacted if a bug or
regression is found:
leo21_

---------

Co-authored-by: Scott Anderson <scottanderson@users.noreply.github.com>
Co-authored-by: evanpelle <evanpelle@gmail.com>
2025-05-23 19:03:53 -07:00
tnhnblgl 773c9566fc Display betrayal count (Continue #744) (#849)
## Description:
. #744 became a mess. Rewrote it


![Screenshot](https://github.com/user-attachments/assets/0e43547f-514a-4e93-9bbc-d022d8dfb75c)

## Please complete the following:

- [x] I have added screenshots for all UI updates
- [x] I confirm I have thoroughly tested these changes and take full
responsibility for any bugs introduced
- [x] I understand that submitting code with bugs that could have been
caught through manual testing blocks releases and new features for all
contributors

## Please put your Discord username so you can be contacted if a bug or
regression is found:
dovg
2025-05-23 17:14:57 -04:00
evanpelle 9563c189eb Archive game when client sends win message Fixes #823 (#852)
## Description

Have the Game Server archive when it receives a win event instead of
when the game completes. It will still archive when the game completes
if there are no winners. It only uses the winner message from clients
that are in sync and are not kicked.

* Fixed a bug with the stats collection, the arrays were not expanded
enough causing NaN to be inserted into the array which caused Zod
validation to fail

* Fixed a bug with the win modal, was incorrectly showing player as
winner even if they lost.

## Please complete the following:

- [x] I have added screenshots for all UI updates
- [x] I confirm I have thoroughly tested these changes and take full
responsibility for any bugs introduced
- [x] I understand that submitting code with bugs that could have been
caught through manual testing blocks releases and new features for all
contributors

## Please put your Discord username so you can be contacted if a bug or
regression is found:

<DISCORD USERNAME>
2025-05-23 13:04:51 -07:00
evanpelle 90d7625a9f do not allow attacking same team 2025-05-23 11:29:28 -07:00
DevelopingTom 256ac3b1b8 SAM not working against MIRV warhead (#818)
## Description:

The nukes are setting a `detonationDst` that is never used in UnitImpl.

Without the target tile, SAM launchers ignore the MIRV warheads.

Illustration with 50 SAM vs 2 warhead:

![image](https://github.com/user-attachments/assets/cac20dc6-9a28-4801-a834-364fa36b612d)



The nuke icon is also staying white while being nuked:

![image](https://github.com/user-attachments/assets/badf6630-9a5e-4491-b1b7-1008d32f5efc)


## Please complete the following:

- [x] I have added screenshots for all UI updates
- [x] I confirm I have thoroughly tested these changes and take full
responsibility for any bugs introduced
- [x] I understand that submitting code with bugs that could have been
caught through manual testing blocks releases and new features for all
contributors

## Please put your Discord username so you can be contacted if a bug or
regression is found:

IngloriousTom
2025-05-22 23:47:06 -04:00