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

This commit is contained in:
Aurorablade
2015-07-08 18:02:04 -04:00
227 changed files with 946 additions and 1099 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
@@ -39,7 +39,7 @@
bombtank.master = null
bombtank = null
del(src)
qdel(src)
return
if((istype(W, /obj/item/weapon/weldingtool) && W:welding))
if(!status)
+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 ////////////
//////////////////////////////////
+21 -20
View File
@@ -1,25 +1,26 @@
var/list/dreams = list(
"an ID card","a bottle","a familiar face","a crewmember","a toolbox","a security officer","the captain",
"voices from all around","deep space","a doctor","the engine","a traitor","an ally","darkness",
"light","a scientist","a monkey","a catastrophe","a loved one","a gun","warmth","freezing","the sun",
"a hat","the Luna","a ruined station","a planet","plasma","air","the medical bay","the bridge","blinking lights",
"a blue light","an abandoned laboratory","Nanotrasen","The Syndicate","blood","healing","power","respect",
"riches","space","a crash","happiness","pride","a fall","water","flames","ice","melons","flying","the eggs","money",
"the head of personnel","the head of security","a chief engineer","a research director","a chief medical officer",
"the detective","the warden","a member of the internal affairs","a station engineer","the janitor","atmospheric technician",
"the quartermaster","a cargo technician","the botanist","a shaft miner","the psychologist","the chemist","the geneticist",
"the virologist","the roboticist","the chef","the bartender","the chaplain","the librarian","a mouse","an ert member",
"a beach","the holodeck","a smokey room","a voice","the cold","a mouse","an operating table","the bar","the rain","a skrell",
"a unathi","a tajaran","the ai core","the mining station","the research station","a beaker of strange liquid",
)
mob/living/carbon/proc/dream()
dreaming = 1
var/list/dreams = list(
"an ID card","a bottle","a familiar face","a crewmember","a toolbox","a security officer","the captain",
"voices from all around","deep space","a doctor","the engine","a traitor","an ally","darkness",
"light","a scientist","a monkey","a catastrophe","a loved one","a gun","warmth","freezing","the sun",
"a hat","the Cyberiad","a ruined station","a planet","plasma","air","the medical bay","the bridge","blinking lights",
"a blue light","an abandoned laboratory","Nanotrasen","The Syndicate","blood","healing","power","respect",
"riches","space","a crash","happiness","pride","a fall","water","flames","ice","melons","flying","the eggs","money",
"the head of personnel","the head of security","a chief engineer","a research director","a chief medical officer",
"the detective","the warden","a member of the internal affairs","a station engineer","the janitor","atmospheric technician",
"the quartermaster","a cargo technician","the botanist","a shaft miner","the psychologist","the chemist","the geneticist",
"the virologist","the roboticist","the chef","the bartender","the chaplain","the librarian", "the brig physician", "the pod pilot",
"the barber", "the mechanic", "the magistrate", "the nanotrasen representative", "the blueshield", "a mouse","an ert member",
"a beach","the holodeck","a smokey room","a voice","the cold","a mouse","an operating table","the bar","the rain","a skrell",
"a unathi","a tajaran", "a vulpkanin", "a slime", "an ipc", "a vox", "a plasmaman", "a grey", "a kidan", "a diona", "the ai core",
"the mining station","the research station", "a beaker of strange liquid"
)
spawn(0)
for(var/i = rand(1,4),i > 0, i--)
src << "\blue <i>... [pick(dreams)] ...</i>"
var/dream_image = pick(dreams)
dreams -= dream_image
src << "<span class='notice'><i>... [dream_image] ...</i></span>"
sleep(rand(40,70))
if(paralysis <= 0)
dreaming = 0
@@ -27,8 +28,8 @@ mob/living/carbon/proc/dream()
dreaming = 0
return 1
mob/living/carbon/proc/handle_dreams()
/mob/living/carbon/proc/handle_dreams()
if(client && !dreaming && prob(5))
dream()
mob/living/carbon/var/dreaming = 0
/mob/living/carbon/var/dreaming = 0
+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
+4 -2
View File
@@ -51,9 +51,11 @@ var/global/list/rad_collectors = list()
/obj/machinery/power/rad_collector/attackby(obj/item/W, mob/user, params)
if(istype(W, /obj/item/device/analyzer))
user << "\blue The [W.name] detects that [last_power]W were recently produced."
if(istype(W, /obj/item/device/multitool))
user << "<span class='notice'>The [W.name] detects that [last_power]W were recently produced.</span>"
return 1
else if(istype(W, /obj/item/device/analyzer) && P)
atmosanalyzer_scan(P.air_contents, user)
else if(istype(W, /obj/item/weapon/tank/plasma))
if(!src.anchored)
user << "\red The [src] needs to be secured to the floor first."
@@ -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")
+1 -1
View File
@@ -285,7 +285,7 @@
else
user << "<span class = 'notice'>Ow...</span>"
user.apply_effect(110,AGONY,0)
del(in_chamber)
qdel(in_chamber)
mouthshoot = 0
return
else
+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"
+2 -2
View File
@@ -97,7 +97,7 @@
in_chamber.pass_flags = pass_flags //And the pass flags to that of the real projectile...
in_chamber.firer = user
var/output = in_chamber.process() //Test it!
del(in_chamber) //No need for it anymore
qdel(in_chamber) //No need for it anymore
return output //Send it back to the gun!
Bump(atom/A as mob|obj|turf|area)
@@ -168,7 +168,7 @@
if(!istype(src, /obj/item/projectile/beam/lightning))
density = 0
invisibility = 101
del(src)
qdel(src)
return 1
@@ -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
+7 -6
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)
@@ -197,6 +197,7 @@ datum/reagent/blackpowder/reaction_turf(var/turf/T, var/volume) //oh shit
blackpowder_detonate(holder, created_volume)
return
/*
/datum/reagent/blackpowder/on_ex_act()
var/location = get_turf(holder.my_atom)
var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread
@@ -205,7 +206,7 @@ datum/reagent/blackpowder/reaction_turf(var/turf/T, var/volume) //oh shit
sleep(rand(10,15))
blackpowder_detonate(holder, volume)
holder.remove_reagent("blackpowder", volume)
return
return */
/proc/blackpowder_detonate(var/datum/reagents/holder, var/created_volume)
var/turf/simulated/T = get_turf(holder.my_atom)
@@ -428,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)
@@ -592,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