feat(battle-engine): full Unity/VFX/god-object shims + expanded copy closure (2570 files)

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.
This commit is contained in:
gamer147
2026-06-05 17:22:20 -04:00
parent 0d9d8acae0
commit 957af3d1ec
1795 changed files with 166536 additions and 0 deletions

View File

@@ -0,0 +1,55 @@
using System.Collections.Generic;
namespace Wizard;
public static class AITribeSimulationUtility
{
public static CardBasePrm.TribeType ConvertTokenArgTypeToTribeType(AIScriptTokenArgType tokenArgType)
{
return tokenArgType switch
{
AIScriptTokenArgType.FOOD => CardBasePrm.TribeType.FOOD,
AIScriptTokenArgType.MACHINE => CardBasePrm.TribeType.MACHINE,
AIScriptTokenArgType.NATURE => CardBasePrm.TribeType.NATURE,
AIScriptTokenArgType.LEGION => CardBasePrm.TribeType.LEGION,
AIScriptTokenArgType.LORD => CardBasePrm.TribeType.LORD,
AIScriptTokenArgType.LEVIN => CardBasePrm.TribeType.LEVIN,
AIScriptTokenArgType.LOOT => CardBasePrm.TribeType.LOOTING,
AIScriptTokenArgType.WHITE_RITUAL => CardBasePrm.TribeType.WHITE_RITUAL,
AIScriptTokenArgType.MANARIA => CardBasePrm.TribeType.MANARIA,
AIScriptTokenArgType.ARTIFACT => CardBasePrm.TribeType.ARTIFACT,
AIScriptTokenArgType.BANQUET => CardBasePrm.TribeType.BANQUET,
AIScriptTokenArgType.HERO => CardBasePrm.TribeType.HERO,
AIScriptTokenArgType.ARMED => CardBasePrm.TribeType.ARMED,
AIScriptTokenArgType.HELLBOUND => CardBasePrm.TribeType.HELLBOUND,
AIScriptTokenArgType.SCHOOL => CardBasePrm.TribeType.SCHOOL,
AIScriptTokenArgType.CHESS => CardBasePrm.TribeType.CHESS,
_ => CardBasePrm.TribeType.MAX,
};
}
public static void ChangeTribeAll(List<AIVirtualCard> candidates, CardBasePrm.TribeType tribe)
{
if (candidates == null || candidates.Count <= 0)
{
return;
}
for (int i = 0; i < candidates.Count; i++)
{
AIVirtualCard aIVirtualCard = candidates[i];
if (!aIVirtualCard.IsDead && !aIVirtualCard.IsIndependent)
{
aIVirtualCard.ChangeTribe(tribe);
}
}
}
public static void ChangeTribeTargetSelect(CardBasePrm.TribeType tribe, AIScriptTokenArgType selectType, AISituationInfo situation)
{
AISelectedTargetInfo situationTarget = situation.GetSituationTarget(selectType);
if (situationTarget != null && situationTarget.HasTarget)
{
ChangeTribeAll(situationTarget.Targets, tribe);
}
}
}