Files
SVSimServer/SVSim.BattleEngine/Engine/Wizard.Battle.Phase/ResultPhase.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

88 lines
4.0 KiB
C#

using System;
using Cute;
using Wizard.Battle.View.Vfx;
namespace Wizard.Battle.Phase;
public class ResultPhase : IResultPhase, IPhase
{
private readonly BattleManagerBase _battleMgr;
private readonly bool _winnerIsPlayer;
public event Action OnSetupEnd;
public ResultPhase(BattleManagerBase battleMgr, bool winnerIsPlayer)
{
_battleMgr = battleMgr;
_winnerIsPlayer = winnerIsPlayer;
}
public virtual VfxBase Setup()
{
_battleMgr.TurnPanelControl.GameObject.SetActive(value: false);
SequentialVfxPlayer sequentialVfxPlayer = SequentialVfxPlayer.Create();
DataMgr dataMgr = GameMgr.GetIns().GetDataMgr();
if (dataMgr.m_BattleType == DataMgr.BattleType.BossRushQuest && !_battleMgr.BattleResultControl.AlreadyResultRecovery)
{
_battleMgr.BattleResultControl.AlreadyResultRecovery = true;
ClassBattleCardBase classCard = _battleMgr.BattlePlayer.Class as ClassBattleCardBase;
VfxBase vfx = (classCard.SkillApplyInformation as ClassSkillApplyInformation).GiveCombatValueModifier(null, new MaxLifeSetModifier(classCard.BossRushStartLife), null);
sequentialVfxPlayer.Register(vfx);
if (_winnerIsPlayer && dataMgr.BossRushBattleData != null && dataMgr.BossRushBattleData.RecoveryPointWhenFinish > 0)
{
EffectBattle effectBattle = null;
SkillBase.WaitEffectLoadVfx loadingVfx = new SkillBase.WaitEffectLoadVfx("btl_magic_cure_2", EffectMgr.EngineType.SHURIKEN, "se_btl_magic_cure_2", classCard.ResourceMgr, delegate(EffectBattle eb)
{
effectBattle = eb;
});
DelaySetupVfx mainVfx = new DelaySetupVfx(() => new SkillEffectBattleVfx(effectBattle, classCard.BattleCardView, classCard.ResourceMgr, () => classCard.BattleCardView.GameObject.transform.position, () => classCard.BattleCardView.CardWrapObject.transform.position, 0f, 0f, EffectMgr.MoveType.DIRECT, EffectMgr.TargetType.SINGLE, isPlayer: true));
VfxWithLoading vfxWithLoading = VfxWithLoading.Create(loadingVfx, mainVfx);
BattleCardBase.HealParam healParam = new BattleCardBase.HealParam(dataMgr.BossRushBattleData.RecoveryPointWhenFinish, classCard, classCard);
BattleCardBase.HealResult healResult = classCard.ApplyHealing(healParam, null);
classCard.SkillApplyInformation.AddSkillHealValue(healResult.HealAmount);
VfxWithLoadingSequential vfxWithLoadingSequential = VfxWithLoadingSequential.Create(healResult.PrehealVfxVfx, vfxWithLoading.MainVfx, healResult.HealVfx, healResult.PosthealVfxVfx);
vfxWithLoadingSequential.RegisterToLoadingVfx(vfxWithLoading.LoadingVfx);
sequentialVfxPlayer.Register(vfxWithLoadingSequential);
}
}
sequentialVfxPlayer.Register(WaitVfx.Create(1f));
sequentialVfxPlayer.Register(InstantVfx.Create(delegate
{
_battleMgr.MenuButtonObject.SetActive(value: false);
if (!_battleMgr.BattleResultControl.IsResultOn)
{
_battleMgr.BattlePlayer.PlayerBattleView.AllClear();
_battleMgr.BackGround.SetShaderGlobalColorBG.ChangeGlobalShaderColorFadeIn();
_battleMgr.isStorySuccessful = (_winnerIsPlayer ? 1 : 0);
_battleMgr.DetailMgr.DetailPanelControl.Hide();
_battleMgr.BattlePlayer.PlayerBattleView.TurnEndButtonUI.HideBtn();
_battleMgr.BattleResultControl.StartUI(_winnerIsPlayer, _battleMgr.Camera);
_battleMgr.BattlePlayer.StatusPanelControl.HideUI();
_battleMgr.BattleEnemy.StatusPanelControl.HideUI();
_battleMgr.BattlePlayer.PlayerBattleView.TurnEndButtonUI.HideAnimation();
_battleMgr.BattlePlayer.PlayerBattleView.HideChoiceBraveButton();
_battleMgr.BattleEnemy.BattleEnemyView.HideChoiceBraveButton();
GameMgr.GetIns().GetSoundMgr().StopBGM(null, 1f);
this.OnSetupEnd.Call();
}
}));
sequentialVfxPlayer.Register(ParallelVfxPlayer.Create(_battleMgr.BattlePlayer.BattleView.HandView.HandFocus(), _battleMgr.BattleEnemy.BattleView.HandView.HandFocus()));
return sequentialVfxPlayer;
}
public VfxWith<IPhase> Update(float dt)
{
return new VfxWith<IPhase>(NullVfx.GetInstance(), null);
}
public VfxBase Teardown()
{
return NullVfx.GetInstance();
}
public void Pause()
{
}
}