Files
gamer147 957af3d1ec 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.
2026-06-05 17:22:20 -04:00

306 lines
6.0 KiB
C#

using CriWare;
using UnityEngine;
public class Effect : MonoBehaviour
{
private EffectMgr.EffectType m_Type;
private GameObject m_GameObjIns;
private ParticleSystem m_ParticleSystem;
private Vector3 m_Pos;
private bool m_Use;
private GameObject m_ChaseObjIns;
private GameObject m_LookAtObject;
private bool _buff;
private CriAtomSource m_EffectSeSource;
private Camera _lookAtCamera;
private bool _isFollowScale;
public Effect()
{
m_Type = EffectMgr.EffectType.NONE;
m_GameObjIns = null;
m_Use = false;
m_Pos = new Vector3(0f, 0f, -3f);
_buff = false;
}
public void Init(EffectMgr.EffectType type, bool isCommon = false, string SePath = "", bool isFollowScale = false)
{
m_Type = type;
if (!string.IsNullOrEmpty(SePath))
{
m_EffectSeSource = base.gameObject.GetComponent<CriAtomSource>();
m_EffectSeSource.use3dPositioning = true;
m_EffectSeSource.playOnStart = false;
}
m_GameObjIns = base.gameObject;
m_ParticleSystem = m_GameObjIns.GetComponent<ParticleSystem>();
m_ParticleSystem.GetComponent<Renderer>().sortingOrder = 4;
if (isCommon)
{
m_ParticleSystem.Stop();
}
_isFollowScale = isFollowScale;
}
public void Play(Vector3 Pos, Quaternion Rot)
{
m_Pos = Pos;
m_GameObjIns.transform.position = m_Pos;
m_GameObjIns.transform.rotation = Rot;
On();
m_GameObjIns.SetActive(value: true);
m_ParticleSystem.Play();
if (m_EffectSeSource != null)
{
m_EffectSeSource.Play();
}
}
public void Play(Vector3 Pos)
{
m_Pos = Pos;
m_GameObjIns.transform.position = m_Pos;
On();
m_GameObjIns.SetActive(value: true);
m_ParticleSystem.Play();
if (m_EffectSeSource != null)
{
m_EffectSeSource.Play();
}
}
public void Play(Vector3 Pos, GameObject obj)
{
m_ChaseObjIns = obj;
if (obj != null)
{
_buff = true;
}
m_Pos = Pos;
m_GameObjIns.transform.position = m_Pos;
On();
m_GameObjIns.SetActive(value: true);
m_ParticleSystem.Play();
if (m_EffectSeSource != null)
{
m_EffectSeSource.Play();
}
}
public void Play(float PosX, float PosY, float PosZ)
{
m_Pos.x = PosX;
m_Pos.y = PosY;
m_Pos.z = PosZ;
m_GameObjIns.transform.position = m_Pos;
On();
m_GameObjIns.SetActive(value: true);
m_ParticleSystem.Play();
if (m_EffectSeSource != null)
{
m_EffectSeSource.Play();
}
}
public void Play(float PosX, float PosY)
{
m_Pos.x = PosX;
m_Pos.y = PosY;
m_GameObjIns.transform.position = m_Pos;
On();
m_GameObjIns.SetActive(value: true);
m_ParticleSystem.Play();
if (m_EffectSeSource != null)
{
m_EffectSeSource.Play();
}
}
public void Play()
{
On();
m_GameObjIns.SetActive(value: true);
m_ParticleSystem.Play();
}
public void FadeOut()
{
m_ParticleSystem.Stop();
}
public void FadeIn()
{
On();
m_ParticleSystem.Play();
}
public void Stop()
{
Off();
m_GameObjIns.SetActive(value: false);
m_ParticleSystem.Stop();
}
public void PlayBuff(GameObject obj)
{
m_Pos = obj.transform.position;
m_GameObjIns.transform.position = m_Pos;
m_ChaseObjIns = obj;
_buff = true;
On();
UpdatePositionAndRotation();
m_GameObjIns.SetActive(value: true);
m_ParticleSystem.Play();
}
public void StopBuff()
{
m_ChaseObjIns = null;
_buff = false;
Off();
m_GameObjIns.SetActive(value: false);
m_ParticleSystem.Stop();
}
public void StartLookAtEffect(GameObject fromObject, GameObject toObject)
{
m_ChaseObjIns = fromObject;
m_LookAtObject = toObject;
_buff = true;
On();
UpdatePositionAndRotation();
m_GameObjIns.SetActive(value: true);
m_ParticleSystem.Play();
}
public void StartLookAtCameraEffect(GameObject fromObject, Camera toCamera)
{
m_ChaseObjIns = fromObject;
_lookAtCamera = toCamera;
_buff = true;
On();
UpdatePositionAndRotation();
m_GameObjIns.SetActive(value: true);
m_ParticleSystem.Play();
}
public void StopLookAtEffect()
{
m_ChaseObjIns = null;
m_LookAtObject = null;
_buff = false;
Off();
m_GameObjIns.SetActive(value: false);
m_ParticleSystem.Stop();
}
private void UpdatePositionAndRotation()
{
m_GameObjIns.transform.position = m_ChaseObjIns.transform.position;
m_GameObjIns.transform.rotation = CalculateRotation();
}
private void UpdateScale()
{
m_GameObjIns.transform.localScale = m_ChaseObjIns.transform.localScale;
}
private Quaternion CalculateRotation()
{
if (m_LookAtObject != null)
{
Vector3 position = m_ChaseObjIns.transform.position;
Vector3 position2 = m_LookAtObject.transform.position;
float z = Mathf.Atan2(position2.y - position.y, position2.x - position.x) * 57.29578f - 90f;
return Quaternion.Euler(0f, 0f, z);
}
if (_lookAtCamera != null)
{
Vector3 position3 = m_ChaseObjIns.transform.position;
Vector3 position4 = _lookAtCamera.transform.position;
return Quaternion.FromToRotation(Vector3.forward, position3 - position4);
}
return m_ChaseObjIns.transform.rotation;
}
private void Update()
{
if (!_buff)
{
return;
}
if (m_ChaseObjIns != null)
{
if (_isFollowScale)
{
UpdateScale();
}
UpdatePositionAndRotation();
}
else
{
StopBuff();
}
}
public void On()
{
m_Use = true;
}
public void Off()
{
m_Use = false;
}
public void Change()
{
m_Use = !m_Use;
}
public void ChangeParticleColor(Color color)
{
MotionUtils.ChangeParticleSystemColor(m_ParticleSystem.gameObject, color);
}
public EffectMgr.EffectType GetEffectType()
{
return m_Type;
}
public GameObject GetGameObjIns()
{
return m_GameObjIns;
}
public bool IsOn()
{
return m_Use;
}
public bool IsPlay()
{
if (m_ParticleSystem.isPlaying || m_ParticleSystem.isPaused || m_ParticleSystem.IsAlive())
{
return true;
}
return false;
}
public GameObject GetChaseObjIns()
{
return m_ChaseObjIns;
}
}