mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-07-14 16:44:33 +01:00
Experimentor Fixes
This commit is contained in:
@@ -170,28 +170,25 @@
|
||||
if(!linked_console)
|
||||
dat += "<b><a href='byond://?src=\ref[src];function=search'>Scan for R&D Console</A></b><br>"
|
||||
if(loaded_item)
|
||||
if(recentlyExperimented)
|
||||
dat += "<b>The [src] is still resetting!</b>"
|
||||
else
|
||||
dat += "<b>Loaded Item:</b> [loaded_item]<br>"
|
||||
dat += "<b>Technology</b>:<br>"
|
||||
var/list/D = ConvertReqString2List(loaded_item.origin_tech)
|
||||
for(var/T in D)
|
||||
dat += "[T]<br>"
|
||||
dat += "<br><br>Available tests:"
|
||||
dat += "<br><b><a href='byond://?src=\ref[src];item=\ref[loaded_item];function=[SCANTYPE_POKE]'>Poke</A></b>"
|
||||
dat += "<br><b><a href='byond://?src=\ref[src];item=\ref[loaded_item];function=[SCANTYPE_IRRADIATE];'>Irradiate</A></b>"
|
||||
dat += "<br><b><a href='byond://?src=\ref[src];item=\ref[loaded_item];function=[SCANTYPE_GAS]'>Gas</A></b>"
|
||||
dat += "<br><b><a href='byond://?src=\ref[src];item=\ref[loaded_item];function=[SCANTYPE_HEAT]'>Burn</A></b>"
|
||||
dat += "<br><b><a href='byond://?src=\ref[src];item=\ref[loaded_item];function=[SCANTYPE_COLD]'>Freeze</A></b>"
|
||||
dat += "<br><b><a href='byond://?src=\ref[src];item=\ref[loaded_item];function=[SCANTYPE_OBLITERATE]'>Destroy</A></b><br>"
|
||||
if(istype(loaded_item,/obj/item/weapon/relic))
|
||||
dat += "<br><b><a href='byond://?src=\ref[src];item=\ref[loaded_item];function=[SCANTYPE_DISCOVER]'>Discover</A></b><br>"
|
||||
dat += "<br><b><a href='byond://?src=\ref[src];function=eject'>Eject</A>"
|
||||
dat += "<b>Loaded Item:</b> [loaded_item]<br>"
|
||||
dat += "<b>Technology</b>:<br>"
|
||||
var/list/D = ConvertReqString2List(loaded_item.origin_tech)
|
||||
for(var/T in D)
|
||||
dat += "[T]<br>"
|
||||
dat += "<br><br>Available tests:"
|
||||
dat += "<br><b><a href='byond://?src=\ref[src];item=\ref[loaded_item];function=[SCANTYPE_POKE]'>Poke</A></b>"
|
||||
dat += "<br><b><a href='byond://?src=\ref[src];item=\ref[loaded_item];function=[SCANTYPE_IRRADIATE];'>Irradiate</A></b>"
|
||||
dat += "<br><b><a href='byond://?src=\ref[src];item=\ref[loaded_item];function=[SCANTYPE_GAS]'>Gas</A></b>"
|
||||
dat += "<br><b><a href='byond://?src=\ref[src];item=\ref[loaded_item];function=[SCANTYPE_HEAT]'>Burn</A></b>"
|
||||
dat += "<br><b><a href='byond://?src=\ref[src];item=\ref[loaded_item];function=[SCANTYPE_COLD]'>Freeze</A></b>"
|
||||
dat += "<br><b><a href='byond://?src=\ref[src];item=\ref[loaded_item];function=[SCANTYPE_OBLITERATE]'>Destroy</A></b><br>"
|
||||
if(istype(loaded_item,/obj/item/weapon/relic))
|
||||
dat += "<br><b><a href='byond://?src=\ref[src];item=\ref[loaded_item];function=[SCANTYPE_DISCOVER]'>Discover</A></b><br>"
|
||||
dat += "<br><b><a href='byond://?src=\ref[src];function=eject'>Eject</A>"
|
||||
else
|
||||
dat += "<b>Nothing loaded.</b>"
|
||||
dat += "<br><a href='byond://?src=\ref[src];function=refresh'>Refresh</A><br>"
|
||||
dat += "<br><a href='byond://?src=\ref[src];function=close'>Close</A><br></center>"
|
||||
dat += "<br><a href='byond://?src=\ref[src];close=1'>Close</A><br></center>"
|
||||
var/datum/browser/popup = new(user, "experimentor","Experimentor", 700, 400, src)
|
||||
popup.set_content(dat)
|
||||
popup.open()
|
||||
@@ -460,27 +457,23 @@
|
||||
visible_message("<span class='danger'>[src]'s crusher goes way too many levels too high, crushing right through space-time!</span>")
|
||||
playsound(src.loc, 'sound/effects/supermatter.ogg', 50, 1, -3)
|
||||
investigate_log("Experimentor has triggered the 'throw things' reaction.", "experimentor")
|
||||
var/list/throwAt = list()
|
||||
for(var/i in oview(7,src))
|
||||
if(istype(i,/obj/item) || istype(i,/mob/living))
|
||||
throwAt.Add(i)
|
||||
var/counter
|
||||
for(counter = 1, counter < throwAt.len, ++counter)
|
||||
var/cast = throwAt[counter]
|
||||
cast:throw_at(src,10,1)
|
||||
for(var/atom/movable/AM in oview(7,src))
|
||||
if(!AM.anchored)
|
||||
spawn(0)
|
||||
AM.throw_at(src,10,1)
|
||||
|
||||
if(prob(EFFECT_PROB_LOW-badThingCoeff))
|
||||
visible_message("<span class='danger'>[src]'s crusher goes one level too high, crushing right into space-time!</span>")
|
||||
playsound(src.loc, 'sound/effects/supermatter.ogg', 50, 1, -3)
|
||||
investigate_log("Experimentor has triggered the 'minor throw things' reaction.", "experimentor")
|
||||
var/list/oViewStuff = oview(7,src)
|
||||
var/list/throwAt = list()
|
||||
for(var/i in oViewStuff)
|
||||
if(istype(i,/obj/item) || istype(i,/mob/living))
|
||||
throwAt.Add(i)
|
||||
var/counter
|
||||
for(counter = 1, counter < throwAt.len, ++counter)
|
||||
var/cast = throwAt[counter]
|
||||
cast:throw_at(pick(throwAt),10,1)
|
||||
for(var/atom/movable/AM in oview(7,src))
|
||||
if(!AM.anchored)
|
||||
throwAt.Add(AM)
|
||||
for(var/counter = 1, counter < throwAt.len, ++counter)
|
||||
var/atom/movable/cast = throwAt[counter]
|
||||
spawn(0)
|
||||
cast.throw_at(pick(throwAt),10,1)
|
||||
ejectItem(TRUE)
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
if(exp == FAIL)
|
||||
@@ -553,8 +546,9 @@
|
||||
var/scantype = href_list["function"]
|
||||
var/obj/item/process = locate(href_list["item"]) in src
|
||||
|
||||
if(scantype == "close")
|
||||
if(href_list["close"])
|
||||
usr << browse(null, "window=experimentor")
|
||||
return
|
||||
else if(scantype == "search")
|
||||
var/obj/machinery/computer/rdconsole/D = locate(/obj/machinery/computer/rdconsole) in oview(3,src)
|
||||
if(D)
|
||||
@@ -567,6 +561,14 @@
|
||||
if(recentlyExperimented)
|
||||
usr << "<span class='warning'>[src] has been used too recently!</span>"
|
||||
return
|
||||
else if(!loaded_item)
|
||||
updateUsrDialog() //Set the interface to unloaded mode
|
||||
usr << "<span class='warning'>[src] is not currently loaded!</span>"
|
||||
return
|
||||
else if(!process || process != loaded_item) //Interface exploit protection (such as hrefs or swapping items with interface set to old item)
|
||||
updateUsrDialog() //Refresh interface to update interface hrefs
|
||||
usr << "<span class='danger'>Interface failure detected in [src]. Please try again.</span>"
|
||||
return
|
||||
var/dotype
|
||||
if(text2num(scantype) == SCANTYPE_DISCOVER)
|
||||
dotype = SCANTYPE_DISCOVER
|
||||
@@ -579,9 +581,8 @@
|
||||
var/list/temp_tech = ConvertReqString2List(process.origin_tech)
|
||||
for(var/T in temp_tech)
|
||||
linked_console.files.UpdateTech(T, temp_tech[T])
|
||||
linked_console.files.UpdateDesigns(process,process.type)
|
||||
if(scantype != "close")
|
||||
src.updateUsrDialog()
|
||||
linked_console.files.UpdateDesigns(process,temp_tech)
|
||||
src.updateUsrDialog()
|
||||
return
|
||||
|
||||
//~~~~~~~~Admin logging proc, aka the Powergamer Alarm~~~~~~~~
|
||||
|
||||
Reference in New Issue
Block a user