void OnTriggerEnter(Collider collider) { if (collider.transform.tag.Equals("Player")) { PowerUp_Controler pc = (PowerUp_Controler)collider.gameObject.GetComponent("PowerUp_Controler"); if (powerNum == 1) { pc.fireMode(); } else if (powerNum == 2) { pc.waterMode(); } else if (powerNum == 3) { pc.earthMode(); } else if (powerNum == 4) { pc.airMode(); } else if (powerNum == 5) { pc.lightningMode(); } else { Debug.Log("There wss an error assigning the power up. Look in Give_Power.cs."); } } }
public void FireMyLazer() { Player_Controler plc = gameObject.GetComponent <Player_Controler>(); if (plc.getCharge() >= plc.fireCost) { plc.subtractCharge(plc.fireCost); PowerUp_Controler pc = gameObject.GetComponent <PowerUp_Controler>(); Color fireColor = ((gameObject.GetComponent <Team>().teamName == "Green") ? Color.green : Color.red); if (pc.getMode() == 1) // fire { fireColor = new Color(1.0f, 0.627f, 0.0f); networkView.RPC("FireLazer", RPCMode.All, plc.fireLocation2.position, plc.fireLocation2.rotation, new Vector3(fireColor.r, fireColor.g, fireColor.b)); // TODO remove extra charge in the player_conroler } else if (pc.getMode() == 2) // water { fireColor = Color.blue; } else if (pc.getMode() == 3) // earth { fireColor = Color.yellow; } else if (pc.getMode() == 4) // air { fireColor = Color.cyan; } networkView.RPC("FireLazer", RPCMode.All, plc.fireLocation1.position, plc.fireLocation1.rotation, new Vector3(fireColor.r, fireColor.g, fireColor.b)); } }
public void Update() { if (Input.GetMouseButtonDown(0) && gameObject.GetComponent <Player_Controler>().getCharge() != 0.0) { gameObject.GetComponent <Player_Controler>().subtractCharge(cost); PowerUp_Controler pc = (PowerUp_Controler)gameObject.GetComponent("PowerUp_Controler"); if (pc.getMode() == 1) // fire { LazerBeam.CreateLazerBeam(fireLocation.position, fireLocation.rotation, Color.red, gameObject); LazerBeam.CreateLazerBeam(fireLocation2.position, fireLocation2.rotation, Color.red, gameObject); // TODO remove extra charge in the player_conroler } else if (pc.getMode() == 2) // water { LazerBeam.CreateLazerBeam(fireLocation.position, fireLocation.rotation, Color.blue, gameObject); } else if (pc.getMode() == 3) // earth { LazerBeam.CreateLazerBeam(fireLocation.position, fireLocation.rotation, Color.gray, gameObject); } else if (pc.getMode() == 4) // air { LazerBeam.CreateLazerBeam(fireLocation.position, fireLocation.rotation, Color.cyan, gameObject); } else if (pc.getMode() == 5) // lightning { LazerBeam.CreateLazerBeam(fireLocation.position, fireLocation.rotation, Color.yellow, gameObject); } else // default { LazerBeam.CreateLazerBeam(fireLocation.position, fireLocation.rotation, Color.green, gameObject); } } }
private void OnTriggerEnter(Collider other) { if (other.transform.tag.Equals("Player")) { Player_loc pl = (Player_loc)other.gameObject.GetComponent("Player_loc"); other.gameObject.transform.position = pl.getPos(); PowerUp_Controler pc = (PowerUp_Controler)other.gameObject.GetComponent("PowerUp_Controler"); pc.noMode(); } }
//(Player_loc) void Update() { if (Input.GetMouseButtonDown(0)) { GetComponent <Player_Network_Controller>().FireMyLazer(); } dist = Vector3.Distance(gameObject.transform.position, GameObject.FindWithTag((GetComponent <Team>().teamName) + " Base").transform.position); if (dist <= 50.0f && charge < 100.0f) { if (SoundUtils.isNotPlayingClip(gameObject, powerUpSound)) { SoundUtils.playSoundAt(gameObject, powerUpSound, charge / 100.0f * powerUpSound.length, 0.8f); } PowerUp_Controler pc = (PowerUp_Controler)gameObject.GetComponent("PowerUp_Controler"); float rate = (pc.getMode() == 5) ? 2.0f : 1.0f; addCharge(33.0f * Time.deltaTime * rate); pc.reduce(); } else { SoundUtils.stopAllForClip(gameObject, powerUpSound); } if (myCam != null) { Plane[] planes = GeometryUtility.CalculateFrustumPlanes(myCam); foreach (GameObject obj in GameObject.FindGameObjectsWithTag("Player")) { if (obj != gameObject) { GUIText text = obj.GetComponentInChildren <GUIText>(); float distance = Vector3.Distance(transform.position, obj.transform.position); if (distance < 50 && GeometryUtility.TestPlanesAABB(planes, obj.collider.bounds)) { // Scale text between 15 and 5 depending on distance text.fontSize = (int)Mathf.Lerp(15, 5, distance / 50); text.transform.position = myCam.WorldToViewportPoint(obj.transform.position + new Vector3(0.0f, 1.5f, 0.0f)); text.enabled = true; } else { // text.enabled = false; } } } } }