Example #1
0
    /// <summary>
    /// 购买物品后添加物品给玩家
    /// </summary>
    /// <param name="info"></param>
    public void AddItem(ItemInfo info)
    {
        Item item = GameDataMgr.GetInstance().GetItemInfo(info.id);

        switch (item.type)
        {
        case (int)E_Bag_Type.Item:
            items.Add(info);
            break;

        case (int)E_Bag_Type.Equip:
            equips.Add(info);
            break;

        case (int)E_Bag_Type.Gem:
            gems.Add(info);
            break;
        }
    }
Example #2
0
 void Update()
 {
     obj   = this.transform.parent.parent.gameObject;
     Oname = obj.name;
     // STARVING.value -= Time.deltaTime / 0.5f;
     // GameDataMgr.GetInstance().playerInfos[0].starving = (float)STARVING.value;
     Oname = Oname.Split('_')[1];
     id    = int.Parse(Oname);
     if (!GameDataMgr.GetInstance().playerInfos[id].alive)
     {
         GameDataMgr.GetInstance().playerInfos[id].starving = 0;
         return;
     }
     GameDataMgr.GetInstance().playerInfos[id].starving -= Time.deltaTime / 0.1f;
     if (GameDataMgr.GetInstance().playerInfos[id].starving < 0)
     {
         GameDataMgr.GetInstance().playerInfos[id].starving = 0;
     }
     STARVING.value = (float)GameDataMgr.GetInstance().playerInfos[id].starving;
 }
Example #3
0
    /// <summary>
    /// 初始化每一项的信息
    /// </summary>
    /// <param name="info"></param>
    public void InitInfo(ShopCellInfo info)
    {
        this.info = info;
        //根据售卖的道具id可以得到道具表信息
        Item item = GameDataMgr.GetInstance().GetItemInfo(info.itemInfo.id);

        Debug.Log("ahahhaha  " + info.itemInfo.id);
        //图标
        GetControl <Image>("imageIcon").sprite = ResMgr.GetInstance().Load <Sprite>("Icon/" + item.icon);
        //个数
        GetControl <Text>("txtNum").text = info.itemInfo.num.ToString();
        //名字
        GetControl <Text>("txtName").text = item.name;
        //价格图标
        GetControl <Image>("imageType").sprite = ResMgr.GetInstance().Load <Sprite>("Icon/" + (info.priceType == 1 ? "5":"6"));
        //价格
        GetControl <Text>("txtPrice").text = item.price.ToString();
        //描述信息
        GetControl <Text>("txtTips").text = info.tips;
    }
Example #4
0
 void Update()
 {
     obj   = this.transform.parent.parent.gameObject;
     Oname = obj.name;
     //THIRSTY.value -= Time.deltaTime / 0.3f;
     //GameDataMgr.GetInstance().playerInfos[0].thirsty=(float)THIRSTY.value;
     Oname = Oname.Split('_')[1];
     id    = int.Parse(Oname);
     if (!GameDataMgr.GetInstance().playerInfos[id].alive)
     {
         GameDataMgr.GetInstance().playerInfos[id].thirsty = 0;
         return;
     }
     GameDataMgr.GetInstance().playerInfos[id].thirsty -= Time.deltaTime / 0.3f;
     if (GameDataMgr.GetInstance().playerInfos[id].thirsty < 0)
     {
         GameDataMgr.GetInstance().playerInfos[id].thirsty = 0;
     }
     THIRSTY.value = (float)GameDataMgr.GetInstance().playerInfos[id].thirsty;
 }
Example #5
0
    public override void CollectObservations(VectorSensor sensor)
    {
        // 形成一个四维向量: (posX, posY, edible, drinkable)
        //sensor.AddObservation(transform.position);
        // String Oname = transform.gameObject.name;
        id = int.Parse(transform.gameObject.name.Split('_')[1]);

        float posX = (float)GameDataMgr.GetInstance().playerInfos[id].posX;
        float posY = (float)GameDataMgr.GetInstance().playerInfos[id].posY;

        sensor.AddObservation(posX);
        sensor.AddObservation(posY);
        sensor.AddObservation((float)GameDataMgr.GetInstance().playerInfos[id].health);
        sensor.AddObservation((float)GameDataMgr.GetInstance().playerInfos[id].thirsty);
        sensor.AddObservation((float)GameDataMgr.GetInstance().playerInfos[id].starving);
        int[,] ret = GameDataMgr.GetInstance().getPlayerVision(id, posX, posY);
        for (int i = 0; i < 5; i++)
        {
            for (int j = 0; j < 5; j++)
            {
                sensor.AddObservation((float)ret[i, j]);
            }
        }
    }
Example #6
0
    public override void OnActionReceived(ActionBuffers actions)
    {
        // ContinuousActions-> DiscreteActions
        // output 一个七维向量: (w,a,s,d,k,o,j)
        id = int.Parse(transform.gameObject.name.Split('_')[1]);
        int[] A = new int[7] {
            0, 0, 0, 0, 0, 0, 0
        };
        A[actions.DiscreteActions[0]] = 1;
        int moveLeft  = A[0];
        int moveRight = A[1];
        int moveUp    = A[2];
        int moveDown  = A[3];
        int drink     = A[4];
        int eat       = A[5];
        int attack    = A[6];

        // Debug.Log($"{moveLeft}, {moveRight}, {moveUp}, {moveDown}, {drink}, {eat}");


        if (!GameDataMgr.GetInstance().playerInfos[id].alive)
        {
            if (!GameDataMgr.GetInstance().playerInfos[id].dead)
            {
                GameDataMgr.GetInstance().playerInfos[id].dead = true;
                SetReward(-5f);
                // Debug.Log($"Death of {id}");
                dead = true;
                GameObject player = GameObject.Find("player_" + id.ToString());
                player.transform.localScale = new Vector3(0, 0, 0);
                double aggressivity = 0f, averageStarveOnEat = 0f, averageThirstyOnDrink = 0f, averageHealthOnAttack = 0f;
                int    live = 0;
                foreach (int id in GameDataMgr.GetInstance().playerInfos.Keys)
                {
                    if (!GameDataMgr.GetInstance().playerInfos[id].alive)
                    {
                        continue;
                    }
                    live++;
                    aggressivity          += GameDataMgr.GetInstance().playerInfos[id].aggressivity;
                    averageStarveOnEat    += GameDataMgr.GetInstance().playerInfos[id].averageStarveOnEat;
                    averageThirstyOnDrink += GameDataMgr.GetInstance().playerInfos[id].averageThirstyOnDrink;
                    averageHealthOnAttack += GameDataMgr.GetInstance().playerInfos[id].averageHealthOnAttack;
                }
                aggressivity          = aggressivity / (float)live;
                averageStarveOnEat    = averageStarveOnEat / (float)live;
                averageThirstyOnDrink = averageThirstyOnDrink / (float)live;
                averageHealthOnAttack = averageHealthOnAttack / (float)live;
                Debug.Log($"Death {id}, Agg{aggressivity}, soe{averageStarveOnEat}, tod{averageThirstyOnDrink}, hoa{averageHealthOnAttack}");
            }
        }
        else
        {
            float reward = ((float)Math.Min(GameDataMgr.GetInstance().playerInfos[id].thirsty, GameDataMgr.GetInstance().playerInfos[id].starving) - 50f) / 50f;
            SetReward(reward);
        }
        // GameDataMgr.GetInstance().deathCounter[id] += 1;
        int cnt = 0;

        foreach (int id in GameDataMgr.GetInstance().playerInfos.Keys)
        {
            if (GameDataMgr.GetInstance().playerInfos[id].alive)
            {
                cnt++;
            }
        }

        if (cnt < 1)
        {
            GameDataMgr.GetInstance().restart = true;
            // while(GameDataMgr.GetInstance().end){
            // }
            foreach (int id in GameDataMgr.GetInstance().playerInfos.Keys)
            {
                GameDataMgr.GetInstance().playerRestart(id);
                GameObject player = GameObject.Find("player_" + id.ToString());
                player.transform.localScale = new Vector3(0.5f, 0.5f, 0.5f);
            }
            EndEpisode();
        }

        float  posX = (float)GameDataMgr.GetInstance().playerInfos[id].posX;
        float  posY = (float)GameDataMgr.GetInstance().playerInfos[id].posY;
        double nx   = posX + moveDown - moveUp;
        double ny   = posY - moveLeft + moveRight;

        if (isAttackable((int)posX, (int)posY))
        {
            GameDataMgr.GetInstance().playerInfos[id].canAttackCount += 1;
        }
        if (drink == 1)
        {
            GameDataMgr.GetInstance().playerDrink(id, nx, ny);
        }
        if (eat == 1)
        {
            GameDataMgr.GetInstance().playerEat(id, nx, ny);
        }
        if (attack == 1)
        {
            GameDataMgr.GetInstance().playerAttack(id, posX, posY);
            // Debug.Log($"Attack, {id}");
        }
        GameDataMgr.GetInstance().updatePlayerPos(id, (float)nx, (float)ny);
    }
Example #7
0
    void Update()
    {
        obj   = this.gameObject;
        Oname = obj.name;

        // drink and eat
        x_position = transform.position.x;
        z_position = transform.position.z;
        //Debug.Log(x_position);

        if (Input.GetKeyUp("r"))
        {
            Oname = Oname.Split('_')[1];
            id    = int.Parse(Oname);
            if (!GameDataMgr.GetInstance().playerInfos[id].alive)
            {
                GameDataMgr.GetInstance().playerInfos[id].health   = 100;
                GameDataMgr.GetInstance().playerInfos[id].thirsty  = 100;
                GameDataMgr.GetInstance().playerInfos[id].starving = 100;
                GameDataMgr.GetInstance().playerInfos[id].alive    = true;
            }
        }


        if (Input.GetKeyUp("n"))
        {
            Oname      = Oname.Split('_')[1];
            id         = int.Parse(Oname);
            x_position = GameDataMgr.GetInstance().playerInfos[id].posX;
            z_position = GameDataMgr.GetInstance().playerInfos[id].posY;
            GameDataMgr.GetInstance().playerDrink(id, x_position, z_position);
        }

        if (Input.GetKeyUp("m"))
        {
            Oname      = Oname.Split('_')[1];
            id         = int.Parse(Oname);
            x_position = GameDataMgr.GetInstance().playerInfos[id].posX;
            z_position = GameDataMgr.GetInstance().playerInfos[id].posY;
            GameDataMgr.GetInstance().playerEat(id, x_position, z_position);
        }

        // move people
        if (Input.GetKeyUp("w"))
        {
            //setState(UP);
            //Debug.Log("move w");
            Oname      = Oname.Split('_')[1];
            id         = int.Parse(Oname);
            x_position = GameDataMgr.GetInstance().playerInfos[id].posX - 1;
            z_position = GameDataMgr.GetInstance().playerInfos[id].posY;
            // x_position = transform.position.x;
            // z_position = transform.position.z-1;


            //print(GameDataMgr.GetInstance().playerInfos[id].posX);
            GameDataMgr.GetInstance().updatePlayerPos(id, x_position, z_position);
            //print(GameDataMgr.GetInstance().playerInfos[id].posX);
        }

        else if (Input.GetKeyUp("s"))
        {
            //setState(DOWN);
            Oname = Oname.Split('_')[1];
            id    = int.Parse(Oname);

            // x_position = transform.position.x;
            // z_position = transform.position.z+1;

            x_position = GameDataMgr.GetInstance().playerInfos[id].posX + 1;
            z_position = GameDataMgr.GetInstance().playerInfos[id].posY;
            GameDataMgr.GetInstance().updatePlayerPos(id, x_position, z_position);
        }

        else if (Input.GetKeyUp("a"))
        {
            //setState(LEFT);
            Oname = Oname.Split('_')[1];
            id    = int.Parse(Oname);

            // x_position = transform.position.x-1;
            // z_position = transform.position.z;

            x_position = GameDataMgr.GetInstance().playerInfos[id].posX;
            z_position = GameDataMgr.GetInstance().playerInfos[id].posY - 1;
            GameDataMgr.GetInstance().updatePlayerPos(id, x_position, z_position);
        }
        else if (Input.GetKeyUp("d"))
        {
            //setState(RIGHT);
            Oname = Oname.Split('_')[1];
            id    = int.Parse(Oname);

            // x_position = transform.position.x+1;
            // z_position = transform.position.z;

            x_position = GameDataMgr.GetInstance().playerInfos[id].posX;
            z_position = GameDataMgr.GetInstance().playerInfos[id].posY + 1;

            GameDataMgr.GetInstance().updatePlayerPos(id, x_position, z_position);
        }

        else if (Input.GetKeyUp("b"))
        {
            can_attack = false;

            // Attack eight positions, if eight positions has people attack them
            Oname = Oname.Split('_')[1];
            id    = int.Parse(Oname);

            // People's position
            x_position = GameDataMgr.GetInstance().playerInfos[id].posX;
            z_position = GameDataMgr.GetInstance().playerInfos[id].posY;

            GameDataMgr.GetInstance().playerAttack(id, x_position, z_position);
        }


        else
        {
            ani.SetInteger("states", Att2);
        }
    }
Example #8
0
 public int hasPeople(int posX, int posY)
 {
     Debug.Log(String.Format("Attack poeple {0:D},{1:D}", posX, posY));
     Debug.Log(String.Format("Attacked poeple {0:D},{1:D}", (int)GameDataMgr.GetInstance().playerInfos[0].posX, (int)GameDataMgr.GetInstance().playerInfos[0].posY));
     foreach (int id in GameDataMgr.GetInstance().playerInfos.Keys)
     {
         if ((int)GameDataMgr.GetInstance().playerInfos[id].posX == posX && (int)GameDataMgr.GetInstance().playerInfos[id].posY == posY)
         {
             return(id);
         }
     }
     return(-1);
 }
Example #9
0
    void Start()
    {
        container = GameObject.Find("Container");
        GameObject pfb_empty         = Resources.Load("FreeDimensionForge/LowPolyEnvironmentsPack/Art/ForestEnvironmentPack/Prefabs/ForestEmpty") as GameObject;
        GameObject pfb_tree          = Resources.Load("FreeDimensionForge/LowPolyEnvironmentsPack/Art/ForestEnvironmentPack/Prefabs/ForestTreeSpruce_01") as GameObject;
        GameObject pfb_road_cross    = Resources.Load("FreeDimensionForge/LowPolyEnvironmentsPack/Art/ForestEnvironmentPack/Prefabs/ForestCrossing_01") as GameObject;
        GameObject pfb_road_straight = Resources.Load("FreeDimensionForge/LowPolyEnvironmentsPack/Art/ForestEnvironmentPack/Prefabs/ForestStraight") as GameObject;
        GameObject pfb_road_Tcross   = Resources.Load("FreeDimensionForge/LowPolyEnvironmentsPack/Art/ForestEnvironmentPack/Prefabs/ForestCrossing_02") as GameObject;
        GameObject pfb_road_curve    = Resources.Load("FreeDimensionForge/LowPolyEnvironmentsPack/Art/ForestEnvironmentPack/Prefabs/ForestCurve") as GameObject;
        GameObject pfb_water         = Resources.Load("FreeDimensionForge/LowPolyEnvironmentsPack/Art/ForestEnvironmentPack/Prefabs/ForestLake") as GameObject;
        GameObject pfb_forest        = Resources.Load("FreeDimensionForge/LowPolyEnvironmentsPack/Art/ForestEnvironmentPack/Prefabs/forest") as GameObject;
        GameObject pfb_mountain      = Resources.Load("FreeDimensionForge/LowPolyEnvironmentsPack/Art/ForestEnvironmentPack/Prefabs/mountain") as GameObject;

        GameDataMgr.GetInstance().Init();
        GameDataMgr dataMgr = GameDataMgr.GetInstance();

        dataMgr.Init();
        foreach (int id in dataMgr.playerInfos.Keys)
        {
            Player     player     = dataMgr.playerInfos[id];
            GameObject pfb_player = Resources.Load("player/Basic People") as GameObject;

            playerMap.Add(id, pfb_player);
            putObject(pfb_player, (float)player.posX, (float)player.posY, 0, 0, "player_" + id.ToString());

            // Debug.Log("player_"+id.ToString()+(float)player.posX+" "+(float)player.posY);
        }

        //putObject(pfb_tree,0,0,0,0,"tree");
        Debug.Log("Map loaded");
        // GameObject player = Resources.Load("player/Female A") as GameObject;
        // Debug.Log(player);
        // putObject(player,5,-5,0,5);

        /*
         * r1: === r2: |   r3:  +  r4: -|   r5: |-  r6: |     r7:    ---
         *                                          ---            |
         * r8: ==\    r9:  ||      r10:  ||      r11: /==      r12: water   r13: forest
         ||       ==/            \==          ||
         */
        // string[,] topography = new string[,]{
        //     {"r11","r1", "r1","r7", "r1", "r1","r8"},
        //     {"r2", "r12",  "r12", "r2", "r13",  "r13", "r2"},
        //     {"r2", " ",  "r12", "r2", "r11","r8","r2"},
        //     {"r2", "r11","r1","r3", "r4", "r5","r4"},
        //     {"r5", "r9", " ", "r2", "r10","r3", "r4"},
        //     {"r2", " ",  " ", "r2", "r12",  "r2", "r2"},
        //     {"r10","r1", "r1","r6", "r1", "r6","r9"}
        // };

        //string info = ResMgr.GetInstance().Load<TextAsset>("Map/data1").text;
        //string [] topography;
        //topography =  info.Split('\n');
        string[,] objs = new string[, ] {
        };
        string[,] map  = dataMgr.loadedMap;

        row = dataMgr.row;
        col = dataMgr.col;
        for (int i = 0; i < row; i++)
        {
            for (int j = 0; j < col; j++)
            {
                float x        = i;
                float y        = j;
                int   passType = 0;
                switch (map[i, j])
                {
                case "r":
                    if (i - 1 >= 0 && map[i - 1, j] == "r")              //上面是路
                    {
                        if (j - 1 >= 0 && map[i, j - 1] == "r")          //左边是路
                        {
                            if (j + 1 < col && map[i, j + 1] == "r")     //右边是路
                            {
                                if (i + 1 < row && map[i + 1, j] == "r") //下边是路
                                {
                                    putObject(pfb_road_cross, x, y, 0, 0);
                                }
                                else
                                {
                                    putObject(pfb_road_Tcross, x, y, 90, 0);
                                }
                            }
                            else
                            {
                                if (i + 1 < row && map[i + 1, j] == "r") //下边是路
                                {
                                    putObject(pfb_road_Tcross, x, y, 0, 0);
                                }
                                else
                                {
                                    putObject(pfb_road_curve, x, y, 90, 0);
                                }
                            }
                        }
                        else
                        {
                            if (j + 1 < col && map[i, j + 1] == "r")     //右边是路
                            {
                                if (i + 1 < row && map[i + 1, j] == "r") //下边是路
                                {
                                    putObject(pfb_road_Tcross, x, y, 180, 0);
                                }
                                else
                                {
                                    putObject(pfb_road_curve, x, y, 180, 0);
                                }
                            }
                            else
                            {
                                if (i + 1 < row && map[i + 1, j] == "r") //下边是路
                                {
                                    putObject(pfb_road_straight, x, y, 90, 0);
                                }
                                else
                                {
                                    putObject(pfb_road_straight, x, y, 90, 0);
                                }
                            }
                        }
                    }
                    else
                    {
                        if (j - 1 >= 0 && map[i, j - 1] == "r")          //左边是路
                        {
                            if (j + 1 < col && map[i, j + 1] == "r")     //右边是路
                            {
                                if (i + 1 < row && map[i + 1, j] == "r") //下边是路
                                {
                                    putObject(pfb_road_Tcross, x, y, 270, 0);
                                }
                                else
                                {
                                    putObject(pfb_road_straight, x, y, 0, 0);
                                }
                            }
                            else
                            {
                                if (i + 1 < row && map[i + 1, j] == "r") //下边是路
                                {
                                    putObject(pfb_road_curve, x, y, 0, 0);
                                }
                                else
                                {
                                    putObject(pfb_road_straight, x, y, 0, 0);
                                }
                            }
                        }
                        else
                        {
                            if (j + 1 < col && map[i, j + 1] == "r")     //右边是路
                            {
                                if (i + 1 < row && map[i + 1, j] == "r") //下边是路
                                {
                                    putObject(pfb_road_curve, x, y, 270, 0);
                                }
                                else
                                {
                                    putObject(pfb_road_straight, x, y, 0, 0);
                                }
                            }
                            else
                            {
                                if (i + 1 < row && map[i + 1, j] == "r") //下边是路
                                {
                                    putObject(pfb_road_straight, x, y, 90, 0);
                                }
                                else
                                {
                                    putObject(pfb_road_straight, x, y, 90, 0);
                                }
                            }
                        }
                    }
                    break;

                case "g": putObject(pfb_empty, x, y, 0, 0);  break;

                case "t": putObject(pfb_forest, x, y, 0, 0, "forest_" + ((int)x).ToString() + "_" + ((int)y).ToString()); passType = 2; break;

                case "w": putObject(pfb_water, x, y, 0, 0, "water_" + ((int)x).ToString() + "_" + ((int)y).ToString()); passType = 1; break;

                case "c": putObject(pfb_mountain, x, y, 0, 0, "mountain_" + ((int)x).ToString() + "_" + ((int)y).ToString()); passType = 1;   break;

                // case "r2": putObject(pfb_road_straight, x, y, 90, 0);  break;
                // case "r3": putObject(pfb_road_cross, x, y, 0, 0);  break;
                // case "r4": putObject(pfb_road_Tcross, x, y, 0, 0);  break;
                // case "r5": putObject(pfb_road_Tcross, x, y, 180, 0);  break;
                // case "r6": putObject(pfb_road_Tcross, x, y, 90, 0);  break;
                // case "r7": putObject(pfb_road_Tcross, x, y, 270, 0);  break;
                // case "r8": putObject(pfb_road_curve, x, y, 0, 0);  break;
                // case "r9": putObject(pfb_road_curve, x, y, 90, 0);  break;
                // case "r10": putObject(pfb_road_curve, x, y, 180, 0);  break;
                // case "r11": putObject(pfb_road_curve, x, y, 270, 0);  break;
                // case "r12": putObject(pfb_water,x,y,0,0); passType = 1; break;
                // case "r13": putObject(pfb_forest, x, y, 0, 0); passType = 2; break;
                default:    putObject(pfb_empty, x, y, 0, 0);  break;
                }
                dataMgr.updateMapInfo(i, j, passType);
            }
        }



        int objRow = objs.GetLength(0);
        int objCol = objs.GetLength(1);

        // Assert.AreEqual(4, objCol);
        for (int i = 0; i < objRow; i++)
        {
            try{
                GameObject pfb = Resources.Load("FreeDimensionForge/LowPolyEnvironmentsPack/Art/ForestEnvironmentPack/Prefabs/" + objs[i, 0]) as GameObject;
                putObject(pfb, float.Parse(objs[i, 1]) - 0.5f, float.Parse(objs[i, 2]) - 0.5f, int.Parse(objs[i, 3]));
            }
            catch {
                Debug.Log("ERROR: obj " + objs[i, 0] + " does not exist!\n");
            }
        }
        setBorder();
    }
Example #10
0
 public void UpdatePanelText(int money)
 {
     GetControl <Text>("textMoney").text = GameDataMgr.GetInstance().playerInfo.money.ToString();
     GetControl <Text>("textGem").text   = GameDataMgr.GetInstance().playerInfo.gem.ToString();
 }
Example #11
0
    public void Init(ItemInfo i)
    {
        //Debug.Log("the id:"+i.id);
        //Debug.Log("the icon:"+ GameDataMgr.GetInstance().GetItemInfo(i.id).icon);
        GetControl <Image>("item").sprite = ResMgr.GetInstance().Load <Sprite>("icon/" + GameDataMgr.GetInstance().GetItemInfo(i.id).icon);
        GetControl <Text>("itemNum").text = "数量:" + i.nums;
        item = GameDataMgr.GetInstance().GetItemInfo(i.id);

        EventTrigger trigger = gameObject.AddComponent <EventTrigger>();

        #region PointerEnter
        //UnityAction<BaseEventData> enter = new UnityAction<BaseEventData>(PointerEnter);
        //EventTrigger.Entry myenter = new EventTrigger.Entry();
        //myenter.eventID = EventTriggerType.PointerEnter;
        //myenter.callback.AddListener(enter);
        //trigger.triggers.Add(myenter);
        #endregion
        #region PointerExit

        EventTrigger.Entry myexit = new EventTrigger.Entry();
        myexit.eventID = EventTriggerType.PointerExit;
        myexit.callback.AddListener(PointerExit);
        trigger.triggers.Add(myexit);
        #endregion
        #region NewPointEnter
        EventTrigger.Entry newEnter = new EventTrigger.Entry();
        newEnter.eventID = EventTriggerType.PointerEnter;
        newEnter.callback.AddListener(PointerEnter);
        trigger.triggers.Add(newEnter);
        #endregion
    }
Example #12
0
 public void ChangeEquip()
 {
     //从装备拖装备
     if (nowSelItem.type == E_Item_Type.Bag)
     {
         Debug.Log("1111" + nowInItem);
         if (nowInItem != null && nowInItem.type != E_Item_Type.Bag)            //进入了格子,并且不是拖到背包内的格子
         {
             Debug.Log("2222");
             //读表
             Item info = GameDataMgr.GetInstance().GetItemInfo(nowSelItem.itemInfo.id);
             //装备交换
             //1、判断 格子类型和装备类型是否一致
             if (nowInItem.itemInfo == null)
             {
                 Debug.Log("3333" + "  " + nowSelItem.itemInfo.id);
                 //直接装备 直接从背包中移除 更新面板
                 GameDataMgr.GetInstance().playerInfo.equips.Remove(nowSelItem.itemInfo);
                 GameDataMgr.GetInstance().playerInfo.nowEquips.Add(nowSelItem.itemInfo);
                 List <ItemInfo> nowEquips = GameDataMgr.GetInstance().playerInfo.nowEquips;
                 Debug.Log("现在就看看" + "  " + nowEquips[0].id);
             }
             else//交换
             {
                 Debug.Log("4444");
                 //直接装备 直接从背包中移除 更新面板
                 GameDataMgr.GetInstance().playerInfo.nowEquips.Remove(nowInItem.itemInfo);
                 GameDataMgr.GetInstance().playerInfo.nowEquips.Add(nowSelItem.itemInfo);
                 GameDataMgr.GetInstance().playerInfo.equips.Remove(nowSelItem.itemInfo);
                 GameDataMgr.GetInstance().playerInfo.equips.Add(nowInItem.itemInfo);
             }
             //更新背包
             UIManager.GetInstance().GetPanel <BagPanel>("BagPanel").ChangeType(E_Bag_Type.Equip);
             //更新人物
             UIManager.GetInstance().GetPanel <RolePanel>("RolePanel").UpdateRolePanel();
             //保存数据
             GameDataMgr.GetInstance().SavePlayerInfo();
         }
     }
     else//从装备栏往外拖动
     {
         //当前从装备栏往外拖出去一个装备 并且没有进入任何装备
         if (nowInItem == null || nowInItem.type != E_Item_Type.Bag)
         {
             GameDataMgr.GetInstance().playerInfo.nowEquips.Remove(nowSelItem.itemInfo);
             GameDataMgr.GetInstance().playerInfo.equips.Add(nowSelItem.itemInfo);
             //更新背包
             UIManager.GetInstance().GetPanel <BagPanel>("BagPanel").ChangeType(E_Bag_Type.Equip);
             //更新人物
             UIManager.GetInstance().GetPanel <RolePanel>("RolePanel").UpdateRolePanel();
             //保存数据
             GameDataMgr.GetInstance().SavePlayerInfo();
         }
         else if (nowInItem != null && nowInItem.type == E_Item_Type.Bag)
         {
             //读表
             Item info = GameDataMgr.GetInstance().GetItemInfo(nowSelItem.itemInfo.id);
             if ((int)nowSelItem.type == info.equipType)
             {
                 //直接装备 直接从背包中移除 更新面板
                 GameDataMgr.GetInstance().playerInfo.nowEquips.Remove(nowSelItem.itemInfo);
                 GameDataMgr.GetInstance().playerInfo.nowEquips.Add(nowInItem.itemInfo);
                 GameDataMgr.GetInstance().playerInfo.equips.Remove(nowInItem.itemInfo);
                 GameDataMgr.GetInstance().playerInfo.equips.Add(nowSelItem.itemInfo);
                 //更新背包
                 UIManager.GetInstance().GetPanel <BagPanel>("BagPanel").ChangeType(E_Bag_Type.Equip);
                 //更新人物
                 UIManager.GetInstance().GetPanel <RolePanel>("RolePanel").UpdateRolePanel();
                 //保存数据
                 GameDataMgr.GetInstance().SavePlayerInfo();
             }
         }
     }
 }