/// <summary> /// 获取单位 /// </summary> /// <param name="objType">单位类型</param> /// <param name="id">单位唯一Id</param> /// <returns>被获取单位(如果不存在返回Null</returns> public DisplayOwner GetElementById(ObjectID.ObjectType objType, int id) { switch (objType) { // TODO 基地目前从士兵列表中获取 case ObjectID.ObjectType.MyJiDi: case ObjectID.ObjectType.MySoldier: case ObjectID.ObjectType.MyTower: if (_allMyDisPlayDict.ContainsKey(id)) { return(_allMyDisPlayDict[id]); } break; case ObjectID.ObjectType.EnemyJiDi: case ObjectID.ObjectType.EnemySoldier: case ObjectID.ObjectType.EnemyTower: if (_allEnemyDisPlayDict.ContainsKey(id)) { return(_allEnemyDisPlayDict[id]); } break; } return(null); }
/// <summary> /// 初始化 /// </summary> /// <param name="gameObj"></param> /// <param name="totalHp"></param> /// <param name="currentHp"></param> /// <param name="changeValue"></param> /// <param name="hurtType"></param> /// <param name="objType"></param> public HealthChangePacker(GameObject gameObj, float totalHp, float currentHp, float changeValue, HurtType hurtType, ObjectID.ObjectType objType) { GameObj = gameObj; TotalHp = totalHp; CurrentHp = currentHp; ChangeValue = changeValue; HurtType = hurtType; ObjType = objType; }
/// <summary> /// 获取目标类型 /// </summary> /// <param name="myType"></param> /// <returns></returns> private ObjectID.ObjectType[] GetTypeArray(ObjectID.ObjectType myType) { ObjectID.ObjectType[] result = null; switch (myType) { case ObjectID.ObjectType.MyTank: case ObjectID.ObjectType.MySoldier: result = new[] { ObjectID.ObjectType.EnemyJiDi, ObjectID.ObjectType.EnemyTower }; break; case ObjectID.ObjectType.EnemyTank: case ObjectID.ObjectType.EnemySoldier: result = new[] { ObjectID.ObjectType.MyJiDi, ObjectID.ObjectType.MyTower }; break; } return(result); }
static int DoHealthChangeAction(IntPtr L) { try { ToLua.CheckArgsCount(L, 7); FightManager obj = (FightManager)ToLua.CheckObject(L, 1, typeof(FightManager)); UnityEngine.GameObject arg0 = (UnityEngine.GameObject)ToLua.CheckUnityObject(L, 2, typeof(UnityEngine.GameObject)); float arg1 = (float)LuaDLL.luaL_checknumber(L, 3); float arg2 = (float)LuaDLL.luaL_checknumber(L, 4); float arg3 = (float)LuaDLL.luaL_checknumber(L, 5); FightManager.HurtType arg4 = (FightManager.HurtType)ToLua.CheckObject(L, 6, typeof(FightManager.HurtType)); ObjectID.ObjectType arg5 = (ObjectID.ObjectType)ToLua.CheckObject(L, 7, typeof(ObjectID.ObjectType)); obj.DoHealthChangeAction(arg0, arg1, arg2, arg3, arg4, arg5); return(0); } catch (Exception e) { return(LuaDLL.toluaL_exception(L, e)); } }
///// <summary> ///// 获取排头兵位置 ///// </summary> ///// <param name="camp">阵营</param> ///// <returns>排头兵位置</returns> //public Vector3 GetFirstSoldierPos(int camp) //{ // Vector3 result = Vector3.zero; //} // ----------------------战斗抛事件相关---------------------- /// <summary> /// 伤害类型 /// </summary> /// <param name="obj">被变更单位</param> /// <param name="currentHp">当前血量</param> /// <param name="changeValue">变更血量</param> /// <param name="type">生命变更类型</param> /// <param name="totalHp">总血量</param> /// <param name="objType">单位类型</param> public void DoHealthChangeAction(GameObject obj, float totalHp, float currentHp, float changeValue, HurtType type, ObjectID.ObjectType objType) { if (healthChangeAction != null) { healthChangeAction(new HealthChangePacker(obj, totalHp, currentHp, changeValue, type, objType)); } }