public void addPurchasedChampion(int prefabIndex) { ChampionSpawner SubSpawner = getFirstAvailableSubsituteSpawnPoint(); if (SubSpawner != null) { GameObject instanceP = SubSpawner.spawnChampion(GameManager.instance.GetChampions()[prefabIndex]); playerData.GetPlacementData().addChampionInstance( SubSpawner.gameObject.name, SubSpawner.transform.position, instanceP, prefabIndex, false); } }
public bool switchChampionsInstances(GameObject From, GameObject To) { bool foundFrom = false; bool foundTo = false; ChampionSpawner FromScript = From.GetComponent <ChampionSpawner>(); ChampionSpawner ToScript = To.GetComponent <ChampionSpawner>(); foundFrom = playerData.GetPlacementData().findBySpawnerName(From.name); if (foundFrom) { // SpawnFrom contient un champion if (!playerData.canMoveBasedOnLevel(FromScript.FightingSpawner, ToScript.FightingSpawner, ToScript.spawnPointIsActive())) { return(false); } // Le player a placé autant de champions sur le terrain qu'autorisés par son level foundTo = playerData.GetPlacementData().findBySpawnerName(To.name); if (!foundTo) { // SpawnFrom contient un champion mais pas SpawnTo FromScript.desactivateSpawnPoint(); ToScript.activateSpawnPoint(); playerData.GetPlacementData().setSpawner(From.name, To.name, To.transform.position, ToScript.FightingSpawner); } else { // SpawnFrom Et SpawnTo contiennent un champion // Check if found // From and To : Switch the SpawnNames // From and !To : Change the SpawnName // !From : Error if (From.name == To.name) { return(false); } playerData.GetPlacementData().switchSpawners(From, To); } return(true); } else { Debug.Log("SpawnFrom ne contient pas de champion"); } return(false); }
private GameObject checkNearestActiveSpawner(Vector3 clickPos) { float distanceToClosestSpawnPoint = 10f; Transform closestSpawner = null; Transform allySubsSpawnPositions = gameManagerTransform.Find("SubsSpawnPositions"); foreach (Transform AllySSP in allySubsSpawnPositions) { float distanceToclick = Vector3.Distance(AllySSP.position, clickPos); if (distanceToclick < distanceToClosestSpawnPoint) { ChampionSpawner championSpawner = AllySSP.gameObject.GetComponent <ChampionSpawner>(); if (championSpawner != null && championSpawner.spawnedChampionIsDraggable()) { distanceToClosestSpawnPoint = distanceToclick; closestSpawner = AllySSP; } } } Transform allySpawnPositions = gameManagerTransform.Find("SpawnPositions"); foreach (Transform AllySP in allySpawnPositions) { float distanceToclick = Vector3.Distance(AllySP.position, clickPos); if (distanceToclick < distanceToClosestSpawnPoint) { ChampionSpawner championSpawner = AllySP.gameObject.GetComponent <ChampionSpawner>(); if (championSpawner != null && championSpawner.spawnedChampionIsDraggable()) { distanceToClosestSpawnPoint = distanceToclick; closestSpawner = AllySP; } } } return(closestSpawner == null ? null : closestSpawner.gameObject); }