Рандомные фиксы и пересмотр хранилищ с предметами (#381)

* add: fixed wrong item rotation in inventory

* fix: forcepreset no longer starts round

* fix: fix localisation

* add: forcepreset command logging

* add: Storage and items rework, part 1

* rework: item size rework part 2

* add: blood loss accent rework

* no spaces
This commit is contained in:
ThereDrD0
2024-06-27 11:37:42 +03:00
committed by GitHub
parent 630ebae42a
commit 7048913336
57 changed files with 252 additions and 39 deletions

View File

@@ -1,3 +1,4 @@
using Content.Server._White.Accent.Bloodloss;
using Content.Server.Body.Components;
using Content.Server.Chemistry.Containers.EntitySystems;
using Content.Server.Chemistry.ReactionEffects;
@@ -43,6 +44,7 @@ public sealed class BloodstreamSystem : EntitySystem
[Dependency] private readonly AlertsSystem _alertsSystem = default!;
[Dependency] private readonly ForensicsSystem _forensicsSystem = default!;
[Dependency] private readonly MovementSpeedModifierSystem _speed = default!; // WD
[Dependency] private readonly BloodLossAccent _bloodLossAccent = default!;
public override void Initialize()
{
@@ -158,7 +160,7 @@ public sealed class BloodstreamSystem : EntitySystem
uid,
(float) bloodstream.UpdateInterval.TotalSeconds * 2,
applySlur: false);
_stutteringSystem.DoStutter(uid, bloodstream.UpdateInterval * 2, refresh: false);
_bloodLossAccent.StartBloodLossAccent(uid, bloodstream.UpdateInterval * 2, refresh: false);
// storing the drunk and stutter time so we can remove it independently from other effects additions
bloodstream.StatusTime += bloodstream.UpdateInterval * 2;
@@ -173,7 +175,7 @@ public sealed class BloodstreamSystem : EntitySystem
// Remove the drunk effect when healthy. Should only remove the amount of drunk and stutter added by low blood level
_drunkSystem.TryRemoveDrunkenessTime(uid, bloodstream.StatusTime.TotalSeconds);
_stutteringSystem.DoRemoveStutterTime(uid, bloodstream.StatusTime.TotalSeconds);
_bloodLossAccent.StopBloodLossAccent(uid, bloodstream.StatusTime.TotalSeconds);
// Reset the drunk and stutter time to zero
bloodstream.StatusTime = TimeSpan.Zero;
}

View File

@@ -1,7 +1,10 @@
using System.Linq;
using Content.Server.Administration;
using Content.Server.Administration.Logs;
using Content.Server.Chat.Managers;
using Content.Server.GameTicking.Presets;
using Content.Shared.Administration;
using Content.Shared.Database;
using Robust.Shared.Console;
using Robust.Shared.Prototypes;
@@ -10,6 +13,9 @@ namespace Content.Server.GameTicking.Commands
[AdminCommand(AdminFlags.Round)]
sealed class ForcePresetCommand : IConsoleCommand
{
[Dependency] private readonly IAdminLogManager _adminLogger = default!;
[Dependency] private readonly IChatManager _chatManager = default!;
public string Command => "forcepreset";
public string Description => "Forces a specific game preset to start for the current lobby.";
public string Help => $"Usage: {Command} <preset>";
@@ -36,8 +42,19 @@ namespace Content.Server.GameTicking.Commands
return;
}
ticker.SetGamePreset(type, true);
shell.WriteLine($"Forced the game to start with preset {name}.");
ticker.SetGamePreset(type);
_adminLogger.Add(LogType.EventStarted, $"Forced {type.ID} for secret.");
var player = "Someone";
if (shell.Player != null)
player = shell.Player.Name;
_chatManager.SendAdminAnnouncement($"{player} forced {type.ID} for secret.");
shell.WriteLine($"forced the game to start with preset {name}.");
ticker.UpdateInfoText();
}

View File

@@ -0,0 +1,66 @@
using System.Text;
using Content.Server.Speech;
using Content.Shared.StatusEffect;
using Robust.Shared.Random;
namespace Content.Server._White.Accent.Bloodloss;
public sealed class BloodLossAccent : EntitySystem
{
[Dependency] private readonly StatusEffectsSystem _statusEffectsSystem = default!;
[Dependency] private readonly IRobustRandom _random = default!;
public override void Initialize()
{
base.Initialize();
SubscribeLocalEvent<BloodLossAccentComponent, AccentGetEvent>(OnAccent);
}
public void StartBloodLossAccent(EntityUid uid, TimeSpan time, bool refresh, StatusEffectsComponent? status = null)
{
if (!Resolve(uid, ref status, false))
return;
_statusEffectsSystem.TryAddStatusEffect<BloodLossAccentComponent>(uid, "BloodLoss", time, refresh, status);
}
public void StopBloodLossAccent(EntityUid uid, double timeRemoved)
{
_statusEffectsSystem.TryRemoveTime(uid, "BloodLoss", TimeSpan.FromSeconds(timeRemoved));
}
private void OnAccent(EntityUid uid, BloodLossAccentComponent component, AccentGetEvent args)
{
args.Message = Accentuate(args.Message, component);
}
public string Accentuate(string message, BloodLossAccentComponent component)
{
if (string.IsNullOrEmpty(message))
{
return message;
}
var result = new StringBuilder();
string[] words = message.Split(' ');
foreach (var word in words)
{
if (word.Length >= 3 && _random.NextDouble() < component.ReplaceProb)
{
int start = Random.Shared.Next(1, word.Length - 1);
int end = start + Random.Shared.Next(1, word.Length - start);
result.Append(word.Substring(0, start) + component.ToReplace + word.Substring(end));
}
else
{
result.Append(word);
}
result.Append(' ');
}
return result.ToString().TrimEnd();
}
}

View File

@@ -0,0 +1,13 @@
namespace Content.Server._White.Accent.Bloodloss;
[RegisterComponent]
public sealed partial class BloodLossAccentComponent : Component
{
[DataField]
[ViewVariables(VVAccess.ReadWrite)]
public float ReplaceProb = 0.6f;
[DataField]
[ViewVariables(VVAccess.ReadWrite)]
public string ToReplace = "...";
}

View File

@@ -3,8 +3,8 @@
hands-system-missing-equipment-slot = У вас нет { $slotName }, из которого можно что-то взять!
hands-system-empty-equipment-slot = В вашем { $slotName } нет ничего, что можно было бы вынуть!
# Examine text after when they're holding something (in-hand)
comp-hands-examine-empty = { CAPITALIZE(SUBJECT($user)) } ничего не удерживает.
comp-hands-examine-empty = { CAPITALIZE(SUBJECT($user)) } ничего не держит.
comp-hands-examine-wrapper = [color=paleturquoise]{$item}[/color]
comp-hands-examine = { CAPITALIZE(SUBJECT($user)) } удерживает { $items }.
comp-hands-examine = { CAPITALIZE(SUBJECT($user)) } держит { $items }.
hands-system-blocked-by = Руки заблокированы этим:

View File

@@ -5,9 +5,9 @@
description: A cardboard box for storing things.
components:
- type: Item
size: Large
shape:
- 0,0,2,2
size: Normal
shape:
- 0,0,1,1
- type: Storage
maxItemSize: Small
grid:

View File

@@ -7,7 +7,7 @@
- type: StorageFill
contents:
- id: Syringe
amount: 6
amount: 4
- type: Sprite
layers:
- state: box

View File

@@ -27,7 +27,9 @@
grid:
- 0,0,7,1
- type: Item
size: Ginormous
size: Large
shape:
- 0, 0, 4, 1
- type: ContainerContainer
containers:
storagebase: !type:Container

View File

@@ -548,7 +548,9 @@
- type: Clothing
sprite: Clothing/Belt/sheath.rsi
- type: Item
size: Ginormous
size: Huge
shape:
- 0, 0, 4, 0
- type: ItemSlots
slots:
item:

View File

@@ -1,5 +1,15 @@
- type: entity
parent: ClothingNeckBase
id: ClothingNeckMantleBase
abstract: true
name: base mantle
description: based
components:
- type: Item
storedRotation: -90
- type: entity
parent: ClothingNeckMantleBase
id: ClothingNeckMantleCap
name: captain's mantle
description: A comfortable and chique mantle befitting of only the most experienced captain.
@@ -10,7 +20,7 @@
sprite: Clothing/Neck/mantles/capmantle.rsi
- type: entity
parent: ClothingNeckBase
parent: ClothingNeckMantleBase
id: ClothingNeckMantleCE
name: chief engineer's mantle
description: High visibility, check. RIG system, check. High capacity cell, check. Everything a chief engineer could need in a stylish mantle.
@@ -21,7 +31,7 @@
sprite: Clothing/Neck/mantles/cemantle.rsi
- type: entity
parent: ClothingNeckBase
parent: ClothingNeckMantleBase
id: ClothingNeckMantleCMO
name: chief medical officer's mantle
description: For a CMO that has been in enough medbays to know that more PPE means less central command dry cleaning visits when the shift is over.
@@ -32,7 +42,7 @@
sprite: Clothing/Neck/mantles/cmomantle.rsi
- type: entity
parent: ClothingNeckBase
parent: ClothingNeckMantleBase
id: ClothingNeckMantleHOP
name: head of personnel's mantle
description: A good HOP knows that paper pushing is only half the job... petting your dog and looking fashionable is the other half.
@@ -43,7 +53,7 @@
sprite: Clothing/Neck/mantles/hopmantle.rsi
- type: entity
parent: ClothingNeckBase
parent: ClothingNeckMantleBase
id: ClothingNeckMantleHOS
name: head of security's mantle
description: Shootouts with nukies are just another Tuesday for this HoS. This mantle is a symbol of commitment to the station.
@@ -54,7 +64,7 @@
sprite: Clothing/Neck/mantles/hosmantle.rsi
- type: entity
parent: ClothingNeckBase
parent: ClothingNeckMantleBase
id: ClothingNeckMantleRD
name: research director's mantle
description: For when long days in the office consist of explosives, poisonous gas, murder robots, and a fresh pizza from cargo; this mantle will keep you comfy.
@@ -65,7 +75,7 @@
sprite: Clothing/Neck/mantles/rdmantle.rsi
- type: entity
parent: ClothingNeckBase
parent: ClothingNeckMantleBase
id: ClothingNeckMantleQM
name: quartermaster's mantle
description: For the master of goods and materials to rule over the department, a befitting mantle to show off superiority!
@@ -76,7 +86,7 @@
sprite: Clothing/Neck/mantles/qmmantle.rsi
- type: entity
parent: ClothingNeckBase
parent: ClothingNeckMantleBase
id: ClothingNeckMantleInspector
name: inspector's mantle
description: Dark mantle that highlights your intimidating figure. These are the shoulders!

View File

@@ -1,5 +1,15 @@
- type: entity
parent: ClothingNeckBase
id: ClothingNeckTieBase
abstract: true
name: red-tie
description: A neosilk clip-on red tie.
components:
- type: Item
storedRotation: 135
- type: entity
parent: ClothingNeckTieBase
id: ClothingNeckTieRed
name: red-tie
description: A neosilk clip-on red tie.
@@ -15,7 +25,7 @@
- ClothMade
- type: entity
parent: ClothingNeckBase
parent: ClothingNeckTieBase
id: ClothingNeckTieDet
name: detective's tie
description: A loosely tied necktie, a perfect accessory for the over-worked detective.
@@ -24,9 +34,9 @@
sprite: Clothing/Neck/Ties/dettie.rsi
- type: Clothing
sprite: Clothing/Neck/Ties/dettie.rsi
- type: entity
parent: ClothingNeckBase
parent: ClothingNeckTieBase
id: ClothingNeckTieSci
name: scientist's tie
description: Why do we all have to wear these ridiculous ties?

View File

@@ -3,7 +3,7 @@
#Basic armor vest
- type: entity
parent: ClothingOuterBaseMedium
parent: ClothingOuterBase
id: ClothingOuterArmorBasic
name: armor vest
description: A standard Type I armored vest that provides decent protection against most types of damage.

View File

@@ -74,6 +74,8 @@
sprite: Clothing/OuterClothing/Suits/atmos_firesuit.rsi
- type: Clothing
sprite: Clothing/OuterClothing/Suits/atmos_firesuit.rsi
- type: Item
storedRotation: -90
- type: PressureProtection
highPressureMultiplier: 0.02
lowPressureMultiplier: 1000

View File

@@ -10,6 +10,7 @@
state: icon
- type: Item
size: Small
storedRotation: 90
- type: Food
requiresSpecialDigestion: true
- type: SolutionContainerManager

View File

@@ -40,3 +40,5 @@
- behavior: Anchoring
useSound: /Audio/Items/drill_use.ogg
changeSound: /Audio/Items/change_drill.ogg
- type: Item
storedRotation: -90

View File

@@ -39,6 +39,7 @@
- KnockedDown
- SlowedDown
- Stutter
- BloodLoss
- Electrocution
- type: Pullable
- type: Tag

View File

@@ -56,6 +56,7 @@
- KnockedDown
- SlowedDown
- Stutter
- BloodLoss
- Electrocution
- type: NameIdentifier
group: GenericNumber

View File

@@ -21,6 +21,7 @@
allowed:
- SlowedDown
- Stutter
- BloodLoss
- Electrocution
- ForcedSleep
- TemporaryBlindness
@@ -97,6 +98,7 @@
- KnockedDown
- SlowedDown
- Stutter
- BloodLoss
- Electrocution
- ForcedSleep
- TemporaryBlindness

View File

@@ -32,6 +32,7 @@
- KnockedDown
- SlowedDown
- Stutter
- BloodLoss
- Electrocution
- Drunk
- SlurredSpeech

View File

@@ -132,6 +132,7 @@
- KnockedDown
- SlowedDown
- Stutter
- BloodLoss
- SeeingRainbows
- Electrocution
- Drunk
@@ -290,6 +291,7 @@
- KnockedDown
- SlowedDown
- Stutter
- BloodLoss
- SeeingRainbows
- Electrocution
- ForcedSleep

View File

@@ -440,6 +440,8 @@
Quantity: 10
- ReagentId: Oculine
Quantity: 2
- type: Item
storedRotation: -45
- type: entity
name: cabbage
@@ -872,6 +874,8 @@
- type: Tag
tags:
- Fruit
- type: Item
size: Tiny
- type: entity
name: cocoa pod

View File

@@ -17,7 +17,7 @@
sprite: Objects/Devices/timer.rsi
state: timer
- type: Item
size: Small
size: Tiny
- type: PayloadTrigger
components:
- type: OnUseTimerTrigger

View File

@@ -9,6 +9,7 @@
state: forensicnew
- type: Item
size: Small
storedRotation: 90
- type: Clothing
sprite: Objects/Devices/forensic_scanner.rsi
quickEquip: false

View File

@@ -18,6 +18,8 @@
behaviors:
- !type:DoActsBehavior
acts: [ "Destruction" ]
- type: Item
size: Tiny
- type: entity
name: explosive payload

View File

@@ -22,6 +22,7 @@
state: pinpointer
- type: Item
sprite: Objects/Devices/pinpointer.rsi
size: Tiny
- type: Pinpointer
- type: Appearance
- type: GenericVisualizer

View File

@@ -9,7 +9,7 @@
sprite: Objects/Materials/Sheets/glass.rsi
- type: Item
sprite: Objects/Materials/Sheets/glass.rsi
size: Small
size: Normal
- type: StaticPrice
price: 0
- type: Tag
@@ -197,7 +197,7 @@
- ReagentId: Carbon
Quantity: 0.5
canReact: false
- type: entity
parent: SheetGlassBase
id: SheetPGlass

View File

@@ -8,7 +8,7 @@
sprite: Objects/Materials/Sheets/metal.rsi
- type: Item
sprite: Objects/Materials/Sheets/metal.rsi
size: Small
size: Normal
- type: StaticPrice
price: 0
- type: Tag

View File

@@ -8,7 +8,7 @@
sprite: Objects/Materials/Sheets/other.rsi
- type: Item
sprite: Objects/Materials/Sheets/other.rsi
size: Small
size: Normal
- type: Tag
tags:
- Sheet

View File

@@ -21,6 +21,8 @@
- type: Sprite
sprite: Objects/Misc/nukedisk.rsi
state: icon
- type: Item
size: Tiny
- type: StaticPrice
price: 2000
- type: CargoSellBlacklist

View File

@@ -4,7 +4,7 @@
parent: BaseItem
components:
- type: Item
storedRotation: -90
size: Tiny
- type: Battery
pricePerJoule: 0.15
- type: PowerCell
@@ -291,7 +291,7 @@
parent: BasePowerCell
components:
- type: Item
size: Ginormous
size: Huge
- type: MultiHandedItem
- type: SolutionContainerManager
solutions:

View File

@@ -13,7 +13,9 @@
slots:
- belt
- type: Item
size: Ginormous
size: Large
shape:
- 0, 0, 2, 1
- type: Storage
maxItemSize: Normal # allow up to 5 large beakers / 10 beakers / 10 pill canisters
grid:

View File

@@ -19,6 +19,7 @@
Slash: 10
- type: Item
sprite: Objects/Tools/Hydroponics/hoe.rsi
storedRotation: 45
- type: entity
name: plant clippers
@@ -108,6 +109,7 @@
Piercing: 5 # I guess you can stab it into them?
- type: Item
sprite: Objects/Tools/Hydroponics/spade.rsi
storedRotation: 135
- type: Shovel
speedModifier: 0.75 # slower at digging than a full-sized shovel
@@ -121,7 +123,7 @@
sprite: Objects/Specific/Hydroponics/Equipment/plant_bag.rsi
state: icon
- type: Item
storedRotation: -90
size: Normal
- type: Clothing
quickEquip: false
slots:

View File

@@ -23,6 +23,9 @@
- type: Item
size: Large
sprite: Objects/Specific/Janitorial/mop.rsi
storedRotation: -135
shape:
- 0, 0, 3, 0
- type: Absorbent
- type: SolutionContainerManager
solutions:

View File

@@ -27,6 +27,7 @@
state: ointment
- type: Item
heldPrefix: ointment
storedRotation: 45
- type: Healing
damageContainers:
- Biological
@@ -229,7 +230,7 @@
components:
- type: Stack
lingering: true
- type: entity
parent: BaseHealingItem
id: Tourniquet
@@ -268,6 +269,8 @@
- Gauze
- type: Sprite
state: gauze
- type: Item
storedRotation: 90
- type: Construction
graph: Gauze
node: gauze

View File

@@ -328,6 +328,9 @@
layers:
- state: stimpen
map: ["enum.SolutionContainerLayers.Fill"]
- type: Item
size: Small
storedRotation: 90
- type: SolutionContainerManager
solutions:
pen:

View File

@@ -10,9 +10,9 @@
- type: Storage
maxItemSize: Small
grid:
- 0,0,3,1
- 0,0,4,1
- type: Item
size: Large
size: Normal
sprite: Objects/Specific/Medical/firstaidkits.rsi
heldPrefix: firstaid
- type: Tag

View File

@@ -4,6 +4,10 @@
name: research point disk (1000)
description: A disk for the R&D server containing 1000 points.
components:
- type: Item
size: Small
shape:
- 0, 0, 1, 1
- type: Sprite
sprite: Objects/Specific/Research/researchdisk.rsi
state: icon

View File

@@ -154,6 +154,8 @@
description: Used to contain a moderate amount of chemicals and solutions.
id: Beaker
components:
- type: Item
size: Tiny
- type: Spillable
solution: beaker
- type: StaticPrice
@@ -281,6 +283,7 @@
- type: Item
size: Tiny
sprite: Objects/Specific/Chemistry/dropper.rsi
storedRotation: -45
- type: Appearance
- type: SolutionContainerVisuals
maxFillLevels: 1
@@ -329,8 +332,9 @@
sprite: Objects/Specific/Chemistry/syringe.rsi
state: "syringe_base0"
- type: Item
size: Tiny
size: Small
sprite: Objects/Specific/Chemistry/syringe.rsi
storedRotation: -45
- type: SolutionContainerManager
solutions:
injector:

View File

@@ -64,6 +64,7 @@
- type: Item
sprite: Objects/Devices/communication.rsi
heldPrefix: old-radio
storedRotation: 90
- type: UserInterface
interfaces:
- key: enum.StoreUiKey.Key

View File

@@ -9,6 +9,7 @@
- type: Item
size: Normal
sprite: Objects/Tanks/generic.rsi
storedRotation: 45
- type: Clothing
quickEquip: false
sprite: Objects/Tanks/generic.rsi
@@ -57,6 +58,8 @@
sprite: Objects/Tanks/oxygen.rsi
- type: Item
sprite: Objects/Tanks/oxygen.rsi
shape:
- 0, 0, 3, 0
- type: GasTank
outputPressure: 21.3
air:
@@ -87,6 +90,8 @@
sprite: Objects/Tanks/emergency.rsi
- type: Item
size: Small
shape:
- 0, 0, 1, 0
sprite: Objects/Tanks/emergency.rsi
- type: GasTank
air:
@@ -208,6 +213,9 @@
air:
volume: 15
temperature: 293.15
- type: Item
shape:
- 0, 0, 3, 0
- type: entity
parent: GasTankRoundBase
@@ -219,6 +227,8 @@
sprite: Objects/Tanks/anesthetic.rsi
- type: Item
sprite: Objects/Tanks/anesthetic.rsi
shape:
- 0, 0, 3, 0
- type: GasTank
outputPressure: 30.4
air:

View File

@@ -38,6 +38,8 @@
- type: Item
sprite: Objects/Tanks/Jetpacks/blue.rsi
size: Huge
shape:
- 0, 0, 2, 3
- type: UserInterface
interfaces:
- key: enum.SharedGasTankUiKey.Key

View File

@@ -9,6 +9,7 @@
state: spray_painter
- type: Item
sprite: Objects/Tools/spray_painter.rsi
storedRotation: -90
- type: ActivatableUI
key: enum.SprayPainterUiKey.Key
- type: UserInterface

View File

@@ -23,7 +23,9 @@
grid:
- 0,0,6,3
- type: Item
size: Ginormous
size: Large
shape:
- 0,0,6,2
- type: MeleeWeapon
damage:
types:

View File

@@ -502,6 +502,7 @@
sprite: Objects/Tools/rcd.rsi
state: ammo
- type: Item
size: Tiny
sprite: Objects/Tools/rcd.rsi
heldPrefix: ammo
- type: PhysicalComposition

View File

@@ -12,6 +12,8 @@
- type: Sprite
- type: Item
size: Huge
shape:
- 0,0,4,1
- type: Clothing
sprite: Objects/Weapons/Guns/Battery/laser_retro.rsi
quickEquip: false
@@ -838,3 +840,5 @@
price: 800
- type: Item
size: Large
shape:
- 0, 0, 3, 1

View File

@@ -13,6 +13,8 @@
- Back
- type: Item
size: Huge
shape:
- 0,0,5,1
- type: StaticPrice
price: 500
- type: ContainerContainer

View File

@@ -8,6 +8,8 @@
- type: Sprite
- type: Item
size: Huge
shape:
- 0,0,4,1
- type: Clothing
sprite: Objects/Weapons/Guns/Rifles/ak.rsi
quickEquip: false

View File

@@ -11,6 +11,8 @@
map: ["enum.GunVisualLayers.Base"]
- type: Item
size: Huge
shape:
- 0,0,4,0
- type: Clothing
sprite: Objects/Weapons/Guns/Snipers/bolt_gun_wood.rsi
quickEquip: false

View File

@@ -41,6 +41,7 @@
state: icon
- type: Item
sprite: Objects/Weapons/Melee/kitchen_knife.rsi
storedRotation: -45
- type: GuideHelp
guides:
- Chef
@@ -102,6 +103,7 @@
Slash: 10
- type: Item
sprite: Objects/Weapons/Melee/combat_knife.rsi
storedRotation: -45
- type: DisarmMalus
malus: 0.225
- type: Construction
@@ -291,3 +293,4 @@
Piercing: 15
- type: Item
sprite: Objects/Weapons/Melee/throwing_knife.rsi
storedRotation: -45

View File

@@ -48,7 +48,10 @@
types:
Piercing: 15
- type: Item
size: Ginormous
storedRotation: 44 # It just works
size: Huge
shape:
- 0,0,5,0
- type: Clothing
quickEquip: false
slots:

View File

@@ -24,6 +24,9 @@
- type: Item
size: Large
sprite: Objects/Weapons/Melee/captain_sabre.rsi
storedRotation: 44 # It just works
shape:
- 0, 0, 4, 0
- type: Tag
tags:
- CaptainSabre

View File

@@ -52,6 +52,9 @@
- type: Item
heldPrefix: off
size: Normal
shape:
- 0,0,2,0
storedRotation: 44
- type: Clothing
sprite: Objects/Weapons/Melee/stunbaton.rsi
quickEquip: false

View File

@@ -5,4 +5,5 @@
noSpawn: true
components:
- type: Item
size: Ginormous
- type: VirtualItem

View File

@@ -17,6 +17,7 @@
- type: Item
heldPrefix: off
sprite: White/VoiceRecorder/voicerecorder.rsi
storedRotation: 90
- type: Appearance
- type: VoiceRecorder
blacklist:

View File

@@ -9,6 +9,8 @@
sprite: White/Misc/cards.rsi
scale: 0.8, 0.8
state: budgetcard
- type: Item
storedRotation: 90
- type: entity
parent: BaseDepartmentBudgetCard

View File

@@ -45,3 +45,5 @@
name: item-component-size-Ginormous
defaultShape:
- 0,0,5,5

View File

@@ -68,6 +68,9 @@
id: NarcoticEffect
alwaysAllowed: true
#WD EDIT
# WD EDIT
- type: statusEffect
id: Incorporeal
- type: statusEffect
id: BloodLoss