예제 #1
0
        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);
        }
예제 #2
0
        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;
        }
예제 #3
0
        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;
        }