/datum/hud/proc/robot_hud() src.adding = list() src.other = list() var/obj/screen/using //Radio using = getFromPool(/obj/screen) using.name = "radio" using.dir = SOUTHWEST using.icon = 'icons/mob/screen1_robot.dmi' using.icon_state = "radio" using.screen_loc = ui_movi using.layer = 20 src.adding += using //Module select using = getFromPool(/obj/screen) using.name = INV_SLOT_SIGHT using.dir = SOUTHWEST using.icon = 'icons/mob/screen1_robot.dmi' using.icon_state = "sight" using.screen_loc = ui_borg_sight using.layer = 20 src.adding += using mymob:sensor = using using = getFromPool(/obj/screen) using.name = "module1" using.dir = SOUTHWEST using.icon = 'icons/mob/screen1_robot.dmi' using.icon_state = "inv1" using.screen_loc = ui_inv1 using.layer = 20 src.adding += using mymob:inv1 = using using = getFromPool(/obj/screen) using.name = "module2" using.dir = SOUTHWEST using.icon = 'icons/mob/screen1_robot.dmi' using.icon_state = "inv2" using.screen_loc = ui_inv2 using.layer = 20 src.adding += using mymob:inv2 = using using = getFromPool(/obj/screen) using.name = "module3" using.dir = SOUTHWEST using.icon = 'icons/mob/screen1_robot.dmi' using.icon_state = "inv3" using.screen_loc = ui_inv3 using.layer = 20 src.adding += using mymob:inv3 = using using = getFromPool(/obj/screen) using.dir = SOUTHWEST using.icon = 'icons/mob/screen1.dmi' using.icon_state = "block" using.layer = 19 src.adding += using mymob:robot_modules_background = using //End of module select //Intent using = getFromPool(/obj/screen) using.name = "act_intent" using.dir = SOUTHWEST using.icon = 'icons/mob/screen1_robot.dmi' using.icon_state = (mymob.a_intent == I_HURT ? "harm" : mymob.a_intent) using.screen_loc = ui_acti using.layer = 20 src.adding += using action_intent = using //Cell mymob:cells = getFromPool(/obj/screen) mymob:cells.icon = 'icons/mob/screen1_robot.dmi' mymob:cells.icon_state = "charge-empty" mymob:cells.name = "cell" mymob:cells.screen_loc = ui_toxin //Health mymob.healths = getFromPool(/obj/screen) mymob.healths.icon = 'icons/mob/screen1_robot.dmi' mymob.healths.icon_state = "health0" mymob.healths.name = "health" mymob.healths.screen_loc = ui_borg_health //Installed Module mymob.hands = getFromPool(/obj/screen) mymob.hands.icon = 'icons/mob/screen1_robot.dmi' mymob.hands.icon_state = "nomod" mymob.hands.name = "module" mymob.hands.screen_loc = ui_borg_module //Module Panel using = getFromPool(/obj/screen) using.name = "panel" using.icon = 'icons/mob/screen1_robot.dmi' using.icon_state = "panel" using.screen_loc = ui_borg_panel using.layer = 19 src.adding += using //Store mymob.throw_icon = getFromPool(/obj/screen) mymob.throw_icon.icon = 'icons/mob/screen1_robot.dmi' mymob.throw_icon.icon_state = "store" mymob.throw_icon.name = "store" mymob.throw_icon.screen_loc = ui_borg_store //Temp mymob.bodytemp = getFromPool(/obj/screen) mymob.bodytemp.icon_state = "temp0" mymob.bodytemp.name = "body temperature" mymob.bodytemp.screen_loc = ui_temp mymob.oxygen = getFromPool(/obj/screen) mymob.oxygen.icon = 'icons/mob/screen1_robot.dmi' mymob.oxygen.icon_state = "oxy0" mymob.oxygen.name = "oxygen" mymob.oxygen.screen_loc = ui_oxygen mymob.fire = getFromPool(/obj/screen) mymob.fire.icon = 'icons/mob/screen1_robot.dmi' mymob.fire.icon_state = "fire0" mymob.fire.name = "fire" mymob.fire.screen_loc = ui_fire mymob.pullin = getFromPool(/obj/screen) mymob.pullin.icon = 'icons/mob/screen1_robot.dmi' mymob.pullin.icon_state = "pull0" mymob.pullin.name = "pull" mymob.pullin.screen_loc = ui_borg_pull mymob.blind = getFromPool(/obj/screen) mymob.blind.icon = 'icons/mob/screen1_full.dmi' mymob.blind.icon_state = "blackimageoverlay" mymob.blind.name = " " mymob.blind.screen_loc = "1,1" mymob.blind.layer = 0 mymob.flash = getFromPool(/obj/screen) mymob.flash.icon = 'icons/mob/screen1_robot.dmi' mymob.flash.icon_state = "blank" mymob.flash.name = "flash" mymob.flash.screen_loc = ui_entire_screen mymob.flash.layer = 17 mymob.zone_sel = getFromPool(/obj/screen/zone_sel) mymob.zone_sel.icon = 'icons/mob/screen1_robot.dmi' mymob.zone_sel.overlays.len = 0 mymob.zone_sel.overlays += image('icons/mob/zone_sel.dmi', "[mymob.zone_sel.selecting]") //Handle the gun settings buttons mymob.gun_setting_icon = getFromPool(/obj/screen/gun/mode) if (mymob.client) if (mymob.client.gun_mode) // If in aim mode, correct the sprite mymob.gun_setting_icon.dir = 2 for(var/obj/item/weapon/gun/G in mymob) // If targeting someone, display other buttons if (G.target) mymob.item_use_icon = getFromPool(/obj/screen/gun/item) if (mymob.client.target_can_click) mymob.item_use_icon.dir = 1 src.adding += mymob.item_use_icon mymob.gun_move_icon = getFromPool(/obj/screen/gun/move) if (mymob.client.target_can_move) mymob.gun_move_icon.dir = 1 mymob.gun_run_icon = getFromPool(/obj/screen/gun/run) if (mymob.client.target_can_run) mymob.gun_run_icon.dir = 1 src.adding += mymob.gun_run_icon src.adding += mymob.gun_move_icon mymob.client.reset_screen() 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 /datum/hud/proc/toggle_show_robot_modules() if(!isrobot(mymob)) return var/mob/living/silicon/robot/r = mymob r.shown_robot_modules = !r.shown_robot_modules update_robot_modules_display() /datum/hud/proc/update_robot_modules_display() if(!isrobot(mymob) || !mymob.client) return var/mob/living/silicon/robot/r = mymob if(r.shown_robot_modules) //Modules display is shown if(!r.module) to_chat(usr, "No module selected") return if(!r.module.modules) to_chat(usr, "Selected module has no modules to select") return if(!r.robot_modules_background) return var/display_rows = round((r.module.modules.len) / 8) +1 //+1 because round() returns floor of number r.robot_modules_background.screen_loc = "CENTER-4:16,SOUTH+1:7 to CENTER+3:16,SOUTH+[display_rows]:7" r.client.screen += r.robot_modules_background var/x = -4 //Start at CENTER-4,SOUTH+1 var/y = 1 for(var/atom/movable/A in r.module.modules) if( (A != r.module_state_1) && (A != r.module_state_2) && (A != r.module_state_3) ) //Module is not currently active r.client.screen += A if(x < 0) A.screen_loc = "CENTER[x]:16,SOUTH+[y]:7" else A.screen_loc = "CENTER+[x]:16,SOUTH+[y]:7" A.layer = 20 x++ if(x == 4) x = -4 y++ else //Modules display is hidden if(r.module) for(var/atom/A in r.module.modules) if( (A != r.module_state_1) && (A != r.module_state_2) && (A != r.module_state_3) ) //Module is not currently active r.client.screen -= A r.shown_robot_modules = 0 r.client.screen -= r.robot_modules_background