Ejemplo n.º 1
0
 void Start()
 {
     _load = FindObjectOfType <PlayerReload>();
     if (isStartFade)
     {
         StartCoroutine(FadeIN());
     }
 }
Ejemplo n.º 2
0
    void normalReload()
    {
        PlayerReload playerReload = this.gameObject.GetComponent <PlayerReload>();

        fireRate             = 15f;
        playerReload.maxAmmo = 4;
        playerReload.ReloadAction(4);
        ParticleSystem infAmmoParticleSystem = this.transform.Find("InfAmmo").GetComponent <ParticleSystem>();

        infAmmoParticleSystem.enableEmission = false;
    }
Ejemplo n.º 3
0
    // Use this for initialization
    void Awake()
    {
        rb                       = GetComponent <Rigidbody2D>();
        playerHealth             = playerHealthObject.GetComponent <PlayerHealth>();
        playerReload             = playerReloadObject.GetComponent <PlayerReload>();
        playerReload.reloadSpeed = ReloadSpeed;
        animator                 = GetComponent <Animator>();
        soundManager             = GetComponentInChildren <PlayerSoundManager>();
        nextBullet               = Bullet;

        currentPatrolIndex = 0;
        currentPatrolPoint = patrolPoints[currentPatrolIndex];
    }
Ejemplo n.º 4
0
    void applyRandomPowerUp()
    {
        float   randomNum = Random.value;
        Vector3 position;

        if (randomNum <= 0.1)
        {
            // Damage all enemies power up
            GameObject[] enemies = GameObject.FindGameObjectsWithTag("Enemy");
            foreach (GameObject enemy in enemies)
            {
                HealthManager healthManager = enemy.GetComponent <HealthManager>();
                healthManager.ApplyDamage(200);
            }
        }
        else if (randomNum <= 0.4 && randomNum > 0.1)
        {
            // Infinite Ammo Power Up
            PlayerReload playerReload = GetComponent <PlayerReload>();
            playerReload.maxAmmo = 300;
            playerReload.ReloadAction(300);
            fireRate = 1000000f;
            ParticleSystem infAmmoParticleSystem = this.transform.Find("InfAmmo").GetComponent <ParticleSystem>();
            infAmmoParticleSystem.enableEmission = true;
            Invoke("normalReload", 5);
        }
        else if (randomNum <= 0.7 && randomNum > 0.4)
        {
            // Health Buff Power Up
            PlayerHealth playerHealth = this.gameObject.GetComponent <PlayerHealth>();
            playerHealth.maxHealth = 10000;

            HealthManager healthManager = GetComponentInParent <HealthManager>();
            healthManager.currentHealth = 10000;
            playerHealth.OnEnable();
            playerHealth.ModifyHealth(0);
            GameObject forceField = this.transform.Find("ForceField").gameObject;
            forceField.SetActive(true);
            Invoke("normalHealth", 5);
        }
        else
        {
            // Score Multiplier Power Up
            ScoreManager.killValue *= 2;

            InGameController inGameController = GameObject.Find("InGameController").GetComponent <InGameController>();
            inGameController.multiplier = true;
            Invoke("normalScore", 20);
        }
    }
Ejemplo n.º 5
0
    // Interpolate damage dealt so heal decreases gradually
    private IEnumerator ChangeFromPercent(float percent)
    {
        PlayerReload playerReload   = GetComponentInParent <PlayerReload>();
        float        preAmmoPercent = percent;
        float        elapsed        = 0f;

        while (foregroundImage.fillAmount < 1)
        {
            elapsed += Time.deltaTime;
            foregroundImage.fillAmount = Mathf.Lerp(preAmmoPercent, 100, elapsed / updateSpeedSeconds);
            yield return(null);
        }
        playerReload.currentAmmo = playerReload.maxAmmo;
    }
Ejemplo n.º 6
0
    // Use this for initialization
    void Awake()
    {
        rb                       = GetComponent <Rigidbody2D>();
        playerHealth             = playerHealthObject.GetComponent <PlayerHealth>();
        playerReload             = playerReloadObject.GetComponent <PlayerReload>();
        playerReload.reloadSpeed = ReloadSpeed;
        animator                 = GetComponent <Animator>();
        soundManager             = GetComponentInChildren <PlayerSoundManager>();
        nextBullet               = Bullet;

        if (SecondPlayer)
        {
            vAxisName      += "Second";
            hAxisName      += "Second";
            attackAxisName += "Second";
        }
    }
Ejemplo n.º 7
0
        public static void InvokePlayerReload(GameObject player, ref bool allow)
        {
            PlayerReload playerReload = PlayerReloadEvent;

            if (playerReload == null)
            {
                return;
            }

            PlayerReloadEvent ev = new PlayerReloadEvent
            {
                Player = Player.GetPlayer(player),
                Allow  = allow
            };

            playerReload.Invoke(ref ev);
            allow = ev.Allow;
        }
Ejemplo n.º 8
0
    // MOCK
    private void buildBoundries(Stage level)
    {
        float minX, maxX, minY, maxY, minZ, maxZ;

        minX = maxX = minY = maxY = minZ = maxZ = 0;

        //discovering the min and max boxes
        foreach (var item in level.board)
        {
            if (item.type.Contains("extra"))
            {
                continue;
            }

            if (item.position.x < minX)
            {
                minX = item.position.x;
            }
            if (item.position.x > maxX)
            {
                maxX = item.position.x;
            }

            if (item.position.y < minY)
            {
                minY = item.position.y;
            }
            if (item.position.y > maxY)
            {
                maxY = item.position.y;
            }

            if (item.position.z < minZ)
            {
                minZ = item.position.z;
            }
            if (item.position.z > maxZ)
            {
                maxZ = item.position.z;
            }
        }

        GameObject[] stageCollider = GameObject.FindGameObjectsWithTag("stage_collider");

        float maxHeight = maxY;

        //Z Boundaries

        stageCollider[0].transform.localScale = new Vector3((maxX + 1) - (minX - 1), maxHeight * 2, 1);
        stageCollider[0].transform.position   = new Vector3(0, 0, minZ - 1);

        stageCollider[1].transform.localScale = stageCollider[0].transform.localScale;
        stageCollider[1].transform.position   = new Vector3(0, 0, maxZ + 1);    //new Vector3(0,0,-(length + 1)/2);

        // X Boundaries

        stageCollider[2].transform.localScale = new Vector3(1, maxHeight * 2, (maxZ + 1) - (minZ - 1));
        stageCollider[2].transform.position   = new Vector3(maxX + 1, 0, 0);      //new Vector3((length+1)/2,0,0);

        stageCollider[3].transform.localScale = stageCollider[2].transform.localScale;
        stageCollider[3].transform.position   = new Vector3(minX - 1, 0, 0);      //new Vector3(-(length+1)/2,0,0);

        // Y Boundaries

        stageCollider[4].transform.localScale = new Vector3(maxHeight, 1, maxHeight);
        stageCollider[4].transform.position   = new Vector3(0, maxHeight * 2, 0);

        stageCollider[5].transform.localScale = stageCollider[4].transform.localScale;
        stageCollider[5].transform.position   = new Vector3(0, -1, 0);

        stageCollider[5].name = "bottom";

        PlayerReload reload = player.GetComponent <PlayerReload>();

        reload.setPlayerInitialPos(currentStage.playerPosition);
    }
Ejemplo n.º 9
0
    // Update is called once per frame
    void Update()
    {
        positionOnScreen = Camera.main.WorldToViewportPoint(transform.position);
        mouseOnScreen    = (Vector2)Camera.main.ScreenToViewportPoint(Input.mousePosition);
        angle            = AngleBetweenTwoPoints(positionOnScreen, mouseOnScreen) * -1 + 180;
        // rotate player to face mouse
        transform.rotation = Quaternion.Euler(new Vector3(0f, angle, 0));

        lDirection = new  Vector3(Mathf.Sin(Mathf.Deg2Rad * angle), 0, Mathf.Cos(Mathf.Deg2Rad * angle));

        // Getting Keyboard Inputs
        forwardDirection = Input.GetAxis("Vertical");
        sideDirection    = Input.GetAxis("Horizontal");
        // Move the player
        forwardVelocity = Vector3.right * forwardDirection * speed * Time.deltaTime * -1;
        sideVelocity    = Vector3.forward * sideDirection * speed * Time.deltaTime;

        currentVelocity = forwardVelocity + sideVelocity;
        rb.velocity     = Vector3.zero;
        rb.position     = rb.position + currentVelocity;
        rb.position     = new Vector3(rb.position.x, 0, rb.position.z);

        pos         = rb.position;
        pos.x       = Mathf.Clamp(pos.x, 1f, 39f);
        pos.z       = Mathf.Clamp(pos.z, 1f, 79f);
        rb.position = pos;

        if (Input.anyKey)
        {
            anim.SetInteger("AnimationPar", 1);
        }
        else
        {
            anim.SetInteger("AnimationPar", 0);
        }


        PlayerReload playerReload = GetComponent <PlayerReload>();

        if (Input.GetKey(KeyCode.R))
        {
            reloadingAudioSrc.Play();

            tempAmmo = playerReload.currentAmmo;
            playerReload.currentAmmo = 0;
            playerReload.ReloadAction((int)tempAmmo);
        }
        if (Input.GetMouseButtonDown(0) && Time.time >= nextTimeToFire)
        {
            timer          = 0.0f;
            nextTimeToFire = Time.time + 1f / fireRate;
            if (playerReload.currentAmmo > 0)
            {
                // play shooting sound
                shootingAudioSrc.Play();

                mouseScreenPos = Input.mousePosition;
                float distanceFromCameraToXZPlane = Camera.main.transform.position.y;

                screenPosWithZDistance = (Vector3)mouseScreenPos + (Vector3.forward * distanceFromCameraToXZPlane);
                fireToWorldPos         = Camera.main.ScreenToWorldPoint(screenPosWithZDistance);
                fireToWorldPos.y       = 0;

                BulletController p = Instantiate <BulletController>(bulletPrefab);

                GameObject firePoint = this.transform.Find("FirePoint").gameObject;
                p.transform.position = firePoint.transform.position;
                p.velocity           = (lDirection).normalized * 10.0f;

                // Uncomment when merge together
                GameObject pBullet = p.transform.Find("Projectile").gameObject;
                pBullet.transform.eulerAngles = new Vector3(pBullet.transform.eulerAngles.x, angle, pBullet.transform.eulerAngles.z);

                playerReload.ModifyAmmo(-1);
            }
        }

        PowerUpParticleSystem = GameObject.Find("PowerUpParticleSystem").GetComponent <ParticleSystem>();

        if (Input.GetKey(KeyCode.E) && (Vector3.Distance(new Vector3(20, 0, 40), this.transform.position) < powerPickUpRange))
        {
            if (PowerUpParticleSystem.enableEmission)
            {
                PowerUpParticleSystem.enableEmission = false;
                GameObject[] powerUps = GameObject.FindGameObjectsWithTag("PowerUp");
                foreach (GameObject powerUp in powerUps)
                {
                    GameObject.Destroy(powerUp);
                }
                // Do power up
                applyRandomPowerUp();
            }
        }
    }
 void Start()
 {
     _reload = transform.parent.GetComponent <PlayerReload>();
 }