Files
OpenRA/mods/d2k/weapons/other.yaml
Alexis Hunt 08ad7d7f4e Refactor handling of hit radii in projectiles.
penev discovered that the RulesetLoaded functions of projectiles were
never being called, meaning that their blocking calculations were not
properly accounting for actors with large hitboxes.

The best fix for this is to change FindActorsOnLine to always account
for the largest actor's hit radius, rather than forcing callers to pass
the largest radius. Per the comment in Util.cs, as a result, move this
computation to ActorMap. I decided to simplify by not making a separate
calculation for actors that block projectiles only; this may cause a
small performance degradation as the search space is a bit larger.

Similarly to this, I've removed the ability to specify a search radius
manually. Because this is only a search radius, setting a value smaller
than the largest eligible actor makes no sense; that would lead to
completely inconsistent blocking. Setting a larger value, on the other
hand, would make no difference.

CreateEffectWarhead was the only place in core code any of these search
radii were set, and that's because 0 was a mysterious magic value that
made the warhead incapable of hitting actors. I replaced it with a
boolean flag that more clearly indicates the actual behaviour.

Fixes #14151.
2018-02-21 23:26:41 +01:00

326 lines
6.5 KiB
YAML

Sound:
ReloadDelay: 90
Range: 5c0
Report: SONIC1.WAV
Projectile: AreaBeam
Speed: 0c128
Duration: 4 # Has a length of 0c512
DamageInterval: 3 # Travels 0c384 between impacts, will hit a target roughly three times
Width: 0c512
Shape: Flat
Falloff: 100, 100, 50
Range: 0, 6c0, 11c0
BeyondTargetRange: 1c0
Color: 00FFFFC8
Warhead@1Dam: SpreadDamage
Range: 0, 32
Falloff: 100, 100
Damage: 860
AffectsParent: false
ValidStances: Neutral, Enemy
Versus:
none: 200
wall: 50
building: 60
wood: 110
light: 110
heavy: 60
invulnerable: 0
cy: 20
harvester: 50
DamageTypes: Prone50Percent, TriggerProne, SoundDeath
Warhead@2Dam: SpreadDamage
Range: 0, 32
Falloff: 100, 100
Damage: 430 # Only does half damage to friendly units
AffectsParent: false
ValidStances: Ally
Versus:
none: 200
wall: 50
building: 60
wood: 110
light: 110
heavy: 60
invulnerable: 0
cy: 20
harvester: 50
DamageTypes: Prone50Percent, TriggerProne, SoundDeath
WormJaw:
ReloadDelay: 10
InvalidTargets: Structure, Infantry
Range: 1c512
Warhead@1Dam: TargetDamage # HACK: The warhead is needed for targeting
InvalidTargets: Structure, Infantry
OrniBomb:
ReloadDelay: 25
Burst: 5
BurstDelays: 6
Range: 3c0
Projectile: GravityBomb
Image: BOMBS
Velocity: 0, 0, -64
Acceleration: 0, 0, 0
Shadow: true
Warhead@1Dam: SpreadDamage
Spread: 320
Falloff: 100, 60, 30, 15, 0
Damage: 7500 #400 in original, reduce when bombers can do multiple passes
Versus:
none: 90
wall: 50
building: 75
wood: 60
light: 60
heavy: 60
invulnerable: 0
cy: 25
harvester: 60
DamageTypes: Prone50Percent, TriggerProne, SmallExplosionDeath
Warhead@2Smu: LeaveSmudge
SmudgeType: SandCrater, RockCrater
InvalidTargets: Vehicle, Structure
Warhead@3Eff: CreateEffect
Explosions: large_explosion
ImpactSounds: EXPLSML4.WAV
ImpactActors: false
Crush:
Warhead@1Dam: SpreadDamage
Damage: 1000
DamageTypes: ExplosionDeath
Warhead@2Eff: CreateEffect
ImpactSounds: CRUSH1.WAV
Demolish:
Warhead@1Dam: SpreadDamage
DamageTypes: ExplosionDeath
Warhead@2Eff: CreateEffect
Explosions: building
ImpactSounds: EXPLLG2.WAV
ImpactActors: false
Atomic:
Warhead@1Dam: SpreadDamage
Spread: 1c0
Falloff: 200, 100, 50, 25, 12, 0
Damage: 27000 ##225 in vanilla but of course is a cluster bomb instead, so damage spread out
Versus:
none: 90
wall: 50
building: 75
wood: 60
light: 60
heavy: 60
invulnerable: 0
cy: 25
harvester: 60
DamageTypes: Prone50Percent, TriggerProne, SoundDeath
Warhead@2Eff: CreateEffect
Explosions: nuke
ImpactSounds: EXPLLG2.WAV
ImpactActors: false
CrateNuke:
Inherits: Atomic
Warhead@1Dam: SpreadDamage
Spread: 320
Falloff: 100, 60, 30, 15, 0
Damage: 5000
AffectsParent: true
CrateExplosion:
Warhead@1Dam: SpreadDamage
Spread: 320
Falloff: 100, 60, 30, 15, 0
Damage: 5000
Versus:
none: 90
wall: 5
building: 65
wood: 50
light: 40
heavy: 30
invulnerable: 0
cy: 20
harvester: 25
AffectsParent: true
DamageTypes: Prone50Percent, TriggerProne, SmallExplosionDeath
Warhead@2Eff: CreateEffect
Explosions: large_explosion
ImpactSounds: EXPLSML4.WAV
ImpactActors: false
UnitExplodeSmall:
Warhead@1Eff: CreateEffect
Explosions: self_destruct
ImpactSounds: EXPLSML1.WAV
ImpactActors: false
UnitExplodeMed:
Warhead@1Eff: CreateEffect
Explosions: building
ImpactSounds: EXPLSML2.WAV
ImpactActors: false
UnitExplodeLarge:
Warhead@1Eff: CreateEffect
Explosions: large_explosion
ImpactSounds: EXPLLG2.WAV
ImpactActors: false
BuildingExplode:
Warhead@1Eff: CreateEffect
Explosions: building, self_destruct, large_explosion
ImpactActors: false
WallExplode:
Warhead@1Eff: CreateEffect
Explosions: wall_explosion
ImpactSounds: EXPLHG1.WAV
ImpactActors: false
grenade:
ReloadDelay: 50
Range: 4c0
Projectile: Bullet
Speed: 160
Blockable: false
LaunchAngle: 128
Inaccuracy: 416
Image: grenade
Shadow: true
Warhead@1Dam: SpreadDamage
Spread: 320
Falloff: 100, 65, 35, 20, 0
Damage: 1500
Versus:
none: 125
wood: 70
light: 30
heavy: 20
invulnerable: 0
cy: 20
harvester: 25
DamageTypes: Prone50Percent, TriggerProne, ExplosionDeath
Warhead@2Smu: LeaveSmudge
SmudgeType: SandCrater
InvalidTargets: Vehicle, Structure
Warhead@3Eff: CreateEffect
Explosions: med_explosion
ImpactSounds: EXPLMD2.WAV
ImpactActors: false
GrenDeath:
Warhead@1Dam: SpreadDamage
Spread: 320
Falloff: 100, 60, 30, 15, 0
Damage: 1500
Versus:
none: 125
wood: 70
light: 30
heavy: 20
invulnerable: 0
cy: 20
harvester: 25
DamageTypes: Prone50Percent, TriggerProne, ExplosionDeath
Warhead@2Smu: LeaveSmudge
SmudgeType: SandCrater, RockCrater
Warhead@3Eff: CreateEffect
Explosions: building
ImpactSounds: EXPLSML4.WAV
ImpactActors: false
SardDeath:
Warhead@1Dam: SpreadDamage
Spread: 256
Falloff: 100, 50, 25, 0
Damage: 3000
Versus:
none: 15
wall: 75
building: 60
wood: 65
light: 90
invulnerable: 0
cy: 30
harvester: 50
DamageTypes: Prone50Percent, TriggerProne, ExplosionDeath
Warhead@2Smu: LeaveSmudge
SmudgeType: SandCrater, RockCrater
Warhead@3Eff: CreateEffect
Explosions: small_napalm
ImpactSounds: EXPLSML2.WAV
ImpactActors: false
SpiceExplosion:
Projectile: Bullet
Speed: 50, 75
Blockable: false
LaunchAngle: 60, 90
TrailImage: large_trail
Image: 120mm
Warhead@1Dam: SpreadDamage
Spread: 320
Falloff: 100, 60, 30, 15, 0
Damage: 750
Versus:
none: 90
wall: 5
building: 65
wood: 50
light: 40
heavy: 30
invulnerable: 0
cy: 20
harvester: 25
DamageTypes: Prone50Percent, TriggerProne, ExplosionDeath
AffectsParent: true
Warhead@2Res: CreateResource
AddsResourceType: Spice
Size: 1
Warhead@3Eff: CreateEffect
Explosions: med_explosion
ImpactActors: false
BloomExplosion:
Report: EXPLMD1.WAV
Range: 0c8
Projectile: InstantHit
Warhead@1Dam: SpreadDamage
Spread: 320
Falloff: 100, 60, 30, 15, 0
Damage: 7500
Versus:
none: 90
wall: 5
building: 65
wood: 50
light: 40
heavy: 30
invulnerable: 0
cy: 20
harvester: 25
DamageTypes: Prone50Percent, TriggerProne, ExplosionDeath
AffectsParent: true
PlasmaExplosion:
Warhead@1Dam: SpreadDamage
Spread: 2c0
Falloff: 100, 37, 0
Damage: 20000
Versus:
None: 100
Wood: 100
Light: 100
Heavy: 100
Concrete: 60
DamageTypes: Prone50Percent, TriggerProne, ExplosionDeath
Warhead@2Smu: LeaveSmudge
SmudgeType: SandCrater
Warhead@3Eff: CreateEffect
Explosions: devastator