* the changes...
* eek
VerticalAlignment = VAlignment.Center
};
_information.SetMessage(Loc.GetString("comp-storage-window-weight",
- ("percent", 0),
+ ("weight", 0),
+ ("maxWeight", 0),
("size", SharedItemSystem.GetItemSizeLocale(ItemSize.Normal))));
vBox.AddChild(_information);
/// <summary>
/// Items that are too large to fit inside of standard bags, but can worn in exterior slots or placed in custom containers.
/// </summary>
- Large = 16,
+ Large = 8,
/// <summary>
/// Items that are too large to place inside of any kind of container.
/// </summary>
- Huge = 24,
+ Huge = 16,
/// <summary>
/// Picture furry gf
/// </summary>
- Ginormous = 48
+ Ginormous = 32
}
if (!Resolve(insertEnt, ref insertStack) || !Resolve(targetEnt, ref targetStack))
return false;
+ if (insertStack.StackTypeId != targetStack.StackTypeId)
+ return false;
+
var available = GetAvailableSpace(targetStack);
if (available <= 0)
-using System.Diagnostics.CodeAnalysis;
using System.Linq;
using Content.Shared.ActionBlocker;
using Content.Shared.CombatMode;
return false;
}
- if (item.Size > GetMaxItemSize((uid, storageComp)))
+ if (!_stackQuery.TryGetComponent(insertEnt, out var stack) || !HasSpaceInStacks(uid, stack.StackTypeId))
{
- reason = "comp-storage-too-big";
- return false;
- }
+ if (item.Size > GetMaxItemSize((uid, storageComp)))
+ {
+ reason = "comp-storage-too-big";
+ return false;
+ }
- if (TryComp<StorageComponent>(insertEnt, out var insertStorage)
- && GetMaxItemSize((insertEnt, insertStorage)) >= GetMaxItemSize((uid, storageComp)))
- {
- reason = "comp-storage-too-big";
- return false;
- }
+ if (TryComp<StorageComponent>(insertEnt, out var insertStorage)
+ && GetMaxItemSize((insertEnt, insertStorage)) >= GetMaxItemSize((uid, storageComp)))
+ {
+ reason = "comp-storage-too-big";
+ return false;
+ }
- if (storageComp.MaxSlots != null)
- {
- if (storageComp.Container.ContainedEntities.Count >= storageComp.MaxSlots)
+ if (storageComp.MaxSlots != null)
+ {
+ if (storageComp.Container.ContainedEntities.Count >= storageComp.MaxSlots)
+ {
+ reason = "comp-storage-insufficient-capacity";
+ return false;
+ }
+ }
+ else if (SharedItemSystem.GetItemSizeWeight(item.Size) + GetCumulativeItemSizes(uid, storageComp) > storageComp.MaxTotalWeight)
{
reason = "comp-storage-insufficient-capacity";
return false;
}
}
- else if (SharedItemSystem.GetItemSizeWeight(item.Size) + GetCumulativeItemSizes(uid, storageComp) > storageComp.MaxTotalWeight)
- {
- reason = "comp-storage-insufficient-capacity";
- return false;
- }
reason = null;
return true;
foreach (var ent in storageComp.Container.ContainedEntities)
{
- if (!_stackQuery.TryGetComponent(ent, out var containedStack) || !insertStack.StackTypeId.Equals(containedStack.StackTypeId))
+ if (!_stackQuery.TryGetComponent(ent, out var containedStack))
continue;
if (!_stack.TryAdd(insertEnt, ent, insertStack, containedStack))
}
// Still stackable remaining
- if (insertStack.Count > 0)
+ if (toInsertCount > 0)
{
// Try to insert it as a new stack.
if (!CanInsert(uid, insertEnt, out _, storageComp) ||
!storageComp.Container.Insert(insertEnt))
{
+ UpdateUI(uid, storageComp);
+
// If we also didn't do any stack fills above then just end
// otherwise play sound and update UI anyway.
if (toInsertCount == insertStack.Count)
return false;
}
}
+ else
+ {
+ UpdateUI(uid, storageComp);
+ }
}
// Non-stackable but no insertion for reasons.
else if (!storageComp.Container.Insert(insertEnt))
//todo maybe this shouldn't be authoritative over weight? idk.
if (uid.Comp.MaxSlots != null)
{
- return uid.Comp.Container.ContainedEntities.Count < uid.Comp.MaxSlots;
+ return uid.Comp.Container.ContainedEntities.Count < uid.Comp.MaxSlots || HasSpaceInStacks(uid);
+ }
+
+ return GetCumulativeItemSizes(uid, uid.Comp) < uid.Comp.MaxTotalWeight || HasSpaceInStacks(uid);
+ }
+
+ private bool HasSpaceInStacks(Entity<StorageComponent?> uid, string? stackType = null)
+ {
+ if (!Resolve(uid, ref uid.Comp))
+ return false;
+
+ foreach (var contained in uid.Comp.Container.ContainedEntities)
+ {
+ if (!_stackQuery.TryGetComponent(contained, out var stack))
+ continue;
+
+ if (stackType != null && !stack.StackTypeId.Equals(stackType))
+ continue;
+
+ if (_stack.GetAvailableSpace(stack) == 0)
+ continue;
+ return true;
}
- return GetCumulativeItemSizes(uid, uid.Comp) < uid.Comp.MaxTotalWeight;
+ return false;
}
/// <summary>
// if there is no max item size specified, the value used
// is one below the item size of the storage entity, clamped at ItemSize.Tiny
- return (ItemSize) Math.Max((int) item.Size - 1, 1);
+ var sizes = Enum.GetValues<ItemSize>().ToList();
+ var currentSizeIndex = sizes.IndexOf(item.Size);
+ return sizes[Math.Max(currentSizeIndex - 1, 0)];
}
public FixedPoint2 GetStorageFillPercentage(Entity<StorageComponent?> uid)
name: death squad backpack
description: Holds the kit of CentComm's most feared agents.
components:
+ - type: Storage
+ maxTotalWeight: 56
- type: StorageFill
contents:
- id: BoxSurvivalEngineering
- id: BoxSurvivalSecurity
- id: Flash
- id: MagazinePistol
-
+
- type: entity
noSpawn: true
parent: ClothingBackpackDuffelSecurity
components:
- type: StorageFill
contents:
- - id: BoxSurvivalBrigmedic
- id: Flash
- type: entity
- id: BoxSurvivalSecurity
- id: Flash
- id: MagazinePistol
-
+
- type: entity
noSpawn: true
parent: ClothingBackpackSatchelSecurity
components:
- type: StorageFill
contents:
- - id: BoxSurvivalBrigmedic
- id: Flash
- type: entity
- type: StorageFill
contents:
- id: MagazinePistolCaselessRifle
- amount: 6
+ amount: 4
- type: entity
name: box of .25 caseless (practice) magazines
- type: StorageFill
contents:
- id: MagazinePistolCaselessRiflePractice
- amount: 6
+ amount: 4
- type: entity
name: box of .25 caseless (rubber) magazines
- type: StorageFill
contents:
- id: MagazineCaselessRifleRubber
- amount: 6
+ amount: 4
# LightRifle
- type: entity
- type: StorageFill
contents:
- id: MagazineLightRifle
- amount: 6
+ amount: 4
- type: entity
name: box of .30 rifle (practice) magazines
- type: StorageFill
contents:
- id: MagazineLightRiflePractice
- amount: 6
+ amount: 4
- type: entity
name: box of .30 rifle (rubber) magazines
- type: StorageFill
contents:
- id: MagazineLightRifleRubber
- amount: 6
+ amount: 4
- type: entity
name: box of Vector magazines
- type: StorageFill
contents:
- id: MagazinePistol
- amount: 6
+ amount: 4
- type: entity
name: box of pistol .35 auto (practice) magazines
- type: StorageFill
contents:
- id: MagazinePistolPractice
- amount: 6
+ amount: 4
- type: entity
name: box of pistol .35 auto (rubber) magazines
- type: StorageFill
contents:
- id: MagazinePistolRubber
- amount: 6
+ amount: 4
- type: entity
name: box of machine pistol .35 auto magazines
- type: StorageFill
contents:
- id: MagazinePistolHighCapacity
- amount: 6
+ amount: 4
- type: entity
name: box of machine pistol .35 auto (practice) magazines
- type: StorageFill
contents:
- id: MagazinePistolHighCapacityPractice
- amount: 6
+ amount: 4
- type: entity
name: box of machine pistol .35 auto (rubber) magazines
- type: StorageFill
contents:
- id: MagazinePistolHighCapacityRubber
- amount: 6
+ amount: 4
- type: entity
- type: StorageFill
contents:
- id: MagazineShotgun
- amount: 6
+ amount: 4
- type: entity
name: box of (.50 beanbag) ammo drums
- type: StorageFill
contents:
- id: MagazineShotgunBeanbag
- amount: 6
+ amount: 4
- type: entity
name: box of (.50 slug) ammo drums
- type: StorageFill
contents:
- id: MagazineShotgunSlug
- amount: 6
+ amount: 4
- type: entity
name: box of (.50 incendiary) ammo drums
- type: StorageFill
contents:
- id: MagazineShotgunIncendiary
- amount: 6
+ amount: 4
# base BallisticAmmoProvider dispensers
- type: entity
- type: StorageFill
contents:
- id: MagazineRifle
- amount: 6
+ amount: 4
- type: entity
name: box of .20 rifle (practice) magazines
- type: StorageFill
contents:
- id: MagazineRiflePractice
- amount: 6
+ amount: 4
- type: entity
name: box of .20 rifle (rubber) magazines
- type: StorageFill
contents:
- id: MagazineRifleRubber
- amount: 6
+ amount: 4
- state: internals
- state: emergencytank
-- type: entity
- name: survival box
- parent: BoxCardboard
- id: BoxSurvivalBrigmedic
- description: It's a box with basic internals inside.
- suffix: MedSec
- components:
- - type: StorageFill
- contents:
- - id: ClothingMaskBreathMedicalSecurity
- - id: EmergencyOxygenTankFilled
- - id: SpaceMedipen
- - id: EmergencyMedipen
- - id: EmergencyMedipen
- - id: FoodTinMRE
- - type: Sprite
- layers:
- - state: internals
- - state: emergencytank
-
- type: entity
name: survival box
parent: BoxCardboard
- type: StorageFill
contents:
- id: Mousetrap
- amount: 6
+ amount: 4
- type: Sprite
layers:
- state: box
- type: StorageFill
contents:
- id: PassengerPDA
- amount: 6
+ amount: 4
- type: Sprite
layers:
- state: box
- type: StorageFill
contents:
- id: PassengerIDCard
- amount: 6
+ amount: 4
- type: Sprite
layers:
- state: box
- type: StorageFill
contents:
- id: ClothingHeadsetGrey
- amount: 6
+ amount: 4
- type: Sprite
layers:
- state: box
- type: entity
- name: hatsune miku day box
- parent: BoxCardboard
+ name: hatsune miku day bag
+ parent: ClothingBackpackDuffel
id: BoxPerformer
description: Happy Hatsune Miku Day!
components:
- - type: Storage
- maxItemSize: Normal
- whitelist:
- components:
- - Clothing
- - Food
- type: StorageFill
contents:
- id: ClothingShoesBootsPerformer
- type: StorageFill
contents:
- id: EncryptionKeyCommon
- amount: 6
+ amount: 4
- type: Sprite
layers:
- state: box
- type: StorageFill
contents:
- id: EncryptionKeyCargo
- amount: 6
+ amount: 4
- type: entity
name: engineering encryption key box
- type: StorageFill
contents:
- id: EncryptionKeyEngineering
- amount: 6
+ amount: 4
- type: entity
name: med-sci encryption key box
- type: StorageFill
contents:
- id: EncryptionKeyMedicalScience
- amount: 6
+ amount: 4
- type: entity
name: medical encryption key box
- type: StorageFill
contents:
- id: EncryptionKeyMedical
- amount: 6
+ amount: 4
- type: entity
name: robotech encryption key box
- type: StorageFill
contents:
- id: EncryptionKeyRobo
- amount: 6
+ amount: 4
- type: entity
name: science encryption key box
- type: StorageFill
contents:
- id: EncryptionKeyScience
- amount: 6
+ amount: 4
- type: entity
name: security encryption key box
- type: StorageFill
contents:
- id: EncryptionKeySecurity
- amount: 6
+ amount: 4
- type: entity
name: service encryption key box
- type: StorageFill
contents:
- id: EncryptionKeyService
- amount: 6
+ amount: 4
- type: entity
name: syndicate encryption key box
- type: StorageFill
contents:
- id: PillCanister
- amount: 6
+ amount: 4
- type: Sprite
layers:
- state: box
- type: StorageFill
contents:
- id: ClothingMaskSterile
- amount: 6
+ amount: 4
- type: Sprite
layers:
- state: box
- type: StorageFill
contents:
- id: BodyBag_Folded
- amount: 5
+ amount: 4
- type: Sprite
layers:
- state: box
- type: StorageFill
contents:
- id: Handcuffs
- amount: 6
+ amount: 4
- type: Sprite
layers:
- state: box_security
suffix: Filled
components:
- type: Item
- size: Large
+ size: Ginormous
- type: Storage
maxSlots: 8
+ maxItemSize: Normal
- type: StorageFill
contents:
- id: ExGrenade
suffix: SniperBundle
components:
- type: Item
- size: Huge
+ size: Ginormous
- type: Storage
- maxItemSize: Large
+ maxItemSize: Huge
- type: StorageFill
contents:
- id: WeaponSniperHristov
components:
- type: StorageFill
contents:
- - id: HandheldHealthAnalyzer
- id: Brutepack
- amount: 2
- id: Ointment
- amount: 2
- id: Gauze
- id: PillCanisterTricordrazine
# see https://github.com/tgstation/blob/master/code/game/objects/items/storage/firstaid.dm for example contents
components:
- type: StorageFill
contents:
- - id: RegenerativeMesh
- amount: 2
- id: Ointment
amount: 2
- - id: SyringeSigynate
- id: PillCanisterKelotane
- id: PillCanisterDermaline
components:
- type: StorageFill
contents:
- - id: MedicatedSuture
- id: Brutepack
- id: Gauze
- - id: Bloodpack
- - id: SyringeTranexamicAcid
- id: PillCanisterIron
- id: PillCanisterCopper
- - id: PillCanisterBicaridine
- type: entity
id: MedkitToxinFilled
components:
- type: StorageFill
contents:
- - id: GeigerCounter
- id: SyringePhalanximine
- id: RadAutoInjector
- amount: 1
- id: EmergencyMedipen
- amount: 1
- id: PillCanisterHyronalin
- type: entity
- type: StorageFill
contents:
- id: MedicatedSuture
- amount: 2
- id: RegenerativeMesh
- amount: 2
- id: Bloodpack
amount: 2
components:
- type: StorageFill
contents:
- - id: HandheldHealthAnalyzer
- id: MedicatedSuture
- id: RegenerativeMesh
- id: SyringeEphedrine
- id: BruteAutoInjector
- id: BurnAutoInjector
- - id: EmergencyMedipen
- type: entity
id: StimkitFilled
sprite: Clothing/Back/Backpacks/backpack.rsi
state: icon
- type: Item
- size: Large
+ size: Huge
- type: Clothing
quickEquip: false
slots:
- back
- type: Storage
- maxItemSize: Large
+ maxItemSize: Huge
maxTotalWeight: 28
- type: ContainerContainer
containers:
- type: Item
size: Ginormous
- type: Storage
- maxItemSize: Large
+ maxItemSize: Huge
maxTotalWeight: 56 #14 normal-sized items.
- type: entity
- type: Sprite
sprite: Clothing/Back/Duffels/duffel.rsi
- type: Storage
- maxItemSize: Large
+ maxItemSize: Huge
maxTotalWeight: 40
- type: ClothingSpeedModifier
walkModifier: 1
- type: Item
size: Ginormous
- type: Storage
- maxItemSize: Large
+ maxItemSize: Huge
maxTotalWeight: 56 #14 normal-sized items.
- type: ClothingSpeedModifier
sprintModifier: 1 # makes its stats identical to other variants of bag of holding
description: A duffel bag containing a variety of biological containment equipment.
components:
- type: Storage
- maxItemSize: Large
+ maxItemSize: Huge
maxTotalWeight: 40
- type: ClothingSpeedModifier
walkModifier: 1
- type: Item
size: Ginormous
- type: Storage
- maxItemSize: Large
+ maxItemSize: Huge
maxTotalWeight: 56 #14 normal-sized items.
sprite: Clothing/Back/Backpacks/waterbackpack.rsi
state: icon
- type: Item
- size: Huge
+ size: Ginormous
- type: Clothing
slots: BACK
sprite: Clothing/Back/Backpacks/waterbackpack.rsi
maxSlots: 7
maxItemSize: Normal
- type: Item
- size: Huge
+ size: Ginormous
- type: ContainerContainer
containers:
storagebase: !type:Container
- type: Clothing
sprite: Clothing/Belt/bandolier.rsi
- type: Item
- size: Large
+ size: Huge
- type: Storage
whitelist:
tags:
- type: Clothing
sprite: Clothing/Belt/syndieholster.rsi
- type: Item
- size: Large
+ size: Huge
- type: Storage
whitelist:
components:
- type: Clothing
sprite: Clothing/Belt/militarywebbingmed.rsi
- type: Item
- size: Large
+ size: Huge
- type: entity
parent: ClothingBeltBase
id: ClothingOuterBaseLarge
components:
- type: Item
- size: Large
+ size: Huge
- type: Clothing
slots:
- outerClothing
walkModifier: 0.4
sprintModifier: 0.6
- type: Item
- size: Huge
+ size: Ginormous
- type: Armor
modifiers:
coefficients:
walkModifier: 0.8
sprintModifier: 0.8
- type: Item
- size: Large
+ size: Huge
- type: entity
parent: ClothingOuterBase
id: ClothingOuterBaseMedium
components:
- type: Item
- size: Large
+ size: Huge
- type: Clothing
slots:
- outerClothing
- type: Sprite
sprite: Clothing/OuterClothing/Hardsuits/syndicate.rsi
- type: Item
- size: Large
+ size: Huge
- type: Clothing
sprite: Clothing/OuterClothing/Hardsuits/syndicate.rsi
- type: PressureProtection
graph: SupplyBot
node: bot
- type: Storage
- maxItemSize: Large
+ maxItemSize: Huge
maxTotalWeight: 40
- type: UserInterface
interfaces:
- type: Item\r
sprite: Objects/Consumable/Smokeables/Cigarettes/Cartons/green.rsi\r
size: Normal\r
+ - type: Storage\r
+ maxSlots: 6\r
- type: StorageFill\r
contents:\r
- id: CigPackGreen\r
layers:
- state: icon
- type: Item
- size: Huge
+ size: Ginormous
- type: StaticPrice
price: 0
state: box
- type: Storage
maxSlots: 7
- maxTotalWeight: 7
+ maxItemSize: Tiny
- type: Item
sprite: Objects/Fun/crayons.rsi
size: Small
sprite: Objects/Storage/boxes.rsi
- type: Item
sprite: Objects/Storage/boxes.rsi
- size: Normal
+ size: Large
- type: Storage
- maxTotalWeight: 12
+ maxTotalWeight: 8
+ maxItemSize: Small
- type: ContainerContainer
containers:
storagebase: !type:Container
description: Useful for carrying items in your hands.
components:
- type: Item
- size: Large
+ size: Ginormous
- type: Storage
- maxSlots: 4
- maxTotalWeight: 16
+ maxTotalWeight: 24
- type: Tag
tags:
- Briefcase
description: Useful for carrying items in your hands.
components:
- type: Item
- size: Large
+ size: Huge
- type: Storage
maxSlots: 6
maxTotalWeight: 24
map: [ "enabled" ]
- type: Item
sprite: Objects/Misc/fire_extinguisher.rsi
- size: Small
+ size: Normal
- type: SolutionContainerManager
solutions:
spray:
id: Zipties
parent: Handcuffs
components:
- - type: Item
- size: Tiny
- type: Handcuff
breakoutTime: 20 # halfway between improvised cablecuffs and metal ones
cuffedRSI: Objects/Misc/cablecuffs.rsi # cablecuffs will look fine
abstract: true
components:
- type: Item
- size: Tiny
+ size: Small
- type: Tag
tags:
- Trash
- type: Item
sprite: Objects/Specific/Medical/implanter.rsi
heldPrefix: 0
+ size: Small
- type: Appearance
- type: GenericVisualizer
visuals:
components:
- type: Item
sprite: Objects/Specific/Medical/syndi_implanter.rsi
- size: Tiny
- type: Sprite
sprite: Objects/Specific/Medical/syndi_implanter.rsi
state: implanter1
id: MonkeyCubeBox
description: Drymate brand monkey cubes. Just add water!
components:
- - type: Storage
- whitelist:
- tags:
- - MonkeyCube
- type: StorageFill
contents:
- id: MonkeyCubeWrapped
id: MonkeyCubeWrapped
description: Unwrap this to get a monkey cube.
components:
+ - type: Item
+ size: Tiny
- type: SpawnItemsOnUse
items:
- id: MonkeyCube
- type: Sprite
sprite: Objects/Misc/monkeycube.rsi
state: wrapper
+ - type: Item
+ size: Tiny
- type: Tag
tags:
- MonkeyCube
components:
- Hands # no use giving a mouse a storage implant, but a monkey is another story...
- type: Item
- size: Huge
+ size: Ginormous
- type: Storage
maxSlots: 4
maxItemSize: Small
description: A flatpack used for constructing an antimatter engine reactor. Use a multitool to unpack it.
components:
- type: Item
- size: Small
+ size: Normal
sprite: Objects/Power/AME/ame_part.rsi
- type: Sprite
sprite: Objects/Power/AME/ame_part.rsi
description: Drains immense amounts of electricity from the grid.
components:
- type: Item
- size: Large
+ size: Huge
- type: NodeContainer
examinable: true
nodes:
name: solar assembly part
components:
- type: Item
- size: Small
+ size: Normal
- type: Sprite
sprite: Objects/Power/solar_parts.rsi
state: solar_assembly_parts
state: riot-icon
- type: Item
sprite: Objects/Weapons/Melee/shields.rsi
- size: Huge
+ size: Ginormous
heldPrefix: riot
- type: Blocking
passiveBlockModifier:
description: A forensic pad for collecting fingerprints or fibers.
components:
- type: Item
- size: Tiny
+ size: Small
- type: ForensicPad
- type: Sprite
sprite: Objects/Misc/bureaucracy.rsi
- key: enum.StorageUiKey.Key
type: StorageBoundUserInterface
- type: Storage
+ maxItemSize: Normal
+ maxTotalWeight: 40
- type: TileFrictionModifier
modifier: 0.4 # makes it slide
slots:
- belt
- type: Item
- size: Huge
+ size: Ginormous
- type: Storage
maxSlots: 15
quickInsert: true
abstract: true
components:
- type: Item
- size: Huge
+ size: Ginormous
- type: entity
parent: BaseRipleyPart
abstract: true
components:
- type: Item
- size: Huge
+ size: Ginormous
- type: entity
parent: BaseHonkerPart
abstract: true
components:
- type: Item
- size: Large
+ size: Huge
- type: entity
parent: BaseHamtrPart
sprite: Objects/Specific/Mech/mecha_equipment.rsi
- type: Item
sprite: Objects/Specific/Mech/mecha_equipment.rsi
- size: Huge
+ size: Ginormous
- type: MechEquipment
- type: GuideHelp
guides:
map: ["enum.SolutionContainerLayers.Fill"]
- type: Item
sprite: Objects/Specific/Medical/medipen.rsi
- size: Small
- type: SolutionContainerManager
solutions:
pen:
map: ["enum.SolutionContainerLayers.Fill"]
- type: Item
sprite: Objects/Specific/Medical/medipen.rsi
- size: Tiny
- type: SolutionContainerManager
solutions:
pen:
sprite: Objects/Specific/Medical/firstaidkits.rsi
state: firstaid
- type: Storage
- maxTotalWeight: 15
+ maxTotalWeight: 8
+ maxItemSize: Small
- type: Item
- size: Normal
+ size: Large
sprite: Objects/Specific/Medical/firstaidkits.rsi
heldPrefix: firstaid
- type: Tag
slots:
- belt
- type: Item
- size: Huge
+ size: Ginormous
- type: Storage
- maxSlots: 5
+ maxSlots: 10
maxItemSize: Normal
quickInsert: true
areaInsert: true
- type: Item
sprite: Objects/Misc/flare.rsi
heldPrefix: unlit
+ size: Tiny
- type: Appearance
- type: PointLight
enabled: false
state: icon
- type: Item
sprite: Objects/Tanks/Jetpacks/blue.rsi
- size: Large
+ size: Huge
- type: UserInterface
interfaces:
- key: enum.SharedGasTankUiKey.Key
maxItemSize: Normal
maxTotalWeight: 14
- type: Item
- size: Huge
+ size: Ginormous
- type: ItemCooldown
- type: MeleeWeapon
damage:
- type: Item
sprite: Objects/Tools/Toolboxes/toolbox_syn.rsi
- type: Storage
- maxItemSize: Large
+ maxItemSize: Huge
maxTotalWeight: 28
- type: MeleeWeapon
damage:
components:
- type: Sprite
- type: Item
- size: Large
+ size: Huge
- type: Clothing
sprite: Objects/Weapons/Guns/Battery/laser_retro.rsi
quickEquip: false
components:
- type: Sprite
- type: Item
- size: Huge
+ size: Ginormous
- type: Gun
fireRate: 20
selectedMode: FullAuto
components:
- type: Sprite
- type: Item
- size: Large
+ size: Huge
- type: Clothing
sprite: Objects/Weapons/Guns/LMGs/l6.rsi
quickEquip: false
slots:
- Back
- type: Item
- size: Large
+ size: Huge
- type: StaticPrice
price: 500
- type: ContainerContainer
components:
- type: Sprite
- type: Item
- size: Large
+ size: Huge
- type: Clothing
sprite: Objects/Weapons/Guns/Rifles/ak.rsi
quickEquip: false
components:
- type: Sprite
- type: Item
- size: Normal
+ size: Huge
- type: Clothing
sprite: Objects/Weapons/Guns/SMGs/atreides.rsi
quickEquip: false
map: ["enum.GunVisualLayers.Base"]
- state: mag-0
map: ["enum.GunVisualLayers.Mag"]
+ - type: Item
+ size: Large
- type: Clothing
sprite: Objects/Weapons/Guns/Shotguns/bulldog.rsi
quickEquip: false
- state: base
map: ["enum.GunVisualLayers.Base"]
- type: Item
- size: Large
+ size: Huge
- type: Clothing
sprite: Objects/Weapons/Guns/Snipers/bolt_gun_wood.rsi
quickEquip: false
map: [ "tank" ]
visible: false
- type: Item
- size: Large
+ size: Huge
- type: Clothing
quickEquip: false
slots:
suffix: Admeme
components:
- type: Item
- size: Huge
+ size: Ginormous
- type: Storage
maxSlots: 100
- maxItemSize: Huge
+ maxItemSize: Ginormous
maxTotalWeight: 1600
whitelist:
tags: [] #dodging a test fail like the IRS
Slash: 12
Structural: 30
- type: Item
- size: Huge
+ size: Ginormous
- type: Clothing
sprite: Objects/Weapons/Melee/cult_halberd.rsi
quickEquip: false
Slash: 10.5
Structural: 60
- type: Item
- size: Huge
+ size: Ginormous
- type: Clothing
sprite: Objects/Weapons/Melee/fireaxe.rsi
quickEquip: false
path: /Audio/Weapons/bladeslice.ogg
- type: Sprite
- type: Item
+ size: Small
- type: Tool
qualities:
- Slicing
sprite: Objects/Weapons/Melee/kitchen_knife.rsi
state: icon
- type: Item
- size: Small
sprite: Objects/Weapons/Melee/kitchen_knife.rsi
- type: GuideHelp
guides:
types:
Slash: 10
- type: Item
- size: Small
+ size: Normal
sprite: Objects/Weapons/Melee/cleaver.rsi
- type: GuideHelp
guides:
- Knife
- type: Sprite
sprite: Objects/Weapons/Melee/combat_knife.rsi
- size: Tiny
state: icon
- type: MeleeWeapon
wideAnimationRotation: -135
types:
Slash: 10
- type: Item
- size: Small
sprite: Objects/Weapons/Melee/combat_knife.rsi
- type: DisarmMalus
malus: 0.225
components:
- type: Sprite
sprite: Objects/Weapons/Melee/survival_knife.rsi
- size: Tiny
state: icon
- type: Item
- size: Small
sprite: Objects/Weapons/Melee/survival_knife.rsi
- type: entity
components:
- type: Sprite
sprite: Objects/Weapons/Melee/kukri_knife.rsi
- size: Tiny
state: icon
- type: MeleeWeapon
attackRate: 1.0
types:
Slash: 15
- type: Item
- size: Small
sprite: Objects/Weapons/Melee/kukri_knife.rsi
- type: entity
node: icon
- type: Sprite
sprite: Objects/Weapons/Melee/shiv.rsi
- size: Tiny
state: icon
- type: MeleeWeapon
attackRate: 1.5
types:
Slash: 5.5
- type: Item
- size: Tiny #as much as a regular glass shard
sprite: Objects/Weapons/Melee/shiv.rsi
- type: DisarmMalus
malus: 0.225
- type: Construction
graph: ReinforcedShiv
node: icon
- size: Tiny
- state: icon
- type: MeleeWeapon
attackRate: 1.5
damage:
Slash: 2.5
- type: GunRequiresWield
- type: Item
- size: Huge
+ size: Ginormous
- type: DisarmMalus
- type: Tool
qualities:
wideAnimationRotation: -135
attackRate: 1.25
- type: Item
- size: Huge
+ size: Ginormous
types:
Piercing: 15
- type: Item
- size: Huge
+ size: Ginormous
- type: Clothing
quickEquip: false
slots:
- type: ItemCooldown
- type: Item
heldPrefix: off
- size: Large
+ size: Huge
- type: Clothing
sprite: Objects/Weapons/Melee/stunprod.rsi
quickEquip: false
sprite: Objects/Tools/Toolboxes/toolbox_red.rsi
state: icon
- type: Item
- size: Huge
+ size: Ginormous
sprite: Objects/Tools/Toolboxes/toolbox_red.rsi
- type: MeleeWeapon
wideAnimationRotation: -135
map: ["foldedLayer"]
visible: false
- type: Item
- size: Large
+ size: Huge
- type: Appearance
- type: MeleeWeapon
damage: