37 lines
1021 B
Lua
37 lines
1021 B
Lua
Mission = { }
|
|
|
|
Mission.MissionOver = function(winners, losers, setWinStates)
|
|
World:SetLocalPauseState(true)
|
|
World:set_PauseStateLocked(true)
|
|
if winners then
|
|
for i, player in ipairs(winners) do
|
|
Media.PlaySpeechNotification("Win", player)
|
|
if setWinStates then
|
|
OpenRA.SetWinState(player, "Won")
|
|
end
|
|
end
|
|
end
|
|
if losers then
|
|
for i, player in ipairs(losers) do
|
|
Media.PlaySpeechNotification("Lose", player)
|
|
if setWinStates then
|
|
OpenRA.SetWinState(player, "Lost")
|
|
end
|
|
end
|
|
end
|
|
Mission.MissionIsOver = true
|
|
end
|
|
|
|
Mission.GetGroundAttackersOf = function(player)
|
|
return Utils.Where(Actor.ActorsWithTrait("AttackBase"), function(actor)
|
|
return not Actor.IsDead(actor) and Actor.IsInWorld(actor) and Actor.Owner(actor) == player and Actor.HasTrait(actor, "Mobile")
|
|
end)
|
|
end
|
|
|
|
Mission.TickTakeOre = function(player)
|
|
OpenRA.TakeOre(player, 0.01 * OpenRA.GetOreCapacity(player) / 25)
|
|
end
|
|
|
|
Mission.RequiredUnitsAreDestroyed = function(player)
|
|
return Internal.RequiredUnitsAreDestroyed(player)
|
|
end |