using System.Collections.Generic; namespace Wizard; public class EnemyHandVirtualCard : AIVirtualCard { public EnemyHandVirtualCard(BattleCardBase card, AIVirtualField field) { _field = field; base.IsInHand = true; base.IsOnField = false; base.IsAlly = false; InitializeFromBattleCardBase(card); base.TagCollectionContainer = new AIEnemyHandTagCollectionContainer(); base.FusionIngredients = new AIVirtualFusionIngredientsInfo(); if (card.SkillApplyInformation.FusionIngredients != null && card.SkillApplyInformation.FusionIngredients.Count > 0) { base.FusionIngredients.CopyFusionIngredientsFromBattleCard(card.SkillApplyInformation.FusionIngredients, _field); } } public EnemyHandVirtualCard(EnemyHandVirtualCard original, AIVirtualField field) { base.BaseCard = original.BaseCard; _field = field; base.IsInHand = true; base.IsOnField = false; base.IsAlly = false; base.CardIndex = original.CardIndex; base.BaseId = original.BaseId; base.Clan = original.Clan; IsPlayer = original.IsPlayer; IsUnit = original.IsUnit; IsSpell = original.IsSpell; IsAmulet = original.IsAmulet; IsCountdownAmulet = original.IsCountdownAmulet; base.TagCollectionContainer = new AIEnemyHandTagCollectionContainer(original.TagCollectionContainer, this); if (original._tribeList != null) { _tribeList = new List(original._tribeList); } if (original.FusionIngredients != null) { base.FusionIngredients = new AIVirtualFusionIngredientsInfo(original.FusionIngredients); } } protected override void InitializeFromBattleCardBase(BattleCardBase origin) { InitializeFromBattleCardBaseBasic(origin); Cost = origin.Cost; base.CardIndex = origin.Index; IsPlayer = origin.IsPlayer; base.BattleSkills = origin.Skills; base.BattleSkillHashList = CardSkillHashUtility.GetSingleSkillHashStringList(base.BattleSkills); IsUnit = origin.IsUnit; IsSpell = origin.IsSpell; IsAmulet = origin.IsField; IsCountdownAmulet = origin.IsChantField; if (origin.Tribe != null && origin.Tribe.Count > 0) { for (int i = 0; i < origin.Tribe.Count; i++) { AppendTribe(origin.Tribe[i]); } } } public override void InitializeTags(AIParamQuery query, AIAttachedTagCollection attachedTagCollection, AIRemovedTagCollection removedTagCollection) { base.TagCollectionContainer.InitTags(this, query); } public override bool IsFollower(List playPtn) { if (IsUnit) { if (!this.IsAccelerated(_field, null)) { return !this.IsCrystalize(_field, null); } return false; } return false; } }