Fix breakage of the old Lua API due to recent changes
Specifically, the CPos::CenterPosition -> Map::CenterOfCell rename (#5758), as well as the additional argument to Paradrop::SetLZ (#5695).
This commit is contained in:
@@ -461,5 +461,11 @@ namespace OpenRA.Mods.RA.Scripting
|
|||||||
{
|
{
|
||||||
return Util.ExpandFootprint(cells.Values.Cast<CPos>(), allowDiagonal);
|
return Util.ExpandFootprint(cells.Values.Cast<CPos>(), allowDiagonal);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[LuaGlobal]
|
||||||
|
public WPos CenterOfCell(CPos position)
|
||||||
|
{
|
||||||
|
return world.Map.CenterOfCell(position);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ end
|
|||||||
AttackPlayer = function()
|
AttackPlayer = function()
|
||||||
if not Actor.IsDead(NodBarracks) then
|
if not Actor.IsDead(NodBarracks) then
|
||||||
Production.BuildWithPerFactoryQueue(NodBarracks, "e1", 5)
|
Production.BuildWithPerFactoryQueue(NodBarracks, "e1", 5)
|
||||||
attackSquad = Team.New(Map.FindUnitsInCircle(enemy, NodBarracks.location, 3))
|
attackSquad = Team.New(Map.FindUnitsInCircle(enemy, NodBarracks, 3))
|
||||||
Team.Do(attackSquad, function(unit)
|
Team.Do(attackSquad, function(unit)
|
||||||
Actor.AttackMove(unit, waypoint9.location)
|
Actor.AttackMove(unit, waypoint9.location)
|
||||||
Actor.Hunt(unit)
|
Actor.Hunt(unit)
|
||||||
@@ -38,4 +38,4 @@ Tick = function()
|
|||||||
if Mission.RequiredUnitsAreDestroyed(enemy) then
|
if Mission.RequiredUnitsAreDestroyed(enemy) then
|
||||||
MissionAccomplished()
|
MissionAccomplished()
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -22,7 +22,7 @@ HeliAction = function(heliActor, team)
|
|||||||
Actor.AfterMove(heliActor)
|
Actor.AfterMove(heliActor)
|
||||||
Actor.UnloadCargo(heliActor, true)
|
Actor.UnloadCargo(heliActor, true)
|
||||||
Actor.Wait(heliActor, Utils.Seconds(2))
|
Actor.Wait(heliActor, Utils.Seconds(2))
|
||||||
Actor.ScriptedMove(heliActor, NodHeliEntry)
|
Actor.ScriptedMove(heliActor, NodHeliEntry.Location)
|
||||||
Actor.RemoveSelf(heliActor)
|
Actor.RemoveSelf(heliActor)
|
||||||
|
|
||||||
Team.Do(team, function(actor)
|
Team.Do(team, function(actor)
|
||||||
|
|||||||
@@ -18,7 +18,7 @@ HeliAction = function(heliActor, team)
|
|||||||
Actor.AfterMove(heliActor)
|
Actor.AfterMove(heliActor)
|
||||||
Actor.UnloadCargo(heliActor, true)
|
Actor.UnloadCargo(heliActor, true)
|
||||||
Actor.Wait(heliActor, Utils.Seconds(2))
|
Actor.Wait(heliActor, Utils.Seconds(2))
|
||||||
Actor.ScriptedMove(heliActor, HeliEntry)
|
Actor.ScriptedMove(heliActor, HeliEntry.Location)
|
||||||
Actor.RemoveSelf(heliActor)
|
Actor.RemoveSelf(heliActor)
|
||||||
|
|
||||||
Team.Do(team, function(actor)
|
Team.Do(team, function(actor)
|
||||||
|
|||||||
@@ -29,7 +29,7 @@ end
|
|||||||
|
|
||||||
Actor.ScriptedMove = function(actor, location)
|
Actor.ScriptedMove = function(actor, location)
|
||||||
if Actor.HasTrait(actor, "Helicopter") then
|
if Actor.HasTrait(actor, "Helicopter") then
|
||||||
Internal.HeliFlyToPos(actor, location.CenterPosition)
|
Internal.HeliFlyToPos(actor, Map.CenterOfCell(location))
|
||||||
else
|
else
|
||||||
actor:QueueActivity(OpenRA.New("Move", { location }))
|
actor:QueueActivity(OpenRA.New("Move", { location }))
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -70,6 +70,10 @@ Map.ExpandFootprint = function(cells, allowDiagonal)
|
|||||||
return Utils.EnumerableToTable(Internal.ExpandFootprint(cells, allowDiagonal))
|
return Utils.EnumerableToTable(Internal.ExpandFootprint(cells, allowDiagonal))
|
||||||
end
|
end
|
||||||
|
|
||||||
|
Map.CenterOfCell = function(position)
|
||||||
|
return Internal.CenterOfCell(position)
|
||||||
|
end
|
||||||
|
|
||||||
CPos.New = function(x, y)
|
CPos.New = function(x, y)
|
||||||
return OpenRA.New("CPos", { { x, "Int32" }, { y, "Int32" } })
|
return OpenRA.New("CPos", { { x, "Int32" }, { y, "Int32" } })
|
||||||
end
|
end
|
||||||
@@ -102,4 +106,4 @@ end
|
|||||||
|
|
||||||
WRange.FromCells = function(cells)
|
WRange.FromCells = function(cells)
|
||||||
return WRange.New(cells * 1024)
|
return WRange.New(cells * 1024)
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -2,7 +2,7 @@ Reinforcements = { }
|
|||||||
|
|
||||||
Reinforcements.Insert = function(owner, transportName, passengerNames, enterPath, exitPath)
|
Reinforcements.Insert = function(owner, transportName, passengerNames, enterPath, exitPath)
|
||||||
local facing = { Map.GetFacing(CPos.op_Subtraction(enterPath[2], enterPath[1]), 0), "Int32" }
|
local facing = { Map.GetFacing(CPos.op_Subtraction(enterPath[2], enterPath[1]), 0), "Int32" }
|
||||||
local center = WPos.op_Addition(enterPath[1].CenterPosition, WVec.New(0, 0, Rules.InitialAltitude(transportName)))
|
local center = WPos.op_Addition(Map.CenterOfCell(enterPath[1]), WVec.New(0, 0, Rules.InitialAltitude(transportName)))
|
||||||
local transport = Actor.Create(transportName, { Owner = owner, Location = enterPath[1], CenterPosition = center, Facing = facing })
|
local transport = Actor.Create(transportName, { Owner = owner, Location = enterPath[1], CenterPosition = center, Facing = facing })
|
||||||
local cargo = Actor.Trait(transport, "Cargo")
|
local cargo = Actor.Trait(transport, "Cargo")
|
||||||
local passengers = { }
|
local passengers = { }
|
||||||
@@ -24,7 +24,7 @@ end
|
|||||||
|
|
||||||
Reinforcements.Extract = function(owner, transportName, passengerNames, enterPath, exitPath)
|
Reinforcements.Extract = function(owner, transportName, passengerNames, enterPath, exitPath)
|
||||||
local facing = { Map.GetFacing(CPos.op_Subtraction(enterPath[2], enterPath[1]), 0), "Int32" }
|
local facing = { Map.GetFacing(CPos.op_Subtraction(enterPath[2], enterPath[1]), 0), "Int32" }
|
||||||
local center = WPos.op_Addition(enterPath[1].CenterPosition, WVec.New(0, 0, Rules.InitialAltitude(transportName)))
|
local center = WPos.op_Addition(Map.CenterOfCell(enterPath[1]), WVec.New(0, 0, Rules.InitialAltitude(transportName)))
|
||||||
local transport = Actor.Create(transportName, { Owner = owner, Location = enterPath[1], CenterPosition = center, Facing = facing })
|
local transport = Actor.Create(transportName, { Owner = owner, Location = enterPath[1], CenterPosition = center, Facing = facing })
|
||||||
local cargo = Actor.Trait(transport, "Cargo")
|
local cargo = Actor.Trait(transport, "Cargo")
|
||||||
|
|
||||||
|
|||||||
@@ -2,10 +2,11 @@ SupportPowers = { }
|
|||||||
|
|
||||||
SupportPowers.Airstrike = function(owner, planeName, enterLocation, bombLocation)
|
SupportPowers.Airstrike = function(owner, planeName, enterLocation, bombLocation)
|
||||||
local facing = { Map.GetFacing(CPos.op_Subtraction(bombLocation, enterLocation), 0), "Int32" }
|
local facing = { Map.GetFacing(CPos.op_Subtraction(bombLocation, enterLocation), 0), "Int32" }
|
||||||
local center = WPos.op_Addition(enterLocation.CenterPosition, WVec.New(0, 0, Rules.InitialAltitude(planeName)))
|
local center = WPos.op_Addition(Map.CenterOfCell(enterLocation), WVec.New(0, 0, Rules.InitialAltitude(planeName)))
|
||||||
local plane = Actor.Create(planeName, { Location = enterLocation, Owner = owner, Facing = facing, CenterPosition = center })
|
local plane = Actor.Create(planeName, { Location = enterLocation, Owner = owner, Facing = facing, CenterPosition = center })
|
||||||
Actor.Trait(plane, "AttackBomber"):SetTarget(bombLocation.CenterPosition)
|
local bombLoc = Map.CenterOfCell(bombLocation)
|
||||||
Actor.Fly(plane, bombLocation.CenterPosition)
|
Actor.Trait(plane, "AttackBomber"):SetTarget(bombLoc)
|
||||||
|
Actor.Fly(plane, bombLoc)
|
||||||
Actor.FlyOffMap(plane)
|
Actor.FlyOffMap(plane)
|
||||||
Actor.RemoveSelf(plane)
|
Actor.RemoveSelf(plane)
|
||||||
return plane
|
return plane
|
||||||
@@ -13,10 +14,10 @@ end
|
|||||||
|
|
||||||
SupportPowers.Paradrop = function(owner, planeName, passengerNames, enterLocation, dropLocation)
|
SupportPowers.Paradrop = function(owner, planeName, passengerNames, enterLocation, dropLocation)
|
||||||
local facing = { Map.GetFacing(CPos.op_Subtraction(dropLocation, enterLocation), 0), "Int32" }
|
local facing = { Map.GetFacing(CPos.op_Subtraction(dropLocation, enterLocation), 0), "Int32" }
|
||||||
local center = WPos.op_Addition(enterLocation.CenterPosition, WVec.New(0, 0, Rules.InitialAltitude(planeName)))
|
local center = WPos.op_Addition(Map.CenterOfCell(enterLocation), WVec.New(0, 0, Rules.InitialAltitude(planeName)))
|
||||||
local plane = Actor.Create(planeName, { Location = enterLocation, Owner = owner, Facing = facing, CenterPosition = center })
|
local plane = Actor.Create(planeName, { Location = enterLocation, Owner = owner, Facing = facing, CenterPosition = center })
|
||||||
Actor.FlyAttackCell(plane, dropLocation)
|
Actor.FlyAttackCell(plane, dropLocation)
|
||||||
Actor.Trait(plane, "ParaDrop"):SetLZ(dropLocation)
|
Actor.Trait(plane, "ParaDrop"):SetLZ(dropLocation, true)
|
||||||
local cargo = Actor.Trait(plane, "Cargo")
|
local cargo = Actor.Trait(plane, "Cargo")
|
||||||
local passengers = { }
|
local passengers = { }
|
||||||
for i, passengerName in ipairs(passengerNames) do
|
for i, passengerName in ipairs(passengerNames) do
|
||||||
@@ -38,4 +39,4 @@ SupportPowers.Chronoshift = function(unitLocationPairs, chronosphere, duration,
|
|||||||
cs:Teleport(unit, cell, duration, killCargo, chronosphere)
|
cs:Teleport(unit, cell, duration, killCargo, chronosphere)
|
||||||
end
|
end
|
||||||
end)
|
end)
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -55,9 +55,8 @@ Reinforcements.ReinforceAir = function(owner, planeNames, entrypoint, rallypoint
|
|||||||
local flight = { }
|
local flight = { }
|
||||||
|
|
||||||
for i, planeName in ipairs(planeNames) do
|
for i, planeName in ipairs(planeNames) do
|
||||||
local plane = Actor.Create(planeName, { AddToWorld = false, Location = entrypoint.Location, Owner = owner, Facing = facing })
|
|
||||||
local enterLocation = entrypoint.Location
|
|
||||||
local enterPosition = WPos.op_Addition(entrypoint.CenterPosition, WVec.New(0, 0, Rules.InitialAltitude(planeName)))
|
local enterPosition = WPos.op_Addition(entrypoint.CenterPosition, WVec.New(0, 0, Rules.InitialAltitude(planeName)))
|
||||||
|
local plane = Actor.Create(planeName, { AddToWorld = false, Location = entrypoint.Location, CenterPosition = enterPosition, Owner = owner, Facing = facing })
|
||||||
flight[i] = plane
|
flight[i] = plane
|
||||||
OpenRA.RunAfterDelay((i - 1) * interval, function()
|
OpenRA.RunAfterDelay((i - 1) * interval, function()
|
||||||
World:Add(plane)
|
World:Add(plane)
|
||||||
|
|||||||
Reference in New Issue
Block a user