private void GainFromDealtDamage(SuffixStaticData p_suffix) { Int32 suffixLevel = m_equipment.SuffixLevel; Single valueForLevel = p_suffix.GetValueForLevel(suffixLevel, m_equipment.ItemSlot == EItemSlot.ITEM_SLOT_2_HAND); Single num = m_attackResult.DamageDone; EnchantmentEffectEventArgs suffixEffectEntry; if (p_suffix.Effect == ESuffixEffect.GAIN_HP_PERCENTAGE_FROM_DEALT_DAMAGE) { Int32 num2 = Math.Max(1, (Int32)Math.Round(num * valueForLevel, MidpointRounding.AwayFromZero)); m_character.ChangeHP(num2); suffixEffectEntry = new EnchantmentEffectEventArgs(p_suffix, num2); DamageEventArgs p_eventArgs = new DamageEventArgs(new AttackResult { Result = EResultType.HEAL, DamageResults = { new DamageResult(EDamageType.HEAL, num2, 0, 1f) } }); LegacyLogic.Instance.EventManager.InvokeEvent(m_character, EEventType.CHARACTER_HEALS, p_eventArgs); } else { Int32 num3 = Math.Max(1, (Int32)Math.Round(num * valueForLevel, MidpointRounding.AwayFromZero)); m_character.ChangeMP(num3); suffixEffectEntry = new EnchantmentEffectEventArgs(p_suffix, num3); } m_character.FightHandler.FeedActionLog(suffixEffectEntry); }
public List <Attack> DealDamageToAttacker(Monster p_attacker) { List <Attack> list = new List <Attack>(); for (Int32 i = 0; i < 10; i++) { Equipment equipment = m_character.Equipment.GetItemAt((EEquipSlots)i) as Equipment; if (equipment != null) { if (i != 1 || !(equipment is MeleeWeapon) || (equipment as MeleeWeapon).GetSubType() != EEquipmentType.TWOHANDED) { List <SuffixStaticData> suffixes = equipment.Suffixes; for (Int32 j = 0; j < suffixes.Count; j++) { if (suffixes[j].Effect == ESuffixEffect.ATTACKING_MONSTER_DAMAGED) { EDamageType edamageType = suffixes[j].MagicSchool; if (edamageType == EDamageType.NONE) { edamageType = EDamageType.PHYSICAL; } Damage p_damages = new Damage(edamageType, (Int32)suffixes[j].GetValueForLevel(equipment.SuffixLevel, equipment.ItemSlot == EItemSlot.ITEM_SLOT_2_HAND), 0f, 1f); Attack item = new Attack(m_character.FightValues.MainHandAttackValue, 0f, p_damages); EnchantmentEffectEventArgs item2 = new EnchantmentEffectEventArgs(suffixes[j], p_damages.Value); m_logEntries.Add(item2); list.Add(item); } } } } } return(list); }
private void RemoveAllBlockAttempts(SuffixStaticData p_suffix) { m_target.CurrentGeneralBlockAttempts = 0; m_target.CurrentMeleeBlockAttempts = 0; EnchantmentEffectEventArgs suffixEffectEntry = new EnchantmentEffectEventArgs(p_suffix); m_character.FightHandler.FeedActionLog(suffixEffectEntry); }
private void TargetDealMagicDamageOnTile(SuffixStaticData p_suffix) { Int32 suffixLevel = m_equipment.SuffixLevel; Int32 damageValue = (Int32)Math.Round(p_suffix.GetValueForLevel(suffixLevel, m_equipment.ItemSlot == EItemSlot.ITEM_SLOT_2_HAND), MidpointRounding.AwayFromZero); EnchantmentEffectEventArgs suffixEffectEntry = new EnchantmentEffectEventArgs(p_suffix); m_character.FightHandler.FeedActionLog(suffixEffectEntry); m_character.FightHandler.AttackAllMonstersOnTargetsTile(m_target, damageValue, p_suffix.MagicSchool, m_counterAttack); }