public void spawnEnemy(enemy_thief enemyPrefab) { enemy_thief new_enemy = new enemy_thief(); float rng = Random.RandomRange(0.0f, 1.0f); float progress = ((float)gridMaster.relicsaved + 1) / (float)gridMaster.relicounter; Debug.Log("rng " + rng + " vs " + progress); if ((gridMaster.relicsaved > 0) && (rng < progress)) { new_enemy = Instantiate(thiefStrongerPrefab, new Vector3(thisNode.gridPoint.x, thisNode.gridPoint.y, 0), Quaternion.identity, gridMaster.groupEnemy); } else { new_enemy = Instantiate(enemyPrefab, new Vector3(thisNode.gridPoint.x, thisNode.gridPoint.y, 0), Quaternion.identity, gridMaster.groupEnemy); } new_enemy.alreadyMoved = true; new_enemy.thisNode = thisNode; new_enemy.originNest = this; gridMaster.updateActors(); }
void readFile() { //leer archivo //string[] text = System.IO.File.ReadAllLines (@"Assets\MyFolder\MAP_FILES\map_grid_1.txt"); string textFile = mapFile[mapIndex].text; string[] text = textFile.Split("\n"[0]); //leer el tamaño del mapa string[] lines = text [0].Split(";"[0]); gridSizeX = Mathf.RoundToInt(int.Parse(lines[0])); gridSizeZ = Mathf.RoundToInt(int.Parse(lines[1])); if (lines.Length >= 4) { recursoDinero = Mathf.RoundToInt(int.Parse(lines[2])); recursoDineroInicial = recursoDinero; recursoGas = Mathf.RoundToInt(int.Parse(lines[3])); } if (lines.Length >= 5) { tutorialIndexForLater = Mathf.RoundToInt(int.Parse(lines[4])); Debug.Log(lines[4]); } else { tutorialIndexForLater = 0; } grid = new Node[gridSizeX, gridSizeZ]; gridWorldSize = new Vector2(gridSizeX * nodeDiameter, gridSizeZ * nodeDiameter); //ajustar tamaño del plano/piso this.transform.position = new Vector3((float.Parse(lines[0]) - 1) / 2, (float.Parse(lines[1]) - 1) / 2, -10); plane.transform.localScale = new Vector3(gridSizeX * nodeDiameter, gridSizeZ * nodeDiameter, 1); relics = new List <relic>(); relicounter = 0; relicsaved = 0; //leer cada linea del archivo for (int i = 1; i < text.Length; i++) { //leer linea y transformarla en un nodo segun coordenadas lines = text [i].Split(";"[0]); Vector2 gridPoint = new Vector2(int.Parse(lines[0]), int.Parse(lines[1])); grid[int.Parse(lines[0]), int.Parse(lines[1])] = new Node(gridPoint, lines[2], bool.Parse(lines[3]), this); if (lines[2].Contains("relic")) { relic newrelic = Instantiate(relic_prefab, new Vector3(gridPoint.x, gridPoint.y, 0), Quaternion.identity, groupItems); relicounter++; newrelic.relicID = relicounter; relics.Add(newrelic); } if (lines[2].Contains("worm")) { enemy_parent newWorm = Instantiate(enemy_worm_prefab, new Vector3(gridPoint.x, gridPoint.y, 0), Quaternion.identity, groupEnemy);//,this.transform } if (lines[2].Contains("shark")) { enemy_shark newshark = Instantiate(enemy_shark_prefab, new Vector3(gridPoint.x, gridPoint.y, 0), Quaternion.identity, groupEnemy); } if (lines[2].Contains("thief")) { enemy_thief newthief = Instantiate(enemy_thief_prefab, new Vector3(gridPoint.x, gridPoint.y, 0), Quaternion.identity, groupEnemy); } if (lines[2].Contains("nest")) { enemy_thief_nest newNest = Instantiate(enemy_nest_prefab, new Vector3(gridPoint.x, gridPoint.y, 0), Quaternion.identity, groupEnemy); } if (lines[2].Contains("keymaster")) { enemy_unlocker newLock = Instantiate(enemy_unlocker_prefab, new Vector3(gridPoint.x, gridPoint.y, 0), Quaternion.identity, groupEnemy); } if (lines[2].Contains("sphinxawake")) { enemy_sphinx newboss = Instantiate(enemy_sphinx_prefab, new Vector3(gridPoint.x, gridPoint.y, 0), Quaternion.identity, groupEnemy); } if (lines[2].Contains("START")) { unit_HQ newHQ = Instantiate(unit_HQ_prefab, new Vector3(gridPoint.x, gridPoint.y, 0), Quaternion.identity, groupUnit); newHQ.name = "unitHQ"; unitHQ_code = newHQ; } if (lines[2].Contains("DRILL")) { unit_parent startUnit = Instantiate(unit_drill_prefab, new Vector3(gridPoint.x, gridPoint.y, 0), Quaternion.identity, groupUnit); } if (lines[2].Contains("TANK")) { unit_parent startUnit = Instantiate(unit_tank_prefab, new Vector3(gridPoint.x, gridPoint.y, 0), Quaternion.identity, groupUnit); } if (lines[2].Contains("SCOUT")) { unit_parent startUnit = Instantiate(unit_scout_prefab, new Vector3(gridPoint.x, gridPoint.y, 0), Quaternion.identity, groupUnit); } if (lines[2].Contains("BOMB")) { unit_parent startUnit = Instantiate(unit_bomb_prefab, new Vector3(gridPoint.x, gridPoint.y, 0), Quaternion.identity, groupUnit); } } //conectar nodos for (int i = 0; i < gridSizeX; i++) { for (int j = 0; j < gridSizeZ; j++) { try{ grid [i, j].leftNode = grid [i - 1, j]; } catch {} try{ grid [i, j].rightNode = grid [i + 1, j]; } catch {} try{ grid [i, j].upNode = grid [i, j + 1]; } catch {} try{ grid [i, j].downNode = grid [i, j - 1]; } catch {} grid [i, j].drawmelikeafrenchgirl(); } } checkRelics();//in case of no relics end game gamestate = 1; //world set }