Esempio n. 1
0
 void Start()
 {
     cam    = GetComponentInChildren <Camera>().transform;
     motor  = GetComponent <CharacterMotor>();
     weapon = GetComponent <WeaponHolder>();
     hunter = GetComponent <Hunter>();
 }
Esempio n. 2
0
    // Start is called before the first frame update
    private void Start()
    {
        //
        // Ensure rigidbody is present
        m_rigidbody = GetComponent <Rigidbody>();
        Assert.IsNotNull(m_rigidbody);

        //
        // Ensure WeaponHolder is present
        m_weaponHolder = GetComponent <WeaponHolder>();
        Assert.IsNotNull(m_weaponHolder);

        //
        // Ensure BonusHolder is present
        m_bonusHolder = GetComponent <BonusHolder>();
        Assert.IsNotNull(m_bonusHolder);

        //
        // Initialize / Reset
        ResetWallJump();

        //
        //
        m_audioSource = GetComponent <AudioSource>();
        Assert.IsNotNull(m_audioSource);

        //
        m_fWaftTimer = m_fWaftCooldown;
    }
    public void OnDie()
    {
        if (null != stocks)
        {
            --stocks;
        }
        percentage = 0.0f;

        //
        // Notify death
        if (null != UiManager)
        {
            UiManager.OnPlayerDied(this);
        }

        WeaponHolder weaponHolder = gameObject.GetComponent <WeaponHolder>();

        if (null != weaponHolder)
        { // Remove current weapon
            weaponHolder.OnPlayerDied();
        }

        //
        // Emit die sounds
        int iSound = Random.Range(0, m_aAudioClipsScream.Length);

        AudioManager.GetInstance().PlaySoundEffect(m_aAudioClipsScream[iSound], 0.6f);
        AudioManager.GetInstance().PlaySoundEffect(m_aAudioClipImplose, 1.0f);

        gameObject.SetActive(false);
    }
Esempio n. 4
0
    override public void PickUpObject(PickUpSystem WhoPicked)
    {
        WeaponHolder cmp = WhoPicked.gameObject.GetComponentInChildren <WeaponHolder>();

        Debug.Log(WhoPicked.name + "Picked Up Ammo");

        if (cmp.Ammo[weaponid] + numberofammo <= cmp.maxAmmo[weaponid])
        {
            cmp.Ammo[weaponid] += numberofammo;
            //WhoPicked.Global.PickUps.Remove(this);
            if (photonView.IsMine)
            {
                PhotonNetwork.Destroy(this.gameObject); //Destroy(this.gameObject);
            }
            else // Вроде и так работает, но на всякий
            {
                Debug.Log("transfering ownership from " + photonView.Owner.NickName);
                //photonView.RequestOwnership();
                //photonView.TransferOwnership(PhotonNetwork.LocalPlayer);
                //Debug.Log("owner is now " + photonView.Owner.NickName + " / should be " + PhotonNetwork.LocalPlayer.NickName);
                photonView.SetOwnerInternal(PhotonNetwork.LocalPlayer, PhotonNetwork.LocalPlayer.ActorNumber);
                Debug.Log("owner is now " + photonView.Owner.NickName + " / should be " + PhotonNetwork.LocalPlayer.NickName);
                PhotonNetwork.Destroy(this.gameObject);
            }
        }
        else
        {
            numberofammo      -= cmp.maxAmmo[weaponid] - cmp.Ammo[weaponid];
            cmp.Ammo[weaponid] = cmp.maxAmmo[weaponid];
        }
    }
Esempio n. 5
0
        /// <summary>Set the Active Holder Transform for the Active Holder Side </summary>
        protected virtual void SetActiveHolder(WeaponHolder holder)
        {
            ActiveHolderSide = holder;
            switch (ActiveHolderSide)
            {
            case WeaponHolder.None:
                ActiveHolderTransform = HolderBack;     // Set BACK As default the HolderBack
                break;

            case WeaponHolder.Left:
                ActiveHolderTransform = HolderLeft ? HolderLeft : HolderBack;
                break;

            case WeaponHolder.Right:
                ActiveHolderTransform = HolderRight ? HolderRight : HolderBack;
                break;

            case WeaponHolder.Back:
                ActiveHolderTransform = HolderBack;
                break;

            default:
                break;
            }
        }
Esempio n. 6
0
        /// <summary>Is called to swap weapons </summary>
        public virtual void Change_Weapon_Holder_Inputs(WeaponHolder holder)
        {
            if (debug)
            {
                Debug.Log($"Change Holder to: <b>{holder}</b>");
            }

            if (ActiveHolderSide != holder && WeaponAction == WA.Idle)        //if there's a weapon on hand, Store it and draw the other weapon from the next holder
            {
                StartCoroutine(SwapWeaponsHolder(holder));
            }
            else if (ActiveHolderSide != holder && WeaponAction == WA.None)   //if there's no weapon draw the weapon from the next holder
            {
                SetActiveHolder(holder);
                Draw_Weapon();
            }
            else
            {
                if (!CombatMode)
                {
                    if (WeaponAction == WA.None)
                    {
                        Draw_Weapon();                                                      //Draw a weapon if we are on Action None
                    }
                }
                else
                {
                    if (WeaponAction == WA.Idle)
                    {
                        Store_Weapon();                                                    //Store a weapon if we are on Action Idle
                    }
                }
            }
        }
Esempio n. 7
0
    void Start()
    {
        weaponHolder = FindObjectOfType <WeaponHolder>();

        ChangeGunInDisplay();
        ChangeConsumableInDisplay();

        weaponHolder.OnGunSwap.AddListener(ChangeGunInDisplay);
        weaponHolder.OnConsumableSwap.AddListener(ChangeConsumableInDisplay);
        LevelManager.Instance.OnEnemyKill.AddListener(ChangeKillsDisplay);
        LevelManager.Instance.OnStartNextStage.AddListener(ChangeKillsDisplay);
        PlayerManager.Instance.OnGunEnable.AddListener(ToggleCrosshair);
        PlayerManager.Instance.OnGunDisable.AddListener(ToggleCrosshair);

        objectiveBannerTimer           = 0f;
        objectiveBannerWasJustDisabled = false;
        clockTickTimer = 0f;

        ChangeAmmoDisplay();
        if (weaponHolder.EquippedConsumable)
        {
            ChangeConsumablesDisplay();
        }
        ChangeKillsDisplay();
    }
    public void Assign(WeaponHolder holderScript, int index)
    {
        if (EditorUtility.DisplayDialog("Assign New Frame Position", "Are you sure you want to change the weapon's position on frame " + (holderScript.index + 1) + " of the animation " + holderScript.stringState + " ?", "Assign", "Cancel"))
        {
            switch (holderScript.weaponState)
            {
            case (WeaponHolder.WeaponAnimation.IDLE):
                holderScript.idlePosRot[holderScript.index] = new Vector3(holderScript.gameObject.transform.localPosition.x,
                                                                          holderScript.gameObject.transform.localPosition.y,
                                                                          holderScript.gameObject.transform.localEulerAngles.z);
                break;

            case (WeaponHolder.WeaponAnimation.ATTACK):
                holderScript.swingPosRot[holderScript.index] = new Vector3(holderScript.gameObject.transform.localPosition.x,
                                                                           holderScript.gameObject.transform.localPosition.y,
                                                                           holderScript.gameObject.transform.localEulerAngles.z);
                break;

            case (WeaponHolder.WeaponAnimation.WALK):
                holderScript.walkPosRots[holderScript.index] = new Vector3(holderScript.gameObject.transform.localPosition.x,
                                                                           holderScript.gameObject.transform.localPosition.y,
                                                                           holderScript.gameObject.transform.localEulerAngles.z);
                break;

            case (WeaponHolder.WeaponAnimation.STUN):
                holderScript.stunPosRot[holderScript.index] = new Vector3(holderScript.gameObject.transform.localPosition.x,
                                                                          holderScript.gameObject.transform.localPosition.y,
                                                                          holderScript.gameObject.transform.localEulerAngles.z);
                break;
            }
        }
    }
        protected override void FireWeapon()
        {
            if (WeaponStats.BulletsInClip > 0 && !Reloading && !WeaponHolder.Controller.IsRunning)
            {
                base.FireWeapon();

                if (!FiringEffect)
                {
                    FiringEffect = Instantiate(FiringAnimation, ParticleSpawnLocation).GetComponent <ParticleSystem>();;
                }


                Ray screenRay = MainCamera.ScreenPointToRay(new Vector3(CrosshoarComponent.CurrentAimPosition.x, CrosshoarComponent.CurrentAimPosition.y, 0));

                if (!Physics.Raycast(screenRay, out RaycastHit hit, WeaponStats.FireDistance, WeaponStats.WeaponHitLayer))
                {
                    return;
                }


                HitLocation = hit.point;

                Vector3 hitDirection = hit.point - MainCamera.transform.position;
                Debug.DrawRay(MainCamera.transform.position, hitDirection.normalized * WeaponStats.FireDistance, Color.red, 1.0f);
            }
            else if (WeaponStats.BulletsInClip <= 0)
            {
                if (!WeaponHolder)
                {
                    return;
                }

                WeaponHolder.StartReloading();
            }
        }
    private void OnCollisionEnter(Collision collision)
    {
        WeaponHolder componentWeaponHolder = collision.gameObject.GetComponent <WeaponHolder>();

        if (null != componentWeaponHolder)
        {
            //
            // Show correct weapon in body
            bool bCanSwitch = componentWeaponHolder.SetWeaponTypeToSwitchTo(_Weapon.WeaponType, gameObject.GetComponent <WeaponShot>().loaderSize);

            //
            // Destroy current weapon
            if (bCanSwitch)
            {
                Destroy(gameObject);

                //
                // Play the pick sound
                AudioManager.GetInstance().PlaySoundEffect(m_pickSound, 1.0f);
            }
            else
            {
                float fSpeed = gameObject.GetComponent <Rigidbody>().velocity.magnitude;
                if (fSpeed >= 5.0f)
                {
                    PlayerGameplay player = collision.gameObject.GetComponent <PlayerGameplay>();
                    Vector3        dir    = collision.contacts[0].point - transform.position;
                    player.TakeDamages(30.0f, dir, 1.3f);
                }
            }
        }
    }
Esempio n. 11
0
 // Start is called before the first frame update
 void Start()
 {
     rigidBody            = GetComponent <Rigidbody2D>();
     livingThing          = GetComponent <LivingThing>();
     weaponHolder         = GetComponent <WeaponHolder>();
     triggerDownAfterShot = false;
 }
Esempio n. 12
0
 ///──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
 /// <summary>
 /// Is called to swap weapons
 /// </summary>
 protected virtual void Change_Weapon_Holder_Inputs(WeaponHolder holder)
 {
     if (ActiveHolderSide != holder && _weaponAction == WeaponActions.Idle)        //if there's a weapon on hand, Store it and draw the other weapon from the next holder
     {
         StartCoroutine(SwapWeaponsHolder(holder));
     }
     else if (ActiveHolderSide != holder && _weaponAction == WeaponActions.None)   //if there's no weapon draw the weapon from the next holder
     {
         SetActiveHolder(holder);
         Draw_Weapon();
         LinkAnimator();
     }
     else
     {
         if (!isInCombatMode)
         {
             if (_weaponAction == WeaponActions.None)
             {
                 Draw_Weapon();                                                      //Draw a weapon if we are on Action None
             }
         }
         else
         {
             if (_weaponAction == WeaponActions.Idle)
             {
                 Store_Weapon();                                                    //Store a weapon if we are on Action Idle
             }
         }
         LinkAnimator();                                                             //Links the animator to the values
     }
 }
        protected override void OnWindowGUIBeforeContent()
        {
            base.OnWindowGUIBeforeContent();

            bool playerExists = Ped.Instance != null;

            if (playerExists)
            {
                GUILayout.BeginHorizontal();

                if (GUILayout.Button("Remove all weapons", GUILayout.ExpandWidth(false)))
                {
                    Ped.Instance.WeaponHolder.RemoveAllWeapons();
                }

                GUILayout.Space(5);

                if (GUILayout.Button("Give ammo", GUILayout.ExpandWidth(false)))
                {
                    foreach (var weapon in Ped.Instance.WeaponHolder.AllWeapons)
                    {
                        WeaponHolder.AddRandomAmmoAmountToWeapon(weapon);
                    }
                }

                GUILayout.EndHorizontal();
                GUILayout.Space(15);
            }
        }
    public static void LoadAssets()
    {
        PlayerHolder.Initialize();
        EnemyHolder.Initialize();
        WeaponHolder.Initialize();
        AmmunitionDropHolder.Initialize();
        ProjectileHolder.Initialize();
        SoundHolder.Initialize();
        VisualEffectHolder.Initialize();
        AnimationHolder.Initialize();
        MapHolder.Initialize();

        OnLoadingStatus += PlayerHolder.CurrentLoadingPercentage;
        OnLoadingStatus += EnemyHolder.CurrentLoadingPercentage;
        OnLoadingStatus += WeaponHolder.CurrentLoadingPercentage;
        OnLoadingStatus += ProjectileHolder.CurrentLoadingPercentage;
        OnLoadingStatus += SoundHolder.CurrentLoadingPercentage;
        OnLoadingStatus += VisualEffectHolder.CurrentLoadingPercentage;
        OnLoadingStatus += AnimationHolder.CurrentLoadingPercentage;
        OnLoadingStatus += AmmunitionDropHolder.CurrentLoadingPercentage;
        OnLoadingStatus += MapHolder.CurrentLoadingPercentage;

        PlayerHolder.LoadAssets();
        EnemyHolder.LoadAssets();
        WeaponHolder.LoadAssets();
        ProjectileHolder.LoadAssets();
        SoundHolder.LoadAssets();
        VisualEffectHolder.LoadAssets();
        AnimationHolder.LoadAssets();
        AmmunitionDropHolder.LoadAssets();
        MapHolder.LoadAssets();
    }
Esempio n. 15
0
 // Start is called before the first frame update
 protected virtual void Start()
 {
     gridSize       = GameControl.instance.gridSize;
     freezePosition = false;
     rb             = GetComponent <Rigidbody>();
     weaponHolder   = GetComponentInChildren <WeaponHolder>();
 }
        protected override void OnWindowGUI()
        {
            // display all weapons from the game

            // add option to add them to player



            bool playerExists = Ped.Instance != null;


            //	var defs = Item.GetDefinitions<Importing.Items.Definitions.WeaponDef> ();
            var datas = Importing.Weapons.WeaponData.LoadedWeaponsData.DistinctBy(wd => wd.weaponType);

            foreach (var data in datas)
            {
                GUILayout.Label("Id: " + data.modelId1 + " Name: " + data.weaponType + " Slot: " + data.weaponslot +
                                " Flags: " + (null == data.gunData ? "" : string.Join(" ", data.gunData.Flags)));

                if (playerExists)
                {
                    if (GUILayout.Button("Give", GUILayout.Width(70)))
                    {
                        // give weapon to player
                        Ped.Instance.WeaponHolder.SetWeaponAtSlot(data.modelId1, data.weaponslot);
                        Ped.Instance.WeaponHolder.SwitchWeapon(data.weaponslot);
                        WeaponHolder.AddRandomAmmoAmountToWeapon(Ped.Instance.WeaponHolder.GetWeaponAtSlot(data.weaponslot));
                    }
                }

                GUILayout.Space(5);
            }
        }
Esempio n. 17
0
    private void PrepareGun(GameObject gun)
    {
        float        cameraAngle  = 35f;
        WeaponHolder weaponHolder = gun.GetComponent <WeaponHolder>();

        weaponHolder.Load();

        GameObject ammo = weaponHolder.bullet_object;

        gun = weaponHolder.gun_object;
        gun.GetComponent <GunScript>().enabled = false; // We don't want OnEnabled to be called in edit mode

        // Prepare Target
        GameObject model = Instantiate(gun, Vector3.zero, Quaternion.identity);

        model.transform.rotation = Quaternion.Euler(Vector3.forward * 90f + Vector3.right * 180);

        // Determine bounds
        Bounds bounds = GetBounds(model);

        // Translate object to match the ground
        model.transform.position = Vector3.up * (bounds.size.y - bounds.center.y);
        bounds.center            = bounds.center + Vector3.up * (bounds.size.y - bounds.center.y);

        bounds = GetBounds(model);
        last   = bounds;

        DrawBounds(bounds, Color.red, 10); // DEBUG

        // Move Camera in place
        cam.transform.rotation = Quaternion.Euler(60f, cameraAngle - 90, 0);
        PositionCameraToFit(bounds);
    }
    protected new void FireWeapon()
    {
        if (WeaponStats.AmmoInClip > 0 && !Reloading && !WeaponHolder.Controller.IsRunning)
        {
            base.FireWeapon();

            Ray screenRay = ViewCamera.ScreenPointToRay(new Vector3(Crosshair.CurrentAimPosition.x,
                                                                    Crosshair.CurrentAimPosition.y, 0));

            if (Physics.Raycast(screenRay, out RaycastHit hit, WeaponStats.FireDistance,
                                WeaponStats.WeaponHitLayer))
            {
                Vector3 RayDirection = HitLocation.point - ViewCamera.transform.position;

                Debug.DrawRay(ViewCamera.transform.position, RayDirection * WeaponStats.FireDistance, Color.red);

                HitLocation = hit;
                Instantiate(launchRound, HitLocation.point, Quaternion.LookRotation(HitLocation.normal));
                Rigidbody lr = launchRound.GetComponent <Rigidbody>();
            }
            ;
        }
        else if (WeaponStats.AmmoInClip <= 0)
        {
            if (!WeaponHolder)
            {
                return;
            }

            WeaponHolder.StartReloading();
        }
    }
Esempio n. 19
0
    void Update()
    {
        if (player != null)
        {
            health = player.Health;
        }
        else
        {
            health = 0;
            // If we can't find the player, we aren't in a scene with action
            GameObject obj = GameObject.FindGameObjectWithTag("Player");
            if (obj)
            {
                player = obj.GetComponent <Damagable>();
                if (player != null)
                {
                    weapon = player.GetComponent <Player>().Weapon;
                }
            }
        }
        restartText.SetActive(player == null);
        // link up to lives from character object
        for (int i = 0; i < HealthObjects.Count; i++)
        {
            HealthObjects[i].SetActive(i < health);
        }

        enemyText.enabled = (EnemyKillVictory.Count != -1);
        enemy.SetActive(EnemyKillVictory.Count != -1);
        enemyText.GetComponent <Text>().text = EnemyKillVictory.Count.ToString();
    }
Esempio n. 20
0
 // Start is called before the first frame update
 void Start()
 {
     movement = GetComponent <MovementRigidBody>();
     hlth     = GetComponent <health>();
     weapon   = GetComponentInChildren <WeaponHolder>();
     ChoseCharacterTarget();
     //movement.input.Set(1.0f, 1.0f);
 }
Esempio n. 21
0
    public override void OnPickup(GameObject player)
    {
        base.OnPickup(player);

        WeaponHolder holder = GameObject.Find("Player").GetComponent <WeaponHolder>();

        holder.weapons[1] = new Rifle();
    }
Esempio n. 22
0
 private void Start()
 {
     attackRange  = 0.8f;
     playerStat   = GetComponentInParent <PlayerStat>();
     graphic      = transform.gameObject;
     weaponHolder = graphic.GetComponentInChildren <WeaponHolder>();
     rb           = GetComponent <Rigidbody2D>();
 }
Esempio n. 23
0
 // Use this for initialization
 void Start()
 {
     control = GetComponent <CharacterController>();
     if (Weapon == null)
     {
         Weapon = GetComponent <WeaponHolder>();
     }
 }
Esempio n. 24
0
 // Start is called before the first frame update
 protected virtual void Start()
 {
     weaponHolder       = this.GetComponentInChildren <WeaponHolder>();
     weaponHolder.owner = this;
     rb   = this.GetComponent <Rigidbody2D>();
     sr   = GetComponent <SpriteRenderer>();
     anim = GetComponent <Animator>();
 }
Esempio n. 25
0
 private void Start()
 {
     //Find UI GameObjects and the player's weaponHolder in the scene
     goCanvas              = GameObject.Find("Canvas");
     sliderAttackInterval  = goCanvas.transform.Find("Attack Interval Slider").GetComponent <Slider>();
     sliderWeaponCharge    = goCanvas.transform.Find("Weapon Charge Slider").GetComponent <Slider>();
     sliderPrototypeCharge = goCanvas.transform.Find("Prototype Charge Slider").GetComponent <Slider>();
     weaponHolderPlayer    = GameObject.Find("Player").GetComponent <WeaponHolder>();
 }
Esempio n. 26
0
 // Start is called before the first frame update
 public virtual void Start()
 {
     muzzle         = this.transform.GetChild(0);
     hitbox         = GetComponent <BoxCollider2D>();
     hitbox.enabled = false;
     cam            = FindObjectOfType <CameraController>();
     anim           = GetComponent <Animator>();
     weaponHolder   = GetComponentInParent <WeaponHolder>(); // sketch
 }
Esempio n. 27
0
 private void Awake()
 {
     _Anim      = GetComponent <Animator>();
     _RB        = GetComponent <Rigidbody2D>();
     _WH        = GetComponentInChildren <WeaponHolder>();
     _TAnimCont = GetComponentInChildren <TailAnimationController>();
     _Health    = GetComponent <Health>();
     _GS        = UIManager.Instance.GetScreen <GameScreen>();
 }
Esempio n. 28
0
    protected override void Awake()
    {
        OwnedBy = playerData.playerTeam;

        pc          = GetComponent <PlayerController>();
        pa          = transform.FindChild("Sprite").GetComponent <PlayerAnimator>();
        pw          = GetComponent <WeaponHolder>();
        base.sprite = transform.FindChild("Sprite").GetComponent <SpriteRenderer>();
    }
Esempio n. 29
0
 // Start is called before the first frame update
 void Start()
 {
     rb           = GetComponent <Rigidbody2D>();
     coll         = GetComponent <Collision>();
     weaponHolder = GetComponent <WeaponHolder>();
     input        = GetComponent <PlayerInput>();
     sr           = GetComponentInChildren <SpriteRenderer>();
     anim         = GetComponentInChildren <Animator>();
 }
Esempio n. 30
0
    private void SetupGun()
    {
        WeaponHolder weaponHolder = mainAsset.GetComponent <WeaponHolder>();

        // Set the display name to the bundle name if no custom name is provided
        if (weaponHolder.display_name == "My Gun")
        {
            weaponHolder.display_name = name;
        }
    }
Esempio n. 31
0
    public void Init()
    {
        if(user)cha = user.GetComponentInChildren<Hunter>();
        if(user)hea = user.GetComponentInChildren<Health>();
        if(user)wep = user.GetComponentInChildren<WeaponHolder>();

        Camera cam = GetComponentInChildren<Camera>();
        ratio = cam.orthographicSize/cam.pixelHeight;
        camsize = new Vector2(cam.pixelWidth*ratio,cam.pixelHeight*ratio);
        screensize = camsize/ratio;
    }
Esempio n. 32
0
    public void Emit(Vector2 position, Vector2 velocity, WeaponHolder owner)
    {
        _owner = owner;
        switch (_owner.myTeam)
        {
            case WeaponHolder.Team.PLAYER:
                _targetMask = 1 << LayerMask.NameToLayer("Enemy");
                break;
            case WeaponHolder.Team.ENEMY:
                _targetMask = 1 << LayerMask.NameToLayer("Player");
                break;
           }

        // Before emitting a bullet we check to see if the shnozzle of this gun is colliding with anything
        // First, cast against target
        BoxCollider2D weaponCol = _myWeapon.GetComponent<BoxCollider2D>();
        Vector2 topLeft = (Vector2)(weaponCol.bounds.center) - (weaponCol.size * 0.5f);
        Vector2 bottomRight = topLeft + weaponCol.size;

        int count = Physics2D.OverlapAreaNonAlloc(topLeft, bottomRight, _collisions, _targetMask);
        //int count = Physics2D.OverlapPointNonAlloc(position, _collisions, _targetMask);

        if(count > maxHitsPerBullet) count  = maxHitsPerBullet;
        bool hitSummat = false;

        if(count != 0) // then we hit something
        {
            for(int j = 0; j < count; j++) // for every collision of this particle...
            {
                switch(owner.myTeam)
                {
                case WeaponHolder.Team.PLAYER:
                    Enemy enemy = _collisions[j].gameObject.GetComponentInParent<Enemy>();
                    enemy.LoseHealth(_myWeapon.strength);
                    _myWeapon.ApplyKnockback(enemy.GetComponent<Mover>(), velocity);

                    break;
                }

                hitSummat = true;
            }
        }
        else // try casting against scenery
        {
            count = Physics2D.OverlapPointNonAlloc(position, _collisions, _sceneMask);
            if(count > 0) hitSummat = true;
        }

        // Return straight away if hit something (e.g. shnozzle is over enemy or scenery or whatnot)
        if(hitSummat) return;

        // Acually emit bullet
        _bullets.Emit(position, velocity, _bullets.startSize, _bullets.startLifetime, _bullets.startColor);
    }
Esempio n. 33
0
    public void Shot(Bullets bulletsManager, Vector2 velocity, WeaponHolder owner)
    {
        _owner = owner;
        _firedFrom = _owner.weapon;
        switch (owner.myTeam)
        {
            case WeaponHolder.Team.PLAYER:
                _targetLayer = 1 << LayerMask.NameToLayer("Enemy");
                break;
            case WeaponHolder.Team.ENEMY:
                _targetLayer = 1 << LayerMask.NameToLayer("Player");
                break;
        }

        ownerFiringSystem = bulletsManager;
        _rigidBody.velocity = velocity;
    }
Esempio n. 34
0
    public void Shot(Bullets bulletsManager, Vector2 velocity, WeaponHolder owner)
    {
        _owner = owner;
        switch (owner.myTeam)
        {
            case WeaponHolder.Team.PLAYER:
                //_targetMask = 1 << LayerMask.NameToLayer("Enemy");
                //print(_targetMask);
                //gameObject.layer = _targetMask;
                break;
            case WeaponHolder.Team.ENEMY:
                ////_targetMask = 1 << LayerMask.NameToLayer("Player");
                //gameObject.layer = _targetMask;
                break;
        }

        ownerFiringSystem = bulletsManager;
        rigidBody.velocity = velocity *-1;
    }
Esempio n. 35
0
    void Start()
    {
        disable_springs = false;
        disable_recoil = true;
        holder = GameObject.Find("gui_skin_holder").GetComponent<GUISkinHolder>();
        weapon_holder = holder.weapon.GetComponent<WeaponHolder>();
        magazine_obj = weapon_holder.mag_object;
        gun_obj = weapon_holder.gun_object;
        casing_with_bullet = weapon_holder.bullet_object;

        if(Random.Range(0.0f,1.0f) < 0.35f){
            held_flashlight = Instantiate(holder.flashlight_object);
            held_flashlight.GetComponent<FlashlightScript>().TurnOn();
            holder.has_flashlight = true;
        }

        rotation_x = transform.rotation.eulerAngles.y;
        view_rotation_x = transform.rotation.eulerAngles.y;
        gun_instance = Instantiate(gun_obj);
        var renderers = gun_instance.GetComponentsInChildren<Renderer>();
        foreach (Renderer renderer in renderers)
        {
            renderer.shadowCastingMode = ShadowCastingMode.On;
        }
        main_camera = GameObject.Find("Main Camera").gameObject;
        character_controller = GetComponent<CharacterController>();
        for(var i=0; i<kMaxHeadRecoil; ++i){
            head_recoil_delay[i] = -1.0f;
        }
        for(var i=0; i<10; ++i){
            weapon_slots[i] = new WeaponSlot();
        }
        var num_start_bullets = 30;// Random.Range(0, 10);
        if(GetGunScript().gun_type == GunType.AUTOMATIC){
            var num_start_mags= Random.Range(0,3);
            for(var i=1; i<num_start_mags+1; ++i){
                weapon_slots[i].type = WeaponSlotType.MAGAZINE;
                weapon_slots[i].obj = Instantiate(magazine_obj);
            }
        } else {
            num_start_bullets += Random.Range(0,20);
        }
        loose_bullets = new List<GameObject>();
        loose_bullet_spring = new List<Spring>();
        for(var i=0; i<num_start_bullets; ++i){
            AddLooseBullet(false);
        }
        audiosource_tape_background = gameObject.AddComponent<AudioSource>();
        audiosource_tape_background.loop = true;
        audiosource_tape_background.clip = holder.sound_tape_background;
        audiosource_audio_content = gameObject.AddComponent<AudioSource>();
        audiosource_audio_content.loop = false;

        //int count= 0;
        foreach(var tape in holder.sound_tape_content){
            total_tapes.Add(tape);
            /*++count;
            if(count >= 2){
                break;
            }*/
        }
        var temp_total_tapes= new List<AudioClip>(total_tapes);
        while(temp_total_tapes.Count > 0){
            var rand_tape_id= Random.Range(0,temp_total_tapes.Count);
            tapes_remaining.Add(temp_total_tapes[rand_tape_id]);
            temp_total_tapes.RemoveAt(rand_tape_id);
        }
    }
Esempio n. 36
0
    public void Throw(Vector2 force, bool spin)
    {
        transform.parent = null;
        _owner = null;
        gameObject.layer = _layIgnorePlayer;
        _rigid.isKinematic = false;
        _pickupTrigger.SetActive(true);

        _rigid.AddForce(force, ForceMode2D.Impulse);
        _spinning = spin;
    }
Esempio n. 37
0
 public void Shoot(Vector2 position, Vector2 velocity, WeaponHolder owner)
 {
     GameObject newBullet = GetObject();
     newBullet.GetComponent<Bullet>().Shot(this, velocity, owner);
     newBullet.transform.position = position;
 }
Esempio n. 38
0
 public void Pickup(WeaponHolder weaponHolder, Vector2 offset)
 {
     // Set Enemy
     weaponHolder.weapon = this;
     transform.parent = weaponHolder.transform;
     _owner = weaponHolder; //Set the holder of the weapon
     Pickup(offset);
     OnPickup();
 }
Esempio n. 39
0
 public void DropMe()
 {
     transform.parent = null;
     _owner = null;
     gameObject.layer = _layIgnorePlayer;
     _rigid.isKinematic = false;
     _pickupTrigger.SetActive(true);
 }
Esempio n. 40
0
    public virtual void Init(RefMob refMob, int level, int evolution)
    {
        m_navAgent = GetComponent<NavMeshAgent>();
        m_targeting = null;
        m_ingTakenDamageEffect = 0;
        m_pushbackSpeedOnDamage = 0;
        m_behaviourType = BehaviourType.ALive;

        m_weaponHolder = transform.Find("WeaponHolder").gameObject.GetComponent<WeaponHolder>();
        m_weaponHolder.Init();

        if (transform.Find("Body/WeaponPoint") != null)
        {
            m_weaponHolder.transform.position = transform.Find("Body/WeaponPoint").transform.position;
        }

        damagedTexture = Resources.Load<Texture>("ani/damage monster");
        normalTexture = Resources.Load<Texture>("ani/monster");
        ChangeNormalColor();

        m_refMob = refMob;
        m_creatureProperty.init(this, m_refMob.baseCreatureProperty, level, evolution);
        rigidbody.mass = refMob.mass;
        m_navAgent.baseOffset = m_refMob.baseCreatureProperty.navMeshBaseOffset;

        m_aimpoint = transform.Find("Body/Aimpoint").gameObject;
        m_hppoint = m_aimpoint;

        if (transform.Find("Body/HPPoint"))
        {
            m_hppoint = transform.Find("Body/HPPoint").gameObject;
        }
        m_animator = transform.Find("Body").GetComponent<Animator>();

        m_prefDamageSprite = Resources.Load<GameObject>("Pref/DamageNumberSprite");
    }
Esempio n. 41
0
    public void Pickup(PlayerController player, Vector2 offset)
    {
        // Set Player
        player.weapon = this;
        transform.parent = player.transform;
        //transform.position += new Vector3 (player.facingDirection, 0, 0);
        _owner = player;

        Pickup (offset);
        OnPickup();
    }
Esempio n. 42
0
    public void Pickup(Enemy enemy, Vector2 offset)
    {
        // Set Enemy
        enemy.weapon = this;

        transform.parent = enemy.transform;
        _owner = enemy; //Set the holder of the weapon

        Pickup (offset);
        OnPickup();
    }
Esempio n. 43
0
    public override void Init(Creature mob)
    {
        base.Init(mob);

        m_weaponHolder = mob.transform.Find("WeaponHolder").gameObject.GetComponent<WeaponHolder>();
    }