Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Toxins Troubles #5771

Open
wants to merge 12 commits into
base: master
Choose a base branch
from
30 changes: 29 additions & 1 deletion code/game/objects/structures/noticeboard.dm
Original file line number Diff line number Diff line change
Expand Up @@ -241,7 +241,7 @@
name = "Research bulletin board"
desc = "A board containing vital notices and official memos for the Soteria research"
icon_state = "nboard00"
notices = 1
notices = 2

/obj/structure/noticeboard/research/New()
var/obj/item/paper/P = new()
Expand All @@ -261,6 +261,34 @@
src.contents += P
update_icon()

P = new()
P.name = "Memo RE: Toxins Testing Value Index"
P.info = "Index Contents:<ol> \
<li> Shooting Targets: 5.\
<li> Machine Frames: 15 (17 If frame has wires or a circuitboard).\
<li> Any Flora (Not produce/trays): 2.\
<li> Compressed Cubes: 7.\
<li> Salvageable Machines: 60.\
<li> Modular Computer Consoles: 18.\
<li> Non-Modular Consoles: 17.\
<li> Filingcabinets: 30.\
<li> Metal Grilles: 2.\
<li> Barricades: 3.\
<li> Bookcases: 15.\
<li> Catwalks: 2.\
<li> Tables: 2.\
<li> Railing: 2 (5 if reinforced).\
<li> Beds and Chairs: 2.\
<li> Windows: Normal 2. Reinforced 3. Plasma 5 .Reinforced Plasma 10\
<li> Reagent Dispensers (Such as: Watercoolers, Welder Fuel Tanks, Beer Kegs): 25.\
<li> Lockers and Closets: 10.\
<li> Damaged Floors: N/A</ol><br>\
NOTE: The Watcher sees a max range of 8 tiles around it. If you use a bomb that has less then 16 Power it will match how far it scans to the round(Power/2) of the bomb used."
P.add_overlay(list("paper_stamp-dots"))
P.stamped &= STAMP_FACTION
src.contents += P
update_icon()

/obj/structure/noticeboard/guild
name = "Artificers Guild bulletin board"
desc = "A board containing vital notices and official memos for the colonies resident Guild"
Expand Down
24 changes: 24 additions & 0 deletions code/modules/paperwork/paper_premade.dm
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,30 @@
<BR>\n\t\t\tThe effect are cumulative.
<BR>\n\t\tWARNING: It is a crime to use this without authorization"}

/obj/item/paper/toxin_index
name = "Memo RE: Toxins Testing Value Index"
info = {"Index Contents:<ol> \
<li> Shooting Targets: 5.\
<li> Machine Frames: 15 (17 If frame has wires or a circuitboard).\
<li> Modular Computer Consoles: 18.\
<li> Non-Modular Consoles: 17.\
<li> Any Flora (Not produce/trays): 2.\
<li> Compressed Cubes: 7.\
<li> Salvageable Machines: 60.\
<li> Filingcabinets: 30.\
<li> Metal Grilles: 2.\
<li> Barricades: 3.\
<li> Bookcases: 15.\
<li> Catwalks: 2.\
<li> Tables: 2.\
<li> Railing: 2 (5 if reinforced).\
<li> Beds and Chairs: 2.\
<li> Windows: Normal 2. Reinforced 3. Plasma 5 .Reinforced Plasma 10\
<li> Reagent Dispensers (Such as: Watercoolers, Welder Fuel Tanks, Beer Kegs): 25.\
<li> Lockers and Closets: 10.\
<li> Damaged Floors: N/A</ol>\
NOTE: The Watcher sees a max range of 8 tiles around it. If you use a bomb that has less then 16 Power it will match how far it scans to the round(Power/2) of the bomb used."}

/obj/item/paper/courtroom
name = "A Crash Course in Legal SOP on the colony."
info = {"<B>Roles:</B>
Expand Down
55 changes: 0 additions & 55 deletions code/modules/research/experiment.dm
Original file line number Diff line number Diff line change
Expand Up @@ -247,61 +247,6 @@ GLOBAL_LIST_EMPTY(explosion_watcher_list)

saved_best_explosion = max(saved_best_explosion, O.saved_best_explosion)


// Grants research points when explosion happens nearby
/obj/item/device/radio/beacon/explosion_watcher
name = "Kinetic Energy Scanner"
desc = "Scans the level of kinetic energy from explosions. This beacon, is in fact bomb proof and to use it properly you must use the bomb within 10 tiles of this scanner."

channels = list("Science" = 1)
var/targetBoom
var/stored_points //This is how many points we hve stored, we use them up when successfull

/obj/item/device/radio/beacon/explosion_watcher/examine()
..()
to_chat(usr, "EXPECTED EXPLOSION - [targetBoom]")
to_chat(usr, "Points Left - [stored_points]")
return

/obj/item/device/radio/beacon/explosion_watcher/ex_act(severity)
return

/obj/item/device/radio/beacon/explosion_watcher/Initialize()
. = ..()
GLOB.explosion_watcher_list += src
targetBoom = rand(10,35)
stored_points = 250000 //6.1 perfect bombs

/obj/item/device/radio/beacon/explosion_watcher/Destroy()
GLOB.explosion_watcher_list -= src
return ..()

/obj/item/device/radio/beacon/explosion_watcher/proc/react_explosion(turf/epicenter, power)
power = round(power)
var/calculated_research_points = -1
for(var/obj/machinery/computer/rdconsole/RD in GLOB.computer_list)
if(RD.id == 1) // only core gets the science
var missed

missed = abs(power-targetBoom) * 8000 // each step away from the target will result in 8,000 points less, this is a range of 11.
if(stored_points >= 40000)
calculated_research_points = max(0,40000 - missed)
else
calculated_research_points = max(0,stored_points - missed)


stored_points -= calculated_research_points
RD.files.adjust_research_points(calculated_research_points)

if(calculated_research_points > 0 && stored_points)
autosay("Detected explosion with power level [power]. Expected explosion was [targetBoom]. Received [calculated_research_points] Research Points", name ,"Science")
if(0 >= stored_points)
autosay("Detected explosion with power level [power]. Expected explosion was [targetBoom]. No Additional Data Points Able To Gather", name ,"Science")
if(0 >= calculated_research_points)
autosay("Detected explosion with power level [power], Expected explosion was [targetBoom]. Test Results Outside Expected Range", name ,"Science")
targetBoom = rand(10,35)
autosay("Next expected power level is [targetBoom]", name ,"Science")

// Universal tool to get research points from autopsy reports, virus info reports, archeology reports, slime cores
/obj/item/device/science_tool
name = "science tool"
Expand Down
Loading
Loading