Skip to content

Commit

Permalink
Merge branch 'upstream' into our
Browse files Browse the repository at this point in the history
  • Loading branch information
v0id-rift committed Dec 23, 2024
2 parents 47152e3 + 8b296c9 commit c9f3a7e
Show file tree
Hide file tree
Showing 111 changed files with 274 additions and 217 deletions.
3 changes: 3 additions & 0 deletions Content.Server/_RMC14/Rules/CMDistressSignalRuleComponent.cs
Original file line number Diff line number Diff line change
Expand Up @@ -132,4 +132,7 @@ public sealed partial class CMDistressSignalRuleComponent : Component

[DataField]
public ProtoId<RadioChannelPrototype> AllClearChannel = "MarineCommand";

[DataField]
public TimeSpan RoundEndCheckDelay = TimeSpan.FromMinutes(1);
}
13 changes: 13 additions & 0 deletions Content.Server/_RMC14/Rules/CMDistressSignalRuleSystem.cs
Original file line number Diff line number Diff line change
Expand Up @@ -1373,6 +1373,19 @@ private void SpawnAdminFaxArea()

private void EndRound(CMDistressSignalRuleComponent rule, DistressSignalRuleResult result)
{
// you might be wondering what this check is doing here
// the answer is simple
// the absolute unit that wrote game rule system and game ticker made a conveniently named ActiveTick method
// that gets ticked BEFORE THE FUCKING ROUND IS SETUP
// so no marines and no xenos means instant mutual annihilation
// therefore we wait an arbitrary 1 minute
// i fucking hate my life dude
// i slept 3 hours and have to stay up to manually end ANOTHER ROUND OF RMC14
// TODO RMC14 why are we still here
if (rule.StartTime == null || Timing.CurTime - rule.StartTime < rule.RoundEndCheckDelay)
return;

Log.Info($"Attempting to set {nameof(rule)} result to {result}");
if (rule.Result != null)
return;

Expand Down
2 changes: 1 addition & 1 deletion Content.Server/_RMC14/Rules/DistressSignalRuleResult.cs
Original file line number Diff line number Diff line change
Expand Up @@ -7,5 +7,5 @@ public enum DistressSignalRuleResult
MinorMarineVictory,
MajorXenoVictory,
MinorXenoVictory,
AllDied
AllDied,
}
6 changes: 5 additions & 1 deletion Content.Shared/_RMC14/Item/ItemCamouflageSystem.cs
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
using System.Linq;
using Content.Shared.Storage;
using Content.Shared.Storage.EntitySystems;
using Robust.Shared.Containers;
Expand Down Expand Up @@ -30,10 +31,13 @@ public override void Update(float frameTime)
if (_items.Count == 0)
return;

foreach (var ent in _items)
foreach (var ent in _items.ToList())
{
if (!TryComp(ent.Owner, out MetaDataComponent? meta))
{
_items.Dequeue();
continue;
}

if (meta.LastModifiedTick == _time.CurTick)
continue;
Expand Down
2 changes: 2 additions & 0 deletions Content.Shared/_RMC14/Pulling/RMCPullingSystem.cs
Original file line number Diff line number Diff line change
Expand Up @@ -421,6 +421,8 @@ public override void Update(float frameTime)
continue;

var puller = pullable.Puller.Value;
if (puller == default)
continue;

if (_firemanQuery.TryComp(uid, out var fireman) && fireman.BeingCarried)
continue;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,8 @@
using Content.Shared.Interaction;
using Content.Shared.Popups;
using Content.Shared.Verbs;
using Robust.Shared.GameObjects;
using Robust.Shared.Map;
using Robust.Shared.Prototypes;

namespace Content.Shared._RMC14.Xenonids.Construction.ResinWhisper;
Expand All @@ -17,6 +19,7 @@ public sealed class ResinWhispererSystem : EntitySystem
[Dependency] private readonly ExamineSystemShared _examineSystem = default!;
[Dependency] private readonly SharedInteractionSystem _interaction = default!;
[Dependency] private readonly SharedPopupSystem _popup = default!;
[Dependency] private readonly SharedTransformSystem _transform = default!;
[Dependency] private readonly SharedXenoWeedsSystem _weeds = default!;

private readonly List<EntProtoId> _resinDoorPrototypes = new() { "DoorXenoResin", "DoorXenoResinThick" };
Expand Down Expand Up @@ -90,8 +93,11 @@ private void OnRemoteSecreteStructure(Entity<ResinWhispererComponent> ent, ref X
if (_interaction.InRangeUnobstructed(ent, args.TargetCoordinates, ent.Comp.MaxConstructDistance.Value.Float()))
return;

if (!_examineSystem.InRangeUnOccluded(ent, args.TargetCoordinates, ent.Comp.MaxRemoteConstructDistance))
if (!TileIsVisible(ent, args.TargetCoordinates))
{
_popup.PopupClient(Loc.GetString("rmc-xeno-construction-remote-failed-need-line-of-sight"), ent, ent);
return;
}

if (!_weeds.IsOnWeeds(ent.Owner))
{
Expand All @@ -102,4 +108,38 @@ private void OnRemoteSecreteStructure(Entity<ResinWhispererComponent> ent, ref X
constructComp.BuildDelay = ent.Comp.StandardConstructDelay.Value.Multiply(ent.Comp.RemoteConstructDelayMultiplier);
constructComp.BuildRange = ent.Comp.MaxRemoteConstructDistance;
}

private bool TileIsVisible(Entity<ResinWhispererComponent> ent, EntityCoordinates targetCoordinates)
{
//Check coordinates of center, then check 4 corners and 4 edges, clockwise starting from the eastern edge
var pointCoordinates = _transform.ToMapCoordinates(targetCoordinates);
for (int i = 0; i < 9; i++)
{
switch (i)
{
case 1: case 7: case 8:
pointCoordinates = pointCoordinates.Offset(0.499f, 0);
break;
case 2:
pointCoordinates = pointCoordinates.Offset(0, -0.499f);
break;
case 3: case 4:
pointCoordinates = pointCoordinates.Offset(-0.499f, 0);
break;
case 5: case 6:
pointCoordinates = pointCoordinates.Offset(0, 0.499f);
break;
default:
break;
}

if (_examineSystem.InRangeUnOccluded(ent, pointCoordinates, ent.Comp.MaxRemoteConstructDistance))
{
return true;
break;
}
}

return false;
}
}
4 changes: 2 additions & 2 deletions Content.Shared/_RMC14/Xenonids/Heal/SharedXenoHealSystem.cs
Original file line number Diff line number Diff line change
Expand Up @@ -140,7 +140,7 @@ private void OnXenoApplySalveAction(Entity<XenoComponent> ent, ref XenoApplySalv

if (failureMessageId != null)
{
_popup.PopupClient(Loc.GetString(failureMessageId, ("target_xeno", target.ToString())), ent);
_popup.PopupClient(Loc.GetString(failureMessageId, ("target_xeno", target)), ent);
return;
}

Expand Down Expand Up @@ -238,7 +238,7 @@ private void OnXenoSacrificeHealAction(Entity<XenoComponent> ent, ref XenoSacrif

if (failureMessageId != null)
{
_popup.PopupClient(Loc.GetString(failureMessageId, ("target_xeno", target.ToString())), ent);
_popup.PopupClient(Loc.GetString(failureMessageId, ("target_xeno", target)), ent);
return;
}

Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
using Content.Shared._RMC14.Explosion;
using Content.Shared._RMC14.Weapons.Ranged;
using Content.Shared._RMC14.Xenonids.Construction;
using Content.Shared._RMC14.Xenonids.Hive;
using Content.Shared._RMC14.Xenonids.Plasma;
using Content.Shared.FixedPoint;
Expand Down Expand Up @@ -50,7 +51,8 @@ private void OnPreventCollide(Entity<XenoProjectileComponent> ent, ref PreventCo
if (args.Cancelled || ent.Comp.DeleteOnFriendlyXeno)
return;

if (_hive.FromSameHive(ent.Owner, args.OtherEntity))
if (_hive.FromSameHive(ent.Owner, args.OtherEntity) &&
(HasComp<XenoComponent>(args.OtherEntity) || HasComp<HiveCoreComponent>(args.OtherEntity)))
args.Cancelled = true;
}

Expand Down
213 changes: 78 additions & 135 deletions Resources/Changelog/RMC14.yml
Original file line number Diff line number Diff line change
@@ -1,139 +1,4 @@
Entries:
- author: DrSmugleaf
changes:
- message: Added the mortar and HE/Flare mortar shells. Used by anyone with an engineering
skill of 1, they are aimed to a coordinate obtained with the rangefinder and
dialled to account for the random offset, being able to shoot shells from very
far away. More shells and mortars can be bought in Requisitions.
type: Add
- message: Added the combat technician's sentry and upgrade kit to optionally upgrade
it to a mini-sentry. The regular sentry has more health and damage, but shoots
and deploys slower than the mini-sentry. The mini-sentry also doesn't block
movement. Each combat technician only gets access to one sentry.
type: Add
- message: Added the rangefinder, used to pinpoint coordinates for mortars.
type: Add
- message: Added the engineering pamphlet to vendors.
type: Add
- message: Fixed dead xenos blocking bullets.
type: Fix
- message: Fixed tiles on the Almayer's stairs teleport points being weedable and
allowing construction.
type: Fix
- message: Fixed explosions having a lower structural damage than intended.
type: Fix
- message: Fixed xenos not being able to open the scout weapons spec's reactive
thermal tarp.
type: Fix
- message: Fixed CAS fire popups sometimes incorrectly saying that the dropship
is not in flight when trying to fire on a location that has a CAS-proof roof.
type: Fix
- message: Fixed dropship cameras being FOV. They will now allow the pilot to see
everything around the target.
type: Fix
- message: Fixed the named items Patreon perk not renaming items that are bought
within a storage, such as the MK80 and SU-6 pistol cases.
type: Fix
- message: Fixed admin-triggered bioscans not resetting the time for the next bioscan,
sometimes leading to two bioscans in quick succession.
type: Fix
- message: Fixed the dropship arrival overlay being hidden by weeds.
type: Fix
- message: Fixed the QM not spawning with an approved stamp.
type: Fix
- message: Fixed the popup for a hive core already existing being displayed for
all players instead of just the xeno that tried to build it.
type: Fix
- message: Fixed worn armor with explosion armor not reducing explosion damage.
type: Fix
- message: Fixed the global RMC admin UI counting marines and xenos without a player
inside them.
type: Fix
- message: Fixed being able to stack barricades in the same direction and tile.
type: Fix
- message: Added the 5 missing smoke grenades in the Requisitions weapon vendor.
type: Fix
- message: Fixed some replays from very long rounds being cut off early.
type: Fix
- message: Fixed some items being considered contraband.
type: Fix
id: 641
time: '2024-08-30T11:38:12.0000000+00:00'
url: https://github.com/RMC-14/RMC-14/pull/3885
- author: DrSmugleaf
changes:
- message: Added Sam Ali figurine.
type: Add
id: 642
time: '2024-08-30T12:50:01.0000000+00:00'
url: https://github.com/RMC-14/RMC-14/pull/3889
- author: Vermidia
changes:
- message: FTLs get insulated gloves as part of their kit
type: Fix
id: 643
time: '2024-08-30T22:49:02.0000000+00:00'
url: https://github.com/RMC-14/RMC-14/pull/3894
- author: DrSmugleaf
changes:
- message: Fixed Boiler gas spreading into itself and causing massive amounts of
lag. Re-enabled Boiler evolution.
type: Fix
- message: Fixed mortars and sentries not being attackable by xenoniods.
type: Fix
- message: Fixed Requisitions not being able to buy sentry magazines.
type: Fix
id: 644
time: '2024-08-30T22:59:42.0000000+00:00'
url: https://github.com/RMC-14/RMC-14/pull/3897
- author: Vermidia
changes:
- message: Fix larva burst in bags being stuck in said bags
type: Fix
id: 645
time: '2024-08-31T23:53:57.0000000+00:00'
url: https://github.com/RMC-14/RMC-14/pull/3899
- author: Vermidia
changes:
- message: You can now get a general idea of a sentries health by examining it
type: Fix
- message: Fixed being able to activate sentries right next to other active sentries
type: Fix
- message: You can rotate placed sentries with a screwdriver
type: Fix
id: 646
time: '2024-09-04T20:41:13.0000000+00:00'
url: https://github.com/RMC-14/RMC-14/pull/3937
- author: Vermidia
changes:
- message: Fix Lifesaver Bag not starting with an epinephrine autoinjector
type: Fix
id: 647
time: '2024-09-04T21:07:13.0000000+00:00'
url: https://github.com/RMC-14/RMC-14/pull/3905
- author: Vermidia
changes:
- message: Medilathe, useable by med staff and makes various medical supplies out
of plastic, such as hyposprays, high-capacity beakers, and stasis bags.
type: Add
- message: Vial Storage Boxes, which can storage 6 vials or auto-injectors
type: Add
- message: Fix Chem Plus sprite being wrong
type: Fix
- message: Fix surgical tray slots being too few
type: Fix
- message: Lathes are no longer acidable
type: Fix
id: 648
time: '2024-09-04T21:09:11.0000000+00:00'
url: https://github.com/RMC-14/RMC-14/pull/3904
- author: Vermidia
changes:
- message: Marines not wearing shoes slows them down
type: Fix
id: 649
time: '2024-09-04T21:10:59.0000000+00:00'
url: https://github.com/RMC-14/RMC-14/pull/3910
- author: DrSmugleaf
changes:
- message: Fixed some areas incorrectly allowing or prohibiting mortar fire and
Expand Down Expand Up @@ -5054,5 +4919,83 @@
id: 1140
time: '2024-12-22T14:25:02.0000000+00:00'
url: https://github.com/RMC-14/RMC-14/pull/5201
- author: DrSmugleaf
changes:
- message: Added Dave 'Big Dave' Small and Mark Sholl figurines.
type: Add
id: 1141
time: '2024-12-22T14:54:40.0000000+00:00'
url: https://github.com/RMC-14/RMC-14/pull/5204
- author: DrSmugleaf
changes:
- message: Fixed comms towers not being able to be repaired.
type: Fix
- message: Fixed all xeno crit sprites.
type: Fix
- message: Fixed gardener drone overlays error sprite.
type: Fix
- message: Fixed warrior and steelcrest defender injury error sprites.
type: Fix
id: 1142
time: '2024-12-22T21:26:40.0000000+00:00'
url: https://github.com/RMC-14/RMC-14/pull/5207
- author: Dutch-VanDerLinde
changes:
- message: Fixed scarves blocking feeding someone pills.
type: Fix
id: 1143
time: '2024-12-22T21:49:49.0000000+00:00'
url: https://github.com/RMC-14/RMC-14/pull/5208
- author: Vermidia
changes:
- message: Fixed Medical Kit pouch being called a revival pouch in the corpsman
vendor
type: Fix
id: 1144
time: '2024-12-22T21:50:04.0000000+00:00'
url: https://github.com/RMC-14/RMC-14/pull/5206
- author: DrSmugleaf
changes:
- message: Fixed rounds never ending.
type: Fix
- message: Added Cyril 'Cloves' Culkins figurine.
type: Add
id: 1145
time: '2024-12-22T23:45:40.0000000+00:00'
url: https://github.com/RMC-14/RMC-14/pull/5212
- author: Rainbeon
changes:
- message: Fixed Boiler globs phasing through resin walls, membranes, and doors.
type: Fix
id: 1146
time: '2024-12-23T03:21:22.0000000+00:00'
url: https://github.com/RMC-14/RMC-14/pull/5215
- author: Rainbeon
changes:
- message: Fixed the Hivelord Resin Whisperer's Remote Build being too restrictive
on Line of Sight. You now only need to see any tiny part of a tile to remote
build on it, similar to CM13.
type: Fix
id: 1147
time: '2024-12-23T03:25:44.0000000+00:00'
url: https://github.com/RMC-14/RMC-14/pull/5214
- author: DrSmugleaf
changes:
- message: Fixed messages when failing to heal something as a healer drone showing
the target's numerical id instead of their name.
type: Fix
- message: Fixed rounds not ending automatically but actually.
type: Fix
id: 1148
time: '2024-12-23T03:27:22.0000000+00:00'
url: https://github.com/RMC-14/RMC-14/pull/5216
- author: Vermidia
changes:
- message: Fixed Healer drone pheromones not being the same strength as warden prae
pheromones.
type: Fix
id: 1149
time: '2024-12-23T04:08:19.0000000+00:00'
url: https://github.com/RMC-14/RMC-14/pull/5219
Name: RMC14
Order: -1
1 change: 1 addition & 0 deletions Resources/Locale/en-US/_RMC14/xeno/xeno-construction.ftl
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ cm-xeno-construction-failed-cant-build = We can't build there!
cm-xeno-construction-failed-select-structure = We need to select a structure to build first! Use the "Choose Resin Structure" action.
cm-xeno-construction-failed-requires-support = {CAPITALIZE(MAKEPLURAL($choice))} need a wall or resin door next to them to stand up.
rmc-xeno-construction-remote-failed-need-line-of-sight = We need direct line of sight to build!
rmc-xeno-construction-remote-failed-need-on-weeds = We must be standing on weeds to establish a connection to the resin.
rmc-xeno-construction-remote-construct = We focus our plasma into the weeds below us and force the weeds to secrete resin!
rmc-xeno-construction-remote-open-door = We focus our connection to the resin and remotely open the resin door.
Expand Down
Loading

0 comments on commit c9f3a7e

Please sign in to comment.