Upgrade rule for Health.Shape to HitShape.Type

This commit is contained in:
reaperrr
2017-05-21 14:12:34 +02:00
parent 43b55ae333
commit 7f81de2f8a
15 changed files with 119 additions and 44 deletions

View File

@@ -679,6 +679,28 @@ namespace OpenRA.Mods.Common.UtilityCommands
} }
} }
// Added HitShape trait
if (engineVersion < 20170531)
{
var hitShapeNode = new MiniYamlNode("HitShape", "");
// Moved and renamed Health.Shape to HitShape.Type
var health = node.Value.Nodes.FirstOrDefault(n => n.Key == "Health");
if (health != null)
{
var shape = health.Value.Nodes.FirstOrDefault(n => n.Key == "Shape");
if (shape != null)
{
RenameNodeKey(shape, "Type");
hitShapeNode.Value.Nodes.Add(shape);
node.Value.Nodes.Add(hitShapeNode);
health.Value.Nodes.Remove(shape);
}
else
node.Value.Nodes.Add(hitShapeNode);
}
}
UpgradeActorRules(modData, engineVersion, ref node.Value.Nodes, node, depth + 1); UpgradeActorRules(modData, engineVersion, ref node.Value.Nodes, node, depth + 1);
} }

View File

@@ -173,6 +173,7 @@
VoiceSet: VehicleVoice VoiceSet: VehicleVoice
BodyOrientation: BodyOrientation:
UseClassicFacingFudge: True UseClassicFacingFudge: True
HitShape:
^Tank: ^Tank:
Inherits: ^Vehicle Inherits: ^Vehicle
@@ -234,14 +235,13 @@
VoiceSet: VehicleVoice VoiceSet: VehicleVoice
BodyOrientation: BodyOrientation:
UseClassicFacingFudge: True UseClassicFacingFudge: True
HitShape:
^Infantry: ^Infantry:
Inherits@1: ^ExistsInWorld Inherits@1: ^ExistsInWorld
Inherits@3: ^SpriteActor Inherits@3: ^SpriteActor
Huntable: Huntable:
Health: Health:
Shape: Circle
Radius: 128
Armor: Armor:
Type: None Type: None
RevealsShroud: RevealsShroud:
@@ -334,6 +334,9 @@
DeathTypes: TiberiumDeath DeathTypes: TiberiumDeath
Voiced: Voiced:
VoiceSet: GenericVoice VoiceSet: GenericVoice
HitShape:
Type: Circle
Radius: 128
^Soldier: ^Soldier:
Inherits: ^Infantry Inherits: ^Infantry
@@ -391,8 +394,6 @@
Huntable: Huntable:
Health: Health:
HP: 1000 HP: 1000
Shape: Circle
Radius: 128
Armor: Armor:
Type: Wood Type: Wood
Buildable: Buildable:
@@ -441,6 +442,9 @@
DeathSounds: DeathSounds:
Voiced: Voiced:
VoiceSet: DinoVoice VoiceSet: DinoVoice
HitShape:
Type: Circle
Radius: 128
^Viceroid: ^Viceroid:
Inherits@1: ^ExistsInWorld Inherits@1: ^ExistsInWorld
@@ -448,8 +452,6 @@
Huntable: Huntable:
Health: Health:
HP: 300 HP: 300
Shape: Circle
Radius: 427
Armor: Armor:
Type: Wood Type: Wood
RevealsShroud: RevealsShroud:
@@ -500,6 +502,9 @@
Terrain: Tiberium, BlueTiberium Terrain: Tiberium, BlueTiberium
Voiced: Voiced:
VoiceSet: DinoVoice VoiceSet: DinoVoice
HitShape:
Type: Circle
Radius: 427
^Plane: ^Plane:
Inherits@1: ^ExistsInWorld Inherits@1: ^ExistsInWorld
@@ -548,6 +553,7 @@
GenericName: Ship GenericName: Ship
Voiced: Voiced:
VoiceSet: VehicleVoice VoiceSet: VehicleVoice
HitShape:
^Building: ^Building:
Inherits@1: ^ExistsInWorld Inherits@1: ^ExistsInWorld
@@ -710,7 +716,8 @@
ScriptTriggers: ScriptTriggers:
Health: Health:
HP: 100 HP: 100
Shape: Rectangle HitShape:
Type: Rectangle
TopLeft: -512, -512 TopLeft: -512, -512
BottomRight: 512, 512 BottomRight: 512, 512
@@ -752,6 +759,7 @@
AutoTargetIgnore: AutoTargetIgnore:
HiddenUnderShroud: HiddenUnderShroud:
ScriptTriggers: ScriptTriggers:
HitShape:
^TreeHusk: ^TreeHusk:
Inherits@1: ^SpriteActor Inherits@1: ^SpriteActor
@@ -812,6 +820,7 @@
Type: CenterPosition Type: CenterPosition
AutoTargetIgnore: AutoTargetIgnore:
WithFacingSpriteBody: WithFacingSpriteBody:
HitShape:
^Husk: ^Husk:
Inherits: ^CommonHuskDefaults Inherits: ^CommonHuskDefaults
@@ -869,6 +878,7 @@
DamagedSounds: xplos.aud DamagedSounds: xplos.aud
DestroyedSounds: xplobig4.aud DestroyedSounds: xplobig4.aud
ScriptTriggers: ScriptTriggers:
HitShape:
^Crate: ^Crate:
Inherits@1: ^SpriteActor Inherits@1: ^SpriteActor

View File

@@ -90,6 +90,7 @@ CAMERA.small:
OccupiesSpace: false OccupiesSpace: false
Health: Health:
HP: 1000 HP: 1000
HitShape:
RevealsShroud: RevealsShroud:
Range: 6c0 Range: 6c0
Type: CenterPosition Type: CenterPosition

View File

@@ -20,10 +20,11 @@ spicebloom.spawnpoint:
Actor: spicebloom Actor: spicebloom
Health: Health:
HP: 9999 HP: 9999
Shape: Circle
Radius: 1
Immobile: Immobile:
OccupiesSpace: false OccupiesSpace: false
HitShape:
Type: Circle
Radius: 1
spicebloom: spicebloom:
HiddenUnderShroud: HiddenUnderShroud:
@@ -48,8 +49,6 @@ spicebloom:
Immobile: Immobile:
Health: Health:
HP: 1 HP: 1
Shape: Circle
Radius: 512
Targetable: Targetable:
TargetTypes: Ground TargetTypes: Ground
RequiresForceFire: true RequiresForceFire: true
@@ -57,6 +56,9 @@ spicebloom:
Type: none Type: none
SpawnActorOnDeath: SpawnActorOnDeath:
Actor: spicebloom.spawnpoint Actor: spicebloom.spawnpoint
HitShape:
Type: Circle
Radius: 512
sandworm: sandworm:
Inherits@1: ^SpriteActor Inherits@1: ^SpriteActor
@@ -64,7 +66,9 @@ sandworm:
Name: Sandworm Name: Sandworm
Health: Health:
HP: 9990 HP: 9990
Radius: 256 HitShape:
Type: Circle
Radius: 256
Armor: Armor:
Type: heavy Type: heavy
Mobile: Mobile:

View File

@@ -173,6 +173,7 @@
RevealOnDeath: RevealOnDeath:
Duration: 100 Duration: 100
Radius: 2c512 Radius: 2c512
HitShape:
^Tank: ^Tank:
Inherits: ^Vehicle Inherits: ^Vehicle
@@ -192,6 +193,7 @@
AutoTargetIgnore: AutoTargetIgnore:
ScriptTriggers: ScriptTriggers:
WithFacingSpriteBody: WithFacingSpriteBody:
HitShape:
^VehicleHusk: ^VehicleHusk:
Inherits: ^Husk Inherits: ^Husk
@@ -229,6 +231,7 @@
Tooltip: Tooltip:
Name: Destroyed Tower Name: Destroyed Tower
ScriptTriggers: ScriptTriggers:
HitShape:
^Infantry: ^Infantry:
Inherits@1: ^ExistsInWorld Inherits@1: ^ExistsInWorld
@@ -236,8 +239,6 @@
Inherits@3: ^SpriteActor Inherits@3: ^SpriteActor
Huntable: Huntable:
Health: Health:
Shape: Circle
Radius: 96
Armor: Armor:
Type: none Type: none
RevealsShroud: RevealsShroud:
@@ -303,6 +304,9 @@
RevealOnFire: RevealOnFire:
RevealOnDeath: RevealOnDeath:
Duration: 100 Duration: 100
HitShape:
Type: Circle
Radius: 96
^Plane: ^Plane:
Inherits@1: ^ExistsInWorld Inherits@1: ^ExistsInWorld
@@ -318,6 +322,7 @@
DrawLineToTarget: DrawLineToTarget:
WithFacingSpriteBody: WithFacingSpriteBody:
WithShadow: WithShadow:
HitShape:
^Building: ^Building:
Inherits@1: ^ExistsInWorld Inherits@1: ^ExistsInWorld

View File

@@ -633,9 +633,6 @@ wall:
TerrainTypes: Rock, Concrete TerrainTypes: Rock, Concrete
Health: Health:
HP: 2000 HP: 2000
Shape: Rectangle
TopLeft: -512, -512
BottomRight: 512, 512
Armor: Armor:
Type: wall Type: wall
RevealsShroud: RevealsShroud:
@@ -663,6 +660,10 @@ wall:
Weapons: Debris2, Debris3 Weapons: Debris2, Debris3
Pieces: 1, 1 Pieces: 1, 1
Range: 1c512, 2c768 Range: 1c512, 2c768
HitShape:
Type: Rectangle
TopLeft: -512, -512
BottomRight: 512, 512
medium_gun_turret: medium_gun_turret:
Inherits: ^Defense Inherits: ^Defense

View File

@@ -97,6 +97,7 @@ MNLYR:
Image: MNLY Image: MNLY
Chronoshiftable: Chronoshiftable:
ReturnToOrigin: false ReturnToOrigin: false
HitShape:
FTUR: FTUR:
Health: Health:
@@ -164,6 +165,7 @@ MINVV:
Explodes: Explodes:
Weapon: CrateNuke Weapon: CrateNuke
EmptyWeapon: CrateNuke EmptyWeapon: CrateNuke
HitShape:
T17: T17:
Health: Health:

View File

@@ -209,6 +209,7 @@
RequiresCondition: parachute RequiresCondition: parachute
BodyOrientation: BodyOrientation:
UseClassicFacingFudge: True UseClassicFacingFudge: True
HitShape:
^Tank: ^Tank:
Inherits: ^Vehicle Inherits: ^Vehicle
@@ -237,8 +238,6 @@
DrawLineToTarget: DrawLineToTarget:
Health: Health:
HP: 25 HP: 25
Shape: Circle
Radius: 128
Armor: Armor:
Type: None Type: None
RevealsShroud: RevealsShroud:
@@ -324,6 +323,9 @@
OpeningSequence: open OpeningSequence: open
Offset: 0,0,427 Offset: 0,0,427
RequiresCondition: parachute RequiresCondition: parachute
HitShape:
Type: Circle
Radius: 128
^Soldier: ^Soldier:
Inherits: ^Infantry Inherits: ^Infantry
@@ -412,6 +414,7 @@
Voiced: Voiced:
VoiceSet: VehicleVoice VoiceSet: VehicleVoice
WithFacingSpriteBody: WithFacingSpriteBody:
HitShape:
^NeutralPlane: ^NeutralPlane:
Inherits@1: ^ExistsInWorld Inherits@1: ^ExistsInWorld
@@ -463,6 +466,7 @@
MustBeDestroyed: MustBeDestroyed:
Voiced: Voiced:
VoiceSet: GenericVoice VoiceSet: GenericVoice
HitShape:
^Plane: ^Plane:
Inherits: ^NeutralPlane Inherits: ^NeutralPlane
@@ -592,7 +596,8 @@
FrozenUnderFogUpdatedByGps: FrozenUnderFogUpdatedByGps:
Health: Health:
HP: 100 HP: 100
Shape: Rectangle HitShape:
Type: Rectangle
TopLeft: -512, -512 TopLeft: -512, -512
BottomRight: 512, 512 BottomRight: 512, 512
@@ -618,6 +623,7 @@
OpeningSound: cashturn.aud OpeningSound: cashturn.aud
ClosingSound: cashturn.aud ClosingSound: cashturn.aud
TerrainTypes: Clear, Road TerrainTypes: Clear, Road
HitShape:
^TechBuilding: ^TechBuilding:
Inherits: ^BasicBuilding Inherits: ^BasicBuilding
@@ -630,6 +636,7 @@
Name: Civilian Building Name: Civilian Building
GenericVisibility: None GenericVisibility: None
FrozenUnderFog: FrozenUnderFog:
HitShape:
^FakeBuilding: ^FakeBuilding:
Inherits: ^Building Inherits: ^Building
@@ -649,6 +656,7 @@
ZOffset: 256 ZOffset: 256
-EmitInfantryOnSell: -EmitInfantryOnSell:
-MustBeDestroyed: -MustBeDestroyed:
HitShape:
^InfiltratableFake: ^InfiltratableFake:
Targetable: Targetable:
@@ -678,6 +686,7 @@
Type: Light Type: Light
Targetable: Targetable:
TargetTypes: Ground, DetonateAttack TargetTypes: Ground, DetonateAttack
HitShape:
^CivBuilding: ^CivBuilding:
Inherits: ^TechBuilding Inherits: ^TechBuilding
@@ -748,6 +757,7 @@
ScriptTriggers: ScriptTriggers:
EditorTilesetFilter: EditorTilesetFilter:
ExcludeTilesets: INTERIOR ExcludeTilesets: INTERIOR
HitShape:
^TreeHusk: ^TreeHusk:
Inherits@1: ^SpriteActor Inherits@1: ^SpriteActor
@@ -773,6 +783,7 @@
AutoTargetIgnore: AutoTargetIgnore:
ScriptTriggers: ScriptTriggers:
WithFacingSpriteBody: WithFacingSpriteBody:
HitShape:
^Husk: ^Husk:
Inherits: ^BasicHusk Inherits: ^BasicHusk
@@ -842,6 +853,7 @@
Type: Concrete Type: Concrete
AutoTargetIgnore: AutoTargetIgnore:
ScriptTriggers: ScriptTriggers:
HitShape:
^Rock: ^Rock:
Inherits@1: ^SpriteActor Inherits@1: ^SpriteActor
@@ -926,6 +938,7 @@
TargetTypes: Ground TargetTypes: Ground
Immobile: Immobile:
OccupiesSpace: true OccupiesSpace: true
HitShape:
^DisabledOverlay: ^DisabledOverlay:
WithColoredOverlay@IDISABLE: WithColoredOverlay@IDISABLE:

View File

@@ -651,8 +651,6 @@ Ant:
VisualBounds: 30,30,0,-2 VisualBounds: 30,30,0,-2
Health: Health:
HP: 750 HP: 750
Shape: Circle
Radius: 469
Mobile: Mobile:
Speed: 99 Speed: 99
TurnSpeed: 12 TurnSpeed: 12
@@ -671,3 +669,6 @@ Ant:
UseDeathTypeSuffix: false UseDeathTypeSuffix: false
Voiced: Voiced:
VoiceSet: AntVoice VoiceSet: AntVoice
HitShape:
Type: Circle
Radius: 469

View File

@@ -365,3 +365,4 @@ HUNTER:
SelectionDecorations: SelectionDecorations:
Palette: pips Palette: pips
ActorLostNotification: ActorLostNotification:
HitShape:

View File

@@ -40,6 +40,7 @@ CABHUT:
HP: 500 HP: 500
Armor: Armor:
Type: Concrete Type: Concrete
HitShape:
LOBRDG_A: LOBRDG_A:
Inherits: ^LowBridge Inherits: ^LowBridge

View File

@@ -6,8 +6,6 @@ DOGGIE:
Name: Tiberian Fiend Name: Tiberian Fiend
Health: Health:
HP: 250 HP: 250
Shape: Circle
Radius: 213
Selectable: Selectable:
Bounds: 24,24 Bounds: 24,24
Valued: Valued:
@@ -35,6 +33,9 @@ DOGGIE:
DeathSequence: die- DeathSequence: die-
DeathTypes: DeathTypes:
FireDeath: burning FireDeath: burning
HitShape:
Type: Circle
Radius: 213
VISC_SML: VISC_SML:
Inherits: ^Visceroid Inherits: ^Visceroid
@@ -85,9 +86,6 @@ JFISH:
Name: Tiberium Floater Name: Tiberium Floater
Health: Health:
HP: 500 HP: 500
Shape: Circle
Radius: 363
VerticalTopOffset: 768
RevealsShroud: RevealsShroud:
Range: 5c0 Range: 5c0
Mobile: Mobile:
@@ -119,3 +117,7 @@ JFISH:
SoundFiles: floatmov.aud, flotmov2.aud, flotmov3.aud, flotmov4.aud SoundFiles: floatmov.aud, flotmov2.aud, flotmov3.aud, flotmov4.aud
Delay: 150, 450 Delay: 150, 450
Interval: 300, 800 Interval: 300, 800
HitShape:
Type: Circle
Radius: 363
VerticalTopOffset: 768

View File

@@ -283,7 +283,8 @@
ScriptTriggers: ScriptTriggers:
ConditionManager: ConditionManager:
Health: Health:
Shape: Rectangle HitShape:
Type: Rectangle
LocalYaw: 128 LocalYaw: 128
TopLeft: -512, -512 TopLeft: -512, -512
BottomRight: 512, 512 BottomRight: 512, 512
@@ -306,8 +307,6 @@
DrawLineToTarget: DrawLineToTarget:
Health: Health:
HP: 50 HP: 50
Shape: Circle
Radius: 128
Armor: Armor:
Type: None Type: None
Valued: Valued:
@@ -382,6 +381,9 @@
RevealOnFire: RevealOnFire:
EntersTunnels: EntersTunnels:
Voice: Move Voice: Move
HitShape:
Type: Circle
Radius: 128
^RegularInfantryDeath: ^RegularInfantryDeath:
WithDeathAnimation@normal: WithDeathAnimation@normal:
@@ -568,6 +570,7 @@
RevealOnFire: RevealOnFire:
EntersTunnels: EntersTunnels:
Voice: Move Voice: Move
HitShape:
^Tank: ^Tank:
Inherits: ^Vehicle Inherits: ^Vehicle
@@ -641,6 +644,7 @@
RenderVoxels: RenderVoxels:
WithVoxelBody: WithVoxelBody:
RevealOnFire: RevealOnFire:
HitShape:
^Helicopter: ^Helicopter:
Inherits: ^Aircraft Inherits: ^Aircraft
@@ -673,6 +677,7 @@
Spins: true Spins: true
Moves: true Moves: true
Velocity: 86 Velocity: 86
HitShape:
^Visceroid: ^Visceroid:
Inherits@1: ^ExistsInWorld Inherits@1: ^ExistsInWorld
@@ -681,9 +686,6 @@
Huntable: Huntable:
DrawLineToTarget: DrawLineToTarget:
Health: Health:
Shape: Circle
Radius: 256
VerticalTopOffset: 512
Armor: Armor:
Type: Light Type: Light
Mobile: Mobile:
@@ -715,6 +717,10 @@
RevealOnFire: RevealOnFire:
EntersTunnels: EntersTunnels:
Voice: Move Voice: Move
HitShape:
Type: Circle
Radius: 256
VerticalTopOffset: 512
^BlossomTree: ^BlossomTree:
Inherits@1: ^SpriteActor Inherits@1: ^SpriteActor
@@ -854,6 +860,7 @@
Weapons: SmallDebris Weapons: SmallDebris
Pieces: 3, 7 Pieces: 3, 7
Range: 2c0, 5c0 Range: 2c0, 5c0
HitShape:
^TerrainOverlay: ^TerrainOverlay:
AlwaysVisible: AlwaysVisible:
@@ -898,11 +905,6 @@
Cost: 250 Cost: 250
Health: Health:
HP: 350 HP: 350
Shape: Rectangle
LocalYaw: 128
TopLeft: -512, -512
BottomRight: 512, 512
VerticalTopOffset: 768
Armor: Armor:
Type: Heavy Type: Heavy
LineBuildNode: LineBuildNode:
@@ -924,13 +926,16 @@
BlocksProjectilesHeight: 768 BlocksProjectilesHeight: 768
Buildable: Buildable:
Description: Automated barrier that opens for allied units. Description: Automated barrier that opens for allied units.
HitShape:
Type: Rectangle
LocalYaw: 128
TopLeft: -512, -512
BottomRight: 512, 512
VerticalTopOffset: 768
^Gate_A: ^Gate_A:
Inherits: ^Gate Inherits: ^Gate
Health: Health:
Shape: Rectangle
TopLeft: -512, -1536
BottomRight: 512, 1536
Gate: Gate:
Dimensions: 3,1 Dimensions: 3,1
Footprint: xxx Footprint: xxx
@@ -938,13 +943,14 @@
WallConnections: -1,0, 3,0 WallConnections: -1,0, 3,0
LineBuildNode: LineBuildNode:
Connections: -1,0, 1,0 Connections: -1,0, 1,0
HitShape:
Type: Rectangle
TopLeft: -512, -1536
BottomRight: 512, 1536
^Gate_B: ^Gate_B:
Inherits: ^Gate Inherits: ^Gate
Health: Health:
Shape: Rectangle
TopLeft: -1536, -512
BottomRight: 1536, 512
Gate: Gate:
Dimensions: 1,3 Dimensions: 1,3
Footprint: x x x Footprint: x x x
@@ -952,6 +958,10 @@
WallConnections: 0,-1, 0,3 WallConnections: 0,-1, 0,3
LineBuildNode: LineBuildNode:
Connections: 0,-1, 0,1 Connections: 0,-1, 0,1
HitShape:
Type: Rectangle
TopLeft: -1536, -512
BottomRight: 1536, 512
^HealsOnTiberium: ^HealsOnTiberium:
DamagedByTerrain: DamagedByTerrain:

View File

@@ -168,6 +168,7 @@ JUMPJET.Husk:
WithSpriteBody: WithSpriteBody:
Sequence: die-falling Sequence: die-falling
Health: Health:
HitShape:
ConditionManager: ConditionManager:
GrantConditionOnTerrain: GrantConditionOnTerrain:
TerrainTypes: Water TerrainTypes: Water

View File

@@ -97,3 +97,4 @@ FLAMEGUY:
WithDeathAnimation: WithDeathAnimation:
FallbackSequence: die FallbackSequence: die
UseDeathTypeSuffix: false UseDeathTypeSuffix: false
HitShape: