Esempio n. 1
0
    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);
        }
    }
Esempio n. 2
0
 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;
     }
 }
Esempio n. 3
0
    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);
                        }
                    }
                }
            }
        }
    }