feat(battle-engine): M1 auto-copy closure (782 battle-logic files)
Compile-driven bulk-copy loop (tools/engine-port/m1_copy_loop.py) pulled the precise reference closure of the battle-core roots, stopping at the classify god-object/View-VFX-UI boundary. 782 files; no re-explosion (M0 had estimated ~order 1000). Residual frontier = 52 shim-classified + 80 external (Unity/BCL) types to author next.
This commit is contained in:
136
SVSim.BattleEngine/Engine/Wizard/PlayedCardInfo.cs
Normal file
136
SVSim.BattleEngine/Engine/Wizard/PlayedCardInfo.cs
Normal file
@@ -0,0 +1,136 @@
|
||||
namespace Wizard;
|
||||
|
||||
public class PlayedCardInfo
|
||||
{
|
||||
public int HandIndex;
|
||||
|
||||
public AIVirtualCard Card;
|
||||
|
||||
public int DrawCount;
|
||||
|
||||
public int UsedCost;
|
||||
|
||||
public int RestPp;
|
||||
|
||||
public PlaySimulationType PlayType;
|
||||
|
||||
public bool IsPassedPlayCondition;
|
||||
|
||||
public bool IsProcessed;
|
||||
|
||||
public bool IsPlayable
|
||||
{
|
||||
get
|
||||
{
|
||||
if (UsedCost >= 0 && RestPp >= 0)
|
||||
{
|
||||
return IsPassedPlayCondition;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
public AISimulationPreprocessRecorder PreprocessRecorder { get; private set; }
|
||||
|
||||
public AIVirtualCard TransformCard { get; private set; }
|
||||
|
||||
public AIDiscardInfo DiscardInfo { get; private set; }
|
||||
|
||||
public AISelectedTargetInfoSet PreDecidedSelectTargets { get; private set; }
|
||||
|
||||
public bool HasPreDecidedSelectTargets
|
||||
{
|
||||
get
|
||||
{
|
||||
if (PreDecidedSelectTargets != null)
|
||||
{
|
||||
return PreDecidedSelectTargets.IsAnyTargetExists();
|
||||
}
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
public PlayedCardInfo(int handIndex, AIVirtualCard card)
|
||||
{
|
||||
HandIndex = handIndex;
|
||||
Card = card;
|
||||
DrawCount = 0;
|
||||
UsedCost = -1;
|
||||
RestPp = -1;
|
||||
PlayType = PlaySimulationType.Undefined;
|
||||
IsPassedPlayCondition = false;
|
||||
PreprocessRecorder = null;
|
||||
TransformCard = null;
|
||||
DiscardInfo = null;
|
||||
PreDecidedSelectTargets = null;
|
||||
IsProcessed = false;
|
||||
}
|
||||
|
||||
public void CloneFromPartlyMatchedInfo(PlayedCardInfo original)
|
||||
{
|
||||
if (HandIndex == original.HandIndex && Card.IsSameCard(original.Card))
|
||||
{
|
||||
DrawCount = original.DrawCount;
|
||||
UsedCost = original.UsedCost;
|
||||
RestPp = original.RestPp;
|
||||
PlayType = original.PlayType;
|
||||
IsPassedPlayCondition = original.IsPassedPlayCondition;
|
||||
TransformCard = original.TransformCard;
|
||||
}
|
||||
else
|
||||
{
|
||||
AIConsoleUtility.LogError("PlayedCardInfo.CloneFromPartlyMatchedInfo() error!! Cannot match to original!!!!!");
|
||||
}
|
||||
}
|
||||
|
||||
public void RegisterPreprocess(AISimulationPreprocessRecorder recorder)
|
||||
{
|
||||
PreprocessRecorder = recorder;
|
||||
}
|
||||
|
||||
public void SetTransformCard(AIVirtualCard newActor)
|
||||
{
|
||||
TransformCard = newActor;
|
||||
}
|
||||
|
||||
public void SetDiscardInfo(AIDiscardInfo info, AIScriptTokenArgType selectType)
|
||||
{
|
||||
DiscardInfo = info;
|
||||
if (info.IsValuable && (selectType == AIScriptTokenArgType.TARGET_SELECT || selectType == AIScriptTokenArgType.SECOND_TARGET_SELECT))
|
||||
{
|
||||
AISelectedTargetInfo info2 = new AISelectedTargetInfo(info.TargetList, TargetSelectType.NormalRuleBase);
|
||||
int num = -1;
|
||||
switch (selectType)
|
||||
{
|
||||
case AIScriptTokenArgType.TARGET_SELECT:
|
||||
num = 0;
|
||||
break;
|
||||
case AIScriptTokenArgType.SECOND_TARGET_SELECT:
|
||||
num = 1;
|
||||
break;
|
||||
}
|
||||
if (num >= 0)
|
||||
{
|
||||
RegisterPreDecidedTarget(info2, num);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public void RegisterPreDecidedPreprocessTarget(AISelectedTargetInfo info)
|
||||
{
|
||||
if (PreDecidedSelectTargets == null)
|
||||
{
|
||||
PreDecidedSelectTargets = new AISelectedTargetInfoSet();
|
||||
}
|
||||
PreDecidedSelectTargets.SetPreprocessTarget(info);
|
||||
}
|
||||
|
||||
public void RegisterPreDecidedTarget(AISelectedTargetInfo info, int index)
|
||||
{
|
||||
if (PreDecidedSelectTargets == null)
|
||||
{
|
||||
PreDecidedSelectTargets = new AISelectedTargetInfoSet();
|
||||
}
|
||||
PreDecidedSelectTargets.Set(info, index);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user