using Model.Entity.Types; namespace Model.Entity.Parts; public class EntityWeaponModel : IEntityPartInterface { public int Id { get; set; } = 1; public int EntityModelId { get; set; } public virtual EntityModel EntityModel { get; set; } public int Range { get; set; } = 40; public int MinimumRange { get; set; } = 0; public float AttacksPerSecond { get; set; } = 0; public float SecondsBetweenAttacks { get; set; } = 0; public float Cooldown { get; set; } = 0; public float Charges { get; set; } = 0; public int Damage { get; set; } = 0; public string ComplexDamage { get; set; } = "deals 126 over 6 seconds"; public bool HasSplash { get; set; } public int LightDamage { get; set; } = 0; public int MediumDamage { get; set; } = 0; public int HeavyDamage { get; set; } = 0; public int StructureDamageBonus { get; set; } = 0; public int EthericDamageBonus { get; set; } = 0; public string Targets { get; set; } = TargetType.All; public string Attack { get; set; } = AttackType.DPS; public float DamagePerSecond() { if (SecondsBetweenAttacks == 0) return Damage * AttacksPerSecond; return Damage / SecondsBetweenAttacks; } public float DamagePerSecondLight() { var damage = LightDamage != 0 ? LightDamage : Damage; if (SecondsBetweenAttacks == 0) return damage * AttacksPerSecond; return damage / SecondsBetweenAttacks; } public float DamagePerSecondMedium() { var damage = MediumDamage != 0 ? MediumDamage : Damage; if (SecondsBetweenAttacks == 0) return damage * AttacksPerSecond; return damage / SecondsBetweenAttacks; } public float DamagePerSecondHeavy() { var damage = HeavyDamage != 0 ? HeavyDamage : Damage; if (SecondsBetweenAttacks == 0) return damage * AttacksPerSecond; return damage / SecondsBetweenAttacks; } }