Timers will no longer go off when you set them to 0 unless they are on.

Unsimulated turfs can be climbed on once more.
Small blobs can use the blob to move around in space.
Jetpacks now have a toggle for the stabilization.
Jetpack fuel use has been reset to .01.
Moved most of the tanks over to a new folder and files so they are not all crammed into one.
The meteor event actually spawns more than one wave worth of meteors.


git-svn-id: http://tgstation13.googlecode.com/svn/trunk@2488 316c924e-a436-60f5-8080-3fe189b3f50e
This commit is contained in:
mport2004@gmail.com
2011-11-05 05:25:22 +00:00
parent cf62068041
commit fbd0a5a9b5
18 changed files with 350 additions and 329 deletions

View File

@@ -57,20 +57,6 @@
//state = 1 for playing : default
//state = 2 for observing
/obj/effect/bhole
name = "black hole"
icon = 'objects.dmi'
desc = "FUCK FUCK FUCK AAAHHH"
icon_state = "bhole2"
opacity = 0
unacidable = 1
density = 0
anchored = 1
var/datum/effect/effect/system/harmless_smoke_spread/smoke
/obj/effect/beam
name = "beam"
unacidable = 1//Just to be sure.

View File

@@ -24,10 +24,10 @@
world << sound('meteors.ogg')
spawn(100)
meteor_wave()
spawn_meteors()
spawn(700)
meteor_wave()
spawn(500)
meteor_wave()
meteor_wave()
spawn_meteors()
if(2)
command_alert("Gravitational anomalies detected on the station. There is no additional data.", "Anomaly Alert")
@@ -85,80 +85,6 @@
IonStorm()
/obj/effect/bhole/New()
src.smoke = new /datum/effect/effect/system/harmless_smoke_spread()
src.smoke.set_up(5, 0, src)
src.smoke.attach(src)
src:life()
/obj/effect/bhole/Bumped(atom/A)
if (istype(A,/mob/living))
del(A)
else
A:ex_act(1.0)
/obj/effect/bhole/proc/life() //Oh man , this will LAG
if (prob(10))
src.anchored = 0
step(src,pick(alldirs))
if (prob(30))
step(src,pick(alldirs))
src.anchored = 1
for (var/atom/X in orange(9,src))
if ((istype(X,/obj) || istype(X,/mob/living)) && prob(7))
if (!X:anchored)
step_towards(X,src)
for (var/atom/B in orange(7,src))
if (istype(B,/obj))
if (!B:anchored && prob(50))
step_towards(B,src)
if(prob(10)) B:ex_act(3.0)
else
B:anchored = 0
//step_towards(B,src)
//B:anchored = 1
if(prob(10)) B:ex_act(3.0)
else if (istype(B,/turf))
if (istype(B,/turf/simulated) && (prob(1) && prob(75)))
src.smoke.start()
B:ReplaceWithSpace()
else if (istype(B,/mob/living))
step_towards(B,src)
for (var/atom/A in orange(4,src))
if (istype(A,/obj))
if (!A:anchored && prob(90))
step_towards(A,src)
if(prob(30)) A:ex_act(2.0)
else
A:anchored = 0
//step_towards(A,src)
//A:anchored = 1
if(prob(30)) A:ex_act(2.0)
else if (istype(A,/turf))
if (istype(A,/turf/simulated) && prob(1))
src.smoke.start()
A:ReplaceWithSpace()
else if (istype(A,/mob/living))
step_towards(A,src)
for (var/atom/D in orange(1,src))
//if (hascall(D,"blackholed"))
// call(D,"blackholed")(null)
// continue
if (istype(D,/mob/living))
del(D)
else
D:ex_act(1.0)
spawn(17)
life()
/proc/power_failure()
command_alert("Abnormal activity detected in [station_name()]'s powernet. As a precautionary measure, the station's power will be shut off for an indeterminate duration.", "Critical Power Failure")
world << sound('poweroff.ogg')

View File

@@ -0,0 +1,87 @@
/obj/effect/bhole
name = "black hole"
icon = 'objects.dmi'
desc = "FUCK FUCK FUCK AAAHHH"
icon_state = "bhole2"
opacity = 0
unacidable = 1
density = 0
anchored = 1
var/datum/effect/effect/system/harmless_smoke_spread/smoke
/obj/effect/bhole/New()
src.smoke = new /datum/effect/effect/system/harmless_smoke_spread()
src.smoke.set_up(5, 0, src)
src.smoke.attach(src)
src:life()
/obj/effect/bhole/Bumped(atom/A)
if (istype(A,/mob/living))
del(A)
else
A:ex_act(1.0)
/obj/effect/bhole/proc/life() //Oh man , this will LAG
if (prob(10))
src.anchored = 0
step(src,pick(alldirs))
if (prob(30))
step(src,pick(alldirs))
src.anchored = 1
for (var/atom/X in orange(9,src))
if ((istype(X,/obj) || istype(X,/mob/living)) && prob(7))
if (!X:anchored)
step_towards(X,src)
for (var/atom/B in orange(7,src))
if (istype(B,/obj))
if (!B:anchored && prob(50))
step_towards(B,src)
if(prob(10)) B:ex_act(3.0)
else
B:anchored = 0
//step_towards(B,src)
//B:anchored = 1
if(prob(10)) B:ex_act(3.0)
else if (istype(B,/turf))
if (istype(B,/turf/simulated) && (prob(1) && prob(75)))
src.smoke.start()
B:ReplaceWithSpace()
else if (istype(B,/mob/living))
step_towards(B,src)
for (var/atom/A in orange(4,src))
if (istype(A,/obj))
if (!A:anchored && prob(90))
step_towards(A,src)
if(prob(30)) A:ex_act(2.0)
else
A:anchored = 0
//step_towards(A,src)
//A:anchored = 1
if(prob(30)) A:ex_act(2.0)
else if (istype(A,/turf))
if (istype(A,/turf/simulated) && prob(1))
src.smoke.start()
A:ReplaceWithSpace()
else if (istype(A,/mob/living))
step_towards(A,src)
for (var/atom/D in orange(1,src))
//if (hascall(D,"blackholed"))
// call(D,"blackholed")(null)
// continue
if (istype(D,/mob/living))
del(D)
else
D:ex_act(1.0)
spawn(17)
life()

View File

@@ -141,7 +141,7 @@
if(W.loc == my_target) break
sleep(2)
if(istype(usr.loc, /turf/space))
if(istype(usr.loc, /turf/space)|| (user.flags & NOGRAV))
user.inertia_dir = get_dir(target, user)
step(user, user.inertia_dir)

View File

@@ -18,100 +18,31 @@
/obj/item/weapon/tank/anesthetic
name = "Gas Tank (Sleeping Agent)"
desc = "Seriously, who uses this anymore?"
desc = "A N2O/O2 gas mix"
icon_state = "anesthetic"
item_state = "an_tank"
/obj/item/weapon/tank/jetpack
name = "Jetpack (Oxygen)"
desc = "A pack of jets it appears."
icon_state = "jetpack0"
var/on = 0.0
w_class = 4.0
item_state = "jetpack"
var/datum/effect/effect/system/ion_trail_follow/ion_trail
distribute_pressure = ONE_ATMOSPHERE*O2STANDARD
//volume = 140 //jetpack sould be larger, but then it will never deplete -rastaf0
/obj/item/weapon/tank/jetpack/void_jetpack
name = "Void Jetpack (oxygen)"
desc = "It works well in a void."
icon_state = "voidjetpack0"
item_state = "jetpack-void"
/obj/item/weapon/tank/jetpack/black_jetpack
name = "Black Jetpack (oxygen)"
desc = "A black model of jetpacks."
icon_state = "black_jetpack0"
item_state = "jetpack-black"
/obj/item/weapon/tank/oxygen
name = "Gas Tank (Oxygen)"
desc = "A tank of oxygen"
icon_state = "oxygen"
distribute_pressure = ONE_ATMOSPHERE*O2STANDARD
/obj/item/weapon/tank/oxygen/yellow
name = "Gas Tank (Oxygen)"
desc = "A tank of oxygen meant for firefighters."
icon_state = "oxygen_f"
/obj/item/weapon/tank/oxygen/red
name = "Gas Tank (Oxygen)"
desc = "A tank of oxygen meant for firefighters."
icon_state = "oxygen_fr"
/obj/item/weapon/tank/oxygen/examine()
set src in usr
..()
if(air_contents.oxygen < 10)
usr << text("\red <B>The meter on the tank indicates you are almost out of air!</B>")
playsound(usr, 'alert.ogg', 50, 1)
/obj/item/weapon/tank/air
name = "Gas Tank (Air Mix)"
desc = "Mixed anyone?"
icon_state = "oxygen"
/obj/item/weapon/tank/air/examine()
examine()
set src in usr
..()
if(air_contents.oxygen < 1)
usr << text("\red <B>The meter on the tank indicates you are almost out of air!</B>")
usr << text("\red <B>The meter on the [src.name] indicates you are almost out of air!</B>")
playsound(usr, 'alert.ogg', 50, 1)
/obj/item/weapon/tank/plasma
name = "Gas Tank (BIOHAZARD)"
desc = "Contains dangerous plasma. Do not inhale."
icon_state = "plasma"
/obj/item/weapon/tank/emergency_oxygen
name = "emergency oxygen tank"
desc = "Used for emergencies. Contains very little oxygen, so try to conserve it until you actualy need it."
icon_state = "emergency"
flags = FPRINT | TABLEPASS | ONBELT | CONDUCT
w_class = 2.0
force = 4.0
distribute_pressure = ONE_ATMOSPHERE*O2STANDARD
volume = 3 //Tiny. Real life equivalents only have 21 breaths of oxygen in them. They're EMERGENCY tanks anyway -errorage (dangercon 2011)
/obj/item/weapon/tank/emergency_oxygen/engi
icon_state = "emergency_engi"
name = "extended-capacity emergency oxygen tank"
volume = 6 //Engineers are always superior. -errorage (dangercon 2011)
/obj/item/weapon/tank/emergency_oxygen/double
icon_state = "emergency_double"
name = "Double Emergency Oxygen Tank"
volume = 10 //These have the same emoung of gas in them as air tanks, but can be worn on your belt -errorage (dangercon 2011)
/obj/item/weapon/tank/emergency_oxygen/examine()
set src in usr
..()
if(air_contents.oxygen < 0.4)
usr << text("\red <B>The meter on the tank indicates you are almost out of air!</B>")
playsound(usr, 'alert.ogg', 50, 1)
/obj/item/weapon/tank/blob_act()
if(prob(50))
@@ -265,32 +196,7 @@
else if(integrity < 3)
integrity++
/* redundant. --rastaf0
/obj/item/weapon/tank/attack(mob/M as mob, mob/user as mob)
..()
*/
/*
if ((prob(30) && M.stat < 2))
var/mob/living/carbon/human/H = M
// ******* Check
if ((istype(H, /mob/living/carbon/human) && istype(H, /obj/item/clothing/head) && H.flags & 8 && prob(80)))
M << "\red The helmet protects you from being hit hard in the head!"
return
var/time = rand(2, 6)
if (prob(90))
if (M.paralysis < time)
M.paralysis = time
else
if (M.stunned < time)
M.stunned = time
if(M.stat != 2) M.stat = 1
for(var/mob/O in viewers(M, null))
if ((O.client && !( O.blinded )))
O << text("\red <B>[] has been knocked unconscious!</B>", M)
return
*/
/obj/item/weapon/tank/attackby(obj/item/weapon/W as obj, mob/user as mob)
..()
@@ -386,66 +292,6 @@
src.air_contents.nitrogen = (6*ONE_ATMOSPHERE)*volume/(R_IDEAL_GAS_EQUATION*T20C) * N2STANDARD
return
/obj/item/weapon/tank/oxygen/New()
..()
src.air_contents.oxygen = (6*ONE_ATMOSPHERE)*volume/(R_IDEAL_GAS_EQUATION*T20C)
return
/obj/item/weapon/tank/emergency_oxygen/New()
..()
src.air_contents.oxygen = (3*ONE_ATMOSPHERE)*volume/(R_IDEAL_GAS_EQUATION*T20C)
return
/obj/item/weapon/tank/jetpack/New()
..()
src.ion_trail = new /datum/effect/effect/system/ion_trail_follow()
src.ion_trail.set_up(src)
src.air_contents.oxygen = (6*ONE_ATMOSPHERE)*volume/(R_IDEAL_GAS_EQUATION*T20C)
return
/obj/item/weapon/tank/jetpack/verb/toggle()
set name = "Toggle Jetpack"
set category = "Object"
src.on = !( src.on )
if(src.name == "Void Jetpack (oxygen)") //Slight change added by me. i didn't make it an if-elseif because some of you might want to add other types of resprited packs :3 -Agouri
src.icon_state = text("voidjetpack[]", src.on)
else if(src.name == "Black Jetpack (oxygen)")
src.icon_state = text("black_jetpack[]", src.on)
else
src.icon_state = text("jetpack[]", src.on)
if(src.on)
src.ion_trail.start()
else
src.ion_trail.stop()
return
/obj/item/weapon/tank/jetpack/proc/allow_thrust(num, mob/living/user as mob)
if (!( src.on ))
return 0
if ((num < 0.005 || src.air_contents.total_moles() < num))
src.ion_trail.stop()
return 0
var/datum/gas_mixture/G = src.air_contents.remove(num)
if (G.oxygen >= 0.005)
return 1
if (G.toxins > 0.001)
if (user)
var/d = G.toxins / 2
d = min(abs(user.health + 100), d, 25)
user.take_organ_damage(0,d)
return (G.oxygen >= 0.0025 ? 0.5 : 0)
else
if (G.oxygen >= 0.0025)
return 0.5
else
return 0
//G = null
del(G)
return
/obj/item/weapon/tank/anesthetic/New()
..()

View File

@@ -0,0 +1,35 @@
/obj/item/weapon/tank/emergency_oxygen
name = "emergency oxygen tank"
desc = "Used for emergencies. Contains very little oxygen, so try to conserve it until you actually need it."
icon_state = "emergency"
flags = FPRINT | TABLEPASS | ONBELT | CONDUCT
w_class = 2.0
force = 4.0
distribute_pressure = ONE_ATMOSPHERE*O2STANDARD
volume = 3 //Tiny. Real life equivalents only have 21 breaths of oxygen in them. They're EMERGENCY tanks anyway -errorage (dangercon 2011)
New()
..()
src.air_contents.oxygen = (3*ONE_ATMOSPHERE)*volume/(R_IDEAL_GAS_EQUATION*T20C)
return
examine()
set src in usr
..()
if(air_contents.oxygen < 0.4)
usr << text("\red <B>The meter on the [src.name] indicates you are almost out of air!</B>")
playsound(usr, 'alert.ogg', 50, 1)
/obj/item/weapon/tank/emergency_oxygen/engi
icon_state = "emergency_engi"
name = "extended-capacity emergency oxygen tank"
volume = 6
/obj/item/weapon/tank/emergency_oxygen/double
icon_state = "emergency_double"
name = "Double Emergency Oxygen Tank"
volume = 10

View File

@@ -0,0 +1,94 @@
/obj/item/weapon/tank/jetpack
name = "Jetpack (Oxygen)"
desc = "A tank of compressed oxygen for use as propulsion in zero-gravity areas. Use with caution."
icon_state = "jetpack0"
w_class = 4.0
item_state = "jetpack"
distribute_pressure = ONE_ATMOSPHERE*O2STANDARD
var
datum/effect/effect/system/ion_trail_follow/ion_trail
on = 0.0
stabilization_on = 0
New()
..()
src.ion_trail = new /datum/effect/effect/system/ion_trail_follow()
src.ion_trail.set_up(src)
src.air_contents.oxygen = (6*ONE_ATMOSPHERE)*volume/(R_IDEAL_GAS_EQUATION*T20C)
return
examine()
set src in usr
..()
if(air_contents.oxygen < 10)
usr << text("\red <B>The meter on the [src.name] indicates you are almost out of air!</B>")
playsound(usr, 'alert.ogg', 50, 1)
return
verb/toggle_rockets()
set name = "Toggle Jetpack Stabilization"
set category = "Object"
src.stabilization_on = !( src.stabilization_on )
usr << "You toggle the stabilization [stabilization_on? "on":"off"]."
return
verb/toggle()
set name = "Toggle Jetpack"
set category = "Object"
src.on = !( src.on )
if(src.name == "Void Jetpack (oxygen)") //Slight change added by me. i didn't make it an if-elseif because some of you might want to add other types of resprited packs :3 -Agouri
src.icon_state = text("voidjetpack[]", src.on)
else if(src.name == "Black Jetpack (oxygen)")
src.icon_state = text("black_jetpack[]", src.on)
else
src.icon_state = text("jetpack[]", src.on)
if(src.on)
src.ion_trail.start()
else
src.ion_trail.stop()
return
proc/allow_thrust(num, mob/living/user as mob)
if (!( src.on ))
return 0
if ((num < 0.005 || src.air_contents.total_moles() < num))
src.ion_trail.stop()
return 0
var/datum/gas_mixture/G = src.air_contents.remove(num)
if (G.oxygen >= 0.005)
return 1
if (G.toxins > 0.001)
if (user)
var/d = G.toxins / 2
d = min(abs(user.health + 100), d, 25)
user.take_organ_damage(0,d)
return (G.oxygen >= 0.0025 ? 0.5 : 0)
else
if (G.oxygen >= 0.0025)
return 0.5
else
return 0
del(G)
return
/obj/item/weapon/tank/jetpack/void_jetpack
name = "Void Jetpack (Oxygen)"
desc = "It works well in a void."
icon_state = "voidjetpack0"
item_state = "jetpack-void"
/obj/item/weapon/tank/jetpack/black_jetpack
name = "Black Jetpack (Oxygen)"
desc = "A black model of jetpacks."
icon_state = "black_jetpack0"
item_state = "jetpack-black"

View File

@@ -0,0 +1,32 @@
/obj/item/weapon/tank/oxygen
name = "Gas Tank (Oxygen)"
desc = "A tank of oxygen"
icon_state = "oxygen"
distribute_pressure = ONE_ATMOSPHERE*O2STANDARD
New()
..()
src.air_contents.oxygen = (6*ONE_ATMOSPHERE)*volume/(R_IDEAL_GAS_EQUATION*T20C)
return
examine()
set src in usr
..()
if(air_contents.oxygen < 10)
usr << text("\red <B>The meter on the [src.name] indicates you are almost out of air!</B>")
playsound(usr, 'alert.ogg', 50, 1)
/obj/item/weapon/tank/oxygen/yellow
name = "Gas Tank (Oxygen)"
desc = "A tank of oxygen, this one is yellow."
icon_state = "oxygen_f"
/obj/item/weapon/tank/oxygen/red
name = "Gas Tank (Oxygen)"
desc = "A tank of oxygen, this one is red."
icon_state = "oxygen_fr"

View File

@@ -64,7 +64,8 @@
item.layer = initial(item.layer)
src.visible_message("\red [src] has thrown [item].")
if(istype(src.loc, /turf/space)) //they're in space, move em one space in the opposite direction
if(istype(src.loc, /turf/space) || (src.flags & NOGRAV)) //they're in space, move em one space in the opposite direction
src.inertia_dir = get_dir(target, src)
step(src, inertia_dir)
item.throw_at(target, item.throw_range, item.throw_speed)

View File

@@ -77,8 +77,7 @@
if(ismob(M))
if(M.flags & NOGRAV)
inertial_drift(M)
return
if(!istype(src, /turf/space))
else if(!istype(src, /turf/space))
M:inertia_dir = 0
..()
for(var/atom/A as mob|obj|turf|area in src)
@@ -94,15 +93,14 @@
return
/turf/proc/inertial_drift(atom/movable/A as mob|obj)
if (!(A.last_move)) return
if ((istype(A, /mob/) && src.x > 2 && src.x < (world.maxx - 1) && src.y > 2 && src.y < (world.maxy-1)))
if(!(A.last_move)) return
if((istype(A, /mob/) && src.x > 2 && src.x < (world.maxx - 1) && src.y > 2 && src.y < (world.maxy-1)))
var/mob/M = A
if(M.Process_Spacemove()) return
if(M.Process_Spacemove(1))
M.inertia_dir = 0
return
spawn(5)
if((M && !(M.anchored) && (M.loc == src)))
if(M.inertia_dir)
step(M, M.inertia_dir)
else
M.inertia_dir = M.last_move
step(M, M.inertia_dir)
return

View File

@@ -60,7 +60,7 @@
process()
if(timing && (time >= 0))
time--
if(time <= 0)
if(timing && time <= 0)
timing = 0
toggle_scan()
time = 10

View File

@@ -51,7 +51,7 @@
process()
if(timing && (time >= 0))
time--
if(time <= 0)
if(timing && time <= 0)
timing = 0
timer_end()
time = 10

View File

@@ -11,21 +11,21 @@
creating_blob = 0
/mob/living/blob/New()
New()
real_name += " [pick(rand(1, 99))]"
name = real_name
..()
/mob/living/blob/say(var/message)
say(var/message)
return//No talking for you
/mob/living/blob/emote(var/act,var/m_type=1,var/message = null)
emote(var/act,var/m_type=1,var/message = null)
return
/mob/living/blob/Life()
Life()
set invisibility = 0
set background = 1
@@ -35,11 +35,8 @@
src.gib()
/mob/living/blob
proc
clamp_values()
stunned = 0//No stun here
proc/clamp_values()
stunned = 0
paralysis = 0
weakened = 0
sleeping = 0
@@ -52,12 +49,12 @@
return
UpdateDamage()
proc/UpdateDamage()
health = 60 - (oxyloss + toxloss + fireloss + bruteloss + cloneloss)
return
/mob/living/blob/death(gibbed)
death(gibbed)
if(key)
var/mob/dead/observer/ghost = new(src)
ghost.name = ghost_name
@@ -68,12 +65,18 @@
return ..(gibbed)
/mob/living/blob/blob_act()
blob_act()
src << "The blob attempts to reabsorb you."
toxloss += 20
return
Process_Spacemove()
if(locate(/obj/effect/blob) in oview(1,src))
return 1
return (..())
/mob/living/blob/verb/create_node()
set category = "Blob"
set name = "Create Node"

View File

@@ -1,19 +1,22 @@
/mob/living/carbon/human/Process_Spacemove()
/mob/living/carbon/human/Process_Spacemove(var/check_drift = 0)
//Can we act
if(restrained()) return 0
//Do we have a working jetpack
if(istype(back, /obj/item/weapon/tank/jetpack))
var/obj/item/weapon/tank/jetpack/J = back
if(J.allow_thrust(0.005, src))
if(check_drift && J.stabilization_on && !lying && J.allow_thrust(0.01, src))
inertia_dir = 0
return 1
if(!check_drift && J.allow_thrust(0.01, src))
return 1
//If no working jetpack then use the other checks
if(..()) return 1
return 0
/mob/living/carbon/human/Process_Spaceslipping(var/prob_slip = 5)
//If knocked out we might just hit it and stop. This makes it possible to get dead bodies and such.
if(stat) prob_slip += 50

View File

@@ -140,7 +140,7 @@
if(istype(mob.loc, /turf/space) || (mob.flags & NOGRAV))
if(!mob.Process_Spacemove()) return 0
if(!mob.Process_Spacemove(0)) return 0
if(isobj(mob.loc) || ismob(mob.loc))//Inside an object, tell it we moved
var/atom/O = mob.loc
@@ -202,8 +202,7 @@
M.animate_movement = 2
return
else
if(mob.confused)
else if(mob.confused)
step(mob, pick(cardinal))
else
. = ..()
@@ -300,7 +299,7 @@
///Called by /client/Move()
///For moving in space
///Return 1 for movement 0 for none
/mob/proc/Process_Spacemove()
/mob/proc/Process_Spacemove(var/check_drift = 0)
//First check to see if we can do things
if(restrained()) return 0
@@ -312,6 +311,12 @@
if((istype(turf,/turf/simulated)) && !(istype(turf,/turf/simulated/floor)))
dense_object++
break
if(istype(turf,/turf/unsimulated/floor) && !(src.flags & NOGRAV))
dense_object++
break
if((istype(turf,/turf/unsimulated)) && !(istype(turf,/turf/unsimulated/floor)))
dense_object++
break
if(!dense_object && (locate(/obj/structure/lattice) in oview(1, src)))
dense_object++

View File

@@ -9,13 +9,13 @@
origin_tech = "combat=3;magnets=2"
projectile_type = "/obj/item/projectile/beam"
obj/item/weapon/gun/energy/laser/retro
name ="retro laser"
icon_state = "retro"
desc = "An older model of the basic lasergun, no longer used by Nanotrasen's security or military forces. Nevertheless, it is still quite deadly and easy to maintain, making it a favorite amongst pirates and other outlaws."
/obj/item/weapon/gun/energy/laser/captain
icon_state = "caplaser"
desc = "This is an antique laser gun. All craftsmanship is of the highest quality. It is decorated with assistant leather and chrome. The object menaces with spikes of energy. On the item is an image of Space Station 13. The station is exploding."

View File

@@ -24,7 +24,7 @@
/obj/item/weapon/gun/projectile/automatic/c20r
name = "C-20r SMG"
desc = "A lightweight, fast firing gun, for when you REALLY need someone dead. Uses .12mm rounds. Has a 'Scarborough Arms - Per falcis, per pravitas' buttstamp"
desc = "A lightweight, fast firing gun, for when you REALLY need someone dead. Uses 12mm rounds. Has a 'Scarborough Arms - Per falcis, per pravitas' buttstamp"
icon_state = "c20r"
item_state = "c20r"
w_class = 3.0

View File

@@ -75,6 +75,7 @@
#define FILE_DIR "code/game/objects/secstorage"
#define FILE_DIR "code/game/objects/stacks"
#define FILE_DIR "code/game/objects/storage"
#define FILE_DIR "code/game/objects/tanks"
#define FILE_DIR "code/game/structure"
#define FILE_DIR "code/game/verbs"
#define FILE_DIR "code/js"
@@ -371,6 +372,7 @@
#include "code\game\gamemodes\changeling\traitor_chan.dm"
#include "code\game\gamemodes\cult\cult.dm"
#include "code\game\gamemodes\cult\cult_items.dm"
#include "code\game\gamemodes\events\black_hole.dm"
#include "code\game\gamemodes\events\clang.dm"
#include "code\game\gamemodes\events\dust.dm"
#include "code\game\gamemodes\events\kudzu.dm"
@@ -668,6 +670,9 @@
#include "code\game\objects\storage\lockbox.dm"
#include "code\game\objects\storage\storage.dm"
#include "code\game\objects\storage\toolbox.dm"
#include "code\game\objects\tanks\emergency.dm"
#include "code\game\objects\tanks\jetpack.dm"
#include "code\game\objects\tanks\oxygen.dm"
#include "code\game\structure\structure.dm"
#include "code\game\verbs\AI_status.dm"
#include "code\game\verbs\authorize.dm"