private void SpawnPillows() { pillows = new List <Pillow>(); Transform spawnDatas = levelData.PillowSpawnDatas.GetChild(0); Transform spawnData; Pillow pillow; for (int i = 0; i < spawnDatas.childCount; i++) { spawnData = spawnDatas.GetChild(i); pillow = Instantiate(ResourceUtility.GetPrefab <Pillow>("Pillow"), spawnData.position, spawnData.rotation, transform); pillow.spawnData = spawnData; pillows.Add(pillow); } spawnDatas = levelData.PillowSpawnDatas.GetChild(1); for (int i = 0; i < spawnDatas.childCount; i++) { Random.InitState(TimeUtility.localTime + i + 4); if (Random.Range(0, 100) < 50) { spawnData = spawnDatas.GetChild(i); pillow = Instantiate(ResourceUtility.GetPrefab <Pillow>("Pillow"), spawnData.position, spawnData.rotation, transform); pillow.spawnData = spawnData; pillows.Add(pillow); } } }
private void HandleHandChange(ChangeType change, Card card) { switch (change) { case ChangeType.Incremental: Transform listTransform = cardList.transform; int i = uiCards.Count; UICard uiCard; if (i < listTransform.childCount) { uiCard = listTransform.GetChild(i).GetComponent <UICard>(); } else { uiCard = Instantiate(ResourceUtility.GetPrefab <UICard>("Card"), listTransform); } uiCards.Add(card, uiCard); UpdateCard(uiCard, card); cardList.Refresh(); break; case ChangeType.Decremental: uiCards[card].gameObject.SetActive(false); uiCards.Remove(card); cardList.Refresh(); break; } }
private void SpawnPlayers() { int numPlayers = playerInfos.Count; List <Transform> spawnDatas = new List <Transform>(); for (int i = 0; i < levelData.PlayerSpawnDatas.childCount; i++) { spawnDatas.Add(levelData.PlayerSpawnDatas.GetChild(i)); } players = new Player[numPlayers]; Player player; Transform spawnData; int r; for (int id = 0; id < numPlayers; id++) { Random.InitState(TimeUtility.localTime + id); r = Random.Range(0, spawnDatas.Count); spawnData = spawnDatas[r]; spawnDatas.RemoveAt(r); player = Instantiate(ResourceUtility.GetPrefab <Player>("Player" + id), spawnData.position, spawnData.rotation, transform); player.Initialize(playerInfos[id], spawnData); players[id] = player; } }
public CombatManager CreateCombat(string name) { if (combatIDs.Count == 0) { combatIDs.Push(numOngoingCombats); } int id = combatIDs.Pop(); CombatManager combat = Instantiate(ResourceUtility.GetPrefab <CombatManager>(name), new Vector3((id + 1) * 1000, 0, 0), Quaternion.identity); combat.ID = id; ++numOngoingCombats; if (name == "Level/FinalLevel") { emitter.SetParameter("FinalBossBattle", 1); emitter.SetParameter("DarkDimension", 0); emitter.SetParameter("Forest", 0); } else { emitter.SetParameter("NormalBattle", 1); emitter.SetParameter("DarkDimension", 0); emitter.SetParameter("Forest", 0); } return(combat); }
private void LoadPlayer(int id) { Player.CreatePlayer(id, 3, 1, 1, 1); PlayerExplorationController explorationController = Instantiate(ResourceUtility.GetPrefab <PlayerExplorationController>("PlayerE")); explorationController.Initialize(id); playerExplorationControllers[id] = explorationController; PlayerCombatController combatController = Instantiate(ResourceUtility.GetPrefab <PlayerCombatController>("PlayerCombat")); combatController.Initialize(id); playerCombatControllers[id] = combatController; }
public CombatManager CreateCombat(string name) { if (combatIDs.Count == 0) { combatIDs.Push(numOngoingCombats); } int id = combatIDs.Pop(); CombatManager combat = Instantiate(ResourceUtility.GetPrefab <CombatManager>(name), new Vector3((id + 1) * 1000, 0, 0), Quaternion.identity); combat.ID = id; ++numOngoingCombats; MusicManager.Instance.inBattle = numOngoingCombats > 0; return(combat); }
private void LoadPlayer(int id, PlayerClass playerClass) { switch (playerClass) { case PlayerClass.Knight: { Player.CreatePlayer(id, 3, 1, 1, 1); PlayerExplorationController explorationController = Instantiate(ResourceUtility.GetPrefab <PlayerExplorationController>("KnightE")); explorationController.Initialize(id); playerExplorationControllers[id] = explorationController; PlayerCombatController combatController = Instantiate(ResourceUtility.GetPrefab <PlayerCombatController>("KnightC")); combatController.Initialize(id); playerCombatControllers[id] = combatController; } break; case PlayerClass.Heavy: { Player.CreatePlayer(id, 6, 2, 1, 1); PlayerExplorationController explorationController = Instantiate(ResourceUtility.GetPrefab <PlayerExplorationController>("HeavyE")); explorationController.Initialize(id); playerExplorationControllers[id] = explorationController; PlayerCombatController combatController = Instantiate(ResourceUtility.GetPrefab <PlayerCombatController>("HeavyC")); combatController.Initialize(id); playerCombatControllers[id] = combatController; } break; case PlayerClass.Nurse: { Player.CreatePlayer(id, 2, 1, 1, 1); PlayerExplorationController explorationController = Instantiate(ResourceUtility.GetPrefab <PlayerExplorationController>("NurseE")); explorationController.Initialize(id); playerExplorationControllers[id] = explorationController; PlayerCombatController combatController = Instantiate(ResourceUtility.GetPrefab <PlayerCombatController>("NurseC")); combatController.Initialize(id); playerCombatControllers[id] = combatController; } break; } }
private void UpdateHand(List <Card> hand) { Transform listTransform = cardList.transform; uiCards.Clear(); int numCards = hand.Count; int numExistedListItems = listTransform.childCount; for (int i = 0; i < Math.Max(numExistedListItems, numCards); i++) { if (i < numCards) { Card card = hand[i]; UICard uiCard; if (i < numExistedListItems) { uiCard = listTransform.GetChild(i).GetComponent <UICard>(); } else { uiCard = Instantiate(ResourceUtility.GetPrefab <UICard>("Card"), listTransform); } uiCards.Add(card, uiCard); UpdateCard(uiCard, card); } else { listTransform.GetChild(i).gameObject.SetActive(false); } } cardList.Refresh(); }
private void SpawnEntities() { if (Player) { Destroy(Player.gameObject); } foreach (Enemy enemy in Enemies) { Destroy(enemy.gameObject); } Enemies.Clear(); List <EnemyController> enemies = new List <EnemyController>(); int enemyUID = 0; foreach (SpawnData spawnData in currentLevel.spawns) { Vector3 spawnPosition = GridManager.Instance.GetWorldPosition(spawnData.position.x, spawnData.position.y) + new Vector3(0, 1, 0); Quaternion spawnRotation = Quaternion.identity; string heading = spawnData.GetSetting("heading"); if (heading != null) { float yRot = 0; switch (heading) { case "north": yRot = 0; break; case "east": yRot = 90; break; case "west": yRot = 270; break; case "south": yRot = 180; break; } spawnRotation = Quaternion.Euler(0, yRot, 0); } switch (spawnData.SpawnType) { case SpawnData.Type.Player: Player = GridManager.Instance.Spawn(ResourceUtility.GetPrefab <player>("player_temp"), spawnPosition, spawnRotation); //Instantiate(ResourceUtility.GetPrefab<player>("player_temp"), spawnPosition, spawnRotation, GridManager.Instance.EnvironmentRoot); Player.onStatisticChange.AddListener(HandlePlayerStatisticChange); break; case SpawnData.Type.Guard: Enemy enemy = GridManager.Instance.Spawn(ResourceUtility.GetPrefab <Enemy>("GuardDummy"), spawnPosition, spawnRotation); //Instantiate(ResourceUtility.GetPrefab<GameObject>("GuardDummy"), spawnPosition, spawnRotation, GridManager.Instance.EnvironmentRoot); enemy.onStatisticChange.AddListener(delegate(Statistic statistic, float previousValue, float currentValue) { if (statistic == Statistic.Hp && currentValue <= 0) { StartCoroutine(enemy.Dead()); } }); EnemyController enemyController = enemy.GetComponent <EnemyController>(); enemyController.SetWayPoints(spawnData.GetPath()); enemyController.Mode = EnemyMode.Patrolling; enemyController.UID = enemyUID++; Enemies.Add(enemy); enemies.Add(enemyController); break; } } EnemyManager.Instance.Initialize(enemies); }
/// <summary> /// generated grid map /// map_size : the number of cube in row and column /// node_radius: the cube radius /// parameter: None /// </summary> public void GenerateMap(LevelManager.LevelData levelData) { if (!gridRoot) { gridRoot = transform.Find("GridRoot"); } if (!gridRoot) { gridRoot = new GameObject("GridRoot").transform; gridRoot.parent = transform; } // Setup tilesets Dictionary <int, TilesetElement> tElements = new Dictionary <int, TilesetElement>(); foreach (TilesetElement te in tilesetElements) { tElements.Add(te.id, te); } // Extract data from levelData if (levelData != null) { mapSize = new Vector2Int(levelData.width, Mathf.CeilToInt(levelData.tiles.Length / levelData.width)); } // new grid with size [mapSize.x,mapSize.y] grid = new Tile[mapSize.x, mapSize.y]; int numExistedTiles = gridRoot.childCount; for (int x = 0; x < mapSize.x; x++) { for (int y = 0; y < mapSize.y; y++) { int i = x + y * levelData.tiles.Length; int tileType = levelData.GetTile(x, y); TilesetElement te; tElements.TryGetValue(tileType, out te); // parse position for tile Vector3 tilePosition = GetWorldPosition(x, y); Transform tileTransform = i < numExistedTiles?gridRoot.GetChild(i) : Instantiate(tilePrefab, tilePosition, Quaternion.Euler(Vector3.right * 90), gridRoot); // initiate outline tileTransform.localScale = Vector3.one * (1 - outlinePercent); // set tile value Tile tile = tileTransform.GetComponent <Tile>(); tile.walkable = (te != null ? te.walkable : true); tile.gridPosition = new Vector2Int(x, y); // insertion grid[x, y] = tile; // Tile display if (te != null) { Tileset.TileCollection tileCollection = null; float envTileRotation; GetEnvTileType(levelData, x, y, te.tileset, out tileCollection, out envTileRotation); if (tileCollection.objects.Length == 0) { tileCollection = te.tileset.fallback; } GameObject envTilePrefab = tileCollection.GetRandom(); if (envTilePrefab == null) { envTilePrefab = te.tileset.fallback.GetRandom(); } Vector3 envTilePosition = tilePosition; envTilePosition.y = -0.55f; Spawn(envTilePrefab, envTilePosition, Quaternion.Euler(0, envTileRotation, 0)); } } } for (int i = 0; i < levelData.endingPoints.Length; i += 2) { Spawn(ResourceUtility.GetPrefab("EndingPoint"), GetWorldPosition(levelData.endingPoints[i], levelData.endingPoints[i + 1]) + new Vector3(0, TileSize * 0.9f, 0), Quaternion.identity); } //light map initialize Instantiate(ResourceUtility.GetPrefab <GameObject>("LightMap"), Vector3.zero, Quaternion.identity, EnvironmentRoot); //change when light config implemented. }
private void LoadImage(string actor) { Sprite img = ResourceUtility.GetPrefab <Sprite>("Portraits/" + actor) as Sprite; dialogueIllustration.GetComponent <Image>().overrideSprite = img; }
public void QuestionPop(Transform enemy) { var temp = Object.Instantiate(ResourceUtility.GetPrefab <GameObject>("QuestionBubble"), enemy.position, Quaternion.identity, enemy); Object.Destroy(temp, 1.5f); }
private void LoadLevel(string name) { levelData = Instantiate(ResourceUtility.GetPrefab <LevelData>(name), transform); }