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>
83 lines
2.1 KiB
C#
83 lines
2.1 KiB
C#
using UnityEngine;
|
|
|
|
namespace Wizard.Battle.Player.ClassCharacter;
|
|
|
|
public class Player3dClassCharacter : Class3dCharacterBase
|
|
{
|
|
private readonly float ScreenWidthFraction = 0.5f;
|
|
|
|
private readonly float ScreenHeightFraction = 0.05f;
|
|
|
|
private readonly Vector3 WIDGET_POSITION = new Vector3(0f, -460f, 30f);
|
|
|
|
private readonly int WIDGET_OFFSET_BOTTOM = 71;
|
|
|
|
private readonly int WIDGET_OFFSET_TOP = 171;
|
|
|
|
protected override Vector3 MessagePosition => UIManager.GetInstance().getCamera().ScreenToWorldPoint(new Vector3((float)Screen.width * ScreenWidthFraction, (float)Screen.height * ScreenHeightFraction, 0f));
|
|
|
|
public Player3dClassCharacter(int classId)
|
|
{
|
|
_classCharacterId = classId;
|
|
IsPlayer = true;
|
|
}
|
|
|
|
public void SetClassId(int id)
|
|
{
|
|
_classCharacterId = id;
|
|
}
|
|
|
|
protected override string GetTagName()
|
|
{
|
|
return "Player";
|
|
}
|
|
|
|
protected override Quaternion ConvertBackPanelRotation(Quaternion originalRotation)
|
|
{
|
|
return originalRotation;
|
|
}
|
|
|
|
protected override Vector3 GetPosition()
|
|
{
|
|
return Global.CLASS_BATTLE_POSITION_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 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;
|
|
}
|
|
}
|