Chest pouch bag and new storage belts. (#21233)

Adds a new type of bag and two new storage belts. Also fixes being
unable to flip belts.
<img width="89" height="111" alt="image"
src="https://github.com/user-attachments/assets/6b1ec387-2f8d-4f70-a8f1-ab1d8e4b5ed8"
/>
<img width="88" height="87" alt="image"
src="https://github.com/user-attachments/assets/35a04494-7d83-4804-b1b8-9ac1be538e34"
/>
<img width="75" height="95" alt="image"
src="https://github.com/user-attachments/assets/7d1e97e4-f1e8-4e0e-8d4f-6ec0cb8e1253"
/>
<img width="89" height="86" alt="image"
src="https://github.com/user-attachments/assets/402451e7-42fc-4ed1-a73f-23dfafc0a360"
/>



### Asset Licenses
The following assets that **have not** been created by myself are
included in this PR:

Sprites are by RatFromTheJungle, from this PR
https://github.com/NovaSector/NovaSector/pull/4651

---------

Signed-off-by: Greenjoe12345 <33647525+Greenjoe12345@users.noreply.github.com>
This commit is contained in:
Greenjoe12345
2025-09-06 10:36:14 +00:00
committed by GitHub
parent 69e331e64a
commit 5e0866aa82
10 changed files with 116 additions and 10 deletions
+1
View File
@@ -7,6 +7,7 @@
#define OUTFIT_MESSENGERBAG 6
#define OUTFIT_RUCKSACK 7 // the bay one
#define OUTFIT_POCKETBOOK 8 // the leather bag but smaller
#define OUTFIT_CHESTPOUCH 9
#define OUTFIT_JOBSPECIFIC 1
#define OUTFIT_GENERIC 2
+1 -1
View File
@@ -92,7 +92,7 @@ GLOBAL_LIST_EMPTY(chargen_disabilities_list)
GLOBAL_LIST_INIT(valid_player_genders, list(MALE, FEMALE, NEUTER, PLURAL))
/// List of possible backpack shapes for the loadout.
GLOBAL_LIST_INIT(backbaglist, list("Nothing", "Backpack", "Satchel", "Leather Satchel", "Duffel Bag", "Messenger Bag", "Rucksack", "Pocketbook"))
GLOBAL_LIST_INIT(backbaglist, list("Nothing", "Backpack", "Satchel", "Leather Satchel", "Duffel Bag", "Messenger Bag", "Rucksack", "Pocketbook", "Chest Pouch"))
/// List of possible backpack styles for the loadout.
GLOBAL_LIST_INIT(backbagstyles, list("Job-specific", "Generic", "Faction-specific"))
/// List of possible backpack colors for the loadout.
+10
View File
@@ -75,6 +75,8 @@
var/rucksack_faction
var/pocketbook = /obj/item/storage/backpack/satchel/pocketbook
var/pocketbook_faction
var/chestpouch = /obj/item/storage/backpack/chestpouch
var/chestpouch_faction
var/allow_pda_choice = FALSE
var/tab_pda = /obj/item/modular_computer/handheld/pda/civilian
@@ -235,6 +237,14 @@
back = /obj/item/storage/backpack/satchel/pocketbook
if (OUTFIT_FACTIONSPECIFIC)
back = pocketbook_faction ? pocketbook_faction : pocketbook
if (OUTFIT_CHESTPOUCH)
switch(H.backbag_style)
if (OUTFIT_JOBSPECIFIC)
back = chestpouch
if (OUTFIT_GENERIC)
back = /obj/item/storage/backpack/chestpouch
if (OUTFIT_FACTIONSPECIFIC)
back = chestpouch_faction ? chestpouch_faction : chestpouch
else
// Department backpack
back = backpack
@@ -907,6 +907,20 @@
icon_state = "rucksack_tan"
item_state = "rucksack_tan"
/*
* Chest pouch
*/
/obj/item/storage/backpack/chestpouch
name = "chest pouch"
desc = "A small pouch that straps across your chest."
icon = 'icons/obj/storage/chestpouch.dmi'
icon_state = "chestpouch"
item_state = "chestpouch"
w_class = WEIGHT_CLASS_HUGE // to avoid recursive backpacks
max_w_class = WEIGHT_CLASS_NORMAL
max_storage_space = DEFAULT_LARGEBOX_STORAGE
// Vaurca stuff.
/obj/item/storage/backpack/typec
@@ -70,22 +70,18 @@
if(("[initial(icon_state)]_flip") in icon_states(icon)) // Check for whether it has a flipped icon. Prevents invisible sprites.
verbs += /obj/item/storage/belt/proc/flipbelt
/obj/item/storage/belt/proc/flipbelt(mob/user, var/self = TRUE)
/obj/item/storage/belt/proc/flipbelt()
set category = "Object.Equipped"
set name = "Flip Belt"
set src in usr
if(self)
if(use_check_and_message(user))
return
else
if(use_check_and_message(user, self ? USE_ALLOW_NON_ADJACENT : 0))
return
if(use_check_and_message(usr))
return
flipped = !flipped
icon_state = "[initial(icon_state)][flipped ? "_flip" : ""]"
item_state = "[initial(item_state)][flipped ? "_flip" : ""]"
to_chat(usr, SPAN_NOTICE("You change \the [src] to be [src.flipped ? "behind" : "in front of"] you."))
to_chat(usr, SPAN_NOTICE("You adjust \the [src] [src.flipped ? "to the other side" : "back"]."))
update_clothing_icon()
/obj/item/storage/belt/utility
@@ -664,10 +660,24 @@
icon_state = "fannypack"
item_state = "fannypack"
max_w_class = WEIGHT_CLASS_SMALL
w_class = WEIGHT_CLASS_HUGE
contained_sprite = TRUE
storage_slots = null
max_storage_space = 8
/obj/item/storage/belt/fannypack/waistpack
name = "waist pack"
desc = "A small, waist-mounted pack for... well, storing stuff!"
icon_state = "waistpack"
item_state = "waistpack"
/obj/item/storage/belt/fannypack/pouchbelt
name = "belt with pouches"
desc = "A belt coated from front to back in pouches."
icon_state = "pouchbelt"
item_state = "pouchbelt"
max_storage_space = 10
/obj/item/storage/belt/fannypack/recolorable
icon_state = "fannypack_colorable"
item_state = "fannypack_colorable"
@@ -40,3 +40,15 @@
path = /obj/item/storage/belt/security/vestbelt
allowed_roles = list("Security Officer", "Head of Security", "Warden", "Security Cadet", "Investigator", "Security Personnel")
flags = null
/datum/gear/belt/waistpack
display_name = "waist pack"
description = "A small, waist-mounted pack for... well, storing stuff!"
cost = 2
path = /obj/item/storage/belt/fannypack/waistpack
/datum/gear/belt/pouchbelt
display_name = "belt with pouches"
description = "A belt coated from front to back in pouches."
cost = 2
path = /obj/item/storage/belt/fannypack/pouchbelt
+1 -1
View File
@@ -495,7 +495,7 @@ GLOBAL_LIST_EMPTY_TYPED(preferences_datums, /datum/preferences)
else
all_underwear -= underwear_category_name
if(backbag > OUTFIT_POCKETBOOK || backbag < OUTFIT_NOTHING)
if(backbag > OUTFIT_CHESTPOUCH || backbag < OUTFIT_NOTHING)
backbag = OUTFIT_NOTHING //Same as above
character.backbag = backbag
character.backbag_style = backbag_style
+59
View File
@@ -0,0 +1,59 @@
################################
# Example Changelog File
#
# Note: This file, and files beginning with ".", and files that don't end in ".yml" will not be read. If you change this file, you will look really dumb.
#
# Your changelog will be merged with a master changelog. (New stuff added only, and only on the date entry for the day it was merged.)
# When it is, any changes listed below will disappear.
#
# Valid Prefixes:
# bugfix
# - (fixes bugs)
# wip
# - (work in progress)
# qol
# - (quality of life)
# soundadd
# - (adds a sound)
# sounddel
# - (removes a sound)
# rscadd
# - (adds a feature)
# rscdel
# - (removes a feature)
# imageadd
# - (adds an image or sprite)
# imagedel
# - (removes an image or sprite)
# spellcheck
# - (fixes spelling or grammar)
# experiment
# - (experimental change)
# balance
# - (balance changes)
# code_imp
# - (misc internal code change)
# refactor
# - (refactors code)
# config
# - (makes a change to the config files)
# admin
# - (makes changes to administrator tools)
# server
# - (miscellaneous changes to server)
#################################
# Your name.
author: Greenjoe
# Optional: Remove this file after generating master changelog. Useful for PR changelogs that won't get used again.
delete-after: True
# Any changes you've made. See valid prefix list above.
# INDENT WITH TWO SPACES. NOT TABS. SPACES.
# SCREW THIS UP AND IT WON'T WORK.
# Also, this gets changed to [] after reading. Just remove the brackets when you add new shit.
# Please surround your changes in double quotes ("). It works without them, but if you use certain characters it screws up compiling. The quotes will not show up in the changelog.
changes:
- rscadd: "Added a new chest pouch bag and two new varaitions of storage belt. Can be selected in character setup and the loadout."
- bugfix: "Fixed being unable to flip belts."
Binary file not shown.

Before

Width:  |  Height:  |  Size: 771 B

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB