| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889 | 
							- using Common.Utility.CombatEvent;
 
- using Fort23.Core;
 
- using GameLogic.Combat.Buff;
 
- using GameLogic.Combat.CombatTool;
 
- using GameLogic.Player;
 
- namespace GameLogic.Combat.Skill
 
- {
 
-     /// <summary>
 
-     /// 厚土护体
 
-     ///每使用一个土系功法时获得{0}点土系值,达到100时获得{1}%防御。持续{2}秒,每对敌人施加一次细尘额外获得{3}点
 
-     /// </summary>
 
-     public class S2018 : SkillBasic
 
-     {
 
-         private int addValue;
 
-         private long addDef;
 
-         private float _time;
 
-         private bool _isUpdate;
 
-         protected override void ProActiveSkill()
 
-         {
 
-             CombatEventManager.Instance.AddEventListener(CombatEventType.AddBuff, AddBuff);
 
-             CombatEventManager.Instance.AddEventListener(CombatEventType.UseSkill, UseSkill);
 
-         }
 
-         protected override void ProUseSkill()
 
-         {
 
-         }
 
-         protected override void ProDispose()
 
-         {
 
-             CombatEventManager.Instance.RemoveEventListener(CombatEventType.AddBuff, AddBuff);
 
-             CombatEventManager.Instance.RemoveEventListener(CombatEventType.UseSkill, UseSkill);
 
-         }
 
-         private void AddTuXiZhiValue(int v)
 
-         {
 
-             addValue += v;
 
-             if (addValue > 100)
 
-             {
 
-                 _isUpdate = true;
 
-                 _time = 0;
 
-                 if (addDef == 0)
 
-                 {
 
-                     addDef = CombatCalculateTool.Instance.GetVlaueRatioForLong(
 
-                         CombatHeroEntity.MaxCombatHeroInfo.defense.Value, effectValue[1]);
 
-                     CombatHeroEntity.CurrCombatHeroInfo.defense += addDef;
 
-                 }
 
-             }
 
-         }
 
-         protected override void ProCombatUpdate(float time)
 
-         {
 
-             if (!_isUpdate)
 
-             {
 
-                 return;
 
-             }
 
-             _time += time;
 
-             if (_time > effectValue[2])
 
-             {
 
-                 _isUpdate = false;
 
-                 CombatHeroEntity.CurrCombatHeroInfo.defense -= addDef;
 
-             }
 
-         }
 
-         private void AddBuff(IEventData iEventData)
 
-         {
 
-             BuffEventData buffEventData = iEventData as BuffEventData;
 
-             if (buffEventData.source == CombatHeroEntity && buffEventData.BuffBasic is b_1013)
 
-             {
 
-                 AddTuXiZhiValue((int)effectValue[3]);
 
-             }
 
-         }
 
-         private void UseSkill(IEventData iEventData)
 
-         {
 
-             CombatUseSkillEventData combatUseSkillEventData = iEventData as CombatUseSkillEventData;
 
-             if (combatUseSkillEventData.useSkill.CombatHeroEntity == CombatHeroEntity &&
 
-                 combatUseSkillEventData.useSkill.wuXingType.HasFlag(WuXingType.Earth))
 
-             {
 
-                 AddTuXiZhiValue((int)effectValue[0]);
 
-             }
 
-         }
 
-     }
 
- }
 
 
  |