Commit Graph

90 Commits

Author SHA1 Message Date
1brucben a8a8d0b7ca Performance Enhancement for AttackExecution (#820)
## Description:
The branch includes some improvements in AttackExecution including
caching and improved queueing of tiles.
## 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-21 09:26:25 -07:00
Scott Anderson 5aa8356513 Record player stats during the game (#784)
## Description:

Record player stats for the analytics worker to import in to to
postgres. This changes defines a new Analytics schema version, `v0.0.2`,
containing additional metadata about each player.

## 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
2025-05-21 00:10:29 -04:00
Scott Anderson 70745faac4 Enable strictNullChecks, eqeqeq (#436)
## Description:

Improve type safety and runtime correctness by:
1. Enabling TypeScript's
[strictNullChecks](https://www.typescriptlang.org/tsconfig/#strictNullChecks)
compiler option.
2. Replacing all loose equality operators (`==` and `!=`) with strict
equality operators (`===` and `!==`).
3. Cleaning up of type declarations, null handling logic, and equality
expressions throughout the project.

Currently, the code allows implicit assumptions that `null` and
`undefined` are interchangeable, and relies on type-coercing equality
checks that can introduce subtle bugs. These practices make it difficult
to reason about when values may be absent and hinder the effectiveness
of static analysis.

Migrating to strict null checks and enforcing strict equality
comparisons will clarify intent, reduce bugs, and make the codebase
safer and easier to maintain.

Fixes #466 

## 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 <openfrontio@gmail.com>
2025-05-15 16:39:40 -07:00
Léo Kosman 1b286f5518 Feat : Auto remove embargoes that were automatically created (#707)
## Description:

Adds two fields to an Embargo : 
- `createdAt` : the tick at which it was created
- `willExpire` : whether the embargo will expire on its own

An embargo will remove itself only if the player didn't intentionally
set it. It expires either when an alliance is made, or if enough time
has passed (according to the `embargoDuration` config entry).

I put 5 minutes for `embargoDuration` by default, which seems reasonable
to me.

closes #702 

## 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-15 10:09:27 -07:00
evanpelle f12690808f Tile expansion (#606)
## Description:
Modify tile expansion logic, creates more consistent expansion.

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

---------

Co-authored-by: evan <openfrontio@gmail.com>
2025-04-27 14:12:13 -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
Evan 8dd5f654ff Attacks don't create embargos against bots because they can't trade anyways 2025-03-28 14:02:29 -07:00
Ilan Schemoul 6834f0683f embargo if attacked (#353)
## Responsibility Acknowledgment

- [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 basic manual testing:
  - Significantly slows down the entire development process
  - Blocks releases and new features for all contributors
  - Harms the project's reliability and reputation
- Places additional debugging burden on maintainers who already have
limited time
- Diverts valuable resources away from new development and improvements
  - Makes me seen as a loser
  - Makes me more likely to go to hell
2025-03-27 16:39:37 -07:00
Ilan Schemoul 87d1a8d69d feat: retreat stops attack + show when ennemy retreats (#209) 2025-03-10 17:25:21 -07:00
Ilan Schemoul 4375797d92 feat: show a message when attack is canceled (with number of deaths) (#193) 2025-03-10 13:30:07 -07:00
BeGj 619891741f linting 2025-03-07 16:53:10 +00:00
PilkeySEK e979e1184c Add guard clause instead of nesting 2025-03-07 14:16:18 +01: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
Evan e3896127d5 bugfix: full sending with boat makes you lose troops 2025-02-18 18:55:26 -08:00
Evan 5e6f8f5d91 validate all intent input 2025-02-18 16:26:49 -08:00
Evan d9f2b683d7 add eq for zoom, chagne meta give more bonus large players, don't throw exception when attack self 2025-02-15 14:31:18 -08:00
Evan 64d13a46bd bugfix: bots were not losing troops in attack. rebalanced difficulties. 2025-02-13 11:50:15 -08:00
Evan 40966ca3b9 format all files with prettier 2025-02-12 08:28:15 -08:00
Evan 6f02bd250e refactor: have players store attacks 2025-02-11 10:16:08 -08:00
Evan 4f4b6adb80 add 5 second player immunity to prevent spawn kills 2025-02-08 19:34:16 -08:00
Evan 4ee37323f9 format codebase with prettier 2025-02-01 12:05:11 -08:00
evanpelle de1dbff570 combine Game & MutableGame 2025-02-01 12:05:11 -08:00
evanpelle 7d15c0c065 combine Player & MutablePlayer interfaces 2025-02-01 12:05:11 -08:00
Evan b91d9d4148 fix bugs from using tilerefs 2025-02-01 12:05:11 -08:00
Evan f0f5bae79f thread_split: convert all tile to tileref 2025-02-01 12:05:11 -08:00
evanpelle a17ae48cd3 use TileRef instead of tile 2025-02-01 12:05:11 -08:00
Evan 8616e9bfcb game runs in seperate thread 2025-02-01 12:05:11 -08:00
Evan dab427d614 put methods onto terraintile 2025-02-01 12:05:11 -08:00
Evan 8a101b7a6a update meta: population growth bit faster, reduce tile type differences, reduce attack bonus 2025-01-10 14:49:36 -08:00
Evan 5e0367ae55 bufix: NPC is targeted at the same time it allies with targeter, causing it to try to attack itself 2025-01-05 20:04:55 -08:00
Evan f4c98318b6 Show player relations in player info overlay 2024-12-30 09:40:16 -08:00
Evan ac1d0c0378 Add relations, NPCs attack enemies using relation, NPCs attack targeted players 2024-12-27 16:53:56 -08:00
Evan 06c00307e5 make discord link more noticeable, have attack bonus be based on number of troops sent, not player troop count (better full sends) 2024-12-20 20:31:54 -08:00
evanpelle ff02d9d8b6 have core/ directory use consolex for remote logging 2024-12-18 12:00:00 -08:00
Evan 722165c401 adding persistent id 2024-12-17 14:30:16 -08:00
evanpelle 67288cb49f alert when getting attacked 2024-12-10 20:28:39 -08:00
evanpelle e7316c8fe9 display message & received gold when conquer player 2024-12-10 20:28:39 -08:00
Evan 2d2df14ae3 add GameConfig to Game 2024-12-07 09:45:39 -08:00
Evan 1654f73f43 require gold to buy items 2024-11-04 19:45:31 -08:00
Evan 7068758ae3 growth determined by manpower reserves 2024-11-03 12:38:40 -08:00
Evan 2afecf0f39 create troop slider 2024-11-03 12:37:56 -08:00
Evan e77bb5e118 bugfix: boat attack troops count twice 2024-11-02 19:55:22 -07:00
evanpelle af0726a1af radial menu can send attack 2024-09-26 20:27:46 -07:00
evanpelle d874392467 refactored alliance 2024-09-22 13:38:43 -07:00
evanpelle 49aafe6379 give fake humans alliance behavior 2024-09-22 13:00:48 -07:00
evanpelle e559af941f fix boat only captures single tile bug 2024-09-21 20:32:39 -07:00
evanpelle 287d30513b added back preferential conquer 2024-09-20 20:30:36 -07:00
evanpelle f2d1eb8e21 alliance stops existing attacks 2024-09-19 16:14:04 -07:00
evanpelle 41e77858ee add traitor icon, bots don't ally traitors 2024-09-18 20:27:12 -07:00