Exemple #1
0
        private void OnDamageStructureRequested(CSteamID instigatorSteamId, Transform structureTransform, ref ushort pendingTotalDamage, ref bool shouldAllow, EDamageOrigin damageOrigin)
        {
            if (!StructureManager.tryGetInfo(structureTransform, out _, out _, out var index,
                                             out var region, out var drop))
            {
                return;
            }
            {
                var data      = region.structures[index];
                var buildable = new UnturnedStructureBuildable(data, drop);

                var nativePlayer = PlayerTool.getPlayer(instigatorSteamId);
                var player       = GetUnturnedPlayer(nativePlayer);

                var @event = pendingTotalDamage >= buildable.State.Health
                    ? (UnturnedBuildableDamagingEvent) new UnturnedStructureDestroyingEvent(buildable,
                                                                                            pendingTotalDamage, damageOrigin, player !, instigatorSteamId)
                    : new UnturnedStructureDamagingEvent(buildable, pendingTotalDamage, damageOrigin, player !,
                                                         instigatorSteamId);

                @event.IsCancelled = !shouldAllow;

                Emit(@event);

                pendingTotalDamage = @event.DamageAmount;
                shouldAllow        = [email protected];
            }
        }
        private void OnDamageStructureRequested(CSteamID instigatorSteamId, Transform structureTransform, ref ushort pendingTotalDamage, ref bool shouldAllow, EDamageOrigin damageOrigin)
        {
            if (!StructureManager.tryGetInfo(structureTransform, out _, out _, out var index,
                                             out var region, out var drop))
            {
                return;
            }
            {
                var data      = region.structures[index];
                var buildable = new UnturnedStructureBuildable(data, drop);

                var nativePlayer = Provider.clients.FirstOrDefault(x => x?.playerID.steamID == instigatorSteamId)?.player;
                var player       = nativePlayer == null ? null : new UnturnedPlayer(nativePlayer);

                UnturnedBuildableDamagingEvent @event;
                if (pendingTotalDamage >= buildable.State.Health)
                {
                    @event = new UnturnedStructureDestroyingEvent(buildable, pendingTotalDamage, damageOrigin, player, instigatorSteamId);
                }
                else
                {
                    @event = new UnturnedStructureDamagingEvent(buildable, pendingTotalDamage, damageOrigin, player, instigatorSteamId);
                }

                Emit(@event);

                pendingTotalDamage = @event.DamageAmount;
                shouldAllow        = [email protected];
            }
        }
        private void OnDamageStructureRequested(CSteamID instigatorSteamId, Transform structureTransform,
                                                ref ushort pendingTotalDamage, ref bool shouldAllow, EDamageOrigin damageOrigin)
        {
            var drop = StructureManager.FindStructureByRootTransform(structureTransform);

            if (drop == null)
            {
                return;
            }

            var buildable = new UnturnedStructureBuildable(drop);

            var nativePlayer = PlayerTool.getPlayer(instigatorSteamId);
            var player       = GetUnturnedPlayer(nativePlayer);

            var @event = pendingTotalDamage >= buildable.State.Health
                ? (UnturnedBuildableDamagingEvent) new UnturnedStructureDestroyingEvent(buildable,
                                                                                        pendingTotalDamage, damageOrigin, player)
                : new UnturnedStructureDamagingEvent(buildable, pendingTotalDamage, damageOrigin, player);

            @event.IsCancelled = !shouldAllow;

            Emit(@event);

            pendingTotalDamage = @event.DamageAmount;
            shouldAllow        = [email protected];
        }
 public UnturnedStructureTransformedEvent(UnturnedStructureBuildable buildable) : base(buildable)
 {
 }
 public UnturnedStructureDamagingEvent(UnturnedStructureBuildable buildable, ushort damageAmount,
                                       EDamageOrigin damageOrigin, UnturnedPlayer instigator, CSteamID instigatorId) : base(buildable,
                                                                                                                            damageAmount, damageOrigin, instigator, instigatorId)
 {
 }
 public UnturnedStructureSalvagingEvent(UnturnedStructureBuildable buildable) : base(buildable)
 {
 }
 public UnturnedStructureTransformingEvent(UnturnedStructureBuildable buildable, UnturnedPlayer?instigator,
                                           Vector3 point, Quaternion rotation) : base(buildable, instigator, point, rotation)
 {
 }
Exemple #8
0
 public UnturnedStructureDestroyingEvent(UnturnedStructureBuildable buildable, ushort damageAmount,
                                         EDamageOrigin damageOrigin, UnturnedPlayer?instigator) : base(buildable,
                                                                                                       damageAmount, damageOrigin, instigator)
 {
 }
Exemple #9
0
 public UnturnedStructureDestroyedEvent(UnturnedStructureBuildable buildable) : base(buildable)
 {
 }