Files
SVSimServer/SVSim.BattleEngine/Engine/Wizard.Battle.Player.ClassCharacter/PlayerSpineClassCharacter.cs
gamer147 2ddc86943e feat(battle-engine): re-establish dropped base clauses for net-new stubs (2704->2202 true)
The stub generator emits net-new types as base-LESS partials, so generated Vfx/View
types weren't actually VfxBase/etc. -> hundreds of CS1503/CS0029 'cannot convert to
VfxBase' at every polymorphic call site. m1_baseclauses.py recovers each generated
type's decomp base CLASS (interfaces dropped to avoid CS0535) into _BaseClauses.g.cs,
cross-namespace bases fully qualified. Generated the intermediate Vfx/processing base
types (SpreadOutVfx/OpenCardVfx/ProcessingBase/DamageVfxBase/ForecastIconVfxBase/...).
DefaultOpeningVfx regenerated WITH override (its base OpeningVfx is copied+abstract).

Clearing the polymorphism cascade + the masking base-type CS0246s unmasked the true
member-level frontier: 2202 (CS1501/CS1061/CS1503), 0 structural errors.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-05 22:24:22 -04:00

124 lines
3.0 KiB
C#

using UnityEngine;
namespace Wizard.Battle.Player.ClassCharacter;
internal class PlayerSpineClassCharacter : SpineClassCharacter
{
protected readonly Vector3 WIDGET_POSITION = new Vector3(0f, -460f, 30f);
protected readonly int WIDGET_OFFSET_BOTTOM = 71;
protected readonly int WIDGET_OFFSET_TOP = 171;
protected readonly Vector3 PP_PANEL_POSITION = new Vector3(0f, -34.22f, -29.25f);
protected override Vector3 MessagePosition => UIManager.GetInstance().getCamera().ScreenToWorldPoint(new Vector3((float)Screen.width * ScreenWidthFraction, (float)Screen.height * ScreenHeightFraction, 0f));
protected override string GetTagName()
{
return "Player";
}
protected override void SetUpAnchor(GameObject o)
{
o.transform.localPosition = WIDGET_POSITION;
UIWidget uIWidget = o.AddComponent<UIWidget>();
uIWidget.bottomAnchor.relative = 0f;
uIWidget.bottomAnchor.absolute = WIDGET_OFFSET_BOTTOM;
Transform transform = BattleManagerBase.GetIns().Battle3DContainer.transform;
uIWidget.bottomAnchor.target = transform;
uIWidget.topAnchor.target = transform;
uIWidget.topAnchor.relative = 0f;
uIWidget.topAnchor.absolute = WIDGET_OFFSET_TOP;
}
protected override void AttachOtherUI(GameObject o)
{
BattleManagerBase.GetIns().BattlePlayer.BattleView.EpPanel.transform.parent = o.transform;
}
public override void PlayMotion(ClassCharaPrm.MotionType motionType)
{
base.PlayMotion(motionType);
if (_isNoEvolveShift && motionType == ClassCharaPrm.MotionType.extra)
{
BattleCoroutine.GetInstance().StartCoroutine(WaitReturnOnAnimation());
}
}
public override Vector3 GetSpinePosition()
{
return new Vector3(0f, -0.02f, -0.17f);
}
protected override string GetTextureName()
{
return "mt_Encampment_Chara_1";
}
public override Vector3 GetMaskImagePosition()
{
return new Vector3(0f, 0.12f, 0f);
}
protected override Vector3 GetShieldPosition()
{
return new Vector3(2f, 1.7f, 0f);
}
protected override Vector3 GetLifeIconPosition()
{
return new Vector3(0f, 0f, 0.1f);
}
public override Quaternion GetMaskImageRotation()
{
return Quaternion.identity;
}
public override Vector3 ConvertSpineScale(Vector3 originalScale)
{
return originalScale * 1.003125f;
}
public override int GetSpineSortingOrder(bool isBack = false)
{
return -2;
}
public override int GetMaskSortingOrder(bool isBack = false)
{
return -2;
}
protected override int GetEmoteLabelDepth()
{
return 42;
}
protected override int GetCharaId()
{
return GameMgr.GetIns().GetDataMgr().GetPlayerCharaId();
}
public override int GetSkinId()
{
return GameMgr.GetIns().GetDataMgr().GetPlayerSkinId();
}
public override int GetStencil()
{
return 3;
}
protected override Vector3 GetPosition()
{
return Global.CLASS_BATTLE_POSITION_PLAYER;
}
protected override Quaternion ConvertBackPanelRotation(Quaternion originalRotation)
{
return originalRotation;
}
}