// Create and position piece object public void CreateAndPositionPieceObject(GamePiece newPiece) { GamePieceObject newPieceObject = CreatePieceObject(newPiece); gamePieceObjects[newPiece] = newPieceObject; newPieceObject.SetPosition(gameMapObject); resourceCounter.UpdateAllResources(player.GetResources()); }
// Instantiate player pieces public void InstantiateStartingPieces() { List <GamePiece> pieces = player.pieces; for (int i = 0; i < pieces.Count; i++) { GamePieceObject newPieceObject = GamePieceObject.InitializeFromGamePiece(pieces[i], gameMapObject.tilemap.transform, player.playerId); newPieceObject.SetPosition(gameMapObject); gamePieceObjects[pieces[i]] = newPieceObject; } fogMapObject.PaintFogMap(); }
// Initialize from a card piece public static GamePieceObject InitializeFromCardPiece(CardPiece cardPiece, Transform parentTransform, Player player) { if (cardPiece.cardType == CardType.Unit) { GamePieceObject newUnitObject = Instantiate(GetUnitPrefab(), parentTransform); Unit newUnit = GamePiece.CreatePiece <Unit>(cardPiece, player); newUnitObject.SetPiece(newUnit); return(newUnitObject); } else if (cardPiece.cardType == CardType.Building) { GamePieceObject newBuildingObject = Instantiate(GetUnitPrefab(), parentTransform); Building newBuilding = GamePiece.CreatePiece <Building>(cardPiece, player); newBuildingObject.SetPiece(newBuilding); return(newBuildingObject); } else { return(null); } }
// Initialize from a game piece public static GamePieceObject InitializeFromGamePiece(GamePiece piece, Transform parentTransform, int playerId) { CardPiece cardPiece = piece.GetCard(); if (cardPiece.cardType == CardType.Unit) { GamePieceObject newUnitObject = Instantiate(GetUnitPrefab(), parentTransform); newUnitObject.SetPiece(piece); //piece.gamePieceObject = newUnitObject; return(newUnitObject); } else if (cardPiece.cardType == CardType.Building) { GamePieceObject newBuildingObject = Instantiate(GetUnitPrefab(), parentTransform); newBuildingObject.SetPiece(piece); //piece.gamePieceObject = newBuildingObject; return(newBuildingObject); } else { return(null); } }
// Attack piece private void AttackPiece(Vector3Int targetTileCoords) { // Get targeted piece and player object GamePiece targetPiece = gameMap.GetHexPieceFromHexCoords(Hex.TileToHexCoords(targetTileCoords)); PlayerObject playerObject = gameManagerObject.GetPlayerObject(targetPiece.GetPlayerId()); // Attack piece GamePiece attackingPiece = player.selectedPiece; attackingPiece.AttackPiece(targetPiece); // Update the targeted piece lifebar playerObject.UpdateGamePieceObjectLifebar(targetPiece); // Set attacking piece as disabled GamePieceObject gamePieceObject = gamePieceObjects[attackingPiece]; gamePieceObject.ShowPieceDisabled(); // Update maps player.UpdateMaps(gameMap); PaintPlayerMaps(); }
// Get unit prefab public static GamePieceObject GetUnitPrefab() { GamePieceObject gamePieceObject = Resources.Load <GamePieceObject>(ENV.UNIT_PREFAB_RESOURCE_PATH); return(gamePieceObject); }
// Create piece object public GamePieceObject CreatePieceObject(GamePiece piece) { GamePieceObject newPieceObject = GamePieceObject.InitializeFromGamePiece(piece, gameMapObject.tilemap.transform, player.playerId); return(newPieceObject); }
// Create piece public GamePieceObject CreatePiece(CardPiece cardPiece) { GamePieceObject newPieceObject = GamePieceObject.InitializeFromCardPiece(cardPiece, gameMapObject.tilemap.transform, player); return(newPieceObject); }