DamageModifier find_damage_modifier(DamageType type) { if (fCard == null) { return(null); } List <DamageType> types = new List <DamageType>(); types.Add(type); int value = fCard.GetDamageModifier(types, fData); if (value == 0) { // No modifier return(null); } if (value == int.MinValue) { // Immune value = 0; } DamageModifier mod = new DamageModifier(); mod.Type = type; mod.Value = value; return(mod); }
internal void DoDamage(CombatData data, EncounterCard card, int damage, List <DamageType> types, bool halve_damage) { int damageModifier = 0; if (card != null) { damageModifier = card.GetDamageModifier(types, data); } int _value = DamageForm.get_value(damage, damageModifier, halve_damage); this.DamageCommand.AddTarget(data, _value); //if (data.TempHP > 0) //{ // int num = Math.Min(data.TempHP, _value); // CombatData tempHP = data; // tempHP.TempHP = tempHP.TempHP - num; // _value -= num; //} //CombatData combatDatum = data; //combatDatum.Damage = combatDatum.Damage + _value; }
internal static void DoDamage(CombatData data, EncounterCard card, int damage, List <DamageType> types, bool halve_damage) { int modifier = 0; if (card != null) { modifier = card.GetDamageModifier(types, data); } int value = get_value(damage, modifier, halve_damage); // Take damage off temp HP first if (data.TempHP > 0) { int n = Math.Min(data.TempHP, value); data.TempHP -= n; value -= n; } data.Damage += value; }