Ejemplo n.º 1
0
 public static double CalculateTankInDps(double healPerSecond,
                                         ResistanceProfile resistanceProfile,
                                         DamageProfile damageProfile = null)
 {
     damageProfile = damageProfile ?? DamageProfile.OMNI_DAMAGE_PROFILE;
     return healPerSecond
            / (damageProfile.EmRatio * (1.0 - resistanceProfile.EmResistance)
               + damageProfile.KineticRatio * (1.0 - resistanceProfile.KineticResistance)
               + damageProfile.ThermalRatio * (1.0 - resistanceProfile.ThermalResistance)
               + damageProfile.ExplosiveRatio * (1.0 - resistanceProfile.ExplosiveResistance));
 }
Ejemplo n.º 2
0
 private static float CalculateDamage(ResistanceProfile rp, DamageProfile dp, float multip)
 {
     float damage = 0;
     float explosionDamage = dp.ExplosionDamage, laserDamage = dp.LaserDamage, plasmaDamage = dp.PlasmaDamage, piercingDamage = dp.PiercingDamage;
     if (explosionDamage > 0) {
         damage += explosionDamage * (rp.ExplosionResistance / (100 + rp.ExplosionResistance));
     }
     if (laserDamage > 0) {
         damage += laserDamage * (rp.LaserResistance / (100 + rp.LaserResistance));
     }
     if (plasmaDamage > 0) {
         damage += plasmaDamage * (rp.PlasmaResistance / (100 + rp.PlasmaResistance));
     }
     if (piercingDamage > 0) {
         damage += piercingDamage * (rp.PiercingResistance / (100 + rp.PlasmaResistance));
     }
     Debug.Log ("Damage dealt: " + damage);
     return damage * multip;
 }
Ejemplo n.º 3
0
 public void SetDamageProfile(DamageProfile dp)
 {
     this.damageProfile = dp;
 }
Ejemplo n.º 4
0
 public void SetDamageProfile(DamageProfile dp)
 {
 }
Ejemplo n.º 5
0
 void OnEnable()
 {
     dmgProfile = target as DamageProfile;
 }
Ejemplo n.º 6
0
 public void DamageWithFallOff(DamageProfile dp, float reduction)
 {
     if (1 - reduction > 0) {
         currentHealth -= CalculateDamage (resistanceProfile, dp, 1 - reduction);
     }
 }
Ejemplo n.º 7
0
 public void Damage(DamageProfile dp)
 {
     currentHealth -= CalculateDamage (resistanceProfile, dp, 1);
 }
Ejemplo n.º 8
0
 public double GetActiveHullTankPerSecond(DamageProfile damageProfile = null)
 {
     damageProfile = damageProfile ?? DamageProfile.OMNI_DAMAGE_PROFILE;
     return CalculateTankInDps(HullRepPerSecond, HullResitanceProfile, damageProfile);
 }
Ejemplo n.º 9
0
 public double GetActiveArmorTankPerSecond(DamageProfile damageProfile = null)
 {
     return CalculateTankInDps(ArmorRepPerSecond, ArmorResitanceProfile, damageProfile);
 }
Ejemplo n.º 10
0
 public double GetPeakPassiveTank(DamageProfile damageProfile = null)
 {
     return CalculateTankInDps(ShieldRecharge.PeakRecharge, ShieldResitanceProfile, damageProfile);
 }
Ejemplo n.º 11
0
 public double GetActiveShieldTankPerSecond(DamageProfile damageProfile = null)
 {
     return CalculateTankInDps(ShieldBoostPerSecond, ShieldResitanceProfile, damageProfile);
 }
Ejemplo n.º 12
0
 public double GetHullEhp(DamageProfile damageProfile = null)
 {
     return CalculateTankInDps(HullHp, HullResitanceProfile, damageProfile);
 }
Ejemplo n.º 13
0
 public double GetArmorEhp(DamageProfile damageProfile = null)
 {
     return CalculateTankInDps(ArmorHp, ArmorResitanceProfile, damageProfile);
 }
Ejemplo n.º 14
0
 public double GetShieldEhp(DamageProfile damageProfile = null)
 {
     return CalculateTankInDps(ShieldHp, ShieldResitanceProfile, damageProfile);
 }
Ejemplo n.º 15
0
 public double GetEhp(DamageProfile damageProfile = null)
 {
     return GetHullEhp(damageProfile) + GetShieldEhp(damageProfile) + GetArmorEhp(damageProfile);
 }