using System.Collections.Generic; using System.Linq; using Wizard.Battle.View.Vfx; internal class NetworkSkill_invoke_skill : Skill_invoke_skill { public NetworkSkill_invoke_skill(SkillParameter skillPrm, string option) : base(skillPrm, option) { } public override VfxWithLoading Start(CallParameter parameter) { if (GameMgr.GetIns().IsUseUnapprovedList(base.SkillPrm.ownerCard.IsPlayer)) { string invokeType = base.OptionValue.GetString(SkillFilterCreator.ContentKeyword.invoke_type); NetworkBattleManagerBase obj = base.SkillPrm.ownerCard.SelfBattlePlayer.BattleMgr as NetworkBattleManagerBase; List skillConditionCheckList = obj.networkBattleData.GetReceiveData().SkillConditionCheckList; List unapprovedList = obj.networkBattleData.GetReceiveData().unapprovedList; foreach (BattleCardBase targetCard in parameter.targetCards) { List list = ((!(invokeType == SkillTiming.when_play.ToString())) ? targetCard.Skills.Where((SkillBase s) => IsInvokableSkill(s, invokeType)).ToList() : targetCard.NormalSkills.Where((SkillBase s) => IsInvokableSkill(s, invokeType)).ToList()); foreach (SkillBase skill in list) { if (skillConditionCheckList.Any((CardDataModel c) => skill.PublishedActiveSkillCount == c.publishedActiveSkillCount && c.IsInvoked)) { skill.SetInvoked(flag: true); } else if (unapprovedList.Any((CardDataModel c) => skill.PublishedActiveSkillCount == c.publishedActiveSkillCount && c.IsInvoked)) { skill.SetInvoked(flag: true); } } } } return base.Start(parameter); } }