private void DamageToolOndamageAnimalRequested(ref DamageAnimalParameters parameters, ref bool shouldallow) { var animal = new UnturnedAnimal(parameters.animal); var amount = (ushort)Math.Min(ushort.MaxValue, Math.Floor(parameters.damage * parameters.times)); var ragdoll = (amount * parameters.direction).ToSystemVector(); var ragdollEffect = parameters.ragdollEffect; var instigator = CSteamID.Nil; switch (parameters.instigator) { case KillVolume or Barrier or InteractableTrap or InteractableSentry: instigator = Provider.server; break; case Bumper bumper: { var vehicle = (InteractableVehicle)s_BumperVehicle.GetValue(bumper); instigator = vehicle is not null and { isDriven : true } ? vehicle.passengers[0].player.playerID.steamID : Provider.server; break; }
private void Events_OnAnimalDamaging(Animal nativeAnimal, ref ushort amount, ref Vector3 ragdoll, ref ERagdollEffect ragdollEffect, ref bool trackKill, ref bool dropLoot, out bool cancel) { UnturnedAnimal animal = new UnturnedAnimal(nativeAnimal); UnturnedAnimalDamagingEvent @event; if (amount >= animal.Health) { @event = new UnturnedAnimalDyingEvent(animal, amount, ragdoll.ToSystemVector(), ragdollEffect, trackKill, dropLoot); } else { @event = new UnturnedAnimalDamagingEvent(animal, amount, ragdoll.ToSystemVector(), ragdollEffect, trackKill, dropLoot); } Emit(@event); amount = @event.DamageAmount; ragdoll = @event.Ragdoll.ToUnityVector(); ragdollEffect = @event.RagdollEffect; trackKill = @event.TrackKill; dropLoot = @event.DropLoot; cancel = @event.IsCancelled; }
private void Events_OnAnimalAdded(Animal nativeAnimal) { UnturnedAnimal animal = new UnturnedAnimal(nativeAnimal); UnturnedAnimalAddedEvent @event = new UnturnedAnimalAddedEvent(animal); Emit(@event); }
public UnturnedAnimalDamagingEvent(UnturnedAnimal animal, ushort damageAmount, Vector3 ragdoll, ERagdollEffect ragdollEffect, CSteamID instigator) : base(animal) { DamageAmount = damageAmount; Ragdoll = ragdoll; RagdollEffect = ragdollEffect; Instigator = instigator; }
private void Events_OnAnimalRevived(Animal nativeAnimal) { var animal = new UnturnedAnimal(nativeAnimal); var @event = new UnturnedAnimalRevivedEvent(animal); Emit(@event); }
private void Events_OnAnimalDead(Animal nativeAnimal, Vector3 ragdoll, ERagdollEffect ragdollEffect) { var animal = new UnturnedAnimal(nativeAnimal); var @event = new UnturnedAnimalDeadEvent(animal, ragdoll.ToSystemVector(), ragdollEffect); Emit(@event); }
public UnturnedAnimalDamagingEvent(UnturnedAnimal animal, ushort damageAmount, Vector3 ragdoll, ERagdollEffect ragdollEffect, bool trackKill, bool dropLoot) : base(animal) { DamageAmount = damageAmount; Ragdoll = ragdoll; RagdollEffect = ragdollEffect; TrackKill = trackKill; DropLoot = dropLoot; }
private void Events_OnAnimalFleeing(Animal nativeAnimal, ref Vector3 direction, ref bool sendToPack, out bool cancel) { UnturnedAnimal animal = new UnturnedAnimal(nativeAnimal); UnturnedAnimalFleeingEvent @event = new UnturnedAnimalFleeingEvent(animal, direction.ToSystemVector(), sendToPack); Emit(@event); direction = @event.Direction.ToUnityVector(); sendToPack = @event.SendToPack; cancel = @event.IsCancelled; }
private void Events_OnAnimalAttackingPoint(Animal nativeAnimal, ref Vector3 point, ref bool sendToPack, out bool cancel) { UnturnedAnimal animal = new UnturnedAnimal(nativeAnimal); UnturnedAnimalAttackingPointEvent @event = new UnturnedAnimalAttackingPointEvent(animal, point.ToSystemVector(), sendToPack); Emit(@event); point = @event.Point.ToUnityVector(); sendToPack = @event.SendToPack; cancel = @event.IsCancelled; }
private void Events_OnAnimalAttackingPlayer(Animal nativeAnimal, ref Player nativePlayer, ref bool sendToPack, out bool cancel) { UnturnedAnimal animal = new UnturnedAnimal(nativeAnimal); UnturnedPlayer player = GetUnturnedPlayer(nativePlayer); UnturnedAnimalAttackingPlayerEvent @event = new UnturnedAnimalAttackingPlayerEvent(animal, player, sendToPack); Emit(@event); nativePlayer = @event.Player?.Player; sendToPack = @event.SendToPack; cancel = @event.IsCancelled; }
private void Events_OnAnimalFleeing(Animal nativeAnimal, ref Vector3 direction, ref bool sendToPack, ref bool cancel) // lgtm [cs/too-many-ref-parameters] { var animal = new UnturnedAnimal(nativeAnimal); var @event = new UnturnedAnimalFleeingEvent(animal, direction.ToSystemVector(), sendToPack) { IsCancelled = cancel }; Emit(@event); direction = @event.Direction.ToUnityVector(); sendToPack = @event.SendToPack; cancel = @event.IsCancelled; }
private void Events_OnAnimalAttackingPoint(Animal nativeAnimal, ref Vector3 point, ref bool sendToPack, ref bool cancel) // lgtm [cs/too-many-ref-parameters] { var animal = new UnturnedAnimal(nativeAnimal); var @event = new UnturnedAnimalAttackingPointEvent(animal, point.ToSystemVector(), sendToPack) { IsCancelled = cancel }; Emit(@event); point = @event.Point.ToUnityVector(); sendToPack = @event.SendToPack; cancel = @event.IsCancelled; }
private void Events_OnAnimalAttackingPlayer(Animal nativeAnimal, ref Player nativePlayer, ref bool sendToPack, // lgtm [cs/too-many-ref-parameters] ref bool cancel) { var animal = new UnturnedAnimal(nativeAnimal); var player = GetUnturnedPlayer(nativePlayer); var @event = new UnturnedAnimalAttackingPlayerEvent(animal, player!, sendToPack) { IsCancelled = cancel }; Emit(@event); nativePlayer = @event.Player.Player; sendToPack = @event.SendToPack; cancel = @event.IsCancelled; }
private void Events_OnAnimalDamaging(Animal nativeAnimal, ref ushort amount, ref Vector3 ragdoll, // lgtm [cs/too-many-ref-parameters] ref ERagdollEffect ragdollEffect, ref bool trackKill, ref bool dropLoot, ref bool cancel) { var animal = new UnturnedAnimal(nativeAnimal); var @event = amount >= animal.Health ? new UnturnedAnimalDyingEvent(animal, amount, ragdoll.ToSystemVector(), ragdollEffect, trackKill, dropLoot) : new UnturnedAnimalDamagingEvent(animal, amount, ragdoll.ToSystemVector(), ragdollEffect, trackKill, dropLoot); @event.IsCancelled = cancel; Emit(@event); amount = @event.DamageAmount; ragdoll = @event.Ragdoll.ToUnityVector(); ragdollEffect = @event.RagdollEffect; trackKill = @event.TrackKill; dropLoot = @event.DropLoot; cancel = @event.IsCancelled; }
public UnturnedAnimalDyingEvent(UnturnedAnimal animal, ushort damageAmount, Vector3 ragdoll, ERagdollEffect ragdollEffect, CSteamID instigator) : base(animal, damageAmount, ragdoll, ragdollEffect, instigator) { }
public UnturnedAnimalAttackingPlayerEvent(UnturnedAnimal animal, UnturnedPlayer player, bool sendToPack) : base(animal, sendToPack) { Player = player; }
public UnturnedAnimalDyingEvent(UnturnedAnimal animal, ushort damageAmount, Vector3 ragdoll, ERagdollEffect ragdollEffect, bool trackKill, bool dropLoot) : base(animal, damageAmount, ragdoll, ragdollEffect, trackKill, dropLoot) { }
protected UnturnedAnimalEvent(UnturnedAnimal animal) { Animal = animal; }
public UnturnedAnimalFleeingEvent(UnturnedAnimal animal, Vector3 direction, bool sendToPack) : base(animal, sendToPack) { Direction = direction; }
public UnturnedAnimalDeadEvent(UnturnedAnimal animal, Vector3 ragdoll, ERagdollEffect ragdollEffect) : base(animal) { Ragdoll = ragdoll; RagdollEffect = ragdollEffect; }
protected UnturnedAnimalSpawnedEvent(UnturnedAnimal animal) : base(animal) { }
public UnturnedAnimalAddedEvent(UnturnedAnimal animal) : base(animal) { }
public UnturnedAnimalRevivedEvent(UnturnedAnimal animal) : base(animal) { }
protected UnturnedAnimalAttackingEvent(UnturnedAnimal animal, bool sendToPack) : base(animal, sendToPack) { }
protected UnturnedAnimalAlertingEvent(UnturnedAnimal animal, bool sendToPack) : base(animal) { SendToPack = sendToPack; }
public UnturnedAnimalAttackingPointEvent(UnturnedAnimal animal, Vector3 point, bool sendToPack) : base(animal, sendToPack) { Point = point; }