Files
SVSimServer/SVSim.BattleEngine/Engine/Wizard/AITribeSimulationUtility.cs
gamer147 957af3d1ec 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.
2026-06-05 17:22:20 -04:00

56 lines
2.1 KiB
C#

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