Merge branch 'master' of https://github.com/ParadiseSS13/Paradise into STILLALOTOFBLOOD

This commit is contained in:
Aurorablade
2015-07-08 18:16:25 -04:00
215 changed files with 850 additions and 888 deletions
+2 -2
View File
@@ -70,8 +70,8 @@
else if(A.a_right == src)
A.a_right = null
src.holder = null
..()
return ..()
pulsed(var/radio = 0)
if(holder && (wires & WIRE_RECEIVE))
activate()
+1 -1
View File
@@ -29,7 +29,7 @@
a_left.holder = null
if(a_right)
a_right.holder = null
..()
return ..()
attach(var/obj/item/device/D, var/obj/item/device/D2, var/mob/user)
if((!D)||(!D2)) return 0
+2 -2
View File
@@ -10,8 +10,8 @@
flags = CONDUCT
/obj/item/assembly/shock_kit/Destroy()
del(part1)
del(part2)
qdel(part1)
qdel(part2)
return ..()
/obj/item/assembly/shock_kit/attackby(obj/item/weapon/W as obj, mob/user as mob, params)
+2 -1
View File
@@ -1,6 +1,7 @@
/obj/machinery/computer/general_air_control/atmos_automation
icon = 'icons/obj/computer.dmi'
icon_state = "aac"
icon_screen = "area_atmos"
icon_keyboard = "atmos_key"
circuit = "/obj/item/weapon/circuitboard/atmos_automation"
req_one_access_txt = "24;10"
Mtoollink = 1
+2 -3
View File
@@ -407,11 +407,11 @@ datum/preferences
dat += "</center></body></html>"
// user << browse(dat, "window=preferences;size=560x580")
var/datum/browser/popup = new(user, "preferences", "<div align='center'>Character Setup</div>", 610, 650)
var/datum/browser/popup = new(user, "preferences", "<div align='center'>Character Setup</div>", 640, 750)
popup.set_content(dat)
popup.open(0)
proc/SetChoices(mob/user, limit = 14, list/splitJobs = list("Chief Engineer","Research Director","Captain"), width = 1025, height = 800)
proc/SetChoices(mob/user, limit = 12, list/splitJobs = list("Civilian","Research Director","AI","Bartender"), width = 755, height = 780)
if(!job_master)
return
@@ -444,7 +444,6 @@ datum/preferences
for(var/i = 0, i < (limit - index), i += 1)
HTML += "<tr bgcolor='[lastJob.selection_color]'><td width='60%' align='right'>&nbsp</td><td>&nbsp</td></tr>"
HTML += "</table></td><td width='20%'><table width='100%' cellpadding='1' cellspacing='0'>"
HTML += "</table></td><td width='20%'><table width='100%' cellpadding='1' cellspacing='0'>"
index = 0
HTML += "<tr bgcolor='[job.selection_color]'><td width='60%' align='right'>"
@@ -69,6 +69,24 @@
src << "You will [(prefs.toggles & CHAT_PRAYER) ? "now" : "no longer"] see prayerchat."
feedback_add_details("admin_verb","TP") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
/client/verb/togglescoreboard()
set name = "Hide/Display End Round Scoreboard"
set category = "Preferences"
set desc = "Toggles displaying end of round scoreboard"
prefs.toggles ^= DISABLE_SCOREBOARD
prefs.save_preferences(src)
src << "You will [(prefs.toggles & DISABLE_SCOREBOARD) ? "no longer" : "now"] see the end of round scoreboard."
feedback_add_details("admin_verb","TScoreboard") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
/client/verb/togglekarmareminder()
set name = "Hide/Display End Round Karma Reminder"
set category = "Preferences"
set desc = "Toggles displaying end of round karma reminder"
prefs.toggles ^= DISABLE_KARMA_REMINDER
prefs.save_preferences(src)
src << "You will [(prefs.toggles & DISABLE_KARMA_REMINDER) ? "no longer" : "now"] see the end of round karma reminder."
feedback_add_details("admin_verb","TKarmabugger") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
/client/verb/toggletitlemusic()
set name = "Hear/Silence LobbyMusic"
set category = "Preferences"
+3 -3
View File
@@ -180,13 +180,13 @@
else
stat &= ~NOPOWER
Del()
Destroy()
if(istype(loc,/obj/item/device/laptop))
var/obj/O = loc
spawn(5)
if(O)
del O
..()
qdel(O)
return ..()
AltClick()
+10
View File
@@ -75,6 +75,16 @@
icon_state = "zeldacrowbar"
item_state = "crowbar"
/obj/item/weapon/claymore/fluff //MrBarrelrolll: Maximus Greenwood
name = "Greenwood's Blade"
desc = "A replica claymore with strange markings scratched into the blade."
force = 5
sharp = 0
edge = 0
/obj/item/weapon/claymore/fluff/IsShield()
return 0
//////////////////////////////////
//////////// Clothing ////////////
//////////////////////////////////
+3 -3
View File
@@ -377,10 +377,10 @@
T.pixel_y = (ingredients.len * 2)+1
overlays += T
/obj/item/weapon/reagent_containers/food/snacks/customizable/Del()
/obj/item/weapon/reagent_containers/food/snacks/customizable/Destroy()
for(var/obj/item/O in ingredients)
del(O)
..()
qdel(O)
return ..()
/obj/item/weapon/reagent_containers/food/snacks/customizable/examine()
..()
@@ -25,6 +25,9 @@
. = ..()
verbs.Cut()
var/turf/T = loc //If this runtimes atleast we'll know what's creating overlays outside of turfs.
T.luminosity = 0
/atom/movable/lighting_overlay/proc/get_clamped_lum(var/minlum = 0, var/maxlum = 1)
var/lum = max(lum_r, lum_g, lum_b)
if(lum <= minlum)
+1 -1
View File
@@ -89,7 +89,7 @@ var/list/image/ghost_darkness_images = list() //this is a list of images for thi
/mob/dead/observer/Destroy()
if (ghostimage)
ghost_darkness_images -= ghostimage
del(ghostimage)
qdel(ghostimage)
ghostimage = null
updateallghostimages()
return ..()
+2 -2
View File
@@ -9,9 +9,9 @@
..()
processing_objects.Add(src)
/obj/item/weapon/holder/Del()
/obj/item/weapon/holder/Destroy()
processing_objects.Remove(src)
..()
return ..()
/obj/item/weapon/holder/process()
@@ -165,3 +165,12 @@
if(3)
brainmob.emp_damage += rand(0,10)
..()
/obj/item/device/mmi/Destroy()
if(isrobot(loc))
var/mob/living/silicon/robot/borg = loc
borg.mmi = null
if(brainmob)
qdel(brainmob)
brainmob = null
return ..()
@@ -20,7 +20,7 @@
if(stat!=DEAD) //If not dead.
death(1) //Brains can die again. AND THEY SHOULD AHA HA HA HA HA HA
ghostize() //Ghostize checks for key so nothing else is necessary.
..()
return ..()
say_understands(var/other)//Goddamn is this hackish, but this say code is so odd
if (istype(other, /mob/living/silicon/ai))
@@ -88,4 +88,10 @@
name = "chem"
desc = "A tightly furled roll of paper, covered with indecipherable runes."
icon = 'icons/obj/wizard.dmi'
icon_state = "scroll"
icon_state = "scroll"
/obj/item/organ/brain/Destroy() //copypasted from MMIs.
if(brainmob)
qdel(brainmob)
brainmob = null
return ..()
+7
View File
@@ -6,6 +6,13 @@ mob/living
update_hud()
return
/mob/living/carbon/Destroy()
for(var/atom/movable/guts in internal_organs)
qdel(guts)
for(var/atom/movable/food in stomach_contents)
qdel(food)
return ..()
/mob/living/carbon/Life()
..()
@@ -50,6 +50,12 @@
dna.ready_dna(src)
UpdateAppearance()
/mob/living/carbon/human/Destroy()
for(var/atom/movable/organelle in organs)
qdel(organelle)
organs = list()
return ..()
/mob/living/carbon/human/dummy
real_name = "Test Dummy"
status_flags = GODMODE|CANPUSH
@@ -118,8 +118,6 @@ var/global/list/brutefireloss_overlays = list("1" = image("icon" = 'icons/mob/sc
handle_pain()
handle_medical_side_effects()
handle_heartbeat()
handle_heartattack()
+4
View File
@@ -1,4 +1,8 @@
/mob/living/Destroy()
..()
return QDEL_HINT_HARDDEL_NOW
/mob/living/Life()
..()
if (notransform) return
+2 -2
View File
@@ -243,7 +243,7 @@ var/list/ai_verbs_default = list(
/obj/machinery/ai_powersupply/New(var/mob/living/silicon/ai/ai=null)
powered_ai = ai
if(isnull(powered_ai))
Del()
qdel(src)
loc = powered_ai.loc
use_power(1) // Just incase we need to wake up the power system.
@@ -252,7 +252,7 @@ var/list/ai_verbs_default = list(
/obj/machinery/ai_powersupply/process()
if(!powered_ai || powered_ai.stat & DEAD)
Del()
qdel(src)
if(!powered_ai.anchored)
loc = powered_ai.loc
use_power = 0
@@ -26,7 +26,7 @@
/mob/aiEye/Destroy()
if (ghostimage)
ghost_darkness_images -= ghostimage
del(ghostimage)
qdel(ghostimage)
ghostimage = null;
updateallghostimages()
return ..()
@@ -100,10 +100,10 @@
spawn(5)
eyeobj.loc = src.loc
/mob/living/silicon/ai/Del()
/mob/living/silicon/ai/Destroy()
eyeobj.ai = null
del(eyeobj) // No AI, no Eye
..()
qdel(eyeobj) // No AI, no Eye
return ..()
/atom/proc/move_camera_by_click()
if(istype(usr, /mob/living/silicon/ai))
@@ -23,10 +23,10 @@
// STRUCTURES
/obj/structure/Del()
/obj/structure/Destroy()
if(ticker)
cameranet.updateVisibility(src)
..()
return ..()
/obj/structure/New()
..()
@@ -35,10 +35,10 @@
// EFFECTS
/obj/effect/Del()
/obj/effect/Destroy()
if(ticker)
cameranet.updateVisibility(src)
..()
return ..()
/obj/effect/New()
..()
@@ -99,11 +99,11 @@
if(open_networks.len) //If there is at least one open network, chunk is available for AI usage.
cameranet.addCamera(src)
/obj/machinery/camera/Del()
/obj/machinery/camera/Destroy()
cameranet.cameras -= src
var/list/open_networks = difflist(network,restricted_camera_networks)
if(open_networks.len)
cameranet.removeCamera(src)
..()
return ..()
#undef BORG_CAMERA_BUFFER
@@ -24,7 +24,7 @@
/datum/robot_component/proc/destroy()
if(wrapped)
del wrapped
qdel(wrapped)
wrapped = new/obj/item/broken_device
+10 -2
View File
@@ -174,11 +174,19 @@ var/list/robot_verbs_default = list(
//If there's an MMI in the robot, have it ejected when the mob goes away. --NEO
//Improved /N
/mob/living/silicon/robot/Destroy()
if(mmi)//Safety for when a cyborg gets dust()ed. Or there is no MMI inside.
if(mmi && mind)//Safety for when a cyborg gets dust()ed. Or there is no MMI inside.
var/turf/T = get_turf(loc)//To hopefully prevent run time errors.
if(T) mmi.loc = T
if(mind) mind.transfer_to(mmi.brainmob)
if(mmi.brainmob)
mind.transfer_to(mmi.brainmob)
mmi.update_icon()
else
src << "<span class='boldannounce'>Oops! Something went very wrong, your MMI was unable to receive your mind. You have been ghosted. Please make a bug report so we can fix this bug.</span>"
ghostize()
error("A borg has been destroyed, but its MMI lacked a brainmob, so the mind could not be transferred. Player: [ckey].")
mmi = null
if(connected_ai)
connected_ai.connected_robots -= src
return ..()
/mob/living/silicon/robot/proc/pick_module()
@@ -216,8 +216,8 @@
held_item = null
robogibs(src.loc, viruses)
src.Destroy()
return
qdel(src)
//Cannibalized from the parrot mob. ~Zuhayr
/mob/living/simple_animal/spiderbot/verb/drop_held_item()
@@ -74,11 +74,10 @@
var/obj/parrot_perch = null
var/obj/desired_perches = list(/obj/structure/computerframe, /obj/structure/displaycase, \
/obj/structure/filingcabinet, /obj/machinery/teleport, \
/obj/machinery/computer, /obj/machinery/clonepod, \
/obj/machinery/suit_storage_unit, /obj/machinery/clonepod, \
/obj/machinery/dna_scannernew, /obj/machinery/telecomms, \
/obj/machinery/nuclearbomb, /obj/machinery/particle_accelerator, \
/obj/machinery/recharge_station, /obj/machinery/smartfridge, \
/obj/machinery/suit_storage_unit)
/obj/machinery/recharge_station, /obj/machinery/smartfridge)
//Parrots are kleptomaniacs. This variable ... stores the item a parrot is holding.
var/obj/item/held_item = null
+3
View File
@@ -2,6 +2,9 @@
mob_list -= src
dead_mob_list -= src
living_mob_list -= src
qdel(hud_used)
if(mind && mind.current == src)
spellremove(src)
ghostize()
return ..()
+1 -6
View File
@@ -404,18 +404,13 @@
/obj/item/weapon/grab/dropped()
qdel(src)
/obj/item/weapon/grab/Del()
//make sure the grabbed_by list doesn't fill up with nulls
if(affecting) affecting.grabbed_by -= src
..()
/obj/item/weapon/grab/Destroy()
if(affecting)
affecting.pixel_x = 0
affecting.pixel_y = 0 //used to be an animate, not quick enough for del'ing
affecting.layer = initial(affecting.layer)
affecting.grabbed_by -= src
del(hud)
qdel(hud)
return ..()
#undef EAT_TIME_XENO
+13 -13
View File
@@ -29,38 +29,38 @@ mob/spirit/is_active()
if (client && client.inactivity <= 10 * 60 * 10)
return TRUE
return FALSE
mob/spirit/New()
sight |= SEE_TURFS | SEE_MOBS | SEE_OBJS | SEE_SELF
see_invisible = SEE_SPIRITS
see_in_dark = 100
loc = pick(latejoin)
// no nameless spirits
if (!name)
name = "Boogyman"
spirits+=src
..()
mob/spirit/Del()
mob/spirit/Destroy()
spirits-=src
..()
return ..()
mob/spirit/Topic(href, href_list)
if(usr != src)
return
..()
usr << "Spirit Href = [href]"
for (var/tempref in href_list)
usr << "Spirit href list [tempref] = [href_list[tempref]]"
if (href_list["track"])
usr << "Got to tracking."
var/mob/target = locate(href_list["track"]) in mob_list
+2 -3
View File
@@ -23,11 +23,10 @@ var/obj/cult_viewpoint/list/cult_viewpoints = list()
..()
/obj/cult_viewpoint/Del()
/obj/cult_viewpoint/Destroy()
processing_objects.Remove(src)
cult_viewpoints-=src
..()
return
return ..()
// VERBS
-6
View File
@@ -73,12 +73,6 @@
spark_system.set_up(5, 0, src)
spark_system.attach(src)
/obj/item/weapon/katana/energy/Del()
qdel(spark_system)
spark_system = null
..()
/obj/item/weapon/katana/energy/Destroy()
qdel(spark_system)
spark_system = null
+3
View File
@@ -1330,6 +1330,9 @@ obj/machinery/power/apc/proc/autoset(var/val, var/on)
area.power_change()
if(occupant)
malfvacate(1)
qdel(wires)
if(cell)
qdel(cell)
return ..()
/obj/machinery/power/apc/proc/shock(mob/user, prb)
+1 -1
View File
@@ -201,7 +201,7 @@
/obj/structure/cable/singularity_pull(S, current_size)
if(current_size >= STAGE_FIVE)
Destroy()
qdel(src)
// the cable coil object, used for laying cable
@@ -344,10 +344,10 @@ field_generator power level display
//I want to avoid using global variables.
spawn(1)
var/temp = 1 //stops spam
for(var/obj/singularity/O in machines)
for(var/obj/singularity/O in singularities)
if(O.last_warning && temp)
if((world.time - O.last_warning) > 50) //to stop message-spam
temp = 0
msg_admin_attack("A singulo exists and a containment field has failed.",1)
investigate_log("has <font color='red'>failed</font> whilst a singulo exists.","singulo")
O.last_warning = world.time
O.last_warning = world.time
+1 -1
View File
@@ -27,7 +27,7 @@
investigate_log("[admin_message] at [x],[y],[z]","singulo")
new /obj/singularity/(T, 50)
if(src) del(src)
if(src) qdel(src)
/obj/machinery/the_singularitygen/attackby(obj/item/W, mob/user, params)
if(istype(W, /obj/item/weapon/wrench))
@@ -8,15 +8,7 @@
anchored = 1
density = 1
var/movement_range = 10
var/energy = 10 //energy in eV
var/mega_energy = 0 //energy in MeV
var/frequency = 1
var/ionizing = 0
var/particle_type
var/additional_particles = 0
var/turf/target
var/turf/source
var/movetotarget = 1
var/energy = 10
/obj/effect/accelerated_particle/weak
movement_range = 8
@@ -26,10 +18,15 @@
movement_range = 15
energy = 15
/obj/effect/accelerated_particle/powerful
movement_range = 20
energy = 50
/obj/effect/accelerated_particle/New(loc, dir = 2)
src.loc = loc
src.dir = dir
if(movement_range > 20)
movement_range = 20
spawn(0)
@@ -43,22 +40,6 @@
toxmob(A)
if((istype(A,/obj/machinery/the_singularitygen))||(istype(A,/obj/singularity/)))
A:energy += energy
/*
else if( istype(A,/obj/effect/rust_particle_catcher) )
var/obj/effect/rust_particle_catcher/collided_catcher = A
if(particle_type && particle_type != "neutron")
if(collided_catcher.AddParticles(particle_type, 1 + additional_particles))
collided_catcher.parent.AddEnergy(energy,mega_energy)
del (src)
else if( istype(A,/obj/machinery/power/rust_core) )
var/obj/machinery/power/rust_core/collided_core = A
if(particle_type && particle_type != "neutron")
if(collided_core.AddParticles(particle_type, 1 + additional_particles))
var/energy_loss_ratio = abs(collided_core.owned_field.frequency - frequency) / 1e9
collided_core.owned_field.mega_energy += mega_energy - mega_energy * energy_loss_ratio
collided_core.owned_field.energy += energy - energy * energy_loss_ratio
del (src)
*/
return
@@ -75,35 +56,17 @@
/obj/effect/accelerated_particle/proc/toxmob(var/mob/living/M)
/*var/radiation = (energy*2)
if(istype(M,/mob/living/carbon/human))
if(M:wear_suit) //TODO: check for radiation protection
radiation = round(radiation/2,1)
if(istype(M,/mob/living/carbon/monkey))
if(M:wear_suit) //TODO: check for radiation protection
radiation = round(radiation/2,1)*/
M.apply_effect((energy*6),IRRADIATE,0)
M.updatehealth()
//M << "\red You feel odd."
return
/obj/effect/accelerated_particle/proc/move(var/lag)
if(target)
if(movetotarget)
if(!step_towards(src,target))
src.loc = get_step(src, get_dir(src,target))
if(get_dist(src,target) < 1)
movetotarget = 0
else
if(!step(src, get_step_away(src,source)))
src.loc = get_step(src, get_step_away(src,source))
else
if(!step(src,dir))
src.loc = get_step(src,dir)
if(!step(src,dir))
src.loc = get_step(src,dir)
movement_range--
if(movement_range <= 0)
del(src)
qdel(src)
else
sleep(lag)
move(lag)
@@ -71,6 +71,12 @@ So, hopefully this is helpful if any more icons are to be added/changed/wonderin
var/strength = null
var/desc_holder = null
/obj/structure/particle_accelerator/Destroy()
construction_state = 0
if(master)
master.part_scan()
return ..()
/obj/structure/particle_accelerator/end_cap
name = "Alpha Particle Generation Array"
desc_holder = "This is where Alpha particles are generated from \[REDACTED\]"
@@ -87,7 +93,9 @@ So, hopefully this is helpful if any more icons are to be added/changed/wonderin
set category = "Object"
set src in oview(1)
if (src.anchored || usr:stat)
if(usr.stat || !usr.canmove || usr.restrained())
return
if (src.anchored)
usr << "It is fastened to the floor!"
return 0
src.dir = turn(src.dir, 270)
@@ -98,7 +106,9 @@ So, hopefully this is helpful if any more icons are to be added/changed/wonderin
set category = "Object"
set src in oview(1)
if (src.anchored || usr:stat)
if(usr.stat || !usr.canmove || usr.restrained())
return
if (src.anchored)
usr << "It is fastened to the floor!"
return 0
src.dir = turn(src.dir, 90)
@@ -119,7 +129,6 @@ So, hopefully this is helpful if any more icons are to be added/changed/wonderin
..()
return
/obj/structure/particle_accelerator/attackby(obj/item/W, mob/user, params)
if(istool(W))
if(src.process_tool_hit(W,user))
@@ -134,6 +143,7 @@ So, hopefully this is helpful if any more icons are to be added/changed/wonderin
master.toggle_power()
investigate_log("was moved whilst active; it <font color='red'>powered down</font>.","singulo")
/obj/structure/particle_accelerator/ex_act(severity)
switch(severity)
if(1.0)
@@ -153,7 +163,7 @@ So, hopefully this is helpful if any more icons are to be added/changed/wonderin
/obj/structure/particle_accelerator/blob_act()
if(prob(50))
del(src)
qdel(src)
return
@@ -206,7 +216,7 @@ So, hopefully this is helpful if any more icons are to be added/changed/wonderin
switch(src.construction_state)//TODO:Might be more interesting to have it need several parts rather than a single list of steps
if(0)
if(iswrench(O))
if(iswrench(O) && !isinspace())
playsound(src.loc, 'sound/items/Ratchet.ogg', 75, 1)
src.anchored = 1
user.visible_message("[user.name] secures the [src.name] to the floor.", \
@@ -220,10 +230,14 @@ So, hopefully this is helpful if any more icons are to be added/changed/wonderin
"You remove the external bolts.")
temp_state--
else if(iscoil(O))
if(O:use(1,user))
var/obj/item/stack/cable_coil/C = O
if(C.use(1))
user.visible_message("[user.name] adds wires to the [src.name].", \
"You add some wires.")
temp_state++
else
user << "<span class='warning'>You need one length of cable to wire the [src.name]!</span>"
return
if(2)
if(iswirecutter(O))//TODO:Shock user if its on?
user.visible_message("[user.name] removes some wires from the [src.name].", \
@@ -273,7 +287,9 @@ So, hopefully this is helpful if any more icons are to be added/changed/wonderin
set category = "Object"
set src in oview(1)
if (src.anchored || usr:stat)
if(usr.stat || !usr.canmove || usr.restrained())
return
if (src.anchored)
usr << "It is fastened to the floor!"
return 0
src.dir = turn(src.dir, 270)
@@ -284,7 +300,9 @@ So, hopefully this is helpful if any more icons are to be added/changed/wonderin
set category = "Object"
set src in oview(1)
if (src.anchored || usr:stat)
if(usr.stat || !usr.canmove || usr.restrained())
return
if (src.anchored)
usr << "It is fastened to the floor!"
return 0
src.dir = turn(src.dir, 90)
@@ -308,7 +326,6 @@ So, hopefully this is helpful if any more icons are to be added/changed/wonderin
..()
return
/obj/machinery/particle_accelerator/attackby(obj/item/W, mob/user, params)
if(istool(W))
if(src.process_tool_hit(W,user))
@@ -335,7 +352,7 @@ So, hopefully this is helpful if any more icons are to be added/changed/wonderin
/obj/machinery/particle_accelerator/blob_act()
if(prob(50))
del(src)
qdel(src)
return
@@ -1,7 +1,7 @@
//This file was auto-corrected by findeclaration.exe on 25.5.2012 20:42:33
/obj/machinery/particle_accelerator/control_box
name = "Particle Accelerator Control Computer"
name = "Particle Accelerator Control Console"
desc = "This controls the density of the particles."
icon = 'icons/obj/machines/particle_accelerator.dmi'
icon_state = "control_box"
@@ -26,6 +26,10 @@
connected_parts = list()
..()
/obj/machinery/particle_accelerator/control_box/Destroy()
if(active)
toggle_power()
return ..()
/obj/machinery/particle_accelerator/control_box/attack_hand(mob/user as mob)
if(construction_state >= 3)
@@ -87,8 +91,10 @@
if(href_list["togglep"])
if(!wires.IsIndexCut(PARTICLE_TOGGLE_WIRE))
src.toggle_power()
else if(href_list["scan"])
src.part_scan()
else if(href_list["strengthup"])
if(!wires.IsIndexCut(PARTICLE_STRENGTH_WIRE))
add_strength()
@@ -233,9 +239,8 @@
user.set_machine(src)
var/dat = ""
dat += "Particle Accelerator Control Panel<BR>"
dat += "<A href='?src=\ref[src];close=1'>Close</A><BR><BR>"
dat += "Status:<BR>"
dat += "<h3>Status</h3>"
if(!assembled)
dat += "Unable to detect all parts!<BR>"
dat += "<A href='?src=\ref[src];scan=1'>Run Scan</A><BR><BR>"
@@ -250,6 +255,10 @@
dat += "Particle Strength: [src.strength] "
dat += "<A href='?src=\ref[src];strengthdown=1'>--</A>|<A href='?src=\ref[src];strengthup=1'>++</A><BR><BR>"
user << browse(dat, "window=pacontrol;size=420x500")
onclose(user, "pacontrol")
//user << browse(dat, "window=pacontrol;size=420x500")
//onclose(user, "pacontrol")
var/datum/browser/popup = new(user, "pacontrol", name, 420, 500)
popup.set_content(dat)
popup.set_title_image(user.browse_rsc_icon(src.icon, src.icon_state))
popup.open()
return
@@ -43,6 +43,8 @@
A = new/obj/effect/accelerated_particle(T, dir)
if(2)
A = new/obj/effect/accelerated_particle/strong(T, dir)
if(3)
A = new/obj/effect/accelerated_particle/powerful(T, dir)
if(A)
A.dir = src.dir
return 1
@@ -30,6 +30,7 @@
/obj/singularity/New(loc, var/starting_energy = 50, var/temp = 0)
//CARN: admin-alert for chuckle-fuckery.
singularities += src
admin_investigate_setup()
src.energy = starting_energy
@@ -43,6 +44,7 @@
/obj/singularity/Destroy()
processing_objects.Remove(src)
singularities -= src
return ..()
/obj/singularity/Move(atom/newloc, direct)
@@ -72,7 +72,7 @@
/obj/machinery/power/supermatter_shard/Destroy()
investigate_log("has been destroyed.", "supermatter")
qdel(radio)
. = ..()
return ..()
/obj/machinery/power/supermatter_shard/proc/explode()
investigate_log("has exploded.", "supermatter")
+2 -2
View File
@@ -20,9 +20,9 @@
processing_objects.Add(src)
last_regen = world.time
/obj/item/weapon/gun/launcher/spikethrower/Del()
/obj/item/weapon/gun/launcher/spikethrower/Destroy()
processing_objects.Remove(src)
..()
return ..()
/obj/item/weapon/gun/launcher/spikethrower/process()
@@ -135,7 +135,7 @@ obj/item/weapon/gun/energy/laser/retro
Destroy()
processing_objects.Remove(src)
..()
return ..()
process()
@@ -172,7 +172,7 @@ obj/item/weapon/gun/energy/laser/retro
Destroy()
processing_objects.Remove(src)
..()
return ..()
process()
@@ -54,7 +54,7 @@
Destroy()
processing_objects.Remove(src)
..()
return ..()
process()
@@ -48,9 +48,9 @@
..()
processing_objects.Add(src)
/obj/item/weapon/gun/energy/floragun/Del()
/obj/item/weapon/gun/energy/floragun/Destroy()
processing_objects.Remove(src)
..()
return ..()
/obj/item/weapon/gun/energy/floragun/process()
charge_tick++
@@ -109,7 +109,7 @@
Destroy()
processing_objects.Remove(src)
..()
return ..()
process()
charge_tick++
@@ -19,7 +19,7 @@
Destroy()
processing_objects.Remove(src)
..()
return ..()
attack_self(mob/living/user as mob)
@@ -45,7 +45,7 @@
user << "[src] shatters into a scattering of overstressed metal shards as it leaves the crossbow."
var/obj/item/weapon/shard/shrapnel/S = new()
S.loc = get_turf(src)
src.Destroy()
qdel(src)
/obj/item/weapon/arrow/baguette
name = "baguette"
@@ -76,6 +76,7 @@
return //don't want the emitters to miss
/obj/item/projectile/beam/emitter/Destroy()
..()
return QDEL_HINT_PUTINPOOL
/obj/item/projectile/lasertag
@@ -104,7 +104,7 @@
/obj/item/projectile/bullet/incendiary/shell/Move()
..()
var/turf/location = get_turf(src)
new/obj/effect/hotspot(location)
PoolOrNew(/obj/effect/hotspot, location)
location.hotspot_expose(700, 50, 1)
/obj/item/projectile/bullet/incendiary/shell/dragonsbreath
+1 -1
View File
@@ -637,7 +637,7 @@ atom/proc/create_reagents(var/max_vol)
/datum/reagents/Destroy()
for(var/datum/reagent/reagent in reagent_list)
reagent.Destroy()
qdel(reagent)
if(my_atom)
my_atom = null
+1 -1
View File
@@ -166,7 +166,7 @@ datum
if(src.data["virus"])
var/datum/disease/D = src.data["virus"]
D.cure(0)
..()
return ..()
*/
/*
+1 -1
View File
@@ -90,7 +90,7 @@
/datum/chemical_reaction/crank/on_reaction(var/datum/reagents/holder, var/created_volume)
var/turf/T = get_turf(holder.my_atom)
for(var/turf/turf in range(1,T))
new /obj/effect/hotspot(turf)
PoolOrNew(/obj/effect/hotspot, turf)
explosion(T,0,0,2)
return
+5 -5
View File
@@ -46,7 +46,7 @@
/datum/chemical_reaction/clf3/on_reaction(var/datum/reagents/holder, var/created_volume)
var/turf/T = get_turf(holder.my_atom)
for(var/turf/turf in range(1,T))
new /obj/effect/hotspot(turf)
PoolOrNew(/obj/effect/hotspot, turf)
return
/datum/reagent/clf3/reaction_turf(var/turf/simulated/T, var/volume)
@@ -59,13 +59,13 @@
if(prob(volume/10))
F.make_plating()
if(istype(F, /turf/simulated/floor/))
new /obj/effect/hotspot(F)
PoolOrNew(/obj/effect/hotspot, F)
if(istype(T, /turf/simulated/wall/))
var/turf/simulated/wall/W = T
if(prob(volume/10))
W.ChangeTurf(/turf/simulated/floor)
if(istype(T, /turf/simulated/shuttle/))
new /obj/effect/hotspot(T)
PoolOrNew(/obj/effect/hotspot, T)
return
/datum/reagent/clf3/reaction_mob(var/mob/living/M, var/method=TOUCH, var/volume)
@@ -429,7 +429,7 @@ datum/reagent/blackpowder/reaction_turf(var/turf/T, var/volume) //oh shit
return
var/turf/simulated/T = get_turf(holder.my_atom)
for(var/turf/simulated/turf in range(created_volume/10,T))
new /obj/effect/hotspot(turf)
PoolOrNew(/obj/effect/hotspot, turf)
return
/datum/reagent/phlogiston/on_mob_life(var/mob/living/M as mob)
@@ -593,7 +593,7 @@ datum/reagent/firefighting_foam/reaction_obj(var/obj/O, var/volume)
lowertemp.temperature = max( min(lowertemp.temperature-2000,lowertemp.temperature / 2) ,0)
lowertemp.react()
T.assume_air(lowertemp)
del(hotspot)
qdel(hotspot)
return
/datum/chemical_reaction/clf3_firefighting
@@ -190,16 +190,16 @@
if(istype(target, /obj/item/weapon/reagent_containers/food/snacks))
if(!reagents.total_volume)
user << "<span class='warning'>You tear open [src], but there's nothing in it.</span>"
Destroy()
qdel(src)
return
if(target.reagents.total_volume >= target.reagents.maximum_volume)
user << "<span class='warning'>You tear open [src], but [target] is stacked so high that it just drips off!</span>" //Not sure if food can ever be full, but better safe than sorry.
Destroy()
qdel(src)
return
else
user << "<span class='notice'>You tear open [src] above [target] and the condiments drip onto it.</span>"
src.reagents.trans_to(target, amount_per_transfer_from_this)
Destroy()
qdel(src)
/obj/item/weapon/reagent_containers/food/condiment/pack/on_reagent_change()
if(reagents.reagent_list.len > 0)
+4 -4
View File
@@ -481,7 +481,7 @@
singularity_pull(S, current_size)
if(current_size >= STAGE_FIVE)
Destroy()
qdel(src)
// virtual disposal object
// travels through pipes in lieu of actual items
@@ -678,18 +678,18 @@
for(var/atom/movable/AM in H)
AM.loc = T
AM.pipe_eject(0)
del(H)
qdel(H)
..()
return
// otherwise, do normal expel from turf
if(H)
expel(H, T, 0)
..()
return ..()
singularity_pull(S, current_size)
if(current_size >= STAGE_FIVE)
Destroy()
qdel(src)
// returns the direction of the next pipe object, given the entrance dir
// by default, returns the bitmask of remaining directions
+2 -1
View File
@@ -33,7 +33,8 @@ won't update every console in existence) but it's more of a hassle to do. Also,
/obj/machinery/computer/rdconsole
name = "R&D Console"
icon_state = "rdcomp"
icon_screen = "rdcomp"
icon_keyboard = "rd_key"
light_color = LIGHT_COLOR_FADEDPURPLE
circuit = /obj/item/weapon/circuitboard/rdconsole
var/datum/research/files //Stores all the collected research data.
+2 -1
View File
@@ -175,7 +175,8 @@
/obj/machinery/computer/rdservercontrol
name = "R&D Server Controller"
icon_state = "rdcomp"
icon_screen = "rdcomp"
icon_keyboard = "rd_key"
light_color = LIGHT_COLOR_FADEDPURPLE
circuit = /obj/item/weapon/circuitboard/rdservercontrol
var/screen = 0
@@ -13,7 +13,8 @@ datum/genesequence
/obj/machinery/computer/reconstitutor
name = "Flora reconstitution console"
icon = 'icons/obj/computer.dmi'
icon_state = "dna"
icon_keyboard = "med_key"
icon_screen = "dna"
circuit = "/obj/item/weapon/circuitboard/reconstitutor"
req_access = list(access_heads) //Only used for record deletion right now.
var/obj/machinery/clonepod/pod1 = 1 //Linked cloning pod.
+8 -4
View File
@@ -2,16 +2,20 @@
name = "skipjack control console"
req_access = list(access_vox)
shuttle_tag = "Vox Skipjack"
icon_screen = "syndishuttle"
icon_keyboard = "syndie_key"
/obj/machinery/computer/shuttle_control/multi/vox/attack_ai(user as mob)
user << "\red Access Denied."
return 1
return 1
/obj/machinery/computer/shuttle_control/multi/syndicate
name = "Syndicate control console"
req_access = list(access_syndicate)
shuttle_tag = "Syndicate"
icon_screen = "syndishuttle"
icon_keyboard = "syndie_key"
/obj/machinery/computer/shuttle_control/multi/syndicate/attack_ai(user as mob)
user << "\red Access Denied."
return 1
return 1
+4 -3
View File
@@ -1,7 +1,8 @@
/obj/machinery/computer/shuttle_control
name = "shuttle control console"
icon = 'icons/obj/computer.dmi'
icon_state = "shuttle"
icon_screen = "shuttle"
icon_keyboard = "med_key"
circuit = null
var/shuttle_tag // Used to coordinate data in shuttle controller.
@@ -15,7 +16,7 @@
if(!allowed(user))
user << "\red Access Denied."
return 1
ui_interact(user)
/obj/machinery/computer/shuttle_control/ui_interact(mob/user, ui_key = "main", var/datum/nanoui/ui = null, var/force_open = 1)
@@ -84,7 +85,7 @@
if (!istype(shuttle))
return
shuttle.launch(user)
/obj/machinery/computer/shuttle_control/proc/force_launch(var/mob/user)
var/datum/shuttle/ferry/shuttle = shuttle_controller.shuttles[shuttle_tag]
if (!istype(shuttle))
+2
View File
@@ -1,6 +1,8 @@
/obj/machinery/computer/shuttle_control/specops
name = "special operations shuttle console"
shuttle_tag = "Special Operations"
icon_screen = "syndishuttle"
icon_keyboard = "syndie_key"
req_access = list(access_cent_specops)
/obj/machinery/computer/shuttle_control/specops/attack_ai(user as mob)
+5 -4
View File
@@ -43,7 +43,8 @@
command_announcement.Announce(arrival_message,(announcer ? announcer : "Central Command"))
/obj/machinery/computer/shuttle_control/multi
icon_state = "syndishuttle"
icon_screen = "syndishuttle"
icon_keyboard = "syndie_key"
/obj/machinery/computer/shuttle_control/multi/attack_hand(user as mob)
@@ -84,7 +85,7 @@
var/datum/shuttle/multi_shuttle/MS = shuttle_controller.shuttles[shuttle_tag]
if(!istype(MS)) return
//world << "multi_shuttle: last_departed=[MS.last_departed], origin=[MS.origin], interim=[MS.interim], travel_time=[MS.move_time]"
if (MS.moving_status != SHUTTLE_IDLE)
@@ -102,7 +103,7 @@
//TODO: Actually end the mission.
MS.return_warning = 1
return
MS.long_jump(MS.last_departed,MS.origin,MS.interim,MS.move_time)
MS.last_departed = MS.origin
MS.at_origin = 1
@@ -127,7 +128,7 @@
MS.last_departed = MS.origin
MS.at_origin = 0
MS.long_jump(MS.last_departed, MS.destinations[choice], MS.interim, MS.move_time)
MS.last_departed = MS.destinations[choice]
return
+6
View File
@@ -75,6 +75,12 @@
typepath = /obj/item/weapon/storage/fancy/candle_box/full
cost = 200
/datum/storeitem/minigibber
name = "miniature gibber"
desc = "A miniature recreation of NanoTrasen's famous meat grinder."
typepath = /obj/item/toy/minigibber
cost = 400
/datum/storeitem/katana
name = "replica katana"
desc = "Woefully underpowered in D20."
+6 -3
View File
@@ -1,7 +1,8 @@
/obj/machinery/computer/telescience
name = "\improper Telepad Control Console"
desc = "Used to teleport objects to and from the telescience telepad."
icon_state = "teleport"
icon_keyboard = "telesci_key"
icon_screen = "telesci"
circuit = /obj/item/weapon/circuitboard/telesci_console
req_access = list(access_research)
var/sending = 1
@@ -318,8 +319,10 @@
return
/obj/machinery/computer/telescience/proc/eject()
for(var/obj/item/I in crystals)
I.loc = src.loc
I.loc = loc
I.pixel_y = -9
crystals -= I
power = 0
@@ -360,7 +363,7 @@
if(href_list["ejectGPS"])
if(inserted_gps)
inserted_gps.loc = loc
usr.put_in_hands(inserted_gps)
inserted_gps = null
if(href_list["setMemory"])
+2 -1
View File
@@ -1,7 +1,8 @@
/obj/machinery/computer/diseasesplicer
name = "Disease Splicer"
icon = 'icons/obj/computer.dmi'
icon_state = "crew"
icon_screen = "crew"
icon_keyboard = "med_key"
var/datum/disease2/effectholder/memorybank = null
var/list/species_buffer = null