Files
Aurora.3/code/modules/power/antimatter/fuel.dm
Geeves 33ad8096fb The Great Spanning (#9320)
This PR get rid of all (most of) the span("thing", spans and replaces them with the SPAN_THING( variant, which has gained more popularity recently.
2020-07-12 15:53:28 +03:00

104 lines
2.7 KiB
Plaintext

/obj/item/fuel
name = "nagnetic storage ring"
desc = "A magnetic storage ring."
icon = 'icons/obj/tools.dmi'
icon_state = "rcdammo"
opacity = 0
density = 0
anchored = 0.0
var/fuel = 0
var/s_time = 1.0
var/content = null
/obj/item/fuel/H
name = "hydrogen storage ring"
content = "Hydrogen"
fuel = 1e-12 //pico-kilogram
/obj/item/fuel/antiH
name = "anti-hydrogen storage ring"
content = "Anti-Hydrogen"
fuel = 1e-12 //pico-kilogram
/obj/item/fuel/attackby(obj/item/fuel/F, mob/user)
..()
if(istype(src, /obj/item/fuel/antiH))
if(istype(F, /obj/item/fuel/antiH))
src.fuel += F.fuel
F.fuel = 0
to_chat(user, "You add the anti-Hydrogen to the storage ring. It now contains [src.fuel]kg.")
if(istype(F, /obj/item/fuel/H))
src.fuel += F.fuel
qdel(F)
F = null
src:annihilation(src.fuel)
if(istype(src, /obj/item/fuel/H))
if(istype(F, /obj/item/fuel/H))
src.fuel += F.fuel
F.fuel = 0
to_chat(user, "You add the Hydrogen to the storage ring. It now contains [src.fuel]kg")
if(istype(F, /obj/item/fuel/antiH))
src.fuel += F.fuel
qdel(src)
F:annihilation(F.fuel)
/obj/item/fuel/antiH/proc/annihilation(var/mass)
var/strength = convert2energy(mass)
if (strength < 773.0)
var/turf/T = get_turf(src)
if (strength > (450+T0C))
explosion(T, 0, 1, 2, 4)
else
if (strength > (300+T0C))
explosion(T, 0, 0, 2, 3)
qdel(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
qdel(src)
return
/obj/item/fuel/examine()
..()
to_chat(user, "<span class='info'>A magnetic storage ring containing [fuel]kg of [content ? content : "nothing"].</span>")
/obj/item/fuel/proc/injest(mob/M as mob)
switch(content)
if("Anti-Hydrogen")
to_chat(mob, SPAN_NOTICE("That was not a very bright idea."))
M.gib()
if("Hydrogen")
to_chat(M, "<span class='notice'>You feel very light, as if you might just float away...</span>")
qdel(src)
return
/obj/item/fuel/attack(mob/M as mob, mob/user as mob)
if (user != M)
//If you come from the distant future and happen to find this unincluded and derelict file, you may be wondering what this is. In truth, it's better that you don't know.
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("<span class='warning'>\The [M] eats the [content ? content : "empty canister"]!</span>"), 1)
src.injest(M)