diff --git a/code/defines/obj.dm b/code/defines/obj.dm
index 3fb9960be97..7e1a3fce727 100644
--- a/code/defines/obj.dm
+++ b/code/defines/obj.dm
@@ -399,6 +399,10 @@
var/obj/screen/g_dither = null
var/obj/screen/blurry = null
var/list/darkMask = null
+ var/obj/screen/r_hand_hud_object = null
+ var/obj/screen/l_hand_hud_object = null
+ var/list/obj/screen/intent_small_hud_objects = null
+ var/show_intent_icons = 0
var/h_type = /obj/screen //this is like...the most pointless thing ever. Use a god damn define!
diff --git a/code/defines/obj/closet.dm b/code/defines/obj/closet.dm
index da7e7cfa7f7..0e5df00cd0f 100644
--- a/code/defines/obj/closet.dm
+++ b/code/defines/obj/closet.dm
@@ -71,6 +71,8 @@
/obj/structure/closet/gmcloset
name = "formal closet"
desc = "It's a storage unit for formal clothing."
+ icon_state = "black"
+ icon_closed = "black"
/obj/structure/closet/emcloset
name = "emergency closet"
@@ -125,14 +127,20 @@
/obj/structure/closet/jcloset
name = "custodial closet"
desc = "It's a storage unit for janitorial clothes and gear."
+ icon_state = "mixed"
+ icon_closed = "mixed"
/obj/structure/closet/jcloset2
name = "cleaner's closet"
desc = "It's a storage unit for various cleaning items."
+ icon_state = "mixed"
+ icon_closed = "mixed"
/obj/structure/closet/lawcloset
name = "legal closet"
desc = "It's a storage unit for courtroom apparel and items."
+ icon_state = "blue"
+ icon_closed = "blue"
/obj/structure/closet/coffin
name = "coffin"
@@ -317,10 +325,10 @@
icon_state = "white"
icon_closed = "white"
-/obj/structure/closet/wardrobe/genetics_white
- name = "genetics wardrobe"
- icon_state = "white"
- icon_closed = "white"
+/obj/structure/closet/wardrobe/robotics_black
+ name = "robotics wardrobe"
+ icon_state = "black"
+ icon_closed = "black"
/obj/structure/closet/wardrobe/medic_white
name = "doctor's wardrobe"
@@ -332,6 +340,11 @@
icon_state = "white"
icon_closed = "white"
+/obj/structure/closet/wardrobe/genetics_white
+ name = "genetics wardrobe"
+ icon_state = "white"
+ icon_closed = "white"
+
/obj/structure/closet/wardrobe/nurse
name = "nurse's wardrobe"
icon_state = "white"
diff --git a/code/defines/obj/vending.dm b/code/defines/obj/vending.dm
index 789705e5615..38669e57f38 100755
--- a/code/defines/obj/vending.dm
+++ b/code/defines/obj/vending.dm
@@ -113,7 +113,7 @@
desc = "A snack machine courtesy of the Getmore Chocolate Corporation, based out of Mars"
icon_state = "snack"
product_paths = "/obj/item/weapon/reagent_containers/food/snacks/candy;/obj/item/weapon/reagent_containers/food/drinks/dry_ramen;/obj/item/weapon/reagent_containers/food/snacks/chips;/obj/item/weapon/reagent_containers/food/snacks/sosjerky;/obj/item/weapon/reagent_containers/food/snacks/no_raisin;/obj/item/weapon/reagent_containers/food/snacks/spacetwinkie;/obj/item/weapon/reagent_containers/food/snacks/cheesiehonkers"
-// product_amounts = "10;10;10;10;10;10;10"
+// product_amounts = "6;6;6;6;6;6;6"
product_prices = "1;1;1;1;1;1;1"
product_slogans = "Try our new nougat bar!;Twice the calories for half the price!"
product_hidden = "/obj/item/weapon/reagent_containers/food/snacks/syndicake"
diff --git a/code/game/atom_procs.dm b/code/game/atom_procs.dm
index 5e500ed5d1c..d06540f18e2 100644
--- a/code/game/atom_procs.dm
+++ b/code/game/atom_procs.dm
@@ -713,43 +713,44 @@ var/using_new_click_proc = 0 //TODO ERRORAGE (This is temporary, while the DblCl
// ------- SHIFT-CLICK -------
- var/parameters = params2list(params)
+ if(params)
+ var/parameters = params2list(params)
- if(parameters["shift"]){
- if(!isAI(usr))
- ShiftClick(usr)
- else
- AIShiftClick(usr)
- return
- }
-
- // ------- ALT-CLICK -------
-
- if(parameters["alt"]){
- if(!isAI(usr))
- AltClick(usr)
- else
- AIAltClick(usr)
- return
- }
-
- // ------- CTRL-CLICK -------
-
- if(parameters["ctrl"]){
- if(!isAI(usr))
- CtrlClick(usr)
- else
- AICtrlClick(usr)
- return
- }
-
- // ------- MIDDLE-CLICK -------
-
- if(parameters["middle"]){
- if(!isAI(usr))
- MiddleClick(usr)
+ if(parameters["shift"]){
+ if(!isAI(usr))
+ ShiftClick(usr)
+ else
+ AIShiftClick(usr)
return
- }
+ }
+
+ // ------- ALT-CLICK -------
+
+ if(parameters["alt"]){
+ if(!isAI(usr))
+ AltClick(usr)
+ else
+ AIAltClick(usr)
+ return
+ }
+
+ // ------- CTRL-CLICK -------
+
+ if(parameters["ctrl"]){
+ if(!isAI(usr))
+ CtrlClick(usr)
+ else
+ AICtrlClick(usr)
+ return
+ }
+
+ // ------- MIDDLE-CLICK -------
+
+ if(parameters["middle"]){
+ if(!isAI(usr))
+ MiddleClick(usr)
+ return
+ }
// ------- THROW -------
if(usr.in_throw_mode)
diff --git a/code/game/hud.dm b/code/game/hud.dm
index 17c3fa45745..c100d0ca7e4 100644
--- a/code/game/hud.dm
+++ b/code/game/hud.dm
@@ -1,54 +1,105 @@
-#define ui_dropbutton "SOUTH-1,7"
-#define ui_swapbutton "SOUTH-1,7"
-#define ui_iclothing "SOUTH-1,2"
-#define ui_oclothing "SOUTH,2"
+
+
+//Lower left, persistant menu
+#define ui_inventory "1:6,1:5"
+
+
+//Inventory close areas. When you pass your mouse over these areas they close the inventory.
+#define ui_invclosearea1 "1,1 to 1:6,5"
+#define ui_invclosearea2 "1,1 to 4,1:16"
+#define ui_invclosearea3 "4:16,1 to 5:16,5"
+#define ui_invclosearea4 "1,5:16 to 4,5:16"
+
+
+//Lower center, persistant menu
+#define ui_id "4:12,1:5"
+#define ui_belt "5:14,1:5"
+#define ui_back "6:14,1:5"
+#define ui_rhand "7:16,1:5"
+#define ui_lhand "8:16,1:5"
+#define ui_swaphand1 "7:16,2:5"
+#define ui_swaphand2 "8:16,2:5"
+#define ui_storage1 "9:18,1:5"
+#define ui_storage2 "10:20,1:5"
+
+#define ui_alien_head "4:12,1:5" //aliens
+#define ui_alien_oclothing "5:14,1:5" //aliens
+
+#define ui_inv1 "6:16,1:5" //borgs
+#define ui_inv2 "7:16,1:5" //borgs
+#define ui_inv3 "8:16,1:5" //borgs
+#define ui_borg_store "9:14,1:5" //borgs
+
+#define ui_monkey_mask "5:14,1:5" //monkey
+#define ui_monkey_back "6:14,1:5" //monkey
+
+//Lower right, persistant menu
+#define ui_dropbutton "12:24,2:7"
+#define ui_throw "13:26,2:7"
+#define ui_pull "14:28,2:7"
+#define ui_acti "12:24,1:5"
+#define ui_movi "13:26,1:5"
+#define ui_zonesel "14:28,1:5"
+
+//Gun buttons
+#define ui_gun1 "11:22,2:7"
+#define ui_gun2 "10:20,2:7"
+#define ui_gun3 "9:18,2:7"
+#define ui_gun_select "11:22,1:5"
+
+//Middle right (damage indicators)
+#define ui_pressure "14:28,6:13"
+#define ui_oxygen "14:28,7:15"
+#define ui_fire "14:28,8:17"
+#define ui_toxin "14:28,9:19"
+
+#define ui_borg_health "14:28,6:13" //borgs have the health display where humans have the pressure damage indicator.
+#define ui_alien_health "14:28,6:13" //aliens have the health display where humans have the pressure damage indicator.
+
+
+//Upper right (status indicators)
+#define ui_nutrition "11:22,15:-5"
+#define ui_internal "12:24,15:-5"
+#define ui_health "13:26,15:-5"
+#define ui_temp "14:28,15:-5"
+
+
+//Pop-up inventory
+#define ui_shoes "1:6,2:7"
+#define ui_iclothing "2:8,2:7"
+#define ui_gloves "3:10,2:7"
+
+#define ui_sstore1 "1:6,3:9"
+#define ui_oclothing "2:8,3:9"
+#define ui_glasses "3:10,3:9"
+
+#define ui_mask "1:6,4:11"
+#define ui_head "2:8,4:11"
+#define ui_lear "3:10,4:11"
+#define ui_rear "4:12,4:11"
+
+//Intent small buttons
+#define ui_help_small "12:8,1:1"
+#define ui_disarm_small "12:15,1:18"
+#define ui_grab_small "12:32,1:18"
+#define ui_harm_small "12:39,1:1"
+
+
+
+//#define ui_swapbutton "6:-16,1:5" //Unused
+
+
//#define ui_headset "SOUTH,8"
-#define ui_rhand "SOUTH,1"
-#define ui_lhand "SOUTH,3"
-#define ui_id "SOUTH-1,1"
-#define ui_mask "SOUTH+1,1"
-#define ui_back "SOUTH+1,3"
-#define ui_storage1 "SOUTH-1,4"
-#define ui_storage2 "SOUTH-1,5"
-#define ui_sstore1 "SOUTH+1,4"
-#define ui_hstore1 "SOUTH+1,6"
+#define ui_hand "6:14,1:5"
+#define ui_hstore1 "5,5"
#define ui_resist "EAST+1,SOUTH-1"
-#define ui_gloves "SOUTH,5"
-#define ui_glasses "SOUTH+1,5"
-#define ui_lear "SOUTH,7"
-#define ui_rear "SOUTH,6"
-#define ui_head "SOUTH+1,2"
-#define ui_shoes "SOUTH,4"
-#define ui_belt "SOUTH-1,3"
-#define ui_throw "SOUTH-1,8"
-#define ui_oxygen "EAST+1, NORTH-4"
-#define ui_pressure "EAST+1, NORTH-5"
-#define ui_toxin "EAST+1, NORTH-6"
-#define ui_internal "EAST+1, NORTH-2"
-#define ui_fire "EAST+1, NORTH-8"
-#define ui_temp "EAST+1, NORTH-10"
-#define ui_health "EAST+1, NORTH-11"
-#define ui_nutrition "EAST+1, NORTH-12"
-#define ui_pull "SOUTH-1,10"
-#define ui_hand "SOUTH-1,6"
#define ui_sleep "EAST+1, NORTH-13"
#define ui_rest "EAST+1, NORTH-14"
-#define ui_acti "SOUTH-1,12"
-#define ui_movi "SOUTH-1,14"
#define ui_iarrowleft "SOUTH-1,11"
#define ui_iarrowright "SOUTH-1,13"
-#define ui_inv1 "SOUTH-1,1"
-#define ui_inv2 "SOUTH-1,2"
-#define ui_inv3 "SOUTH-1,3"
-
-
-#define ui_gun1 "SOUTH,8"
-#define ui_gun2 "SOUTH,9"
-#define ui_gun3 "SOUTH,10"
-#define ui_gun_select "SOUTH-1,9"
@@ -68,6 +119,10 @@ obj/hud/New(var/type = 0)
if(mymob:r_ear) mymob:r_ear:screen_loc = ui_rear
if(mymob:s_store) mymob:s_store:screen_loc = ui_sstore1
if(mymob:glasses) mymob:glasses:screen_loc = ui_glasses
+ if(mymob:w_uniform) mymob:w_uniform:screen_loc = ui_iclothing
+ if(mymob:wear_suit) mymob:wear_suit:screen_loc = ui_oclothing
+ if(mymob:wear_mask) mymob:wear_mask:screen_loc = ui_mask
+ if(mymob:head) mymob:head:screen_loc = ui_head
else
if(istype(mymob, /mob/living/carbon/human))
if(mymob:shoes) mymob:shoes:screen_loc = null
@@ -76,6 +131,10 @@ obj/hud/New(var/type = 0)
if(mymob:r_ear) mymob:r_ear:screen_loc = null
if(mymob:s_store) mymob:s_store:screen_loc = null
if(mymob:glasses) mymob:glasses:screen_loc = null
+ if(mymob:w_uniform) mymob:w_uniform:screen_loc = null
+ if(mymob:wear_suit) mymob:wear_suit:screen_loc = null
+ if(mymob:wear_mask) mymob:wear_mask:screen_loc = null
+ if(mymob:head) mymob:head:screen_loc = null
/obj/hud/var/show_otherinventory = 1
diff --git a/code/game/jobs/access.dm b/code/game/jobs/access.dm
index fff1b74304a..46ae426bc9d 100644
--- a/code/game/jobs/access.dm
+++ b/code/game/jobs/access.dm
@@ -487,8 +487,8 @@
/proc/get_all_jobs()
return list("Assistant", "Captain", "Head of Personnel", "Bartender", "Chef", "Botanist", "Quartermaster", "Cargo Technician",
"Shaft Miner", "Janitor", "Librarian", "Lawyer", "Chaplain", "Chief Engineer", "Station Engineer",
- "Atmospheric Technician", "Roboticist", "Chief Medical Officer", "Medical Doctor", "Geneticist",
- "Research Director", "Scientist", "Chemist", "Head of Security", "Warden", "Detective", "Security Officer")
+ "Atmospheric Technician", "Roboticist", "Chief Medical Officer", "Medical Doctor", "Chemist", "Geneticist",
+ "Research Director", "Scientist", "Head of Security", "Warden", "Detective", "Security Officer")
/proc/get_all_centcom_jobs()
return list("VIP Guest","Custodian","Thunderdome Overseer","Intel Officer","Medical Officer","Death Commando","Research Officer","BlackOps Commander","Supreme Commander")
diff --git a/code/game/jobs/job/civilian.dm b/code/game/jobs/job/civilian.dm
index 1436addff08..f9b57d15b4c 100644
--- a/code/game/jobs/job/civilian.dm
+++ b/code/game/jobs/job/civilian.dm
@@ -100,7 +100,7 @@
if(!H) return 0
H.equip_if_possible(new /obj/item/device/radio/headset/heads/qm(H), H.slot_ears)
H.equip_if_possible(new /obj/item/clothing/under/rank/cargo(H), H.slot_w_uniform)
- H.equip_if_possible(new /obj/item/clothing/shoes/black(H), H.slot_shoes)
+ H.equip_if_possible(new /obj/item/clothing/shoes/brown(H), H.slot_shoes)
H.equip_if_possible(new /obj/item/device/pda/quartermaster(H), H.slot_belt)
H.equip_if_possible(new /obj/item/clothing/glasses/sunglasses(H), H.slot_glasses)
H.equip_if_possible(new /obj/item/weapon/clipboard(H), H.slot_r_store)
diff --git a/code/game/jobs/job/medical.dm b/code/game/jobs/job/medical.dm
index 9e2704062b7..61879b81bcf 100644
--- a/code/game/jobs/job/medical.dm
+++ b/code/game/jobs/job/medical.dm
@@ -80,7 +80,7 @@
H.equip_if_possible(new /obj/item/device/radio/headset/headset_medsci(H), H.slot_ears)
H.equip_if_possible(new /obj/item/clothing/under/rank/chemist(H), H.slot_w_uniform)
H.equip_if_possible(new /obj/item/clothing/shoes/white(H), H.slot_shoes)
- H.equip_if_possible(new /obj/item/device/pda/toxins(H), H.slot_belt)
+ H.equip_if_possible(new /obj/item/device/pda/medical(H), H.slot_belt)
H.equip_if_possible(new /obj/item/clothing/suit/storage/labcoat/chemist(H), H.slot_wear_suit)
return 1
diff --git a/code/game/machinery/computer/communications.dm b/code/game/machinery/computer/communications.dm
index 85eb53587f8..ab3de514e3c 100644
--- a/code/game/machinery/computer/communications.dm
+++ b/code/game/machinery/computer/communications.dm
@@ -418,10 +418,10 @@
usr << "You can't call the shuttle because you are dead!"
return
- var/confirm = alert(src, "You sure?", "Confirm", "Yes", "No")
- if(confirm != "Yes") return
+ var/confirm = alert("Are you sure you want to call the shuttle?", "Confirm Shuttle Call", "Yes", "No")
- call_shuttle_proc(src)
+ if(confirm == "Yes")
+ call_shuttle_proc(src)
// hack to display shuttle timer
if(emergency_shuttle.online)
diff --git a/code/game/machinery/doors/airlock.dm b/code/game/machinery/doors/airlock.dm
index b998a79aa9e..006f6fb8ad5 100644
--- a/code/game/machinery/doors/airlock.dm
+++ b/code/game/machinery/doors/airlock.dm
@@ -286,7 +286,7 @@ Airlock index -> wire color are { 9, 4, 6, 7, 5, 8, 1, 2, 3 }.
return 0
use_power(50)
if(istype(src, /obj/machinery/door/airlock/glass))
- playsound(src.loc, 'windowdoor.ogg', 30, 1)
+ playsound(src.loc, 'windowdoor.ogg', 100, 1)
else
playsound(src.loc, 'airlock.ogg', 30, 1)
if (src.closeOther != null && istype(src.closeOther, /obj/machinery/door/airlock/) && !src.closeOther.density)
@@ -300,7 +300,7 @@ Airlock index -> wire color are { 9, 4, 6, 7, 5, 8, 1, 2, 3 }.
..()
use_power(50)
if(istype(src, /obj/machinery/door/airlock/glass))
- playsound(src.loc, 'windowdoor.ogg', 30, 1)
+ playsound(src.loc, 'windowdoor.ogg', 100, 1)
else
playsound(src.loc, 'airlock.ogg', 30, 1)
var/obj/structure/window/killthis = (locate(/obj/structure/window) in get_turf(src))
diff --git a/code/game/objects/closets.dm b/code/game/objects/closets.dm
index 1345a4183ab..88091cd0344 100644
--- a/code/game/objects/closets.dm
+++ b/code/game/objects/closets.dm
@@ -168,6 +168,10 @@
return
/obj/structure/closet/MouseDrop_T(atom/movable/O as mob|obj, mob/user as mob)
+ if(istype(O, /obj/screen) || istype(O, /obj/hud)) //fix for HUD elements making their way into the world -Pete
+ return
+ if(O.loc == user)
+ return
if(user.restrained() || user.stat || user.weakened || user.stunned || user.paralysis)
return
if((!( istype(O, /atom/movable) ) || O.anchored || get_dist(user, src) > 1 || get_dist(user, O) > 1 || user.contents.Find(src)))
@@ -182,7 +186,7 @@
return
step_towards(O, src.loc)
if(user != O)
- user.show_viewers(text("\red [] stuffs [] into []!", user, O, src))
+ user.show_viewers("\red [user] stuffs [O] into [src]!")
src.add_fingerprint(user)
return
diff --git a/code/game/objects/closets/secure/cargo.dm b/code/game/objects/closets/secure/cargo.dm
index 97b77c918ef..a366ebf9ee2 100644
--- a/code/game/objects/closets/secure/cargo.dm
+++ b/code/game/objects/closets/secure/cargo.dm
@@ -12,7 +12,7 @@
..()
sleep(2)
new /obj/item/clothing/under/rank/cargotech(src)
- new /obj/item/clothing/shoes/brown(src)
+ new /obj/item/clothing/shoes/black(src)
new /obj/item/device/radio/headset/headset_cargo(src)
new /obj/item/clothing/gloves/black(src)
new /obj/item/weapon/cartridge/quartermaster(src)
@@ -21,6 +21,12 @@
/obj/structure/closet/secure_closet/qm_personal
name = "Quartermaster's Locker"
req_access = list(access_qm)
+ icon_state = "secureqm1"
+ icon_closed = "secureqm"
+ icon_locked = "secureqm1"
+ icon_opened = "secureqmopen"
+ icon_broken = "secureqmbroken"
+ icon_off = "secureqmoff"
New()
..()
diff --git a/code/game/objects/closets/secure/engineering.dm b/code/game/objects/closets/secure/engineering.dm
index 9c9700b4b0a..aed317be772 100644
--- a/code/game/objects/closets/secure/engineering.dm
+++ b/code/game/objects/closets/secure/engineering.dm
@@ -1,12 +1,12 @@
/obj/structure/closet/secure_closet/engineering_chief
name = "Chief Engineer's Locker"
req_access = list(access_ce)
- icon_state = "secureeng1"
- icon_closed = "secureeng"
- icon_locked = "secureeng1"
- icon_opened = "toolclosetopen"
- icon_broken = "secureengbroken"
- icon_off = "secureengoff"
+ icon_state = "securece1"
+ icon_closed = "securece"
+ icon_locked = "securece1"
+ icon_opened = "secureceopen"
+ icon_broken = "securecebroken"
+ icon_off = "secureceoff"
New()
@@ -99,7 +99,7 @@
icon_state = "secureeng1"
icon_closed = "secureeng"
icon_locked = "secureeng1"
- icon_opened = "toolclosetopen"
+ icon_opened = "secureengopen"
icon_broken = "secureengbroken"
icon_off = "secureengoff"
diff --git a/code/game/objects/closets/secure/medical.dm b/code/game/objects/closets/secure/medical.dm
index da7e6aec545..49cb6f466e5 100644
--- a/code/game/objects/closets/secure/medical.dm
+++ b/code/game/objects/closets/secure/medical.dm
@@ -52,7 +52,7 @@
/obj/structure/closet/secure_closet/doctor_personal
- name = "Doctor's Locker"
+ name = "Medical Doctor's Locker"
req_access = list(access_medical)
icon_state = "securemed1"
icon_closed = "securemed"
@@ -185,12 +185,12 @@
/obj/structure/closet/secure_closet/chemical
name = "Chemical Closet"
desc = "Store dangerous chemicals in here."
- icon_state = "securemed1"
- icon_closed = "securemed"
- icon_locked = "securemed1"
- icon_opened = "securemedopen"
- icon_broken = "securemedbroken"
- icon_off = "securemedoff"
+ icon_state = "medical1"
+ icon_closed = "medical"
+ icon_locked = "medical1"
+ icon_opened = "medicalopen"
+ icon_broken = "medicalbroken"
+ icon_off = "medicaloff"
req_access = list(access_medical)
diff --git a/code/game/objects/closets/secure/scientist.dm b/code/game/objects/closets/secure/scientist.dm
index 258eb57e979..e54aa4bac54 100644
--- a/code/game/objects/closets/secure/scientist.dm
+++ b/code/game/objects/closets/secure/scientist.dm
@@ -1,5 +1,5 @@
/obj/structure/closet/secure_closet/RD
- name = "Research Director"
+ name = "Research Director's Locker"
req_access = list(access_rd)
icon_state = "rdsecure1"
icon_closed = "rdsecure"
diff --git a/code/game/objects/closets/secure/security.dm b/code/game/objects/closets/secure/security.dm
index 5d4d37c7e22..c05e41d40eb 100644
--- a/code/game/objects/closets/secure/security.dm
+++ b/code/game/objects/closets/secure/security.dm
@@ -1,5 +1,5 @@
/obj/structure/closet/secure_closet/captains
- name = "Captain's Closet"
+ name = "Captain's Locker"
req_access = list(access_captain)
icon_state = "capsecure1"
icon_closed = "capsecure"
@@ -29,7 +29,7 @@
/obj/structure/closet/secure_closet/hop
- name = "Head of Personnel"
+ name = "Head of Personnel's Locker"
req_access = list(access_hop)
icon_state = "hopsecure1"
icon_closed = "hopsecure"
@@ -58,7 +58,7 @@
/obj/structure/closet/secure_closet/hos
- name = "Head Of Security"
+ name = "Head of Security's Locker"
req_access = list(access_hos)
icon_state = "hossecure1"
icon_closed = "hossecure"
@@ -118,7 +118,7 @@
/obj/structure/closet/secure_closet/security
- name = "Security Locker"
+ name = "Security Officer's Locker"
req_access = list(access_security)
icon_state = "sec1"
icon_closed = "sec"
@@ -154,7 +154,7 @@
/obj/structure/closet/secure_closet/detective
- name = "Detective"
+ name = "Detective's Cabinet"
req_access = list(access_forensics_lockers)
icon_state = "cabinetdetective_locked"
icon_closed = "cabinetdetective"
diff --git a/code/game/objects/closets/wardrobe.dm b/code/game/objects/closets/wardrobe.dm
index 6a95bb88293..b193d0e3d8f 100644
--- a/code/game/objects/closets/wardrobe.dm
+++ b/code/game/objects/closets/wardrobe.dm
@@ -146,6 +146,27 @@ obj/structure/closet/wardrobe/hop/New()
new /obj/item/clothing/shoes/white(src)
new /obj/item/clothing/shoes/white(src)
new /obj/item/clothing/shoes/white(src)
+ return
+
+/obj/structure/closet/wardrobe/robotics_black/New()
+ new /obj/item/clothing/under/rank/roboticist(src)
+ new /obj/item/clothing/under/rank/roboticist(src)
+ new /obj/item/clothing/suit/storage/labcoat(src)
+ new /obj/item/clothing/suit/storage/labcoat(src)
+ new /obj/item/clothing/shoes/black(src)
+ new /obj/item/clothing/shoes/black(src)
+ return
+
+/obj/structure/closet/wardrobe/chemistry_white/New()
+ new /obj/item/clothing/under/rank/chemist(src)
+ new /obj/item/clothing/under/rank/chemist(src)
+ new /obj/item/clothing/under/rank/chemist(src)
+ new /obj/item/clothing/suit/storage/labcoat/chemist(src)
+ new /obj/item/clothing/suit/storage/labcoat/chemist(src)
+ new /obj/item/clothing/suit/storage/labcoat/chemist(src)
+ new /obj/item/clothing/shoes/white(src)
+ new /obj/item/clothing/shoes/white(src)
+ new /obj/item/clothing/shoes/white(src)
/obj/structure/closet/wardrobe/genetics_white/New()
new /obj/item/clothing/under/rank/geneticist(src)
@@ -158,6 +179,20 @@ obj/structure/closet/wardrobe/hop/New()
new /obj/item/clothing/shoes/white(src)
new /obj/item/clothing/shoes/white(src)
+
+
+
+/obj/structure/closet/wardrobe/virology_white/New()
+ new /obj/item/clothing/suit/storage/labcoat/virologist(src)
+ new /obj/item/clothing/suit/storage/labcoat/virologist(src)
+ new /obj/item/clothing/suit/storage/labcoat/virologist(src)
+ new /obj/item/clothing/under/rank/virologist(src)
+ new /obj/item/clothing/under/rank/virologist(src)
+ new /obj/item/clothing/under/rank/virologist(src)
+ new /obj/item/clothing/shoes/white(src)
+ new /obj/item/clothing/shoes/white(src)
+ new /obj/item/clothing/shoes/white(src)
+
/obj/structure/closet/wardrobe/grey/New()
new /obj/item/clothing/under/color/grey(src)
new /obj/item/clothing/under/color/grey(src)
@@ -194,16 +229,6 @@ obj/structure/closet/wardrobe/hop/New()
new /obj/item/clothing/shoes/brown(src)
new /obj/item/clothing/shoes/brown(src)
-/obj/structure/closet/wardrobe/chemistry_white/New()
- new /obj/item/clothing/under/rank/chemist(src)
- new /obj/item/clothing/under/rank/chemist(src)
- new /obj/item/clothing/under/rank/chemist(src)
- new /obj/item/clothing/suit/storage/labcoat/chemist(src)
- new /obj/item/clothing/suit/storage/labcoat/chemist(src)
- new /obj/item/clothing/suit/storage/labcoat/chemist(src)
- new /obj/item/clothing/shoes/white(src)
- new /obj/item/clothing/shoes/white(src)
- new /obj/item/clothing/shoes/white(src)
/obj/structure/closet/wardrobe/medic_white/New()
new /obj/item/clothing/under/rank/medical(src)
@@ -331,15 +356,3 @@ obj/structure/closet/wardrobe/hop/New()
new /obj/item/clothing/shoes/black(src)
new /obj/item/clothing/shoes/black(src)
new /obj/item/clothing/shoes/black(src)
-
-
-/obj/structure/closet/wardrobe/virology_white/New()
- new /obj/item/clothing/suit/storage/labcoat/virologist(src)
- new /obj/item/clothing/suit/storage/labcoat/virologist(src)
- new /obj/item/clothing/suit/storage/labcoat/virologist(src)
- new /obj/item/clothing/under/rank/virologist(src)
- new /obj/item/clothing/under/rank/virologist(src)
- new /obj/item/clothing/under/rank/virologist(src)
- new /obj/item/clothing/shoes/white(src)
- new /obj/item/clothing/shoes/white(src)
- new /obj/item/clothing/shoes/white(src)
\ No newline at end of file
diff --git a/code/game/objects/devices/PDA/PDA.dm b/code/game/objects/devices/PDA/PDA.dm
index 43a634881af..1293cfce2b1 100755
--- a/code/game/objects/devices/PDA/PDA.dm
+++ b/code/game/objects/devices/PDA/PDA.dm
@@ -542,7 +542,7 @@
return
tnote += "→ To [P.owner]:
[t]
"
- P.tnote += "← From [owner]:
[t]
"
+ P.tnote += "← From [owner] ([ownjob]):
[t]
"
// Give every ghost the ability to see all messages
for (var/mob/dead/observer/G in world)
@@ -559,6 +559,9 @@
playsound(P.loc, 'twobeep.ogg', 50, 1)
for (var/mob/O in hearers(3, P.loc))
O.show_message(text("\icon[P] *[P.ttone]*"))
+ if( P.loc && ishuman(P.loc) )
+ var/mob/living/carbon/human/H = P.loc
+ H << "\icon[P] Message from [src.owner] ([ownjob]), \"[t]\" (Reply)"
P.overlays = null
P.overlays += image('pda.dmi', "pda-r")
@@ -709,7 +712,7 @@
honkamt--
playsound(loc, 'bikehorn.ogg', 30, 1)
- if(U.machine == src && !href_list["pAI_mess"])//Final safety.
+ if(U.machine == src && href_list["skiprefresh"]!="1")//Final safety.
attack_self(U)//It auto-closes the menu prior if the user is not in range and so on.
else
U.machine = null
diff --git a/code/game/objects/secstorage/secstorage.dm b/code/game/objects/secstorage/secstorage.dm
index e2d6a2599f8..725f27e4883 100644
--- a/code/game/objects/secstorage/secstorage.dm
+++ b/code/game/objects/secstorage/secstorage.dm
@@ -79,18 +79,25 @@
src.closer.screen_loc = text("[],[]", mx, my)
return
-/obj/item/weapon/secstorage/proc/orient2hud(mob/user as mob)
+//This proc draws out the inventory and places the items on it. It uses the standard position.
+/obj/item/weapon/secstorage/proc/standard_orient_objs()
+ var/rows = 0
+ var/cols = 6
+ var/cx = 4
+ var/cy = 2+rows
+ src.boxes.screen_loc = text("4:16,2:16 to [4+cols]:16,[2+rows]:16")
+ for(var/obj/O in src.contents)
+ O.screen_loc = text("[cx]:16,[cy]:16")
+ O.layer = 20
+ cx++
+ if (cx > (4+cols))
+ cx = 4
+ cy--
+ src.closer.screen_loc = text("11:16,2:16")
+ return
- if (src == user.l_hand)
- src.orient_objs(3, 11, 3, 4)
- else
- if (src == user.r_hand)
- src.orient_objs(1, 11, 1, 4)
- else
- if (src == user.back)
- src.orient_objs(4, 10, 4, 3)
- else
- src.orient_objs(7, 8, 10, 7)
+/obj/item/weapon/secstorage/proc/orient2hud(mob/user as mob)
+ standard_orient_objs()
return
/obj/item/weapon/secstorage/attackby(obj/item/weapon/W as obj, mob/user as mob)
@@ -160,7 +167,7 @@
/obj/item/weapon/secstorage/dropped(mob/user as mob)
- src.orient_objs(7, 8, 10, 7)
+ standard_orient_objs()
return
/obj/item/weapon/secstorage/MouseDrop(over_object, src_location, over_location)
@@ -168,6 +175,7 @@
if (src.locked == 1)
return
+ orient2hud(usr)
if ((over_object == usr && ((get_dist(src, usr) <= 1 ||src.locked == 0) || usr.contents.Find(src)))) //|| usr.telekinesis == 1
if (usr.s_active)
usr.s_active.close(usr)
@@ -258,6 +266,6 @@
src.closer.icon_state = "x"
src.closer.layer = 20
spawn( 5 )
- src.orient_objs(7, 8, 10, 7)
+ standard_orient_objs()
return
return
diff --git a/code/game/objects/storage/backpack.dm b/code/game/objects/storage/backpack.dm
index 46579882f06..a6eb10e6fe7 100644
--- a/code/game/objects/storage/backpack.dm
+++ b/code/game/objects/storage/backpack.dm
@@ -1,8 +1,4 @@
/obj/item/weapon/storage/backpack/MouseDrop(obj/over_object as obj)
-
-// if (src.loc != usr)
-// return
-// if ((istype(usr, /mob/living/carbon/human) || (ticker && ticker.mode.name == "monkey")))
if (ishuman(usr) || ismonkey(usr)) //so monkeys can take off their backpacks -- Urist
var/mob/M = usr
if (!( istype(over_object, /obj/screen) ))
diff --git a/code/game/objects/storage/belt.dm b/code/game/objects/storage/belt.dm
index 47f8c7095cd..11dcc50c2a6 100644
--- a/code/game/objects/storage/belt.dm
+++ b/code/game/objects/storage/belt.dm
@@ -37,17 +37,6 @@
return
- attack_hand(mob/user as mob)
- src.add_fingerprint(user)
- if(src.loc == user)
- playsound(src.loc, "rustle", 50, 1, -5)
- if (user.s_active)
- user.s_active.close(user)
- src.show_to(user)
- else
- return ..()
-
-
/obj/item/weapon/storage/belt/utility
name = "tool-belt" //Carn: utility belt is nicer, but it bamboozles the text parsing.
diff --git a/code/game/objects/storage/coat.dm b/code/game/objects/storage/coat.dm
index 96c0404f5f2..f881283910f 100644
--- a/code/game/objects/storage/coat.dm
+++ b/code/game/objects/storage/coat.dm
@@ -1,221 +1,11 @@
-
/obj/item/clothing/suit/storage
- var/obj/screen/storage/boxes
- var/obj/screen/close/closer
- var/obj/slot1
- var/obj/slot2
-
-/obj/item/clothing/suit/storage/New()
- src.boxes = new /obj/screen/storage( )
- src.boxes.name = "storage"
- src.boxes.master = src
- src.boxes.icon_state = "block"
- src.boxes.screen_loc = "7,7 to 9,7"
- src.boxes.layer = 19
- src.closer = new /obj/screen/close( )
- src.closer.master = src
- src.closer.icon_state = "x"
- src.closer.layer = 20
- src.closer.screen_loc = "9,7"
-
-/obj/item/clothing/suit/storage/proc/view_inv(mob/user as mob)
- if(!user.client)
- return
- user.client.screen += src.boxes
- user.client.screen += src.closer
- user.client.screen += src.contents
-
-/obj/item/clothing/suit/storage/proc/close(mob/user as mob)
- if(!user.client)
- return
- user.client.screen -= src.boxes
- user.client.screen -= src.closer
- user.client.screen -= src.contents
-
-/obj/item/clothing/suit/storage/MouseDrop(atom/over_object)
- if(ishuman(usr))
- var/mob/living/carbon/human/M = usr
- if (!( istype(over_object, /obj/screen) ))
- return ..()
- playsound(src.loc, "rustle", 50, 1, -5)
- if ((!( M.restrained() ) && !( M.stat ) && M.wear_suit == src))
- if (over_object.name == "r_hand")
- if (!( M.r_hand ))
- M.u_equip(src)
- M.r_hand = src
- else
- if (over_object.name == "l_hand")
- if (!( M.l_hand ))
- M.u_equip(src)
- M.l_hand = src
- M.update_clothing()
- src.add_fingerprint(usr)
- return
- if(over_object == usr && in_range(src, usr) || usr.contents.Find(src))
- src.view_inv(M)
- src.orient_objs(7,7,9,7)
- return
- return
-
-/obj/item/clothing/suit/storage/attackby(obj/item/weapon/W as obj, mob/user as mob)
- if(W.w_class > 2 || src.loc == W )
- return
- if(istype(W,/obj/item/weapon/evidencebag) && src.loc != user)
- return
- if(src.contents.len >= 2)
- user << "\red There's nowhere to place that!"
- return
- user.u_equip(W)
- W.loc = src
- if ((user.client && user.s_active != src))
- user.client.screen -= W
- else if(user.s_active == src)
- close(user)
- view_inv(user)
- orient2hud(user)
- W.dropped(user)
-
-/obj/item/clothing/suit/storage/attack_paw(mob/user as mob)
- playsound(src.loc, "rustle", 50, 1, -5)
- return attack_hand(user)
-
-/obj/item/clothing/suit/storage/attack_hand(mob/user as mob)
- playsound(src.loc, "rustle", 50, 1, -5)
- if (src.loc == user)
- if (user.s_active)
- user.s_active.close(user)
- src.show_to(user)
- else
- ..()
- for(var/mob/M in range(1))
- if (M.s_active == src)
- src.close(M)
- src.orient2hud(user)
- src.add_fingerprint(user)
- return
-
-/obj/item/clothing/suit/storage/proc/orient2hud(mob/user as mob)
- if (src == user.l_hand)
- src.orient_objs(3, 4, 3, 3)
- else if (src == user.r_hand)
- src.orient_objs(1, 4, 1, 3)
- else if (istype(user,/mob/living/carbon/human) && src == user:wear_suit)
- src.orient_objs(1, 3, 2, 3)
- else
- src.orient_objs(4, 3, 4, 2)
- return
-
-/obj/item/clothing/suit/storage/proc/orient_objs(tx, ty, mx, my)
- var/cx = tx
- var/cy = ty
- src.boxes.screen_loc = "[tx],[ty] to [mx],[my]"
- for(var/obj/O in src.contents)
- O.screen_loc = "[cx],[cy]"
- O.layer = 20
- cx++
- if (cx > mx)
- cx = tx
- cy--
- src.closer.screen_loc = "[mx+1],[my]"
- return
-
-/obj/item/clothing/suit/storage/proc/show_to(mob/user as mob)
- for(var/obj/item/weapon/mousetrap/MT in src)
- if(MT.armed)
- for(var/mob/O in viewers(user, null))
- if(O == user)
- user.show_message(text("\red You reach into the [src.name], but there was a live mousetrap in there!"), 1)
- else
- user.show_message(text("\red [user] reaches into the [src.name] and sets off a hidden mousetrap!"), 1)
- MT.loc = user.loc
- MT.triggered(user, user.hand ? "l_hand" : "r_hand")
- MT.layer = OBJ_LAYER
- return
- user.client.screen -= src.boxes
- user.client.screen -= src.closer
- user.client.screen -= src.contents
- user.client.screen += src.boxes
- user.client.screen += src.closer
- user.client.screen += src.contents
- user.s_active = src
- return
-
-/*/obj/item/clothing/suit/storage/New()
-
- src.boxes = new /obj/screen/storage( )
- src.boxes.name = "storage"
- src.boxes.master = src
- src.boxes.icon_state = "block"
- src.boxes.screen_loc = "7,7 to 10,8"
- src.boxes.layer = 19
- src.closer = new /obj/screen/close( )
- src.closer.master = src
- src.closer.icon_state = "x"
- src.closer.layer = 20
- spawn( 5 )
- src.orient_objs(7, 8, 10, 7)
- return
- return
-
-/obj/item/clothing/suit/storage/attackby(obj/item/weapon/W as obj, mob/user as mob)
-
- if(can_hold.len)
- var/ok = 0
- for(var/A in can_hold)
- if(istype(W, text2path(A) )) ok = 1
- if(!ok)
- user << "\red This container cannot hold [W]."
- return
-
- if (src.contents.len >= 7)
- return
- if ((W.w_class >= 3 || istype(W, /obj/item/weapon/storage) || src.loc == W))
- return
- user.u_equip(W)
- W.loc = src
- if ((user.client && user.s_active != src))
- user.client.screen -= W
- src.orient2hud(user)
- W.dropped(user)
- add_fingerprint(user)
- if (istype(W, /obj/item/weapon/gun/energy/crossbow)) return //STEALTHY
- for(var/mob/O in viewers(user, null))
- O.show_message(text("\blue [] has added [] to []!", user, W, src), 1)
- //Foreach goto(139)
- return
-
-/obj/item/clothing/suit/storage/dropped(mob/user as mob)
- src.orient_objs(7, 8, 10, 7)
- return
-
-/obj/item/clothing/suit/storage/MouseDrop(over_object, src_location, over_location)
- ..()
- if ((over_object == usr && (in_range(src, usr) || usr.contents.Find(src))))
- if (usr.s_active)
- usr.s_active.close(usr)
- src.show_to(usr)
- return
-
-/obj/item/clothing/suit/storage/attack_paw(mob/user as mob)
- playsound(src.loc, "rustle", 50, 1, -5)
- return src.attack_hand(user)
- return
-
-/obj/item/clothing/suit/storage/attack_hand(mob/user as mob)
- playsound(src.loc, "rustle", 50, 1, -5)
- if (src.loc == user)
- if (user.s_active)
- user.s_active.close(user)
- src.show_to(user)
- else
- ..()
- for(var/mob/M in range(1))
- if (M.s_active == src)
- src.close(M)
- //Foreach goto(76)
- src.orient2hud(user)
- src.add_fingerprint(user)
- return
+ var/list/can_hold = new/list() //List of objects which this item can store (if set, it can't store anything else)
+ var/list/cant_hold = new/list() //List of objects which this item can't store (in effect only if can_hold isn't set)
+ var/max_w_class = 2 //Max size of objects that this object can store (in effect only if can_hold isn't set)
+ var/max_combined_w_class = 4 //The sum of the w_classes of all the items in this storage item.
+ var/storage_slots = 2 //The number of storage slots in this container.
+ var/obj/screen/storage/boxes = null
+ var/obj/screen/close/closer = null
/obj/item/clothing/suit/storage/proc/return_inv()
@@ -267,19 +57,169 @@
user.s_active = null
return
-/obj/item/weapon/storage/proc/orient_objs(tx, ty, mx, my)
-
+//This proc draws out the inventory and places the items on it. tx and ty are the upper left tile and mx, my are the bottm right.
+//The numbers are calculated from the bottom-left The bottom-left slot being 1,1.
+/obj/item/clothing/suit/storage/proc/orient_objs(tx, ty, mx, my)
var/cx = tx
var/cy = ty
- src.boxes.screen_loc = text("[],[] to [],[]", tx, ty, mx, my)
+ src.boxes.screen_loc = text("[tx]:,[ty] to [mx],[my]")
for(var/obj/O in src.contents)
- O.screen_loc = text("[],[]", cx, cy)
+ O.screen_loc = text("[cx],[cy]")
O.layer = 20
cx++
if (cx > mx)
cx = tx
cy--
- //Foreach goto(56)
- src.closer.screen_loc = text("[],[]", mx, my)
+ src.closer.screen_loc = text("[mx+1],[my]")
return
-*/
\ No newline at end of file
+
+//This proc draws out the inventory and places the items on it. It uses the standard position.
+/obj/item/clothing/suit/storage/proc/standard_orient_objs(var/rows,var/cols)
+ var/cx = 4
+ var/cy = 2+rows
+ src.boxes.screen_loc = text("4:16,2:16 to [4+cols]:16,[2+rows]:16")
+ for(var/obj/O in src.contents)
+ O.screen_loc = text("[cx]:16,[cy]:16")
+ O.layer = 20
+ cx++
+ if (cx > (4+cols))
+ cx = 4
+ cy--
+ src.closer.screen_loc = text("[4+cols+1]:16,2:16")
+ return
+
+//This proc determins the size of the inventory to be displayed. Please touch it only if you know what you're doing.
+/obj/item/clothing/suit/storage/proc/orient2hud(mob/user as mob)
+ //var/mob/living/carbon/human/H = user
+ var/row_num = 0
+ var/col_count = min(7,storage_slots) -1
+ if (contents.len > 7)
+ row_num = round((contents.len-1) / 7) // 7 is the maximum allowed width.
+ src.standard_orient_objs(row_num,col_count)
+ return
+
+//This proc is called when you want to place an item into the storage item.
+/obj/item/clothing/suit/storage/attackby(obj/item/weapon/W as obj, mob/user as mob)
+ if(istype(W,/obj/item/weapon/evidencebag) && src.loc != user)
+ return
+
+ ..()
+ if(isrobot(user))
+ user << "\blue You're a robot. No."
+ return //Robots can't interact with storage items.
+
+ if(src.loc == W)
+ return //Means the item is already in the storage item
+
+ if(contents.len >= storage_slots)
+ user << "\red The [src] is full, make some space."
+ return //Storage item is full
+
+ if(can_hold.len)
+ var/ok = 0
+ for(var/A in can_hold)
+ if(istype(W, text2path(A) ))
+ ok = 1
+ break
+ if(!ok)
+ user << "\red This [src] cannot hold [W]."
+ return
+
+ for(var/A in cant_hold) //Check for specific items which this container can't hold.
+ if(istype(W, text2path(A) ))
+ user << "\red This [src] cannot hold [W]."
+ return
+
+ if (W.w_class > max_w_class)
+ user << "\red This [W] is too big for \the [src]"
+ return
+
+ var/sum_w_class = W.w_class
+ for(var/obj/item/I in contents)
+ sum_w_class += I.w_class //Adds up the combined w_classes which will be in the storage item if the item is added to it.
+
+ if(sum_w_class > max_combined_w_class)
+ user << "\red The [src] is full, make some space."
+ return
+
+ if(W.w_class >= src.w_class && (istype(W, /obj/item/weapon/storage)))
+ if(!istype(src, /obj/item/weapon/storage/backpack/holding)) //bohs should be able to hold backpacks again. The override for putting a boh in a boh is in backpack.dm.
+ user << "\red The [src] cannot hold [W] as it's a storage item of the same size."
+ return //To prevent the stacking of the same sized items.
+
+ user.u_equip(W)
+ W.loc = src
+ if ((user.client && user.s_active != src))
+ user.client.screen -= W
+ src.orient2hud(user)
+ W.dropped(user)
+ add_fingerprint(user)
+
+
+
+/obj/item/weapon/storage/dropped(mob/user as mob)
+ return
+
+/obj/item/clothing/suit/storage/MouseDrop(atom/over_object)
+ if(ishuman(usr))
+ var/mob/living/carbon/human/M = usr
+ if (!( istype(over_object, /obj/screen) ))
+ return ..()
+ playsound(src.loc, "rustle", 50, 1, -5)
+ if ((!( M.restrained() ) && !( M.stat ) && M.wear_suit == src))
+ if (over_object.name == "r_hand")
+ if (!( M.r_hand ))
+ M.u_equip(src)
+ M.r_hand = src
+ else
+ if (over_object.name == "l_hand")
+ if (!( M.l_hand ))
+ M.u_equip(src)
+ M.l_hand = src
+ M.update_clothing()
+ src.add_fingerprint(usr)
+ return
+ if(over_object == usr && in_range(src, usr) || usr.contents.Find(src))
+ usr.s_active.close(usr)
+ src.show_to(usr)
+ return
+
+/obj/item/clothing/suit/storage/attack_paw(mob/user as mob)
+ //playsound(src.loc, "rustle", 50, 1, -5) // what
+ return src.attack_hand(user)
+
+/obj/item/clothing/suit/storage/attack_hand(mob/user as mob)
+ playsound(src.loc, "rustle", 50, 1, -5)
+ src.orient2hud(user)
+ if (src.loc == user)
+ if (user.s_active)
+ user.s_active.close(user)
+ src.show_to(user)
+ else
+ ..()
+ for(var/mob/M in range(1))
+ if (M.s_active == src)
+ src.close(M)
+ src.add_fingerprint(user)
+ return
+
+/obj/item/clothing/suit/storage/New()
+
+ src.boxes = new /obj/screen/storage( )
+ src.boxes.name = "storage"
+ src.boxes.master = src
+ src.boxes.icon_state = "block"
+ src.boxes.screen_loc = "7,7 to 10,8"
+ src.boxes.layer = 19
+ src.closer = new /obj/screen/close( )
+ src.closer.master = src
+ src.closer.icon_state = "x"
+ src.closer.layer = 20
+ orient2hud()
+ return
+
+/obj/item/weapon/storage/emp_act(severity)
+ if(!istype(src.loc, /mob/living))
+ for(var/obj/O in contents)
+ O.emp_act(severity)
+ ..()
\ No newline at end of file
diff --git a/code/game/objects/storage/storage.dm b/code/game/objects/storage/storage.dm
index 4cf94bd0670..2c7d66971f5 100644
--- a/code/game/objects/storage/storage.dm
+++ b/code/game/objects/storage/storage.dm
@@ -62,11 +62,11 @@
return
//This proc draws out the inventory and places the items on it. tx and ty are the upper left tile and mx, my are the bottm right.
-//The numbers are calculated from the bottom-left (Right hand slot on the map) being 1,1.
+//The numbers are calculated from the bottom-left The bottom-left slot being 1,1.
/obj/item/weapon/storage/proc/orient_objs(tx, ty, mx, my)
var/cx = tx
var/cy = ty
- src.boxes.screen_loc = text("[tx],[ty] to [mx],[my]")
+ src.boxes.screen_loc = text("[tx]:,[ty] to [mx],[my]")
for(var/obj/O in src.contents)
O.screen_loc = text("[cx],[cy]")
O.layer = 20
@@ -77,23 +77,29 @@
src.closer.screen_loc = text("[mx+1],[my]")
return
+//This proc draws out the inventory and places the items on it. It uses the standard position.
+/obj/item/weapon/storage/proc/standard_orient_objs(var/rows,var/cols)
+ var/cx = 4
+ var/cy = 2+rows
+ src.boxes.screen_loc = text("4:16,2:16 to [4+cols]:16,[2+rows]:16")
+ for(var/obj/O in src.contents)
+ O.screen_loc = text("[cx]:16,[cy]:16")
+ O.layer = 20
+ cx++
+ if (cx > (4+cols))
+ cx = 4
+ cy--
+ src.closer.screen_loc = text("[4+cols+1]:16,2:16")
+ return
+
//This proc determins the size of the inventory to be displayed. Please touch it only if you know what you're doing.
/obj/item/weapon/storage/proc/orient2hud(mob/user as mob)
- var/mob/living/carbon/human/H = user
- var/col_num = 0
- var/row_count = min(7,storage_slots) -1 //For belts, the meanings of the two variables are inverted, so we don't have to declare new ones
+ //var/mob/living/carbon/human/H = user
+ var/row_num = 0
+ var/col_count = min(7,storage_slots) -1
if (contents.len > 7)
- col_num = round((contents.len-1) / 7) // 7 is the maximum allowed column height for r_hand, l_hand and back storage items.
- if (src == user.l_hand)
- src.orient_objs(3-col_num, 3+row_count, 3, 3)
- else if(src == user.r_hand)
- src.orient_objs(1, 3+row_count, 1+col_num, 3)
- else if(src == user.back)
- src.orient_objs(4-col_num, 3+row_count, 4, 3)
- else if(istype(user, /mob/living/carbon/human) && src == H.belt)//only humans have belts
- src.orient_objs(1, 3+col_num, 1+row_count, 3)
- else
- src.orient_objs(5, 10+col_num, 5 + row_count, 10)
+ row_num = round((contents.len-1) / 7) // 7 is the maximum allowed width.
+ src.standard_orient_objs(row_num,col_count)
return
//This proc is called when you want to place an item into the storage item.
@@ -129,7 +135,7 @@
return
if (W.w_class > max_w_class)
- user << "\red This [W] is too big for this [src]"
+ user << "\red This [W] is too big for \the [src]"
return
if(istype(W, /obj/item/weapon/tray))
@@ -186,15 +192,11 @@
return
/obj/item/weapon/storage/dropped(mob/user as mob)
- var/col_num = 0
- var/row_count = min(7,storage_slots) -1
- if (contents.len > 7)
- col_num = round((contents.len-1) / 7) // 7 is the maximum allowed column height for r_hand, l_hand and back storage items.
- src.orient_objs(5, 10+col_num, 5 + row_count, 10)
return
/obj/item/weapon/storage/MouseDrop(over_object, src_location, over_location)
..()
+ orient2hud(usr)
if ((over_object == usr && (in_range(src, usr) || usr.contents.Find(src))))
if (usr.s_active)
usr.s_active.close(usr)
@@ -244,14 +246,7 @@
src.closer.master = src
src.closer.icon_state = "x"
src.closer.layer = 20
- spawn( 5 )
- var/col_num = 0
- var/row_count = min(7,storage_slots) -1
- if (contents.len > 7)
- if(contents.len % 7)
- col_num = round(contents.len / 7) // 7 is the maximum allowed column height for r_hand, l_hand and back storage items.
- src.orient_objs(5, 10+col_num, 5 + row_count, 10)
- return
+ orient2hud()
return
/obj/item/weapon/storage/emp_act(severity)
@@ -442,4 +437,4 @@
..()
return
-////////////////////////////////////////////////////////////////////////////////
+////////////////////////////////////////////////////////////////////////////////
\ No newline at end of file
diff --git a/code/modules/food/food.dm b/code/modules/food/food.dm
index 3407f714bb5..af8363d9951 100644
--- a/code/modules/food/food.dm
+++ b/code/modules/food/food.dm
@@ -629,6 +629,7 @@
name = "exceptional plump pie"
desc = "Microwave is taken by a fey mood! It has cooked an exceptional plump pie!"
reagents.add_reagent("nutriment", 15)
+ reagents.add_reagent("tricordrazine", 5)
bitesize = 2
else
reagents.add_reagent("nutriment", 10)
@@ -855,7 +856,7 @@
New()
..()
reagents.add_reagent("toxin", 1)
- reagents.add_reagent("carbon", 1)
+ reagents.add_reagent("carbon", 3)
bitesize = 2
/obj/item/weapon/reagent_containers/food/snacks/sliceable/meatsteak
@@ -906,17 +907,17 @@
reagents.add_reagent("amatoxin", 6)
reagents.add_reagent("psilocybin", 3)
bitesize = 3
-/*
+
/obj/item/weapon/reagent_containers/food/snacks/poppypretzel
name = "Poppy pretzel"
- desc = "" //TODO
+ desc = "It's all twisted up!"
icon_state = "poppypretzel"
bitesize = 2
New()
..()
reagents.add_reagent("nutriment", 5)
bitesize = 2
-*/
+
/obj/item/weapon/reagent_containers/food/snacks/meatballsoup
name = "Meatball soup"
@@ -947,7 +948,7 @@
..()
reagents.add_reagent("nutriment", 2)
reagents.add_reagent("blood", 15)
- reagents.add_reagent("water", 10)
+ reagents.add_reagent("water", 5)
bitesize = 5
/obj/item/weapon/reagent_containers/food/snacks/clownstears
@@ -956,7 +957,7 @@
icon_state = "clownstears"
New()
..()
- reagents.add_reagent("nutriment", 1)
+ reagents.add_reagent("nutriment", 4)
reagents.add_reagent("banana", 5)
reagents.add_reagent("water", 10)
bitesize = 5
@@ -969,7 +970,7 @@
New()
..()
reagents.add_reagent("nutriment", 10)
- reagents.add_reagent("water", 10)
+ reagents.add_reagent("water", 5)
bitesize = 5
/obj/item/weapon/reagent_containers/food/snacks/nettlesoup
@@ -980,8 +981,8 @@
New()
..()
reagents.add_reagent("nutriment", 10)
- reagents.add_reagent("water", 7)
- reagents.add_reagent("tricordrazine", 3)
+ reagents.add_reagent("water", 5)
+ reagents.add_reagent("tricordrazine", 5)
bitesize = 5
/obj/item/weapon/reagent_containers/food/snacks/mysterysoup
@@ -1038,7 +1039,7 @@
..()
reagents.add_reagent("water", 10)
bitesize = 5
- if(prob(5))
+ if(prob(25))
src.desc = "A wish come true!"
reagents.add_reagent("nutriment", 10)
@@ -1205,6 +1206,7 @@
New()
..()
reagents.add_reagent("nutriment", 12)
+ reagents.add_reagent("carbon", 2)
bitesize = 2
/obj/item/weapon/reagent_containers/food/snacks/grilledcheese
@@ -1248,7 +1250,7 @@
reagents.add_reagent("nutriment", 20)
reagents.add_reagent("tomatojuice", 5)
reagents.add_reagent("imidazoline", 5)
- reagents.add_reagent("water", 10)
+ reagents.add_reagent("water", 5)
bitesize = 10
/obj/item/weapon/reagent_containers/food/snacks/metroidtoast
@@ -1280,7 +1282,7 @@
New()
..()
reagents.add_reagent("nutriment", 12)
- reagents.add_reagent("water", 20)
+ reagents.add_reagent("water", 5)
bitesize = 4
/obj/item/weapon/reagent_containers/food/snacks/stewedsoymeat
@@ -1438,6 +1440,7 @@
name = "exceptional plump helmet biscuit"
desc = "Microwave is taken by a fey mood! It has cooked an exceptional plump helmet biscuit!"
reagents.add_reagent("nutriment", 15)
+ reagents.add_reagent("tricordrazine", 5)
bitesize = 2
else
reagents.add_reagent("nutriment", 5)
diff --git a/code/modules/mining/mine_items.dm b/code/modules/mining/mine_items.dm
index 600a3831650..9b4425c396a 100644
--- a/code/modules/mining/mine_items.dm
+++ b/code/modules/mining/mine_items.dm
@@ -14,6 +14,7 @@
icon_state = "miningsec1"
icon_closed = "miningsec"
icon_locked = "miningsec1"
+ icon_opened = "miningsecopen"
icon_broken = "miningsecbroken"
icon_off = "miningsecoff"
req_access = list(access_mining)
diff --git a/code/modules/mob/living/carbon/alien/humanoid/hud.dm b/code/modules/mob/living/carbon/alien/humanoid/hud.dm
index 37ec382bc7e..9b48bde3e6b 100644
--- a/code/modules/mob/living/carbon/alien/humanoid/hud.dm
+++ b/code/modules/mob/living/carbon/alien/humanoid/hud.dm
@@ -8,6 +8,7 @@
src.mov_int = list( )
src.vimpaired = list( )
src.darkMask = list( )
+ src.intent_small_hud_objects = list( )
src.g_dither = new src.h_type( src )
src.g_dither.screen_loc = "WEST,SOUTH to EAST,NORTH"
@@ -49,6 +50,41 @@
src.adding += using
action_intent = using
+//intent small hud objects
+ using = new src.h_type( src )
+ using.name = "help"
+ using.icon = 'screen1_alien.dmi'
+ using.icon_state = "help_small"
+ using.screen_loc = ui_help_small
+ using.layer = 21
+ src.intent_small_hud_objects += using
+
+ using = new src.h_type( src )
+ using.name = "disarm"
+ using.icon = 'screen1_alien.dmi'
+ using.icon_state = "disarm_small"
+ using.screen_loc = ui_disarm_small
+ using.layer = 21
+ src.intent_small_hud_objects += using
+
+ using = new src.h_type( src )
+ using.name = "grab"
+ using.icon = 'screen1_alien.dmi'
+ using.icon_state = "grab_small"
+ using.screen_loc = ui_grab_small
+ using.layer = 21
+ src.intent_small_hud_objects += using
+
+ using = new src.h_type( src )
+ using.name = "harm"
+ using.icon = 'screen1_alien.dmi'
+ using.icon_state = "harm_small"
+ using.screen_loc = ui_harm_small
+ using.layer = 21
+ src.intent_small_hud_objects += using
+
+//end intent small hud objects
+
using = new src.h_type( src )
using.name = "mov_intent"
using.dir = SOUTHWEST
@@ -59,6 +95,7 @@
src.adding += using
move_intent = using
+/*
using = new src.h_type(src) //Right hud bar
using.dir = SOUTH
using.icon = 'screen1_alien.dmi'
@@ -79,7 +116,9 @@
using.screen_loc = "EAST+1,SOUTH-1"
using.layer = 19
src.adding += using
+*/
+ /*
using = new src.h_type( src )
using.name = "arrowleft"
using.icon = 'screen1_alien.dmi'
@@ -97,6 +136,7 @@
using.screen_loc = ui_iarrowright
using.layer = 19
src.adding += using
+ */
using = new src.h_type( src )
using.name = "drop"
@@ -115,7 +155,7 @@
using.dir = SOUTH
using.icon = 'screen1_alien.dmi'
using.icon_state = "equip"
- using.screen_loc = ui_iclothing
+ using.screen_loc = ui_alien_oclothing
using.layer = 19
src.adding += using
@@ -125,7 +165,7 @@
using.dir = WEST
using.icon = 'screen1_alien.dmi'
using.icon_state = "equip"
- using.screen_loc = ui_id
+ using.screen_loc = ui_rhand
using.layer = 19
src.adding += using
@@ -135,7 +175,7 @@
using.dir = EAST
using.icon = 'screen1_alien.dmi'
using.icon_state = "equip"
- using.screen_loc = ui_belt
+ using.screen_loc = ui_lhand
using.layer = 19
src.adding += using
@@ -162,11 +202,12 @@
using.name = "head"
using.icon = 'screen1_alien.dmi'
using.icon_state = "hair"
- using.screen_loc = ui_oclothing
+ using.screen_loc = ui_alien_head
using.layer = 19
src.adding += using
//end of equippable shit
+/*
using = new src.h_type( src )
using.name = "resist"
using.icon = 'screen1_alien.dmi'
@@ -174,8 +215,7 @@
using.screen_loc = ui_resist
using.layer = 19
src.adding += using
-
-
+*/
using = new src.h_type( src )
using.name = null
@@ -241,7 +281,7 @@
mymob.healths.icon = 'screen1_alien.dmi'
mymob.healths.icon_state = "health0"
mymob.healths.name = "health"
- mymob.healths.screen_loc = ui_health
+ mymob.healths.screen_loc = ui_alien_health
mymob.pullin = new /obj/screen( null )
mymob.pullin.icon = 'screen1_alien.dmi'
@@ -265,6 +305,7 @@
mymob.flash.screen_loc = "1,1 to 15,15"
mymob.flash.layer = 17
+ /*
mymob.hands = new /obj/screen( null )
mymob.hands.icon = 'screen1_alien.dmi'
mymob.hands.icon_state = "hand"
@@ -285,6 +326,7 @@
mymob.rest.screen_loc = ui_rest
mymob.gun_setting_icon = new /obj/screen/gun/mode(null)
+ */
mymob.zone_sel = new /obj/screen/zone_sel( null )
@@ -293,6 +335,6 @@
mymob.client.screen = null
- mymob.client.screen += list( mymob.throw_icon, mymob.zone_sel, mymob.oxygen, mymob.toxin, mymob.fire, mymob.hands, mymob.healths, mymob.pullin, mymob.blind, mymob.flash, mymob.rest, mymob.sleep, mymob.gun_setting_icon) //, mymob.mach )
+ mymob.client.screen += list( mymob.throw_icon, mymob.zone_sel, mymob.oxygen, mymob.toxin, mymob.fire, mymob.healths, mymob.pullin, mymob.blind, mymob.flash) //, mymob.hands, mymob.rest, mymob.sleep, mymob.mach )
mymob.client.screen += src.adding + src.other
diff --git a/code/modules/mob/living/carbon/alien/humanoid/humanoid.dm b/code/modules/mob/living/carbon/alien/humanoid/humanoid.dm
index 8dff96afd79..bd1da4e2990 100644
--- a/code/modules/mob/living/carbon/alien/humanoid/humanoid.dm
+++ b/code/modules/mob/living/carbon/alien/humanoid/humanoid.dm
@@ -398,7 +398,7 @@
overlays += image("icon" = 'blood.dmi', "icon_state" = "armorblood[!lying ? "" : "2"]", "layer" = MOB_LAYER)
else
overlays += image("icon" = 'blood.dmi', "icon_state" = "suitblood[!lying ? "" : "2"]", "layer" = MOB_LAYER)
- wear_suit.screen_loc = ui_iclothing
+ wear_suit.screen_loc = ui_alien_oclothing
if (istype(wear_suit, /obj/item/clothing/suit/straight_jacket))
if (handcuffed)
handcuffed.loc = loc
@@ -420,7 +420,7 @@
overlays += image("icon" = 'mob.dmi', "icon_state" = text("[][]", t1, (!( lying ) ? null : "2")), "layer" = MOB_LAYER)
if (head.blood_DNA)
overlays += image("icon" = 'blood.dmi', "icon_state" = "helmetblood[!lying ? "" : "2"]", "layer" = MOB_LAYER)
- head.screen_loc = ui_oclothing
+ head.screen_loc = ui_alien_head
if (l_store)
l_store.screen_loc = ui_storage1
@@ -435,12 +435,12 @@
if (r_hand)
overlays += image("icon" = 'items_righthand.dmi', "icon_state" = r_hand.item_state ? r_hand.item_state : r_hand.icon_state, "layer" = MOB_LAYER+1)
- r_hand.screen_loc = ui_id
+ r_hand.screen_loc = ui_rhand
if (l_hand)
overlays += image("icon" = 'items_lefthand.dmi', "icon_state" = l_hand.item_state ? l_hand.item_state : l_hand.icon_state, "layer" = MOB_LAYER+1)
- l_hand.screen_loc = ui_belt
+ l_hand.screen_loc = ui_lhand
diff --git a/code/modules/mob/living/carbon/alien/larva/hud.dm b/code/modules/mob/living/carbon/alien/larva/hud.dm
index e51b8b48de5..aeaba01f239 100644
--- a/code/modules/mob/living/carbon/alien/larva/hud.dm
+++ b/code/modules/mob/living/carbon/alien/larva/hud.dm
@@ -61,6 +61,7 @@
src.adding += using
move_intent = using
+/*
using = new src.h_type(src) //Right hud bar
using.dir = SOUTH
using.icon = 'screen1_alien.dmi'
@@ -81,7 +82,9 @@
using.screen_loc = "EAST+1,SOUTH-1"
using.layer = 19
src.adding += using
+*/
+/*
using = new src.h_type( src )
using.name = "arrowleft"
using.icon = 'screen1_alien.dmi'
@@ -100,7 +103,6 @@
using.layer = 19
src.adding += using
-
using = new src.h_type( src )
using.name = "resist"
using.icon = 'screen1_alien.dmi'
@@ -108,7 +110,7 @@
using.screen_loc = ui_resist
using.layer = 19
src.adding += using
-
+*/
using = new src.h_type( src )
@@ -171,7 +173,7 @@
mymob.healths.icon = 'screen1_alien.dmi'
mymob.healths.icon_state = "health0"
mymob.healths.name = "health"
- mymob.healths.screen_loc = ui_health
+ mymob.healths.screen_loc = ui_alien_health
mymob.pullin = new /obj/screen( null )
mymob.pullin.icon = 'screen1_alien.dmi'
@@ -194,7 +196,7 @@
mymob.flash.screen_loc = "1,1 to 15,15"
mymob.flash.layer = 17
-
+/*
mymob.sleep = new /obj/screen( null )
mymob.sleep.icon = 'screen1_alien.dmi'
mymob.sleep.icon_state = "sleep0"
@@ -206,7 +208,7 @@
mymob.rest.icon_state = "rest0"
mymob.rest.name = "rest"
mymob.rest.screen_loc = ui_rest
-
+*/
mymob.zone_sel = new /obj/screen/zone_sel( null )
mymob.zone_sel.overlays = null
@@ -214,7 +216,7 @@
mymob.client.screen = null
- mymob.client.screen += list( mymob.zone_sel, mymob.oxygen, mymob.toxin, mymob.fire, mymob.healths, mymob.pullin, mymob.blind, mymob.flash, mymob.rest, mymob.sleep) //, mymob.mach )
+ mymob.client.screen += list( mymob.zone_sel, mymob.oxygen, mymob.toxin, mymob.fire, mymob.healths, mymob.pullin, mymob.blind, mymob.flash) //, mymob.rest, mymob.sleep, mymob.mach )
mymob.client.screen += src.adding + src.other
diff --git a/code/modules/mob/living/carbon/brain/hud.dm b/code/modules/mob/living/carbon/brain/hud.dm
index f575d5ffbb2..1ce2c9726e3 100644
--- a/code/modules/mob/living/carbon/brain/hud.dm
+++ b/code/modules/mob/living/carbon/brain/hud.dm
@@ -1,5 +1,7 @@
/obj/hud/proc/brain_hud(var/ui_style='screen1_old.dmi')
+ ui_style='screen1_old.dmi' //Overriding the parameter. Only this UI style is acceptable with the 'sleek' layout.
+
blurry = new h_type( src )
blurry.screen_loc = "WEST,SOUTH to EAST,NORTH"
blurry.name = "Blurry"
diff --git a/code/modules/mob/living/carbon/carbon.dm b/code/modules/mob/living/carbon/carbon.dm
index 7dfe4cb5901..005c693f8ed 100644
--- a/code/modules/mob/living/carbon/carbon.dm
+++ b/code/modules/mob/living/carbon/carbon.dm
@@ -173,12 +173,32 @@
usr << "Your other hand is too busy holding the [item_in_hand.name]"
return
src.hand = !( src.hand )
- if (!( src.hand ))
+ if(hud_used.l_hand_hud_object && hud_used.r_hand_hud_object)
+ if(hand) //This being 1 means the left hand is in use
+ hud_used.l_hand_hud_object.icon_state = "hand_active"
+ hud_used.r_hand_hud_object.icon_state = "hand_inactive"
+ else
+ hud_used.l_hand_hud_object.icon_state = "hand_inactive"
+ hud_used.r_hand_hud_object.icon_state = "hand_active"
+ /*if (!( src.hand ))
src.hands.dir = NORTH
else
- src.hands.dir = SOUTH
+ src.hands.dir = SOUTH*/
return
+/mob/living/carbon/proc/activate_hand(var/selhand) //0 or "r" or "right" for right hand; 1 or "l" or "left" for left hand.
+
+ if(istext(selhand))
+ selhand = lowertext(selhand)
+
+ if(selhand == "right" || selhand == "r")
+ selhand = 0
+ if(selhand == "left" || selhand == "l")
+ selhand = 1
+
+ if(selhand != src.hand)
+ swap_hand()
+
/mob/living/carbon/proc/help_shake_act(mob/living/carbon/M)
if (src.health > 0)
if(src == M && istype(src, /mob/living/carbon/human))
@@ -262,11 +282,12 @@
if(src.sleeping_willingly)
src.sleeping = 0
src.sleeping_willingly = 0
- // Update the hands-indicator on re-join.
+/* // Update the hands-indicator on re-join.
if (!( src.hand ))
src.hands.dir = NORTH
else
src.hands.dir = SOUTH
+*/
/mob/living/carbon/human/proc/GetOrgans()
var/list/L = list( )
diff --git a/code/modules/mob/living/carbon/human/hud.dm b/code/modules/mob/living/carbon/human/hud.dm
index 34ef0189ccb..8a9cf5edbd1 100644
--- a/code/modules/mob/living/carbon/human/hud.dm
+++ b/code/modules/mob/living/carbon/human/hud.dm
@@ -1,5 +1,7 @@
/obj/hud/proc/human_hud(var/ui_style='screen1_old.dmi')
+ ui_style='screen1_old.dmi' //Overriding the parameter. Only this UI style is acceptable with the 'sleek' layout.
+
src.adding = list( )
src.other = list( )
src.intents = list( )
@@ -8,6 +10,7 @@
src.mov_int = list( )
src.vimpaired = list( )
src.darkMask = list( )
+ src.intent_small_hud_objects = list( )
src.g_dither = new src.h_type( src )
src.g_dither.screen_loc = "WEST,SOUTH to EAST,NORTH"
@@ -53,6 +56,41 @@
src.adding += using
action_intent = using
+//intent small hud objects
+ using = new src.h_type( src )
+ using.name = "help"
+ using.icon = ui_style
+ using.icon_state = "help_small"
+ using.screen_loc = ui_help_small
+ using.layer = 21
+ src.intent_small_hud_objects += using
+
+ using = new src.h_type( src )
+ using.name = "disarm"
+ using.icon = ui_style
+ using.icon_state = "disarm_small"
+ using.screen_loc = ui_disarm_small
+ using.layer = 21
+ src.intent_small_hud_objects += using
+
+ using = new src.h_type( src )
+ using.name = "grab"
+ using.icon = ui_style
+ using.icon_state = "grab_small"
+ using.screen_loc = ui_grab_small
+ using.layer = 21
+ src.intent_small_hud_objects += using
+
+ using = new src.h_type( src )
+ using.name = "harm"
+ using.icon = ui_style
+ using.icon_state = "harm_small"
+ using.screen_loc = ui_harm_small
+ using.layer = 21
+ src.intent_small_hud_objects += using
+
+//end intent small hud objects
+
using = new src.h_type( src )
using.name = "mov_intent"
using.dir = SOUTHWEST
@@ -63,6 +101,7 @@
src.adding += using
move_intent = using
+/*
using = new src.h_type(src) //Right hud bar
using.dir = SOUTH
using.icon = ui_style
@@ -101,6 +140,7 @@
using.screen_loc = ui_iarrowright
using.layer = 19
src.adding += using
+*/
using = new src.h_type( src )
using.name = "drop"
@@ -117,7 +157,7 @@
using.icon_state = "center"
using.screen_loc = ui_iclothing
using.layer = 19
- src.adding += using
+ src.other += using
using = new src.h_type( src )
using.name = "o_clothing"
@@ -126,7 +166,7 @@
using.icon_state = "equip"
using.screen_loc = ui_oclothing
using.layer = 19
- src.adding += using
+ src.other += using
/* using = new src.h_type( src )
using.name = "headset"
@@ -141,25 +181,49 @@
using.name = "r_hand"
using.dir = WEST
using.icon = ui_style
- using.icon_state = "equip"
+ using.icon_state = "hand_inactive"
+ if(mymob && !mymob.hand) //This being 0 or null means the right hand is in use
+ using.icon_state = "hand_active"
using.screen_loc = ui_rhand
using.layer = 19
+ src.r_hand_hud_object = using
src.adding += using
using = new src.h_type( src )
using.name = "l_hand"
using.dir = EAST
using.icon = ui_style
- using.icon_state = "equip"
+ using.icon_state = "hand_inactive"
+ if(mymob && mymob.hand) //This being 1 means the left hand is in use
+ using.icon_state = "hand_active"
using.screen_loc = ui_lhand
using.layer = 19
+ src.l_hand_hud_object = using
+ src.adding += using
+
+ using = new src.h_type( src )
+ using.name = "hand"
+ using.dir = SOUTH
+ using.icon = ui_style
+ using.icon_state = "hand1"
+ using.screen_loc = ui_swaphand1
+ using.layer = 19
+ src.adding += using
+
+ using = new src.h_type( src )
+ using.name = "hand"
+ using.dir = SOUTH
+ using.icon = ui_style
+ using.icon_state = "hand2"
+ using.screen_loc = ui_swaphand2
+ using.layer = 19
src.adding += using
using = new src.h_type( src )
using.name = "id"
- using.dir = SOUTHWEST
+ using.dir = NORTH
using.icon = ui_style
- using.icon_state = "equip"
+ using.icon_state = "id"
using.screen_loc = ui_id
using.layer = 19
src.adding += using
@@ -171,13 +235,13 @@
using.icon_state = "equip"
using.screen_loc = ui_mask
using.layer = 19
- src.adding += using
+ src.other += using
using = new src.h_type( src )
using.name = "back"
- using.dir = NORTHEAST
+ using.dir = NORTH
using.icon = ui_style
- using.icon_state = "equip"
+ using.icon_state = "back"
using.screen_loc = ui_back
using.layer = 19
src.adding += using
@@ -201,11 +265,13 @@
using = new src.h_type( src )
using.name = "suit storage"
using.icon = ui_style
+ using.dir = 8 //The sprite at dir=8 has the background whereas the others don't.
using.icon_state = "belt"
using.screen_loc = ui_sstore1
using.layer = 19
src.other += using
+/*
using = new src.h_type( src )
using.name = "resist"
using.icon = ui_style
@@ -213,12 +279,13 @@
using.screen_loc = ui_resist
using.layer = 19
src.adding += using
+*/
using = new src.h_type( src )
using.name = "other"
using.icon = ui_style
using.icon_state = "other"
- using.screen_loc = ui_shoes
+ using.screen_loc = ui_inventory
using.layer = 20
src.adding += using
@@ -256,7 +323,6 @@
using = new src.h_type( src )
using.name = "l_ear"
- using.dir = EAST
using.icon = ui_style
using.icon_state = "ears"
using.screen_loc = ui_lear
@@ -265,7 +331,6 @@
using = new src.h_type( src )
using.name = "r_ear"
- using.dir = WEST
using.icon = ui_style
using.icon_state = "ears"
using.screen_loc = ui_rear
@@ -278,7 +343,7 @@
using.icon_state = "hair"
using.screen_loc = ui_head
using.layer = 19
- src.adding += using
+ src.other += using
using = new src.h_type( src )
using.name = "shoes"
@@ -467,6 +532,8 @@
mymob.pressure.icon_state = "pressure0"
mymob.pressure.name = "pressure"
mymob.pressure.screen_loc = ui_pressure
+
+
/*
mymob.i_select = new /obj/screen( null )
mymob.i_select.icon_state = "selector"
@@ -542,6 +609,7 @@
mymob.pain.screen_loc = "1,1 to 15,15"
mymob.pain.layer = 17
+/*
mymob.hands = new /obj/screen( null )
mymob.hands.icon = ui_style
mymob.hands.icon_state = "hand"
@@ -560,6 +628,7 @@
mymob.rest.icon_state = "rest0"
mymob.rest.name = "rest"
mymob.rest.screen_loc = ui_rest
+*/
/*/Monkey blockers
@@ -658,7 +727,7 @@
mymob.client.screen = null
//, mymob.i_select, mymob.m_select
- mymob.client.screen += list( mymob.pain, mymob.throw_icon, mymob.zone_sel, mymob.oxygen, mymob.toxin, mymob.bodytemp, mymob.internals, mymob.fire, mymob.hands, mymob.healths, mymob.nutrition_icon, mymob.pullin, mymob.blind, mymob.flash, mymob.rest, mymob.pressure, mymob.sleep, mymob.gun_setting_icon) //, mymob.mach )
+ mymob.client.screen += list( mymob.pain, mymob.throw_icon, mymob.zone_sel, mymob.oxygen, mymob.pressure, mymob.toxin, mymob.bodytemp, mymob.internals, mymob.fire, mymob.healths, mymob.nutrition_icon, mymob.pullin, mymob.blind, mymob.flash, mymob.gun_setting_icon) //, mymob.hands, mymob.rest, mymob.sleep, mymob.gun_setting_icon) //, mymob.mach )
mymob.client.screen += src.adding + src.other
//if(istype(mymob,/mob/living/carbon/monkey)) mymob.client.screen += src.mon_blo
diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm
index b73ded273d0..8194483c4f9 100644
--- a/code/modules/mob/living/carbon/human/human.dm
+++ b/code/modules/mob/living/carbon/human/human.dm
@@ -1060,8 +1060,6 @@
overlays += image("icon" = 'belt_mirror.dmi', "icon_state" = text("[][]", t1, (!( lying ) ? null : "2")), "layer" = MOB_LAYER)
s_store.screen_loc = ui_sstore1
- if(client) hud_used.other_update() //Update the screenloc of the items on the 'other' inventory bar
- //to hide / show them.
if (client)
if (i_select)
if (intent)
@@ -1178,6 +1176,8 @@
overlays += image("icon" = 'back.dmi', "icon_state" = text("[][]", t1, (!( lying ) ? null : "2")), "layer" = MOB_LAYER)
back.screen_loc = ui_back
+ if(client) hud_used.other_update() //Update the screenloc of the items on the 'other' inventory bar
+ //to hide / show them.
if (handcuffed)
pulling = null
var/h1 = handcuffed.icon_state
diff --git a/code/modules/mob/living/carbon/monkey/hud.dm b/code/modules/mob/living/carbon/monkey/hud.dm
index d0596badac5..39a3d29af9b 100644
--- a/code/modules/mob/living/carbon/monkey/hud.dm
+++ b/code/modules/mob/living/carbon/monkey/hud.dm
@@ -1,5 +1,7 @@
/obj/hud/proc/monkey_hud(var/ui_style='screen1_old.dmi')
+ ui_style='screen1_old.dmi' //Overriding the parameter. Only this UI style is acceptable with the 'sleek' layout.
+
src.adding = list( )
src.other = list( )
src.intents = list( )
@@ -8,8 +10,9 @@
src.mov_int = list( )
src.vimpaired = list( )
src.darkMask = list( )
+ src.intent_small_hud_objects = list( )
- var/icon/blocked = icon(ui_style,"blocked")
+ //var/icon/blocked = icon(ui_style,"blocked")
src.g_dither = new src.h_type( src )
src.g_dither.screen_loc = "WEST,SOUTH to EAST,NORTH"
@@ -55,6 +58,41 @@
src.adding += using
action_intent = using
+//intent small hud objects
+ using = new src.h_type( src )
+ using.name = "help"
+ using.icon = ui_style
+ using.icon_state = "help_small"
+ using.screen_loc = ui_help_small
+ using.layer = 21
+ src.intent_small_hud_objects += using
+
+ using = new src.h_type( src )
+ using.name = "disarm"
+ using.icon = ui_style
+ using.icon_state = "disarm_small"
+ using.screen_loc = ui_disarm_small
+ using.layer = 21
+ src.intent_small_hud_objects += using
+
+ using = new src.h_type( src )
+ using.name = "grab"
+ using.icon = ui_style
+ using.icon_state = "grab_small"
+ using.screen_loc = ui_grab_small
+ using.layer = 21
+ src.intent_small_hud_objects += using
+
+ using = new src.h_type( src )
+ using.name = "harm"
+ using.icon = ui_style
+ using.icon_state = "harm_small"
+ using.screen_loc = ui_harm_small
+ using.layer = 21
+ src.intent_small_hud_objects += using
+
+//end intent small hud objects
+
using = new src.h_type( src )
using.name = "mov_intent"
using.dir = SOUTHWEST
@@ -65,6 +103,7 @@
src.adding += using
move_intent = using
+/*
using = new src.h_type(src) //Right hud bar
using.dir = SOUTH
using.icon = ui_style
@@ -102,7 +141,7 @@
using.dir = EAST
using.screen_loc = ui_iarrowright
using.layer = 19
- src.adding += using
+ src.adding += using*/
using = new src.h_type( src )
using.name = "drop"
@@ -111,7 +150,7 @@
using.screen_loc = ui_dropbutton
using.layer = 19
src.adding += using
-
+/*
using = new src.h_type( src )
using.name = "i_clothing"
using.dir = SOUTH
@@ -131,7 +170,7 @@
using.layer = 19
using.overlays += blocked
src.adding += using
-
+*/
/* using = new src.h_type( src )
using.name = "headset"
using.dir = SOUTHEAST
@@ -145,20 +184,44 @@
using.name = "r_hand"
using.dir = WEST
using.icon = ui_style
- using.icon_state = "equip"
+ using.icon_state = "hand_inactive"
+ if(mymob && !mymob.hand) //This being 0 or null means the right hand is in use
+ using.icon_state = "hand_active"
using.screen_loc = ui_rhand
using.layer = 19
+ src.r_hand_hud_object = using
src.adding += using
using = new src.h_type( src )
using.name = "l_hand"
using.dir = EAST
using.icon = ui_style
- using.icon_state = "equip"
+ using.icon_state = "hand_inactive"
+ if(mymob && mymob.hand) //This being 1 means the left hand is in use
+ using.icon_state = "hand_active"
using.screen_loc = ui_lhand
using.layer = 19
+ src.l_hand_hud_object = using
+ src.adding += using
+
+ using = new src.h_type( src )
+ using.name = "hand"
+ using.dir = SOUTH
+ using.icon = ui_style
+ using.icon_state = "hand1"
+ using.screen_loc = ui_swaphand1
+ using.layer = 19
src.adding += using
+ using = new src.h_type( src )
+ using.name = "hand"
+ using.dir = SOUTH
+ using.icon = ui_style
+ using.icon_state = "hand2"
+ using.screen_loc = ui_swaphand2
+ using.layer = 19
+ src.adding += using
+/*
using = new src.h_type( src )
using.name = "id"
using.dir = SOUTHWEST
@@ -168,13 +231,14 @@
using.layer = 19
using.overlays += blocked
src.adding += using
+*/
using = new src.h_type( src )
using.name = "mask"
using.dir = NORTH
using.icon = ui_style
using.icon_state = "equip"
- using.screen_loc = ui_mask
+ using.screen_loc = ui_monkey_mask
using.layer = 19
src.adding += using
@@ -186,7 +250,7 @@
using.screen_loc = ui_back
using.layer = 19
src.adding += using
-
+/*
using = new src.h_type( src )
using.name = "storage1"
using.icon = ui_style
@@ -204,7 +268,6 @@
using.layer = 19
using.overlays += blocked
src.adding += using
-
using = new src.h_type( src )
using.name = "resist"
using.icon = ui_style
@@ -283,6 +346,7 @@
using.layer = 19
using.overlays += blocked
src.adding += using
+*/
/*
using = new src.h_type( src )
@@ -399,6 +463,7 @@
mymob.m_select.name = "moving"
mymob.m_select.screen_loc = "16:-11,14"
*/
+
mymob.toxin = new /obj/screen( null )
mymob.toxin.icon = ui_style
mymob.toxin.icon_state = "tox0"
@@ -450,6 +515,7 @@
mymob.flash.screen_loc = "1,1 to 15,15"
mymob.flash.layer = 17
+/*
mymob.hands = new /obj/screen( null )
mymob.hands.icon = ui_style
mymob.hands.icon_state = "hand"
@@ -467,7 +533,7 @@
mymob.rest.icon = ui_style
mymob.rest.icon_state = "rest0"
mymob.rest.name = "rest"
- mymob.rest.screen_loc = ui_rest
+ mymob.rest.screen_loc = ui_rest*/
/*/Monkey blockers
@@ -566,7 +632,7 @@
mymob.client.screen = null
//, mymob.i_select, mymob.m_select
- mymob.client.screen += list( mymob.throw_icon, mymob.zone_sel, mymob.oxygen, mymob.toxin, mymob.bodytemp, mymob.internals, mymob.fire, mymob.hands, mymob.healths, mymob.pullin, mymob.blind, mymob.flash, mymob.rest, mymob.sleep, mymob.pressure, mymob.gun_setting_icon) //, mymob.mach )
+ mymob.client.screen += list( mymob.throw_icon, mymob.zone_sel, mymob.oxygen, mymob.pressure, mymob.toxin, mymob.bodytemp, mymob.internals, mymob.fire, mymob.healths, mymob.pullin, mymob.blind, mymob.flash, mymob.gun_setting_icon) //, mymob.hands, mymob.rest, mymob.sleep, mymob.mach, mymob.hands, )
mymob.client.screen += src.adding + src.other
//if(istype(mymob,/mob/living/carbon/monkey)) mymob.client.screen += src.mon_blo
diff --git a/code/modules/mob/living/carbon/monkey/monkey.dm b/code/modules/mob/living/carbon/monkey/monkey.dm
index a39ff6a39d0..688ad10eafc 100644
--- a/code/modules/mob/living/carbon/monkey/monkey.dm
+++ b/code/modules/mob/living/carbon/monkey/monkey.dm
@@ -511,7 +511,7 @@
if (istype(wear_mask, /obj/item/clothing/mask))
var/t1 = wear_mask.icon_state
overlays += image("icon" = 'monkey.dmi', "icon_state" = text("[][]", t1, (!( lying ) ? null : "2")), "layer" = layer)
- wear_mask.screen_loc = ui_mask
+ wear_mask.screen_loc = ui_monkey_mask
if (r_hand)
if(update_icon)
@@ -526,7 +526,7 @@
if (back)
var/t1 = back.icon_state //apparently tables make me upset and cause my dreams to shatter
overlays += image("icon" = 'back.dmi', "icon_state" = text("[][]", t1, (!( lying ) ? null : "2")), "layer" = layer)
- back.screen_loc = ui_back
+ back.screen_loc = ui_monkey_back
if (handcuffed && update_icon)
pulling = null
diff --git a/code/modules/mob/living/silicon/robot/hud.dm b/code/modules/mob/living/silicon/robot/hud.dm
index 8c1f6a5f3dc..8d74866ccf4 100644
--- a/code/modules/mob/living/silicon/robot/hud.dm
+++ b/code/modules/mob/living/silicon/robot/hud.dm
@@ -53,6 +53,7 @@
//Generic overlays
+/*
using = new src.h_type(src) //Right hud bar
using.dir = SOUTH
using.icon = 'screen1_robot.dmi'
@@ -72,7 +73,7 @@
using.icon = 'screen1_robot.dmi'
using.screen_loc = "EAST+1,SOUTH-1"
using.layer = 19
- src.adding += using
+ src.adding += using*/
//Module select
@@ -119,7 +120,7 @@
using.layer = 20
src.adding += using
action_intent = using
-
+/*
using = new src.h_type( src )
using.name = "arrowleft"
using.icon = 'screen1_robot.dmi'
@@ -136,7 +137,7 @@
using.dir = EAST
using.screen_loc = ui_iarrowright
using.layer = 19
- src.adding += using
+ src.adding += using*/
//End of Intent
//Cell
@@ -151,7 +152,7 @@
mymob.healths.icon = 'screen1_robot.dmi'
mymob.healths.icon_state = "health0"
mymob.healths.name = "health"
- mymob.healths.screen_loc = ui_health
+ mymob.healths.screen_loc = ui_borg_health
//Installed Module
mymob.hands = new /obj/screen( null )
@@ -174,7 +175,7 @@
mymob.throw_icon.icon = 'screen1_robot.dmi'
mymob.throw_icon.icon_state = "store"
mymob.throw_icon.name = "store"
- mymob.throw_icon.screen_loc = ui_hand
+ mymob.throw_icon.screen_loc = ui_borg_store
//Temp
mymob.bodytemp = new /obj/screen( null )
@@ -218,6 +219,7 @@
mymob.flash.screen_loc = "1,1 to 15,15"
mymob.flash.layer = 17
+ /*
mymob.sleep = new /obj/screen( null )
mymob.sleep.icon = 'screen1_robot.dmi'
mymob.sleep.icon_state = "sleep0"
@@ -229,6 +231,7 @@
mymob.rest.icon_state = "rest0"
mymob.rest.name = "rest"
mymob.rest.screen_loc = ui_rest
+ */
mymob.zone_sel = new /obj/screen/zone_sel( null )
@@ -239,7 +242,7 @@
mymob.client.screen = null
- mymob.client.screen += list( mymob.throw_icon, mymob.zone_sel, mymob.oxygen, mymob.fire, mymob.hands, mymob.healths, mymob:cells, mymob.pullin, mymob.blind, mymob.flash, mymob.rest, mymob.sleep, mymob.gun_setting_icon) //, mymob.mach )
+ mymob.client.screen += list( mymob.throw_icon, mymob.zone_sel, mymob.oxygen, mymob.fire, mymob.hands, mymob.healths, mymob:cells, mymob.pullin, mymob.blind, mymob.flash, mymob.gun_setting_icon) //, mymob.rest, mymob.sleep, mymob.mach )
mymob.client.screen += src.adding + src.other
return
diff --git a/code/modules/mob/mob_movement.dm b/code/modules/mob/mob_movement.dm
index 55c052db4b2..d0b5ae9c2f6 100644
--- a/code/modules/mob/mob_movement.dm
+++ b/code/modules/mob/mob_movement.dm
@@ -38,14 +38,72 @@
/client/Southwest()
- toggle_throw_mode()
+ if(iscarbon(usr))
+ var/mob/living/carbon/C = usr
+ if(!C.get_active_hand())
+ usr << "\red You have nothing in your hand to throw."
+ return
+ toggle_throw_mode()
+ else
+ usr << "\red This mob type cannot throw items."
return
/client/Northwest()
- drop_item()
+ if(iscarbon(usr))
+ var/mob/living/carbon/C = usr
+ if(!C.get_active_hand())
+ usr << "\red You have nothing to drop in your hand."
+ return
+ drop_item()
+ else
+ usr << "\red This mob type cannot drop items."
return
+//This gets called when you press the insert button.
+/client/verb/insert_key_pressed()
+ set hidden = 1
+
+ if(!src.mob)
+ return
+ var/mob/M = src.mob
+ if(ishuman(M) || isrobot(usr) || ismonkey(M) || istype(M,/mob/living/carbon/alien/humanoid) || islarva(M))
+ switch(M.a_intent)
+ if("help")
+ if(issilicon(usr))
+ usr.a_intent = "hurt"
+ usr.hud_used.action_intent.icon_state = "harm"
+ else
+ usr.a_intent = "disarm"
+ usr.hud_used.action_intent.icon_state = "disarm"
+
+ if("disarm")
+ usr.a_intent = "hurt"
+ usr.hud_used.action_intent.icon_state = "harm"
+
+ if("hurt")
+ if(issilicon(usr))
+ usr.a_intent = "help"
+ usr.hud_used.action_intent.icon_state = "help"
+ else
+ usr.a_intent = "grab"
+ usr.hud_used.action_intent.icon_state = "grab"
+
+ if("grab")
+ usr.a_intent = "help"
+ usr.hud_used.action_intent.icon_state = "help"
+ usr << "\blue Your intent is now \"[usr.a_intent]\"."
+ else
+ usr << "\red This mob type does not use intents."
+
+//This gets called when you press the delete button.
+/client/verb/delete_key_pressed()
+ set hidden = 1
+
+ if(!usr.pulling)
+ usr << "\blue You are not pulling anything."
+ return
+ usr.pulling = null
/client/verb/swap_hand()
set hidden = 1
diff --git a/code/modules/mob/new_player/preferences.dm b/code/modules/mob/new_player/preferences.dm
index 92b960b3d82..66c5ed464a6 100644
--- a/code/modules/mob/new_player/preferences.dm
+++ b/code/modules/mob/new_player/preferences.dm
@@ -102,7 +102,7 @@ datum/preferences
b_eyes = 0
//UI style
- UI = UI_NEW
+ UI = UI_OLD
//Mob preview
icon/preview_icon = null
@@ -262,7 +262,7 @@ datum/preferences
dat += "Age: [age]"
dat += "
"
- dat += "UI Style: [UI == UI_NEW ? "New" : "Old"]
"
+ //dat += "UI Style: [UI == UI_NEW ? "New" : "Old"]
" -- UI Style no longer a thing
dat += "Play admin midis: [midis == 1 ? "Yes" : "No"]
"
dat += "Ghost ears: [ghost_ears == 0 ? "Nearest Creatures" : "All Speech"]
"
dat += "Ghost sight: [ghost_sight == 0 ? "Nearest Creatures" : "All Emotes"]
"
diff --git a/code/modules/mob/screen.dm b/code/modules/mob/screen.dm
index 1560deb9723..89d5bd10d5c 100644
--- a/code/modules/mob/screen.dm
+++ b/code/modules/mob/screen.dm
@@ -33,7 +33,7 @@
icon = 'zone_sel.dmi'
icon_state = "blank"
var/selecting = "chest"
- screen_loc = "EAST+1,NORTH"
+ screen_loc = ui_zonesel
/obj/screen/gun
name = "gun"
@@ -227,21 +227,71 @@
/obj/screen/grab/attackby()
return
+/obj/screen/MouseEntered(object,location,control,params)
+ if(!ishuman(usr) && !istype(usr,/mob/living/carbon/alien/humanoid) && !islarva(usr) && !ismonkey(usr))
+ return
+ switch(name)
+ /*
+ if("other")
+ if (usr.hud_used.show_otherinventory)
+ usr.hud_used.show_otherinventory = 0
+ usr.client.screen -= usr.hud_used.other
+ else
+ usr.hud_used.show_otherinventory = 1
+ usr.client.screen += usr.hud_used.other
+
+ usr.hud_used.other_update()*/
+ if("act_intent")
+ if(!usr.hud_used.show_intent_icons)
+ usr.hud_used.show_intent_icons = 1
+ usr.client.screen += usr.hud_used.intent_small_hud_objects
+ if("harm")
+ if(!usr.hud_used.show_intent_icons)
+ usr.hud_used.show_intent_icons = 1
+ usr.client.screen += usr.hud_used.intent_small_hud_objects
+ if("help")
+ if(!usr.hud_used.show_intent_icons)
+ usr.hud_used.show_intent_icons = 1
+ usr.client.screen += usr.hud_used.intent_small_hud_objects
+ if("disarm")
+ if(!usr.hud_used.show_intent_icons)
+ usr.hud_used.show_intent_icons = 1
+ usr.client.screen += usr.hud_used.intent_small_hud_objects
+ if("grab")
+ if(!usr.hud_used.show_intent_icons)
+ usr.hud_used.show_intent_icons = 1
+ usr.client.screen += usr.hud_used.intent_small_hud_objects
+
+
+/obj/screen/MouseExited(object,location,control,params)
+ if(!ishuman(usr) && !istype(usr,/mob/living/carbon/alien/humanoid) && !islarva(usr) && !ismonkey(usr))
+ return
+ switch(name)
+ if("act_intent")
+ if (usr.hud_used.show_intent_icons)
+ usr.hud_used.show_intent_icons = 0
+ usr.client.screen -= usr.hud_used.intent_small_hud_objects
+ if("harm")
+ if (usr.hud_used.show_intent_icons)
+ usr.hud_used.show_intent_icons = 0
+ usr.client.screen -= usr.hud_used.intent_small_hud_objects
+ if("help")
+ if (usr.hud_used.show_intent_icons)
+ usr.hud_used.show_intent_icons = 0
+ usr.client.screen -= usr.hud_used.intent_small_hud_objects
+ if("disarm")
+ if (usr.hud_used.show_intent_icons)
+ usr.hud_used.show_intent_icons = 0
+ usr.client.screen -= usr.hud_used.intent_small_hud_objects
+ if("grab")
+ if (usr.hud_used.show_intent_icons)
+ usr.hud_used.show_intent_icons = 0
+ usr.client.screen -= usr.hud_used.intent_small_hud_objects
+
/obj/screen/Click(location, control, params)
-
- var/list/pa = params2list(params)
-
switch(name)
if("map")
-
usr.clearmap()
- if("maprefresh")
- var/obj/machinery/computer/security/seccomp = usr.machine
-
- if(seccomp!=null)
- seccomp.drawmap(usr)
- else
- usr.clearmap()
if("other")
if (usr.hud_used.show_otherinventory)
@@ -253,36 +303,13 @@
usr.hud_used.other_update()
+ if("maprefresh")
+ var/obj/machinery/computer/security/seccomp = usr.machine
- if("act_intent")
- if(pa.Find("left"))
- switch(usr.a_intent)
- if("help")
- usr.a_intent = "disarm"
- usr.hud_used.action_intent.icon_state = "disarm"
- if("disarm")
- usr.a_intent = "hurt"
- usr.hud_used.action_intent.icon_state = "harm"
- if("hurt")
- usr.a_intent = "grab"
- usr.hud_used.action_intent.icon_state = "grab"
- if("grab")
- usr.a_intent = "help"
- usr.hud_used.action_intent.icon_state = "help"
+ if(seccomp!=null)
+ seccomp.drawmap(usr)
else
- switch(usr.a_intent)
- if("help")
- usr.a_intent = "grab"
- usr.hud_used.action_intent.icon_state = "grab"
- if("disarm")
- usr.a_intent = "help"
- usr.hud_used.action_intent.icon_state = "help"
- if("hurt")
- usr.a_intent = "disarm"
- usr.hud_used.action_intent.icon_state = "disarm"
- if("grab")
- usr.a_intent = "hurt"
- usr.hud_used.action_intent.icon_state = "harm"
+ usr.clearmap()
if("arrowleft")
switch(usr.a_intent)
@@ -344,20 +371,6 @@
if("walk")
usr.m_intent = "run"
usr.hud_used.move_intent.icon_state = "running"
-
- if("intent")
- if (!( usr.intent ))
- switch(usr.a_intent)
- if("help")
- usr.intent = "13,15"
- if("disarm")
- usr.intent = "14,15"
- if("hurt")
- usr.intent = "15,15"
- if("grab")
- usr.intent = "12,15"
- else
- usr.intent = null
if("m_intent")
if (!( usr.m_int ))
switch(usr.m_intent)
@@ -378,20 +391,6 @@
if("run")
usr.m_intent = "run"
usr.m_int = "13,14"
- if("hurt")
- usr.a_intent = "hurt"
- usr.intent = "15,15"
- if("grab")
- usr.a_intent = "grab"
- usr.intent = "12,15"
- if("disarm")
- if (istype(usr, /mob/living/carbon/human))
- var/mob/M = usr
- M.a_intent = "disarm"
- M.intent = "14,15"
- if("help")
- usr.a_intent = "help"
- usr.intent = "13,15"
if("Reset Machine")
usr.machine = null
if("internal")
@@ -435,18 +434,43 @@
usr.internals.icon_state = "internal1"
else
usr << "\blue You don't have an oxygen tank."
+ if("act_intent")
+ if(ishuman(usr) || istype(usr,/mob/living/carbon/alien/humanoid) || islarva(usr))
+ if (usr.hud_used.show_intent_icons)
+ usr.hud_used.show_intent_icons = 0
+ usr.client.screen -= usr.hud_used.intent_small_hud_objects
+ else
+ usr.hud_used.show_intent_icons = 1
+ usr.client.screen += usr.hud_used.intent_small_hud_objects
+ if(issilicon(usr))
+ if(usr.a_intent == "help")
+ usr.a_intent = "hurt"
+ usr.hud_used.action_intent.icon_state = "harm"
+ else
+ usr.a_intent = "help"
+ usr.hud_used.action_intent.icon_state = "help"
+ if("help")
+ usr.a_intent = "help"
+ usr.hud_used.action_intent.icon_state = "help"
+ usr.hud_used.show_intent_icons = 0
+ usr.client.screen -= usr.hud_used.intent_small_hud_objects
+ if("harm")
+ usr.a_intent = "hurt"
+ usr.hud_used.action_intent.icon_state = "harm"
+ usr.hud_used.show_intent_icons = 0
+ usr.client.screen -= usr.hud_used.intent_small_hud_objects
+ if("grab")
+ usr.a_intent = "grab"
+ usr.hud_used.action_intent.icon_state = "grab"
+ usr.hud_used.show_intent_icons = 0
+ usr.client.screen -= usr.hud_used.intent_small_hud_objects
+ if("disarm")
+ usr.a_intent = "disarm"
+ usr.hud_used.action_intent.icon_state = "disarm"
+ usr.hud_used.show_intent_icons = 0
+ usr.client.screen -= usr.hud_used.intent_small_hud_objects
if("pull")
usr.pulling = null
- if("sleep")
- if(usr.sleeping && usr.sleeping_willingly)
- usr.sleeping = 0
- usr.sleeping_willingly = 0
- else if(!usr.sleeping)
- usr.sleeping = 20 //Short nap
- usr.sleeping_willingly = 1
- if("rest")
- usr.resting = !( usr.resting )
- //kavala2
if("throw")
if (!usr.stat && isturf(usr.loc) && !usr.restrained())
usr:toggle_throw_mode()
@@ -456,135 +480,14 @@
usr:swap_hand()
if("hand")
usr:swap_hand()
- if("resist")
- if(usr.next_move > world.time)
- return
- usr.next_move = world.time + 20
- if ((!( usr.stat ) && usr.canmove && !( usr.restrained() )))
- var/resisting = 0
- for(var/obj/O in usr.requests)
- del(O)
- resisting++
- for(var/obj/item/weapon/grab/G in usr.grabbed_by)
- resisting++
- if (G.state == 1)
- del(G)
- else
- if (G.state == 2)
- if (prob(25))
- for(var/mob/O in viewers(usr, null))
- O.show_message(text("\red [] has broken free of []'s grip!", usr, G.assailant), 1)
- del(G)
- else
- if (G.state == 3)
- if (prob(5))
- for(var/mob/O in viewers(usr, null))
- O.show_message(text("\red [] has broken free of []'s headlock!", usr, G.assailant), 1)
- del(G)
- if(resisting)
- for(var/mob/O in viewers(usr, null))
- O.show_message(text("\red [] resists!", usr), 1)
- if(usr:handcuffed && usr:canmove && (usr.last_special <= world.time))
- var/breakouttime = 1200
- var/displaytime = 2
- if(!usr:canmove)
- breakouttime = 2400
- displaytime = 4
- usr.next_move = world.time + 100
- usr.last_special = world.time + 100
- if(isalienadult(usr) || usr.mutations & HULK)//Don't want to do a lot of logic gating here.
- usr << "\green You attempt to break \the [usr:handcuffed]. (This will take around 5 seconds and you need to stand still)"
- for(var/mob/O in viewers(usr))
- O.show_message(text("\red [] is trying to break \the [usr:handcuffed]!", usr), 1)
- spawn(0)
- if(do_after(usr, 50))
- if(!usr:handcuffed || usr:buckled)
- return
- for(var/mob/O in viewers(usr))
- O.show_message(text("\red [] manages to break \the [usr:handcuffed]!", usr), 1)
- usr << "\green You successfully break \the [usr:handcuffed]."
- del(usr:handcuffed)
- usr:handcuffed = null
- else
- if(istype(usr:handcuffed, /obj/item/weapon/handcuffs/cable))
- breakouttime = 300
- displaytime = 0.5
- usr << "\red You attempt to remove \the [usr:handcuffed]. (This will take around [displaytime] minutes and you need to stand still)"
- for(var/mob/O in viewers(usr))
- O.show_message(text("\red [] attempts to remove \the [usr:handcuffed]!", usr), 1)
- spawn(0)
- var/increment = 150
- for(var/i = 0, i < breakouttime, i += increment)
- if(!do_after(usr, increment))
- return
-
- else
- usr << pick("You hear something click, but it doesn't open yet.", // - Uristqwerty
- "The latch resists!", // - IRC: BowlSoldier
- "The chain is starting to give!", // - IRC: BowlSoldier
- "The chain bends a little.", // - IRC: STALKER
- "Your wrist hurts.", // - IRC: STALKER
- "Unnng", // - IRC: Doug_H_Nuts
- "The chain jangles a bit.", // - SkyMarshal
- "\red Hurry up, dammit!", // - SkyMarshal
- "This is exhausting!") // - SkyMarshal
- for(var/mob/O in viewers(usr))
- if(prob(50)) //Reduces spam slightly
- O.show_message(text("\red [] continues to struggle in \the [usr:handcuffed]!", usr), 1)
- if(!usr:handcuffed) return
- for(var/mob/O in viewers(usr))
- O.show_message(text("\red [] manages to remove \the [usr:handcuffed]!", usr), 1)
- usr << "\blue You successfully remove \the [usr:handcuffed]."
- usr:handcuffed:loc = usr:loc
- usr:handcuffed = null
- usr.update_clothing()
-
- if(istype(usr, /mob/living/carbon/human) && istype(usr:wear_suit, /obj/item/clothing/suit/straight_jacket) && usr:canmove && (usr.last_special <= world.time))
- usr.next_move = world.time + 200
- usr.last_special = world.time + 200
- if(isalienadult(usr) || usr.mutations & HULK)//Don't want to do a lot of logic gating here.
- usr << "\green You attempt to break out of your straight jacket. (This will take around 5 seconds and you need to stand still)"
- for(var/mob/O in viewers(usr))
- O.show_message(text("\red [] is trying to break out of \his straight jacket!", usr), 1)
- spawn(0)
- if(do_after(usr, 50))
- if(!istype(usr:wear_suit, /obj/item/clothing/suit/straight_jacket)) return
- for(var/mob/O in viewers(usr))
- O.show_message(text("\red [] manages to break out of the straight jacket!", usr), 1)
- usr << "\green You successfully break out of your straight jacket."
- var/obj/sj = usr:wear_suit
- usr.remove_from_mob(sj)
- sj.loc = usr.loc
- else
- usr << "\red You attempt to get out of your straight jacket. (This will take around 4 minutes and you need to stand still)"
- for(var/mob/O in viewers(usr))
- O.show_message(text("\red [] attempts to get out \his straight jacket!", usr), 1)
- spawn(0)
- if(do_after(usr, 1200))
- if(!istype(usr:wear_suit, /obj/item/clothing/suit/straight_jacket)) return
- for(var/mob/O in viewers(usr))
- O.show_message(text("\red [] manages to wriggle out of the straight jacket!", usr), 1)
- usr << "\blue You successfully get out of your straight jacket."
- var/obj/sj = usr:wear_suit
- usr.remove_from_mob(sj)
- sj.loc = usr.loc
-
- if(usr:handcuffed && (usr.last_special <= world.time) && usr:buckled)
- usr.next_move = world.time + 100
- usr.last_special = world.time + 100
- usr << "\red You attempt to unbuckle yourself. (This will take around 2 minutes and you need to stand still)"
- for(var/mob/O in viewers(usr))
- O.show_message(text("\red [] attempts to unbuckle themself!", usr), 1)
- spawn(0)
- if(do_after(usr, 1200))
- if(!usr:buckled)
- return
- for(var/mob/O in viewers(usr))
- O.show_message(text("\red [] manages to unbuckle themself!", usr), 1)
- usr << "\blue You successfully unbuckle yourself."
- usr:buckled.manual_unbuckle(usr)
-
-
+ if("r_hand")
+ if(iscarbon(usr))
+ var/mob/living/carbon/C = usr
+ C.activate_hand("r")
+ if("l_hand")
+ if(iscarbon(usr))
+ var/mob/living/carbon/C = usr
+ C.activate_hand("l")
if("module")
if(issilicon(usr))
if(usr:module)
@@ -704,3 +607,152 @@
/obj/screen/attack_paw(mob/user as mob, using)
user.db_click(name, using)
return
+
+
+/mob/living/verb/mob_sleep()
+ set name = "Sleep"
+ set category = "IC"
+
+ if(usr.sleeping && usr.sleeping_willingly)
+ usr.sleeping = 0
+ usr.sleeping_willingly = 0
+ else if(!usr.sleeping)
+ usr.sleeping = 20 //Short nap
+ usr.sleeping_willingly = 1
+
+/mob/living/verb/lay_down()
+ set name = "Lay down / Get up"
+ set category = "IC"
+
+ usr.resting = !( usr.resting )
+ usr << "\blue You are now [(usr.resting) ? "resting" : "getting up"]"
+
+/mob/living/verb/resist()
+ set name = "Resist"
+ set category = "IC"
+
+ if(usr.next_move > world.time)
+ return
+ usr.next_move = world.time + 20
+ if ((!( usr.stat ) && usr.canmove && !( usr.restrained() )))
+ var/resisting = 0
+ for(var/obj/O in usr.requests)
+ del(O)
+ resisting++
+ for(var/obj/item/weapon/grab/G in usr.grabbed_by)
+ resisting++
+ if (G.state == 1)
+ del(G)
+ else
+ if (G.state == 2)
+ if (prob(25))
+ for(var/mob/O in viewers(usr, null))
+ O.show_message(text("\red [] has broken free of []'s grip!", usr, G.assailant), 1)
+ del(G)
+ else
+ if (G.state == 3)
+ if (prob(5))
+ for(var/mob/O in viewers(usr, null))
+ O.show_message(text("\red [] has broken free of []'s headlock!", usr, G.assailant), 1)
+ del(G)
+ if(resisting)
+ for(var/mob/O in viewers(usr, null))
+ O.show_message(text("\red [] resists!", usr), 1)
+ if(usr:handcuffed && usr:canmove && (usr.last_special <= world.time))
+ var/breakouttime = 1200
+ var/displaytime = 2
+ if(!usr:canmove)
+ breakouttime = 2400
+ displaytime = 4
+ usr.next_move = world.time + 100
+ usr.last_special = world.time + 100
+ if(isalienadult(usr) || usr.mutations & HULK)//Don't want to do a lot of logic gating here.
+ usr << "\green You attempt to break \the [usr:handcuffed]. (This will take around 5 seconds and you need to stand still)"
+ for(var/mob/O in viewers(usr))
+ O.show_message(text("\red [] is trying to break \the [usr:handcuffed]!", usr), 1)
+ spawn(0)
+ if(do_after(usr, 50))
+ if(!usr:handcuffed || usr:buckled)
+ return
+ for(var/mob/O in viewers(usr))
+ O.show_message(text("\red [] manages to break \the [usr:handcuffed]!", usr), 1)
+ usr << "\green You successfully break \the [usr:handcuffed]."
+ del(usr:handcuffed)
+ usr:handcuffed = null
+ else
+ if(istype(usr:handcuffed, /obj/item/weapon/handcuffs/cable))
+ breakouttime = 300
+ displaytime = 0.5
+ usr << "\red You attempt to remove \the [usr:handcuffed]. (This will take around [displaytime] minutes and you need to stand still)"
+ for(var/mob/O in viewers(usr))
+ O.show_message(text("\red [] attempts to remove \the [usr:handcuffed]!", usr), 1)
+ spawn(0)
+ var/increment = 150
+ for(var/i = 0, i < breakouttime, i += increment)
+ if(!do_after(usr, increment))
+ return
+
+ else
+ usr << pick("You hear something click, but it doesn't open yet.", // - Uristqwerty
+ "The latch resists!", // - IRC: BowlSoldier
+ "The chain is starting to give!", // - IRC: BowlSoldier
+ "The chain bends a little.", // - IRC: STALKER
+ "Your wrist hurts.", // - IRC: STALKER
+ "Unnng", // - IRC: Doug_H_Nuts
+ "The chain jangles a bit.", // - SkyMarshal
+ "\red Hurry up, dammit!", // - SkyMarshal
+ "This is exhausting!") // - SkyMarshal
+ for(var/mob/O in viewers(usr))
+ if(prob(50)) //Reduces spam slightly
+ O.show_message(text("\red [] continues to struggle in \the [usr:handcuffed]!", usr), 1)
+ if(!usr:handcuffed) return
+ for(var/mob/O in viewers(usr))
+ O.show_message(text("\red [] manages to remove \the [usr:handcuffed]!", usr), 1)
+ usr << "\blue You successfully remove \the [usr:handcuffed]."
+ usr:handcuffed:loc = usr:loc
+ usr:handcuffed = null
+ usr.update_clothing()
+
+ if(istype(usr, /mob/living/carbon/human) && istype(usr:wear_suit, /obj/item/clothing/suit/straight_jacket) && usr:canmove && (usr.last_special <= world.time))
+ usr.next_move = world.time + 200
+ usr.last_special = world.time + 200
+ if(isalienadult(usr) || usr.mutations & HULK)//Don't want to do a lot of logic gating here.
+ usr << "\green You attempt to break out of your straight jacket. (This will take around 5 seconds and you need to stand still)"
+ for(var/mob/O in viewers(usr))
+ O.show_message(text("\red [] is trying to break out of \his straight jacket!", usr), 1)
+ spawn(0)
+ if(do_after(usr, 50))
+ if(!istype(usr:wear_suit, /obj/item/clothing/suit/straight_jacket)) return
+ for(var/mob/O in viewers(usr))
+ O.show_message(text("\red [] manages to break out of the straight jacket!", usr), 1)
+ usr << "\green You successfully break out of your straight jacket."
+ var/obj/sj = usr:wear_suit
+ usr.remove_from_mob(sj)
+ sj.loc = usr.loc
+ else
+ usr << "\red You attempt to get out of your straight jacket. (This will take around 4 minutes and you need to stand still)"
+ for(var/mob/O in viewers(usr))
+ O.show_message(text("\red [] attempts to get out \his straight jacket!", usr), 1)
+ spawn(0)
+ if(do_after(usr, 1200))
+ if(!istype(usr:wear_suit, /obj/item/clothing/suit/straight_jacket)) return
+ for(var/mob/O in viewers(usr))
+ O.show_message(text("\red [] manages to wriggle out of the straight jacket!", usr), 1)
+ usr << "\blue You successfully get out of your straight jacket."
+ var/obj/sj = usr:wear_suit
+ usr.remove_from_mob(sj)
+ sj.loc = usr.loc
+ if(usr:handcuffed && (usr.last_special <= world.time) && usr:buckled)
+ usr.next_move = world.time + 100
+ usr.last_special = world.time + 100
+ usr << "\red You attempt to unbuckle yourself. (This will take around 2 minutes and you need to stand still)"
+ for(var/mob/O in viewers(usr))
+ O.show_message(text("\red [] attempts to unbuckle themself!", usr), 1)
+ spawn(0)
+ if(do_after(usr, 1200))
+ if(!usr:buckled)
+ return
+ for(var/mob/O in viewers(usr))
+ O.show_message(text("\red [] manages to unbuckle themself!", usr), 1)
+ usr << "\blue You successfully unbuckle yourself."
+ usr:buckled.manual_unbuckle(usr)
\ No newline at end of file
diff --git a/code/modules/projectiles/gun.dm b/code/modules/projectiles/gun.dm
index d2abc52d7be..e1c1f79d9f8 100644
--- a/code/modules/projectiles/gun.dm
+++ b/code/modules/projectiles/gun.dm
@@ -529,7 +529,8 @@ client/verb
if(!target_can_run)
M << "\red Your move intent is now set to walk, as your targeter permits it."
M.m_intent = "walk"
- M.hud_used.move_intent.icon_state = "walking"
+ if(M.hud_used.move_intent)
+ M.hud_used.move_intent.icon_state = "walking"
else
M << "\red Your character will now be shot if they move."
AllowTargetRun()
diff --git a/html/changelog.html b/html/changelog.html
index b72ea61ceca..d8701c06f90 100644
--- a/html/changelog.html
+++ b/html/changelog.html
@@ -49,6 +49,12 @@ should be listed in the changelog upon commit though. Thanks. -->