Fixed the map/code issues that the body bags caused.

/obj/effects is now /obj/effect.
/obj/station_objects is now /obj/structure.
Did a bit of minor blob work. 
The Bay 12 body bags were replaced with closets because having two sets of code that do almost the same thing is silly.
Changed back a few of the last jobproc edits as the remove from list before assign was a check to see if the mob was fucked up and if it was remove it so we did not check it again as it would still be fucked up.
The medbay/tox monkeys names are random once more.  More random name monkeys will help with changeling and clean up the observe/mob menus.


git-svn-id: http://tgstation13.googlecode.com/svn/trunk@2324 316c924e-a436-60f5-8080-3fe189b3f50e
This commit is contained in:
mport2004@gmail.com
2011-10-03 10:28:57 +00:00
parent e8c6b08419
commit 17ed3899c4
314 changed files with 9099 additions and 9118 deletions
+9 -9
View File
@@ -658,7 +658,7 @@
// M.buckled = null
// else
// var/obj/S = locate(text("start*AI"))
// if ((istype(S, /obj/effects/landmark/start) && istype(S.loc, /turf)))
// if ((istype(S, /obj/effect/landmark/start) && istype(S.loc, /turf)))
// M << "\blue <B>You have been teleported to your new starting location!</B>"
// M.loc = S.loc
// M.buckled = null
@@ -941,7 +941,7 @@
removed_paths += dirty_path
else if (ispath(path, /obj/item/weapon/melee/energy/blade))//Not an item one should be able to spawn./N
removed_paths += dirty_path
else if (ispath(path, /obj/effects/bhole) && !(src.rank in list("Game Admin", "Game Master")))
else if (ispath(path, /obj/effect/bhole) && !(src.rank in list("Game Admin", "Game Master")))
removed_paths += dirty_path
else if (ispath(path, /mob) && !(src.rank in list("Badmin", "Game Admin", "Game Master")))
removed_paths += dirty_path
@@ -1053,7 +1053,7 @@
if("sec_classic1")
for(var/obj/item/clothing/suit/fire/O in world)
del(O)
for(var/obj/station_objects/grille/O in world)
for(var/obj/structure/grille/O in world)
del(O)
/* for(var/obj/machinery/vehicle/pod/O in world)
for(var/mob/M in src)
@@ -1253,11 +1253,11 @@
sleep(40)
for(var/mob/M in world)
shake_camera(M, 400, 1)
for(var/obj/station_objects/window/W in world)
for(var/obj/structure/window/W in world)
spawn(0)
sleep(rand(10,400))
W.ex_act(rand(2,1))
for(var/obj/station_objects/grille/G in world)
for(var/obj/structure/grille/G in world)
spawn(0)
sleep(rand(20,400))
G.ex_act(rand(2,1))
@@ -1269,11 +1269,11 @@
spawn(0)
sleep(rand(30,400))
Floor.ex_act(rand(2,1))
for(var/obj/station_objects/cable/Cable in world)
for(var/obj/structure/cable/Cable in world)
spawn(0)
sleep(rand(30,400))
Cable.ex_act(rand(2,1))
for(var/obj/station_objects/closet/Closet in world)
for(var/obj/structure/closet/Closet in world)
spawn(0)
sleep(rand(30,400))
Closet.ex_act(rand(2,1))
@@ -1298,7 +1298,7 @@
command_alert("Gravitational anomalies detected on the station. There is no additional data.", "Anomaly Alert")
world << sound('granomalies.ogg')
var/turf/T = pick(blobstart)
var/obj/effects/bhole/bh = new /obj/effects/bhole( T.loc, 30 )
var/obj/effect/bhole/bh = new /obj/effect/bhole( T.loc, 30 )
spawn(rand(50, 300))
del(bh)
if("timeanomalies")
@@ -1314,7 +1314,7 @@
if(prob(20) && T.z == 1 && istype(T,/turf/simulated/floor))
spawn(50+rand(0,3000))
picked = pick(turfs)
var/obj/effects/portal/P = new /obj/effects/portal( T )
var/obj/effect/portal/P = new /obj/effect/portal( T )
P.target = picked
P.creator = null
P.icon = 'objects.dmi'
+1 -1
View File
@@ -562,7 +562,7 @@
set category = "Fun"
set name = "Give Spell"
set desc = "Gives a spell to a mob."
var/obj/effects/proc_holder/spell/S = input("Choose the spell to give to that guy", "ABRAKADABRA") as null|anything in spells
var/obj/effect/proc_holder/spell/S = input("Choose the spell to give to that guy", "ABRAKADABRA") as null|anything in spells
if(!S) return
T.spell_list += new S
+1 -1
View File
@@ -40,7 +40,7 @@
active_tiles += group.members.len
var/hotspots = 0
for(var/obj/effects/hotspot/hotspot in world)
for(var/obj/effect/hotspot/hotspot in world)
hotspots++
var/output = {"<B>AIR SYSTEMS REPORT</B><HR>
+8 -8
View File
@@ -22,7 +22,7 @@
var/camera_range_display_status = 0
var/intercom_range_display_status = 0
/obj/effects/debugging/camera_range
/obj/effect/debugging/camera_range
icon = '480x480.dmi'
icon_state = "25percent"
@@ -30,7 +30,7 @@ var/intercom_range_display_status = 0
src.pixel_x = -224
src.pixel_y = -224
/obj/effects/debugging/marker
/obj/effect/debugging/marker
icon = 'areas.dmi'
icon_state = "yellow"
@@ -53,12 +53,12 @@ var/intercom_range_display_status = 0
for(var/obj/effects/debugging/camera_range/C in world)
for(var/obj/effect/debugging/camera_range/C in world)
del(C)
if(camera_range_display_status)
for(var/obj/machinery/camera/C in world)
new/obj/effects/debugging/camera_range(C.loc)
new/obj/effect/debugging/camera_range(C.loc)
@@ -89,9 +89,9 @@ var/intercom_range_display_status = 0
output += "<li>overlapping sec. cameras at \[[C1.x], [C1.y], [C1.z]\] ([C1.loc.loc]) Networks: [C1.network] and [C2.network]</font></li>"
var/turf/T = get_step(C1,turn(C1.dir,180))
if(!T || !isturf(T) || !T.density )
if(!(locate(/obj/station_objects/grille,T)))
if(!(locate(/obj/structure/grille,T)))
var/window_check = 0
for(var/obj/station_objects/window/W in T)
for(var/obj/structure/window/W in T)
if (W.dir == turn(C1.dir,180) || W.dir in list(5,6,9,10) )
window_check = 1
break
@@ -110,13 +110,13 @@ var/intercom_range_display_status = 0
else
intercom_range_display_status = 1
for(var/obj/effects/debugging/marker/M in world)
for(var/obj/effect/debugging/marker/M in world)
del(M)
if(intercom_range_display_status)
for(var/obj/item/device/radio/intercom/I in world)
for(var/turf/T in orange(7,I))
var/obj/effects/debugging/marker/F = new/obj/effects/debugging/marker(T)
var/obj/effect/debugging/marker/F = new/obj/effect/debugging/marker(T)
if (!(F in view(7,I.loc)))
del(F)
+4 -4
View File
@@ -187,7 +187,7 @@
/proc/create_xeno(mob/dead/observer/G)
var/alien_caste = alert(src, "Please choose which caste to spawn.",,"Hunter","Sentinel","Drone")
var/obj/effects/landmark/spawn_here = xeno_spawn.len ? pick(xeno_spawn) : pick(latejoin)
var/obj/effect/landmark/spawn_here = xeno_spawn.len ? pick(xeno_spawn) : pick(latejoin)
var/mob/living/carbon/alien/humanoid/new_xeno
switch(alien_caste)
@@ -402,20 +402,20 @@ Traitors and the like can also be revived with the previous role mostly intact.
ticker.mode.learn_basic_spells(new_character)
ticker.mode.equip_wizard(new_character)
if("Syndicate")
var/obj/effects/landmark/synd_spawn = locate("landmark*Syndicate-Spawn")
var/obj/effect/landmark/synd_spawn = locate("landmark*Syndicate-Spawn")
if(synd_spawn)
new_character.loc = get_turf(synd_spawn)
call(/datum/game_mode/proc/equip_syndicate)(new_character)
if("Space Ninja")
var/ninja_spawn[] = list()
for(var/obj/effects/landmark/L in world)
for(var/obj/effect/landmark/L in world)
if(L.name=="carpspawn")
ninja_spawn += L
new_character.equip_space_ninja()
new_character.internal = new_character.s_store
new_character.internals.icon_state = "internal1"
if(ninja_spawn.len)
var/obj/effects/landmark/ninja_spawn_here = pick(ninja_spawn)
var/obj/effect/landmark/ninja_spawn_here = pick(ninja_spawn)
new_character.loc = ninja_spawn_here.loc
if("Death Commando")//Leaves them at late-join spawn.
new_character.equip_death_commando()
+4 -4
View File
@@ -67,7 +67,7 @@ var/global/sent_strike_team = 0
commandos_list += G_client.mob//Add their ghost to commandos.
//Spawns commandos and equips them.
for (var/obj/effects/landmark/L in world)
for (var/obj/effect/landmark/L in world)
if(commando_number<=0) break
if (L.name == "Commando")
leader_selected = commando_number == 1?1:0
@@ -93,16 +93,16 @@ var/global/sent_strike_team = 0
commando_number--
//Spawns the rest of the commando gear.
for (var/obj/effects/landmark/L)
for (var/obj/effect/landmark/L)
if (L.name == "Commando_Manual")
//new /obj/item/weapon/gun/energy/pulse_rifle(L.loc)
var/obj/item/weapon/paper/P = new(L.loc)
P.info = "<p><b>Good morning soldier!</b>. This compact guide will familiarize you with standard operating procedure. There are three basic rules to follow:<br>#1 Work as a team.<br>#2 Accomplish your objective at all costs.<br>#3 Leave no witnesses.<br>You are fully equipped and stocked for your mission--before departing on the Spec. Ops. Shuttle due South, make sure that all operatives are ready. Actual mission objective will be relayed to you by Central Command through your headsets.<br>If deemed appropriate, Central Command will also allow members of your team to equip assault power-armor for the mission. You will find the armor storage due West of your position. Once you are ready to leave, utilize the Special Operations shuttle console and toggle the hull doors via the other console.</p><p>In the event that the team does not accomplish their assigned objective in a timely manner, or finds no other way to do so, attached below are instructions on how to operate a Nanotrasen Nuclear Device. Your operations <b>LEADER</b> is provided with a nuclear authentication disk and a pin-pointer for this reason. You may easily recognize them by their rank: Lieutenant, Captain, or Major. The nuclear device itself will be present somewhere on your destination.</p><p>Hello and thank you for choosing Nanotrasen for your nuclear information needs. Today's crash course will deal with the operation of a Fission Class Nanotrasen made Nuclear Device.<br>First and foremost, <b>DO NOT TOUCH ANYTHING UNTIL THE BOMB IS IN PLACE.</b> Pressing any button on the compacted bomb will cause it to extend and bolt itself into place. If this is done to unbolt it one must completely log in which at this time may not be possible.<br>To make the device functional:<br>#1 Place bomb in designated detonation zone<br> #2 Extend and anchor bomb (attack with hand).<br>#3 Insert Nuclear Auth. Disk into slot.<br>#4 Type numeric code into keypad ([nuke_code]).<br>Note: If you make a mistake press R to reset the device.<br>#5 Press the E button to log onto the device.<br>You now have activated the device. To deactivate the buttons at anytime, for example when you have already prepped the bomb for detonation, remove the authentication disk OR press the R on the keypad. Now the bomb CAN ONLY be detonated using the timer. A manual detonation is not an option.<br>Note: Toggle off the <b>SAFETY</b>.<br>Use the - - and + + to set a detonation time between 5 seconds and 10 minutes. Then press the timer toggle button to start the countdown. Now remove the authentication disk so that the buttons deactivate.<br>Note: <b>THE BOMB IS STILL SET AND WILL DETONATE</b><br>Now before you remove the disk if you need to move the bomb you can: Toggle off the anchor, move it, and re-anchor.</p><p>The nuclear authorization code is: <b>[nuke_code ? nuke_code : "None provided"]</b></p><p><b>Good luck, soldier!</b></p>"
P.name = "Spec. Ops. Manual"
for (var/obj/effects/landmark/L in world)
for (var/obj/effect/landmark/L in world)
if (L.name == "Commando-Bomb")
new /obj/effects/spawner/newbomb/timer/syndicate(L.loc)
new /obj/effect/spawner/newbomb/timer/syndicate(L.loc)
del(L)
message_admins("\blue [key_name_admin(usr)] has spawned a CentCom strike squad.", 1)
@@ -67,7 +67,7 @@ var/global/sent_syndicate_strike_team = 0
syndicate_commandos_list += G_client.mob//Add their ghost to commandos.
//Spawns commandos and equips them.
for (var/obj/effects/landmark/L in world)
for (var/obj/effect/landmark/L in world)
if(syndicate_commando_number<=0) break
if (L.name == "Syndicate-Commando")
syndicate_leader_selected = syndicate_commando_number == 1?1:0
@@ -93,16 +93,16 @@ var/global/sent_syndicate_strike_team = 0
syndicate_commando_number--
//Spawns the rest of the commando gear.
// for (var/obj/effects/landmark/L)
// for (var/obj/effect/landmark/L)
// if (L.name == "Commando_Manual")
//new /obj/item/weapon/gun/energy/pulse_rifle(L.loc)
// var/obj/item/weapon/paper/P = new(L.loc)
// P.info = "<p><b>Good morning soldier!</b>. This compact guide will familiarize you with standard operating procedure. There are three basic rules to follow:<br>#1 Work as a team.<br>#2 Accomplish your objective at all costs.<br>#3 Leave no witnesses.<br>You are fully equipped and stocked for your mission--before departing on the Spec. Ops. Shuttle due South, make sure that all operatives are ready. Actual mission objective will be relayed to you by Central Command through your headsets.<br>If deemed appropriate, Central Command will also allow members of your team to equip assault power-armor for the mission. You will find the armor storage due West of your position. Once you are ready to leave, utilize the Special Operations shuttle console and toggle the hull doors via the other console.</p><p>In the event that the team does not accomplish their assigned objective in a timely manner, or finds no other way to do so, attached below are instructions on how to operate a Nanotrasen Nuclear Device. Your operations <b>LEADER</b> is provided with a nuclear authentication disk and a pin-pointer for this reason. You may easily recognize them by their rank: Lieutenant, Captain, or Major. The nuclear device itself will be present somewhere on your destination.</p><p>Hello and thank you for choosing Nanotrasen for your nuclear information needs. Today's crash course will deal with the operation of a Fission Class Nanotrasen made Nuclear Device.<br>First and foremost, <b>DO NOT TOUCH ANYTHING UNTIL THE BOMB IS IN PLACE.</b> Pressing any button on the compacted bomb will cause it to extend and bolt itself into place. If this is done to unbolt it one must completely log in which at this time may not be possible.<br>To make the device functional:<br>#1 Place bomb in designated detonation zone<br> #2 Extend and anchor bomb (attack with hand).<br>#3 Insert Nuclear Auth. Disk into slot.<br>#4 Type numeric code into keypad ([nuke_code]).<br>Note: If you make a mistake press R to reset the device.<br>#5 Press the E button to log onto the device.<br>You now have activated the device. To deactivate the buttons at anytime, for example when you have already prepped the bomb for detonation, remove the authentication disk OR press the R on the keypad. Now the bomb CAN ONLY be detonated using the timer. A manual detonation is not an option.<br>Note: Toggle off the <b>SAFETY</b>.<br>Use the - - and + + to set a detonation time between 5 seconds and 10 minutes. Then press the timer toggle button to start the countdown. Now remove the authentication disk so that the buttons deactivate.<br>Note: <b>THE BOMB IS STILL SET AND WILL DETONATE</b><br>Now before you remove the disk if you need to move the bomb you can: Toggle off the anchor, move it, and re-anchor.</p><p>The nuclear authorization code is: <b>[nuke_code ? nuke_code : "None provided"]</b></p><p><b>Good luck, soldier!</b></p>"
// P.name = "Spec. Ops. Manual"
for (var/obj/effects/landmark/L in world)
for (var/obj/effect/landmark/L in world)
if (L.name == "Syndicate-Commando-Bomb")
new /obj/effects/spawner/newbomb/timer/syndicate(L.loc)
new /obj/effect/spawner/newbomb/timer/syndicate(L.loc)
del(L)
message_admins("\blue [key_name_admin(usr)] has spawned a Syndicate strike squad.", 1)
+13 -13
View File
@@ -17,7 +17,7 @@
cooldown = 0//To prevent spam
scanning = 0
visible = 0
obj/effects/beam/i_beam/first = null
obj/effect/beam/i_beam/first = null
proc
Activate()//Called when this assembly is pulsed by another one
@@ -111,7 +111,7 @@
del(src.first)
if ((!( src.first ) && (src.secured && (istype(src.loc, /turf) || (src.holder && istype(src.holder.loc, /turf))))))
var/obj/effects/beam/i_beam/I = new /obj/effects/beam/i_beam( (src.holder ? src.holder.loc : src.loc) )
var/obj/effect/beam/i_beam/I = new /obj/effect/beam/i_beam( (src.holder ? src.holder.loc : src.loc) )
I.master = src
I.density = 1
I.dir = src.dir
@@ -233,11 +233,11 @@
/***************************IBeam*********************************/
/obj/effects/beam/i_beam
/obj/effect/beam/i_beam
name = "i beam"
icon = 'projectiles.dmi'
icon_state = "ibeam"
var/obj/effects/beam/i_beam/next = null
var/obj/effect/beam/i_beam/next = null
var/obj/item/device/infra/master = null
var/limit = null
var/visible = 0.0
@@ -247,7 +247,7 @@
flags = TABLEPASS
/obj/effects/beam/i_beam/proc/hit()
/obj/effect/beam/i_beam/proc/hit()
//world << "beam \ref[src]: hit"
if (src.master)
//world << "beam hit \ref[src]: calling master \ref[master].hit"
@@ -256,7 +256,7 @@
del(src)
return
/obj/effects/beam/i_beam/proc/vis_spread(v)
/obj/effect/beam/i_beam/proc/vis_spread(v)
//world << "i_beam \ref[src] : vis_spread"
src.visible = v
spawn( 0 )
@@ -266,7 +266,7 @@
return
return
/obj/effects/beam/i_beam/process()
/obj/effect/beam/i_beam/process()
//world << "i_beam \ref[src] : process"
if ((src.loc.density || !( src.master )))
@@ -288,7 +288,7 @@
//world << "now [src.left] left"
var/obj/effects/beam/i_beam/I = new /obj/effects/beam/i_beam( src.loc )
var/obj/effect/beam/i_beam/I = new /obj/effect/beam/i_beam( src.loc )
I.master = src.master
I.density = 1
I.dir = src.dir
@@ -323,23 +323,23 @@
return
return
/obj/effects/beam/i_beam/Bump()
/obj/effect/beam/i_beam/Bump()
del(src)
return
/obj/effects/beam/i_beam/Bumped()
/obj/effect/beam/i_beam/Bumped()
src.hit()
return
/obj/effects/beam/i_beam/HasEntered(atom/movable/AM as mob|obj)
if (istype(AM, /obj/effects/beam))
/obj/effect/beam/i_beam/HasEntered(atom/movable/AM as mob|obj)
if (istype(AM, /obj/effect/beam))
return
spawn( 0 )
src.hit()
return
return
/obj/effects/beam/i_beam/Del()
/obj/effect/beam/i_beam/Del()
del(src.next)
..()
return
+1 -1
View File
@@ -94,7 +94,7 @@
HasProximity(atom/movable/AM as mob|obj)
if (istype(AM, /obj/effects/beam))
if (istype(AM, /obj/effect/beam))
return
if (AM.move_speed < 12)
src.sense()
+2 -2
View File
@@ -469,7 +469,7 @@
if(do_after(user, 20))
if (src.stat & BROKEN)
user << "\blue The broken glass falls out."
var/obj/station_objects/computerframe/A = new /obj/station_objects/computerframe(src.loc)
var/obj/structure/computerframe/A = new /obj/structure/computerframe(src.loc)
new /obj/item/weapon/shard(src.loc)
var/obj/item/weapon/circuitboard/pandemic/M = new /obj/item/weapon/circuitboard/pandemic(A)
for (var/obj/C in src)
@@ -481,7 +481,7 @@
del(src)
else
user << "\blue You disconnect the monitor."
var/obj/station_objects/computerframe/A = new /obj/station_objects/computerframe( src.loc )
var/obj/structure/computerframe/A = new /obj/structure/computerframe( src.loc )
var/obj/item/weapon/circuitboard/pandemic/M = new /obj/item/weapon/circuitboard/pandemic(A)
for (var/obj/C in src)
C.loc = src.loc
+21 -21
View File
@@ -25,7 +25,7 @@ datum
var/datum/reagent/self = src
src = null //of the reagent to the mob on TOUCHING it.
if(!istype(self.holder.my_atom, /obj/effects/chem_smoke))
if(!istype(self.holder.my_atom, /obj/effect/chem_smoke))
// If the chemicals are in a smoke cloud, do not try to let the chemicals "penetrate" into the mob's system (balance station 13) -- Doohl
if(method == TOUCH)
@@ -138,7 +138,7 @@ datum
src = null
//var/datum/disease/D = self.data["virus"]
if(!self.data["donor"] || istype(self.data["donor"], /mob/living/carbon/human))
var/obj/effects/decal/cleanable/blood/blood_prop = locate() in T //find some blood here
var/obj/effect/decal/cleanable/blood/blood_prop = locate() in T //find some blood here
if(!blood_prop) //first blood!
blood_prop = new(T)
blood_prop.blood_DNA = self.data["blood_DNA"]
@@ -163,7 +163,7 @@ datum
*/
else if(istype(self.data["donor"], /mob/living/carbon/monkey))
var/obj/effects/decal/cleanable/blood/blood_prop = locate() in T
var/obj/effect/decal/cleanable/blood/blood_prop = locate() in T
if(!blood_prop)
blood_prop = new(T)
blood_prop.blood_DNA = self.data["blood_DNA"]
@@ -180,7 +180,7 @@ datum
*/
else if(istype(self.data["donor"], /mob/living/carbon/alien))
var/obj/effects/decal/cleanable/xenoblood/blood_prop = locate() in T
var/obj/effect/decal/cleanable/xenoblood/blood_prop = locate() in T
if(!blood_prop)
blood_prop = new(T)
blood_prop.blood_DNA = self.data["blood_DNA"]
@@ -253,7 +253,7 @@ datum
for(var/mob/living/carbon/metroid/M in T)
M.toxloss+=rand(15,20)
var/hotspot = (locate(/obj/effects/hotspot) in T)
var/hotspot = (locate(/obj/effect/hotspot) in T)
if(hotspot && !istype(T, /turf/space))
var/datum/gas_mixture/lowertemp = T.remove_air( T:air:total_moles() )
lowertemp.temperature = max( min(lowertemp.temperature-2000,lowertemp.temperature / 2) ,0)
@@ -264,7 +264,7 @@ datum
reaction_obj(var/obj/O, var/volume)
src = null
var/turf/T = get_turf(O)
var/hotspot = (locate(/obj/effects/hotspot) in T)
var/hotspot = (locate(/obj/effect/hotspot) in T)
if(hotspot && !istype(T, /turf/space))
var/datum/gas_mixture/lowertemp = T.remove_air( T:air:total_moles() )
lowertemp.temperature = max( min(lowertemp.temperature-2000,lowertemp.temperature / 2) ,0)
@@ -452,7 +452,7 @@ datum
reaction_obj(var/obj/O, var/volume)
src = null
if(istype(O,/obj/station_objects/window))
if(istype(O,/obj/structure/window))
if(O:silicate <= 200)
O:silicate += volume
@@ -544,7 +544,7 @@ datum
reaction_turf(var/turf/T, var/volume)
src = null
if(!istype(T, /turf/space))
new /obj/effects/decal/cleanable/dirt(T)
new /obj/effect/decal/cleanable/dirt(T)
chlorine
name = "Chlorine"
@@ -659,8 +659,8 @@ datum
M.take_organ_damage(min(15, volume * 2))
reaction_obj(var/obj/O, var/volume)
if((istype(O,/obj/item) || istype(O,/obj/effects/glowshroom)) && prob(10))
var/obj/effects/decal/cleanable/molten_item/I = new/obj/effects/decal/cleanable/molten_item(O.loc)
if((istype(O,/obj/item) || istype(O,/obj/effect/glowshroom)) && prob(10))
var/obj/effect/decal/cleanable/molten_item/I = new/obj/effect/decal/cleanable/molten_item(O.loc)
I.desc = "Looks like this was \an [O] some time ago."
for(var/mob/M in viewers(5, O))
M << "\red \the [O] melts."
@@ -718,8 +718,8 @@ datum
M.take_organ_damage(min(15, volume * 4))
reaction_obj(var/obj/O, var/volume)
if((istype(O,/obj/item) || istype(O,/obj/effects/glowshroom)))
var/obj/effects/decal/cleanable/molten_item/I = new/obj/effects/decal/cleanable/molten_item(O.loc)
if((istype(O,/obj/item) || istype(O,/obj/effect/glowshroom)))
var/obj/effect/decal/cleanable/molten_item/I = new/obj/effect/decal/cleanable/molten_item(O.loc)
I.desc = "Looks like this was \an [O] some time ago."
for(var/mob/M in viewers(5, O))
M << "\red \the [O] melts."
@@ -756,7 +756,7 @@ datum
reaction_turf(var/turf/T, var/volume)
src = null
if(!istype(T, /turf/space))
new /obj/effects/decal/cleanable/greenglow(T)
new /obj/effect/decal/cleanable/greenglow(T)
ryetalyn
@@ -902,7 +902,7 @@ datum
reaction_turf(var/turf/T, var/volume)
src = null
if(!istype(T, /turf/space))
new /obj/effects/decal/cleanable/greenglow(T)
new /obj/effect/decal/cleanable/greenglow(T)
aluminum
name = "Aluminum"
@@ -957,7 +957,7 @@ datum
color = "#A5F0EE" // rgb: 165, 240, 238
reaction_obj(var/obj/O, var/volume)
if(istype(O,/obj/effects/decal/cleanable))
if(istype(O,/obj/effect/decal/cleanable))
del(O)
else
if (O)
@@ -965,7 +965,7 @@ datum
reaction_turf(var/turf/T, var/volume)
T.overlays = null
T.clean_blood()
for(var/obj/effects/decal/cleanable/C in src)
for(var/obj/effect/decal/cleanable/C in src)
del(C)
for(var/mob/living/carbon/metroid/M in T)
@@ -1010,10 +1010,10 @@ datum
reaction_obj(var/obj/O, var/volume)
// if(istype(O,/obj/plant/vine/))
// O:life -= rand(15,35) // Kills vines nicely // Not tested as vines don't work in R41
if(istype(O,/obj/effects/alien/weeds/))
if(istype(O,/obj/effect/alien/weeds/))
O:health -= rand(15,35) // Kills alien weeds pretty fast
O:healthcheck()
else if(istype(O,/obj/effects/glowshroom)) //even a small amount is enough to kill it
else if(istype(O,/obj/effect/glowshroom)) //even a small amount is enough to kill it
del(O)
// Damage that is done to growing plants is separately
// at code/game/machinery/hydroponics at obj/item/hydroponics
@@ -1291,7 +1291,7 @@ datum
hyronalin
name = "Hyronalin"
id = "hyronalin"
description = "Hyronalin is a medicinal drug used to counter the effects of radiation poisoning."
description = "Hyronalin is a medicinal drug used to counter the effect of radiation poisoning."
reagent_state = LIQUID
color = "#C8A5DC" // rgb: 200, 165, 220
@@ -1619,7 +1619,7 @@ datum
M:nutrition += nutriment_factor // For hunger and fatness
/*
// If overeaten - vomit and fall down
// Makes you feel bad but removes reagents and some effects
// Makes you feel bad but removes reagents and some effect
// from your body
if (M.nutrition > 650)
M.nutrition = rand (250, 400)
@@ -1842,7 +1842,7 @@ datum
if(T.wet_overlay)
T.overlays -= T.wet_overlay
T.wet_overlay = null
var/hotspot = (locate(/obj/effects/hotspot) in T)
var/hotspot = (locate(/obj/effect/hotspot) in T)
if(hotspot)
var/datum/gas_mixture/lowertemp = T.remove_air( T:air:total_moles() )
lowertemp.temperature = max( min(lowertemp.temperature-2000,lowertemp.temperature / 2) ,0)
+12 -12
View File
@@ -28,7 +28,7 @@ datum
result_amount = 2
on_reaction(var/datum/reagents/holder, var/created_volume)
var/location = get_turf(holder.my_atom)
var/datum/effects/system/reagents_explosion/e = new()
var/datum/effect/system/reagents_explosion/e = new()
e.set_up(round (created_volume/10, 1), location, 0, 0)
e.start()
@@ -277,7 +277,7 @@ datum
result_amount = 2
on_reaction(var/datum/reagents/holder, var/created_volume)
var/location = get_turf(holder.my_atom)
var/datum/effects/system/reagents_explosion/e = new()
var/datum/effect/system/reagents_explosion/e = new()
e.set_up(round (created_volume/2, 1), location, 0, 0)
e.start()
@@ -299,7 +299,7 @@ datum
result_amount = null
on_reaction(var/datum/reagents/holder, var/created_volume)
var/location = get_turf(holder.my_atom)
var/datum/effects/system/spark_spread/s = new /datum/effects/system/spark_spread
var/datum/effect/system/spark_spread/s = new /datum/effect/system/spark_spread
s.set_up(2, 1, location)
s.start()
for(var/mob/living/carbon/M in viewers(world.view, location))
@@ -352,7 +352,7 @@ datum
secondary = 1
on_reaction(var/datum/reagents/holder, var/created_volume)
var/location = get_turf(holder.my_atom)
var/datum/effects/system/bad_smoke_spread/S = new /datum/effects/system/bad_smoke_spread
var/datum/effect/system/bad_smoke_spread/S = new /datum/effect/system/bad_smoke_spread
S.attach(location)
S.set_up(10, 0, location)
playsound(location, 'smoke.ogg', 50, 1, -3)
@@ -378,7 +378,7 @@ datum
secondary = 1
on_reaction(var/datum/reagents/holder, var/created_volume)
var/location = get_turf(holder.my_atom)
var/datum/effects/system/chem_smoke_spread/S = new /datum/effects/system/chem_smoke_spread
var/datum/effect/system/chem_smoke_spread/S = new /datum/effect/system/chem_smoke_spread
S.attach(location)
S.set_up(holder, 10, 0, location)
playsound(location, 'smoke.ogg', 50, 1, -3)
@@ -438,7 +438,7 @@ datum
//for(var/datum/reagent/R in holder.reagent_list)
// world << "[R.name] = [R.volume]"
var/datum/effects/system/foam_spread/s = new()
var/datum/effect/system/foam_spread/s = new()
s.set_up(created_volume, location, holder, 0)
s.start()
holder.clear_reagents()
@@ -460,7 +460,7 @@ datum
for(var/mob/M in viewers(5, location))
M << "\red The solution spews out a metalic foam!"
var/datum/effects/system/foam_spread/s = new()
var/datum/effect/system/foam_spread/s = new()
s.set_up(created_volume/2, location, holder, 1)
s.start()
return
@@ -480,7 +480,7 @@ datum
for(var/mob/M in viewers(5, location))
M << "\red The solution spews out a metalic foam!"
var/datum/effects/system/foam_spread/s = new()
var/datum/effect/system/foam_spread/s = new()
s.set_up(created_volume/2, location, holder, 2)
s.start()
return
@@ -537,7 +537,7 @@ datum
required_other = 2
on_reaction(var/datum/reagents/holder, var/created_volume)
var/location = get_turf(holder.my_atom)
var/datum/effects/system/reagents_explosion/e = new()
var/datum/effect/system/reagents_explosion/e = new()
e.set_up(round (created_volume/10, 1), location, 0, 0)
e.start()
@@ -672,7 +672,7 @@ datum
required_other = 4
on_reaction(var/datum/reagents/holder, var/created_volume)
var/list/critters = typesof(/obj/effects/critter) - /obj/effects/critter // list of possible critters
var/list/critters = typesof(/obj/effect/critter) - /obj/effect/critter // list of possible critters
playsound(get_turf_loc(holder.my_atom), 'phasein.ogg', 100, 1)
@@ -681,7 +681,7 @@ datum
for(var/i = 1, i <= created_volume, i++)
var/chosen = pick(critters)
var/obj/effects/critter/C = new chosen
var/obj/effect/critter/C = new chosen
C.loc = get_turf_loc(holder.my_atom)
if(prob(50))
for(var/j = 1, j <= rand(1, 3), j++)
@@ -759,7 +759,7 @@ datum
//for(var/datum/reagent/R in holder.reagent_list)
// world << "[R.name] = [R.volume]"
var/datum/effects/system/foam_spread/s = new()
var/datum/effect/system/foam_spread/s = new()
s.set_up(created_volume, location, holder, 0)
s.start()
holder.clear_reagents()
+35 -35
View File
@@ -225,7 +225,7 @@
G.reagents.trans_to(src, G.reagents.total_volume)
if(src.reagents.total_volume) //The possible reactions didnt use up all reagents.
var/datum/effects/system/steam_spread/steam = new /datum/effects/system/steam_spread()
var/datum/effect/system/steam_spread/steam = new /datum/effect/system/steam_spread()
steam.set_up(10, 0, get_turf(src))
steam.attach(src)
steam.start()
@@ -309,7 +309,7 @@
beakers += B2
icon_state = "chemg_locked"
/obj/effects/syringe_gun_dummy
/obj/effect/syringe_gun_dummy
name = ""
desc = ""
icon = 'chemical.dmi'
@@ -363,11 +363,11 @@
proc
fire_syringe(atom/target, mob/user)
if (locate (/obj/station_objects/table, src.loc))
if (locate (/obj/structure/table, src.loc))
return
else
var/turf/trg = get_turf(target)
var/obj/effects/syringe_gun_dummy/D = new/obj/effects/syringe_gun_dummy(get_turf(src))
var/obj/effect/syringe_gun_dummy/D = new/obj/effect/syringe_gun_dummy(get_turf(src))
var/obj/item/weapon/reagent_containers/syringe/S = syringes[1]
S.reagents.trans_to(D, S.reagents.total_volume)
syringes -= S
@@ -441,11 +441,11 @@
proc
fire_syringe(atom/target, mob/user)
if (locate (/obj/station_objects/table, src.loc))
if (locate (/obj/structure/table, src.loc))
return
else
var/turf/trg = get_turf(target)
var/obj/effects/syringe_gun_dummy/D = new/obj/effects/syringe_gun_dummy(get_turf(src))
var/obj/effect/syringe_gun_dummy/D = new/obj/effect/syringe_gun_dummy(get_turf(src))
var/obj/item/weapon/reagent_containers/syringe/S = syringes[1]
S.reagents.trans_to(D, S.reagents.total_volume)
syringes -= S
@@ -480,7 +480,7 @@
return
/obj/station_objects/reagent_dispensers
/obj/structure/reagent_dispensers
name = "Dispenser"
desc = "..."
icon = 'objects.dmi'
@@ -501,7 +501,7 @@
reagents = R
R.my_atom = src
if (!possible_transfer_amounts)
src.verbs -= /obj/station_objects/reagent_dispensers/verb/set_APTFT
src.verbs -= /obj/structure/reagent_dispensers/verb/set_APTFT
..()
examine()
@@ -530,12 +530,12 @@
return
if(2.0)
if (prob(50))
new /obj/effects/water(src.loc)
new /obj/effect/water(src.loc)
del(src)
return
if(3.0)
if (prob(5))
new /obj/effects/water(src.loc)
new /obj/effect/water(src.loc)
del(src)
return
else
@@ -543,7 +543,7 @@
blob_act()
if(prob(50))
new /obj/effects/water(src.loc)
new /obj/effect/water(src.loc)
del(src)
@@ -601,9 +601,9 @@
var/list/can_be_placed_into = list(
/obj/machinery/chem_master/,
/obj/station_objects/table,
/obj/station_objects/secure_closet,
/obj/station_objects/closet,
/obj/structure/table,
/obj/structure/secure_closet,
/obj/structure/closet,
/obj/machinery/sink,
/obj/item/weapon/storage,
/obj/machinery/atmospherics/unary/cryo_cell,
@@ -639,7 +639,7 @@
src.reagents.reaction(target, TOUCH)
spawn(5) src.reagents.clear_reagents()
return
else if(istype(target, /obj/station_objects/reagent_dispensers)) //A dispenser. Transfer FROM it TO us.
else if(istype(target, /obj/structure/reagent_dispensers)) //A dispenser. Transfer FROM it TO us.
if(!target.reagents.total_volume && target.reagents)
user << "\red [target] is empty."
@@ -717,7 +717,7 @@
else
if(!target.is_open_container() && !istype(target,/obj/station_objects/reagent_dispensers))
if(!target.is_open_container() && !istype(target,/obj/structure/reagent_dispensers))
user << "\red You cannot directly remove reagents from [target]."
return
@@ -770,7 +770,7 @@
else
if(!target.is_open_container() && !istype(target,/obj/station_objects/reagent_dispensers))
if(!target.is_open_container() && !istype(target,/obj/structure/reagent_dispensers))
user << "\red You cannot directly remove reagents from [target]."
return
@@ -917,7 +917,7 @@
user << "\red [target] is empty."
return
if(!target.is_open_container() && !istype(target,/obj/station_objects/reagent_dispensers) && !istype(target,/obj/item/metroid_core))
if(!target.is_open_container() && !istype(target,/obj/structure/reagent_dispensers) && !istype(target,/obj/item/metroid_core))
user << "\red You cannot directly remove reagents from this object."
return
@@ -1041,7 +1041,7 @@
user << "\red [target] is empty."
return
if(!target.is_open_container() && !istype(target,/obj/station_objects/reagent_dispensers))
if(!target.is_open_container() && !istype(target,/obj/structure/reagent_dispensers))
user << "\red You cannot directly remove reagents from this object."
return
@@ -1165,7 +1165,7 @@
var/bitecount = 0
var/trash = null
//Placeholder for effects that trigger on eating that aren't tied to reagents.
//Placeholder for effect that trigger on eating that aren't tied to reagents.
proc/On_Consume()
if (!trash) return
if(!reagents.total_volume)
@@ -1327,7 +1327,7 @@
return 1
if ( \
!isturf(src.loc) || \
!(locate(/obj/station_objects/table) in src.loc) && \
!(locate(/obj/structure/table) in src.loc) && \
!(locate(/obj/machinery/optable) in src.loc) && \
!(locate(/obj/item/weapon/tray) in src.loc) \
)
@@ -1448,7 +1448,7 @@
afterattack(obj/target, mob/user , flag)
if(istype(target, /obj/station_objects/reagent_dispensers)) //A dispenser. Transfer FROM it TO us.
if(istype(target, /obj/structure/reagent_dispensers)) //A dispenser. Transfer FROM it TO us.
if(!target.reagents.total_volume)
user << "\red [target] is empty."
@@ -1670,7 +1670,7 @@
overlays = null
if(reagents.total_volume)
var/obj/effects/overlay = new/obj
var/obj/effect/overlay = new/obj
overlay.icon = 'beaker1.dmi'
var/percent = round((reagents.total_volume / volume) * 100)
switch(percent)
@@ -1749,7 +1749,7 @@
if(reagents.total_volume)
var/obj/effects/overlay = new/obj
var/obj/effect/overlay = new/obj
overlay.icon = 'beaker2.dmi'
var/percent = round((reagents.total_volume / volume) * 100)
switch(percent)
@@ -1928,7 +1928,7 @@
var/list/data = list("viruses"= list(F))
reagents.add_reagent("blood", 20, data)
/*
/obj/item/weapon/reagent_containers/glass/bottle/gbs
name = "GBS culture bottle"
desc = "A small bottle. Contains Gravitokinetic Bipotential SADS+ culture in synthblood medium."//Or simply - General BullShit
@@ -1942,8 +1942,8 @@
R.my_atom = src
var/datum/disease/F = new /datum/disease/gbs
var/list/data = list("virus"= F)
R.add_reagent("blood", 20, data) -- No.
*/
R.add_reagent("blood", 20, data)
/obj/item/weapon/reagent_containers/glass/bottle/fake_gbs
name = "GBS culture bottle"
desc = "A small bottle. Contains Gravitokinetic Bipotential SADS- culture in synthblood medium."//Or simply - General BullShit
@@ -2138,7 +2138,7 @@
return
afterattack(obj/target, mob/user , flag)
if(istype(target, /obj/station_objects/reagent_dispensers)) //A dispenser. Transfer FROM it TO us.
if(istype(target, /obj/structure/reagent_dispensers)) //A dispenser. Transfer FROM it TO us.
if(!target.reagents.total_volume)
user << "\red [target] is empty."
@@ -2661,7 +2661,7 @@
reagents.add_reagent("dexalin", 30)
//Dispensers
/obj/station_objects/reagent_dispensers/watertank
/obj/structure/reagent_dispensers/watertank
name = "watertank"
desc = "A watertank"
icon = 'objects.dmi'
@@ -2671,7 +2671,7 @@
..()
reagents.add_reagent("water",1000)
/obj/station_objects/reagent_dispensers/fueltank
/obj/structure/reagent_dispensers/fueltank
name = "fueltank"
desc = "A fueltank"
icon = 'objects.dmi'
@@ -2681,17 +2681,17 @@
..()
reagents.add_reagent("fuel",1000)
/obj/station_objects/reagent_dispensers/fueltank/blob_act()
/obj/structure/reagent_dispensers/fueltank/blob_act()
explosion(src.loc,0,1,5,7,10)
if(src)
del(src)
/obj/station_objects/reagent_dispensers/fueltank/ex_act()
/obj/structure/reagent_dispensers/fueltank/ex_act()
explosion(src.loc,-1,0,2)
if(src)
del(src)
/obj/station_objects/reagent_dispensers/water_cooler
/obj/structure/reagent_dispensers/water_cooler
name = "Water-Cooler"
desc = "A machine that dispenses water to drink"
amount_per_transfer_from_this = 5
@@ -2704,7 +2704,7 @@
reagents.add_reagent("water",500)
/obj/station_objects/reagent_dispensers/beerkeg
/obj/structure/reagent_dispensers/beerkeg
name = "beer keg"
desc = "A beer keg"
icon = 'objects.dmi'
@@ -2714,7 +2714,7 @@
..()
reagents.add_reagent("beer",1000)
/obj/station_objects/reagent_dispensers/beerkeg/blob_act()
/obj/structure/reagent_dispensers/beerkeg/blob_act()
explosion(src.loc,0,3,5,7,10)
del(src)
+2 -2
View File
@@ -24,7 +24,7 @@
//Important parts of the suit.
mob/living/carbon/affecting = null//The wearer.
obj/item/weapon/cell/cell//Starts out with a high-capacity cell using New().
datum/effects/system/spark_spread/spark_system//To create sparks.
datum/effect/system/spark_spread/spark_system//To create sparks.
reagent_list[] = list("tricordrazine","dexalinp","spaceacillin","anti_toxin","nutriment","radium","hyronalin")//The reagents ids which are added to the suit at New().
stored_research[]//For stealing station research.
obj/item/weapon/disk/tech_disk/t_disk//To copy design onto disk.
@@ -59,6 +59,6 @@
//Onboard AI related variables.
mob/living/silicon/ai/AI//If there is an AI inside the suit.
obj/item/device/paicard/pai//A slot for a pAI device
obj/effects/overlay/hologram//Is the AI hologram on or off? Visible only to the wearer of the suit. This works by attaching an image to a blank overlay.
obj/effect/overlay/hologram//Is the AI hologram on or off? Visible only to the wearer of the suit. This works by attaching an image to a blank overlay.
flush = 0//If an AI purge is in progress.
s_control = 1//If user in control of the suit.
+1 -1
View File
@@ -1,4 +1,4 @@
/obj/effects/critter
/obj/effect/critter
name = "Critter"
desc = "Generic critter."
icon = 'critter.dmi'
+7 -7
View File
@@ -1,5 +1,5 @@
/obj/effects/critter
/obj/effect/critter
New()
spawn(0) process()//I really dont like this much but it seems to work well
@@ -123,11 +123,11 @@
break
if(!src.attack)
for(var/obj/effects/critter/C in view(src.seekrange,src))
if(istype(C, /obj/effects/critter) && !src.atkcritter) continue
for(var/obj/effect/critter/C in view(src.seekrange,src))
if(istype(C, /obj/effect/critter) && !src.atkcritter) continue
if(istype(C, /obj/mecha) && !src.atkmech) continue
if(C.health <= 0) continue
if(istype(C, /obj/effects/critter) && src.atkcritter)
if(istype(C, /obj/effect/critter) && src.atkcritter)
if((istype(C, src.type) && !src.atksame) || (C == src)) continue
src.attack = 1
if(istype(C, /obj/mecha) && src.atkmech) src.attack = 1
@@ -193,7 +193,7 @@
/*TODO: Figure out how to handle special things like this dont really want to give it to every critter
/obj/effects/critter/proc/CritterTeleport(var/telerange, var/dospark, var/dosmoke)
/obj/effect/critter/proc/CritterTeleport(var/telerange, var/dospark, var/dosmoke)
if (!src.alive) return
var/list/randomturfs = new/list()
for(var/turf/T in orange(src, telerange))
@@ -201,11 +201,11 @@
randomturfs.Add(T)
src.loc = pick(randomturfs)
if (dospark)
var/datum/effects/system/spark_spread/s = new /datum/effects/system/spark_spread
var/datum/effect/system/spark_spread/s = new /datum/effect/system/spark_spread
s.set_up(5, 1, src)
s.start()
if (dosmoke)
var/datum/effects/system/harmless_smoke_spread/smoke = new /datum/effects/system/harmless_smoke_spread()
var/datum/effect/system/harmless_smoke_spread/smoke = new /datum/effect/system/harmless_smoke_spread()
smoke.set_up(10, 0, src.loc)
smoke.start()
src.task = "thinking"
+1 -1
View File
@@ -1,7 +1,7 @@
/*
Contains the procs that control attacking critters
*/
/obj/effects/critter
/obj/effect/critter
attackby(obj/item/weapon/W as obj, mob/living/user as mob)
..()
+9 -9
View File
@@ -1,4 +1,4 @@
/obj/effects/critter/creature
/obj/effect/critter/creature
name = "creature"
desc = "A sanity-destroying otherthing."
icon = 'otherthing.dmi'
@@ -22,7 +22,7 @@
attacktext = "chomps"
/obj/effects/critter/roach
/obj/effect/critter/roach
name = "cockroach"
desc = "An unpleasant insect that lives in filthy places."
icon_state = "roach"
@@ -40,7 +40,7 @@
del(src)
/obj/effects/critter/killertomato
/obj/effect/critter/killertomato
name = "killer tomato"
desc = "Oh shit, you're really fucked now."
icon_state = "killertomato"
@@ -74,7 +74,7 @@
/obj/effects/critter/spore
/obj/effect/critter/spore
name = "plasma spore"
desc = "A barely intelligent colony of organisms. Very volatile."
icon_state = "spore"
@@ -104,7 +104,7 @@
src.Die()
/obj/effects/critter/blob
/obj/effect/critter/blob
name = "blob"
desc = "Some blob thing."
icon_state = "blob"
@@ -129,7 +129,7 @@
/obj/effects/critter/spesscarp
/obj/effect/critter/spesscarp
name = "Spess Carp"
desc = "A ferocious, fang-bearing creature that resembles a fish."
icon_state = "spesscarp"
@@ -181,7 +181,7 @@
/obj/effects/critter/spesscarp/elite
/obj/effect/critter/spesscarp/elite
desc = "Oh shit, you're really fucked now. It has an evil gleam in its eye."
health = 50
max_health = 50
@@ -193,7 +193,7 @@
/obj/effects/critter/walkingmushroom
/obj/effect/critter/walkingmushroom
name = "Walking Mushroom"
desc = "A...huge...mushroom...with legs!?"
icon_state = "walkingmushroom"
@@ -227,7 +227,7 @@
/obj/effects/critter/lizard
/obj/effect/critter/lizard
name = "Lizard"
desc = "A cute tiny lizard."
icon_state = "lizard"
+19 -19
View File
@@ -2,7 +2,7 @@
damage = 5
mobdamage = list(BRUTE = 5, BURN = 0, TOX = 0, OXY = 0, CLONE = 0)
/obj/effects/critter/hivebot
/obj/effect/critter/hivebot
name = "Hivebot"
desc = "A small robot"
icon = 'hivebot.dmi'
@@ -39,8 +39,8 @@
walk_to(src,0)
src.visible_message("<b>[src]</b> blows apart!")
var/turf/Ts = get_turf(src)
new /obj/effects/decal/cleanable/robot_debris(Ts)
var/datum/effects/system/spark_spread/s = new /datum/effects/system/spark_spread
new /obj/effect/decal/cleanable/robot_debris(Ts)
var/datum/effect/system/spark_spread/s = new /datum/effect/system/spark_spread
s.set_up(3, 1, src)
s.start()
del(src)
@@ -71,11 +71,11 @@
break
if(!src.attack)
for(var/obj/effects/critter/C in view(src.seekrange,src))
if(istype(C, /obj/effects/critter) && !src.atkcritter) continue
for(var/obj/effect/critter/C in view(src.seekrange,src))
if(istype(C, /obj/effect/critter) && !src.atkcritter) continue
if(C.health <= 0) continue
if(istype(C, /obj/effects/critter) && src.atkcritter)
if((istype(C, /obj/effects/critter/hivebot) && !src.atksame) || (C == src)) continue
if(istype(C, /obj/effect/critter) && src.atkcritter)
if((istype(C, /obj/effect/critter/hivebot) && !src.atksame) || (C == src)) continue
T = C
break
@@ -142,23 +142,23 @@
/obj/effects/critter/hivebot/range
/obj/effect/critter/hivebot/range
name = "Hivebot"
desc = "A smallish robot, this one is armed!"
ranged = 1
/obj/effects/critter/hivebot/rapid
/obj/effect/critter/hivebot/rapid
ranged = 1
rapid = 1
/obj/effects/critter/hivebot/strong
/obj/effect/critter/hivebot/strong
name = "Strong Hivebot"
desc = "A robot, this one is armed and looks tough!"
health = 50
armor = 10
ranged = 1
/obj/effects/critter/hivebot/borg
/obj/effect/critter/hivebot/borg
health = 20
atksilicon = 1
ranged = 1
@@ -166,7 +166,7 @@
/obj/effects/critter/hivebot/tele//this still needs work
/obj/effect/critter/hivebot/tele//this still needs work
name = "Beacon"
desc = "Some odd beacon thing"
icon = 'Hivebot.dmi'
@@ -198,7 +198,7 @@
New()
..()
var/datum/effects/system/harmless_smoke_spread/smoke = new /datum/effects/system/harmless_smoke_spread()
var/datum/effect/system/harmless_smoke_spread/smoke = new /datum/effect/system/harmless_smoke_spread()
smoke.set_up(5, 0, src.loc)
smoke.start()
for(var/mob/O in viewers(src, null))
@@ -218,11 +218,11 @@
bot_amt--
switch(bot_type)
if("norm")
new /obj/effects/critter/hivebot(get_turf(src))
new /obj/effect/critter/hivebot(get_turf(src))
if("range")
new /obj/effects/critter/hivebot/range(get_turf(src))
new /obj/effect/critter/hivebot/range(get_turf(src))
if("rapid")
new /obj/effects/critter/hivebot/rapid(get_turf(src))
new /obj/effect/critter/hivebot/rapid(get_turf(src))
spawn(100)
del(src)
return
@@ -237,14 +237,14 @@
turn_on = 2
..()
/obj/effects/critter/hivebot/tele/massive
/obj/effect/critter/hivebot/tele/massive
bot_type = "norm"
bot_amt = 30
auto_spawn = 0
/obj/effects/critter/hivebot/tele/ranged
/obj/effect/critter/hivebot/tele/ranged
bot_type = "range"
/obj/effects/critter/hivebot/tele/rapid
/obj/effect/critter/hivebot/tele/rapid
bot_type = "rapid"
spawn_delay = 800
+3 -3
View File
@@ -6,9 +6,9 @@
// already filled with reagents and are destroyed when empty. Additionally, they make a "munching" noise when eaten.
//Notes by Darem: Food in the "snacks" subtype can hold a maximum of 50 units Generally speaking, you don't want to go over 40
// total for the item because you want to leave space for extra condiments. If you want effects besides healing, add a reagent for
// total for the item because you want to leave space for extra condiments. If you want effect besides healing, add a reagent for
// it. Try to stick to existing reagents when possible (so if you want a stronger healing effect, just use Tricordrazine). On use
// effects (such as the old officer eating a donut code) requires a unique reagent (unless you can figure out a better way).
// effect (such as the old officer eating a donut code) requires a unique reagent (unless you can figure out a better way).
//The nutriment reagent and bitesize variable replace the old heal_amt and amount variables. Each unit of nutriment is equal to
// 2 of the old heal_amt variable. Bitesize is the rate at which the reagents are consumed. So if you have 6 nutriment and a
@@ -115,7 +115,7 @@
throw_impact(atom/hit_atom)
..()
new/obj/effects/decal/cleanable/egg_smudge(src.loc)
new/obj/effect/decal/cleanable/egg_smudge(src.loc)
src.visible_message("\red [src.name] has been squashed.","\red You hear a smack.")
del(src)
+2 -2
View File
@@ -26,8 +26,8 @@
/obj/machinery/mineral/unloading_machine/process()
if (src.output && src.input)
if (locate(/obj/station_objects/ore_box, input.loc))
var/obj/station_objects/ore_box/BOX = locate(/obj/station_objects/ore_box, input.loc)
if (locate(/obj/structure/ore_box, input.loc))
var/obj/structure/ore_box/BOX = locate(/obj/structure/ore_box, input.loc)
var/i = 0
for (var/obj/item/weapon/ore/O in BOX.contents)
BOX.contents -= O
+4 -4
View File
@@ -1,7 +1,7 @@
/**********************Light************************/
//this item is intended to give the effect of entering the mine, so that light gradually fades
/obj/effects/light_emitter
/obj/effect/light_emitter
name = "Light-emtter"
anchored = 1
unacidable = 1
@@ -9,7 +9,7 @@
/**********************Miner Lockers**************************/
/obj/station_objects/secure_closet/miner
/obj/structure/secure_closet/miner
name = "Miner's Equipment"
icon_state = "miningsec1"
icon_closed = "miningsec"
@@ -18,7 +18,7 @@
icon_off = "miningsecoff"
req_access = list(access_mining)
/obj/station_objects/secure_closet/miner/New()
/obj/structure/secure_closet/miner/New()
..()
sleep(2)
new /obj/item/device/analyzer(src)
@@ -220,7 +220,7 @@ proc/move_mining_shuttle()
/**********************Mining car (Crate like thing, not the rail car)**************************/
/obj/station_objects/crate/miningcar
/obj/structure/crate/miningcar
desc = "A mining car. This one doesn't work on rails, but has to be dragged."
name = "Mining car (not for rails)"
icon = 'storage.dmi'
+1 -1
View File
@@ -186,7 +186,7 @@
var/old_dir = dir
for(var/direction in cardinal)
for(var/obj/effects/glowshroom/shroom in get_step(src,direction))
for(var/obj/effect/glowshroom/shroom in get_step(src,direction))
if(!shroom.floor) //shrooms drop to the floor
shroom.floor = 1
shroom.icon_state = "glowshroomf"
+4 -4
View File
@@ -37,14 +37,14 @@
/**********************Ore box**************************/
/obj/station_objects/ore_box
/obj/structure/ore_box
icon = 'mining.dmi'
icon_state = "orebox"
name = "Ore Box"
desc = "It's heavy"
density = 1
/obj/station_objects/ore_box/attackby(obj/item/weapon/W as obj, mob/user as mob)
/obj/structure/ore_box/attackby(obj/item/weapon/W as obj, mob/user as mob)
if (istype(W, /obj/item/weapon/ore))
src.contents += W;
if (istype(W, /obj/item/weapon/satchel))
@@ -52,7 +52,7 @@
user << "\blue You empty the satchel into the box."
return
/obj/station_objects/ore_box/attack_hand(obj, mob/user as mob)
/obj/structure/ore_box/attack_hand(obj, mob/user as mob)
var/amt_gold = 0
var/amt_silver = 0
var/amt_diamond = 0
@@ -107,7 +107,7 @@
user << browse("[dat]", "window=orebox")
return
/obj/station_objects/ore_box/Topic(href, href_list)
/obj/structure/ore_box/Topic(href, href_list)
if(..())
return
usr.machine = src
+1 -1
View File
@@ -123,7 +123,7 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp
client.update_admins(rank)
if(iscultist(corpse) && corpse.ajourn==1 && corpse.stat!=2) //checks if it's an astral-journeying cultistm if it is and he's not on an astral journey rune, re-entering won't work
var/S=0
for(var/obj/effects/rune/R in world)
for(var/obj/effect/rune/R in world)
if(corpse.loc==R.loc && R.word1 == wordhell && R.word2 == wordtravel && R.word3 == wordself)
S=1
if(!S)
+9 -9
View File
@@ -94,7 +94,7 @@
if(!T)
creating_blob = 0
return
var/obj/effects/blob/B = (locate(/obj/effects/blob) in T)
var/obj/effect/blob/B = (locate(/obj/effect/blob) in T)
if(!B)//We are on a blob
usr << "There is no blob here!"
creating_blob = 0
@@ -103,12 +103,12 @@
usr << "Unable to use this blob, find another one."
creating_blob = 0
return
for(var/obj/effects/blob/blob in orange(5))
for(var/obj/effect/blob/blob in orange(5))
if(blob.blobtype == "Node")
usr << "There is another node nearby, move away from it!"
creating_blob = 0
return
for(var/obj/effects/blob/blob in orange(2))
for(var/obj/effect/blob/blob in orange(2))
if(blob.blobtype == "Factory")
usr << "There is a porus blob nearby, move away from it!"
creating_blob = 0
@@ -129,7 +129,7 @@
if(!T)
creating_blob = 0
return
var/obj/effects/blob/B = (locate(/obj/effects/blob) in T)
var/obj/effect/blob/B = (locate(/obj/effect/blob) in T)
if(!B)
usr << "There is no blob here!"
creating_blob = 0
@@ -138,7 +138,7 @@
usr << "Unable to use this blob, find another one."
creating_blob = 0
return
for(var/obj/effects/blob/blob in orange(2))//Not right next to nodes/cores
for(var/obj/effect/blob/blob in orange(2))//Not right next to nodes/cores
if(blob.blobtype == "Node")
usr << "There is a node nearby, move away from it!"
creating_blob = 0
@@ -168,7 +168,7 @@
if(!T)
creating_blob = 0
return
var/obj/effects/blob/B = (locate(/obj/effects/blob) in T)
var/obj/effect/blob/B = (locate(/obj/effect/blob) in T)
if(!B)
usr << "There is no blob here!"
creating_blob = 0
@@ -192,13 +192,13 @@
if(!T)
creating_blob = 0
return
var/obj/effects/blob/B = (locate(/obj/effects/blob) in T)
var/obj/effect/blob/B = (locate(/obj/effect/blob) in T)
if(B)
usr << "There is a blob here!"
creating_blob = 0
return
if(prob(50))
new/obj/effects/blob(src.loc)
new/obj/effect/blob(src.loc)
src << "\blue Success."
else
src << "\red Creation failed."
@@ -240,7 +240,7 @@
if(G_found.client)
G_found.client.screen.len = null
var/mob/living/blob/B = new/mob/living/blob(locate(0,0,1))//temp area also just in case should do this better but tired
for(var/obj/effects/blob/core in world)
for(var/obj/effect/blob/core in world)
if(core)
if(core.blobtype == "Core")
B.loc = core.loc
@@ -27,7 +27,7 @@ Doesn't work on other aliens/AI.*/
toxloss -= 100
for(var/mob/O in viewers(src, null))
O.show_message(text("\green <B>[src] has planted some alien weeds!</B>"), 1)
var/obj/effects/alien/weeds/W = new (loc)
var/obj/effect/alien/weeds/W = new (loc)
W.Life()
return
@@ -38,7 +38,7 @@ Doesn't work on other aliens/AI.*/
if(powerc(5))
toxloss -= 5
for(var/obj/effects/alien/facehugger/F in range(8,src))
for(var/obj/effect/alien/facehugger/F in range(8,src))
F.call_to(src)
emote("roar")
return
@@ -80,7 +80,7 @@ The first proc defines the acid throw function while the other two work in the g
I kind of like the right click only--the window version can get a little confusing. Perhaps something telling the alien they need to right click?
/N*/
/obj/proc/acid()
var/obj/effects/alien/acid/A = new(src.loc)
var/obj/effect/alien/acid/A = new(src.loc)
A.target = src
for(var/mob/M in viewers(src, null))
M.show_message(text("\green <B>[src] vomits globs of vile stuff all over [src]!</B>"), 1)
@@ -167,12 +167,12 @@ I kind of like the right click only--the window version can get a little confusi
for(var/mob/O in viewers(src, null))
O.show_message(text("<B>[src] scrambles into the ventillation ducts!</B>"), 1)
var/list/huggers = list()
for(var/obj/effects/alien/facehugger/F in view(3, src))
if(istype(F, /obj/effects/alien/facehugger))
for(var/obj/effect/alien/facehugger/F in view(3, src))
if(istype(F, /obj/effect/alien/facehugger))
huggers.Add(F)
loc = vent_found
for(var/obj/effects/alien/facehugger/F in huggers)
for(var/obj/effect/alien/facehugger/F in huggers)
F.loc = vent_found
var/travel_time = get_dist(loc, target_vent.loc)
@@ -186,7 +186,7 @@ I kind of like the right click only--the window version can get a little confusi
target_vent = vent_found //travel back. No additional time required.
src << "\red The vent you were heading to appears to be welded."
loc = target_vent.loc
for(var/obj/effects/alien/facehugger/F in huggers)
for(var/obj/effect/alien/facehugger/F in huggers)
F.loc = loc
else
@@ -47,7 +47,7 @@
O.show_message(text("\red <B>[src] vomits up a thick purple substance and begins to shape it!</B>"), 1)
switch(choice)
if("resin wall")
new /obj/effects/alien/resin/wall(loc)
new /obj/effect/alien/resin/wall(loc)
if("resin membrane")
new /obj/effects/alien/resin/membrane(loc)
new /obj/effect/alien/resin/membrane(loc)
return
@@ -64,7 +64,7 @@
handle_environment()
//If there are alien weeds on the ground then heal if needed or give some toxins
if(locate(/obj/effects/alien/weeds) in loc)
if(locate(/obj/effect/alien/weeds) in loc)
if(health >= 150)
toxloss += 5
if(toxloss > max_plasma)
@@ -64,7 +64,7 @@
handle_environment()
//If there are alien weeds on the ground then heal if needed or give some toxins
if(locate(/obj/effects/alien/weeds) in loc)
if(locate(/obj/effect/alien/weeds) in loc)
if(health >= 125)
toxloss += 10
if(toxloss > max_plasma)
@@ -40,9 +40,9 @@
now_pushing = 1
if (!AM.anchored)
var/t = get_dir(src, AM)
if (istype(AM, /obj/station_objects/window))
if (istype(AM, /obj/structure/window))
if(AM:ini_dir == NORTHWEST || AM:ini_dir == NORTHEAST || AM:ini_dir == SOUTHWEST || AM:ini_dir == SOUTHEAST)
for(var/obj/station_objects/window/win in get_step(AM,t))
for(var/obj/structure/window/win in get_step(AM,t))
now_pushing = 0
return
step(AM, t)
@@ -290,7 +290,7 @@
if (emptyHand)
head.DblClick()
return
if (( istype(W, /obj/effects/alien/head) ))
if (( istype(W, /obj/effect/alien/head) ))
u_equip(W)
head = W
return
@@ -327,7 +327,7 @@
if ((M.client && !( M.blinded )))
M.show_message(text("\red [] has been hit by []", src, O), 1)
if (health > 0)
bruteloss += (istype(O, /obj/effects/meteor/small) ? 10 : 25)
bruteloss += (istype(O, /obj/effect/meteor/small) ? 10 : 25)
fireloss += 30
updatehealth()
@@ -392,9 +392,9 @@
M.pulling = t
else
if (pulling)
if (istype(pulling, /obj/station_objects/window))
if (istype(pulling, /obj/structure/window))
if(pulling:ini_dir == NORTHWEST || pulling:ini_dir == NORTHEAST || pulling:ini_dir == SOUTHWEST || pulling:ini_dir == SOUTHEAST)
for(var/obj/station_objects/window/win in get_step(pulling,get_dir(pulling.loc, T)))
for(var/obj/structure/window/win in get_step(pulling,get_dir(pulling.loc, T)))
pulling = null
if (pulling)
step(pulling, get_dir(pulling.loc, T))
@@ -418,7 +418,7 @@
overlays = null
if(buckled)
if(istype(buckled, /obj/station_objects/stool/bed))
if(istype(buckled, /obj/structure/stool/bed))
lying = 1
else
lying = 0
@@ -651,7 +651,7 @@
if (stunned < power)
stunned = power
var/datum/effects/system/spark_spread/s = new /datum/effects/system/spark_spread
var/datum/effect/system/spark_spread/s = new /datum/effect/system/spark_spread
s.set_up(5, 1, src)
s.start()
@@ -697,7 +697,7 @@
if (((M.head && M.head.flags & 4) || ((M.wear_mask && !( M.wear_mask.flags & 32 )) || ((head && head.flags & 4) || (wear_mask && !( wear_mask.flags & 32 ))))))
M << "\blue <B>Remove that mask!</B>"
return
var/obj/effects/equip_e/human/O = new /obj/effects/equip_e/human( )
var/obj/effect/equip_e/human/O = new /obj/effect/equip_e/human( )
O.source = M
O.target = src
O.s_loc = M.loc
@@ -203,7 +203,7 @@
else if(istype(loc, /turf/))
var/breath_moles = 0
/*if(environment.return_pressure() > ONE_ATMOSPHERE)
// Loads of air around (pressure effects will be handled elsewhere), so lets just take a enough to fill our lungs at normal atmos pressure (using n = Pv/RT)
// Loads of air around (pressure effect will be handled elsewhere), so lets just take a enough to fill our lungs at normal atmos pressure (using n = Pv/RT)
breath_moles = (ONE_ATMOSPHERE*BREATH_VOLUME/R_IDEAL_GAS_EQUATION*environment.temperature)
else*/
// Not enough air around, take a percentage of what's there to model this properly
@@ -211,8 +211,8 @@
breath = loc.remove_air(breath_moles)
// Handle chem smoke effects -- Doohl
for(var/obj/effects/chem_smoke/smoke in view(1, src))
// Handle chem smoke effect -- Doohl
for(var/obj/effect/chem_smoke/smoke in view(1, src))
if(smoke.reagents.total_volume)
smoke.reagents.reaction(src, INGEST)
spawn(5)
@@ -293,7 +293,7 @@
handle_environment()
//If there are alien weeds on the ground then heal if needed or give some toxins
if(locate(/obj/effects/alien/weeds) in loc)
if(locate(/obj/effect/alien/weeds) in loc)
if(health >= 100)
toxloss += 15
if(toxloss > max_plasma)
@@ -560,7 +560,7 @@
check_if_buckled()
if (src.buckled)
src.lying = (istype(src.buckled, /obj/station_objects/stool/bed) ? 1 : 0)
src.lying = (istype(src.buckled, /obj/structure/stool/bed) ? 1 : 0)
if(src.lying)
src.drop_item()
src.density = 1
@@ -67,7 +67,7 @@
handle_environment()
//If there are alien weeds on the ground then heal if needed or give some toxins
if(locate(/obj/effects/alien/weeds) in loc)
if(locate(/obj/effect/alien/weeds) in loc)
if(health >= 250)
toxloss += 20
if(toxloss > max_plasma)
@@ -171,5 +171,5 @@
toxloss -= 200
for(var/mob/O in viewers(src, null))
O.show_message(text("\green <B>[src] has laid an egg!</B>"), 1)
new /obj/effects/alien/egg(loc)
new /obj/effect/alien/egg(loc)
return
@@ -243,7 +243,7 @@
if ((M.client && !( M.blinded )))
M.show_message(text("\red [] has been hit by []", src, O), 1)
if (health > 0)
bruteloss += (istype(O, /obj/effects/meteor/small) ? 10 : 25)
bruteloss += (istype(O, /obj/effect/meteor/small) ? 10 : 25)
fireloss += 30
updatehealth()
@@ -467,7 +467,7 @@
if ((M.head && M.head.flags & 4) || (M.wear_mask && !( M.wear_mask.flags & 32 )) )
M << "\blue <B>Remove that mask!</B>"
return
var/obj/effects/equip_e/human/O = new /obj/effects/equip_e/human( )
var/obj/effect/equip_e/human/O = new /obj/effect/equip_e/human( )
O.source = M
O.target = src
O.s_loc = M.loc
@@ -184,7 +184,7 @@
else if(istype(loc, /turf/))
var/breath_moles = 0
/*if(environment.return_pressure() > ONE_ATMOSPHERE)
// Loads of air around (pressure effects will be handled elsewhere), so lets just take a enough to fill our lungs at normal atmos pressure (using n = Pv/RT)
// Loads of air around (pressure effect will be handled elsewhere), so lets just take a enough to fill our lungs at normal atmos pressure (using n = Pv/RT)
breath_moles = (ONE_ATMOSPHERE*BREATH_VOLUME/R_IDEAL_GAS_EQUATION*environment.temperature)
else*/
// Not enough air around, take a percentage of what's there to model this properly
@@ -192,8 +192,8 @@
breath = loc.remove_air(breath_moles)
// Handle chem smoke effects -- Doohl
for(var/obj/effects/chem_smoke/smoke in view(1, src))
// Handle chem smoke effect -- Doohl
for(var/obj/effect/chem_smoke/smoke in view(1, src))
if(smoke.reagents.total_volume)
smoke.reagents.reaction(src, INGEST)
spawn(5)
@@ -274,7 +274,7 @@
handle_environment()
//If there are alien weeds on the ground then heal if needed or give some toxins
if(locate(/obj/effects/alien/weeds) in loc)
if(locate(/obj/effect/alien/weeds) in loc)
if(health >= 25)
toxloss += 5
else
@@ -491,7 +491,7 @@
check_if_buckled()
if (buckled)
lying = (istype(buckled, /obj/station_objects/stool/bed) ? 1 : 0)
lying = (istype(buckled, /obj/structure/stool/bed) ? 1 : 0)
if(lying)
drop_item()
density = 1
@@ -30,7 +30,7 @@
return
if(M.client)
M.client.mob = new/mob/living/carbon/alien/humanoid/special/snakeman(new/obj/effects/snake_egg(src.loc))
M.client.mob = new/mob/living/carbon/alien/humanoid/special/snakeman(new/obj/effect/snake_egg(src.loc))
visible_message("[src] injects [M] with an egg.")
visible_message("The egg absorbs [M]")
M.mutations |= HUSK
@@ -41,7 +41,7 @@
return
/obj/effects/snake_egg
/obj/effect/snake_egg
name = "Egg"
icon = 'alien.dmi'
icon_state = "egg"
+14 -14
View File
@@ -62,14 +62,14 @@
..()
organStructure = new /obj/effects/organstructure/human(src)
organStructure = new /obj/effect/organstructure/human(src)
/mob/living/carbon/human/cyborg
New()
..()
if(organStructure) //hacky, but it's not supposed to be in for a long time anyway
del(organStructure)
organStructure = new /obj/effects/organstructure/cyber(src)
organStructure = new /obj/effect/organstructure/cyber(src)
/mob/living/carbon/human/Bump(atom/movable/AM as mob|obj, yes)
if ((!( yes ) || now_pushing))
@@ -106,9 +106,9 @@
if (!AM.anchored)
var/t = get_dir(src, AM)
if (istype(AM, /obj/station_objects/window))
if (istype(AM, /obj/structure/window))
if(AM:ini_dir == NORTHWEST || AM:ini_dir == NORTHEAST || AM:ini_dir == SOUTHWEST || AM:ini_dir == SOUTHEAST)
for(var/obj/station_objects/window/win in get_step(AM,t))
for(var/obj/structure/window/win in get_step(AM,t))
now_pushing = 0
return
step(AM, t)
@@ -640,10 +640,10 @@
var/dam_zone = pick("chest", "chest", "chest", "head", "groin")
if (istype(organs[dam_zone], /datum/organ/external))
var/datum/organ/external/temp = organs[dam_zone]
if (istype(O, /obj/effects/immovablerod))
if (istype(O, /obj/effect/immovablerod))
temp.take_damage(101, 0)
else
temp.take_damage((istype(O, /obj/effects/meteor/small) ? 10 : 25), 30)
temp.take_damage((istype(O, /obj/effect/meteor/small) ? 10 : 25), 30)
UpdateDamageIcon()
updatehealth()
return
@@ -716,9 +716,9 @@
M.pulling = t
else
if (pulling)
if (istype(pulling, /obj/station_objects/window))
if (istype(pulling, /obj/structure/window))
if(pulling:ini_dir == NORTHWEST || pulling:ini_dir == NORTHEAST || pulling:ini_dir == SOUTHWEST || pulling:ini_dir == SOUTHEAST)
for(var/obj/station_objects/window/win in get_step(pulling,get_dir(pulling.loc, T)))
for(var/obj/structure/window/win in get_step(pulling,get_dir(pulling.loc, T)))
pulling = null
if (pulling)
step(pulling, get_dir(pulling.loc, T))
@@ -790,7 +790,7 @@
update_body()
if(buckled)
if(istype(buckled, /obj/station_objects/stool/bed))
if(istype(buckled, /obj/structure/stool/bed))
lying = 1
else
lying = 0
@@ -1436,7 +1436,7 @@
if (stunned < power)
stunned = power
var/datum/effects/system/spark_spread/s = new /datum/effects/system/spark_spread
var/datum/effect/system/spark_spread/s = new /datum/effect/system/spark_spread
s.set_up(5, 1, src)
s.start()
@@ -1484,7 +1484,7 @@
if (((M.head && M.head.flags & 4) || ((M.wear_mask && !( M.wear_mask.flags & 32 )) || ((head && head.flags & 4) || (wear_mask && !( wear_mask.flags & 32 ))))))
M << "\blue <B>Remove that mask!</B>"
return
var/obj/effects/equip_e/human/O = new /obj/effects/equip_e/human( )
var/obj/effect/equip_e/human/O = new /obj/effect/equip_e/human( )
O.source = M
O.target = src
O.s_loc = M.loc
@@ -1742,7 +1742,7 @@
/mob/living/carbon/human/var/co2overloadtime = null
/mob/living/carbon/human/var/temperature_resistance = T0C+75
/obj/effects/equip_e/human/process()
/obj/effect/equip_e/human/process()
if (item)
item.add_fingerprint(source)
if (!item)
@@ -1942,7 +1942,7 @@ The else statement is for equipping stuff to empty slots.
!canremove refers to variable of /obj/item/clothing which either allows or disallows that item to be removed.
It can still be worn/put on as normal.
*/
/obj/effects/equip_e/human/done()
/obj/effect/equip_e/human/done()
if(!source || !target) return
if(source.loc != s_loc) return
if(target.loc != t_loc) return
@@ -2676,7 +2676,7 @@ It can still be worn/put on as normal.
src << browse(null, t1)
if ((href_list["item"] && !( usr.stat ) && usr.canmove && !( usr.restrained() ) && in_range(src, usr) && ticker)) //if game hasn't started, can't make an equip_e
var/obj/effects/equip_e/human/O = new /obj/effects/equip_e/human( )
var/obj/effect/equip_e/human/O = new /obj/effect/equip_e/human( )
O.source = usr
O.target = src
O.item = usr.equipped()
+8 -8
View File
@@ -240,7 +240,7 @@
else if(istype(loc, /turf/))
var/breath_moles = 0
/*if(environment.return_pressure() > ONE_ATMOSPHERE)
// Loads of air around (pressure effects will be handled elsewhere), so lets just take a enough to fill our lungs at normal atmos pressure (using n = Pv/RT)
// Loads of air around (pressure effect will be handled elsewhere), so lets just take a enough to fill our lungs at normal atmos pressure (using n = Pv/RT)
breath_moles = (ONE_ATMOSPHERE*BREATH_VOLUME/R_IDEAL_GAS_EQUATION*environment.temperature)
else*/
// Not enough air around, take a percentage of what's there to model this properly
@@ -248,7 +248,7 @@
breath = loc.remove_air(breath_moles)
// Handle chem smoke effects -- Doohl
// Handle chem smoke effect -- Doohl
var/block = 0
if(wear_mask)
@@ -257,7 +257,7 @@
if(!block)
for(var/obj/effects/chem_smoke/smoke in view(1, src))
for(var/obj/effect/chem_smoke/smoke in view(1, src))
if(smoke.reagents.total_volume)
smoke.reagents.reaction(src, INGEST)
spawn(5)
@@ -760,7 +760,7 @@
see_invisible = 2
else if (seer)
var/obj/effects/rune/R = locate() in loc
var/obj/effect/rune/R = locate() in loc
if (istype(R) && R.word1 == wordsee && R.word2 == wordhell && R.word3 == wordjoin)
see_invisible = 15
else
@@ -841,7 +841,7 @@
else
see_in_dark = 2
var/seer = 0
for(var/obj/effects/rune/R in world)
for(var/obj/effect/rune/R in world)
if(loc==R.loc && R.word1==wordsee && R.word2==wordhell && R.word3==wordjoin)
seer = 1
if(!seer)
@@ -983,7 +983,7 @@
for(var/mob/living/carbon/M in oviewers(4,src))
if(M.virus2)
infect_virus2(src,M.virus2)
for(var/obj/effects/decal/cleanable/blood/B in view(4, src))
for(var/obj/effect/decal/cleanable/blood/B in view(4, src))
if(B.virus2)
infect_virus2(src,B.virus2)
else
@@ -996,7 +996,7 @@
check_if_buckled()
if (buckled)
lying = istype(buckled, /obj/station_objects/stool/bed) || istype(buckled, /obj/machinery/conveyor)
lying = istype(buckled, /obj/structure/stool/bed) || istype(buckled, /obj/machinery/conveyor)
if(lying)
drop_item()
density = 1
@@ -1028,7 +1028,7 @@
/*
// Commented out so hunger system won't be such shock
// Damage and effects from not eating
// Damage and effect from not eating
if(nutrition <= 50)
if (prob (0.1))
src << "\red Your stomach rumbles."
@@ -64,7 +64,7 @@
if(prob(probab))
if(istype(AM, /obj/station_objects/window) || istype(AM, /obj/station_objects/grille))
if(istype(AM, /obj/structure/window) || istype(AM, /obj/structure/grille))
if(istype(src, /mob/living/carbon/metroid/adult))
if(nutrition <= 600 && !Atkcool)
AM.attack_metroid(src)
@@ -102,9 +102,9 @@
now_pushing = 1
if (!( AM.anchored ))
var/t = get_dir(src, AM)
if (istype(AM, /obj/station_objects/window))
if (istype(AM, /obj/structure/window))
if(AM:ini_dir == NORTHWEST || AM:ini_dir == NORTHEAST || AM:ini_dir == SOUTHWEST || AM:ini_dir == SOUTHEAST)
for(var/obj/station_objects/window/win in get_step(AM,t))
for(var/obj/structure/window/win in get_step(AM,t))
now_pushing = 0
return
step(AM, t)
@@ -187,7 +187,7 @@
// K
// ~~~~ N
// Metroids aren't effected by extra status effects. DO NOT NERF THIS PLZ THNX - LOVE, DOOHL 3===========D ~~~~ HONK
// Metroids aren't effected by extra status effect. DO NOT NERF THIS PLZ THNX - LOVE, DOOHL 3===========D ~~~~ HONK
// ~~~~ H
//EMP is special and yes they are because emp
if(Proj.effects["emp"])
@@ -267,7 +267,7 @@
if ((M.client && !( M.blinded )))
M.show_message(text("\red [] has been hit by []", src, O), 1)
if (health > 0)
bruteloss += (istype(O, /obj/effects/meteor/small) ? 10 : 25)
bruteloss += (istype(O, /obj/effect/meteor/small) ? 10 : 25)
fireloss += 30
updatehealth()
@@ -203,7 +203,7 @@
var/breath_moles = environment.total_moles()*BREATH_PERCENTAGE
breath = loc.remove_air(breath_moles)
// Handle chem smoke effects -- Doohl
// Handle chem smoke effect -- Doohl
var/block = 0
if(wear_mask)
if(istype(wear_mask, /obj/item/clothing/mask/gas))
@@ -211,7 +211,7 @@
if(!block)
for(var/obj/effects/chem_smoke/smoke in view(1, src))
for(var/obj/effect/chem_smoke/smoke in view(1, src))
if(smoke.reagents.total_volume)
smoke.reagents.reaction(src, INGEST)
spawn(5)
@@ -591,7 +591,7 @@
for(var/mob/living/carbon/M in oviewers(4,src))
if(M.virus2)
infect_virus2(src,M.virus2)
for(var/obj/effects/decal/cleanable/blood/B in view(4, src))
for(var/obj/effect/decal/cleanable/blood/B in view(4, src))
if(B.virus2)
infect_virus2(src,B.virus2)
else
@@ -600,7 +600,7 @@
check_if_buckled()
if (src.buckled)
src.lying = istype(src.buckled, /obj/station_objects/stool/bed) || istype(src.buckled, /obj/machinery/conveyor)
src.lying = istype(src.buckled, /obj/structure/stool/bed) || istype(src.buckled, /obj/machinery/conveyor)
if(src.lying)
src.drop_item()
src.density = 1
@@ -64,9 +64,9 @@
now_pushing = 1
if (!( AM.anchored ))
var/t = get_dir(src, AM)
if (istype(AM, /obj/station_objects/window))
if (istype(AM, /obj/structure/window))
if(AM:ini_dir == NORTHWEST || AM:ini_dir == NORTHEAST || AM:ini_dir == SOUTHWEST || AM:ini_dir == SOUTHEAST)
for(var/obj/station_objects/window/win in get_step(AM,t))
for(var/obj/structure/window/win in get_step(AM,t))
now_pushing = 0
return
step(AM, t)
@@ -81,7 +81,7 @@
machine = null
src << browse(null, t1)
if ((href_list["item"] && !( usr.stat ) && !( usr.restrained() ) && in_range(src, usr) ))
var/obj/effects/equip_e/monkey/O = new /obj/effects/equip_e/monkey( )
var/obj/effect/equip_e/monkey/O = new /obj/effect/equip_e/monkey( )
O.source = usr
O.target = src
O.item = usr.equipped()
@@ -446,7 +446,7 @@
if (stunned < power)
stunned = power
var/datum/effects/system/spark_spread/s = new /datum/effects/system/spark_spread
var/datum/effect/system/spark_spread/s = new /datum/effect/system/spark_spread
s.set_up(5, 1, src)
s.start()
@@ -471,7 +471,7 @@
/mob/living/carbon/monkey/update_clothing()
if(buckled)
if(istype(buckled, /obj/station_objects/stool/bed))
if(istype(buckled, /obj/structure/stool/bed))
lying = 1
else
lying = 0
@@ -580,9 +580,9 @@
M.pulling = t
else
if (pulling)
if (istype(pulling, /obj/station_objects/window))
if (istype(pulling, /obj/structure/window))
if(pulling:ini_dir == NORTHWEST || pulling:ini_dir == NORTHEAST || pulling:ini_dir == SOUTHWEST || pulling:ini_dir == SOUTHEAST)
for(var/obj/station_objects/window/win in get_step(pulling,get_dir(pulling.loc, T)))
for(var/obj/structure/window/win in get_step(pulling,get_dir(pulling.loc, T)))
pulling = null
if (pulling)
step(pulling, get_dir(pulling.loc, T))
@@ -638,7 +638,7 @@
if (prob(50))
paralysis += 10
/obj/effects/equip_e/monkey/process()
/obj/effect/equip_e/monkey/process()
if (item)
item.add_fingerprint(source)
if (!( item ))
@@ -701,7 +701,7 @@
return
return
/obj/effects/equip_e/monkey/done()
/obj/effect/equip_e/monkey/done()
if(!source || !target) return
if(source.loc != s_loc) return
if(target.loc != t_loc) return
+3 -3
View File
@@ -314,7 +314,7 @@
/*
// Create speech bubble
var/obj/effects/speech_bubble/B = new/obj/effects/speech_bubble
var/obj/effect/speech_bubble/B = new/obj/effect/speech_bubble
B.icon = 'speechbubble.dmi'
B.parent = src
B.mouse_opacity = 0
@@ -384,7 +384,7 @@
/*
// Create speech bubble
var/obj/effects/speech_bubble/B = new/obj/effects/speech_bubble
var/obj/effect/speech_bubble/B = new/obj/effect/speech_bubble
B.icon = 'speechbubble.dmi'
B.parent = src
B.mouse_opacity = 0
@@ -430,5 +430,5 @@
/obj/effects/speech_bubble
/obj/effect/speech_bubble
var/mob/parent
+3 -3
View File
@@ -38,7 +38,7 @@
if(!safety)//Only used by AIize() to successfully spawn an AI.
if (!B)//If there is no player/brain inside.
new/obj/station_objects/AIcore/deactivated(loc)//New empty terminal.
new/obj/structure/AIcore/deactivated(loc)//New empty terminal.
del(src)//Delete AI.
return
else
@@ -64,7 +64,7 @@
ticker.mode.remove_revolutionary(src.mind)
if(client)
for(var/obj/effects/rune/rune in world)
for(var/obj/effect/rune/rune in world)
var/image/blood = image('blood.dmi', loc = rune, icon_state = "floor[rand(1,7)]")
blood.override = 1
client.images += blood
@@ -277,7 +277,7 @@
/mob/living/silicon/ai/bullet_act(var/obj/item/projectile/Proj)
// AI bullet code is pretty simple. No other effects really need to be added.
// AI bullet code is pretty simple. No other effect really need to be added.
if(!Proj.nodamage) bruteloss += Proj.damage
if(Proj.effects["emp"])
+1 -1
View File
@@ -30,7 +30,7 @@
stat(null, text("Systems nonfunctional"))
if (proc_holder_list.len)//Generic list for proc_holder objects.
for(var/obj/effects/proc_holder/P in proc_holder_list)
for(var/obj/effect/proc_holder/P in proc_holder_list)
statpanel("[P.panel]","",P)
/mob/living/silicon/pai/check_eye(var/mob/user as mob)
@@ -1,6 +1,6 @@
/mob/living/silicon/robot/New(loc,var/syndie = 0)
spark_system = new /datum/effects/system/spark_spread()
spark_system = new /datum/effect/system/spark_spread()
spark_system.set_up(5, 0, src)
spark_system.attach(src)
spawn (1)
@@ -284,9 +284,9 @@
now_pushing = 1
if (!AM.anchored)
var/t = get_dir(src, AM)
if (istype(AM, /obj/station_objects/window))
if (istype(AM, /obj/structure/window))
if(AM:ini_dir == NORTHWEST || AM:ini_dir == NORTHEAST || AM:ini_dir == SOUTHWEST || AM:ini_dir == SOUTHEAST)
for(var/obj/station_objects/window/win in get_step(AM,t))
for(var/obj/structure/window/win in get_step(AM,t))
now_pushing = 0
return
step(AM, t)
@@ -592,7 +592,7 @@
flick("noise", flash)
var/datum/effects/system/spark_spread/s = new /datum/effects/system/spark_spread
var/datum/effect/system/spark_spread/s = new /datum/effect/system/spark_spread
s.set_up(5, 1, src)
s.start()
@@ -927,9 +927,9 @@ Frequency:
M.pulling = t
else
if (pulling)
if (istype(pulling, /obj/station_objects/window))
if (istype(pulling, /obj/structure/window))
if(pulling:ini_dir == NORTHWEST || pulling:ini_dir == NORTHEAST || pulling:ini_dir == SOUTHWEST || pulling:ini_dir == SOUTHEAST)
for(var/obj/station_objects/window/win in get_step(pulling,get_dir(pulling.loc, T)))
for(var/obj/structure/window/win in get_step(pulling,get_dir(pulling.loc, T)))
pulling = null
if (pulling)
step(pulling, get_dir(pulling.loc, T))
+1 -1
View File
@@ -46,7 +46,7 @@
if (src.mind in ticker.mode:cult)
ticker.mode:update_cult_icons_added(src.mind)
if(isAI(src))
for(var/obj/effects/rune/rune in world)
for(var/obj/effect/rune/rune in world)
var/image/blood = image('blood.dmi', loc = rune, icon_state = "floor[rand(1,7)]")
blood.override = 1
client.images += blood
+11 -11
View File
@@ -1053,13 +1053,13 @@ It's fairly easy to fix if dealing with single letters but not so much with comp
user.db_click(name, using)
return
/obj/effects/equip_e/process()
/obj/effect/equip_e/process()
return
/obj/effects/equip_e/proc/done()
/obj/effect/equip_e/proc/done()
return
/obj/effects/equip_e/New()
/obj/effect/equip_e/New()
if (!ticker)
del(src)
return
@@ -1316,7 +1316,7 @@ It's fairly easy to fix if dealing with single letters but not so much with comp
return 1
/mob/proc/ret_grab(obj/effects/list_container/mobl/L as obj, flag)
/mob/proc/ret_grab(obj/effect/list_container/mobl/L as obj, flag)
if ((!( istype(l_hand, /obj/item/weapon/grab) ) && !( istype(r_hand, /obj/item/weapon/grab) )))
if (!( L ))
return null
@@ -1324,7 +1324,7 @@ It's fairly easy to fix if dealing with single letters but not so much with comp
return L.container
else
if (!( L ))
L = new /obj/effects/list_container/mobl( null )
L = new /obj/effect/list_container/mobl( null )
L.container += src
L.master = src
if (istype(l_hand, /obj/item/weapon/grab))
@@ -1727,7 +1727,7 @@ It's fairly easy to fix if dealing with single letters but not so much with comp
/mob/proc/can_use_hands()
if(handcuffed)
return 0
if(buckled && istype(buckled, /obj/station_objects/stool/bed)) // buckling does not restrict hands
if(buckled && istype(buckled, /obj/structure/stool/bed)) // buckling does not restrict hands
return 0
return ..()
@@ -1810,16 +1810,16 @@ Dusting robots does not eject the MMI, so it's a bit more powerful than gib() /N
animation.master = src
if(ishuman(src))
flick("dust-h", animation)
new /obj/effects/decal/remains/human(loc)
new /obj/effect/decal/remains/human(loc)
else if(ismonkey(src))
flick("dust-m", animation)
new /obj/effects/decal/remains/human(loc)
new /obj/effect/decal/remains/human(loc)
else if(isalien(src))
flick("dust-a", animation)
new /obj/effects/decal/remains/xeno(loc)
new /obj/effect/decal/remains/xeno(loc)
else
flick("dust-r", animation)
new /obj/effects/decal/remains/robot(loc)
new /obj/effect/decal/remains/robot(loc)
sleep(15)
if(isrobot(src)&&src:mmi)//Is a robot and it has an mmi.
@@ -1913,7 +1913,7 @@ note dizziness decrements automatically in the mob's Life() proc.
if (spell_list.len)
for(var/obj/effects/proc_holder/spell/S in spell_list)
for(var/obj/effect/proc_holder/spell/S in spell_list)
switch(S.charge_type)
if("recharge")
statpanel("Spells","[S.charge_counter/10.0]/[S.charge_max/10]",S)
+2 -2
View File
@@ -192,7 +192,7 @@
step(mob, pick(cardinal))
else
. = ..()
for(var/obj/effects/speech_bubble/S in range(1, mob))
for(var/obj/effect/speech_bubble/S in range(1, mob))
if(S.parent == mob)
S.loc = mob.loc
moving = 0
@@ -297,7 +297,7 @@
dense_object++
break
if(!dense_object && (locate(/obj/station_objects/lattice) in oview(1, src)))
if(!dense_object && (locate(/obj/structure/lattice) in oview(1, src)))
dense_object++
//Lastly attempt to locate any dense objects we could push off of
+1 -1
View File
@@ -28,7 +28,7 @@ mob/new_player
loc = starting_loc
sight |= SEE_TURFS
var/list/watch_locations = list()
for(var/obj/effects/landmark/landmark in world)
for(var/obj/effect/landmark/landmark in world)
if(landmark.tag == "landmark*new_player")
watch_locations += landmark.loc
+3 -3
View File
@@ -90,21 +90,21 @@
ticker.minds += O.mind//Adds them to regular mind list.
var/obj/loc_landmark
for(var/obj/effects/landmark/start/sloc in world)
for(var/obj/effect/landmark/start/sloc in world)
if (sloc.name != "AI")
continue
if (locate(/mob) in sloc.loc)
continue
loc_landmark = sloc
if (!loc_landmark)
for(var/obj/effects/landmark/tripai in world)
for(var/obj/effect/landmark/tripai in world)
if (tripai.name == "tripai")
if(locate(/mob) in tripai.loc)
continue
loc_landmark = tripai
if (!loc_landmark)
O << "Oh god sorry we can't find an unoccupied AI spawn location, so we're spawning you on top of someone."
for(var/obj/effects/landmark/start/sloc in world)
for(var/obj/effect/landmark/start/sloc in world)
if (sloc.name == "AI")
loc_landmark = sloc
+1 -1
View File
@@ -181,7 +181,7 @@
if(energy > convert2energy(8e-12)) //FAR TOO MUCH ENERGY STILL
for(var/mob/M in hearers(src, null))
M.show_message(text("\red <big>BANG!</big>"))
new /obj/effects/bhole(src.loc)
new /obj/effect/bhole(src.loc)
else //this amount of energy is okay so it does the proper output thing
+1 -1
View File
@@ -83,7 +83,7 @@
/obj/item/weapon/fuel/attack(mob/M as mob, mob/user as mob)
if (user != M)
var/obj/effects/equip_e/human/O = new /obj/effects/equip_e/human( )
var/obj/effect/equip_e/human/O = new /obj/effect/equip_e/human( )
O.source = user
O.target = M
O.item = src
+8 -8
View File
@@ -325,9 +325,9 @@
playsound(src.loc, 'Deconstruct.ogg', 50, 1)
if(do_after(user, 20) && C.amount >= 10)
var/turf/T = get_turf_loc(src)
var/obj/station_objects/cable/N = T.get_cable_node()
var/obj/structure/cable/N = T.get_cable_node()
if (prob(50) && electrocute_mob(usr, N, N))
var/datum/effects/system/spark_spread/s = new /datum/effects/system/spark_spread
var/datum/effect/system/spark_spread/s = new /datum/effect/system/spark_spread
s.set_up(5, 1, src)
s.start()
return
@@ -345,7 +345,7 @@
playsound(src.loc, 'Deconstruct.ogg', 50, 1)
if(do_after(user, 50))
if (prob(50) && electrocute_mob(usr, terminal.powernet, terminal))
var/datum/effects/system/spark_spread/s = new /datum/effects/system/spark_spread
var/datum/effect/system/spark_spread/s = new /datum/effect/system/spark_spread
s.set_up(5, 1, src)
s.start()
return
@@ -851,11 +851,11 @@
malfai << "Hack complete. The APC is now under your exclusive control. Discharging cell to fuse interface."
updateicon()
var/datum/effects/system/harmless_smoke_spread/smoke = new /datum/effects/system/harmless_smoke_spread()
var/datum/effect/system/harmless_smoke_spread/smoke = new /datum/effect/system/harmless_smoke_spread()
smoke.set_up(3, 0, src.loc)
smoke.attach(src)
smoke.start()
var/datum/effects/system/spark_spread/s = new /datum/effects/system/spark_spread
var/datum/effect/system/spark_spread/s = new /datum/effect/system/spark_spread
s.set_up(3, 1, src)
s.start()
for(var/mob/M in viewers(src))
@@ -880,11 +880,11 @@
cell.corrupt()
src.malfhack = 1
updateicon()
var/datum/effects/system/harmless_smoke_spread/smoke = new /datum/effects/system/harmless_smoke_spread()
var/datum/effect/system/harmless_smoke_spread/smoke = new /datum/effect/system/harmless_smoke_spread()
smoke.set_up(3, 0, src.loc)
smoke.attach(src)
smoke.start()
var/datum/effects/system/spark_spread/s = new /datum/effects/system/spark_spread
var/datum/effect/system/spark_spread/s = new /datum/effect/system/spark_spread
s.set_up(3, 1, src)
s.start()
for(var/mob/M in viewers(src))
@@ -1160,7 +1160,7 @@
/obj/machinery/power/apc/proc/shock(mob/user, prb)
if(!prob(prb))
return 0
var/datum/effects/system/spark_spread/s = new /datum/effects/system/spark_spread
var/datum/effect/system/spark_spread/s = new /datum/effect/system/spark_spread
s.set_up(5, 1, src)
s.start()
if (electrocute_mob(user, src, src))
+23 -23
View File
@@ -19,12 +19,12 @@
var/dirn = get_dir(user, src)
for(var/obj/station_objects/cable/LC in T)
for(var/obj/structure/cable/LC in T)
if( (LC.d1 == dirn && LC.d2 == 0 ) || ( LC.d2 == dirn && LC.d1 == 0) )
user << "There's already a cable at that position."
return
var/obj/station_objects/cable/NC = new(T)
var/obj/structure/cable/NC = new(T)
NC.cableColor(coil.color)
@@ -83,7 +83,7 @@
// the power cable object
/obj/station_objects/cable/New()
/obj/structure/cable/New()
..()
@@ -100,7 +100,7 @@
if(level==1) hide(T.intact)
/obj/station_objects/cable/Del() // called when a cable is deleted
/obj/structure/cable/Del() // called when a cable is deleted
if(!defer_powernet_rebuild) // set if network will be rebuilt manually
@@ -111,13 +111,13 @@
if(Debug) diary << "Defered cable deletion at [x],[y]: #[netnum]"
..() // then go ahead and delete the cable
/obj/station_objects/cable/hide(var/i)
/obj/structure/cable/hide(var/i)
if(level == 1 && istype(loc, /turf))
invisibility = i ? 101 : 0
updateicon()
/obj/station_objects/cable/proc/updateicon()
/obj/structure/cable/proc/updateicon()
if(invisibility)
icon_state = "[d1]-[d2]-f"
else
@@ -125,19 +125,19 @@
// returns the powernet this cable belongs to
/obj/station_objects/cable/proc/get_powernet()
/obj/structure/cable/proc/get_powernet()
var/datum/powernet/PN // find the powernet
if(netnum && powernets && powernets.len >= netnum)
PN = powernets[netnum]
return PN
/obj/station_objects/cable/attack_hand(mob/user)
/obj/structure/cable/attack_hand(mob/user)
if(ishuman(user))
if(istype(user:gloves, /obj/item/clothing/gloves/space_ninja)&&user:gloves:candrain&&!user:gloves:draining)
call(/obj/item/clothing/gloves/space_ninja/proc/drain)("WIRE",src,user:wear_suit)
return
/obj/station_objects/cable/attackby(obj/item/W, mob/user)
/obj/structure/cable/attackby(obj/item/W, mob/user)
var/turf/T = src.loc
if(T.intact)
@@ -189,18 +189,18 @@
// shock the user with probability prb
/obj/station_objects/cable/proc/shock(mob/user, prb, var/siemens_coeff = 1.0)
/obj/structure/cable/proc/shock(mob/user, prb, var/siemens_coeff = 1.0)
if(!prob(prb))
return 0
if (electrocute_mob(user, powernets[src.netnum], src, siemens_coeff))
var/datum/effects/system/spark_spread/s = new /datum/effects/system/spark_spread
var/datum/effect/system/spark_spread/s = new /datum/effect/system/spark_spread
s.set_up(5, 1, src)
s.start()
return 1
else
return 0
/obj/station_objects/cable/ex_act(severity)
/obj/structure/cable/ex_act(severity)
switch(severity)
if(1.0)
del(src)
@@ -320,12 +320,12 @@
else
dirn = get_dir(F, user)
for(var/obj/station_objects/cable/LC in F)
for(var/obj/structure/cable/LC in F)
if((LC.d1 == dirn && LC.d2 == 0 ) || ( LC.d2 == dirn && LC.d1 == 0))
user << "There's already a cable at that position."
return
var/obj/station_objects/cable/C = new(F)
var/obj/structure/cable/C = new(F)
C.cableColor(color)
@@ -355,7 +355,7 @@
// called when cable_coil is click on an installed obj/cable
/obj/item/weapon/cable_coil/proc/cable_join(obj/station_objects/cable/C, mob/user)
/obj/item/weapon/cable_coil/proc/cable_join(obj/structure/cable/C, mob/user)
var/turf/U = user.loc
if(!isturf(U))
@@ -386,12 +386,12 @@
var/fdirn = turn(dirn, 180) // the opposite direction
for(var/obj/station_objects/cable/LC in U) // check to make sure there's not a cable there already
for(var/obj/structure/cable/LC in U) // check to make sure there's not a cable there already
if(LC.d1 == fdirn || LC.d2 == fdirn)
user << "There's already a cable at that position."
return
var/obj/station_objects/cable/NC = new(U)
var/obj/structure/cable/NC = new(U)
NC.cableColor(color)
NC.d1 = 0
@@ -422,7 +422,7 @@
nd2 = C.d2
for(var/obj/station_objects/cable/LC in T) // check to make sure there's no matching cable
for(var/obj/structure/cable/LC in T) // check to make sure there's no matching cable
if(LC == C) // skip the cable we're interacting with
continue
if((LC.d1 == nd1 && LC.d2 == nd2) || (LC.d1 == nd2 && LC.d2 == nd1) ) // make sure no cable matches either direction
@@ -451,13 +451,13 @@
return
/obj/station_objects/cable/proc/mergeConnectedNetworks(var/direction)
/obj/structure/cable/proc/mergeConnectedNetworks(var/direction)
var/turf/TB
if((d1 == direction || d2 == direction) != 1)
return
TB = get_step(src, direction)
for(var/obj/station_objects/cable/TC in TB)
for(var/obj/structure/cable/TC in TB)
if(!TC)
continue
@@ -482,10 +482,10 @@
PN.merge_powernets(TPN)
/obj/station_objects/cable/proc/mergeConnectedNetworksOnTurf()
/obj/structure/cable/proc/mergeConnectedNetworksOnTurf()
for(var/obj/station_objects/cable/C in loc)
for(var/obj/structure/cable/C in loc)
if(!C)
@@ -545,7 +545,7 @@
PN.merge_powernets(TPN)
obj/station_objects/cable/proc/cableColor(var/colorC)
obj/structure/cable/proc/cableColor(var/colorC)
var/color_n = "red"
if(colorC)
color_n = colorC
+1 -1
View File
@@ -74,7 +74,7 @@
..()
var/obj/item/clothing/gloves/G = W
if(istype(G))
// var/datum/effects/system/spark_spread/s = new /datum/effects/system/spark_spread
// var/datum/effect/system/spark_spread/s = new /datum/effect/system/spark_spread
// s.set_up(3, 1, src)
// s.start()
// if (prob(80+(G.siemens_coefficient*100)) && electrocute_mob(user, src, src))
+2 -2
View File
@@ -222,7 +222,7 @@
else if(status == LIGHT_EMPTY)
user << "You stick \the [W] into the light socket!"
if(has_power() && (W.flags & CONDUCT))
var/datum/effects/system/spark_spread/s = new /datum/effects/system/spark_spread
var/datum/effect/system/spark_spread/s = new /datum/effect/system/spark_spread
s.set_up(3, 1, src)
s.start()
//if(!user.mutations & COLD_RESISTANCE)
@@ -324,7 +324,7 @@
if(status == LIGHT_OK || status == LIGHT_BURNED)
playsound(src.loc, 'Glasshit.ogg', 75, 1)
if(on)
var/datum/effects/system/spark_spread/s = new /datum/effects/system/spark_spread
var/datum/effect/system/spark_spread/s = new /datum/effect/system/spark_spread
s.set_up(3, 1, src)
s.start()
status = LIGHT_BROKEN
+21 -21
View File
@@ -64,14 +64,14 @@
var/netcount = 0
powernets = list()
for(var/obj/station_objects/cable/PC in world)
for(var/obj/structure/cable/PC in world)
PC.netnum = 0
for(var/obj/machinery/power/M in machines)
if(M.netnum >=0)
M.netnum = 0
for(var/obj/station_objects/cable/PC in world)
for(var/obj/structure/cable/PC in world)
if(!PC.netnum)
PC.netnum = ++netcount
@@ -87,7 +87,7 @@
PN.number = L
for(var/obj/station_objects/cable/C in world)
for(var/obj/structure/cable/C in world)
var/datum/powernet/PN = powernets[C.netnum]
PN.cables += C
@@ -119,7 +119,7 @@
result += P
for(var/obj/station_objects/cable/C in T)
for(var/obj/structure/cable/C in T)
if(C.d1 == fdir || C.d2 == fdir)
if(!unmarked || !C.netnum)
result += C
@@ -129,7 +129,7 @@
return result
/obj/station_objects/cable/proc/get_connections()
/obj/structure/cable/proc/get_connections()
var/list/res = list() // this will be a list of all connected power objects
@@ -160,7 +160,7 @@
cdir = get_dir(T, src)
for(var/obj/station_objects/cable/C in T)
for(var/obj/structure/cable/C in T)
if(C.netnum)
continue
@@ -174,7 +174,7 @@
var/list/res = list()
for(var/obj/station_objects/cable/C in src.loc)
for(var/obj/structure/cable/C in src.loc)
if(C.netnum)
continue
@@ -194,8 +194,8 @@
while(1)
if( istype(O, /obj/station_objects/cable) )
var/obj/station_objects/cable/C = O
if( istype(O, /obj/structure/cable) )
var/obj/structure/cable/C = O
C.netnum = num
P = C.get_connections()
@@ -223,7 +223,7 @@
// cut a powernet at this cable object
/datum/powernet/proc/cut_cable(var/obj/station_objects/cable/C)
/datum/powernet/proc/cut_cable(var/obj/structure/cable/C)
var/turf/T1 = C.loc
if(C.d1)
@@ -237,9 +237,9 @@
if(Debug)
for(var/obj/O in P1)
world.log << "P1: [O] at [O.x] [O.y] : [istype(O, /obj/station_objects/cable) ? "[O:d1]/[O:d2]" : null] "
world.log << "P1: [O] at [O.x] [O.y] : [istype(O, /obj/structure/cable) ? "[O:d1]/[O:d2]" : null] "
for(var/obj/O in P2)
world.log << "P2: [O] at [O.x] [O.y] : [istype(O, /obj/station_objects/cable) ? "[O:d1]/[O:d2]" : null] "
world.log << "P2: [O] at [O.x] [O.y] : [istype(O, /obj/structure/cable) ? "[O:d1]/[O:d2]" : null] "
@@ -251,7 +251,7 @@
// zero the netnum of all cables & nodes in this powernet
for(var/obj/station_objects/cable/OC in cables)
for(var/obj/structure/cable/OC in cables)
OC.netnum = 0
for(var/obj/machinery/power/OM in nodes)
OM.netnum = 0
@@ -276,8 +276,8 @@
if(OM.netnum != number)
notlooped = 1
break
else if( istype(O, /obj/station_objects/cable) )
var/obj/station_objects/cable/OC = O
else if( istype(O, /obj/structure/cable) )
var/obj/structure/cable/OC = O
if(OC.netnum != number)
notlooped = 1
break
@@ -293,7 +293,7 @@
if(Debug) world.log << "Was not looped: spliting PN#[number] ([cables.len];[nodes.len])"
for(var/obj/station_objects/cable/OC in cables)
for(var/obj/structure/cable/OC in cables)
if(!OC.netnum) // non-connected cables will have netnum==0, since they weren't reached by propagation
@@ -401,13 +401,13 @@
else
P.cables += cables
cables = P.cables
for(var/obj/station_objects/cable/C in cables)
for(var/obj/structure/cable/C in cables)
C.netnum = number
del P
/obj/machinery/power/proc/connect_to_network()
var/turf/T = src.loc
var/obj/station_objects/cable/C = T.get_cable_node()
var/obj/structure/cable/C = T.get_cable_node()
if (!C || !C.netnum)
return
makepowernets() //TODO: find fast way
@@ -419,7 +419,7 @@
/turf/proc/get_cable_node()
if(!istype(src, /turf/simulated/floor))
return null
for(var/obj/station_objects/cable/C in src)
for(var/obj/structure/cable/C in src)
if(C.d1 == 0)
return C
return null
@@ -448,8 +448,8 @@
if (istype(power_source,/area))
source_area = power_source
power_source = source_area.get_apc()
if (istype(power_source,/obj/station_objects/cable))
var/obj/station_objects/cable/tmp = power_source
if (istype(power_source,/obj/structure/cable))
var/obj/structure/cable/tmp = power_source
power_source = powernets[tmp.netnum]
var/datum/powernet/PN
+18 -18
View File
@@ -53,8 +53,8 @@ Using sd_DynamicAreaLighting
1) Luminosity changes at run time.
If your program makes changes in luminosity while it is
running, you need to use sd_SetLuminosity(new_luminosity)
so the library can remove the effects of the old luminosity
and apply the new effects.
so the library can remove the effect of the old luminosity
and apply the new effect.
2) Opacity changes at run time.
As with luminosity changes, you need to use
@@ -64,15 +64,15 @@ Using sd_DynamicAreaLighting
3) New atoms that change the opacity of a location.
This is somewhat more complex, and the library doesn't
have a simple proc to take care of it yet. You should use
sd_StripLocalLum() to strip the luminosity effects of
sd_StripLocalLum() to strip the luminosity effect of
anything shining on that space, create the new atom, then
use sd_ApplyLocalLum() to reapply the luminosity effects.
use sd_ApplyLocalLum() to reapply the luminosity effect.
Examine the sd_SetOpacity() proc for an example of the
procedure.
All areas will automatically use the sd_DynamicAreaLighting
library when it is included in your project. You may disable
lighting effects in an area by specifically setting the area's
lighting effect in an area by specifically setting the area's
sd_lighting var to 0. For example:
area/always_lit
@@ -80,13 +80,13 @@ Using sd_DynamicAreaLighting
sd_lighting = 0
This library chops areas into 5 separate areas of differing
light effects, so you may want to modify area Enter(), Exit(),
light effect, so you may want to modify area Enter(), Exit(),
Entered(), and Exited() procs to make sure the atom has moved
from a different area instead of a different light zone of the
same area.
IMPORTANT NOTE: Since sd_DynamicAreaLighting uses the view()
proc, large luminosity settings may cause strange effects. You
proc, large luminosity settings may cause strange effect. You
should limit luminosity to (world.view * 2) or less.
----------------------------------------------------------------------
@@ -173,7 +173,7 @@ DAY/NIGHT CYCLES
The sd_OutsideLight() proc does not automatically detect a
range out of bounds in case you want to use nonstandard values
for interesting effects. For instance, you could use a negative
for interesting effect. For instance, you could use a negative
value to dampen light sources.
If you want daylight to spill indoors:
@@ -240,18 +240,18 @@ All atoms have the following procs:
sd_StripLum(list/V = view(luminosity,src), center = src)
The reverse of sd_ApplyLum(), sd_StripLum removes luminosity
effects.
effect.
sd_ApplyLocalLum(list/affected = viewers(20,src))
Applies the lighting effects of all atoms in affected. This
proc is used with sd_StripLocalLum() for effects that may
Applies the lighting effect of all atoms in affected. This
proc is used with sd_StripLocalLum() for effect that may
change the opacity of a turf.
sd_StripLocalLum()
Strips effects of all local luminous atoms.
Strips effect of all local luminous atoms.
RETURNS: list of all the luminous atoms stripped
IMPORTANT! Each sd_StripLocalLum() call should have a matching
sd_ApplyLocalLum() to restore the local effects.
sd_ApplyLocalLum() to restore the local effect.
sd_SetLuminosity(new_luminosity as num)
Sets the atom's luminosity, making adjustments to the
@@ -309,11 +309,11 @@ Turfs have these additional procs and vars:
zeroing the lumcount, then reapplying local luminosity.
sd_ApplySpill()
Applies to effects of daylight spilling into inside
Applies to effect of daylight spilling into inside
areas in view of this turf.
sd_StripSpill()
Removes to effects of daylight spilling into inside
Removes to effect of daylight spilling into inside
areas in view of this turf.
\********************************************************************/
@@ -321,7 +321,7 @@ Turfs have these additional procs and vars:
var
sd_dark_icon = 'ss13_dark_alpha7.dmi' // icon used for darkness
sd_dark_shades = 7 // number of icon state in sd_dark_icon
sd_light_layer = 10 // graphics layer for light effects
sd_light_layer = 10 // graphics layer for light effect
sd_light_outside = 0 // how bright it is outside
sd_top_luminosity = 0
@@ -409,7 +409,7 @@ atom
T.sd_LumUpdate()
sd_ApplyLocalLum(list/affected = view(sd_top_luminosity,src))
// Reapplies the lighting effects of all atoms in affected.
// Reapplies the lighting effect of all atoms in affected.
for(var/atom/A in affected)
if(A.luminosity) A.sd_ApplyLum()
@@ -422,7 +422,7 @@ atom
RETURNS: list of all the luminous atoms stripped
IMPORTANT! Each sd_StripLocalLum() call should have a matching
sd_ApplyLocalLum() to restore the local effects. */
sd_ApplyLocalLum() to restore the local effect. */
var/list/affected = list()
for(var/atom/A in view(sd_top_luminosity,src))
var/turfflag = (isturf(src)?1:0)
@@ -55,7 +55,7 @@
del(src)
return 0
if(iscarbon(user))
var/datum/effects/system/spark_spread/s = new /datum/effects/system/spark_spread
var/datum/effect/system/spark_spread/s = new /datum/effect/system/spark_spread
s.set_up(5, 1, user.loc)
s.start()
var/shock_damage = min(rand(30,40),rand(30,40))
@@ -72,7 +72,7 @@
user.throw_at(target, 200, 4)
return
else if(issilicon(user))
var/datum/effects/system/spark_spread/s = new /datum/effects/system/spark_spread
var/datum/effect/system/spark_spread/s = new /datum/effect/system/spark_spread
s.set_up(5, 1, user.loc)
s.start()
var/shock_damage = rand(15,30)
+1 -1
View File
@@ -90,7 +90,7 @@
A.icon_state = "u_laser"
playsound(src.loc, 'emitter.ogg', 25, 1)
if(prob(35))
var/datum/effects/system/spark_spread/s = new /datum/effects/system/spark_spread
var/datum/effect/system/spark_spread/s = new /datum/effect/system/spark_spread
s.set_up(5, 1, src)
s.start()
A.dir = src.dir
+1 -1
View File
@@ -29,7 +29,7 @@
*/
///obj/machinery/the_singularitygen/Bumped(atom/A)
// if(istype(A,/obj/effects/accelerated_particle))
// if(istype(A,/obj/effect/accelerated_particle))
// src.energy += A:energy
// return
// ..()
@@ -1,4 +1,4 @@
/obj/effects/accelerated_particle
/obj/effect/accelerated_particle
name = "Accelerated Particles"
desc = "Small things moving very fast."
icon = 'particle_accelerator.dmi'
@@ -39,7 +39,7 @@ PE|PE|PE
*/
/obj/station_objects/particle_accelerator
/obj/structure/particle_accelerator
name = "Particle Accelerator"
desc = "Part of a Particle Accelerator."
icon = 'particle_accelerator.dmi'
@@ -1,4 +1,4 @@
/obj/station_objects/particle_accelerator/fuel_chamber
/obj/structure/particle_accelerator/fuel_chamber
name = "Particle Accelerator Fuel Control"
desc = "Part of a Particle Accelerator."
icon = 'particle_accelerator.dmi'
@@ -11,7 +11,7 @@
construction_state = 0
active = 0
var
list/obj/station_objects/particle_accelerator/connected_parts
list/obj/structure/particle_accelerator/connected_parts
assembled = 0
strength = 0
@@ -70,12 +70,12 @@
process()
if(src.active)
for(var/obj/station_objects/particle_accelerator/particle_emitter/PE in connected_parts)
for(var/obj/structure/particle_accelerator/particle_emitter/PE in connected_parts)
if(PE)
PE.emit_particle(src.strength)
// for(var/obj/station_objects/particle_accelerator/fuel_chamber/PF in connected_parts)
// for(var/obj/structure/particle_accelerator/fuel_chamber/PF in connected_parts)
// PF.doshit()
// for(var/obj/station_objects/particle_accelerator/power_box/PB in connected_parts)
// for(var/obj/structure/particle_accelerator/power_box/PB in connected_parts)
// PB.doshit()
//finish up putting the fuel run and power use things in here
return
@@ -107,24 +107,24 @@
odir = 4
var/turf/T = src.loc
T = get_step(T,rdir)
if(check_part(T,/obj/station_objects/particle_accelerator/fuel_chamber))
if(check_part(T,/obj/structure/particle_accelerator/fuel_chamber))
tally++
T = get_step(T,odir)
if(check_part(T,/obj/station_objects/particle_accelerator/end_cap))
if(check_part(T,/obj/structure/particle_accelerator/end_cap))
tally++
T = get_step(T,dir)
T = get_step(T,dir)
if(check_part(T,/obj/station_objects/particle_accelerator/power_box))
if(check_part(T,/obj/structure/particle_accelerator/power_box))
tally++
T = get_step(T,dir)
if(check_part(T,/obj/station_objects/particle_accelerator/particle_emitter/center))
if(check_part(T,/obj/structure/particle_accelerator/particle_emitter/center))
tally++
T = get_step(T,ldir)
if(check_part(T,/obj/station_objects/particle_accelerator/particle_emitter/left))
if(check_part(T,/obj/structure/particle_accelerator/particle_emitter/left))
tally++
T = get_step(T,rdir)
T = get_step(T,rdir)
if(check_part(T,/obj/station_objects/particle_accelerator/particle_emitter/right))
if(check_part(T,/obj/structure/particle_accelerator/particle_emitter/right))
tally++
if(tally >= 6)
assembled = 1
@@ -137,7 +137,7 @@
check_part(var/turf/T, var/type)
if(!(T)||!(type))
return 0
var/obj/station_objects/particle_accelerator/PA = locate(/obj/station_objects/particle_accelerator) in T
var/obj/structure/particle_accelerator/PA = locate(/obj/structure/particle_accelerator) in T
if(istype(PA, type))
if(PA.connect_master(src))
if(PA.report_ready(src))
@@ -1,4 +1,4 @@
/obj/station_objects/particle_accelerator/particle_emitter
/obj/structure/particle_accelerator/particle_emitter
name = "Particle Accelerator Emitter"
desc = "Part of a Particle Accelerator, might not want to stand near this end."
icon = 'particle_accelerator.dmi'
@@ -32,15 +32,15 @@
emit_particle(var/strength = 0)
if((src.last_shot + src.fire_delay) <= world.time)
src.last_shot = world.time
var/obj/effects/accelerated_particle/A = null
var/obj/effect/accelerated_particle/A = null
var/turf/T = get_step(src,dir)
switch(strength)
if(0)
A = new/obj/effects/accelerated_particle/weak(T, dir)
A = new/obj/effect/accelerated_particle/weak(T, dir)
if(1)
A = new/obj/effects/accelerated_particle(T, dir)
A = new/obj/effect/accelerated_particle(T, dir)
if(2)
A = new/obj/effects/accelerated_particle/strong(T, dir)
A = new/obj/effect/accelerated_particle/strong(T, dir)
if(A)
A.dir = src.dir
return 1
@@ -1,4 +1,4 @@
/obj/station_objects/particle_accelerator/power_box
/obj/structure/particle_accelerator/power_box
name = "Particle Accelerator"
desc = "Part of a Particle Accelerator, this part seems to have a maintenance panel on it."
icon = 'particle_accelerator.dmi'
@@ -1,9 +1,9 @@
var/global/list/uneatable = list(
/turf/space,
/obj/effects,
/obj/effects/overlay,
/obj/effects/decal/cleanable,
/obj/effects/rune
/obj/effect,
/obj/effect/overlay,
/obj/effect/decal/cleanable,
/obj/effect/rune
)
/obj/machinery/singularity/
+3 -3
View File
@@ -324,7 +324,7 @@
for(var/mob/M in viewers(src))
M.show_message("\red The [src.name] is making strange noises!", 3, "\red You hear sizzling electronics.", 2)
sleep(10*pick(4,5,6,7,10,14))
var/datum/effects/system/harmless_smoke_spread/smoke = new /datum/effects/system/harmless_smoke_spread()
var/datum/effect/system/harmless_smoke_spread/smoke = new /datum/effect/system/harmless_smoke_spread()
smoke.set_up(3, 0, src.loc)
smoke.attach(src)
smoke.start()
@@ -333,7 +333,7 @@
return
if(prob(15)) //Power drain
world << "\red SMES power drain in [src.loc.loc]"
var/datum/effects/system/spark_spread/s = new /datum/effects/system/spark_spread
var/datum/effect/system/spark_spread/s = new /datum/effect/system/spark_spread
s.set_up(3, 1, src)
s.start()
if(prob(50))
@@ -342,7 +342,7 @@
emp_act(2)
if(prob(5)) //smoke only
world << "\red SMES smoke in [src.loc.loc]"
var/datum/effects/system/harmless_smoke_spread/smoke = new /datum/effects/system/harmless_smoke_spread()
var/datum/effect/system/harmless_smoke_spread/smoke = new /datum/effect/system/harmless_smoke_spread()
smoke.set_up(3, 0, src.loc)
smoke.attach(src)
smoke.start()
+2 -2
View File
@@ -224,7 +224,7 @@
if(do_after(user, 20))
if (src.stat & BROKEN)
user << "\blue The broken glass falls out."
var/obj/station_objects/computerframe/A = new /obj/station_objects/computerframe( src.loc )
var/obj/structure/computerframe/A = new /obj/structure/computerframe( src.loc )
new /obj/item/weapon/shard( src.loc )
var/obj/item/weapon/circuitboard/solar_control/M = new /obj/item/weapon/circuitboard/solar_control( A )
for (var/obj/C in src)
@@ -236,7 +236,7 @@
del(src)
else
user << "\blue You disconnect the monitor."
var/obj/station_objects/computerframe/A = new /obj/station_objects/computerframe( src.loc )
var/obj/structure/computerframe/A = new /obj/structure/computerframe( src.loc )
var/obj/item/weapon/circuitboard/solar_control/M = new /obj/item/weapon/circuitboard/solar_control( A )
for (var/obj/C in src)
C.loc = src.loc
+2 -2
View File
@@ -243,7 +243,7 @@
if(do_after(user, 20))
if (src.stat & BROKEN)
user << "\blue The broken glass falls out."
var/obj/station_objects/computerframe/A = new /obj/station_objects/computerframe( src.loc )
var/obj/structure/computerframe/A = new /obj/structure/computerframe( src.loc )
new /obj/item/weapon/shard( src.loc )
var/obj/item/weapon/circuitboard/turbine_control/M = new /obj/item/weapon/circuitboard/turbine_control( A )
for (var/obj/C in src)
@@ -256,7 +256,7 @@
del(src)
else
user << "\blue You disconnect the monitor."
var/obj/station_objects/computerframe/A = new /obj/station_objects/computerframe( src.loc )
var/obj/structure/computerframe/A = new /obj/structure/computerframe( src.loc )
var/obj/item/weapon/circuitboard/turbine_control/M = new /obj/item/weapon/circuitboard/turbine_control( A )
for (var/obj/C in src)
C.loc = src.loc
+1 -1
View File
@@ -66,7 +66,7 @@
return //we're placing gun on a table or in backpack --rastaf0
if(istype(target, /obj/machinery/recharger) && istype(src, /obj/item/weapon/gun/energy))
return
if(istype(target, /obj/effects/proc_holder/spell))
if(istype(target, /obj/effect/proc_holder/spell))
return
if(istype(user, /mob/living))
var/mob/living/M = user
+4 -3
View File
@@ -222,9 +222,10 @@
return 1
if(isrobot(src.loc))
var/mob/living/silicon/robot/R = src.loc
R.cell.use(40)
in_chamber = new /obj/item/projectile/electrode(src)
return 1
if(R && R.cell)
R.cell.use(40)
in_chamber = new /obj/item/projectile/electrode(src)
return 1
return 0
+2 -2
View File
@@ -141,7 +141,7 @@ won't update every console in existence) but it's more of a hassle to do. Also,
if(do_after(user, 20))
if (src.stat & BROKEN)
user << "\blue The broken glass falls out."
var/obj/station_objects/computerframe/A = new /obj/station_objects/computerframe( src.loc )
var/obj/structure/computerframe/A = new /obj/structure/computerframe( src.loc )
new /obj/item/weapon/shard( src.loc )
var/obj/item/weapon/circuitboard/rdconsole/M = new /obj/item/weapon/circuitboard/rdconsole( A )
for (var/obj/C in src)
@@ -153,7 +153,7 @@ won't update every console in existence) but it's more of a hassle to do. Also,
del(src)
else
user << "\blue You disconnect the monitor."
var/obj/station_objects/computerframe/A = new /obj/station_objects/computerframe( src.loc )
var/obj/structure/computerframe/A = new /obj/structure/computerframe( src.loc )
var/obj/item/weapon/circuitboard/rdconsole/M = new /obj/item/weapon/circuitboard/rdconsole( A )
for (var/obj/C in src)
C.loc = src.loc
+1 -1
View File
@@ -40,7 +40,7 @@
return 0
if(!prob(prb))
return 0
var/datum/effects/system/spark_spread/s = new /datum/effects/system/spark_spread
var/datum/effect/system/spark_spread/s = new /datum/effect/system/spark_spread
s.set_up(5, 1, src)
s.start()
if (electrocute_mob(user, get_area(src), src, 0.7))
+2 -2
View File
@@ -305,7 +305,7 @@
if(do_after(user, 20))
if (src.stat & BROKEN)
user << "\blue The broken glass falls out."
var/obj/station_objects/computerframe/A = new /obj/station_objects/computerframe( src.loc )
var/obj/structure/computerframe/A = new /obj/structure/computerframe( src.loc )
new /obj/item/weapon/shard( src.loc )
var/obj/item/weapon/circuitboard/rdservercontrol/M = new /obj/item/weapon/circuitboard/rdservercontrol( A )
for (var/obj/C in src)
@@ -317,7 +317,7 @@
del(src)
else
user << "\blue You disconnect the monitor."
var/obj/station_objects/computerframe/A = new /obj/station_objects/computerframe( src.loc )
var/obj/structure/computerframe/A = new /obj/structure/computerframe( src.loc )
var/obj/item/weapon/circuitboard/rdservercontrol/M = new /obj/item/weapon/circuitboard/rdservercontrol( A )
for (var/obj/C in src)
C.loc = src.loc