1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192 |
- using Common.Utility.CombatEvent;
- using Fort23.Core;
- using GameLogic.Combat.CombatTool;
- using GameLogic.Player;
- using Utility;
- namespace GameLogic.Combat.Skill
- {
- /// <summary>
- /// 玄黄道 :每次使用功法时在当前位置留下一道属性印记,下一个放上来的功法如果和以前功法相生则功法效果提升50%,每次使用功法时都会治疗对应相生属性的伤势。(均衡性功法搭配,转盘改变,变为金、水、木、火、土)
- /// </summary>
- public class DS60103 : SkillBasic
- {
- protected Map<int, WuXingType> WuXingTypeMap = new Map<int, WuXingType>();
- protected override void ProUseSkill()
- {
- }
- protected override void ProInitSkill()
- {
- CombatEventManager.Instance.AddEventListener(CombatEventType.AddUseGongFa, AddUseGongFa);
- CombatEventManager.Instance.AddEventListener(CombatEventType.SkillSlotsAlter, SkillSlotsAlter);
- }
- private void AddUseGongFa(IEventData iEventData)
- {
- AddUseGongFaEventData addUseGongFaEventData = iEventData as AddUseGongFaEventData;
- if (addUseGongFaEventData.SkillBasic.CombatHeroEntity == CombatHeroEntity &&
- addUseGongFaEventData.SkillBasic.SelfSkillConfig.SkillType == 1)
- {
- WuXingTypeMap.Add(addUseGongFaEventData.SkillSlots.index, addUseGongFaEventData.SkillBasic.wuXingType);
- float v = SelfSkillConfig.effectValue[1];
- switch (addUseGongFaEventData.SkillBasic.wuXingType)
- {
- case WuXingType.Gold:
- CombatHeroEntity.CurrCombatHeroInfo.Metal_Injury -= v;
- break;
- case WuXingType.Wood:
- CombatHeroEntity.CurrCombatHeroInfo.Wood_Injury -= v;
- break;
- case WuXingType.Water:
- CombatHeroEntity.CurrCombatHeroInfo.Water_Injury -= v;
- break;
- case WuXingType.Fire:
- CombatHeroEntity.CurrCombatHeroInfo.Fire_Injury -= v;
- break;
- case WuXingType.Earth:
- CombatHeroEntity.CurrCombatHeroInfo.Earth_Injury -= v;
- break;
- }
- }
- }
- private void SkillSlotsAlter(IEventData iEventData)
- {
- SkillSlotsAlterEventData skillSlotsAlterEventData = iEventData as SkillSlotsAlterEventData;
- if (skillSlotsAlterEventData.SkillBasic != null &&
- skillSlotsAlterEventData.SkillBasic.CombatHeroEntity == CombatHeroEntity &&
- skillSlotsAlterEventData.SkillBasic.SelfSkillConfig.SkillType == 1)
- {
- if (WuXingTypeMap.TryGetValue(skillSlotsAlterEventData.SkillSlots.index, out WuXingType wuXingType))
- {
- WuXingTypeMap.Remove(skillSlotsAlterEventData.SkillSlots.index);
- bool isSymbiosis = CombatCalculateTool.Instance.IsSymbiosis(
- skillSlotsAlterEventData.SkillBasic.wuXingType,
- wuXingType);
- if (isSymbiosis)
- {
- skillSlotsAlterEventData.SkillBasic.IntensifyingEffect(SelfSkillConfig.effectValue[0]);
- }
- }
- }
- }
- private void Finish()
- {
- }
- protected override void ProCombatUpdate(float time)
- {
- }
- protected override void ProDispose()
- {
- WuXingTypeMap.Clear();
- CombatEventManager.Instance.RemoveEventListener(CombatEventType.AddUseGongFa, AddUseGongFa);
- CombatEventManager.Instance.RemoveEventListener(CombatEventType.SkillSlotsAlter, SkillSlotsAlter);
- }
- }
- }
|