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. -->

21 May 2012

+

TG updated:

+

SkyMarshal updated: