28 lines
1.4 KiB
Lua
28 lines
1.4 KiB
Lua
SupportPowers = { }
|
|
|
|
SupportPowers.Airstrike = function(owner, planeName, enterLocation, bombLocation)
|
|
local facing = { Map.GetFacing(CPos.op_Subtraction(bombLocation, enterLocation), 0), "Int32" }
|
|
local altitude = { Rules.TraitInfo(planeName, "AircraftInfo").CruiseAltitude, "Int32" }
|
|
local plane = Actor.Create(planeName, { Location = enterLocation, Owner = owner, Facing = facing, Altitude = altitude })
|
|
Actor.Trait(plane, "AttackBomber"):SetTarget(bombLocation.CenterPosition)
|
|
Actor.Fly(plane, bombLocation.CenterPosition)
|
|
Actor.FlyOffMap(plane)
|
|
Actor.RemoveSelf(plane)
|
|
return plane
|
|
end
|
|
|
|
SupportPowers.Paradrop = function(owner, planeName, passengerNames, enterLocation, dropLocation)
|
|
local facing = { Map.GetFacing(CPos.op_Subtraction(dropLocation, enterLocation), 0), "Int32" }
|
|
local altitude = { Rules.TraitInfo(planeName, "AircraftInfo").CruiseAltitude, "Int32" }
|
|
local plane = Actor.Create(planeName, { Location = enterLocation, Owner = owner, Facing = facing, Altitude = altitude })
|
|
Actor.FlyAttackCell(plane, dropLocation)
|
|
Actor.Trait(plane, "ParaDrop"):SetLZ(dropLocation)
|
|
local cargo = Actor.Trait(plane, "Cargo")
|
|
local passengers = { }
|
|
for i, passengerName in ipairs(passengerNames) do
|
|
local passenger = Actor.Create(passengerName, { AddToWorld = false, Owner = owner })
|
|
passengers[i] = passenger
|
|
cargo:Load(plane, passenger)
|
|
end
|
|
return plane, passengers
|
|
end |