Files
SVSimServer/SVSim.BattleEngine/Engine/Wizard.Battle.Player.ClassCharacter/EnemySpineClassCharacter.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

136 lines
3.6 KiB
C#

using UnityEngine;
using Wizard.Battle.View.Vfx;
namespace Wizard.Battle.Player.ClassCharacter;
internal class EnemySpineClassCharacter : SpineClassCharacter
{
protected readonly Vector3 WIDGET_POSITION = new Vector3(0f, 490f, 30f);
protected readonly int WIDGET_OFFSET_BOTTOM = 195;
protected readonly int WIDGET_OFFSET_TOP = -1162;
protected readonly Vector3 PP_PANEL_POSITION = new Vector3(0f, -34.22f, -29.25f);
protected override Vector3 MessagePosition => _initPosition + new Vector3(0f, -0.3f, 0f);
public override VfxBase CreateLoadResouceVfx()
{
SequentialVfxPlayer sequentialVfxPlayer = SequentialVfxPlayer.Create();
sequentialVfxPlayer.Register(base.CreateLoadResouceVfx());
sequentialVfxPlayer.Register(InstantVfx.Create(delegate
{
base.GameObject.transform.Find("Collider").gameObject.GetComponent<BoxCollider>().size = new Vector3(3.8f, 3.9f, 0.2f);
}));
return sequentialVfxPlayer;
}
protected override string GetTagName()
{
return "Enemy";
}
protected override void SetUpAnchor(GameObject o)
{
o.transform.localPosition = WIDGET_POSITION;
UIWidget uIWidget = o.AddComponent<UIWidget>();
uIWidget.topAnchor.relative = 1f;
uIWidget.topAnchor.absolute = WIDGET_OFFSET_TOP;
Transform target = BattleManagerBase.GetIns().Battle3DContainer.transform.Find("Camera");
uIWidget.topAnchor.target = target;
uIWidget.bottomAnchor.target = target;
uIWidget.bottomAnchor.relative = 0.5f;
uIWidget.bottomAnchor.absolute = WIDGET_OFFSET_BOTTOM;
}
protected override void AttachOtherUI(GameObject o)
{
BattleManagerBase.GetIns().BattleEnemy.BattleView.EpPanel.transform.parent = o.transform;
EnemyStatusPanelControl enemyStatusPanelControl = BattleManagerBase.GetIns().BattleEnemy.StatusPanelControl as EnemyStatusPanelControl;
if ((bool)enemyStatusPanelControl)
{
enemyStatusPanelControl.ChangePPPanelParent(o.transform, PP_PANEL_POSITION);
}
}
public override Vector3 GetSpinePosition()
{
return new Vector3(0f, -0.36f, -0.17f);
}
protected override string GetTextureName()
{
return "mt_Encampment_Chara_1_Rev";
}
public override Vector3 GetMaskImagePosition()
{
return new Vector3(0f, 0.04f, 0f);
}
protected override Vector3 GetShieldPosition()
{
return new Vector3(1.86f, 0.4f, 0f);
}
protected override Vector3 GetLifeIconPosition()
{
return new Vector3(0f, 0f, 0.1f);
}
public override Quaternion GetMaskImageRotation()
{
return Quaternion.Euler(new Vector3(0f, 0f, 180f));
}
public override Vector3 ConvertSpineScale(Vector3 originalScale)
{
if (GameMgr.GetIns().GetDataMgr().GetEnemyBattleSkillReverse() == 1)
{
return new Vector3((0f - originalScale.x) * 0.934f, originalScale.y, originalScale.z) * 1.003125f;
}
return new Vector3(originalScale.x * 0.934f, originalScale.y, originalScale.z);
}
public override int GetSpineSortingOrder(bool isBack = false)
{
return -1;
}
public override int GetMaskSortingOrder(bool isBack = false)
{
return -1;
}
protected override int GetEmoteLabelDepth()
{
return 0;
}
protected override int GetCharaId()
{
return GameMgr.GetIns().GetDataMgr().GetEnemyCharaId();
}
public override int GetSkinId()
{
return GameMgr.GetIns().GetDataMgr().GetEnemySkinId();
}
public override int GetStencil()
{
return 2;
}
protected override Vector3 GetPosition()
{
return Global.CLASS_BATTLE_POSITION_ENEMY;
}
protected override Quaternion ConvertBackPanelRotation(Quaternion originalRotation)
{
return Quaternion.Euler(0f, -180f, 180f);
}
}