public void UpdateHeroEquips() { Dictionary <long, Item> items = DataManager.GetInstance().GetGameData().Items; if (items.Count > 0) { foreach (KeyValuePair <DummyProp, long> item in hero.dummyPropDic) { long itemid = item.Value; if (items.ContainsKey(itemid)) { UpdateEquipsByDummyProp(itemid); } } } if (animationTableData == null) { animationTableData = DataManager.GetInstance().GetAnimationTableDataById(1); } }
public void InitAnimationTableData() { string[][] arrAll = GetData(TableDataName.AnimationTableData.ToString()); for (int i = 0; i < arrAll.Length; i++) { string[] arr = arrAll[i]; int id = int.Parse(arr[0]); AnimationTableData tableData = new AnimationTableData { id = id, Idle = arr[1], Walk = arr[2], Run = arr[3], Attack = arr[4], Hit = arr[5], Die = arr[6], Stunned = arr[7], Victory = arr[8] }; AnimationTableDataDic[id] = tableData; } }
public void UpdateEquipsByDummyProp(long itemid, bool isAdd = true, bool isupdate = false) { Item item = DataManager.GetInstance().GetGameData().GetItemById(itemid); ItemTableData equipdata = DataManager.GetInstance().GetItemTableDataByItemId(item.itemId); if (equipdata != null) { DummyProp dummyProp = (DummyProp)equipdata.group; if (dummyProp_Enity.ContainsKey(dummyProp)) { GameObject obj = dummyProp_Enity[dummyProp]; dummyProp_Enity.Remove(dummyProp); Destroy(obj); } if (isAdd) { GameObject equip = DataManager.GetInstance().CreateGameObjectFromAssetsBundle("", equipdata.itemPrefab); if (equip != null && dummyProp_Parent.Count > (int)dummyProp) { dummyProp_Enity[dummyProp] = equip; equip.transform.SetParent(dummyProp_Parent[(int)dummyProp], false); } if (dummyProp == DummyProp.Chest)// 如果是护甲,获取护甲的动作类,需要一同播放 { Animator animatorChest = equip.GetComponent <Animator>(); if (animatorChest != null && !animatorList.Contains(animatorChest)) { animatorList.Add(animatorChest); } } if (dummyProp == DummyProp.Back)//如果是翅膀,改成飞行状态 { //isFly = true; //OnPlayAnimation(AnimatorParameters.FlyIdle, ActionParamtersType.Bool); } } if (isupdate)//刷新装备 { //Hero hero = DataManager.GetInstance().GetGameData().GetHeroById(heroId); if (hero != null) { Item olditem = null; Hero oldmaster = null; //先把当前装备脱下 if (hero.dummyPropDic.ContainsKey(dummyProp)) { long olditemid = hero.dummyPropDic[dummyProp]; olditem = DataManager.GetInstance().GetGameData().GetItemById(olditemid); hero.dummyPropDic.Remove(dummyProp); //olditem.masterId = 0; } if (isAdd) { hero.dummyPropDic[dummyProp] = itemid; if (item.masterId > 0)//之前有穿戴者,需要卸下来 { oldmaster = DataManager.GetInstance().GetGameData().GetHeroById(item.masterId); //if(oldmaster != null) //{ // oldmaster.dummyPropDic.Remove(dummyProp); //} } item.masterId = hero.id; } if (olditem != null) { olditem.masterId = oldmaster != null ? oldmaster.id : 0; } if (oldmaster != null) { if (olditem != null) { oldmaster.dummyPropDic[dummyProp] = olditem.id; } else { oldmaster.dummyPropDic.Remove(dummyProp); } } if (hero.teamPosition >= 0)//如果再阵容需要更新战斗场景 { //GameObject.Find("FightScene").SendMessage("InitFightingHero",null); } } } if (dummyProp == DummyProp.Left || dummyProp == DummyProp.Right)//更新动作 { Item itemEquip = GetEnityEquip(); if (itemEquip != null) { ItemTableData itemTableData = DataManager.GetInstance().GetItemTableDataByItem(itemEquip); if (itemTableData != null) { animationTableData = DataManager.GetInstance().GetAnimationTableDataById(itemTableData.animationId); if (isupdate) { OnPlayAnimation(animatorAction); } } } } } }