Merge pull request #12863 from abcdefg30/ignoreTargetUpgrades
Make AutoTargetIgnore upgradeable
This commit is contained in:
@@ -259,12 +259,19 @@ namespace OpenRA.Mods.Common.Traits
|
|||||||
}
|
}
|
||||||
|
|
||||||
[Desc("Will not get automatically targeted by enemy (like walls)")]
|
[Desc("Will not get automatically targeted by enemy (like walls)")]
|
||||||
class AutoTargetIgnoreInfo : TraitInfo<AutoTargetIgnore> { }
|
class AutoTargetIgnoreInfo : ConditionalTraitInfo
|
||||||
class AutoTargetIgnore : IPreventsAutoTarget
|
|
||||||
{
|
{
|
||||||
|
public override object Create(ActorInitializer init) { return new AutoTargetIgnore(this); }
|
||||||
|
}
|
||||||
|
|
||||||
|
class AutoTargetIgnore : ConditionalTrait<AutoTargetIgnoreInfo>, IPreventsAutoTarget
|
||||||
|
{
|
||||||
|
public AutoTargetIgnore(AutoTargetIgnoreInfo info)
|
||||||
|
: base(info) { }
|
||||||
|
|
||||||
public bool PreventsAutoTarget(Actor self, Actor attacker)
|
public bool PreventsAutoTarget(Actor self, Actor attacker)
|
||||||
{
|
{
|
||||||
return true;
|
return !IsTraitDisabled;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -219,7 +219,7 @@ Actors:
|
|||||||
Location: 69,49
|
Location: 69,49
|
||||||
Owner: Greece
|
Owner: Greece
|
||||||
Facing: 32
|
Facing: 32
|
||||||
Radar: dome.ignore
|
Radar: dome
|
||||||
Location: 70,45
|
Location: 70,45
|
||||||
Owner: Greece
|
Owner: Greece
|
||||||
Actor57: fact
|
Actor57: fact
|
||||||
|
|||||||
@@ -82,13 +82,11 @@ APC:
|
|||||||
Buildable:
|
Buildable:
|
||||||
Prerequisites: ~disabled
|
Prerequisites: ~disabled
|
||||||
|
|
||||||
DOME.IGNORE:
|
DOME:
|
||||||
Inherits: DOME
|
ExternalCondition@lua:
|
||||||
RenderSprites:
|
Condition: captured
|
||||||
Image: DOME
|
|
||||||
AutoTargetIgnore:
|
AutoTargetIgnore:
|
||||||
Buildable:
|
RequiresCondition: !captured
|
||||||
Prerequisites: ~disabled
|
|
||||||
|
|
||||||
powerproxy.paratroopers:
|
powerproxy.paratroopers:
|
||||||
ParatroopersPower:
|
ParatroopersPower:
|
||||||
|
|||||||
@@ -206,14 +206,16 @@ WorldLoaded = function()
|
|||||||
Trigger.OnDamaged(mcvtransport, Expand)
|
Trigger.OnDamaged(mcvtransport, Expand)
|
||||||
|
|
||||||
Trigger.OnKilled(Radar, function()
|
Trigger.OnKilled(Radar, function()
|
||||||
|
if not player.IsObjectiveCompleted(CaptureObjective) then
|
||||||
player.MarkFailedObjective(CaptureObjective)
|
player.MarkFailedObjective(CaptureObjective)
|
||||||
end)
|
|
||||||
|
|
||||||
Trigger.OnCapture(Radar, function(self, captor)
|
|
||||||
if captor.Owner ~= player then
|
|
||||||
return
|
|
||||||
end
|
end
|
||||||
|
|
||||||
|
if HoldObjective then
|
||||||
|
player.MarkFailedObjective(HoldObjective)
|
||||||
|
end
|
||||||
|
end)
|
||||||
|
|
||||||
|
Trigger.OnCapture(Radar, function()
|
||||||
HoldObjective = player.AddPrimaryObjective("Defend the Radar Dome.")
|
HoldObjective = player.AddPrimaryObjective("Defend the Radar Dome.")
|
||||||
player.MarkCompletedObjective(CaptureObjective)
|
player.MarkCompletedObjective(CaptureObjective)
|
||||||
|
|
||||||
@@ -222,15 +224,12 @@ WorldLoaded = function()
|
|||||||
ExpansionCheck = true
|
ExpansionCheck = true
|
||||||
end
|
end
|
||||||
|
|
||||||
Reinforcements.Reinforce(Greece, ArmorReinfGreece, AlliedCrossroadsToRadarPath , 0, function(soldier)
|
Reinforcements.Reinforce(Greece, ArmorReinfGreece, AlliedCrossroadsToRadarPath , 0, IdleHunt)
|
||||||
soldier.Hunt()
|
|
||||||
end)
|
|
||||||
|
|
||||||
Trigger.AfterDelay(1, function()
|
Radar.GrantCondition("captured")
|
||||||
local newRadar = Actor.Create("dome", true, { Owner = player, Location = Radar.Location })
|
Trigger.ClearAll(Radar)
|
||||||
newRadar.Health = Radar.Health
|
Trigger.AfterDelay(0, function()
|
||||||
Radar.Destroy()
|
Trigger.OnRemovedFromWorld(Radar, function()
|
||||||
Trigger.OnKilled(newRadar, function()
|
|
||||||
player.MarkFailedObjective(HoldObjective)
|
player.MarkFailedObjective(HoldObjective)
|
||||||
end)
|
end)
|
||||||
end)
|
end)
|
||||||
|
|||||||
Reference in New Issue
Block a user