From eebce5736f9b504d38ffc58680c99bd4ec6aed6a Mon Sep 17 00:00:00 2001 From: chenxi Date: Tue, 18 Apr 2023 17:45:05 +0800 Subject: [PATCH] =?UTF-8?q?=E7=BC=96=E8=AF=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../InspectorTools/BattleUnitAttrInspector.cs | 51 ++ .../BattleUnitAttrInspector.cs.meta | 11 + .../Component/Battle/BattleHeroAttr.cs | 72 -- .../Component/Battle/BattleUnitAttr.cs | 69 ++ ...eroAttr.cs.meta => BattleUnitAttr.cs.meta} | 0 Assets/XLua/Gen/BF_BattleHeroAttrWrap.cs | 766 ------------------ Assets/XLua/Gen/BF_BattleUnitAttrWrap.cs | 263 ++++++ Assets/XLua/Gen/XLuaGenAutoRegister.cs | 6 +- Assets/XLua/Gen/link.xml | 2 +- .../module/battle/battle_manager.lua.bytes | Bin 10025 -> 11960 bytes Assets/lua/app/ui/battle/battle_ui.lua.bytes | Bin 22400 -> 22659 bytes Assets/prefabs/ui/battle/battle_ui.prefab | 12 +- 12 files changed, 404 insertions(+), 848 deletions(-) create mode 100644 Assets/Editor/InspectorTools/BattleUnitAttrInspector.cs create mode 100644 Assets/Editor/InspectorTools/BattleUnitAttrInspector.cs.meta delete mode 100644 Assets/Scripts/Component/Battle/BattleHeroAttr.cs create mode 100644 Assets/Scripts/Component/Battle/BattleUnitAttr.cs rename Assets/Scripts/Component/Battle/{BattleHeroAttr.cs.meta => BattleUnitAttr.cs.meta} (100%) delete mode 100644 Assets/XLua/Gen/BF_BattleHeroAttrWrap.cs create mode 100644 Assets/XLua/Gen/BF_BattleUnitAttrWrap.cs diff --git a/Assets/Editor/InspectorTools/BattleUnitAttrInspector.cs b/Assets/Editor/InspectorTools/BattleUnitAttrInspector.cs new file mode 100644 index 000000000..7fbbba3d3 --- /dev/null +++ b/Assets/Editor/InspectorTools/BattleUnitAttrInspector.cs @@ -0,0 +1,51 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; +using UnityEditor; + +namespace BFEditor +{ + [CustomEditor(typeof(BF.BattleUnitAttr))] + public class BattleUnitAttrInspector : Editor + { + BF.BattleUnitAttr helper; + void OnEnable() + { + helper = target as BF.BattleUnitAttr; + } + + public override void OnInspectorGUI() + { + DrawAttribute(); + DrawButton(); + } + + private void DrawAttribute() + { + helper.UnitAttribute.hp = EditorGUILayout.LongField("生命(hp)", helper.UnitAttribute.hp); + helper.UnitAttribute.max_hp = EditorGUILayout.LongField("最大生命(max_hp)", helper.UnitAttribute.max_hp); + helper.UnitAttribute.atk = EditorGUILayout.LongField("无属性攻击力(atk)", helper.UnitAttribute.atk); + helper.UnitAttribute.atk_red = EditorGUILayout.LongField("攻击力红(atk_red)", helper.UnitAttribute.atk_red); + helper.UnitAttribute.atk_yellow = EditorGUILayout.LongField("攻击力黄(atk_yellow)", helper.UnitAttribute.atk_yellow); + helper.UnitAttribute.atk_green = EditorGUILayout.LongField("攻击力绿(atk_green)", helper.UnitAttribute.atk_green); + helper.UnitAttribute.atk_blue = EditorGUILayout.LongField("攻击力蓝(atk_blue)", helper.UnitAttribute.atk_blue); + helper.UnitAttribute.atk_purple = EditorGUILayout.LongField("攻击力紫(atk_purple)", helper.UnitAttribute.atk_purple); + helper.UnitAttribute.sheild_hp = EditorGUILayout.LongField("护盾(sheild_hp)", helper.UnitAttribute.sheild_hp); + } + + private void DrawButton() + { + GUILayout.BeginHorizontal(); + if (GUILayout.Button("刷新属性", GUILayout.Width(120))) + { + GetAttributeData(); + } + GUILayout.EndHorizontal(); + } + + private void GetAttributeData() + { + helper.TryGetAttributeFromLua(); + } + } +} diff --git a/Assets/Editor/InspectorTools/BattleUnitAttrInspector.cs.meta b/Assets/Editor/InspectorTools/BattleUnitAttrInspector.cs.meta new file mode 100644 index 000000000..47ba92355 --- /dev/null +++ b/Assets/Editor/InspectorTools/BattleUnitAttrInspector.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 478c022f705744249a7cf2aafa7c3b75 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Component/Battle/BattleHeroAttr.cs b/Assets/Scripts/Component/Battle/BattleHeroAttr.cs deleted file mode 100644 index deb412870..000000000 --- a/Assets/Scripts/Component/Battle/BattleHeroAttr.cs +++ /dev/null @@ -1,72 +0,0 @@ -using System.Collections; -using System.Collections.Generic; -using UnityEngine; - -namespace BF -{ - public class BattleHeroAttr : MonoBehaviour - { - [Header("血量")] - public long Hp = 0; - // 最大血量 - [Header("最大血量")] - public long MaxHp = 0; - // 生命恢复 - [Header("生命恢复")] - public int Recover = 0; - // 攻击力 - [Header("攻击力")] - public long Atk = 0; - // 移动速度 - [Header("移动速度")] - public float MoveSpeed = 0; - // 暴击率 - [Header("暴击率")] - public int Crit = 0; - // 暴击伤害加成 - [Header("暴击伤害加成")] - public double CritDmgAddition = 0; - // 子弹数量 - [Header("子弹数量")] - public int BulletCount = 0; - // 子弹额外穿透数量 - [Header("子弹额外穿透数量")] - public int HitCount = 0; - // 子弹飞行速度加成 - [Header("子弹飞行速度加成")] - public int BulletSpeed = 0; - // 技能持续时间加成 - [Header("技能持续时间加成")] - public float Lifetime = 0.0f; - // 冷却加成 - [Header("冷却加成")] - public float Cooldown = 0.0f; - // 攻击范围加成 - [Header("攻击范围加成")] - public float AtkRange = 0.0f; - // 道具拾取范围加成 - [Header("道具拾取范围加成")] - public float PickupRange = 0.0f; - // 经验获取倍率增加 - [Header("经验获取倍率增加")] - public float ExpAddition = 0.0f; - // 金币获取加成 - [Header("金币获取加成")] - public float CoinAddition = 0.0f; - // 受到普通怪伤害减少 - [Header("受到普通怪伤害减少")] - public int DmgDec1 = 0; - // 受到精英怪伤害减少 - [Header("受到精英怪伤害减少")] - public int DmgDec2 = 0; - // 受到BOSS伤减少 - [Header("受到BOSS伤减少")] - public int DmgDec3 = 0; - [Header("伤害减免")] - public double DmgDecAll = 0.0f; - [Header("治疗效果")] - public double Cured = 0.0f; - [Header("当前经验")] - public int CurrExp = 0; - } -} \ No newline at end of file diff --git a/Assets/Scripts/Component/Battle/BattleUnitAttr.cs b/Assets/Scripts/Component/Battle/BattleUnitAttr.cs new file mode 100644 index 000000000..7b4429eb0 --- /dev/null +++ b/Assets/Scripts/Component/Battle/BattleUnitAttr.cs @@ -0,0 +1,69 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; +using System; + +namespace BF +{ + [Serializable] + public class BattleUnitAttribute + { + public long hp = 0; + public long max_hp = 0; + public long atk = 0; + public long atk_red = 0; + public long atk_yellow = 0; + public long atk_green = 0; + public long atk_blue = 0; + public long atk_purple = 0; + public long sheild_hp = 0; + } + + public class BattleUnitAttr : MonoBehaviour + { + [HideInInspector] + public BattleUnitAttribute UnitAttribute; + [HideInInspector] + public Action LuaGetAttributeFunc; + public int Side = 1; + private void Start() + { +#if UNITY_EDITOR + TryBindCharacter(); +#endif + } + + /// + /// 尝试在lua端找到并绑定对应角色 + /// + protected void TryBindCharacter() + { + int hashCode = gameObject.GetHashCode(); // 该脚本绑定的角色的hashcode + string lua = @"ModuleManager.BattleManager:bindBattleUnitAttribute({0}, {1})"; + BFMain.Instance.LuaMgr.luaEnv.DoString(string.Format(lua, hashCode, Side)); + } + + public void BindGetAttributeFunc(Action getFunc) + { + LuaGetAttributeFunc = getFunc; + } + + public void TryGetAttributeFromLua() + { + int hashCode = gameObject.GetHashCode(); // 该脚本绑定的角色的hashcode + + if (LuaGetAttributeFunc != null) + { + LuaGetAttributeFunc(hashCode); + } + } + + /// + /// 从lua端获取并刷新属性(lua调用的CS方法) + /// + public void GetAttribute(string attr) + { + UnitAttribute = JsonUtility.FromJson(attr); + } + } +} \ No newline at end of file diff --git a/Assets/Scripts/Component/Battle/BattleHeroAttr.cs.meta b/Assets/Scripts/Component/Battle/BattleUnitAttr.cs.meta similarity index 100% rename from Assets/Scripts/Component/Battle/BattleHeroAttr.cs.meta rename to Assets/Scripts/Component/Battle/BattleUnitAttr.cs.meta diff --git a/Assets/XLua/Gen/BF_BattleHeroAttrWrap.cs b/Assets/XLua/Gen/BF_BattleHeroAttrWrap.cs deleted file mode 100644 index 6efa49f7c..000000000 --- a/Assets/XLua/Gen/BF_BattleHeroAttrWrap.cs +++ /dev/null @@ -1,766 +0,0 @@ -#if USE_UNI_LUA -using LuaAPI = UniLua.Lua; -using RealStatePtr = UniLua.ILuaState; -using LuaCSFunction = UniLua.CSharpFunctionDelegate; -#else -using LuaAPI = XLua.LuaDLL.Lua; -using RealStatePtr = System.IntPtr; -using LuaCSFunction = XLua.LuaDLL.lua_CSFunction; -#endif - -using XLua; -using System.Collections.Generic; - - -namespace XLua.CSObjectWrap -{ - using Utils = XLua.Utils; - public class BFBattleHeroAttrWrap - { - public static void __Register(RealStatePtr L) - { - ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L); - System.Type type = typeof(BF.BattleHeroAttr); - Utils.BeginObjectRegister(type, L, translator, 0, 0, 22, 22); - - - - Utils.RegisterFunc(L, Utils.GETTER_IDX, "Hp", _g_get_Hp); - Utils.RegisterFunc(L, Utils.GETTER_IDX, "MaxHp", _g_get_MaxHp); - Utils.RegisterFunc(L, Utils.GETTER_IDX, "Recover", _g_get_Recover); - Utils.RegisterFunc(L, Utils.GETTER_IDX, "Atk", _g_get_Atk); - Utils.RegisterFunc(L, Utils.GETTER_IDX, "MoveSpeed", _g_get_MoveSpeed); - Utils.RegisterFunc(L, Utils.GETTER_IDX, "Crit", _g_get_Crit); - Utils.RegisterFunc(L, Utils.GETTER_IDX, "CritDmgAddition", _g_get_CritDmgAddition); - Utils.RegisterFunc(L, Utils.GETTER_IDX, "BulletCount", _g_get_BulletCount); - Utils.RegisterFunc(L, Utils.GETTER_IDX, "HitCount", _g_get_HitCount); - Utils.RegisterFunc(L, Utils.GETTER_IDX, "BulletSpeed", _g_get_BulletSpeed); - Utils.RegisterFunc(L, Utils.GETTER_IDX, "Lifetime", _g_get_Lifetime); - Utils.RegisterFunc(L, Utils.GETTER_IDX, "Cooldown", _g_get_Cooldown); - Utils.RegisterFunc(L, Utils.GETTER_IDX, "AtkRange", _g_get_AtkRange); - Utils.RegisterFunc(L, Utils.GETTER_IDX, "PickupRange", _g_get_PickupRange); - Utils.RegisterFunc(L, Utils.GETTER_IDX, "ExpAddition", _g_get_ExpAddition); - Utils.RegisterFunc(L, Utils.GETTER_IDX, "CoinAddition", _g_get_CoinAddition); - Utils.RegisterFunc(L, Utils.GETTER_IDX, "DmgDec1", _g_get_DmgDec1); - Utils.RegisterFunc(L, Utils.GETTER_IDX, "DmgDec2", _g_get_DmgDec2); - Utils.RegisterFunc(L, Utils.GETTER_IDX, "DmgDec3", _g_get_DmgDec3); - Utils.RegisterFunc(L, Utils.GETTER_IDX, "DmgDecAll", _g_get_DmgDecAll); - Utils.RegisterFunc(L, Utils.GETTER_IDX, "Cured", _g_get_Cured); - Utils.RegisterFunc(L, Utils.GETTER_IDX, "CurrExp", _g_get_CurrExp); - - Utils.RegisterFunc(L, Utils.SETTER_IDX, "Hp", _s_set_Hp); - Utils.RegisterFunc(L, Utils.SETTER_IDX, "MaxHp", _s_set_MaxHp); - Utils.RegisterFunc(L, Utils.SETTER_IDX, "Recover", _s_set_Recover); - Utils.RegisterFunc(L, Utils.SETTER_IDX, "Atk", _s_set_Atk); - Utils.RegisterFunc(L, Utils.SETTER_IDX, "MoveSpeed", _s_set_MoveSpeed); - Utils.RegisterFunc(L, Utils.SETTER_IDX, "Crit", _s_set_Crit); - Utils.RegisterFunc(L, Utils.SETTER_IDX, "CritDmgAddition", _s_set_CritDmgAddition); - Utils.RegisterFunc(L, Utils.SETTER_IDX, "BulletCount", _s_set_BulletCount); - Utils.RegisterFunc(L, Utils.SETTER_IDX, "HitCount", _s_set_HitCount); - Utils.RegisterFunc(L, Utils.SETTER_IDX, "BulletSpeed", _s_set_BulletSpeed); - Utils.RegisterFunc(L, Utils.SETTER_IDX, "Lifetime", _s_set_Lifetime); - Utils.RegisterFunc(L, Utils.SETTER_IDX, "Cooldown", _s_set_Cooldown); - Utils.RegisterFunc(L, Utils.SETTER_IDX, "AtkRange", _s_set_AtkRange); - Utils.RegisterFunc(L, Utils.SETTER_IDX, "PickupRange", _s_set_PickupRange); - Utils.RegisterFunc(L, Utils.SETTER_IDX, "ExpAddition", _s_set_ExpAddition); - Utils.RegisterFunc(L, Utils.SETTER_IDX, "CoinAddition", _s_set_CoinAddition); - Utils.RegisterFunc(L, Utils.SETTER_IDX, "DmgDec1", _s_set_DmgDec1); - Utils.RegisterFunc(L, Utils.SETTER_IDX, "DmgDec2", _s_set_DmgDec2); - Utils.RegisterFunc(L, Utils.SETTER_IDX, "DmgDec3", _s_set_DmgDec3); - Utils.RegisterFunc(L, Utils.SETTER_IDX, "DmgDecAll", _s_set_DmgDecAll); - Utils.RegisterFunc(L, Utils.SETTER_IDX, "Cured", _s_set_Cured); - Utils.RegisterFunc(L, Utils.SETTER_IDX, "CurrExp", _s_set_CurrExp); - - - Utils.EndObjectRegister(type, L, translator, null, null, - null, null, null); - - Utils.BeginClassRegister(type, L, __CreateInstance, 1, 0, 0); - - - - - - - Utils.EndClassRegister(type, L, translator); - } - - [MonoPInvokeCallbackAttribute(typeof(LuaCSFunction))] - static int __CreateInstance(RealStatePtr L) - { - - try { - ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L); - if(LuaAPI.lua_gettop(L) == 1) - { - - var gen_ret = new BF.BattleHeroAttr(); - translator.Push(L, gen_ret); - - return 1; - } - - } - catch(System.Exception gen_e) { - return LuaAPI.luaL_error(L, "c# exception:" + gen_e); - } - return LuaAPI.luaL_error(L, "invalid arguments to BF.BattleHeroAttr constructor!"); - - } - - - - - - - - - - - - [MonoPInvokeCallbackAttribute(typeof(LuaCSFunction))] - static int _g_get_Hp(RealStatePtr L) - { - try { - ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L); - - BF.BattleHeroAttr gen_to_be_invoked = (BF.BattleHeroAttr)translator.FastGetCSObj(L, 1); - LuaAPI.lua_pushint64(L, gen_to_be_invoked.Hp); - } catch(System.Exception gen_e) { - return LuaAPI.luaL_error(L, "c# exception:" + gen_e); - } - return 1; - } - - [MonoPInvokeCallbackAttribute(typeof(LuaCSFunction))] - static int _g_get_MaxHp(RealStatePtr L) - { - try { - ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L); - - BF.BattleHeroAttr gen_to_be_invoked = (BF.BattleHeroAttr)translator.FastGetCSObj(L, 1); - LuaAPI.lua_pushint64(L, gen_to_be_invoked.MaxHp); - } catch(System.Exception gen_e) { - return LuaAPI.luaL_error(L, "c# exception:" + gen_e); - } - return 1; - } - - [MonoPInvokeCallbackAttribute(typeof(LuaCSFunction))] - static int _g_get_Recover(RealStatePtr L) - { - try { - ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L); - - BF.BattleHeroAttr gen_to_be_invoked = (BF.BattleHeroAttr)translator.FastGetCSObj(L, 1); - LuaAPI.xlua_pushinteger(L, gen_to_be_invoked.Recover); - } catch(System.Exception gen_e) { - return LuaAPI.luaL_error(L, "c# exception:" + gen_e); - } - return 1; - } - - [MonoPInvokeCallbackAttribute(typeof(LuaCSFunction))] - static int _g_get_Atk(RealStatePtr L) - { - try { - ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L); - - BF.BattleHeroAttr gen_to_be_invoked = (BF.BattleHeroAttr)translator.FastGetCSObj(L, 1); - LuaAPI.lua_pushint64(L, gen_to_be_invoked.Atk); - } catch(System.Exception gen_e) { - return LuaAPI.luaL_error(L, "c# exception:" + gen_e); - } - return 1; - } - - [MonoPInvokeCallbackAttribute(typeof(LuaCSFunction))] - static int _g_get_MoveSpeed(RealStatePtr L) - { - try { - ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L); - - BF.BattleHeroAttr gen_to_be_invoked = (BF.BattleHeroAttr)translator.FastGetCSObj(L, 1); - LuaAPI.lua_pushnumber(L, gen_to_be_invoked.MoveSpeed); - } catch(System.Exception gen_e) { - return LuaAPI.luaL_error(L, "c# exception:" + gen_e); - } - return 1; - } - - [MonoPInvokeCallbackAttribute(typeof(LuaCSFunction))] - static int _g_get_Crit(RealStatePtr L) - { - try { - ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L); - - BF.BattleHeroAttr gen_to_be_invoked = (BF.BattleHeroAttr)translator.FastGetCSObj(L, 1); - LuaAPI.xlua_pushinteger(L, gen_to_be_invoked.Crit); - } catch(System.Exception gen_e) { - return LuaAPI.luaL_error(L, "c# exception:" + gen_e); - } - return 1; - } - - [MonoPInvokeCallbackAttribute(typeof(LuaCSFunction))] - static int _g_get_CritDmgAddition(RealStatePtr L) - { - try { - ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L); - - BF.BattleHeroAttr gen_to_be_invoked = (BF.BattleHeroAttr)translator.FastGetCSObj(L, 1); - LuaAPI.lua_pushnumber(L, gen_to_be_invoked.CritDmgAddition); - } catch(System.Exception gen_e) { - return LuaAPI.luaL_error(L, "c# exception:" + gen_e); - } - return 1; - } - - [MonoPInvokeCallbackAttribute(typeof(LuaCSFunction))] - static int _g_get_BulletCount(RealStatePtr L) - { - try { - ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L); - - BF.BattleHeroAttr gen_to_be_invoked = (BF.BattleHeroAttr)translator.FastGetCSObj(L, 1); - LuaAPI.xlua_pushinteger(L, gen_to_be_invoked.BulletCount); - } catch(System.Exception gen_e) { - return LuaAPI.luaL_error(L, "c# exception:" + gen_e); - } - return 1; - } - - [MonoPInvokeCallbackAttribute(typeof(LuaCSFunction))] - static int _g_get_HitCount(RealStatePtr L) - { - try { - ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L); - - BF.BattleHeroAttr gen_to_be_invoked = (BF.BattleHeroAttr)translator.FastGetCSObj(L, 1); - LuaAPI.xlua_pushinteger(L, gen_to_be_invoked.HitCount); - } catch(System.Exception gen_e) { - return LuaAPI.luaL_error(L, "c# exception:" + gen_e); - } - return 1; - } - - [MonoPInvokeCallbackAttribute(typeof(LuaCSFunction))] - static int _g_get_BulletSpeed(RealStatePtr L) - { - try { - ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L); - - BF.BattleHeroAttr gen_to_be_invoked = (BF.BattleHeroAttr)translator.FastGetCSObj(L, 1); - LuaAPI.xlua_pushinteger(L, gen_to_be_invoked.BulletSpeed); - } catch(System.Exception gen_e) { - return LuaAPI.luaL_error(L, "c# exception:" + gen_e); - } - return 1; - } - - [MonoPInvokeCallbackAttribute(typeof(LuaCSFunction))] - static int _g_get_Lifetime(RealStatePtr L) - { - try { - ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L); - - BF.BattleHeroAttr gen_to_be_invoked = (BF.BattleHeroAttr)translator.FastGetCSObj(L, 1); - LuaAPI.lua_pushnumber(L, gen_to_be_invoked.Lifetime); - } catch(System.Exception gen_e) { - return LuaAPI.luaL_error(L, "c# exception:" + gen_e); - } - return 1; - } - - [MonoPInvokeCallbackAttribute(typeof(LuaCSFunction))] - static int _g_get_Cooldown(RealStatePtr L) - { - try { - ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L); - - BF.BattleHeroAttr gen_to_be_invoked = (BF.BattleHeroAttr)translator.FastGetCSObj(L, 1); - LuaAPI.lua_pushnumber(L, gen_to_be_invoked.Cooldown); - } catch(System.Exception gen_e) { - return LuaAPI.luaL_error(L, "c# exception:" + gen_e); - } - return 1; - } - - [MonoPInvokeCallbackAttribute(typeof(LuaCSFunction))] - static int _g_get_AtkRange(RealStatePtr L) - { - try { - ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L); - - BF.BattleHeroAttr gen_to_be_invoked = (BF.BattleHeroAttr)translator.FastGetCSObj(L, 1); - LuaAPI.lua_pushnumber(L, gen_to_be_invoked.AtkRange); - } catch(System.Exception gen_e) { - return LuaAPI.luaL_error(L, "c# exception:" + gen_e); - } - return 1; - } - - [MonoPInvokeCallbackAttribute(typeof(LuaCSFunction))] - static int _g_get_PickupRange(RealStatePtr L) - { - try { - ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L); - - BF.BattleHeroAttr gen_to_be_invoked = (BF.BattleHeroAttr)translator.FastGetCSObj(L, 1); - LuaAPI.lua_pushnumber(L, gen_to_be_invoked.PickupRange); - } catch(System.Exception gen_e) { - return LuaAPI.luaL_error(L, "c# exception:" + gen_e); - } - return 1; - } - - [MonoPInvokeCallbackAttribute(typeof(LuaCSFunction))] - static int _g_get_ExpAddition(RealStatePtr L) - { - try { - ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L); - - BF.BattleHeroAttr gen_to_be_invoked = (BF.BattleHeroAttr)translator.FastGetCSObj(L, 1); - LuaAPI.lua_pushnumber(L, gen_to_be_invoked.ExpAddition); - } catch(System.Exception gen_e) { - return LuaAPI.luaL_error(L, "c# exception:" + gen_e); - } - return 1; - } - - [MonoPInvokeCallbackAttribute(typeof(LuaCSFunction))] - static int _g_get_CoinAddition(RealStatePtr L) - { - try { - ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L); - - BF.BattleHeroAttr gen_to_be_invoked = (BF.BattleHeroAttr)translator.FastGetCSObj(L, 1); - LuaAPI.lua_pushnumber(L, gen_to_be_invoked.CoinAddition); - } catch(System.Exception gen_e) { - return LuaAPI.luaL_error(L, "c# exception:" + gen_e); - } - return 1; - } - - [MonoPInvokeCallbackAttribute(typeof(LuaCSFunction))] - static int _g_get_DmgDec1(RealStatePtr L) - { - try { - ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L); - - BF.BattleHeroAttr gen_to_be_invoked = (BF.BattleHeroAttr)translator.FastGetCSObj(L, 1); - LuaAPI.xlua_pushinteger(L, gen_to_be_invoked.DmgDec1); - } catch(System.Exception gen_e) { - return LuaAPI.luaL_error(L, "c# exception:" + gen_e); - } - return 1; - } - - [MonoPInvokeCallbackAttribute(typeof(LuaCSFunction))] - static int _g_get_DmgDec2(RealStatePtr L) - { - try { - ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L); - - BF.BattleHeroAttr gen_to_be_invoked = (BF.BattleHeroAttr)translator.FastGetCSObj(L, 1); - LuaAPI.xlua_pushinteger(L, gen_to_be_invoked.DmgDec2); - } catch(System.Exception gen_e) { - return LuaAPI.luaL_error(L, "c# exception:" + gen_e); - } - return 1; - } - - [MonoPInvokeCallbackAttribute(typeof(LuaCSFunction))] - static int _g_get_DmgDec3(RealStatePtr L) - { - try { - ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L); - - BF.BattleHeroAttr gen_to_be_invoked = (BF.BattleHeroAttr)translator.FastGetCSObj(L, 1); - LuaAPI.xlua_pushinteger(L, gen_to_be_invoked.DmgDec3); - } catch(System.Exception gen_e) { - return LuaAPI.luaL_error(L, "c# exception:" + gen_e); - } - return 1; - } - - [MonoPInvokeCallbackAttribute(typeof(LuaCSFunction))] - static int _g_get_DmgDecAll(RealStatePtr L) - { - try { - ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L); - - BF.BattleHeroAttr gen_to_be_invoked = (BF.BattleHeroAttr)translator.FastGetCSObj(L, 1); - LuaAPI.lua_pushnumber(L, gen_to_be_invoked.DmgDecAll); - } catch(System.Exception gen_e) { - return LuaAPI.luaL_error(L, "c# exception:" + gen_e); - } - return 1; - } - - [MonoPInvokeCallbackAttribute(typeof(LuaCSFunction))] - static int _g_get_Cured(RealStatePtr L) - { - try { - ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L); - - BF.BattleHeroAttr gen_to_be_invoked = (BF.BattleHeroAttr)translator.FastGetCSObj(L, 1); - LuaAPI.lua_pushnumber(L, gen_to_be_invoked.Cured); - } catch(System.Exception gen_e) { - return LuaAPI.luaL_error(L, "c# exception:" + gen_e); - } - return 1; - } - - [MonoPInvokeCallbackAttribute(typeof(LuaCSFunction))] - static int _g_get_CurrExp(RealStatePtr L) - { - try { - ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L); - - BF.BattleHeroAttr gen_to_be_invoked = (BF.BattleHeroAttr)translator.FastGetCSObj(L, 1); - LuaAPI.xlua_pushinteger(L, gen_to_be_invoked.CurrExp); - } catch(System.Exception gen_e) { - return LuaAPI.luaL_error(L, "c# exception:" + gen_e); - } - return 1; - } - - - - [MonoPInvokeCallbackAttribute(typeof(LuaCSFunction))] - static int _s_set_Hp(RealStatePtr L) - { - try { - ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L); - - BF.BattleHeroAttr gen_to_be_invoked = (BF.BattleHeroAttr)translator.FastGetCSObj(L, 1); - gen_to_be_invoked.Hp = LuaAPI.lua_toint64(L, 2); - - } catch(System.Exception gen_e) { - return LuaAPI.luaL_error(L, "c# exception:" + gen_e); - } - return 0; - } - - [MonoPInvokeCallbackAttribute(typeof(LuaCSFunction))] - static int _s_set_MaxHp(RealStatePtr L) - { - try { - ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L); - - BF.BattleHeroAttr gen_to_be_invoked = (BF.BattleHeroAttr)translator.FastGetCSObj(L, 1); - gen_to_be_invoked.MaxHp = LuaAPI.lua_toint64(L, 2); - - } catch(System.Exception gen_e) { - return LuaAPI.luaL_error(L, "c# exception:" + gen_e); - } - return 0; - } - - [MonoPInvokeCallbackAttribute(typeof(LuaCSFunction))] - static int _s_set_Recover(RealStatePtr L) - { - try { - ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L); - - BF.BattleHeroAttr gen_to_be_invoked = (BF.BattleHeroAttr)translator.FastGetCSObj(L, 1); - gen_to_be_invoked.Recover = LuaAPI.xlua_tointeger(L, 2); - - } catch(System.Exception gen_e) { - return LuaAPI.luaL_error(L, "c# exception:" + gen_e); - } - return 0; - } - - [MonoPInvokeCallbackAttribute(typeof(LuaCSFunction))] - static int _s_set_Atk(RealStatePtr L) - { - try { - ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L); - - BF.BattleHeroAttr gen_to_be_invoked = (BF.BattleHeroAttr)translator.FastGetCSObj(L, 1); - gen_to_be_invoked.Atk = LuaAPI.lua_toint64(L, 2); - - } catch(System.Exception gen_e) { - return LuaAPI.luaL_error(L, "c# exception:" + gen_e); - } - return 0; - } - - [MonoPInvokeCallbackAttribute(typeof(LuaCSFunction))] - static int _s_set_MoveSpeed(RealStatePtr L) - { - try { - ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L); - - BF.BattleHeroAttr gen_to_be_invoked = (BF.BattleHeroAttr)translator.FastGetCSObj(L, 1); - gen_to_be_invoked.MoveSpeed = (float)LuaAPI.lua_tonumber(L, 2); - - } catch(System.Exception gen_e) { - return LuaAPI.luaL_error(L, "c# exception:" + gen_e); - } - return 0; - } - - [MonoPInvokeCallbackAttribute(typeof(LuaCSFunction))] - static int _s_set_Crit(RealStatePtr L) - { - try { - ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L); - - BF.BattleHeroAttr gen_to_be_invoked = (BF.BattleHeroAttr)translator.FastGetCSObj(L, 1); - gen_to_be_invoked.Crit = LuaAPI.xlua_tointeger(L, 2); - - } catch(System.Exception gen_e) { - return LuaAPI.luaL_error(L, "c# exception:" + gen_e); - } - return 0; - } - - [MonoPInvokeCallbackAttribute(typeof(LuaCSFunction))] - static int _s_set_CritDmgAddition(RealStatePtr L) - { - try { - ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L); - - BF.BattleHeroAttr gen_to_be_invoked = (BF.BattleHeroAttr)translator.FastGetCSObj(L, 1); - gen_to_be_invoked.CritDmgAddition = LuaAPI.lua_tonumber(L, 2); - - } catch(System.Exception gen_e) { - return LuaAPI.luaL_error(L, "c# exception:" + gen_e); - } - return 0; - } - - [MonoPInvokeCallbackAttribute(typeof(LuaCSFunction))] - static int _s_set_BulletCount(RealStatePtr L) - { - try { - ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L); - - BF.BattleHeroAttr gen_to_be_invoked = (BF.BattleHeroAttr)translator.FastGetCSObj(L, 1); - gen_to_be_invoked.BulletCount = LuaAPI.xlua_tointeger(L, 2); - - } catch(System.Exception gen_e) { - return LuaAPI.luaL_error(L, "c# exception:" + gen_e); - } - return 0; - } - - [MonoPInvokeCallbackAttribute(typeof(LuaCSFunction))] - static int _s_set_HitCount(RealStatePtr L) - { - try { - ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L); - - BF.BattleHeroAttr gen_to_be_invoked = (BF.BattleHeroAttr)translator.FastGetCSObj(L, 1); - gen_to_be_invoked.HitCount = LuaAPI.xlua_tointeger(L, 2); - - } catch(System.Exception gen_e) { - return LuaAPI.luaL_error(L, "c# exception:" + gen_e); - } - return 0; - } - - [MonoPInvokeCallbackAttribute(typeof(LuaCSFunction))] - static int _s_set_BulletSpeed(RealStatePtr L) - { - try { - ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L); - - BF.BattleHeroAttr gen_to_be_invoked = (BF.BattleHeroAttr)translator.FastGetCSObj(L, 1); - gen_to_be_invoked.BulletSpeed = LuaAPI.xlua_tointeger(L, 2); - - } catch(System.Exception gen_e) { - return LuaAPI.luaL_error(L, "c# exception:" + gen_e); - } - return 0; - } - - [MonoPInvokeCallbackAttribute(typeof(LuaCSFunction))] - static int _s_set_Lifetime(RealStatePtr L) - { - try { - ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L); - - BF.BattleHeroAttr gen_to_be_invoked = (BF.BattleHeroAttr)translator.FastGetCSObj(L, 1); - gen_to_be_invoked.Lifetime = (float)LuaAPI.lua_tonumber(L, 2); - - } catch(System.Exception gen_e) { - return LuaAPI.luaL_error(L, "c# exception:" + gen_e); - } - return 0; - } - - [MonoPInvokeCallbackAttribute(typeof(LuaCSFunction))] - static int _s_set_Cooldown(RealStatePtr L) - { - try { - ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L); - - BF.BattleHeroAttr gen_to_be_invoked = (BF.BattleHeroAttr)translator.FastGetCSObj(L, 1); - gen_to_be_invoked.Cooldown = (float)LuaAPI.lua_tonumber(L, 2); - - } catch(System.Exception gen_e) { - return LuaAPI.luaL_error(L, "c# exception:" + gen_e); - } - return 0; - } - - [MonoPInvokeCallbackAttribute(typeof(LuaCSFunction))] - static int _s_set_AtkRange(RealStatePtr L) - { - try { - ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L); - - BF.BattleHeroAttr gen_to_be_invoked = (BF.BattleHeroAttr)translator.FastGetCSObj(L, 1); - gen_to_be_invoked.AtkRange = (float)LuaAPI.lua_tonumber(L, 2); - - } catch(System.Exception gen_e) { - return LuaAPI.luaL_error(L, "c# exception:" + gen_e); - } - return 0; - } - - [MonoPInvokeCallbackAttribute(typeof(LuaCSFunction))] - static int _s_set_PickupRange(RealStatePtr L) - { - try { - ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L); - - BF.BattleHeroAttr gen_to_be_invoked = (BF.BattleHeroAttr)translator.FastGetCSObj(L, 1); - gen_to_be_invoked.PickupRange = (float)LuaAPI.lua_tonumber(L, 2); - - } catch(System.Exception gen_e) { - return LuaAPI.luaL_error(L, "c# exception:" + gen_e); - } - return 0; - } - - [MonoPInvokeCallbackAttribute(typeof(LuaCSFunction))] - static int _s_set_ExpAddition(RealStatePtr L) - { - try { - ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L); - - BF.BattleHeroAttr gen_to_be_invoked = (BF.BattleHeroAttr)translator.FastGetCSObj(L, 1); - gen_to_be_invoked.ExpAddition = (float)LuaAPI.lua_tonumber(L, 2); - - } catch(System.Exception gen_e) { - return LuaAPI.luaL_error(L, "c# exception:" + gen_e); - } - return 0; - } - - [MonoPInvokeCallbackAttribute(typeof(LuaCSFunction))] - static int _s_set_CoinAddition(RealStatePtr L) - { - try { - ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L); - - BF.BattleHeroAttr gen_to_be_invoked = (BF.BattleHeroAttr)translator.FastGetCSObj(L, 1); - gen_to_be_invoked.CoinAddition = (float)LuaAPI.lua_tonumber(L, 2); - - } catch(System.Exception gen_e) { - return LuaAPI.luaL_error(L, "c# exception:" + gen_e); - } - return 0; - } - - [MonoPInvokeCallbackAttribute(typeof(LuaCSFunction))] - static int _s_set_DmgDec1(RealStatePtr L) - { - try { - ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L); - - BF.BattleHeroAttr gen_to_be_invoked = (BF.BattleHeroAttr)translator.FastGetCSObj(L, 1); - gen_to_be_invoked.DmgDec1 = LuaAPI.xlua_tointeger(L, 2); - - } catch(System.Exception gen_e) { - return LuaAPI.luaL_error(L, "c# exception:" + gen_e); - } - return 0; - } - - [MonoPInvokeCallbackAttribute(typeof(LuaCSFunction))] - static int _s_set_DmgDec2(RealStatePtr L) - { - try { - ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L); - - BF.BattleHeroAttr gen_to_be_invoked = (BF.BattleHeroAttr)translator.FastGetCSObj(L, 1); - gen_to_be_invoked.DmgDec2 = LuaAPI.xlua_tointeger(L, 2); - - } catch(System.Exception gen_e) { - return LuaAPI.luaL_error(L, "c# exception:" + gen_e); - } - return 0; - } - - [MonoPInvokeCallbackAttribute(typeof(LuaCSFunction))] - static int _s_set_DmgDec3(RealStatePtr L) - { - try { - ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L); - - BF.BattleHeroAttr gen_to_be_invoked = (BF.BattleHeroAttr)translator.FastGetCSObj(L, 1); - gen_to_be_invoked.DmgDec3 = LuaAPI.xlua_tointeger(L, 2); - - } catch(System.Exception gen_e) { - return LuaAPI.luaL_error(L, "c# exception:" + gen_e); - } - return 0; - } - - [MonoPInvokeCallbackAttribute(typeof(LuaCSFunction))] - static int _s_set_DmgDecAll(RealStatePtr L) - { - try { - ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L); - - BF.BattleHeroAttr gen_to_be_invoked = (BF.BattleHeroAttr)translator.FastGetCSObj(L, 1); - gen_to_be_invoked.DmgDecAll = LuaAPI.lua_tonumber(L, 2); - - } catch(System.Exception gen_e) { - return LuaAPI.luaL_error(L, "c# exception:" + gen_e); - } - return 0; - } - - [MonoPInvokeCallbackAttribute(typeof(LuaCSFunction))] - static int _s_set_Cured(RealStatePtr L) - { - try { - ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L); - - BF.BattleHeroAttr gen_to_be_invoked = (BF.BattleHeroAttr)translator.FastGetCSObj(L, 1); - gen_to_be_invoked.Cured = LuaAPI.lua_tonumber(L, 2); - - } catch(System.Exception gen_e) { - return LuaAPI.luaL_error(L, "c# exception:" + gen_e); - } - return 0; - } - - [MonoPInvokeCallbackAttribute(typeof(LuaCSFunction))] - static int _s_set_CurrExp(RealStatePtr L) - { - try { - ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L); - - BF.BattleHeroAttr gen_to_be_invoked = (BF.BattleHeroAttr)translator.FastGetCSObj(L, 1); - gen_to_be_invoked.CurrExp = LuaAPI.xlua_tointeger(L, 2); - - } catch(System.Exception gen_e) { - return LuaAPI.luaL_error(L, "c# exception:" + gen_e); - } - return 0; - } - - - - - - } -} diff --git a/Assets/XLua/Gen/BF_BattleUnitAttrWrap.cs b/Assets/XLua/Gen/BF_BattleUnitAttrWrap.cs new file mode 100644 index 000000000..ba715d170 --- /dev/null +++ b/Assets/XLua/Gen/BF_BattleUnitAttrWrap.cs @@ -0,0 +1,263 @@ +#if USE_UNI_LUA +using LuaAPI = UniLua.Lua; +using RealStatePtr = UniLua.ILuaState; +using LuaCSFunction = UniLua.CSharpFunctionDelegate; +#else +using LuaAPI = XLua.LuaDLL.Lua; +using RealStatePtr = System.IntPtr; +using LuaCSFunction = XLua.LuaDLL.lua_CSFunction; +#endif + +using XLua; +using System.Collections.Generic; + + +namespace XLua.CSObjectWrap +{ + using Utils = XLua.Utils; + public class BFBattleUnitAttrWrap + { + public static void __Register(RealStatePtr L) + { + ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L); + System.Type type = typeof(BF.BattleUnitAttr); + Utils.BeginObjectRegister(type, L, translator, 0, 3, 3, 3); + + Utils.RegisterFunc(L, Utils.METHOD_IDX, "BindGetAttributeFunc", _m_BindGetAttributeFunc); + Utils.RegisterFunc(L, Utils.METHOD_IDX, "TryGetAttributeFromLua", _m_TryGetAttributeFromLua); + Utils.RegisterFunc(L, Utils.METHOD_IDX, "GetAttribute", _m_GetAttribute); + + + Utils.RegisterFunc(L, Utils.GETTER_IDX, "UnitAttribute", _g_get_UnitAttribute); + Utils.RegisterFunc(L, Utils.GETTER_IDX, "LuaGetAttributeFunc", _g_get_LuaGetAttributeFunc); + Utils.RegisterFunc(L, Utils.GETTER_IDX, "Side", _g_get_Side); + + Utils.RegisterFunc(L, Utils.SETTER_IDX, "UnitAttribute", _s_set_UnitAttribute); + Utils.RegisterFunc(L, Utils.SETTER_IDX, "LuaGetAttributeFunc", _s_set_LuaGetAttributeFunc); + Utils.RegisterFunc(L, Utils.SETTER_IDX, "Side", _s_set_Side); + + + Utils.EndObjectRegister(type, L, translator, null, null, + null, null, null); + + Utils.BeginClassRegister(type, L, __CreateInstance, 1, 0, 0); + + + + + + + Utils.EndClassRegister(type, L, translator); + } + + [MonoPInvokeCallbackAttribute(typeof(LuaCSFunction))] + static int __CreateInstance(RealStatePtr L) + { + + try { + ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L); + if(LuaAPI.lua_gettop(L) == 1) + { + + var gen_ret = new BF.BattleUnitAttr(); + translator.Push(L, gen_ret); + + return 1; + } + + } + catch(System.Exception gen_e) { + return LuaAPI.luaL_error(L, "c# exception:" + gen_e); + } + return LuaAPI.luaL_error(L, "invalid arguments to BF.BattleUnitAttr constructor!"); + + } + + + + + + + + + [MonoPInvokeCallbackAttribute(typeof(LuaCSFunction))] + static int _m_BindGetAttributeFunc(RealStatePtr L) + { + try { + + ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L); + + + BF.BattleUnitAttr gen_to_be_invoked = (BF.BattleUnitAttr)translator.FastGetCSObj(L, 1); + + + + { + System.Action _getFunc = translator.GetDelegate>(L, 2); + + gen_to_be_invoked.BindGetAttributeFunc( _getFunc ); + + + + return 0; + } + + } catch(System.Exception gen_e) { + return LuaAPI.luaL_error(L, "c# exception:" + gen_e); + } + + } + + [MonoPInvokeCallbackAttribute(typeof(LuaCSFunction))] + static int _m_TryGetAttributeFromLua(RealStatePtr L) + { + try { + + ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L); + + + BF.BattleUnitAttr gen_to_be_invoked = (BF.BattleUnitAttr)translator.FastGetCSObj(L, 1); + + + + { + + gen_to_be_invoked.TryGetAttributeFromLua( ); + + + + return 0; + } + + } catch(System.Exception gen_e) { + return LuaAPI.luaL_error(L, "c# exception:" + gen_e); + } + + } + + [MonoPInvokeCallbackAttribute(typeof(LuaCSFunction))] + static int _m_GetAttribute(RealStatePtr L) + { + try { + + ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L); + + + BF.BattleUnitAttr gen_to_be_invoked = (BF.BattleUnitAttr)translator.FastGetCSObj(L, 1); + + + + { + string _attr = LuaAPI.lua_tostring(L, 2); + + gen_to_be_invoked.GetAttribute( _attr ); + + + + return 0; + } + + } catch(System.Exception gen_e) { + return LuaAPI.luaL_error(L, "c# exception:" + gen_e); + } + + } + + + + + [MonoPInvokeCallbackAttribute(typeof(LuaCSFunction))] + static int _g_get_UnitAttribute(RealStatePtr L) + { + try { + ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L); + + BF.BattleUnitAttr gen_to_be_invoked = (BF.BattleUnitAttr)translator.FastGetCSObj(L, 1); + translator.Push(L, gen_to_be_invoked.UnitAttribute); + } catch(System.Exception gen_e) { + return LuaAPI.luaL_error(L, "c# exception:" + gen_e); + } + return 1; + } + + [MonoPInvokeCallbackAttribute(typeof(LuaCSFunction))] + static int _g_get_LuaGetAttributeFunc(RealStatePtr L) + { + try { + ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L); + + BF.BattleUnitAttr gen_to_be_invoked = (BF.BattleUnitAttr)translator.FastGetCSObj(L, 1); + translator.Push(L, gen_to_be_invoked.LuaGetAttributeFunc); + } catch(System.Exception gen_e) { + return LuaAPI.luaL_error(L, "c# exception:" + gen_e); + } + return 1; + } + + [MonoPInvokeCallbackAttribute(typeof(LuaCSFunction))] + static int _g_get_Side(RealStatePtr L) + { + try { + ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L); + + BF.BattleUnitAttr gen_to_be_invoked = (BF.BattleUnitAttr)translator.FastGetCSObj(L, 1); + LuaAPI.xlua_pushinteger(L, gen_to_be_invoked.Side); + } catch(System.Exception gen_e) { + return LuaAPI.luaL_error(L, "c# exception:" + gen_e); + } + return 1; + } + + + + [MonoPInvokeCallbackAttribute(typeof(LuaCSFunction))] + static int _s_set_UnitAttribute(RealStatePtr L) + { + try { + ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L); + + BF.BattleUnitAttr gen_to_be_invoked = (BF.BattleUnitAttr)translator.FastGetCSObj(L, 1); + gen_to_be_invoked.UnitAttribute = (BF.BattleUnitAttribute)translator.GetObject(L, 2, typeof(BF.BattleUnitAttribute)); + + } catch(System.Exception gen_e) { + return LuaAPI.luaL_error(L, "c# exception:" + gen_e); + } + return 0; + } + + [MonoPInvokeCallbackAttribute(typeof(LuaCSFunction))] + static int _s_set_LuaGetAttributeFunc(RealStatePtr L) + { + try { + ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L); + + BF.BattleUnitAttr gen_to_be_invoked = (BF.BattleUnitAttr)translator.FastGetCSObj(L, 1); + gen_to_be_invoked.LuaGetAttributeFunc = translator.GetDelegate>(L, 2); + + } catch(System.Exception gen_e) { + return LuaAPI.luaL_error(L, "c# exception:" + gen_e); + } + return 0; + } + + [MonoPInvokeCallbackAttribute(typeof(LuaCSFunction))] + static int _s_set_Side(RealStatePtr L) + { + try { + ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L); + + BF.BattleUnitAttr gen_to_be_invoked = (BF.BattleUnitAttr)translator.FastGetCSObj(L, 1); + gen_to_be_invoked.Side = LuaAPI.xlua_tointeger(L, 2); + + } catch(System.Exception gen_e) { + return LuaAPI.luaL_error(L, "c# exception:" + gen_e); + } + return 0; + } + + + + + + } +} diff --git a/Assets/XLua/Gen/XLuaGenAutoRegister.cs b/Assets/XLua/Gen/XLuaGenAutoRegister.cs index c7446fd4b..c5d7863f3 100644 --- a/Assets/XLua/Gen/XLuaGenAutoRegister.cs +++ b/Assets/XLua/Gen/XLuaGenAutoRegister.cs @@ -1546,9 +1546,6 @@ namespace XLua.CSObjectWrap translator.DelayWrapLoader(typeof(BF.BattleEffectNumber), BFBattleEffectNumberWrap.__Register); - translator.DelayWrapLoader(typeof(BF.BattleHeroAttr), BFBattleHeroAttrWrap.__Register); - - translator.DelayWrapLoader(typeof(BF.BattleHpBar), BFBattleHpBarWrap.__Register); @@ -1558,6 +1555,9 @@ namespace XLua.CSObjectWrap translator.DelayWrapLoader(typeof(BF.BattleSkillToast), BFBattleSkillToastWrap.__Register); + translator.DelayWrapLoader(typeof(BF.BattleUnitAttr), BFBattleUnitAttrWrap.__Register); + + translator.DelayWrapLoader(typeof(BF.BaseSortingOrderHelper), BFBaseSortingOrderHelperWrap.__Register); diff --git a/Assets/XLua/Gen/link.xml b/Assets/XLua/Gen/link.xml index 6fea3f39e..1f5c6a681 100644 --- a/Assets/XLua/Gen/link.xml +++ b/Assets/XLua/Gen/link.xml @@ -122,10 +122,10 @@ - + diff --git a/Assets/lua/app/module/battle/battle_manager.lua.bytes b/Assets/lua/app/module/battle/battle_manager.lua.bytes index 0fae669559dea7b4225e004101f4ef040b889e1b..289f2de488f36df494dfe91bc1fc8f06e8f194dc 100644 GIT binary patch delta 6240 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 UE=3I+(9MDhKhrc?*8!L#;BG+}I`d^yP+p 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 J6E$1){{az+VqE|L literal 22400 zcmbWfd0d;vwf`>`2@nDc5E7fjVgv#KmW1|&#jFBkBtT*lo6ROLMiP>c*xWQ*(>A$I zQ>Qm+n&zfW8fR&+jU9;Nv`w5ezPZlgByDfo4eir_%q>UiZAg;HAMco z&^t!tAM?*r{Dtr`#aH;FS|a~a=yeeJRsLCuF9@YQCUWR)!wtfQ*rJM*G((n^ z$Bu36VHb1LL=~BxqWM-1pUz9>75C&9TB164=x ztnJ#q@XqYGUO_Tzgz$K0QgFPzBYnICP9uMtHD;(NufrQ)*rYMy2EHjjvOCORN#4q6 zXXJ_7qJ@@Bv$1{~Xvd(q( z(Cr#Fr9T{2wl%|~Wtl^)XJ*;wYKc6fCL@W}Kyh7bd}Ty_PZB5H#}CUkjFwn3r;GBc z`J8-HW>j|L+;&nvt)g5I*W(*i+66jGN)IcqTN5^+pwV&~`C9unvpB87JD1+W;bk|l z)5!PQ3@MqkCI$LOSJV+D?KSkOui+V;YP)xDS`WUjou%uJ>J(+k_lAeH)APk0%;EsE zHqTbh;nS??u|iWqURPmvt}UBOzBf{07w7aub+YuG-mx$Xmlk2?7S%E`0MT%Po9f8g0rQ8$1U>4o7Aahah5eawX8Fe zR#BcVv@q+MFdvy&ra944(!MLj#HRgxvo`*23*`Cs!K6zvNOXXSiMP6 zDsEg>dQ6)p&(7(M?PMf~?D_hhnwoNzjh(bH-&N3;Zi&m)kNLj?_Cf(}uj25x5PP8A zupjd-hk6e04;WRWuqSgaslzTCs>$@9l#hYs(~0z+B;JO-v7o*|Ja0sOTGZDH-rdNH z$szWLJP&rLccQ-C_#U~*q5^x|!s;HiQIYSBYiX0ZMm=jmHYrZEltQkb)n=JvH66?* zqkWQ{9Op^rO33)6NE_o?QZnO6drAGfQGYhd7l6g!0C+1{O!@~*+N%iX(0fVwy&Lv% z1pQHg=j-KrlF&Y-t3X{Qyh)RR?<>2Dw*~uqW|Oct^$>OK8evu z3nTi-*e0z|Sm`o`HJn*!=Ncrt-SLLraQcKePtTcCZ5c0{jbu1VWWqqUvZA1vHm-5T zGbZ&C?No6)&EOVyGwTX6E#YYsIqXP@iBmK#unXtwkOW>d1* zk~*8Cw0dUgWzQF6u1#Q z4CaAdU=z3>oB%e1H|LuP`mT&j$?XguhJH_Cy(0F+qny{5Rtqp6>L8c8JOg+>LZdeN z#g|RWMVIrV&t~#65YeN;NU$Unz$58EEi0{eB6IM8fWLzY6v5LHz=-AG{rm`hxatQeIvz0Vm-7RrvlC*oOo#8(aZS1#`eU@Sa*xnGLL- z!Sf6Hp1d{#v2UcmYEYk4?u>|(^g&($dB9k@3(ph#_=QYZ{l)riim^+k7Q55sI5u^L z*f$liXL8i1pN=YS&oHUCwP{M{*_qLOJYI!NORfK03!Ob75hT&fOoNHoD`NlgzHz*d zj_+xaOnJfm_?{a1SN#Qh<2RLs)(_zh(jP&6wV}P8c;18OBk}w$FsYAfe~LLg7xbT&!h5hpI&vo<3X)rrozVjNNgE2FAQh8qKU@tm-tw$d2U3_Gi1OPxqBpAL(*z@I8BXLi$T zH8y=Io8Kg$McKI8ib-{}z^j+%?=F_|9R`zHWX>+z&<90ov6=9cAR|@Z@|C~d!Y%3M zhQ$|KIoz&Diztrxiz7Y@DFG-m1U0jXIo0EIAyUdJch*J)><+>C3&4u9EX1NpT5s#;Bxr0{Ajt2Thx^) z?PWN!<#`Lm5~j0=JuV8c!ghJh;)UYk*l}sntZ;xOm@M0>+@n&low{hhJivP zS3+K&ZRPVIA6mftlnLy#(h5K3S3Ty}=s-(k-GsuL$w}{IFqLc{`X>_eZ@zO&JFP}# zN;O!v>%bK#KWECZF&*uZ-I}aEe#Z#v^Ah_+Z_84Zhvv6}FSIbsTk{5^!&s`&d>^UJ z)7km*sHXG;Lw;z!%TV4>oW-0RP1~Cj2#Z@NQxuIzv!cEJc(gYX-{W*>eP~~KjAz_^ z>U)w|sbiV=CuIDjwZZ)*<^MNVhWm?hQQvIvD%Qp~?onu!Yz=VlTnfno^Ya<9kE??}9((AN*g#l-QbCnXOvDeuyfM`h)%| z@h^v}J>Y-v|0sP!eXcUpuR?q3pS;}YQy!v7PVSnf40jY}Z+ z_6OHHrM@%9T%OUF%-Qh23a;@_g8S=kb$JUXLTMxWA8)9Akr}Z)G}mNzs-YsvoS5I) z7wR7_RUfsVgzt}>$ztX z!bnZI@#FFGxYI}4UFXz$QU6@6J$q1_Yb>MXnC3$I+wqnDW_B4u;}f24wTUWd zV`XLV7t=?QdD(WZNrU}xLSIH0!^Vr181}|bM|PLx$#)7RqpHI2;o_+I^4*CEbCMjb z-k%>nET+$Ib7tDIQo}S2{BWf`Ry!QtBFvN9zW#lU*S?QN%Q8%5SC^X=d2<{d|5|%p zEeNCZjhAZZllK^G`qVH(4>N&l&djcu+!l-9}pySwv41D6Mq2xjqw>q z|8GNo2*IP^qOaj1$nzi{hkP64*K;xC`H+u6o&b3wI0f7WhCig9=4M+3U_}=-zVK(# z=aiZ9XuO~JTRQhnvLC%T?ls--Jm}oEA{&ZWUv69)J7Q8wUC!J6?x7ns8sit|kG$%U zthy$le-$#era#`K5mi1tk_UHsTJn*M+oAv-&T3~ z+aTAK+9Nr{-URiT?5~s2J}x)|?Xz6RW-teG4&-EhY|e*CJa6g}bU^N!#r&9%+nI$H zdgTTa|Ey`eWH!B}1K-z*_i6n*%Fy5YF&`iD9~ul_RvV`tz1)0Sy6TG4xCb8ykni`H z{(W)vBJsbsqdz1gJqCs~hOV911g%dQ$xRx2lyzrmD!Es^K%aYy5Or5NAl7TqZN>+(>f=Jzr3aj~gok<7PCn19cn z^o+0F{yph&*CU#{VW0j8dn7((UOeh7P#?*CL3=OO+l}%^1|v1Uh(0oUm33FCbjqPy z8#$r5FIw)n?^KJV`@;S@vi>Y!Jfz#RNxX){n}YG0#vDsZM4EmfTWCs+w9?xO5g(cn zQ}GbJsDdfAWB;2IZV|+UwX?D+!p&tibtoPa+^>-F8^w6W;(PM(JzK#7Fo}2Qz~$hG z>o^?Dg}1%b!FN$VjZ{y<4eAO&scQEuqzhzT}6HM@|ke-2Z@g;5FbfH ze~WK#S=?ZE%+mSt+Y=9x^^=YE4#z0YyH6!bk}&?e&s49-joxufT#J;9zXJLokGVW< zIn^S)vigX61?AnhEuFt;VoQ!nAJZH;bBlVR-Zw5|v1PtRvG(}T3u?&EUV=VOJH={m zF5)jQ`5c}mi{zezW6OsJ>og0ED8Gd*_Z=4NOGoN7`@W?(e{oBKz(JNe1!JsAVN z*R1dHBNdH#wp5*2-c8~SLrg?6qHU?g!|@%trM)sihK(^$wV=!EN~tvVx~X_E;+L@o z$-qcBeNtAY_vH;3XH@ioyxGKry}9KE@y32vTA5(w^K&~hBDdO^CT&z#k#Y+Afk0SB zVb>hS2k|$V(>bcA%D(`96Z+zGl(nM2%Z%{f;=U&_tR7H5h50jIFCW8r$UZ)JK(h|M zgz>r)k^1g4)#@eVl`&^ii)=sQSxdrO)JIQV8TlZNx1Gxt z*%hKLW($eemQwzrCpF*7GMC#l*l&#Txp6&nRjsM^0`k3S`nm9IQ@N-!erB86nn<58 zWJDI&=e84hXg@T*)y|5wrkKMeU7SR|euSHC(&V>Cbd{^xvIS`t220$YWy*@i{%TIZ zjvM1e7k6-(-GXjSr4;&4>{%i7AN_~+&BY_$8;5w(EZsQ)%1}RnEIXx;ve{0F}96bLS>iZJ?eHpxb4POBt1AhVe=a8QTKLq|0_|M>T;Gcru z1-}>Khrxda{|Wpz$o~U;2K+wwBk)ha?}N{P{|+$`Sus>9MLl!Z`G=$MaeeO6{u_r|^SW?gnc{$|G_}&7P zPXw#M_23dP2Ydp&1U?NucMZP*J_~*k@`I577W_BxbKqydzX!hyJ_SAw{=?Vsdyu~Z z`LmG!4)P8D1^B3$T#>5_$BZ%UgJ0aiPe?*~wg7MWJ z=)(;9&zIUsqZOJa(7(hU2KQr#=M*(pROez4}n# z@JOW2-|$-Dk*50(E>6+4?x6?#>-Fo8UTQw-aycK;EK>3#1uE0CZkOx!z}m>SmbDG9 zeV}OST{}EwdfGi$uhW?h7hKt~|Ii_~X~sQL|EaEF$#JCF=U#QHH10EL>$fU<&MQpI zl3U`5|I{jui`e7f`d&%mWgGUdyns6IP((K+4K(!f4O6fOyk2?=ztT4m zI$ttYS(1|t?NN*(Z-TZWz8m&tHZp1^JvIyRbjhCfTz#82Kx2Bm1?D{Tbp# zhT6!^Z1^v83|k&k+QnvVkMGueWglmt4{}qhlGv{R^zDz}JE0$Mfqx5r8@vzv=5_oV zFln#5h}6e0hH;>OL(S-K(theZs2u)+nI(}whwu3zsoy<7{83`>dhtDf!}xqNpsr_& z70tvSAII|*Qf5(0s<})nUr5YoP{m}o@$)Onn+z&)o}-x_+#d9=8lnGxKz*-5zu$v? zzaQdPz-X^x2iQZ_%PO2t^kg`zXE{A|@Grq1f`0_Q8sf9ye+PdFJ^?xQn8tgq;Sa#~f2wwWx2uL;YR;#M}IU|N7hCv<&g7HpFW+Oe_}k_FdkmmqXdI#C!Xg(t`BFbwxa%e zFj>#2c#i)Q^yfPIbIPH0lJQ1-BMJ7I?8khb;CYcRM_(Nwpttch&-2K6!rSfv%kIH%1~epI({z;Bqjl$*hoLWpV%4eMLyK-=KZX&XFBHo+x&Bj) z3HD>hez(*`?8y@=eq(RpNf~(`iPvB2&kc7+@xrY9T>_M zo+=r_c`Z5rna@Zlw#S-e>20}LRo*~6&X=>T9Fsm2Z~toln2hl_iT?ag^zSdBzuyJ_ zC-@}zdGKxESHOqB%izo4gW$v96)?^VB#Yoh@YCRr!H2KmE8s)mgODGCe1kWhzX&;r z&u{LpCotagtTtYBb~}r2N+`N%@V*JOXF=1QGFMOqIXTY?%~w0# zw;S*KYX7?q{m{VPX#HJPsPBH*k3!Ab&;x<>dYhP>e>qpleC-POPhP@#(NX6r&fC_8 zZVaf6>*p^w9bLrwvVMr{kL$_)coFZLUU#1%@ql&lC6sqLcP*E`f8$l~_{UWFUF+`m zgYu7?$}k^p_pc4!xS}=whP=<|T73}j+i}(ZUu%y|W4^4qZdXqYc4@{=mY$n7CCd)E z_slp4hG(H~j|op%50$z~v}=GS(AEB&454EQ+&aV=a=1Qp4T03xZ8pDU2v_Q znR#lUQoC;4S8$}MX)&<+k+yW`rDKLB-6PH&g2M;BamU<)(b{L5FN;b|txMCcI33n& zwD+*XV|wS1+%x>CYS{QmS+oD_Wux-2%PG_y+4ZfNa-;w6ZX@i8^Y&wi-+jKg&_LGH{(ArD#m2iz1Fq4}yhB-9f8)Lah3VL$%N3#daoT48x`O>n z)-Q5iY14$KGMdXHRV{N>)cNi_J3L&!7yf&Z&PuNp8@6Y7{o}j@dV^e4mpPm(v8QCl z>-%XUb8=P}vohDvE6Jpd^Eegy(yWdsg|U6RK)~0JF_d=1zYFYJm4gfp%a%=3H1YG> zco zv#IlY%s<4J2W!zj`7EA)5&R1J=N0gM;9rA(3H}v$ANXbP^WYc2KLEc9{x$eTF#Id> zeej1v=b`$NQae8>x;r%y{re5{?@f>|qraa7-w3`1{51Fg_-62p;0M4<;C~0-7viVD zKLr06{2=5V?6hRp9CL+{0ESK5BziRt>DMNPlE3P-vWLV z{B!X4Li_~y0C+$68<0N^egype5dR$fDEMyhHzD8Pd%(AY{{!-eApdvpcfk*Ue+vE~ z_}{=k0srheei(c&+Amk5#?*o4e{L_EI-+}yRkpBebe~j|~TYeDb???G>qjzPd8LyF^9wp&9xhNf&iQwHHad z!D>3@-}UErz0jXJ=+Cw1cO>74obUYO`CT*WSK|FLYCmX$oW%d;v%2EC#_;|yv~MT1 zekYRsUl`t+Z^p^|!pmTfTQ2!eC zANvtscaZgW#b2L{_4S{vzu&s5HohiSH0_s2T;D>K@V*cFgcb@bgm^La8xty^S?>*^v_>BAAhum>9 zYlG3BYN_?}okNGbXz#$gv+MQLdbTF>)ZqMx@F9oG^p;!UIrFr#zv`1`8unrR-7k~4 z9@0M5A3by2WIn5C5*%Kdrq;(#jyGQ#Rn)i2gX`l1SRX$aQ=Izl>K*alSVp{i{dOhw zJr@o+=>a$8k0g#CF*Ra*C(0O+B!5YY^SEr1PloTuc~Of!+#*U2p3l;FB%iMc`JE*G z*64F>y*7U^kip{FV@%R4J~$|*LV-j&4I zX7ELJZ>h*uZR8iIg83$ymP~d$;+M_XFArjWp|=UVll4@*ZHG6#Muhz^Sr79!^-Dg7 z^)QboY>&l$ro-6lDU(EXr!kdS@5p`?`gx~~oabr$jhJty2KZZUisx&0btSfpl#BfH3Mb^Vg)HjOxJcsixGv;?2 z@)O6wd%>;X_UqUNChOM#;$^1L^JG8Pud;KtsYCI3vi??fAwP6H8TnOh!Szl;<{$ba z5&DuR8#~68rpBf z_jvKW1NdGOzITKB!A;;s$fqHn0B;A^g6F{wa1FQuJO>^H*MaTeey|7J0qz6u0#Adx z!M)&}U>CRt+zB4KhC9H6U?=2#kavTJ!ESIb*a~)l7r+*<1v~)`fUP0k4fccEz-Gw* zC!R$4jrL8Tyail==N)){96YlzzUVJ1A7R3pluY`69^Bm;nondraxflQ)c!p@yPdDI zW_Fd&iZPyZ(0>KB-!IFv&^Z-b!Sg6T#D~9YNo3d)f-4gxIe~%OCfCxAo)I#nJoRgEjen)6x@{ zSS_D9503>TBh@Q2MwRlZS8da!7ahl)XR6=6YE(`@?@LxkEo(#7Z>%3_B=d#j_v%MO{TpfhN5kH z62B{tEbPcEs-4snDccB3nFYq(BQ`4kuq2YkWrwH7+Nk{3U_L-nZ1FG``J?HDS)Iux zBwm&N&-WMou&3he9pwDLxizno9!;HBlX&K&p)eRf^!;znFG#)x_Nz|k1X+)m(68;7 z|EcKD1lWTl*n>)N8aN4@2(ANXfH~mgYd9Iq0oOv#hx~fxLe7J{266%9JTMnr4W@yk zucyg~z>LivA;SIlAkZbg0b`BsLx3iE9b=9>d~SR3)6z2F(l_ojB(-)cPX z!}~(Es$+cHdB~4zw=~A8BAaU323B-(>Z% z^=2RP8DDdG=N}9B&eUpVCyt(%hnd~pA;GJppdA zl)9v2>S=$JcHu_l*~Ny0i{92TG}Jh_v$cscCDWdTQG(pL|iHdQ$3m9qW1F zoG0wpnm~l_?BTH2J<~_WuDTw)_4Bzn^@-c$KY zO`zsNiQ$xO(f!oKg8M<*m##Y&pU{7kd)RNCP&dF$cVaw=KeBOtK-QxmkC6TTMn3UWER{dz zVbi07=Zn|OPwc;``KibJ#Q7ooE$V!M*|Fh&^cQv{7fJeC%5`leiL5q(wn8eveqdO% zRqoNke;cY$VZUC`R;JpUl+NmA4A{GvMb=F77F}<$P|(ARg@35G&}|}HZa9Y@$Y2!N zm_=sX57AYp2%_{(euWO_5rs7dRc|uRqj?GJ#?<^eobQ**=M{M#K0{~~i7Fzb4arl2 z%(N!tzf$@Ci04+(y(825tn{%W)}VYKGSll_5Y>m%3VU>+{R-wA`UC5qQJ#zWH%#$J zJy?eQf!!%3@zXQgHEN^yyqAj4?M6Iq81h1~;#520t0w>2SLYQ59-H1)8e2TW(|2X& zk$iJfzmN1k^p(m_A5~9{5LSc3q0buVGY9eAA)GHofYo3wco<9rYr#D5PLf}O`o_^- zD!#Dk-$*c?)mZOh@IDj#uV$=&wcuEAGq?#{2WEnIfMsAc*bA11SOfNeOTiMzbzmP@ z0ak(yV4QbLBp*H&?T5eS+C8EYCu+9h`=7!0dtCuP+Aj>8ls72i z%q1@8x!;5H)y5^97qqrXRviMwm%N%7`4*3YyD(JqL&Vp-il)<_U6kzpBlz;u-;$OnPqn;R z3V-Dy{FT5`W6@Gv%k<*G@xiGxwWlwR+S(~Hj4@%5>pTJ=n${P{~wr;nDFI+iZv zSL$bt3OwKX)S*(xn>erkk=CfX{PCgUA6)n@m-tIRME{ZZJ>!%))bPIoGba_VdQ9e$ zgRXN+rFn?=os{Ez1pbn1oO~ZyKmF)$YX14gaDPf z`*eoy4Pp81liF$^rPAYf8jjrlhifc1dfJ1GM~r(9_OczgR^jc;68uZlzic!ONjH7EW|UG z#g|BV*D1vNpIceM`I4vU` z`3X($ES5TVYuv+O>h*?wINv1kk-yEzy<6I^2H}*%IQ!jr?NluXFP{1)0)+osU+|YTg_VxlN7rfZRVaEEq_9)22$v zOzWW~ROp#`-I>x3D&GzLMfQs>dL`=Tgik2B%&3m^Y>TeTK<*>%4Bbcc((N@wAF%%6 z`(5>tF;!Eml=vIe{Wm@K4{FS(NXXe(4+!hPQQ#zSIamv3fD^$|umT(d=3m3n;0&+? zayjI&;7o8SSP5o=1z_1VoC21EC6KcqCwvmzjP_Fd9kN~|pnt8%hod#c?gkV8iG0s& z@w_}Y!CS=LO~t!B;jA{!NU<`O+~*|m3>mQ(+s(15-Rb3Jjl(o`r3yP@+DbG| z*sDRz_d)2F68g0V>)$YV7%T@{z;}+tH6z5a{nw7Tn%mlllee+F~lpO@(01kAb%SC zcgUB(&w!7I_$c^U@Grn0LcRhPVSa7i?~y_u{M>D3j&PpdnnU!Z0P`!@f5e^;`7Hbm zj@TOAOYDmj`ZJ~?@voe2v0+LO8AaNM`6(Y44$1o>EVwU5?$hPfZqGt_GoBCT$JAxE zX;i6$;8v9PQTZ{_zD#<0yP(N}@lM8gn^J&^AV z-#o9O-fs)NUqij0X5-TIYzx}MK>1+&m7FhCY|j91$MXRyU#Bk9Y?vkYzhY6pE@2n+ zi}>%z7Yybnmu+*#CJh;c%KrHru2avQF2VhXeu*$!wwZ5Z`fu2qci^wUKTpT=--drq z;_t*?zC$in+>m&|xxYX?HF+Yie#a#-^m=y-RE{G$3OKIFg}^P4-|Fee4dA6-1dA`E8RQn%HU=pwsJ{WYEMR3R0l_BW7_ht--CQ=fI1(0753m>*aO4| z?U;WX`8|L49~%1R%CeE<_q1J*I`^nchw71^ap?S|Cg0+!vk~^8Yh~u7AMtow>y)htVf3hYgTS4;Yr&-XSDrdP_-3U!S9ES~2`SMk3K#2eRR5MMU6lK65OnE1PU5HEwA@^?wT z(f`l?DuaIKr=(ffG1&%RQ5Um4TQ#H>GE50^L?0C6ahj-vyrsKMej0_yh2};3vT6z-PgK20sZt4?YKe5BziR2jGvue*qr={|)?i z@L$1?f&UKv5d1#)QSe70{vCKf_%-kwkpCY11MnN**TH`P-wA#T{2TBe!9Nc1JK#6L z_kiDq{QrgD!t+1G^Q8UcdtL(H4E{Bk=)q`Gc;E2r_-k%cH%O~-daJ;`kMde$P^;!nG6#Kgl)UO6p`NzZ1Cmpdb;_gHe zFC+H}r@++xpRd+e_aEW^Jr4hGN6S_rob3{>Zb!o2Y#9@>7Y6M-Sq@ z$k5H|dt=Cbk=DgGP<}V=gDoR}?De?Q5^~?*h>)&XI(d1_*K}G!^3{(#6scLd?ef^` zIDeTv=vZDFVrcyJOXIJbTBVb&p=IySA~ky(y_2$6Tji~2-{U{su_BN4O|HGVuQa*z zoJRgLhNisn?{K8X!*op?yMtT$#oE}RFaH`=w)E}Q zJ+HsgB0cVYvRpQB!f@3j9e;gCiwxz}RQdmOepNm%yzKi-`FKKni|k3KWBKu)9;?0c zqi~c(EO*Q8w`8fK6x_?2&cdnzIX%ni*`5}qd;QUdtX953DaCvt(@R<_B z1oeLz>>rdH_Npho*4Wb`V5cL$Cf~x3>fU1hhyObiMc0XNepL#8ONzXR{E_%-wW>Ff zGf|$NEHpE-VP%!F-#I_|{I$7uZ9MKNv5U+___-To{ln%GOX8Xtk;)K-^c#g6xy$neDSZzFJ8d@o}4#R|J#B8GMx&4 zCJXn?$p3fJ+omwTriN-rJZM~x_dSgMeF*mGN!X(gVV@3w9|b=U;>SY$k9bM&zMO}K z{a5w-Xz#yK?R5`^+N&0OO|Rp75l>$4j1MxWE={Fm{@f92l|nYWg<@bP~LDqotM zM>n-dN&DTS(1*KWU%uChd>QOFpN73T0Db~|C-^4tBjCrucY$vOKLIBFi}@Wq|20In zWtX+E6T^2yzi!0$ypHerHvFd>vH$rd_%-l%!MB2M0lx|UH!$Kq)mOoff>*(xg1-bm z0lotM0{jK|aq!3BFTtzepMclF7r+<54}!0P*T5IS4}d=fUj$zU{|x*Y_)>@;27eB| z0{$5CpMt*xe+)hcJ_i01_#F5w_-XKaA^scqS@0R~hmikIO!Vt299FrXieh{tmhav>-8#rN2^ z%KIjuFJyfT?LW7nK60Pj5S>@I9re!<|Bd{As}=ekfPQ!du`T3(AUK_;{5?-ekuP`X zCz!v#!~8W%JbtwQ&#({YJ=pKHNLI=D1>qMwV&v~Hy51^So+9>w=&P}VvbR+JXa{3;YiFM_?z)&ucAFtwevx`}?V!}P=c;Ukt`6Y7nB3$$xa$0g`Xb6NoLm=ssC?Xqa9{5M><2DBcB!dN zTIw3Y`EviVzh3>pG`aukG_9-+hOcXlQy*MzPL>{;DhV7Md45@ET>ikb4J~Mn3pp1Usq``Oj^0 z70Ab@;&~IY{GyHZs}B1=y-SMwR7}xyWQW1fi~F(q0hzdwQ`{dpT#{wwWNO;eaX);P zIWk$AlGn)(pO4N$e0wt=Hiy}Od>{uet1ELLN6-iVZIsU{G)eP^aX+iHm&<4A{nY=Q zsQs)g#yeh#`9kS~g8Cl|{zWzP81(HA(6Y9 zN=K^JHI4huA8G1XbY1w!zewiCsYBbQ&b)Hd62j9i>YvBDC4m%(6AEflX^aHPn zwu=1pz|^0s)LNtZQD5_$2TNTaU6l;Kq}Dg=!+i&z%jMeC*RTKIlApdKI|lheI*GTP z`k$WCl-`)vn?IWtRh6j6|0wDj1*|OG2mOEgAAyP=RooNCsNe_xM;KR=(ihuT+&*TF zr~WrH*O@4Y;tG<|d-&S+Nli>?HGAX#OxuJ1XHu~Fom6}xc%JHw37aUO;vM9F7ZECJ zvOJ;Qw@cQ+(OandQbJAw&MT?=n&kf-b5S9G0rt&^@h`>r=rBH7_z#n?Pb8mN57vW` zAJU=#8?NIra5?0=AXh^!0ZYLECCOIwO|=o2JQ#zz@^tQ(GLSz4>tY>WyXB_ z>VHrq{!!Hxr*kFM^g_Q{pDNpRHB$2m}?;1hAqZ#oS<+y%3 z%3nde>s(|Y@Zr)p{)gmr`X2F571a1=Zd06B6eKM=Ric19=Y@5g_nepC-YS`LKBjSp z(S!MMB>o-p*QarQ=fVGiQd8)5+)p$N1^+iP8JSYoggeRYIB%)hUX*JsNx^<@p!2Ky z$#h12aV-AFHd4i`62-M~!kPLR+?OpXYRZ&0Ci@~YnfiGK@=c3sb2a9*7t_J`~Z z)^{@h@coUjKRSoP)PwmtjPGm1_X)uj;90N@oDZ%9&w$&n;dwCe_crfKk^j@^w}`gK zWBerxsNcgb_M~b^Jgf)r+igi;7LxH8gj|u#N$Z|Qd#2I9q&>m)wgvSU;(e_W_dME{ zgY{L6^=@Omos0~u$1jN$+tB{WbND~i3H+bx68=w>82ta(0PKTF!|X(SFgd!gjTfmz zjJQ1bf0uHGoi|`>P&;6ZQ!coIzP_vZRc+DrO30`+12rt%Moy~27uU2Pc4wz{TJQa3MGkoC@ZHbHT5J z$^QY~1pgLH?w36W{t5UCa1;FJ6>t^&=LY!C9&ji8X+78tJ^?NSp9Vh%egymy_%`s* ziNB5b(T~B7TI7==KHUl4JC1lcxDPx5wt)NbzKWpz$yJklsCej8S