mirror of
https://github.com/openfrontio/OpenFrontIO.git
synced 2026-07-27 17:12:13 +00:00
Fix transport ship's troop count to update when a hydro hits the player. (#4381)
**Add approved & assigned issue number here:** Resolves #4308 ## Description: When nuclear damage reduces a player's troop count, it also affects any transports ships in the water. This works well and is useful to avoid exploiting tranports to avoid hydro damages. `UnitImpl.setTroops()` changes the transports troop count without queuing a unit update. the core value changes, but the client never receives a fresh UnitUpdate unless something else touches the ship. - UnitImpl.ts now emits a UnitUpdate when a unit troop count actually changes. - NukeExecution.ts batches transport ship nuke losses, then applies one final troop update per ship. - Attack.test.ts now asserts the nuke tick includes a transport UnitUpdate with the reduced troop count. ## Please complete the following: - [N/A] I have added screenshots for all UI updates - [N/A] 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 ## Please put your Discord username so you can be contacted if a bug or regression is found: elliotlepley
This commit is contained in:
@@ -172,7 +172,12 @@ export class UnitImpl implements Unit {
|
||||
}
|
||||
|
||||
setTroops(troops: number): void {
|
||||
this._troops = Math.max(0, troops);
|
||||
const nextTroops = Math.max(0, troops);
|
||||
if (this._troops === nextTroops) {
|
||||
return;
|
||||
}
|
||||
this._troops = nextTroops;
|
||||
this.mg.addUpdate(this.toUpdate());
|
||||
}
|
||||
troops(): number {
|
||||
return this._troops;
|
||||
|
||||
Reference in New Issue
Block a user