public void Attack(Vector3 targetDirectiom) { if (Time.time > attackTemp + AttackDelay) { character.DoDamage(); character.AttackAnimation(); attackTemp = Time.time; } }
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; } }
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(); }