Files
SVSimServer/SVSim.BattleEngine/Engine/Wizard/AIDamageSelectLogicArgument.cs
gamer147 824309ec44 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.
2026-06-05 20:30:59 -04:00

38 lines
1.4 KiB
C#

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