public void SetState(CubeState state, string playerId) { if (currentState == state) { return; } if (state == CubeState.Default) { thisMeshRenderer.material = gameField.cubeDefaultMaterial; } else if (state == CubeState.Signed) { thisMeshRenderer.material = gameField.cubeSignMaterials[gameField.GetSignForPlayer(playerId)]; } else if (state == CubeState.Mine) { mine = gameField.InsertMine(this, playerId); } else if (state == CubeState.MineUsed) { mine.Expolde(); } else { throw new System.NotImplementedException("[SetState] Unknown cube state " + state); } currentState = state; }
void OnTriggerEnter(Collider coll) { if (coll.gameObject.tag == "upgradecrate") { upgrade_if_better(coll.gameObject); cs.GetComponent <CrateSpawnerScript>().return_crate(coll.gameObject); } else if (coll.gameObject.tag == "upgradefrontgun") { // What do we want to do here? Destroy(coll.gameObject); } else if (coll.gameObject.tag == "upgradesidegun") { // What do we want to do here? Destroy(coll.gameObject); } else if (coll.gameObject.tag == "shell") { // Week08 Week 08 ShipStatsScript sss = GetComponent <ShipStatsScript>(); ShellScript shellScript = coll.gameObject.GetComponent <ShellScript>(); sss.take_damage(shellScript.damage); shellHolderScript.return_shell(coll.gameObject); shellHolderScript.get_Exp(); //coll.point } else if (coll.gameObject.tag == "mine") { ShipStatsScript sss = GetComponent <ShipStatsScript>(); MineScript mineScript = coll.gameObject.GetComponent <MineScript>(); sss.take_damage(mineScript.damage); } }
void CheckForInput(RaycastHit hit) { if (Input.GetKeyDown(KeyCode.F)) { if (hit.collider.CompareTag("Door")) { Animator doorAnim = hit.collider.GetComponent <DoorScript>().GetAnim(); doorAnim.SetBool("isOpen", !doorAnim.GetBool("isOpen")); } if (hit.collider.CompareTag("Mine")) { Tool currTool = GetComponentInChildren <Tool>(); MineScript mine = hit.collider.GetComponent <MineScript>(); if (interactText.activeInHierarchy) { mine.SetToolIndex(mine.GetNeededToolIndex() + 1); AudioManager.audioManager.PlaySound(currTool.GetSound(), transform.position); if (mine.GetNeededToolIndex() == mine.GetLastToolIndex()) { Manager.GetManager().RemoveMine(hit.collider.gameObject); Manager.GetManager().AddMinesCount(); //canvas.SetActive(true); } } } } }
public void setMine(GameObject obj) { float distance = Vector2.Distance(transform.position, obj.transform.position); if (distance < 1.75f && mineRoad == null) { MineScript mineScript = obj.GetComponent(typeof(MineScript)) as MineScript; mine = mineScript; GameObject newMineRoad = Instantiate(road, transform.position, Quaternion.identity); Vector2 rotationVector = new Vector2( transform.position.x - obj.transform.position.x, transform.position.y - obj.transform.position.y ); newMineRoad.transform.localScale += new Vector3(0, distance, 1); newMineRoad.transform.up = rotationVector; Vector3 roadPos = new Vector3( (obj.transform.position.x + transform.position.x) / 2, (obj.transform.position.y + transform.position.y) / 2, 15f ); newMineRoad.transform.position = roadPos; MinaralMineRoad roadScript = newMineRoad.GetComponent(typeof(MinaralMineRoad)) as MinaralMineRoad; // Set Road variables roadScript.setTopObject(obj); // top object the builded object roadScript.setBottomObject(gameObject); // bottom object platform roadScript.connetedToMine(); mineRoad = roadScript; beingDig = true; // Set mine's mineRoad variable //mine.setMineRoad(roadScript); } }
void CheckForDistance(RaycastHit hit) { if (hit.collider.CompareTag("Door")) { interactText.SetActive(true); } else if (hit.collider.CompareTag("Mine")) { Tool currTool = GetComponentInChildren <Tool>(); MineScript mine = hit.collider.GetComponent <MineScript>(); if (currTool.GetName() == mine.toolsToUse[mine.GetNeededToolIndex()]) { interactText.SetActive(true); } else if (currTool.GetName() != mine.toolsToUse[mine.GetNeededToolIndex()]) { interactText.SetActive(false); } } }
// Update is called once per frame void Update() { if (isActive) { return; } // check if it's time to spawn mines if (mineDelay <= 0) { Vector3 mineLocation; // spawn mines in area around boss for (int i = 0; i < numMines; i++) { // create new random location in boundaries mineLocation = new Vector3(Random.Range(minX, maxX) , Random.Range(minY, maxY) , 0); // spawn mine GameObject mine = Instantiate(minePrefab, mineLocation, Quaternion.identity); MineScript m = mine.GetComponent <MineScript>(); m.explosionDelay = explosionDelay; m.explosionDuration = explosionDuration; } // reset mine delay mineDelay = mineSpawnDelay; } else { // countdown until spawn mines mineDelay -= Time.deltaTime; } }
// Use this for initialization void Start() { if (PlayerPrefs.HasKey("map_num")) { mapNumber = PlayerPrefs.GetInt("map_num"); } string mapDetails = mapFiles[mapNumber].text; string[] mapLines = mapDetails.Split('\n'); string[] mapSpecs = mapLines[0].Split(' '); height = int.Parse(mapSpecs[0]); width = int.Parse(mapSpecs[1]); minerCount = int.Parse(mapSpecs[2]); excavatorCount = int.Parse(mapSpecs[3]); haulerCount = int.Parse(mapSpecs[4]); mineCount = int.Parse(mapSpecs[5]); depoCount = int.Parse(mapSpecs[6]); budget = int.Parse(mapSpecs[7]); this.GetComponent <MapControllerScript>().budget = budget; for (int m = 0; m < minerCount; m++) { Instantiate(minerPrefab, mapObject.transform); } for (int e = 0; e < excavatorCount; e++) { Instantiate(excavatorPrefab, mapObject.transform); } for (int h = 0; h < haulerCount; h++) { Instantiate(haulerPrefab, mapObject.transform); } for (int x = 0; x < width; x++) { for (int y = 0; y < height; y++) { GameObject ground = Instantiate(groundPrefab, mapObject.transform); ground.transform.position = new Vector3(x, y, 0); } } for (int mn = 0; mn <= mineCount; mn++) { string mineLine = mapLines[mn]; string[] mineDetails = mineLine.Split(' '); int index = int.Parse(mineDetails[0]); string name = "mine_" + index; string element = mineDetails[1]; Vector2 position = new Vector2(int.Parse(mineDetails[2]), int.Parse(mineDetails[3])); int resourceCount = int.Parse(mineDetails[4]); GameObject mine = Instantiate(minePrefab, mapObject.transform); mine.transform.position = position; mine.name = name; MineScript mineScript = mine.GetComponent <MineScript>(); mineScript.index = index; mineScript.element = element; mineScript.resourceCount = resourceCount; } for (int d = mineCount + 1; d <= depoCount + mineCount; d++) { string depoLine = mapLines[d]; string[] depoDetails = depoLine.Split(' '); int index = int.Parse(depoDetails[0]); string name = "depo_" + index; string element = depoDetails[1]; Vector2 position = new Vector2(int.Parse(depoDetails[2]), int.Parse(depoDetails[3])); GameObject depo = Instantiate(depoPrefab, mapObject.transform); depo.transform.position = position; depo.name = name; DepoScript depoScript = depo.GetComponent <DepoScript>(); depoScript.element = element; depoScript.index = index; } Camera.main.transform.position = new Vector3(0, 0, -1); Rect bounds = new Rect(new Vector2(-5f, -2.5f), new Vector2(width + 10f, height + 5f)); Camera.main.GetComponent <Camera2D>().cameraLimits = bounds; }