Skip to content

Commit

Permalink
[FIX] backmen_box (#1075)
Browse files Browse the repository at this point in the history
* light fix

* Revert "Merge branch 'Rxup:master' into bakmenBoxFixes"

This reverts commit 86e2ee8, reversing
changes made to 894a08e.
  • Loading branch information
Agronomist-NN authored Feb 25, 2025
1 parent 1ec0121 commit b8e3bd9
Show file tree
Hide file tree
Showing 14 changed files with 315 additions and 358 deletions.
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
using Robust.Shared.EntitySerialization;
using Robust.Shared.EntitySerialization.Systems;
using Robust.Shared.Network;
using Robust.Shared.Player;
Expand Down Expand Up @@ -34,12 +33,7 @@ public sealed class AdminTestArenaSystem : EntitySystem
}

var path = new ResPath(ArenaMapPath);
if (!_loader.TryLoadMap(path, out var map, out var grids, new DeserializationOptions
{
InitializeMaps = true,
PauseMaps = false,
StoreYamlUids = true
}))
if (!_loader.TryLoadMap(path, out var map, out var grids))
throw new Exception($"Failed to load admin arena");

ArenaMap[admin.UserId] = map.Value.Owner;
Expand Down
61 changes: 32 additions & 29 deletions Content.Server/Backmen/Chapel/SacrificialAltarSystem.cs
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,6 @@
using Content.Shared.Backmen.Chapel.Components;
using Content.Shared.Backmen.Psionics.Glimmer;
using Content.Shared.Backmen.Soul;
using Content.Shared.Ghost;
using Content.Shared.Hands.Components;
using Content.Shared.Players;
using Robust.Server.Audio;
Expand Down Expand Up @@ -54,57 +53,61 @@ public override void Initialize()

}

[ValidatePrototypeId<EntityPrototype>]
private const string MaterialBluespace = "MaterialBluespace1";
private void OnDoAfter(EntityUid uid, SacrificialAltarComponent component, SacrificeDoAfterEvent args)
{
_audioSystem.Stop(component.SacrificeStingStream,component.SacrificeStingStream);
component.DoAfter = null;

if (args.Cancelled || args.Handled || args.Args.Target is not { } target)
if (args.Cancelled || args.Handled || args.Args.Target == null)
return;

if (!_mindSystem.TryGetMind(target, out var mindId, out var mind))
// note: we checked this twice in case they could have gone SSD in the doafter time.
if (!TryComp<ActorComponent>(args.Args.Target.Value, out var actor))
return;

_adminLogger.Add(LogType.Action, LogImpact.Extreme, $"{ToPrettyString(args.Args.User):player} sacrificed {ToPrettyString(target):target} on {ToPrettyString(uid):altar}");
if (!_mindSystem.TryGetMind(args.Args.Target.Value, out var mindId, out var mind))
return;

var pool = _prototypeManager.Index(component.RewardPool);
_adminLogger.Add(LogType.Action, LogImpact.Extreme, $"{ToPrettyString(args.Args.User):player} sacrificed {ToPrettyString(args.Args.Target.Value):target} on {ToPrettyString(uid):altar}");

var chance = HasComp<BibleUserComponent>(args.Args.User) ? component.RewardPoolChanceBibleUser : component.RewardPoolChance;
if (!_prototypeManager.TryIndex<WeightedRandomPrototype>(component.RewardPool, out var pool))
return;

var pos = Transform(uid).Coordinates;
var chance = HasComp<BibleUserComponent>(args.Args.User) ? component.RewardPoolChanceBibleUser : component.RewardPoolChance;

if (_robustRandom.Prob(chance))
Spawn(pool.Pick(), pos);
Spawn(pool.Pick(), Transform(uid).Coordinates);

var i = _robustRandom.Next(component.BluespaceRewardMin, component.BlueSpaceRewardMax);
int i = _robustRandom.Next(component.BluespaceRewardMin, component.BlueSpaceRewardMax);

while (i > 0)
{
Spawn(MaterialBluespace, pos);
Spawn("MaterialBluespace1", Transform(uid).Coordinates);
i--;
}

int reduction = _robustRandom.Next(component.GlimmerReductionMin, component.GlimmerReductionMax);
_glimmerSystem.Glimmer -= reduction;

var trap = Spawn(component.TrapPrototype, pos);
_mindSystem.TransferTo(mindId, trap, mind: mind);
if (actor.PlayerSession.ContentData()?.Mind != null)
{
var trap = Spawn(component.TrapPrototype, Transform(uid).Coordinates);
_mindSystem.TransferTo(mindId, trap);

if (TryComp<SoulCrystalComponent>(trap, out var crystalComponent))
crystalComponent.TrueName = Name(target);
if (TryComp<SoulCrystalComponent>(trap, out var crystalComponent))
crystalComponent.TrueName = Name(args.Args.Target.Value);

_metaDataSystem.SetEntityName(trap, Loc.GetString("soul-entity-name", ("trapped", target)));
_metaDataSystem.SetEntityDescription(trap, Loc.GetString("soul-entity-name", ("trapped", target)));
_metaDataSystem.SetEntityName(trap, Loc.GetString("soul-entity-name", ("trapped", args.Args.Target)));
_metaDataSystem.SetEntityDescription(trap, Loc.GetString("soul-entity-name", ("trapped", args.Args.Target)));
}

if (TryComp<BodyComponent>(target, out var body))
if (TryComp<BodyComponent>(args.Args.Target, out var body))
{
_bodySystem.GibBody(target, false, body, true);
_bodySystem.GibBody(args.Args.Target.Value, false, body, false);
}
else
{
QueueDel(target);
QueueDel(args.Args.Target.Value);
}
}

Expand All @@ -119,39 +122,39 @@ protected override void AttemptSacrifice(EntityUid agent, EntityUid patient, Ent
// can't sacrifice yourself
if (agent == patient)
{
_popups.PopupEntity(Loc.GetString("altar-failure-reason-self"), altar, agent, Shared.Popups.PopupType.MediumCaution);
_popups.PopupEntity(Loc.GetString("altar-failure-reason-self"), altar, agent, Shared.Popups.PopupType.SmallCaution);
return;
}

// you need psionic OR bible user
if (!(HasComp<PsionicComponent>(agent) || HasComp<BibleUserComponent>(agent) || HasComp<GhostComponent>(agent)))
if (!HasComp<PsionicComponent>(agent) && !HasComp<BibleUserComponent>(agent))
{
_popups.PopupEntity(Loc.GetString("altar-failure-reason-user"), altar, agent, Shared.Popups.PopupType.MediumCaution);
_popups.PopupEntity(Loc.GetString("altar-failure-reason-user"), altar, agent, Shared.Popups.PopupType.SmallCaution);
return;
}

// and no golems or familiars or whatever should be sacrificing
if (!(HasComp<HumanoidAppearanceComponent>(agent) || HasComp<GhostComponent>(agent)))
if (!HasComp<HumanoidAppearanceComponent>(agent))
{
_popups.PopupEntity(Loc.GetString("altar-failure-reason-user-humanoid"), altar, agent, Shared.Popups.PopupType.MediumCaution);
_popups.PopupEntity(Loc.GetString("altar-failure-reason-user-humanoid"), altar, agent, Shared.Popups.PopupType.SmallCaution);
return;
}

if (!HasComp<PsionicComponent>(patient))
{
_popups.PopupEntity(Loc.GetString("altar-failure-reason-target", ("target", patient)), altar, agent, Shared.Popups.PopupType.MediumCaution);
_popups.PopupEntity(Loc.GetString("altar-failure-reason-target", ("target", patient)), altar, agent, Shared.Popups.PopupType.SmallCaution);
return;
}

if (!HasComp<HumanoidAppearanceComponent>(patient) && !HasComp<MetempsychosisKarmaComponent>(patient))
{
_popups.PopupEntity(Loc.GetString("altar-failure-reason-target-humanoid", ("target", patient)), altar, agent, Shared.Popups.PopupType.MediumCaution);
_popups.PopupEntity(Loc.GetString("altar-failure-reason-target-humanoid", ("target", patient)), altar, agent, Shared.Popups.PopupType.SmallCaution);
return;
}

if (!HasComp<ActorComponent>(patient))
{
_popups.PopupEntity(Loc.GetString("altar-failure-reason-target-ssd", ("target", patient)), altar, agent, Shared.Popups.PopupType.MediumCaution);
_popups.PopupEntity(Loc.GetString("altar-failure-reason-target-ssd", ("target", patient)), altar, agent, Shared.Popups.PopupType.SmallCaution);
return;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -130,12 +130,9 @@ private void OnAnomalySupercritical(EntityUid uid, GlimmerSourceComponent compon
public override void Update(float frameTime)
{
base.Update(frameTime);
var q = EntityQueryEnumerator<GlimmerSourceComponent, MetaDataComponent>();
while (q.MoveNext(out var owner, out var source, out var md))
var q = EntityQueryEnumerator<GlimmerSourceComponent>();
while (q.MoveNext(out var owner, out var source))
{
if(Paused(owner, md))
continue;

if (!source.Active)
continue;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,9 +27,6 @@ protected override void Started(EntityUid uid, GlimmerRevenantRuleComponent comp
var query = EntityQueryEnumerator<GlimmerSourceComponent,TransformComponent>();
while (query.MoveNext(out var source, out _, out var transform))
{
if(Paused(source))
continue;

if (_stationSystem.GetOwningStation(source, transform) == station)
glimmerSources.Add(source);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -38,9 +38,6 @@ protected override void Started(EntityUid uid, GlimmerWispRuleComponent componen
var locations = EntityQueryEnumerator<GlimmerSourceComponent, TransformComponent>();
while (locations.MoveNext(out var sUid, out _, out var transform))
{
if(Paused(sUid))
continue;

if (_stationSystem.GetOwningStation(sUid, transform) == station)
{
glimmerSources.Add(transform.Coordinates);
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,7 @@
using Content.Shared.DoAfter;
using Content.Shared.Random;
using Robust.Shared.Audio;
using Robust.Shared.Audio.Components;
using Robust.Shared.GameStates;
using Robust.Shared.Prototypes;

namespace Content.Shared.Backmen.Chapel.Components;

Expand All @@ -22,28 +20,28 @@ public sealed partial class SacrificialAltarComponent : Component
public Entity<AudioComponent>? SacrificeStingStream;

[DataField("rewardPool")]
public ProtoId<WeightedRandomPrototype> RewardPool = "PsionicArtifactPool";
public string RewardPool = "PsionicArtifactPool";

[DataField("rewardPoolChance")]
public float RewardPoolChance = 0.3f;
public float RewardPoolChance = 0.1f;

[DataField("rewardPoolChanceBibleUser")]
public float RewardPoolChanceBibleUser = 0.8f;
public float RewardPoolChanceBibleUser = 0.5f;

[DataField("bluespaceRewardMin")]
public int BluespaceRewardMin = 4;
public int BluespaceRewardMin = 1;

[DataField("bluespaceRewardMax")]
public int BlueSpaceRewardMax = 8;
public int BlueSpaceRewardMax = 4;

[DataField("glimmerReductionMin")]
public int GlimmerReductionMin = 500;
public int GlimmerReductionMin = 30;

[DataField("glimmerReductionMax")]
public int GlimmerReductionMax = 900;
public int GlimmerReductionMax = 60;

[DataField("trapPrototype")]
public EntProtoId TrapPrototype = "CrystalSoul";
public string TrapPrototype = "CrystalSoul";

/// <summary>
/// Antiexploit.
Expand Down
9 changes: 0 additions & 9 deletions Content.Shared/Backmen/Chapel/SharedSacrificialAltarSystem.cs
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@
using Content.Shared.Buckle.Components;
using Content.Shared.Cuffs;
using Content.Shared.Cuffs.Components;
using Content.Shared.DoAfter;
using Content.Shared.Verbs;

namespace Content.Shared.Backmen.Chapel;
Expand All @@ -11,9 +10,6 @@ public abstract class SharedSacrificialAltarSystem : EntitySystem
{
[Dependency]
private readonly SharedCuffableSystem _cuffable = default!;

[Dependency] private readonly SharedDoAfterSystem _doAfterSystem = default!;

public override void Initialize()
{
base.Initialize();
Expand All @@ -32,11 +28,6 @@ private void OnUnstrappedEvent(EntityUid uid, SacrificialAltarComponent componen
args.Cancelled = true;
return;
}
if (component.DoAfter is {} id)
{
_doAfterSystem.Cancel(id);
component.DoAfter = null;
}
}

private void OnStrappedEvent(EntityUid uid, SacrificialAltarComponent component, ref StrapAttemptEvent args)
Expand Down
14 changes: 0 additions & 14 deletions Resources/Changelog/ChangelogBkm.yml
Original file line number Diff line number Diff line change
Expand Up @@ -1487,17 +1487,3 @@
id: 98
time: '2025-02-23T20:19:00.0000000+00:00'
url: https://github.com/Rxup/space-station-14/pull/1072
- author: Rxup
changes:
- message: "\u0422\u0435\u043F\u0435\u0440\u044C \u044D\u043A\u0442\u043E\u043F\u043B\
\u0430\u0437\u043C\u0430 \u0434\u0430\u0435\u0442 \u044D\u043A\u0442\u043E\u043F\
\u043B\u0430\u0437\u043C\u0443!"
type: Tweak
- message: "\u0418\u0441\u0442\u043E\u0447\u043D\u0438\u043A\u0438 \u0441\u0438\u044F\
\u043D\u0438\u044F \u043D\u0430 \u043F\u0430\u0443\u0437\u0435 \u043D\u0435\
\ \u0431\u0443\u0434\u0435\u0442 \u0434\u0430\u0432\u0430\u0442\u044C \u0441\
\u0438\u044F\u043D\u0438\u0435!"
type: Fix
id: 99
time: '2025-02-24T11:49:08.0000000+00:00'
url: https://github.com/Rxup/space-station-14/pull/1074
Loading

0 comments on commit b8e3bd9

Please sign in to comment.