diff --git a/code/WorkInProgress/Wrongnumber/weldbackpack.dm b/code/WorkInProgress/Wrongnumber/weldbackpack.dm
new file mode 100644
index 00000000000..051c2c2741f
--- /dev/null
+++ b/code/WorkInProgress/Wrongnumber/weldbackpack.dm
@@ -0,0 +1,49 @@
+/obj/item/weapon/weldpack
+ name = "Portable welding tank."
+ desc = "For welding on the go!"
+ icon_state = "backpack"
+ w_class = 4.0
+ flags = 259.0
+ var/max_fuel = 100
+
+/obj/item/weapon/weldpack/New()
+ var/datum/reagents/R = new/datum/reagents(100) //5 refills
+ reagents = R
+ R.my_atom = src
+ R.add_reagent("fuel", 100)
+
+/obj/item/weapon/weldpack/attackby(obj/item/W as obj, mob/user as mob)
+ if(istype(W, /obj/item/weapon/weldingtool)
+ if(W.welding & prob(15))
+ message_admins("[key_name_admin(user)] triggered a fueltank explosion.")
+ log_game("[key_name(user)] triggered a fueltank explosion.")
+ user << "\red That was stupid of you."
+ explosion(src.loc,-1,0,2)
+ if(src)
+ del(src)
+ return
+ else
+ if(W.welding)
+ user << "\red That was close!"
+ src.reagents.trans_to(W, W.max_fuel)
+ user << "\blue Welder refilled!"
+ playsound(src.loc, 'refill.ogg', 50, 1, -6)
+ return
+ user << "\blue The tank scoffs at your insolence. It only provides services to welders."
+ return
+
+/obj/item/weapon/weldpack/afterattack(obj/O as obj, mob/user as mob)
+ if (istype(O, /obj/structure/reagent_dispensers/fueltank) && get_dist(src,O) <= 1 && src.reagents.total_volume < max_fuel)
+ O.reagents.trans_to(src, max_fuel)
+ user << "\blue Tank refilled!"
+ playsound(src.loc, 'refill.ogg', 50, 1, -6)
+ return
+ else if (istype(O, /obj/structure/reagent_dispensers/fueltank) && get_dist(src,O) <= 1 && src.reagents.total_volume == max_fuel)
+ user << "\blue Tank is already full!"
+ return
+
+/obj/item/weapon/weldpack/examine()
+ set src in usr
+ usr << text("\icon[] [] units of fuel left!", src, src.reagents.total_volume)
+ ..()
+ return
diff --git a/code/WorkInProgress/detective_work.dm b/code/WorkInProgress/detective_work.dm
index 9b2d62cb00e..8a7db0cf947 100644
--- a/code/WorkInProgress/detective_work.dm
+++ b/code/WorkInProgress/detective_work.dm
@@ -220,6 +220,7 @@ obj/machinery/computer/forensic_scanning
var/obj/item/weapon/paper/P = new(loc)
P.name = "Scan Data ([scan_name])"
P.info = "[scan_data]"
+ P.overlays += "paper_words"
else
temp = "Print Failed: No Data"
if("erase")
diff --git a/code/defines/obj/clothing/jumpsuit.dm b/code/defines/obj/clothing/jumpsuit.dm
index 78229b539b8..3ccca7d524d 100644
--- a/code/defines/obj/clothing/jumpsuit.dm
+++ b/code/defines/obj/clothing/jumpsuit.dm
@@ -375,7 +375,7 @@
item_state = "det"
color = "detective"
armor = list(melee = 10, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0)
- var/obj/item/weapon/gun/projectile/detective/gun
+ var/obj/item/weapon/gun
/obj/item/clothing/under/scratch
name = "White Suit"
diff --git a/code/game/gamemodes/traitor/traitor.dm b/code/game/gamemodes/traitor/traitor.dm
index 3a361fd10c4..411964c2ea0 100644
--- a/code/game/gamemodes/traitor/traitor.dm
+++ b/code/game/gamemodes/traitor/traitor.dm
@@ -5,7 +5,7 @@
/datum/game_mode/traitor
name = "traitor"
config_tag = "traitor"
- restricted_jobs = list("Cyborg", "AI")//Approved by headmins for a week test, if you see this it would be nice if you didn't spread it everywhere
+ restricted_jobs = list("Cyborg")//Approved by headmins for a week test, if you see this it would be nice if you didn't spread it everywhere
required_players = 0
required_enemies = 1
@@ -13,7 +13,7 @@
var/const/waittime_h = 1800 //upper bound on time before intercept arrives (in tenths of seconds)
var/traitors_possible = 4 //hard limit on traitors if scaling is turned off
- var/const/traitor_scaling_coeff = 5.0 //how much does the amount of players get divided by to determine traitors
+ var/const/traitor_scaling_coeff = 10.0 //how much does the amount of players get divided by to determine traitors
/datum/game_mode/traitor/announce()
@@ -31,7 +31,7 @@
var/num_traitors = 1
if(config.traitor_scaling)
- num_traitors = max(1, round((num_players())/(traitor_scaling_coeff)))
+ num_traitors = max(1, round((num_players())/(traitor_scaling_coeff)) + 1)
else
num_traitors = max(1, min(num_players(), traitors_possible))
@@ -83,18 +83,23 @@
traitor.objectives += block_objective
else
- switch(rand(1,100))
- if(1 to 50)
- var/datum/objective/assassinate/kill_objective = new
- kill_objective.owner = traitor
- kill_objective.find_target()
- traitor.objectives += kill_objective
- else
- var/datum/objective/steal/steal_objective = new
- steal_objective.owner = traitor
- steal_objective.find_target()
- traitor.objectives += steal_objective
- switch(rand(1,100))
+ for(var/i = 1, i <= rand(1,3), i++)
+ switch(rand(1,100))
+ if(1 to 40)
+ var/datum/objective/assassinate/kill_objective = new
+ kill_objective.owner = traitor
+ kill_objective.find_target()
+ traitor.objectives += kill_objective
+ else
+ var/datum/objective/steal/steal_objective = new
+ steal_objective.owner = traitor
+ steal_objective.find_target()
+ traitor.objectives += steal_objective
+ if (!(locate(/datum/objective/escape) in traitor.objectives))
+ var/datum/objective/escape/escape_objective = new
+ escape_objective.owner = traitor
+ traitor.objectives += escape_objective
+/* switch(rand(1,100))
if(1 to 90)
if (!(locate(/datum/objective/escape) in traitor.objectives))
var/datum/objective/escape/escape_objective = new
@@ -105,7 +110,7 @@
if (!(locate(/datum/objective/hijack) in traitor.objectives))
var/datum/objective/hijack/hijack_objective = new
hijack_objective.owner = traitor
- traitor.objectives += hijack_objective
+ traitor.objectives += hijack_objective*/
return
diff --git a/code/game/objects/closets/secure/security.dm b/code/game/objects/closets/secure/security.dm
index b84faa8d7cf..3a674a217db 100644
--- a/code/game/objects/closets/secure/security.dm
+++ b/code/game/objects/closets/secure/security.dm
@@ -57,7 +57,6 @@
new /obj/item/clothing/gloves/hos(src)
new /obj/item/clothing/head/helmet/HoS/dermal(src)
new /obj/item/device/radio/headset/heads/hos(src)
- new /obj/item/weapon/shield/riot(src)
new /obj/item/weapon/storage/lockbox/loyalty(src)
new /obj/item/weapon/storage/flashbang_kit(src)
new /obj/item/weapon/storage/belt/security(src)
diff --git a/code/game/objects/devices/PDA/uplink.dm b/code/game/objects/devices/PDA/uplink.dm
index 170619459cb..31e4943d1bc 100644
--- a/code/game/objects/devices/PDA/uplink.dm
+++ b/code/game/objects/devices/PDA/uplink.dm
@@ -44,7 +44,8 @@
menu_message += "
"
menu_message += "Freedom Implant (with injector) (3)
"
menu_message += "Uplink Implant (5 crystals inside) (10)
"
- menu_message += "Paralysis Pen (3)
" //Note that this goes to the updated sleepypen now.
+// menu_message += "Paralysis Pen (3)
"
+//When given the choice, people have been P2W
menu_message += "Sleepy Pen (4)
" //Terrible -Pete.
menu_message += "
"
menu_message += "Detomatix Cartridge (3)
"
diff --git a/code/game/objects/devices/taperecorder.dm b/code/game/objects/devices/taperecorder.dm
index abb413dea65..3f6572a034a 100644
--- a/code/game/objects/devices/taperecorder.dm
+++ b/code/game/objects/devices/taperecorder.dm
@@ -207,6 +207,7 @@
t1 += "[src.storedinfo[i]]
"
P.info = t1
P.name = "paper- 'Transcript'"
+ P.overlays += "paper_words"
/obj/item/device/taperecorder/attack_self(mob/user)
diff --git a/code/modules/clothing/suits/armor.dm b/code/modules/clothing/suits/armor.dm
index decdd5f4a70..133d876d65e 100644
--- a/code/modules/clothing/suits/armor.dm
+++ b/code/modules/clothing/suits/armor.dm
@@ -1,5 +1,5 @@
/obj/item/clothing/suit/armor
- allowed = list(/obj/item/weapon/gun/energy,/obj/item/weapon/pepperspray,/obj/item/weapon/gun/projectile,/obj/item/ammo_magazine,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/handcuffs)
+ allowed = list(/obj/item/weapon/gun/energy,/obj/item/weapon/pepperspray,/obj/item/weapon/gun/projectile,/obj/item/ammo_magazine,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/handcuffs,/obj/item/policetaperoll)
body_parts_covered = UPPER_TORSO|LOWER_TORSO
flags = FPRINT | TABLEPASS
@@ -62,7 +62,7 @@
item_state = "gearharness"
body_parts_covered = UPPER_TORSO|LOWER_TORSO
flags = FPRINT | TABLEPASS | ONESIZEFITSALL
- allowed = list(/obj/item/weapon/gun/energy,/obj/item/weapon/pepperspray,/obj/item/weapon/gun/projectile,/obj/item/ammo_magazine,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/handcuffs)
+ allowed = list(/obj/item/weapon/gun/energy,/obj/item/weapon/pepperspray,/obj/item/weapon/gun/projectile,/obj/item/ammo_magazine,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/handcuffs,/obj/item/policetaperoll)
/obj/item/clothing/suit/armor/reactive
name = "Reactive Teleport Armor"
@@ -81,7 +81,7 @@
item_state = "armourrigvest"
body_parts_covered = UPPER_TORSO|LOWER_TORSO
flags = FPRINT | TABLEPASS | ONESIZEFITSALL
- allowed = list(/obj/item/weapon/gun/energy,/obj/item/weapon/pepperspray,/obj/item/weapon/gun/projectile,/obj/item/ammo_magazine,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/handcuffs)
+ allowed = list(/obj/item/weapon/gun/energy,/obj/item/weapon/pepperspray,/obj/item/weapon/gun/projectile,/obj/item/ammo_magazine,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/handcuffs,/obj/item/policetaperoll)
armor = list(melee = 50, bullet = 15, laser = 50, energy = 10, bomb = 25, bio = 0, rad = 0)
/obj/item/clothing/suit/armor/reactive/IsShield()
diff --git a/code/modules/clothing/suits/detective.dm b/code/modules/clothing/suits/detective.dm
index 58ec3fd0008..8ea2d259d66 100644
--- a/code/modules/clothing/suits/detective.dm
+++ b/code/modules/clothing/suits/detective.dm
@@ -12,7 +12,7 @@
icon_state = "detective"
item_state = "det_suit"
body_parts_covered = UPPER_TORSO|LOWER_TORSO|LEGS|ARMS
- allowed = list(/obj/item/weapon/tank/emergency_oxygen, /obj/item/device/flashlight,/obj/item/weapon/gun/energy,/obj/item/weapon/gun/projectile,/obj/item/ammo_magazine,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/handcuffs,/obj/item/weapon/cigpacket,/obj/item/weapon/zippo,/obj/item/device/detective_scanner,/obj/item/device/taperecorder)
+ allowed = list(/obj/item/weapon/tank/emergency_oxygen, /obj/item/device/flashlight,/obj/item/weapon/gun/energy,/obj/item/weapon/gun/projectile,/obj/item/ammo_magazine,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/handcuffs,/obj/item/weapon/cigpacket,/obj/item/weapon/zippo,/obj/item/device/detective_scanner,/obj/item/device/taperecorder,/obj/item/policetaperoll)
armor = list(melee = 50, bullet = 10, laser = 25, energy = 10, bomb = 0, bio = 0, rad = 0)
@@ -23,7 +23,7 @@
item_state = "armor"
flags = FPRINT | TABLEPASS | ONESIZEFITSALL
body_parts_covered = UPPER_TORSO|LOWER_TORSO
- allowed = list(/obj/item/weapon/gun/energy,/obj/item/weapon/gun/projectile,/obj/item/ammo_magazine,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/handcuffs)
+ allowed = list(/obj/item/weapon/gun/energy,/obj/item/weapon/gun/projectile,/obj/item/ammo_magazine,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/handcuffs,/obj/item/policetaperoll)
armor = list(melee = 50, bullet = 15, laser = 50, energy = 10, bomb = 25, bio = 0, rad = 0)
/obj/item/clothing/under/det/verb/holster()
@@ -32,7 +32,7 @@
set src in usr
if(!gun)
- if(istype(usr.get_active_hand(),/obj/item/weapon/gun/projectile/detective))
+ if(istype(usr.get_active_hand(),/obj/item/weapon/gun/projectile/detective) || istype(usr.get_active_hand(),/obj/item/weapon/gun/energy/stunrevolver))
gun = usr.get_active_hand()
usr.drop_item()
gun.loc = src
diff --git a/code/modules/mob/living/say.dm b/code/modules/mob/living/say.dm
index 260889436ee..a760f4dfea4 100644
--- a/code/modules/mob/living/say.dm
+++ b/code/modules/mob/living/say.dm
@@ -221,7 +221,7 @@
//I see no reason to restrict such way of whispering
if ("whisper")
- whisper(message_old)
+ whisper(copytext(message_old, 3))
return
if ("binary")