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:
294
SVSim.BattleEngine/Engine/MyPageBanner.cs
Normal file
294
SVSim.BattleEngine/Engine/MyPageBanner.cs
Normal file
@@ -0,0 +1,294 @@
|
||||
using System;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
using Wizard;
|
||||
|
||||
public class MyPageBanner : MyPageBannerBase
|
||||
{
|
||||
protected enum MoveSide
|
||||
{
|
||||
Left,
|
||||
Right
|
||||
}
|
||||
|
||||
[SerializeField]
|
||||
protected UICenterOnChild _uiCenterOnChild;
|
||||
|
||||
[SerializeField]
|
||||
protected GameObject _pagerPrefab;
|
||||
|
||||
[SerializeField]
|
||||
protected UIWrapContent _uiWrapContent;
|
||||
|
||||
[SerializeField]
|
||||
protected GameObject _pagerBaseObject;
|
||||
|
||||
[SerializeField]
|
||||
protected GameObject _buttonBase;
|
||||
|
||||
[SerializeField]
|
||||
protected GameObject _buttonLeftObject;
|
||||
|
||||
[SerializeField]
|
||||
protected GameObject _buttonRightObject;
|
||||
|
||||
[SerializeField]
|
||||
private GameObject _bgObject;
|
||||
|
||||
protected bool _isAnimation;
|
||||
|
||||
protected bool _isCanSlide;
|
||||
|
||||
protected bool _isClickStart;
|
||||
|
||||
protected Vector3 _touchPoint;
|
||||
|
||||
protected int _bannerNo;
|
||||
|
||||
protected List<UISprite> _pagerSpriteList;
|
||||
|
||||
protected float _updateTimer;
|
||||
|
||||
protected GameObject _centerObject;
|
||||
|
||||
protected bool _isLeftButtonPressed;
|
||||
|
||||
protected bool _isRightButtonPressed;
|
||||
|
||||
private const int SLIDE_LIMIT_VALUE = 30;
|
||||
|
||||
private const string PAGER_OFF_SPRITE_NAME = "carousel_marker_off";
|
||||
|
||||
private const string PAGER_ON_SPRITE_NAME = "carousel_marker_on";
|
||||
|
||||
private const string CSV_NAME = "banner";
|
||||
|
||||
private void Start()
|
||||
{
|
||||
UIEventListener.Get(_buttonLeftObject).onPress = LeftButtonOnPress;
|
||||
UIEventListener.Get(_buttonRightObject).onPress = RightButtonOnPress;
|
||||
}
|
||||
|
||||
private void Update()
|
||||
{
|
||||
if (!base.IsCreateEnd)
|
||||
{
|
||||
return;
|
||||
}
|
||||
slideMoveUpdate();
|
||||
if (_bannerList.Count > 1 && _isCanSlide)
|
||||
{
|
||||
_updateTimer += Time.deltaTime;
|
||||
float changeTime = _bannerList[_bannerNo]._changeTime;
|
||||
if (_updateTimer >= changeTime)
|
||||
{
|
||||
SlideStartSetting(MoveSide.Right);
|
||||
}
|
||||
}
|
||||
if (_isCanSlide)
|
||||
{
|
||||
if (_isLeftButtonPressed)
|
||||
{
|
||||
GameMgr.GetIns().GetSoundMgr().PlaySe(Se.TYPE.SYS_SLIDE_BTN);
|
||||
SlideStartSetting(MoveSide.Left);
|
||||
}
|
||||
else if (_isRightButtonPressed)
|
||||
{
|
||||
GameMgr.GetIns().GetSoundMgr().PlaySe(Se.TYPE.SYS_SLIDE_BTN);
|
||||
SlideStartSetting(MoveSide.Right);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
protected override IEnumerator CreateBannerImage()
|
||||
{
|
||||
_bannerList = new List<BannerInfo>(Data.MyPage.data._bannerList);
|
||||
if (!base.IsEnableBanner)
|
||||
{
|
||||
base.gameObject.SetActive(value: false);
|
||||
yield break;
|
||||
}
|
||||
yield return LoadBannerImage();
|
||||
while (!base.gameObject.activeInHierarchy)
|
||||
{
|
||||
yield return null;
|
||||
}
|
||||
for (int i = 0; i < _bannerList.Count; i++)
|
||||
{
|
||||
GameObject gameObject = UnityEngine.Object.Instantiate(_bannerImagePrefab);
|
||||
gameObject.transform.SetParent(_uiWrapContent.transform);
|
||||
gameObject.transform.localScale = Vector3.one;
|
||||
gameObject.transform.localPosition = Vector3.zero;
|
||||
_bannerList[i].BannerGameObject = gameObject;
|
||||
}
|
||||
_uiWrapContent.onInitializeItem = _OnInitializeItem;
|
||||
_uiWrapContent.SortBasedOnScrollMovement();
|
||||
_uiCenterOnChild.onFinished = _OnFinishedCenterChild;
|
||||
if (_bannerList.Count > 1)
|
||||
{
|
||||
GameObject gameObject2 = _uiWrapContent.transform.Find("0").gameObject;
|
||||
_uiWrapContent.transform.Find((_bannerList.Count - 1).ToString()).gameObject.transform.localPosition = new Vector3(gameObject2.transform.localPosition.x - (float)_uiWrapContent.itemSize, gameObject2.transform.localPosition.y, gameObject2.transform.localPosition.z);
|
||||
_pagerSpriteList = new List<UISprite>();
|
||||
for (int j = 0; j < _bannerList.Count; j++)
|
||||
{
|
||||
GameObject gameObject3 = UnityEngine.Object.Instantiate(_pagerPrefab);
|
||||
gameObject3.transform.SetParent(_pagerBaseObject.transform);
|
||||
gameObject3.transform.localScale = Vector3.one;
|
||||
gameObject3.transform.localPosition = Vector3.zero;
|
||||
gameObject3.name = j.ToString();
|
||||
_pagerSpriteList.Add(gameObject3.GetComponent<UISprite>());
|
||||
}
|
||||
_PagerUpDate();
|
||||
UIGrid component = _pagerBaseObject.GetComponent<UIGrid>();
|
||||
component.enabled = true;
|
||||
float x = component.transform.localPosition.x - component.cellWidth * (float)(_bannerList.Count - 1) / 2f;
|
||||
component.transform.localPosition = new Vector3(x, component.transform.localPosition.y, component.transform.localPosition.z);
|
||||
}
|
||||
else
|
||||
{
|
||||
_buttonBase.SetActive(value: false);
|
||||
}
|
||||
_centerObject = _uiWrapContent.transform.Find(_bannerNo.ToString()).gameObject;
|
||||
}
|
||||
|
||||
protected void BannerOnPress(GameObject inObject, bool inState)
|
||||
{
|
||||
if (inState && Input.GetMouseButtonDown(0))
|
||||
{
|
||||
_touchPoint = Input.mousePosition;
|
||||
_isClickStart = true;
|
||||
_isCanSlide = true;
|
||||
StartCoroutine(BannerPressAnimation(inObject));
|
||||
}
|
||||
}
|
||||
|
||||
private void slideMoveUpdate()
|
||||
{
|
||||
if (!_isAnimation)
|
||||
{
|
||||
_isCanSlide = true;
|
||||
}
|
||||
if (_isClickStart && Input.GetMouseButton(0) && _isCanSlide)
|
||||
{
|
||||
if (Input.mousePosition.x < _touchPoint.x - 30f)
|
||||
{
|
||||
GameMgr.GetIns().GetSoundMgr().PlaySe(Se.TYPE.SYS_SLIDE_BTN);
|
||||
SlideStartSetting(MoveSide.Right);
|
||||
}
|
||||
else if (Input.mousePosition.x > _touchPoint.x + 30f)
|
||||
{
|
||||
GameMgr.GetIns().GetSoundMgr().PlaySe(Se.TYPE.SYS_SLIDE_BTN);
|
||||
SlideStartSetting(MoveSide.Left);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
protected void LeftButtonOnPress(GameObject inObject, bool isPressed)
|
||||
{
|
||||
_isLeftButtonPressed = isPressed;
|
||||
_OnFinishedCenterChild();
|
||||
}
|
||||
|
||||
protected void RightButtonOnPress(GameObject inObject, bool isPressed)
|
||||
{
|
||||
_isRightButtonPressed = isPressed;
|
||||
_OnFinishedCenterChild();
|
||||
}
|
||||
|
||||
protected void SlideStartSetting(MoveSide inMoveSide)
|
||||
{
|
||||
_isAnimation = true;
|
||||
_isCanSlide = false;
|
||||
_isClickStart = false;
|
||||
_touchPoint = Input.mousePosition;
|
||||
_updateTimer = 0f;
|
||||
if (inMoveSide == MoveSide.Left)
|
||||
{
|
||||
_bannerNo = ((_bannerNo - 1 < 0) ? (_bannerList.Count - 1) : (_bannerNo - 1));
|
||||
}
|
||||
else
|
||||
{
|
||||
_bannerNo = (_bannerNo + 1) % _bannerList.Count;
|
||||
}
|
||||
if (_bannerList.Count == 2)
|
||||
{
|
||||
GameObject gameObject = _uiWrapContent.transform.Find(_bannerNo.ToString()).gameObject;
|
||||
Vector3 localPosition = _centerObject.transform.localPosition;
|
||||
if (inMoveSide == MoveSide.Left)
|
||||
{
|
||||
localPosition.x -= _uiWrapContent.itemSize;
|
||||
gameObject.transform.localPosition = localPosition;
|
||||
}
|
||||
else
|
||||
{
|
||||
localPosition.x += _uiWrapContent.itemSize;
|
||||
gameObject.transform.localPosition = localPosition;
|
||||
}
|
||||
}
|
||||
_centerObject = _uiWrapContent.transform.Find(_bannerNo.ToString()).gameObject;
|
||||
_uiCenterOnChild.CenterOn(_centerObject.transform);
|
||||
_PagerUpDate();
|
||||
}
|
||||
|
||||
protected void _OnInitializeItem(GameObject go, int wrapIndex, int realIndex)
|
||||
{
|
||||
int index = wrapIndex;
|
||||
UIEventListener.Get(go).onPress = BannerOnPress;
|
||||
go.name = index.ToString();
|
||||
InitializeEventHandler(go, _bannerList[index]);
|
||||
UIEventListener uIEventListener = UIEventListener.Get(go);
|
||||
uIEventListener.onClick = (UIEventListener.VoidDelegate)Delegate.Combine(uIEventListener.onClick, (UIEventListener.VoidDelegate)delegate
|
||||
{
|
||||
_isClickStart = false;
|
||||
});
|
||||
}
|
||||
|
||||
protected void _OnFinishedCenterChild()
|
||||
{
|
||||
_isAnimation = false;
|
||||
}
|
||||
|
||||
protected void _PagerUpDate()
|
||||
{
|
||||
if (_bannerList.Count <= 1)
|
||||
{
|
||||
return;
|
||||
}
|
||||
for (int i = 0; i < _bannerList.Count; i++)
|
||||
{
|
||||
if (i == _bannerNo)
|
||||
{
|
||||
_pagerSpriteList[i].spriteName = "carousel_marker_on";
|
||||
}
|
||||
else
|
||||
{
|
||||
_pagerSpriteList[i].spriteName = "carousel_marker_off";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private IEnumerator BannerPressAnimation(GameObject inTweenObject)
|
||||
{
|
||||
TweenScale tweenScaleComponent = inTweenObject.GetComponent<TweenScale>();
|
||||
if ((bool)tweenScaleComponent)
|
||||
{
|
||||
tweenScaleComponent.PlayForward();
|
||||
while (Input.GetMouseButton(0))
|
||||
{
|
||||
yield return null;
|
||||
}
|
||||
tweenScaleComponent.PlayReverse();
|
||||
}
|
||||
}
|
||||
|
||||
protected void OnDisable()
|
||||
{
|
||||
_isClickStart = false;
|
||||
}
|
||||
|
||||
public void SetChild(GameObject obj)
|
||||
{
|
||||
obj.transform.parent = _bgObject.transform;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user