Adjusted other users of timed upgrades.

This commit is contained in:
Matija Hustić
2015-07-06 18:17:15 +01:00
parent 6f54fe7e5d
commit b2a26c57bc
5 changed files with 22 additions and 18 deletions

View File

@@ -47,7 +47,8 @@ namespace OpenRA.Mods.Common.Traits
bool AcceptsUpgrade(Actor a) bool AcceptsUpgrade(Actor a)
{ {
var um = a.TraitOrDefault<UpgradeManager>(); var um = a.TraitOrDefault<UpgradeManager>();
return um != null && info.Upgrades.Any(u => um.AcceptsUpgrade(a, u)); return um != null && (info.Duration > 0 ?
info.Upgrades.Any(u => um.AcknowledgesUpgrade(a, u)) : info.Upgrades.Any(u => um.AcceptsUpgrade(a, u)));
} }
public override int GetSelectionShares(Actor collector) public override int GetSelectionShares(Actor collector)
@@ -73,13 +74,16 @@ namespace OpenRA.Mods.Common.Traits
var um = a.TraitOrDefault<UpgradeManager>(); var um = a.TraitOrDefault<UpgradeManager>();
foreach (var u in info.Upgrades) foreach (var u in info.Upgrades)
{ {
if (!um.AcceptsUpgrade(a, u))
continue;
if (info.Duration > 0) if (info.Duration > 0)
um.GrantTimedUpgrade(a, u, info.Duration); {
if (um.AcknowledgesUpgrade(a, u))
um.GrantTimedUpgrade(a, u, info.Duration);
}
else else
um.GrantUpgrade(a, u, this); {
if (um.AcceptsUpgrade(a, u))
um.GrantUpgrade(a, u, this);
}
} }
} }
}); });

View File

@@ -65,13 +65,16 @@ namespace OpenRA.Mods.Common.Traits
foreach (var u in info.Upgrades) foreach (var u in info.Upgrades)
{ {
if (!um.AcceptsUpgrade(a, u))
continue;
if (info.Duration > 0) if (info.Duration > 0)
um.GrantTimedUpgrade(a, u, info.Duration); {
if (um.AcknowledgesUpgrade(a, u))
um.GrantTimedUpgrade(a, u, info.Duration);
}
else else
um.GrantUpgrade(a, u, this); {
if (um.AcceptsUpgrade(a, u))
um.GrantUpgrade(a, u, this);
}
} }
} }
} }
@@ -90,7 +93,8 @@ namespace OpenRA.Mods.Common.Traits
return false; return false;
var um = a.TraitOrDefault<UpgradeManager>(); var um = a.TraitOrDefault<UpgradeManager>();
return um != null && info.Upgrades.Any(u => um.AcceptsUpgrade(a, u)); return um != null && (info.Duration > 0 ?
info.Upgrades.Any(u => um.AcknowledgesUpgrade(a, u)) : info.Upgrades.Any(u => um.AcceptsUpgrade(a, u)));
}); });
} }

View File

@@ -116,7 +116,7 @@ namespace OpenRA.Mods.Common.Traits
var um = produced.TraitOrDefault<UpgradeManager>(); var um = produced.TraitOrDefault<UpgradeManager>();
if (um != null) if (um != null)
foreach (var u in info.Upgrades) foreach (var u in info.Upgrades)
if (um.AcceptsUpgrade(produced, u)) if (um.AcknowledgesUpgrade(produced, u))
um.GrantTimedUpgrade(produced, u, 1); um.GrantTimedUpgrade(produced, u, 1);
} }
} }

View File

@@ -55,7 +55,7 @@
UpgradeMinEnabledLevel: 1 UpgradeMinEnabledLevel: 1
DamageMultiplier@IRONCURTAIN: DamageMultiplier@IRONCURTAIN:
UpgradeTypes: invulnerability UpgradeTypes: invulnerability
Modifier: 0, 0 Modifier: 0
TimedUpgradeBar: TimedUpgradeBar:
Upgrade: invulnerability Upgrade: invulnerability

View File

@@ -359,12 +359,10 @@
UpgradeOverlay@EMPDISABLE: UpgradeOverlay@EMPDISABLE:
UpgradeTypes: empdisable UpgradeTypes: empdisable
UpgradeMinEnabledLevel: 1 UpgradeMinEnabledLevel: 1
UpgradeMaxAcceptedLevel: 2
Palette: disabled Palette: disabled
DisableUpgrade@EMPDISABLE: DisableUpgrade@EMPDISABLE:
UpgradeTypes: empdisable UpgradeTypes: empdisable
UpgradeMinEnabledLevel: 1 UpgradeMinEnabledLevel: 1
UpgradeMaxAcceptedLevel: 2
TimedUpgradeBar@EMPDISABLE: TimedUpgradeBar@EMPDISABLE:
Upgrade: empdisable Upgrade: empdisable
Color: 255,255,255 Color: 255,255,255
@@ -377,11 +375,9 @@
ShowToEnemies: true ShowToEnemies: true
ZOffset: 512 ZOffset: 512
UpgradeMinEnabledLevel: 1 UpgradeMinEnabledLevel: 1
UpgradeMaxAcceptedLevel: 2
Cloak@CLOAKGENERATOR: Cloak@CLOAKGENERATOR:
UpgradeTypes: cloakgenerator UpgradeTypes: cloakgenerator
UpgradeMinEnabledLevel: 1 UpgradeMinEnabledLevel: 1
UpgradeMaxAcceptedLevel: 2
InitialDelay: 0 InitialDelay: 0
CloakDelay: 90 CloakDelay: 90
MustBeDestroyed: MustBeDestroyed: