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)")]
|
||||
class AutoTargetIgnoreInfo : TraitInfo<AutoTargetIgnore> { }
|
||||
class AutoTargetIgnore : IPreventsAutoTarget
|
||||
class AutoTargetIgnoreInfo : ConditionalTraitInfo
|
||||
{
|
||||
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)
|
||||
{
|
||||
return true;
|
||||
return !IsTraitDisabled;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -219,7 +219,7 @@ Actors:
|
||||
Location: 69,49
|
||||
Owner: Greece
|
||||
Facing: 32
|
||||
Radar: dome.ignore
|
||||
Radar: dome
|
||||
Location: 70,45
|
||||
Owner: Greece
|
||||
Actor57: fact
|
||||
|
||||
@@ -82,13 +82,11 @@ APC:
|
||||
Buildable:
|
||||
Prerequisites: ~disabled
|
||||
|
||||
DOME.IGNORE:
|
||||
Inherits: DOME
|
||||
RenderSprites:
|
||||
Image: DOME
|
||||
DOME:
|
||||
ExternalCondition@lua:
|
||||
Condition: captured
|
||||
AutoTargetIgnore:
|
||||
Buildable:
|
||||
Prerequisites: ~disabled
|
||||
RequiresCondition: !captured
|
||||
|
||||
powerproxy.paratroopers:
|
||||
ParatroopersPower:
|
||||
|
||||
@@ -206,14 +206,16 @@ WorldLoaded = function()
|
||||
Trigger.OnDamaged(mcvtransport, Expand)
|
||||
|
||||
Trigger.OnKilled(Radar, function()
|
||||
if not player.IsObjectiveCompleted(CaptureObjective) then
|
||||
player.MarkFailedObjective(CaptureObjective)
|
||||
end)
|
||||
|
||||
Trigger.OnCapture(Radar, function(self, captor)
|
||||
if captor.Owner ~= player then
|
||||
return
|
||||
end
|
||||
|
||||
if HoldObjective then
|
||||
player.MarkFailedObjective(HoldObjective)
|
||||
end
|
||||
end)
|
||||
|
||||
Trigger.OnCapture(Radar, function()
|
||||
HoldObjective = player.AddPrimaryObjective("Defend the Radar Dome.")
|
||||
player.MarkCompletedObjective(CaptureObjective)
|
||||
|
||||
@@ -222,15 +224,12 @@ WorldLoaded = function()
|
||||
ExpansionCheck = true
|
||||
end
|
||||
|
||||
Reinforcements.Reinforce(Greece, ArmorReinfGreece, AlliedCrossroadsToRadarPath , 0, function(soldier)
|
||||
soldier.Hunt()
|
||||
end)
|
||||
Reinforcements.Reinforce(Greece, ArmorReinfGreece, AlliedCrossroadsToRadarPath , 0, IdleHunt)
|
||||
|
||||
Trigger.AfterDelay(1, function()
|
||||
local newRadar = Actor.Create("dome", true, { Owner = player, Location = Radar.Location })
|
||||
newRadar.Health = Radar.Health
|
||||
Radar.Destroy()
|
||||
Trigger.OnKilled(newRadar, function()
|
||||
Radar.GrantCondition("captured")
|
||||
Trigger.ClearAll(Radar)
|
||||
Trigger.AfterDelay(0, function()
|
||||
Trigger.OnRemovedFromWorld(Radar, function()
|
||||
player.MarkFailedObjective(HoldObjective)
|
||||
end)
|
||||
end)
|
||||
|
||||
Reference in New Issue
Block a user