Exemplo n.º 1
0
 public void HandleBlastZoneInput(Vector2 touchPosition)
 {
     if (!tickLock && HasFirepower())
     {
         BlastZone touchedBlastZone = CheckForBlastZones(touchPosition);
         if (touchedBlastZone != null)
         {
             if (touchedBlastZone.CanGrow())
             {
                 touchedBlastZone.GrowNextTick();
                 ticksFired++;
             }
         }
         else if (zoneCount < MAX_ZONES)
         {
             Ray        ray = Camera.main.ScreenPointToRay(new Vector3(touchPosition.x, touchPosition.y, 0));
             RaycastHit hit;
             if (blastCollider.Raycast(ray, out hit, 1000.0F))
             {
                 GameObject zoneMade = GameObject.Instantiate(blastZone, hit.point, Quaternion.identity);
                 BlastZones.Add(zoneMade.GetComponent <BlastZone>());
                 zoneMade.transform.parent = blastZoneParent;
                 zoneMade.GetComponent <BlastZone>().CreateZone(Metronome.Instance.currentTime);
                 ticksFired++;
                 zoneCount++;
             }
         }
         tickUnlockTime = new NotationTime(Metronome.Instance.currentTime);
         tickUnlockTime.Add(new NotationTime(0, 0, 1));
         tickLock = true;
     }
 }
Exemplo n.º 2
0
    private void Start()
    {
        powerups = new PowerUp[9];

        powerups[0] = new BlastZone(false, PUE.BZ_hasDuration, PUE.BZ_duration, PUE.BZ_radius, PUE.BZ_power, PUE.BZ_upwardForce, PUE.BZ_playerPower, PUE.BZ_playerUpwardForce);
        powerups[1] = new Chillout(false, PUE.CO_hasDuration, PUE.CO_duration, PUE.CO_radius);
        powerups[2] = new GottaGoFast(true, PUE.GF_hasDuration, PUE.GF_duration, PUE.GF_radius, PUE.GF_aiSpeedMultiplier, PUE.GF_playerSpeedMultiplier);
        powerups[3] = new CantTouchThis(true, PUE.CTT_hasDuration, PUE.CTT_duration, PUE.CTT_radius);
        powerups[4] = new SneakySnake(true, PUE.SS_hasDuration, PUE.SS_duration, PUE.SS_radius);
        powerups[5] = new BallsOfSteel(true, PUE.BS_hasDuration, PUE.BS_duration, PUE.BS_radius, PUE.BS_material);
        powerups[6] = new SuperBounce(true, PUE.SB_hasDuration, PUE.SB_duration, PUE.SB_radius, PUE.SB_bounceMultiplier);
        powerups[7] = new CalmDown(false, PUE.CD_hasDuration, PUE.CD_duration, PUE.CD_radius, PUE.CD_aiSpeedMultiplier, PUE.CD_playerSpeedMultiplier);
        powerups[8] = new DisMine(false, PUE.DM_hasDuration, PUE.DM_duration, PUE.DM_radius, PUE.DM_disMine, PUE.DM_positionOffSet);


        disableTimer = disableTimerStart;

        itemNumber = Mathf.Clamp(itemNumber, 0, (powerups.Length));
    }
Exemplo n.º 3
0
    public BlastZone CheckForBlastZones(Vector2 touchPosition)
    {
        Ray        ray = Camera.main.ScreenPointToRay(new Vector3(touchPosition.x, touchPosition.y, 0));
        RaycastHit hit;
        BlastZone  zone      = null;
        float      zDistance = float.PositiveInfinity;

        if (blastCollider.Raycast(ray, out hit, 1000.0f))
        {
            foreach (BlastZone z in BlastZones)
            {
                float d = Vector2.Distance(hit.point.xz(), z.transform.position.xz()) - z.zoneScale / 2;
                if (d <= 0 && d < zDistance)
                {
                    zDistance = d;
                    zone      = z;
                }
            }
        }
        return(zone);
    }
 void Start()
 {
     zone = blastZoneObject.GetComponent <BlastZone>();
 }