forked from 0ad/0ad
Fix an OOS on rejoin on survival of the fittest. Patch by Itms, fixes #4310.
The code kept the reference to the trigger component before deserialization, thus accessed the empty civic center array instead of the deserialized one. refering to the actual Trigger component instead of This was SVN commit r18909.
This commit is contained in:
parent
3c9100b4e2
commit
53570da065
@ -127,7 +127,7 @@ Trigger.prototype.StartAnEnemyWave = function()
|
||||
"message": markForTranslation("An enemy wave is attacking!"),
|
||||
"translateMessage": true
|
||||
});
|
||||
cmpTrigger.DoAfterDelay(nextTime, "StartAnEnemyWave", {}); // The next wave will come in 3 minutes
|
||||
this.DoAfterDelay(nextTime, "StartAnEnemyWave", {}); // The next wave will come in 3 minutes
|
||||
};
|
||||
|
||||
Trigger.prototype.InitGame = function()
|
||||
@ -141,7 +141,7 @@ Trigger.prototype.InitGame = function()
|
||||
|
||||
for (let entity of playerEntities)
|
||||
if (TriggerHelper.EntityHasClass(entity, "CivilCentre"))
|
||||
cmpTrigger.playerCivicCenter[i] = entity;
|
||||
this.playerCivicCenter[i] = entity;
|
||||
}
|
||||
|
||||
// Make gaia black
|
||||
@ -169,13 +169,13 @@ Trigger.prototype.InitGame = function()
|
||||
Trigger.prototype.PlaceTreasures = function()
|
||||
{
|
||||
let point = ["B", "C", "D"][Math.floor(Math.random() * 3)];
|
||||
let triggerPoints = cmpTrigger.GetTriggerPoints(point);
|
||||
let triggerPoints = this.GetTriggerPoints(point);
|
||||
for (let point of triggerPoints)
|
||||
{
|
||||
let template = treasures[Math.floor(Math.random() * treasures.length)];
|
||||
TriggerHelper.SpawnUnits(point, template, 1, 0);
|
||||
}
|
||||
cmpTrigger.DoAfterDelay(4*60*1000, "PlaceTreasures", {}); //Place more treasures after 4 minutes
|
||||
this.DoAfterDelay(4*60*1000, "PlaceTreasures", {}); // Place more treasures after 4 minutes
|
||||
};
|
||||
|
||||
Trigger.prototype.InitializeEnemyWaves = function()
|
||||
@ -186,12 +186,12 @@ Trigger.prototype.InitializeEnemyWaves = function()
|
||||
"message": markForTranslation("The first wave will start in %(time)s!"),
|
||||
"translateMessage": true
|
||||
}, time);
|
||||
cmpTrigger.DoAfterDelay(time, "StartAnEnemyWave", {});
|
||||
this.DoAfterDelay(time, "StartAnEnemyWave", {});
|
||||
};
|
||||
|
||||
Trigger.prototype.DefeatPlayerOnceCCIsDestroyed = function(data)
|
||||
{
|
||||
if (data.entity == cmpTrigger.playerCivicCenter[data.from])
|
||||
if (data.entity == this.playerCivicCenter[data.from])
|
||||
TriggerHelper.DefeatPlayer(data.from);
|
||||
};
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user