diff --git a/code/__defines/belly_modes_vr.dm b/code/__defines/belly_modes_vr.dm
index bf64819cd4..810f0da00b 100644
--- a/code/__defines/belly_modes_vr.dm
+++ b/code/__defines/belly_modes_vr.dm
@@ -18,6 +18,7 @@
#define DM_FLAG_THICKBELLY 0x8
#define DM_FLAG_AFFECTWORN 0x10
#define DM_FLAG_JAMSENSORS 0x20
+#define DM_FLAG_FORCEPSAY 0x40
//Item related modes
#define IM_HOLD "Hold"
diff --git a/code/datums/roundstats/roundstats.dm b/code/datums/roundstats/roundstats.dm
index c1453b18af..6a4c3b0993 100644
--- a/code/datums/roundstats/roundstats.dm
+++ b/code/datums/roundstats/roundstats.dm
@@ -21,6 +21,10 @@ GLOBAL_VAR_INIT(items_sold_shift_roundstat, 0)
GLOBAL_VAR_INIT(disposals_flush_shift_roundstat, 0)
GLOBAL_VAR_INIT(rocks_drilled_roundstat, 0)
GLOBAL_VAR_INIT(mech_destroyed_roundstat, 0)
+GLOBAL_VAR_INIT(prey_eaten_roundstat, 0) //VOREStation Edit - Obviously
+GLOBAL_VAR_INIT(prey_absorbed_roundstat, 0) //VOREStation Edit - Obviously
+GLOBAL_VAR_INIT(prey_digested_roundstat, 0) //VOREStation Edit - Obviously
+GLOBAL_VAR_INIT(items_digested_roundstat, 0) //VOREStation Edit - Obviously
/hook/roundend/proc/RoundTrivia()//bazinga
var/list/valid_stats_list = list() //This is to be populated with the good shit
@@ -50,6 +54,17 @@ GLOBAL_VAR_INIT(mech_destroyed_roundstat, 0)
else if(GLOB.disposals_flush_shift_roundstat > 40)
valid_stats_list.Add("The disposal system flushed a whole [GLOB.disposals_flush_shift_roundstat] times for this shift. We should really invest in waste treatement.")
+ //VOREStation Add Start - Vore stats lets gooooo
+ if(GLOB.prey_eaten_roundstat > 0)
+ valid_stats_list.Add("A total of [GLOB.prey_eaten_roundstat] individuals were eaten today!")
+ if(GLOB.prey_digested_roundstat > 0)
+ valid_stats_list.Add("A total of [GLOB.prey_digested_roundstat] individuals were digested today!")
+ if(GLOB.prey_absorbed_roundstat > 0)
+ valid_stats_list.Add("A total of [GLOB.prey_absorbed_roundstat] individuals were absorbed today!")
+ if(GLOB.items_digested_roundstat > 0)
+ valid_stats_list.Add("A total of [GLOB.items_digested_roundstat] items were digested today!")
+ //VOREStation Add End
+
if(LAZYLEN(valid_stats_list))
to_world("Shift trivia!")
diff --git a/code/game/machinery/cryopod.dm b/code/game/machinery/cryopod.dm
index be8639e4bc..f948459970 100644
--- a/code/game/machinery/cryopod.dm
+++ b/code/game/machinery/cryopod.dm
@@ -522,9 +522,18 @@
control_computer.frozen_crew += "[to_despawn.real_name], [to_despawn.mind.role_alt_title] - [stationtime2text()]"
control_computer._admin_logs += "[key_name(to_despawn)] ([to_despawn.mind.role_alt_title]) at [stationtime2text()]"
log_and_message_admins("[key_name(to_despawn)] ([to_despawn.mind.role_alt_title]) entered cryostorage.")
+
+ //VOREStation Edit Start
+ var/depart_announce = TRUE
- announce.autosay("[to_despawn.real_name], [to_despawn.mind.role_alt_title], [on_store_message]", "[on_store_name]", announce_channel, using_map.get_map_levels(z, TRUE, om_range = DEFAULT_OVERMAP_RANGE))
- visible_message("\The [initial(name)] [on_store_visible_message_1] [to_despawn.real_name] [on_store_visible_message_2]", 3)
+ if(istype(to_despawn, /mob/living/dominated_brain))
+ depart_announce = FALSE
+
+ if(depart_announce)
+ announce.autosay("[to_despawn.real_name], [to_despawn.mind.role_alt_title], [on_store_message]", "[on_store_name]", announce_channel, using_map.get_map_levels(z, TRUE, om_range = DEFAULT_OVERMAP_RANGE))
+ visible_message("\The [initial(name)] [on_store_visible_message_1] [to_despawn.real_name] [on_store_visible_message_2]", 3)
+
+ //VOREStation Edit End
//VOREStation Edit begin: Dont delete mobs-in-mobs
if(to_despawn.client && to_despawn.stat<2)
diff --git a/code/modules/client/preference_setup/loadout/loadout_general.dm b/code/modules/client/preference_setup/loadout/loadout_general.dm
index 615e16bf5d..74a69d46e0 100644
--- a/code/modules/client/preference_setup/loadout/loadout_general.dm
+++ b/code/modules/client/preference_setup/loadout/loadout_general.dm
@@ -140,3 +140,12 @@
display_name = "Cards Against The Galaxy (black deck)"
path = /obj/item/weapon/deck/cah/black
description = "The ever-popular Cards Against The Galaxy word game. Warning: may include traces of broken fourth wall. This is the black deck."
+
+/datum/gear/wizoff
+ display_name = "WizOff"
+ path = /obj/item/weapon/deck/wizoff
+
+/datum/gear/wizoffguide
+ display_name = "WizOff Guide"
+ path = /obj/item/weapon/book/manual/wizzoffguide
+ description = "The guide to playing the ever popular card game: Wiz-Off!"
\ No newline at end of file
diff --git a/code/modules/client/preference_setup/loadout/loadout_uniform_vr.dm b/code/modules/client/preference_setup/loadout/loadout_uniform_vr.dm
index a9184cb979..d2475c896c 100644
--- a/code/modules/client/preference_setup/loadout/loadout_uniform_vr.dm
+++ b/code/modules/client/preference_setup/loadout/loadout_uniform_vr.dm
@@ -241,16 +241,27 @@ Talon jumpsuit
// undersuits
/datum/gear/uniform/undersuit
display_name = "undersuit selection"
- path = /obj/item/clothing/under/undersuit
+ path = /obj/item/clothing/under/undersuit/
/datum/gear/uniform/undersuit/New()
..()
var/list/suits = list()
- var/list/blacklisted_types = list(/obj/item/clothing/under/undersuit/sec, /obj/item/clothing/under/undersuit/sec/hos, /obj/item/clothing/under/undersuit/hazard, /obj/item/clothing/under/undersuit/command, /obj/item/clothing/under/undersuit/centcom)
- for(var/obj/item/clothing/under/undersuit/undersuit_type as anything in typesof(/obj/item/clothing/under/undersuit) - blacklisted_types)
+ var/list/blacklisted_types = list(/obj/item/clothing/under/undersuit/sec,
+ /obj/item/clothing/under/undersuit/sec/hos,
+ /obj/item/clothing/under/undersuit/hazard,
+ /obj/item/clothing/under/undersuit/command,
+ /obj/item/clothing/under/undersuit/centcom)
+ for(var/obj/item/clothing/under/undersuit/undersuit_type as anything in typesof(/obj/item/clothing/under/undersuit))
+ if(undersuit_type in blacklisted_types)
+ continue
suits[initial(undersuit_type.name)] = undersuit_type
gear_tweaks += new/datum/gear_tweak/path(sortAssoc(suits))
+/datum/gear/uniform/undersuit_haz
+ display_name = "undersuit, hazard (Engineering)"
+ allowed_roles = list("Chief Engineer", "Atmospheric Technician", "Engineer")
+ path = /obj/item/clothing/under/undersuit/hazard
+
/datum/gear/uniform/undersuit_sec
display_name = "undersuit, security (Security)"
allowed_roles = list("Head of Security", "Warden", "Detective", "Security Officer")
@@ -264,4 +275,4 @@ Talon jumpsuit
/datum/gear/uniform/undersuit_com
display_name = "undersuit, command (SM/HoP)"
allowed_roles = list("Site Manager", "Head of Personnel")
- path = /obj/item/clothing/under/undersuit/command
\ No newline at end of file
+ path = /obj/item/clothing/under/undersuit/command
diff --git a/code/modules/economy/vending_machines.dm b/code/modules/economy/vending_machines.dm
index 9510f5aeba..2f58e90b6f 100644
--- a/code/modules/economy/vending_machines.dm
+++ b/code/modules/economy/vending_machines.dm
@@ -1231,7 +1231,10 @@
/obj/item/clothing/mask/bandana/red = 5,
/obj/item/clothing/suit/storage/hooded/wintercoat/security = 5,
/obj/item/clothing/accessory/armband = 5,
- /obj/item/clothing/accessory/holster/waist = 5
+ /obj/item/clothing/accessory/holster/armpit = 2, //VOREStation edit - gives some variety of available holsters for those who forgot to bring their own
+ /obj/item/clothing/accessory/holster/waist = 2, //VOREStation edit - But also reduces the number per type, so there's 8 overall rather than like, 20
+ /obj/item/clothing/accessory/holster/hip = 2, //VOREStation edit
+ /obj/item/clothing/accessory/holster/leg = 2 //VOREStation edit
)
req_log_access = access_hop
has_logs = 1
@@ -1636,4 +1639,4 @@
/obj/item/clothing/under/clown/rainbow = 1
)
req_log_access = access_hop
- has_logs = 1
\ No newline at end of file
+ has_logs = 1
diff --git a/code/modules/emotes/emote_mob.dm b/code/modules/emotes/emote_mob.dm
index 7516be2eff..b0b3fce0bb 100644
--- a/code/modules/emotes/emote_mob.dm
+++ b/code/modules/emotes/emote_mob.dm
@@ -27,6 +27,11 @@
if(world.time < next_emote)
to_chat(src, SPAN_WARNING("You cannot use another emote yet."))
return
+ //VOREStation Addition Start
+ if(forced_psay)
+ pme(message)
+ return
+ //VOREStation Addition End
if(act == "help")
if(world.time >= next_emote_refresh)
diff --git a/code/modules/games/wizoff.dm b/code/modules/games/wizoff.dm
index 11cf179735..2f87f15a90 100644
--- a/code/modules/games/wizoff.dm
+++ b/code/modules/games/wizoff.dm
@@ -55,3 +55,49 @@
"U9: Jaunt"
)
+/obj/item/weapon/book/manual/wizzoffguide
+ name = "WizOff Guide"
+ icon = 'icons/obj/playing_cards.dmi'
+ icon_state ="wizoff_guide"
+ item_state = "book16"
+ author = "Donk Co."
+ title = "WizOff Guide"
+ drop_sound = 'sound/items/drop/paper.ogg'
+ pickup_sound = 'sound/items/pickup/paper.ogg'
+
+/obj/item/weapon/book/manual/wizzoffguide/New()
+ ..()
+ dat = {"
+
+
+
+
+
+
+ Wiz-Off Player Guide
+ How to play Wiz-Off!
+ The wizard themed card game
+ Each player draws 5 cards. There are five rounds. Each round,
+ a player selects a card to play, and the winner is selected
+ based on the following rules:
+
+ - Offensive (O) beats Utility (U)!
+ - Defensive (D) beats Offensive (O)!
+ - Utility (U) beats Defensive (D)!
+ - If both players play the same type of spell,
+ the higher number wins!
+
+ The player who wins the most of the 5 rounds wins the game!
+ Now get ready to battle for the fate of the universe: Wiz-Off!
+
+
+
+ "}
\ No newline at end of file
diff --git a/code/modules/mob/living/living_defines_vr.dm b/code/modules/mob/living/living_defines_vr.dm
index 157d07b4a2..0d5607ad74 100644
--- a/code/modules/mob/living/living_defines_vr.dm
+++ b/code/modules/mob/living/living_defines_vr.dm
@@ -1,5 +1,6 @@
/mob
- var/muffled = 0 // Used by muffling belly
+ var/muffled = FALSE // Used by muffling belly
+ var/forced_psay = FALSE // If true will prevent the user from speaking with normal say/emotes, and instead redirect these to a private speech mode with their predator.
/mob/living
var/ooc_notes = null
diff --git a/code/modules/mob/living/say.dm b/code/modules/mob/living/say.dm
index cc66172f43..d8b5b24a62 100644
--- a/code/modules/mob/living/say.dm
+++ b/code/modules/mob/living/say.dm
@@ -160,7 +160,11 @@ var/list/channel_to_radio_key = new
if(stat == DEAD && !forbid_seeing_deadchat)
return say_dead(message)
return
-
+ //VOREStation Addition Start
+ if(forced_psay)
+ psay(message)
+ return
+ //VOREStation Addition End
//Parse the mode
var/message_mode = parse_message_mode(message, "headset")
diff --git a/code/modules/mob/living/silicon/robot/examine.dm b/code/modules/mob/living/silicon/robot/examine.dm
index 6f3cabe4af..c46031a69a 100644
--- a/code/modules/mob/living/silicon/robot/examine.dm
+++ b/code/modules/mob/living/silicon/robot/examine.dm
@@ -32,8 +32,6 @@
// VOREStation Edit: Start
. += attempt_vr(src,"examine_bellies_borg",args) //VOREStation Edit
- if(ooc_notes)
- . += "OOC Notes: \[View\]"
// VOREStation Edit: End
. += "*---------*"
diff --git a/code/modules/mob/living/silicon/robot/robot.dm b/code/modules/mob/living/silicon/robot/robot.dm
index 815ba3a598..9589cc0246 100644
--- a/code/modules/mob/living/silicon/robot/robot.dm
+++ b/code/modules/mob/living/silicon/robot/robot.dm
@@ -783,6 +783,26 @@
playsound(src.loc, 'sound/effects/clang2.ogg', 10, 1)
visible_message("[H] taps [src].")
return
+ if(I_GRAB)
+ if(is_vore_predator(H) && H.devourable && src.feeding && src.devourable)
+ var/switchy = tgui_alert(H, "Do you wish to eat [src] or feed yourself to them?", "Feed or Eat",list("Eat","Feed", "Nevermind!"))
+ switch(switchy)
+ if("Nevermind!")
+ return
+ if("Eat")
+ feed_grabbed_to_self(H, src)
+ return
+ if("Feed")
+ H.feed_self_to_grabbed(H, src)
+ return
+ if(is_vore_predator(H) && src.devourable)
+ if(tgui_alert(H, "Do you wish to eat [src]?", "Eat?",list("Yes!", "Nevermind!")) == "Yes!")
+ feed_grabbed_to_self(H, src)
+ return
+ if(H.devourable && src.feeding)
+ if(tgui_alert(H, "Do you wish to feed yourself to [src]?", "Feed?",list("Yes!", "Nevermind!")) == "Yes!")
+ H.feed_self_to_grabbed(H, src)
+ return
//Robots take half damage from basic attacks.
/mob/living/silicon/robot/attack_generic(var/mob/user, var/damage, var/attack_message)
diff --git a/code/modules/mob/living/simple_mob/subtypes/animal/alien animals/spacewhale.dm b/code/modules/mob/living/simple_mob/subtypes/animal/alien animals/spacewhale.dm
index 4cc14a1caa..0b27faa6c8 100644
--- a/code/modules/mob/living/simple_mob/subtypes/animal/alien animals/spacewhale.dm
+++ b/code/modules/mob/living/simple_mob/subtypes/animal/alien animals/spacewhale.dm
@@ -137,7 +137,7 @@
if(post_restless_tired)
post_restless_tired--
return
- if(!restless && prob(0.5))
+ if(prob(0.5))
handle_restless()
/mob/living/simple_mob/vore/overmap/spacewhale/proc/handle_restless()
@@ -149,9 +149,7 @@
ai_holder.base_wander_delay = initial(ai_holder.base_wander_delay)
ai_holder.wander = FALSE
post_restless_tired = 250
- if(child_om_marker.known == TRUE)
- child_om_marker.icon_state = "space_whale"
- visible_message("\The [child_om_marker.name] settles down.")
+ update_icon()
else
restless = TRUE
hazard_pickup_chance *= 1.5
@@ -159,9 +157,18 @@
movement_cooldown = 1
ai_holder.base_wander_delay = 2
ai_holder.wander_delay = 2
- if(child_om_marker.known == TRUE)
+ ai_holder.wander = TRUE
+ update_icon()
+
+/mob/living/simple_mob/vore/overmap/spacewhale/update_icon()
+ . = ..()
+ if(child_om_marker.known == TRUE)
+ if(restless)
child_om_marker.icon_state = "space_whale_restless"
visible_message("\The [child_om_marker.name] ripples excitedly.")
+ else
+ child_om_marker.icon_state = "space_whale"
+ visible_message("\The [child_om_marker.name] settles down.")
/datum/ai_holder/simple_mob/melee/spacewhale
hostile = TRUE
@@ -182,8 +189,6 @@
if(stance == STANCE_IDLE)
W.hazard_pickup_chance = initial(W.hazard_pickup_chance)
W.hazard_drop_chance = initial(W.hazard_drop_chance)
- W.movement_cooldown = 50
- base_wander_delay = 50
W.restless = FALSE
W.handle_restless()
W.movement_cooldown = initial(W.movement_cooldown)
diff --git a/code/modules/mob/living/simple_mob/subtypes/vore/dominated_brain.dm b/code/modules/mob/living/simple_mob/subtypes/vore/dominated_brain.dm
index c74a8b6433..8b38d1965e 100644
--- a/code/modules/mob/living/simple_mob/subtypes/vore/dominated_brain.dm
+++ b/code/modules/mob/living/simple_mob/subtypes/vore/dominated_brain.dm
@@ -5,6 +5,7 @@
desc = "Someone who has taken a back seat within their own body."
icon = 'icons/obj/surgery.dmi'
icon_state = "brain1"
+ forced_psay = TRUE
var/mob/living/prey_body //The body of the person who dominated the brain
var/prey_ckey //The ckey of the person who dominated the brain
var/prey_name //In case the body is missing. ;3c
@@ -61,107 +62,9 @@
pred_body = null
/mob/living/dominated_brain/Destroy()
- if(pred_body)
- var/P = FALSE
- for(var/I in pred_body)
- if(I == src)
- continue
- if(istype(I, /mob/living/dominated_brain))
- P = TRUE
- if(!P)
- pred_body.verbs -= /mob/proc/psay
- pred_body.verbs -= /mob/proc/pme
-
lets_unregister_our_signals()
. = ..()
-/mob/living/dominated_brain/say(var/message, var/datum/language/speaking = null, var/whispering = 0)
-
- if (src.client)
- if(client.prefs.muted & MUTE_IC)
- to_chat(src, "You cannot speak in IC (muted).")
- return
-
- if(loc == pred_body)
-
- message = sanitize(message)
- if (!message)
- return
- log_say(message,src)
- if (stat == 2)
- return say_dead(message)
-
- to_chat(src, "You think, \"[message]\"")
- to_chat(pred_body, "The captive mind of \the [src] thinks, \"[message]\"")
- for(var/I in pred_body.contents)
- if(istype(I, /mob/living/dominated_brain) && I != src)
- var/mob/living/dominated_brain/db = I
- to_chat(db, "The captive mind of \the [src] thinks, \"[message]\"")
-
- for (var/mob/M in player_list)
- if (istype(M, /mob/new_player))
- continue
- else if(M.stat == DEAD && M.is_preference_enabled(/datum/client_preference/ghost_ears))
- to_chat(M, "The captive mind of [src] whispers, \"[message]\"")
-
-/mob/living/dominated_brain/me_verb(message as text)
- if (src.client)
- if(client.prefs.muted & MUTE_IC)
- to_chat(src, "You cannot speak in IC (muted).")
- return
-
- if(loc == pred_body)
-
- message = sanitize(message)
- if (!message)
- return
- log_emote(message,src)
- if (stat == 2)
- return say_dead(message)
-
- to_chat(src, "\The [src] [message]")
- to_chat(pred_body, "\The [src] [message]")
- for(var/I in pred_body.contents)
- if(istype(I, /mob/living/dominated_brain) && I != src)
- var/mob/living/dominated_brain/db = I
- to_chat(db, "\The [src] [message]")
-
- for (var/mob/M in player_list)
- if (istype(M, /mob/new_player))
- continue
- else if(M.stat == DEAD && M.is_preference_enabled(/datum/client_preference/ghost_ears))
- to_chat(M, "\The [src] [message]")
- return
-
-/mob/living/dominated_brain/emote(var/message)
- if (src.client)
- if(client.prefs.muted & MUTE_IC)
- to_chat(src, "You cannot speak in IC (muted).")
- return
-
- if(loc == pred_body)
-
- message = sanitize(message)
- if (!message)
- return
- log_emote(message,src)
- if (stat == 2)
- return say_dead(message)
-
- to_chat(src, "\The [src] [message]")
- to_chat(pred_body, "\The [src] [message]")
- for(var/I in pred_body.contents)
- if(istype(I, /mob/living/dominated_brain) && I != src)
- var/mob/living/dominated_brain/db = I
- to_chat(db, "\The [src] [message]")
-
- for (var/mob/M in player_list)
- if (istype(M, /mob/new_player))
- continue
- else if(M.stat == DEAD && M.is_preference_enabled(/datum/client_preference/ghost_ears))
- to_chat(M, "\The [src] [message]")
- return
-
/mob/living/dominated_brain/process_resist()
//Resisting control by an alien mind.
if(pred_body.ckey == pred_ckey)
@@ -199,8 +102,6 @@
ndb.name = prey_name
ndb.prey_ckey = src.prey_ckey
ndb.pred_ckey = src.pred_ckey
- ndb.pred_body.verbs |= /mob/proc/pme
- ndb.pred_body.verbs |= /mob/proc/psay
prey_goes_here = ndb
prey_goes_here.real_name = src.prey_name
@@ -215,8 +116,6 @@
ndb.name = prey_name
ndb.prey_ckey = src.prey_ckey
ndb.pred_ckey = src.pred_ckey
- ndb.pred_body.verbs |= /mob/proc/pme
- ndb.pred_body.verbs |= /mob/proc/psay
prey_goes_here = ndb
src.languages -= src.temp_languages
@@ -234,26 +133,29 @@
pred_body.ckey = src.pred_ckey
pred_body.ooc_notes = pred_ooc_notes
log_and_message_admins("[pred_body] is now controlled by [pred_body.ckey]. They were restored to control through prey domination, and had been controlled by [prey_ckey].")
- handle_langs(src)
+ pred_body.absorb_langs()
pred_body.prey_controlled = FALSE
qdel(src)
-/mob/living/dominated_brain/proc/handle_langs(var/mob/M)
+/mob/living/proc/absorb_langs() //This should be called on the predator in the exchange
var/list/langlist = list()
- pred_body.languages -= pred_body.temp_languages
- LAZYCLEARLIST(pred_body.temp_languages)
- pred_body.temp_languages = list()
- for(var/i in loc)
- if(i == M)
- continue
- if(istype(i,/mob/living/dominated_brain))
- var/mob/living/dominated_brain/db = i
- langlist |= db.languages
- langlist |= db.prey_langs
- langlist -= pred_body.languages
- pred_body.temp_languages |= langlist
- pred_body.languages |= langlist
+ languages -= temp_languages
+ LAZYCLEARLIST(src.temp_languages)
+ src.temp_languages = list()
+ for(var/mob/living/L in contents)
+ if(istype(L,/mob/living/dominated_brain))
+ if(L.ckey)
+ langlist |= L.languages
+ for(var/b in vore_organs)
+ for(var/mob/living/L in b)
+ if(isliving(L))
+ if(L.ckey)
+ langlist |= L.languages
+ if(langlist.len)
+ langlist -= languages
+ temp_languages |= langlist
+ languages |= langlist
//Welcome to the adapted borer code.
/mob/proc/dominate_predator()
@@ -319,8 +221,6 @@
else
pred_brain = new /mob/living/dominated_brain(pred, pred, name, prey)
- pred.verbs |= /mob/proc/pme
- pred.verbs |= /mob/proc/psay
pred_brain.prey_ooc_notes = prey.ooc_notes
pred_brain.pred_ooc_notes = pred.ooc_notes
pred_brain.name = pred.name
@@ -330,7 +230,7 @@
pred_brain.prey_langs |= preylangs
pred_brain.prey_ckey = prey.ckey
pred_brain.pred_ckey = pred.ckey
- pred_brain.handle_langs()
+ pred_brain.pred_body.absorb_langs()
pred.ooc_notes = pred_brain.prey_ooc_notes
pred.verbs |= /mob/proc/release_predator
@@ -381,72 +281,6 @@
else
to_chat(src, "\The [pred_body] is already dominated, and cannot be controlled at this time.")
-
-/mob/proc/psay(message as text|null)
- set category = "Abilities"
- set name = "Prey Say (psay)"
- set desc = "Emote to a dominated predator/prey."
-
- if (src.client)
- if(client.prefs.muted & MUTE_IC)
- to_chat(src, "You cannot speak in IC (muted).")
- return
- message = sanitize(message)
- if (!message)
- message = input(usr, "Type a message to emote.","Emote to prey") as text|null
- if (!message)
- return
-
- var/f = FALSE
- for(var/I in contents)
- if(istype(I, /mob/living/dominated_brain))
- var/mob/living/dominated_brain/db = I
- to_chat(db, "\The [src] thinks, \"[message]\"")
- f = TRUE
- if(f)
- to_chat(src, "You think \"[message]\"")
- for (var/mob/M in player_list)
- if (istype(M, /mob/new_player))
- continue
- else if(M.stat == DEAD && M.is_preference_enabled(/datum/client_preference/ghost_ears))
- to_chat(M, "\The [src] thinks, \"[message]\"")
- log_say(message,src)
- else
- to_chat(src, "There is no one inside you to talk to...")
- return
-
-/mob/proc/pme(message as text|null)
- set category = "Abilities"
- set name = "Prey Emote (pme)"
- set desc = "Emote to a dominated predator/prey."
-
- if (src.client)
- if(client.prefs.muted & MUTE_IC)
- to_chat(src, "You cannot speak in IC (muted).")
- return
- message = sanitize(message)
- if (!message)
- message = input(usr, "Type a message to emote.","Emote to prey") as text|null
- if (!message)
- return
- var/f = FALSE
- for(var/I in contents)
- if(istype(I, /mob/living/dominated_brain))
- var/mob/living/dominated_brain/db = I
- to_chat(db, "\The [src] [message]")
- f = TRUE
- if(f)
- to_chat(src, "\The [src] [message]")
- for (var/mob/M in player_list)
- if (istype(M, /mob/new_player))
- continue
- else if(M.stat == DEAD && M.is_preference_enabled(/datum/client_preference/ghost_ears))
- to_chat(M, "\The [src] [message]")
- log_emote(message,src)
- else
- to_chat(src, "There is no one inside you to talk to...")
- return
-
/mob/living/proc/dominate_prey()
set category = "Abilities"
set name = "Dominate Prey"
@@ -456,59 +290,59 @@
for(var/obj/belly/B in src.vore_organs)
for(var/mob/living/L in B)
if(isliving(L) && L.ckey)
- possible_mobs += L
+ possible_mobs |= L
else
continue
- var/mob/living/M
- var/input = tgui_input_list(src, "Select a mob to dominate:", "Dominate Prey", possible_mobs)
- if(!input)
- to_chat(src, "There are no valid targets inside of you.")
- return
- M = input
- if(!M)
- return
- if(tgui_alert(src, "You selected [M] to attempt to dominate. Are you sure?", "Dominate Prey",list("No","Yes")) != "Yes")
- return
- log_admin("[key_name_admin(src)] offered to use dominate prey on [M] ([M.ckey]).")
- to_chat(src, "Attempting to dominate and gather \the [M]'s mind...")
- if(tgui_alert(M, "\The [src] has elected collect your mind into their own. Is this something you will allow to happen?", "Allow Dominate Prey",list("No","Yes")) != "Yes")
- return
- if(tgui_alert(M, "Are you sure? You can only undo this while your body is inside of [src]. (You can resist, or use the resist verb in the abilities tab)", "Allow Dominate Prey",list("No","Yes")) != "Yes")
- return
- to_chat(M, "You can feel the will of another pulling you away from your body...")
- to_chat(src, "You can feel the will of your prey diminishing as you gather them!")
+ if(!possible_mobs)
+ to_chat(src, "There are no valid targets inside of you.")
+ return
+ var/input = tgui_input_list(src, "Select a mob to dominate:", "Dominate Prey", possible_mobs)
+ if(!input)
+ return
+ var/mob/living/M = input
+ if(tgui_alert(src, "You selected [M] to attempt to dominate. Are you sure?", "Dominate Prey",list("No","Yes")) != "Yes")
+ return
+ log_admin("[key_name_admin(src)] offered to use dominate prey on [M] ([M.ckey]).")
+ to_chat(src, "Attempting to dominate and gather \the [M]'s mind...")
+ if(tgui_alert(M, "\The [src] has elected collect your mind into their own. Is this something you will allow to happen?", "Allow Dominate Prey",list("No","Yes")) != "Yes")
+ to_chat(src, "\The [M] has declined your Dominate Prey attempt.")
+ return
+ if(tgui_alert(M, "Are you sure? You can only undo this while your body is inside of [src]. (You can resist, or use the resist verb in the abilities tab)", "Allow Dominate Prey",list("No","Yes")) != "Yes")
+ to_chat(src, "\The [M] has declined your Dominate Prey attempt.")
+ return
+ to_chat(M, "You can feel the will of another pulling you away from your body...")
+ to_chat(src, "You can feel the will of your prey diminishing as you gather them!")
- if(!do_after(src, 10 SECONDS, exclusive = TRUE))
- to_chat(M, "The alien presence fades, and you are left along in your body...")
- to_chat(src, "Your attempt to gather [M]'s mind has been interrupted.")
- return
- if(!isbelly(M.loc))
- to_chat(M, "The alien presence fades, and you are left along in your body...")
- to_chat(src, "Your attempt to gather [M]'s mind has been interrupted.")
- return
+ if(!do_after(src, 10 SECONDS, exclusive = TRUE))
+ to_chat(M, "The alien presence fades, and you are left along in your body...")
+ to_chat(src, "Your attempt to gather [M]'s mind has been interrupted.")
+ return
+ if(!isbelly(M.loc))
+ to_chat(M, "The alien presence fades, and you are left along in your body...")
+ to_chat(src, "Your attempt to gather [M]'s mind has been interrupted.")
+ return
- var/mob/living/dominated_brain/db = new /mob/living/dominated_brain(src, src, M.name, M)
+ var/mob/living/dominated_brain/db = new /mob/living/dominated_brain(src, src, M.name, M)
- verbs |= /mob/proc/pme
- verbs |= /mob/proc/psay
- db.name = M.name
- db.prey_ckey = M.ckey
- db.pred_ckey = src.ckey
-
+ db.name = M.name
+ db.prey_ckey = M.ckey
+ db.pred_ckey = src.ckey
+
- db.real_name = M.real_name
+ db.real_name = M.real_name
- M.languages -= M.temp_languages
- db.languages |= M.languages
- db.handle_langs()
- db.ooc_notes = M.ooc_notes
- db.verbs |= /mob/living/dominated_brain/proc/cease_this_foolishness
+ M.languages -= M.temp_languages
+ db.languages |= M.languages
+ db.ooc_notes = M.ooc_notes
+ db.verbs |= /mob/living/dominated_brain/proc/cease_this_foolishness
- db.ckey = db.prey_ckey
- log_admin("[db] ([db.ckey]) has agreed to [src]'s dominate prey attempt, and so no longer occupies their body.")
- to_chat(src, "You feel your mind expanded as [M] is incorporated into you.")
- to_chat(M, "Your mind is gathered into \the [src], becoming part of them...")
+ absorb_langs()
+
+ db.ckey = db.prey_ckey
+ log_admin("[db] ([db.ckey]) has agreed to [src]'s dominate prey attempt, and so no longer occupies their original body.")
+ to_chat(src, "You feel your mind expanded as [M] is incorporated into you.")
+ to_chat(M, "Your mind is gathered into \the [src], becoming part of them...")
/mob/living/dominated_brain/proc/cease_this_foolishness()
set category = "Abilities"
@@ -522,7 +356,7 @@
if(prey_body && prey_body.loc.loc == pred_body)
prey_body.ckey = prey_ckey
- handle_langs(src)
+ pred_body.absorb_langs()
to_chat(src, "Your connection to [pred_body] fades, and you awaken back in your own body!")
to_chat(pred_body, "You feel as though a piece of yourself is missing, as \the [src] returns to their body.")
log_admin("[src] ([src.ckey]) has returned to their body, [prey_body].")
diff --git a/code/modules/mob/say.dm b/code/modules/mob/say.dm
index c30d256c59..d51d048da1 100644
--- a/code/modules/mob/say.dm
+++ b/code/modules/mob/say.dm
@@ -4,12 +4,22 @@
/mob/verb/whisper(message as text)
set name = "Whisper"
set category = "IC"
+ //VOREStation Addition Start
+ if(forced_psay)
+ psay(message)
+ return
+ //VOREStation Addition End
usr.say(message,whispering=1)
/mob/verb/say_verb(message as text)
set name = "Say"
set category = "IC"
+ //VOREStation Addition Start
+ if(forced_psay)
+ psay(message)
+ return
+ //VOREStation Addition End
set_typing_indicator(FALSE)
usr.say(message)
@@ -21,6 +31,11 @@
if(say_disabled) //This is here to try to identify lag problems
to_chat(usr, "Speech is currently admin-disabled.")
return
+ //VOREStation Addition Start
+ if(forced_psay)
+ pme(message)
+ return
+ //VOREStation Addition End
//VOREStation Edit Start
if(muffled)
@@ -63,6 +78,15 @@
else if(universal_speak || universal_understand)
return TRUE
+ //VOREStation Addition Start
+ if(isliving(src))
+ var/mob/living/L = src
+ if(isbelly(L.loc) && L.absorbed)
+ var/mob/living/P = L.loc.loc
+ if(P.say_understands(other, speaking))
+ return TRUE
+ //VOREStation Addition End
+
//Languages are handled after.
if(!speaking)
if(!other)
diff --git a/code/modules/mob/say_vr.dm b/code/modules/mob/say_vr.dm
index 8b06163590..59f4f47825 100644
--- a/code/modules/mob/say_vr.dm
+++ b/code/modules/mob/say_vr.dm
@@ -10,6 +10,11 @@
if(say_disabled) //This is here to try to identify lag problems
to_chat(usr, "Speech is currently admin-disabled.")
return
+ //VOREStation Addition Start
+ if(forced_psay)
+ pme(message)
+ return
+ //VOREStation Addition End
message = sanitize_or_reflect(message,src) //VOREStation Edit - Reflect too-long messages (within reason)
if(!message)
@@ -26,6 +31,12 @@
to_chat(src, "You are unable to emote.")
return
+ //VOREStation Addition Start
+ if(forced_psay)
+ pme(message)
+ return
+ //VOREStation Addition End
+
var/muzzled = is_muzzled()
if(m_type == 2 && muzzled) return
@@ -99,3 +110,163 @@
to_chat(user,message)
to_chat(user, "^ This message was NOT SENT ^ -- It was [length] characters, and the limit is [MAX_MESSAGE_LEN]. It would fit in [posts] separate messages.")
#undef MAX_HUGE_MESSAGE_LEN
+
+///// PSAY /////
+
+/mob/verb/psay(message as text|null)
+ set category = "IC"
+ set name = "Psay"
+ set desc = "Talk to people affected by complete absorbed or dominate predator/prey."
+
+ if (src.client)
+ if(client.prefs.muted & MUTE_IC)
+ to_chat(src, "You cannot speak in IC (muted).")
+ return
+ if (!message)
+ message = input(usr, "Type a message to say.","Psay") as text|null
+ message = sanitize_or_reflect(message,src)
+ if (!message)
+ return
+ message = capitalize(message)
+ if (stat == DEAD)
+ return say_dead(message)
+ if(!isliving(src))
+ forced_psay = FALSE
+ say(message)
+ var/f = FALSE //did we find someone to send the message to other than ourself?
+ var/mob/living/pb //predator body
+ var/mob/living/M = src
+ if(istype(M, /mob/living/dominated_brain))
+ var/mob/living/dominated_brain/db = M
+ if(db.loc != db.pred_body)
+ to_chat(db, "You aren't inside of a brain anymore!!!")
+ qdel(db) //Oh no, dominated brains shouldn't exist outside of the body, so if we got here something went very wrong.
+ return
+ else
+ pb = db.pred_body
+ to_chat(pb, "The captive mind of \the [M] thinks, \"[message]\"") //To our pred if dominated brain
+ f = TRUE
+ else if(M.absorbed && isbelly(M.loc))
+ pb = M.loc.loc
+ to_chat(pb, "\The [M] thinks, \"[message]\"") //To our pred if absorbed
+ f = TRUE
+
+ if(pb) //We are prey, let's do the prey thing.
+
+ for(var/I in pb.contents)
+ if(istype(I, /mob/living/dominated_brain) && I != M)
+ var/mob/living/dominated_brain/db = I
+ to_chat(db, "The captive mind of \the [M] thinks, \"[message]\"") //To any dominated brains in the pred
+ f = TRUE
+ for(var/B in pb.vore_organs)
+ for(var/mob/living/L in B)
+ if(L.absorbed && L != M && L.ckey)
+ to_chat(L, "\The [M] thinks, \"[message]\"") //To any absorbed people in the pred
+ f = TRUE
+
+ //Let's also check and see if there's anyone inside of us to send the message to.
+ for(var/I in M.contents)
+ if(istype(I, /mob/living/dominated_brain))
+ var/mob/living/dominated_brain/db = I
+ to_chat(db, "\The [M] thinks, \"[message]\"") //To any dominated brains inside us
+ f = TRUE
+ for(var/B in M.vore_organs)
+ for(var/mob/living/L in B)
+ if(L.absorbed)
+ to_chat(L, "\The [M] thinks, \"[message]\"") //To any absorbed people inside us
+ f = TRUE
+
+ if(f) //We found someone to send the message to
+ if(pb)
+ to_chat(M, "You think \"[message]\"") //To us if we are the prey
+ else
+ to_chat(M, "You think \"[message]\"") //To us if we are the pred
+ for (var/mob/G in player_list)
+ if (istype(G, /mob/new_player))
+ continue
+ else if(G.stat == DEAD && G.is_preference_enabled(/datum/client_preference/ghost_ears))
+ to_chat(G, "\The [M] thinks, \"[message]\"")
+ log_say(message,M)
+ else //There wasn't anyone to send the message to, pred or prey, so let's just say it instead and correct our psay just in case.
+ M.forced_psay = FALSE
+ M.say(message)
+
+///// PME /////
+
+/mob/verb/pme(message as text|null)
+ set category = "IC"
+ set name = "Pme"
+ set desc = "Emote to people affected by complete absorbed or dominate predator/prey."
+
+ if (src.client)
+ if(client.prefs.muted & MUTE_IC)
+ to_chat(src, "You cannot speak in IC (muted).")
+ return
+ if (!message)
+ message = input(usr, "Type a message to emote.","Pme") as text|null
+ message = sanitize_or_reflect(message,src)
+ if (!message)
+ return
+ if (stat == DEAD)
+ return say_dead(message)
+ if(!isliving(src))
+ forced_psay = FALSE
+ me_verb(message)
+ var/f = FALSE //did we find someone to send the message to other than ourself?
+ var/mob/living/pb //predator body
+ var/mob/living/M = src
+ if(istype(M, /mob/living/dominated_brain))
+ var/mob/living/dominated_brain/db = M
+ if(db.loc != db.pred_body)
+ to_chat(db, "You aren't inside of a brain anymore!!!")
+ qdel(db) //Oh no, dominated brains shouldn't exist outside of the body, so if we got here something went very wrong.
+ return
+ else
+ pb = db.pred_body
+ to_chat(pb, "\The [M] [message]") //To our pred if dominated brain
+ f = TRUE
+
+ else if(M.absorbed && isbelly(M.loc))
+ pb = M.loc.loc
+ to_chat(pb, "\The [M] [message]") //To our pred if absorbed
+ f = TRUE
+
+ if(pb) //We are prey, let's do the prey thing.
+
+ for(var/I in pb.contents)
+ if(istype(I, /mob/living/dominated_brain) && I != M)
+ var/mob/living/dominated_brain/db = I
+ to_chat(db, "\The [M] [message]") //To any dominated brains in the pred
+ f = TRUE
+ for(var/B in pb.vore_organs)
+ for(var/mob/living/L in B)
+ if(L.absorbed && L != M && L.ckey)
+ to_chat(L, "\The [M] [message]") //To any absorbed people in the pred
+ f = TRUE
+
+ //Let's also check and see if there's anyone inside of us to send the message to.
+ for(var/I in M.contents)
+ if(istype(I, /mob/living/dominated_brain))
+ var/mob/living/dominated_brain/db = I
+ to_chat(db, "\The [M] [message]") //To any dominated brains inside us
+ f = TRUE
+ for(var/B in M.vore_organs)
+ for(var/mob/living/L in B)
+ if(L.absorbed)
+ to_chat(L, "\The [M] [message]") //To any absorbed people inside us
+ f = TRUE
+
+ if(f) //We found someone to send the message to
+ if(pb)
+ to_chat(M, "\The [M] [message]") //To us if we are the prey
+ else
+ to_chat(M, "\The [M] [message]") //To us if we are the pred
+ for (var/mob/G in player_list)
+ if (istype(G, /mob/new_player))
+ continue
+ else if(G.stat == DEAD && G.is_preference_enabled(/datum/client_preference/ghost_ears))
+ to_chat(G, "\The [M] [message]")
+ log_say(message,M)
+ else //There wasn't anyone to send the message to, pred or prey, so let's just emote it instead and correct our psay just in case.
+ M.forced_psay = FALSE
+ M.me_verb(message)
diff --git a/code/modules/pda/pda.dm b/code/modules/pda/pda.dm
index bda75db610..a19552d368 100644
--- a/code/modules/pda/pda.dm
+++ b/code/modules/pda/pda.dm
@@ -146,10 +146,11 @@ var/global/list/obj/item/device/pda/PDAs = list()
SPECIES_TESHARI = 'icons/mob/species/teshari/pda_wrist.dmi',
SPECIES_VR_TESHARI = 'icons/mob/species/teshari/pda_wrist.dmi',
)
- if(7) icon = 'icons/obj/pda_clam.dmi' //VOREStation edit
+ if(7) icon = 'icons/obj/pda_slider.dmi' //VOREStation edit
else
icon = 'icons/obj/pda_old.dmi'
log_debug("Invalid switch for PDA, defaulting to old PDA icons. [pdachoice] chosen.")
+ add_overlay("pda-pen")
start_program(find_program(/datum/data/pda/app/main_menu))
/obj/item/device/pda/proc/can_use(mob/user)
diff --git a/code/modules/vore/eating/belly_obj_vr.dm b/code/modules/vore/eating/belly_obj_vr.dm
index 10d1dd44f3..85d4fca868 100644
--- a/code/modules/vore/eating/belly_obj_vr.dm
+++ b/code/modules/vore/eating/belly_obj_vr.dm
@@ -59,7 +59,7 @@
//Actual full digest modes
var/tmp/static/list/digest_modes = list(DM_HOLD,DM_DIGEST,DM_ABSORB,DM_DRAIN,DM_UNABSORB,DM_HEAL,DM_SHRINK,DM_GROW,DM_SIZE_STEAL,DM_EGG)
//Digest mode addon flags
- var/tmp/static/list/mode_flag_list = list("Numbing" = DM_FLAG_NUMBING, "Stripping" = DM_FLAG_STRIPPING, "Leave Remains" = DM_FLAG_LEAVEREMAINS, "Muffles" = DM_FLAG_THICKBELLY, "Affect Worn Items" = DM_FLAG_AFFECTWORN, "Jams Sensors" = DM_FLAG_JAMSENSORS)
+ var/tmp/static/list/mode_flag_list = list("Numbing" = DM_FLAG_NUMBING, "Stripping" = DM_FLAG_STRIPPING, "Leave Remains" = DM_FLAG_LEAVEREMAINS, "Muffles" = DM_FLAG_THICKBELLY, "Affect Worn Items" = DM_FLAG_AFFECTWORN, "Jams Sensors" = DM_FLAG_JAMSENSORS, "Complete Absorb" = DM_FLAG_FORCEPSAY)
//Item related modes
var/tmp/static/list/item_digest_modes = list(IM_HOLD,IM_DIGEST_FOOD,IM_DIGEST)
@@ -130,7 +130,7 @@
"You feel %prey becoming part of you.")
var/list/absorb_messages_prey = list(
- "Your feel yourself becoming part of %pred's %belly!")
+ "You feel yourself becoming part of %pred's %belly!")
var/list/unabsorb_messages_owner = list(
"You feel %prey reform into a recognizable state again.")
@@ -359,9 +359,12 @@
p.undo_prey_takeover(FALSE)
return 0
for(var/mob/living/L in M.contents)
- L.muffled = 0
+ L.muffled = FALSE
+ L.forced_psay = FALSE
+
for(var/obj/item/weapon/holder/H in M.contents)
- H.held_mob.muffled = 0
+ H.held_mob.muffled = FALSE
+ H.held_mob.forced_psay = FALSE
//Place them into our drop_location
M.forceMove(drop_location())
@@ -375,7 +378,9 @@
if(ML.client)
ML.stop_sound_channel(CHANNEL_PREYLOOP) //Stop the internal loop, it'll restart if the isbelly check on next tick anyway
if(ML.muffled)
- ML.muffled = 0
+ ML.muffled = FALSE
+ if(ML.forced_psay)
+ ML.forced_psay = FALSE
if(ML.absorbed)
ML.absorbed = FALSE
handle_absorb_langs(ML, owner)
@@ -422,6 +427,9 @@
for(var/mob/living/M in contents)
M.updateVRPanel()
+ if(prey.ckey)
+ GLOB.prey_eaten_roundstat++
+
// Get the line that should show up in Examine message if the owner of this belly
// is examined. By making this a proc, we not only take advantage of polymorphism,
// but can easily make the message vary based on how many people are inside, etc.
@@ -682,10 +690,10 @@
M.absorbed = TRUE
if(M.ckey)
- owner.temp_language_sources += M
- M.temp_language_sources += owner
handle_absorb_langs(M, owner)
+ GLOB.prey_absorbed_roundstat++
+
to_chat(M, "[absorb_alert_prey]")
to_chat(owner, "[absorb_alert_owner]")
if(M.noisy) //Mute drained absorbee hunger if enabled.
@@ -764,34 +772,8 @@
owner.update_icon()
/////////////////////////////////////////////////////////////////////////
-/obj/belly/proc/handle_absorb_langs(var/mob/living/prey, var/mob/living/pred)
- for(var/mob/living/p in pred.temp_language_sources) //Let's look at the pred's sources
- if (!p.absorbed)
- for(var/L in pred.temp_languages)
- if(L in p.languages)
- pred.languages -= L
- pred.temp_languages -= L
- pred.temp_language_sources -= p
- else
- for(var/L in p.languages)
- if(L in pred.languages)
- continue
- pred.languages += L
- pred.temp_languages += L
-
- for(var/mob/living/P in prey.temp_language_sources) //Let's look at the prey's sources
- if (!prey.absorbed)
- for(var/L in prey.temp_languages)
- if(L in P.languages)
- prey.languages -= L
- prey.temp_languages -= L
- prey.temp_language_sources -= P
- else
- for(var/L in P.languages)
- if(L in prey.languages)
- continue
- prey.languages += L
- prey.temp_languages += L
+/obj/belly/proc/handle_absorb_langs()
+ owner.absorb_langs()
////////////////////////////////////////////////////////////////////////
diff --git a/code/modules/vore/eating/bellymodes_vr.dm b/code/modules/vore/eating/bellymodes_vr.dm
index e4e358d3c4..5a92072756 100644
--- a/code/modules/vore/eating/bellymodes_vr.dm
+++ b/code/modules/vore/eating/bellymodes_vr.dm
@@ -167,7 +167,7 @@
var/mob/living/L = A
touchable_mobs += L
- if(L.absorbed)
+ if(L.absorbed && !issilicon(L))
L.Weaken(5)
// Fullscreen overlays
@@ -186,6 +186,10 @@
if((mode_flags & DM_FLAG_THICKBELLY) && !H.muffled)
H.muffled = TRUE
+ //Force psay
+ if((mode_flags & DM_FLAG_FORCEPSAY) && !H.forced_psay && H.absorbed)
+ H.forced_psay = TRUE
+
//Worn items flag
if(mode_flags & DM_FLAG_AFFECTWORN)
for(var/slot in slots)
@@ -274,6 +278,9 @@
to_chat(owner, "[digest_alert_owner]")
to_chat(M, "[digest_alert_prey]")
+ if(M.ckey)
+ GLOB.prey_digested_roundstat++
+
if((mode_flags & DM_FLAG_LEAVEREMAINS) && M.digest_leave_remains)
handle_remains_leaving(M)
digestion_death(M)
diff --git a/code/modules/vore/eating/living_vr.dm b/code/modules/vore/eating/living_vr.dm
index 67b005666b..4038ed6c54 100644
--- a/code/modules/vore/eating/living_vr.dm
+++ b/code/modules/vore/eating/living_vr.dm
@@ -416,8 +416,8 @@
if(confirm != "Okay" || loc != B)
return
//Actual escaping
- absorbed = 0 //Make sure we're not absorbed
- muffled = 0 //Removes Muffling
+ absorbed = FALSE //Make sure we're not absorbed
+ muffled = FALSE //Removes Muffling
forceMove(get_turf(src)) //Just move me up to the turf, let's not cascade through bellies, there's been a problem, let's just leave.
for(var/mob/living/simple_mob/SA in range(10))
SA.prey_excludes[src] = world.time
diff --git a/icons/obj/pda_clam.dmi b/icons/obj/pda_slider.dmi
similarity index 100%
rename from icons/obj/pda_clam.dmi
rename to icons/obj/pda_slider.dmi
diff --git a/icons/obj/playing_cards.dmi b/icons/obj/playing_cards.dmi
index 0195f8e6f4..b5336d6dd1 100644
Binary files a/icons/obj/playing_cards.dmi and b/icons/obj/playing_cards.dmi differ
diff --git a/maps/offmap_vr/om_ships/bearcat.dmm b/maps/offmap_vr/om_ships/bearcat.dmm
index 28eb49a16f..977ee382f2 100644
--- a/maps/offmap_vr/om_ships/bearcat.dmm
+++ b/maps/offmap_vr/om_ships/bearcat.dmm
@@ -356,7 +356,7 @@
d2 = 4;
icon_state = "1-4"
},
-/obj/item/weapon/storage/box/beanbags/large,
+/obj/item/ammo_magazine/ammo_box/b12g/beanbag,
/obj/item/weapon/gun/projectile/shotgun/pump/combat{
desc = "When words don't strike hard enough.";
name = "Solid Argument"
diff --git a/maps/offmap_vr/om_ships/cruiser.dmm b/maps/offmap_vr/om_ships/cruiser.dmm
index 834b910d7c..292b8ff06d 100644
--- a/maps/offmap_vr/om_ships/cruiser.dmm
+++ b/maps/offmap_vr/om_ships/cruiser.dmm
@@ -6061,22 +6061,22 @@
/turf/simulated/wall/rpshull,
/area/mothership/bridge)
"md" = (
-/obj/item/weapon/storage/box/flashshells,
-/obj/item/weapon/storage/box/flashshells,
-/obj/item/weapon/storage/box/stunshells,
-/obj/item/weapon/storage/box/stunshells,
-/obj/item/weapon/storage/box/beanbags,
-/obj/item/weapon/storage/box/beanbags,
+/obj/item/ammo_magazine/ammo_box/b12g/flash,
+/obj/item/ammo_magazine/ammo_box/b12g/flash,
+/obj/item/ammo_magazine/ammo_box/b12g/stunshell,
+/obj/item/ammo_magazine/ammo_box/b12g/stunshell,
+/obj/item/ammo_magazine/ammo_box/b12g/beanbag,
+/obj/item/ammo_magazine/ammo_box/b12g/beanbag,
/obj/item/weapon/storage/box/empshells/large,
/obj/item/weapon/storage/box/empshells/large,
-/obj/item/weapon/storage/box/shotgunammo/large,
-/obj/item/weapon/storage/box/shotgunammo/large,
-/obj/item/weapon/storage/box/shotgunammo/large,
-/obj/item/weapon/storage/box/shotgunammo/large,
-/obj/item/weapon/storage/box/shotgunshells/large,
-/obj/item/weapon/storage/box/shotgunshells/large,
-/obj/item/weapon/storage/box/shotgunshells/large,
-/obj/item/weapon/storage/box/shotgunshells/large,
+/obj/item/ammo_magazine/ammo_box/b12g,
+/obj/item/ammo_magazine/ammo_box/b12g,
+/obj/item/ammo_magazine/ammo_box/b12g,
+/obj/item/ammo_magazine/ammo_box/b12g,
+/obj/item/ammo_magazine/ammo_box/b12g/pellet,
+/obj/item/ammo_magazine/ammo_box/b12g/pellet,
+/obj/item/ammo_magazine/ammo_box/b12g/pellet,
+/obj/item/ammo_magazine/ammo_box/b12g/pellet,
/obj/item/weapon/gun/projectile/shotgun/pump/combat,
/obj/item/weapon/gun/projectile/shotgun/pump/combat,
/obj/structure/closet/secure_closet/guncabinet{
@@ -6792,8 +6792,8 @@
/obj/item/weapon/gun/projectile/automatic/z8,
/obj/item/weapon/gun/projectile/automatic/z8,
/obj/item/weapon/gun/projectile/heavysniper,
-/obj/item/weapon/storage/box/sniperammo,
-/obj/item/weapon/storage/box/sniperammo,
+/obj/item/ammo_magazine/ammo_box/b145,
+/obj/item/ammo_magazine/ammo_box/b145,
/obj/item/ammo_magazine/m762,
/obj/item/ammo_magazine/m762,
/obj/item/ammo_magazine/m762,
@@ -6804,8 +6804,8 @@
/obj/item/ammo_magazine/m762/ap,
/obj/item/ammo_magazine/m762/ap,
/obj/item/ammo_magazine/m762/ap,
-/obj/item/weapon/storage/box/sniperammo,
-/obj/item/weapon/storage/box/sniperammo,
+/obj/item/ammo_magazine/ammo_box/b145,
+/obj/item/ammo_magazine/ammo_box/b145,
/turf/simulated/floor/tiled/steel_grid,
/area/mothership/armory)
"ny" = (
diff --git a/maps/offmap_vr/om_ships/shelter_6.dmm b/maps/offmap_vr/om_ships/shelter_6.dmm
index c7d3a9fec8..a9e613c235 100644
--- a/maps/offmap_vr/om_ships/shelter_6.dmm
+++ b/maps/offmap_vr/om_ships/shelter_6.dmm
@@ -284,20 +284,20 @@
/obj/item/ammo_magazine/m545,
/obj/item/weapon/gun/projectile/shotgun/pump/combat,
/obj/item/weapon/gun/projectile/shotgun/pump/combat,
-/obj/item/weapon/storage/box/shotgunshells/large,
-/obj/item/weapon/storage/box/shotgunshells/large,
-/obj/item/weapon/storage/box/shotgunshells/large,
-/obj/item/weapon/storage/box/shotgunshells/large,
-/obj/item/weapon/storage/box/shotgunammo/large,
-/obj/item/weapon/storage/box/shotgunammo/large,
-/obj/item/weapon/storage/box/shotgunammo/large,
-/obj/item/weapon/storage/box/shotgunammo/large,
+/obj/item/ammo_magazine/ammo_box/b12g/pellet,
+/obj/item/ammo_magazine/ammo_box/b12g/pellet,
+/obj/item/ammo_magazine/ammo_box/b12g/pellet,
+/obj/item/ammo_magazine/ammo_box/b12g/pellet,
+/obj/item/ammo_magazine/ammo_box/b12g,
+/obj/item/ammo_magazine/ammo_box/b12g,
+/obj/item/ammo_magazine/ammo_box/b12g,
+/obj/item/ammo_magazine/ammo_box/b12g,
/obj/item/weapon/storage/box/empshells/large,
/obj/item/weapon/storage/box/empshells/large,
-/obj/item/weapon/storage/box/beanbags,
-/obj/item/weapon/storage/box/beanbags,
-/obj/item/weapon/storage/box/stunshells,
-/obj/item/weapon/storage/box/stunshells,
+/obj/item/ammo_magazine/ammo_box/b12g/beanbag,
+/obj/item/ammo_magazine/ammo_box/b12g/beanbag,
+/obj/item/ammo_magazine/ammo_box/b12g/stunshell,
+/obj/item/ammo_magazine/ammo_box/b12g/stunshell,
/obj/item/weapon/storage/box/flashshells,
/obj/item/weapon/storage/box/flashshells,
/obj/item/weapon/gun/energy/locked/frontier/carbine/unlocked,
@@ -1824,8 +1824,8 @@
/obj/item/weapon/gun/projectile/automatic/z8,
/obj/item/weapon/gun/projectile/automatic/z8,
/obj/item/weapon/gun/projectile/heavysniper,
-/obj/item/weapon/storage/box/sniperammo,
-/obj/item/weapon/storage/box/sniperammo,
+/obj/item/ammo_magazine/ammo_box/b145,
+/obj/item/ammo_magazine/ammo_box/b145,
/obj/item/ammo_magazine/m762,
/obj/item/ammo_magazine/m762,
/obj/item/ammo_magazine/m762,
@@ -1836,8 +1836,8 @@
/obj/item/ammo_magazine/m762/ap,
/obj/item/ammo_magazine/m762/ap,
/obj/item/ammo_magazine/m762/ap,
-/obj/item/weapon/storage/box/sniperammo,
-/obj/item/weapon/storage/box/sniperammo,
+/obj/item/ammo_magazine/ammo_box/b145,
+/obj/item/ammo_magazine/ammo_box/b145,
/obj/item/modular_computer/laptop/preset/custom_loadout/hybrid,
/obj/item/modular_computer/laptop/preset/custom_loadout/hybrid,
/obj/item/modular_computer/tablet/preset/custom_loadout/hybrid,
diff --git a/maps/stellardelight/ship_centcom.dmm b/maps/stellardelight/ship_centcom.dmm
index 6de916b0c1..37f0375e71 100644
--- a/maps/stellardelight/ship_centcom.dmm
+++ b/maps/stellardelight/ship_centcom.dmm
@@ -42,8 +42,8 @@
"ag" = (
/obj/structure/table/rack,
/obj/item/weapon/gun/projectile/heavysniper,
-/obj/item/weapon/storage/box/sniperammo,
-/obj/item/weapon/storage/box/sniperammo,
+/obj/item/ammo_magazine/ammo_box/b145,
+/obj/item/ammo_magazine/ammo_box/b145,
/turf/simulated/floor/tiled/dark,
/area/centcom/specops)
"ah" = (
@@ -669,11 +669,11 @@
"bZ" = (
/obj/structure/table/rack,
/obj/structure/window/reinforced,
-/obj/item/weapon/storage/box/shotgunammo,
-/obj/item/weapon/storage/box/shotgunammo,
-/obj/item/weapon/storage/box/shotgunshells,
-/obj/item/weapon/storage/box/shotgunshells,
-/obj/item/weapon/storage/box/shotgunshells,
+/obj/item/ammo_magazine/ammo_box/b12g,
+/obj/item/ammo_magazine/ammo_box/b12g,
+/obj/item/ammo_magazine/ammo_box/b12g/pellet,
+/obj/item/ammo_magazine/ammo_box/b12g/pellet,
+/obj/item/ammo_magazine/ammo_box/b12g/pellet,
/turf/simulated/floor/tiled{
icon_state = "dark"
},
@@ -1584,12 +1584,12 @@
/area/centcom/evac)
"fl" = (
/obj/structure/table/reinforced,
-/obj/item/weapon/storage/box/flashshells,
-/obj/item/weapon/storage/box/flashshells,
-/obj/item/weapon/storage/box/stunshells,
-/obj/item/weapon/storage/box/stunshells,
-/obj/item/weapon/storage/box/beanbags,
-/obj/item/weapon/storage/box/beanbags,
+/obj/item/ammo_magazine/ammo_box/b12g/flash,
+/obj/item/ammo_magazine/ammo_box/b12g/flash,
+/obj/item/ammo_magazine/ammo_box/b12g/stunshell,
+/obj/item/ammo_magazine/ammo_box/b12g/stunshell,
+/obj/item/ammo_magazine/ammo_box/b12g/beanbag,
+/obj/item/ammo_magazine/ammo_box/b12g/beanbag,
/turf/simulated/floor/tiled{
icon_state = "dark"
},
@@ -5235,15 +5235,15 @@
"vk" = (
/obj/structure/table/rack,
/obj/effect/floor_decal/industrial/outline/yellow,
-/obj/item/weapon/storage/box/shotgunammo/large,
-/obj/item/weapon/storage/box/shotgunammo/large,
-/obj/item/weapon/storage/box/shotgunammo/large,
-/obj/item/weapon/storage/box/shotgunammo/large,
-/obj/item/weapon/storage/box/shotgunammo/large,
-/obj/item/weapon/storage/box/shotgunammo/large,
-/obj/item/weapon/storage/box/shotgunammo/large,
-/obj/item/weapon/storage/box/shotgunammo/large,
-/obj/item/weapon/storage/box/shotgunammo/large,
+/obj/item/ammo_magazine/ammo_box/b12g,
+/obj/item/ammo_magazine/ammo_box/b12g,
+/obj/item/ammo_magazine/ammo_box/b12g,
+/obj/item/ammo_magazine/ammo_box/b12g,
+/obj/item/ammo_magazine/ammo_box/b12g,
+/obj/item/ammo_magazine/ammo_box/b12g,
+/obj/item/ammo_magazine/ammo_box/b12g,
+/obj/item/ammo_magazine/ammo_box/b12g,
+/obj/item/ammo_magazine/ammo_box/b12g,
/turf/simulated/floor/tiled/dark,
/area/centcom/security)
"vl" = (
@@ -5626,10 +5626,10 @@
"wY" = (
/obj/structure/table/rack,
/obj/effect/floor_decal/industrial/outline/yellow,
-/obj/item/weapon/storage/box/sniperammo,
-/obj/item/weapon/storage/box/sniperammo,
-/obj/item/weapon/storage/box/sniperammo,
-/obj/item/weapon/storage/box/sniperammo,
+/obj/item/ammo_magazine/ammo_box/b145,
+/obj/item/ammo_magazine/ammo_box/b145,
+/obj/item/ammo_magazine/ammo_box/b145,
+/obj/item/ammo_magazine/ammo_box/b145,
/turf/simulated/floor/tiled/dark,
/area/centcom/security)
"xc" = (
@@ -7159,14 +7159,14 @@
/area/centcom/control)
"Eq" = (
/obj/structure/table/rack,
-/obj/item/weapon/storage/box/stunshells/large,
-/obj/item/weapon/storage/box/stunshells/large,
-/obj/item/weapon/storage/box/stunshells/large,
-/obj/item/weapon/storage/box/stunshells/large,
-/obj/item/weapon/storage/box/stunshells/large,
-/obj/item/weapon/storage/box/stunshells/large,
-/obj/item/weapon/storage/box/stunshells/large,
-/obj/item/weapon/storage/box/stunshells/large,
+/obj/item/ammo_magazine/ammo_box/b12g/stunshell,
+/obj/item/ammo_magazine/ammo_box/b12g/stunshell,
+/obj/item/ammo_magazine/ammo_box/b12g/stunshell,
+/obj/item/ammo_magazine/ammo_box/b12g/stunshell,
+/obj/item/ammo_magazine/ammo_box/b12g/stunshell,
+/obj/item/ammo_magazine/ammo_box/b12g/stunshell,
+/obj/item/ammo_magazine/ammo_box/b12g/stunshell,
+/obj/item/ammo_magazine/ammo_box/b12g/stunshell,
/obj/effect/floor_decal/industrial/outline/yellow,
/turf/simulated/floor/tiled/dark,
/area/centcom/security)
@@ -8505,15 +8505,15 @@
"Ih" = (
/obj/structure/table/rack,
/obj/effect/floor_decal/industrial/outline/yellow,
-/obj/item/weapon/storage/box/shotgunshells/large,
-/obj/item/weapon/storage/box/shotgunshells/large,
-/obj/item/weapon/storage/box/shotgunshells/large,
-/obj/item/weapon/storage/box/shotgunshells/large,
-/obj/item/weapon/storage/box/shotgunshells/large,
-/obj/item/weapon/storage/box/shotgunshells/large,
-/obj/item/weapon/storage/box/shotgunshells/large,
-/obj/item/weapon/storage/box/shotgunshells/large,
-/obj/item/weapon/storage/box/shotgunshells/large,
+/obj/item/ammo_magazine/ammo_box/b12g/pellet,
+/obj/item/ammo_magazine/ammo_box/b12g/pellet,
+/obj/item/ammo_magazine/ammo_box/b12g/pellet,
+/obj/item/ammo_magazine/ammo_box/b12g/pellet,
+/obj/item/ammo_magazine/ammo_box/b12g/pellet,
+/obj/item/ammo_magazine/ammo_box/b12g/pellet,
+/obj/item/ammo_magazine/ammo_box/b12g/pellet,
+/obj/item/ammo_magazine/ammo_box/b12g/pellet,
+/obj/item/ammo_magazine/ammo_box/b12g/pellet,
/turf/simulated/floor/tiled/dark,
/area/centcom/security)
"Ij" = (
@@ -12083,14 +12083,14 @@
/area/centcom/security)
"Ri" = (
/obj/structure/table/rack,
-/obj/item/weapon/storage/box/beanbags/large,
-/obj/item/weapon/storage/box/beanbags/large,
-/obj/item/weapon/storage/box/beanbags/large,
-/obj/item/weapon/storage/box/beanbags/large,
-/obj/item/weapon/storage/box/beanbags/large,
-/obj/item/weapon/storage/box/beanbags/large,
-/obj/item/weapon/storage/box/beanbags/large,
-/obj/item/weapon/storage/box/beanbags/large,
+/obj/item/ammo_magazine/ammo_box/b12g/beanbag,
+/obj/item/ammo_magazine/ammo_box/b12g/beanbag,
+/obj/item/ammo_magazine/ammo_box/b12g/beanbag,
+/obj/item/ammo_magazine/ammo_box/b12g/beanbag,
+/obj/item/ammo_magazine/ammo_box/b12g/beanbag,
+/obj/item/ammo_magazine/ammo_box/b12g/beanbag,
+/obj/item/ammo_magazine/ammo_box/b12g/beanbag,
+/obj/item/ammo_magazine/ammo_box/b12g/beanbag,
/obj/effect/floor_decal/industrial/outline/yellow,
/turf/simulated/floor/tiled/dark,
/area/centcom/security)
@@ -14307,14 +14307,14 @@
})
"Wq" = (
/obj/structure/table/rack,
-/obj/item/weapon/storage/box/flashshells/large,
-/obj/item/weapon/storage/box/flashshells/large,
-/obj/item/weapon/storage/box/flashshells/large,
-/obj/item/weapon/storage/box/flashshells/large,
-/obj/item/weapon/storage/box/flashshells/large,
-/obj/item/weapon/storage/box/flashshells/large,
-/obj/item/weapon/storage/box/flashshells/large,
-/obj/item/weapon/storage/box/flashshells/large,
+/obj/item/ammo_magazine/ammo_box/b12g/flash,
+/obj/item/ammo_magazine/ammo_box/b12g/flash,
+/obj/item/ammo_magazine/ammo_box/b12g/flash,
+/obj/item/ammo_magazine/ammo_box/b12g/flash,
+/obj/item/ammo_magazine/ammo_box/b12g/flash,
+/obj/item/ammo_magazine/ammo_box/b12g/flash,
+/obj/item/ammo_magazine/ammo_box/b12g/flash,
+/obj/item/ammo_magazine/ammo_box/b12g/flash,
/obj/effect/floor_decal/industrial/outline/yellow,
/turf/simulated/floor/tiled/dark,
/area/centcom/security)
diff --git a/maps/submaps/admin_use_vr/dhael_centcom.dmm b/maps/submaps/admin_use_vr/dhael_centcom.dmm
index 4021261ffe..ebf1d39200 100644
--- a/maps/submaps/admin_use_vr/dhael_centcom.dmm
+++ b/maps/submaps/admin_use_vr/dhael_centcom.dmm
@@ -381,11 +381,11 @@
"bb" = (
/obj/structure/table/rack,
/obj/structure/window/reinforced,
-/obj/item/weapon/storage/box/shotgunammo,
-/obj/item/weapon/storage/box/shotgunammo,
-/obj/item/weapon/storage/box/shotgunshells,
-/obj/item/weapon/storage/box/shotgunshells,
-/obj/item/weapon/storage/box/shotgunshells,
+/obj/item/ammo_magazine/ammo_box/b12g,
+/obj/item/ammo_magazine/ammo_box/b12g,
+/obj/item/ammo_magazine/ammo_box/b12g/pellet,
+/obj/item/ammo_magazine/ammo_box/b12g/pellet,
+/obj/item/ammo_magazine/ammo_box/b12g/pellet,
/turf/unsimulated/floor{
icon_state = "dark"
},
@@ -557,12 +557,12 @@
/area/centcom/specops)
"br" = (
/obj/structure/table/reinforced,
-/obj/item/weapon/storage/box/flashshells,
-/obj/item/weapon/storage/box/flashshells,
-/obj/item/weapon/storage/box/stunshells,
-/obj/item/weapon/storage/box/stunshells,
-/obj/item/weapon/storage/box/beanbags,
-/obj/item/weapon/storage/box/beanbags,
+/obj/item/ammo_magazine/ammo_box/b12g/flash,
+/obj/item/ammo_magazine/ammo_box/b12g/flash,
+/obj/item/ammo_magazine/ammo_box/b12g/stunshell,
+/obj/item/ammo_magazine/ammo_box/b12g/stunshell,
+/obj/item/ammo_magazine/ammo_box/b12g/beanbag,
+/obj/item/ammo_magazine/ammo_box/b12g/beanbag,
/turf/unsimulated/floor{
icon_state = "dark"
},
@@ -3919,15 +3919,15 @@
"ik" = (
/obj/structure/table/rack,
/obj/effect/floor_decal/industrial/outline/yellow,
-/obj/item/weapon/storage/box/shotgunammo/large,
-/obj/item/weapon/storage/box/shotgunammo/large,
-/obj/item/weapon/storage/box/shotgunammo/large,
-/obj/item/weapon/storage/box/shotgunammo/large,
-/obj/item/weapon/storage/box/shotgunammo/large,
-/obj/item/weapon/storage/box/shotgunammo/large,
-/obj/item/weapon/storage/box/shotgunammo/large,
-/obj/item/weapon/storage/box/shotgunammo/large,
-/obj/item/weapon/storage/box/shotgunammo/large,
+/obj/item/ammo_magazine/ammo_box/b12g,
+/obj/item/ammo_magazine/ammo_box/b12g,
+/obj/item/ammo_magazine/ammo_box/b12g,
+/obj/item/ammo_magazine/ammo_box/b12g,
+/obj/item/ammo_magazine/ammo_box/b12g,
+/obj/item/ammo_magazine/ammo_box/b12g,
+/obj/item/ammo_magazine/ammo_box/b12g,
+/obj/item/ammo_magazine/ammo_box/b12g,
+/obj/item/ammo_magazine/ammo_box/b12g,
/turf/unsimulated/floor{
icon_state = "vault";
dir = 5
@@ -3935,14 +3935,14 @@
/area/centcom/security)
"il" = (
/obj/structure/table/rack,
-/obj/item/weapon/storage/box/beanbags/large,
-/obj/item/weapon/storage/box/beanbags/large,
-/obj/item/weapon/storage/box/beanbags/large,
-/obj/item/weapon/storage/box/beanbags/large,
-/obj/item/weapon/storage/box/beanbags/large,
-/obj/item/weapon/storage/box/beanbags/large,
-/obj/item/weapon/storage/box/beanbags/large,
-/obj/item/weapon/storage/box/beanbags/large,
+/obj/item/ammo_magazine/ammo_box/b12g/beanbag,
+/obj/item/ammo_magazine/ammo_box/b12g/beanbag,
+/obj/item/ammo_magazine/ammo_box/b12g/beanbag,
+/obj/item/ammo_magazine/ammo_box/b12g/beanbag,
+/obj/item/ammo_magazine/ammo_box/b12g/beanbag,
+/obj/item/ammo_magazine/ammo_box/b12g/beanbag,
+/obj/item/ammo_magazine/ammo_box/b12g/beanbag,
+/obj/item/ammo_magazine/ammo_box/b12g/beanbag,
/obj/effect/floor_decal/industrial/outline/yellow,
/turf/unsimulated/floor{
icon_state = "vault";
@@ -3969,14 +3969,14 @@
/area/centcom/security)
"in" = (
/obj/structure/table/rack,
-/obj/item/weapon/storage/box/flashshells/large,
-/obj/item/weapon/storage/box/flashshells/large,
-/obj/item/weapon/storage/box/flashshells/large,
-/obj/item/weapon/storage/box/flashshells/large,
-/obj/item/weapon/storage/box/flashshells/large,
-/obj/item/weapon/storage/box/flashshells/large,
-/obj/item/weapon/storage/box/flashshells/large,
-/obj/item/weapon/storage/box/flashshells/large,
+/obj/item/ammo_magazine/ammo_box/b12g/flash,
+/obj/item/ammo_magazine/ammo_box/b12g/flash,
+/obj/item/ammo_magazine/ammo_box/b12g/flash,
+/obj/item/ammo_magazine/ammo_box/b12g/flash,
+/obj/item/ammo_magazine/ammo_box/b12g/flash,
+/obj/item/ammo_magazine/ammo_box/b12g/flash,
+/obj/item/ammo_magazine/ammo_box/b12g/flash,
+/obj/item/ammo_magazine/ammo_box/b12g/flash,
/obj/effect/floor_decal/industrial/outline/yellow,
/turf/unsimulated/floor{
icon_state = "vault";
@@ -3985,14 +3985,14 @@
/area/centcom/security)
"io" = (
/obj/structure/table/rack,
-/obj/item/weapon/storage/box/stunshells/large,
-/obj/item/weapon/storage/box/stunshells/large,
-/obj/item/weapon/storage/box/stunshells/large,
-/obj/item/weapon/storage/box/stunshells/large,
-/obj/item/weapon/storage/box/stunshells/large,
-/obj/item/weapon/storage/box/stunshells/large,
-/obj/item/weapon/storage/box/stunshells/large,
-/obj/item/weapon/storage/box/stunshells/large,
+/obj/item/ammo_magazine/ammo_box/b12g/stunshell,
+/obj/item/ammo_magazine/ammo_box/b12g/stunshell,
+/obj/item/ammo_magazine/ammo_box/b12g/stunshell,
+/obj/item/ammo_magazine/ammo_box/b12g/stunshell,
+/obj/item/ammo_magazine/ammo_box/b12g/stunshell,
+/obj/item/ammo_magazine/ammo_box/b12g/stunshell,
+/obj/item/ammo_magazine/ammo_box/b12g/stunshell,
+/obj/item/ammo_magazine/ammo_box/b12g/stunshell,
/obj/effect/floor_decal/industrial/outline/yellow,
/turf/unsimulated/floor{
icon_state = "vault";
@@ -4232,10 +4232,10 @@
"iY" = (
/obj/structure/table/rack,
/obj/effect/floor_decal/industrial/outline/yellow,
-/obj/item/weapon/storage/box/sniperammo,
-/obj/item/weapon/storage/box/sniperammo,
-/obj/item/weapon/storage/box/sniperammo,
-/obj/item/weapon/storage/box/sniperammo,
+/obj/item/ammo_magazine/ammo_box/b145,
+/obj/item/ammo_magazine/ammo_box/b145,
+/obj/item/ammo_magazine/ammo_box/b145,
+/obj/item/ammo_magazine/ammo_box/b145,
/turf/unsimulated/floor{
icon_state = "vault";
dir = 5
@@ -4309,15 +4309,15 @@
"jd" = (
/obj/structure/table/rack,
/obj/effect/floor_decal/industrial/outline/yellow,
-/obj/item/weapon/storage/box/shotgunshells/large,
-/obj/item/weapon/storage/box/shotgunshells/large,
-/obj/item/weapon/storage/box/shotgunshells/large,
-/obj/item/weapon/storage/box/shotgunshells/large,
-/obj/item/weapon/storage/box/shotgunshells/large,
-/obj/item/weapon/storage/box/shotgunshells/large,
-/obj/item/weapon/storage/box/shotgunshells/large,
-/obj/item/weapon/storage/box/shotgunshells/large,
-/obj/item/weapon/storage/box/shotgunshells/large,
+/obj/item/ammo_magazine/ammo_box/b12g/pellet,
+/obj/item/ammo_magazine/ammo_box/b12g/pellet,
+/obj/item/ammo_magazine/ammo_box/b12g/pellet,
+/obj/item/ammo_magazine/ammo_box/b12g/pellet,
+/obj/item/ammo_magazine/ammo_box/b12g/pellet,
+/obj/item/ammo_magazine/ammo_box/b12g/pellet,
+/obj/item/ammo_magazine/ammo_box/b12g/pellet,
+/obj/item/ammo_magazine/ammo_box/b12g/pellet,
+/obj/item/ammo_magazine/ammo_box/b12g/pellet,
/turf/unsimulated/floor{
icon_state = "vault";
dir = 5
@@ -16221,8 +16221,8 @@
"Zw" = (
/obj/structure/table/rack,
/obj/item/weapon/gun/projectile/heavysniper,
-/obj/item/weapon/storage/box/sniperammo,
-/obj/item/weapon/storage/box/sniperammo,
+/obj/item/ammo_magazine/ammo_box/b145,
+/obj/item/ammo_magazine/ammo_box/b145,
/turf/unsimulated/floor{
icon_state = "dark"
},
diff --git a/maps/submaps/admin_use_vr/ert.dmm b/maps/submaps/admin_use_vr/ert.dmm
index 5660e5c1e5..0dd7d311ab 100644
--- a/maps/submaps/admin_use_vr/ert.dmm
+++ b/maps/submaps/admin_use_vr/ert.dmm
@@ -6488,8 +6488,8 @@
"JZ" = (
/obj/structure/table/rack/steel,
/obj/item/weapon/gun/projectile/heavysniper,
-/obj/item/weapon/storage/box/sniperammo,
-/obj/item/weapon/storage/box/sniperammo,
+/obj/item/ammo_magazine/ammo_box/b145,
+/obj/item/ammo_magazine/ammo_box/b145,
/obj/effect/floor_decal/industrial/outline/grey,
/obj/machinery/alarm/alarms_hidden{
dir = 1;
@@ -6828,15 +6828,15 @@
/area/ship/ert/armoury_st)
"LA" = (
/obj/structure/table/rack/steel,
-/obj/item/weapon/storage/box/shotgunshells/large,
-/obj/item/weapon/storage/box/shotgunshells/large,
-/obj/item/weapon/storage/box/shotgunammo/large,
-/obj/item/weapon/storage/box/shotgunammo/large,
+/obj/item/ammo_magazine/ammo_box/b12g/pellet,
+/obj/item/ammo_magazine/ammo_box/b12g/pellet,
+/obj/item/ammo_magazine/ammo_box/b12g,
+/obj/item/ammo_magazine/ammo_box/b12g,
/obj/item/weapon/storage/box/empshells/large,
-/obj/item/weapon/storage/box/flashshells/large,
-/obj/item/weapon/storage/box/beanbags/large,
-/obj/item/weapon/storage/box/beanbags/large,
-/obj/item/weapon/storage/box/stunshells/large,
+/obj/item/ammo_magazine/ammo_box/b12g/flash,
+/obj/item/ammo_magazine/ammo_box/b12g/beanbag,
+/obj/item/ammo_magazine/ammo_box/b12g/beanbag,
+/obj/item/ammo_magazine/ammo_box/b12g/stunshell,
/obj/effect/floor_decal/industrial/outline/grey,
/obj/item/weapon/gun/projectile/shotgun/pump/combat{
pixel_y = 3
@@ -6979,15 +6979,15 @@
/area/ship/ert/armoury_st)
"Me" = (
/obj/structure/table/rack/steel,
-/obj/item/weapon/storage/box/shotgunshells/large,
-/obj/item/weapon/storage/box/shotgunshells/large,
-/obj/item/weapon/storage/box/shotgunammo/large,
-/obj/item/weapon/storage/box/shotgunammo/large,
+/obj/item/ammo_magazine/ammo_box/b12g/pellet,
+/obj/item/ammo_magazine/ammo_box/b12g/pellet,
+/obj/item/ammo_magazine/ammo_box/b12g,
+/obj/item/ammo_magazine/ammo_box/b12g,
/obj/item/weapon/storage/box/empshells/large,
-/obj/item/weapon/storage/box/flashshells/large,
-/obj/item/weapon/storage/box/beanbags/large,
-/obj/item/weapon/storage/box/beanbags/large,
-/obj/item/weapon/storage/box/stunshells/large,
+/obj/item/ammo_magazine/ammo_box/b12g/flash,
+/obj/item/ammo_magazine/ammo_box/b12g/beanbag,
+/obj/item/ammo_magazine/ammo_box/b12g/beanbag,
+/obj/item/ammo_magazine/ammo_box/b12g/stunshell,
/obj/effect/floor_decal/industrial/outline/grey,
/obj/item/weapon/gun/projectile/automatic/as24{
pixel_y = 3
diff --git a/maps/submaps/admin_use_vr/kk_mercship.dmm b/maps/submaps/admin_use_vr/kk_mercship.dmm
index cc5db6e25d..ad77de938c 100644
--- a/maps/submaps/admin_use_vr/kk_mercship.dmm
+++ b/maps/submaps/admin_use_vr/kk_mercship.dmm
@@ -7132,7 +7132,7 @@
/area/ship/manta/armoury_as)
"Dq" = (
/obj/structure/table/rack,
-/obj/item/weapon/storage/box/sniperammo,
+/obj/item/ammo_magazine/ammo_box/b145,
/obj/item/weapon/gun/projectile/heavysniper,
/obj/effect/floor_decal/techfloor{
dir = 5
@@ -9278,8 +9278,8 @@
/area/ship/manta/armoury_st)
"Nc" = (
/obj/structure/table/rack,
-/obj/item/weapon/storage/box/shotgunshells/large,
-/obj/item/weapon/storage/box/shotgunammo/large,
+/obj/item/ammo_magazine/ammo_box/b12g/pellet,
+/obj/item/ammo_magazine/ammo_box/b12g,
/obj/item/weapon/gun/projectile/shotgun/pump/combat{
pixel_y = 4
},
diff --git a/maps/submaps/depreciated_vr/ert_base.dmm b/maps/submaps/depreciated_vr/ert_base.dmm
index 6c09554428..811010e5d0 100644
--- a/maps/submaps/depreciated_vr/ert_base.dmm
+++ b/maps/submaps/depreciated_vr/ert_base.dmm
@@ -507,17 +507,17 @@
/obj/structure/table/rack/steel,
/obj/item/weapon/gun/projectile/shotgun/pump/combat,
/obj/item/weapon/gun/projectile/shotgun/pump/combat,
-/obj/item/weapon/storage/box/shotgunshells,
-/obj/item/weapon/storage/box/shotgunshells,
-/obj/item/weapon/storage/box/shotgunshells,
-/obj/item/weapon/storage/box/shotgunammo,
-/obj/item/weapon/storage/box/shotgunammo,
-/obj/item/weapon/storage/box/stunshells,
-/obj/item/weapon/storage/box/stunshells,
-/obj/item/weapon/storage/box/flashshells,
-/obj/item/weapon/storage/box/flashshells,
-/obj/item/weapon/storage/box/beanbags,
-/obj/item/weapon/storage/box/beanbags,
+/obj/item/ammo_magazine/ammo_box/b12g/pellet,
+/obj/item/ammo_magazine/ammo_box/b12g/pellet,
+/obj/item/ammo_magazine/ammo_box/b12g/pellet,
+/obj/item/ammo_magazine/ammo_box/b12g,
+/obj/item/ammo_magazine/ammo_box/b12g,
+/obj/item/ammo_magazine/ammo_box/b12g/stunshell,
+/obj/item/ammo_magazine/ammo_box/b12g/stunshell,
+/obj/item/ammo_magazine/ammo_box/b12g/flash,
+/obj/item/ammo_magazine/ammo_box/b12g/flash,
+/obj/item/ammo_magazine/ammo_box/b12g/beanbag,
+/obj/item/ammo_magazine/ammo_box/b12g/beanbag,
/turf/simulated/shuttle/floor/black,
/area/shuttle/specops/centcom)
"ba" = (
diff --git a/maps/submaps/depreciated_vr/mercbase.dmm b/maps/submaps/depreciated_vr/mercbase.dmm
index 5c590364fd..57afc34abd 100644
--- a/maps/submaps/depreciated_vr/mercbase.dmm
+++ b/maps/submaps/depreciated_vr/mercbase.dmm
@@ -164,7 +164,7 @@
/obj/effect/floor_decal/corner/red{
dir = 6
},
-/obj/item/weapon/storage/box/sniperammo,
+/obj/item/ammo_magazine/ammo_box/b145,
/obj/item/weapon/gun/projectile/heavysniper,
/turf/unsimulated/floor{
dir = 2;
@@ -285,8 +285,8 @@
/obj/effect/floor_decal/corner/red{
dir = 10
},
-/obj/item/weapon/storage/box/shotgunshells/large,
-/obj/item/weapon/storage/box/shotgunammo/large,
+/obj/item/ammo_magazine/ammo_box/b12g/pellet,
+/obj/item/ammo_magazine/ammo_box/b12g,
/obj/item/weapon/gun/projectile/shotgun/pump/combat,
/obj/item/weapon/gun/projectile/shotgun/pump/combat,
/turf/unsimulated/floor{
diff --git a/maps/submaps/pois_vr/aerostat/Rockybase.dmm b/maps/submaps/pois_vr/aerostat/Rockybase.dmm
index 657988b585..2aacf9dde6 100644
--- a/maps/submaps/pois_vr/aerostat/Rockybase.dmm
+++ b/maps/submaps/pois_vr/aerostat/Rockybase.dmm
@@ -235,9 +235,9 @@
/area/submap/virgo2/Rockybase)
"aR" = (
/obj/structure/table/rack,
-/obj/item/weapon/storage/box/shotgunshells,
-/obj/item/weapon/storage/box/shotgunshells,
-/obj/item/weapon/storage/box/shotgunshells,
+/obj/item/ammo_magazine/ammo_box/b12g/pellet,
+/obj/item/ammo_magazine/ammo_box/b12g/pellet,
+/obj/item/ammo_magazine/ammo_box/b12g/pellet,
/obj/item/ammo_magazine/m10mm,
/obj/item/ammo_magazine/m10mm,
/obj/item/ammo_magazine/m10mm,
diff --git a/maps/submaps/surface_submaps/mountains/CaveTrench.dmm b/maps/submaps/surface_submaps/mountains/CaveTrench.dmm
index 4ff3001c29..3b9626828c 100644
--- a/maps/submaps/surface_submaps/mountains/CaveTrench.dmm
+++ b/maps/submaps/surface_submaps/mountains/CaveTrench.dmm
@@ -29,7 +29,7 @@
"C" = (/obj/structure/closet/cabinet,/obj/item/clothing/suit/storage/hooded/wintercoat/miner,/obj/item/clothing/suit/storage/hooded/wintercoat/miner,/turf/simulated/floor/holofloor/wood,/area/submap/CaveTrench)
"D" = (/obj/structure/coatrack,/turf/simulated/floor/holofloor/wood,/area/submap/CaveTrench)
"E" = (/obj/structure/closet/secure_closet/miner,/turf/simulated/floor/holofloor/wood,/area/submap/CaveTrench)
-"F" = (/obj/item/weapon/storage/box/shotgunammo,/turf/simulated/floor/holofloor/wood,/area/submap/CaveTrench)
+"F" = (/obj/item/ammo_magazine/ammo_box/b12g,/turf/simulated/floor/holofloor/wood,/area/submap/CaveTrench)
"G" = (/obj/structure/table/steel,/obj/item/robot_parts/l_leg,/obj/item/robot_parts/head,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/CaveTrench)
"H" = (/obj/effect/decal/cleanable/blood/gibs/robot,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/CaveTrench)
"I" = (/obj/machinery/power/port_gen/pacman,/turf/simulated/shuttle/plating,/area/submap/CaveTrench)
diff --git a/maps/submaps/surface_submaps/plains/Boathouse.dmm b/maps/submaps/surface_submaps/plains/Boathouse.dmm
index 0f20993d39..798ad3431f 100644
--- a/maps/submaps/surface_submaps/plains/Boathouse.dmm
+++ b/maps/submaps/surface_submaps/plains/Boathouse.dmm
@@ -9,7 +9,7 @@
"ai" = (/turf/simulated/wall/wood,/area/submap/Boathouse)
"aj" = (/obj/structure/closet/cabinet,/obj/item/clothing/accessory/jacket,/obj/item/clothing/accessory/jacket,/obj/item/clothing/head/beanie,/turf/simulated/floor/wood,/area/submap/Boathouse)
"ak" = (/turf/simulated/floor/wood,/area/submap/Boathouse)
-"al" = (/obj/structure/closet/cabinet,/obj/item/weapon/gun/projectile/shotgun/doublebarrel,/obj/item/weapon/storage/box/beanbags,/turf/simulated/floor/wood,/area/submap/Boathouse)
+"al" = (/obj/structure/closet/cabinet,/obj/item/weapon/gun/projectile/shotgun/doublebarrel,/obj/item/ammo_magazine/ammo_box/b12g/beanbag,/turf/simulated/floor/wood,/area/submap/Boathouse)
"am" = (/turf/simulated/floor/carpet/turcarpet,/area/submap/Boathouse)
"an" = (/obj/structure/table/woodentable,/obj/item/weapon/storage/toolbox/mechanical,/turf/simulated/floor/wood,/area/submap/Boathouse)
"ao" = (/obj/structure/railing{dir = 8},/obj/structure/railing,/turf/simulated/floor/water,/area/submap/Boathouse)
diff --git a/maps/submaps/surface_submaps/plains/Boathouse_vr.dmm b/maps/submaps/surface_submaps/plains/Boathouse_vr.dmm
index 062bb10591..31ae85b9aa 100644
--- a/maps/submaps/surface_submaps/plains/Boathouse_vr.dmm
+++ b/maps/submaps/surface_submaps/plains/Boathouse_vr.dmm
@@ -42,7 +42,7 @@
"al" = (
/obj/structure/closet/cabinet,
/obj/item/weapon/gun/projectile/shotgun/doublebarrel,
-/obj/item/weapon/storage/box/beanbags,
+/obj/item/ammo_magazine/ammo_box/b12g/beanbag,
/turf/simulated/floor/wood,
/area/submap/Boathouse)
"am" = (
diff --git a/maps/submaps/surface_submaps/plains/Thiefc.dmm b/maps/submaps/surface_submaps/plains/Thiefc.dmm
index f8b8327363..d83aa9631f 100644
--- a/maps/submaps/surface_submaps/plains/Thiefc.dmm
+++ b/maps/submaps/surface_submaps/plains/Thiefc.dmm
@@ -13,7 +13,7 @@
"m" = (/obj/structure/table/steel,/obj/item/weapon/paper{desc = "This is some bullshit. First chance we got to knick something that looks half decent turns out to be mostly junk. And now we're getting calls that the other stash we've got has got a spider problem. Fuck this, Between the shitty weather, The pissed of bugs, And now apparently some NT goon running around in the area there's hardly enough reason to stick around. I'm telling Carl I'm out tommorow."; name = "Note"},/turf/simulated/floor/outdoors/dirt{outdoors = 0},/area/submap/Thiefc)
"n" = (/obj/vehicle/train/trolley,/turf/simulated/floor/outdoors/dirt{outdoors = 0},/area/submap/Thiefc)
"o" = (/obj/structure/closet/crate,/obj/item/weapon/cell/device/weapon,/obj/item/weapon/cell/device/weapon,/turf/simulated/floor/outdoors/dirt{outdoors = 0},/area/submap/Thiefc)
-"p" = (/obj/structure/closet/crate,/obj/item/weapon/storage/box/shotgunammo,/obj/item/weapon/storage/box/practiceshells,/obj/random/projectile/scrapped_gun,/turf/simulated/floor/outdoors/dirt{outdoors = 0},/area/submap/Thiefc)
+"p" = (/obj/structure/closet/crate,/obj/item/ammo_magazine/ammo_box/b12g,/obj/item/weapon/storage/box/practiceshells,/obj/random/projectile/scrapped_gun,/turf/simulated/floor/outdoors/dirt{outdoors = 0},/area/submap/Thiefc)
(1,1,1) = {"
aaaaaaaaaaaaaaaaaaaaaaaaa
diff --git a/maps/tether/submaps/tether_centcom.dmm b/maps/tether/submaps/tether_centcom.dmm
index fdbd846032..ae96dcf680 100644
--- a/maps/tether/submaps/tether_centcom.dmm
+++ b/maps/tether/submaps/tether_centcom.dmm
@@ -31,8 +31,8 @@
"ag" = (
/obj/structure/table/rack,
/obj/item/weapon/gun/projectile/heavysniper,
-/obj/item/weapon/storage/box/sniperammo,
-/obj/item/weapon/storage/box/sniperammo,
+/obj/item/ammo_magazine/ammo_box/b145,
+/obj/item/ammo_magazine/ammo_box/b145,
/turf/simulated/floor/tiled/dark,
/area/centcom/specops)
"ah" = (
@@ -627,11 +627,11 @@
"bZ" = (
/obj/structure/table/rack,
/obj/structure/window/reinforced,
-/obj/item/weapon/storage/box/shotgunammo,
-/obj/item/weapon/storage/box/shotgunammo,
-/obj/item/weapon/storage/box/shotgunshells,
-/obj/item/weapon/storage/box/shotgunshells,
-/obj/item/weapon/storage/box/shotgunshells,
+/obj/item/ammo_magazine/ammo_box/b12g,
+/obj/item/ammo_magazine/ammo_box/b12g,
+/obj/item/ammo_magazine/ammo_box/b12g/pellet,
+/obj/item/ammo_magazine/ammo_box/b12g/pellet,
+/obj/item/ammo_magazine/ammo_box/b12g/pellet,
/turf/simulated/floor/tiled{
icon_state = "dark"
},
@@ -1569,12 +1569,12 @@
/area/centcom/terminal)
"fl" = (
/obj/structure/table/reinforced,
-/obj/item/weapon/storage/box/flashshells,
-/obj/item/weapon/storage/box/flashshells,
-/obj/item/weapon/storage/box/stunshells,
-/obj/item/weapon/storage/box/stunshells,
-/obj/item/weapon/storage/box/beanbags,
-/obj/item/weapon/storage/box/beanbags,
+/obj/item/ammo_magazine/ammo_box/b12g/flash,
+/obj/item/ammo_magazine/ammo_box/b12g/flash,
+/obj/item/ammo_magazine/ammo_box/b12g/stunshell,
+/obj/item/ammo_magazine/ammo_box/b12g/stunshell,
+/obj/item/ammo_magazine/ammo_box/b12g/beanbag,
+/obj/item/ammo_magazine/ammo_box/b12g/beanbag,
/turf/simulated/floor/tiled{
icon_state = "dark"
},
@@ -5313,15 +5313,15 @@
"vk" = (
/obj/structure/table/rack,
/obj/effect/floor_decal/industrial/outline/yellow,
-/obj/item/weapon/storage/box/shotgunammo/large,
-/obj/item/weapon/storage/box/shotgunammo/large,
-/obj/item/weapon/storage/box/shotgunammo/large,
-/obj/item/weapon/storage/box/shotgunammo/large,
-/obj/item/weapon/storage/box/shotgunammo/large,
-/obj/item/weapon/storage/box/shotgunammo/large,
-/obj/item/weapon/storage/box/shotgunammo/large,
-/obj/item/weapon/storage/box/shotgunammo/large,
-/obj/item/weapon/storage/box/shotgunammo/large,
+/obj/item/ammo_magazine/ammo_box/b12g,
+/obj/item/ammo_magazine/ammo_box/b12g,
+/obj/item/ammo_magazine/ammo_box/b12g,
+/obj/item/ammo_magazine/ammo_box/b12g,
+/obj/item/ammo_magazine/ammo_box/b12g,
+/obj/item/ammo_magazine/ammo_box/b12g,
+/obj/item/ammo_magazine/ammo_box/b12g,
+/obj/item/ammo_magazine/ammo_box/b12g,
+/obj/item/ammo_magazine/ammo_box/b12g,
/turf/simulated/floor/tiled/dark,
/area/centcom/security)
"vm" = (
@@ -5691,10 +5691,10 @@
"wY" = (
/obj/structure/table/rack,
/obj/effect/floor_decal/industrial/outline/yellow,
-/obj/item/weapon/storage/box/sniperammo,
-/obj/item/weapon/storage/box/sniperammo,
-/obj/item/weapon/storage/box/sniperammo,
-/obj/item/weapon/storage/box/sniperammo,
+/obj/item/ammo_magazine/ammo_box/b145,
+/obj/item/ammo_magazine/ammo_box/b145,
+/obj/item/ammo_magazine/ammo_box/b145,
+/obj/item/ammo_magazine/ammo_box/b145,
/turf/simulated/floor/tiled/dark,
/area/centcom/security)
"xc" = (
@@ -7194,14 +7194,14 @@
/area/centcom/control)
"Eq" = (
/obj/structure/table/rack,
-/obj/item/weapon/storage/box/stunshells/large,
-/obj/item/weapon/storage/box/stunshells/large,
-/obj/item/weapon/storage/box/stunshells/large,
-/obj/item/weapon/storage/box/stunshells/large,
-/obj/item/weapon/storage/box/stunshells/large,
-/obj/item/weapon/storage/box/stunshells/large,
-/obj/item/weapon/storage/box/stunshells/large,
-/obj/item/weapon/storage/box/stunshells/large,
+/obj/item/ammo_magazine/ammo_box/b12g/stunshell,
+/obj/item/ammo_magazine/ammo_box/b12g/stunshell,
+/obj/item/ammo_magazine/ammo_box/b12g/stunshell,
+/obj/item/ammo_magazine/ammo_box/b12g/stunshell,
+/obj/item/ammo_magazine/ammo_box/b12g/stunshell,
+/obj/item/ammo_magazine/ammo_box/b12g/stunshell,
+/obj/item/ammo_magazine/ammo_box/b12g/stunshell,
+/obj/item/ammo_magazine/ammo_box/b12g/stunshell,
/obj/effect/floor_decal/industrial/outline/yellow,
/turf/simulated/floor/tiled/dark,
/area/centcom/security)
@@ -8528,15 +8528,15 @@
"Ih" = (
/obj/structure/table/rack,
/obj/effect/floor_decal/industrial/outline/yellow,
-/obj/item/weapon/storage/box/shotgunshells/large,
-/obj/item/weapon/storage/box/shotgunshells/large,
-/obj/item/weapon/storage/box/shotgunshells/large,
-/obj/item/weapon/storage/box/shotgunshells/large,
-/obj/item/weapon/storage/box/shotgunshells/large,
-/obj/item/weapon/storage/box/shotgunshells/large,
-/obj/item/weapon/storage/box/shotgunshells/large,
-/obj/item/weapon/storage/box/shotgunshells/large,
-/obj/item/weapon/storage/box/shotgunshells/large,
+/obj/item/ammo_magazine/ammo_box/b12g/pellet,
+/obj/item/ammo_magazine/ammo_box/b12g/pellet,
+/obj/item/ammo_magazine/ammo_box/b12g/pellet,
+/obj/item/ammo_magazine/ammo_box/b12g/pellet,
+/obj/item/ammo_magazine/ammo_box/b12g/pellet,
+/obj/item/ammo_magazine/ammo_box/b12g/pellet,
+/obj/item/ammo_magazine/ammo_box/b12g/pellet,
+/obj/item/ammo_magazine/ammo_box/b12g/pellet,
+/obj/item/ammo_magazine/ammo_box/b12g/pellet,
/turf/simulated/floor/tiled/dark,
/area/centcom/security)
"Ij" = (
@@ -12177,14 +12177,14 @@
/area/centcom/security)
"Ri" = (
/obj/structure/table/rack,
-/obj/item/weapon/storage/box/beanbags/large,
-/obj/item/weapon/storage/box/beanbags/large,
-/obj/item/weapon/storage/box/beanbags/large,
-/obj/item/weapon/storage/box/beanbags/large,
-/obj/item/weapon/storage/box/beanbags/large,
-/obj/item/weapon/storage/box/beanbags/large,
-/obj/item/weapon/storage/box/beanbags/large,
-/obj/item/weapon/storage/box/beanbags/large,
+/obj/item/ammo_magazine/ammo_box/b12g/beanbag,
+/obj/item/ammo_magazine/ammo_box/b12g/beanbag,
+/obj/item/ammo_magazine/ammo_box/b12g/beanbag,
+/obj/item/ammo_magazine/ammo_box/b12g/beanbag,
+/obj/item/ammo_magazine/ammo_box/b12g/beanbag,
+/obj/item/ammo_magazine/ammo_box/b12g/beanbag,
+/obj/item/ammo_magazine/ammo_box/b12g/beanbag,
+/obj/item/ammo_magazine/ammo_box/b12g/beanbag,
/obj/effect/floor_decal/industrial/outline/yellow,
/turf/simulated/floor/tiled/dark,
/area/centcom/security)
@@ -14352,14 +14352,14 @@
})
"Wq" = (
/obj/structure/table/rack,
-/obj/item/weapon/storage/box/flashshells/large,
-/obj/item/weapon/storage/box/flashshells/large,
-/obj/item/weapon/storage/box/flashshells/large,
-/obj/item/weapon/storage/box/flashshells/large,
-/obj/item/weapon/storage/box/flashshells/large,
-/obj/item/weapon/storage/box/flashshells/large,
-/obj/item/weapon/storage/box/flashshells/large,
-/obj/item/weapon/storage/box/flashshells/large,
+/obj/item/ammo_magazine/ammo_box/b12g/flash,
+/obj/item/ammo_magazine/ammo_box/b12g/flash,
+/obj/item/ammo_magazine/ammo_box/b12g/flash,
+/obj/item/ammo_magazine/ammo_box/b12g/flash,
+/obj/item/ammo_magazine/ammo_box/b12g/flash,
+/obj/item/ammo_magazine/ammo_box/b12g/flash,
+/obj/item/ammo_magazine/ammo_box/b12g/flash,
+/obj/item/ammo_magazine/ammo_box/b12g/flash,
/obj/effect/floor_decal/industrial/outline/yellow,
/turf/simulated/floor/tiled/dark,
/area/centcom/security)
diff --git a/maps/tether/tether-03-surface3.dmm b/maps/tether/tether-03-surface3.dmm
index 8334e042a5..8478e8a3fa 100644
--- a/maps/tether/tether-03-surface3.dmm
+++ b/maps/tether/tether-03-surface3.dmm
@@ -20249,6 +20249,8 @@
},
/obj/item/weapon/storage/pill_bottle/dice,
/obj/item/weapon/storage/pill_bottle/dice_nerd,
+/obj/item/weapon/deck/wizoff,
+/obj/item/weapon/book/manual/wizzoffguide,
/turf/simulated/floor/wood,
/area/library)
"aGZ" = (
diff --git a/vorestation.dme b/vorestation.dme
index e20cfe9e31..3df7555d26 100644
--- a/vorestation.dme
+++ b/vorestation.dme
@@ -2427,6 +2427,7 @@
#include "code\modules\games\dice.dm"
#include "code\modules\games\spaceball_cards.dm"
#include "code\modules\games\tarot.dm"
+#include "code\modules\games\wizoff.dm"
#include "code\modules\genetics\side_effects.dm"
#include "code\modules\ghosttrap\trap.dm"
#include "code\modules\holodeck\HolodeckControl.dm"