コード例 #1
0
    // Returns if the person is trying to shoot and is allowed to per game rules
    protected bool isShooting()
    {
        if (FireGun.health() < 1)
        {
            return(false);
        }

        if (isShootingInput())
        {
            if (shooting == false && loadedRounds > 0)
            {
                GetComponent <AudioSource> ().clip = fireSound;
            }
            return(true);
        }
        else
        {
            if (shooting)
            {
                if (Weapon.bulletsThisFrame < 1.0f && bulletsThisFrame > 0)
                {
                    Weapon.bulletsThisFrame = 1.1f;
                }
            }

            return(false);
            //MuzzleFlash.GetComponent<Light>().enabled = false;
        }
    }
コード例 #2
0
ファイル: HUDManager.cs プロジェクト: anthrax3/FPS-8
 // Use this for initialization
 void Start()
 {
     firegun            = gun.GetComponent <FireGun>();
     player             = GameObject.FindGameObjectWithTag("Player");
     playerhealth       = player.GetComponent <PlayerHealth>();
     anim               = gameObject.GetComponent <Animator>();
     gun_manager_script = gun_manager.GetComponent <GunManager>();
     Cursor.visible     = false;
 }
コード例 #3
0
ファイル: HUDManager.cs プロジェクト: anthrax3/FPS-8
    // Update is called once per frame
    void FixedUpdate()
    {
        firegun           = gun.GetComponent <FireGun>();
        anim.speed        = firegun.animation_speed;
        ammo_count        = firegun.ammo_in_clip;
        ammo_display.text = ammo_count.ToString() + "/" + firegun.clip_size.ToString();
        if (int.Parse(health_value_display.text) > playerhealth.Health)
        //if (string.Compare(health_value_display.text,playerhealth.Health.ToString()) > 0)
        {
            damaged_image.color = damaged_color;
        }
        else if (int.Parse(health_value_display.text) < playerhealth.Health)
        {
            damaged_image.color = health_color;
        }
        else
        {
            damaged_image.color = Color.Lerp(damaged_image.color, Color.clear, damaged_fade_speed * Time.deltaTime);
        }
        health_value_display.text = playerhealth.Health.ToString();
        score_text.text           = player_score.ToString();

        if (playerhealth.Health <= 0)
        {
            gameover         = true;
            final_score.text = "Final Score: " + score_text.text;
            foreach (var obj in hud_aspects)
            {
                obj.SetActive(false);
            }
            gameoverscreen.SetActive(true);
            Time.timeScale = 0.0F;
            Cursor.visible = true;
        }



        //display which gun we have
        for (int i = 0; i < gun_selected.Length; i++)
        {
            if (i == gun_manager_script.current_gun)
            {
                gun_selected[i].color = selected_color;
                gun_models[i].transform.Rotate(new Vector3(0, -45, 0) * Time.deltaTime);
            }
            else
            {
                gun_selected[i].color = not_selected_color;
            }
        }
    }
コード例 #4
0
ファイル: HUDManager.cs プロジェクト: gotitmemorize/FPS
    // Update is called once per frame
    void FixedUpdate()
    {
        firegun = gun.GetComponent<FireGun>();
        anim.speed = firegun.animation_speed;
        ammo_count = firegun.ammo_in_clip;
        ammo_display.text = ammo_count.ToString() + "/" + firegun.clip_size.ToString();
        if (int.Parse(health_value_display.text) > playerhealth.Health)
        //if (string.Compare(health_value_display.text,playerhealth.Health.ToString()) > 0)
        {
            damaged_image.color = damaged_color;
        }
        else if (int.Parse(health_value_display.text) < playerhealth.Health)
        {
            damaged_image.color = health_color;
        }
        else
        {

            damaged_image.color = Color.Lerp(damaged_image.color, Color.clear, damaged_fade_speed * Time.deltaTime);
        }
        health_value_display.text = playerhealth.Health.ToString();
        score_text.text = player_score.ToString();

        if (playerhealth.Health <= 0)
        {
            gameover = true;
            final_score.text = "Final Score: " + score_text.text;
            foreach (var obj in hud_aspects)
            {
                obj.SetActive(false);
            }
            gameoverscreen.SetActive(true);
            Time.timeScale = 0.0F;
            Cursor.visible = true;
        }

        //display which gun we have
        for (int i = 0; i < gun_selected.Length; i++)
        {
            if (i == gun_manager_script.current_gun)
            {

                gun_selected[i].color = selected_color;
                gun_models[i].transform.Rotate(new Vector3(0, -45, 0) * Time.deltaTime);
            }
            else
            {
                gun_selected[i].color = not_selected_color;
            }
        }
    }
コード例 #5
0
 private void Start()
 {
     fireGun = gameObject.GetComponent <FireGun>();
 }
コード例 #6
0
    //-----------------------------------------------------
    // Setting up all AI behaviour components
    //
    // Move towards player, fire gun, repeat
    //-----------------------------------------------------
    void Start()
    {
        //Set health
        SetHealth(m_healthMax);

        //Set up varibles
        m_sequenceTop = gameObject.AddComponent <BehaviourSequence>();

        m_selectorActions = gameObject.AddComponent <BehaviourSelector>();

        //m_sequenceLaser = gameObject.AddComponent<BehaviourSequence>();
        m_sequenceGun  = gameObject.AddComponent <BehaviourSequence>();
        m_sequenceMove = gameObject.AddComponent <BehaviourSequence>();

        //m_actionGetDisLaser = gameObject.AddComponent<IsTargetCloseEnough>();
        //m_actionFireLaser = gameObject.AddComponent<FireLaserbeam>();
        //m_actionLaserCooldown = gameObject.AddComponent<CoolDown>();

        m_selectorFiringGun = gameObject.AddComponent <BehaviourSelector>();

        m_actionGetDisGun      = gameObject.AddComponent <IsTargetCloseEnough>();
        m_actionInfrontOfLedge = gameObject.AddComponent <InfrontOfLedge>();
        m_actionStopMovement   = gameObject.AddComponent <StopMovement>();

        m_actionFireGun     = gameObject.AddComponent <FireGun>();
        m_actionGunCooldown = gameObject.AddComponent <CoolDown>();

        m_actionGetDisMovement = gameObject.AddComponent <IsTargetCloseEnough>();
        m_actionMovetowards    = gameObject.AddComponent <MoveTowardsTarget>();

        //Set up get target
        if (GameObject.FindWithTag("GameController").GetComponent <GameManager>().m_singlePlayer)
        {
            m_actionGetTarget = gameObject.AddComponent <GetTargetSinglePlayer>();
        }
        else
        {
            switch (m_difficulty)
            {
            case Difficulty.Easy:
            {
                m_actionGetTarget = gameObject.AddComponent <GetTargetEasy>();
                break;
            }

            case Difficulty.Medium:
            {
                m_actionGetTarget = gameObject.AddComponent <GetTargetMedium>();
                break;
            }

            case Difficulty.Hard:
            {
                m_actionGetTarget = gameObject.AddComponent <GetTargetHard>();
                break;
            }
            }
        }

        //Gun
        m_actionGetDisGun.m_targetDistance = m_gunFireDistance;
        m_actionFireGun.m_numberOfBullets  = m_gunNumberOfShots;
        m_actionFireGun.m_timeBetweenShots = m_gunTimeBetweenShots;
        m_actionFireGun.m_bulletSpeed      = m_gunBulletSpeed;
        m_actionFireGun.m_bulletSpawnPos   = m_bulletSpawnPos;
        m_actionGunCooldown.m_coolDown     = m_gunCooldown;

        m_actionFireGun.m_bullet = m_bulletPrefab;

        //Laser
        //m_actionGetDisLaser.m_targetDistance = m_laserFireDistance;
        //m_actionFireLaser.m_chargeRate = m_laserChargeTime;
        //m_actionLaserCooldown.m_coolDown = m_laserCooldown;

        //m_actionFireLaser.m_laserbeam = m_laserPrefab;

        //Movement
        m_actionGetDisMovement.m_targetDistance = m_moveTowardsRange;

        //Set up branches
        m_sequenceTop.m_behaviourBranches.Add(m_actionGetTarget as BehaviourBase);
        m_sequenceTop.m_behaviourBranches.Add(m_selectorActions);

        //m_selectorActions.m_behaviourBranches.Add(m_sequenceLaser);
        m_selectorActions.m_behaviourBranches.Add(m_sequenceGun);
        m_selectorActions.m_behaviourBranches.Add(m_sequenceMove);

        //m_sequenceLaser.m_behaviourBranches.Add(m_actionGetDisLaser);
        //m_sequenceLaser.m_behaviourBranches.Add(m_actionFireLaser);
        //m_sequenceLaser.m_behaviourBranches.Add(m_actionLaserCooldown);

        m_selectorFiringGun.m_behaviourBranches.Add(m_actionGetDisGun);
        m_selectorFiringGun.m_behaviourBranches.Add(m_actionInfrontOfLedge);

        m_sequenceGun.m_behaviourBranches.Add(m_selectorFiringGun);
        m_sequenceGun.m_behaviourBranches.Add(m_actionStopMovement);
        m_sequenceGun.m_behaviourBranches.Add(m_actionFireGun);
        m_sequenceGun.m_behaviourBranches.Add(m_actionGunCooldown);

        m_sequenceMove.m_behaviourBranches.Add(m_actionGetDisMovement);
        m_sequenceMove.m_behaviourBranches.Add(m_actionMovetowards);

        m_initalBehaviour = m_sequenceTop;
    }
コード例 #7
0
    // Checks for any player inputs and responds accordingly
    void CheckInputs()
    {
        switch (selectedWeapon)
        {
        case 1:
            fireGun = FirePos;
            break;

        case 2:
            fireGun = FireNeg;
            break;

        case 3:
            fireGun = FireMult;
            break;

        case 4:
            fireGun = FireDiv;
            break;

        case 5:
            fireGun = FireFac;
            break;

        default:
            Debug.LogError("Invalid weapon selection");
            break;
        }

        if (Input.GetButton("Fire1"))
        {
            fireGun();
        }
        if (Input.GetButton("Weapon1"))
        {
            selectedWeapon = 1;
        }
        if (Input.GetButton("Weapon2"))
        {
            selectedWeapon = 2;
        }
        if (Input.GetButton("Weapon3"))
        {
            selectedWeapon = 3;
        }
        if (Input.GetButton("Weapon4"))
        {
            selectedWeapon = 4;
        }
        if (Input.GetButton("Weapon5"))
        {
            selectedWeapon = 5;
        }
        if (Input.GetAxis("WeaponSwap") > 0 && Time.timeSinceLevelLoad - lastWeaponSwap > weaponSwapDelay &&
            selectedWeapon < 5)
        {
            selectedWeapon++;
            lastWeaponSwap = Time.timeSinceLevelLoad;
        }
        if (Input.GetAxis("WeaponSwap") < 0 && Time.timeSinceLevelLoad - lastWeaponSwap > weaponSwapDelay &&
            selectedWeapon > 1)
        {
            selectedWeapon--;
            lastWeaponSwap = Time.timeSinceLevelLoad;
        }
        gui.GetComponent <oldWeaponMgr>().ChangeWeapon(selectedWeapon);
        selectedWeapon = Mathf.Clamp(selectedWeapon, 1, 5);
    }
コード例 #8
0
    //-----------------------------------------------------
    // Setting up all AI behaviour components
    //
    // Fire left claw, fire right and laser at same time
    //-----------------------------------------------------
    void Start()
    {
        //Set health
        SetHealth(m_healthMax);

        m_sequenceTop = gameObject.AddComponent <BehaviourSequence>();

        m_firingParallel = gameObject.AddComponent <BehaviourParallel>();

        m_sequenceLeftGun  = gameObject.AddComponent <BehaviourSequence>();
        m_sequenceRightGun = gameObject.AddComponent <BehaviourSequence>();
        m_sequenceLaser    = gameObject.AddComponent <BehaviourSequence>();

        m_actionGetTarget = gameObject.AddComponent <BehaviourBase>();

        //LeftClaw
        m_actionFireLeftGun = gameObject.AddComponent <FireGun>();

        //RightClaw
        m_actionFireRightGun = gameObject.AddComponent <FireGun>();

        //Both Claws
        m_actionGetDisGun   = gameObject.AddComponent <IsTargetCloseEnough>();
        m_actionGunCooldown = gameObject.AddComponent <CoolDown>();

        //Laser
        m_actionGetDisLaser   = gameObject.AddComponent <IsTargetCloseEnough>();
        m_actionFireLaser     = gameObject.AddComponent <FireLaserbeam>();
        m_actionLaserCooldown = gameObject.AddComponent <CoolDown>();

        //Set up get target
        if (GameObject.FindWithTag("GameController").GetComponent <GameManager>().m_singlePlayer)
        {
            m_actionGetTarget = gameObject.AddComponent <GetTargetSinglePlayer>();
        }
        else
        {
            switch (m_difficulty)
            {
            case Difficulty.Easy:
            {
                m_actionGetTarget = gameObject.AddComponent <GetTargetEasy>();
                break;
            }

            case Difficulty.Medium:
            {
                m_actionGetTarget = gameObject.AddComponent <GetTargetMedium>();
                break;
            }

            case Difficulty.Hard:
            {
                m_actionGetTarget = gameObject.AddComponent <GetTargetHard>();
                break;
            }
            }
        }

        //Left gun
        m_actionGetDisGun.m_targetDistance     = m_gunFireDistance;
        m_actionFireLeftGun.m_numberOfBullets  = m_gunNumberOfShots;
        m_actionFireLeftGun.m_timeBetweenShots = m_gunTimeBetweenShots;
        m_actionFireLeftGun.m_bulletSpeed      = m_gunBulletSpeed;
        m_actionFireLeftGun.m_bulletSpawnPos   = m_leftClawPos;
        m_actionFireLeftGun.m_bullet           = m_bulletPrefab;
        m_actionGunCooldown.m_coolDown         = m_gunCooldown;


        //Right gun
        m_actionGetDisGun.m_targetDistance      = m_gunFireDistance;
        m_actionFireRightGun.m_numberOfBullets  = m_gunNumberOfShots;
        m_actionFireRightGun.m_timeBetweenShots = m_gunTimeBetweenShots;
        m_actionFireRightGun.m_bulletSpeed      = m_gunBulletSpeed;
        m_actionFireRightGun.m_bulletSpawnPos   = m_rightClawPos;
        m_actionFireRightGun.m_bullet           = m_bulletPrefab;
        m_actionGunCooldown.m_coolDown          = m_gunCooldown;

        //Laser
        m_actionGetDisLaser.m_targetDistance  = m_laserFireDistance;
        m_actionFireLaser.m_chargeRate        = m_laserChargeTime;
        m_actionFireLaser.m_laserSpawnPos     = m_laserPos;
        m_actionFireLaser.m_laserFriendlyFire = m_laserFriendlyFire;
        m_actionFireLaser.m_laserFollowing    = m_laserFollowing;
        m_actionFireLaser.m_laserbeam         = m_laserPrefab;

        m_actionLaserCooldown.m_coolDown = m_laserCooldown;

        //Set up branches
        m_sequenceTop.m_behaviourBranches.Add(m_actionGetTarget as BehaviourBase);
        m_sequenceTop.m_behaviourBranches.Add(m_sequenceLeftGun);
        m_sequenceTop.m_behaviourBranches.Add(m_firingParallel);

        m_firingParallel.m_behaviourBranches.Add(m_sequenceLaser);
        m_firingParallel.m_behaviourBranches.Add(m_sequenceRightGun);

        m_sequenceLeftGun.m_behaviourBranches.Add(m_actionGetDisGun);
        m_sequenceLeftGun.m_behaviourBranches.Add(m_actionFireLeftGun);
        m_sequenceLeftGun.m_behaviourBranches.Add(m_actionGunCooldown);

        m_sequenceRightGun.m_behaviourBranches.Add(m_actionGetDisGun);
        m_sequenceRightGun.m_behaviourBranches.Add(m_actionFireRightGun);
        m_sequenceRightGun.m_behaviourBranches.Add(m_actionGunCooldown);

        m_sequenceLaser.m_behaviourBranches.Add(m_actionGetDisLaser);
        m_sequenceLaser.m_behaviourBranches.Add(m_actionFireLaser);
        m_sequenceLaser.m_behaviourBranches.Add(m_actionLaserCooldown);

        m_initalBehaviour = m_sequenceTop;
    }
コード例 #9
0
ファイル: HUDManager.cs プロジェクト: gotitmemorize/FPS
 // Use this for initialization
 void Start()
 {
     firegun = gun.GetComponent<FireGun>();
     player = GameObject.FindGameObjectWithTag("Player");
     playerhealth = player.GetComponent<PlayerHealth>();
     anim = gameObject.GetComponent<Animator>();
     gun_manager_script = gun_manager.GetComponent<GunManager>();
     Cursor.visible = false;
 }