mirror of
https://github.com/openfrontio/OpenFrontIO.git
synced 2026-07-10 10:04:49 +00:00
Fix: Standardize MIRV travel time
Addresses player report regarding unfair and unintuitive MIRV launch delays. MIRV travel time is now fixed at 5 ticks, independent of click location. - Modified MIRVExecution.ts to dynamically calculate speed based on a fixed travel time. - Added MIRVExecution.test.ts to verify the fixed travel time.
This commit is contained in:
@@ -22,6 +22,7 @@ export class MirvExecution implements Execution {
|
||||
|
||||
private mirvRange = 1500;
|
||||
private warheadCount = 350;
|
||||
private MIRV_FIXED_TRAVEL_TIME = 5; // Ticks
|
||||
|
||||
private random: PseudoRandom;
|
||||
|
||||
@@ -43,7 +44,7 @@ export class MirvExecution implements Execution {
|
||||
this.mg = mg;
|
||||
this.pathFinder = new ParabolaPathFinder(mg);
|
||||
this.targetPlayer = this.mg.owner(this.dst);
|
||||
this.speed = this.mg.config().defaultNukeSpeed();
|
||||
|
||||
|
||||
// Record stats
|
||||
this.mg.stats().bombLaunch(this.player, this.targetPlayer, UnitType.MIRV);
|
||||
@@ -75,6 +76,9 @@ export class MirvExecution implements Execution {
|
||||
const y = Math.max(0, this.mg.y(this.dst) - 500) + 50;
|
||||
this.separateDst = this.mg.ref(x, y);
|
||||
this.pathFinder.computeControlPoints(spawn, this.separateDst);
|
||||
// Calculate speed for fixed travel time
|
||||
const distance = this.mg.euclideanDist(spawn, this.separateDst);
|
||||
this.speed = distance / this.MIRV_FIXED_TRAVEL_TIME;
|
||||
|
||||
this.mg.displayIncomingUnit(
|
||||
this.nuke.id(),
|
||||
|
||||
Reference in New Issue
Block a user