123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122 |
- 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);
- 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<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);
- 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("gongji", 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;
- // }
- }
- }
|