| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119 | 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{    /// <summary>    /// 对敌人照成伤害,并随机封锁敌人{0}个法宝,让其{1}秒内不能使用和不能充能    /// 如果影响的是2个相生法宝,则这2个法宝在本场战斗中充能时间增加30%    /// </summary>    public class S3301 : MagicSkillBasic    {        private CombatHeroEntity target;        List<CombatMagicWeaponEntity> yingXingWeapon = new List<CombatMagicWeaponEntity>();        protected override void ProMagicUseSkill()        {            // StraightLineShow straightLineShow = new StraightLineShow();            // straightLineShow.Init(this);            target = CombatMagicWeaponEntity.RootMagicWeaponControl.combatHeroEntity.CombatAIBasic.currFocusTarget;            if (target == null)            {                SkillPlayFinish();                return;            }            MagicAttShowBasic magicAttShowBasic = InitMagicAttShowBasic(target, Finish);            SetMagicAttShowBasic(magicAttShowBasic);        }        private void Finish()        {            CombatHeroEntity combatHeroEntity = target;            ILifetCycleHitPoint lifetCycleHitPoint = target.GetMainHotPoin<ILifetCycleHitPoint>();            if (lifetCycleHitPoint == null)            {                return;            }            CombatMagicWeaponEntity[] AllMagicWeapon = combatHeroEntity.heroMagicWeaponControl.AllMagicWeapon;            int maxCount = combatHeroEntity.heroMagicWeaponControl.MagicWeaponCount;            if (maxCount > 0)            {                List<CombatMagicWeaponEntity> currAllMagicWeapon = new List<CombatMagicWeaponEntity>();                currAllMagicWeapon.AddRange(AllMagicWeapon);                List<CombatMagicWeaponEntity> addMagicWeaponEntities = new List<CombatMagicWeaponEntity>();                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,this);                        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<ILifetCycleHitPoint> cBetterList = new BetterList<ILifetCycleHitPoint>(1);            cBetterList.Add(lifetCycleHitPoint);            ActivationTimeLineData("sk1_hit", currTarget: cBetterList);            SkillPlayFinish();            // TimeLineEventLogicGroupBasic timeLineEventLogicGroupBasic =            //     ActivationTimeLineData("sk1_xiaoshi");        }        // protected override ILifetCycleHitPoint[] ProGetTineLineTargetEntity(        //     TimeLineEventLogicBasic timeLineEventLogicBasic)        // {        //     ILifetCycleHitPoint[] lifetCycleHitPoints = new ILifetCycleHitPoint[1];        //     lifetCycleHitPoints[0] = target.GetMainHotPoin<ILifetCycleHitPoint>();        //     return lifetCycleHitPoints;        // }    }}
 |