fix upstream

This commit is contained in:
Vigers Ray 2025-05-27 05:33:07 +03:00
parent f3cc466c12
commit 2e142536bb
57 changed files with 140 additions and 356 deletions

View file

@ -53,7 +53,7 @@ public sealed class ChameleonClothingSystem : SharedChameleonClothingSystem
}
// Sunrise-start
if (!TryComp(uid, out ToggleableClothingComponent? helmet)
|| !proto.TryGetComponent(out ToggleableClothingComponent? protoHelmet, _factory))
|| !proto.TryGetComponent(out ToggleableClothingComponent? protoHelmet, Factory))
return;
if (!_proto.TryIndex(protoHelmet.ClothingPrototype.Id, out var prototypeHelmetOther))

View file

@ -313,33 +313,33 @@ public sealed class HumanoidAppearanceSystem : SharedHumanoidAppearanceSystem
}
}
private void AddUndergarments(Entity<HumanoidAppearanceComponent, SpriteComponent> entity, bool undergarmentTop, bool undergarmentBottom)
{
var humanoid = entity.Comp1;
// private void AddUndergarments(Entity<HumanoidAppearanceComponent, SpriteComponent> entity, bool undergarmentTop, bool undergarmentBottom)
// {
// var humanoid = entity.Comp1;
//
// if (undergarmentTop && humanoid.UndergarmentTop != null)
// {
// var marking = new Marking(humanoid.UndergarmentTop, new List<Color> { new Color() });
// if (_markingManager.TryGetMarking(marking, out var prototype))
// {
// // Markings are added to ClientOldMarkings because otherwise it causes issues when toggling the feature on/off.
// humanoid.ClientOldMarkings.Markings.Add(MarkingCategories.UndergarmentTop, new List<Marking> { marking });
// ApplyMarking(prototype, null, true, entity);
// }
// }
//
// if (undergarmentBottom && humanoid.UndergarmentBottom != null)
// {
// var marking = new Marking(humanoid.UndergarmentBottom, new List<Color> { new Color() });
// if (_markingManager.TryGetMarking(marking, out var prototype))
// {
// humanoid.ClientOldMarkings.Markings.Add(MarkingCategories.UndergarmentBottom, new List<Marking> { marking });
// ApplyMarking(prototype, null, true, entity);
// }
// }
// }
if (undergarmentTop && humanoid.UndergarmentTop != null)
{
var marking = new Marking(humanoid.UndergarmentTop, new List<Color> { new Color() });
if (_markingManager.TryGetMarking(marking, out var prototype))
{
// Markings are added to ClientOldMarkings because otherwise it causes issues when toggling the feature on/off.
humanoid.ClientOldMarkings.Markings.Add(MarkingCategories.UndergarmentTop, new List<Marking> { marking });
ApplyMarking(prototype, null, true, entity);
}
}
if (undergarmentBottom && humanoid.UndergarmentBottom != null)
{
var marking = new Marking(humanoid.UndergarmentBottom, new List<Color> { new Color() });
if (_markingManager.TryGetMarking(marking, out var prototype))
{
humanoid.ClientOldMarkings.Markings.Add(MarkingCategories.UndergarmentBottom, new List<Marking> { marking });
ApplyMarking(prototype, null, true, entity);
}
}
}
private void ApplyMarking(MarkingPrototype markingPrototype,
public void ApplyMarking(MarkingPrototype markingPrototype, // Sunrise-Edit
IReadOnlyList<Color>? colors,
bool visible,
Entity<HumanoidAppearanceComponent, SpriteComponent> entity)

View file

@ -40,7 +40,7 @@ public sealed class MechSystem : SharedMechSystem
private void UpdateAppearance(EntityUid uid, MechComponent component, SpriteComponent sprite)
{
if (!_sprite.LayerExists((uid, args.Sprite), MechVisualLayers.Base))
if (!_sprite.LayerExists((uid, sprite), MechVisualLayers.Base))
return;
var state = component.BaseState;
@ -61,7 +61,7 @@ public sealed class MechSystem : SharedMechSystem
drawDepth = DrawDepth.SmallMobs;
}
_sprite.LayerSetRsiState((uid, args.Sprite), MechVisualLayers.Base, state);
_sprite.SetDrawDepth((uid, args.Sprite), (int)drawDepth);
_sprite.LayerSetRsiState((uid, sprite), MechVisualLayers.Base, state);
_sprite.SetDrawDepth((uid, sprite), (int)drawDepth);
}
}

View file

@ -204,7 +204,7 @@ public sealed partial class AnalysisConsoleMenu : FancyWindow
EffectValueLabel.SetMarkup(Loc.GetString("analysis-console-info-effect-value",
("state", hasInfo),
("info", _ent.GetComponentOrNull<MetaDataComponent>(node.Value)?.EntityDescription ?? string.Empty)));
("info", Loc.GetString("artifact-effect-hint-data-deleted")))); // _ent.GetComponentOrNull<MetaDataComponent>(node.Value)?.EntityDescription ?? string.Empty
var predecessorNodes = _xenoArtifact.GetPredecessorNodes(artifact.Value.Owner, node.Value);
if (!hasInfo)

View file

@ -337,7 +337,8 @@ public sealed partial class SponsorTierEntry : Control
Scale = new Vector2(4, 4),
};
_entityManager.System<HumanoidAppearanceSystem>().ApplyMarking(markingProto, null, true, humanoidAppearance, spriteComponent);
_entityManager.System<HumanoidAppearanceSystem>().ApplyMarking(markingProto, null, true,
(dummyEnt, humanoidAppearance, spriteComponent));
view.SetEntity(dummyEnt);
_spriteViews.Add(view);

View file

@ -1,6 +1,6 @@
using Content.Server.Bed.Components;
using Content.Server.Body.Systems;
using Content.Shared.Actions;
using Content.Server.Power.EntitySystems;
using Content.Shared.Bed;
using Content.Shared.Bed.Components;
using Content.Shared.Bed.Sleep;
@ -10,7 +10,6 @@ using Content.Shared.Damage;
using Content.Shared.Emag.Systems;
using Content.Shared.Mobs.Systems;
using Content.Shared.Power;
using Robust.Shared.Timing;
namespace Content.Server.Bed
{
@ -20,8 +19,6 @@ namespace Content.Server.Bed
[Dependency] private readonly EmagSystem _emag = default!;
[Dependency] private readonly SharedAppearanceSystem _appearance = default!;
[Dependency] private readonly MobStateSystem _mobStateSystem = default!;
[Dependency] private readonly IGameTiming _timing = default!;
[Dependency] private readonly ActionContainerSystem _actionContainer = default!;
private EntityQuery<SleepingComponent> _sleepingQuery;
@ -31,36 +28,12 @@ namespace Content.Server.Bed
_sleepingQuery = GetEntityQuery<SleepingComponent>();
// Sunrise-Start
SubscribeLocalEvent<CanSleepOnBuckleComponent, UnstrappedEvent>(OnUnstrapped);
SubscribeLocalEvent<CanSleepOnBuckleComponent, StrappedEvent>(OnStrapped);
// Sunrise-End
SubscribeLocalEvent<StasisBedComponent, StrappedEvent>(OnStasisStrapped);
SubscribeLocalEvent<StasisBedComponent, UnstrappedEvent>(OnStasisUnstrapped);
SubscribeLocalEvent<StasisBedComponent, PowerChangedEvent>(OnPowerChanged);
SubscribeLocalEvent<StasisBedComponent, GotEmaggedEvent>(OnEmagged);
}
// Sunrise-Start
private void OnStrapped(Entity<CanSleepOnBuckleComponent> bed, ref StrappedEvent args)
{
var canSleep = EnsureComp<CanSleepComponent>(args.Buckle);
_actionsSystem.AddAction(args.Buckle.Owner, ref canSleep.SleepAction, SleepingSystem.SleepActionId, args.Buckle.Owner);
}
private void OnUnstrapped(Entity<CanSleepOnBuckleComponent> bed, ref UnstrappedEvent args)
{
if (!TryComp<CanSleepComponent>(args.Buckle.Owner, out var canSleep))
return;
RemComp<CanSleepComponent>(args.Buckle.Owner);
_actionsSystem.RemoveAction(args.Buckle.Owner, canSleep.SleepAction);
if (canSleep.SleepAction != null)
_actionContainer.RemoveAction(canSleep.SleepAction.Value);
}
// Sunrise-End
public override void Update(float frameTime)
{
base.Update(frameTime);

View file

@ -1,12 +1,27 @@
using Content.Server.Cargo.Systems;
using Content.Shared.Cargo;
using Robust.Shared.Audio;
using Robust.Shared.GameStates;
using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom;
namespace Content.Server.Cargo.Components;
[RegisterComponent]
[Access(typeof(CargoSystem))]
[RegisterComponent, NetworkedComponent, AutoGenerateComponentState, AutoGenerateComponentPause]
[Access(typeof(SharedCargoSystem))]
public sealed partial class CargoPalletConsoleComponent : Component
{
[DataField]
public SoundSpecifier ErrorSound = new SoundCollectionSpecifier("CargoError");
/// <summary>
/// The time at which the console will be able to play the deny sound.
/// </summary>
[DataField(customTypeSerializer: typeof(TimeOffsetSerializer)), AutoPausedField]
public TimeSpan NextDenySoundTime = TimeSpan.Zero;
/// <summary>
/// The time between playing the deny sound.
/// </summary>
[DataField]
public TimeSpan DenySoundDelay = TimeSpan.FromSeconds(2);
}

View file

@ -41,7 +41,7 @@ public sealed partial class CargoSystem
if (!_accessReaderSystem.IsAllowed(args.Actor, ent))
{
ConsolePopup(args.Actor, Loc.GetString("cargo-console-order-not-allowed"));
PlayDenySound(ent, ent.Comp.ErrorSound);
PlayDenySound(ent, ent.Comp);
return;
}
@ -93,7 +93,7 @@ public sealed partial class CargoSystem
if (!_accessReaderSystem.FindAccessTags(args.Actor).Intersect(ent.Comp.RemoveLimitAccess).Any())
{
ConsolePopup(args.Actor, Loc.GetString("cargo-console-order-not-allowed"));
PlayDenySound(ent, ent.Comp.ErrorSound);
PlayDenySound(ent, ent.Comp);
return;
}

View file

@ -150,7 +150,7 @@ namespace Content.Server.Cargo.Systems
if (!_accessReaderSystem.IsAllowed(player, uid))
{
ConsolePopup(args.Actor, Loc.GetString("cargo-console-order-not-allowed"));
PlayDenySound(uid, component.ErrorSound);
PlayDenySound(uid, component);
return;
}
@ -162,7 +162,7 @@ namespace Content.Server.Cargo.Systems
!TryGetOrderDatabase(station, out var orderDatabase))
{
ConsolePopup(args.Actor, Loc.GetString("cargo-console-station-not-found"));
PlayDenySound(uid, component.ErrorSound);
PlayDenySound(uid, component);
return;
}
@ -177,7 +177,7 @@ namespace Content.Server.Cargo.Systems
if (!_protoMan.HasIndex<EntityPrototype>(order.ProductId))
{
ConsolePopup(args.Actor, Loc.GetString("cargo-console-invalid-product"));
PlayDenySound(uid, component.ErrorSound);
PlayDenySound(uid, component);
return;
}
@ -188,7 +188,7 @@ namespace Content.Server.Cargo.Systems
if (amount >= capacity)
{
ConsolePopup(args.Actor, Loc.GetString("cargo-console-too-many"));
PlayDenySound(uid, component.ErrorSound);
PlayDenySound(uid, component);
return;
}
@ -199,7 +199,7 @@ namespace Content.Server.Cargo.Systems
{
order.OrderQuantity = cappedAmount;
ConsolePopup(args.Actor, Loc.GetString("cargo-console-snip-snip"));
PlayDenySound(uid, component.ErrorSound);
PlayDenySound(uid, component);
}
var cost = order.Price * order.OrderQuantity;
@ -209,7 +209,7 @@ namespace Content.Server.Cargo.Systems
if (cost > accountBalance)
{
ConsolePopup(args.Actor, Loc.GetString("cargo-console-insufficient-funds", ("cost", cost)));
PlayDenySound(uid, component.ErrorSound);
PlayDenySound(uid, component);
return;
}
@ -224,7 +224,7 @@ namespace Content.Server.Cargo.Systems
if (ev.FulfillmentEntity == null)
{
ConsolePopup(args.Actor, Loc.GetString("cargo-console-unfulfilled"));
PlayDenySound(uid, component.ErrorSound);
PlayDenySound(uid, component);
return;
}
}
@ -386,7 +386,7 @@ namespace Content.Server.Cargo.Systems
if (!TryAddOrder(stationUid.Value, component.Account, data, orderDatabase))
{
PlayDenySound(uid, component.ErrorSound);
PlayDenySound(uid, component);
return;
}
@ -433,12 +433,21 @@ namespace Content.Server.Cargo.Systems
_popup.PopupCursor(text, actor);
}
private void PlayDenySound(EntityUid uid, SoundSpecifier errorSound) // Sunrise-Edit
private void PlayDenySound(EntityUid uid, CargoOrderConsoleComponent component)
{
if (_timing.CurTime >= component.NextDenySoundTime)
{
component.NextDenySoundTime = _timing.CurTime + component.DenySoundDelay;
_audio.PlayPvs(_audio.ResolveSound(errorSound), uid);
_audio.PlayPvs(_audio.ResolveSound(component.ErrorSound), uid);
}
}
private void PlayDenySound(EntityUid uid, CargoPalletConsoleComponent component)
{
if (_timing.CurTime >= component.NextDenySoundTime)
{
component.NextDenySoundTime = _timing.CurTime + component.DenySoundDelay;
_audio.PlayPvs(_audio.ResolveSound(component.ErrorSound), uid);
}
}

View file

@ -219,7 +219,7 @@ public sealed partial class CargoSystem
if (!_accessReaderSystem.IsAllowed(player, uid))
{
ConsolePopup(args.Actor, Loc.GetString("cargo-console-order-not-allowed"));
PlayDenySound(uid, component.ErrorSound);
PlayDenySound(uid, component);
return;
}
// Sunrise-End

View file

@ -55,6 +55,7 @@ using Content.Shared.Mobs.Components;
using Content.Server.Stunnable;
using Content.Shared.Jittering;
using System.Linq;
using Content.Server.Damage.Systems;
using Content.Shared._RMC14.Xenonids.Screech;
using Content.Shared.Forensics.Components;
using Content.Shared.Radio;

View file

@ -136,7 +136,7 @@ public sealed class AbsorbentSystem : SharedAbsorbentSystem
if (footPrints.Count > 0)
{
if (!_solutionContainerSystem.TryGetSolution(args.Used, AbsorbentComponent.SolutionName, out var absorberSoln))
if (!_solutionContainerSystem.TryGetSolution(args.Used, component.SolutionName, out var absorberSoln))
return;
var tileCenterPos = _mapSystem.GridTileToLocal(gridUid.Value, grid, tileRef.GridIndices);

View file

@ -67,7 +67,7 @@ public sealed class FoorprintAreaCleaningSystem : EntitySystem
if (footPrints.Count > 0)
{
if (!_solutionContainerSystem.TryGetSolution(uid, AbsorbentComponent.SolutionName, out var absorberSoln))
if (!_solutionContainerSystem.TryGetSolution(uid, absorbent.SolutionName, out var absorberSoln))
return;
var tileCenterPos = _mapSystem.GridTileToLocal(gridUid, grid, tileRef.GridIndices);

View file

@ -2,6 +2,7 @@ using Content.Server.Cargo.Components;
using Content.Server.Cargo.Systems;
using Content.Server.Station.Events;
using Content.Shared._Sunrise.Economy;
using Content.Shared.Cargo;
using Content.Shared.GameTicking;
using Robust.Shared.Containers;

View file

@ -135,7 +135,7 @@ namespace Content.Server._Sunrise.Fugitive
if (_roleSystem.MindHasRole<FugitiveRoleComponent>(mindId))
{
_roleSystem.MindTryRemoveRole<FugitiveRoleComponent>(mindId);
_roleSystem.MindRemoveRole<FugitiveRoleComponent>(mindId);
}
_roleSystem.MindAddRole(mindId, MindRole);

View file

@ -3,7 +3,7 @@ using Robust.Shared.Prototypes;
using System.IO;
using System.Linq;
using System.Text.Json;
using Content.Server.EntityEffects.Effects;
using Content.Shared.EntityEffects.Effects;
namespace Content.Server._Sunrise.GuideGenerator;
public sealed class HealthChangeReagentsJsonGenerator

View file

@ -7,7 +7,7 @@ using Content.Shared.Kitchen;
using Robust.Shared.Prototypes;
using Content.Shared.Construction.Prototypes;
using Content.Server.Construction.Components;
using Content.Server.EntityEffects.Effects;
using Content.Shared.EntityEffects.Effects;
namespace Content.Server.GuideGenerator;

View file

@ -160,7 +160,7 @@ namespace Content.Server._Sunrise.PlanetPrison
if (_roleSystem.MindHasRole<PlanetPrisonerRoleComponent>(mindId))
{
_roleSystem.MindTryRemoveRole<PlanetPrisonerRoleComponent>(mindId);
_roleSystem.MindRemoveRole<PlanetPrisonerRoleComponent>(mindId);
}
_roleSystem.MindAddRole(mindId, MindRole);

View file

@ -1,4 +1,5 @@
using Content.Server.Movement.Systems;
using Content.Server.Damage.Systems;
using Content.Server.Movement.Systems;
using Content.Server.Popups;
using Content.Shared.Damage.Systems;
using Content.Shared.Interaction.Events;

View file

@ -3,7 +3,6 @@ using Content.Shared.Bed.Components;
using Content.Shared.Bed.Sleep;
using Content.Shared.Buckle.Components;
using Robust.Shared.Timing;
using Robust.Shared.Utility;
namespace Content.Shared.Bed;
@ -18,11 +17,35 @@ public abstract class SharedBedSystem : EntitySystem
{
base.Initialize();
// Sunrise-Start
SubscribeLocalEvent<_Sunrise.Bed.CanSleepOnBuckleComponent, UnstrappedEvent>(OnUnstrapped);
SubscribeLocalEvent<_Sunrise.Bed.CanSleepOnBuckleComponent, StrappedEvent>(OnStrapped);
// Sunrise-End
SubscribeLocalEvent<HealOnBuckleComponent, MapInitEvent>(OnHealMapInit);
SubscribeLocalEvent<HealOnBuckleComponent, StrappedEvent>(OnStrapped);
SubscribeLocalEvent<HealOnBuckleComponent, UnstrappedEvent>(OnUnstrapped);
}
// Sunrise-Start
private void OnStrapped(Entity<_Sunrise.Bed.CanSleepOnBuckleComponent> bed, ref StrappedEvent args)
{
var canSleep = EnsureComp<CanSleepComponent>(args.Buckle);
_actionsSystem.AddAction(args.Buckle.Owner, ref canSleep.SleepAction, SleepingSystem.SleepActionId, args.Buckle.Owner);
}
private void OnUnstrapped(Entity<_Sunrise.Bed.CanSleepOnBuckleComponent> bed, ref UnstrappedEvent args)
{
if (!TryComp<CanSleepComponent>(args.Buckle.Owner, out var canSleep))
return;
RemComp<CanSleepComponent>(args.Buckle.Owner);
_actionsSystem.RemoveAction(args.Buckle.Owner, canSleep.SleepAction);
if (canSleep.SleepAction != null)
_actConts.RemoveAction(canSleep.SleepAction.Value);
}
// Sunrise-End
private void OnHealMapInit(Entity<HealOnBuckleComponent> ent, ref MapInitEvent args)
{
_actConts.EnsureAction(ent.Owner, ref ent.Comp.SleepAction, SleepingSystem.SleepActionId);
@ -33,16 +56,10 @@ public abstract class SharedBedSystem : EntitySystem
{
EnsureComp<HealOnBuckleHealingComponent>(bed);
bed.Comp.NextHealTime = Timing.CurTime + TimeSpan.FromSeconds(bed.Comp.HealTime);
_actionsSystem.AddAction(args.Buckle, ref bed.Comp.SleepAction, SleepingSystem.SleepActionId, bed);
Dirty(bed);
// Single action entity, cannot strap multiple entities to the same bed.
DebugTools.AssertEqual(args.Strap.Comp.BuckledEntities.Count, 1);
}
private void OnUnstrapped(Entity<HealOnBuckleComponent> bed, ref UnstrappedEvent args)
{
_actionsSystem.RemoveAction(args.Buckle, bed.Comp.SleepAction);
_sleepingSystem.TryWaking(args.Buckle.Owner);
RemComp<HealOnBuckleHealingComponent>(bed);
}

View file

@ -110,19 +110,19 @@ public abstract class SharedChameleonClothingSystem : EntitySystem
if (helmet.ClothingUid == null)
return;
if (!proto.TryGetComponent(out ToggleableClothingComponent? protoHelmet, _factory))
if (!proto.TryGetComponent(out ToggleableClothingComponent? protoHelmet, Factory))
return;
if (!_proto.TryIndex(protoHelmet.ClothingPrototype.Id, out var prototypeHelmetOther))
return;
if (TryComp(helmet.ClothingUid, out ClothingComponent? helmetClothing)
&& prototypeHelmetOther.TryGetComponent(out ClothingComponent? otherHelmetClothing, _factory))
&& prototypeHelmetOther.TryGetComponent(out ClothingComponent? otherHelmetClothing, Factory))
{
_clothingSystem.CopyVisuals(helmet.ClothingUid.Value, otherHelmetClothing, helmetClothing);
}
if (TryComp(helmet.ClothingUid, out AppearanceComponent? helmetApperance)
&& prototypeHelmetOther.TryGetComponent(out AppearanceComponent? otherHelmetApperance, _factory))
&& prototypeHelmetOther.TryGetComponent(out AppearanceComponent? otherHelmetApperance, Factory))
{
_appearance.AppendData(otherHelmetApperance, helmet.ClothingUid.Value);
Dirty(uid, helmetApperance);

View file

@ -1,4 +1,4 @@
namespace Content.Server.Bed.Components
namespace Content.Shared._Sunrise.Bed
{
[RegisterComponent]
public sealed partial class CanSleepOnBuckleComponent : Component

View file

@ -1,15 +1,16 @@
using System.Threading;
using Content.Server.Popups;
using Content.Server.Stunnable;
using Content.Shared._Sunrise.BloodCult.Components;
using Content.Shared._Sunrise.BloodCult.Pentagram;
using Content.Shared.EntityEffects;
using Content.Shared.IdentityManagement;
using Content.Shared.Popups;
using Content.Shared.Stunnable;
using Content.Shared.Tag;
using JetBrains.Annotations;
using Robust.Shared.Prototypes;
using Timer = Robust.Shared.Timing.Timer;
namespace Content.Server._Sunrise.BloodCult.HolyWater;
namespace Content.Shared._Sunrise.BloodCult;
[ImplicitDataDefinitionForInheritors]
[MeansImplicitUse]
@ -32,15 +33,15 @@ public sealed partial class DeconvertCultist : EntityEffect
if (component.HolyConvertToken != null)
return;
var random = new Random();
var random = new System.Random();
var convert = random.Next(1, 101) <= component.HolyConvertChance;
if (!convert)
return;
args.EntityManager.System<StunSystem>()
args.EntityManager.System<SharedStunSystem>()
.TryParalyze(uid, TimeSpan.FromSeconds(5f), true);
var target = Identity.Name(uid, args.EntityManager);
args.EntityManager.System<PopupSystem>()
args.EntityManager.System<SharedPopupSystem>()
.PopupEntity(Loc.GetString("holy-water-started-converting", ("target", target)), uid);
component.HolyConvertToken = new CancellationTokenSource();
@ -56,8 +57,8 @@ public sealed partial class DeconvertCultist : EntityEffect
cultist.HolyConvertToken = null;
entityManager.RemoveComponent<BloodCultistComponent>(uid);
if (entityManager.HasComponent<PentagramComponent>(uid))
entityManager.RemoveComponent<PentagramComponent>(uid);
if (entityManager.HasComponent<SharedPentagramComponent>(uid))
entityManager.RemoveComponent<SharedPentagramComponent>(uid);
if (entityManager.HasComponent<CultMemberComponent>(uid))
entityManager.RemoveComponent<CultMemberComponent>(uid);
entityManager.System<TagSystem>().RemoveTag(uid, "Cultist");

View file

@ -1,8 +1,10 @@
// © SUNRISE, An EULA/CLA with a hosting restriction, full text: https://github.com/space-sunrise/space-station-14/blob/master/CLA.txt
using Content.Shared.Chemistry.Reagent;
using Robust.Shared.Prototypes;
using Content.Shared._Sunrise.Disease;
using Content.Shared.EntityEffects;
using Robust.Shared.Prototypes;
namespace Content.Shared._Sunrise.Disease;
public sealed partial class CureDiseaseInfection : EntityEffect
{
[DataField]

View file

@ -143,7 +143,6 @@ public sealed class NightVisionDeviceSystem : EntitySystem
if (ent.Comp.IsPowered)
{
var draw = Comp<PowerCellDrawComponent>(ent.Owner);
_cell.QueueUpdate((ent.Owner, draw));
_cell.SetDrawEnabled((ent.Owner, draw), ent.Comp.Activated);
}

View file

@ -2,7 +2,7 @@ using Content.Server.Sunrise.FleshCult;
using Content.Shared.EntityEffects;
using Robust.Shared.Prototypes;
namespace Content.Server._Sunrise.FleshCult;
namespace Content.Shared._Sunrise.FleshCult;
public sealed partial class CauseFleshCultInfection : EntityEffect
{

View file

@ -1,17 +0,0 @@
ent-MiniSyringeCryostasis = cryostasis mini syringe
.desc = A cryostasis syringe, reshaped to fit inside of a gun.
.suffix = Cryostasis, MiniSyringe
ent-MiniSyringeBluespace = bluespace mini syringe
.desc = A Bluespace syringe, reshaped to fit inside of a gun.
.suffix = Bluespace, MiniSyringe
ent-PrefilledMiniSyringe = { ent-MiniSyringe }
.desc = { ent-MiniSyringe.desc }
ent-MiniSyringeMuteToxin = { ent-PrefilledMiniSyringe }
.suffix = MuteToxin, MiniSyringe
.desc = { ent-PrefilledMiniSyringe.desc }
ent-MiniSyringeFresium = { ent-PrefilledMiniSyringe }
.suffix = Fresium, MiniSyringe
.desc = { ent-PrefilledMiniSyringe.desc }
ent-MiniSyringeCarpoToxin = { ent-PrefilledMiniSyringe }
.suffix = CarpoToxin, MiniSyringe
.desc = { ent-PrefilledMiniSyringe.desc }

View file

@ -1,18 +0,0 @@
ent-LauncherSyringeMed = syringe gun
.suffix = Standart
.desc = { ent-LauncherSyringe.desc }
ent-LauncherSyringePistol = syringe pistol
.suffix = Compact
.desc = { ent-LauncherSyringe.desc }
ent-LauncherSyringePistolFilled = syringe pistol
.suffix = Compact, Filled
.desc = { ent-LauncherSyringe.desc }
ent-LauncherSyringeRapid = Rapid syringe gun
.suffix = Auto
.desc = { ent-LauncherSyringe.desc }
ent-LauncherSyringeRapidFilled = Rapid syringe gun
.suffix = Auto, Filled
.desc = { ent-LauncherSyringeRapid.desc }
ent-LauncherSyringeSMG = Syringe SMG
.suffix = Admeme
.desc = { ent-LauncherSyringe.desc }

View file

@ -4,4 +4,6 @@ reagent-physical-desc-aphrodesiac = Shimmering, ruby-red liquid that glows softl
reagent-name-celliminol = celliminol
reagent-desc-celliminol = A cryogenics chemical. A powerful chemical developed by Qillu.
reagent-name-h-32 = H-32
reagent-desc-h-32 = A reagent developed in the field with increased radiation
reagent-desc-h-32 = A reagent developed in the field with increased radiation
reagent-name-inc = inc
reagent-desc-inc = inc

View file

@ -1,5 +1,3 @@
ent-ClothingOuterHardsuitBasic = basic hardsuit
.desc = A basic, universal hardsuit that protects the wearer against the horrors of life in space. Beats not having a hardsuit, at least.
ent-ClothingOuterHardsuitAtmos = atmos hardsuit
.desc = A special suit that protects against hazardous, low pressure environments. Has thermal shielding.
ent-ClothingOuterHardsuitEngineering = engineering hardsuit

View file

@ -1,17 +1 @@
ent-MiniSyringeCryostasis = мини криостазис шприц
.desc = криостазис шприц, переделанный под пистолет.
.suffix = Блюспейс, Минишприц
ent-MiniSyringeBluespace = мини блюспейс шприц
.desc = блюспейс шприц, переделанный под пистолет.
.suffix = Блюспейс, Минишприц
ent-PrefilledMiniSyringe = { ent-MiniSyringe }
.desc = { ent-MiniSyringe.desc }
ent-MiniSyringeMuteToxin = { ent-PrefilledMiniSyringe }
.suffix = МутТоксин, Минишприц
.desc = { ent-PrefilledMiniSyringe.desc }
ent-MiniSyringeFresium = { ent-PrefilledMiniSyringe }
.suffix = Фрезиум, Минишприц
.desc = { ent-PrefilledMiniSyringe.desc }
ent-MiniSyringeCarpoToxin = { ent-PrefilledMiniSyringe }
.suffix = КарпТоксин, Минишприц
.desc = { ent-PrefilledMiniSyringe.desc }

View file

@ -1,18 +0,0 @@
ent-LauncherSyringeMed = шприцемёт
.suffix = Стандартный
.desc = Зарядите отравленными шприцами, чтобы получить максимальное удовольствие.
ent-LauncherSyringePistol = Компактный шприцемёт
.suffix = Компактный
.desc = Зарядите отравленными шприцами, чтобы получить максимальное удовольствие. теперь в смешном размере.
ent-LauncherSyringePistolFilled = Компактный шприцемёт
.suffix = Компактный, Заполнен
.desc = { ent-LauncherSyringePistol.desc }
ent-LauncherSyringeRapid = Авто-шприцемёт
.suffix = Автоматический
.desc = Зарядите в пациента до 6-и шприцов с Ипекаком, чтобы получить максимальное удовольствие.
ent-LauncherSyringeRapidFilled = Авто-шприцемёт
.suffix = Автоматический, Заполнен
.desc = Зарядите в пациента до 10-ми шприцов с Ипекаком, чтобы получить максимальное удовольствие.
ent-LauncherSyringeSMG = Шприцемёт ПП
.suffix = Адмеме
.desc = Зарядите в членов экипажа до 20-ми шприцов с соком WEH, чтобы получить максимальное удовольствие.

View file

@ -15,3 +15,5 @@ reagent-desc-celliminol = Химикат криогенного действия
reagent-name-grcoffee = Измельченный кофе
reagent-desc-grcoffee = Измельченные зерна кофе.
reagent-physical-desc-grcoffee = Коричневая жидкость, слегка густоватая.
reagent-name-inc = чернила
reagent-desc-inc = чернила

View file

@ -1,5 +1,3 @@
ent-ClothingOuterHardsuitBasic = базовый скафандр
.desc = Базовый, универсальный скафандр, защищающий владельца от ужасов пребывания в космосе. По крайней мере, это лучше, чем отсутствие скафандра.
ent-ClothingOuterHardsuitAtmos = скафандр атмос-техника
.desc = Специальный костюм, защищающий от опасной среды с низким давлением. Имеет тепловую защиту.
ent-ClothingOuterHardsuitEngineering = скафандр инженера

View file

@ -1090,13 +1090,6 @@ entities:
- type: Transform
pos: -7.2017837,-9.2111435
parent: 1
- proto: BoxMiniSyringe
entities:
- uid: 391
components:
- type: Transform
pos: 0.5902469,-11.434221
parent: 1
- proto: BoxShotgunIncendiary
entities:
- uid: 753

View file

@ -17475,13 +17475,6 @@ entities:
- type: Transform
pos: 0.97444147,20.461615
parent: 2
- proto: BoxMiniSyringe
entities:
- uid: 1102
components:
- type: Transform
pos: -10.317339,5.7388086
parent: 2
- proto: BoxMouthSwab
entities:
- uid: 1103

View file

@ -24992,18 +24992,6 @@ entities:
- type: Transform
pos: -20.536755,-5.462179
parent: 2
- proto: BoxMiniSyringe
entities:
- uid: 11194
components:
- type: Transform
pos: 36.64888,-38.499374
parent: 2
- uid: 31353
components:
- type: Transform
pos: 19.224562,-20.718649
parent: 2
- proto: BoxMouthSwab
entities:
- uid: 1348
@ -143568,18 +143556,6 @@ entities:
- type: Transform
pos: 42.737797,-10.2649
parent: 2
- proto: LauncherSyringeMed
entities:
- uid: 11208
components:
- type: Transform
pos: 36.537766,-38.2434
parent: 2
- uid: 31855
components:
- type: Transform
pos: 19.00234,-20.505686
parent: 2
- proto: LeavesCannabis
entities:
- uid: 30564

View file

@ -28944,13 +28944,6 @@ entities:
- type: Transform
pos: 159.67625,127.97202
parent: 2
- proto: BoxMiniSyringe
entities:
- uid: 1609
components:
- type: Transform
pos: 115.09472,47.53215
parent: 2
- proto: BoxMouthSwab
entities:
- uid: 1610

View file

@ -112517,40 +112517,6 @@ entities:
- type: Transform
pos: -55.49862,-48.5602
parent: 2
- proto: ClothingOuterHardsuitBasic
entities:
- uid: 16053
components:
- type: Transform
pos: -114.51022,21.647438
parent: 2
- type: GroupExamine
group:
- hoverMessage: ""
contextText: verb-examine-group-other
icon: /Textures/Interface/examine-star.png
components:
- Armor
- ClothingSpeedModifier
entries:
- message: Понижает вашу скорость на [color=yellow]20%[/color].
priority: 0
component: ClothingSpeedModifier
- message: >-
Обеспечивает следующую защиту:
- [color=yellow]Ударный[/color] урон снижается на [color=lightblue]10%[/color].
- [color=yellow]Режущий[/color] урон снижается на [color=lightblue]10%[/color].
- [color=yellow]Колющий[/color] урон снижается на [color=lightblue]10%[/color].
- [color=yellow]Кислотный[/color] урон снижается на [color=lightblue]10%[/color].
- [color=orange]Взрывной[/color] урон снижается на [color=lightblue]10%[/color].
priority: 0
component: Armor
title: null
- proto: ClothingOuterHardsuitBlueShield
entities:
- uid: 38617
@ -186531,7 +186497,7 @@ entities:
parent: 1666
- type: Paper
content: >-
Поиск в NTсети:
Поиск в NTсети:
Хештеги:

View file

@ -82299,13 +82299,6 @@ entities:
- type: Transform
pos: -59.509956,65.62154
parent: 2
- proto: LauncherSyringeMed
entities:
- uid: 18198
components:
- type: Transform
pos: -73.429146,23.364283
parent: 2
- proto: Lighter
entities:
- uid: 11815
@ -84174,23 +84167,6 @@ entities:
- type: Physics
canCollide: False
- type: InsideEntityStorage
- proto: MiniSyringeFresium
entities:
- uid: 18199
components:
- type: Transform
pos: -73.780716,22.991907
parent: 2
- uid: 18200
components:
- type: Transform
pos: -73.54445,22.922464
parent: 2
- uid: 18201
components:
- type: Transform
pos: -73.28039,22.922464
parent: 2
- proto: Mirror
entities:
- uid: 12041

View file

@ -16483,13 +16483,6 @@ entities:
- type: Transform
pos: 50.376198,30.620008
parent: 2
- proto: BoxMiniSyringe
entities:
- uid: 1140
components:
- type: Transform
pos: -0.71074677,52.50585
parent: 2
- proto: BoxMouthSwab
entities:
- uid: 1141

View file

@ -26478,13 +26478,6 @@ entities:
- type: Transform
pos: -17.356392,-5.218974
parent: 2
- proto: BoxMiniSyringe
entities:
- uid: 2477
components:
- type: Transform
pos: -44.943584,-58.48645
parent: 2
- proto: BoxMouthSwab
entities:
- uid: 2478

View file

@ -29470,14 +29470,6 @@ entities:
rot: 3.141592653589793 rad
pos: 100.71605,9.692456
parent: 1
- proto: ClothingOuterHardsuitBasic
entities:
- uid: 10661
components:
- type: Transform
rot: -1.5707963267948966 rad
pos: 101.575424,16.473705
parent: 1
- proto: ClothingOuterHardsuitBlueShield
entities:
- uid: 10659

View file

@ -118,14 +118,6 @@
prob: 0.3
- id: MedkitBurnFilled
prob: 0.7
- id: BoxMiniSyringe
prob: 0.75
- id: BoxMiniSyringe
prob: 0.25
- id: LauncherSyringeMed
prob: 0.45
- id: LauncherSyringePistol
prob: 0.15
- id: ClothingNeckCloakMoth #bzzz Moth-pocalypse
prob: 0.15
- id: ClothingHeadHelmetSecurityMedic

View file

@ -16,4 +16,3 @@
MiniSyringe: 3 # Sunrise Edit
emaggedInventory:
Stimpack: 1 # Sunrise Edit
BoxMiniSyringe: 1 # Sunrise Edit

View file

@ -11,5 +11,3 @@
AntiPoisonMedipen: 1 # Sunrise Edit
emaggedInventory:
StimpackMini: 1 # Sunrise Edit
MiniSyringeFresium: 1 # Sunrise Edit
MiniSyringeMuteToxin: 2 # Sunrise Edit

View file

@ -79,7 +79,6 @@
Slash: 0.9
Piercing: 0.9
Heat: 0.9
Piercing: 0.80
Radiation: 0.80
Caustic: 0.95
- type: ExplosionResistance

View file

@ -484,10 +484,6 @@
- type: SolutionInjectOnEmbed
transferAmount: 1
solution: injector
- type: SolutionContainerManager #BALANCE PR-START
solutions:
injector:
maxVol: 10 #BALANCE PR-END
- type: Fixtures
fixtures:
fix1:

View file

@ -195,15 +195,13 @@
- type: GunRequiresWield #remove when inaccuracy on spreads is fixed
- type: Gun
fireRate: 1
soundGunshot:
collection: m3 # Sunrise-Edit
- type: GunSpreadModifier
spread: 0.6
- type: Tag
tags:
- WeaponShotgunKammerer
- type: Gun
fireRate: 1
soundGunshot:
collection: m3 # Sunrise-Edit
- type: entity
name: sawn-off shotgun

View file

@ -664,12 +664,6 @@
id: FloorSteelDirty
name: tiles-dirty-steel-floor
sprite: /Textures/Tiles/steel_dirty.png
variants: 4
placementVariants:
- 1.0
- 1.0
- 1.0
- 1.0
baseTurf: Plating
isSubfloor: false
deconstructTools: [ Prying ]

View file

@ -443,7 +443,7 @@
price: 0
- type: entity
parent: ClothingOuterHardsuitBasic
parent: ClothingOuterHardsuitEVA
id: ClothingOuterHardsuitChameleon
name: syndicate chameleon
description: Looking at his material, Sci-fi images inadvertently pop up in your head.
@ -463,7 +463,7 @@
- Thief
- type: ChameleonClothing
slot: [outerClothing]
default: ClothingOuterHardsuitBasic
default: ClothingOuterHardsuitEVA
requireTag: WhitelistChameleonSuit
- type: UserInterface
interfaces:

View file

@ -29,17 +29,3 @@
- type: ConditionalSpawner
prototypes:
- MobSnowManEvil
- type: entity
name: xeno lone praetorian spawner
id: SpawnMobXenoPraetorian
parent: MarkerBase
components:
- type: Sprite
layers:
- state: green
- state: running
sprite: Mobs/Aliens/Xenos/praetorian.rsi
- type: ConditionalSpawner
prototypes:
- MobXenoLonePraetorianNoGhost

View file

@ -249,7 +249,6 @@
ears: ClothingHeadsetAltCentCom
belt: ClothingBeltMedicalFilled
pocket1: MedipenCombatInjector
pocket2: LauncherSyringePistol
inhand:
- MedkitAdvancedFilled
- DefibrillatorCompact

View file

@ -20,6 +20,7 @@
soundGunshot:
path: /Audio/_Sunrise/Weapons/Guns/HMGs/minigun_shot.ogg
- type: ClothingSlotAmmoProvider
- type: SlotBasedConnectedContainer
targetSlot: BACK
providerWhitelist:
tags:

View file

@ -18,12 +18,6 @@
- BluespaceBeaker
- SyringeBluespace
- SyringeCryostasis
- LauncherSyringeMed
- LauncherSyringePistol
- LauncherSyringeRapid
- MiniSyringeCryostasis
- MiniSyringeBluespace
- MiniSyringe
- LeftArmCyber
- RightArmCyber
- LeftHandCyber

View file

@ -86,11 +86,13 @@
# Sunrise-Start
- type: typingIndicator
id: sun
idleState: sunrise0
typingState: sunrise0
offset: 0, 0.125
- type: typingIndicator
id: syndibot
idleState: syndibot0
typingState: syndibot0
offset: 0, 0.125
# Sunrise-End