feat(battle-engine): close the AI-simulation subsystem (verbatim)

Copied the 89 uncopied AI*SimulationUtility/extension files defining the
AIVirtualCard/AIVirtualField extension methods; the compile loop then auto-closed
the revealed type deps (~3049 files total, drift-clean). 10.0k -> 62 errors.
This commit is contained in:
gamer147
2026-06-05 20:30:59 -04:00
parent 78f310c2b3
commit 824309ec44
472 changed files with 55870 additions and 0 deletions

View File

@@ -0,0 +1,37 @@
using System.Collections.Generic;
namespace Wizard;
public class AIDamageSelectLogicArgument : AISelectLogicArgumentBase
{
private const int DAMAGE_VALUE_ARG_INDEX = 0;
public override AIScriptTokenArgType LogicType => AIScriptTokenArgType.DAMAGE_LOGIC;
public AIDamageSelectLogicArgument(List<string> args)
: base(args)
{
}
public override AIVirtualCard SelectSingleTarget(List<AIVirtualCard> candidates, AIVirtualCard tagOwner, AIVirtualField field, List<int> playPtn, AISituationInfo situation, AISelectTargetPattern worstOrBest)
{
int damageValue = GetDamageValue(tagOwner, field, playPtn, situation);
return AIDamageSimulationUtility.SelectDamageTarget(candidates, field, playPtn, situation, damageValue, tagOwner.IsSpell, worstOrBest);
}
public override List<AIVirtualCard> SelectMultipleSelectedTargets(List<AIVirtualCard> candidates, int selectCount, AIVirtualCard tagOwner, AIVirtualField field, List<int> playPtn, AISituationInfo situation, AISelectTargetPattern worstOrBest)
{
LogNotImplementMultipleSelect();
return null;
}
private int GetDamageValue(AIVirtualCard tagOwner, AIVirtualField field, List<int> playPtn, AISituationInfo situation)
{
if (_argumentList == null || _argumentList.Count <= 0)
{
AIConsoleUtility.LogError("AIDamageSelectLogicArgument error!! _argumentList is null");
return 0;
}
return (int)_argumentList[0].EvalArg(tagOwner, playPtn, field, situation);
}
}