Beispiel #1
0
        private void Recv_CreatePlayer_Ntf(Message.Dungeon.MsgSvrCli_CreatePlayer_Ntf ntf)
        {
            Unit unit = GameObject.Instantiate <Unit>(player_prefab);

            unit.seq = ntf.unit_seq;
            unit.GetComponent <PlayerController>().enabled = false;
            unit.position = new Vector2Int(ntf.position.x, ntf.position.y);
            unit.transform.SetParent(unit_root, false);

            foreach (UInt32 itemIndex in ntf.equip_items)
            {
                Item.Meta meta = Item.Manager.Instance.FindMeta(itemIndex);
                unit.GetComponent <Player>().OnEquip(meta.equip.part, meta.equip.item_sprite);
            }

            units.Add(unit.seq, unit);
        }
Beispiel #2
0
 public void AddItemMeta(Item.Meta meta)
 {
     metas.Add(meta.id, meta);
 }
Beispiel #3
0
        private void Recv_CreateDungeon_Ans(Message.Dungeon.MsgSvrCli_CreateDungeon_Ans ans)
        {
            GameManager.Instance.LobbySession.UnregisterHandler <Message.Dungeon.MsgSvrCli_CreateDungeon_Ans>(Recv_CreateDungeon_Ans);
            if (Message.ErrorCode.Success != ans.error_code)
            {
                GameManager.Instance.ui.alert.Open("MsgSvrCli_CreateDungeon_Ans", ans.error_code.ToString() + "(" + ans.error_code.ToString() + ")");
                return;
            }

            gameObject.SetActive(true);

            Camera.main.enabled = false;

            this.width  = ans.width;
            this.height = ans.height;
            this.tiles  = new List <Tile>(new Tile[width * height]);

            for (int y = 0; y < height; y++)
            {
                for (int x = 0; x < width; x++)
                {
                    if (Message.DungeonTileType.Invalid == ans.tiles[y * width + x])
                    {
                        continue;
                    }

                    GameObject obj = new GameObject();
                    obj.transform.SetParent(tile_root, false);
                    obj.transform.localPosition = new Vector3(x, y, 0.0f);
                    obj.SetActive(false);

                    Tile tile  = obj.AddComponent <Tile>();
                    int  index = y * width + x;
                    Message.DungeonTileType tileType = ans.tiles[index];
                    Vector2Int position = new Vector2Int(x, y);
                    tile.Init(index, tileType, position);
                    tiles[y * width + x] = tile;
                }
            }

            Unit player = GameObject.Instantiate <Unit>(player_prefab);

            player.seq = ans.unit_seq;
            player.GetComponent <PlayerController>().enabled = true;
            player.transform.SetParent(unit_root, false);

            player.position = new Vector2Int(ans.position.x, ans.position.y);
            units.Add(player.seq, player);

            foreach (var comrade in ans.comrades)
            {
                Unit unit = GameObject.Instantiate <Unit>(player_prefab);
                unit.seq = comrade.unit_seq;
                unit.GetComponent <PlayerController>().enabled = false;
                unit.transform.SetParent(unit_root, false);
                foreach (UInt32 itemIndex in comrade.equip_items)
                {
                    Item.Meta meta = Item.Manager.Instance.FindMeta(itemIndex);
                    unit.GetComponent <Player>().OnEquip(meta.equip.part, meta.equip.item_sprite);
                }

                unit.position = new Vector2Int(comrade.position.x, comrade.position.y);
                units.Add(unit.seq, unit);
            }

            /*
             * foreach (var monster in ans.monsters)
             * {
             *      GameObject obj = new GameObject();
             *      obj.name = "Monster_" + monster.seq;
             *      Unit unit = obj.AddComponent<Unit>();
             *      unit.seq = monster.seq;
             *      unit.position = new Vector2Int(monster.position.x, monster.position.y);
             *      //obj.transform.SetParent(GameManager.Instance.scenes.dungeon.transform);
             *      obj.AddComponent<Monster>();
             *      //GameManager.Instance.scenes.dungeon.monsters[unit.seq] = unit;
             * }
             */
        }
Beispiel #4
0
 private void InitProduct(Product product, Item.Meta meta)
 {
     product.item_image.sprite = ResourceManager.Instance.Load <Sprite>(meta.sprite_path);
     product.meta = meta;
 }