Move weapon damage type behind runtime owner
This commit is contained in:
parent
a424be6bbc
commit
f151ecedc1
9 changed files with 15 additions and 9 deletions
Binary file not shown.
|
|
@ -29,7 +29,7 @@ public class GuidedProjectileManager : InstantWeaponEffectManager
|
|||
p.Range = weapon.Range;
|
||||
p.Penetration = weapon.Penetration;
|
||||
p.Spread = weapon.DamageSpread;
|
||||
p.DamageType = weapon.WeaponData.DamageType;
|
||||
p.DamageType = weapon.DamageType;
|
||||
p.GuidanceCurve = launcher.GuidanceCurve.ToCurve();
|
||||
p.LiftCurve = launcher.LiftCurve.ToCurve();
|
||||
p.ThrustCurve = launcher.ThrustCurve.ToCurve();
|
||||
|
|
@ -51,7 +51,7 @@ public class GuidedProjectileManager : InstantWeaponEffectManager
|
|||
p.Range = weapon.Range;
|
||||
p.Penetration = weapon.Penetration;
|
||||
p.Spread = weapon.DamageSpread;
|
||||
p.DamageType = weapon.WeaponData.DamageType;
|
||||
p.DamageType = weapon.DamageType;
|
||||
p.GuidanceCurve = guidance.GuidanceCurve.ToCurve();
|
||||
p.LiftCurve = guidance.LiftCurve.ToCurve();
|
||||
p.ThrustCurve = guidance.ThrustCurve.ToCurve();
|
||||
|
|
|
|||
|
|
@ -19,8 +19,8 @@ public class HitscanManager : InstantWeaponEffectManager
|
|||
p.Damage = weapon.Damage;
|
||||
p.Penetration = weapon.Penetration;
|
||||
p.Spread = weapon.DamageSpread;
|
||||
p.DamageType = weapon.WeaponData.DamageType;
|
||||
p.DamageType = weapon.DamageType;
|
||||
p.Zone = source.Entity.Zone;
|
||||
p.Fire();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -20,6 +20,6 @@ public class LaserManager : InstantWeaponEffectManager
|
|||
p.Range = weapon.Range;
|
||||
p.Penetration = weapon.Penetration;
|
||||
p.Spread = weapon.DamageSpread;
|
||||
p.DamageType = weapon.WeaponData.DamageType;
|
||||
p.DamageType = weapon.DamageType;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -17,8 +17,8 @@ public class LightningGunManager : InstantWeaponEffectManager
|
|||
p.Range = weapon.Range;
|
||||
p.Penetration = weapon.Penetration;
|
||||
p.Spread = weapon.DamageSpread;
|
||||
p.DamageType = weapon.WeaponData.DamageType;
|
||||
p.DamageType = weapon.DamageType;
|
||||
p.Target = target;
|
||||
p.Fire();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -28,7 +28,7 @@ public class MineManager : InstantWeaponEffectManager
|
|||
p.GridObject.Velocity += new Vector3(source.Entity.Velocity.x, 0, source.Entity.Velocity.y);
|
||||
p.Damage = weapon.Damage;
|
||||
p.Range = weapon.Range;
|
||||
p.DamageType = weapon.WeaponData.DamageType;
|
||||
p.DamageType = weapon.DamageType;
|
||||
p.GridObject.Zone = source.Entity.Zone;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -30,7 +30,7 @@ public class ProjectileManager : InstantWeaponEffectManager
|
|||
p.Range = weapon.Range;
|
||||
p.Penetration = weapon.Penetration;
|
||||
p.Spread = weapon.DamageSpread;
|
||||
p.DamageType = weapon.WeaponData.DamageType;
|
||||
p.DamageType = weapon.DamageType;
|
||||
p.Zone = source.Entity.Zone;
|
||||
p.AirburstDistance = target != null ? length(source.Entity.Position - target.Entity.Position) : (weapon.Range * .75f);
|
||||
p.Trail.Clear();
|
||||
|
|
|
|||
|
|
@ -68,6 +68,7 @@ public abstract class Weapon : Behavior, IActivatedBehavior
|
|||
public abstract float RangeDamagePerSecond(float range);
|
||||
public abstract int Ammo { get; }
|
||||
public WeaponData WeaponData => _data;
|
||||
public DamageType DamageType { get; }
|
||||
|
||||
public float Damage { get; protected set; }
|
||||
public float Penetration { get; protected set; }
|
||||
|
|
@ -90,11 +91,13 @@ public abstract class Weapon : Behavior, IActivatedBehavior
|
|||
public Weapon(WeaponData data, EquippedItem item) : base(data, item)
|
||||
{
|
||||
_data = data;
|
||||
DamageType = data.DamageType;
|
||||
}
|
||||
|
||||
public Weapon(WeaponData data, ConsumableItemEffect item) : base(data, item)
|
||||
{
|
||||
_data = data;
|
||||
DamageType = data.DamageType;
|
||||
}
|
||||
|
||||
protected virtual void UpdateStats()
|
||||
|
|
|
|||
|
|
@ -1000,6 +1000,9 @@ First Aetheria surfaces to publish:
|
|||
- Done: move TurretController's weapon range/velocity reads off
|
||||
`WeaponData` casts and onto `Weapon.EvaluateRange`/`EvaluateVelocity`;
|
||||
weapon config fields remain private inputs to the weapon runtime owner.
|
||||
- Done: move projectile, hitscan, beam, lightning, and mine effect damage
|
||||
type reads off `WeaponData` and onto `Weapon.DamageType`; effect managers
|
||||
consume live weapon metadata instead of config DTO fields.
|
||||
- Done: delete the legacy `Behaviors` lists from `ConsumableItemData` and
|
||||
`EquippableItemData`; item DTOs can no longer carry behavior config state.
|
||||
- Done: move runtime blueprint price aggregation and conductivity restore
|
||||
|
|
|
|||
Loading…
Reference in a new issue