/obj/machinery/computer/fission name = "Fission Console" icon_state = "comm" // icon = 'icons/obj/machines/nuclear.dmi' // icon_state = "Sing2" var/id = 0.0 req_access = list(access_heads) var/authenticated = 0 var/screen = 1.0 var/obj/machinery/power/fission/engine/theEngine = null var/obj/machinery/fission/reactor/selectedReactor = null New() ..() process() ..() attackby(I as obj, user as mob) src.attack_hand(user) return attack_ai(var/mob/user as mob) return src.attack_hand(user) attack_hand(var/mob/user as mob) if(..()) return user.machine = src var/dat = "Fission Console" if(src.authenticated) // If no engine then fuck this if(!theEngine || !theEngine.active) dat += "
\[ No Engine Detected \]
" else switch(src.screen) // Main engine screen if(1.0) dat += {"
\[ This is where image of power goes \]
Power generated: [num2text(theEngine.lastpower,5)]W

Please pick a reactor to inspect:
"} var/i = 1 for(var/obj/machinery/fission/reactor/R in theEngine.reactors) dat += "
\[ Reactor [i++] \]" // Screen for individual reactor if(2.0) dat += {"
\[ Reactor \]

Temperature: [num2text(selectedReactor.temperature,5)] K
Pressure: [num2text(selectedReactor.pressure,5)] kPa

\[ Fuel Rods \]
"} var/i = 1 for(var/obj/item/rod/fuel/F in selectedReactor.fuelRods) dat += {"
[i++]: [F.name] - [F.amount/F.maxAmount > 0.1 ? "[num2text(( F.amount/F.maxAmount )*100, 4)]%" : "[num2text(( F.amount/F.maxAmount )*100, 4)]%"] - [F.lowered ? "\[Raise Tube\]" : "\[Lower Tube\] \[Flush Tube\] \[Eject Tube\]"] "} dat += "

\[ Control Rods \]
" i = 1 for(var/obj/item/rod/control/CR in selectedReactor.controlRods) dat += {"
[i++]: [CR.name] - Condition: [CR.condition < 10 ? "[CR.condition]%" : "[CR.condition]%"] [CR.lowered ? "\[Raise Tube\]" : "\[Lower Tube\] \[Eject Tube\]"] "} dat += "

\[ Back \]" dat += "

\[ Log Out \]" else dat += "
\[ Log In \]" dat += "


\[ Close \]" user << browse(dat, "window=fission;size=500x300") onclose(user, "fission") Topic(href, href_list) if(..()) return usr.machine = src if(href_list["reactor"]) var/obj/machinery/fission/reactor/R = locate(href_list["reactor"]) selectedReactor = R src.screen = 2.0 else if(href_list["raise"]) var/obj/item/rod/R = locate(href_list["raise"]) selectedReactor.rodsLowered = 0 R.lowered = 0 else if(href_list["low"]) var/obj/item/rod/R = locate(href_list["low"]) selectedReactor.rodsLowered = 1 R.lowered = 1 else if(href_list["flush"]) var/obj/item/rod/fuel/F = locate(href_list["flush"]) F.amount = 0 else if(href_list["eject"]) var/obj/item/rod/R = locate(href_list["eject"]) if(R in selectedReactor.fuelRods) selectedReactor.fuelRods.Remove(R) // Keep the list length at 5 selectedReactor.fuelRods.len = 5 else if(R in selectedReactor.controlRods) selectedReactor.controlRods.Remove(R) // Keep the list length at 5 selectedReactor.controlRods.len = 5 else boutput(world, "Unable to remove [R] from lists") R.set_loc(selectedReactor.loc) else if(href_list["operation"]) switch(href_list["operation"]) if("back") src.screen = 1.0 if("login") var/mob/M = usr var/obj/item/card/id/I = M.equipped() if (I && istype(I)) if(src.check_access(I)) authenticated = 1 if("logout") authenticated = 0 else return src.updateUsrDialog()