using Common.Utility.CombatEvent; using Fort23.Core; using GameLogic.Combat.CombatTool; using GameLogic.Player; namespace GameLogic.Combat.Skill { /// /// 前方功法照成伤害时有5%概率施加一层对应属性的伤势 /// public class S501501 : SkillBasic { protected override void ProUseSkill() { } protected override void ProDispose() { CombatEventManager.Instance.RemoveEventListener(CombatEventType.HeroInjured, HeroInjured); } protected override void ProActiveSkill() { CombatEventManager.Instance.AddEventListener(CombatEventType.HeroInjured, HeroInjured); } private void HeroInjured(IEventData iEventData) { HeroInjuredEventData heroInjuredEventData = iEventData as HeroInjuredEventData; if (heroInjuredEventData.HarmReturnInfo.source == CombatHeroEntity) { SkillBasic skillBasic = heroInjuredEventData.HarmReturnInfo.triggerData.Source as SkillBasic; if (skillBasic != null && skillBasic.SelfSkillConfig.SkillType == 1 && skillBasic.index + 1 == index) { int odds = CombatCalculateTool.Instance.GetOdd(0, 100); if (odds < 5) { switch (skillBasic.wuXingType) { case WuXingType.Fire: heroInjuredEventData.HarmReturnInfo.target.combatHeroEntity.CurrCombatHeroInfo .Fire_Injury += 1; break; case WuXingType.Wood: heroInjuredEventData.HarmReturnInfo.target.combatHeroEntity.CurrCombatHeroInfo .Wood_Injury += 1; break; case WuXingType.Water: heroInjuredEventData.HarmReturnInfo.target.combatHeroEntity.CurrCombatHeroInfo .Water_Injury += 1; break; case WuXingType.Earth: heroInjuredEventData.HarmReturnInfo.target.combatHeroEntity.CurrCombatHeroInfo .Earth_Injury += 1; break; case WuXingType.Gold: heroInjuredEventData.HarmReturnInfo.target.combatHeroEntity.CurrCombatHeroInfo .Metal_Injury += 1; break; } } } } } } }