feat(battle-engine): grow god-object + VFX-container shim surface

GameMgr (managers/setting/flags), UIManager (GetInstance + scene/dialog/loading
surface), EffectMgr (Start/effect lifecycle), VfxMgr + VfxWithLoading(Sequential)
register methods -- signatures mirrored from decomp. 15.9k -> 10.0k errors.
This commit is contained in:
gamer147
2026-06-05 20:27:00 -04:00
parent 4491c6c7f3
commit 78f310c2b3
2 changed files with 184 additions and 20 deletions

View File

@@ -67,11 +67,18 @@ namespace Wizard.Battle.View.Vfx
public class VfxWithLoading : SequentialVfxPlayer
{
public static new VfxWithLoading Create() => new VfxWithLoading();
public virtual VfxBase LoadingVfx => NullVfx.GetInstance();
public virtual VfxBase MainVfx => NullVfx.GetInstance();
}
public class VfxWithLoadingSequential : SequentialVfxPlayer
public class VfxWithLoadingSequential : VfxWithLoading
{
public static new VfxWithLoadingSequential Create() => new VfxWithLoadingSequential();
public override VfxBase LoadingVfx => NullVfx.GetInstance();
public override VfxBase MainVfx => NullVfx.GetInstance();
public void RegisterToLoadingVfx(VfxBase vfxToRegister) { }
public void RegisterToMainVfx(VfxBase vfxToRegister) { }
public void RegisterVfxWithLoading(VfxWithLoading vfxWithLoadingToRegister) { }
}
// Non-generic base (engine references bare `VfxWith` as well as the generics).
@@ -107,8 +114,17 @@ namespace Wizard.Battle.View.Vfx
// when IsForecast; we no-op unconditionally since we never pump the render loop).
public class VfxMgr
{
public virtual bool IsEnd => true;
public string CurrentVfxName => "";
public int CurrentVfxTime => 0;
public void RegisterImmediateVfx<T>(T vfx) where T : VfxBase { }
public void Register<T>(T vfx) where T : VfxBase { }
public virtual void RegisterSequentialVfx<T>(T vfx) where T : VfxBase { }
public Queue<VfxBase> GetSequentialVfxQueues() => new Queue<VfxBase>();
public List<VfxBase> GetVfxList<TType>() => new List<VfxBase>();
public virtual void Update(float dt) { }
public virtual void Cancel() { }
public void Dispose() { }
public void Clear() { }
}
}