Ejemplo n.º 1
0
 public void UpdateWorld(int pos, CamMgr.Direction dir)
 {
     _cur_map_pos = pos;
     _localmgr.UpdateScene(pos, dir);
     _cmrmgr.UpdateScene();
     _kmmgr.UpdateScene(pos);
 }
Ejemplo n.º 2
0
    public void UpdateScene(int world_pos, CamMgr.Direction dir)
    {
        if (world_pos > 0)
        {
            //UpdateMineral(world_pos);
            UpdateMonster(world_pos);

            // 전투맵 업데이트
            if (dir == CamMgr.Direction.Right)
            {
                for (int i = 0; i < _local_info.Count; i++)
                {
                    switch (_local_info[i].name)
                    {
                    case "LEFT":
                        _local_info[i].name = "RESERVE_RIGHT";
                        _local_info[i].pos  = new Vector3((world_pos + 1) * Constans.LOCAL_SCENE_WIDTH, Constans.LOCAL_HEIGHT, 0f);
                        _local_info[i].go.transform.localPosition = _local_info[i].pos;
                        _local_info[i].go.GetComponent <SpriteRenderer>().sprite = _battleground_spr.sprite;
                        break;

                    case "MIDDLE":
                        _local_info[i].name = "RESERVE_LEFT";
                        break;

                    case "RIGHT":
                        _local_info[i].name = "RESERVE_MIDDLE";
                        break;
                    }
                }
                for (int i = 0; i < _local_info.Count; i++)
                {
                    switch (_local_info[i].name)
                    {
                    case "RESERVE_LEFT":
                        _local_info[i].name = "LEFT";
                        break;

                    case "RESERVE_MIDDLE":
                        _local_info[i].name = "MIDDLE";
                        break;

                    case "RESERVE_RIGHT":
                        _local_info[i].name = "RIGHT";
                        break;
                    }
                }
            }
            else // camera left
            {
                for (int i = 0; i < _local_info.Count; i++)
                {
                    switch (_local_info[i].name)
                    {
                    case "LEFT":
                        _local_info[i].name = "RESERVE_MIDDLE";
                        break;

                    case "MIDDLE":
                        _local_info[i].name = "RESERVE_RIGHT";
                        break;

                    case "RIGHT":
                        _local_info[i].name = "RESERVE_LEFT";
                        _local_info[i].pos  = new Vector3((world_pos - 1) * Constans.LOCAL_SCENE_WIDTH, Constans.LOCAL_HEIGHT, 0f);
                        _local_info[i].go.transform.localPosition = _local_info[i].pos;
                        if (world_pos == 1)
                        {
                            _local_info[i].go.GetComponent <SpriteRenderer>().sprite = _village_spr.sprite;
                        }
                        else
                        {
                            _local_info[i].go.GetComponent <SpriteRenderer>().sprite = _battleground_spr.sprite;
                        }
                        break;
                    }
                }
                for (int i = 0; i < _local_info.Count; i++)
                {
                    switch (_local_info[i].name)
                    {
                    case "RESERVE_LEFT":
                        _local_info[i].name = "LEFT";
                        break;

                    case "RESERVE_MIDDLE":
                        _local_info[i].name = "MIDDLE";
                        break;

                    case "RESERVE_RIGHT":
                        _local_info[i].name = "RIGHT";
                        break;
                    }
                }
            }
        }
        else if (world_pos < 0)
        {
            UpdateMineral(world_pos);
            // 채광맵 업데이트
            if (dir == CamMgr.Direction.Right)
            {
                for (int i = 0; i < _local_info.Count; i++)
                {
                    switch (_local_info[i].name)
                    {
                    case "LEFT":
                        _local_info[i].name = "RESERVE_RIGHT";
                        _local_info[i].pos  = new Vector3((world_pos + 1) * Constans.LOCAL_SCENE_WIDTH, Constans.LOCAL_HEIGHT, 0f);
                        _local_info[i].go.transform.localPosition = _local_info[i].pos;
                        if (world_pos == -1)
                        {
                            _local_info[i].go.GetComponent <SpriteRenderer>().sprite = _village_spr.sprite;
                        }
                        else
                        {
                            _local_info[i].go.GetComponent <SpriteRenderer>().sprite = _mine_spr.sprite;
                        }
                        break;

                    case "MIDDLE":
                        _local_info[i].name = "RESERVE_LEFT";
                        break;

                    case "RIGHT":
                        _local_info[i].name = "RESERVE_MIDDLE";
                        break;
                    }
                }
                for (int i = 0; i < _local_info.Count; i++)
                {
                    switch (_local_info[i].name)
                    {
                    case "RESERVE_LEFT":
                        _local_info[i].name = "LEFT";
                        break;

                    case "RESERVE_MIDDLE":
                        _local_info[i].name = "MIDDLE";
                        break;

                    case "RESERVE_RIGHT":
                        _local_info[i].name = "RIGHT";
                        break;
                    }
                }
            }
            else
            {
                for (int i = 0; i < _local_info.Count; i++)
                {
                    switch (_local_info[i].name)
                    {
                    case "LEFT":
                        _local_info[i].name = "RESERVE_MIDDLE";
                        break;

                    case "MIDDLE":
                        _local_info[i].name = "RESERVE_RIGHT";
                        break;

                    case "RIGHT":
                        _local_info[i].name = "RESERVE_LEFT";
                        _local_info[i].pos  = new Vector3((world_pos - 1) * Constans.LOCAL_SCENE_WIDTH, Constans.LOCAL_HEIGHT, 0f);
                        _local_info[i].go.transform.localPosition = _local_info[i].pos;
                        _local_info[i].go.GetComponent <SpriteRenderer>().sprite = _mine_spr.sprite;
                        break;
                    }
                }
                for (int i = 0; i < _local_info.Count; i++)
                {
                    switch (_local_info[i].name)
                    {
                    case "RESERVE_LEFT":
                        _local_info[i].name = "LEFT";
                        break;

                    case "RESERVE_MIDDLE":
                        _local_info[i].name = "MIDDLE";
                        break;

                    case "RESERVE_RIGHT":
                        _local_info[i].name = "RIGHT";
                        break;
                    }
                }
            }
        }
        else
        {
            // 마을맵 업데이트
            if (dir == CamMgr.Direction.Right)
            {
                _game_asset_mgr.GoldSave(); // 마을에 도착하면 골드 저장체크.
                _km_mgr.InitAsset();

                // 광산에서 마을로 온 상황
                for (int i = 0; i < _local_info.Count; i++)
                {
                    switch (_local_info[i].name)
                    {
                    case "LEFT":
                        _local_info[i].name = "RESERVE_RIGHT";
                        _local_info[i].pos  = new Vector3((world_pos + 1) * Constans.LOCAL_SCENE_WIDTH, Constans.LOCAL_HEIGHT, 0f);
                        _local_info[i].go.transform.localPosition = _local_info[i].pos;
                        _local_info[i].go.GetComponent <SpriteRenderer>().sprite = _battleground_spr.sprite;
                        break;

                    case "MIDDLE":
                        _local_info[i].name = "RESERVE_LEFT";
                        break;

                    case "RIGHT":
                        _local_info[i].name = "RESERVE_MIDDLE";
                        break;
                    }
                }
                for (int i = 0; i < _local_info.Count; i++)
                {
                    switch (_local_info[i].name)
                    {
                    case "RESERVE_LEFT":
                        _local_info[i].name = "LEFT";
                        break;

                    case "RESERVE_MIDDLE":
                        _local_info[i].name = "MIDDLE";
                        break;

                    case "RESERVE_RIGHT":
                        _local_info[i].name = "RIGHT";
                        break;
                    }
                }
            }
            else
            {
                // 배틀에서 마을로 온 상황
                for (int i = 0; i < _local_info.Count; i++)
                {
                    switch (_local_info[i].name)
                    {
                    case "LEFT":
                        _local_info[i].name = "RESERVE_MIDDLE";
                        break;

                    case "MIDDLE":
                        _local_info[i].name = "RESERVE_RIGHT";
                        break;

                    case "RIGHT":
                        _local_info[i].name = "RESERVE_LEFT";
                        _local_info[i].pos  = new Vector3((world_pos - 1) * Constans.LOCAL_SCENE_WIDTH, Constans.LOCAL_HEIGHT, 0f);
                        _local_info[i].go.transform.localPosition = _local_info[i].pos;
                        _local_info[i].go.GetComponent <SpriteRenderer>().sprite = _mine_spr.sprite;
                        break;
                    }
                }
                for (int i = 0; i < _local_info.Count; i++)
                {
                    switch (_local_info[i].name)
                    {
                    case "RESERVE_LEFT":
                        _local_info[i].name = "LEFT";
                        break;

                    case "RESERVE_MIDDLE":
                        _local_info[i].name = "MIDDLE";
                        break;

                    case "RESERVE_RIGHT":
                        _local_info[i].name = "RIGHT";
                        break;
                    }
                }
            }
        }
    }