Merge branch 'master' of github.com:Baystation12/Baystation12 into TGUpdates

This commit is contained in:
Erthilo
2012-05-08 18:28:05 +01:00
28 changed files with 4638 additions and 4818 deletions
+3 -1
View File
@@ -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"
+1
View File
@@ -113,6 +113,7 @@
idle_power_usage = 2
active_power_usage = 6
power_channel = ENVIRON
var/network
New()
if(z == 1)
+9
View File
@@ -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"
+1 -2
View File
@@ -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)
*/
*/
+1 -3
View File
@@ -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
+1 -1
View File
@@ -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);
+22 -4
View File
@@ -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
+4 -1
View File
@@ -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())
+1 -1
View File
@@ -11,7 +11,7 @@
opacity = 0
density = 0
var/nextstate = null
var/net_id
Bumped(atom/AM)
if(p_open || operating) return
+7 -1
View File
@@ -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>"
+63 -26
View File
@@ -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
+2
View File
@@ -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>"
+216 -141
View File
@@ -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"
+16
View File
@@ -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)
+24 -19
View File
@@ -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
Binary file not shown.

Before

Width:  |  Height:  |  Size: 89 KiB

After

Width:  |  Height:  |  Size: 90 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 120 KiB

After

Width:  |  Height:  |  Size: 120 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 121 KiB

After

Width:  |  Height:  |  Size: 121 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 19 KiB

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 246 KiB

After

Width:  |  Height:  |  Size: 247 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 177 KiB

After

Width:  |  Height:  |  Size: 178 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 11 KiB

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

+4265 -4238
View File
File diff suppressed because it is too large Load Diff