Merge branch 'ed-17-07-2024-dungenagain' of https://github.com/crystallpunk-14/crystall-punk-14 into ed-17-07-2024-dungenagain
@@ -54,7 +54,7 @@ public sealed class AudioUIController : UIController
|
||||
{
|
||||
if (!string.IsNullOrEmpty(value))
|
||||
{
|
||||
var resource = _cache.GetResource<AudioResource>(value);
|
||||
var resource = GetSoundOrFallback(value, CCVars.UIClickSound.DefaultValue);
|
||||
var source =
|
||||
_audioManager.CreateAudioSource(resource);
|
||||
|
||||
@@ -77,7 +77,7 @@ public sealed class AudioUIController : UIController
|
||||
{
|
||||
if (!string.IsNullOrEmpty(value))
|
||||
{
|
||||
var hoverResource = _cache.GetResource<AudioResource>(value);
|
||||
var hoverResource = GetSoundOrFallback(value, CCVars.UIHoverSound.DefaultValue);
|
||||
var hoverSource =
|
||||
_audioManager.CreateAudioSource(hoverResource);
|
||||
|
||||
@@ -95,4 +95,12 @@ public sealed class AudioUIController : UIController
|
||||
UIManager.SetHoverSound(null);
|
||||
}
|
||||
}
|
||||
|
||||
private AudioResource GetSoundOrFallback(string path, string fallback)
|
||||
{
|
||||
if (!_cache.TryGetResource(path, out AudioResource? resource))
|
||||
return _cache.GetResource<AudioResource>(fallback);
|
||||
|
||||
return resource;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
using Content.Shared.Research;
|
||||
using Content.Shared.Research.Components;
|
||||
using Robust.Client.GameObjects;
|
||||
|
||||
namespace Content.Client.Research.UI
|
||||
{
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
using Content.Shared.Research.Components;
|
||||
using Robust.Client.GameObjects;
|
||||
|
||||
namespace Content.Client.Research.UI
|
||||
{
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
using Content.Shared.Research.Components;
|
||||
using JetBrains.Annotations;
|
||||
using Robust.Client.GameObjects;
|
||||
|
||||
namespace Content.Client.Research.UI;
|
||||
|
||||
|
||||
@@ -81,7 +81,7 @@ public sealed partial class ResearchConsoleMenu : FancyWindow
|
||||
public void UpdateInformationPanel(ResearchConsoleBoundInterfaceState state)
|
||||
{
|
||||
var amountMsg = new FormattedMessage();
|
||||
amountMsg.AddMarkup(Loc.GetString("research-console-menu-research-points-text",
|
||||
amountMsg.AddMarkupOrThrow(Loc.GetString("research-console-menu-research-points-text",
|
||||
("points", state.Points)));
|
||||
ResearchAmountLabel.SetMessage(amountMsg);
|
||||
|
||||
@@ -98,7 +98,7 @@ public sealed partial class ResearchConsoleMenu : FancyWindow
|
||||
}
|
||||
|
||||
var msg = new FormattedMessage();
|
||||
msg.AddMarkup(Loc.GetString("research-console-menu-main-discipline",
|
||||
msg.AddMarkupOrThrow(Loc.GetString("research-console-menu-main-discipline",
|
||||
("name", disciplineText), ("color", disciplineColor)));
|
||||
MainDisciplineLabel.SetMessage(msg);
|
||||
|
||||
|
||||
@@ -23,7 +23,7 @@ public sealed partial class TechnologyCardControl : Control
|
||||
DisciplineTexture.Texture = spriteSys.Frame0(discipline.Icon);
|
||||
TechnologyNameLabel.Text = Loc.GetString(technology.Name);
|
||||
var message = new FormattedMessage();
|
||||
message.AddMarkup(Loc.GetString("research-console-tier-discipline-info",
|
||||
message.AddMarkupOrThrow(Loc.GetString("research-console-tier-discipline-info",
|
||||
("tier", technology.Tier), ("color", discipline.Color), ("discipline", Loc.GetString(discipline.Name))));
|
||||
TierLabel.SetMessage(message);
|
||||
UnlocksLabel.SetMessage(description);
|
||||
|
||||
@@ -1,11 +1,13 @@
|
||||
using System.Linq;
|
||||
using Content.Client.CharacterInfo;
|
||||
using Content.Client.Gameplay;
|
||||
using Content.Client.Stylesheets;
|
||||
using Content.Client.UserInterface.Controls;
|
||||
using Content.Client.UserInterface.Systems.Character.Controls;
|
||||
using Content.Client.UserInterface.Systems.Character.Windows;
|
||||
using Content.Client.UserInterface.Systems.Objectives.Controls;
|
||||
using Content.Shared.Input;
|
||||
using Content.Shared.Objectives.Systems;
|
||||
using JetBrains.Annotations;
|
||||
using Robust.Client.GameObjects;
|
||||
using Robust.Client.Player;
|
||||
@@ -121,11 +123,17 @@ public sealed class CharacterUIController : UIController, IOnStateEntered<Gamepl
|
||||
Modulate = Color.Gray
|
||||
};
|
||||
|
||||
objectiveControl.AddChild(new Label
|
||||
|
||||
var objectiveText = new FormattedMessage();
|
||||
objectiveText.TryAddMarkup(groupId, out _);
|
||||
|
||||
var objectiveLabel = new RichTextLabel
|
||||
{
|
||||
Text = groupId,
|
||||
Modulate = Color.LightSkyBlue
|
||||
});
|
||||
StyleClasses = {StyleNano.StyleClassTooltipActionTitle}
|
||||
};
|
||||
objectiveLabel.SetMessage(objectiveText);
|
||||
|
||||
objectiveControl.AddChild(objectiveLabel);
|
||||
|
||||
foreach (var condition in conditions)
|
||||
{
|
||||
|
||||
@@ -141,7 +141,7 @@ public sealed partial class AnomalySystem
|
||||
var msg = new FormattedMessage();
|
||||
if (component.ScannedAnomaly is not { } anomaly || !TryComp<AnomalyComponent>(anomaly, out var anomalyComp))
|
||||
{
|
||||
msg.AddMarkup(Loc.GetString("anomaly-scanner-no-anomaly"));
|
||||
msg.AddMarkupOrThrow(Loc.GetString("anomaly-scanner-no-anomaly"));
|
||||
return msg;
|
||||
}
|
||||
|
||||
@@ -149,14 +149,14 @@ public sealed partial class AnomalySystem
|
||||
|
||||
//Severity
|
||||
if (secret != null && secret.Secret.Contains(AnomalySecretData.Severity))
|
||||
msg.AddMarkup(Loc.GetString("anomaly-scanner-severity-percentage-unknown"));
|
||||
msg.AddMarkupOrThrow(Loc.GetString("anomaly-scanner-severity-percentage-unknown"));
|
||||
else
|
||||
msg.AddMarkup(Loc.GetString("anomaly-scanner-severity-percentage", ("percent", anomalyComp.Severity.ToString("P"))));
|
||||
msg.AddMarkupOrThrow(Loc.GetString("anomaly-scanner-severity-percentage", ("percent", anomalyComp.Severity.ToString("P"))));
|
||||
msg.PushNewline();
|
||||
|
||||
//Stability
|
||||
if (secret != null && secret.Secret.Contains(AnomalySecretData.Stability))
|
||||
msg.AddMarkup(Loc.GetString("anomaly-scanner-stability-unknown"));
|
||||
msg.AddMarkupOrThrow(Loc.GetString("anomaly-scanner-stability-unknown"));
|
||||
else
|
||||
{
|
||||
string stateLoc;
|
||||
@@ -166,54 +166,54 @@ public sealed partial class AnomalySystem
|
||||
stateLoc = Loc.GetString("anomaly-scanner-stability-high");
|
||||
else
|
||||
stateLoc = Loc.GetString("anomaly-scanner-stability-medium");
|
||||
msg.AddMarkup(stateLoc);
|
||||
msg.AddMarkupOrThrow(stateLoc);
|
||||
}
|
||||
msg.PushNewline();
|
||||
|
||||
//Point output
|
||||
if (secret != null && secret.Secret.Contains(AnomalySecretData.OutputPoint))
|
||||
msg.AddMarkup(Loc.GetString("anomaly-scanner-point-output-unknown"));
|
||||
msg.AddMarkupOrThrow(Loc.GetString("anomaly-scanner-point-output-unknown"));
|
||||
else
|
||||
msg.AddMarkup(Loc.GetString("anomaly-scanner-point-output", ("point", GetAnomalyPointValue(anomaly, anomalyComp))));
|
||||
msg.AddMarkupOrThrow(Loc.GetString("anomaly-scanner-point-output", ("point", GetAnomalyPointValue(anomaly, anomalyComp))));
|
||||
msg.PushNewline();
|
||||
msg.PushNewline();
|
||||
|
||||
//Particles title
|
||||
msg.AddMarkup(Loc.GetString("anomaly-scanner-particle-readout"));
|
||||
msg.AddMarkupOrThrow(Loc.GetString("anomaly-scanner-particle-readout"));
|
||||
msg.PushNewline();
|
||||
|
||||
//Danger
|
||||
if (secret != null && secret.Secret.Contains(AnomalySecretData.ParticleDanger))
|
||||
msg.AddMarkup(Loc.GetString("anomaly-scanner-particle-danger-unknown"));
|
||||
msg.AddMarkupOrThrow(Loc.GetString("anomaly-scanner-particle-danger-unknown"));
|
||||
else
|
||||
msg.AddMarkup(Loc.GetString("anomaly-scanner-particle-danger", ("type", GetParticleLocale(anomalyComp.SeverityParticleType))));
|
||||
msg.AddMarkupOrThrow(Loc.GetString("anomaly-scanner-particle-danger", ("type", GetParticleLocale(anomalyComp.SeverityParticleType))));
|
||||
msg.PushNewline();
|
||||
|
||||
//Unstable
|
||||
if (secret != null && secret.Secret.Contains(AnomalySecretData.ParticleUnstable))
|
||||
msg.AddMarkup(Loc.GetString("anomaly-scanner-particle-unstable-unknown"));
|
||||
msg.AddMarkupOrThrow(Loc.GetString("anomaly-scanner-particle-unstable-unknown"));
|
||||
else
|
||||
msg.AddMarkup(Loc.GetString("anomaly-scanner-particle-unstable", ("type", GetParticleLocale(anomalyComp.DestabilizingParticleType))));
|
||||
msg.AddMarkupOrThrow(Loc.GetString("anomaly-scanner-particle-unstable", ("type", GetParticleLocale(anomalyComp.DestabilizingParticleType))));
|
||||
msg.PushNewline();
|
||||
|
||||
//Containment
|
||||
if (secret != null && secret.Secret.Contains(AnomalySecretData.ParticleContainment))
|
||||
msg.AddMarkup(Loc.GetString("anomaly-scanner-particle-containment-unknown"));
|
||||
msg.AddMarkupOrThrow(Loc.GetString("anomaly-scanner-particle-containment-unknown"));
|
||||
else
|
||||
msg.AddMarkup(Loc.GetString("anomaly-scanner-particle-containment", ("type", GetParticleLocale(anomalyComp.WeakeningParticleType))));
|
||||
msg.AddMarkupOrThrow(Loc.GetString("anomaly-scanner-particle-containment", ("type", GetParticleLocale(anomalyComp.WeakeningParticleType))));
|
||||
msg.PushNewline();
|
||||
|
||||
//Transformation
|
||||
if (secret != null && secret.Secret.Contains(AnomalySecretData.ParticleTransformation))
|
||||
msg.AddMarkup(Loc.GetString("anomaly-scanner-particle-transformation-unknown"));
|
||||
msg.AddMarkupOrThrow(Loc.GetString("anomaly-scanner-particle-transformation-unknown"));
|
||||
else
|
||||
msg.AddMarkup(Loc.GetString("anomaly-scanner-particle-transformation", ("type", GetParticleLocale(anomalyComp.TransformationParticleType))));
|
||||
msg.AddMarkupOrThrow(Loc.GetString("anomaly-scanner-particle-transformation", ("type", GetParticleLocale(anomalyComp.TransformationParticleType))));
|
||||
|
||||
|
||||
//Behavior
|
||||
msg.PushNewline();
|
||||
msg.PushNewline();
|
||||
msg.AddMarkup(Loc.GetString("anomaly-behavior-title"));
|
||||
msg.AddMarkupOrThrow(Loc.GetString("anomaly-behavior-title"));
|
||||
msg.PushNewline();
|
||||
|
||||
if (secret != null && secret.Secret.Contains(AnomalySecretData.Behavior))
|
||||
@@ -224,14 +224,14 @@ public sealed partial class AnomalySystem
|
||||
{
|
||||
var behavior = _prototype.Index(anomalyComp.CurrentBehavior.Value);
|
||||
|
||||
msg.AddMarkup("- " + Loc.GetString(behavior.Description));
|
||||
msg.AddMarkupOrThrow("- " + Loc.GetString(behavior.Description));
|
||||
msg.PushNewline();
|
||||
var mod = Math.Floor((behavior.EarnPointModifier) * 100);
|
||||
msg.AddMarkup("- " + Loc.GetString("anomaly-behavior-point", ("mod", mod)));
|
||||
msg.AddMarkupOrThrow("- " + Loc.GetString("anomaly-behavior-point", ("mod", mod)));
|
||||
}
|
||||
else
|
||||
{
|
||||
msg.AddMarkup(Loc.GetString("anomaly-behavior-balanced"));
|
||||
msg.AddMarkupOrThrow(Loc.GetString("anomaly-behavior-balanced"));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -24,7 +24,7 @@ namespace Content.Server.Botany.Components
|
||||
/// <summary>
|
||||
/// Name of a base seed prototype that is used if <see cref="Seed"/> is null.
|
||||
/// </summary>
|
||||
[DataField("seedId", customTypeSerializer:typeof(PrototypeIdSerializer<SeedPrototype>))]
|
||||
[DataField("seedId", customTypeSerializer: typeof(PrototypeIdSerializer<SeedPrototype>))]
|
||||
public string? SeedId;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2,10 +2,8 @@ using Robust.Shared.Prototypes;
|
||||
using Robust.Shared.Random;
|
||||
using Content.Shared.Random;
|
||||
using Content.Shared.Random.Helpers;
|
||||
using Content.Shared.Chemistry.Reagent;
|
||||
using System.Linq;
|
||||
using Content.Shared.Atmos;
|
||||
using FastAccessors;
|
||||
|
||||
namespace Content.Server.Botany;
|
||||
|
||||
@@ -42,6 +40,7 @@ public sealed class MutationSystem : EntitySystem
|
||||
// Add up everything in the bits column and put the number here.
|
||||
const int totalbits = 275;
|
||||
|
||||
#pragma warning disable IDE0055 // disable formatting warnings because this looks more readable
|
||||
// Tolerances (55)
|
||||
MutateFloat(ref seed.NutrientConsumption , 0.05f, 1.2f, 5, totalbits, severity);
|
||||
MutateFloat(ref seed.WaterConsumption , 3f , 9f , 5, totalbits, severity);
|
||||
@@ -75,6 +74,7 @@ public sealed class MutationSystem : EntitySystem
|
||||
MutateBool(ref seed.TurnIntoKudzu , true , 10, totalbits, severity);
|
||||
MutateBool(ref seed.CanScream , true , 10, totalbits, severity);
|
||||
seed.BioluminescentColor = RandomColor(seed.BioluminescentColor, 10, totalbits, severity);
|
||||
#pragma warning restore IDE0055
|
||||
|
||||
// ConstantUpgade (10)
|
||||
MutateHarvestType(ref seed.HarvestRepeat, 10, totalbits, severity);
|
||||
@@ -261,7 +261,7 @@ public sealed class MutationSystem : EntitySystem
|
||||
{
|
||||
var pick = _randomChems.Pick(_robustRandom);
|
||||
string chemicalId = pick.reagent;
|
||||
int amount = _robustRandom.Next(1, ((int)pick.quantity));
|
||||
int amount = _robustRandom.Next(1, (int)pick.quantity);
|
||||
SeedChemQuantity seedChemQuantity = new SeedChemQuantity();
|
||||
if (chemicals.ContainsKey(chemicalId))
|
||||
{
|
||||
@@ -274,7 +274,7 @@ public sealed class MutationSystem : EntitySystem
|
||||
seedChemQuantity.Max = 1 + amount;
|
||||
seedChemQuantity.Inherent = false;
|
||||
}
|
||||
int potencyDivisor = (int) Math.Ceiling(100.0f / seedChemQuantity.Max);
|
||||
int potencyDivisor = (int)Math.Ceiling(100.0f / seedChemQuantity.Max);
|
||||
seedChemQuantity.PotencyDivisor = potencyDivisor;
|
||||
chemicals[chemicalId] = seedChemQuantity;
|
||||
}
|
||||
|
||||
@@ -29,12 +29,12 @@ public sealed class SeedExtractorSystem : EntitySystem
|
||||
return;
|
||||
if (!_botanySystem.TryGetSeed(produce, out var seed) || seed.Seedless)
|
||||
{
|
||||
_popupSystem.PopupCursor(Loc.GetString("seed-extractor-component-no-seeds",("name", args.Used)),
|
||||
_popupSystem.PopupCursor(Loc.GetString("seed-extractor-component-no-seeds", ("name", args.Used)),
|
||||
args.User, PopupType.MediumCaution);
|
||||
return;
|
||||
}
|
||||
|
||||
_popupSystem.PopupCursor(Loc.GetString("seed-extractor-component-interact-message",("name", args.Used)),
|
||||
_popupSystem.PopupCursor(Loc.GetString("seed-extractor-component-interact-message", ("name", args.Used)),
|
||||
args.User, PopupType.Medium);
|
||||
|
||||
QueueDel(args.Used);
|
||||
|
||||
@@ -36,14 +36,14 @@ public sealed class CharacterInfoSystem : EntitySystem
|
||||
if (_minds.TryGetMind(entity, out var mindId, out var mind))
|
||||
{
|
||||
// Get objectives
|
||||
foreach (var objective in mind.AllObjectives)
|
||||
foreach (var objective in mind.Objectives)
|
||||
{
|
||||
var info = _objectives.GetInfo(objective, mindId, mind);
|
||||
if (info == null)
|
||||
continue;
|
||||
|
||||
// group objectives by their issuer
|
||||
var issuer = Comp<ObjectiveComponent>(objective).Issuer;
|
||||
var issuer = Comp<ObjectiveComponent>(objective).LocIssuer;
|
||||
if (!objectives.ContainsKey(issuer))
|
||||
objectives[issuer] = new List<ObjectiveInfo>();
|
||||
objectives[issuer].Add(info.Value);
|
||||
|
||||
@@ -225,7 +225,7 @@ public sealed partial class DragonSystem : EntitySystem
|
||||
return;
|
||||
|
||||
var mind = Comp<MindComponent>(mindContainer.Mind.Value);
|
||||
foreach (var objId in mind.AllObjectives)
|
||||
foreach (var objId in mind.Objectives)
|
||||
{
|
||||
if (_objQuery.TryGetComponent(objId, out var obj))
|
||||
{
|
||||
@@ -247,7 +247,7 @@ public sealed partial class DragonSystem : EntitySystem
|
||||
return;
|
||||
|
||||
var mind = Comp<MindComponent>(mindContainer.Mind.Value);
|
||||
foreach (var objId in mind.AllObjectives)
|
||||
foreach (var objId in mind.Objectives)
|
||||
{
|
||||
if (_objQuery.TryGetComponent(objId, out var obj))
|
||||
{
|
||||
|
||||
@@ -329,6 +329,13 @@ public sealed partial class GameTicker
|
||||
|
||||
foreach (var rule in args)
|
||||
{
|
||||
if (!_prototypeManager.HasIndex(rule))
|
||||
{
|
||||
shell.WriteError($"Invalid game rule {rule} was skipped.");
|
||||
|
||||
continue;
|
||||
}
|
||||
|
||||
if (shell.Player != null)
|
||||
{
|
||||
_adminLogger.Add(LogType.EventStarted, $"{shell.Player} tried to add game rule [{rule}] via command");
|
||||
|
||||
@@ -95,7 +95,7 @@ public sealed class RandomGiftSystem : EntitySystem
|
||||
|
||||
foreach (var proto in _prototype.EnumeratePrototypes<EntityPrototype>())
|
||||
{
|
||||
if (proto.Abstract || proto.NoSpawn || proto.Components.ContainsKey(mapGridCompName) || !proto.Components.ContainsKey(physicsCompName))
|
||||
if (proto.Abstract || proto.HideSpawnMenu || proto.Components.ContainsKey(mapGridCompName) || !proto.Components.ContainsKey(physicsCompName))
|
||||
continue;
|
||||
|
||||
_possibleGiftsUnsafe.Add(proto.ID);
|
||||
|
||||
@@ -33,7 +33,7 @@ namespace Content.Server.Objectives.Commands
|
||||
}
|
||||
|
||||
shell.WriteLine($"Objectives for player {player.UserId}:");
|
||||
var objectives = mind.AllObjectives.ToList();
|
||||
var objectives = mind.Objectives.ToList();
|
||||
if (objectives.Count == 0)
|
||||
{
|
||||
shell.WriteLine("None.");
|
||||
|
||||
@@ -129,12 +129,12 @@ public sealed class ObjectivesSystem : SharedObjectivesSystem
|
||||
var agentSummary = new StringBuilder();
|
||||
agentSummary.AppendLine(Loc.GetString("objectives-with-objectives", ("custody", custody), ("title", title), ("agent", agent)));
|
||||
|
||||
foreach (var objectiveGroup in objectives.GroupBy(o => Comp<ObjectiveComponent>(o).Issuer))
|
||||
foreach (var objectiveGroup in objectives.GroupBy(o => Comp<ObjectiveComponent>(o).LocIssuer))
|
||||
{
|
||||
//TO DO:
|
||||
//check for the right group here. Getting the target issuer is easy: objectiveGroup.Key
|
||||
//It should be compared to the type of the group's issuer.
|
||||
agentSummary.AppendLine(Loc.GetString($"objective-issuer-{objectiveGroup.Key}"));
|
||||
agentSummary.AppendLine(objectiveGroup.Key);
|
||||
|
||||
foreach (var objective in objectiveGroup)
|
||||
{
|
||||
|
||||
@@ -59,7 +59,7 @@ public sealed class HelpProgressConditionSystem : EntitySystem
|
||||
if (!TryComp<MindComponent>(traitor, out var mind))
|
||||
continue;
|
||||
|
||||
foreach (var objective in mind.AllObjectives)
|
||||
foreach (var objective in mind.Objectives)
|
||||
{
|
||||
if (HasComp<HelpProgressConditionComponent>(objective))
|
||||
removeList.Add(traitor);
|
||||
@@ -88,7 +88,7 @@ public sealed class HelpProgressConditionSystem : EntitySystem
|
||||
|
||||
if (TryComp<MindComponent>(target, out var mind))
|
||||
{
|
||||
foreach (var objective in mind.AllObjectives)
|
||||
foreach (var objective in mind.Objectives)
|
||||
{
|
||||
// this has the potential to loop forever, anything setting target has to check that there is no HelpProgressCondition.
|
||||
var info = _objectives.GetInfo(objective, target, mind);
|
||||
|
||||
@@ -23,7 +23,7 @@ public sealed class ObjectiveBlacklistRequirementSystem : EntitySystem
|
||||
if (args.Cancelled)
|
||||
return;
|
||||
|
||||
foreach (var objective in args.Mind.AllObjectives)
|
||||
foreach (var objective in args.Mind.Objectives)
|
||||
{
|
||||
if (_whitelistSystem.IsBlacklistPass(comp.Blacklist, objective))
|
||||
{
|
||||
|
||||
@@ -78,7 +78,7 @@ public abstract class SharedChameleonClothingSystem : EntitySystem
|
||||
public bool IsValidTarget(EntityPrototype proto, SlotFlags chameleonSlot = SlotFlags.NONE)
|
||||
{
|
||||
// check if entity is valid
|
||||
if (proto.Abstract || proto.NoSpawn)
|
||||
if (proto.Abstract || proto.HideSpawnMenu)
|
||||
return false;
|
||||
|
||||
// check if it is marked as valid chameleon target
|
||||
|
||||
@@ -370,7 +370,7 @@ public abstract class SharedMindSystem : EntitySystem
|
||||
if (Resolve(mindId, ref mind))
|
||||
{
|
||||
var query = GetEntityQuery<T>();
|
||||
foreach (var uid in mind.AllObjectives)
|
||||
foreach (var uid in mind.Objectives)
|
||||
{
|
||||
if (query.TryGetComponent(uid, out objective))
|
||||
{
|
||||
|
||||
@@ -22,8 +22,11 @@ public sealed partial class ObjectiveComponent : Component
|
||||
/// <summary>
|
||||
/// Organisation that issued this objective, used for grouping and as a header above common objectives.
|
||||
/// </summary>
|
||||
[DataField(required: true)]
|
||||
public string Issuer = string.Empty;
|
||||
[DataField("issuer", required: true)]
|
||||
private LocId Issuer { get; set; }
|
||||
|
||||
[ViewVariables(VVAccess.ReadOnly)]
|
||||
public string LocIssuer => Loc.GetString(Issuer);
|
||||
|
||||
/// <summary>
|
||||
/// Unique objectives can only have 1 per prototype id.
|
||||
|
||||
@@ -25,14 +25,14 @@ namespace Content.Shared.Slippery
|
||||
/// </summary>
|
||||
[DataField, AutoNetworkedField]
|
||||
[Access(Other = AccessPermissions.ReadWrite)]
|
||||
public float ParalyzeTime = 3f;
|
||||
public float ParalyzeTime = 1.5f;
|
||||
|
||||
/// <summary>
|
||||
/// The entity's speed will be multiplied by this to slip it forwards.
|
||||
/// </summary>
|
||||
[DataField, AutoNetworkedField]
|
||||
[Access(Other = AccessPermissions.ReadWrite)]
|
||||
public float LaunchForwardsMultiplier = 1f;
|
||||
public float LaunchForwardsMultiplier = 1.5f;
|
||||
|
||||
/// <summary>
|
||||
/// If this is true, any slipping entity loses its friction until
|
||||
|
||||
@@ -1,55 +1,4 @@
|
||||
Entries:
|
||||
- author: Tayrtahn
|
||||
changes:
|
||||
- message: Ghosts can no longer trigger artifacts by examining them.
|
||||
type: Fix
|
||||
id: 6422
|
||||
time: '2024-04-22T22:46:22.0000000+00:00'
|
||||
url: https://github.com/space-wizards/space-station-14/pull/27249
|
||||
- author: Tyzemol
|
||||
changes:
|
||||
- message: Slimes no longer absorb all items used on them
|
||||
type: Fix
|
||||
id: 6423
|
||||
time: '2024-04-23T08:48:26.0000000+00:00'
|
||||
url: https://github.com/space-wizards/space-station-14/pull/27260
|
||||
- author: Rainbeon
|
||||
changes:
|
||||
- message: Suit sensor vitals now function again.
|
||||
type: Fix
|
||||
id: 6424
|
||||
time: '2024-04-23T08:57:09.0000000+00:00'
|
||||
url: https://github.com/space-wizards/space-station-14/pull/27259
|
||||
- author: Ghagliiarghii
|
||||
changes:
|
||||
- message: Security can now find replacements for their trusty Combat Knife in the
|
||||
SecVend, or craft them with the Sec Lathe.
|
||||
type: Tweak
|
||||
id: 6425
|
||||
time: '2024-04-23T11:24:58.0000000+00:00'
|
||||
url: https://github.com/space-wizards/space-station-14/pull/27224
|
||||
- author: Whisper
|
||||
changes:
|
||||
- message: Fire stack limit reduced from 20 to 10. Fire transfers will be less effective,
|
||||
and fires will not last as long.
|
||||
type: Tweak
|
||||
id: 6426
|
||||
time: '2024-04-23T11:30:01.0000000+00:00'
|
||||
url: https://github.com/space-wizards/space-station-14/pull/27159
|
||||
- author: brainfood1183
|
||||
changes:
|
||||
- message: Directional Exit signs for maints!
|
||||
type: Add
|
||||
id: 6427
|
||||
time: '2024-04-23T11:31:48.0000000+00:00'
|
||||
url: https://github.com/space-wizards/space-station-14/pull/26831
|
||||
- author: pigeonpeas
|
||||
changes:
|
||||
- message: Adds the ability to purchase emitters in cargo.
|
||||
type: Add
|
||||
id: 6428
|
||||
time: '2024-04-23T11:34:09.0000000+00:00'
|
||||
url: https://github.com/space-wizards/space-station-14/pull/27229
|
||||
- author: EmoGarbage404
|
||||
changes:
|
||||
- message: Fixed cargo telepads not teleporting in orders from linked consoles.
|
||||
@@ -3805,3 +3754,53 @@
|
||||
id: 6921
|
||||
time: '2024-07-14T15:12:25.0000000+00:00'
|
||||
url: https://github.com/space-wizards/space-station-14/pull/29959
|
||||
- author: Winkarst-cpu
|
||||
changes:
|
||||
- message: Now addgamerule command processes only valid game rules.
|
||||
type: Fix
|
||||
id: 6922
|
||||
time: '2024-07-15T19:18:33.0000000+00:00'
|
||||
url: https://github.com/space-wizards/space-station-14/pull/29912
|
||||
- author: Jezithyr
|
||||
changes:
|
||||
- message: Removed the Geras ability from Slimes
|
||||
type: Remove
|
||||
id: 6923
|
||||
time: '2024-07-16T22:50:17.0000000+00:00'
|
||||
url: https://github.com/space-wizards/space-station-14/pull/29731
|
||||
- author: K-Dynamic
|
||||
changes:
|
||||
- message: nerfed paraylze timer of all slippable objects (including soaps, water
|
||||
puddles, and clown-related items)
|
||||
type: Tweak
|
||||
id: 6924
|
||||
time: '2024-07-16T23:26:02.0000000+00:00'
|
||||
url: https://github.com/space-wizards/space-station-14/pull/27879
|
||||
- author: EmoGarbage404
|
||||
changes:
|
||||
- message: Resprited wall signs.
|
||||
type: Tweak
|
||||
id: 6925
|
||||
time: '2024-07-17T04:35:19.0000000+00:00'
|
||||
url: https://github.com/space-wizards/space-station-14/pull/29806
|
||||
- author: lzk228
|
||||
changes:
|
||||
- message: Added health examine for caustic and cold damage.
|
||||
type: Add
|
||||
id: 6926
|
||||
time: '2024-07-17T06:19:13.0000000+00:00'
|
||||
url: https://github.com/space-wizards/space-station-14/pull/29989
|
||||
- author: lzk228
|
||||
changes:
|
||||
- message: Surgery saws now are normal-sized (no more pocket circular saw).
|
||||
type: Tweak
|
||||
id: 6927
|
||||
time: '2024-07-17T06:26:10.0000000+00:00'
|
||||
url: https://github.com/space-wizards/space-station-14/pull/29995
|
||||
- author: Winkarst-cpu
|
||||
changes:
|
||||
- message: The super door remote is now able to control Syndicate doors.
|
||||
type: Fix
|
||||
id: 6928
|
||||
time: '2024-07-17T13:50:25.0000000+00:00'
|
||||
url: https://github.com/space-wizards/space-station-14/pull/30033
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
cp14-objective-issuer-expedition = [color=#fcae38]Expedition oobjective[/color]
|
||||
|
||||
cp14-objective-expedition-collect-title = Collect { $itemName }
|
||||
cp14-objective-expedition-collect-desc = Your objective is to collect and deliver { $itemName } to the Elemental Ship.
|
||||
cp14-objective-expedition-collect-multiply-desc = Your objective is to collect and deliver { $count } { $itemName } to the Elemental ship.
|
||||
@@ -16,3 +16,11 @@ health-examinable-carbon-Heat-50 = [color=orange]{ CAPITALIZE(SUBJECT($target))
|
||||
health-examinable-carbon-Heat-75 = [color=orange]{ CAPITALIZE(SUBJECT($target)) } { CONJUGATE-HAVE($target) } severe third-degree burns across { POSS-ADJ($target) } body![/color]
|
||||
|
||||
health-examinable-carbon-Shock-50 = [color=lightgoldenrodyellow]{ CAPITALIZE(SUBJECT($target)) } { CONJUGATE-HAVE($target) } electrical shock marks across { POSS-ADJ($target) } body![/color]
|
||||
|
||||
health-examinable-carbon-Cold-25 = [color=lightblue]{ CAPITALIZE(SUBJECT($target)) } { CONJUGATE-HAVE($target) } minor frostbite across { POSS-ADJ($target) } body.[/color]
|
||||
health-examinable-carbon-Cold-50 = [color=lightblue]{ CAPITALIZE(SUBJECT($target)) } { CONJUGATE-HAVE($target) } major frostbite across { POSS-ADJ($target) } body.[/color]
|
||||
health-examinable-carbon-Cold-75 = [color=lightblue]{ CAPITALIZE(SUBJECT($target)) } { CONJUGATE-HAVE($target) } severe third-degree frostbite across { POSS-ADJ($target) } body![/color]
|
||||
|
||||
health-examinable-carbon-Caustic-25 = [color=yellowgreen]{ CAPITALIZE(SUBJECT($target)) } { CONJUGATE-HAVE($target) } minor chemical burns.[/color]
|
||||
health-examinable-carbon-Caustic-50 = [color=yellowgreen]{ CAPITALIZE(SUBJECT($target)) } { CONJUGATE-HAVE($target) } chemical burns across { POSS-ADJ($target) } body.[/color]
|
||||
health-examinable-carbon-Caustic-75 = [color=yellowgreen]{ CAPITALIZE(SUBJECT($target)) } { CONJUGATE-HAVE($target) } severe chemical burns all over { POSS-ADJ($target) } body![/color]
|
||||
|
||||
@@ -41,3 +41,5 @@ replay-verb-spectate = Spectate
|
||||
cmd-replay-spectate-help = replay_spectate [optional entity]
|
||||
cmd-replay-spectate-desc = Attaches or detaches the local player to a given entity uid.
|
||||
cmd-replay-spectate-hint = Optional EntityUid
|
||||
|
||||
cmd-replay-toggleui-desc = Toggles the replay control UI.
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
cp14-objective-issuer-expedition = [color=#fcae38]Цель экспедиции[/color]
|
||||
|
||||
cp14-objective-expedition-collect-title = Добыть { $itemName }
|
||||
cp14-objective-expedition-collect-desc = Ваша задача - добыть и доставить { $itemName } на Элементальный корабль.
|
||||
cp14-objective-expedition-collect-multiply-desc = Ваша задача - добыть и доставить { $count } { $itemName } на Элементальный корабль.
|
||||
@@ -784,7 +784,7 @@
|
||||
description: uplink-slipocalypse-clustersoap-desc
|
||||
productEntity: SlipocalypseClusterSoap
|
||||
cost:
|
||||
Telecrystal: 3
|
||||
Telecrystal: 2
|
||||
categories:
|
||||
- UplinkDisruption
|
||||
|
||||
|
||||
@@ -113,7 +113,6 @@
|
||||
components:
|
||||
- type: Clickable
|
||||
- type: Slippery
|
||||
launchForwardsMultiplier: 2.0
|
||||
- type: Transform
|
||||
noRot: true
|
||||
anchored: true
|
||||
|
||||
@@ -53,7 +53,6 @@
|
||||
- type: Damageable
|
||||
damageContainer: Biological
|
||||
damageModifierSet: Slime
|
||||
- type: Geras
|
||||
- type: PassiveDamage # Around 8 damage a minute healed
|
||||
allowedStates:
|
||||
- Alive
|
||||
|
||||
@@ -26,6 +26,30 @@
|
||||
layerKey: dummy
|
||||
parameterTexture: displacementMap
|
||||
parameterUV: displacementUV
|
||||
eyes:
|
||||
layer:
|
||||
sprite: Mobs/Species/Vox/displacement.rsi
|
||||
state: eyes
|
||||
copyToShaderParameters:
|
||||
layerKey: dummy
|
||||
parameterTexture: displacementMap
|
||||
parameterUV: displacementUV
|
||||
gloves:
|
||||
layer:
|
||||
sprite: Mobs/Species/Vox/displacement.rsi
|
||||
state: hand
|
||||
copyToShaderParameters:
|
||||
layerKey: dummy
|
||||
parameterTexture: displacementMap
|
||||
parameterUV: displacementUV
|
||||
back:
|
||||
layer:
|
||||
sprite: Mobs/Species/Vox/displacement.rsi
|
||||
state: back
|
||||
copyToShaderParameters:
|
||||
layerKey: dummy
|
||||
parameterTexture: displacementMap
|
||||
parameterUV: displacementUV
|
||||
- type: Speech
|
||||
speechVerb: Vox
|
||||
speechSounds: Vox
|
||||
@@ -124,4 +148,28 @@
|
||||
layerKey: dummy
|
||||
parameterTexture: displacementMap
|
||||
parameterUV: displacementUV
|
||||
eyes:
|
||||
layer:
|
||||
sprite: Mobs/Species/Vox/displacement.rsi
|
||||
state: eyes
|
||||
copyToShaderParameters:
|
||||
layerKey: dummy
|
||||
parameterTexture: displacementMap
|
||||
parameterUV: displacementUV
|
||||
gloves:
|
||||
layer:
|
||||
sprite: Mobs/Species/Vox/displacement.rsi
|
||||
state: hand
|
||||
copyToShaderParameters:
|
||||
layerKey: dummy
|
||||
parameterTexture: displacementMap
|
||||
parameterUV: displacementUV
|
||||
back:
|
||||
layer:
|
||||
sprite: Mobs/Species/Vox/displacement.rsi
|
||||
state: back
|
||||
copyToShaderParameters:
|
||||
layerKey: dummy
|
||||
parameterTexture: displacementMap
|
||||
parameterUV: displacementUV
|
||||
|
||||
|
||||
@@ -99,6 +99,8 @@
|
||||
- Piercing
|
||||
- Heat
|
||||
- Shock
|
||||
- Cold
|
||||
- Caustic
|
||||
- type: DamageOnHighSpeedImpact
|
||||
damage:
|
||||
types:
|
||||
|
||||
@@ -311,7 +311,6 @@
|
||||
sprite: Objects/Specific/Hydroponics/banana.rsi
|
||||
heldPrefix: peel
|
||||
- type: Slippery
|
||||
launchForwardsMultiplier: 1.5
|
||||
- type: StepTrigger
|
||||
intersectRatio: 0.2
|
||||
- type: CollisionWake
|
||||
@@ -388,7 +387,6 @@
|
||||
path: /Audio/Effects/slip.ogg
|
||||
params:
|
||||
volume: -100
|
||||
launchForwardsMultiplier: 1.6
|
||||
|
||||
- type: entity
|
||||
name: bananium peel
|
||||
@@ -402,8 +400,6 @@
|
||||
sprite: Objects/Materials/materials.rsi
|
||||
heldPrefix: peel
|
||||
- type: Slippery
|
||||
paralyzeTime: 4
|
||||
launchForwardsMultiplier: 2
|
||||
|
||||
- type: entity
|
||||
name: carrot
|
||||
|
||||
@@ -160,3 +160,5 @@
|
||||
- AllAccess
|
||||
tags:
|
||||
- CentralCommand
|
||||
- NuclearOperative
|
||||
- SyndicateAgent
|
||||
|
||||
@@ -257,9 +257,7 @@
|
||||
borderColor: "#C18199"
|
||||
- type: Icon
|
||||
state: pda-clown
|
||||
- type: Slippery
|
||||
paralyzeTime: 4
|
||||
launchForwardsMultiplier: 1.5
|
||||
- type: Slippery # secretly made of bananium
|
||||
- type: StepTrigger
|
||||
- type: CollisionWake
|
||||
enabled: false
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
id: Wristwatch
|
||||
parent: BaseItem
|
||||
name: wristwatch
|
||||
description: A cheap watch for telling time. How much did you waste working on this shift?
|
||||
description: A cheap watch for telling time. How much did you waste playing Space Station 14?
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Objects/Devices/wristwatch.rsi
|
||||
|
||||
@@ -162,8 +162,6 @@
|
||||
sound:
|
||||
path: /Audio/Items/bikehorn.ogg
|
||||
- type: Slippery
|
||||
paralyzeTime: 4
|
||||
launchForwardsMultiplier: 1.5
|
||||
- type: StepTrigger
|
||||
- type: CollisionWake
|
||||
enabled: false
|
||||
|
||||
@@ -16,7 +16,8 @@
|
||||
- ReagentId: Nutriment
|
||||
Quantity: 5
|
||||
- type: Slippery
|
||||
launchForwardsMultiplier: 5
|
||||
paralyzeTime: 3
|
||||
launchForwardsMultiplier: 3
|
||||
- type: StepTrigger
|
||||
intersectRatio: 0.2
|
||||
- type: CollisionWake
|
||||
@@ -28,14 +29,14 @@
|
||||
slips:
|
||||
shape:
|
||||
!type:PhysShapeAabb
|
||||
bounds: "-0.2,-0.2,0.2,0.2"
|
||||
bounds: "-0.4,-0.3,0.4,0.3"
|
||||
hard: false
|
||||
layer:
|
||||
- SlipLayer
|
||||
fix1:
|
||||
shape:
|
||||
!type:PhysShapeAabb
|
||||
bounds: "-0.2,-0.2,0.2,0.2"
|
||||
bounds: "-0.4,-0.3,0.4,0.3"
|
||||
density: 30
|
||||
mask:
|
||||
- ItemMask
|
||||
|
||||
@@ -108,8 +108,6 @@
|
||||
- type: Transform
|
||||
anchored: true
|
||||
- type: Slippery
|
||||
paralyzeTime: 2
|
||||
launchForwardsMultiplier: 1.5
|
||||
- type: StepTrigger
|
||||
intersectRatio: 0.2
|
||||
- type: Physics
|
||||
|
||||
@@ -21,8 +21,6 @@
|
||||
sprite: Objects/Specific/Janitorial/soap.rsi
|
||||
storedRotation: -90
|
||||
- type: Slippery
|
||||
paralyzeTime: 2
|
||||
launchForwardsMultiplier: 1.5
|
||||
- type: StepTrigger
|
||||
intersectRatio: 0.2
|
||||
- type: CollisionWake
|
||||
@@ -129,8 +127,8 @@
|
||||
- type: SolutionContainerVisuals
|
||||
fillBaseName: syndie-
|
||||
- type: Slippery
|
||||
paralyzeTime: 5
|
||||
launchForwardsMultiplier: 2.5
|
||||
paralyzeTime: 3
|
||||
launchForwardsMultiplier: 3
|
||||
- type: Item
|
||||
heldPrefix: syndie
|
||||
- type: FlavorProfile
|
||||
@@ -154,8 +152,8 @@
|
||||
layers:
|
||||
- state: syndie-soaplet
|
||||
- type: Slippery
|
||||
paralyzeTime: 5
|
||||
launchForwardsMultiplier: 2.5
|
||||
paralyzeTime: 1.5 # these things are tiny
|
||||
launchForwardsMultiplier: 1.5
|
||||
- type: StepTrigger
|
||||
intersectRatio: 0.04
|
||||
- type: Item
|
||||
@@ -196,7 +194,6 @@
|
||||
- type: SolutionContainerVisuals
|
||||
fillBaseName: gibs-
|
||||
- type: Slippery
|
||||
paralyzeTime: 2
|
||||
- type: StepTrigger
|
||||
- type: Item
|
||||
heldPrefix: gibs
|
||||
@@ -221,8 +218,8 @@
|
||||
- type: SolutionContainerVisuals
|
||||
fillBaseName: omega-
|
||||
- type: Slippery
|
||||
paralyzeTime: 7
|
||||
launchForwardsMultiplier: 3
|
||||
paralyzeTime: 5.0
|
||||
launchForwardsMultiplier: 3.0
|
||||
- type: Item
|
||||
heldPrefix: omega
|
||||
- type: SolutionContainerManager
|
||||
|
||||
@@ -173,12 +173,12 @@
|
||||
sprite: Objects/Specific/Medical/Surgery/saw.rsi
|
||||
state: saw
|
||||
- type: Item
|
||||
size: Normal
|
||||
sprite: Objects/Specific/Medical/Surgery/saw.rsi
|
||||
storedRotation: 90
|
||||
- type: Tool
|
||||
qualities:
|
||||
- Sawing
|
||||
speedModifier: 1.0
|
||||
# No melee for regular saw because have you ever seen someone use a band saw as a weapon? It's dumb.
|
||||
|
||||
- type: entity
|
||||
@@ -190,6 +190,7 @@
|
||||
- type: Sprite
|
||||
state: improv
|
||||
- type: Item
|
||||
size: Small
|
||||
heldPrefix: improv
|
||||
- type: MeleeWeapon
|
||||
damage:
|
||||
@@ -198,8 +199,6 @@
|
||||
soundHit:
|
||||
path: /Audio/Weapons/bladeslice.ogg
|
||||
- type: Tool
|
||||
qualities:
|
||||
- Sawing
|
||||
speedModifier: 0.5
|
||||
|
||||
- type: entity
|
||||
@@ -212,7 +211,6 @@
|
||||
state: electric
|
||||
- type: Item
|
||||
heldPrefix: electric
|
||||
storedRotation: 90
|
||||
- type: MeleeWeapon
|
||||
damage:
|
||||
groups:
|
||||
@@ -220,29 +218,19 @@
|
||||
soundHit:
|
||||
path: /Audio/Items/drill_hit.ogg
|
||||
- type: Tool
|
||||
qualities:
|
||||
- Sawing
|
||||
speedModifier: 1.5
|
||||
|
||||
- type: entity
|
||||
name: advanced circular saw
|
||||
id: SawAdvanced
|
||||
parent: Saw
|
||||
parent: SawElectric
|
||||
description: You think you can cut anything with it.
|
||||
components:
|
||||
- type: Sprite
|
||||
state: advanced
|
||||
- type: Item
|
||||
heldPrefix: advanced
|
||||
storedRotation: 90
|
||||
- type: MeleeWeapon
|
||||
attackRate: 1.5
|
||||
damage:
|
||||
groups:
|
||||
Brute: 15
|
||||
soundHit:
|
||||
path: /Audio/Items/drill_hit.ogg
|
||||
- type: Tool
|
||||
qualities:
|
||||
- Sawing
|
||||
speedModifier: 2.0
|
||||
|
||||
@@ -243,6 +243,15 @@
|
||||
- type: Sprite
|
||||
state: ai
|
||||
|
||||
- type: entity
|
||||
parent: BaseSign
|
||||
id: SignAiUpload
|
||||
name: ai upload sign
|
||||
description: A sign, indicating an AI is present.
|
||||
components:
|
||||
- type: Sprite
|
||||
state: ai_upload
|
||||
|
||||
- type: entity
|
||||
parent: BaseSign
|
||||
id: SignArcade
|
||||
@@ -273,11 +282,11 @@
|
||||
- type: entity
|
||||
parent: BaseSign
|
||||
id: SignAnomaly
|
||||
name: xenoarchaeology lab sign
|
||||
name: xenoarcheology lab sign
|
||||
description: A sign indicating the xenoarchaeology lab.
|
||||
components:
|
||||
- type: Sprite
|
||||
state: anomaly
|
||||
state: xenoarch
|
||||
|
||||
- type: entity
|
||||
parent: BaseSign
|
||||
@@ -286,7 +295,7 @@
|
||||
description: A sign indicating the anomalous research lab.
|
||||
components:
|
||||
- type: Sprite
|
||||
state: anomaly2
|
||||
state: anomaly
|
||||
|
||||
- type: entity
|
||||
parent: BaseSign
|
||||
@@ -297,15 +306,6 @@
|
||||
- type: Sprite
|
||||
state: atmos
|
||||
|
||||
- type: entity
|
||||
parent: BaseSign
|
||||
id: SignAtmosMinsky
|
||||
name: atmospherics sign
|
||||
description: A sign indicating the atmospherics area.
|
||||
components:
|
||||
- type: Sprite
|
||||
state: atmominsky
|
||||
|
||||
- type: entity
|
||||
parent: BaseSign
|
||||
id: SignBar
|
||||
@@ -315,6 +315,32 @@
|
||||
- type: Sprite
|
||||
state: bar
|
||||
|
||||
- type: entity
|
||||
parent: BaseSign
|
||||
id: SignKitchen
|
||||
name: kitchen sign
|
||||
description: The heart of the home. And disease.
|
||||
components:
|
||||
- type: Sprite
|
||||
state: kitchen
|
||||
|
||||
- type: entity
|
||||
parent: BaseSign
|
||||
id: SignTheater
|
||||
name: theater sign
|
||||
description: Would it even be Space Station without drama?
|
||||
components:
|
||||
- type: Sprite
|
||||
layers:
|
||||
- state: drama1
|
||||
map: [ "base" ]
|
||||
- type: RandomSprite
|
||||
available:
|
||||
- base:
|
||||
drama1: null
|
||||
drama2: null
|
||||
drama3: null
|
||||
|
||||
- type: entity
|
||||
parent: BaseSign
|
||||
id: SignBarbershop
|
||||
@@ -396,24 +422,6 @@
|
||||
- type: Sprite
|
||||
state: chem
|
||||
|
||||
- type: entity
|
||||
parent: BaseSign
|
||||
id: SignChemistry1
|
||||
name: chemistry sign
|
||||
description: A sign indicating the chemistry lab.
|
||||
components:
|
||||
- type: Sprite
|
||||
state: chemistry1
|
||||
|
||||
- type: entity
|
||||
parent: BaseSign
|
||||
id: SignChemistry2
|
||||
name: chemistry sign
|
||||
description: A sign indicating the chemistry lab.
|
||||
components:
|
||||
- type: Sprite
|
||||
state: chemistry2
|
||||
|
||||
- type: entity
|
||||
parent: BaseSign
|
||||
id: SignCloning
|
||||
@@ -427,19 +435,20 @@
|
||||
parent: BaseSign
|
||||
id: SignConference
|
||||
name: conference room sign
|
||||
description: A sign indicating the conference room.
|
||||
description: Where work happens.
|
||||
components:
|
||||
- type: Sprite
|
||||
state: conference_room
|
||||
|
||||
- type: entity
|
||||
parent: BaseSign
|
||||
id: SignCourt
|
||||
name: court sign
|
||||
description: A sign labelling the courtroom.
|
||||
id: SignCryo
|
||||
name: cryosleep sign
|
||||
description: Just like that? You're gonna chicken out?
|
||||
components:
|
||||
- type: Sprite
|
||||
state: court
|
||||
state: cryo
|
||||
|
||||
|
||||
- type: entity
|
||||
parent: BaseSign
|
||||
@@ -461,18 +470,27 @@
|
||||
|
||||
- type: entity
|
||||
parent: BaseSign
|
||||
id: SignDrones
|
||||
name: drones sign
|
||||
description: A sign indicating drones.
|
||||
id: SignRestroom
|
||||
name: restroom sign
|
||||
description: A sign indicating where you go to... What do you do here again?
|
||||
components:
|
||||
- type: Sprite
|
||||
state: drones
|
||||
state: restroom
|
||||
|
||||
- type: entity
|
||||
parent: BaseSign
|
||||
id: SignMaterials
|
||||
name: materials sign
|
||||
description: An omen to the juicy vault of steel, glass, and plastic that lays before you.
|
||||
components:
|
||||
- type: Sprite
|
||||
state: mats
|
||||
|
||||
- type: entity
|
||||
parent: BaseSign
|
||||
id: SignEngine
|
||||
name: engine sign
|
||||
description: A sign indicating the engine room.
|
||||
name: power sign
|
||||
description: Where the powa happens.
|
||||
components:
|
||||
- type: Sprite
|
||||
state: engine
|
||||
@@ -544,7 +562,7 @@
|
||||
parent: BaseSign
|
||||
id: SignHead
|
||||
name: head sign
|
||||
description: A sign with a hat on it.
|
||||
description: An official sign indicating the dwellings of a Nanotrasen-certified head of department.
|
||||
components:
|
||||
- type: Sprite
|
||||
state: commander
|
||||
@@ -556,25 +574,7 @@
|
||||
description: A sign indicating a hydroponics area.
|
||||
components:
|
||||
- type: Sprite
|
||||
state: hydro1
|
||||
|
||||
- type: entity
|
||||
parent: BaseSign
|
||||
id: SignHydro2
|
||||
name: hydro sign
|
||||
description: A sign indicating a hydroponics area.
|
||||
components:
|
||||
- type: Sprite
|
||||
state: hydro2
|
||||
|
||||
- type: entity
|
||||
parent: BaseSign
|
||||
id: SignHydro3
|
||||
name: hydro sign
|
||||
description: A sign indicating a hydroponics area.
|
||||
components:
|
||||
- type: Sprite
|
||||
state: hydro3
|
||||
state: hydro
|
||||
|
||||
- type: entity
|
||||
parent: BaseSign
|
||||
@@ -606,8 +606,8 @@
|
||||
- type: entity
|
||||
parent: BaseSign
|
||||
id: SignLawyer
|
||||
name: lawyer sign
|
||||
description: A sign labelling an area where the Lawyers work.
|
||||
name: law sign
|
||||
description: A sign indicating the presence of the (typically absent) rule of law.
|
||||
components:
|
||||
- type: Sprite
|
||||
state: law
|
||||
@@ -639,15 +639,6 @@
|
||||
- type: Sprite
|
||||
state: medbay
|
||||
|
||||
- type: entity
|
||||
parent: BaseSign
|
||||
id: SignMinerDock
|
||||
name: miner dock sign
|
||||
description: A sign indicating the miner dock.
|
||||
components:
|
||||
- type: Sprite
|
||||
state: miner_dock
|
||||
|
||||
- type: entity
|
||||
parent: BaseSign
|
||||
id: SignMorgue
|
||||
@@ -740,36 +731,27 @@
|
||||
|
||||
- type: entity
|
||||
parent: BaseSign
|
||||
id: SignScience1
|
||||
name: science sign
|
||||
description: A sign indicating the science area.
|
||||
id: SignServer
|
||||
name: server sign
|
||||
description: Ever heard of Big Data? This is it, chump. The biggest.
|
||||
components:
|
||||
- type: Sprite
|
||||
state: science1
|
||||
state: data
|
||||
|
||||
- type: entity
|
||||
parent: BaseSign
|
||||
id: SignScience2
|
||||
name: science sign
|
||||
description: A sign indicating the science area.
|
||||
id: SignCans
|
||||
name: canisters sign
|
||||
description: A sign indicating the auspicious presence of gas canisters.
|
||||
components:
|
||||
- type: Sprite
|
||||
state: science2
|
||||
|
||||
- type: entity
|
||||
parent: BaseSign
|
||||
id: SignShield
|
||||
name: shield sign
|
||||
description: A sign with a shield.
|
||||
components:
|
||||
- type: Sprite
|
||||
state: shield
|
||||
state: cans
|
||||
|
||||
- type: entity
|
||||
parent: BaseSign
|
||||
id: SignShipDock
|
||||
name: docking sign
|
||||
description: A sign indicating the ship docking area.
|
||||
name: evac sign
|
||||
description: A sign indicating the where the evac shuttle will (likely) arrive.
|
||||
components:
|
||||
- type: Sprite
|
||||
state: dock
|
||||
@@ -812,12 +794,12 @@
|
||||
|
||||
- type: entity
|
||||
parent: BaseSign
|
||||
id: SignToxins2
|
||||
name: toxins sign
|
||||
description: A sign indicating the toxin lab.
|
||||
id: SignVault
|
||||
name: vault sign
|
||||
description: A sign indicating the vault. Who knows what secrets lie inside?
|
||||
components:
|
||||
- type: Sprite
|
||||
state: toxins2
|
||||
state: vault
|
||||
|
||||
- type: entity
|
||||
parent: BaseSign
|
||||
@@ -964,29 +946,11 @@
|
||||
- type: Sprite
|
||||
state: xenobio
|
||||
|
||||
- type: entity
|
||||
parent: BaseSign
|
||||
id: SignXenobio2
|
||||
name: xenobio sign
|
||||
description: A sign indicating the xenobiology lab.
|
||||
components:
|
||||
- type: Sprite
|
||||
state: xenobio2
|
||||
|
||||
- type: entity
|
||||
parent: BaseSign
|
||||
id: SignXenolab
|
||||
name: xenolab sign
|
||||
description: A sign indicating the xenobiology lab.
|
||||
components:
|
||||
- type: Sprite
|
||||
state: xenolab
|
||||
|
||||
- type: entity
|
||||
parent: BaseSign
|
||||
id: SignZomlab
|
||||
name: zombie lab sign
|
||||
description: A sign indicating the zombie lab.
|
||||
description: The final remains of a shut-down Nanotrasen research project that aimed to harness the powers of Romerol. I wonder how that went...
|
||||
components:
|
||||
- type: Sprite
|
||||
state: zomlab
|
||||
|
||||
@@ -44,8 +44,6 @@
|
||||
- !type:DoActsBehavior
|
||||
acts: [ "Destruction" ]
|
||||
- type: Slippery
|
||||
paralyzeTime: 2
|
||||
launchForwardsMultiplier: 1.5
|
||||
- type: StepTrigger
|
||||
intersectRatio: 0.2
|
||||
- type: Physics
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
- type: Objective
|
||||
# difficulty isn't used at all since objective are fixed
|
||||
difficulty: 1.5
|
||||
issuer: dragon
|
||||
issuer: objective-issuer-dragon
|
||||
- type: RoleRequirement
|
||||
roles:
|
||||
components:
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
- type: Objective
|
||||
# difficulty isn't used since all objectives are picked
|
||||
difficulty: 1.5
|
||||
issuer: spiderclan
|
||||
issuer: objective-issuer-spiderclan
|
||||
- type: RoleRequirement
|
||||
roles:
|
||||
components:
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
id: BaseThiefObjective
|
||||
components:
|
||||
- type: Objective
|
||||
issuer: thief
|
||||
issuer: objective-issuer-thief
|
||||
- type: RoleRequirement
|
||||
roles:
|
||||
components:
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
id: BaseTraitorObjective
|
||||
components:
|
||||
- type: Objective
|
||||
issuer: syndicate
|
||||
issuer: objective-issuer-syndicate
|
||||
- type: RoleRequirement
|
||||
roles:
|
||||
components:
|
||||
|
||||
@@ -77,8 +77,6 @@
|
||||
meltingPoint: 18.2
|
||||
tileReactions:
|
||||
- !type:SpillTileReaction
|
||||
paralyzeTime: 3
|
||||
launchForwardsMultiplier: 2
|
||||
requiredSlipSpeed: 1
|
||||
superSlippery: true
|
||||
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
id: CP14BaseExpeditionObjective
|
||||
components:
|
||||
- type: Objective
|
||||
issuer: ExpeditionObjective
|
||||
issuer: cp14-objective-issuer-expedition
|
||||
|
||||
- type: entity
|
||||
abstract: true
|
||||
|
||||
@@ -54,7 +54,6 @@ Ask Botany for what you need, without a botanist, you may need to grow more plan
|
||||
<GuideEntityEmbed Entity="SignHydro1" Caption=" "/>
|
||||
<GuideEntityEmbed Entity="hydroponicsTray"/>
|
||||
<GuideEntityEmbed Entity="WheatBushel"/>
|
||||
<GuideEntityEmbed Entity="SignHydro2" Caption=" "/>
|
||||
</Box>
|
||||
## Gathering Milk:
|
||||
Alt-Click on a Cow with a container in your hand. (Beakers, Buckets, Milk Jugs, ect.)
|
||||
|
||||
|
Before Width: | Height: | Size: 387 B |
@@ -1 +1,26 @@
|
||||
{"version": 1, "license": "CC-BY-SA-3.0", "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/4f6190e2895e09116663ef282d3ce1d8b35c032e", "size": {"x": 32, "y": 32}, "states": [{"name": "icon"}, {"name": "equipped-HAND", "directions": 4}, {"name": "inhand-left", "directions": 4}, {"name": "inhand-right", "directions": 4}, {"name": "equipped-HAND-vox", "directions": 4}]}
|
||||
{
|
||||
"version": 1,
|
||||
"license": "CC-BY-SA-3.0",
|
||||
"copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/4f6190e2895e09116663ef282d3ce1d8b35c032e",
|
||||
"size": {
|
||||
"x": 32,
|
||||
"y": 32
|
||||
},
|
||||
"states": [
|
||||
{
|
||||
"name": "icon"
|
||||
},
|
||||
{
|
||||
"name": "equipped-HAND",
|
||||
"directions": 4
|
||||
},
|
||||
{
|
||||
"name": "inhand-left",
|
||||
"directions": 4
|
||||
},
|
||||
{
|
||||
"name": "inhand-right",
|
||||
"directions": 4
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
|
Before Width: | Height: | Size: 671 B After Width: | Height: | Size: 605 B |
|
Before Width: | Height: | Size: 672 B After Width: | Height: | Size: 607 B |
|
Before Width: | Height: | Size: 699 B After Width: | Height: | Size: 631 B |
|
Before Width: | Height: | Size: 699 B After Width: | Height: | Size: 636 B |
|
Before Width: | Height: | Size: 661 B After Width: | Height: | Size: 594 B |
|
Before Width: | Height: | Size: 658 B After Width: | Height: | Size: 591 B |
|
Before Width: | Height: | Size: 699 B After Width: | Height: | Size: 631 B |
|
Before Width: | Height: | Size: 699 B After Width: | Height: | Size: 636 B |
|
Before Width: | Height: | Size: 699 B After Width: | Height: | Size: 631 B |
|
Before Width: | Height: | Size: 699 B After Width: | Height: | Size: 636 B |
|
Before Width: | Height: | Size: 699 B After Width: | Height: | Size: 631 B |
|
Before Width: | Height: | Size: 699 B After Width: | Height: | Size: 636 B |
|
After Width: | Height: | Size: 459 B |
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"version": 1,
|
||||
"license": "CC-BY-SA-3.0",
|
||||
"copyright": "Made by @ninruB#7795, based off tgstation's jackboots at commit https://github.com/tgstation/tgstation/commit/7e4e9d432d88981fb9bb463970c5b98ce85c0abe",
|
||||
"copyright": "Made by @ninruB#7795, based off tgstation's jackboots at commit https://github.com/tgstation/tgstation/commit/7e4e9d432d88981fb9bb463970c5b98ce85c0abe. Vox state modified from jackboots.rsi by Flareguy",
|
||||
"size": {
|
||||
"x": 32,
|
||||
"y": 32
|
||||
@@ -14,6 +14,10 @@
|
||||
"name": "equipped-FEET",
|
||||
"directions": 4
|
||||
},
|
||||
{
|
||||
"name": "equipped-FEET-vox",
|
||||
"directions": 4
|
||||
},
|
||||
{
|
||||
"name": "inhand-left",
|
||||
"directions": 4
|
||||
|
||||
|
After Width: | Height: | Size: 1.1 KiB |
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"version": 1,
|
||||
"license": "CC-BY-SA-3.0",
|
||||
"copyright": "Drawn by Ubaser.",
|
||||
"copyright": "Drawn by Ubaser. Vox states made by Flareguy, modified from magboots.rsi",
|
||||
"size": {
|
||||
"x": 32,
|
||||
"y": 32
|
||||
@@ -15,6 +15,14 @@
|
||||
"name": "on-equipped-FEET",
|
||||
"directions": 4
|
||||
},
|
||||
{
|
||||
"name": "equipped-FEET-vox",
|
||||
"directions": 4
|
||||
},
|
||||
{
|
||||
"name": "on-equipped-FEET-vox",
|
||||
"directions": 4
|
||||
},
|
||||
{
|
||||
"name": "icon"
|
||||
},
|
||||
|
||||
|
After Width: | Height: | Size: 1.2 KiB |
|
After Width: | Height: | Size: 1.5 KiB |
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"version": 1,
|
||||
"license": "CC0-1.0",
|
||||
"copyright": "Created by EmoGarbage404",
|
||||
"copyright": "Created by EmoGarbage404. Vox states made by Flareguy, modified from magboots.rsi",
|
||||
"size": {
|
||||
"x": 32,
|
||||
"y": 32
|
||||
@@ -15,6 +15,14 @@
|
||||
"name": "on-equipped-FEET",
|
||||
"directions": 4
|
||||
},
|
||||
{
|
||||
"name": "equipped-FEET-vox",
|
||||
"directions": 4
|
||||
},
|
||||
{
|
||||
"name": "on-equipped-FEET-vox",
|
||||
"directions": 4
|
||||
},
|
||||
{
|
||||
"name": "icon"
|
||||
},
|
||||
|
||||
|
After Width: | Height: | Size: 1.5 KiB |
|
Before Width: | Height: | Size: 615 B After Width: | Height: | Size: 297 B |
BIN
Resources/Textures/Mobs/Species/Vox/displacement.rsi/back.png
Normal file
|
After Width: | Height: | Size: 451 B |
BIN
Resources/Textures/Mobs/Species/Vox/displacement.rsi/eyes.png
Normal file
|
After Width: | Height: | Size: 508 B |
BIN
Resources/Textures/Mobs/Species/Vox/displacement.rsi/hand.png
Normal file
|
After Width: | Height: | Size: 483 B |
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"version": 1,
|
||||
"license": "CC-BY-SA-3.0",
|
||||
"copyright": "Made by PJB3005",
|
||||
"copyright": "jumpsuit state made by PJB3005. back, hand, and eyes states made by Flareguy",
|
||||
"size": {
|
||||
"x": 32,
|
||||
"y": 32
|
||||
@@ -13,6 +13,18 @@
|
||||
{
|
||||
"name": "jumpsuit",
|
||||
"directions": 4
|
||||
},
|
||||
{
|
||||
"name": "back",
|
||||
"directions": 4
|
||||
},
|
||||
{
|
||||
"name": "hand",
|
||||
"directions": 4
|
||||
},
|
||||
{
|
||||
"name": "eyes",
|
||||
"directions": 4
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
|
Before Width: | Height: | Size: 866 B After Width: | Height: | Size: 955 B |
|
Before Width: | Height: | Size: 400 B After Width: | Height: | Size: 406 B |
BIN
Resources/Textures/Structures/Wallmounts/signs.rsi/ai_upload.png
Normal file
|
After Width: | Height: | Size: 513 B |
|
Before Width: | Height: | Size: 399 B After Width: | Height: | Size: 515 B |
|
Before Width: | Height: | Size: 454 B |
|
Before Width: | Height: | Size: 3.1 KiB After Width: | Height: | Size: 3.1 KiB |
|
Before Width: | Height: | Size: 391 B After Width: | Height: | Size: 423 B |
|
Before Width: | Height: | Size: 385 B After Width: | Height: | Size: 519 B |
|
Before Width: | Height: | Size: 626 B |
|
Before Width: | Height: | Size: 486 B After Width: | Height: | Size: 466 B |
|
Before Width: | Height: | Size: 388 B After Width: | Height: | Size: 398 B |
|
Before Width: | Height: | Size: 444 B After Width: | Height: | Size: 481 B |
|
Before Width: | Height: | Size: 339 B After Width: | Height: | Size: 397 B |
|
Before Width: | Height: | Size: 484 B After Width: | Height: | Size: 475 B |
BIN
Resources/Textures/Structures/Wallmounts/signs.rsi/cans.png
Normal file
|
After Width: | Height: | Size: 445 B |
|
Before Width: | Height: | Size: 352 B After Width: | Height: | Size: 445 B |
|
Before Width: | Height: | Size: 407 B After Width: | Height: | Size: 476 B |
|
Before Width: | Height: | Size: 354 B After Width: | Height: | Size: 533 B |
|
Before Width: | Height: | Size: 431 B After Width: | Height: | Size: 461 B |
|
Before Width: | Height: | Size: 450 B |
|
Before Width: | Height: | Size: 401 B |
|
Before Width: | Height: | Size: 418 B After Width: | Height: | Size: 446 B |