From f321bcc914534f8f6e0eadb5cb003b6a7a82a233 Mon Sep 17 00:00:00 2001 From: "petethegoat@gmail.com" Date: Wed, 20 Jun 2012 12:41:11 +0000 Subject: [PATCH] Fixes for my last commit: Removed the AM engine code. This should be temporary. Moved asteroid/device.dm to unused. Readded biomass.dmi git-svn-id: http://tgstation13.googlecode.com/svn/trunk@3876 316c924e-a436-60f5-8080-3fe189b3f50e --- .../mob/living/carbon/human/inventory.dm | 6 +- code/modules/power/antimatter/computer.dm | 94 -------- code/modules/power/antimatter/engine.dm | 207 ------------------ code/modules/power/antimatter/fuel.dm | 100 --------- .../device.dm => unused/asteroiddevice.dm} | 0 icons/obj/biomass.dmi | Bin 0 -> 7246 bytes tgstation.dme | 5 - 7 files changed, 4 insertions(+), 408 deletions(-) delete mode 100644 code/modules/power/antimatter/computer.dm delete mode 100644 code/modules/power/antimatter/engine.dm delete mode 100644 code/modules/power/antimatter/fuel.dm rename code/{game/asteroid/device.dm => unused/asteroiddevice.dm} (100%) create mode 100644 icons/obj/biomass.dmi diff --git a/code/modules/mob/living/carbon/human/inventory.dm b/code/modules/mob/living/carbon/human/inventory.dm index 07d8d52e95b..437ca037f01 100644 --- a/code/modules/mob/living/carbon/human/inventory.dm +++ b/code/modules/mob/living/carbon/human/inventory.dm @@ -451,8 +451,10 @@ message = text("\red [] is trying to inject []!", source, target) if("pill") message = text("\red [] is trying to force [] to swallow []!", source, target, item) - if("fuel") - message = text("\red [source] is trying to force [target] to eat the [item:content]!") +// dear god this is all horrible, godspeed carn ;-; +// mport: i dunno if you care about this, but it's related to AM. -Pete +// if("fuel") +// message = text("\red [source] is trying to force [target] to eat the [item:content]!") if("drink") message = text("\red [] is trying to force [] to swallow a gulp of []!", source, target, item) if("dnainjector") diff --git a/code/modules/power/antimatter/computer.dm b/code/modules/power/antimatter/computer.dm deleted file mode 100644 index 3c36d2f0cf6..00000000000 --- a/code/modules/power/antimatter/computer.dm +++ /dev/null @@ -1,94 +0,0 @@ -//This file was auto-corrected by findeclaration.exe on 25.5.2012 20:42:33 - -/obj/machinery/computer/am_engine - name = "Antimatter Engine Console" - icon = 'stationobjs.dmi' - icon_state = "comm_computer" - req_access = list(access_engine) - var/engine_id = 0 - var/authenticated = 0 - var/obj/machinery/power/am_engine/engine/connected_E = null - var/obj/machinery/power/am_engine/injector/connected_I = null - var/state = STATE_DEFAULT - var/const/STATE_DEFAULT = 1 - var/const/STATE_INJECTOR = 2 - var/const/STATE_ENGINE = 3 - -/obj/machinery/computer/am_engine/New() - ..() - spawn( 24 ) - for(var/obj/machinery/power/am_engine/engine/E in world) - if(E.engine_id == src.engine_id) - src.connected_E = E - for(var/obj/machinery/power/am_engine/injector/I in world) - if(I.engine_id == src.engine_id) - src.connected_I = I - return - -/obj/machinery/computer/am_engine/Topic(href, href_list) - if(..()) - return - usr.machine = src - - if(!href_list["operation"]) - return - switch(href_list["operation"]) - // main interface - if("activate") - src.connected_E.engine_process() - if("engine") - src.state = STATE_ENGINE - if("injector") - src.state = STATE_INJECTOR - if("main") - src.state = STATE_DEFAULT - if("login") - var/mob/M = usr - var/obj/item/weapon/card/id/I = M.equipped() - if (I && istype(I)) - if(src.check_access(I)) - authenticated = 1 - if("deactivate") - src.connected_E.stopping = 1 - if("logout") - authenticated = 0 - - src.updateUsrDialog() - -/obj/machinery/computer/am_engine/attack_ai(var/mob/user as mob) - return src.attack_hand(user) - -/obj/machinery/computer/am_engine/attack_paw(var/mob/user as mob) - return src.attack_hand(user) - -/obj/machinery/computer/am_engine/attack_hand(var/mob/user as mob) - if(..()) - return - user.machine = src - var/dat = "Engine Computer" - switch(src.state) - if(STATE_DEFAULT) - if (src.authenticated) - dat += "
\[ Log Out \]
" - dat += "
\[ Engine Menu \]" - dat += "
\[ Injector Menu \]" - else - dat += "
\[ Log In \]" - if(STATE_INJECTOR) - if(src.connected_I.injecting) - dat += "
\[ Injecting \]
" - else - dat += "
\[ Injecting not in progress \]
" - if(STATE_ENGINE) - if(src.connected_E.stopping) - dat += "
\[ STOPPING \]" - else if(src.connected_E.operating && !src.connected_E.stopping) - dat += "
\[ Emergency Stop \]" - else - dat += "
\[ Activate Engine \]" - dat += "
Contents:
[src.connected_E.H_fuel]kg of Hydrogen
[src.connected_E.antiH_fuel]kg of Anti-Hydrogen
" - - dat += "
\[ [(src.state != STATE_DEFAULT) ? "Main Menu | " : ""]Close \]" - user << browse(dat, "window=communications;size=400x500") - onclose(user, "communications") - diff --git a/code/modules/power/antimatter/engine.dm b/code/modules/power/antimatter/engine.dm deleted file mode 100644 index 824e3fe0e89..00000000000 --- a/code/modules/power/antimatter/engine.dm +++ /dev/null @@ -1,207 +0,0 @@ -/obj/machinery/power/am_engine - icon = 'AM_Engine.dmi' - density = 1 - anchored = 1.0 - flags = ON_BORDER - -/obj/machinery/power/am_engine/bits - name = "Antimatter Engine" - icon_state = "1" - -/obj/machinery/power/am_engine/engine - name = "Antimatter Engine" - icon_state = "am_engine" - var/engine_id = 0 - var/H_fuel = 0 - var/antiH_fuel = 0 - var/operating = 0 - var/stopping = 0 - var/obj/machinery/power/am_engine/injector/connected = null - -/obj/machinery/power/am_engine/injector - name = "Injector" - icon_state = "injector" - var/engine_id = 0 - var/injecting = 0 - var/fuel = 0 - var/obj/machinery/power/am_engine/engine/connected = null - -//injector - -/obj/machinery/power/am_engine/injector/New() - ..() - spawn( 13 ) - var/loc = get_step(src, NORTH) - src.connected = locate(/obj/machinery/power/am_engine/engine, get_step(loc, NORTH)) - return - return - - -/obj/machinery/power/am_engine/injector/attackby(obj/item/weapon/fuel/F, mob/user) - if( (stat & BROKEN) || !connected) return - - if(istype(F, /obj/item/weapon/fuel/H)) - if(injecting) - user << "Theres already a fuel rod in the injector!" - return - user << "You insert the rod into the injector" - injecting = 1 - var/fuel = F.fuel - del(F) - spawn( 300 ) - injecting = 0 - new/obj/item/weapon/fuel(src.loc) - connected.H_fuel += fuel - - if(istype(F, /obj/item/weapon/fuel/antiH)) - if(injecting) - user << "Theres already a fuel rod in the injector!" - return - user << "You insert the rod into the injector" - injecting = 1 - var/fuel = F.fuel - del(F) - spawn( 300 ) - injecting = 0 - new /obj/item/weapon/fuel(src.loc) - connected.antiH_fuel += fuel - - return - - -//engine - - -/obj/machinery/power/am_engine/engine/New() - ..() - spawn( 7 ) - var/loc = get_step(src, SOUTH) - src.connected = locate(/obj/machinery/power/am_engine/injector, get_step(loc, SOUTH)) - return - return - - -/obj/machinery/power/am_engine/engine/proc/engine_go() - - if( (!src.connected) || (stat & BROKEN) ) - return - - if(!antiH_fuel || !H_fuel) - return - - operating = 1 - var/energy = 0 - - if(antiH_fuel == H_fuel) - var/mass = antiH_fuel + H_fuel - energy = convert2energy(mass) - H_fuel = 0 - antiH_fuel = 0 - else - var/residual_matter = modulus(H_fuel - antiH_fuel) - var/mass = antiH_fuel + H_fuel - residual_matter - energy = convert2energy(mass) - if( H_fuel > antiH_fuel ) - H_fuel = residual_matter - antiH_fuel = 0 - else - H_fuel = 0 - antiH_fuel = residual_matter - - for(var/mob/M in hearers(src, null)) - M.show_message(text("\red You hear a loud bang!")) - - //Q = k x (delta T) - - energy = energy*0.75 - operating = 0 - - //TODO: DEFERRED Heat tile - - return - - -/obj/machinery/power/am_engine/engine/proc/engine_process() - - do - if( (!src.connected) || (stat & BROKEN) ) - return - - if(!antiH_fuel || !H_fuel) - return - - if(operating) - return - - operating = 1 - - sleep(50) - - var/energy //energy from the reaction - var/H //residual matter if H - var/antiH //residual matter if antiH - var/mass //total mass - - if(antiH_fuel == H_fuel) //if they're equal then convert the whole mass to energy - mass = antiH_fuel + H_fuel - energy = convert2energy(mass) - - else //else if they're not equal determine which isn't equal - //and set it equal to either H or antiH so we don't lose anything - - var/residual_matter = modulus(H_fuel - antiH_fuel) - mass = antiH_fuel + H_fuel - residual_matter - energy = convert2energy(mass) - - if( H_fuel > antiH_fuel ) - H = residual_matter - else - antiH = residual_matter - - - if(energy > convert2energy(8e-12)) //TOO MUCH ENERGY - for(var/mob/M in hearers(src, null)) - M.show_message(text("\red You hear a loud whirring!")) - sleep(20) - - //Q = k x (delta T) - //Too much energy so machine panics and dissapates half of it as heat - //The rest of the energetic photons then form into H and anti H particles again! - - H_fuel -= H - antiH_fuel -= antiH - antiH_fuel = antiH_fuel/2 - H_fuel = H_fuel/2 - - energy = convert2energy(H_fuel + antiH_fuel) - - H_fuel += H - antiH_fuel += antiH - - if(energy > convert2energy(8e-12)) //FAR TOO MUCH ENERGY STILL - for(var/mob/M in hearers(src, null)) - M.show_message(text("\red BANG!")) - new /obj/effect/bhole(src.loc) - - else //this amount of energy is okay so it does the proper output thing - - sleep(60) - //E = Pt - //Lets say its 86% efficient - var/output = 0.86*energy/20 - add_avail(output) - //yeah the machine realises that something isn't right and accounts for it if H or antiH - H_fuel -= H - antiH_fuel -= antiH - antiH_fuel = antiH_fuel/4 - H_fuel = H_fuel/4 - H_fuel += H - antiH_fuel += antiH - operating = 0 - sleep(100) - - while(!stopping) - - stopping = 0 - - return \ No newline at end of file diff --git a/code/modules/power/antimatter/fuel.dm b/code/modules/power/antimatter/fuel.dm deleted file mode 100644 index 71b22d32647..00000000000 --- a/code/modules/power/antimatter/fuel.dm +++ /dev/null @@ -1,100 +0,0 @@ -/obj/item/weapon/fuel - name = "Magnetic Storage Ring" - desc = "A magnetic storage ring." - icon = 'items.dmi' - icon_state = "rcdammo" - opacity = 0 - density = 0 - anchored = 0.0 - var/fuel = 0 - var/s_time = 1.0 - var/content = null - -/obj/item/weapon/fuel/H - name = "Hydrogen storage ring" - content = "Hydrogen" - fuel = 1e-12 //pico-kilogram - -/obj/item/weapon/fuel/antiH - name = "Anti-Hydrogen storage ring" - content = "Anti-Hydrogen" - fuel = 1e-12 //pico-kilogram - -/obj/item/weapon/fuel/attackby(obj/item/weapon/fuel/F, mob/user) - ..() - if(istype(src, /obj/item/weapon/fuel/antiH)) - if(istype(F, /obj/item/weapon/fuel/antiH)) - src.fuel += F.fuel - F.fuel = 0 - user << "You have added the anti-Hydrogen to the storage ring, it now contains [src.fuel]kg" - if(istype(F, /obj/item/weapon/fuel/H)) - src.fuel += F.fuel - del(F) - src:annihilation(src.fuel) - if(istype(src, /obj/item/weapon/fuel/H)) - if(istype(F, /obj/item/weapon/fuel/H)) - src.fuel += F.fuel - F.fuel = 0 - user << "You have added the Hydrogen to the storage ring, it now contains [src.fuel]kg" - if(istype(F, /obj/item/weapon/fuel/antiH)) - src.fuel += F.fuel - del(src) - F:annihilation(F.fuel) - -/obj/item/weapon/fuel/antiH/proc/annihilation(var/mass) - - var/strength = convert2energy(mass) - - if (strength < 773.0) - var/turf/T = get_turf(src.loc) - - if (strength > (450+T0C)) - explosion(T, 0, 1, 2, 4) - else - if (strength > (300+T0C)) - explosion(T, 0, 0, 2, 3) - - del(src) - return - - var/turf/ground_zero = get_turf(loc) - - var/ground_zero_range = round(strength / 387) - explosion(ground_zero, ground_zero_range, ground_zero_range*2, ground_zero_range*3, ground_zero_range*4) - - //SN src = null - del(src) - return - - -/obj/item/weapon/fuel/examine() - set src in view(1) - if(usr && !usr.stat) - usr << "A magnetic storage ring, it contains [fuel]kg of [content ? content : "nothing"]." - -/obj/item/weapon/fuel/proc/injest(mob/M as mob) - switch(content) - if("Anti-Hydrogen") - M.gib() - if("Hydrogen") - M << "\blue You feel very light, as if you might just float away..." - del(src) - return - -/obj/item/weapon/fuel/attack(mob/M as mob, mob/user as mob) - if (user != M) - var/obj/effect/equip_e/human/O = new /obj/effect/equip_e/human( ) - O.source = user - O.target = M - O.item = src - O.s_loc = user.loc - O.t_loc = M.loc - O.place = "fuel" - M.requests += O - spawn( 0 ) - O.process() - return - else - for(var/mob/O in viewers(M, null)) - O.show_message(text("\red [M] ate the [content ? content : "empty canister"]!"), 1) - src.injest(M) diff --git a/code/game/asteroid/device.dm b/code/unused/asteroiddevice.dm similarity index 100% rename from code/game/asteroid/device.dm rename to code/unused/asteroiddevice.dm diff --git a/icons/obj/biomass.dmi b/icons/obj/biomass.dmi new file mode 100644 index 0000000000000000000000000000000000000000..ffb133f7682c0ba4749e93bcdcdf9332099c128e GIT binary patch literal 7246 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 bMZl{5AFHX=>k9M_LV&umwo