/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, "A magnetic storage ring containing [fuel]kg of [content ? content : "nothing"].") /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, "You feel very light, as if you might just float away...") 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("\The [M] eats the [content ? content : "empty canister"]!"), 1) src.injest(M)