diff --git a/mods/ts/rules/nod-structures.yaml b/mods/ts/rules/nod-structures.yaml index c7664a5d2e..3062ce436a 100644 --- a/mods/ts/rules/nod-structures.yaml +++ b/mods/ts/rules/nod-structures.yaml @@ -75,6 +75,7 @@ NAAPWR: PowerTooltip: SelectionDecorations: VisualBounds: 100, 74, 0, -12 + ProvidesPrerequisite@buildingname: NAHAND: Inherits: ^Building diff --git a/mods/ts/rules/nod-support.yaml b/mods/ts/rules/nod-support.yaml index 2ded7c09ab..19ad59ee08 100644 --- a/mods/ts/rules/nod-support.yaml +++ b/mods/ts/rules/nod-support.yaml @@ -41,6 +41,111 @@ NAGATE_B: Tooltip: Name: Nod Gate +NAPOST: + Inherits: ^Building + Buildable: + Queue: Defense + BuildPaletteOrder: 1001 + Prerequisites: naapwr, ~structures.nod + Description: Stops infantry and blocks enemy fire.\nCan NOT be crushed by tanks. + Valued: + Cost: 200 + Tooltip: + Name: Laser Fence + Health: + HP: 300 + Armor: + Type: Concrete + LineBuild: + Range: 10 + NodeTypes: laserfencenode + SegmentType: nafnce + SegmentsRequireNode: true + WithMakeAnimation: + Condition: make-animation-playing + Selectable: + Bounds: 42, 44, 0, -12 + LineBuildNode: + Types: laserfencenode + Power: + Amount: -25 + RevealsShroud: + Range: 4c0 + WithIdleOverlay@LIGHTS: + RequiresCondition: !disabled + Sequence: lights + WithIdleOverlay@CHAINOFLIGHTS: + RequiresCondition: !disabled + Sequence: chainoflights + CanPowerDown: + IndicatorPalette: mouse + PowerupSpeech: EnablePower + PowerdownSpeech: DisablePower + RequiresPower: + GrantConditionOnDisabled: + Condition: disabled + LineBuildSegmentExternalCondition: + RequiresCondition: !disabled && !make-animation-playing + Condition: active-posts + +NAFNCE: + Inherits: ^Wall + Valued: + Cost: 50 + CustomSellValue: + Value: 0 + Tooltip: + Name: Laser Fence + LineBuild: + NodeTypes: laserfence + LineBuildNode: + Types: laserfence + -Crushable: + -Sellable: + -Targetable: + -Building: + EnergyWall: + ActiveCondition: active-posts == 2 + Weapon: LaserFence + GrantConditionOnLineBuildDirection@X: + Direction: X + Condition: laserfence-direction-x + GrantConditionOnLineBuildDirection@Y: + Direction: Y + Condition: laserfence-direction-y + -WithWallSpriteBody: + CustomSelectionSize: + CustomBounds: 48, 24 + ExternalCondition@ACTIVE: + Condition: active-posts + WithWallSpriteBody@XENABLED: + RequiresCondition: laserfence-direction-x && active-posts == 2 + Type: laserfence + Sequence: enabled-x + WithWallSpriteBody@YENABLED: + RequiresCondition: laserfence-direction-y && active-posts == 2 + Type: laserfence + Sequence: enabled-y + WithSpriteBody@XDISABLED: + RequiresCondition: laserfence-direction-x && active-posts < 2 + Sequence: disabled-x + WithSpriteBody@YDISABLED: + RequiresCondition: laserfence-direction-y && active-posts < 2 + Sequence: disabled-y + BlocksProjectiles: + RequiresCondition: active-posts == 2 + Height: 640 + DamageMultiplier: # Prevent all normal damage, but still allows direct kills from the post + Modifier: 0 + Explodes: + Weapon: BuildingExplosions + EmptyWeapon: BuildingExplosions + Type: Footprint + ThrowsShrapnel@SMALL: + Weapons: SmallDebris + Pieces: 0, 1 + Range: 2c0, 5c0 + NALASR: Inherits: ^Defense Valued: diff --git a/mods/ts/sequences/structures.yaml b/mods/ts/sequences/structures.yaml index e4fe52fd68..b96c8a2d0f 100644 --- a/mods/ts/sequences/structures.yaml +++ b/mods/ts/sequences/structures.yaml @@ -859,6 +859,90 @@ nagate_b: UseTilesetCode: false -DepthSprite: +napost: + Defaults: + Offset: 0, -12, 13 + UseTilesetCode: true + DepthSprite: isodepth.shp + idle: + Start: 0 + ShadowStart: 3 + damaged-idle: + Start: 1 + ShadowStart: 4 + lights: napost_b + Start: 0 + Length: 7 + ShadowStart: 14 + Tick: 80 + damaged-lights: napost_b + Start: 7 + Length: 7 + ShadowStart: 21 + Tick: 80 + chainoflights: napost_a + Start: 0 + Length: 12 + ShadowStart: 24 + Tick: 80 + damaged-chainoflights: napost_a + Start: 12 + Length: 12 + ShadowStart: 36 + Tick: 80 + dead: + Start: 2 + Tick: 400 + ShadowStart: 5 + make: napostmk + Start: 0 + Length: 12 + ShadowStart: 12 + emp-overlay: emp_fx01 + Length: * + Offset: 0, 0, 25 + UseTilesetCode: false + ZOffset: 512 + BlendMode: Additive + -DepthSprite: + icon: lasricon + Offset: 0, 0 + UseTilesetCode: false + -DepthSprite: + +nafnce: + Defaults: + Offset: 0, -12, 13 + UseTilesetCode: true + DepthSprite: isodepth.shp + idle: + Length: 1 + disabled-x: + Start: 8 + Length: 1 + Offset: 0, -12, 1 + ZRamp: 1 + -DepthSprite: + disabled-y: + Start: 12 + Length: 1 + Offset: 0, -12, 1 + ZRamp: 1 + -DepthSprite: + enabled-x: + Frames: 3,3,1,1,3,3,1,1,2,2,0,0,2,2,0,0 + Length: 16 + enabled-y: + Frames: 7,5,7,5,6,4,6,4,7,5,7,5,6,4,6,4 + Length: 16 + emp-overlay: emp_fx01 + Length: * + Offset: 0, 0, 25 + UseTilesetCode: false + ZOffset: 512 + BlendMode: Additive + -DepthSprite: + nawall: Defaults: Offset: 0, -12, 12 diff --git a/mods/ts/weapons/energyweapons.yaml b/mods/ts/weapons/energyweapons.yaml index aae4a7e719..5f61791298 100644 --- a/mods/ts/weapons/energyweapons.yaml +++ b/mods/ts/weapons/energyweapons.yaml @@ -198,3 +198,10 @@ TurretLaserFire: SecondaryBeamColor: FF000030 Warhead@1Dam: SpreadDamage Damage: 30 + +LaserFence: + Projectile: InstantHit + Warhead@1Dam: TargetDamage + DebugOverlayColor: FF0000 + Damage: 99999 + DamageTypes: FireDeath