Example #1
0
    IEnumerator SwitchWeapons()
    {
        switching = true;

        while (range != 0 || loaded == false)        //if currently shooting or charging, wait for that to end before switching
        {
            yield return(new WaitForSeconds(0.1f));
        }

        loaded = false;
        wait   = true;

        //animation of hand coming down???

        yield return(new WaitForSeconds(0.2f));


        //Debug.Log ("wtf");
        if (currWeapon != switchWeapon)
        {
            if (projectile != null)
            {
                Destroy(projectile);
            }
            currWeapon = switchWeapon;
            LoadWeapon();
        }

        wait      = false;
        loaded    = true;
        switching = false;
    }
Example #2
0
 protected virtual void InitWeapon()
 {
     weapons = new Weapons.Weapon[weaponInfos.Length];
     for (int i = 0; i < weaponInfos.Length; i++)
     {
         weapons[i] = new Weapons.Weapon(weaponInfos[i].barrelGameObjs, weaponInfos[i].shootFrequency, team, weaponInfos[i].poolName);
     }
 }
    // Use this for initialization
    void Start()
    {
        //startPosition = transform.position;
        //moveDir = transform.forward * speed;

        weapon = Weapons.weapons[color];

        moveDir = transform.forward * weapon.projectileSpeed;
        //moveDir = transform.forward * speed;
    }
Example #4
0
    // Use this for initialization
    void Start()
    {
        inventory  = gameObject.GetComponent <Weapons> ();
        currWeapon = inventory.items[0];
        toLoad     = inventory.Rock;
        LoadWeapon();
        loaded = true;

        //put powerImage on mouse position
        PowerImage.transform.position = Input.mousePosition + new Vector3(16, -16, 0);
    }
Example #5
0
 //Function to check if valid quantity for weapon
 public bool CheckQuantity(Weapons.Weapon item)
 {
     if (item.quantity > 0 || item.quantity < 0)
     {
         return(true);
     }
     else
     {
         return(false);
     }
 }
    void EquipWeapon()
    {
        // make sure our weapons have been instantiated
        if (Weapons.weapons != null)
        {
            myWeapon   = Weapons.weapons[(PhotonColor)curWeapon];
            projectile = myWeapon.projectile;

            Debug.Log("Changed weapon to: " + projectile.name + " " + myWeapon.color);
        }
    }
Example #7
0
 public void CheckWeapon(Weapons.Weapon w)
 {
     if (w == currentWeapon)
     {
         return;
     }
     else
     {
         currentWeapon = w;
         SetWeapon(w);
     }
 }
Example #8
0
    //Function for loading weapon on screen
    //Checks name of currWeapon to know which object to load
    public void LoadWeapon()
    {
        //spawn position for weapons
        Vector3 spawnPOS = Camera.main.transform.position + Camera.main.transform.forward + new Vector3(0.5f, -0.2f, 0);

        //Check is weapon quantity is above 0. If quantity is below 0, it is infinite
        if (!CheckQuantity(currWeapon))
        {
            //load rock since currWeapon does not have a valid quantity
            switchWeapon = inventory.items[0];
            currWeapon   = inventory.items[0];
            toLoad       = inventory.Rock;
        }

        //load projectile
        projectile = (GameObject)Instantiate(toLoad, spawnPOS, Camera.main.transform.rotation);
        projectile.GetComponent <Rigidbody> ().isKinematic = true;
        projectile.transform.parent = Camera.main.transform;

        rangeRate = currWeapon.chargeRate;
    }
Example #9
0
    public void SetWeapon(Weapons.Weapon w)
    {
        Destroy(weaponChild);
        weaponChild               = Instantiate(Weapons.GetWeapon(w), weapon.transform);
        weaponActiveSprite        = weaponChild.GetComponentInChildren <ActiveSprite>();
        weaponActiveSprite.parent = gameObject;
        Transform renderer = weaponChild.transform.Find("Renderer");

        bulletSpawn                   = renderer.Find("BulletSpawn");
        shellSpawn                    = renderer.Find("ShellSpawn");
        weaponFire                    = renderer.Find("Fire").gameObject;
        weaponFireActiveSprite        = weaponFire.GetComponentInChildren <ActiveSprite>();
        weaponFireActiveSprite.parent = gameObject;
        Weapon ws = weaponChild.GetComponent <Weapon>();

        speed       = ws.Speed;
        shootDelay  = ws.ShootDelay;
        spray       = ws.Spray;
        damage      = ws.Damage;
        reloadTime  = ws.ReloadTime;
        magazinSize = ws.MagazinSize;
        fireClip    = ws.Audio;
        shootCount  = 0;
    }
Example #10
0
    // Use this for initialization
    void Start()
    {
        if (Weapons.weapons == null)
        {
            Weapons.weapons = new Dictionary <PhotonColor, Weapons.Weapon>();
        }

        Weapons.Weapon newWeapon = new Weapons.Weapon();

        // only add weapon if it doesn't exist
        if (!Weapons.weapons.ContainsKey(color))
        {
            Weapons.weapons.Add(color, newWeapon);
        }

        Debug.Log("Added weapon color" + color);

        newWeapon.amplitudeHorizontal = amplitudeHorizontal;
        newWeapon.amplitudeSpeed      = amplitudeSpeed;
        newWeapon.color            = color;
        newWeapon.projectile       = basicProjectile;
        newWeapon.projectileDamage = projectileDamage;
        newWeapon.projectileSpeed  = projectileSpeed;
    }
Example #11
0
 public void CreateCollisionPoints(Weapons.Weapon weapon)
 {
 }
Example #12
0
 public void SetWeapon(Weapons.Weapon w)
 {
     photonView.RPC("SetWeaponRPC", PhotonTargets.All, (int)w);
 }
Example #13
0
    // Update is called once per frame
    void Update()
    {
        //Switching Weapons
        if (Input.GetKeyDown(KeyCode.Alpha1) && currWeapon != inventory.items[0] &&
            CheckQuantity(inventory.items[0]) && !inventory.items[0].locked)
        {
            if (switchWeapon != inventory.items[0])
            {
                switchWeapon = inventory.items[0];
                toLoad       = inventory.Rock;
                StartCoroutine("SwitchWeapons");
            }
        }
        if (Input.GetKeyDown(KeyCode.Alpha2) && currWeapon != inventory.items[1] &&
            CheckQuantity(inventory.items[1]) && !inventory.items[1].locked)
        {
            if (switchWeapon != inventory.items[1])
            {
                switchWeapon = inventory.items[1];
                toLoad       = inventory.Brick;
                StartCoroutine("SwitchWeapons");
            }
        }
        if (Input.GetKeyDown(KeyCode.Alpha3) && currWeapon != inventory.items[2] &&
            CheckQuantity(inventory.items[2]) && !inventory.items[2].locked)
        {
            if (switchWeapon != inventory.items[2])
            {
                switchWeapon = inventory.items[2];
                toLoad       = inventory.Javelin;
                StartCoroutine("SwitchWeapons");
            }
        }
        if (Input.GetKeyDown(KeyCode.Alpha4) && currWeapon != inventory.items[3] &&
            CheckQuantity(inventory.items[3]) && !inventory.items[3].locked)
        {
            if (switchWeapon != inventory.items[3])
            {
                switchWeapon = inventory.items[3];
                toLoad       = inventory.Discus;
                StartCoroutine("SwitchWeapons");
            }
        }
        if (Input.GetKeyDown(KeyCode.Alpha5) && currWeapon != inventory.items[4] &&
            CheckQuantity(inventory.items[4]) && !inventory.items[4].locked)
        {
            if (switchWeapon != inventory.items[4])
            {
                switchWeapon = inventory.items[4];
                toLoad       = inventory.Shotput;
                StartCoroutine("SwitchWeapons");
            }
        }

        //Input for rotating camera
        rotationX += Input.GetAxis("KeyboardRotate") * sensitivityX;
        rotationX  = Mathf.Clamp(rotationX, minimumX, maximumX);

        transform.localEulerAngles = new Vector3(-rotationY, rotationX, 0);

        //Take input for canceling shot
        if (Input.GetButtonDown("Fire2") && !wait && shooting == true)
        {
            StartCoroutine("CancelShot");
        }

        //Take input for how far to shoot projectile
        if (Input.GetButton("Fire1") && !wait && loaded == true)
        {
            shooting = true;

            switch (state)
            {
            case ThrowState.STATE_UP:
                range += rangeRate * Time.deltaTime;
                if (range >= maxRange)
                {
                    range = maxRange;
                    StartCoroutine("HoldCharge");
                    state = ThrowState.STATE_HOLD;
                }
                break;

            case ThrowState.STATE_HOLD:
                break;

            case ThrowState.STATE_DOWN:
                range -= (rangeRate / 2) * Time.deltaTime;
                if (range <= 0)
                {
                    range = 0;
                    state = ThrowState.STATE_UP;
                }
                break;
            }
        }

        //If shot has ended, smoothly reset power bar
        if (!shooting && range > 0)
        {
            range -= 400 * Time.deltaTime;
        }

        if (range < 0)
        {
            range = 0;
        }


        //Shoot projectile when player releases mouse button
        if (Input.GetButtonUp("Fire1") && !wait && loaded == true)
        {
            StopCoroutine("HoldCharge");
            state = ThrowState.STATE_HOLD;
            StartCoroutine("Shoot");
        }

        //change powerbar value
        powerBar.value        = range / maxRange;
        PowerImage.fillAmount = range / maxRange;

        //put powerImage on mouse position
        PowerImage.transform.position = Input.mousePosition + new Vector3(13, -13, 0);      // + new Vector3(16,-16,0);

        Camera.main.fieldOfView = Mathf.Lerp(maxFOV, minFOV, powerBar.value);


        ////Have projectile facing mouse position while not thrown
        if (loaded && projectile != null)
        {
            //Find mouse position and set lookPoint
            Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);

            Vector3 lookPoint;

            if (range > 5)
            {
                lookPoint = ray.origin + (ray.direction * range);
            }
            else
            {
                lookPoint = ray.origin + (ray.direction * 5);
            }

            Debug.DrawRay(ray.origin, ray.direction, Color.green, 1);

            projectile.transform.LookAt(lookPoint);
        }
    }
Example #14
0
        /// <summary>
        /// Takes a Room and creates everything that is not a floor tile
        /// </summary>
        /// <param name="enemyTexture">Texture of enemies in this room</param>
        /// <param name="wallTexture">Texture of walls in this room</param>
        public void initRoom(Texture2D wallTextures, Texture2D floorTextures, Graph.Graph graph)
        {
            //Init room's textures
            this.wallTextures  = wallTextures;
            this.floorTextures = floorTextures;

            //Should change this later
            int tileSize          = 64;
            int roomSize          = 10;
            int enemySpriteWidth  = 39;
            int enemySpriteHeight = 38;
            Pod pod = new Pod();

            for (int i = 0; i < roomSize; i++)
            {
                for (int j = 0; j < roomSize; j++)
                {
                    Vector2 currPos =
                        new Vector2(
                            position.X + tileSize * i,
                            position.Y + tileSize * j);
                    Vector2 midPos =
                        new Vector2(
                            currPos.X + (tileSize / 4),
                            currPos.Y + (tileSize / 4));
                    switch (tileLayout[i, j])
                    {
                    //Create walls
                    case TileType.WALL:
                        ChunkManager.Instance.Add(
                            new Wall(
                                floorTextures,
                                currPos,
                                new Rectangle(
                                    (int)currPos.X,
                                    (int)currPos.Y,
                                    tileSize,
                                    tileSize)));
                        break;

                    //Move player
                    case TileType.PLAYER:
                        Player.Instance.Position = currPos;
                        Player.Instance.ResetPlayerNewMap();
                        Player.Instance.CurrWeapon.ResetWeapon();

                        Weapons.Weapon temp = Player.Instance.CurrWeapon;
                        temp.X = currPos.X + Player.Instance.BoundingBox.Width / 2;
                        temp.Y = currPos.Y + Player.Instance.BoundingBox.Height / 2;
                        Camera.Instance.resetPosition(Player.Instance.Position);

                        //Add this position to the graph
                        graph.Add(new Graph.GraphNode(midPos));
                        spawnroom = true;
                        break;

                    //Create Melee Enemies
                    case TileType.MELEEENEMY:

                        graph.Add(new Graph.GraphNode(midPos));

                        //Create new enemy
                        MeleeEnemy newEnemy =
                            new MeleeEnemy(
                                TextureManager.Instance.GetEnemyTexture("EnemyTexture"),
                                midPos,
                                new Rectangle(
                                    (int)midPos.X,
                                    (int)midPos.Y,
                                    enemySpriteWidth,
                                    enemySpriteHeight));

                        //Add Enemy to game
                        EntityManager.Instance.Add(newEnemy);
                        ChunkManager.Instance.Add(newEnemy);
                        pod.Add(newEnemy);
                        break;

                    //Create Turret Enemies
                    case TileType.TURRET:
                        //Create new enemy
                        TurretEnemy turret =
                            new TurretEnemy(
                                TextureManager.Instance.GetEnemyTexture("EnemyTexture"),
                                midPos,
                                new Rectangle(
                                    (int)midPos.X,
                                    (int)midPos.Y,
                                    enemySpriteWidth,
                                    enemySpriteHeight));

                        //Add Enemy to game
                        EntityManager.Instance.Add(turret);
                        ChunkManager.Instance.Add(turret);
                        pod.Add(turret);
                        break;

                    case TileType.DASHENEMY:
                        graph.Add(new Graph.GraphNode(midPos));

                        //Create new enemy
                        DashEnemy dash =
                            new DashEnemy(
                                TextureManager.Instance.GetEnemyTexture("EnemyTexture"),
                                midPos,
                                new Rectangle(
                                    (int)midPos.X,
                                    (int)midPos.Y,
                                    enemySpriteWidth,
                                    enemySpriteHeight));

                        //Add Enemy to game
                        EntityManager.Instance.Add(dash);
                        ChunkManager.Instance.Add(dash);
                        pod.Add(dash);
                        break;

                    default:
                        //Add this position to the graph
                        graph.Add(new Graph.GraphNode(midPos));
                        break;
                    }
                }
            }
            PodManager.Instance.Add(pod);

            InitTextureMap();
        }
Example #15
0
 public DullOrb(Weapons.Weapon weapon) : base(weapon)
 {
     OrbSprite = "orb_sphere";
     OrbColor  = Color.SlateGray;
 }
Example #16
0
 public void CreatePointsKillEnemy(NPC enemy, Weapons.Weapon weapon)
 {
     AddPoints(enemy.PointValue * CurrentLevel.Number * 525);
 }
Example #17
0
 public AlchemicalOrb(Weapons.Weapon weapon)
 {
     Weapon = weapon;
 }
Example #18
0
 public virtual bool IsExecutable(Weapons.Weapon weapon)
 {
     return(true);
 }
Example #19
0
 // Use this for initialization
 void Start()
 {
     weapon = transform.parent.GetComponent <ProjectileMovement>().weapon;
     color  = transform.parent.GetComponent <ProjectileMovement>().color;
 }