Commit Graph

113 Commits

Author SHA1 Message Date
Evan 9fa3691c5c bugfix: SpawnExecution couldn't find existing player because Game.Players() only returns alive players. This caused SpawnExecution to respawn each human player. 2025-04-03 19:31:42 -07:00
Scott Anderson 52f64db6d3 Fix various ESLint violations (#402)
## Description:

Fixes a number of ESLint violations. Although I have tested these
changes through the local dev server, I don't have a high confidence
that the testing is sufficient, as I am new to this codebase. This
change would benefit from heightened scrutiny.

## 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:

fake.neo

---------

Co-authored-by: Scott Anderson <662325+scottanderson@users.noreply.github.com>
2025-04-02 18:06:08 -07:00
Quentin Siruguet 8de3a5f106 Add notifications for troops attacking wilderness (#363)
+Retreat cost no soldiers when coming back from wilderness
+ Also work with contamined area


![image](https://github.com/user-attachments/assets/6dda168c-aade-4ba5-ac2a-6de028fbaf6d)

![image](https://github.com/user-attachments/assets/89966516-e86d-4d06-8b32-3bf36179eea1)


## 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:

quentin.qsi
2025-04-02 08:37:58 -07:00
Evan 8b6895d745 add prettier import plugin 2025-03-31 13:09:27 -07:00
Aotumuri 745017aee2 Added Gold & Troop donate button (#373)
## 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

Changed the icon for the troop donation button, as it looked like it was
donating gold.
I replaced it with a soldier icon to better reflect its function.
Additionally, I updated the icon below it to clearly represent gold
donation instead.

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

The cat is because of an extension I have put in. Please ignore it.
<img width="345" alt="スクリーンショット 2025-03-30 10 13 06"
src="https://github.com/user-attachments/assets/9088be1a-57b4-4d10-9507-ca8dc0fcc68c"
/>
<img width="396" alt="スクリーンショット 2025-03-30 10 18 10"
src="https://github.com/user-attachments/assets/2555fd24-0bbc-4b40-8f80-ccf43a1e9a75"
/>

---------

Co-authored-by: Evan <evanpelle@gmail.com>
2025-03-31 10:51:05 -07:00
evanpelle 6d5f218a44 sort teams based on clans (#381)
## Description:
Teams are not sorted based on clans, clan members always stay on the
same team.

## 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-03-30 19:37:48 -07:00
Evan 83eec17717 add clan() function on playerinfo and Player 2025-03-29 15:24:11 -07:00
Readixyee 0891637eb2 MissileSilo cooldown (#309)
changed the sam cooldown to be a general cooldown function and added a
missilesilo cooldown

The function either adds the current tick as the starting point of the
cooldown or sets the cooldown to null and updates the unit. That way
getcooldown function can be used to get back the tick the cooldown was
started and can be compared to the cooldown set in the config.

changed the sam test / added a missilesilo test

---------

Co-authored-by: evanpelle <evanpelle@gmail.com>
2025-03-29 15:19:07 -07:00
evanpelle d8fe41de7a teams (#349) 2025-03-27 20:43:56 -07:00
Evan 9ed1fe865c bugfix: ports not spawning on coastline 2025-03-27 19:08:46 -07:00
Ilan Schemoul f2193edc7c priortize ally ports and close ports (#335)
2x more likely to trade with ports belonging to an ally OR close.
3x more likely to trade with ports belonging to an ally AND close.
Add trading tests
2025-03-27 16:09:58 -07:00
Readixyee 665a8c3823 Executions dont switch owner (#326)
when an building is taken over by another player the execution for it
doesnt change its owner this makes it so when a sam is captured it tries
to intercept your own nukes and doesnt intercept the ones by the
previous player

this change makes executions of buildings automaticly switch their owner
2025-03-27 16:03:15 -07:00
Readixyee 6b07446965 unitgrid instead of defensepostgrid (#265)
added a unitgrid instead of a defensepostgrid for all units to be able
to see if a tile is inside the range of a unit by a custom distance

this is used for the sam launcher to draw a circle around the area it
protects

removed all parts that use the defensepostgrid and made it use the
unitgrid instead
2025-03-26 10:00:37 -07:00
Readixyee e02361c2f4 Disable nukes option (#237)
This makes it possible to disable all nukes as well as missile silos
from the game in privat lobbies and singleplayer games
2025-03-21 13:52:36 -07:00
Xuarig ce676d0efb [Security] Added username sanitization on server (#299)
Fixing issues #282 where players can bypass max username length by
editing their storage. I added a sanitization on the server side to
avoid all kind of cheat on the username as we can't trust clients
2025-03-20 10:39:41 -07:00
Ilan Schemoul 3ce5785d1e nuke icon (#207)
- **feat: white nuke icon next to name if player nukes you**
![Capture d'écran 2025-03-10
220439](https://github.com/user-attachments/assets/1b717b2d-bffb-45fc-96ea-2feb57d25de0)
- **feat: red nuke icon if player sends nuke towards you**
- 
![Capture d'écran 2025-03-10
220358](https://github.com/user-attachments/assets/b755fa06-9510-4bd1-8312-7180dc681d85)
2025-03-11 15:44:45 -07:00
Ilan Schemoul c4b8d6b92e cancel trade if port is captured (no trade inside same country) (#194)
If the port of destination and of source have same owner it means a
player captures port of another player, we cease all trade that happens
inside same country.
Also added a check in the canTrade code to be more reliable and correct
even outside of the specific case of capturing a port.
2025-03-11 12:33:45 -07:00
Readixyee 84951fed9f Sam anti nuke missile launcher (#176)
now with better name

---------

Co-authored-by: evanpelle <evanpelle@gmail.com>
2025-03-09 13:25:51 -07:00
evanpelle 09132495c0 Revert "have MIRV target all non allied players, increase price to 25… (#181)
… million"

This reverts commit 226112beb5.
2025-03-08 10:58:46 -08:00
Evan 3dd02ec4df remove max boat distance 2025-03-07 10:38:26 -08:00
evanpelle 974d606923 Merge pull request #159 from ilan-schemoul/save-stats
feat: save stats to local storage
2025-03-06 15:57:00 -08:00
ilan schemoul bd8f72421e default 95% soldiers 2025-03-06 01:22:00 +01:00
ilan schemoul 398d354702 feat: save stats to local storage
Victory lose, player stats, lobby config are stored to local storage
(for later use)
2025-03-06 01:00:19 +01:00
evanpelle 718b572b59 Merge pull request #117 from ilan-schemoul/cance-attacks
feat: cancel attack
2025-03-04 05:20:01 -08:00
Evan 226112beb5 have MIRV target all non allied players, increase price to 25 million 2025-03-03 20:46:28 -08:00
Evan c1383d76f1 allow boating on lakes 2025-03-03 19:19:16 -08:00
ilan schemoul 9a1f916f4d feat: cancel attack
Canceling attack takes time and incurs a malus (loose some troops).
Also prettier fixed a file HostLobbyModal.
2025-03-03 22:06:35 +01:00
evanpelle 38b762b8bc Merge pull request #95 from ilan-schemoul/embargoes
feat: everyone trade with everyone, anyone can embargo a player to stop trade
2025-03-02 10:58:05 -08:00
Evan d726fd66b5 store values as bigints to prevent floating point drift 2025-03-02 09:39:51 -08:00
evanpelle 0a077ebf4d Merge pull request #100 from d3n0x8/scrollAttackRatio
add shift + scroll command in HelpModal hotkeys table
2025-03-02 18:34:04 +01:00
ilan schemoul c2b90a52a3 feat: add icon when player request alliance
To spot who asked alliance on the map add an email icon next to them
2025-03-02 00:13:05 +01:00
Evan f8c5d29b36 bugfix: show updated cost when building a unit while another unit of same type is under construction 2025-02-20 10:45:58 -08:00
Evan 40966ca3b9 format all files with prettier 2025-02-12 08:28:15 -08:00
NewHappyRabbit 949f68287e Added flags 2025-02-11 23:34:19 +02:00
Evan 78dddaf610 pass attacks from worker thread to main thread 2025-02-11 10:32:32 -08:00
Evan 6f02bd250e refactor: have players store attacks 2025-02-11 10:16:08 -08:00
Evan 74f523a770 can only send MIRV to player owned land 2025-02-09 12:14:53 -08:00
Evan 4f4b6adb80 add 5 second player immunity to prevent spawn kills 2025-02-08 19:34:16 -08:00
Evan 1594a45dac have buildings take time to construct 2025-02-08 13:53:58 -08:00
Evan 0487509c03 reimplement defense posts 2025-02-08 09:56:07 -08:00
Evan 6abcddc140 create player panel 2025-02-05 20:35:21 -08:00
Evan b643a6357b implement mirv 2025-02-04 11:53:41 -08:00
Evan c109d23f9f combine battleship + destroyer => warship. 2025-02-02 14:31:30 -08:00
Evan af0d6a289a rename cansendlliance request fix ally self bug 2025-02-01 20:18:57 -08:00
Evan 4ee37323f9 format codebase with prettier 2025-02-01 12:05:11 -08:00
Evan 5f5f8ddf64 move methods from GameRunner to PlayerImpl 2025-02-01 12:05:11 -08:00
evanpelle 4bbb63fd48 move Game updates to GameUpdate.ts 2025-02-01 12:05:11 -08:00
evanpelle 8f8bf5c3d7 Combine AllianceRequest & MutableAllianceRequest 2025-02-01 12:05:11 -08:00
evanpelle 75fe718f16 Combine Unit & MutableUnit 2025-02-01 12:05:11 -08:00
evanpelle 7d15c0c065 combine Player & MutablePlayer interfaces 2025-02-01 12:05:11 -08:00