Ejemplo n.º 1
0
        //-------------------------WEAPON ON HAND------------------------------------
        public void PutWeaponInHand(WeaponConfig weapon)
        {
            GameObject weaponPrefab = weapon.GetWeaponPrefab();
            GameObject powerAttackParticlePrefab = weapon.GetWeaponPowerAttackGlowPrefab();

            currentWeaponInUse = weapon;
            Destroy(instantiatedWeapon);
            Transform weaponHandT = RequestDominantHand();

            instantiatedWeapon = Instantiate(weaponPrefab, weaponHandT);
            instantiatedWeapon.transform.localPosition = currentWeaponInUse.weaponGrip.localPosition;
            instantiatedWeapon.transform.localRotation = currentWeaponInUse.weaponGrip.localRotation;

            if (powerAttackParticlePrefab != null)
            {
                GameObject powerAttackParticleObj = Instantiate(powerAttackParticlePrefab, instantiatedWeapon.transform);
                powerAttackParticleObj.transform.localRotation = currentWeaponInUse.particleGrip.localRotation;
                powerAttackParticleObj.transform.localPosition = currentWeaponInUse.particleGrip.localPosition;
                particleEffectToUse = powerAttackParticleObj.GetComponent <ParticleSystem>();
            }


            //print("Put the " + weapon + " in " + gameObject + "'s hand");

            WeaponDependantAnimation();
        }
Ejemplo n.º 2
0
        public void PutWeaponInHand(WeaponConfig weaponToUse)
        {
            currentWeaponConfig = weaponToUse;
            var weaponPrefab = weaponToUse.GetWeaponPrefab();

            Destroy(weaponObject); // empty hands
            weaponObject = Instantiate(weaponPrefab, weaponSocket.transform);
            weaponObject.transform.localPosition = currentWeaponConfig.gripTransform.localPosition;
            weaponObject.transform.localRotation = currentWeaponConfig.gripTransform.localRotation;
        }
Ejemplo n.º 3
0
        public void PutWeaponInHand(WeaponConfig weaponToUse)
        {
            currentWeaponConfig = weaponToUse;
            var        weaponPrefab = weaponToUse.GetWeaponPrefab();
            GameObject dominantHand = RequestDominantHand();

            Destroy(weaponObject);
            weaponObject = Instantiate(weaponPrefab, dominantHand.transform);
            weaponObject.transform.localPosition = currentWeaponConfig.grip.localPosition;
            weaponObject.transform.localRotation = currentWeaponConfig.grip.localRotation;
        }
Ejemplo n.º 4
0
        public void EquipWeapon(WeaponConfig weaponConfig)
        {
            Assert.IsNotNull(weaponConfig, "Please assign a weapon to the player");
            currentWeaponConfig = weaponConfig;
            var        weaponPrefab = weaponConfig.GetWeaponPrefab();
            GameObject dominantHand = RequestDominantHand();

            Destroy(weaponObject); // empty hands
            weaponObject = Instantiate(weaponPrefab);
            weaponObject.transform.SetParent(dominantHand.transform, true);
            weaponObject.transform.localPosition = currentWeaponConfig.weaponGrip.transform.position;
            weaponObject.transform.localRotation = currentWeaponConfig.weaponGrip.transform.rotation;
        }
Ejemplo n.º 5
0
        public void PutWeaponInHand(WeaponConfig weaponToUse)
        {
            currentWeaponConfig = weaponToUse;
            // get default weapon
            var        weaponPrefab = weaponToUse.GetWeaponPrefab();
            GameObject dominantHand = RequestDominantHand();

            Destroy(weaponObject); // emprty hands
            // set the weapon postion based on weaponGrip
            weaponObject = Instantiate(weaponPrefab, dominantHand.transform);
            weaponObject.transform.localPosition = currentWeaponConfig.gripTransform.localPosition;
            weaponObject.transform.localRotation = currentWeaponConfig.gripTransform.localRotation;
        }
Ejemplo n.º 6
0
        public void PutWeaponInHand(WeaponConfig weaponConfig)
        {
            currentWeaponConfig = weaponConfig;
            var        weaponPrefab = weaponConfig.GetWeaponPrefab();
            GameObject weaponSocket = RequestDominantHand();

            if (weaponGameObject != null)
            {
                Destroy(weaponGameObject);
            }
            weaponGameObject = Instantiate(weaponPrefab, weaponSocket.transform);
            weaponGameObject.transform.localPosition = currentWeaponConfig.weaponTransform.localPosition;
            weaponGameObject.transform.localRotation = currentWeaponConfig.weaponTransform.localRotation;
        }
Ejemplo n.º 7
0
        public void PutWeaponInHands(WeaponConfig weaponToUse)
        {
            Transform dominantHand = GetDominantHand();

            currWeaponConfig = weaponToUse;
            Destroy(weaponObject);
            if (weaponToUse != null && weaponToUse.WeaponPrefab != null)
            {
                weaponObject = Instantiate(weaponToUse.WeaponPrefab, dominantHand);
                weaponObject.transform.localPosition = weaponToUse.weaponGrip.position;
                weaponObject.transform.localRotation = weaponToUse.weaponGrip.rotation;
                weaponObject.transform.localScale    = weaponToUse.weaponGrip.localScale;
            }
        }
 /* IMPORTANT: CameraRaycaster hits both WeaponPickupPoint, as well as its parented weapon prefab model.
  * Data collected here is from the prefab, so need to use GetComponentInParent to get WeaponConfig needed by PutWeaponInHand method*/
 void OnMouseOverPickable(GameObject pickable) // reads LMB from CameraRaycaster if pickable layer hit
 {
     if (Input.GetMouseButtonUp(0))            // TODO no pickup range - implement
     {
         transform.LookAt(pickable.gameObject.transform);
         WeaponConfig weaponToPick = pickable.GetComponentInParent <WeaponPickupPoint>().GetWeaponConfig(); // TODO split logic for different pickable types
         weaponSystem.PutWeaponInHand(weaponToPick);
         Destroy(pickable.gameObject);                                                                      // TODO implement dropping used weapons
     }
     else if (Input.GetMouseButtonDown(1))                                                                  // TODO relies on weapon range - change this
     {
         transform.LookAt(pickable.gameObject.transform);
     }
 }
Ejemplo n.º 9
0
        public void PutWeaponInHand(WeaponConfig weaponToUse)
        {
            //TODO: refactor weapon and equipment. Make a manager component.

            GameObject weaponSocket = RequestDominantHand();

            currentWeaponConfig = weaponToUse;

            // check if a weapon is already in hand
            RemoveEquippedWeapon(weaponObject);

            var weaponPrefab = currentWeaponConfig.GetWeaponPrefab();

            weaponObject = Instantiate(weaponPrefab, weaponSocket.transform);
            weaponObject.transform.localPosition = currentWeaponConfig.gripTransform.localPosition;
            weaponObject.transform.localRotation = currentWeaponConfig.gripTransform.localRotation;
        }
Ejemplo n.º 10
0
        private void Update()
        {
            currentWeaponConfig = weaponSystem.getCurrentWeapon;
            currentWeaponRange  = currentWeaponConfig.GetMaxAttackRange();

            distanceToPlayer = Vector3.Distance(player.transform.position, transform.position);

            // initial state
            //Debug.Log(gameObject.name + " State: " + state);

            // switch(state)
            // {
            //     case States.attacking:

            //         //Debug.Log(gameObject.name + " State: " + state);

            //         if( distanceToPlayer > currentWeaponRange && distanceToPlayer > chaseRadius)
            //         {
            //             state = States.patrolling;
            //         }
            //         if(distanceToPlayer > currentWeaponRange && distanceToPlayer <= chaseRadius)
            //         {
            //             state = States.chasing;
            //         }

            //         if(state == States.attacking)
            //         {
            //             //Debug.Log("Attacking State");
            //             StopAllCoroutines();
            //             //weaponSystem.AttackTarget(player.gameObject);
            //         }

            //         break;

            //     case States.patrolling:

            //         if(patrolPath == null)
            //         {
            //             state = States.idle;
            //         }
            //         if(distanceToPlayer <= currentWeaponRange)
            //         {
            //             state = States.attacking;
            //         }
            //         if(distanceToPlayer <= chaseRadius && distanceToPlayer > currentWeaponRange)
            //         {
            //             state = States.chasing;
            //         }

            //         if(state == States.patrolling)
            //         {
            //             //Debug.Log("Patrolling State");
            //             StopAllCoroutines();
            //             weaponSystem.StopAttacking();
            //             //StartCoroutine (Patrol() );
            //         }


            //         break;

            //     case States.chasing:
            //         if(distanceToPlayer <= currentWeaponRange)
            //         {
            //             state = States.attacking;
            //         }
            //         if(distanceToPlayer > chaseRadius)
            //         {
            //             state = States.patrolling;
            //         }


            //         if(state == States.chasing)
            //         {
            //             //Debug.Log("Chasing State");
            //             StopAllCoroutines();
            //             weaponSystem.StopAttacking();
            //             //StartCoroutine( ChasePlayer() );
            //         }

            //         break;

            //     case States.idle:
            //         if(distanceToPlayer <= currentWeaponRange)
            //         {
            //             state = States.attacking;
            //         }
            //         if(distanceToPlayer <= chaseRadius)
            //         {
            //             state = States.chasing;
            //         }
            //         if(patrolPath != null)
            //         {
            //             state = States.patrolling;
            //         }

            //         //Debug.Log("Idle State");
            //         break;


            //     default:
            //         Debug.Log("No State!!");
            //         break;

            // }


            // new pluggable state AI
            if (currentState != null)
            {
                currentState.UpdateState(this);
            }
        }
Ejemplo n.º 11
0
 public void SetWeaponInUse(WeaponConfig weaponConfig)
 {
     currentWeaponConfig = weaponConfig;
 }