using System; using UnityEngine; using XUtliPoolLib; namespace XMainClient { internal class XSkillPreViewMgr : XSingleton { public Camera BlackHouseCamera; public GameObject BlackHouse; public void GetSkillBlackHouse(ref GameObject blackHouse, ref Camera blackHouseCamera) { bool flag = this.BlackHouse == null; if (flag) { this.BlackHouse = (XSingleton.singleton.CreateFromPrefab("Common/SkillBlackHouse", true, false) as GameObject); this.BlackHouseCamera = this.BlackHouse.transform.Find("BasePoint/Camera").GetComponent(); this.BlackHouseCamera.enabled = false; } blackHouse = this.BlackHouse; blackHouseCamera = this.BlackHouseCamera; } public void ResetDummyPos(XDummy dummy) { bool flag = dummy == null; if (!flag) { Transform transform = this.BlackHouse.transform.Find(string.Format("BasePoint", new object[0])); bool flag2 = transform != null; if (flag2) { bool flag3 = dummy.EngineObject == null; if (flag3) { XSingleton.singleton.AddErrorLog("Dummy is null!!!", null, null, null, null, null); return; } dummy.EngineObject.Position = transform.position; dummy.EngineObject.SetParentTrans(transform.transform); dummy.EngineObject.SetLocalPRS(Vector3.zero, true, Quaternion.identity, true, Vector3.one, true); } bool flag4 = dummy.Buffs == null; if (flag4) { XSingleton.singleton.AddErrorLog("Dummy Buffs is null!!!", null, null, null, null, null); } else { dummy.Buffs.ClearBuff(); dummy.Buffs.ClearBuffFx(); } } } public void ShowSkill(XDummy dummy, uint skillID, uint statisticsID = 0u) { this.ResetDummyPos(dummy); bool flag = dummy.Audio != null; if (flag) { dummy.Audio.Set3DPos(XSingleton.singleton.GameCamera.CameraTrans.position); } SkillList.RowData skillConfig = XSingleton.singleton.GetSkillConfig(skillID, 0u, statisticsID); string name = (skillConfig.PreviewScript == "") ? skillConfig.SkillScript : skillConfig.PreviewScript; XAttackShowArgs @event = XEventPool.GetEvent(); @event.name = name; @event.Firer = dummy; XSingleton.singleton.FireEvent(@event); } public void SkillShowBegin(XDummy dummy, Camera camera) { bool flag = dummy == null; if (!flag) { this.ResetDummyPos(dummy); bool flag2 = dummy.Audio != null; if (flag2) { dummy.Audio.Set3DPos(XSingleton.singleton.GameCamera.CameraTrans.position); } XAttackShowBeginArgs @event = XEventPool.GetEvent(); @event.Firer = dummy; @event.XCamera = camera.transform.gameObject; XSingleton.singleton.FireEvent(@event); } } public void SkillShowEnd(XDummy dummy) { XAttackShowEndArgs @event = XEventPool.GetEvent(); @event.ForceQuit = true; @event.Firer = dummy; XSingleton.singleton.FireEvent(@event); } } }