0ad/binaries/data/mods/public/maps/skirmishes/Gallic Fields (3).js
2014-06-23 18:25:19 +00:00

45 lines
1.3 KiB
JavaScript

Trigger.prototype.SpawnAndAttack = function()
{
var rand = Math.random();
// randomize spawn points
var spawnPoint = rand > 0.5 ? "B" : "C";
var intruders = TriggerHelper.SpawnUnitsFromTriggerPoints(spawnPoint, "units/rome_legionnaire_marian", this.attackSize, 0);
for (var origin in intruders)
{
var playerID = TriggerHelper.GetOwner(+origin);
var cmd = null;
for (var target of this.GetTriggerPoints("A"))
{
if (TriggerHelper.GetOwner(target) != playerID)
continue;
var cmpPosition = Engine.QueryInterface(target, IID_Position);
if (!cmpPosition || !cmpPosition.IsInWorld)
continue;
// store the x and z coordinates in the command
cmd = cmpPosition.GetPosition();
break;
}
if (!cmd)
continue;
cmd.type = "attack-walk";
cmd.entities = intruders[origin];
cmd.queued = true;
ProcessCommand(0, cmd);
}
// enlarge the attack time and size
// multiply with a number between 1 and 3
rand = Math.random() * 2 + 1;
this.attackTime *= rand;
this.attackSize = Math.round(this.attackSize * rand);
this.DoAfterDelay(this.attackTime, "SpawnAndAttack", {});
};
var cmpTrigger = Engine.QueryInterface(SYSTEM_ENTITY, IID_Trigger);
cmpTrigger.attackSize = 1; // attack with 1 soldier
cmpTrigger.attackTime = 60*1000; // attack in 1 minute
cmpTrigger.DoAfterDelay(cmpTrigger.attackTime, "SpawnAndAttack", {});