Merge pull request #10711 from colonelpopcorn/bleed

Refactored ticks to delay per issue #9810
This commit is contained in:
Oliver Brakmann
2016-03-23 19:03:42 +01:00
33 changed files with 95 additions and 68 deletions

View File

@@ -17,7 +17,7 @@ namespace OpenRA.Traits
{ {
public class DrawLineToTargetInfo : ITraitInfo public class DrawLineToTargetInfo : ITraitInfo
{ {
public readonly int Ticks = 60; public readonly int Delay = 60;
public virtual object Create(ActorInitializer init) { return new DrawLineToTarget(init.Self, this); } public virtual object Create(ActorInitializer init) { return new DrawLineToTarget(init.Self, this); }
} }
@@ -38,7 +38,7 @@ namespace OpenRA.Traits
this.c = c; this.c = c;
if (display) if (display)
lifetime = info.Ticks; lifetime = info.Delay;
} }
public void SetTargets(Actor self, List<Target> targets, Color c, bool display) public void SetTargets(Actor self, List<Target> targets, Color c, bool display)
@@ -47,7 +47,7 @@ namespace OpenRA.Traits
this.c = c; this.c = c;
if (display) if (display)
lifetime = info.Ticks; lifetime = info.Delay;
} }
public void Selected(Actor a) public void Selected(Actor a)
@@ -56,7 +56,7 @@ namespace OpenRA.Traits
return; return;
// Reset the order line timeout. // Reset the order line timeout.
lifetime = info.Ticks; lifetime = info.Delay;
} }
public IEnumerable<IRenderable> RenderAfterWorld(WorldRenderer wr) public IEnumerable<IRenderable> RenderAfterWorld(WorldRenderer wr)

View File

@@ -74,7 +74,7 @@ namespace OpenRA.Mods.Common.Activities
foreach (var t in self.TraitsImplementing<INotifyHarvesterAction>()) foreach (var t in self.TraitsImplementing<INotifyHarvesterAction>())
t.Harvested(self, resource); t.Harvested(self, resource);
return ActivityUtils.SequenceActivities(new Wait(harvInfo.LoadTicksPerBale), this); return ActivityUtils.SequenceActivities(new Wait(harvInfo.BaleLoadDelay), this);
} }
} }
} }

View File

@@ -28,7 +28,7 @@ namespace OpenRA.Mods.Common.Activities
if (ammoPools == null) if (ammoPools == null)
return; return;
ammoPoolsReloadTimes = ammoPools.ToDictionary(x => x, y => y.Info.ReloadTicks); ammoPoolsReloadTimes = ammoPools.ToDictionary(x => x, y => y.Info.ReloadDelay);
} }
public override Activity Tick(Actor self) public override Activity Tick(Actor self)
@@ -66,7 +66,7 @@ namespace OpenRA.Mods.Common.Activities
if (sound != null) if (sound != null)
Game.Sound.Play(sound, self.CenterPosition); Game.Sound.Play(sound, self.CenterPosition);
ammoPoolsReloadTimes[pool] = pool.Info.ReloadTicks; ammoPoolsReloadTimes[pool] = pool.Info.ReloadDelay;
} }
return needsReloading ? this : NextActivity; return needsReloading ? this : NextActivity;

View File

@@ -43,13 +43,13 @@ namespace OpenRA.Mods.Common.Traits
public readonly string RearmSound = null; public readonly string RearmSound = null;
[Desc("Time to reload per ReloadCount on airfield etc.")] [Desc("Time to reload per ReloadCount on airfield etc.")]
public readonly int ReloadTicks = 25 * 2; public readonly int ReloadDelay = 50;
[Desc("Whether or not ammo is replenished on its own.")] [Desc("Whether or not ammo is replenished on its own.")]
public readonly bool SelfReloads = false; public readonly bool SelfReloads = false;
[Desc("Time to reload per ReloadCount when actor 'SelfReloads'.")] [Desc("Time to reload per ReloadCount when actor 'SelfReloads'.")]
public readonly int SelfReloadTicks = 25 * 2; public readonly int SelfReloadDelay = 50;
[Desc("Whether or not reload timer should be reset when ammo has been fired.")] [Desc("Whether or not reload timer should be reset when ammo has been fired.")]
public readonly bool ResetOnFire = false; public readonly bool ResetOnFire = false;
@@ -72,7 +72,7 @@ namespace OpenRA.Mods.Common.Traits
else else
CurrentAmmo = Info.Ammo; CurrentAmmo = Info.Ammo;
RemainingTicks = Info.SelfReloadTicks; RemainingTicks = Info.SelfReloadDelay;
PreviousAmmo = GetAmmoCount(); PreviousAmmo = GetAmmoCount();
} }
@@ -112,13 +112,13 @@ namespace OpenRA.Mods.Common.Traits
// Resets the tick counter if ammo was fired. // Resets the tick counter if ammo was fired.
if (Info.ResetOnFire && GetAmmoCount() < PreviousAmmo) if (Info.ResetOnFire && GetAmmoCount() < PreviousAmmo)
{ {
RemainingTicks = Info.SelfReloadTicks; RemainingTicks = Info.SelfReloadDelay;
PreviousAmmo = GetAmmoCount(); PreviousAmmo = GetAmmoCount();
} }
if (!FullAmmo() && --RemainingTicks == 0) if (!FullAmmo() && --RemainingTicks == 0)
{ {
RemainingTicks = Info.SelfReloadTicks; RemainingTicks = Info.SelfReloadDelay;
for (var i = 0; i < Info.ReloadCount; i++) for (var i = 0; i < Info.ReloadCount; i++)
GiveAmmo(); GiveAmmo();

View File

@@ -22,7 +22,7 @@ namespace OpenRA.Mods.Common.Traits
public readonly int MaxCharges = 1; public readonly int MaxCharges = 1;
[Desc("Reload time for all charges (in ticks).")] [Desc("Reload time for all charges (in ticks).")]
public readonly int ReloadTime = 120; public readonly int ReloadDelay = 120;
[Desc("Delay for initial charge attack (in ticks).")] [Desc("Delay for initial charge attack (in ticks).")]
public readonly int InitialChargeDelay = 22; public readonly int InitialChargeDelay = 22;
@@ -67,7 +67,7 @@ namespace OpenRA.Mods.Common.Traits
public void Attacking(Actor self, Target target, Armament a, Barrel barrel) public void Attacking(Actor self, Target target, Armament a, Barrel barrel)
{ {
--charges; --charges;
timeToRecharge = info.ReloadTime; timeToRecharge = info.ReloadDelay;
} }
public override Activity GetAttackActivity(Actor self, Target newTarget, bool allowMove, bool forceAttack) public override Activity GetAttackActivity(Actor self, Target newTarget, bool allowMove, bool forceAttack)

View File

@@ -33,10 +33,10 @@ namespace OpenRA.Mods.Common.Traits
[Desc("How much resources it can carry.")] [Desc("How much resources it can carry.")]
public readonly int Capacity = 28; public readonly int Capacity = 28;
public readonly int LoadTicksPerBale = 4; public readonly int BaleLoadDelay = 4;
[Desc("How fast it can dump it's carryage.")] [Desc("How fast it can dump it's carryage.")]
public readonly int UnloadTicksPerBale = 4; public readonly int BaleUnloadDelay = 4;
[Desc("How many squares to show the fill level.")] [Desc("How many squares to show the fill level.")]
public readonly int PipCount = 7; public readonly int PipCount = 7;
@@ -290,7 +290,7 @@ namespace OpenRA.Mods.Common.Traits
if (--contents[type] == 0) if (--contents[type] == 0)
contents.Remove(type); contents.Remove(type);
currentUnloadTicks = Info.UnloadTicksPerBale; currentUnloadTicks = Info.BaleUnloadDelay;
} }
return contents.Count == 0; return contents.Count == 0;

View File

@@ -22,8 +22,8 @@ namespace OpenRA.Mods.Common.Traits
[Desc("Allows King of the Hill (KotH) style gameplay.")] [Desc("Allows King of the Hill (KotH) style gameplay.")]
public class StrategicVictoryConditionsInfo : ITraitInfo, Requires<MissionObjectivesInfo> public class StrategicVictoryConditionsInfo : ITraitInfo, Requires<MissionObjectivesInfo>
{ {
[Desc("Amount of time (in game ticks) that the player has to hold all the strategic points.", "Defaults to 5 minutes.")] [Desc("Amount of time (in game ticks) that the player has to hold all the strategic points.", "Defaults to 7500 ticks (5 minutes at default speed).")]
public readonly int TicksToHold = 25 * 60 * 5; public readonly int HoldDuration = 7500;
[Desc("Should the timer reset when the player loses hold of a strategic point.")] [Desc("Should the timer reset when the player loses hold of a strategic point.")]
public readonly bool ResetOnHoldLost = true; public readonly bool ResetOnHoldLost = true;
@@ -52,7 +52,7 @@ namespace OpenRA.Mods.Common.Traits
public StrategicVictoryConditions(Actor self, StrategicVictoryConditionsInfo svcInfo) public StrategicVictoryConditions(Actor self, StrategicVictoryConditionsInfo svcInfo)
{ {
info = svcInfo; info = svcInfo;
TicksLeft = info.TicksToHold; TicksLeft = info.HoldDuration;
player = self.Owner; player = self.Owner;
mo = self.Trait<MissionObjectives>(); mo = self.Trait<MissionObjectives>();
} }
@@ -97,7 +97,7 @@ namespace OpenRA.Mods.Common.Traits
} }
else if (TicksLeft != 0) else if (TicksLeft != 0)
if (info.ResetOnHoldLost) if (info.ResetOnHoldLost)
TicksLeft = info.TicksToHold; // Reset the time hold TicksLeft = info.HoldDuration; // Reset the time hold
} }
} }

View File

@@ -19,8 +19,8 @@ namespace OpenRA.Mods.Common.Traits
{ {
public class WithInfantryBodyInfo : UpgradableTraitInfo, IRenderActorPreviewSpritesInfo, Requires<IMoveInfo>, Requires<RenderSpritesInfo> public class WithInfantryBodyInfo : UpgradableTraitInfo, IRenderActorPreviewSpritesInfo, Requires<IMoveInfo>, Requires<RenderSpritesInfo>
{ {
public readonly int MinIdleWaitTicks = 30; public readonly int MinIdleDelay = 30;
public readonly int MaxIdleWaitTicks = 110; public readonly int MaxIdleDelay = 110;
[SequenceReference] public readonly string MoveSequence = "run"; [SequenceReference] public readonly string MoveSequence = "run";
[SequenceReference] public readonly string AttackSequence = null; [SequenceReference] public readonly string AttackSequence = null;
@@ -146,7 +146,7 @@ namespace OpenRA.Mods.Common.Traits
if (Info.IdleSequences.Length > 0) if (Info.IdleSequences.Length > 0)
{ {
idleSequence = Info.IdleSequences.Random(self.World.SharedRandom); idleSequence = Info.IdleSequences.Random(self.World.SharedRandom);
idleDelay = self.World.SharedRandom.Next(Info.MinIdleWaitTicks, Info.MaxIdleWaitTicks); idleDelay = self.World.SharedRandom.Next(Info.MinIdleDelay, Info.MaxIdleDelay);
} }
} }
else if (AllowIdleAnimation(self)) else if (AllowIdleAnimation(self))

View File

@@ -17,7 +17,7 @@ namespace OpenRA.Mods.Common.Traits
class SelfHealingInfo : UpgradableTraitInfo, Requires<HealthInfo> class SelfHealingInfo : UpgradableTraitInfo, Requires<HealthInfo>
{ {
public readonly int Step = 5; public readonly int Step = 5;
public readonly int Ticks = 5; public readonly int Delay = 5;
public readonly float HealIfBelow = .5f; public readonly float HealIfBelow = .5f;
public readonly int DamageCooldown = 0; public readonly int DamageCooldown = 0;
@@ -53,7 +53,7 @@ namespace OpenRA.Mods.Common.Traits
if (--ticks <= 0) if (--ticks <= 0)
{ {
ticks = Info.Ticks; ticks = Info.Delay;
self.InflictDamage(self, -Info.Step, null); self.InflictDamage(self, -Info.Step, null);
} }
} }

View File

@@ -20,13 +20,13 @@ namespace OpenRA.Mods.Common.Traits
public readonly int WanderMoveRadius = 1; public readonly int WanderMoveRadius = 1;
[Desc("Number of ticks to wait before decreasing the effective move radius.")] [Desc("Number of ticks to wait before decreasing the effective move radius.")]
public readonly int TicksToWaitBeforeReducingMoveRadius = 5; public readonly int ReduceMoveRadiusDelay = 5;
[Desc("Minimum amount of ticks the actor will sit idly before starting to wander.")] [Desc("Minimum amount of ticks the actor will sit idly before starting to wander.")]
public readonly int MinMoveDelayInTicks = 0; public readonly int MinMoveDelay = 0;
[Desc("Maximum amount of ticks the actor will sit idly before starting to wander.")] [Desc("Maximum amount of ticks the actor will sit idly before starting to wander.")]
public readonly int MaxMoveDelayInTicks = 0; public readonly int MaxMoveDelay = 0;
public abstract object Create(ActorInitializer init); public abstract object Create(ActorInitializer init);
} }
@@ -49,7 +49,7 @@ namespace OpenRA.Mods.Common.Traits
public virtual void OnBecomingIdle(Actor self) public virtual void OnBecomingIdle(Actor self)
{ {
countdown = self.World.SharedRandom.Next(info.MinMoveDelayInTicks, info.MaxMoveDelayInTicks); countdown = self.World.SharedRandom.Next(info.MinMoveDelay, info.MaxMoveDelay);
} }
public void TickIdle(Actor self) public void TickIdle(Actor self)
@@ -70,7 +70,7 @@ namespace OpenRA.Mods.Common.Traits
if (!self.World.Map.Contains(targetCell)) if (!self.World.Map.Contains(targetCell))
{ {
// If MoveRadius is too big there might not be a valid cell to order the attack to (if actor is on a small island and can't leave) // If MoveRadius is too big there might not be a valid cell to order the attack to (if actor is on a small island and can't leave)
if (++ticksIdle % info.TicksToWaitBeforeReducingMoveRadius == 0) if (++ticksIdle % info.ReduceMoveRadiusDelay == 0)
effectiveMoveRadius--; effectiveMoveRadius--;
return CPos.Zero; // We'll be back the next tick; better to sit idle for a few seconds than prolong this tick indefinitely with a loop return CPos.Zero; // We'll be back the next tick; better to sit idle for a few seconds than prolong this tick indefinitely with a loop

View File

@@ -617,6 +617,33 @@ namespace OpenRA.Mods.Common.UtilityCommands
node.Key = "Image"; node.Key = "Image";
} }
if (engineVersion < 20160321)
{
var parentKey = parent != null ? parent.Key.Split('@').First() : null;
if (node.Key == "Ticks" && parentKey == "DrawLineToTarget")
node.Key = "Duration";
if (node.Key == "ReloadTicks")
node.Key = "ReloadDelay";
if (node.Key == "SelfReloadTicks")
node.Key = "SelfReloadDelay";
if (node.Key == "LoadTicksPerBale")
node.Key = "BaleLoadDelay";
if (node.Key == "UnloadTicksPerBale")
node.Key = "BaleUnloadDelay";
if (node.Key == "TicksToHold")
node.Key = "HoldDuration";
if (node.Key == "Ticks" && parentKey == "SelfHealing")
node.Key = "Delay";
if (node.Key == "TicksToWaitBeforeReducingMoveRadius")
node.Key = "ReduceMoveRadiusDelay";
if (node.Key == "MinIdleWaitTicks")
node.Key = "MinIdleDelay";
if (node.Key == "MaxIdleWaitTicks")
node.Key = "MaxIdleWaitDelay";
if (node.Key == "ReloadTime")
node.Key = "ReloadDelay";
}
UpgradeActorRules(engineVersion, ref node.Value.Nodes, node, depth + 1); UpgradeActorRules(engineVersion, ref node.Value.Nodes, node, depth + 1);
} }
} }

View File

@@ -162,7 +162,7 @@ RMBO.easy:
Health: Health:
HP: 300 HP: 300
SelfHealing: SelfHealing:
Ticks: 10 Delay: 10
HealIfBelow: 50% HealIfBelow: 50%
DamageCooldown: 200 DamageCooldown: 200
RenderSprites: RenderSprites:

View File

@@ -80,7 +80,7 @@ HELI:
PipCount: 5 PipCount: 5
SelfReloads: true SelfReloads: true
ReloadCount: 10 ReloadCount: 10
SelfReloadTicks: 200 SelfReloadDelay: 200
WithSpriteRotorOverlay: WithSpriteRotorOverlay:
Offset: 0,0,85 Offset: 0,0,85
WithMuzzleOverlay: WithMuzzleOverlay:
@@ -129,7 +129,7 @@ ORCA:
PipCount: 6 PipCount: 6
SelfReloads: true SelfReloads: true
ReloadCount: 2 ReloadCount: 2
SelfReloadTicks: 100 SelfReloadDelay: 100
SpawnActorOnDeath: SpawnActorOnDeath:
Actor: ORCA.Husk Actor: ORCA.Husk
AutoTarget: AutoTarget:

View File

@@ -38,7 +38,7 @@
Modifier: 90, 80, 70, 50 Modifier: 90, 80, 70, 50
SelfHealing@ELITE: SelfHealing@ELITE:
Step: 2 Step: 2
Ticks: 100 Delay: 100
HealIfBelow: 1 HealIfBelow: 1
DamageCooldown: 125 DamageCooldown: 125
UpgradeTypes: selfheal UpgradeTypes: selfheal
@@ -233,7 +233,7 @@
Guardable: Guardable:
SelfHealing@HOSPITAL: SelfHealing@HOSPITAL:
Step: 5 Step: 5
Ticks: 100 Delay: 100
HealIfBelow: 1 HealIfBelow: 1
DamageCooldown: 125 DamageCooldown: 125
UpgradeTypes: hospitalheal UpgradeTypes: hospitalheal

View File

@@ -764,7 +764,7 @@ OBLI:
FireDelay: 0 FireDelay: 0
AttackCharge: AttackCharge:
ChargeAudio: obelpowr.aud ChargeAudio: obelpowr.aud
ReloadTime: 40 ReloadDelay: 40
InitialChargeDelay: 50 InitialChargeDelay: 50
-EmitInfantryOnSell: -EmitInfantryOnSell:
DetectCloaked: DetectCloaked:

View File

@@ -55,8 +55,8 @@ HARV:
Resources: Tiberium, BlueTiberium Resources: Tiberium, BlueTiberium
PipCount: 7 PipCount: 7
Capacity: 20 Capacity: 20
LoadTicksPerBale: 12 BaleLoadDelay: 12
UnloadTicksPerBale: 6 BaleUnloadDelay: 6
SearchFromProcRadius: 25 SearchFromProcRadius: 25
SearchFromOrderRadius: 15 SearchFromOrderRadius: 15
Mobile: Mobile:
@@ -410,7 +410,7 @@ HTNK:
WithMuzzleOverlay: WithMuzzleOverlay:
AutoTarget: AutoTarget:
SelfHealing: SelfHealing:
Ticks: 10 Delay: 10
HealIfBelow: 50% HealIfBelow: 50%
DamageCooldown: 200 DamageCooldown: 200
SpawnActorOnDeath: SpawnActorOnDeath:
@@ -486,7 +486,7 @@ MLRS:
PipCount: 0 PipCount: 0
SelfReloads: true SelfReloads: true
ReloadCount: 1 ReloadCount: 1
SelfReloadTicks: 45 SelfReloadDelay: 45
AttackTurreted: AttackTurreted:
WithReloadingSpriteTurret: WithReloadingSpriteTurret:
AmmoPoolName: primary AmmoPoolName: primary

View File

@@ -38,7 +38,7 @@ carryall.reinforce:
Image: carryall Image: carryall
SelfHealing: SelfHealing:
Step: 5 Step: 5
Ticks: 3 Delay: 3
HealIfBelow: 50% HealIfBelow: 50%
carryall: carryall:

View File

@@ -38,7 +38,7 @@
Modifier: 90, 80, 70, 50 Modifier: 90, 80, 70, 50
SelfHealing@ELITE: SelfHealing@ELITE:
Step: 2 Step: 2
Ticks: 125 Delay: 125
HealIfBelow: 1 HealIfBelow: 1
DamageCooldown: 125 DamageCooldown: 125
UpgradeTypes: selfheal UpgradeTypes: selfheal

View File

@@ -43,7 +43,7 @@ mcv:
VisualBounds: 42,42 VisualBounds: 42,42
SelfHealing: SelfHealing:
Step: 5 Step: 5
Ticks: 3 Delay: 3
HealIfBelow: 50% HealIfBelow: 50%
harvester: harvester:
@@ -68,7 +68,7 @@ harvester:
Capacity: 28 Capacity: 28
HarvestFacings: 8 HarvestFacings: 8
Resources: Spice Resources: Spice
UnloadTicksPerBale: 5 BaleUnloadDelay: 5
SearchFromProcRadius: 30 SearchFromProcRadius: 30
SearchFromOrderRadius: 15 SearchFromOrderRadius: 15
Health: Health:
@@ -94,7 +94,7 @@ harvester:
VisualBounds: 42,42 VisualBounds: 42,42
SelfHealing: SelfHealing:
Step: 5 Step: 5
Ticks: 3 Delay: 3
HealIfBelow: 50% HealIfBelow: 50%
trike: trike:
@@ -335,7 +335,7 @@ devastator:
VisualBounds: 44,38,0,0 VisualBounds: 44,38,0,0
SelfHealing: SelfHealing:
Step: 5 Step: 5
Ticks: 3 Delay: 3
HealIfBelow: 50% HealIfBelow: 50%
raider: raider:

View File

@@ -159,7 +159,7 @@ MINVV:
Description: Bomb (Hotkey B) Description: Bomb (Hotkey B)
SelfHealing: SelfHealing:
Step: -1 Step: -1
Ticks: 1 Delay: 1
HealIfBelow: 101% HealIfBelow: 101%
DamageCooldown: 0 DamageCooldown: 0
Explodes: Explodes:

View File

@@ -306,7 +306,7 @@ V2RL:
EmptyWeapon: napalm EmptyWeapon: napalm
SelfHealing: SelfHealing:
Step: 2 Step: 2
Ticks: 1 Delay: 1
HealIfBelow: 40% HealIfBelow: 40%
BADR.Bomber: BADR.Bomber:

View File

@@ -16,7 +16,7 @@ MISS:
Player: Player:
StrategicVictoryConditions: StrategicVictoryConditions:
TicksToHold: 3000 HoldDuration: 3000
ResetOnHoldLost: true ResetOnHoldLost: true
RatioRequired: 0.65 RatioRequired: 0.65
CriticalRatioRequired: 0.65 CriticalRatioRequired: 0.65

View File

@@ -159,7 +159,7 @@ PBOX:
Actor: 5TNK.Husk Actor: 5TNK.Husk
SelfHealing: SelfHealing:
Step: 1 Step: 1
Ticks: 1 Delay: 1
HealIfBelow: 100% HealIfBelow: 100%
DamageCooldown: 150 DamageCooldown: 150
Selectable: Selectable:

View File

@@ -172,7 +172,7 @@ YAK:
AmmoPool: AmmoPool:
Ammo: 18 Ammo: 18
PipCount: 6 PipCount: 6
ReloadTicks: 11 ReloadDelay: 11
ReturnOnIdle: ReturnOnIdle:
SelectionDecorations: SelectionDecorations:
VisualBounds: 30,28,0,2 VisualBounds: 30,28,0,2
@@ -317,7 +317,7 @@ HIND:
AmmoPool: AmmoPool:
Ammo: 24 Ammo: 24
PipCount: 6 PipCount: 6
ReloadTicks: 8 ReloadDelay: 8
SelectionDecorations: SelectionDecorations:
VisualBounds: 38,32 VisualBounds: 38,32
WithMuzzleOverlay: WithMuzzleOverlay:

View File

@@ -37,7 +37,7 @@
Modifier: 90, 80, 70, 50 Modifier: 90, 80, 70, 50
SelfHealing@ELITE: SelfHealing@ELITE:
Step: 2 Step: 2
Ticks: 100 Delay: 100
HealIfBelow: 1 HealIfBelow: 1
DamageCooldown: 125 DamageCooldown: 125
UpgradeTypes: selfheal UpgradeTypes: selfheal
@@ -221,7 +221,7 @@
GenericName: Soldier GenericName: Soldier
SelfHealing@HOSPITAL: SelfHealing@HOSPITAL:
Step: 5 Step: 5
Ticks: 100 Delay: 100
HealIfBelow: 1 HealIfBelow: 1
DamageCooldown: 125 DamageCooldown: 125
UpgradeTypes: hospitalheal UpgradeTypes: hospitalheal

View File

@@ -434,7 +434,7 @@ TSLA:
AttackCharge: AttackCharge:
ChargeAudio: tslachg2.aud ChargeAudio: tslachg2.aud
MaxCharges: 3 MaxCharges: 3
ReloadTime: 120 ReloadDelay: 120
Power: Power:
Amount: -100 Amount: -100
DetectCloaked: DetectCloaked:

View File

@@ -191,7 +191,7 @@ V2RL:
Actor: 4TNK.Husk Actor: 4TNK.Husk
SelfHealing: SelfHealing:
Step: 1 Step: 1
Ticks: 3 Delay: 3
HealIfBelow: 50% HealIfBelow: 50%
DamageCooldown: 150 DamageCooldown: 150
SelectionDecorations: SelectionDecorations:
@@ -253,7 +253,7 @@ HARV:
Harvester: Harvester:
Capacity: 20 Capacity: 20
Resources: Ore,Gems Resources: Ore,Gems
UnloadTicksPerBale: 1 BaleUnloadDelay: 1
SearchFromProcRadius: 30 SearchFromProcRadius: 30
SearchFromOrderRadius: 15 SearchFromOrderRadius: 15
Health: Health:

View File

@@ -144,7 +144,7 @@ ORCAB:
Ammo: 10 Ammo: 10
PipCount: 2 PipCount: 2
ReloadCount: 5 ReloadCount: 5
ReloadTicks: 200 ReloadDelay: 200
PipType: Ammo PipType: Ammo
PipTypeEmpty: AmmoEmpty PipTypeEmpty: AmmoEmpty
AutoTarget: AutoTarget:

View File

@@ -27,7 +27,7 @@
Voice: Attack Voice: Attack
AutoTarget: AutoTarget:
SelfHealing: SelfHealing:
Ticks: 10 Delay: 10
HealIfBelow: 50% HealIfBelow: 50%
DamageCooldown: 200 DamageCooldown: 200
WithVoxelTurret: WithVoxelTurret:

View File

@@ -34,7 +34,7 @@
Modifier: 90, 75 Modifier: 90, 75
SelfHealing@ELITE: SelfHealing@ELITE:
Step: 2 Step: 2
Ticks: 100 Delay: 100
HealIfBelow: 1 HealIfBelow: 1
DamageCooldown: 125 DamageCooldown: 125
UpgradeTypes: selfheal UpgradeTypes: selfheal
@@ -317,7 +317,7 @@
DeathTypes: EnergyDeath DeathTypes: EnergyDeath
SelfHealing@HOSPITAL: SelfHealing@HOSPITAL:
Step: 5 Step: 5
Ticks: 100 Delay: 100
HealIfBelow: 1 HealIfBelow: 1
DamageCooldown: 125 DamageCooldown: 125
UpgradeTypes: hospitalheal UpgradeTypes: hospitalheal

View File

@@ -55,7 +55,7 @@ MEDIC:
WithInfantryBody: WithInfantryBody:
AttackSequence: heal AttackSequence: heal
SelfHealing: SelfHealing:
Ticks: 60 Delay: 60
Passenger: Passenger:
PipType: Red PipType: Red

View File

@@ -233,8 +233,8 @@ WEED:
DeliveryBuildings: nawast DeliveryBuildings: nawast
Capacity: 7 Capacity: 7
Resources: Veins Resources: Veins
UnloadTicksPerBale: 20 BaleUnloadDelay: 20
LoadTicksPerBale: 40 BaleLoadDelay: 40
SearchFromProcRadius: 72 SearchFromProcRadius: 72
SearchFromOrderRadius: 36 SearchFromOrderRadius: 36
HarvestVoice: Attack HarvestVoice: Attack
@@ -245,7 +245,7 @@ WEED:
Health: Health:
HP: 600 HP: 600
SelfHealing: SelfHealing:
Ticks: 10 Delay: 10
HealIfBelow: 50% HealIfBelow: 50%
DamageCooldown: 200 DamageCooldown: 200
Armor: Armor:

View File

@@ -56,7 +56,7 @@ HARV:
DeliveryBuildings: proc DeliveryBuildings: proc
Capacity: 28 Capacity: 28
Resources: Tiberium, BlueTiberium Resources: Tiberium, BlueTiberium
UnloadTicksPerBale: 1 BaleUnloadDelay: 1
SearchFromProcRadius: 36 SearchFromProcRadius: 36
SearchFromOrderRadius: 18 SearchFromOrderRadius: 18
HarvestVoice: Attack HarvestVoice: Attack
@@ -75,7 +75,7 @@ HARV:
Health: Health:
HP: 1000 HP: 1000
SelfHealing: SelfHealing:
Ticks: 10 Delay: 10
HealIfBelow: 50% HealIfBelow: 50%
DamageCooldown: 200 DamageCooldown: 200
Armor: Armor: