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>
144 lines
3.7 KiB
C#
144 lines
3.7 KiB
C#
using UnityEngine;
|
|
using Wizard.Battle.View.Vfx;
|
|
|
|
namespace Wizard.Battle.Player.ClassCharacter;
|
|
|
|
internal class EnemyHighRankSpineClassCharacter : HighRankSpineClassCharacter
|
|
{
|
|
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.27f);
|
|
}
|
|
|
|
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)
|
|
{
|
|
if (!isBack)
|
|
{
|
|
return -1;
|
|
}
|
|
return -9;
|
|
}
|
|
|
|
public override int GetMaskSortingOrder(bool isBack = false)
|
|
{
|
|
if (!isBack)
|
|
{
|
|
return -1;
|
|
}
|
|
return -9;
|
|
}
|
|
|
|
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);
|
|
}
|
|
}
|