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) { }
public UnturnedStructureDestroyingEvent(UnturnedStructureBuildable buildable, ushort damageAmount, EDamageOrigin damageOrigin, UnturnedPlayer?instigator) : base(buildable, damageAmount, damageOrigin, instigator) { }
public UnturnedStructureDestroyedEvent(UnturnedStructureBuildable buildable) : base(buildable) { }