using System.Collections.Generic; using CombatLibrary.CombatLibrary.CombatCore.CustomizeTimeLogic.FxLogic; using Fort23.Core; using GameLogic.Combat.Buff; using GameLogic.Combat.CombatTool; using GameLogic.Combat.Hero; using OfficeOpenXml.FormulaParsing.Excel.Functions.Logical; using UnityEngine; using UTool.CustomizeTimeLogic.FxLogic.TimeLineEventinterface; namespace GameLogic.Combat.Skill.MagicSkill { /// /// 对敌人照成伤害,并随机封锁敌人{0}个法宝,让其{1}秒内不能使用和不能充能 /// 如果影响的是2个相生法宝,则这2个法宝在本场战斗中充能时间增加30% /// public class S3301 : MagicSkillBasic { private CombatHeroEntity target; List yingXingWeapon = new List(); protected override void ProMagicUseSkill() { // StraightLineShow straightLineShow = new StraightLineShow(); // straightLineShow.Init(this); CombatHeroEntity[] allHero = CombatController.currActiveCombat.CombatHeroController.GetHero(!CombatHeroEntity.IsEnemy); if (allHero == null || allHero.Length <= 0) { SkillPlayFinish(); return; } // SkillPlayFinish(); target = allHero[0]; MagicAttShowBasic magicAttShowBasic = InitMagicAttShowBasic(allHero[0], Finish); SetMagicAttShowBasic(magicAttShowBasic); } private void Finish() { CombatHeroEntity combatHeroEntity = target; ILifetCycleHitPoint lifetCycleHitPoint = target.GetMainHotPoin(); if (lifetCycleHitPoint == null) { return; } CombatMagicWeaponEntity[] AllMagicWeapon = combatHeroEntity.heroMagicWeaponControl.AllMagicWeapon; int maxCount = combatHeroEntity.heroMagicWeaponControl.MagicWeaponCount; if (maxCount > 0) { List currAllMagicWeapon = new List(); currAllMagicWeapon.AddRange(AllMagicWeapon); List addMagicWeaponEntities = new List(); for (int i = 0; i < effectValue[0]; i++) { if (maxCount > 0) { int index = Random.Range(0, maxCount); BuffInfo buffInfo = BuffInfo.GetBuffInfo(10081, effectValue[1], 1); CombatMagicWeaponEntity combatMagicWeaponEntity = currAllMagicWeapon[index]; combatMagicWeaponEntity.BuffControl.AddBuff( CombatMagicWeaponEntity.RootMagicWeaponControl.combatHeroEntity, buffInfo); currAllMagicWeapon.RemoveAt(index); if (SelfSkillConfig.level > 3 && !yingXingWeapon.Contains(combatMagicWeaponEntity)) { bool isXiangSheng = false; if (addMagicWeaponEntities.Count > 0) { for (int j = 0; j < addMagicWeaponEntities.Count; j++) { CombatMagicWeaponEntity lasetWeaponEntity = addMagicWeaponEntities[j]; bool isOk = CombatCalculateTool.Instance.IsSymbiosis(lasetWeaponEntity.WuXingType, combatMagicWeaponEntity.WuXingType); if (isOk) { lasetWeaponEntity.cdAddSpeed -= effectValue[3]; combatMagicWeaponEntity.cdAddSpeed -= effectValue[3]; yingXingWeapon.Add(lasetWeaponEntity); yingXingWeapon.Add(combatMagicWeaponEntity); isXiangSheng = true; addMagicWeaponEntities.RemoveAt(j); break; } } } if (!isXiangSheng) { addMagicWeaponEntities.Add(combatMagicWeaponEntity); } } maxCount--; } } } BetterList cBetterList = new BetterList(1); cBetterList.Add(lifetCycleHitPoint); ActivationTimeLineData("gongji", currTarget: cBetterList); SkillPlayFinish(); // TimeLineEventLogicGroupBasic timeLineEventLogicGroupBasic = // ActivationTimeLineData("sk1_xiaoshi"); } // protected override ILifetCycleHitPoint[] ProGetTineLineTargetEntity( // TimeLineEventLogicBasic timeLineEventLogicBasic) // { // ILifetCycleHitPoint[] lifetCycleHitPoints = new ILifetCycleHitPoint[1]; // lifetCycleHitPoints[0] = target.GetMainHotPoin(); // return lifetCycleHitPoints; // } } }