public void Attack(Vector3 targetDirectiom)
 {
     if (Time.time > attackTemp + AttackDelay)
     {
         character.DoDamage();
         character.AttackAnimation();
         attackTemp = Time.time;
     }
 }
示例#2
0
 public void Attack(Vector3 targetDirectiom)
 {
     if (Time.time > attackTemp + AttackDelay)
     {
         Vector3[] dirs = new Vector3[1];
         dirs [0] = targetDirectiom.normalized;
         character.DoDamage(this.transform.position, dirs, character.Damage, character.DamageLength, character.Penetrate, "", character.Team);
         character.AttackAnimation();
         attackTemp = Time.time;
     }
 }
示例#3
0
    public override void OnAction()
    {
//		Debug.Log(this+" OnAction");

        if (animator)
        {
            animator.speed = animationSpeedTemp;
        }
        if (Ammo > 0 || InfinityAmmo)
        {
            if (!InfinityAmmo)
            {
                Ammo -= 1;
            }

            if (BulletNum <= 0)
            {
                BulletNum = 1;
            }

            Vector3[] dirs = new Vector3[BulletNum];

            //muzzle
            if (!MuzzlePoint)
            {
                MuzzlePoint = this.transform;
            }
            //effects sound
            PlayFireSound();

            GameObject muzzleObj = GameObject.Instantiate(MuzzleFX, MuzzlePoint);
            Destroy(muzzleObj, 3);

            for (int i = 0; i < dirs.Length; i++)
            {
                if (dirs.Length <= 1)
                {
                    panicfire = 1;
                }
//				Debug.Log(fpsController.FPSCamera);
                if (fpsController)
                {
                    dirs [i] = (fpsController.tpsCamera.MainCamera.transform.forward + (new Vector3(Random.Range(-Spread + (int)panicfire, Spread + (int)panicfire) * 0.001f, Random.Range(-Spread + (int)panicfire, Spread + (int)panicfire) * 0.001f, Random.Range(-Spread + (int)panicfire, Spread + (int)panicfire) * 0.001f) * spreadmult));
                }
                if (ProjectileFX && fpsController)
                {
                    GameObject.Instantiate(ProjectileFX, fpsController.tpsCamera.MainCamera.transform.position + (dirs [i] * 5), Quaternion.LookRotation(dirs [i]));
                }
                dirs [i] *= Force;
            }

            if (fpsController)
            {
                fpsController.Kick(KickPower);
            }

            if (character != null)
            {
                character.DoDamage(fpsController.tpsCamera.MainCamera.transform.position, dirs, Damage, Distance, MaxPenetrate, character.ID, character.Team);
            }

            panicfire += PanicFireMult;
        }

        base.OnAction();
    }