From 2dabc8fd39d0cbb517de192843f9da86c07270dc Mon Sep 17 00:00:00 2001 From: JJRcop Date: Thu, 30 Oct 2014 15:49:38 -0400 Subject: [PATCH] Turns /obj/screen/Click() into subtypes --- code/_onclick/hud/ai.dm | 226 +++++++++++------ code/_onclick/hud/alien.dm | 57 ++--- code/_onclick/hud/alien_larva.dm | 16 +- code/_onclick/hud/drones.dm | 8 +- code/_onclick/hud/human.dm | 92 ++++--- code/_onclick/hud/monkey.dm | 40 +-- code/_onclick/hud/robot.dm | 132 +++++----- code/_onclick/hud/screen_objects.dm | 365 ++++++++++------------------ 8 files changed, 453 insertions(+), 483 deletions(-) diff --git a/code/_onclick/hud/ai.dm b/code/_onclick/hud/ai.dm index b2d288b25e1..f8d0610d410 100644 --- a/code/_onclick/hud/ai.dm +++ b/code/_onclick/hud/ai.dm @@ -1,3 +1,137 @@ +/obj/screen/ai + icon = 'icons/mob/screen_ai.dmi' + +/obj/screen/ai/aicore + name = "AI core" + icon_state = "ai_core" + +/obj/screen/ai/aicore/Click() + var/mob/living/silicon/ai/AI = usr + AI.view_core() + +/obj/screen/ai/camera_list + name = "Show Camera List" + icon_state = "camera" + +/obj/screen/ai/camera_list/Click() + var/mob/living/silicon/ai/AI = usr + var/camera = input(AI, "Choose which camera you want to view", "Cameras") as null|anything in AI.get_camera_list() + AI.ai_camera_list(camera) + +/obj/screen/ai/camera_track + name = "Track With Camera" + icon_state = "track" + +/obj/screen/ai/camera_track/Click() + var/mob/living/silicon/ai/AI = usr + var/target_name = input(AI, "Choose who you want to track", "Tracking") as null|anything in AI.trackable_mobs() + AI.ai_camera_track(target_name) + +/obj/screen/ai/camera_light + name = "Toggle Camera Light" + icon_state = "camera_light" + +/obj/screen/ai/camera_light/Click() + var/mob/living/silicon/ai/AI = usr + AI.toggle_camera_light() + +/obj/screen/ai/crew_monitor + name = "Crew Monitoring Console" + icon_state = "crew_monitor" + +/obj/screen/ai/crew_monitor/Click() + var/mob/living/silicon/ai/AI = usr + crewmonitor(AI,AI) + +/obj/screen/ai/crew_manifest + name = "Crew Manifest" + icon_state = "manifest" + +/obj/screen/ai/crew_manifest/Click() + var/mob/living/silicon/ai/AI = usr + AI.ai_roster() + +/obj/screen/ai/alerts + name = "Show Alerts" + icon_state = "alerts" + +/obj/screen/ai/alerts/Click() + var/mob/living/silicon/ai/AI = usr + AI.ai_alerts() + +/obj/screen/ai/announcement + name = "Make Announcement" + icon_state = "announcement" + +/obj/screen/ai/announcement/Click() + var/mob/living/silicon/ai/AI = usr + AI.announcement() + +/obj/screen/ai/call_shuttle + name = "Call Emergency Shuttle" + icon_state = "call_shuttle" + +/obj/screen/ai/call_shuttle/Click() + var/mob/living/silicon/ai/AI = usr + AI.ai_call_shuttle() + +/obj/screen/ai/state_laws + name = "State Laws" + icon_state = "state_laws" + +/obj/screen/ai/state_laws/Click() + var/mob/living/silicon/ai/AI = usr + AI.checklaws() + +/obj/screen/ai/pda_msg_send + name = "PDA - Send Message" + icon_state = "pda_send" + +/obj/screen/ai/pda_msg_send/Click() + var/mob/living/silicon/ai/AI = usr + AI.cmd_send_pdamesg(usr) + +/obj/screen/ai/pda_msg_show + name = "PDA - Show Message Log" + icon_state = "pda_receive" + +/obj/screen/ai/pda_msg_show/Click() + var/mob/living/silicon/ai/AI = usr + AI.cmd_show_message_log(usr) + +/obj/screen/ai/image_take + name = "Take Image" + icon_state = "take_picture" + +/obj/screen/ai/image_take/Click() + if(isAI(usr)) + var/mob/living/silicon/ai/AI = usr + AI.aicamera.toggle_camera_mode() + else if(isrobot(usr)) + var/mob/living/silicon/robot/R = usr + R.aicamera.toggle_camera_mode() + +/obj/screen/ai/image_view + name = "View Images" + icon_state = "view_images" + +/obj/screen/ai/image_view/Click() + if(isAI(usr)) + var/mob/living/silicon/ai/AI = usr + AI.aicamera.viewpictures() + else if(isrobot(usr)) + var/mob/living/silicon/robot/R = usr + R.aicamera.viewpictures() + +/obj/screen/ai/sensors + name = "Sensor Augmentation" + icon_state = "ai_sensor" + +/obj/screen/ai/sensors/Click() + var/mob/living/silicon/S = usr + S.sensor_mode() + + /datum/hud/proc/ai_hud() adding = list() other = list() @@ -5,139 +139,79 @@ var/obj/screen/using //AI core - using = new /obj/screen() - using.name = "AI Core" - using.icon = 'icons/mob/screen_ai.dmi' - using.icon_state = "ai_core" + using = new /obj/screen/ai/aicore() using.screen_loc = ui_ai_core - using.layer = 20 adding += using //Camera list - using = new /obj/screen() - using.name = "Show Camera List" - using.icon = 'icons/mob/screen_ai.dmi' - using.icon_state = "camera" + using = new /obj/screen/ai/camera_list() using.screen_loc = ui_ai_camera_list - using.layer = 20 adding += using //Track - using = new /obj/screen() - using.name = "Track With Camera" - using.icon = 'icons/mob/screen_ai.dmi' - using.icon_state = "track" + using = new /obj/screen/ai/camera_track() using.screen_loc = ui_ai_track_with_camera - using.layer = 20 adding += using //Camera light - using = new /obj/screen() - using.name = "Toggle Camera Light" - using.icon = 'icons/mob/screen_ai.dmi' - using.icon_state = "camera_light" + using = new /obj/screen/ai/camera_light() using.screen_loc = ui_ai_camera_light - using.layer = 20 adding += using -//Crew Monitorting - using = new /obj/screen() - using.name = "Crew Monitorting" - using.icon = 'icons/mob/screen_ai.dmi' - using.icon_state = "crew_monitor" +//Crew Monitoring + using = new /obj/screen/ai/crew_monitor() using.screen_loc = ui_ai_crew_monitor - using.layer = 20 adding += using //Crew Manifest - using = new /obj/screen() - using.name = "Show Crew Manifest" - using.icon = 'icons/mob/screen_ai.dmi' - using.icon_state = "manifest" + using = new /obj/screen/ai/crew_manifest() using.screen_loc = ui_ai_crew_manifest - using.layer = 20 adding += using //Alerts - using = new /obj/screen() - using.name = "Show Alerts" - using.icon = 'icons/mob/screen_ai.dmi' - using.icon_state = "alerts" + using = new /obj/screen/ai/alerts() using.screen_loc = ui_ai_alerts - using.layer = 20 adding += using //Announcement - using = new /obj/screen() - using.name = "Announcement" - using.icon = 'icons/mob/screen_ai.dmi' - using.icon_state = "announcement" + using = new /obj/screen/ai/announcement() using.screen_loc = ui_ai_announcement - using.layer = 20 adding += using //Shuttle - using = new /obj/screen() - using.name = "Call Emergency Shuttle" - using.icon = 'icons/mob/screen_ai.dmi' - using.icon_state = "call_shuttle" + using = new /obj/screen/ai/call_shuttle() using.screen_loc = ui_ai_shuttle - using.layer = 20 adding += using //Laws - using = new /obj/screen() - using.name = "State Laws" - using.icon = 'icons/mob/screen_ai.dmi' - using.icon_state = "state_laws" + using = new /obj/screen/ai/state_laws() using.screen_loc = ui_ai_state_laws - using.layer = 20 adding += using //PDA message - using = new /obj/screen() - using.name = "PDA - Send Message" - using.icon = 'icons/mob/screen_ai.dmi' - using.icon_state = "pda_send" + using = new /obj/screen/ai/pda_msg_send() using.screen_loc = ui_ai_pda_send - using.layer = 20 adding += using //PDA log - using = new /obj/screen() - using.name = "PDA - Show Message Log" - using.icon = 'icons/mob/screen_ai.dmi' - using.icon_state = "pda_receive" + using = new /obj/screen/ai/pda_msg_show() using.screen_loc = ui_ai_pda_log - using.layer = 20 adding += using //Take image - using = new /obj/screen() - using.name = "Take Image" - using.icon = 'icons/mob/screen_ai.dmi' - using.icon_state = "take_picture" + using = new /obj/screen/ai/image_take() using.screen_loc = ui_ai_take_picture - using.layer = 20 adding += using //View images - using = new /obj/screen() - using.name = "View Images" - using.icon = 'icons/mob/screen_ai.dmi' - using.icon_state = "view_images" + using = new /obj/screen/ai/image_view() using.screen_loc = ui_ai_view_images - using.layer = 20 adding += using //Medical/Security sensors - using = new /obj/screen() - using.name = "Sensor Augmentation" - using.icon = 'icons/mob/screen_ai.dmi' - using.icon_state = "ai_sensor" + using = new /obj/screen/ai/sensors() using.screen_loc = ui_ai_sensor - using.layer = 20 adding += using mymob.client.screen += adding + other diff --git a/code/_onclick/hud/alien.dm b/code/_onclick/hud/alien.dm index ff3c1405301..7b183381253 100644 --- a/code/_onclick/hud/alien.dm +++ b/code/_onclick/hud/alien.dm @@ -1,3 +1,24 @@ +/obj/screen/alien + icon = 'icons/mob/screen_alien.dmi' + +/obj/screen/alien/leap + name = "toggle leap" + icon_state = "leap_off" + +/obj/screen/alien/leap/Click() + if(istype(usr, /mob/living/carbon/alien/humanoid)) + var/mob/living/carbon/alien/humanoid/hunter/AH = usr + AH.toggle_leap() + +/obj/screen/alien/nightvision + name = "toggle night-vision" + icon_state = "nightvision1" + +/obj/screen/alien/nightvision/Click() + var/mob/living/carbon/alien/humanoid/A = usr + A.nightvisiontoggle() + + /datum/hud/proc/alien_hud() adding = list() other = list() @@ -50,59 +71,42 @@ using.layer = 19 adding += using - using = new /obj/screen() - using.name = "act_intent" + using = new /obj/screen/act_intent() using.icon = 'icons/mob/screen_alien.dmi' using.icon_state = mymob.a_intent using.screen_loc = ui_acti - using.layer = 20 adding += using action_intent = using if(istype(mymob, /mob/living/carbon/alien/humanoid/hunter)) - mymob.leap_icon = new /obj/screen() - mymob.leap_icon.name = "leap" - mymob.leap_icon.icon = 'icons/mob/screen_alien.dmi' - mymob.leap_icon.icon_state = "leap_off" + mymob.leap_icon = new /obj/screen/alien/leap() mymob.leap_icon.screen_loc = ui_alien_storage_r - mymob.leap_icon.layer = 20 adding += mymob.leap_icon - using = new /obj/screen() - using.name = "mov_intent" + using = new /obj/screen/mov_intent() using.icon = 'icons/mob/screen_alien.dmi' using.icon_state = (mymob.m_intent == "run" ? "running" : "walking") using.screen_loc = ui_movi - using.layer = 20 adding += using move_intent = using - using = new /obj/screen() - using.name = "drop" + using = new /obj/screen/drop() using.icon = 'icons/mob/screen_alien.dmi' - using.icon_state = "act_drop" using.screen_loc = ui_drop_throw - using.layer = 19 adding += using - using = new /obj/screen() - using.name = "resist" + using = new /obj/screen/resist() using.icon = 'icons/mob/screen_alien.dmi' - using.icon_state = "act_resist" using.screen_loc = ui_pull_resist - using.layer = 19 adding += using - mymob.throw_icon = new /obj/screen() + mymob.throw_icon = new /obj/screen/throw_catch() mymob.throw_icon.icon = 'icons/mob/screen_alien.dmi' - mymob.throw_icon.icon_state = "act_throw_off" - mymob.throw_icon.name = "throw/catch" mymob.throw_icon.screen_loc = ui_drop_throw - mymob.pullin = new /obj/screen() + mymob.pullin = new /obj/screen/pull() mymob.pullin.icon = 'icons/mob/screen_alien.dmi' mymob.pullin.icon_state = "pull0" - mymob.pullin.name = "pull" mymob.pullin.screen_loc = ui_pull_resist //begin indicators @@ -131,10 +135,7 @@ mymob.healths.name = "health" mymob.healths.screen_loc = ui_alien_health - nightvisionicon = new /obj/screen() - nightvisionicon.icon ='icons/mob/screen_alien.dmi' - nightvisionicon.icon_state = "nightvision1" - nightvisionicon.name = "nightvision" + nightvisionicon = new /obj/screen/alien/nightvision() nightvisionicon.screen_loc = ui_alien_nightvision alien_plasma_display = new /obj/screen() diff --git a/code/_onclick/hud/alien_larva.dm b/code/_onclick/hud/alien_larva.dm index 2775f546c6f..716947a1245 100644 --- a/code/_onclick/hud/alien_larva.dm +++ b/code/_onclick/hud/alien_larva.dm @@ -4,21 +4,17 @@ var/obj/screen/using - using = new /obj/screen() - using.name = "act_intent" + using = new /obj/screen/act_intent() using.icon = 'icons/mob/screen_alien.dmi' using.icon_state = mymob.a_intent using.screen_loc = ui_acti - using.layer = 20 adding += using action_intent = using - using = new /obj/screen() - using.name = "mov_intent" + using = new /obj/screen/mov_intent() using.icon = 'icons/mob/screen_alien.dmi' using.icon_state = (mymob.m_intent == "run" ? "running" : "walking") using.screen_loc = ui_movi - using.layer = 20 adding += using move_intent = using @@ -48,16 +44,12 @@ mymob.healths.name = "health" mymob.healths.screen_loc = ui_alien_health - nightvisionicon = new /obj/screen() - nightvisionicon.icon ='icons/mob/screen_alien.dmi' - nightvisionicon.icon_state = "nightvision1" - nightvisionicon.name = "nightvision" + nightvisionicon = new /obj/screen/alien/nightvision() nightvisionicon.screen_loc = ui_alien_nightvision - mymob.pullin = new /obj/screen() + mymob.pullin = new /obj/screen/pull() mymob.pullin.icon = 'icons/mob/screen_alien.dmi' mymob.pullin.icon_state = "pull0" - mymob.pullin.name = "pull" mymob.pullin.screen_loc = ui_pull_resist mymob.blind = new /obj/screen() diff --git a/code/_onclick/hud/drones.dm b/code/_onclick/hud/drones.dm index 26b803f830d..086dc39c95a 100644 --- a/code/_onclick/hud/drones.dm +++ b/code/_onclick/hud/drones.dm @@ -4,18 +4,14 @@ var/obj/screen/using var/obj/screen/inventory/inv_box - using = new /obj/screen() - using.name = "drop" + using = new /obj/screen/drop() using.icon = ui_style - using.icon_state = "act_drop" using.screen_loc = ui_drone_drop - using.layer = 19 adding += using - mymob.pullin = new /obj/screen() + mymob.pullin = new /obj/screen/pull() mymob.pullin.icon = ui_style mymob.pullin.icon_state = "pull0" - mymob.pullin.name = "pull" mymob.pullin.screen_loc = ui_drone_pull adding += mymob.pullin diff --git a/code/_onclick/hud/human.dm b/code/_onclick/hud/human.dm index 87b3aaa984a..5b4b2c7fc09 100644 --- a/code/_onclick/hud/human.dm +++ b/code/_onclick/hud/human.dm @@ -1,3 +1,45 @@ +/obj/screen/human + icon = 'icons/mob/screen_midnight.dmi' + +/obj/screen/human/toggle + name = "toggle" + icon_state = "toggle" + +/obj/screen/human/toggle/Click() + if(usr.hud_used.inventory_shown) + usr.hud_used.inventory_shown = 0 + usr.client.screen -= usr.hud_used.other + else + usr.hud_used.inventory_shown = 1 + usr.client.screen += usr.hud_used.other + + usr.hud_used.hidden_inventory_update() + +/obj/screen/human/equip + name = "equip" + icon_state = "act_equip" + +/obj/screen/human/equip/Click() + if(istype(usr.loc,/obj/mecha)) // stops inventory actions in a mech + return 1 + var/mob/living/carbon/human/H = usr + H.quick_equip() + +/obj/screen/ling + invisibility = 101 + +/obj/screen/ling/sting + name = "current sting" + +/obj/screen/ling/sting/Click() + var/mob/living/carbon/U = usr + U.unset_sting() + +/obj/screen/ling/chems + name = "chemical storage" + icon_state = "power_display" + + /datum/hud/proc/human_hud(ui_style = 'icons/mob/screen_midnight.dmi') adding = list() other = list() @@ -6,29 +48,22 @@ var/obj/screen/using var/obj/screen/inventory/inv_box - using = new /obj/screen() - using.name = "act_intent" + using = new /obj/screen/act_intent() using.icon_state = mymob.a_intent using.screen_loc = ui_acti - using.layer = 20 adding += using action_intent = using - using = new /obj/screen() - using.name = "mov_intent" + using = new /obj/screen/mov_intent() using.icon = ui_style using.icon_state = (mymob.m_intent == "run" ? "running" : "walking") using.screen_loc = ui_movi - using.layer = 20 adding += using move_intent = using - using = new /obj/screen() - using.name = "drop" + using = new /obj/screen/drop() using.icon = ui_style - using.icon_state = "act_drop" using.screen_loc = ui_drop_throw - using.layer = 19 hotkeybuttons += using inv_box = new /obj/screen/inventory() @@ -143,28 +178,19 @@ inv_box.layer = 19 adding += inv_box - using = new /obj/screen() - using.name = "resist" + using = new /obj/screen/resist() using.icon = ui_style - using.icon_state = "act_resist" using.screen_loc = ui_pull_resist - using.layer = 19 hotkeybuttons += using - using = new /obj/screen() - using.name = "toggle" + using = new /obj/screen/human/toggle() using.icon = ui_style - using.icon_state = "toggle" using.screen_loc = ui_inventory - using.layer = 20 adding += using - using = new /obj/screen() - using.name = "equip" + using = new /obj/screen/human/equip() using.icon = ui_style - using.icon_state = "act_equip" using.screen_loc = ui_equip - using.layer = 20 adding += using inv_box = new /obj/screen/inventory() @@ -221,10 +247,8 @@ inv_box.layer = 19 adding += inv_box - mymob.throw_icon = new /obj/screen() + mymob.throw_icon = new /obj/screen/throw_catch() mymob.throw_icon.icon = ui_style - mymob.throw_icon.icon_state = "act_throw_off" - mymob.throw_icon.name = "throw/catch" mymob.throw_icon.screen_loc = ui_drop_throw hotkeybuttons += mymob.throw_icon @@ -243,9 +267,7 @@ mymob.toxin.name = "toxin" mymob.toxin.screen_loc = ui_toxin - mymob.internals = new /obj/screen() - mymob.internals.icon_state = "internal0" - mymob.internals.name = "internal" + mymob.internals = new /obj/screen/internals() mymob.internals.screen_loc = ui_internal mymob.fire = new /obj/screen() @@ -268,25 +290,17 @@ mymob.nutrition_icon.name = "nutrition" mymob.nutrition_icon.screen_loc = ui_nutrition - mymob.pullin = new /obj/screen() + mymob.pullin = new /obj/screen/pull() mymob.pullin.icon = ui_style mymob.pullin.icon_state = "pull0" - mymob.pullin.name = "pull" mymob.pullin.screen_loc = ui_pull_resist hotkeybuttons += mymob.pullin - lingchemdisplay = new /obj/screen() - lingchemdisplay.name = "chemical storage" - lingchemdisplay.icon_state = "power_display" + lingchemdisplay = new /obj/screen/ling/chems() lingchemdisplay.screen_loc = ui_lingchemdisplay - lingchemdisplay.layer = 20 - lingchemdisplay.invisibility = 101 - lingstingdisplay = new /obj/screen() - lingstingdisplay.name = "current sting" + lingstingdisplay = new /obj/screen/ling/sting() lingstingdisplay.screen_loc = ui_lingstingdisplay - lingstingdisplay.layer = 20 - lingstingdisplay.invisibility = 101 mymob.blind = new /obj/screen() mymob.blind.icon = 'icons/mob/screen_full.dmi' diff --git a/code/_onclick/hud/monkey.dm b/code/_onclick/hud/monkey.dm index fecbfb5c513..8b2227e1009 100644 --- a/code/_onclick/hud/monkey.dm +++ b/code/_onclick/hud/monkey.dm @@ -5,30 +5,23 @@ var/obj/screen/using var/obj/screen/inventory/inv_box - using = new /obj/screen() - using.name = "act_intent" + using = new /obj/screen/act_intent() using.icon = ui_style using.icon_state = mymob.a_intent using.screen_loc = ui_acti - using.layer = 20 adding += using action_intent = using - using = new /obj/screen() - using.name = "mov_intent" + using = new /obj/screen/mov_intent() using.icon = ui_style using.icon_state = (mymob.m_intent == "run" ? "running" : "walking") using.screen_loc = ui_movi - using.layer = 20 adding += using move_intent = using - using = new /obj/screen() - using.name = "drop" + using = new /obj/screen/drop() using.icon = ui_style - using.icon_state = "act_drop" using.screen_loc = ui_drop_throw - using.layer = 19 adding += using inv_box = new /obj/screen/inventory() @@ -89,10 +82,8 @@ inv_box.layer = 19 adding += inv_box - mymob.throw_icon = new /obj/screen() + mymob.throw_icon = new /obj/screen/throw_catch() mymob.throw_icon.icon = ui_style - mymob.throw_icon.icon_state = "act_throw_off" - mymob.throw_icon.name = "throw/catch" mymob.throw_icon.screen_loc = ui_drop_throw mymob.oxygen = new /obj/screen() @@ -110,9 +101,7 @@ mymob.toxin.name = "toxin" mymob.toxin.screen_loc = ui_toxin - mymob.internals = new /obj/screen() - mymob.internals.icon_state = "internal0" - mymob.internals.name = "internal" + mymob.internals = new /obj/screen/internals() mymob.internals.screen_loc = ui_internal mymob.fire = new /obj/screen() @@ -130,24 +119,16 @@ mymob.healths.name = "health" mymob.healths.screen_loc = ui_health - mymob.pullin = new /obj/screen() + mymob.pullin = new /obj/screen/pull() mymob.pullin.icon = ui_style mymob.pullin.icon_state = "pull0" - mymob.pullin.name = "pull" mymob.pullin.screen_loc = ui_pull_resist - lingchemdisplay = new /obj/screen() - lingchemdisplay.name = "chemical storage" - lingchemdisplay.icon_state = "power_display" + lingchemdisplay = new /obj/screen/ling/chems() lingchemdisplay.screen_loc = ui_lingchemdisplay - lingchemdisplay.layer = 20 - lingchemdisplay.invisibility = 101 - lingstingdisplay = new /obj/screen() - lingstingdisplay.name = "current sting" + lingstingdisplay = new /obj/screen/ling/sting() lingstingdisplay.screen_loc = ui_lingstingdisplay - lingstingdisplay.layer = 20 - lingstingdisplay.invisibility = 101 mymob.blind = new /obj/screen() mymob.blind.icon = 'icons/mob/screen_full.dmi' @@ -169,12 +150,9 @@ mymob.client.screen = null - using = new /obj/screen() - using.name = "resist" + using = new /obj/screen/resist() using.icon = ui_style - using.icon_state = "act_resist" using.screen_loc = ui_pull_resist - using.layer = 19 adding += using 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, lingchemdisplay, lingstingdisplay) //, mymob.hands, mymob.rest, mymob.sleep, mymob.mach ) diff --git a/code/_onclick/hud/robot.dm b/code/_onclick/hud/robot.dm index f81d908e36a..7e3efee803b 100644 --- a/code/_onclick/hud/robot.dm +++ b/code/_onclick/hud/robot.dm @@ -1,3 +1,59 @@ +/obj/screen/robot + icon = 'icons/mob/screen_cyborg.dmi' + +/obj/screen/robot/module + name = "cyborg module" + icon_state = "nomod" + +/obj/screen/robot/module/Click() + var/mob/living/silicon/robot/R = usr + if(R.module) + R.hud_used.toggle_show_robot_modules() + return 1 + R.pick_module() + +/obj/screen/robot/module1 + name = "module1" + icon_state = "inv1" + +/obj/screen/robot/module1/Click() + var/mob/living/silicon/robot/R = usr + R.toggle_module(1) + +/obj/screen/robot/module2 + name = "module2" + icon_state = "inv2" + +/obj/screen/robot/module2/Click() + var/mob/living/silicon/robot/R = usr + R.toggle_module(2) + +/obj/screen/robot/module3 + name = "module3" + icon_state = "inv3" + +/obj/screen/robot/module3/Click() + var/mob/living/silicon/robot/R = usr + R.toggle_module(3) + + +/obj/screen/robot/radio + name = "radio" + icon_state = "radio" + +/obj/screen/robot/radio/Click() + var/mob/living/silicon/robot/R = usr + R.radio_menu() + +/obj/screen/robot/store + name = "store" + icon_state = "store" + +/obj/screen/robot/store/Click() + var/mob/living/silicon/robot/R = usr + R.uneq_active() + + /datum/hud/proc/robot_hud() adding = list() other = list() @@ -6,88 +62,60 @@ //Radio - using = new /obj/screen() - using.name = "radio" - using.icon = 'icons/mob/screen_cyborg.dmi' - using.icon_state = "radio" + using = new /obj/screen/robot/radio() using.screen_loc = ui_borg_radio - using.layer = 20 adding += using //Module select - using = new /obj/screen() - using.name = "module1" - using.icon = 'icons/mob/screen_cyborg.dmi' - using.icon_state = "inv1" + var/mob/living/silicon/robot/mymobR = mymob + + using = new /obj/screen/robot/module1() using.screen_loc = ui_inv1 - using.layer = 20 adding += using - mymob:inv1 = using + mymobR.inv1 = using - using = new /obj/screen() - using.name = "module2" - using.icon = 'icons/mob/screen_cyborg.dmi' - using.icon_state = "inv2" + using = new /obj/screen/robot/module2() using.screen_loc = ui_inv2 - using.layer = 20 adding += using - mymob:inv2 = using + mymobR.inv2 = using - using = new /obj/screen() - using.name = "module3" - using.icon = 'icons/mob/screen_cyborg.dmi' - using.icon_state = "inv3" + using = new /obj/screen/robot/module3() using.screen_loc = ui_inv3 - using.layer = 20 adding += using - mymob:inv3 = using + mymobR.inv3 = using //End of module select //Photography stuff - using = new /obj/screen() - using.icon = 'icons/mob/screen_ai.dmi' - using.icon_state = "take_picture" - using.name = "Take Image" + using = new /obj/screen/ai/image_take() using.screen_loc = ui_borg_camera - using.layer = 20 adding += using - using = new /obj/screen() - using.icon = 'icons/mob/screen_ai.dmi' - using.icon_state = "view_images" - using.name = "View Images" + using = new /obj/screen/ai/image_view() using.screen_loc = ui_borg_album - using.layer = 20 adding += using //Sec/Med HUDs - using = new /obj/screen() - using.name = "Sensor Augmentation" - using.icon = 'icons/mob/screen_ai.dmi' - using.icon_state = "ai_sensor" + using = new /obj/screen/ai/sensors() using.screen_loc = ui_borg_sensor - using.layer = 20 adding += using //Intent - using = new /obj/screen() - using.name = "act_intent" + using = new /obj/screen/act_intent() using.icon = 'icons/mob/screen_cyborg.dmi' using.icon_state = mymob.a_intent using.screen_loc = ui_borg_intents - using.layer = 20 adding += using action_intent = using //Cell - mymob:cells = new /obj/screen() - mymob:cells.icon = 'icons/mob/screen_cyborg.dmi' - mymob:cells.icon_state = "charge-empty" - mymob:cells.name = "cell" - mymob:cells.screen_loc = ui_toxin + mymobR.cells = new /obj/screen() + mymobR.cells.icon = 'icons/mob/screen_cyborg.dmi' + mymobR.cells.icon_state = "charge-empty" + mymobR.cells.name = "cell" + mymobR.cells.screen_loc = ui_toxin //Health mymob.healths = new /obj/screen() @@ -97,17 +125,11 @@ mymob.healths.screen_loc = ui_borg_health //Installed Module - mymob.hands = new /obj/screen() - mymob.hands.icon = 'icons/mob/screen_cyborg.dmi' - mymob.hands.icon_state = "nomod" - mymob.hands.name = "module" + mymob.hands = new /obj/screen/robot/module() mymob.hands.screen_loc = ui_borg_module //Store - mymob.throw_icon = new /obj/screen() - mymob.throw_icon.icon = 'icons/mob/screen_cyborg.dmi' - mymob.throw_icon.icon_state = "store" - mymob.throw_icon.name = "store" + mymob.throw_icon = new /obj/screen/robot/store() mymob.throw_icon.screen_loc = ui_borg_store //Temp @@ -155,7 +177,7 @@ mymob.client.screen = null - mymob.client.screen += list(mymob.zone_sel, mymob.oxygen, mymob.fire, mymob.hands, mymob.healths, mymob:cells, mymob.pullin, mymob.blind, mymob.flash) //, mymob.rest, mymob.sleep, mymob.mach ) + mymob.client.screen += list(mymob.zone_sel, mymob.oxygen, mymob.fire, mymob.hands, mymob.healths, mymobR.cells, mymob.pullin, mymob.blind, mymob.flash) //, mymob.rest, mymob.sleep, mymob.mach ) mymob.client.screen += adding + other return diff --git a/code/_onclick/hud/screen_objects.dm b/code/_onclick/hud/screen_objects.dm index b64cf1cdb41..7d777c9fae6 100644 --- a/code/_onclick/hud/screen_objects.dm +++ b/code/_onclick/hud/screen_objects.dm @@ -68,6 +68,15 @@ return +/obj/screen/drop + name = "drop" + icon = 'icons/mob/screen_midnight.dmi' + icon_state = "act_drop" + layer = 19 + +/obj/screen/drop/Click() + usr.drop_item_v() + /obj/screen/grab name = "grab" @@ -82,6 +91,112 @@ /obj/screen/grab/attackby() return +/obj/screen/act_intent + name = "intent" + icon_state = "help" + +/obj/screen/act_intent/Click(location, control, params) + if(ishuman(usr) && (usr.client.prefs.toggles & INTENT_STYLE)) + + var/_x = text2num(params2list(params)["icon-x"]) + var/_y = text2num(params2list(params)["icon-y"]) + + if(_x<=16 && _y<=16) + usr.a_intent_change("harm") + + else if(_x<=16 && _y>=17) + usr.a_intent_change("help") + + else if(_x>=17 && _y<=16) + usr.a_intent_change("grab") + + else if(_x>=17 && _y>=17) + usr.a_intent_change("disarm") + + else + usr.a_intent_change("right") + +/obj/screen/internals + name = "toggle internals" + icon_state = "internal0" + +/obj/scren/internals/Click() + if(iscarbon(usr)) + var/mob/living/carbon/C = usr + if(!C.stat && !C.stunned && !C.paralysis && !C.restrained()) + if(C.internal) + C.internal = null + C << "No longer running on internals." + icon_state = "internal0" + else + if(!istype(C.wear_mask, /obj/item/clothing/mask)) + C << "You are not wearing a mask." + return 1 + else + if(istype(C.l_hand, /obj/item/weapon/tank)) + C << "You are now running on internals from the [C.l_hand] on your left hand." + C.internal = C.l_hand + else if(istype(C.r_hand, /obj/item/weapon/tank)) + C << "You are now running on internals from the [C.r_hand] on your right hand." + C.internal = C.r_hand + else if(ishuman(C)) + var/mob/living/carbon/human/H = C + if(istype(H.s_store, /obj/item/weapon/tank)) + H << "You are now running on internals from the [H.s_store] on your [H.wear_suit]." + H.internal = H.s_store + else if(istype(H.belt, /obj/item/weapon/tank)) + H << "You are now running on internals from the [H.belt] on your belt." + H.internal = H.belt + else if(istype(H.l_store, /obj/item/weapon/tank)) + H << "You are now running on internals from the [H.l_store] in your left pocket." + H.internal = H.l_store + else if(istype(H.r_store, /obj/item/weapon/tank)) + H << "You are now running on internals from the [H.r_store] in your right pocket." + H.internal = H.r_store + + //Seperate so CO2 jetpacks are a little less cumbersome. + if(!C.internal && istype(C.back, /obj/item/weapon/tank)) + C << "You are now running on internals from the [C.back] on your back." + C.internal = C.back + + if(C.internal) + icon_state = "internal1" + else + C << "You don't have an oxygen tank." + +/obj/screen/mov_intent + name = "run/walk toggle" + icon = 'icons/mob/screen_midnight.dmi' + icon_state = "running" + +/obj/screen/mov_intent/Click() + switch(usr.m_intent) + if("run") + usr.m_intent = "walk" + icon_state = "walking" + if("walk") + usr.m_intent = "run" + icon_state = "running" + usr.update_icons() + +/obj/screen/pull + name = "stop pulling" + icon = 'icons/mob/screen_midnight.dmi' + icon_state = "pull" + +/obj/screen/pull/Click() + usr.stop_pulling() + +/obj/screen/resist + name = "resist" + icon = 'icons/mob/screen_midnight.dmi' + icon_state = "act_resist" + layer = 19 + +/obj/screen/resist/Click() + if(isliving(usr)) + var/mob/living/L = usr + L.resist() /obj/screen/storage name = "storage" @@ -99,6 +214,16 @@ master.attackby(I, usr) return 1 +/obj/screen/throw_catch + name = "throw/catch" + icon = 'icons/mob/screen_midnight.dmi' + icon_state = "act_throw_off" + +/obj/screen/throw_catch/Click() + if(iscarbon(usr) && !usr.stat && isturf(usr.loc) && !usr.restrained()) + var/mob/living/carbon/C = usr + C.toggle_throw_mode() + /obj/screen/zone_sel name = "damage zone" icon_state = "zone_sel" @@ -166,243 +291,11 @@ /obj/screen/Click(location, control, params) if(!usr) return 1 - switch(name) - if("toggle") - if(usr.hud_used.inventory_shown) - usr.hud_used.inventory_shown = 0 - usr.client.screen -= usr.hud_used.other - else - usr.hud_used.inventory_shown = 1 - usr.client.screen += usr.hud_used.other + if(name == "Reset Machine") //I don't know what this is, CTRL+F has the only entry right here in this file, so I'm going to leave it in case it is something important + usr.unset_machine() + else + return 0 - usr.hud_used.hidden_inventory_update() - - if("equip") - if (istype(usr.loc,/obj/mecha)) // stops inventory actions in a mech - return 1 - if(ishuman(usr)) - var/mob/living/carbon/human/H = usr - H.quick_equip() - - if("current sting") - var/mob/living/carbon/U = usr - U.unset_sting() - - if("resist") - if(isliving(usr)) - var/mob/living/L = usr - L.resist() - - if("mov_intent") - switch(usr.m_intent) - if("run") - usr.m_intent = "walk" - usr.hud_used.move_intent.icon_state = "walking" - if("walk") - usr.m_intent = "run" - usr.hud_used.move_intent.icon_state = "running" - if(istype(usr,/mob/living/carbon/alien/humanoid)) - usr.update_icons() - if("Reset Machine") - usr.unset_machine() - if("internal") - if(iscarbon(usr)) - var/mob/living/carbon/C = usr - if(!C.stat && !C.stunned && !C.paralysis && !C.restrained()) - if(C.internal) - C.internal = null - C << "No longer running on internals." - if(C.internals) - C.internals.icon_state = "internal0" - else - if(!istype(C.wear_mask, /obj/item/clothing/mask)) - C << "You are not wearing a mask." - return 1 - else - if(istype(C.l_hand, /obj/item/weapon/tank)) - C << "You are now running on internals from the [C.l_hand] on your left hand." - C.internal = C.l_hand - else if(istype(C.r_hand, /obj/item/weapon/tank)) - C << "You are now running on internals from the [C.r_hand] on your right hand." - C.internal = C.r_hand - else if(ishuman(C)) - var/mob/living/carbon/human/H = C - if(istype(H.s_store, /obj/item/weapon/tank)) - H << "You are now running on internals from the [H.s_store] on your [H.wear_suit]." - H.internal = H.s_store - else if(istype(H.belt, /obj/item/weapon/tank)) - H << "You are now running on internals from the [H.belt] on your belt." - H.internal = H.belt - else if(istype(H.l_store, /obj/item/weapon/tank)) - H << "You are now running on internals from the [H.l_store] in your left pocket." - H.internal = H.l_store - else if(istype(H.r_store, /obj/item/weapon/tank)) - H << "You are now running on internals from the [H.r_store] in your right pocket." - H.internal = H.r_store - - //Seperate so CO2 jetpacks are a little less cumbersome. - if(!C.internal && istype(C.back, /obj/item/weapon/tank)) - C << "You are now running on internals from the [C.back] on your back." - C.internal = C.back - - if(C.internal) - if(C.internals) - C.internals.icon_state = "internal1" - else - C << "You don't have an oxygen tank." - - if("act_intent") - if(ishuman(usr) && (usr.client.prefs.toggles & INTENT_STYLE)) - - var/_x = text2num(params2list(params)["icon-x"]) - var/_y = text2num(params2list(params)["icon-y"]) - - if(_x<=16 && _y<=16) - usr.a_intent_change("harm") - - else if(_x<=16 && _y>=17) - usr.a_intent_change("help") - - else if(_x>=17 && _y<=16) - usr.a_intent_change("grab") - - else if(_x>=17 && _y>=17) - usr.a_intent_change("disarm") - - else - usr.a_intent_change("right") - - if("pull") - usr.stop_pulling() - if("throw/catch") - if(!usr.stat && isturf(usr.loc) && !usr.restrained()) - usr:toggle_throw_mode() - if("drop") - usr.drop_item_v() - - if("module") - if(isrobot(usr)) - var/mob/living/silicon/robot/R = usr - if(R.module) - R.hud_used.toggle_show_robot_modules() - return 1 - R.pick_module() - - if("radio") - if(issilicon(usr)) - usr:radio_menu() - if("panel") - if(issilicon(usr)) - usr:installed_modules() - - if("store") - if(isrobot(usr)) - var/mob/living/silicon/robot/R = usr - R.uneq_active() - - if("module1") - if(istype(usr, /mob/living/silicon/robot)) - usr:toggle_module(1) - - if("module2") - if(istype(usr, /mob/living/silicon/robot)) - usr:toggle_module(2) - - if("module3") - if(istype(usr, /mob/living/silicon/robot)) - usr:toggle_module(3) - - if("AI Core") - if(isAI(usr)) - var/mob/living/silicon/ai/AI = usr - AI.view_core() - - if("Show Camera List") - if(isAI(usr)) - var/mob/living/silicon/ai/AI = usr - var/camera = input(AI, "Choose which camera you want to view", "Cameras") as null|anything in AI.get_camera_list() - AI.ai_camera_list(camera) - - if("Track With Camera") - if(isAI(usr)) - var/mob/living/silicon/ai/AI = usr - var/target_name = input(AI, "Choose who you want to track", "Tracking") as null|anything in AI.trackable_mobs() - AI.ai_camera_track(target_name) - - if("Toggle Camera Light") - if(isAI(usr)) - var/mob/living/silicon/ai/AI = usr - AI.toggle_camera_light() - - if("Crew Monitorting") - if(isAI(usr)) - var/mob/living/silicon/ai/AI = usr - crewmonitor(AI,AI) - - if("Show Crew Manifest") - if(isAI(usr)) - var/mob/living/silicon/ai/AI = usr - AI.ai_roster() - - if("Show Alerts") - if(isAI(usr)) - var/mob/living/silicon/ai/AI = usr - AI.ai_alerts() - - if("Announcement") - if(isAI(usr)) - var/mob/living/silicon/ai/AI = usr - AI.announcement() - - if("Call Emergency Shuttle") - if(isAI(usr)) - var/mob/living/silicon/ai/AI = usr - AI.ai_call_shuttle() - - if("State Laws") - if(isAI(usr)) - var/mob/living/silicon/ai/AI = usr - AI.checklaws() - - if("PDA - Send Message") - if(isAI(usr)) - var/mob/living/silicon/ai/AI = usr - AI.cmd_send_pdamesg(usr) - - if("PDA - Show Message Log") - if(isAI(usr)) - var/mob/living/silicon/ai/AI = usr - AI.cmd_show_message_log(usr) - - if("Take Image") - if(isAI(usr)) - var/mob/living/silicon/ai/AI = usr - AI.aicamera.toggle_camera_mode() - else if(isrobot(usr)) - var/mob/living/silicon/robot/R = usr - R.aicamera.toggle_camera_mode() - - if("View Images") - if(isAI(usr)) - var/mob/living/silicon/ai/AI = usr - AI.aicamera.viewpictures() - else if(isrobot(usr)) - var/mob/living/silicon/robot/R = usr - R.aicamera.viewpictures() - if("nightvision") - if(isalien(usr)) - var/mob/living/carbon/alien/humanoid/A = usr - A.nightvisiontoggle() - if("Sensor Augmentation") - if(issilicon(usr)) - var/mob/living/silicon/S = usr - S.sensor_mode() - if("leap") - if(istype(usr, /mob/living/carbon/alien/humanoid)) - var/mob/living/carbon/alien/humanoid/hunter/AH = usr - AH.toggle_leap() - else - return 0 return 1 /obj/screen/inventory/Click()