Merge branch 'master' into ARCS-speed-buff-branch
This commit is contained in:
commit
e71093425b
|
|
@ -1,34 +1,25 @@
|
|||
# Last match in file takes precedence.
|
||||
# See https://docs.github.com/en/repositories/managing-your-repositorys-settings-and-features/customizing-your-repository/about-code-owners#example-of-a-codeowners-file
|
||||
|
||||
# C# code
|
||||
/Content.*/ @DeltaV-Station/maintainers
|
||||
|
||||
# Any assets
|
||||
/Resources/ @DeltaV-Station/maintainers
|
||||
* @DeltaV-Station/maintainers
|
||||
|
||||
# Server config files
|
||||
/Resources/ConfigPresets/ @Toby222
|
||||
/Resources/ConfigPresets/ @DeltaV-Station/lead-maintainers
|
||||
|
||||
# Github workflows
|
||||
/.github/ @DeltaV-Station/lead-maintainers
|
||||
|
||||
# Lobby art and music - automatically direction issues since its immediately visible to players
|
||||
/Resources/Audio/Lobby/ @DeltaV-Station/direction
|
||||
/Resources/Textures/LobbyScreens/ @DeltaV-Station/direction
|
||||
/Resources/Audio/Lobby/ @DeltaV-Station/direction @DeltaV-Station/maintainers
|
||||
/Resources/Textures/LobbyScreens/ @DeltaV-Station/direction @DeltaV-Station/maintainers
|
||||
|
||||
# Maps
|
||||
/Resources/Maps/ @DeltaV-Station/maptainers
|
||||
/Resources/Prototypes/Maps/ @DeltaV-Station/maptainers
|
||||
/Content.IntegrationTests/Tests/PostMapInitTest.cs @DeltaV-Station/maptainers
|
||||
/Content.IntegrationTests/Tests/PostMapInitTest.cs @DeltaV-Station/maptainers @DeltaV-Station/maintainers
|
||||
|
||||
# Server rules
|
||||
/Resources/ServerInfo/Guidebook/_DV/Rules/ @DeltaV-Station/head-administrators
|
||||
|
||||
# Wiki
|
||||
/.wiki/ @DeltaV-Station/direction
|
||||
|
||||
# Tools and scripts
|
||||
/Tools/ @Toby222
|
||||
|
||||
# Workflows, codeowners, templates, etc.
|
||||
/.github/ @Toby222
|
||||
|
||||
# Standalone files in the root repo
|
||||
/* @Toby222
|
||||
/.wiki/ @DeltaV-Station/direction
|
||||
|
|
@ -9,6 +9,8 @@ using Content.Shared.Preferences;
|
|||
using Robust.Client.UserInterface.Controls;
|
||||
using Robust.Shared.Enums;
|
||||
using Robust.Shared.Prototypes;
|
||||
using Content.Client._CD.Records.UI; // DeltaV
|
||||
using Content.Shared._DV.Body.Systems; // DeltaV
|
||||
|
||||
namespace Content.Client.Lobby.UI;
|
||||
|
||||
|
|
@ -193,6 +195,7 @@ public sealed partial class HumanoidProfileEditor
|
|||
RefreshLoadouts();
|
||||
UpdateSexControls(); // update sex for new species
|
||||
UpdateSpeciesGuidebookIcon();
|
||||
UpdateHeightControls(); // DeltaV
|
||||
ReloadPreview();
|
||||
}
|
||||
|
||||
|
|
@ -204,23 +207,22 @@ public sealed partial class HumanoidProfileEditor
|
|||
ReloadProfilePreview();
|
||||
}
|
||||
|
||||
|
||||
private void UpdateHeightControls()
|
||||
{
|
||||
if (Profile == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
var species = _species.Find(x => x.ID == Profile.Species);
|
||||
if (species != null)
|
||||
_defaultHeight = species.DefaultHeight;
|
||||
var prototype = _prototypeManager.Index(Profile.Species);
|
||||
_defaultHeight = prototype.DefaultHeight;
|
||||
|
||||
var prototype = _prototypeManager.Index<SpeciesPrototype>(Profile.Species);
|
||||
var sliderPercent = (Profile.Height - prototype.MinHeight) /
|
||||
(prototype.MaxHeight - prototype.MinHeight);
|
||||
CDHeightSlider.Value = sliderPercent;
|
||||
CDHeight.Text = Profile.Height.ToString(CultureInfo.InvariantCulture);
|
||||
|
||||
var scaleReference = _defaultHeight * prototype.BaseScale.Y;
|
||||
var newHeight = MathF.Round(MathHelper.Lerp(prototype.MinHeight, prototype.MaxHeight, sliderPercent), 2);
|
||||
CDHeightLabel.Text = UnitConversion.GetMetricAndImperialDisplayFromScale(scaleReference * newHeight);
|
||||
CDPullSpeedReductionLabel.Text = SmallCharacterSystem.GetPullSpeedPenaltyDisplayFromScale(newHeight);
|
||||
}
|
||||
// End CD - Character Records
|
||||
|
||||
|
|
|
|||
|
|
@ -73,9 +73,13 @@
|
|||
<BoxContainer HorizontalExpand="True">
|
||||
<Label Text="{Loc 'humanoid-profile-editor-height-label'}" />
|
||||
<Control HorizontalExpand="True" />
|
||||
<Label Name="CDHeightLabel" />
|
||||
<Slider Name="CDHeightSlider" HorizontalAlignment="Right" SetWidth="300" MinValue="0.0" MaxValue="1.0"/>
|
||||
<LineEdit HorizontalAlignment="Right" Name="CDHeight" MinSize="60 0" Text="1.0" />
|
||||
<Button Name="CDHeightReset" Text="{Loc 'humanoid-profile-editor-reset-height-button'}" HorizontalAlignment="Right"/>
|
||||
</BoxContainer>
|
||||
<BoxContainer HorizontalExpand="True">
|
||||
<Label Text="{Loc 'humanoid-profile-editor-height-pull-speed-penalty-label'}" />
|
||||
<Control HorizontalExpand="True" />
|
||||
<Label Name="CDPullSpeedReductionLabel" />
|
||||
</BoxContainer>
|
||||
<!-- End CD - Character Records -->
|
||||
<!-- Sex -->
|
||||
|
|
|
|||
|
|
@ -2,9 +2,6 @@ using Content.Client.Humanoid;
|
|||
using Content.Client.Message;
|
||||
using Content.Client.Players.PlayTimeTracking;
|
||||
using Content.Client.Sprite;
|
||||
using Content.Client.UserInterface.Systems.Guidebook;
|
||||
using Content.Shared._DV.Species; // DeltaV - Species hider
|
||||
using Content.Shared.Body;
|
||||
using Content.Shared.CCVar;
|
||||
using Content.Shared.GameTicking;
|
||||
using Content.Shared.Humanoid;
|
||||
|
|
@ -22,13 +19,8 @@ using Robust.Shared.ContentPack;
|
|||
using Robust.Shared.Enums;
|
||||
using Robust.Shared.Prototypes;
|
||||
using Direction = Robust.Shared.Maths.Direction;
|
||||
// Begin CD - Character Records
|
||||
using System.Globalization;
|
||||
using Content.Client._CD.Records.UI;
|
||||
using Content.Shared._CD.Records;
|
||||
// End CD - Character Records
|
||||
using Content.Shared._DV.Traits;
|
||||
using Content.Shared.Humanoid.Prototypes; // DV - Traits
|
||||
using Content.Client._CD.Records.UI; // CD - Character Records
|
||||
using Content.Shared._DV.Body.Systems; // DV - Traits
|
||||
|
||||
namespace Content.Client.Lobby.UI
|
||||
{
|
||||
|
|
@ -221,34 +213,18 @@ namespace Content.Client.Lobby.UI
|
|||
// Begin CD - Character Records
|
||||
#region CDHeight
|
||||
|
||||
CDHeight.OnTextChanged += args =>
|
||||
{
|
||||
if (Profile is null || !float.TryParse(args.Text, out var newHeight))
|
||||
return;
|
||||
|
||||
var prototype = _prototypeManager.Index<SpeciesPrototype>(Profile.Species);
|
||||
newHeight = MathF.Round(Math.Clamp(newHeight, prototype.MinHeight, prototype.MaxHeight), 2);
|
||||
|
||||
// The percentage between the start and end numbers, aka "inverse lerp"
|
||||
var sliderPercent = (newHeight - prototype.MinHeight) /
|
||||
(prototype.MaxHeight - prototype.MinHeight);
|
||||
CDHeightSlider.Value = sliderPercent;
|
||||
|
||||
SetProfileHeight(newHeight);
|
||||
};
|
||||
|
||||
CDHeightReset.OnPressed += _ =>
|
||||
{
|
||||
CDHeight.SetText(_defaultHeight.ToString(CultureInfo.InvariantCulture), true);
|
||||
};
|
||||
|
||||
CDHeightSlider.OnValueChanged += _ =>
|
||||
{
|
||||
if (Profile is null)
|
||||
return;
|
||||
var prototype = _prototypeManager.Index<SpeciesPrototype>(Profile.Species);
|
||||
|
||||
var prototype = _prototypeManager.Index(Profile.Species);
|
||||
var newHeight = MathF.Round(MathHelper.Lerp(prototype.MinHeight, prototype.MaxHeight, CDHeightSlider.Value), 2);
|
||||
CDHeight.Text = newHeight.ToString(CultureInfo.InvariantCulture);
|
||||
|
||||
var speciesScale = prototype.BaseScale.Y;
|
||||
|
||||
CDHeightLabel.Text = UnitConversion.GetMetricAndImperialDisplayFromScale(newHeight * speciesScale);
|
||||
CDPullSpeedReductionLabel.Text = SmallCharacterSystem.GetPullSpeedPenaltyDisplayFromScale(newHeight);
|
||||
SetProfileHeight(newHeight);
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -49,11 +49,6 @@
|
|||
<Control HorizontalExpand="True" />
|
||||
<Label Name="RecordContainerSpecies" Align="Right" />
|
||||
</BoxContainer>
|
||||
<BoxContainer Orientation="Horizontal" HorizontalExpand="True">
|
||||
<Label Text="{Loc 'humanoid-profile-editor-cd-records-height'}"/>
|
||||
<Control HorizontalExpand="True" />
|
||||
<Label Name="RecordContainerHeight" Align="Right" />
|
||||
</BoxContainer>
|
||||
<BoxContainer Orientation="Horizontal" HorizontalExpand="True">
|
||||
<Label Text="{Loc 'humanoid-profile-editor-cd-records-weight'}"/>
|
||||
<Control HorizontalExpand="True" />
|
||||
|
|
|
|||
|
|
@ -325,8 +325,7 @@ public sealed partial class CharacterRecordViewer : FancyWindow
|
|||
RecordContainerJob.Text = record.JobTitle; /* At some point in the future we might want to display the icon */
|
||||
RecordContainerGender.Text = record.Gender.ToString();
|
||||
RecordContainerSpecies.Text = record.Species;
|
||||
RecordContainerHeight.Text = cr.Height + " " + UnitConversion.GetImperialDisplayLength(cr.Height);
|
||||
RecordContainerWeight.Text = cr.Weight + " " + UnitConversion.GetImperialDisplayMass(cr.Weight);
|
||||
RecordContainerWeight.Text = $"{cr.Weight} ({UnitConversion.GetImperialDisplayMass(cr.Weight)})";
|
||||
RecordContainerContactName.SetValue(cr.EmergencyContactName);
|
||||
|
||||
RecordContainerEmployment.Visible = false;
|
||||
|
|
|
|||
|
|
@ -5,12 +5,6 @@
|
|||
<BoxContainer Orientation="Vertical" HorizontalExpand="True" Margin="10">
|
||||
<!-- Height, Weight -->
|
||||
<GridContainer Columns="2">
|
||||
<BoxContainer HorizontalExpand="True" SeparationOverride="2">
|
||||
<Label Text="{Loc 'humanoid-profile-editor-cd-records-height'}" />
|
||||
<Control HorizontalExpand="True" MinSize="5 0" />
|
||||
<LineEdit Name="HeightEdit" HorizontalAlignment="Right" MinSize="60 0" />
|
||||
<Label Name="HeightImperialLabel" MinWidth="60" />
|
||||
</BoxContainer>
|
||||
<BoxContainer HorizontalExpand="True" SeparationOverride="2">
|
||||
<Label Text="{Loc 'humanoid-profile-editor-cd-records-weight'}" />
|
||||
<Control HorizontalExpand="True" MinSize="5 0" />
|
||||
|
|
|
|||
|
|
@ -25,14 +25,6 @@ public sealed partial class RecordEditorGui : Control
|
|||
|
||||
#region General
|
||||
|
||||
HeightEdit.OnTextChanged += args =>
|
||||
{
|
||||
if (!int.TryParse(args.Text, out var newHeight))
|
||||
return;
|
||||
UpdateImperialHeight(newHeight);
|
||||
UpdateRecords(_records.WithHeight(newHeight));
|
||||
};
|
||||
|
||||
WeightEdit.OnTextChanged += args =>
|
||||
{
|
||||
if (!int.TryParse(args.Text, out var newWeight))
|
||||
|
|
@ -128,8 +120,6 @@ public sealed partial class RecordEditorGui : Control
|
|||
|
||||
private void UpdateWidgets()
|
||||
{
|
||||
HeightEdit.SetText(_records.Height.ToString());
|
||||
UpdateImperialHeight(_records.Height);
|
||||
WeightEdit.SetText(_records.Weight.ToString());
|
||||
UpdateImperialWeight(_records.Weight);
|
||||
ContactNameEdit.SetText(_records.EmergencyContactName);
|
||||
|
|
@ -143,13 +133,8 @@ public sealed partial class RecordEditorGui : Control
|
|||
PostmortemEdit.SetText(_records.PostmortemInstructions);
|
||||
}
|
||||
|
||||
private void UpdateImperialHeight(int newHeight)
|
||||
{
|
||||
HeightImperialLabel.Text = UnitConversion.GetImperialDisplayLength(newHeight);
|
||||
}
|
||||
|
||||
private void UpdateImperialWeight(int newWeight)
|
||||
{
|
||||
WeightImperialLabel.Text = UnitConversion.GetImperialDisplayMass(newWeight);
|
||||
WeightImperialLabel.Text = $"({UnitConversion.GetImperialDisplayMass(newWeight)})";
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -2,15 +2,47 @@ namespace Content.Client._CD.Records.UI;
|
|||
|
||||
public static class UnitConversion
|
||||
{
|
||||
/// <summary>
|
||||
/// DeltaV - The average height of a human in centimeters. According to the US CDC, its
|
||||
/// 171 for men and 160 for women. So average of that is ~165cm.
|
||||
///
|
||||
/// Just kidding, we're going with EE's arbitrary standard of 175cm.
|
||||
/// </summary>
|
||||
private const int AVERAGE_HEIGHT_CM = 175;
|
||||
|
||||
/// <summary>
|
||||
/// DeltaV - 1.0 scale is considered average for humans, so a scale of 1 will be 175cm.
|
||||
/// Ensure that scale also includes the base species height AND the user-defined height.
|
||||
/// </summary>
|
||||
/// <param name="scale"></param>
|
||||
/// <returns></returns>
|
||||
private static int GetMetricHeightFromScale(float scale = 1)
|
||||
{
|
||||
// cast as int because we don't care about decimal
|
||||
return (int)Math.Max(scale * AVERAGE_HEIGHT_CM, 1); // can't be shorter than 1cm I guess
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// DeltaV - Gets nicely formatted string that contains both metric and imperial measurements.
|
||||
/// With a scale of 1, it should look like... 175cm (5' 9")
|
||||
/// </summary>
|
||||
/// <param name="scale"></param>
|
||||
/// <returns></returns>
|
||||
public static string GetMetricAndImperialDisplayFromScale(float scale = 1)
|
||||
{
|
||||
var metricHeight = GetMetricHeightFromScale(scale);
|
||||
return $"{metricHeight}cm ({GetImperialDisplayLength(metricHeight)})";
|
||||
}
|
||||
|
||||
public static string GetImperialDisplayLength(int lengthCm)
|
||||
{
|
||||
var heightIn = (int) Math.Round(lengthCm * 0.3937007874 /* cm to in*/);
|
||||
return $"({heightIn / 12}'{heightIn % 12}'')";
|
||||
var heightIn = (int)Math.Round(lengthCm * 0.3937007874 /* cm to in*/);
|
||||
return $"{heightIn / 12}'{heightIn % 12}\"";
|
||||
}
|
||||
|
||||
public static string GetImperialDisplayMass(int massKg)
|
||||
{
|
||||
var weightLbs = (int) Math.Round(massKg * 2.2046226218 /* kg to lbs */);
|
||||
return $"({weightLbs} lbs)";
|
||||
var weightLbs = (int)Math.Round(massKg * 2.2046226218 /* kg to lbs */);
|
||||
return $"{weightLbs} lbs";
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -8,6 +8,7 @@ using Content.Server.NodeContainer.Nodes;
|
|||
using Content.Shared._DV.NodeCrawl;
|
||||
using Content.Shared.Atmos;
|
||||
using Content.Shared.NodeContainer;
|
||||
using Content.Shared.Polymorph;
|
||||
using Content.Shared.Zombies;
|
||||
using Robust.Shared.Reflection;
|
||||
using Robust.Shared.Utility;
|
||||
|
|
@ -30,6 +31,7 @@ public sealed class NodeCrawlSystem : SharedNodeCrawlSystem
|
|||
SubscribeLocalEvent<NodeCrawlerComponent, InhaleLocationEvent>(OnInhaleLocation);
|
||||
SubscribeLocalEvent<NodeCrawlerComponent, ExhaleLocationEvent>(OnExhaleLocation);
|
||||
SubscribeLocalEvent<NodeCrawlerComponent, AtmosExposedGetAirEvent>(OnGetAir);
|
||||
SubscribeLocalEvent<NodeCrawlerComponent, PolymorphActionEvent>(OnPolymorph);
|
||||
|
||||
SubscribeLocalEvent<NodeCrawlerComponent, EntityZombifiedEvent>(OnZombify);
|
||||
}
|
||||
|
|
@ -222,4 +224,15 @@ public sealed class NodeCrawlSystem : SharedNodeCrawlSystem
|
|||
ent.Comp.EnterDelay = ent.Comp.ZombieEnterDelay;
|
||||
Dirty(ent);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Exit on polymorph or else the entity's movement bugs out.
|
||||
/// </summary>
|
||||
/// <param name="ent"></param>
|
||||
/// <param name="args"></param>
|
||||
private void OnPolymorph(Entity<NodeCrawlerComponent> ent, ref PolymorphActionEvent args)
|
||||
{
|
||||
if (ent.Comp.Mover.HasValue)
|
||||
ExitNodeCrawl(ent);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -19,6 +19,7 @@ using Content.Shared._Goobstation.Flashbang;
|
|||
using Content.Shared._Starlight.Flash.Components;
|
||||
using Content.Shared.Body.Components;
|
||||
using Content.Shared.Flash; // Delta V - Flash Work
|
||||
using Content.Shared._DV.Body.Components; // Delta V - Remove various comps related to breathing
|
||||
|
||||
|
||||
namespace Content.Server._Starlight;
|
||||
|
|
@ -68,6 +69,8 @@ public sealed class ShadekinSystem : EntitySystem
|
|||
{
|
||||
UpdateAlert(uid, component, (short)component.CurrentState);
|
||||
RemComp<InternalsComponent>(uid);
|
||||
RemComp<RespiratorComponent>(uid);
|
||||
RemComp<AffectedByCPRComponent>(uid); // No lungs = no CPR
|
||||
}
|
||||
|
||||
private void OnEyeColorChange(EntityUid uid, ShadekinComponent component, EyeColorInitEvent args)
|
||||
|
|
|
|||
|
|
@ -1,9 +1,7 @@
|
|||
using System.Linq;
|
||||
using System.Numerics;
|
||||
using Content.Shared._DV.Humanoid;
|
||||
using Content.Shared._DV.Humanoid; // DeltaV
|
||||
using Content.Shared.Humanoid.Markings;
|
||||
using Content.Shared.Humanoid;
|
||||
using Content.Shared.Sprite;
|
||||
using Robust.Shared.Containers;
|
||||
using Robust.Shared.Prototypes;
|
||||
using Robust.Shared.Utility;
|
||||
|
|
@ -18,7 +16,6 @@ public abstract partial class SharedVisualBodySystem : EntitySystem
|
|||
[Dependency] private readonly IPrototypeManager _prototype = default!;
|
||||
[Dependency] private readonly MarkingManager _marking = default!;
|
||||
[Dependency] private readonly SharedContainerSystem _container = default!;
|
||||
[Dependency] private readonly SharedScaleVisualsSystem _scaleVisualsSystem = default!;
|
||||
|
||||
public override void Initialize()
|
||||
{
|
||||
|
|
@ -28,7 +25,6 @@ public abstract partial class SharedVisualBodySystem : EntitySystem
|
|||
SubscribeLocalEvent<VisualOrganMarkingsComponent, BodyRelayedEvent<OrganCopyAppearanceEvent>>(OnMarkingsOrganCopyAppearance);
|
||||
SubscribeLocalEvent<VisualOrganComponent, BodyRelayedEvent<ApplyOrganProfileDataEvent>>(OnVisualOrganApplyProfile);
|
||||
SubscribeLocalEvent<VisualOrganMarkingsComponent, BodyRelayedEvent<ApplyOrganMarkingsEvent>>(OnMarkingsOrganApplyMarkings);
|
||||
SubscribeLocalEvent<HumanoidProfileComponent, ApplyOrganProfileDataEvent>(OnApplyOrganProfileData); // Delta V - Taking the solution from CD
|
||||
|
||||
InitializeModifiers();
|
||||
InitializeInitial();
|
||||
|
|
@ -100,36 +96,9 @@ public abstract partial class SharedVisualBodySystem : EntitySystem
|
|||
if (!other.Layer.Equals(ent.Comp.Layer))
|
||||
return;
|
||||
|
||||
// Delta V - Begin Fix Height for Cloning
|
||||
var height = other.Profile.Height;
|
||||
if (TryComp<HumanoidProfileComponent>(args.Body.Owner, out var component))
|
||||
ScaleBody((args.Body.Owner, component), height, height);
|
||||
// Delta V - End
|
||||
|
||||
SetOrganAppearance(ent, other.Data);
|
||||
}
|
||||
|
||||
// Delta V - BEGIN CD Solution
|
||||
private void OnApplyOrganProfileData(Entity<HumanoidProfileComponent> entity, ref ApplyOrganProfileDataEvent args)
|
||||
{
|
||||
var speciesPrototype = _prototype.Index(entity.Comp.Species);
|
||||
if (args.Base == null)
|
||||
return;
|
||||
|
||||
var height = Math.Clamp(MathF.Round(args.Base.Value.Height, 2), speciesPrototype.MinHeight, speciesPrototype.MaxHeight);
|
||||
|
||||
ScaleBody(entity, speciesPrototype.ScaleHeight ? height : 1f, height);
|
||||
}
|
||||
|
||||
private void ScaleBody(Entity<HumanoidProfileComponent> entity, float heightX, float heightY)
|
||||
{
|
||||
_scaleVisualsSystem.SetSpriteScale(
|
||||
entity.Owner,
|
||||
new Vector2(heightX, heightY)
|
||||
);
|
||||
}
|
||||
// Delta V - END
|
||||
|
||||
|
||||
private void OnMarkingsOrganCopyAppearance(Entity<VisualOrganMarkingsComponent> ent, ref BodyRelayedEvent<OrganCopyAppearanceEvent> args)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -1,7 +1,9 @@
|
|||
using System.Numerics; // DeltaV
|
||||
using Content.Shared.Examine;
|
||||
using Content.Shared.Humanoid.Prototypes;
|
||||
using Content.Shared.IdentityManagement;
|
||||
using Content.Shared.Preferences;
|
||||
using Content.Shared.Sprite; // DeltaV
|
||||
using Robust.Shared.GameObjects.Components.Localization;
|
||||
using Robust.Shared.Prototypes;
|
||||
|
||||
|
|
@ -11,6 +13,7 @@ public sealed class HumanoidProfileSystem : EntitySystem
|
|||
{
|
||||
[Dependency] private readonly IPrototypeManager _prototype = default!;
|
||||
[Dependency] private readonly GrammarSystem _grammar = default!;
|
||||
[Dependency] private readonly SharedScaleVisualsSystem _scale = default!; // DeltaV
|
||||
|
||||
public override void Initialize()
|
||||
{
|
||||
|
|
@ -28,6 +31,7 @@ public sealed class HumanoidProfileSystem : EntitySystem
|
|||
ent.Comp.Age = profile.Age;
|
||||
ent.Comp.Species = profile.Species;
|
||||
ent.Comp.Sex = profile.Sex;
|
||||
ent.Comp.Height = profile.Height; // DeltaV
|
||||
Dirty(ent);
|
||||
|
||||
var sexChanged = new SexChangedEvent(ent.Comp.Sex, profile.Sex);
|
||||
|
|
@ -37,6 +41,15 @@ public sealed class HumanoidProfileSystem : EntitySystem
|
|||
{
|
||||
_grammar.SetGender((ent, grammar), profile.Gender);
|
||||
}
|
||||
|
||||
// START DeltaV - Apply profile/species size
|
||||
// Assume 1.0 scale unless the original scale exists (blame Allulalo)
|
||||
var scale = Vector2.One;
|
||||
if (TryComp<ScaleVisualsComponent>(ent, out var scaledVisuals) && scaledVisuals.OriginalScale is { } originalScale)
|
||||
scale = originalScale;
|
||||
|
||||
_scale.SetSpriteScale(ent, scale);
|
||||
// END DeltaV
|
||||
}
|
||||
|
||||
private void OnExamined(Entity<HumanoidProfileComponent> ent, ref ExaminedEvent args)
|
||||
|
|
|
|||
|
|
@ -1,3 +1,4 @@
|
|||
using System.Numerics; // DeltaV
|
||||
using Content.Shared.Body;
|
||||
using Content.Shared.Dataset;
|
||||
using Content.Shared.Humanoid.Markings;
|
||||
|
|
@ -111,7 +112,7 @@ public sealed partial class SpeciesPrototype : IPrototype
|
|||
/// The base height scale for this species
|
||||
/// </summary>
|
||||
[DataField("baseScale")]
|
||||
public System.Numerics.Vector2 BaseScale = new(1f, 1f);
|
||||
public Vector2 BaseScale = new(1f, 1f);
|
||||
// End DV - CD Character Records shouldn't nuke species heights
|
||||
|
||||
// Begin CD - Character Records
|
||||
|
|
@ -119,13 +120,13 @@ public sealed partial class SpeciesPrototype : IPrototype
|
|||
/// The minimum height for this species
|
||||
/// </summary>
|
||||
[DataField("minHeight")]
|
||||
public float MinHeight = 0.9f; // DeltaV - less trolling with the heights
|
||||
public float MinHeight = 0.8f; // DeltaV
|
||||
|
||||
/// <summary>
|
||||
/// The maximum height for this species
|
||||
/// </summary>
|
||||
[DataField("maxHeight")]
|
||||
public float MaxHeight = 1.1f; // DeltaV - less trolling with the heights
|
||||
public float MaxHeight = 1.2f; // DeltaV
|
||||
|
||||
/// <summary>
|
||||
/// The default height for this species
|
||||
|
|
|
|||
|
|
@ -1,3 +1,5 @@
|
|||
using Content.Shared._DV.Body.Components; // DeltaV
|
||||
using Content.Shared._DV.Body.Systems; // DeltaV
|
||||
using Content.Shared._ST.Interaction; // Stellar - interaction particles
|
||||
using Content.Shared._Floof.OfferItem; // Floof
|
||||
using Content.Shared.ActionBlocker;
|
||||
|
|
@ -10,6 +12,7 @@ using Content.Shared.Database;
|
|||
using Content.Shared.Hands;
|
||||
using Content.Shared.Hands.Components;
|
||||
using Content.Shared.Hands.EntitySystems;
|
||||
using Content.Shared.Humanoid; // DeltaV
|
||||
using Content.Shared.IdentityManagement;
|
||||
using Content.Shared.Input;
|
||||
using Content.Shared.Interaction;
|
||||
|
|
@ -55,6 +58,7 @@ public sealed class PullingSystem : EntitySystem
|
|||
[Dependency] private readonly HeldSpeedModifierSystem _clothingMoveSpeed = default!;
|
||||
[Dependency] private readonly SharedPopupSystem _popup = default!;
|
||||
[Dependency] private readonly SharedVirtualItemSystem _virtual = default!;
|
||||
[Dependency] private readonly SmallCharacterSystem _smallCharacter = default!; // DeltaV
|
||||
|
||||
public override void Initialize()
|
||||
{
|
||||
|
|
@ -295,6 +299,14 @@ public sealed class PullingSystem : EntitySystem
|
|||
|
||||
private void OnRefreshMovespeed(EntityUid uid, PullerComponent component, RefreshMovementSpeedModifiersEvent args)
|
||||
{
|
||||
// BEGIN DeltaV - Slow if smaller puller
|
||||
if (TryComp<SmallCharacterComponent>(uid, out var smol))
|
||||
{
|
||||
var sizePenalty = _smallCharacter.ApplyPullSpeedPenalty((uid, smol), component.Pulling);
|
||||
args.ModifySpeed(sizePenalty, sizePenalty);
|
||||
}
|
||||
// END DeltaV
|
||||
|
||||
if (TryComp<HeldSpeedModifierComponent>(component.Pulling, out var heldMoveSpeed) && component.Pulling.HasValue)
|
||||
{
|
||||
var (walkMod, sprintMod) =
|
||||
|
|
|
|||
|
|
@ -97,7 +97,7 @@ public sealed partial class ParcelWrappingSystem
|
|||
if (target == user)
|
||||
{
|
||||
var selfMsg = Loc.GetString("parcel-wrap-popup-being-wrapped-self");
|
||||
_popup.PopupClient(selfMsg, user, user);
|
||||
_popup.PopupEntity(selfMsg, user, user);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
@ -143,7 +143,7 @@ public sealed partial class ParcelWrappingSystem
|
|||
|
||||
// Spawn the actual parcel entity.
|
||||
var targetTransform = Transform(target);
|
||||
var spawned = Spawn(GetParcelPrototype(wrapper, target), targetTransform.Coordinates);
|
||||
var spawned = SpawnAtPosition(GetParcelPrototype(wrapper, target), targetTransform.Coordinates);
|
||||
_transform.SetLocalRotation(spawned, targetTransform.LocalRotation);
|
||||
|
||||
// If the target is in a container, try to put the parcel in its place in the container.
|
||||
|
|
|
|||
|
|
@ -177,7 +177,7 @@ namespace Content.Shared.Preferences
|
|||
_traitPreferences = traitPreferences;
|
||||
_loadouts = loadouts;
|
||||
// Begin CD - Character Records
|
||||
Height = height;
|
||||
Height = height; // This is the user-set scale on the profile editor. Not actual height measurements.
|
||||
CDCharacterRecords = cdCharacterRecords;
|
||||
// End CD - Character Records
|
||||
|
||||
|
|
|
|||
|
|
@ -25,11 +25,27 @@ public sealed partial class ScaleVisualsComponent : Component
|
|||
[ViewVariables]
|
||||
public Vector2? OriginalScale;
|
||||
|
||||
// Delta V Addition
|
||||
/// <summary>
|
||||
/// Base Scale of the Species, which we use to set a new height relative to this.
|
||||
/// DeltaV - Contains the species scale. Set dynamically by
|
||||
/// baseScale in the Species prototype.
|
||||
/// </summary>
|
||||
[DataField, AutoNetworkedField]
|
||||
[ViewVariables]
|
||||
public Vector2 SpeciesScale = Vector2.One;
|
||||
public Vector2 SpeciesScale = new(1f, 1f);
|
||||
|
||||
/// <summary>
|
||||
/// DeltaV - Contains the user-defined scale from the character creation
|
||||
/// screen.
|
||||
/// </summary>
|
||||
[DataField, AutoNetworkedField]
|
||||
[ViewVariables]
|
||||
public Vector2 ProfileScale = new(1f, 1f);
|
||||
|
||||
/// <summary>
|
||||
/// DeltaV - Contains the computer scale from applying Scale, SpeciesScale, and ProfileScale.
|
||||
/// This will contain the actual scale after all modifiers are applied.
|
||||
/// </summary>
|
||||
[DataField, AutoNetworkedField]
|
||||
[ViewVariables]
|
||||
public Vector2 ComputedScale;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,4 +1,6 @@
|
|||
using System.Numerics;
|
||||
using Content.Shared.Humanoid; // DeltaV
|
||||
using Robust.Shared.Prototypes; // DeltaV
|
||||
using Robust.Shared.Serialization;
|
||||
|
||||
namespace Content.Shared.Sprite;
|
||||
|
|
@ -6,6 +8,7 @@ namespace Content.Shared.Sprite;
|
|||
public abstract class SharedScaleVisualsSystem : EntitySystem
|
||||
{
|
||||
[Dependency] private readonly SharedAppearanceSystem _appearance = default!;
|
||||
[Dependency] private readonly IPrototypeManager _proto = default!; // DeltaV
|
||||
|
||||
public override void Initialize()
|
||||
{
|
||||
|
|
@ -39,15 +42,28 @@ public abstract class SharedScaleVisualsSystem : EntitySystem
|
|||
{
|
||||
var comp = EnsureComp<ScaleVisualsComponent>(uid);
|
||||
comp.Scale = scale;
|
||||
|
||||
// BEGIN DeltaV - Apply species and profile height
|
||||
// We have to ensure this is idempotent so that if it gets applied more than once
|
||||
// the sprite size at the end is the same.
|
||||
if (TryComp<HumanoidProfileComponent>(uid, out var profile))
|
||||
{
|
||||
var speciesProto = _proto.Index(profile.Species);
|
||||
comp.SpeciesScale = speciesProto.BaseScale;
|
||||
scale *= comp.SpeciesScale; // Apply both species scale and character-defined height
|
||||
|
||||
Vector2 profileHeight = new(profile.Height, profile.Height);
|
||||
comp.ProfileScale = profileHeight;
|
||||
scale *= comp.ProfileScale;
|
||||
}
|
||||
|
||||
comp.ComputedScale = scale; // Nice to know what the computed size is in case of bugs
|
||||
// END DeltaV
|
||||
|
||||
Dirty(uid, comp);
|
||||
|
||||
// Delta V - Begin Species Scaling
|
||||
// 120% species scale => add 0.2 to scale
|
||||
var newScale = scale + comp.SpeciesScale - Vector2.One;
|
||||
// Delta V - End Species Scaling
|
||||
|
||||
var appearanceComponent = EnsureComp<AppearanceComponent>(uid);
|
||||
_appearance.SetData(uid, ScaleVisuals.Scale, newScale /* Delta V - Custom Species Scale */, appearanceComponent);
|
||||
_appearance.SetData(uid, ScaleVisuals.Scale, scale, appearanceComponent);
|
||||
|
||||
// Raise an event for content use.
|
||||
var ev = new ScaleEntityEvent(uid, scale);
|
||||
|
|
|
|||
|
|
@ -0,0 +1,23 @@
|
|||
using Content.Shared._DV.Body.Systems;
|
||||
using Robust.Shared.GameStates;
|
||||
|
||||
namespace Content.Shared._DV.Body.Components;
|
||||
|
||||
/// <summary>
|
||||
/// If an entity has this, if a small character has penalties (such as pull speed),
|
||||
/// the small character will ignore the penalties associated with their size.
|
||||
///
|
||||
/// Mostly used for things like wheeled/floating objects.
|
||||
/// </summary>
|
||||
[RegisterComponent, NetworkedComponent]
|
||||
[AutoGenerateComponentState]
|
||||
[Access(typeof(SmallCharacterSystem))]
|
||||
public sealed partial class SmallCharacterComponent : Component
|
||||
{
|
||||
/// <summary>
|
||||
/// The speed of which to scale the small character's pull speed by if the
|
||||
/// object is big enough to warrant a pull-speed slowdown.
|
||||
/// </summary>
|
||||
[DataField, AutoNetworkedField]
|
||||
public float PullSpeedPenalty = 1f;
|
||||
}
|
||||
|
|
@ -0,0 +1,12 @@
|
|||
namespace Content.Shared._DV.Body.Components;
|
||||
|
||||
/// <summary>
|
||||
/// If an entity has this, if a small character has penalties (such as pull speed),
|
||||
/// the small character will ignore the penalties associated with their size.
|
||||
///
|
||||
/// Mostly used for things like wheeled/floating objects.
|
||||
///
|
||||
/// See <see cref="Systems.SmallCharacterSystem"/>
|
||||
/// </summary>
|
||||
[RegisterComponent]
|
||||
public sealed partial class UnaffectedBySizePenaltyComponent : Component;
|
||||
|
|
@ -0,0 +1,97 @@
|
|||
using Content.Shared._DV.Body.Components;
|
||||
using Content.Shared.GameTicking;
|
||||
using Content.Shared.Humanoid;
|
||||
using Content.Shared.Item;
|
||||
using JetBrains.Annotations;
|
||||
using Robust.Shared.Physics.Components;
|
||||
|
||||
namespace Content.Shared._DV.Body.Systems;
|
||||
|
||||
/// <summary>
|
||||
/// Used to relay or subscribe to events if a character's scale is 1.0 or below.
|
||||
/// This is only used for the height slider scale.
|
||||
/// </summary>
|
||||
public sealed partial class SmallCharacterSystem : EntitySystem
|
||||
{
|
||||
private const float NO_PENALTY = 1.0f;
|
||||
public override void Initialize()
|
||||
{
|
||||
base.Initialize();
|
||||
SubscribeLocalEvent<PlayerSpawnCompleteEvent>(OnSpawn);
|
||||
}
|
||||
|
||||
private void OnSpawn(PlayerSpawnCompleteEvent ev)
|
||||
{
|
||||
if (TryComp<HumanoidProfileComponent>(ev.Mob, out var profile))
|
||||
ApplySmallCharacter(ev.Mob, profile.Height);
|
||||
}
|
||||
|
||||
[PublicAPI]
|
||||
public float ApplyPullSpeedPenalty(Entity<SmallCharacterComponent?> puller, EntityUid? pulledEntity)
|
||||
{
|
||||
// Ignore if they aren't pulling anything...
|
||||
if (!pulledEntity.HasValue)
|
||||
return NO_PENALTY;
|
||||
|
||||
// Ignore if they aren't a small character in the first place
|
||||
if (!Resolve(puller, ref puller.Comp, false))
|
||||
return NO_PENALTY;
|
||||
|
||||
// If the pulled entity has the component that ignores the penalty
|
||||
if (HasComp<UnaffectedBySizePenaltyComponent>(pulledEntity))
|
||||
return NO_PENALTY;
|
||||
|
||||
// Ignore if it's an item that can be held or stored. It would be weird to
|
||||
// slow by X% from pulling a piece of paper or a gun when you can just hold it
|
||||
// and not suffer from a penalty.
|
||||
if (HasComp<ItemComponent>(pulledEntity))
|
||||
return NO_PENALTY;
|
||||
|
||||
// Ignore if the object is floating in the air.
|
||||
if (TryComp<PhysicsComponent>(pulledEntity, out var pulledPhysics)
|
||||
&& pulledPhysics.BodyStatus == BodyStatus.InAir)
|
||||
return NO_PENALTY;
|
||||
|
||||
return puller.Comp.PullSpeedPenalty;
|
||||
}
|
||||
|
||||
#region Static Members
|
||||
/// <summary>
|
||||
/// Gets the move-speed penalty as a float. Should be applied multiplicatively.
|
||||
/// Caps at 1 so we don't make bigger characters faster when pulling.
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
[PublicAPI]
|
||||
public static float GetPullSpeedPenaltyFromScale(float scale = 1.0f)
|
||||
{
|
||||
return Math.Min(scale * scale, 1);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Calculates a well-formed display string of the pull speed penalty.
|
||||
/// Used primarily in the character editor to get the well-formed percent
|
||||
/// without having to duplicate formulas.
|
||||
/// </summary>
|
||||
/// <param name="scale"></param>
|
||||
/// <returns></returns>
|
||||
[PublicAPI]
|
||||
public static string GetPullSpeedPenaltyDisplayFromScale(float scale = 1.0f)
|
||||
{
|
||||
return $"{Math.Round((1 - GetPullSpeedPenaltyFromScale(scale)) * 100)}%";
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region Private Members
|
||||
private void ApplySmallCharacter(EntityUid uid, float scale = 1)
|
||||
{
|
||||
if (scale >= 1)
|
||||
return;
|
||||
|
||||
// The character scale is stored in the HumanoidProfileComponent if you ever
|
||||
// need it.
|
||||
var comp = EnsureComp<SmallCharacterComponent>(uid);
|
||||
comp.PullSpeedPenalty = GetPullSpeedPenaltyFromScale(scale);
|
||||
Dirty(uid, comp);
|
||||
}
|
||||
#endregion
|
||||
}
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
- files: ["gnome_scream.ogg", "gnomedeath.ogg", "gnomelaugh.ogg", "gnome1.ogg"]
|
||||
license: "CC-BY-SA-4.0"
|
||||
copyright: "Audio recorded by Cepelinas and edited by rebe83"
|
||||
source: "https://github.com/DeltaV-Station/Delta-v/pull/6027"
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
|
@ -356,5 +356,12 @@ Entries:
|
|||
id: 39
|
||||
time: '2026-07-24T17:27:48.0000000+00:00'
|
||||
url: https://github.com/DeltaV-Station/Delta-v/pull/6351
|
||||
- author: ShepardToTheStars
|
||||
changes:
|
||||
- message: Curators, get off your lazy asses and help out the newbies.
|
||||
type: Tweak
|
||||
id: 40
|
||||
time: '2026-08-09T18:14:15.0000000+00:00'
|
||||
url: https://github.com/DeltaV-Station/Delta-v/pull/6374
|
||||
Name: DeltaVAdmin
|
||||
Order: 5
|
||||
|
|
|
|||
|
|
@ -1,83 +1,4 @@
|
|||
Entries:
|
||||
- author: Toby222
|
||||
changes:
|
||||
- message: Prevented the plasteel market from crashing and burning.
|
||||
type: Fix
|
||||
id: 2107
|
||||
time: '2026-01-27T18:58:24.0000000+00:00'
|
||||
url: https://github.com/DeltaV-Station/Delta-v/pull/5298
|
||||
- author: BarryNorfolk
|
||||
changes:
|
||||
- message: Upstream's November updates are here!
|
||||
type: Add
|
||||
- message: Xenoborgs have arrived in DeltaV. Please report any foriegn borgs to
|
||||
security!
|
||||
type: Add
|
||||
- message: APCs now trip when they are under high load.
|
||||
type: Add
|
||||
- message: Traitors can now find the iconic Mini Energy Crossbow in their uplink
|
||||
for 5 TC.
|
||||
type: Add
|
||||
- message: Attorneys can find a new briefcase gun in their uplink.
|
||||
type: Add
|
||||
- message: Defibs will shock anyone interacting with the patient other than the
|
||||
person using the defib.
|
||||
type: Tweak
|
||||
- message: Added mail cart.
|
||||
type: Add
|
||||
- message: Tourniquets can now fit in medical belts.
|
||||
type: Tweak
|
||||
- message: Make DAGD more likely but restrict it to 1 traitor per round.
|
||||
type: Tweak
|
||||
id: 2108
|
||||
time: '2026-01-29T16:56:03.499291+00:00'
|
||||
url: https://github.com/DeltaV-Station/Delta-v/pull/5087
|
||||
- author: Pharaz4
|
||||
changes:
|
||||
- message: Lizards now get hardsuit tails
|
||||
type: Add
|
||||
id: 2109
|
||||
time: '2026-01-29T16:55:44.0000000+00:00'
|
||||
url: https://github.com/DeltaV-Station/Delta-v/pull/5293
|
||||
- author: Pharaz4
|
||||
changes:
|
||||
- message: removed syndicate comms from refugees and guards
|
||||
type: Remove
|
||||
id: 2110
|
||||
time: '2026-01-29T17:25:06.0000000+00:00'
|
||||
url: https://github.com/DeltaV-Station/Delta-v/pull/5280
|
||||
- author: Toby222, PureBreadBagel
|
||||
changes:
|
||||
- message: Added the ability to see if a patient is uncloneable via the Health Analyzer!
|
||||
type: Add
|
||||
- message: Medical doctor and Cloning entries have been changed to reflect the new
|
||||
uncloneable trait, as uncloneable and unrevivable are no longer the same.
|
||||
type: Tweak
|
||||
id: 2111
|
||||
time: '2026-01-30T16:18:07.0000000+00:00'
|
||||
url: https://github.com/DeltaV-Station/Delta-v/pull/5310
|
||||
- author: ShepardToTheStars
|
||||
changes:
|
||||
- message: The uncloneable alert in the health analyzer window only shows up when
|
||||
its relevant (i.e. when the patient is dead).
|
||||
type: Tweak
|
||||
id: 2112
|
||||
time: '2026-01-30T21:11:56.0000000+00:00'
|
||||
url: https://github.com/DeltaV-Station/Delta-v/pull/5330
|
||||
- author: verybigman311
|
||||
changes:
|
||||
- message: Wielding a guitar should no longer turn it invisible in your hands.
|
||||
type: Fix
|
||||
id: 2113
|
||||
time: '2026-02-01T19:29:59.0000000+00:00'
|
||||
url: https://github.com/DeltaV-Station/Delta-v/pull/5331
|
||||
- author: verybigman311
|
||||
changes:
|
||||
- message: The Brigmed beret is now avaliable in the Corpsman loadout.
|
||||
type: Add
|
||||
id: 2114
|
||||
time: '2026-02-01T19:30:27.0000000+00:00'
|
||||
url: https://github.com/DeltaV-Station/Delta-v/pull/5333
|
||||
- author: keekee38
|
||||
changes:
|
||||
- message: modified the bandolier slightly, and added a recipe for it in the sec
|
||||
|
|
@ -4374,4 +4295,88 @@
|
|||
id: 2607
|
||||
time: '2026-08-03T02:45:12.0000000+00:00'
|
||||
url: https://github.com/DeltaV-Station/Delta-v/pull/6346
|
||||
- author: ShepardToTheStars
|
||||
changes:
|
||||
- message: The height slider on your profile now shows actual height measurements.
|
||||
type: Tweak
|
||||
- message: Characters now have a +/- 20% scale in the character creator for all
|
||||
species.
|
||||
type: Tweak
|
||||
- message: In exchange for being harder to click on, characters that are smaller
|
||||
than average for their species have pull speed penalties while pulling for being
|
||||
so small. This effects only items that are not held in-hand, not in the air,
|
||||
and do not have wheels.
|
||||
type: Tweak
|
||||
- message: Slightly reduced the density of Ovinia so they aren't as dense as an
|
||||
Oni.
|
||||
type: Tweak
|
||||
- message: Increased the density of Thaven to slightly less than a normal human
|
||||
player.
|
||||
type: Tweak
|
||||
id: 2608
|
||||
time: '2026-08-04T16:27:56.0000000+00:00'
|
||||
url: https://github.com/DeltaV-Station/Delta-v/pull/6320
|
||||
- author: ShepardToTheStars
|
||||
changes:
|
||||
- message: Shadekin cannot receive CPR anymore due to them not breathing or having
|
||||
lungs. They are still able to perform CPR.
|
||||
type: Remove
|
||||
- message: Shadekin should have an internal temperature now, so they can get cold
|
||||
and hot.
|
||||
type: Fix
|
||||
id: 2609
|
||||
time: '2026-08-04T16:41:14.0000000+00:00'
|
||||
url: https://github.com/DeltaV-Station/Delta-v/pull/6381
|
||||
- author: ShepardToTheStars
|
||||
changes:
|
||||
- message: Fixed changelog saying Shadekin can't perform CPR. Shadekin can still
|
||||
perform CPR, but cannot receive it (as it would do nothing for them).
|
||||
type: Fix
|
||||
id: 2610
|
||||
time: '2026-08-04T21:49:19.0000000+00:00'
|
||||
url: https://github.com/DeltaV-Station/Delta-v/pull/6395
|
||||
- author: Stxcking
|
||||
changes:
|
||||
- message: Mothroach and Mouse can emote again.
|
||||
type: Fix
|
||||
- message: Moproaches ghostrole can be raffled for properly now.
|
||||
type: Fix
|
||||
id: 2611
|
||||
time: '2026-08-04T22:18:47.0000000+00:00'
|
||||
url: https://github.com/DeltaV-Station/Delta-v/pull/6356
|
||||
- author: ShepardToTheStars
|
||||
changes:
|
||||
- message: Nuclear operatives and ninjas will now be correctly scaled.
|
||||
type: Fix
|
||||
id: 2612
|
||||
time: '2026-08-07T16:51:25.0000000+00:00'
|
||||
url: https://github.com/DeltaV-Station/Delta-v/pull/6398
|
||||
- author: ShepardToTheStars
|
||||
changes:
|
||||
- message: Parcel wrapping when buckled to a chair no longer will make you invisible
|
||||
and uninteractable.
|
||||
type: Fix
|
||||
id: 2613
|
||||
time: '2026-08-07T23:24:54.0000000+00:00'
|
||||
url: https://github.com/DeltaV-Station/Delta-v/pull/6399
|
||||
- author: ShepardToTheStars
|
||||
changes:
|
||||
- message: Polymorphing/jaunting while ventcrawling will no longer break movement
|
||||
for the polymorphed/jaunting player.
|
||||
type: Fix
|
||||
id: 2614
|
||||
time: '2026-08-09T16:57:32.0000000+00:00'
|
||||
url: https://github.com/DeltaV-Station/Delta-v/pull/6400
|
||||
- author: rebe83, cepelinas, ShepardtotheStars, einknusprigestoast, Sloppr
|
||||
changes:
|
||||
- message: Added gnomes! Remember to secure your valuables and be polite.
|
||||
type: Add
|
||||
- message: Added gnome hats, for when you butcher the gnome. This kills the gnome.
|
||||
type: Add
|
||||
- message: Gnome guidebook. All good gnomes know their fae laws! (They don't believe
|
||||
in SOP)
|
||||
type: Add
|
||||
id: 2615
|
||||
time: '2026-08-09T18:24:26.0000000+00:00'
|
||||
url: https://github.com/DeltaV-Station/Delta-v/pull/6027
|
||||
Order: 1
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
[game]
|
||||
hostname = "[EN][MRP] Delta-v (Ψ) | Apoapsis [US East 1]"
|
||||
hostname = "[EN][MRP] Delta-V (Ψ) | Apoapsis [NA East 1]"
|
||||
soft_max_players = 100
|
||||
|
||||
[hub]
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
[game]
|
||||
hostname = "[EN][MRP] Delta-v (Ψ) | Horizon [US East 3]"
|
||||
hostname = "[EN][MRP] Delta-V (Ψ) | Horizon [NA East 3]"
|
||||
soft_max_players = 80
|
||||
|
||||
[vote]
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
[game]
|
||||
hostname = "[EN][MRP] Delta-v (Ψ) | Inclination [EU West]"
|
||||
hostname = "[EN][MRP] Delta-V (Ψ) | Inclination [EU West]"
|
||||
soft_max_players = 50
|
||||
|
||||
[server]
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
[game]
|
||||
hostname = "[EN][MRP] Delta-v (Ψ) | Meridian [EU West]"
|
||||
hostname = "[EN][MRP] Delta-V (Ψ) | Meridian [EU West]"
|
||||
soft_max_players = 40
|
||||
|
||||
[hub]
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
[game]
|
||||
hostname = "[EN][MRP] Delta-v (Ψ) | Periapsis [US East 2]"
|
||||
hostname = "[EN][MRP] Delta-V (Ψ) | Periapsis [NA East 2]"
|
||||
soft_max_players = 60
|
||||
desc = """\
|
||||
A medium roleplay fork based around the mysterious Noösphere, featuring unique content, custom maps, new species and a revamped science department.\
|
||||
|
|
|
|||
File diff suppressed because one or more lines are too long
|
|
@ -1,2 +1,3 @@
|
|||
humanoid-profile-editor-height-label = Height:
|
||||
humanoid-profile-editor-height-label = Size - Height:
|
||||
humanoid-profile-editor-height-pull-speed-penalty-label = Size - Pull Speed Reduction:
|
||||
humanoid-profile-editor-reset-height-button = Reset
|
||||
|
|
|
|||
|
|
@ -92,6 +92,7 @@ psionic-power-precognition-unknown-shuttle-disaster-evac-pod-result-message = Yo
|
|||
psionic-power-precognition-syndicate-armsdealer-result-message = You see a vision of a ship lurking in the shadows, its cargo deadly.
|
||||
psionic-power-precognition-rift-spawn-result-message = You see a small spark of energy, quickly expanding as it tears reality apart, twisting everything around it.
|
||||
psionic-power-precognition-asakim-spawn-result-message = You smell stale air from a cryopod opening, and the faint echo of an intelligence far away but very near.
|
||||
psionic-power-precognition-gnome-spawn-result-message = You hear laughter coming from the walls and quick footsteps when your back is turned.
|
||||
psionic-power-precognition-pitbull-spawn-result-message = You see a vision of a hundred small creatures being torn apart by bloodthirsty beasts in a maze of steel.
|
||||
psionic-power-precognition-hitman-spawn-result-message = You see a man in a business suit, a corpse at their feet.
|
||||
|
||||
|
|
|
|||
|
|
@ -6,9 +6,9 @@ cwoink-system-messages-being-relayed-to-discord =
|
|||
All messages are relayed to game Curators via Discord.
|
||||
|
||||
cwoink-system-introductory-message =
|
||||
Please let us know of any event related queries here.
|
||||
Please let us know of any event-related queries here. Also feel free to ask any questions related to game mechanics! We're happy to help.
|
||||
|
||||
Administrative concerns, such as rule violations and questions, as well as mentoring, should be directed to Admin Help.
|
||||
Administrative concerns, such as rule violations and questions, should be directed to Admin Help.
|
||||
|
||||
Any bugs and other related issues should be reported through Discord or Github.
|
||||
|
||||
|
|
|
|||
|
|
@ -0,0 +1,63 @@
|
|||
names-gnome-dataset-1 = Fwipple
|
||||
names-gnome-dataset-2 = Gerald
|
||||
names-gnome-dataset-3 = Garl
|
||||
names-gnome-dataset-4 = Winkler
|
||||
names-gnome-dataset-5 = Clunk
|
||||
names-gnome-dataset-6 = Glunch
|
||||
names-gnome-dataset-7 = Feinhelt
|
||||
names-gnome-dataset-8 = Fitzgerald
|
||||
names-gnome-dataset-9 = Daniel
|
||||
names-gnome-dataset-10 = Mel
|
||||
names-gnome-dataset-11 = Chomsky
|
||||
names-gnome-dataset-12 = Gont
|
||||
names-gnome-dataset-13 = Fwipple
|
||||
names-gnome-dataset-14 = Wort
|
||||
names-gnome-dataset-15 = Lichen
|
||||
names-gnome-dataset-16 = Apricot
|
||||
names-gnome-dataset-17 = Chestnut
|
||||
names-gnome-dataset-18 = Mucus
|
||||
names-gnome-dataset-19 = Wilbur
|
||||
names-gnome-dataset-20 = Harold
|
||||
names-gnome-dataset-21 = Howard
|
||||
names-gnome-dataset-22 = Tinkle
|
||||
names-gnome-dataset-23 = Clumsy
|
||||
names-gnome-dataset-24 = Tipsy
|
||||
names-gnome-dataset-25 = Sleepy
|
||||
names-gnome-dataset-26 = Greedy
|
||||
names-gnome-dataset-27 = Hungry
|
||||
names-gnome-dataset-28 = Grubby
|
||||
names-gnome-dataset-29 = Sniffles
|
||||
names-gnome-dataset-30 = Stubby
|
||||
names-gnome-dataset-31 = Twig
|
||||
|
||||
names-gnome-last-dataset-1 = the Nimble
|
||||
names-gnome-last-dataset-2 = the Quick
|
||||
names-gnome-last-dataset-3 = the Worrywort
|
||||
names-gnome-last-dataset-4 = the Glib
|
||||
names-gnome-last-dataset-5 = the Stinky
|
||||
names-gnome-last-dataset-6 = the Grudgeworthy
|
||||
names-gnome-last-dataset-7 = the Unremarkable
|
||||
names-gnome-last-dataset-8 = the Lazy
|
||||
names-gnome-last-dataset-9 = the Quiet
|
||||
names-gnome-last-dataset-10 = Glimmergold
|
||||
names-gnome-last-dataset-11 = Rootmuncher
|
||||
names-gnome-last-dataset-12 = Spoonlicker
|
||||
names-gnome-last-dataset-13 = The Frantic
|
||||
names-gnome-last-dataset-14 = The Fantastic
|
||||
names-gnome-last-dataset-15 = the Fickle
|
||||
names-gnome-last-dataset-16 = Gemjingle
|
||||
names-gnome-last-dataset-17 = Daisypicker
|
||||
names-gnome-last-dataset-18 = of the Frogs
|
||||
names-gnome-last-dataset-19 = of the Mice
|
||||
names-gnome-last-dataset-20 = of the Swamp
|
||||
names-gnome-last-dataset-21 = of the Hills
|
||||
names-gnome-last-dataset-22 = of the Mountains
|
||||
names-gnome-last-dataset-23 = Bowllicker
|
||||
names-gnome-last-dataset-24 = Potscraper
|
||||
names-gnome-last-dataset-25 = the Candle Thief
|
||||
names-gnome-last-dataset-26 = Meatsnatcher
|
||||
names-gnome-last-dataset-27 = the Yodler
|
||||
names-gnome-last-dataset-28 = the Vibrant
|
||||
names-gnome-last-dataset-29 = Forksnatcher
|
||||
names-gnome-last-dataset-30 = Twinesnipper
|
||||
names-gnome-last-dataset-31 = Fungimuncher
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
ghost-role-information-gnome-name = Gnome
|
||||
ghost-role-information-gnome-description = Steal goodies and prank naughty crew members.
|
||||
|
||||
gnome-round-end-name = Gnome
|
||||
|
|
@ -55,3 +55,6 @@ station-beacon-clerk = Clerk
|
|||
station-beacon-attorney = Attorney
|
||||
station-beacon-marshal = Marshal
|
||||
station-beacon-justice-armory = Justice Armory
|
||||
station-beacon-evidence-room = Evidence Room
|
||||
station-beacon-holding-cells = Holding Cells
|
||||
station-beacon-genpop = GenPop
|
||||
|
|
|
|||
|
|
@ -34,8 +34,8 @@
|
|||
Kidneys: OrganHumanKidneys
|
||||
- type: HumanoidProfile
|
||||
species: Dwarf
|
||||
- type: ScaleVisuals
|
||||
scale: 1, 0.8
|
||||
#- type: ScaleVisuals # DeltaV - Scale defined at species level
|
||||
# scale: 1, 0.8
|
||||
|
||||
- type: entity
|
||||
parent:
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
- type: entity
|
||||
id: LockerWardenFilledHardsuit
|
||||
suffix: Filled, Hardsuit
|
||||
suffix: Filled, Hardsuit, Security # DeltaV - Added security.
|
||||
parent: LockerWarden
|
||||
components:
|
||||
- type: EntityTableContainerFill
|
||||
|
|
@ -14,7 +14,7 @@
|
|||
|
||||
- type: entity
|
||||
id: LockerWardenFilled
|
||||
suffix: Filled
|
||||
suffix: Filled, Security # DeltaV - Added security.
|
||||
parent: LockerWarden
|
||||
components:
|
||||
- type: EntityTableContainerFill
|
||||
|
|
@ -357,7 +357,7 @@
|
|||
- id: MagazinePistolSubMachineGunTopMounted
|
||||
amount: 4
|
||||
|
||||
- type: entity
|
||||
- type: entity
|
||||
parent: [SecurityGunSafeBaseSecureDV, BaseSecurityContraband] # DeltaV - Changed GunSafeBaseSecure with SecurityGunSafeBaseSecureDV
|
||||
id: GunSafeLaserCarbine
|
||||
name: laser safe
|
||||
|
|
|
|||
|
|
@ -244,7 +244,7 @@
|
|||
- type: entity
|
||||
id: SuitStorageWarden
|
||||
parent: SuitStorageBase
|
||||
suffix: Warden
|
||||
suffix: Warden, Security # DeltaV - Added security.
|
||||
components:
|
||||
- type: EntityTableContainerFill
|
||||
containers:
|
||||
|
|
|
|||
|
|
@ -162,7 +162,7 @@
|
|||
parent: MarkerBase
|
||||
id: SpawnMobMcGriff
|
||||
name: McGriff Spawner
|
||||
suffix: Warden or Detective Pet # DeltaV - Change from Warden pet to Warden or Detective pet
|
||||
suffix: Armorer or Detective Pet # DeltaV - Change from Warden pet to Armorer or Detective pet
|
||||
components:
|
||||
- type: Sprite
|
||||
layers:
|
||||
|
|
|
|||
|
|
@ -456,6 +456,7 @@
|
|||
id: SpawnPointWarden
|
||||
parent: SpawnPointJobBase
|
||||
name: warden
|
||||
suffix: Security # DeltaV
|
||||
components:
|
||||
- type: SpawnPoint
|
||||
job_id: Warden
|
||||
|
|
|
|||
|
|
@ -506,6 +506,7 @@
|
|||
# mindRoles:
|
||||
# - MindRoleGhostRoleFreeAgentHarmless
|
||||
# End DeltaV Removals - players can spawn in as these at will
|
||||
- type: Emoting # DeltaV - Allow them to emote!
|
||||
- type: Fixtures
|
||||
fixtures:
|
||||
fix1:
|
||||
|
|
@ -520,7 +521,7 @@
|
|||
# - type: GhostTakeoverAvailable # DeltaV - players can spawn in as these at will
|
||||
- type: Speech
|
||||
speechVerb: Moth
|
||||
speechSounds: Chitter # Delta-V - Eep!
|
||||
speechSounds: Chitter # DeltaV - Eep!
|
||||
allowedEmotes: ['Chitter', 'Squeak', 'Flap']
|
||||
- type: FaxableObject
|
||||
insertingState: inserting_mothroach
|
||||
|
|
@ -1874,6 +1875,7 @@
|
|||
# - MindRoleGhostRoleFreeAgentHarmless
|
||||
# - type: GhostTakeoverAvailable
|
||||
# End DeltaV Removals - players can spawn in as these at will
|
||||
- type: Emoting # DeltaV - Allow them to emote!
|
||||
- type: Speech
|
||||
speechSounds: Squeak
|
||||
speechVerb: SmallMob
|
||||
|
|
|
|||
|
|
@ -7,6 +7,13 @@
|
|||
- type: GhostRole
|
||||
name: ghost-role-information-moproach-name
|
||||
description: ghost-role-information-moproach-description
|
||||
# Begin DeltaV Additions
|
||||
allowMovement: true
|
||||
rules: ghost-role-information-freeagent-rules
|
||||
mindRoles:
|
||||
- MindRoleGhostRoleFreeAgentHarmless
|
||||
- type: GhostTakeoverAvailable
|
||||
# End DeltaV Additions
|
||||
- type: Sprite
|
||||
sprite: Mobs/Animals/mothroach/moproach.rsi
|
||||
- type: Clothing
|
||||
|
|
|
|||
|
|
@ -63,6 +63,8 @@
|
|||
- SpanishAccent
|
||||
- StutteringAccent
|
||||
# Begin DeltaV Additions
|
||||
- ScaleVisuals # Preserve species/profile height
|
||||
- SmallCharacter
|
||||
- Addicted
|
||||
- DogVision
|
||||
- FrenchAccent
|
||||
|
|
|
|||
|
|
@ -972,6 +972,7 @@
|
|||
id: WardenPDA
|
||||
name: warden PDA
|
||||
description: The OS appears to have been jailbroken.
|
||||
suffix: Security # DeltaV
|
||||
components:
|
||||
- type: Pda
|
||||
id: WardenIDCard
|
||||
|
|
|
|||
|
|
@ -183,7 +183,7 @@
|
|||
- type: entity
|
||||
parent: DefaultStationBeaconSecurity
|
||||
id: DefaultStationBeaconWardensOffice
|
||||
suffix: Warden's Office
|
||||
suffix: Warden's Office, Security # DeltaV - Added security.
|
||||
components:
|
||||
- type: NavMapBeacon
|
||||
defaultText: station-beacon-warden
|
||||
|
|
|
|||
|
|
@ -480,6 +480,7 @@
|
|||
parent: IDCardStandard
|
||||
id: WardenIDCard
|
||||
name: warden ID card
|
||||
suffix: Security # DeltaV
|
||||
components:
|
||||
- type: Sprite
|
||||
layers:
|
||||
|
|
|
|||
|
|
@ -232,6 +232,7 @@
|
|||
parent: [RubberStampBase, BaseSecurityContraband]
|
||||
id: RubberStampWarden
|
||||
categories: [ DoNotMap ]
|
||||
suffix: Security # DeltaV
|
||||
components:
|
||||
- type: Stamp
|
||||
stampedName: stamp-component-stamped-name-warden
|
||||
|
|
|
|||
|
|
@ -703,7 +703,7 @@
|
|||
- type: entity
|
||||
parent: HolopadSecurity # DeltaV
|
||||
id: HolopadSecurityWarden
|
||||
suffix: Warden
|
||||
suffix: Warden, Security # DeltaV - Added security.
|
||||
components:
|
||||
- type: Label
|
||||
currentLabel: holopad-security-warden
|
||||
|
|
|
|||
|
|
@ -339,6 +339,7 @@
|
|||
id: LockerWarden
|
||||
parent: LockerBaseSecureDeltaV # DeltaV - resprite security lockers
|
||||
name: warden's locker
|
||||
suffix: Security # DeltaV
|
||||
components:
|
||||
- type: Appearance
|
||||
- type: EntityStorageVisuals
|
||||
|
|
|
|||
|
|
@ -69,3 +69,4 @@
|
|||
components:
|
||||
- type: TileFrictionModifier
|
||||
modifier: 0.4
|
||||
- type: UnaffectedBySizePenalty # DeltaV - Wheels make it easy to move
|
||||
|
|
|
|||
|
|
@ -5,3 +5,4 @@
|
|||
prototype: MobDwarf
|
||||
dollPrototype: AppearanceDwarf
|
||||
skinColoration: HumanToned
|
||||
baseScale: 1, 0.8 # DeltaV - used instead of ScaleVisuals on body
|
||||
|
|
@ -9,7 +9,4 @@
|
|||
maleFirstNames: NamesFirstMale
|
||||
femaleFirstNames: NamesFirstFemale
|
||||
lastNames: NamesLast
|
||||
minHeight: 0.8
|
||||
maxHeight: 1.05
|
||||
|
||||
# Delta V - Nubody Merge, at lot moved into other files
|
||||
baseScale: 0.9, 0.9
|
||||
|
|
@ -0,0 +1,17 @@
|
|||
- type: entity
|
||||
parent: ActionPolymorphJaunt
|
||||
id: ActionPolymorphJauntGnome
|
||||
name: Ethereal Jaunt
|
||||
description: Jump into the Etherial plane for just a moment.
|
||||
components:
|
||||
- type: Magic
|
||||
requiresClothes: false
|
||||
requiresSpeech: false
|
||||
- type: Action
|
||||
useDelay: 22
|
||||
icon:
|
||||
sprite: Objects/Magic/magicactions.rsi
|
||||
state: jaunt
|
||||
- type: InstantAction
|
||||
event: !type:PolymorphActionEvent
|
||||
protoId: GnomeMorph
|
||||
|
|
@ -114,8 +114,6 @@
|
|||
Kidneys: OrganHumanKidneys
|
||||
- type: HumanoidProfile
|
||||
species: Motorkind
|
||||
- type: ScaleVisuals
|
||||
speciesScale: 2, 2
|
||||
|
||||
- type: entity
|
||||
name: Urist McQueen
|
||||
|
|
@ -60,8 +60,6 @@
|
|||
Kidneys: OrganHumanKidneys
|
||||
- type: HumanoidProfile
|
||||
species: Felinid
|
||||
- type: ScaleVisuals
|
||||
speciesScale: 0.75, 0.75
|
||||
|
||||
- type: entity
|
||||
parent:
|
||||
|
|
|
|||
|
|
@ -41,6 +41,7 @@
|
|||
- type: entity
|
||||
parent: BaseSpeciesAppearance
|
||||
id: AppearanceHarpy
|
||||
name: harpy appearance
|
||||
components:
|
||||
- type: Inventory
|
||||
speciesId: harpy
|
||||
|
|
@ -75,8 +76,6 @@
|
|||
Kidneys: OrganHumanKidneys
|
||||
- type: HumanoidProfile
|
||||
species: Harpy
|
||||
- type: ScaleVisuals
|
||||
speciesScale: 0.9, 0.9
|
||||
|
||||
- type: entity
|
||||
parent:
|
||||
|
|
|
|||
|
|
@ -64,8 +64,6 @@
|
|||
Kidneys: OrganHumanKidneys
|
||||
- type: HumanoidProfile
|
||||
species: Oni
|
||||
- type: ScaleVisuals
|
||||
speciesScale: 1.2, 1.2
|
||||
|
||||
- type: entity
|
||||
parent:
|
||||
|
|
|
|||
|
|
@ -94,8 +94,6 @@
|
|||
Kidneys: OrganAnimalKidneys
|
||||
- type: HumanoidProfile
|
||||
species: Ovinia
|
||||
- type: ScaleVisuals
|
||||
scale: 0.9, 0.9
|
||||
|
||||
- type: entity
|
||||
parent:
|
||||
|
|
@ -110,7 +108,7 @@
|
|||
shape:
|
||||
!type:PhysShapeCircle
|
||||
radius: 0.35
|
||||
density: 215 # sheep be heavy
|
||||
density: 200 # sheep be heavy
|
||||
restitution: 0.0
|
||||
mask:
|
||||
- MobMask
|
||||
|
|
|
|||
|
|
@ -70,8 +70,6 @@
|
|||
Kidneys: OrganHumanKidneys
|
||||
- type: HumanoidProfile
|
||||
species: Rodentia
|
||||
- type: ScaleVisuals
|
||||
speciesScale: 0.8, 0.8
|
||||
|
||||
- type: entity
|
||||
parent:
|
||||
|
|
|
|||
|
|
@ -68,15 +68,12 @@
|
|||
Tongue: OrganShadekinTongue
|
||||
Appendix: OrganShadekinAppendix
|
||||
Ears: OrganShadekinEars
|
||||
Lungs: OrganShadekinLungs
|
||||
Heart: OrganShadekinHeart
|
||||
Stomach: OrganShadekinStomach
|
||||
Liver: OrganShadekinLiver
|
||||
Kidneys: OrganShadekinKidneys
|
||||
- type: HumanoidProfile
|
||||
species: Shadekin
|
||||
- type: ScaleVisuals
|
||||
scale: 0.9, 0.9
|
||||
|
||||
|
||||
- type: entity
|
||||
|
|
@ -84,8 +81,7 @@
|
|||
name: Urist McShadow
|
||||
parent:
|
||||
- AppearanceShadekin
|
||||
- BaseSpeciesMob
|
||||
- MobBloodstream
|
||||
- BaseSpeciesMobOrganic
|
||||
id: MobShadekin
|
||||
components:
|
||||
- type: Shadekin
|
||||
|
|
@ -178,36 +174,6 @@
|
|||
# max: 1
|
||||
# - !type:BurnBodyBehavior {}
|
||||
|
||||
# BaseMobSpeciesOrganic // Because we dont want respirator to be used.
|
||||
- type: Barotrauma
|
||||
damage:
|
||||
types:
|
||||
Blunt: 0.85 #per second, scales with pressure and other constants.
|
||||
Heat: 0.1
|
||||
- type: PassiveDamage # Slight passive regen. Assuming one damage type, comes out to about 4 damage a minute.
|
||||
allowedStates:
|
||||
- Alive
|
||||
damage:
|
||||
types:
|
||||
Heat: -0.07
|
||||
Blunt: -0.07
|
||||
Piercing: -0.07
|
||||
Slash: -0.07
|
||||
- type: TemperatureSpeed
|
||||
thresholds:
|
||||
293: 0.8
|
||||
280: 0.6
|
||||
260: 0.4
|
||||
- type: ThermalRegulator
|
||||
metabolismHeat: 800
|
||||
radiatedHeat: 100
|
||||
implicitHeatRegulation: 500
|
||||
sweatHeatRegulation: 2000
|
||||
shiveringHeatRegulation: 2000
|
||||
normalBodyTemperature: 310.15
|
||||
thermalRegulationTemperatureThreshold: 2
|
||||
- type: Perishable
|
||||
|
||||
- type: entity
|
||||
parent: OrganBase
|
||||
id: OrganShadekin
|
||||
|
|
@ -308,10 +274,6 @@
|
|||
parent: [ OrganBaseEars, OrganSpriteHumanInternal, OrganShadekinInternal ]
|
||||
id: OrganShadekinEars
|
||||
|
||||
- type: entity
|
||||
parent: [ OrganBaseLungs, OrganSpriteHumanInternal, OrganShadekinInternal, OrganShadekinMetabolizer ]
|
||||
id: OrganShadekinLungs
|
||||
|
||||
- type: entity
|
||||
parent: [ OrganBaseHeart, OrganSpriteHumanInternal, OrganShadekinInternal, OrganShadekinMetabolizer ]
|
||||
id: OrganShadekinHeart
|
||||
|
|
|
|||
|
|
@ -112,7 +112,7 @@
|
|||
- type: entity
|
||||
parent: LockerJusticeWarden
|
||||
id: LockerJusticeWardenFilled
|
||||
suffix: Filled
|
||||
suffix: Filled, Justice Warden
|
||||
components:
|
||||
- type: EntityTableContainerFill
|
||||
containers:
|
||||
|
|
@ -152,9 +152,60 @@
|
|||
- type: entity
|
||||
parent: LockerJusticeDetective
|
||||
id: LockerJusticeDetectiveFilled
|
||||
suffix: Filled
|
||||
suffix: Filled, Justice
|
||||
components:
|
||||
- type: EntityTableContainerFill
|
||||
containers:
|
||||
entity_storage: !type:NestedSelector
|
||||
tableId: FillLockerDetective
|
||||
|
||||
# Non-lethal armory
|
||||
|
||||
- type: entity
|
||||
parent: SecurityGunSafeNonlethalHandgunDV
|
||||
id: JusticeGunSafeNonlethalHandgunSecureFilledDV
|
||||
suffix: Armory, Marshal, JusticeWarden, Locked, Filled
|
||||
components:
|
||||
- type: EntityTableContainerFill
|
||||
containers:
|
||||
entity_storage: !type:NestedSelector
|
||||
tableId: NonLethalMK58
|
||||
rolls: !type:ConstantNumberSelector
|
||||
value: 4
|
||||
|
||||
- type: entityTable
|
||||
id: NonLethalMK58
|
||||
table: !type:AllSelector
|
||||
children:
|
||||
- id: WeaponPistolMk58Nonlethal
|
||||
- id: MagazinePistolRubber
|
||||
amount: 2
|
||||
|
||||
- type: entity
|
||||
parent: JusticeGunSafeNonLethalShotgunSecureDV
|
||||
id: JusticeGunSafeNonLethalShotgunSecureFilledDV
|
||||
suffix: Armory, Marshal, JusticeWarden, Locked, Filled
|
||||
components:
|
||||
- type: EntityTableContainerFill
|
||||
containers:
|
||||
entity_storage: !type:NestedSelector
|
||||
tableId: NonLethalKammerer
|
||||
rolls: !type:ConstantNumberSelector
|
||||
value: 2
|
||||
|
||||
- type: entityTable
|
||||
id: NonLethalKammerer
|
||||
table: !type:AllSelector
|
||||
children:
|
||||
- id: WeaponShotgunKammererNonLethal
|
||||
- id: BoxBeanbag
|
||||
|
||||
- type: entity
|
||||
parent: JusticeGunSafeDisablerSecureDV
|
||||
id: JusticeGunSafeDisablerSecureFilledDV
|
||||
suffix: Armory, Marshal, JusticeWarden, Locked, Filled
|
||||
components:
|
||||
- type: EntityTableContainerFill
|
||||
containers:
|
||||
entity_storage: !type:NestedSelector
|
||||
tableId: FillGunSafeDisabler
|
||||
|
|
|
|||
|
|
@ -177,14 +177,10 @@
|
|||
access: [["Security"]]
|
||||
- type: EntityTableContainerFill
|
||||
containers:
|
||||
entity_storage: !type:AllSelector
|
||||
children:
|
||||
- id: WeaponShotgunKammererNonLethal
|
||||
amount: 2
|
||||
- id: BoxBeanbag
|
||||
amount: 2
|
||||
- id: BoxShotgunPractice
|
||||
amount: 2
|
||||
entity_storage: !type:NestedSelector
|
||||
tableId: NonLethalKammerer
|
||||
rolls: !type:ConstantNumberSelector
|
||||
value: 2
|
||||
|
||||
- type: entity
|
||||
parent: SecurityGunSafeBaseSecureDV
|
||||
|
|
|
|||
|
|
@ -0,0 +1,11 @@
|
|||
- type: localizedDataset
|
||||
id: NamesGnome
|
||||
values:
|
||||
prefix: names-gnome-dataset-
|
||||
count: 31
|
||||
|
||||
- type: localizedDataset
|
||||
id: NamesGnomeLast
|
||||
values:
|
||||
prefix: names-gnome-last-dataset-
|
||||
count: 31
|
||||
|
|
@ -511,6 +511,54 @@
|
|||
- PetWearable
|
||||
- CorgiWearable
|
||||
|
||||
- type: entity
|
||||
parent: ClothingHeadBase
|
||||
id: ClothingHeadHatGnome
|
||||
name: gnome hat
|
||||
description: For those that honor the first gnome in space, Gnome Chompsky. Still has a bit of magic that sparkles in its velvet sheen.
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: _DV/Clothing/Head/Hats/gnomehat.rsi
|
||||
- type: Clothing
|
||||
sprite: _DV/Clothing/Head/Hats/gnomehat.rsi
|
||||
clothingVisuals:
|
||||
head:
|
||||
- state: equipped
|
||||
offset: "0, 0.35"
|
||||
- type: EmbeddableProjectile # funny
|
||||
offset: -0.15,0.0
|
||||
- type: ThrowingAngle
|
||||
angle: 180
|
||||
- type: Fixtures
|
||||
fixtures:
|
||||
fix1:
|
||||
shape: !type:PolygonShape
|
||||
vertices:
|
||||
- -0.40,-0.30
|
||||
- -0.30,-0.40
|
||||
- 0.40,0.30
|
||||
- 0.30,0.40
|
||||
density: 20
|
||||
mask:
|
||||
- ItemMask
|
||||
restitution: 0.3
|
||||
friction: 0.2
|
||||
- type: Storage
|
||||
grid:
|
||||
- 0,0,0,1
|
||||
maxItemSize: Small
|
||||
- type: UserInterface
|
||||
interfaces:
|
||||
enum.StorageUiKey.Key:
|
||||
type: StorageBoundUserInterface
|
||||
- type: ContainerContainer
|
||||
containers:
|
||||
storagebase: !type:Container
|
||||
- type: Tag
|
||||
tags:
|
||||
- PetWearable
|
||||
- CorgiWearable
|
||||
|
||||
- type: entity
|
||||
parent: ClothingHeadBase
|
||||
id: ClothingHeadHatSodaJerkCap
|
||||
|
|
|
|||
|
|
@ -178,6 +178,19 @@
|
|||
color: "#bb4b1e"
|
||||
shader: unshaded
|
||||
|
||||
- type: entity
|
||||
categories: [ HideSpawnMenu, Spawner ]
|
||||
parent: BaseAntagSpawner
|
||||
id: SpawnPointGnome
|
||||
name: gnome spawn point
|
||||
components:
|
||||
- type: GhostRole
|
||||
name: ghost-role-information-gnome-name
|
||||
description: ghost-role-information-gnome-description
|
||||
rules: ghost-role-information-freeagent-rules
|
||||
mindRoles:
|
||||
- MindRoleGhostRoleFreeAgent
|
||||
|
||||
- type: entity
|
||||
categories: [ HideSpawnMenu, Spawner ]
|
||||
parent: BaseAntagSpawner
|
||||
|
|
|
|||
|
|
@ -118,7 +118,7 @@
|
|||
parent: SpawnPointJobBase
|
||||
id: SpawnPointJusticeWarden
|
||||
name: warden
|
||||
suffix: Justice
|
||||
suffix: Justice Warden
|
||||
components:
|
||||
- type: SpawnPoint
|
||||
job_id: JusticeWarden
|
||||
|
|
|
|||
|
|
@ -114,6 +114,14 @@
|
|||
- type: WarpPoint
|
||||
location: Armorer
|
||||
|
||||
- type: entity
|
||||
parent: WarpPoint
|
||||
id: WarpPointArmory
|
||||
suffix: Armory
|
||||
components:
|
||||
- type: WarpPoint
|
||||
location: Armory
|
||||
|
||||
# Justice
|
||||
- type: entity
|
||||
id: WarpPointCourt
|
||||
|
|
@ -155,6 +163,22 @@
|
|||
- type: WarpPoint
|
||||
location: Marshal
|
||||
|
||||
- type: entity
|
||||
parent: WarpPoint
|
||||
id: WarpPointNonLethalArmory
|
||||
suffix: Non-lethal Armory
|
||||
components:
|
||||
- type: WarpPoint
|
||||
location: Non-lethal armory
|
||||
|
||||
- type: entity
|
||||
parent: WarpPoint
|
||||
id: WarpPointGenPop
|
||||
suffix: GenPop
|
||||
components:
|
||||
- type: WarpPoint
|
||||
location: GenPop
|
||||
|
||||
#Medical
|
||||
- type: entity
|
||||
parent: WarpPointNoBomb
|
||||
|
|
|
|||
|
|
@ -0,0 +1,160 @@
|
|||
- type: entity
|
||||
parent: [ MobBaseAncestorNoShitmed ]
|
||||
id: MobGnome
|
||||
name: gnome
|
||||
description: A cheery fellow. Definitely not a goblin. Or an elf.
|
||||
components:
|
||||
- type: Sprite
|
||||
layers:
|
||||
- map: ["enum.DamageStateVisualLayers.Base"]
|
||||
state: gnome
|
||||
sprite: _DV/Mobs/Animals/gnome.rsi
|
||||
- map: ["enum.HumanoidVisualLayers.Handcuffs"]
|
||||
color: "#ffffff"
|
||||
sprite: Objects/Misc/handcuffs.rsi
|
||||
state: body-overlay-2
|
||||
visible: false
|
||||
- map: [ "clownedon" ]
|
||||
sprite: "Effects/creampie.rsi"
|
||||
state: "creampie_human"
|
||||
visible: false
|
||||
- type: DamageStateVisuals
|
||||
states:
|
||||
Alive:
|
||||
Base: gnome
|
||||
Dead:
|
||||
Base: dead
|
||||
- type: MobState
|
||||
allowedStates:
|
||||
- Alive
|
||||
- Dead
|
||||
- type: MobThresholds
|
||||
thresholds:
|
||||
0: Alive
|
||||
50: Dead
|
||||
- type: SlowOnDamage
|
||||
speedModifierThresholds:
|
||||
25: 0.8
|
||||
40: 0.6
|
||||
- type: Deathgasp
|
||||
needsCritical: false
|
||||
- type: StatusEffects
|
||||
allowed:
|
||||
- Electrocution
|
||||
- Stunned
|
||||
- Flashed
|
||||
- Pacified
|
||||
- Addicted # Funny
|
||||
- type: GhostRole
|
||||
name: ghost-role-information-gnome-name
|
||||
description: ghost-role-information-gnome-description
|
||||
rules: ghost-role-information-freeagent-rules
|
||||
makeSentient: true
|
||||
allowSpeech: true
|
||||
allowMovement: true
|
||||
mindRoles:
|
||||
- MindRoleGhostRoleFreeAgent
|
||||
raffle:
|
||||
settings: default
|
||||
- type: GhostTakeoverAvailable
|
||||
- type: Fixtures
|
||||
fixtures:
|
||||
fix1:
|
||||
shape:
|
||||
!type:PhysShapeCircle
|
||||
radius: 0.2
|
||||
density: 160
|
||||
mask:
|
||||
- SmallMobMask
|
||||
layer:
|
||||
- SmallMobLayer
|
||||
- type: MovementSpeedModifier
|
||||
baseWalkSpeed: 3
|
||||
baseSprintSpeed: 5
|
||||
- type: NpcFactionMember
|
||||
factions:
|
||||
- SimpleHostile # cats and dogs hate gnomes
|
||||
- type: HTN
|
||||
rootTask:
|
||||
task: IdleCompound
|
||||
- type: Speech
|
||||
speechSounds: Gnome
|
||||
- type: Emoting
|
||||
- type: Vocal
|
||||
sounds:
|
||||
Male: GnomeSounds
|
||||
Female: GnomeSounds
|
||||
Unsexed: GnomeSounds
|
||||
- type: RandomMetadata
|
||||
nameSegments:
|
||||
- NamesGnome
|
||||
- NamesGnomeLast
|
||||
nameFormat: name-format-standard
|
||||
# abilities
|
||||
- type: Psionic
|
||||
- type: Jaunt
|
||||
jauntAction: ActionPolymorphJauntGnome # 2 second jaunt with 20 second cooldown
|
||||
- type: PsionicRegenerationPower
|
||||
- type: PsionicInvisibilityPower
|
||||
- type: NoSlip
|
||||
- type: MeleeWeapon
|
||||
soundHit:
|
||||
collection: Punch
|
||||
angle: 30
|
||||
animation: WeaponArcFist
|
||||
attackRate: 1
|
||||
damage:
|
||||
types:
|
||||
Blunt: 5
|
||||
- type: Prying
|
||||
pryPowered: true
|
||||
force: true
|
||||
speedModifier: 1.5
|
||||
useSound:
|
||||
path: /Audio/Effects/glass_knock.ogg # Fairy magic
|
||||
- type: Clumsy
|
||||
clumsySound:
|
||||
path: /Audio/_DV/Voice/Gnome/gnomescream.ogg
|
||||
- type: PseudoItem
|
||||
shape:
|
||||
- 0,0,0,2
|
||||
- type: Hands
|
||||
activeHandId: Hand
|
||||
hands:
|
||||
Hand:
|
||||
location: Left
|
||||
showInHands: false # TODO: make displacement maps that just slide them down
|
||||
- type: Puller # needs hands to pull
|
||||
needsHands: true
|
||||
- type: ComplexInteraction
|
||||
- type: AutoImplant
|
||||
implants:
|
||||
- GnomeStorageImplant # for trinkets
|
||||
- type: Thieving # for stealing said trinkets
|
||||
stealthy: false
|
||||
- type: Inventory
|
||||
templateId: pet
|
||||
speciesId: gnome
|
||||
- type: Butcherable
|
||||
butcheringType: knife
|
||||
spawned:
|
||||
- id: Ash
|
||||
- id: ClothingHeadHatGnome
|
||||
- type: Bloodstream
|
||||
bloodReferenceSolution:
|
||||
reagents:
|
||||
- ReagentId: Nothing
|
||||
Quantity: 60
|
||||
- type: Tag
|
||||
tags:
|
||||
- FootstepSound
|
||||
|
||||
- type: entity
|
||||
parent: StorageImplant
|
||||
id: GnomeStorageImplant
|
||||
description: This implant grants hidden storage within a person's body using bluespace technology.
|
||||
categories: [ HideSpawnMenu ]
|
||||
components:
|
||||
- type: SubdermalImplant
|
||||
implantAction: ActionOpenStorageImplant
|
||||
permanent: true # only change from normal storage implant
|
||||
|
|
@ -0,0 +1,19 @@
|
|||
- type: entity
|
||||
name: jaunt
|
||||
parent: EtherealJaunt
|
||||
id: GnomeJaunt
|
||||
suffix: Gnome
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Mobs/Ghosts/ghost_human.rsi # TODO: add a gnome hat to the sprite
|
||||
color: "#60f766"
|
||||
layers:
|
||||
- state: animated
|
||||
shader: unshaded
|
||||
noRot: true
|
||||
overrideContainerOcclusion: true
|
||||
drawdepth: Ghosts
|
||||
scale: 0.5, 0.5
|
||||
- type: MovementSpeedModifier
|
||||
baseSprintSpeed: 6.5
|
||||
baseWalkSpeed: 4
|
||||
|
|
@ -221,6 +221,7 @@
|
|||
parent: BaseJusticePDA
|
||||
id: JusticeWardenPDA
|
||||
name: warden PDA
|
||||
suffix: Justice Warden
|
||||
description: Covered in cracks and dents. Has seen more than its fair share of abuse.
|
||||
components:
|
||||
- type: Pda
|
||||
|
|
|
|||
|
|
@ -337,3 +337,27 @@
|
|||
components:
|
||||
- type: NavMapBeacon
|
||||
defaultText: station-beacon-justice-armory
|
||||
|
||||
- type: entity
|
||||
parent: DefaultStationBeaconJustice
|
||||
id: DefaultStationBeaconEvidenceRoom
|
||||
suffix: Evidence Room
|
||||
components:
|
||||
- type: NavMapBeacon
|
||||
defaultText: station-beacon-evidence-room
|
||||
|
||||
- type: entity
|
||||
parent: DefaultStationBeaconJustice
|
||||
id: DefaultStationBeaconHoldingCells
|
||||
suffix: Holding Cells
|
||||
components:
|
||||
- type: NavMapBeacon
|
||||
defaultText: station-beacon-holding-cells
|
||||
|
||||
- type: entity
|
||||
parent: DefaultStationBeaconJustice
|
||||
id: DefaultStationBeaconGenPop
|
||||
suffix: GenPop
|
||||
components:
|
||||
- type: NavMapBeacon
|
||||
defaultText: station-beacon-genpop
|
||||
|
|
|
|||
|
|
@ -41,6 +41,7 @@
|
|||
parent: BedsheetBase
|
||||
id: BedsheetJusticeWarden
|
||||
name: warden's bedsheet
|
||||
suffix: Justice Warden
|
||||
components:
|
||||
- type: Sprite # TODO: Resprite
|
||||
state: random_bedsheet
|
||||
|
|
|
|||
|
|
@ -260,6 +260,7 @@
|
|||
parent: IDCardStandard
|
||||
id: JusticeWardenIDCard
|
||||
name: warden ID card
|
||||
suffix: Justice Warden
|
||||
components:
|
||||
- type: Sprite
|
||||
layers:
|
||||
|
|
|
|||
|
|
@ -64,7 +64,7 @@
|
|||
id: RubberStampJusticeWarden
|
||||
name: warden's rubber stamp
|
||||
categories: [ DoNotMap ]
|
||||
suffix: DO NOT MAP
|
||||
suffix: DO NOT MAP, Justice
|
||||
description: With a simple press of ink to paper, a life is sealed behind bars. Maybe not forever.
|
||||
components:
|
||||
- type: Stamp
|
||||
|
|
|
|||
|
|
@ -0,0 +1,9 @@
|
|||
- type: entity
|
||||
parent: BannerBase
|
||||
id: BannerJustice
|
||||
name: justice banner
|
||||
description: A banner displaying the color of the justice department. Where court hearings happen... probably.
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Structures/Decoration/banner.rsi # TODO: Resprite. Upstream security banner as placeholder.
|
||||
state: banner_security
|
||||
|
|
@ -492,7 +492,7 @@
|
|||
- type: entity
|
||||
parent: FaxMachineBase
|
||||
id: FaxMachineWarden
|
||||
suffix: Warden
|
||||
suffix: Warden, Security
|
||||
components:
|
||||
- type: PageSender
|
||||
autoLinkJobs: [Warden]
|
||||
|
|
|
|||
|
|
@ -124,7 +124,7 @@
|
|||
- type: entity
|
||||
parent: Holopad
|
||||
id: HolopadJusticeDetective
|
||||
suffix: Detective
|
||||
suffix: Detective, Justice
|
||||
components:
|
||||
- type: Label
|
||||
currentLabel: holopad-justice-detective
|
||||
|
|
@ -144,6 +144,7 @@
|
|||
- type: entity
|
||||
parent: Holopad
|
||||
id: HolopadJusticeJusticeWarden
|
||||
suffix: Justice Warden
|
||||
components:
|
||||
- type: Label
|
||||
currentLabel: holopad-justice-warden
|
||||
|
|
|
|||
|
|
@ -84,6 +84,7 @@
|
|||
parent: LockerJustice
|
||||
id: LockerJusticeDetective # TODO - Resprite
|
||||
name: detective's locker
|
||||
suffix: Justice
|
||||
components:
|
||||
- type: AccessReader
|
||||
access: [["Detective"]]
|
||||
|
|
@ -92,6 +93,7 @@
|
|||
parent: LockerJustice
|
||||
id: LockerJusticeWarden # TODO - Resprite
|
||||
name: warden's locker
|
||||
suffix: Justice Warden
|
||||
components:
|
||||
- type: AccessReader
|
||||
access: [["JusticeWarden"]]
|
||||
|
|
@ -408,6 +410,77 @@
|
|||
- type: AccessReader
|
||||
access: [["Armory"]]
|
||||
|
||||
- type: entity
|
||||
parent: SecurityGunSafeNonlethalDV
|
||||
id: JusticeGunSafeNonlethalDV
|
||||
suffix: Justice variant
|
||||
#components:
|
||||
#- type: Sprite # TODO: Resprite to justice colors.
|
||||
# sprite: _DV/Structures/Storage/Closets/nonlethalsafe.rsi
|
||||
# noRot: true
|
||||
|
||||
- type: entity
|
||||
parent: JusticeGunSafeNonlethalDV
|
||||
id: JusticeGunSafeNonlethalSecureDV
|
||||
suffix: Armory, Marshal, JusticeWarden, Locked
|
||||
components:
|
||||
- type: AccessReader
|
||||
access: [["Armory"], ["Marshal"], ["JusticeWarden"]]
|
||||
|
||||
- type: entity
|
||||
parent: SecurityGunSafeNonlethalHandgunDV
|
||||
id: JusticeGunSafeNonlethalHandgunDV
|
||||
suffix: Justice variant
|
||||
#components:
|
||||
#- type: Sprite # TODO: Resprite to justice colors.
|
||||
# sprite: _DV/Structures/Storage/Closets/disablersafe.rsi
|
||||
# noRot: true
|
||||
|
||||
- type: entity
|
||||
parent: SecurityGunSafeNonlethalHandgunDV
|
||||
id: JusticeGunSafeNonlethalHandgunSecureDV
|
||||
suffix: Armory, Marshal, JusticeWarden, Locked
|
||||
components:
|
||||
- type: AccessReader
|
||||
access: [["Armory"], ["Marshal"], ["JusticeWarden"]]
|
||||
|
||||
- type: entity
|
||||
parent: SecurityGunSafeNonlethalDV
|
||||
id: JusticeGunSafeNonLethalShotgunDV
|
||||
name: non-lethal shotgun safe
|
||||
suffix: Justice variant
|
||||
components:
|
||||
#- type: Sprite # TODO: Resprite to justice colors.
|
||||
# sprite: _DV/Structures/Storage/Closets/nonlethalsafe.rsi
|
||||
# noRot: true
|
||||
- type: EntityStorageVisuals
|
||||
stateDoorClosed: shotgun
|
||||
|
||||
- type: entity
|
||||
parent: JusticeGunSafeNonLethalShotgunDV
|
||||
id: JusticeGunSafeNonLethalShotgunSecureDV
|
||||
suffix: Armory, Marshal, JusticeWarden, Locked
|
||||
components:
|
||||
- type: AccessReader
|
||||
access: [["Armory"], ["Marshal"], ["JusticeWarden"]]
|
||||
|
||||
- type: entity
|
||||
parent: JusticeGunSafeNonlethalHandgunDV
|
||||
id: JusticeGunSafeDisablerDV
|
||||
name: disabler safe
|
||||
suffix: Justice variant
|
||||
components:
|
||||
- type: EntityStorageVisuals
|
||||
stateDoorClosed: disabler
|
||||
|
||||
- type: entity
|
||||
parent: JusticeGunSafeDisablerDV
|
||||
id: JusticeGunSafeDisablerSecureDV
|
||||
suffix: Armory, Marshal, JusticeWarden, Locked
|
||||
components:
|
||||
- type: AccessReader
|
||||
access: [["Armory"], ["Marshal"], ["JusticeWarden"]]
|
||||
|
||||
# Evac pod
|
||||
- type: entity
|
||||
parent: LockerBase
|
||||
|
|
|
|||
|
|
@ -189,7 +189,7 @@
|
|||
- type: entity
|
||||
parent: FilledSecureCabinet
|
||||
id: SecureCabinetWarden
|
||||
suffix: Warden
|
||||
suffix: Warden, Security
|
||||
components:
|
||||
- type: AccessReader
|
||||
access: [["Armory"]]
|
||||
|
|
|
|||
|
|
@ -5,6 +5,7 @@
|
|||
- id: MothroachSpawn
|
||||
- id: XenoVents
|
||||
- id: MalignRiftSpawn
|
||||
- id: GnomeSpawn
|
||||
- id: PitbullMigration # FETCH ME THEIR SOULS
|
||||
|
||||
- type: entityTable
|
||||
|
|
@ -423,7 +424,6 @@
|
|||
implants:
|
||||
- HitmanCardImplant
|
||||
|
||||
|
||||
# nt agent sleeper event
|
||||
- type: entity
|
||||
id: NTAgentSleeper
|
||||
|
|
@ -464,6 +464,35 @@
|
|||
- RadioImplantCentcomm
|
||||
- NanolinkSubImplant
|
||||
|
||||
# Gnomes
|
||||
- type: entity
|
||||
parent: BaseMidRoundAntag
|
||||
id: GnomeSpawn
|
||||
components:
|
||||
- type: StationEvent
|
||||
earliestStart: 15
|
||||
minimumPlayers: 5
|
||||
weight: 2
|
||||
duration: null
|
||||
- type: PrecognitionResult
|
||||
message: psionic-power-precognition-gnome-spawn-result-message
|
||||
- type: AntagSpawner
|
||||
prototype: MobGnome
|
||||
- type: AntagSelection
|
||||
agentName: gnome-round-end-name
|
||||
definitions:
|
||||
- spawnerPrototype: SpawnPointGnome
|
||||
min: 1
|
||||
max: 2
|
||||
pickPlayer: false
|
||||
mindRoles:
|
||||
- MindRoleGhostRoleFreeAgent
|
||||
components:
|
||||
- type: EmitSoundOnSpawn
|
||||
sound: /Audio/Effects/bodyfall3.ogg
|
||||
- type: SpawnOnTrigger
|
||||
proto: EffectFlashBluespace
|
||||
|
||||
# NT Pest Control via Pitbulls
|
||||
- type: entity
|
||||
id: PitbullMigration
|
||||
|
|
|
|||
|
|
@ -11,6 +11,7 @@
|
|||
- id: GlimmerSpawnProber
|
||||
- id: GlimmerRevenantSpawn
|
||||
- id: GlimmerMiteSpawn
|
||||
- id: GlimmerGnomeSpawn
|
||||
- id: GlimmerRandomSentience
|
||||
- id: GlimmerRandomAnimation
|
||||
- id: ThavenMoodUpset
|
||||
|
|
@ -148,6 +149,17 @@
|
|||
mobPrototype: MobGlimmerMite
|
||||
glimmerTier: Low # get more mites earlier on
|
||||
|
||||
- type: entity
|
||||
parent: BaseGlimmerSignaturesEvent
|
||||
id: GlimmerGnomeSpawn
|
||||
components:
|
||||
- type: GlimmerEvent
|
||||
minimumGlimmer: 500
|
||||
maximumGlimmer: 900
|
||||
- type: GlimmerMobRule
|
||||
mobPrototype: MobGnome
|
||||
maxSpawns: 2
|
||||
|
||||
# Like upstream's event but can reoccur and tied to glimmer.
|
||||
- type: entity
|
||||
parent: [RandomSentience, BaseGlimmerEvent]
|
||||
|
|
@ -224,7 +236,6 @@
|
|||
- silver
|
||||
- yellow
|
||||
|
||||
|
||||
- type: entity
|
||||
id: GlimmerRestyle
|
||||
parent: BaseGlimmerSignaturesEvent
|
||||
|
|
|
|||
|
|
@ -7,3 +7,13 @@
|
|||
transferDamage: true
|
||||
revertOnCrit: true
|
||||
revertOnDeath: true
|
||||
|
||||
- type: polymorph
|
||||
id: GnomeMorph
|
||||
configuration:
|
||||
entity: GnomeJaunt
|
||||
cooldown: 20
|
||||
forced: true
|
||||
duration: 2
|
||||
polymorphSound: /Audio/_DV/Voice/Gnome/gnomelaugh.ogg
|
||||
inventory: Drop # drop items in hands when jaunting
|
||||
|
|
|
|||
|
|
@ -9,7 +9,4 @@
|
|||
maleFirstNames: NamesMotorkindFirst
|
||||
femaleFirstNames: NamesMotorkindFirst
|
||||
lastNames: NamesMotorkindLast
|
||||
baseScale: "2.0, 2.0"
|
||||
minHeight: 0.8
|
||||
maxHeight: 1.2
|
||||
defaultHeight: 1.0
|
||||
baseScale: 2.0, 2.0
|
||||
|
|
@ -9,5 +9,4 @@
|
|||
femaleFirstNames: NamesOniFemale
|
||||
lastNames: NamesOniLocation
|
||||
naming: LastNoFirst
|
||||
baseScale: "1.2, 1.2"
|
||||
maxHeight: 1.05
|
||||
baseScale: 1.1, 1.1
|
||||
|
|
|
|||
|
|
@ -5,5 +5,4 @@
|
|||
prototype: MobFelinid
|
||||
dollPrototype: AppearanceFelinid
|
||||
skinColoration: Hues
|
||||
baseScale: "0.8, 0.8"
|
||||
minHeight: 0.95
|
||||
baseScale: 0.8, 0.8
|
||||
|
|
|
|||
|
|
@ -5,8 +5,4 @@
|
|||
prototype: MobHarpy
|
||||
dollPrototype: AppearanceHarpy
|
||||
skinColoration: HumanToned
|
||||
baseScale: "0.9, 0.9"
|
||||
# Delta V Start - Due to the actual real world variance in avian size, I changed the range to be slightly wider, allowing for much larger, and smaller, Harpies, without going into territory deemed unfair.
|
||||
minHeight: 0.75
|
||||
maxHeight: 1.25
|
||||
# Delta V End
|
||||
baseScale: 0.95, 0.95
|
||||
|
|
|
|||
|
|
@ -5,6 +5,4 @@
|
|||
prototype: MobKitsune
|
||||
dollPrototype: AppearanceKitsune
|
||||
skinColoration: HumanToned
|
||||
baseScale: 1, 1
|
||||
minHeight: .85
|
||||
maxHeight: 1.05
|
||||
baseScale: 0.9, 0.9
|
||||
|
|
|
|||
|
|
@ -11,4 +11,3 @@
|
|||
lastNames: NamesRodentiaLast
|
||||
naming: LastFirst
|
||||
baseScale: 0.8, 0.8
|
||||
minHeight: .85
|
||||
|
|
|
|||
|
|
@ -739,6 +739,38 @@
|
|||
Mew:
|
||||
collection: FelinidMews
|
||||
|
||||
- type: emoteSounds
|
||||
id: GnomeSounds
|
||||
params:
|
||||
variation: 0.08
|
||||
sounds:
|
||||
Gulp: # Goob
|
||||
path: /Audio/_Goobstation/Voice/Human/gulp.ogg
|
||||
Blink:
|
||||
collection: Blinks
|
||||
Scream:
|
||||
path: /Audio/_DV/Voice/Gnome/gnomescream.ogg
|
||||
Laugh:
|
||||
path: /Audio/_DV/Voice/Gnome/gnomelaugh.ogg
|
||||
Sigh:
|
||||
collection: MaleSigh
|
||||
params:
|
||||
variation: 0.125
|
||||
Snore:
|
||||
collection: Snores
|
||||
Sneeze:
|
||||
collection: MaleSneezes
|
||||
Cough:
|
||||
collection: MaleCoughs
|
||||
Yawn:
|
||||
collection: MaleYawn
|
||||
Crying:
|
||||
collection: MaleCry
|
||||
Whistle:
|
||||
collection: Whistles
|
||||
DefaultDeathgasp:
|
||||
path: /Audio/_DV/Voice/Gnome/gnomedeath.ogg
|
||||
|
||||
- type: emoteSounds
|
||||
id: MonkeySounds
|
||||
sounds:
|
||||
|
|
|
|||
|
|
@ -33,3 +33,12 @@
|
|||
collection: RubberChicken
|
||||
exclaimSound:
|
||||
collection: RubberChicken
|
||||
|
||||
- type: speechSounds
|
||||
id: Gnome
|
||||
saySound:
|
||||
path: /Audio/_DV/Voice/Gnome/gnome1.ogg
|
||||
askSound:
|
||||
path: /Audio/_DV/Voice/Gnome/gnome1.ogg
|
||||
exclaimSound:
|
||||
path: /Audio/_DV/Voice/Gnome/gnomescream.ogg
|
||||
|
|
|
|||
|
|
@ -102,8 +102,6 @@
|
|||
Kidneys: OrganHumanKidneys
|
||||
- type: HumanoidProfile
|
||||
species: Thaven
|
||||
- type: ScaleVisuals
|
||||
speciesScale: 1.0, 1.05
|
||||
|
||||
- type: entity
|
||||
parent:
|
||||
|
|
@ -148,7 +146,7 @@
|
|||
shape:
|
||||
!type:PhysShapeCircle
|
||||
radius: 0.35
|
||||
density: 120
|
||||
density: 180
|
||||
restitution: 0.0
|
||||
mask:
|
||||
- MobMask
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
- type: entity
|
||||
save: false
|
||||
name: Uristia Mc-hands
|
||||
name: Urist McShorty
|
||||
parent: BaseMobAllulalo
|
||||
id: MobAllulalo
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
- type: entity
|
||||
save: false
|
||||
name: Uristia Mc-Hands
|
||||
name: Uristia McShorty
|
||||
parent:
|
||||
- AppearanceAllulalo
|
||||
- BaseSpeciesMobOrganic
|
||||
|
|
@ -119,103 +119,6 @@
|
|||
- type: Carriable # Delta V - grips the bird
|
||||
freeHandsRequired: 1
|
||||
|
||||
# Begin Delta V Removals - Nubody
|
||||
# - type: HumanoidAppearance
|
||||
# species: Allulalo
|
||||
# hideLayersOnEquip:
|
||||
# - Hair
|
||||
# - Snout
|
||||
# - HeadTop
|
||||
# - HeadSide
|
||||
# - LLeg
|
||||
# - RLeg
|
||||
# - LFoot
|
||||
# - RFoot
|
||||
|
||||
#- type: entity
|
||||
# parent: BaseSpeciesDummy
|
||||
# id: MobAllulaloDummy
|
||||
# categories: [ HideSpawnMenu ]
|
||||
# components:
|
||||
# - type: Sprite
|
||||
# scale: 1, 1
|
||||
# - type: Inventory
|
||||
# speciesId: allulalo
|
||||
# templateId: allulalo
|
||||
# displacements:
|
||||
# jumpsuit:
|
||||
# sizeMaps:
|
||||
# 32:
|
||||
# sprite: _Impstation/Mobs/Species/Allulalo/displacement.rsi
|
||||
# state: jumpsuit
|
||||
# head:
|
||||
# sizeMaps:
|
||||
# 32:
|
||||
# sprite: _Impstation/Mobs/Species/Allulalo/displacement.rsi
|
||||
# state: head
|
||||
# eyes:
|
||||
# sizeMaps:
|
||||
# 32:
|
||||
# sprite: _Impstation/Mobs/Species/Allulalo/displacement.rsi
|
||||
# state: glasses
|
||||
# ears:
|
||||
# sizeMaps:
|
||||
# 32:
|
||||
# sprite: _Impstation/Mobs/Species/Allulalo/displacement.rsi
|
||||
# state: ears
|
||||
# mask:
|
||||
# sizeMaps:
|
||||
# 32:
|
||||
# sprite: _Impstation/Mobs/Species/Allulalo/displacement.rsi
|
||||
# state: mask
|
||||
# neck:
|
||||
# sizeMaps:
|
||||
# 32:
|
||||
# sprite: _Impstation/Mobs/Species/Allulalo/displacement.rsi
|
||||
# state: neck
|
||||
# outerClothing:
|
||||
# sizeMaps:
|
||||
# 32:
|
||||
# sprite: _Impstation/Mobs/Species/Allulalo/displacement.rsi
|
||||
# state: outerClothing
|
||||
# gloves:
|
||||
# sizeMaps:
|
||||
# 32:
|
||||
# sprite: _Impstation/Mobs/Species/Allulalo/displacement.rsi
|
||||
# state: hands
|
||||
# shoes:
|
||||
# sizeMaps:
|
||||
# 32:
|
||||
# sprite: _Impstation/Mobs/Species/Allulalo/displacement.rsi
|
||||
# state: feet
|
||||
# belt:
|
||||
# sizeMaps:
|
||||
# 32:
|
||||
# sprite: _Impstation/Mobs/Species/Allulalo/displacement.rsi
|
||||
# state: belt
|
||||
# back:
|
||||
# sizeMaps:
|
||||
# 32:
|
||||
# sprite: _Impstation/Mobs/Species/Allulalo/displacement.rsi
|
||||
# state: back
|
||||
# suitstorage:
|
||||
# sizeMaps:
|
||||
# 32:
|
||||
# sprite: _Impstation/Mobs/Species/Allulalo/displacement.rsi
|
||||
# state: suitstorage
|
||||
# - type: Hands
|
||||
# leftHandDisplacement:
|
||||
# sizeMaps:
|
||||
# 32:
|
||||
# sprite: Mobs/Species/Vox/displacement.rsi
|
||||
# state: hand_l
|
||||
# rightHandDisplacement:
|
||||
# sizeMaps:
|
||||
# 32:
|
||||
# sprite: Mobs/Species/Vox/displacement.rsi
|
||||
# state: hand_r
|
||||
# End Delta V Removals
|
||||
|
||||
# Begin Delta V addition - Nubody
|
||||
- type: entity
|
||||
parent: BaseSpeciesAppearance
|
||||
|
|
@ -319,6 +222,14 @@
|
|||
Kidneys: OrganHumanKidneys
|
||||
- type: HumanoidProfile
|
||||
species: Allulalo
|
||||
# BEGIN DeltaV
|
||||
# Allulalo are weird because they are small yet base scale 1.0 BUT since the height system uses
|
||||
# base scale to determine the metric/imperial height values, so we're just correcting the scale
|
||||
# because Allulalo have to be the special kid on the block.
|
||||
- type: ScaleVisuals
|
||||
scale: 2.0, 2.0
|
||||
originalScale: 2.0, 2.0
|
||||
# END DeltaV
|
||||
|
||||
- type: entity
|
||||
parent: OrganBase
|
||||
|
|
|
|||
|
|
@ -4,7 +4,6 @@
|
|||
roundStart: true
|
||||
prototype: MobAllulalo
|
||||
defaultSkinTone: "#385878"
|
||||
#markingLimits: MobAllulaloMarkingLimits # Delta V - Nubody
|
||||
dollPrototype: AppearanceAllulalo # Delta V - Nubody
|
||||
skinColoration: Hues
|
||||
maleFirstNames: AllulaloFirstNames
|
||||
|
|
@ -14,150 +13,4 @@
|
|||
- Male
|
||||
- Female
|
||||
- Unsexed
|
||||
|
||||
# Begin Delta V Removals - Changes for Nubody
|
||||
#- type: speciesBaseSprites
|
||||
# id: MobAllulaloSprites
|
||||
# sprites:
|
||||
# TailBehind: MobHumanoidAnyMarking # floof
|
||||
# TailOversuit: MobHumanoidAnyMarking # floof
|
||||
# Eyes: MobAllulaloEyes
|
||||
# Head: MobAllulaloHead
|
||||
# HeadTop: MobHumanoidAnyMarking
|
||||
# Hair: MobHumanoidAnyMarking
|
||||
# Chest: MobAllulaloTorso
|
||||
# LArm: MobAllulaloLArm
|
||||
# RArm: MobAllulaloRArm
|
||||
# LHand: MobAllulaloLHand
|
||||
# LLeg: MobAllulaloLLeg
|
||||
# RLeg: MobAllulaloRLeg
|
||||
# LFoot: MobAllulaloLFoot
|
||||
# RFoot: MobAllulaloRFoot
|
||||
# Tail: MobHumanoidAnyMarking
|
||||
# Snout: MobHumanoidAnyMarking
|
||||
#
|
||||
#- type: markingPoints
|
||||
# id: MobAllulaloMarkingLimits
|
||||
# onlyWhitelisted: true
|
||||
# points:
|
||||
# Hair:
|
||||
# points: 1
|
||||
# required: false
|
||||
# Eyes:
|
||||
# points: 1
|
||||
# required: true
|
||||
# defaultMarkings: [ AllulaloEyesDefault ]
|
||||
# Head:
|
||||
# points: 3
|
||||
# required: false
|
||||
# HeadTop:
|
||||
# points: 1
|
||||
# required: false
|
||||
# UndergarmentTop:
|
||||
# points: 1
|
||||
# required: false
|
||||
# Chest:
|
||||
# points: 2
|
||||
# required: false
|
||||
# Tail:
|
||||
# points: 1
|
||||
# required: true
|
||||
# defaultMarkings: [ AllulaloTailDefault ]
|
||||
# Snout:
|
||||
# points: 1
|
||||
# required: false
|
||||
# Overlay:
|
||||
# points: 1
|
||||
# required: false
|
||||
# Arms:
|
||||
# points: 1
|
||||
# required: true
|
||||
# defaultMarkings: [ AllulaloWingsDefault ]
|
||||
# Legs:
|
||||
# points: 2
|
||||
# required: false
|
||||
#
|
||||
#- type: humanoidBaseSprite
|
||||
# id: MobAllulaloEyes
|
||||
# baseSprite:
|
||||
# sprite: _Impstation/Mobs/Species/Allulalo/parts.rsi
|
||||
# state: eyes
|
||||
#
|
||||
#- type: humanoidBaseSprite
|
||||
# id: MobAllulaloHead
|
||||
# baseSprite:
|
||||
# sprite: _Impstation/Mobs/Species/Allulalo/parts.rsi
|
||||
# state: head
|
||||
#
|
||||
#- type: humanoidBaseSprite
|
||||
# id: MobAllulaloHeadMale
|
||||
# baseSprite:
|
||||
# sprite: _Impstation/Mobs/Species/Allulalo/parts.rsi
|
||||
# state: head
|
||||
#
|
||||
#- type: humanoidBaseSprite
|
||||
# id: MobAllulaloHeadFemale
|
||||
# baseSprite:
|
||||
# sprite: _Impstation/Mobs/Species/Allulalo/parts.rsi
|
||||
# state: head
|
||||
#
|
||||
#- type: humanoidBaseSprite
|
||||
# id: MobAllulaloTorso
|
||||
# baseSprite:
|
||||
# sprite: _Impstation/Mobs/Species/Allulalo/parts.rsi
|
||||
# state: torso
|
||||
#
|
||||
#- type: humanoidBaseSprite
|
||||
# id: MobAllulaloTorsoMale
|
||||
# baseSprite:
|
||||
# sprite: _Impstation/Mobs/Species/Allulalo/parts.rsi
|
||||
# state: torso
|
||||
#
|
||||
#- type: humanoidBaseSprite
|
||||
# id: MobAllulaloTorsoFemale
|
||||
# baseSprite:
|
||||
# sprite: _Impstation/Mobs/Species/Allulalo/parts.rsi
|
||||
# state: torso
|
||||
#
|
||||
#- type: humanoidBaseSprite
|
||||
# id: MobAllulaloLLeg
|
||||
# baseSprite:
|
||||
# sprite: _Impstation/Mobs/Species/Allulalo/parts.rsi
|
||||
# state: l_leg
|
||||
#
|
||||
#- type: humanoidBaseSprite
|
||||
# id: MobAllulaloLHand
|
||||
# baseSprite:
|
||||
# sprite: _Impstation/Mobs/Species/Allulalo/parts.rsi
|
||||
# state: hands
|
||||
#
|
||||
#- type: humanoidBaseSprite
|
||||
# id: MobAllulaloLArm
|
||||
# baseSprite:
|
||||
# sprite: _Impstation/Mobs/Species/Allulalo/parts.rsi
|
||||
# state: l_arm
|
||||
#
|
||||
#- type: humanoidBaseSprite
|
||||
# id: MobAllulaloLFoot
|
||||
# baseSprite:
|
||||
# sprite: _Impstation/Mobs/Species/Allulalo/parts.rsi
|
||||
# state: l_foot
|
||||
#
|
||||
#- type: humanoidBaseSprite
|
||||
# id: MobAllulaloRLeg
|
||||
# baseSprite:
|
||||
# sprite: _Impstation/Mobs/Species/Allulalo/parts.rsi
|
||||
# state: r_leg
|
||||
#
|
||||
#- type: humanoidBaseSprite
|
||||
# id: MobAllulaloRArm
|
||||
# baseSprite:
|
||||
# sprite: _Impstation/Mobs/Species/Allulalo/parts.rsi
|
||||
# state: r_arm
|
||||
#
|
||||
#- type: humanoidBaseSprite
|
||||
# id: MobAllulaloRFoot
|
||||
# baseSprite:
|
||||
# sprite: _Impstation/Mobs/Species/Allulalo/parts.rsi
|
||||
# state: r_foot
|
||||
# End Delta V Removals
|
||||
baseScale: 0.5, 0.5 # they smol
|
||||
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue