feat(battle-engine): full Unity/VFX/god-object shims + expanded copy closure (2570 files)
Authored Unity primitive/object-model shim, VFX layer (control-flow-preserving, InstantVfx never invokes its action -- headless suppression), god-object stubs (GameMgr/EffectMgr/UIManager with faithfully-extracted nested enums), View/UI/Touch tree, LitJson+BetterList+Tuple copied, third-party stubs. Discovered Roslyn header-error masking: fixing class-header type errors unmasks body references, so the true copy closure is ~2570 files (was 782 under masking). Errors: masked-25720 -> 268; our shim files compile clean. Remaining: ~50 residual shim/external types, 24 NGUI UI-base overrides, static-type fixes, plus likely 1-2 more unmask waves.
This commit is contained in:
195
SVSim.BattleEngine/Engine/CostCurveUI.cs
Normal file
195
SVSim.BattleEngine/Engine/CostCurveUI.cs
Normal file
@@ -0,0 +1,195 @@
|
||||
using System;
|
||||
using UnityEngine;
|
||||
using Wizard;
|
||||
|
||||
public class CostCurveUI : MonoBehaviour
|
||||
{
|
||||
[Serializable]
|
||||
private class CostStruct
|
||||
{
|
||||
[SerializeField]
|
||||
public GameObject Parent;
|
||||
|
||||
[SerializeField]
|
||||
public UILabel LabelCost;
|
||||
|
||||
[SerializeField]
|
||||
public UILabel LabelCount;
|
||||
|
||||
[SerializeField]
|
||||
public UIProgressBar Bar;
|
||||
|
||||
public int Count;
|
||||
}
|
||||
|
||||
[SerializeField]
|
||||
private int m_maxBarValue = 15;
|
||||
|
||||
[SerializeField]
|
||||
private CostStruct m_original;
|
||||
|
||||
[SerializeField]
|
||||
private UIProgressBar m_barAdditiveEffect;
|
||||
|
||||
[SerializeField]
|
||||
private int m_barNum = 8;
|
||||
|
||||
[SerializeField]
|
||||
private int m_minCost = 1;
|
||||
|
||||
[SerializeField]
|
||||
private float m_barWidth = 25f;
|
||||
|
||||
private CostStruct[] m_costArray;
|
||||
|
||||
private CardMaster.CardMasterId _cardMasterId;
|
||||
|
||||
public void Initialize(CardMaster.CardMasterId cardMasterId)
|
||||
{
|
||||
_cardMasterId = cardMasterId;
|
||||
}
|
||||
|
||||
public void Refresh()
|
||||
{
|
||||
if (m_costArray != null)
|
||||
{
|
||||
for (int i = 0; i < m_costArray.Length; i++)
|
||||
{
|
||||
m_costArray[i].Count = 0;
|
||||
m_costArray[i].LabelCount.text = "0";
|
||||
m_costArray[i].Bar.value = 0f;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public void Refresh(int[] array)
|
||||
{
|
||||
Refresh();
|
||||
if (array != null)
|
||||
{
|
||||
for (int i = 0; i < array.Length; i++)
|
||||
{
|
||||
Add(array[i], withAnim: false);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public void Refresh(UIBase_CardManager.CardObjData[] array)
|
||||
{
|
||||
Refresh();
|
||||
if (array == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
for (int i = 0; i < array.Length; i++)
|
||||
{
|
||||
int num = array[i].mainCardNum + array[i].subCardNum;
|
||||
for (int j = 0; j < num; j++)
|
||||
{
|
||||
Add(array[i].ids, withAnim: false);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public void Add(int cardId, bool withAnim)
|
||||
{
|
||||
ChangeValue(1, cardId, withAnim);
|
||||
}
|
||||
|
||||
public void Add(UIBase_CardManager.CardObjData card, bool withAnim)
|
||||
{
|
||||
Add(card.ids, withAnim);
|
||||
}
|
||||
|
||||
public void Sub(int cardId, bool withAnim)
|
||||
{
|
||||
ChangeValue(-1, cardId, withAnim);
|
||||
}
|
||||
|
||||
public void Sub(UIBase_CardManager.CardObjData card, bool withAnim)
|
||||
{
|
||||
Sub(card.ids, withAnim);
|
||||
}
|
||||
|
||||
private void ChangeValue(int addnum, int cardId, bool withAnim)
|
||||
{
|
||||
int num = Mathf.Min(Mathf.Max(CardMaster.GetInstance(_cardMasterId).GetCardParameterFromId(cardId).Cost, m_minCost), m_barNum) - m_minCost;
|
||||
CostStruct cost_this = m_costArray[num];
|
||||
cost_this.Count += addnum;
|
||||
if (withAnim && m_barAdditiveEffect != null)
|
||||
{
|
||||
m_barAdditiveEffect.gameObject.SetActive(value: true);
|
||||
UIProgressBar barAdditiveEffect = m_barAdditiveEffect;
|
||||
float value = (cost_this.Bar.value = (float)(cost_this.Count + addnum) / (float)m_maxBarValue);
|
||||
barAdditiveEffect.value = value;
|
||||
m_barAdditiveEffect.transform.position = cost_this.Bar.transform.position;
|
||||
m_barAdditiveEffect.alpha = 0.8f;
|
||||
TweenAlpha.Begin(m_barAdditiveEffect.gameObject, 0.4f, 0f);
|
||||
TweenScale anim = TweenScale.Begin(cost_this.LabelCount.gameObject, 0.2f, Vector3.one * 1.2f);
|
||||
TweenAlpha.Begin(cost_this.LabelCount.gameObject, 0.2f, 0f);
|
||||
EventDelegate ev = null;
|
||||
ev = new EventDelegate(delegate
|
||||
{
|
||||
anim.RemoveOnFinished(ev);
|
||||
cost_this.Bar.value = (float)cost_this.Count / (float)m_maxBarValue;
|
||||
cost_this.LabelCount.text = cost_this.Count.ToString() ?? "";
|
||||
cost_this.LabelCount.transform.localScale = Vector3.one * 0.8f;
|
||||
TweenScale.Begin(cost_this.LabelCount.gameObject, 0.2f, Vector3.one);
|
||||
TweenAlpha.Begin(cost_this.LabelCount.gameObject, 0.2f, 1f);
|
||||
});
|
||||
anim.onFinished.Add(ev);
|
||||
}
|
||||
else
|
||||
{
|
||||
cost_this.LabelCount.text = cost_this.Count.ToString() ?? "";
|
||||
cost_this.Bar.value = (float)cost_this.Count / (float)m_maxBarValue;
|
||||
}
|
||||
}
|
||||
|
||||
private void Awake()
|
||||
{
|
||||
m_costArray = new CostStruct[m_barNum];
|
||||
m_original.LabelCost.text = m_minCost.ToString() ?? "";
|
||||
m_original.LabelCount.text = 0.ToString() ?? "";
|
||||
m_original.Bar.value = 0f;
|
||||
m_costArray[0] = m_original;
|
||||
for (int i = 1; i < m_barNum; i++)
|
||||
{
|
||||
m_costArray[i] = new CostStruct();
|
||||
GameObject obj = (m_costArray[i].Parent = UnityEngine.Object.Instantiate(m_original.Parent));
|
||||
obj.transform.parent = m_original.Parent.transform.parent;
|
||||
obj.transform.localScale = m_original.Parent.transform.localScale;
|
||||
Vector3 localPosition = m_original.Parent.transform.localPosition;
|
||||
localPosition.x += m_barWidth * (float)i;
|
||||
obj.transform.localPosition = localPosition;
|
||||
UIWidget[] componentsInChildren = obj.GetComponentsInChildren<UIWidget>();
|
||||
for (int j = 0; j < componentsInChildren.Length; j++)
|
||||
{
|
||||
if (componentsInChildren[j].name == m_original.LabelCost.name)
|
||||
{
|
||||
m_costArray[i].LabelCost = componentsInChildren[j].GetComponent<UILabel>();
|
||||
m_costArray[i].LabelCost.text = (i + m_minCost).ToString() ?? "";
|
||||
if (i == m_barNum - 1)
|
||||
{
|
||||
m_costArray[i].LabelCost.text += "⁺";
|
||||
}
|
||||
}
|
||||
else if (componentsInChildren[j].name == m_original.LabelCount.name)
|
||||
{
|
||||
m_costArray[i].LabelCount = componentsInChildren[j].GetComponent<UILabel>();
|
||||
m_costArray[i].LabelCount.text = 0.ToString() ?? "";
|
||||
}
|
||||
else if (componentsInChildren[j].name == m_original.Bar.name)
|
||||
{
|
||||
m_costArray[i].Bar = componentsInChildren[j].GetComponent<UIProgressBar>();
|
||||
m_costArray[i].Bar.value = 0f;
|
||||
}
|
||||
m_costArray[i].Count = 0;
|
||||
}
|
||||
}
|
||||
if (m_barAdditiveEffect != null)
|
||||
{
|
||||
m_barAdditiveEffect.gameObject.SetActive(value: false);
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user