Example #1
0
        // 카드 사용
        public override bool Spend(Vector3Int pos)
        {
            PlayerTile playerTile = (PlayerTile)FieldObjectManager.Instance.CreateTile(block);

            List <Vector3Int> checkTileList = playerTile.CheckTile;

            for (int i = 0; i < checkTileList.Count; i++)
            {
                checkTileList[i] += pos;
            }

            if (TileManager.Instance.CheckBuildableTileList(checkTileList) && GameManager.Instance.BattleSystem.CheckOverlapMonsterPath(checkTileList))
            {
                if (GameManager.Instance.BattleSystem.SpendGold(Cost) == false)
                {
                    NarrationBox.Instance.ShowNarration("골드가 부족합니다");
                    FieldObjectManager.Instance.ReleaseTile(block, playerTile);
                    return(false);
                }

                playerTile.Init(pos);
                for (int i = 0; i < checkTileList.Count; i++)
                {
                    TileManager.Instance.ChangeState(checkTileList[i], TileState.PlayerTile);
                }
                SoundManager.Instance.PlaySfx("Summon", 0.5f);
                GameManager.Instance.BattleSystem.ChangeMonsterPath();
                return(true);
            }
            NarrationBox.Instance.ShowNarration("설치할 수 없는 위치입니다");
            FieldObjectManager.Instance.ReleaseTile(block, playerTile);
            return(false);
        }
        // 타일의 타입으로 해제
        public bool ReleaseTile(BlockID blockID, PlayerTile tile)
        {
            switch (blockID)
            {
            case BlockID.PlayerTile1x1:
                PoolManager.Instance.Release <PlayerTile1x1>("Prefabs/PlayerTile1x1", (PlayerTile1x1)tile);
                return(true);

            case BlockID.PlayerTile1x4:
                PoolManager.Instance.Release <PlayerTile1x4>("Prefabs/PlayerTile1x4", (PlayerTile1x4)tile);
                return(true);

            case BlockID.PlayerTile4x1:
                PoolManager.Instance.Release <PlayerTile4x1>("Prefabs/PlayerTile4x1", (PlayerTile4x1)tile);
                return(true);

            case BlockID.PlayerTile2x2:
                PoolManager.Instance.Release <PlayerTile2x2>("Prefabs/PlayerTile2x2", (PlayerTile2x2)tile);
                return(true);

            case BlockID.PlayerTile3x3:
                PoolManager.Instance.Release <PlayerTile3x3>("Prefabs/PlayerTile3x3", (PlayerTile3x3)tile);
                return(true);

            case BlockID.PlayerTilePlus:
                PoolManager.Instance.Release <PlayerTilePlus>("Prefabs/PlayerTilePlus", (PlayerTilePlus)tile);
                return(true);

            case BlockID.PlayerTileSickle01:
                PoolManager.Instance.Release <PlayerTileSickle01>("Prefabs/PlayerTileSickle01", (PlayerTileSickle01)tile);
                return(true);

            case BlockID.PlayerTileSickle02:
                PoolManager.Instance.Release <PlayerTileSickle02>("Prefabs/PlayerTileSickle02", (PlayerTileSickle02)tile);
                return(true);

            case BlockID.PlayerTileVane01:
                PoolManager.Instance.Release <PlayerTileVane01>("Prefabs/PlayerTileVane01", (PlayerTileVane01)tile);
                return(true);

            case BlockID.PlayerTileVane02:
                PoolManager.Instance.Release <PlayerTileVane02>("Prefabs/PlayerTileVane02", (PlayerTileVane02)tile);
                return(true);

            default:
                return(false);
            }
        }
Example #3
0
        public void Init(BlockID block)
        {
            PlayerTile playerTile = (PlayerTile)FieldObjectManager.Instance.CreateTile(block);

            value          = playerTile.GetValue();
            value          = playerTile.GetValue();
            blockText.text = playerTile.GetName();

            FieldObjectManager.Instance.ReleaseTile(block, playerTile);

            this.block = block;

            coinText.text      = GameManager.Instance.CardSystem.GetUnitValue(value).ToString();
            cardFrame.sprite   = GameManager.Instance.CardSystem.GetCardFrame(value);
            blockSprite.sprite = GameManager.Instance.CardSystem.GetSprite(block);
        }