1
0
forked from 0ad/0ad

Survival of the fittest cleanup. Based on patch by bb, refs #3102.

Show notificaiton to all players and observers.
Whitespace fixes.
let instead of var.

This was SVN commit r18430.
This commit is contained in:
elexis 2016-06-23 22:37:42 +00:00
parent 9c980173e3
commit b8fbfe2d20

View File

@ -87,32 +87,32 @@ var attackerEntityTemplates =
Trigger.prototype.StartAnEnemyWave = function()
{
var cmpTimer = Engine.QueryInterface(SYSTEM_ENTITY, IID_Timer);
var attackerEntities = attackerEntityTemplates[Math.floor(Math.random() * attackerEntityTemplates.length)];
let cmpTimer = Engine.QueryInterface(SYSTEM_ENTITY, IID_Timer);
let attackerEntities = attackerEntityTemplates[Math.floor(Math.random() * attackerEntityTemplates.length)];
// A soldier for each 2-3 minutes of the game. Should be waves of 20 soldiers after an hour
var nextTime = Math.round(120000 + Math.random() * 60000);
var attackerCount = Math.round(cmpTimer.GetTime() / nextTime / attackerEntities.length);
let nextTime = Math.round(120000 + Math.random() * 60000);
let attackerCount = Math.round(cmpTimer.GetTime() / nextTime / attackerEntities.length);
// spawn attackers
var attackers = [];
let attackers = [];
for (let attackerEntity of attackerEntities)
attackers.push(TriggerHelper.SpawnUnitsFromTriggerPoints("A", attackerEntity, attackerCount, 0));
for (var entityType of attackers)
for (let entityType of attackers)
{
for (var origin in entityType)
for (let origin in entityType)
{
var cmpPlayer = QueryOwnerInterface(+origin, IID_Player);
let cmpPlayer = QueryOwnerInterface(+origin, IID_Player);
if (cmpPlayer.GetState() != "active")
continue;
var cmpPosition = Engine.QueryInterface(this.playerCivicCenter[cmpPlayer.GetPlayerID()], IID_Position);
let cmpPosition = Engine.QueryInterface(this.playerCivicCenter[cmpPlayer.GetPlayerID()], IID_Position);
// this shouldn't happen if the player is still active
if (!cmpPosition || !cmpPosition.IsInWorld)
continue;
// store the x and z coordinates in the command
var cmd = cmpPosition.GetPosition();
let cmd = cmpPosition.GetPosition();
cmd.type = "attack-walk";
cmd.entities = entityType[origin];
cmd.queued = true;
@ -122,9 +122,8 @@ Trigger.prototype.StartAnEnemyWave = function()
}
}
var cmpGUIInterface = Engine.QueryInterface(SYSTEM_ENTITY, IID_GuiInterface);
let cmpGUIInterface = Engine.QueryInterface(SYSTEM_ENTITY, IID_GuiInterface);
cmpGUIInterface.PushNotification({
"players": [1,2,3,4,5,6,7,8],
"message": markForTranslation("An enemy wave is attacking!"),
"translateMessage": true
});
@ -133,13 +132,13 @@ Trigger.prototype.StartAnEnemyWave = function()
Trigger.prototype.InitGame = function()
{
var numberOfPlayers = TriggerHelper.GetNumberOfPlayers();
let numberOfPlayers = TriggerHelper.GetNumberOfPlayers();
// Find all of the civic centers, disable some structures
for (var i = 1; i < numberOfPlayers; ++i)
for (let i = 1; i < numberOfPlayers; ++i)
{
var cmpRangeManager = Engine.QueryInterface(SYSTEM_ENTITY, IID_RangeManager);
var playerEntities = cmpRangeManager.GetEntitiesByPlayer(i); // Get all of each player's entities
let cmpRangeManager = Engine.QueryInterface(SYSTEM_ENTITY, IID_RangeManager);
let playerEntities = cmpRangeManager.GetEntitiesByPlayer(i); // Get all of each player's entities
for (let entity of playerEntities)
if (TriggerHelper.EntityHasClass(entity, "CivilCentre"))
cmpTrigger.playerCivicCenter[i] = entity;
@ -147,26 +146,26 @@ Trigger.prototype.InitGame = function()
// Fix alliances
/* Until we can do something about limiting the victory conditions available for this map to "None"
for (var i = 1; i < numberOfPlayers; ++i)
for (let i = 1; i < numberOfPlayers; ++i)
{
var cmpPlayer = QueryPlayerIDInterface(i);
for (var j = 1; j < numberOfPlayers; ++j)
if (i != j)
let cmpPlayer = QueryPlayerIDInterface(i);
for (let j = 1; j < numberOfPlayers; ++j)
if (i != j)
cmpPlayer.SetAlly(j);
cmpPlayer.SetLockTeams(true);
}*/
// Make gaia black
QueryPlayerIDInterface(0).SetColor(0, 0, 0);
// Place the treasures
this.PlaceTreasures();
// Disable farms, civic centers and walls for all players
for (var i = 1; i < numberOfPlayers; ++i)
{
// Disable farms, civic centers and walls for all players
for (let i = 1; i < numberOfPlayers; ++i)
{
let cmpPlayer = QueryPlayerIDInterface(i);
var civ = cmpPlayer.GetCiv();
let civ = cmpPlayer.GetCiv();
cmpPlayer.SetDisabledTemplates([
"structures/" + civ + "_field",
"structures/" + civ + "_corral",
@ -175,16 +174,16 @@ Trigger.prototype.InitGame = function()
"structures/" + civ + "_wallset_stone",
"other/wallset_palisade"
]);
}
}
};
Trigger.prototype.PlaceTreasures = function()
{
let point = ["B", "C", "D"][Math.floor(Math.random() * 3)];
var triggerPoints = cmpTrigger.GetTriggerPoints(point);
for (var point of triggerPoints)
let triggerPoints = cmpTrigger.GetTriggerPoints(point);
for (let point of triggerPoints)
{
var template = treasures[Math.floor(Math.random() * treasures.length)]
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
@ -192,10 +191,9 @@ Trigger.prototype.PlaceTreasures = function()
Trigger.prototype.InitializeEnemyWaves = function()
{
var time = (5 + Math.round(Math.random() * 10)) * 60 * 1000;
var cmpGUIInterface = Engine.QueryInterface(SYSTEM_ENTITY, IID_GuiInterface);
let time = (5 + Math.round(Math.random() * 10)) * 60 * 1000;
let cmpGUIInterface = Engine.QueryInterface(SYSTEM_ENTITY, IID_GuiInterface);
cmpGUIInterface.AddTimeNotification({
"players": [1,2,3,4,5,6,7,8],
"message": markForTranslation("The first wave will start in %(time)s!"),
"translateMessage": true
}, time);
@ -208,12 +206,12 @@ Trigger.prototype.DefeatPlayerOnceCCIsDestroyed = function(data)
if (data.entity == cmpTrigger.playerCivicCenter[data.from])
{
TriggerHelper.DefeatPlayer(data.from);
// Check if only one player remains. He will be the winner.
var lastPlayerStanding = 0;
var numPlayersStanding = 0;
var numberOfPlayers = TriggerHelper.GetNumberOfPlayers();
for (var i = 1; i < numberOfPlayers; ++i)
let lastPlayerStanding = 0;
let numPlayersStanding = 0;
let numberOfPlayers = TriggerHelper.GetNumberOfPlayers();
for (let i = 1; i < numberOfPlayers; ++i)
{
if (QueryPlayerIDInterface(i).GetState() == "active")
{
@ -228,7 +226,7 @@ Trigger.prototype.DefeatPlayerOnceCCIsDestroyed = function(data)
var cmpTrigger = Engine.QueryInterface(SYSTEM_ENTITY, IID_Trigger);
cmpTrigger.playerCivicCenter = {};
cmpTrigger.DoAfterDelay(0, "InitGame", {});
cmpTrigger.DoAfterDelay(0, "InitGame", {});
cmpTrigger.DoAfterDelay(1000, "InitializeEnemyWaves", {});
cmpTrigger.RegisterTrigger("OnOwnershipChanged", "DefeatPlayerOnceCCIsDestroyed", {"enabled": true});
cmpTrigger.RegisterTrigger("OnOwnershipChanged", "DefeatPlayerOnceCCIsDestroyed", { "enabled": true });