Merge pull request #11180 from Mailaender/burning-trees

Added burning trees to the Tiberian Dawn mod
This commit is contained in:
Oliver Brakmann
2016-05-29 15:32:28 +02:00
13 changed files with 573 additions and 105 deletions

View File

@@ -0,0 +1,36 @@
#region Copyright & License Information
/*
* Copyright 2007-2016 The OpenRA Developers (see AUTHORS)
* This file is part of OpenRA, which is free software. It is made
* available to you under the terms of the GNU General Public License
* as published by the Free Software Foundation, either version 3 of
* the License, or (at your option) any later version. For more
* information, see COPYING.
*/
#endregion
using System;
using System.Linq;
using OpenRA.Mods.Common.Traits;
using OpenRA.Traits;
namespace OpenRA.Mods.Common.Lint
{
class CheckBuildingFootprint : ILintRulesPass
{
public void Run(Action<string> emitError, Action<string> emitWarning, Ruleset rules)
{
foreach (var actorInfo in rules.Actors)
{
var building = actorInfo.Value.TraitInfoOrDefault<BuildingInfo>();
if (building == null)
continue;
var footprint = building.Footprint.Where(x => !char.IsWhiteSpace(x)).ToArray();
var dimension = building.Dimensions;
if (footprint.Length != dimension.X * dimension.Y)
emitError("Invalid building footprint/dimension for " + actorInfo.Key);
}
}
}
}

View File

@@ -179,6 +179,7 @@
<Compile Include="HitShapes\Rectangle.cs" />
<Compile Include="HitShapes\Capsule.cs" />
<Compile Include="HitShapes\Circle.cs" />
<Compile Include="Lint\CheckBuildingFootprint.cs" />
<Compile Include="Lint\CheckSequences.cs" />
<Compile Include="Lint\CheckPalettes.cs" />
<Compile Include="Lint\CheckPlayers.cs" />
@@ -431,6 +432,7 @@
<Compile Include="Traits\Render\WithChargeAnimation.cs" />
<Compile Include="Traits\Render\WithChargeOverlay.cs" />
<Compile Include="Traits\Render\WithCrateBody.cs" />
<Compile Include="Traits\Render\WithDamageOverlay.cs" />
<Compile Include="Traits\Render\WithDeathAnimation.cs" />
<Compile Include="Traits\Render\WithDecoration.cs" />
<Compile Include="Traits\Render\WithDockingAnimation.cs" />
@@ -447,7 +449,6 @@
<Compile Include="Traits\Render\WithResources.cs" />
<Compile Include="Traits\Render\WithSpriteRotorOverlay.cs" />
<Compile Include="Traits\Render\WithShadow.cs" />
<Compile Include="Traits\Render\WithSmoke.cs" />
<Compile Include="Traits\Render\WithSpriteBody.cs" />
<Compile Include="Traits\Render\WithSpriteTurret.cs" />
<Compile Include="Traits\Render\WithFacingSpriteBody.cs" />

View File

@@ -0,0 +1,74 @@
#region Copyright & License Information
/*
* Copyright 2007-2016 The OpenRA Developers (see AUTHORS)
* This file is part of OpenRA, which is free software. It is made
* available to you under the terms of the GNU General Public License
* as published by the Free Software Foundation, either version 3 of
* the License, or (at your option) any later version. For more
* information, see COPYING.
*/
#endregion
using System.Collections.Generic;
using OpenRA.Graphics;
using OpenRA.Mods.Common.Warheads;
using OpenRA.Traits;
namespace OpenRA.Mods.Common.Traits.Render
{
[Desc("Renders an overlay when the actor is taking heavy damage.")]
public class WithDamageOverlayInfo : ITraitInfo, Requires<RenderSpritesInfo>
{
public readonly string Image = "smoke_m";
[SequenceReference("Image")] public readonly string IdleSequence = "idle";
[SequenceReference("Image")] public readonly string LoopSequence = "loop";
[SequenceReference("Image")] public readonly string EndSequence = "end";
[Desc("Damage types that this should be used for (defined on the warheads).",
"Leave empty to disable all filtering.")]
public readonly HashSet<string> DamageTypes = new HashSet<string>();
[Desc("Trigger when Undamaged, Light, Medium, Heavy, Critical or Dead.")]
public readonly DamageState MinimumDamageState = DamageState.Heavy;
public readonly DamageState MaximumDamageState = DamageState.Dead;
public object Create(ActorInitializer init) { return new WithDamageOverlay(init.Self, this); }
}
public class WithDamageOverlay : INotifyDamage
{
readonly WithDamageOverlayInfo info;
readonly Animation anim;
bool isSmoking;
public WithDamageOverlay(Actor self, WithDamageOverlayInfo info)
{
this.info = info;
var rs = self.Trait<RenderSprites>();
anim = new Animation(self.World, info.Image);
rs.Add(new AnimationWithOffset(anim, null, () => !isSmoking));
}
public void Damaged(Actor self, AttackInfo e)
{
var warhead = e.Warhead as DamageWarhead;
if (info.DamageTypes.Count > 0 && (warhead != null && !warhead.DamageTypes.Overlaps(info.DamageTypes)))
return;
if (isSmoking) return;
if (e.Damage < 0) return; /* getting healed */
if (e.DamageState < info.MinimumDamageState) return;
if (e.DamageState > info.MaximumDamageState) return;
isSmoking = true;
anim.PlayThen(info.IdleSequence,
() => anim.PlayThen(info.LoopSequence,
() => anim.PlayThen(info.EndSequence,
() => isSmoking = false)));
}
}
}

View File

@@ -1,59 +0,0 @@
#region Copyright & License Information
/*
* Copyright 2007-2016 The OpenRA Developers (see AUTHORS)
* This file is part of OpenRA, which is free software. It is made
* available to you under the terms of the GNU General Public License
* as published by the Free Software Foundation, either version 3 of
* the License, or (at your option) any later version. For more
* information, see COPYING.
*/
#endregion
using OpenRA.Graphics;
using OpenRA.Traits;
namespace OpenRA.Mods.Common.Traits.Render
{
[Desc("Renders an overlay when the actor is taking heavy damage.")]
public class WithSmokeInfo : ITraitInfo, Requires<RenderSpritesInfo>
{
public readonly string Sequence = "smoke_m";
[SequenceReference("Sequence")] public readonly string IdleSequence = "idle";
[SequenceReference("Sequence")] public readonly string LoopSequence = "loop";
[SequenceReference("Sequence")] public readonly string EndSequence = "end";
public object Create(ActorInitializer init) { return new WithSmoke(init.Self, this); }
}
public class WithSmoke : INotifyDamage
{
readonly WithSmokeInfo info;
readonly Animation anim;
bool isSmoking;
public WithSmoke(Actor self, WithSmokeInfo info)
{
this.info = info;
var rs = self.Trait<RenderSprites>();
anim = new Animation(self.World, info.Sequence);
rs.Add(new AnimationWithOffset(anim, null, () => !isSmoking));
}
public void Damaged(Actor self, AttackInfo e)
{
if (isSmoking) return;
if (e.Damage < 0) return; /* getting healed */
if (e.DamageState < DamageState.Heavy) return;
isSmoking = true;
anim.PlayThen(info.IdleSequence,
() => anim.PlayThen(info.LoopSequence,
() => anim.PlayBackwardsThen(info.EndSequence,
() => isSmoking = false)));
}
}
}

View File

@@ -788,6 +788,22 @@ namespace OpenRA.Mods.Common.UtilityCommands
n.Key = "DetonationDelay";
}
// WithSmoke was refactored to become more generic and Sequence/Image notation has been unified.
if (engineVersion < 20160528)
{
if (depth == 1 && node.Key.StartsWith("WithSmoke"))
{
var s = node.Value.Nodes.FirstOrDefault(n => n.Key == "Sequence");
if (s != null)
s.Key = "Image";
var parts = node.Key.Split('@');
node.Key = "WithDamageOverlay";
if (parts.Length > 1)
node.Key += "@" + parts[1];
}
}
UpgradeActorRules(engineVersion, ref node.Value.Nodes, node, depth + 1);
}
}

View File

@@ -79,7 +79,7 @@
HiddenUnderFog:
AttackMove:
DrawLineToTarget:
WithSmoke:
WithDamageOverlay:
WithFacingSpriteBody:
Explodes:
Weapon: UnitExplodeSmall
@@ -447,7 +447,7 @@
ActorLostNotification:
AttackMove:
DrawLineToTarget:
WithSmoke:
WithDamageOverlay:
Explodes:
Weapon: UnitExplodeShip
EmptyWeapon: UnitExplodeShip
@@ -635,10 +635,40 @@
HP: 500
Armor:
Type: Wood
Targetable:
TargetTypes: Trees
WithDamageOverlay@SmallBurn:
DamageType: Incendiary
Image: burn-s
MinimumDamageState: Light
MaximumDamageState: Medium
WithDamageOverlay@MediumBurn:
DamageType: Incendiary
Image: burn-m
MinimumDamageState: Medium
MaximumDamageState: Heavy
WithDamageOverlay@LargeBurn:
DamageType: Incendiary
Image: burn-l
MinimumDamageState: Heavy
MaximumDamageState: Dead
AutoTargetIgnore:
HiddenUnderShroud:
ScriptTriggers:
^TreeHusk:
Inherits@1: ^SpriteActor
AppearsOnRadar:
Building:
Footprint: __ x_
Dimensions: 2,2
WithSpriteBody:
Tooltip:
Name: Tree (Burnt)
ShowOwnerRow: false
FrozenUnderFog:
ScriptTriggers:
^TibTree:
Inherits@1: ^SpriteActor
Tooltip:

View File

@@ -69,42 +69,99 @@ T01:
Inherits: ^Tree
EditorTilesetFilter:
ExcludeTilesets: DESERT
SpawnActorOnDeath:
Actor: T01.Husk
T01.Husk:
Inherits: ^TreeHusk
EditorTilesetFilter:
ExcludeTilesets: DESERT
T02:
Inherits: ^Tree
EditorTilesetFilter:
ExcludeTilesets: DESERT
SpawnActorOnDeath:
Actor: T02.Husk
T02.Husk:
Inherits: ^TreeHusk
EditorTilesetFilter:
ExcludeTilesets: DESERT
T03:
Inherits: ^Tree
EditorTilesetFilter:
ExcludeTilesets: DESERT
SpawnActorOnDeath:
Actor: T03.Husk
T03.Husk:
Inherits: ^TreeHusk
EditorTilesetFilter:
ExcludeTilesets: DESERT
T04:
Inherits: ^Tree
EditorTilesetFilter:
RequireTilesets: DESERT
SpawnActorOnDeath:
Actor: T04.Husk
T04.Husk:
Inherits: ^TreeHusk
EditorTilesetFilter:
RequireTilesets: DESERT
T05:
Inherits: ^Tree
EditorTilesetFilter:
ExcludeTilesets: DESERT
SpawnActorOnDeath:
Actor: T05.Husk
T05.Husk:
Inherits: ^TreeHusk
EditorTilesetFilter:
ExcludeTilesets: DESERT
T06:
Inherits: ^Tree
EditorTilesetFilter:
ExcludeTilesets: DESERT
SpawnActorOnDeath:
Actor: T06.Husk
T06.Husk:
Inherits: ^TreeHusk
EditorTilesetFilter:
ExcludeTilesets: DESERT
T07:
Inherits: ^Tree
EditorTilesetFilter:
ExcludeTilesets: DESERT
SpawnActorOnDeath:
Actor: T07.Husk
T07.Husk:
Inherits: ^TreeHusk
EditorTilesetFilter:
ExcludeTilesets: DESERT
T08:
Inherits: ^Tree
Building:
Footprint: x_
Dimensions: 2,1
SpawnActorOnDeath:
Actor: T08.Husk
T08.Husk:
Inherits: ^TreeHusk
Building:
Footprint: x_
Dimensions: 2,1
T09:
Inherits: ^Tree
@@ -113,6 +170,16 @@ T09:
Dimensions: 2,1
EditorTilesetFilter:
RequireTilesets: DESERT
SpawnActorOnDeath:
Actor: T09.Husk
T09.Husk:
Inherits: ^TreeHusk
Building:
Footprint: x_
Dimensions: 2,1
EditorTilesetFilter:
ExcludeTilesets: DESERT
T10:
Inherits: ^Tree
@@ -120,6 +187,15 @@ T10:
Footprint: __ xx
EditorTilesetFilter:
ExcludeTilesets: DESERT
SpawnActorOnDeath:
Actor: T10.Husk
T10.Husk:
Inherits: ^TreeHusk
Building:
Footprint: __ xx
EditorTilesetFilter:
ExcludeTilesets: DESERT
T11:
Inherits: ^Tree
@@ -127,21 +203,53 @@ T11:
Footprint: __ xx
EditorTilesetFilter:
ExcludeTilesets: DESERT
SpawnActorOnDeath:
Actor: T11.Husk
T11.Husk:
Inherits: ^TreeHusk
Building:
Footprint: __ xx
EditorTilesetFilter:
ExcludeTilesets: DESERT
T12:
Inherits: ^Tree
EditorTilesetFilter:
ExcludeTilesets: DESERT
SpawnActorOnDeath:
Actor: T12.Husk
T12.Husk:
Inherits: ^TreeHusk
Building:
EditorTilesetFilter:
ExcludeTilesets: DESERT
T13:
Inherits: ^Tree
EditorTilesetFilter:
ExcludeTilesets: DESERT
SpawnActorOnDeath:
Actor: T13.Husk
T13.Husk:
Inherits: ^TreeHusk
Building:
EditorTilesetFilter:
ExcludeTilesets: DESERT
T14:
Inherits: ^Tree
EditorTilesetFilter:
ExcludeTilesets: DESERT
SpawnActorOnDeath:
Actor: T14.Husk
T14.Husk:
Inherits: ^TreeHusk
EditorTilesetFilter:
ExcludeTilesets: DESERT
T15:
Inherits: ^Tree
@@ -150,21 +258,52 @@ T15:
Dimensions: 3,2
EditorTilesetFilter:
ExcludeTilesets: DESERT
SpawnActorOnDeath:
Actor: T15.Husk
T15.Husk:
Inherits: ^TreeHusk
Building:
Footprint: ___ xx_
Dimensions: 3,2
EditorTilesetFilter:
ExcludeTilesets: DESERT
T16:
Inherits: ^Tree
EditorTilesetFilter:
ExcludeTilesets: DESERT
SpawnActorOnDeath:
Actor: T16.Husk
T16.Husk:
Inherits: ^TreeHusk
EditorTilesetFilter:
ExcludeTilesets: DESERT
T17:
Inherits: ^Tree
EditorTilesetFilter:
ExcludeTilesets: DESERT
SpawnActorOnDeath:
Actor: T17.Husk
T17.Husk:
Inherits: ^TreeHusk
EditorTilesetFilter:
ExcludeTilesets: DESERT
T18:
Inherits: ^Tree
EditorTilesetFilter:
RequireTilesets: DESERT
SpawnActorOnDeath:
Actor: T18.Husk
T18.Husk:
Inherits: ^TreeHusk
EditorTilesetFilter:
RequireTilesets: DESERT
TC01:
Inherits: ^Tree
@@ -173,6 +312,16 @@ TC01:
Dimensions: 3,2
EditorTilesetFilter:
ExcludeTilesets: DESERT
SpawnActorOnDeath:
Actor: TC01.Husk
TC01.Husk:
Inherits: ^TreeHusk
Building:
Footprint: ___ xx_
Dimensions: 3,2
EditorTilesetFilter:
ExcludeTilesets: DESERT
TC02:
Inherits: ^Tree
@@ -181,6 +330,16 @@ TC02:
Dimensions: 3,2
EditorTilesetFilter:
ExcludeTilesets: DESERT
SpawnActorOnDeath:
Actor: TC02.Husk
TC02.Husk:
Inherits: ^TreeHusk
Building:
Footprint: _x_ xx_
Dimensions: 3,2
EditorTilesetFilter:
ExcludeTilesets: DESERT
TC03:
Inherits: ^Tree
@@ -189,6 +348,16 @@ TC03:
Dimensions: 3,2
EditorTilesetFilter:
ExcludeTilesets: DESERT
SpawnActorOnDeath:
Actor: TC03.Husk
TC03.Husk:
Inherits: ^TreeHusk
Building:
Footprint: _x_ xx_
Dimensions: 3,2
EditorTilesetFilter:
ExcludeTilesets: DESERT
TC04:
Inherits: ^Tree
@@ -197,6 +366,16 @@ TC04:
Dimensions: 4,3
EditorTilesetFilter:
ExcludeTilesets: DESERT
SpawnActorOnDeath:
Actor: TC04.Husk
TC04.Husk:
Inherits: ^TreeHusk
Building:
Footprint: ____ xxx_ x___
Dimensions: 4,3
EditorTilesetFilter:
ExcludeTilesets: DESERT
TC05:
Inherits: ^Tree
@@ -205,3 +384,13 @@ TC05:
Dimensions: 4,3
EditorTilesetFilter:
ExcludeTilesets: DESERT
SpawnActorOnDeath:
Actor: TC05.Husk
TC05.Husk:
Inherits: ^TreeHusk
Building:
Footprint: __x_ xxx_ _xx_
Dimensions: 4,3
EditorTilesetFilter:
ExcludeTilesets: DESERT

View File

@@ -60,6 +60,14 @@ tc04:
idle:
damaged-idle:
Start: 1
tc04.husk:
Defaults: tc04
UseTilesetExtension: true
TilesetOverrides:
DESERT: TEMPERAT
idle:
Start: 2
dead:
Start: 2
Length: 8
@@ -73,6 +81,14 @@ tc05:
idle:
damaged-idle:
Start: 1
tc05.husk:
Defaults: tc05
UseTilesetExtension: true
TilesetOverrides:
DESERT: TEMPERAT
idle:
Start: 2
dead:
Start: 2
Length: 8
@@ -84,7 +100,13 @@ tc03:
TilesetOverrides:
DESERT: TEMPERAT
idle:
damaged-idle:
tc03.husk:
Defaults: tc03
UseTilesetExtension: true
TilesetOverrides:
DESERT: TEMPERAT
idle:
Start: 1
dead:
Start: 2
@@ -97,7 +119,13 @@ tc02:
TilesetOverrides:
DESERT: TEMPERAT
idle:
damaged-idle:
tc02.husk:
Defaults: tc02
UseTilesetExtension: true
TilesetOverrides:
DESERT: TEMPERAT
idle:
Start: 1
dead:
Start: 2
@@ -110,7 +138,13 @@ tc01:
TilesetOverrides:
DESERT: TEMPERAT
idle:
damaged-idle:
tc01.husk:
Defaults: tc01
UseTilesetExtension: true
TilesetOverrides:
DESERT: TEMPERAT
idle:
Start: 1
dead:
Start: 2
@@ -121,7 +155,11 @@ t18:
Defaults:
AddExtension: false
idle: t18.des
damaged-idle: t18.des
t18.husk:
Defaults: t18
AddExtension: false
idle: t18.des
Start: 1
dead: t18.des
Start: 2
@@ -134,7 +172,13 @@ t17:
TilesetOverrides:
DESERT: TEMPERAT
idle:
damaged-idle:
t17.husk:
Defaults: t17
UseTilesetExtension: true
TilesetOverrides:
DESERT: TEMPERAT
idle:
Start: 1
dead:
Start: 2
@@ -147,7 +191,13 @@ t16:
TilesetOverrides:
DESERT: TEMPERAT
idle:
damaged-idle:
t16.husk:
Defaults: t16
UseTilesetExtension: true
TilesetOverrides:
DESERT: TEMPERAT
idle:
Start: 1
dead:
Start: 2
@@ -160,7 +210,13 @@ t15:
TilesetOverrides:
DESERT: TEMPERAT
idle:
damaged-idle:
t15.husk:
Defaults: t15
UseTilesetExtension: true
TilesetOverrides:
DESERT: TEMPERAT
idle:
Start: 1
dead:
Start: 2
@@ -173,7 +229,13 @@ t14:
TilesetOverrides:
DESERT: TEMPERAT
idle:
damaged-idle:
t14.husk:
Defaults: t14
UseTilesetExtension: true
TilesetOverrides:
DESERT: TEMPERAT
idle:
Start: 1
dead:
Start: 2
@@ -186,7 +248,13 @@ t13:
TilesetOverrides:
DESERT: TEMPERAT
idle:
damaged-idle:
t13.husk:
Defaults: t13
UseTilesetExtension: true
TilesetOverrides:
DESERT: TEMPERAT
idle:
Start: 1
dead:
Start: 2
@@ -199,7 +267,13 @@ t12:
TilesetOverrides:
DESERT: TEMPERAT
idle:
damaged-idle:
t12.husk:
Defaults: t12
UseTilesetExtension: true
TilesetOverrides:
DESERT: TEMPERAT
idle:
Start: 1
dead:
Start: 2
@@ -212,7 +286,13 @@ t11:
TilesetOverrides:
DESERT: TEMPERAT
idle:
damaged-idle:
t11.husk:
Defaults: t11
UseTilesetExtension: true
TilesetOverrides:
DESERT: TEMPERAT
idle:
Start: 1
dead:
Start: 2
@@ -225,7 +305,13 @@ t10:
TilesetOverrides:
DESERT: TEMPERAT
idle:
damaged-idle:
t10.husk:
Defaults: t10
UseTilesetExtension: true
TilesetOverrides:
DESERT: TEMPERAT
idle:
Start: 1
dead:
Start: 2
@@ -236,7 +322,11 @@ t09:
Defaults:
AddExtension: false
idle: t09.des
damaged-idle: t09.des
t09.husk:
Defaults: t09
AddExtension: false
idle: t09.des
Start: 1
dead: t09.des
Start: 2
@@ -247,7 +337,13 @@ t08:
Defaults:
UseTilesetExtension: true
idle:
damaged-idle:
t08.husk:
Defaults: t08
UseTilesetExtension: true
TilesetOverrides:
DESERT: TEMPERAT
idle:
Start: 1
dead:
Start: 2
@@ -260,7 +356,13 @@ t07:
TilesetOverrides:
DESERT: TEMPERAT
idle:
damaged-idle:
t07.husk:
Defaults: t07
UseTilesetExtension: true
TilesetOverrides:
DESERT: TEMPERAT
idle:
Start: 1
dead:
Start: 2
@@ -273,7 +375,13 @@ t06:
TilesetOverrides:
DESERT: TEMPERAT
idle:
damaged-idle:
t06.husk:
Defaults: t06
UseTilesetExtension: true
TilesetOverrides:
DESERT: TEMPERAT
idle:
Start: 1
dead:
Start: 2
@@ -286,7 +394,13 @@ t05:
TilesetOverrides:
DESERT: TEMPERAT
idle:
damaged-idle:
t05.husk:
Defaults: t05
UseTilesetExtension: true
TilesetOverrides:
DESERT: TEMPERAT
idle:
Start: 1
dead:
Start: 2
@@ -297,7 +411,11 @@ t04:
Defaults:
AddExtension: false
idle: t04.des
damaged-idle: t04.des
t04.husk:
Defaults: t04
AddExtension: false
idle: t04.des
Start: 1
dead: t04.des
Start: 2
@@ -310,7 +428,13 @@ t03:
TilesetOverrides:
DESERT: TEMPERAT
idle:
damaged-idle:
t03.husk:
Defaults: t03
UseTilesetExtension: true
TilesetOverrides:
DESERT: TEMPERAT
idle:
Start: 1
dead:
Start: 2
@@ -323,7 +447,13 @@ t02:
TilesetOverrides:
DESERT: TEMPERAT
idle:
damaged-idle:
t02.husk:
Defaults: t02
UseTilesetExtension: true
TilesetOverrides:
DESERT: TEMPERAT
idle:
Start: 1
dead:
Start: 2
@@ -336,7 +466,13 @@ t01:
TilesetOverrides:
DESERT: TEMPERAT
idle:
damaged-idle:
t01.husk:
Defaults: t01
UseTilesetExtension: true
TilesetOverrides:
DESERT: TEMPERAT
idle:
Start: 1
dead:
Start: 2
@@ -913,4 +1049,4 @@ arco:
arco.husk:
idle: arco
Start: 1
Start: 1

View File

@@ -13,6 +13,45 @@ fire:
Offset: 0,-3
ZOffset: 1023
burn-l:
idle:
Length: *
ZOffset: 512
loop:
Start: 16
Length: 44
ZOffset: 512
end:
Start: 60
Length: 6
ZOffset: 512
burn-m:
idle:
Length: *
ZOffset: 512
loop:
Start: 16
Length: 44
ZOffset: 512
end:
Start: 60
Length: 6
ZOffset: 512
burn-s:
idle:
Length: *
ZOffset: 512
loop:
Start: 12
Length: 46
ZOffset: 512
end:
Start: 59
Length: 5
ZOffset: 512
120mm:
idle:
ZOffset: 1023
@@ -28,7 +67,8 @@ smoke_m:
Offset: 2, -5
ZOffset: 512
end:
Length: 26
Start: 26
Length: -26
Offset: 2, -5
ZOffset: 512
@@ -385,4 +425,4 @@ smokland:
Start: 60
Length: 32
Tick: 120
ZOffset: 1023
ZOffset: 1023

View File

@@ -1,4 +1,5 @@
Flamethrower:
ValidTargets: Ground, Trees
ReloadDelay: 55
Range: 2c512
InvalidTargets: Wall
@@ -8,13 +9,14 @@ Flamethrower:
Warhead@1Dam: SpreadDamage
Spread: 341
Damage: 40
ValidTargets: Ground, Trees
InvalidTargets: Wall
Versus:
None: 100
Wood: 100
Light: 100
Heavy: 20
DamageTypes: Prone50Percent, TriggerProne, FireDeath
DamageTypes: Prone50Percent, TriggerProne, FireDeath, Incendiary
Warhead@2Smu: LeaveSmudge
SmudgeType: Scorch
Warhead@3Eff: CreateEffect
@@ -22,6 +24,7 @@ Flamethrower:
ImpactSounds: flamer2.aud
BigFlamer:
ValidTargets: Ground, Trees
ReloadDelay: 50
Range: 3c512
InvalidTargets: Wall
@@ -34,12 +37,13 @@ BigFlamer:
Spread: 341
Damage: 75
InvalidTargets: Wall
ValidTargets: Ground, Trees
Versus:
None: 100
Wood: 100
Light: 67
Heavy: 25
DamageTypes: Prone50Percent, TriggerProne, FireDeath
DamageTypes: Prone50Percent, TriggerProne, FireDeath, Incendiary
Warhead@2Smu: LeaveSmudge
SmudgeType: Scorch
Warhead@3Eff: CreateEffect
@@ -93,7 +97,7 @@ Grenade:
ImpactSounds: xplos.aud
Napalm:
ValidTargets: Ground, Water
ValidTargets: Ground, Water, Trees
ReloadDelay: 4
Range: 2c0
Burst: 2
@@ -104,13 +108,13 @@ Napalm:
Spread: 341
Damage: 30
Falloff: 1000, 368, 135, 50, 18, 7, 0
ValidTargets: Ground, Water
ValidTargets: Ground, Water, Trees
Versus:
None: 100
Wood: 100
Light: 100
Heavy: 80
DamageTypes: Prone50Percent, TriggerProne, FireDeath
DamageTypes: Prone50Percent, TriggerProne, FireDeath, Incendiary
Warhead@2Smu: LeaveSmudge
SmudgeType: Scorch
Warhead@3Eff: CreateEffect

View File

@@ -1,17 +1,17 @@
Atomic:
ValidTargets: Ground, Air
ValidTargets: Ground, Air, Trees
Report: nukemisl.aud
Warhead@1Dam_impact: SpreadDamage
Spread: 1c0
Damage: 150
Falloff: 1000, 368, 135, 50, 18, 7, 0
ValidTargets: Ground, Air
ValidTargets: Ground, Air, Trees
Versus:
None: 100
Wood: 100
Light: 60
Heavy: 50
DamageTypes: Prone50Percent, TriggerProne, FireDeath
DamageTypes: Prone50Percent, TriggerProne, FireDeath, Incendiary
Warhead@2Eff_impact: CreateEffect
Explosions: nuke_explosion
ImpactSounds: nukexplo.aud
@@ -26,7 +26,7 @@ Atomic:
Wood: 100
Light: 60
Heavy: 50
DamageTypes: Prone50Percent, TriggerProne, FireDeath
DamageTypes: Prone50Percent, TriggerProne, FireDeath, Incendiary
Warhead@4Res_areanukea: DestroyResource
Size: 3
Delay: 3
@@ -42,13 +42,13 @@ Atomic:
Damage: 50
Falloff: 1000, 368, 135, 50, 18, 7, 0
Delay: 6
ValidTargets: Ground, Air
ValidTargets: Ground, Air, Trees
Versus:
None: 100
Wood: 100
Light: 60
Heavy: 50
DamageTypes: Prone50Percent, TriggerProne, FireDeath
DamageTypes: Prone50Percent, TriggerProne, FireDeath, Incendiary
Warhead@8Res_areanukeb: DestroyResource
Size: 4
Delay: 6
@@ -61,13 +61,13 @@ Atomic:
Damage: 20
Falloff: 1000, 368, 135, 50, 18, 7, 0
Delay: 9
ValidTargets: Ground, Air
ValidTargets: Ground, Air, Trees
Versus:
None: 100
Wood: 100
Light: 60
Heavy: 50
DamageTypes: Prone50Percent, TriggerProne, FireDeath
DamageTypes: Prone50Percent, TriggerProne, FireDeath, Incendiary
Warhead@11Res_areanukec: DestroyResource
Size: 5
Delay: 9
@@ -77,13 +77,13 @@ Atomic:
Delay: 9
IonCannon:
ValidTargets: Ground, Air
ValidTargets: Ground, Air, Trees
Warhead@1Dam_impact: SpreadDamage
Range: 0, 1c1, 2c1, 2c512
Damage: 100
Falloff: 1000, 1000, 250, 100
ValidTargets: Ground, Air
DamageTypes: Prone50Percent, TriggerProne, FireDeath
ValidTargets: Ground, Air, Trees
DamageTypes: Prone50Percent, TriggerProne, FireDeath, Incendiary
Warhead@2Smu_impact: LeaveSmudge
SmudgeType: Scorch
Warhead@3Smu_area: LeaveSmudge

View File

@@ -99,7 +99,7 @@
GivesBounty:
GpsDot:
String: Vehicle
WithSmoke:
WithDamageOverlay:
Guard:
Guardable:
Tooltip:
@@ -325,7 +325,7 @@
RepairableNear:
GpsDot:
String: Ship
WithSmoke:
WithDamageOverlay:
Explodes:
Weapon: UnitExplodeShip
EmptyWeapon: UnitExplodeShip

View File

@@ -132,7 +132,8 @@ smoke_m:
Offset: 2, -5
ZOffset: 512
end:
Length: 26
Start: 26
Length: -26
Offset: 2, -5
ZOffset: 512