mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-07-21 20:13:45 +01:00
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:
@@ -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'
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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)
|
||||
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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
|
||||
@@ -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()
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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)
|
||||
|
||||
|
||||
@@ -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,4 +1,4 @@
|
||||
/obj/effects/critter
|
||||
/obj/effect/critter
|
||||
name = "Critter"
|
||||
desc = "Generic critter."
|
||||
icon = 'critter.dmi'
|
||||
|
||||
@@ -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,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)
|
||||
..()
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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
|
||||
@@ -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)
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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'
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
@@ -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"])
|
||||
|
||||
@@ -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))
|
||||
|
||||
@@ -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
@@ -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)
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
@@ -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
|
||||
|
||||
@@ -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))
|
||||
|
||||
@@ -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
@@ -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
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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/
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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))
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user