Merge branch 'master' of github.com:Baystation12/Baystation12 into TGUpdates
@@ -160,9 +160,11 @@
|
||||
#define FILE_DIR "code/WorkInProgress"
|
||||
#define FILE_DIR "code/WorkInProgress/Apples"
|
||||
#define FILE_DIR "code/WorkInProgress/Cael_Aislinn"
|
||||
#define FILE_DIR "code/WorkInProgress/Cael_Aislinn/Jumper"
|
||||
#define FILE_DIR "code/WorkInProgress/Cael_Aislinn/Rust"
|
||||
#define FILE_DIR "code/WorkInProgress/Cael_Aislinn/Supermatter"
|
||||
#define FILE_DIR "code/WorkInProgress/Cael_Aislinn/Tajara"
|
||||
#define FILE_DIR "code/WorkInProgress/Cael_Aislinn/tajara_sprites"
|
||||
#define FILE_DIR "code/WorkInProgress/Chinsky"
|
||||
#define FILE_DIR "code/WorkInProgress/mapload"
|
||||
#define FILE_DIR "code/WorkInProgress/Mini"
|
||||
@@ -172,7 +174,6 @@
|
||||
#define FILE_DIR "code/WorkInProgress/Ported/Abi79"
|
||||
#define FILE_DIR "code/WorkInProgress/Ported/Bureaucracy"
|
||||
#define FILE_DIR "code/WorkInProgress/Ported/Spawners"
|
||||
#define FILE_DIR "code/WorkInProgress/Ported/ZeroPoint"
|
||||
#define FILE_DIR "code/WorkInProgress/SkyMarshal"
|
||||
#define FILE_DIR "code/WorkInProgress/Tastyfish"
|
||||
#define FILE_DIR "code/WorkInProgress/virus2"
|
||||
@@ -199,6 +200,7 @@
|
||||
#define FILE_DIR "icons/vending_icons"
|
||||
#define FILE_DIR "interface"
|
||||
#define FILE_DIR "maps"
|
||||
#define FILE_DIR "maps/backup"
|
||||
#define FILE_DIR "sound"
|
||||
#define FILE_DIR "sound/AI"
|
||||
#define FILE_DIR "sound/ambience"
|
||||
|
||||
@@ -1,128 +0,0 @@
|
||||
/obj/machinery/engine/laser
|
||||
name = "Zero-point laser"
|
||||
desc = "A super-powerful laser"
|
||||
var/visible = 1
|
||||
var/state = 1.0
|
||||
var/obj/effect/beam/e_beam/first
|
||||
var/power = 500
|
||||
icon = 'engine.dmi'
|
||||
icon_state = "laser"
|
||||
anchored = 1
|
||||
var/id
|
||||
var/on = 0
|
||||
var/freq = 50000
|
||||
var/phase = 0
|
||||
var/phase_variance = 0
|
||||
|
||||
/obj/machinery/engine/laser/process()
|
||||
if(on)
|
||||
if(!first)
|
||||
src.first = new /obj/effect/beam/e_beam(src.loc)
|
||||
src.first.master = src
|
||||
src.first.dir = src.dir
|
||||
src.first.power = src.power
|
||||
src.first.freq = src.freq
|
||||
src.first.phase = src.phase
|
||||
src.first.phase_variance = src.phase_variance
|
||||
step(first, dir)
|
||||
if(first)
|
||||
src.first.updatebeam()
|
||||
else
|
||||
src.first.updatebeam()
|
||||
else
|
||||
if(first)
|
||||
del first
|
||||
|
||||
/obj/machinery/engine/laser/proc/setpower(var/powera)
|
||||
src.power = powera
|
||||
if(first)
|
||||
first.setpower(src.power)
|
||||
|
||||
|
||||
/obj/effect/beam/e_beam
|
||||
name = "Laser beam"
|
||||
icon = 'projectiles.dmi'
|
||||
icon_state = "u_laser"
|
||||
var/obj/machinery/engine/laser/master = null
|
||||
var/obj/effect/beam/e_beam/next = null
|
||||
var/power
|
||||
var/freq = 50000
|
||||
var/phase = 0
|
||||
var/phase_variance = 0
|
||||
anchored = 1
|
||||
|
||||
/obj/effect/beam/e_beam/New()
|
||||
src.sd_SetLuminosity(4)
|
||||
|
||||
/obj/effect/beam/e_beam/proc/updatebeam()
|
||||
if(!next)
|
||||
if(get_step(src.loc,src.dir))
|
||||
var/obj/effect/beam/e_beam/e = new /obj/effect/beam/e_beam(src.loc)
|
||||
e.dir = src.dir
|
||||
src.next = e
|
||||
e.master = src.master
|
||||
e.power = src.power
|
||||
e.phase = src.phase
|
||||
src.phase+=src.phase_variance
|
||||
e.freq = src.freq
|
||||
e.phase_variance = src.phase_variance
|
||||
if(src.loc.density == 0)
|
||||
for(var/atom/o in src.loc.contents)
|
||||
if(o.density || o == src.master || (ismob(o) && !istype(o, /mob/dead)) )
|
||||
o.laser_act(src)
|
||||
del src
|
||||
return
|
||||
else
|
||||
src.loc.laser_act(src)
|
||||
del e
|
||||
return
|
||||
step(e,e.dir)
|
||||
if(e)
|
||||
e.updatebeam()
|
||||
else
|
||||
next.updatebeam()
|
||||
|
||||
/atom/proc/laser_act(var/obj/effect/beam/e_beam/b)
|
||||
return
|
||||
|
||||
/mob/living/carbon/laser_act(var/obj/effect/beam/e_beam/b)
|
||||
for(var/t in organs)
|
||||
var/datum/organ/external/affecting = organs["[t]"]
|
||||
if (affecting.take_damage(0, b.power/400,0,0))
|
||||
UpdateDamageIcon()
|
||||
else
|
||||
UpdateDamage()
|
||||
|
||||
/obj/effect/beam/e_beam/Bump(atom/Obstacle)
|
||||
Obstacle.laser_act(src)
|
||||
del(src)
|
||||
return
|
||||
|
||||
|
||||
/obj/effect/beam/e_beam/proc/setpower(var/powera)
|
||||
src.power = powera
|
||||
if(src.next)
|
||||
src.next.setpower(powera)
|
||||
|
||||
/obj/effect/beam/e_beam/Bumped()
|
||||
src.hit()
|
||||
return
|
||||
|
||||
/obj/effect/beam/e_beam/HasEntered(atom/movable/AM as mob|obj)
|
||||
if (istype(AM, /obj/effect/beam))
|
||||
return
|
||||
spawn( 0 )
|
||||
AM.laser_act(src)
|
||||
src.hit()
|
||||
return
|
||||
return
|
||||
|
||||
/obj/effect/beam/e_beam/Del()
|
||||
if(next)
|
||||
del(next)
|
||||
..()
|
||||
return
|
||||
|
||||
/obj/effect/beam/e_beam/proc/hit()
|
||||
del src
|
||||
return
|
||||
@@ -1,130 +0,0 @@
|
||||
//The laser control computer
|
||||
//Used to control the lasers
|
||||
/obj/machinery/computer/lasercon
|
||||
name = "Laser control computer"
|
||||
var/obj/machinery/engine/laser/laser = null
|
||||
icon_state = "atmos"
|
||||
var/id
|
||||
var/advanced = 0
|
||||
|
||||
/obj/machinery/computer/lasercon/New()
|
||||
spawn(1)
|
||||
if(istype(src.id,/list))
|
||||
laser = list()
|
||||
for(var/obj/machinery/engine/laser/las in world)
|
||||
if(las.id in src.id)
|
||||
laser += las
|
||||
else
|
||||
for(var/obj/machinery/engine/laser/las in world)
|
||||
if(las.id == src.id)
|
||||
laser = list(las)
|
||||
|
||||
|
||||
|
||||
/obj/machinery/computer/lasercon/attack_ai(mob/user)
|
||||
add_fingerprint(user)
|
||||
|
||||
if(stat & (BROKEN|NOPOWER))
|
||||
return
|
||||
interact(user)
|
||||
|
||||
/obj/machinery/computer/lasercon/attack_hand(mob/user)
|
||||
add_fingerprint(user)
|
||||
|
||||
if(stat & (BROKEN|NOPOWER))
|
||||
return
|
||||
interact(user)
|
||||
|
||||
|
||||
/obj/machinery/computer/lasercon/proc/interact(mob/user)
|
||||
|
||||
if ( (get_dist(src, user) > 1 ) || (stat & (BROKEN|NOPOWER)) )
|
||||
if (!istype(user, /mob/living/silicon))
|
||||
user.machine = null
|
||||
user << browse(null, "window=powcomp")
|
||||
return
|
||||
|
||||
|
||||
user.machine = src
|
||||
var/t = "<TT><B>Laser status monitor</B><HR>"
|
||||
|
||||
var/obj/machinery/engine/laser/laser = src.laser[1]
|
||||
|
||||
if(!laser)
|
||||
t += "\red No laser found"
|
||||
else
|
||||
|
||||
|
||||
t += "Power level: <A href = '?src=\ref[src];input=-4'>-</A> <A href = '?src=\ref[src];input=-3'>-</A> <A href = '?src=\ref[src];input=-2'>-</A> <A href = '?src=\ref[src];input=-1'>-</A> [add_lspace(laser.power,5)] <A href = '?src=\ref[src];input=1'>+</A> <A href = '?src=\ref[src];input=2'>+</A> <A href = '?src=\ref[src];input=3'>+</A> <A href = '?src=\ref[src];input=4'>+</A><BR>"
|
||||
if(advanced)
|
||||
t += "Frequency: <A href = '?src=\ref[src];freq=-10000'>-</A> <A href = '?src=\ref[src];freq=-1000'>-</A> [add_lspace(laser.freq,5)] <A href = '?src=\ref[src];freq=1000'>+</A> <A href = '?src=\ref[src];freq=10000'>+</A><BR>"
|
||||
|
||||
t += "Output: [laser.on ? "<B>Online</B> <A href = '?src=\ref[src];online=1'>Offline</A>" : "<A href = '?src=\ref[src];online=1'>Online</A> <B>Offline</B> "]<BR>"
|
||||
|
||||
t += "<BR><HR><A href='?src=\ref[src];close=1'>Close</A></TT>"
|
||||
|
||||
user << browse(t, "window=lascomp;size=420x700")
|
||||
onclose(user, "lascomp")
|
||||
|
||||
|
||||
/obj/machinery/computer/lasercon/Topic(href, href_list)
|
||||
..()
|
||||
if( href_list["close"] )
|
||||
usr << browse(null, "window=lascomp")
|
||||
usr.machine = null
|
||||
return
|
||||
|
||||
else if( href_list["input"] )
|
||||
var/i = text2num(href_list["input"])
|
||||
var/d = 0
|
||||
switch(i)
|
||||
if(-4)
|
||||
d = -1000
|
||||
if(4)
|
||||
d = 1000
|
||||
if(1)
|
||||
d = 1
|
||||
if(-1)
|
||||
d = -1
|
||||
if(2)
|
||||
d = 10
|
||||
if(-2)
|
||||
d = -10
|
||||
if(3)
|
||||
d = 100
|
||||
if(-3)
|
||||
d = -100
|
||||
for(var/obj/machinery/engine/laser/laser in src.laser)
|
||||
laser.power += d
|
||||
laser.setpower(max(1, min(3000, laser.power)))// clamp to range
|
||||
src.updateDialog()
|
||||
else if( href_list["online"] )
|
||||
for(var/obj/machinery/engine/laser/laser in src.laser)
|
||||
laser.on = !laser.on
|
||||
src.updateDialog()
|
||||
else if( href_list["freq"] )
|
||||
var/amt = text2num(href_list["freq"])
|
||||
for(var/obj/machinery/engine/laser/laser in src.laser)
|
||||
if(laser.freq+amt>0)
|
||||
laser.freq+=amt
|
||||
src.updateDialog()
|
||||
/obj/machinery/computer/lasercon/process()
|
||||
if(!(stat & (NOPOWER|BROKEN)) )
|
||||
use_power(250)
|
||||
|
||||
//src.updateDialog()
|
||||
|
||||
|
||||
/obj/machinery/computer/lasercon/power_change()
|
||||
|
||||
if(stat & BROKEN)
|
||||
icon_state = "broken"
|
||||
else
|
||||
if( powered() )
|
||||
icon_state = initial(icon_state)
|
||||
stat &= ~NOPOWER
|
||||
else
|
||||
spawn(rand(0, 15))
|
||||
src.icon_state = "c_unpowered"
|
||||
stat |= NOPOWER
|
||||
|
||||
@@ -1,120 +0,0 @@
|
||||
#define NITROGEN_RETARDATION_FACTOR 4 //Higher == N2 slows reaction more
|
||||
#define THERMAL_RELEASE_MODIFIER 50 //Higher == less heat released during reaction
|
||||
#define PLASMA_RELEASE_MODIFIER 750 //Higher == less plasma released by reaction
|
||||
#define OXYGEN_RELEASE_MODIFIER 1500 //Higher == less oxygen released at high temperature/power
|
||||
#define REACTION_POWER_MODIFIER 1.1 //Higher == more overall power
|
||||
|
||||
/obj/machinery/engine/supermatter
|
||||
name = "Supermatter"
|
||||
desc = "A strangely translucent and iridescent crystal. \red You get headaches just from looking at it."
|
||||
icon = 'engine.dmi'
|
||||
icon_state = "darkmatter"
|
||||
density = 1
|
||||
anchored = 1
|
||||
|
||||
var/gasefficency = 0.25
|
||||
|
||||
var/det = 0
|
||||
var/previousdet = 0
|
||||
var/const/explosiondet = 3500
|
||||
|
||||
var/const/warningtime = 50 // Make the CORE OVERLOAD message repeat only every aprox. ?? seconds
|
||||
var/lastwarning = 0 // Time in 1/10th of seconds since the last sent warning
|
||||
|
||||
/obj/machinery/engine/klaxon
|
||||
name = "Emergency Klaxon"
|
||||
icon = 'engine.dmi'
|
||||
icon_state = "darkmatter"
|
||||
density = 1
|
||||
anchored = 1
|
||||
var/obj/machinery/engine/supermatter/sup
|
||||
|
||||
/obj/machinery/engine/klaxon/process()
|
||||
if(!sup)
|
||||
for(var/obj/machinery/engine/supermatter/T in world)
|
||||
sup = T
|
||||
break
|
||||
if(sup.det >= 1)
|
||||
return
|
||||
|
||||
/obj/machinery/engine/supermatter/process()
|
||||
|
||||
var/turf/simulated/L = loc
|
||||
|
||||
//Ok, get the air from the turf
|
||||
var/datum/gas_mixture/env = L.return_air()
|
||||
|
||||
//Remove gas from surrounding area
|
||||
var/transfer_moles = gasefficency * env.total_moles()
|
||||
var/datum/gas_mixture/removed = env.remove(transfer_moles)
|
||||
|
||||
previousdet = det
|
||||
det += (removed.temperature - 1000) / 150
|
||||
det = max(det, 0)
|
||||
|
||||
if(det > 0 && removed.temperature > 1000) // while the core is still damaged and it's still worth noting its status
|
||||
if((world.realtime - lastwarning) / 10 >= warningtime)
|
||||
lastwarning = world.realtime
|
||||
if(explosiondet - det <= 300)
|
||||
radioalert("CORE EXPLOSION IMMINENT","Core control computer")
|
||||
else if(det >= previousdet) // The damage is still going up
|
||||
radioalert("CORE OVERLOAD","Core control computer")
|
||||
else // Phew, we're safe
|
||||
radioalert("Core returning to safe operating levels.","Core control computer")
|
||||
|
||||
if(det > explosiondet)
|
||||
roundinfo.core = 1
|
||||
//proc/explosion(turf/epicenter, devastation_range, heavy_impact_range, light_impact_range, flash_range, force = 0)
|
||||
explosion(src.loc,8,15,20,30,1)
|
||||
det = 0
|
||||
|
||||
if (!removed)
|
||||
return 1
|
||||
|
||||
var/power = max(round((removed.temperature - T0C) / 20), 0) //Total laser power plus an overload factor
|
||||
|
||||
//Get the collective laser power
|
||||
for(var/dir in cardinal)
|
||||
var/turf/T = get_step(L, dir)
|
||||
for(var/obj/effect/beam/e_beam/item in T)
|
||||
power += item.power
|
||||
|
||||
//Ok, 100% oxygen atmosphere = best reaction
|
||||
//Maxes out at 100% oxygen pressure
|
||||
var/oxygen = max(min((removed.oxygen - (removed.nitrogen * NITROGEN_RETARDATION_FACTOR)) / MOLES_CELLSTANDARD, 1), 0)
|
||||
|
||||
var/device_energy = oxygen * power
|
||||
|
||||
device_energy *= removed.temperature / T0C
|
||||
|
||||
device_energy = round(device_energy * REACTION_POWER_MODIFIER)
|
||||
|
||||
//To figure out how much temperature to add each tick, consider that at one atmosphere's worth
|
||||
//of pure oxygen, with all four lasers firing at standard energy and no N2 present, at room temperature
|
||||
//that the device energy is around 2140. At that stage, we don't want too much heat to be put out
|
||||
//Since the core is effectively "cold"
|
||||
|
||||
//Also keep in mind we are only adding this temperature to (efficiency)% of the one tile the rock
|
||||
//is on. An increase of 4*C @ 25% efficiency here results in an increase of 1*C / (#tilesincore) overall.
|
||||
removed.temperature += max((device_energy / THERMAL_RELEASE_MODIFIER), 0)
|
||||
|
||||
removed.temperature = min(removed.temperature, 1500)
|
||||
|
||||
//Calculate how much gas to release
|
||||
removed.toxins += max(round(device_energy / PLASMA_RELEASE_MODIFIER), 0)
|
||||
|
||||
removed.oxygen += max(round((device_energy + removed.temperature - T0C) / OXYGEN_RELEASE_MODIFIER), 0)
|
||||
|
||||
env.merge(removed)
|
||||
|
||||
//Not functional currently. -- SkyMarshal
|
||||
/*
|
||||
for(var/mob/living/carbon/l in view(src, 6)) // you have to be seeing the core to get hallucinations
|
||||
if(prob(10) && !(l.glasses && istype(l.glasses, /obj/item/clothing/glasses/meson)))
|
||||
l.hallucination = 50
|
||||
*/
|
||||
for(var/mob/living/l in view(src,3))
|
||||
l.bruteloss += 50
|
||||
l.updatehealth()
|
||||
|
||||
return 1
|
||||
@@ -1,6 +1,6 @@
|
||||
/obj/item/weapon/stamperaser
|
||||
name = "Eraser"
|
||||
desc = "Some type of eraser, you guess."
|
||||
name = "eraser"
|
||||
desc = "It looks like some kind of eraser."
|
||||
flags = FPRINT | TABLEPASS
|
||||
icon = 'items.dmi'
|
||||
icon_state = "zippo"
|
||||
|
||||
@@ -113,6 +113,7 @@
|
||||
idle_power_usage = 2
|
||||
active_power_usage = 6
|
||||
power_channel = ENVIRON
|
||||
var/network
|
||||
|
||||
New()
|
||||
if(z == 1)
|
||||
|
||||
@@ -117,6 +117,15 @@
|
||||
|
||||
var/walltype = "wall"
|
||||
|
||||
/turf/simulated/wall/heatshield
|
||||
thermal_conductivity = 0
|
||||
opacity = 0
|
||||
name = "Heat Shielding"
|
||||
icon = 'thermal.dmi'
|
||||
icon_state = "thermal"
|
||||
heat_capacity = 625000 //twice the cap of a normal wall
|
||||
walltype = "heatshield"
|
||||
|
||||
/turf/simulated/wall/cult
|
||||
name = "wall"
|
||||
desc = "The patterns engraved on the wall seem to shift as you try to focus on them. You feel sick"
|
||||
|
||||
@@ -21,7 +21,6 @@ Starting up. [time2text(world.timeofday, "hh:mm.ss")]
|
||||
LoadBans()
|
||||
process_teleport_locs() //Sets up the wizard teleport locations
|
||||
process_ghost_teleport_locs() //Sets up ghost teleport locations.
|
||||
sleep_offline = 1
|
||||
|
||||
if (config.kick_inactive)
|
||||
spawn(30)
|
||||
@@ -195,4 +194,4 @@ proc/countJob(rank)
|
||||
var/mob/M = T.host
|
||||
if(M.client && M.machine == subject)
|
||||
subject.attack_hand(M)
|
||||
*/
|
||||
*/
|
||||
|
||||
@@ -106,8 +106,6 @@
|
||||
|
||||
..()
|
||||
|
||||
sleep(50)
|
||||
|
||||
plmaster = new /obj/effect/overlay( )
|
||||
plmaster.icon = 'tile_effects.dmi'
|
||||
plmaster.icon_state = "plasma"
|
||||
@@ -196,4 +194,4 @@
|
||||
/obj/effect/decal/point/point()
|
||||
set src in oview()
|
||||
set hidden = 1
|
||||
return
|
||||
return
|
||||
|
||||
@@ -47,7 +47,7 @@ Stealth and Camouflage Items;
|
||||
/obj/item/clothing/mask/gas/voice:4:Voice Changer;
|
||||
/obj/item/clothing/glasses/thermal:4:Thermal Imaging Glasses;
|
||||
/obj/item/device/chameleon:4:Chameleon-Projector;
|
||||
/obj/item/weapon/stamperaser:1:Stamp Remover;
|
||||
/obj/item/weapon/stamperaser:1:Stamp Remover and Forger;
|
||||
Whitespace:Seperator;
|
||||
Devices and Tools;
|
||||
/obj/item/weapon/card/emag:4:Cryptographic Sequencer (Limited uses, almost full access);
|
||||
|
||||
@@ -1191,8 +1191,17 @@ table tr:first-child th:first-child { border: none;}
|
||||
A = A.loc
|
||||
if (!( istype(A, /area) ))
|
||||
return
|
||||
for(var/area/RA in A.related)
|
||||
RA.firereset()
|
||||
if(network)
|
||||
for(var/obj/machinery/door/firedoor/D in world)
|
||||
if(!D.blocked && D.net_id == src.network)
|
||||
if(D.operating)
|
||||
D.nextstate = CLOSED
|
||||
else if(!D.density)
|
||||
spawn(0)
|
||||
D.close()
|
||||
else
|
||||
for(var/area/RA in A.related)
|
||||
RA.firereset()
|
||||
return
|
||||
|
||||
/obj/machinery/firealarm/proc/alarm()
|
||||
@@ -1202,8 +1211,17 @@ table tr:first-child th:first-child { border: none;}
|
||||
A = A.loc
|
||||
if (!( istype(A, /area) ))
|
||||
return
|
||||
for(var/area/RA in A.related)
|
||||
RA.firealert()
|
||||
if(network)
|
||||
for(var/obj/machinery/door/firedoor/D in world)
|
||||
if(!D.blocked && D.net_id == src.network)
|
||||
if(D.operating)
|
||||
D.nextstate = OPEN
|
||||
else if(!D.density)
|
||||
spawn(0)
|
||||
D.open()
|
||||
else
|
||||
for(var/area/RA in A.related)
|
||||
RA.firealert()
|
||||
//playsound(src.loc, 'signal.ogg', 75, 0)
|
||||
return
|
||||
|
||||
|
||||
@@ -187,7 +187,10 @@
|
||||
if ("modify")
|
||||
if (modify)
|
||||
data_core.manifest_modify(modify.registered_name, modify.assignment)
|
||||
modify.name = text("[modify.registered_name]'s ID Card ([modify.assignment])")
|
||||
if(istype(modify,/obj/item/weapon/card/id/fluff/lifetime))
|
||||
modify.name = text("[modify.registered_name]'s Lifetime ID Card ([modify.assignment])")
|
||||
else
|
||||
modify.name = text("[modify.registered_name]'s ID Card ([modify.assignment])")
|
||||
if(ishuman(usr))
|
||||
modify.loc = usr.loc
|
||||
if(!usr.get_active_hand())
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
opacity = 0
|
||||
density = 0
|
||||
var/nextstate = null
|
||||
|
||||
var/net_id
|
||||
|
||||
Bumped(atom/AM)
|
||||
if(p_open || operating) return
|
||||
|
||||
@@ -47,6 +47,12 @@ datum/controller/game_controller
|
||||
|
||||
world.tick_lag = config.Ticklag
|
||||
|
||||
// Sleep for about 5 seconds to allow background initialization procs to finish
|
||||
sleep(50)
|
||||
|
||||
// Now that the game is world is fully initialized, pause server until a user connects.
|
||||
world.sleep_offline = 1
|
||||
|
||||
setup_objects()
|
||||
|
||||
setupgenetics()
|
||||
@@ -235,4 +241,4 @@ datum/controller/game_controller
|
||||
else
|
||||
for (var/mob/M in world)
|
||||
if (M.client && M.client.holder)
|
||||
M << "<font color='red' size='2'><b> The Master Controller has fired. Automatic restart aborted.</b></font>"
|
||||
M << "<font color='red' size='2'><b> The Master Controller has fired. Automatic restart aborted.</b></font>"
|
||||
|
||||
@@ -202,32 +202,69 @@ NOTEBOOK
|
||||
user << "\blue You stamp the paper with your rubber stamp."
|
||||
|
||||
if(istype(P, /obj/item/weapon/stamperaser))
|
||||
if ((!in_range(src, usr) && src.loc != user && !( istype(src.loc, /obj/item/weapon/clipboard) ) && src.loc.loc != user && user.equipped() != P))
|
||||
return
|
||||
src.info = src.infoold
|
||||
src.infoold = null
|
||||
for(var/i, i <= stamped.len, i++)
|
||||
switch(stamped[i])
|
||||
if(/obj/item/weapon/stamp/captain)
|
||||
src.overlays -= "paper_stamped_cap"
|
||||
if(/obj/item/weapon/stamp/hop)
|
||||
src.overlays -= "paper_stamped_hop"
|
||||
if(/obj/item/weapon/stamp/hos)
|
||||
src.overlays -= "paper_stamped_hos"
|
||||
if(/obj/item/weapon/stamp/ce)
|
||||
src.overlays -= "paper_stamped_ce"
|
||||
if(/obj/item/weapon/stamp/rd)
|
||||
src.overlays -= "paper_stamped_rd"
|
||||
if(/obj/item/weapon/stamp/cmo)
|
||||
src.overlays -= "paper_stamped_cmo"
|
||||
if(/obj/item/weapon/stamp/denied)
|
||||
src.overlays -= "paper_stamped_denied"
|
||||
if(/obj/item/weapon/stamp/clown)
|
||||
src.overlays -= "paper_stamped_clown"
|
||||
else
|
||||
src.overlays -= "paper_stamped"
|
||||
stamped = list()
|
||||
user << "\blue You sucessfully remove those pesky stamps."
|
||||
switch(alert("Would you like to erase all stamps, or forge one?","Choose.","Erase","Forge"))
|
||||
if("Erase")
|
||||
if ((!in_range(src, usr) && src.loc != user && !( istype(src.loc, /obj/item/weapon/clipboard) ) && src.loc.loc != user && user.equipped() != P))
|
||||
return
|
||||
src.info = src.infoold
|
||||
src.infoold = null
|
||||
src.overlays -= "paper_stamped_cap"
|
||||
src.overlays -= "paper_stamped_hop"
|
||||
src.overlays -= "paper_stamped_hos"
|
||||
src.overlays -= "paper_stamped_ce"
|
||||
src.overlays -= "paper_stamped_rd"
|
||||
src.overlays -= "paper_stamped_cmo"
|
||||
src.overlays -= "paper_stamped_denied"
|
||||
src.overlays -= "paper_stamped_clown"
|
||||
src.overlays -= "paper_stamped"
|
||||
stamped = list()
|
||||
user << "\blue You sucessfully remove those pesky stamps."
|
||||
return
|
||||
if("Forge")
|
||||
if ((!in_range(src, usr) && src.loc != user && !( istype(src.loc, /obj/item/weapon/clipboard) ) && src.loc.loc != user && user.equipped() != P))
|
||||
return
|
||||
if(!src.infoold)
|
||||
src.infoold = src.info
|
||||
var/forgename = ""
|
||||
var/stamptype = ""
|
||||
var/pathtype = ""
|
||||
var/list/stamps = list("Captain", "Head of Personnel", "Head of Security", "Chief Engineer", "Research Director", "Chief Medical Officer", "DENIED")
|
||||
stamptype = input("Select a stamp type.", null) in stamps
|
||||
if(stamptype == "Captain")
|
||||
src.overlays += "paper_stamped_cap"
|
||||
forgename = "captain's rubber stamp"
|
||||
pathtype = "/obj/item/weapon/stamp/captain"
|
||||
else if(stamptype == "Head of Personnel")
|
||||
src.overlays += "paper_stamped_hop"
|
||||
forgename = "head of personnel's rubber stamp"
|
||||
pathtype = "/obj/item/weapon/stamp/hop"
|
||||
else if(stamptype == "Head of Security")
|
||||
src.overlays += "paper_stamped_hos"
|
||||
forgename = "head of security's rubber stamp"
|
||||
pathtype = "/obj/item/weapon/stamp/hos"
|
||||
else if(stamptype == "Chief Engineer")
|
||||
src.overlays += "paper_stamped_ce"
|
||||
forgename = "chief engineers's rubber stamp"
|
||||
pathtype = "/obj/item/weapon/stamp/ce"
|
||||
else if(stamptype == "Research Director")
|
||||
src.overlays += "paper_stamped_rd"
|
||||
forgename = "research director's rubber stamp"
|
||||
pathtype = "/obj/item/weapon/stamp/rd"
|
||||
else if(stamptype == "Chief Medical Officer")
|
||||
src.overlays += "paper_stamped_cmo"
|
||||
forgename = "chief medical officer's rubber stamp"
|
||||
pathtype = "/obj/item/weapon/stamp/cmo"
|
||||
else if(stamptype == "DENIED")
|
||||
src.overlays += "paper_stamped_denied"
|
||||
forgename = "\improper DENIED rubber stamp"
|
||||
pathtype = "/obj/item/weapon/stamp/denied"
|
||||
src.info += text("<BR><i>This paper has been stamped with the [].</i><BR>", forgename)
|
||||
if(!stamped)
|
||||
stamped = new
|
||||
stamped += pathtype
|
||||
|
||||
user << "\blue You forge a stamp on the paper."
|
||||
return
|
||||
|
||||
/*
|
||||
else
|
||||
|
||||
@@ -41,6 +41,8 @@
|
||||
if (src.client.holder.rank == "Admin Observer")
|
||||
C << "<span class='adminobserverooc'><span class='prefix'>OOC:</span> <EM>[src.key][src.client.stealth ? "/([src.client.fakekey])" : ""]:</EM> <span class='message'>[msg]</span></span>"
|
||||
else if (src.client.holder.rank == "Retired Admin")
|
||||
C << "<span class='ooc'><span class='prefix'>OOC:</span> <EM>[src.key][src.client.stealth ? "/([src.client.fakekey])" : ""]:</EM> <span class='message'>[msg]</span></span>"
|
||||
else if (src.client.holder.level >= 5)
|
||||
C << "<font color=[src.client.ooccolor]><b><span class='prefix'>OOC:</span> <EM>[src.key][src.client.stealth ? "/([src.client.fakekey])" : ""]:</EM> <span class='message'>[msg]</span></b></font>"
|
||||
else
|
||||
C << "<span class='adminooc'><span class='prefix'>OOC:</span> <EM>[src.key][src.client.stealth ? "/([src.client.fakekey])" : ""]:</EM> <span class='message'>[msg]</span></span>"
|
||||
|
||||
@@ -6,147 +6,9 @@
|
||||
icon = 'custom_items.dmi'
|
||||
w_class = 1.0
|
||||
|
||||
//////////// Clothing
|
||||
|
||||
/obj/item/clothing/glasses/meson/fluff/book_berner_1
|
||||
name = "bespectacled mesonic surveyors"
|
||||
desc = "One of the older meson scanner models retrofitted to perform like its modern counterparts."
|
||||
icon = 'custom_items.dmi'
|
||||
icon_state = "book_berner_1"
|
||||
|
||||
/obj/item/clothing/glasses/fluff/serithi_artalis_1
|
||||
name = "extranet HUD"
|
||||
desc = "A heads-up display with limited connectivity to the NanoTrasen Extranet, capable of displaying information from official NanoTrasen records."
|
||||
icon = 'custom_items.dmi'
|
||||
icon_state = "serithi_artalis_1"
|
||||
|
||||
/obj/item/clothing/head/helmet/hardhat/fluff/greg_anderson_1
|
||||
name = "old hard hat"
|
||||
desc = "An old dented hard hat with the nametag \"Anderson\". It seems to be backwards."
|
||||
icon_state = "hardhat0_dblue" //Already an in-game sprite
|
||||
item_state = "hardhat0_dblue"
|
||||
color = "dblue"
|
||||
|
||||
/obj/item/clothing/under/rank/virologist/fluff/cdc_jumpsuit
|
||||
name = "\improper CDC jumpsuit"
|
||||
desc = "A modified standard-issue CDC jumpsuit made of a special fiber that gives special protection against biohazards. It has a biohazard symbol sewn into the back."
|
||||
icon = 'custom_items.dmi'
|
||||
icon_state = "cdc_jumpsuit"
|
||||
color = "cdc_jumpsuit"
|
||||
|
||||
/obj/item/clothing/suit/storage/labcoat/fluff/cdc_labcoat
|
||||
name = "\improper CDC labcoat"
|
||||
desc = "A standard-issue CDC labcoat that protects against minor chemical spills. It has the name \"Wiles\" sewn on to the breast pocket."
|
||||
icon = 'custom_items.dmi'
|
||||
icon_state = "labcoat_cdc_open"
|
||||
|
||||
/obj/item/clothing/suit/storage/labcoat/fluff/pink
|
||||
name = "pink labcoat"
|
||||
desc = "A suit that protects against minor chemical spills. Has a pink stripe down from the shoulders."
|
||||
icon = 'custom_items.dmi'
|
||||
icon_state = "labcoat_pink_open"
|
||||
|
||||
/obj/item/clothing/suit/storage/labcoat/fluff/red
|
||||
name = "red labcoat"
|
||||
desc = "A suit that protects against minor chemical spills. Has a red stripe on the shoulders and rolled up sleeves."
|
||||
icon = 'custom_items.dmi'
|
||||
icon_state = "labcoat_red_open"
|
||||
|
||||
/obj/item/clothing/under/rank/medical/fluff/short
|
||||
name = "short sleeve medical jumpsuit"
|
||||
desc = "Made of a special fiber that gives special protection against biohazards. Has a cross on the chest denoting that the wearer is trained medical personnel and short sleeves."
|
||||
icon = 'custom_items.dmi'
|
||||
icon_state = "medical_short"
|
||||
color = "medical_short"
|
||||
|
||||
/obj/item/clothing/under/fluff/jumpsuitdown
|
||||
name = "rolled down jumpsuit"
|
||||
desc = "A rolled down jumpsuit. Great for mechanics."
|
||||
icon = 'custom_items.dmi'
|
||||
icon_state = "jumpsuitdown"
|
||||
item_state = "jumpsuitdown"
|
||||
color = "jumpsuitdown"
|
||||
|
||||
/obj/item/clothing/under/fluff/olddressuniform
|
||||
name = "retired dress uniform"
|
||||
desc = "A retired Station Head of Staff uniform, phased out twenty years ago for the newer jumpsuit design, but still acceptable dress. Lovingly maintained."
|
||||
icon = 'custom_items.dmi'
|
||||
icon_state = "olddressuniform"
|
||||
item_state = "olddressuniform"
|
||||
color = "olddressuniform"
|
||||
|
||||
/obj/item/clothing/suit/storage/det_suit/fluff/graycoat
|
||||
name = "gray coat"
|
||||
desc = "Old, worn out coat. It's seen better days."
|
||||
icon = 'custom_items.dmi'
|
||||
icon_state = "graycoat"
|
||||
item_state = "graycoat"
|
||||
color = "graycoat"
|
||||
|
||||
//////////// Useable Items
|
||||
|
||||
/obj/item/weapon/pen/fluff/multi
|
||||
name = "multicolor pen"
|
||||
desc = "It's a cool looking pen. Lots of colors!"
|
||||
|
||||
/obj/item/weapon/pen/fluff/fancypen
|
||||
name = "fancy pen"
|
||||
desc = "A fancy metal pen. It uses blue ink. An inscription on one side reads,\"L.L. - L.R.\""
|
||||
icon = 'custom_items.dmi'
|
||||
icon_state = "fancypen"
|
||||
|
||||
/obj/item/fluff/victor_kaminsky_1
|
||||
name = "golden detective's badge"
|
||||
desc = "NanoTrasen Security Department detective's badge, made from gold. Badge number is 564."
|
||||
icon_state = "victor_kaminsky_1"
|
||||
|
||||
/obj/item/fluff/victor_kaminsky_1/attack_self(mob/user as mob)
|
||||
for(var/mob/O in viewers(user, null))
|
||||
O.show_message(text("[] shows you: \icon[] [].", user, src, src.name), 1)
|
||||
src.add_fingerprint(user)
|
||||
|
||||
/obj/item/weapon/clipboard/fluff/smallnote
|
||||
name = "small notebook"
|
||||
desc = "A generic small spiral notebook that flips upwards."
|
||||
icon = 'custom_items.dmi'
|
||||
icon_state = "smallnotetext"
|
||||
|
||||
/obj/item/weapon/storage/fluff/maye_daye_1
|
||||
name = "pristine lunchbox"
|
||||
desc = "A pristine stainless steel lunch box. The initials M.D. are engraved on the inside of the lid."
|
||||
icon = 'custom_items.dmi'
|
||||
icon_state = "maye_daye_1"
|
||||
|
||||
/obj/item/weapon/reagent_containers/food/drinks/flask/fluff/johann_erzatz_1
|
||||
name = "vintage thermos"
|
||||
desc = "An older thermos with a faint shine."
|
||||
icon = 'custom_items.dmi'
|
||||
icon_state = "johann_erzatz_1"
|
||||
volume = 50
|
||||
|
||||
/obj/item/weapon/lighter/zippo/fluff/li_tsun_1
|
||||
name = "blue zippo lighter"
|
||||
desc = "A zippo lighter made of some blue metal."
|
||||
icon = 'custom_items.dmi'
|
||||
icon_state = "bluezippo"
|
||||
icon_on = "bluezippoon"
|
||||
icon_off = "bluezippo"
|
||||
|
||||
/obj/item/weapon/fluff/cado_keppel_1
|
||||
name = "purple comb"
|
||||
desc = "A pristine purple comb made from flexible plastic. It has a small K etched into its side."
|
||||
w_class = 1.0
|
||||
icon = 'custom_items.dmi'
|
||||
icon_state = "purplecomb"
|
||||
item_state = "purplecomb"
|
||||
|
||||
attack_self(mob/user)
|
||||
if(user.r_hand == src || user.l_hand == src)
|
||||
for(var/mob/O in viewers(user, null))
|
||||
O.show_message(text("\red [] uses their [] to comb their hair with incredible style and sophistication. What a guy.", user, src), 1)
|
||||
return
|
||||
|
||||
//////////// Misc Items
|
||||
//////////////////////////////////
|
||||
////////// Fluff Items ///////////
|
||||
//////////////////////////////////
|
||||
|
||||
/obj/item/fluff/wes_solari_1
|
||||
name = "family photograph"
|
||||
@@ -177,3 +39,216 @@
|
||||
name = "rosary pendant"
|
||||
desc = "A cross on a ring of beads, has McNeil etched onto the back."
|
||||
icon_state = "val_mcneil_1"
|
||||
|
||||
//////////////////////////////////
|
||||
////////// Usable Items //////////
|
||||
//////////////////////////////////
|
||||
|
||||
/obj/item/weapon/pen/fluff/multi //spaceman96: Trenna Seber
|
||||
name = "multicolor pen"
|
||||
desc = "It's a cool looking pen. Lots of colors!"
|
||||
|
||||
/obj/item/weapon/pen/fluff/fancypen //orangebottle: Lillian Levett, Lilliana Reade
|
||||
name = "fancy pen"
|
||||
desc = "A fancy metal pen. It uses blue ink. An inscription on one side reads,\"L.L. - L.R.\""
|
||||
icon = 'custom_items.dmi'
|
||||
icon_state = "fancypen"
|
||||
|
||||
/obj/item/fluff/victor_kaminsky_1 //chinsky: Victor Kaminski
|
||||
name = "golden detective's badge"
|
||||
desc = "NanoTrasen Security Department detective's badge, made from gold. Badge number is 564."
|
||||
icon_state = "victor_kaminsky_1"
|
||||
|
||||
/obj/item/fluff/victor_kaminsky_1/attack_self(mob/user as mob)
|
||||
for(var/mob/O in viewers(user, null))
|
||||
O.show_message(text("[] shows you: \icon[] [].", user, src, src.name), 1)
|
||||
src.add_fingerprint(user)
|
||||
|
||||
/obj/item/weapon/clipboard/fluff/smallnote //lexusjjss: Lexus Langg, Zachary Tomlinson
|
||||
name = "small notebook"
|
||||
desc = "A generic small spiral notebook that flips upwards."
|
||||
icon = 'custom_items.dmi'
|
||||
icon_state = "smallnotetext"
|
||||
|
||||
/obj/item/weapon/storage/fluff/maye_daye_1 //morrinn: Maye Day
|
||||
name = "pristine lunchbox"
|
||||
desc = "A pristine stainless steel lunch box. The initials M.D. are engraved on the inside of the lid."
|
||||
icon = 'custom_items.dmi'
|
||||
icon_state = "maye_daye_1"
|
||||
|
||||
/obj/item/weapon/reagent_containers/food/drinks/flask/fluff/johann_erzatz_1 //leonheart11: Johann Erzatz
|
||||
name = "vintage thermos"
|
||||
desc = "An older thermos with a faint shine."
|
||||
icon = 'custom_items.dmi'
|
||||
icon_state = "johann_erzatz_1"
|
||||
volume = 50
|
||||
|
||||
/obj/item/weapon/lighter/zippo/fluff/li_tsun_1 //mangled: Li Tsun
|
||||
name = "blue zippo lighter"
|
||||
desc = "A zippo lighter made of some blue metal."
|
||||
icon = 'custom_items.dmi'
|
||||
icon_state = "bluezippo"
|
||||
icon_on = "bluezippoon"
|
||||
icon_off = "bluezippo"
|
||||
|
||||
/obj/item/weapon/fluff/cado_keppel_1 //sparklysheep: Cado Keppel
|
||||
name = "purple comb"
|
||||
desc = "A pristine purple comb made from flexible plastic. It has a small K etched into its side."
|
||||
w_class = 1.0
|
||||
icon = 'custom_items.dmi'
|
||||
icon_state = "purplecomb"
|
||||
item_state = "purplecomb"
|
||||
|
||||
attack_self(mob/user)
|
||||
if(user.r_hand == src || user.l_hand == src)
|
||||
for(var/mob/O in viewers(user, null))
|
||||
O.show_message(text("\red [] uses their [] to comb their hair with incredible style and sophistication. What a guy.", user, src), 1)
|
||||
return
|
||||
|
||||
/obj/item/weapon/camera_test/fluff/orange
|
||||
name = "orange camera"
|
||||
icon = 'custom_items.dmi'
|
||||
desc = "A modified detective's camera, painted in bright orange. On the back you see \"Have fun\" written in small accurate letters with something black."
|
||||
icon_state = "orangecamera"
|
||||
pictures_left = 30
|
||||
|
||||
|
||||
/obj/item/weapon/card/id/fluff/lifetime //fastler: Fastler Greay; it seemed like something multiple people would have
|
||||
name = "Lifetime ID Card"
|
||||
desc = "A modified ID card given only to those people who have devoted their lives to the better interests of NanoTrasen. It sparkles blue."
|
||||
icon = 'custom_items.dmi'
|
||||
icon_state = "lifetimeid"
|
||||
|
||||
//////////////////////////////////
|
||||
//////////// Clothing ////////////
|
||||
//////////////////////////////////
|
||||
|
||||
//////////// Eye Wear ////////////
|
||||
|
||||
/obj/item/clothing/glasses/meson/fluff/book_berner_1 //asanadas: Book Berner
|
||||
name = "bespectacled mesonic surveyors"
|
||||
desc = "One of the older meson scanner models retrofitted to perform like its modern counterparts."
|
||||
icon = 'custom_items.dmi'
|
||||
icon_state = "book_berner_1"
|
||||
|
||||
/obj/item/clothing/glasses/fluff/serithi_artalis_1 //serithi: Serithi Artalis
|
||||
name = "extranet HUD"
|
||||
desc = "A heads-up display with limited connectivity to the NanoTrasen Extranet, capable of displaying information from official NanoTrasen records."
|
||||
icon = 'custom_items.dmi'
|
||||
icon_state = "serithi_artalis_1"
|
||||
|
||||
//////////// Hats ////////////
|
||||
|
||||
/obj/item/clothing/head/helmet/hardhat/fluff/greg_anderson_1 //deusdactyl: Greg Anderson
|
||||
name = "old hard hat"
|
||||
desc = "An old dented hard hat with the nametag \"Anderson\". It seems to be backwards."
|
||||
icon_state = "hardhat0_dblue" //Already an in-game sprite
|
||||
item_state = "hardhat0_dblue"
|
||||
color = "dblue"
|
||||
|
||||
/obj/item/clothing/head/secsoft/fluff/swatcap //deusdactyl: James Girard
|
||||
name = "\improper SWAT hat"
|
||||
desc = "A black hat. The inside has the words, \"Lieutenant James Girard, LPD SWAT Team Four.\""
|
||||
icon = 'custom_items.dmi'
|
||||
icon_state = "swatcap"
|
||||
|
||||
//////////// Suits ////////////
|
||||
|
||||
/obj/item/clothing/suit/storage/labcoat/fluff/pink
|
||||
name = "pink labcoat"
|
||||
desc = "A suit that protects against minor chemical spills. Has a pink stripe down from the shoulders."
|
||||
icon = 'custom_items.dmi'
|
||||
icon_state = "labcoat_pink_open"
|
||||
|
||||
/obj/item/clothing/suit/storage/det_suit/fluff/graycoat
|
||||
name = "gray coat"
|
||||
desc = "Old, worn out coat. It's seen better days."
|
||||
icon = 'custom_items.dmi'
|
||||
icon_state = "graycoat"
|
||||
item_state = "graycoat"
|
||||
color = "graycoat"
|
||||
|
||||
//////////// Uniforms ////////////
|
||||
|
||||
/obj/item/clothing/under/fluff/jumpsuitdown
|
||||
name = "rolled down jumpsuit"
|
||||
desc = "A rolled down jumpsuit. Great for mechanics."
|
||||
icon = 'custom_items.dmi'
|
||||
icon_state = "jumpsuitdown"
|
||||
item_state = "jumpsuitdown"
|
||||
color = "jumpsuitdown"
|
||||
|
||||
/obj/item/clothing/under/fluff/olddressuniform
|
||||
name = "retired dress uniform"
|
||||
desc = "A retired Station Head of Staff uniform, phased out twenty years ago for the newer jumpsuit design, but still acceptable dress. Lovingly maintained."
|
||||
icon = 'custom_items.dmi'
|
||||
icon_state = "olddressuniform"
|
||||
item_state = "olddressuniform"
|
||||
color = "olddressuniform"
|
||||
|
||||
//////////// Masks ////////////
|
||||
|
||||
/obj/item/clothing/mask/fluff/flagmask //searif: Tsiokeriio Tarbell
|
||||
name = "\improper First Nations facemask"
|
||||
desc = "A simple cloth rag that bears the flag of the first nations."
|
||||
icon = 'custom_items.dmi'
|
||||
icon_state = "flagmask"
|
||||
item_state = "flagmask"
|
||||
flags = FPRINT|TABLEPASS|MASKCOVERSMOUTH
|
||||
w_class = 2
|
||||
gas_transfer_coefficient = 0.90
|
||||
|
||||
//////////// Sets ////////////
|
||||
|
||||
////// CDC
|
||||
|
||||
/obj/item/clothing/under/rank/virologist/fluff/cdc_jumpsuit
|
||||
name = "\improper CDC jumpsuit"
|
||||
desc = "A modified standard-issue CDC jumpsuit made of a special fiber that gives special protection against biohazards. It has a biohazard symbol sewn into the back."
|
||||
icon = 'custom_items.dmi'
|
||||
icon_state = "cdc_jumpsuit"
|
||||
color = "cdc_jumpsuit"
|
||||
|
||||
/obj/item/clothing/suit/storage/labcoat/fluff/cdc_labcoat
|
||||
name = "\improper CDC labcoat"
|
||||
desc = "A standard-issue CDC labcoat that protects against minor chemical spills. It has the name \"Wiles\" sewn on to the breast pocket."
|
||||
icon = 'custom_items.dmi'
|
||||
icon_state = "labcoat_cdc_open"
|
||||
|
||||
////// Short Sleeve Medical Outfit
|
||||
|
||||
/obj/item/clothing/under/rank/medical/fluff/short
|
||||
name = "short sleeve medical jumpsuit"
|
||||
desc = "Made of a special fiber that gives special protection against biohazards. Has a cross on the chest denoting that the wearer is trained medical personnel and short sleeves."
|
||||
icon = 'custom_items.dmi'
|
||||
icon_state = "medical_short"
|
||||
color = "medical_short"
|
||||
|
||||
/obj/item/clothing/suit/storage/labcoat/fluff/red
|
||||
name = "red labcoat"
|
||||
desc = "A suit that protects against minor chemical spills. Has a red stripe on the shoulders and rolled up sleeves."
|
||||
icon = 'custom_items.dmi'
|
||||
icon_state = "labcoat_red_open"
|
||||
|
||||
////// Retired Patrol Outfit
|
||||
|
||||
/obj/item/clothing/suit/storage/det_suit/fluff/retpolcoat
|
||||
name = "retired colony patrolman's coat"
|
||||
desc = "A clean, black nylon windbreaker with the words \"OUTER LIGHT POLICE\" embroidered in gold-dyed thread on the back. \"RETIRED\" is tastefully embroidered below in a smaller font."
|
||||
icon = 'custom_items.dmi'
|
||||
icon_state = "retpolcoat"
|
||||
item_state = "retpolcoat"
|
||||
color = "retpolcoat"
|
||||
|
||||
/obj/item/clothing/head/det_hat/fluff/retpolcap
|
||||
name = "retired colony patrolman's cap"
|
||||
desc = "A clean and properly creased colony police cap. The badge is shined and polished, the word \"RETIRED\" engraved professionally under the words \"OUTER LIGHT POLICE.\""
|
||||
icon = 'custom_items.dmi'
|
||||
icon_state = "retpolcap"
|
||||
|
||||
/obj/item/clothing/under/det/fluff/retpoluniform
|
||||
name = "retired colony patrolman's uniform"
|
||||
desc = "A meticulously clean police uniform belonging to Precinct 31, Outer Light Colony. The word \"RETIRED\" is engraved tastefully and professionally in the badge below the number, 501."
|
||||
icon = 'custom_items.dmi'
|
||||
icon_state = "retpoluniform"
|
||||
color = "retpoluniform"
|
||||
|
||||
@@ -29,6 +29,22 @@
|
||||
if(istype(M.back,/obj/item/weapon/storage) && M.back:contents.len < M.back:storage_slots) // Try to place it in something on the mob's back first
|
||||
Item.loc = M.back
|
||||
ok = 1
|
||||
else if(istype(Item,/obj/item/weapon/card/id)) //player wants a custom ID card - only lifetime cards for now
|
||||
var/obj/item/weapon/card/id/I = Item
|
||||
for(var/obj/item/weapon/card/id/C in M)
|
||||
I.registered_name = M.real_name
|
||||
I.name = "[M.real_name]'s Lifetime ID Card ([M.mind.role_alt_title ? M.mind.role_alt_title : M.mind.assigned_role])"
|
||||
I.access = C.access
|
||||
I.assignment = C.assignment
|
||||
I.over_jumpsuit = C.over_jumpsuit
|
||||
I.blood_type = C.blood_type
|
||||
I.dna_hash = C.dna_hash
|
||||
I.fingerprint_hash = C.fingerprint_hash
|
||||
//
|
||||
I.loc = C.loc
|
||||
ok = 1
|
||||
del(C)
|
||||
break
|
||||
else
|
||||
for(var/obj/item/weapon/storage/S in M.contents) // Try to place it in any item that can store stuff, on the mob.
|
||||
if (S:len < S:storage_slots)
|
||||
|
||||
@@ -1,28 +1,33 @@
|
||||
spaceman96: Trenna Seber: /obj/item/weapon/pen/fluff/multi, /obj/item/clothing/suit/storage/labcoat/fluff/pink
|
||||
asanadas: Book Berner: /obj/item/clothing/under/chameleon/psyche, /obj/item/clothing/glasses/meson/fluff/book_berner_1
|
||||
tastyfish: Cindy Robertson: /obj/item/weapon/wrapping_paper
|
||||
eternal248: Maximilian Haynes: /obj/item/weapon/paper/certificate
|
||||
searif: Yuki Matsuda: /obj/item/weapon/paper/certificate, /obj/item/clothing/under/fluff/jumpsuitdown
|
||||
erthilo: Farah Lants: /obj/item/clothing/under/rank/medical/fluff/short, /obj/item/clothing/suit/storage/labcoat/fluff/red
|
||||
compactninja: Ysyr Rylias: /obj/item/weapon/reagent_containers/food/drinks/dry_ramen, /obj/item/weapon/reagent_containers/food/drinks/dry_ramen, /obj/item/weapon/reagent_containers/food/drinks/dry_ramen, /obj/item/weapon/reagent_containers/food/drinks/dry_ramen
|
||||
tzefa: Wes Solari: /obj/item/fluff/wes_solari_1
|
||||
misterfox: Rashid Siraj: /obj/item/weapon/storage/bible/tajaran
|
||||
chinsky: Victor Kaminski: /obj/item/fluff/victor_kaminsky_1
|
||||
fniff: Sarah Calvera: /obj/item/fluff/sarah_calvera_1
|
||||
fniff: Angleo Wilkerson: /obj/item/fluff/angelo_wilkerson_1
|
||||
gvazdas: Sarah Carbrokes: /obj/item/fluff/sarah_carbrokes_1
|
||||
serithi: Serithi Artalis: /obj/item/clothing/glasses/fluff/serithi_artalis_1
|
||||
chinsky: Summer Springfield: /obj/item/weapon/camera_test/fluff/orange
|
||||
compactninja: Ysyr Rylias: /obj/item/weapon/reagent_containers/food/drinks/dry_ramen, /obj/item/weapon/reagent_containers/food/drinks/dry_ramen, /obj/item/weapon/reagent_containers/food/drinks/dry_ramen, /obj/item/weapon/reagent_containers/food/drinks/dry_ramen
|
||||
deusdactyl: Greg Anderson: /obj/item/clothing/head/helmet/hardhat/fluff/greg_anderson_1
|
||||
whitellama: Ethan Way: /obj/item/fluff/ethan_way_1
|
||||
morrinn: Maye Day: /obj/item/weapon/storage/fluff/maye_daye_1
|
||||
deusdactyl: Roger Wiles: /obj/item/clothing/under/rank/virologist/fluff/cdc_jumpsuit, /obj/item/clothing/suit/storage/labcoat/fluff/cdc_labcoat
|
||||
deusdactyl: James Girard: /obj/item/clothing/head/secsoft/fluff/swatcap
|
||||
eternal248: Maximilian Haynes: /obj/item/weapon/paper/certificate
|
||||
erthilo: Farah Lants: /obj/item/clothing/under/rank/medical/fluff/short, /obj/item/clothing/suit/storage/labcoat/fluff/red
|
||||
gvazdas: Sarah Carbrokes: /obj/item/fluff/sarah_carbrokes_1
|
||||
leonheart11: Johann Erzatz: /obj/item/weapon/reagent_containers/food/drinks/flask/fluff/johann_erzatz_1
|
||||
lexusjjss: Lexus Langg: /obj/item/weapon/clipboard/fluff/smallnote
|
||||
lexusjjss: Zachary Tomlinson: /obj/item/weapon/clipboard/fluff/smallnote
|
||||
mangled: Li Tsun: /obj/item/weapon/lighter/zippo/fluff/li_tsun_1
|
||||
misterfox: Rashid Siraj: /obj/item/weapon/storage/bible/tajaran
|
||||
morrinn: Maye Day: /obj/item/weapon/storage/fluff/maye_daye_1
|
||||
orangebottle: Lillian Levett: /obj/item/weapon/pen/fluff/fancypen
|
||||
orangebottle: Lilliana Reade: /obj/item/weapon/pen/fluff/fancypen
|
||||
deusdactyl: Roger Wiles: /obj/item/clothing/under/rank/virologist/fluff/cdc_jumpsuit, /obj/item/clothing/suit/storage/labcoat/fluff/cdc_labcoat
|
||||
fniff: Sarah Calvera: /obj/item/fluff/sarah_calvera_1
|
||||
fniff: Angleo Wilkerson: /obj/item/fluff/angelo_wilkerson_1
|
||||
desiderium: Momiji Inubashiri: /obj/item/clothing/under/fluff/olddressuniform
|
||||
leonheart11: Johann Erzatz: /obj/item/weapon/reagent_containers/food/drinks/flask/fluff/johann_erzatz_1
|
||||
mangled: Li Tsun: /obj/item/weapon/lighter/zippo/fluff/li_tsun_1
|
||||
vinceluk: Seth Sealis: /obj/item/clothing/suit/storage/det_suit/fluff/graycoat
|
||||
desiderium: Rook Maudlin: /obj/item/clothing/suit/storage/det_suit/fluff/retpolcoat, /obj/item/clothing/head/det_hat/fluff/retpolcap, /obj/item/clothing/under/det/fluff/retpoluniform
|
||||
searif: Yuki Matsuda: /obj/item/clothing/under/fluff/jumpsuitdown
|
||||
searif: Tsiokeriio Tarbell: /obj/item/clothing/mask/fluff/flagmask
|
||||
serithi: Serithi Artalis: /obj/item/clothing/glasses/fluff/serithi_artalis_1
|
||||
silentthunder: Val McNeil: /obj/item/fluff/val_mcneil_1
|
||||
spaceman96: Trenna Seber: /obj/item/weapon/pen/fluff/multi, /obj/item/clothing/suit/storage/labcoat/fluff/pink
|
||||
sparklysheep: Cado Keppel: /obj/item/weapon/fluff/cado_keppel_1
|
||||
silentthunder: Val McNeil: /obj/item/fluff/val_mcneil_1
|
||||
tastyfish: Cindy Robertson: /obj/item/weapon/wrapping_paper
|
||||
tzefa: Wes Solari: /obj/item/fluff/wes_solari_1
|
||||
vinceluk: Seth Sealis: /obj/item/clothing/suit/storage/det_suit/fluff/graycoat
|
||||
whitellama: Ethan Way: /obj/item/fluff/ethan_way_1
|
||||
fastler: Fastler Greay: /obj/item/weapon/card/id/fluff/lifetimeid
|
||||
|
Before Width: | Height: | Size: 89 KiB After Width: | Height: | Size: 90 KiB |
|
Before Width: | Height: | Size: 120 KiB After Width: | Height: | Size: 120 KiB |
|
Before Width: | Height: | Size: 121 KiB After Width: | Height: | Size: 121 KiB |
|
Before Width: | Height: | Size: 19 KiB After Width: | Height: | Size: 20 KiB |
|
Before Width: | Height: | Size: 246 KiB After Width: | Height: | Size: 247 KiB |
|
Before Width: | Height: | Size: 177 KiB After Width: | Height: | Size: 178 KiB |
|
Before Width: | Height: | Size: 11 KiB After Width: | Height: | Size: 14 KiB |
|
After Width: | Height: | Size: 1.7 KiB |