diff --git a/code/_onclick/click.dm b/code/_onclick/click.dm
index 5ab826fa86..cfa6e0cc2c 100644
--- a/code/_onclick/click.dm
+++ b/code/_onclick/click.dm
@@ -338,7 +338,7 @@
is_buckled = 1
else
is_buckled = 0
- if( is_buckled || !A || !x || !y || !A.x || !A.y || (stat && !isobserver(src))) return
+ if(!A || !x || !y || !A.x || !A.y) return
var/dx = A.x - x
var/dy = A.y - y
if(!dx && !dy) return
diff --git a/code/controllers/voting.dm b/code/controllers/voting.dm
index 3387239101..560dd8613c 100644
--- a/code/controllers/voting.dm
+++ b/code/controllers/voting.dm
@@ -9,6 +9,7 @@ datum/controller/vote
var/mode = null
var/question = null
var/list/choices = list()
+ var/list/gamemode_names = list()
var/list/voted = list()
var/list/voting = list()
var/list/current_votes = list()
@@ -217,6 +218,7 @@ datum/controller/vote
for (var/T in L)
var/datum/game_mode/M = new T()
if (M.config_tag == F)
+ gamemode_names[M.config_tag] = capitalize(M.name) //It's ugly to put this here but it works
additional_text.Add("
[M.required_players] | ")
break
if("crew_transfer")
@@ -308,9 +310,9 @@ datum/controller/vote
if(!votes) votes = 0
. += ""
if(current_votes[C.ckey] == i)
- . += "| [choices[i]] | [votes] | "
+ . += "[gamemode_names[choices[i]]] | [votes] | "
else
- . += "[choices[i]] | [votes] | "
+ . += "[gamemode_names[choices[i]]] | [votes] | "
if (additional_text.len >= i)
. += additional_text[i]
diff --git a/code/game/machinery/alarm.dm b/code/game/machinery/alarm.dm
index 3819c2d9d5..68c6b3364e 100644
--- a/code/game/machinery/alarm.dm
+++ b/code/game/machinery/alarm.dm
@@ -111,8 +111,6 @@
pixel_x = (dir & 3)? 0 : (dir == 4 ? -24 : 24)
pixel_y = (dir & 3)? (dir ==1 ? -24 : 24) : 0
update_icon()
- if(ticker && ticker.current_state == 3)//if the game is running
- src.initialize()
return
first_run()
diff --git a/code/game/machinery/bots/secbot.dm b/code/game/machinery/bots/secbot.dm
index 4dd6064925..179557fb26 100644
--- a/code/game/machinery/bots/secbot.dm
+++ b/code/game/machinery/bots/secbot.dm
@@ -643,6 +643,9 @@ Auto Patrol: []"},
return
src.anchored = 0
for(var/mob/living/M in view(search_range,src)) //Let's find us a criminal
+ if(M.invisibility >= INVISIBILITY_LEVEL_ONE) // Cannot see him. see_invisible is a mob-var
+ continue
+
if(istype(M, /mob/living/carbon))
var/mob/living/carbon/C = M
if(C.stat || C.handcuffed)
diff --git a/code/game/machinery/computer/HolodeckControl.dm b/code/game/machinery/computer/HolodeckControl.dm
index 1c9fe7cfe5..ff054b9f08 100644
--- a/code/game/machinery/computer/HolodeckControl.dm
+++ b/code/game/machinery/computer/HolodeckControl.dm
@@ -444,7 +444,7 @@ var/global/list/holodeck_programs = list(
throw_range = 5
throwforce = 0
w_class = 2.0
- flags = FPRINT | TABLEPASS | NOSHIELD
+ flags = FPRINT | TABLEPASS | NOSHIELD | NOBLOODY
var/active = 0
/obj/item/weapon/holo/esword/green
diff --git a/code/game/machinery/portable_turret.dm b/code/game/machinery/portable_turret.dm
index 8d4d4ac2df..cf19d9de27 100644
--- a/code/game/machinery/portable_turret.dm
+++ b/code/game/machinery/portable_turret.dm
@@ -55,6 +55,8 @@
var/datum/effect/effect/system/spark_spread/spark_system //the spark system, used for generating... sparks?
+ var/wrenching = 0
+
/obj/machinery/porta_turret/stationary
lethal = 1
installation = /obj/item/weapon/gun/energy/laser
@@ -223,7 +225,7 @@
else
usr << "It has to be secured first!"
- updateUsrDialog()
+ attack_hand(usr)
return
switch(href_list["operation"]) //toggles customizable behavioural protocols
@@ -242,7 +244,7 @@
check_access = !check_access
if("checkxenos")
check_anomalies = !check_anomalies
- updateUsrDialog()
+ attack_hand(usr)
/obj/machinery/porta_turret/power_change()
@@ -288,19 +290,32 @@
sleep(60) //6 seconds for the traitor to gtfo of the area before the turret decides to ruin his shit
on = 1 //turns it back on. The cover popUp() popDown() are automatically called in process(), no need to define it here
- else if((istype(I, /obj/item/weapon/wrench)) && (!on))
- if(raised) return
+ else if((istype(I, /obj/item/weapon/wrench)))
+ if(on || raised)
+ user << ""
+ return
+ if(wrenching)
+ user << "Someone is already [anchored ? "un" : ""]securing the turret!"
+ return
+ if(!anchored && isinspace())
+ user << "Cannot secure turrets in space!"
+ return
+ user.visible_message( \
+ "[user] begins [anchored ? "un" : ""]securing the turret.", \
+ "You begin [anchored ? "un" : ""]securing the turret." \
+ )
+
+ wrenching = 1
if(do_after(user, 50))
//This code handles moving the turret around. After all, it's a portable turret!
- if(!anchored && !isinspace())
+ if(!anchored)
playsound(loc, 'sound/items/Ratchet.ogg', 100, 1)
anchored = 1
invisibility = INVISIBILITY_LEVEL_TWO
update_icon()
user << "You secure the exterior bolts on the turret."
- cover = new /obj/machinery/porta_turret_cover(loc) //create a new turret. While this is handled in process(), this is to workaround a bug where the turret becomes invisible for a split second
- cover.Parent_Turret = src //make the cover's parent src
+ create_cover()
else if(anchored)
playsound(loc, 'sound/items/Ratchet.ogg', 100, 1)
anchored = 0
@@ -308,6 +323,7 @@
invisibility = 0
update_icon()
del(cover) //deletes the cover, and the turret instance itself becomes its own cover. - qdel
+ wrenching = 0
else if(istype(I, /obj/item/weapon/card/id)||istype(I, /obj/item/device/pda))
//Behavior lock/unlock mangement
@@ -348,7 +364,7 @@
spawn()
sleep(60)
attacked = 0
-
+
..()
if((Proj.damage_type == BRUTE || Proj.damage_type == BURN))
@@ -395,7 +411,10 @@
update_icon()
del(cover) //deletes the cover - no need on keeping it there! - del
-
+/obj/machinery/porta_turret/proc/create_cover()
+ if(cover == null && anchored)
+ cover = new /obj/machinery/porta_turret_cover(loc) //if the turret has no cover and is anchored, give it a cover
+ cover.Parent_Turret = src //assign the cover its Parent_Turret, which would be this (src)
/obj/machinery/porta_turret/process()
//the main machinery process
@@ -406,9 +425,7 @@
if(stat & BROKEN) //if the turret is borked
del(cover) //delete its cover, assuming it has one. Workaround for a pesky little bug - qdel
else
-
- cover = new /obj/machinery/porta_turret_cover(loc) //if the turret has no cover and is anchored, give it a cover
- cover.Parent_Turret = src //assign the cover its Parent_Turret, which would be this (src)
+ create_cover()
if(stat & (NOPOWER|BROKEN))
//if the turret has no power or is broken, make the turret pop down if it hasn't already
@@ -445,6 +462,9 @@
secondarytargets += L
/obj/machinery/porta_turret/proc/assess_living(var/mob/living/L)
+ if(L.invisibility >= INVISIBILITY_LEVEL_ONE) // Cannot see him. see_invisible is a mob-var
+ return TURRET_NOT_TARGET
+
if(!L)
return TURRET_NOT_TARGET
@@ -464,7 +484,7 @@
if(check_synth) //If it's set to attack all non-silicons, target them!
if(L.lying)
- return TURRET_SECONDARY_TARGET
+ return lethal ? TURRET_SECONDARY_TARGET : TURRET_NOT_TARGET
return TURRET_PRIORITY_TARGET
if(iscuffed(L)) // If the target is handcuffed, leave it alone
@@ -480,7 +500,7 @@
return TURRET_NOT_TARGET //if threat level < 4, keep going
if(L.lying) //if the perp is lying down, it's still a target but a less-important target
- return TURRET_SECONDARY_TARGET
+ return lethal ? TURRET_SECONDARY_TARGET : TURRET_NOT_TARGET
return TURRET_PRIORITY_TARGET //if the perp has passed all previous tests, congrats, it is now a "shoot-me!" nominee
@@ -840,11 +860,6 @@
density = 0
var/obj/machinery/porta_turret/Parent_Turret = null
-
-//The below code is pretty much just recoded from the initial turret object. It's necessary but uncommented because it's exactly the same!
-//>necessary
-//I'm not fixing it because i'm fucking bored of this code already, but someone should just reroute these to the parent turret's procs.
-
/obj/machinery/porta_turret_cover/attack_ai(mob/user)
return attack_hand(user)
@@ -853,7 +868,6 @@
/obj/machinery/porta_turret_cover/Topic(href, href_list)
Parent_Turret.Topic(href, href_list, 1) // Calling another object's Topic requires that we claim to not have a window, otherwise BYOND's base proc will runtime.
- updateUsrDialog()
/obj/machinery/porta_turret_cover/attackby(obj/item/I, mob/user)
Parent_Turret.attackby(I, user)
diff --git a/code/game/machinery/vending.dm b/code/game/machinery/vending.dm
index 5a52dde42e..89ccea30a8 100644
--- a/code/game/machinery/vending.dm
+++ b/code/game/machinery/vending.dm
@@ -877,7 +877,7 @@
icon_state = "robotics"
icon_deny = "robotics-deny"
req_access_txt = "29"
- products = list(/obj/item/clothing/suit/storage/labcoat = 4,/obj/item/clothing/under/rank/roboticist = 4,/obj/item/stack/cable_coil = 4,/obj/item/device/flash = 4,
+ products = list(/obj/item/clothing/suit/storage/toggle/labcoat = 4,/obj/item/clothing/under/rank/roboticist = 4,/obj/item/stack/cable_coil = 4,/obj/item/device/flash = 4,
/obj/item/weapon/cell/high = 12, /obj/item/device/assembly/prox_sensor = 3,/obj/item/device/assembly/signaler = 3,/obj/item/device/healthanalyzer = 3,
/obj/item/weapon/scalpel = 2,/obj/item/weapon/circular_saw = 2,/obj/item/weapon/tank/anesthetic = 2,/obj/item/clothing/mask/breath/medical = 5,
/obj/item/weapon/screwdriver = 5,/obj/item/weapon/crowbar = 5)
diff --git a/code/game/objects/items/weapons/manuals.dm b/code/game/objects/items/weapons/manuals.dm
index 14511fdcfb..c827278b87 100644
--- a/code/game/objects/items/weapons/manuals.dm
+++ b/code/game/objects/items/weapons/manuals.dm
@@ -13,7 +13,7 @@
author = "Engineering Encyclopedia" // Who wrote the thing, can be changed by pen or PC. It is not automatically assigned
title = "Station Repairs and Construction"
-/obj/item/weapon/book/manual/engineering_construction/New()
+/obj/item/weapon/book/manual/engineering_construction/initialize()
..()
dat = {"
@@ -34,7 +34,7 @@
author = "Engineering Encyclopedia" // Who wrote the thing, can be changed by pen or PC. It is not automatically assigned
title = "Particle Accelerator User's Guide"
-/obj/item/weapon/book/manual/engineering_particle_accelerator/New()
+/obj/item/weapon/book/manual/engineering_particle_accelerator/initialize()
..()
dat = {"
@@ -81,7 +81,7 @@
author = "Waleed Asad"
title = "Supermatter Engine User's Guide"
-/obj/item/weapon/book/manual/supermatter_engine/New()
+/obj/item/weapon/book/manual/supermatter_engine/initialize()
..()
dat = {"
@@ -193,7 +193,7 @@
author = "Engineering Encyclopedia" // Who wrote the thing, can be changed by pen or PC. It is not automatically assigned
title = "Hacking"
-/obj/item/weapon/book/manual/engineering_hacking/New()
+/obj/item/weapon/book/manual/engineering_hacking/initialize()
..()
dat = {"
@@ -750,7 +750,7 @@
author = "NanoTrasen"
title = "Corporate Regulations"
-/obj/item/weapon/book/manual/security_space_law/New()
+/obj/item/weapon/book/manual/security_space_law/initialize()
..()
dat = {"
@@ -774,7 +774,7 @@
author = "NanoTrasen Medicine Department"
title = "NT Medical Diagnostics Manual"
-/obj/item/weapon/book/manual/medical_diagnostics_manual/New()
+/obj/item/weapon/book/manual/medical_diagnostics_manual/initialize()
..()
dat = {"
@@ -821,7 +821,7 @@
author = "Engineering Encyclopedia"
title = "Engineering Textbook"
-/obj/item/weapon/book/manual/engineering_guide/New()
+/obj/item/weapon/book/manual/engineering_guide/initialize()
..()
dat = {"
diff --git a/code/game/objects/objs.dm b/code/game/objects/objs.dm
index ba696b6850..3354953013 100644
--- a/code/game/objects/objs.dm
+++ b/code/game/objects/objs.dm
@@ -16,6 +16,12 @@
var/damtype = "brute"
var/force = 0
+/obj/New()
+ ..()
+ // If the game is already underway initialize will no longer be called for us
+ if(ticker && ticker.current_state == GAME_STATE_PLAYING)
+ initialize()
+
/obj/Topic(href, href_list, var/nowindow = 0)
// Calling Topic without a corresponding window open causes runtime errors
if(nowindow)
diff --git a/code/game/objects/structures/coathanger.dm b/code/game/objects/structures/coathanger.dm
index 0d09d57c64..deca42e867 100644
--- a/code/game/objects/structures/coathanger.dm
+++ b/code/game/objects/structures/coathanger.dm
@@ -4,7 +4,7 @@
icon = 'icons/obj/coatrack.dmi'
icon_state = "coatrack0"
var/obj/item/clothing/suit/coat
- var/list/allowed = list(/obj/item/clothing/suit/storage/labcoat, /obj/item/clothing/suit/storage/det_suit)
+ var/list/allowed = list(/obj/item/clothing/suit/storage/labcoat, /obj/item/clothing/suit/storage/toggle/labcoat, /obj/item/clothing/suit/storage/det_suit)
/obj/structure/coatrack/attack_hand(mob/user as mob)
user.visible_message("[user] takes [coat] off \the [src].", "You take [coat] off the \the [src]")
diff --git a/code/game/turfs/simulated/floor_types.dm b/code/game/turfs/simulated/floor_types.dm
index 669048cbf4..610186a7b7 100644
--- a/code/game/turfs/simulated/floor_types.dm
+++ b/code/game/turfs/simulated/floor_types.dm
@@ -12,13 +12,6 @@
/turf/simulated/floor/airless/ceiling
icon_state = "rockvault"
-/turf/simulated/floor/airless/catwalk
- name = "catwalk"
- icon = 'icons/turf/catwalks.dmi'
- icon_state = "catwalk0"
- floor_type = null
- intact = 0
-
/turf/simulated/floor/light
name = "Light floor"
luminosity = 5
@@ -33,8 +26,6 @@
update_icon()
name = n
-
-
/turf/simulated/floor/wood
name = "floor"
icon_state = "wood"
@@ -225,10 +216,4 @@
icon_state = "snow"
/turf/simulated/floor/plating/snow/ex_act(severity)
- return
-
-/turf/simulated/floor/plating/airless/catwalk
- icon = 'icons/turf/catwalks.dmi'
- icon_state = "Floor3"
- name = "catwalk"
- desc = "Cats really don't like these things."
\ No newline at end of file
+ return
\ No newline at end of file
diff --git a/code/modules/awaymissions/corpse.dm b/code/modules/awaymissions/corpse.dm
index 048ab71ba8..ff4cb515cc 100644
--- a/code/modules/awaymissions/corpse.dm
+++ b/code/modules/awaymissions/corpse.dm
@@ -139,7 +139,7 @@
name = "Doctor"
corpseradio = /obj/item/device/radio/headset/headset_med
corpseuniform = /obj/item/clothing/under/rank/medical
- corpsesuit = /obj/item/clothing/suit/storage/labcoat
+ corpsesuit = /obj/item/clothing/suit/storage/toggle/labcoat
corpseback = /obj/item/weapon/storage/backpack/medic
corpsepocket1 = /obj/item/device/flashlight/pen
corpseshoes = /obj/item/clothing/shoes/black
diff --git a/code/modules/client/preferences_gear.dm b/code/modules/client/preferences_gear.dm
index 3f9eb7b361..3c92df50f4 100644
--- a/code/modules/client/preferences_gear.dm
+++ b/code/modules/client/preferences_gear.dm
@@ -507,7 +507,7 @@ var/global/list/gear_datums = list()
/datum/gear/labcoat
display_name = "labcoat"
- path = /obj/item/clothing/suit/storage/labcoat
+ path = /obj/item/clothing/suit/storage/toggle/labcoat
cost = 3
slot = slot_wear_suit
diff --git a/code/modules/clothing/spacesuits/rig/rig.dm b/code/modules/clothing/spacesuits/rig/rig.dm
index 1c10aa36ac..b3e8ea6816 100644
--- a/code/modules/clothing/spacesuits/rig/rig.dm
+++ b/code/modules/clothing/spacesuits/rig/rig.dm
@@ -595,6 +595,8 @@
H << "Your [use_obj.name] [use_obj.gender == PLURAL ? "retract" : "retracts"] swiftly."
use_obj.canremove = 1
holder.drop_from_inventory(use_obj)
+ use_obj.loc = get_turf(src)
+ use_obj.dropped()
use_obj.canremove = 0
use_obj.loc = src
@@ -648,10 +650,10 @@
for(var/piece in list("helmet","gauntlets","chest","boots"))
toggle_piece(piece, H, ONLY_DEPLOY)
-/obj/item/weapon/rig/dropped()
+/obj/item/weapon/rig/dropped(var/mob/user)
..()
for(var/piece in list("helmet","gauntlets","chest","boots"))
- toggle_piece(piece, wearer, ONLY_RETRACT)
+ toggle_piece(piece, user, ONLY_RETRACT)
wearer = null
//Todo
diff --git a/code/modules/clothing/spacesuits/spacesuits.dm b/code/modules/clothing/spacesuits/spacesuits.dm
index d3b354fe52..535ab47f81 100644
--- a/code/modules/clothing/spacesuits/spacesuits.dm
+++ b/code/modules/clothing/spacesuits/spacesuits.dm
@@ -70,27 +70,25 @@
check_limb_support()
..()
-/obj/item/clothing/suit/space/dropped()
- check_limb_support()
+/obj/item/clothing/suit/space/dropped(var/mob/user)
+ check_limb_support(user)
..()
// Some space suits are equipped with reactive membranes that support
// broken limbs - at the time of writing, only the ninja suit, but
// I can see it being useful for other suits as we expand them. ~ Z
// The actual splinting occurs in /datum/organ/external/proc/fracture()
-/obj/item/clothing/suit/space/proc/check_limb_support()
+/obj/item/clothing/suit/space/proc/check_limb_support(var/mob/living/carbon/human/user)
// If this isn't set, then we don't need to care.
if(!supporting_limbs || !supporting_limbs.len)
return
- var/mob/living/carbon/human/H = src.loc
-
- // If the holder isn't human, or the holder IS and is wearing the suit, it keeps supporting the limbs.
- if(!istype(H) || H.wear_suit == src)
+ if(!istype(user) || user.wear_suit == src)
return
// Otherwise, remove the splints.
for(var/datum/organ/external/E in supporting_limbs)
E.status &= ~ ORGAN_SPLINTED
+ user << "The suit stops supporting your [E.display_name]."
supporting_limbs = list()
\ No newline at end of file
diff --git a/code/modules/clothing/spacesuits/void/void.dm b/code/modules/clothing/spacesuits/void/void.dm
index 5d0247283e..60b5e0c6c7 100644
--- a/code/modules/clothing/spacesuits/void/void.dm
+++ b/code/modules/clothing/spacesuits/void/void.dm
@@ -154,9 +154,9 @@
helmet.loc = get_turf(src)
src.helmet = null
else if (boots)
- user << "You detatch \the [helmet] from \the [src]'s helmet mount."
- helmet.loc = get_turf(src)
- src.helmet = null
+ user << "You detatch \the [boots] from \the [src]'s boot mounts."
+ boots.loc = get_turf(src)
+ src.boots = null
else
user << "\The [src] does not have anything installed."
return
diff --git a/code/modules/customitems/item_defines.dm b/code/modules/customitems/item_defines.dm
index 07398cbd86..4d91497636 100644
--- a/code/modules/customitems/item_defines.dm
+++ b/code/modules/customitems/item_defines.dm
@@ -849,13 +849,17 @@
icon_state = "bottle[color]"
//////////// Suits ////////////
+/obj/item/clothing/suit/storage/labcoat
+ name = "labcoat"
+ desc = "A plain labcoat."
+ icon_state = "labcoat"
+ body_parts_covered = UPPER_TORSO|LOWER_TORSO|ARMS|LEGS
/obj/item/clothing/suit/storage/labcoat/fluff/aeneas_rinil //Robotics Labcoat - Aeneas Rinil [APPR]
name = "Robotics labcoat"
desc = "A labcoat with a few markings denoting it as the labcoat of roboticist."
icon = 'icons/obj/custom_items.dmi'
icon_state = "aeneasrinil"
- body_parts_covered = UPPER_TORSO|LOWER_TORSO|ARMS|LEGS
/obj/item/clothing/suit/storage/labcoat/fluff/pink //spaceman96: Trenna Seber
name = "pink labcoat"
diff --git a/code/modules/economy/Accounts_DB.dm b/code/modules/economy/Accounts_DB.dm
index 19ea76ed4e..163e7ac5c8 100644
--- a/code/modules/economy/Accounts_DB.dm
+++ b/code/modules/economy/Accounts_DB.dm
@@ -11,6 +11,7 @@
var/obj/item/weapon/card/id/held_card
var/datum/money_account/detailed_account_view
var/creating_new_account = 0
+ var/const/fund_cap = 1000000
proc/get_access_level()
if (!held_card)
@@ -125,12 +126,12 @@
if("add_funds")
var/amount = input("Enter the amount you wish to add", "Silently add funds") as num
if(detailed_account_view)
- detailed_account_view.money += amount
+ detailed_account_view.money = min(detailed_account_view.money + amount, fund_cap)
if("remove_funds")
var/amount = input("Enter the amount you wish to remove", "Silently remove funds") as num
if(detailed_account_view)
- detailed_account_view.money -= amount
+ detailed_account_view.money = max(detailed_account_view.money - amount, -fund_cap)
if("toggle_suspension")
if(detailed_account_view)
@@ -141,6 +142,9 @@
var/account_name = href_list["holder_name"]
var/starting_funds = max(text2num(href_list["starting_funds"]), 0)
create_account(account_name, starting_funds, src)
+
+ starting_funds = Clamp(starting_funds, 0, station_account.money) // Not authorized to put the station in debt.
+ starting_funds = min(starting_funds, fund_cap) // Not authrorized to give more than the fund cap.
if(starting_funds > 0)
//subtract the money
station_account.money -= starting_funds
diff --git a/code/modules/mob/dead/observer/observer.dm b/code/modules/mob/dead/observer/observer.dm
index f94fceffcf..6b3647ef93 100644
--- a/code/modules/mob/dead/observer/observer.dm
+++ b/code/modules/mob/dead/observer/observer.dm
@@ -605,3 +605,6 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp
src << "Your key won't be shown when you speak in dead chat."
else
src << "Your key will be publicly visible again."
+
+/mob/dead/observer/canface()
+ return 1
diff --git a/code/modules/mob/living/silicon/robot/life.dm b/code/modules/mob/living/silicon/robot/life.dm
index 95d8ed9d57..0eedb1d9b4 100644
--- a/code/modules/mob/living/silicon/robot/life.dm
+++ b/code/modules/mob/living/silicon/robot/life.dm
@@ -167,7 +167,7 @@
src.sight &= ~SEE_TURFS
src.sight &= ~SEE_OBJS
src.see_in_dark = 8
- src.see_invisible = SEE_INVISIBLE_LEVEL_TWO
+ src.see_invisible = SEE_INVISIBLE_MINIMUM
regular_hud_updates()
diff --git a/code/modules/mob/living/simple_animal/friendly/cat.dm b/code/modules/mob/living/simple_animal/friendly/cat.dm
index 56f615c77f..642a7df8e4 100644
--- a/code/modules/mob/living/simple_animal/friendly/cat.dm
+++ b/code/modules/mob/living/simple_animal/friendly/cat.dm
@@ -60,10 +60,8 @@
for(var/mob/living/simple_animal/mouse/snack in oview(src))
if(isturf(snack.loc) && !snack.stat)
movement_target = snack
- world << "[src]: mouse located."
break
if(movement_target)
- world << "[src]: locking on [movement_target]"
stop_automated_movement = 1
walk_to(src,movement_target,0,3)
diff --git a/code/modules/mob/mob_helpers.dm b/code/modules/mob/mob_helpers.dm
index 177651f7df..b3e04533d4 100644
--- a/code/modules/mob/mob_helpers.dm
+++ b/code/modules/mob/mob_helpers.dm
@@ -535,7 +535,10 @@ proc/is_blind(A)
if(M.mind && M.mind.name)
name = M.mind.name
if(M.real_name && M.real_name != name)
- name += " ([M.real_name])"
+ if(name)
+ name += " ([M.real_name])"
+ else
+ name = M.real_name
if(!name)
name = (C.holder && C.holder.fakekey) ? C.holder.fakekey : C.key
if(joined_ghosts)
diff --git a/code/modules/power/cable.dm b/code/modules/power/cable.dm
index dd04e38321..27e1fc3a2b 100644
--- a/code/modules/power/cable.dm
+++ b/code/modules/power/cable.dm
@@ -114,11 +114,8 @@ By design, d1 is the smallest direction and d2 is the highest
updateicon()
/obj/structure/cable/proc/updateicon()
- if(invisibility)
- icon_state = "[d1]-[d2]-f"
- else
- icon_state = "[d1]-[d2]"
-
+ icon_state = "[d1]-[d2]"
+ alpha = invisibility ? 127 : 255
// returns the powernet this cable belongs to
/obj/structure/cable/proc/get_powernet() //TODO: remove this as it is obsolete
diff --git a/code/modules/reagents/Chemistry-Reagents-Antidepressants.dm b/code/modules/reagents/Chemistry-Reagents-Antidepressants.dm
index 0a722a436a..12ecf3a817 100644
--- a/code/modules/reagents/Chemistry-Reagents-Antidepressants.dm
+++ b/code/modules/reagents/Chemistry-Reagents-Antidepressants.dm
@@ -5,7 +5,7 @@
id = "methylphenidate"
description = "Improves the ability to concentrate."
reagent_state = LIQUID
- color = "#C8A5DC"
+ color = "#BF80BF"
custom_metabolism = 0.01
data = 0
@@ -33,7 +33,7 @@
id = "citalopram"
description = "Stabilizes the mind a little."
reagent_state = LIQUID
- color = "#C8A5DC"
+ color = "#FF80FF"
custom_metabolism = 0.01
data = 0
@@ -62,7 +62,7 @@
id = "paroxetine"
description = "Stabilizes the mind greatly, but has a chance of adverse effects."
reagent_state = LIQUID
- color = "#C8A5DC"
+ color = "#FF80BF"
custom_metabolism = 0.01
data = 0
diff --git a/code/modules/reagents/Chemistry-Reagents.dm b/code/modules/reagents/Chemistry-Reagents.dm
index ef4c8ab451..0ad32421fa 100644
--- a/code/modules/reagents/Chemistry-Reagents.dm
+++ b/code/modules/reagents/Chemistry-Reagents.dm
@@ -712,7 +712,7 @@ datum
id = "ryetalyn"
description = "Ryetalyn can cure all genetic abnomalities via a catalytic process."
reagent_state = SOLID
- color = "#C8A5DC" // rgb: 200, 165, 220
+ color = "#004000" // rgb: 200, 165, 220
overdose = REAGENTS_OVERDOSE
on_mob_life(var/mob/living/M as mob)
@@ -759,7 +759,7 @@ datum
id = "paracetamol"
description = "Most probably know this as Tylenol, but this chemical is a mild, simple painkiller."
reagent_state = LIQUID
- color = "#C855DC"
+ color = "#C8A5DC"
overdose = 60
scannable = 1
custom_metabolism = 0.025 // Lasts 10 minutes for 15 units
@@ -775,7 +775,7 @@ datum
id = "tramadol"
description = "A simple, yet effective painkiller."
reagent_state = LIQUID
- color = "#C8A5DC"
+ color = "#CB68FC"
overdose = 30
scannable = 1
custom_metabolism = 0.025 // Lasts 10 minutes for 15 units
@@ -791,7 +791,7 @@ datum
id = "oxycodone"
description = "An effective and very addictive painkiller."
reagent_state = LIQUID
- color = "#C805DC"
+ color = "#800080"
overdose = 20
custom_metabolism = 0.25 // Lasts 10 minutes for 15 units
@@ -856,7 +856,7 @@ datum
id = "iron"
description = "Pure iron is a metal."
reagent_state = SOLID
- color = "#C8A5DC" // rgb: 200, 165, 220
+ color = "#353535"
overdose = REAGENTS_OVERDOSE
gold
@@ -1015,7 +1015,7 @@ datum
id = "cryptobiolin"
description = "Cryptobiolin causes confusion and dizzyness."
reagent_state = LIQUID
- color = "#C8A5DC" // rgb: 200, 165, 220
+ color = "#000055" // rgb: 200, 165, 220
overdose = REAGENTS_OVERDOSE
on_mob_life(var/mob/living/M as mob)
@@ -1033,7 +1033,7 @@ datum
id = "kelotane"
description = "Kelotane is a drug used to treat burns."
reagent_state = LIQUID
- color = "#C8A5DC" // rgb: 200, 165, 220
+ color = "#FFA800" // rgb: 200, 165, 220
overdose = REAGENTS_OVERDOSE
scannable = 1
@@ -1051,7 +1051,7 @@ datum
id = "dermaline"
description = "Dermaline is the next step in burn medication. Works twice as good as kelotane and enables the body to restore even the direst heat-damaged tissue."
reagent_state = LIQUID
- color = "#C8A5DC" // rgb: 200, 165, 220
+ color = "#FF8000" // rgb: 200, 165, 220
overdose = REAGENTS_OVERDOSE/2
scannable = 1
@@ -1069,7 +1069,7 @@ datum
id = "dexalin"
description = "Dexalin is used in the treatment of oxygen deprivation."
reagent_state = LIQUID
- color = "#C8A5DC" // rgb: 200, 165, 220
+ color = "#0080FF" // rgb: 200, 165, 220
overdose = REAGENTS_OVERDOSE
scannable = 1
@@ -1092,7 +1092,7 @@ datum
id = "dexalinp"
description = "Dexalin Plus is used in the treatment of oxygen deprivation. It is highly effective."
reagent_state = LIQUID
- color = "#C8A5DC" // rgb: 200, 165, 220
+ color = "#0040FF" // rgb: 200, 165, 220
overdose = REAGENTS_OVERDOSE/2
scannable = 1
@@ -1115,7 +1115,7 @@ datum
id = "tricordrazine"
description = "Tricordrazine is a highly potent stimulant, originally derived from cordrazine. Can be used to treat a wide range of injuries."
reagent_state = LIQUID
- color = "#C8A5DC" // rgb: 200, 165, 220
+ color = "#8040FF" // rgb: 200, 165, 220
scannable = 1
on_mob_life(var/mob/living/M as mob, var/alien)
@@ -1135,7 +1135,7 @@ datum
id = "anti_toxin"
description = "Dylovene is a broad-spectrum antitoxin."
reagent_state = LIQUID
- color = "#C8A5DC" // rgb: 200, 165, 220
+ color = "#00A000" // rgb: 200, 165, 220
scannable = 1
on_mob_life(var/mob/living/M as mob, var/alien)
@@ -1190,13 +1190,13 @@ datum
D.cure()
..()
return
-
synaptizine
+
name = "Synaptizine"
id = "synaptizine"
description = "Synaptizine is used to treat various diseases."
reagent_state = LIQUID
- color = "#C8A5DC" // rgb: 200, 165, 220
+ color = "#99CCFF" // rgb: 200, 165, 220
custom_metabolism = 0.01
overdose = REAGENTS_OVERDOSE
scannable = 1
@@ -1235,7 +1235,7 @@ datum
id = "hyronalin"
description = "Hyronalin is a medicinal drug used to counter the effect of radiation poisoning."
reagent_state = LIQUID
- color = "#C8A5DC" // rgb: 200, 165, 220
+ color = "#408000" // rgb: 200, 165, 220
custom_metabolism = 0.05
overdose = REAGENTS_OVERDOSE
scannable = 1
@@ -1251,7 +1251,7 @@ datum
id = "arithrazine"
description = "Arithrazine is an unstable medication used for the most extreme cases of radiation poisoning."
reagent_state = LIQUID
- color = "#C8A5DC" // rgb: 200, 165, 220
+ color = "#008000" // rgb: 200, 165, 220
custom_metabolism = 0.05
overdose = REAGENTS_OVERDOSE
@@ -1271,7 +1271,7 @@ datum
id = "alkysine"
description = "Alkysine is a drug used to lessen the damage to neurological tissue after a catastrophic injury. Can heal brain tissue."
reagent_state = LIQUID
- color = "#C8A5DC" // rgb: 200, 165, 220
+ color = "#FFFF66" // rgb: 200, 165, 220
custom_metabolism = 0.05
overdose = REAGENTS_OVERDOSE
scannable = 1
@@ -1309,7 +1309,7 @@ datum
id = "peridaxon"
description = "Used to encourage recovery of internal organs and nervous systems. Medicate cautiously."
reagent_state = LIQUID
- color = "#C8A5DC" // rgb: 200, 165, 220
+ color = "#561EC3" // rgb: 200, 165, 220
overdose = 10
scannable = 1
@@ -1330,7 +1330,7 @@ datum
id = "bicaridine"
description = "Bicaridine is an analgesic medication and can be used to treat blunt trauma."
reagent_state = LIQUID
- color = "#C8A5DC" // rgb: 200, 165, 220
+ color = "#BF0000" // rgb: 200, 165, 220
overdose = REAGENTS_OVERDOSE
scannable = 1
@@ -1348,7 +1348,7 @@ datum
id = "hyperzine"
description = "Hyperzine is a highly effective, long lasting, muscle stimulant."
reagent_state = LIQUID
- color = "#C8A5DC" // rgb: 200, 165, 220
+ color = "#FF3300" // rgb: 200, 165, 220
custom_metabolism = 0.03
overdose = REAGENTS_OVERDOSE/2
@@ -1378,7 +1378,7 @@ datum
id = "cryoxadone"
description = "A chemical mixture with almost magical healing powers. Its main limitation is that the targets body temperature must be under 170K for it to metabolise correctly."
reagent_state = LIQUID
- color = "#C8A5DC" // rgb: 200, 165, 220
+ color = "#8080FF" // rgb: 200, 165, 220
scannable = 1
on_mob_life(var/mob/living/M as mob)
@@ -1396,7 +1396,7 @@ datum
id = "clonexadone"
description = "A liquid compound similar to that used in the cloning process. Can be used to 'finish' the cloning process when used in conjunction with a cryo tube."
reagent_state = LIQUID
- color = "#C8A5DC" // rgb: 200, 165, 220
+ color = "#80BFFF" // rgb: 200, 165, 220
scannable = 1
on_mob_life(var/mob/living/M as mob)
@@ -1443,7 +1443,7 @@ datum
id = "spaceacillin"
description = "An all-purpose antiviral agent."
reagent_state = LIQUID
- color = "#C8A5DC" // rgb: 200, 165, 220
+ color = "#C1C1C1" // rgb: 200, 165, 220
custom_metabolism = 0.01
overdose = REAGENTS_OVERDOSE
scannable = 1
@@ -1595,7 +1595,7 @@ datum
id = "phoron"
description = "Phoron in its liquid form."
reagent_state = LIQUID
- color = "#E71B00" // rgb: 231, 27, 0
+ color = "#00BFFF" // rgb: 231, 27, 0
toxpwr = 3
on_mob_life(var/mob/living/M as mob)
@@ -1812,7 +1812,7 @@ datum
id = "stoxin"
description = "An effective hypnotic used to treat insomnia."
reagent_state = LIQUID
- color = "#E895CC" // rgb: 232, 149, 204
+ color = "#009CA8" // rgb: 232, 149, 204
toxpwr = 0
custom_metabolism = 0.1
overdose = REAGENTS_OVERDOSE
diff --git a/code/stylesheet.dm b/code/stylesheet.dm
index cc14488a5f..90ac0c091b 100644
--- a/code/stylesheet.dm
+++ b/code/stylesheet.dm
@@ -1,29 +1,29 @@
client/script = {"