// 카드 사용 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); } }
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); }