69 lines
1.9 KiB
C#
69 lines
1.9 KiB
C#
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;
|
|
}
|
|
} |