Example #1
0
        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;
            }
Example #2
0
        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;
        }
Example #3
0
        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;
 }
Example #5
0
        private void Events_OnAnimalRevived(Animal nativeAnimal)
        {
            var animal = new UnturnedAnimal(nativeAnimal);

            var @event = new UnturnedAnimalRevivedEvent(animal);

            Emit(@event);
        }
Example #6
0
        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);
        }
Example #7
0
 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;
 }
Example #8
0
        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;
        }
Example #9
0
        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;
        }
Example #10
0
        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;
        }
Example #11
0
        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;
        }
Example #12
0
        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;
        }
Example #13
0
        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;
        }
Example #14
0
        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)
 {
 }
Example #18
0
 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;
 }
Example #21
0
 protected UnturnedAnimalSpawnedEvent(UnturnedAnimal animal) : base(animal)
 {
 }
 public UnturnedAnimalAddedEvent(UnturnedAnimal animal) : base(animal)
 {
 }
Example #23
0
 public UnturnedAnimalRevivedEvent(UnturnedAnimal animal) : base(animal)
 {
 }
 protected UnturnedAnimalAttackingEvent(UnturnedAnimal animal, bool sendToPack) : base(animal, sendToPack)
 {
 }
Example #25
0
 protected UnturnedAnimalAlertingEvent(UnturnedAnimal animal, bool sendToPack) : base(animal)
 {
     SendToPack = sendToPack;
 }
 public UnturnedAnimalAttackingPointEvent(UnturnedAnimal animal, Vector3 point, bool sendToPack) : base(animal, sendToPack)
 {
     Point = point;
 }