From 6eb915c129fc90c6f4c82ae097dd6ffad5239efc Mon Sep 17 00:00:00 2001 From: chai Date: Mon, 25 Jan 2021 14:28:30 +0800 Subject: +scripts --- Client/Assets/Scripts/XMainClient/XAffiliate.cs | 243 ++++++++++++++++++++++++ 1 file changed, 243 insertions(+) create mode 100644 Client/Assets/Scripts/XMainClient/XAffiliate.cs (limited to 'Client/Assets/Scripts/XMainClient/XAffiliate.cs') diff --git a/Client/Assets/Scripts/XMainClient/XAffiliate.cs b/Client/Assets/Scripts/XMainClient/XAffiliate.cs new file mode 100644 index 00000000..8d846894 --- /dev/null +++ b/Client/Assets/Scripts/XMainClient/XAffiliate.cs @@ -0,0 +1,243 @@ +using System; +using KKSG; +using UnityEngine; +using XMainClient.UI; +using XUtliPoolLib; + +namespace XMainClient +{ + internal class XAffiliate : XEntity + { + public override string Prefab + { + get + { + return this._present.PresentLib.Prefab; + } + } + + public override uint PresentID + { + get + { + return this._present_id; + } + } + + public bool MirrorState + { + get + { + return this._mirror_state; + } + set + { + this._mirror_state = value; + } + } + + private ulong _id = 0UL; + + private uint _present_id; + + private bool _mirror_state = true; + + private XEntity _mainbody = null; + + public static CommandCallback _changeSpriteMatColorCb = new CommandCallback(XAffiliate._ChangeSpriteMatColor); + + public bool Initilize(XEntity mainbody, uint present_id) + { + this._eEntity_Type |= XEntity.EnitityType.Entity_Affiliate; + this._id = ((mainbody.ID & 1152921504606846975UL) | XAttributes.GetTypePrefix(EntitySpecies.Species_Affiliate)); + this._mainbody = mainbody; + string prefab = XSingleton.singleton.EntityInfo.GetByPresentID(present_id).Prefab; + this._xobject = XGameObject.CreateXGameObject("Prefabs/" + prefab, true, true); + this._xobject.UID = this._id; + this._xobject.Name = this._id.ToString(); + this._present_id = present_id; + return this.Initilize(0); + } + + public bool Initilize(XEntity mainbody, uint present_id, XGameObject go) + { + this._eEntity_Type |= XEntity.EnitityType.Entity_Affiliate; + this._id = ((mainbody.ID & 1152921504606846975UL) | XAttributes.GetTypePrefix(EntitySpecies.Species_Affiliate)); + this._mainbody = mainbody; + this._xobject = go; + bool flag = this._xobject != null; + if (flag) + { + this._xobject.UID = this._id; + this._xobject.Name = this._id.ToString(); + } + this._present_id = present_id; + return this.Initilize(0); + } + + public override bool Initilize(int flag) + { + this._present = (XSingleton.singleton.CreateComponent(this, XPresentComponent.uuID) as XPresentComponent); + this.InitAnim(); + return true; + } + + public void InitAnim() + { + base.Scale = base.Present.PresentLib.Scale; + bool flag = base.Ator != null; + if (flag) + { + bool flag2 = XSingleton.singleton.CurrentStage.Stage == EXStage.World && !string.IsNullOrEmpty(base.Present.PresentLib.AttackIdle); + if (flag2) + { + base.OverrideAnimClip("Idle", base.Present.PresentLib.AttackIdle, true, false); + } + else + { + base.OverrideAnimClip("Idle", base.Present.PresentLib.Idle, true, false); + } + bool flag3 = XSingleton.singleton.CurrentStage.Stage == EXStage.World && !string.IsNullOrEmpty(base.Present.PresentLib.AttackIdle); + if (flag3) + { + base.OverrideAnimClip("Walk", base.Present.PresentLib.AttackWalk, true, false); + base.OverrideAnimClip("Run", base.Present.PresentLib.AttackRun, true, false); + } + else + { + base.OverrideAnimClip("Walk", base.Present.PresentLib.Walk, true, false); + base.OverrideAnimClip("Run", base.Present.PresentLib.Run, true, false); + } + bool flag4 = XSingleton.singleton.CurrentStage.Stage == EXStage.World; + if (flag4) + { + base.OverrideAnimClip("Death", base.Present.PresentLib.Death, true, false); + } + } + } + + public void Presentation(string animation, string fx = null, string audio = null) + { + bool mirrorState = this.MirrorState; + if (!mirrorState) + { + base.OverrideAnimClip("Idle", animation, true, false); + } + } + + public void OnMount() + { + bool mirrorState = this.MirrorState; + if (!mirrorState) + { + bool flag = XSingleton.singleton.CurrentStage.Stage == EXStage.World && !string.IsNullOrEmpty(base.Present.PresentLib.AttackIdle); + if (flag) + { + base.OverrideAnimClip("Idle", base.Present.PresentLib.AttackIdle, true, false); + } + else + { + base.OverrideAnimClip("Idle", base.Present.PresentLib.Idle, true, false); + } + } + } + + public override void OnCreated() + { + for (int i = 0; i < base.Components.Count; i++) + { + bool flag = base.Components[i] != null; + if (flag) + { + base.Components[i].Attached(); + } + } + this._mainbody.Affiliates.Add(this); + } + + public override void OnDestroy() + { + bool flag = this._xobject != null; + if (flag) + { + XRenderComponent.RemoveObj(this._mainbody, this._xobject.Get()); + } + this._mainbody = null; + base.OnDestroy(); + this.Uninitilize(); + } + + public void Replace(uint present_id, XGameObject go) + { + bool flag = go == this._xobject; + if (!flag) + { + bool flag2 = this._xobject != null; + if (flag2) + { + XRenderComponent.RemoveObj(this._mainbody, this._xobject.Get()); + XGameObject.DestroyXGameObject(this._xobject); + } + this._xobject = go; + bool flag3 = this._xobject != null; + if (flag3) + { + this._xobject.UID = this._id; + this._xobject.Name = this._id.ToString(); + } + this._present_id = present_id; + bool flag4 = this._present != null; + if (flag4) + { + this._present.InitPresent(this._present_id); + } + else + { + this._present = (XSingleton.singleton.CreateComponent(this, XPresentComponent.uuID) as XPresentComponent); + } + this.InitAnim(); + this._present.Attached(); + } + } + + private static void _ChangeSpriteMatColor(XGameObject gameObject, object o, int commandID) + { + SpriteTable.RowData rowData = o as SpriteTable.RowData; + bool flag = rowData == null; + if (!flag) + { + Color color = XSingleton.singleton.StringToColor(rowData.Color); + Transform transform = gameObject.Find(""); + bool flag2 = transform != null; + if (flag2) + { + XCommon.tmpRender.Clear(); + transform.GetComponentsInChildren(XCommon.tmpRender); + int count = XCommon.tmpRender.Count; + for (int i = 0; i < count; i++) + { + Renderer renderer = XCommon.tmpRender[i]; + Material material = renderer.material; + bool flag3 = material == null; + if (!flag3) + { + material.SetColor("_Color", color); + } + } + XCommon.tmpRender.Clear(); + } + } + } + + public void ChangeSpriteMatColor() + { + XSpriteSystemDocument specificDocument = XDocuments.GetSpecificDocument(XSpriteSystemDocument.uuID); + SpriteTable.RowData byPresentID = specificDocument._SpriteTable.GetByPresentID(this._present_id); + bool flag = byPresentID != null; + if (flag) + { + this._xobject.CallCommand(XAffiliate._changeSpriteMatColorCb, byPresentID, -1, false); + } + } + } +} -- cgit v1.1-26-g67d0