Files
SVSimServer/SVSim.BattleEngine/Engine/WatchInPlayAction.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

87 lines
3.9 KiB
C#

using System.Collections.Generic;
using System.Linq;
using Cute;
using Wizard.Battle.Touch;
using Wizard.Battle.View.Vfx;
public class WatchInPlayAction : InPlayCardReflection
{
private const float DELAY_BEFORE_START_SKILL_TARGET_SELECT = 0.5f;
private const float WAIT_TIME_BETWEEN_SELECT_AND_EVOLUTION = 0.25f;
private const float WAIT_TIME_BETWEEN_CHOICE_AND_EVOLUTION = 0.5f;
public WatchInPlayAction(BattleManagerBase battleMgr, OperateMgr operateMgr)
: base(battleMgr, operateMgr)
{
}
protected override VfxBase CreateEvolveVfx(BattleCardBase evolvedCard, List<BattleCardBase> targetCards, bool isPlayer, List<int> choiceId, bool isChoice)
{
if (((targetCards != null && targetCards.Any()) || (choiceId != null && choiceId.Any())) && (isPlayer || GameMgr.GetIns().IsAdmin))
{
return NullVfx.GetInstance();
}
return base.CreateEvolveVfx(evolvedCard, targetCards, isPlayer, choiceId, isChoice);
}
public override void StartSelect(int actingCardIndex, bool isPlayer = true)
{
SequentialVfxPlayer sequentialVfxPlayer = SequentialVfxPlayer.Create();
BattleCardBase indexToCardBase = NetworkBattleGenericTool.GetIndexToCardBase(_battleMgr, _battleMgr.GetBattlePlayer(isPlayer), actingCardIndex);
sequentialVfxPlayer.Register(CreateStartSelectVfx(indexToCardBase, isEvolve: true));
_battleMgr.VfxMgr.RegisterSequentialVfx(sequentialVfxPlayer);
}
public override void StartChoiceSelect(int actingCardIndex, bool isPlayer = true)
{
SequentialVfxPlayer sequentialVfxPlayer = SequentialVfxPlayer.Create();
BattleCardBase indexToCardBase = NetworkBattleGenericTool.GetIndexToCardBase(_battleMgr, _battleMgr.GetBattlePlayer(isPlayer), actingCardIndex);
SkillBase choiceSkill = GetSelectSkills(indexToCardBase, isEvolve: true).FirstOrDefault();
sequentialVfxPlayer.Register(new StartEvolutionTargetFocusVfx(indexToCardBase.BattleCardView.GameObject));
sequentialVfxPlayer.Register(CreateStartChoiceSelectVfx(indexToCardBase, choiceSkill, isEvolve: true, null));
_battleMgr.VfxMgr.RegisterSequentialVfx(sequentialVfxPlayer);
}
public override void StartSelectFusion(int actingCardIndex, bool isPlayer = true)
{
SequentialVfxPlayer sequentialVfxPlayer = SequentialVfxPlayer.Create();
BattleCardBase indexToCardBase = NetworkBattleGenericTool.GetIndexToCardBase(_battleMgr, _battleMgr.GetBattlePlayer(isPlayer), actingCardIndex);
sequentialVfxPlayer.Register(new StartEvolutionTargetFocusVfx(indexToCardBase.BattleCardView.GameObject));
sequentialVfxPlayer.Register(CreateStartFusionSelectVfx(indexToCardBase));
_battleMgr.VfxMgr.RegisterSequentialVfx(sequentialVfxPlayer);
}
public override void CancelSelect(bool isPlayer = true)
{
if (_actingCard != null)
{
base.CancelSelect(isPlayer);
_battleMgr.VfxMgr.RegisterImmediateVfx(CreateStopEvolutionTargetFocusVfx(_actingCard));
}
}
public override void CancelChoiceSelect(bool isPlayer = true)
{
if (_actingChoiceCard != null)
{
ChoiceUtility.StopChoiceEffects(_choiceCards);
ChoiceUtility.PlayCancelEvolveChoiceAnimation(_choiceCards, _battleMgr);
base.CancelChoiceSelect(isPlayer);
_battleMgr.VfxMgr.RegisterImmediateVfx(CreateStopEvolutionTargetFocusVfx(_actingChoiceCard));
}
}
protected override VfxBase CreateAfterSelectVfx(BattleCardBase actingCard, List<int> selectedChoiceCardIds, bool isPlayer = true, bool isChoiceBrave = false)
{
float waitTime = (selectedChoiceCardIds.IsNotNullOrEmpty() ? 0.5f : 0.25f);
return SequentialVfxPlayer.Create(WaitVfx.Create(waitTime), ParallelVfxPlayer.Create(_operateMgr.EvolutionCard(actingCard, isPlayer, _selectedCards, selectedChoiceCardIds), CreateStopEvolutionTargetFocusVfx(actingCard)));
}
private VfxBase CreateStopEvolutionTargetFocusVfx(BattleCardBase actingCard)
{
return new StopEvolutionTargetFocasVfx(actingCard.BattleCardView.GameObject);
}
}