예제 #1
0
 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.");
         }
     }
 }
예제 #2
0
    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));
        }
    }
예제 #3
0
 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();
     }
 }
예제 #5
0
    //(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;
                    }
                }
            }
        }
    }