Compile-driven bulk-copy loop (tools/engine-port/m1_copy_loop.py) pulled the precise reference closure of the battle-core roots, stopping at the classify god-object/View-VFX-UI boundary. 782 files; no re-explosion (M0 had estimated ~order 1000). Residual frontier = 52 shim-classified + 80 external (Unity/BCL) types to author next.
136 lines
3.6 KiB
C#
136 lines
3.6 KiB
C#
using System.Collections;
|
|
using System.Collections.Generic;
|
|
using UnityEngine;
|
|
|
|
namespace Wizard;
|
|
|
|
public class NotificatonAnimation : MonoBehaviour
|
|
{
|
|
public class Param
|
|
{
|
|
public enum Type
|
|
{
|
|
Result,
|
|
MaintenanceOnHome,
|
|
MaintenanceOnResult,
|
|
GatheringMatching,
|
|
GachaResult,
|
|
TemporaryDeckResult,
|
|
MissionCleared
|
|
}
|
|
|
|
public readonly Type _type;
|
|
|
|
public readonly string _text;
|
|
|
|
public Param(Type type, string text)
|
|
{
|
|
_type = type;
|
|
_text = text;
|
|
}
|
|
}
|
|
|
|
[SerializeField]
|
|
private GameObject _root;
|
|
|
|
[SerializeField]
|
|
private UILabel[] _labels;
|
|
|
|
private Vector3 _rootInitialPos;
|
|
|
|
private Vector3 _labelInitialPos;
|
|
|
|
private const float ROOT_MOVE_DIST = 100f;
|
|
|
|
private const float ROOT_MOVE_TIME = 1f;
|
|
|
|
private const float BREAK_TIME_1 = 0.5f;
|
|
|
|
private const float LABEL_MOVE_DIST = 2000f;
|
|
|
|
private const float LABEL_MOVE_TIME = 0.5f;
|
|
|
|
private const float BREAK_TIME_2 = 0.3f;
|
|
|
|
private const float LABEL_WAIT_TIME_RESULT = 1.4f;
|
|
|
|
private const float LABEL_WAIT_TIME_MAINTENANCE_ON_HOME = 4f;
|
|
|
|
private const float LABEL_WAIT_TIME_MAINTENANCE_ON_RESULT = 4f;
|
|
|
|
private const float LABEL_WAIT_TIME_GATHERING_MATCHING = 2f;
|
|
|
|
private const float LABEL_WAIT_TIME_GACHA_RESULT = 1.4f;
|
|
|
|
private const float LABEL_WAIT_TIME_TEMPORARY_DECK_RESULT = 1.4f;
|
|
|
|
private const float LABEL_WAIT_TIME_MISSION_CLEARED = 1.4f;
|
|
|
|
private void Awake()
|
|
{
|
|
_rootInitialPos = _root.transform.localPosition;
|
|
_labelInitialPos = _labels[0].transform.localPosition;
|
|
_root.SetActive(value: false);
|
|
}
|
|
|
|
public IEnumerator Exec(List<Param> paramList)
|
|
{
|
|
if (paramList.Count <= 0)
|
|
{
|
|
yield break;
|
|
}
|
|
_root.SetActive(value: true);
|
|
_root.transform.localPosition = _rootInitialPos + Vector3.up * 100f;
|
|
for (int i = 0; i < _labels.Length; i++)
|
|
{
|
|
_labels[i].transform.localPosition = _labelInitialPos + Vector3.right * 2000f;
|
|
}
|
|
iTween.MoveTo(_root, iTween.Hash("position", _rootInitialPos, "time", 1f, "islocal", true, "easetype", iTween.EaseType.easeInOutExpo));
|
|
yield return new WaitForSeconds(0.5f);
|
|
int labelIndex = 0;
|
|
int i2 = 0;
|
|
while (i2 < paramList.Count)
|
|
{
|
|
Param param = paramList[i2];
|
|
UILabel usingLabel = _labels[labelIndex];
|
|
usingLabel.text = param._text;
|
|
usingLabel.transform.localPosition = _labelInitialPos + Vector3.right * 2000f;
|
|
iTween.MoveTo(usingLabel.gameObject, iTween.Hash("position", _labelInitialPos, "time", 0.5f, "islocal", true, "easetype", iTween.EaseType.easeOutExpo));
|
|
float seconds = 0f;
|
|
switch (param._type)
|
|
{
|
|
case Param.Type.Result:
|
|
seconds = 1.4f;
|
|
break;
|
|
case Param.Type.MaintenanceOnHome:
|
|
seconds = 4f;
|
|
break;
|
|
case Param.Type.MaintenanceOnResult:
|
|
seconds = 4f;
|
|
break;
|
|
case Param.Type.GatheringMatching:
|
|
seconds = 2f;
|
|
break;
|
|
case Param.Type.GachaResult:
|
|
seconds = 1.4f;
|
|
break;
|
|
case Param.Type.TemporaryDeckResult:
|
|
seconds = 1.4f;
|
|
break;
|
|
case Param.Type.MissionCleared:
|
|
seconds = 1.4f;
|
|
break;
|
|
}
|
|
yield return new WaitForSeconds(seconds);
|
|
iTween.MoveTo(usingLabel.gameObject, iTween.Hash("position", _labelInitialPos + Vector3.left * 2000f, "time", 0.5f, "islocal", true, "easetype", iTween.EaseType.easeInExpo));
|
|
yield return new WaitForSeconds(0.3f);
|
|
int num = labelIndex + 1;
|
|
labelIndex = num % _labels.Length;
|
|
num = i2 + 1;
|
|
i2 = num;
|
|
}
|
|
iTween.MoveTo(_root, iTween.Hash("position", _rootInitialPos + Vector3.up * 100f, "time", 1f, "islocal", true, "easetype", iTween.EaseType.easeInOutExpo));
|
|
yield return new WaitForSeconds(1f);
|
|
}
|
|
}
|