Ejemplo n.º 1
0
 public override void UpdateWeapon(PlayerWeapon playerWeapon, FireCallback fireCallback, FireCallback finishedFireCallback)
 {
     if (InputManager.Instance.IsShoot)
     {
         Fire(playerWeapon, fireCallback, finishedFireCallback);
     }
 }
Ejemplo n.º 2
0
    protected void Fire(PlayerWeapon playerWeapon, FireCallback fireCallback, FireCallback finishedFireCallback)
    {
        // Check whether the animation is playing.
        if (playerWeapon.GetAnimator.IsPlaying(k_FireState) == false)
        {
            fireCallback();

            bool       isHit = false;
            RaycastHit hit;
            isHit = Physics.Raycast(playerWeapon.gameObject.transform.position, playerWeapon.gameObject.transform.forward, out hit, m_MaxDistance, 1 << LayerMask.NameToLayer("Enemy"));

            // Trigger the fire animation.
            playerWeapon.GetAnimator.SetTrigger(playerWeapon, k_FireTrigger, new string[] { k_FireState },

                                                delegate
            {
                if (isHit)
                {
                    //Debug.Log("Hit: " + hit.collider.gameObject);

                    int hitChance  = DetermineHit(hit);
                    int baseDamage = CalculateDamage(hit, hitChance);

                    Debug.Log("Hit: " + hit.collider.gameObject + " Damage: " + baseDamage);

                    hit.collider.gameObject.GetRequiredComponent <CharacterHealth>().AdjustHealth(-baseDamage);
                }

                // Notify the player the weapon has finished firing.
                finishedFireCallback();
            }
                                                );
        }
    }
Ejemplo n.º 3
0
 public bool SetFireCallback(string controlName, FireCallback callback)
 {
     foreach (ControlAssignment control in m_controlAssignments)
     {
         if (control.Name == controlName)
         {
             control.FireCallback = callback;
             return(true);
         }
     }
     return(false);
 }
Ejemplo n.º 4
0
 public abstract void UpdateWeapon(PlayerWeapon playerWeapon, FireCallback fireCallback, FireCallback finishedFireCallback);
Ejemplo n.º 5
0
 public void SetFireCallback(FireCallback callback)
 {
     fireCallbackList.Add(callback);
 }                                                                                               //not in used atm