Fan website of IMMORTAL: Gates of Pyre.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

69 lines
1.9 KiB

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;
}
}