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;
// }
}
}