Authored Unity primitive/object-model shim, VFX layer (control-flow-preserving, InstantVfx never invokes its action -- headless suppression), god-object stubs (GameMgr/EffectMgr/UIManager with faithfully-extracted nested enums), View/UI/Touch tree, LitJson+BetterList+Tuple copied, third-party stubs. Discovered Roslyn header-error masking: fixing class-header type errors unmasks body references, so the true copy closure is ~2570 files (was 782 under masking). Errors: masked-25720 -> 268; our shim files compile clean. Remaining: ~50 residual shim/external types, 24 NGUI UI-base overrides, static-type fixes, plus likely 1-2 more unmask waves.
87 lines
2.6 KiB
C#
87 lines
2.6 KiB
C#
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<CardBasePrm.TribeType>(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<int> playPtn)
|
|
{
|
|
if (IsUnit)
|
|
{
|
|
if (!this.IsAccelerated(_field, null))
|
|
{
|
|
return !this.IsCrystalize(_field, null);
|
|
}
|
|
return false;
|
|
}
|
|
return false;
|
|
}
|
|
}
|