public virtual void Hurt(GameObject victim, float painDealt, float painTaken, StateMachine.CollisionVelocityResults cvr) { Owner.Velocity = cvr.Winner; Owner.CameraScript.CreateShake(Owner.CameraConsts.GetShakeAmount(painTaken, true)); //TODO: Create PlayerState; move all the code underneath to that state. Enemies shouldn't become hurt players or play "hurt player" noises. //Physical noise. WorldConstants.PlayPhysNoises.PlayNoise(PlayerPhysicsNoises.Events.Hurt); //Crowd cheering. if (Owner.ActorData.Team == victim.GetComponent <IDData>().Team) { WorldConstants.CrowdCheering.CreateCrowdCheer(CrowdCheers.Events.PlayerTeamHurt); } else if (painDealt > WorldConstants.HeavyHitPainCutoff) { WorldConstants.CrowdCheering.CreateCrowdCheer(CrowdCheers.Events.PlayerBadlyHurt); } else { WorldConstants.CrowdCheering.CreateCrowdCheer(CrowdCheers.Events.PlayerLightlyHurt); } //Change state. if (!(this is InAirState)) { Owner.ChangeState(ScriptableObject.CreateInstance <InAirState>(), true); } }
public virtual void HurtBy(GameObject attacker, float painDealt, float painTaken, StateMachine.CollisionVelocityResults cvr) { Owner.Velocity = cvr.Loser; Owner.CameraScript.CreateShake(Owner.CameraConsts.GetShakeAmount(painTaken, false)); //TODO: Create PlayerState; move this to that state. Enemies shouldn't become hurt players. Owner.ChangeState(ScriptableObject.CreateInstance <HurtState>(), false); }