Files
SVSimServer/SVSim.BattleEngine/Engine/PlayerChoiceBraveButtonUI.cs
gamer147 4b9a603cd4 feat(battle-engine): full View/VFX/UI/Touch/Story type closure (4254->3916, unmasked)
Generate no-op shells for the entire stop-listed View/Vfx/UI/Touch/Story missing-
type closure (~180 types) + 5 copyable engine files. Net-new shells emitted base-less,
so override members are stripped via the new --no-override generator flag. SDK/BCL
over-reach (Adjust/GZipStream/Socket*) and non-battle Story-world clusters reduced to
minimal/empty stubs instead of full-surface. Nested-type closure (BuildInfo/BattleDialog/
ROOM_URI/FuncGetCantAttackText) placed top-level in their decomp namespaces.

Clearing the last View CS0115 unmasked the true member-level frontier: 3916 errors,
0 generated/structural errors, now dominated by Unity-type + god-object members.

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

181 lines
5.0 KiB
C#

using UnityEngine;
public class PlayerChoiceBraveButtonUI : UIBase
{
private const int CHOICE_BRAVE_BUTTON_HEIGHT = 155;
private const int CHOICE_BRAVE_BUTTON_WEIGHT = 155;
private const string CHOICE_BRAVE_BUTTON_ON_SPRITE_NAME = "battle_icon_hero_player_on";
private const string CHOICE_BRAVE_BUTTON_OFF_SPRITE_NAME = "battle_icon_hero_player_off";
[SerializeField]
private UISprite _choiceBraveButtonSprite;
[SerializeField]
private UILabel _bpLabel;
[SerializeField]
private UIWidget _choiceBraveButtonWidget;
private bool isFocus;
private const float HIDE_OFFSET = 450f;
private const float SHOW_OFFSET_DOWN = 400f;
private const float SHOW_OFFSET_FORWARD = 50f;
public Vector3 BPLabelPosition
{
get
{
if (!(_bpLabel != null))
{
return Vector3.zero;
}
return _bpLabel.transform.position;
}
}
public void ShowButton(bool isNewReplay)
{
if (isNewReplay)
{
MoveHbpButtonAnchor(isFocus ? Global.PLAYER_CHOICE_BRAVE_BUTTON_POSITION_ZOOM.y : Global.PLAYER_CHOICE_BRAVE_BUTTON_POSITION.y);
return;
}
MoveHbpButtonAnchor(-200f);
base.gameObject.SetActive(value: true);
iTween.ValueTo(base.gameObject, iTween.Hash("from", -200, "to", Global.PLAYER_CHOICE_BRAVE_BUTTON_POSITION.y, "time", 0.5f, "delay", 0.1f, "onupdate", "MoveHbpButtonAnchor", "easetype", iTween.EaseType.easeInOutExpo));
}
public void HideButton()
{
Vector3 vector = (isFocus ? Global.PLAYER_CHOICE_BRAVE_BUTTON_POSITION_ZOOM : Global.PLAYER_CHOICE_BRAVE_BUTTON_POSITION);
iTween.ValueTo(base.gameObject, iTween.Hash("from", vector.y, "to", -200, "time", 0.5f, "onupdate", "MoveHbpButtonAnchor", "easetype", iTween.EaseType.easeInOutExpo));
}
public Transform GetButtonTransform()
{
return base.transform;
}
public void EnablePulsateEffect()
{
GameMgr ins = GameMgr.GetIns();
if (!BattleManagerBase.GetIns().BattlePlayer.CanChoiceBrave)
{
ins.GetEffectMgr().Stop(EffectMgr.EffectType.CMN_UI_HEROSKILL_1);
return;
}
Effect effect = ins.GetEffectMgr().Start(EffectMgr.EffectType.CMN_UI_HEROSKILL_1, GetButtonTransform().position, base.gameObject);
if (effect != null)
{
effect.gameObject.SetLayer(base.gameObject.layer, isSetChildren: true);
}
}
public void DisablePulsateEffect()
{
GameMgr.GetIns().GetEffectMgr().Stop(EffectMgr.EffectType.CMN_UI_HEROSKILL_1);
}
public void UpdatePulsateEffectAndSprite()
{
if (BattleManagerBase.GetIns().BattlePlayer.CanChoiceBraveThisTurn)
{
_choiceBraveButtonSprite.spriteName = "battle_icon_hero_player_on";
EnablePulsateEffect();
}
else
{
_choiceBraveButtonSprite.spriteName = "battle_icon_hero_player_off";
DisablePulsateEffect();
}
}
public void UpdateActivatingEffect(bool isActivating)
{
if (isActivating)
{
Effect effect = GameMgr.GetIns().GetEffectMgr().Start(EffectMgr.EffectType.CMN_UI_HEROSKILL_2, GetButtonTransform().position, base.gameObject);
if (effect != null)
{
effect.gameObject.SetLayer(base.gameObject.layer, isSetChildren: true);
}
}
else
{
GameMgr.GetIns().GetEffectMgr().Stop(EffectMgr.EffectType.CMN_UI_HEROSKILL_2);
}
}
private int SetYtoBottomAnchor(int posY)
{
int num = Mathf.FloorToInt(77f);
return posY - num;
}
private int SetYtoTopAnchor(int posY)
{
int num = 77;
return posY + num;
}
private float GetCenterAnchorPosY()
{
float num = 77f;
return (float)_choiceBraveButtonWidget.bottomAnchor.absolute + num;
}
public void MoveFocus(float beforePosY, float afterPosY)
{
if (beforePosY < afterPosY)
{
if (isFocus)
{
return;
}
isFocus = true;
}
else
{
if (!isFocus)
{
return;
}
isFocus = false;
}
iTween.ValueTo(base.gameObject, iTween.Hash("from", GetCenterAnchorPosY(), "to", afterPosY, "time", 0.2f, "onupdate", "MoveHbpButtonAnchor", "easetype", iTween.EaseType.easeOutQuad));
}
public void SetHbpButtonAnchor(float posX, float posY, float posZ, GameObject container)
{
base.transform.localPosition = new Vector3(posX, posY, posZ);
_choiceBraveButtonWidget.bottomAnchor.target = container.transform;
_choiceBraveButtonWidget.topAnchor.target = container.transform;
_choiceBraveButtonWidget.bottomAnchor.relative = 0f;
_choiceBraveButtonWidget.bottomAnchor.absolute = SetYtoBottomAnchor((int)posY);
_choiceBraveButtonWidget.topAnchor.relative = 0f;
_choiceBraveButtonWidget.topAnchor.absolute = SetYtoTopAnchor((int)posY);
_choiceBraveButtonWidget.UpdateAnchors();
}
public void MoveHbpButtonAnchor(float posY)
{
int num = (int)posY;
_choiceBraveButtonWidget.bottomAnchor.relative = 0f;
_choiceBraveButtonWidget.bottomAnchor.absolute = SetYtoBottomAnchor(num);
_choiceBraveButtonWidget.topAnchor.relative = 0f;
_choiceBraveButtonWidget.topAnchor.absolute = SetYtoTopAnchor(num);
_choiceBraveButtonWidget.UpdateAnchors();
}
public void SetBp(int num)
{
_bpLabel.text = num.ToString();
}
}