private Healing CalculateHealing(int minh, int maxh, float critchance, HEALTYPE healtype) { int value = 0; bool isCrit = false; if (minh != maxh) { value = Random.Range(minh, maxh); } else { value = minh; } if (critchance > 0) { if (Random.Range(0, 100) < critchance) { value *= 2; isCrit = true; } } Healing myHeal = new Healing(value, isCrit, healtype); return(myHeal); }
public Healing Heal(Caster _caster, SpellInfo info, HEALSOURCE source, HEALTYPE healtype, int whichValue = 0) { try { return(ApplyHeal(_caster, info.baseValue + (int)(info.coeff * _caster.GetPower()), _caster.GetCritChance(), source, healtype)); } catch { Debug.Log("Source: " + source); return(null); } }
private void WoKLoyaltyBeaconHealing(Healing myHeal, HEALSOURCE source, HEALTYPE healtype) { if ((GameCore.chosenChampion == CHAMPION.PALADIN) && (source != HEALSOURCE.WOK_LOYALTY) && (source != HEALSOURCE.GUIDANCE_OF_RAELA)) { float perc = VALUES.WORD_OF_KINGS_LOYALTY_TRANSFER + core.myCaster.myAura[(int)AURA.SPIRIT_BOND].stacks * VALUES.SPIRIT_BOND_INCREASE; if ((core.myCaster.AuraActive(AURA.SPIRIT_BOND)) && ((healtype == HEALTYPE.DIRECT_MULTI) || (healtype == HEALTYPE.PERIODIC_MULTI))) { perc *= 0.3f; } core.BeaconHeal((int)(myHeal.value * perc), 4, soldier); } }
private Healing CalculateHealing(int value, float critchance, HEALTYPE healtype) { bool isCrit = false; if (critchance > 0) { if (Random.Range(0, 100) < critchance) { value *= 2; isCrit = true; } } Healing myHeal = new Healing(value, isCrit, healtype); return(myHeal); }
public SpellInfo(SPELL _id, string _name, int _basevalue, float _coeff, int _basevalue2, float _coeff2, int _castTime, int _cooldown, int _charges, int _chargesGain, string _icon, int _HoTgap, int _ticksCount, int _manaCost, HEALTYPE _healtype, bool _channeling, SpellEffect _effect) { ID = _id; name = _name; baseValue = _basevalue; coeff = _coeff; baseValue2 = _basevalue2; coeff2 = _coeff2; castTime = _castTime; cooldown = _cooldown; charges = _charges; chargesGain = _chargesGain; icon = _icon; HoTgap = _HoTgap; ticksCount = _ticksCount; manaCost = _manaCost; healtype = _healtype; channeling = _channeling; effect = _effect; }
public Healing Heal(Caster _caster, int val, float crit, HEALSOURCE source, HEALTYPE healtype) { return(healingHandler.Heal(_caster, val, crit, source, healtype)); }
public Healing Heal(Caster _caster, SpellInfo info, HEALSOURCE source, HEALTYPE healtype, int whichValue = 0) { return(healingHandler.Heal(_caster, info, source, healtype, whichValue)); }
public Healing(int _value, bool _isCrit, HEALTYPE _healtype) { value = _value; isCrit = _isCrit; healtype = _healtype; }
private Healing ApplyHeal(Caster _caster, int val, float crit, HEALSOURCE source, HEALTYPE healtype) { if (!soldier.isDead) { Healing myHeal = new Healing(0, false, healtype); myHeal = CalculateHealing(val, crit, healtype); myHeal.value = (int)(myHeal.value * _caster.HealingMultiplier()); myHeal.value = (int)(myHeal.value * soldier.healingTakenBoost); myHeal = ApplyHealingModifiersBySource(myHeal, _caster, source); WoKLoyaltyBeaconHealing(myHeal, source, healtype); myHeal = ApplyHealingModifiersByBuff(source, myHeal, _caster); float heal_value = Mathf.Min(myHeal.value, soldier.maxHealth - soldier.health); heal_value *= Random.Range(95f, 105f) / 100f; int overheal_value = 0; overheal_value = Mathf.Max(0, (int)((myHeal.value + soldier.health) - soldier.maxHealth)); overheal_value = ApplyOverhealingModifiers(overheal_value, _caster, source); myHeal.overhealing = overheal_value; soldier.health = soldier.health + heal_value; core.recount.AddEntry(source, (int)heal_value, overheal_value); ExecuteDebuffsTriggeredByHealing(myHeal); CriticalHealTrigger(myHeal); UpdateHealthBar(); LogHealing((int)heal_value, myHeal.isCrit); return(myHeal); } return(null); }
public Healing Heal(int minh, int maxh, float critchance, Caster _caster, SpellInfo info, HEALSOURCE source, HEALTYPE healtype) { if (!isDead) { Healing myHeal = new Healing(0, false, healtype); myHeal = CalculateHealing(minh, maxh, critchance, healtype); myHeal.value = (int)(myHeal.value * _caster.HealingMultiplier()); myHeal.value = (int)(myHeal.value * healingTakenBoost); myHeal = ApplyHealingModifiersBySource(myHeal, _caster, source); LogHealing((int)myHeal.value, myHeal.isCrit); WoKLoyaltyBeaconHealing(myHeal, source, healtype); myHeal = ApplyHealingModifiersByBuff(source, myHeal); float heal_value = Mathf.Min(myHeal.value, maxHealth - health); int overheal_value = 0; overheal_value = Mathf.Max(0, (int)((myHeal.value + health) - maxHealth)); overheal_value = ApplyOverhealingModifiers(overheal_value, _caster, source); myHeal.overhealing = overheal_value; health = health + heal_value; core.recount.AddEntry(source, (int)heal_value, overheal_value); ExecuteDebuffsTriggeredByHealing(myHeal); CriticalHealTrigger(myHeal); UpdateHealthBar(); return(myHeal); } return(null); }