Merge branch 'master' of github.com:ParadiseSS13/Paradise into SlimeColorChanger

This commit is contained in:
Tigercat2000
2015-02-09 17:03:40 +01:00
39 changed files with 403 additions and 128 deletions
+1 -1
View File
@@ -792,7 +792,7 @@ datum/mind
if(src in ticker.mode.wizards)
ticker.mode.wizards -= src
special_role = null
current.spellremove(current, config.feature_object_spell_system? "object":"verb")
current.spellremove(current)
current.faction = list("Station")
current << "\red <FONT size = 3><B>You have been brainwashed! You are no longer a wizard!</B></FONT>"
log_admin("[key_name_admin(usr)] has de-wizard'ed [current].")
+17
View File
@@ -0,0 +1,17 @@
/obj/effect/proc_holder/spell/wizard/targeted/fake_gib
name = "Disintegrate"
desc = "This spell instantly kills somebody adjacent to you with the vilest of magick."
school = "conjuration"
charge_max = 20
clothes_req = 0
invocation = "EI NATH"
invocation_type = "shout"
range = -1
include_user = 1
cooldown_min = 5 //25 deciseconds reduction per rank
sparks_spread = 3
sparks_amt = 1
icon_power_button = "spell_disintegrate"
+1 -1
View File
@@ -67,7 +67,7 @@
disability=EPILEPSY
New()
block=HEADACHEBLOCK
block=EPILEPSYBLOCK
/datum/dna/gene/disability/cough
name="Coughing"
-1
View File
@@ -49,7 +49,6 @@
NERVOUSBLOCK = getAssignedBlock("NERVOUS", numsToAssign)
// Bay muts
HEADACHEBLOCK = getAssignedBlock("HEADACHE", numsToAssign)
NOBREATHBLOCK = getAssignedBlock("NOBREATH", numsToAssign, DNA_HARD_BOUNDS, good=1)
REMOTEVIEWBLOCK = getAssignedBlock("REMOTEVIEW", numsToAssign, DNA_HARDER_BOUNDS, good=1)
REGENERATEBLOCK = getAssignedBlock("REGENERATE", numsToAssign, DNA_HARDER_BOUNDS, good=1)
+1 -1
View File
@@ -98,7 +98,7 @@
traitor.objectives += block_objective
else
if(!exchange_blue && traitors.len >= 5) //Set up an exchange if there are enough traitors
if(!exchange_blue && traitors.len >= 5 && name != "AutoTraitor") //Set up an exchange if there are enough traitors, turned off during autotraitor temporarily due to bugs.
if(!exchange_red)
exchange_red = traitor
else
+8 -1
View File
@@ -192,7 +192,7 @@
var/area/wizard_station/A = locate()
if(usr in A.contents)
uses = max_uses
H.spellremove(usr)
H.spellremove(usr,0)
temp = "All spells have been removed. You may now memorize a new set of spells."
feedback_add_details("wizard_spell_learned","UM") //please do not change the abbreviation to keep data processing consistent. Add a unique id to any new spells
else
@@ -585,3 +585,10 @@
..()
user <<"<span class='warning'>[src] suddenly vanishes!</span>"
qdel(src)
/obj/item/weapon/spellbook/oneuse/fake_gib
spell = /obj/effect/proc_holder/spell/wizard/targeted/fake_gib
spellname = "disintegrate"
icon_state ="bookfireball"
desc = "This book feels like it will rip stuff apart."
+2 -1
View File
@@ -273,8 +273,9 @@
//OTHER PROCS
//To batch-remove wizard spells. Linked to mind.dm.
/mob/proc/spellremove(var/mob/M as mob)
/mob/proc/spellremove(var/mob/M as mob, var/removeallspells=1)
for(var/obj/effect/proc_holder/spell/wizard/spell_to_remove in src.spell_list)
if (spell_to_remove.name == "Artificer" && !removeallspells) continue
del(spell_to_remove)
update_power_buttons()
-1
View File
@@ -527,7 +527,6 @@
src.printing = 1
for(var/mob/O in viewers(usr))
O.show_message("\blue \the [src] rattles and prints out a sheet of paper.", 1)
sleep(20)
var/obj/item/weapon/paper/P = new /obj/item/weapon/paper( src.loc )
P.info = "<CENTER><B>Body Scan - [href_list["name"]]</B></CENTER><BR>"
P.info += "<b>Time of scan:</b> [worldtime2text(world.time)]<br><br>"
+103 -25
View File
@@ -9,7 +9,51 @@
var/valve_open = 0
var/release_pressure = ONE_ATMOSPHERE
var/_color = "yellow"
var/list/_color = list("yellow", null, null, null)//variable that stores colours
var/list/decals = list() // var that stores the decals, NOTE: Not the actual POSSIBLE decals, but the ones currently used
var/list/oldcolor = list()//lists for check_change()
var/list/olddecals = list()
var/list/possibledecals = list( //var that stores all possible decals, here for adminbus I guess? NOTE: LEAVE "done" IN HERE
"Low temperature canister" = "cold",
"High temperature canister" = "hot",
"Plasma containing canister" = "plasma",
"Done" = "DONE"
)
var/list/possiblemaincolor = list( //these lists contain the possible colors of a canister, here for adminbus
"\[N2O\]" = "redws",
"\[N2\]" = "red",
"\[O2\]" = "blue",
"\[Toxin (Bio)\]" = "orange",
"\[CO2\]" = "black",
"\[Air\]" = "grey",
"\[CAUTION\]" = "yellow",
"\[SPECIAL\]" = "whiters"
)
var/list/possibleseccolor = list( // no point in having the N2O and "whiters" ones in these lists
"\[N2\]" = "red-c",
"\[O2\]" = "blue-c",
"\[Toxin (Bio)\]" = "orange-c",
"\[CO2\]" = "black-c",
"\[Air\]" = "grey-c",
"\[CAUTION\]" = "yellow-c"
)
var/list/possibletertcolor = list(
"\[N2\]" = "red-c-1",
"\[O2\]" = "blue-c-1",
"\[Toxin (Bio)\]" = "orange-c-1",
"\[CO2\]" = "black-c-1",
"\[Air\]" = "grey-c-1",
"\[CAUTION\]" = "yellow-c-1"
)
var/list/possiblequartcolor = list(
"\[N2\]" = "red-c-2",
"\[O2\]" = "blue-c-2",
"\[Toxin (Bio)\]" = "orange-c-2",
"\[CO2\]" = "black-c-2",
"\[Air\]" = "grey-c-2",
"\[CAUTION\]" = "yellow-c-2"
)
var/can_label = 1
var/filled = 0.5
pressure_resistance = 7*ONE_ATMOSPHERE
@@ -23,37 +67,38 @@
/obj/machinery/portable_atmospherics/canister/sleeping_agent
name = "Canister: \[N2O\]"
icon_state = "redws"
_color = "redws"
_color = list("redsw", null, null, null)
can_label = 0
/obj/machinery/portable_atmospherics/canister/nitrogen
name = "Canister: \[N2\]"
icon_state = "red"
_color = "red"
_color = list("red", null, null, null)
decals = list("plasma")
can_label = 0
/obj/machinery/portable_atmospherics/canister/oxygen
name = "Canister: \[O2\]"
icon_state = "blue"
_color = "blue"
_color = list("blue", null, null, null)
can_label = 0
/obj/machinery/portable_atmospherics/canister/toxins
name = "Canister \[Toxin (Plasma)\]"
icon_state = "orange"
_color = "orange"
_color = list("orange", null, null, null)
can_label = 0
/obj/machinery/portable_atmospherics/canister/carbon_dioxide
name = "Canister \[CO2\]"
icon_state = "black"
_color = "black"
_color = list("black", null, null, null)
can_label = 0
/obj/machinery/portable_atmospherics/canister/air
name = "Canister \[Air\]"
icon_state = "grey"
_color = "grey"
_color = list("grey", null, null, null)
can_label = 0
/obj/machinery/portable_atmospherics/canister/custom_mix
name = "Canister \[Custom\]"
icon_state = "whiters"
_color = "whiters"
_color = list("whiters", null, null, null)
can_label = 0
/obj/machinery/portable_atmospherics/canister/proc/check_change()
@@ -74,6 +119,11 @@
else
update_flag |= 32
if(oldcolor != _color || olddecals != decals)
update_flag |= 64
olddecals = decals
oldcolor = _color
if(update_flag == old_flag)
return 1
else
@@ -88,20 +138,33 @@ update_flag
8 = tank_pressure < ONE_ATMOS
16 = tank_pressure < 15*ONE_ATMOS
32 = tank_pressure go boom.
64 = decals/colors got changed
*/
if (src.destroyed)
src.overlays = 0
src.icon_state = text("[]-1", src._color)
src.icon_state = text("[]-1", src._color[1])//yes, I KNOW the colours don't reflect when the can's borked, whatever.
if(icon_state != "[_color]")
icon_state = "[_color]"
if(icon_state != src._color[1])
icon_state = src._color[1]
if(check_change()) //Returns 1 if no change needed to icons.
return
src.overlays = 0
if (_color[2])//COLORS!
overlays.Add(_color[2])
if (_color[3])
overlays.Add(_color[3])
if (_color[4])
overlays.Add(_color[4])
for(var/D in decals)
overlays.Add("decal-" + D)
if(update_flag & 1)
overlays += "can-open"
if(update_flag & 2)
@@ -333,21 +396,36 @@ update_flag
if (href_list["relabel"])
if (can_label)
var/list/colors = list(\
"\[N2O\]" = "redws", \
"\[N2\]" = "red", \
"\[O2\]" = "blue", \
"\[Toxin (Plasma)\]" = "orange", \
"\[CO2\]" = "black", \
"\[Air\]" = "grey", \
"\[CAUTION\]" = "yellow", \
"\[Custom\]" = "whiters",\
var/label1 = input("Choose canister label", "Primary color") as null|anything in possiblemaincolor
var/label2 = input("Choose canister label", "Secondary color") as null|anything in possibleseccolor
var/label3 = input("Choose canister label", "Tertiary color") as null|anything in possibletertcolor
var/label4 = input("Choose canister label", "Quaternary color") as null|anything in possiblequartcolor
decals = list()
_color = list(
(label1 ? possiblemaincolor[label1] : color[1]),//if the user didn't specify a primary colour, keep the current one.
possibleseccolor[label2],
possibletertcolor[label3],
possiblequartcolor[label4]
)
var/label = input("Choose canister label", "Gas canister") as null|anything in colors
if (label)
src._color = colors[label]
src.icon_state = colors[label]
src.name = "Canister: [label]"
decals = list()
var/list/tempposdecals = possibledecals
while (src && !src.gc_destroyed && usr)//allow the user to select (theoretically) INFINITE DECALS!!!
var/newdecal = input("Choose canister label", "Decal") as anything in tempposdecals
if (newdecal == "Done")
break
decals.Add(tempposdecals[newdecal])
tempposdecals.Remove(newdecal)
src.name = (input("Choose canister label", "Name") as text) + " canister"
src.add_fingerprint(usr)
update_icon()
+8 -7
View File
@@ -44,7 +44,7 @@
component_parts += new /obj/item/stack/cable_coil(src, 1)
component_parts += new /obj/item/stack/cable_coil(src, 1)
RefreshParts()
/obj/machinery/clonepod/upgraded/New()
..()
component_parts = list()
@@ -66,7 +66,7 @@
for(var/obj/item/weapon/stock_parts/manipulator/P in component_parts)
speed_coeff += P.rating
heal_level = (efficiency * 15) + 10
//The return of data disks?? Just for transferring between genetics machine/cloning machine.
//TO-DO: Make the genetics machine accept them.
/obj/item/weapon/disk/data
@@ -261,9 +261,10 @@
H.dna.UpdateSE()
H.dna.UpdateUI()
/* //let's not make people waste even more time after being cloned.
H.f_style = "Shaved"
if(R.dna.species == "Human") //no more xenos losing ears/tentacles
H.h_style = pick("Bedhead", "Bedhead 2", "Bedhead 3")
H.h_style = pick("Bedhead", "Bedhead 2", "Bedhead 3") */
H.set_species(R.dna.species)
@@ -336,8 +337,8 @@
return
if(exchange_parts(user, W))
return
return
if(istype(W, /obj/item/weapon/crowbar))
if(panel_open)
default_deconstruction_crowbar(W)
@@ -402,7 +403,7 @@
set name = "Eject Cloner"
set category = "Object"
set src in oview(1)
if(!usr)
return
if (usr.stat != 0)
@@ -429,7 +430,7 @@
if (src.locked)
user << "<span class=\"warning\">The cloning pod is locked!</span>"
return
return
/*
for(var/obj/O in src)
O.loc = src.loc
+8
View File
@@ -30,6 +30,14 @@
/obj/item/toy/cards/deck = 2,
/obj/item/toy/carpplushie = 2,
/obj/item/toy/minimeteor = 2,
/obj/item/toy/redbutton = 2,
/obj/item/clothing/head/blob = 2,
/obj/item/weapon/id_decal/gold = 2,
/obj/item/weapon/id_decal/silver = 2,
/obj/item/weapon/id_decal/prisoner = 2,
/obj/item/weapon/id_decal/centcom = 2,
/obj/item/weapon/id_decal/emag = 2,
/obj/item/weapon/spellbook/oneuse/fake_gib = 2
)
/obj/machinery/computer/arcade/power_change()
+13 -13
View File
@@ -22,13 +22,13 @@
component_parts += new /obj/item/weapon/cell/high(src)
RefreshParts()
build_icon()
/obj/machinery/recharge_station/upgraded/New()
..()
component_parts += new /obj/item/weapon/stock_parts/capacitor/super(src)
component_parts += new /obj/item/weapon/stock_parts/capacitor/super(src)
component_parts += new /obj/item/weapon/stock_parts/manipulator/pico(src)
component_parts += new /obj/item/weapon/cell/hyper(src)
component_parts += new /obj/item/weapon/cell/hyper(src)
RefreshParts()
/obj/machinery/recharge_station/RefreshParts()
@@ -39,8 +39,8 @@
for(var/obj/item/weapon/stock_parts/manipulator/M in component_parts)
repairs += M.rating - 1
for(var/obj/item/weapon/cell/C in component_parts)
recharge_speed *= C.maxcharge / 10000
recharge_speed *= C.maxcharge / 10000
/obj/machinery/recharge_station/process()
if(!(NOPOWER|BROKEN))
return
@@ -65,8 +65,8 @@
if(occupant)
occupant.emp_act(severity)
go_out()
..(severity)
..(severity)
/obj/machinery/recharge_station/proc/build_icon()
if(NOPOWER|BROKEN)
if(src.occupant)
@@ -80,15 +80,15 @@
if (istype(P, /obj/item/weapon/screwdriver))
if(src.occupant)
user << "<span class='notice'>The maintenance panel is locked.</span>"
return
return
default_deconstruction_screwdriver(user, "borgdecon2", "borgcharger0", P)
return
return
if(exchange_parts(user, P))
return
default_deconstruction_crowbar(P)
return
default_deconstruction_crowbar(P)
/obj/machinery/recharge_station/proc/process_occupant()
if(src.occupant)
if (istype(occupant, /mob/living/silicon/robot))
@@ -137,7 +137,7 @@
O:broken = 0
O:times_used = 0
O:icon_state = "flash"
if(istype(O,/obj/item/weapon/gun/energy/taser/cyborg))
if(istype(O,/obj/item/weapon/gun/energy/disabler/cyborg))
if(O:power_supply.charge < O:power_supply.maxcharge)
O:power_supply.give(O:charge_cost)
O:update_icon()
+1
View File
@@ -35,6 +35,7 @@
icon_state = "bodybag_closed"
icon_closed = "bodybag_closed"
icon_opened = "bodybag_open"
sound = 'sound/items/zip.ogg'
var/item_path = /obj/item/bodybag
density = 0
@@ -100,15 +100,15 @@
return 1
/obj/item/borg/upgrade/tasercooler
name = "robotic Rapid Taser Cooling Module"
desc = "Used to cool a mounted taser, increasing the potential current in it and thus its recharge rate."
/obj/item/borg/upgrade/disablercooler
name = "robotic Rapid Disabler Cooling Module"
desc = "Used to cool a mounted disabler, increasing the potential current in it and thus its recharge rate."
construction_cost = list("metal"=80000 , "glass"=6000 , "gold"= 2000, "diamond" = 500)
icon_state = "cyborg_upgrade3"
require_module = 1
/obj/item/borg/upgrade/tasercooler/action(var/mob/living/silicon/robot/R)
/obj/item/borg/upgrade/disablercooler/action(var/mob/living/silicon/robot/R)
if(..()) return 0
if(!istype(R.module, /obj/item/weapon/robot_module/security))
@@ -116,13 +116,13 @@
usr << "There's no mounting point for the module!"
return 0
var/obj/item/weapon/gun/energy/taser/cyborg/T = locate() in R.module
var/obj/item/weapon/gun/energy/disabler/cyborg/T = locate() in R.module
if(!T)
T = locate() in R.module.contents
if(!T)
T = locate() in R.module.modules
if(!T)
usr << "This robot has had its taser removed!"
usr << "This robot has had its disabler removed!"
return 0
if(T.recharge_time <= 2)
+25 -1
View File
@@ -1100,4 +1100,28 @@ obj/item/toy/cards/deck/syndicate/black
icon = 'icons/obj/toy.dmi'
icon_state = "carpplushie"
w_class = 2.0
flags = FPRINT | TABLEPASS
flags = FPRINT | TABLEPASS
/*
* Toy big red button
*/
/obj/item/toy/redbutton
name = "big red button"
desc = "A big, plastic red button. Reads 'From HonkCo Pranks?' on the back."
icon = 'icons/obj/assemblies.dmi'
icon_state = "bigred"
w_class = 2.0
var/cooldown = 0
/obj/item/toy/redbutton/attack_self(mob/user)
if (cooldown < world.time)
cooldown = (world.time + 300) // Sets cooldown at 30 seconds
user.visible_message("<span class='warning'>[user] presses the big red button.</span>", "<span class='notice'>You press the button, it plays a loud noise!</span>", "<span class='notice'>The button clicks loudly.</span>")
playsound(src, 'sound/effects/explosionfar.ogg', 50, 0, 0)
for(var/mob/M in range(10, src)) // Checks range
if(!M.stat && !istype(M, /mob/living/silicon/ai)) // Checks to make sure whoever's getting shaken is alive/not the AI
sleep(8) // Short delay to match up with the explosion sound
shake_camera(M, 2, 1) // Shakes player camera 2 squares for 1 second.
else
user << "<span class='alert'>Nothing happens.</span>"
+54 -1
View File
@@ -68,7 +68,8 @@
icon_state = "emag"
item_state = "card-id"
origin_tech = "magnets=2;syndicate=2"
var/uses = 10
flags = NOBLUDGEON
var/uses = 1000000
// List of devices that cost a use to emag.
var/list/devices = list(
/obj/item/robot_parts,
@@ -214,6 +215,18 @@
del(W)
return
if(istype(W, /obj/item/weapon/id_decal/))
var/obj/item/weapon/id_decal/decal = W
user << "You apply [decal] to [src]."
if(decal.override_name)
name = decal.decal_name
desc = decal.decal_desc
icon_state = decal.decal_icon_state
item_state = decal.decal_item_state
qdel(decal)
qdel(W)
return
else if(istype (W,/obj/item/weapon/stamp))
if(!stamped)
dat+="<img src=large_[W.icon_state].png>"
@@ -392,3 +405,43 @@
desc = "Finders, keepers."
access = list(access_salvage_captain)
/obj/item/weapon/id_decal
name = "identification card decal"
desc = "A modification kit to make your ID cards look snazzy.."
icon = 'icons/obj/device.dmi'
icon_state = "batterer"
var/decal_name = "identification card"
var/decal_desc = "A card used to provide ID and determine access across the station."
var/decal_icon_state = "id"
var/decal_item_state = "card-id"
var/override_name = 0
/obj/item/weapon/id_decal/gold
name = "gold ID card card decal"
decal_desc = "A golden card which shows power and might."
decal_icon_state = "gold"
decal_item_state = "gold_id"
/obj/item/weapon/id_decal/silver
name = "silver ID card decal"
decal_desc = "A silver card which shows honour and dedication."
decal_icon_state = "silver"
decal_item_state = "silver_id"
/obj/item/weapon/id_decal/prisoner
name = "prisoner ID card decal"
decal_desc = "You are a number, you are not a free man."
decal_icon_state = "orange"
decal_item_state = "orange-id"
/obj/item/weapon/id_decal/centcom
name = "centcom ID card decal"
decal_desc = "An ID straight from Cent. Com."
decal_icon_state = "centcom"
/obj/item/weapon/id_decal/emag
name = "cryptographic sequencer ID card decal"
decal_name = "cryptographic sequencer"
decal_desc = "It's a card with a magnetic strip attached to some circuitry."
decal_icon_state = "emag"
override_name = 1
@@ -476,7 +476,7 @@
value = 0xFFF
//block = 3
New()
block = HEADACHEBLOCK
block = EPILEPSYBLOCK
..()
/obj/item/weapon/dnainjector/antiepi
@@ -486,7 +486,7 @@
value = 0x001
//block = 3
New()
block = HEADACHEBLOCK
block = EPILEPSYBLOCK
..()
/obj/item/weapon/dnainjector/anticough
@@ -12,6 +12,7 @@
var/wall_mounted = 0 //never solid (You can always pass over it)
var/health = 100
var/lastbang
var/sound = 'sound/machines/click.ogg'
var/storage_capacity = 30 //This is so that someone can't pack hundreds of items in a locker/crate
//then open it in a populated area to crash clients.
@@ -71,10 +72,8 @@
src.icon_state = src.icon_opened
src.opened = 1
if(istype(src, /obj/structure/closet/body_bag))
playsound(src.loc, 'sound/items/zip.ogg', 15, 1, -3)
if(istype(src,/obj/structure/closet/coffin/sarcophagus))
playsound(src.loc, 'sound/effects/stonedoor_openclose.ogg', 15, 1, -3)
if(sound)
playsound(src.loc, src.sound, 15, 1, -3)
else
playsound(src.loc, 'sound/machines/click.ogg', 15, 1, -3)
density = 0
@@ -119,10 +118,8 @@
src.icon_state = src.icon_closed
src.opened = 0
if(istype(src, /obj/structure/closet/body_bag))
playsound(src.loc, 'sound/items/zip.ogg', 15, 1, -3)
if(istype(src,/obj/structure/closet/coffin/sarcophagus))
playsound(src.loc, 'sound/effects/stonedoor_openclose.ogg', 15, 1, -3)
if(sound)
playsound(src.loc, src.sound, 15, 1, -3)
else
playsound(src.loc, 'sound/machines/click.ogg', 15, 1, -3)
density = 1
@@ -16,3 +16,4 @@
icon_state = "sarc"
icon_closed = "sarc"
icon_opened = "sarc_open"
sound = 'sound/effects/stonedoor_openclose.ogg'
+7 -1
View File
@@ -27,13 +27,17 @@
if(src.contents.len)
var/mob/living/M = locate() in contents
var/obj/structure/closet/body_bag/B = locate() in contents
if(M==null) M = locate() in B
if(M)
var/mob/dead/observer/G = M.get_ghost()
if(M.client)
src.icon_state = "morgue3"
else if(G && G.client) //There is a ghost and it is connected to the server
src.icon_state = "morgue5"
else
src.icon_state = "morgue2"
@@ -110,8 +114,10 @@
t = copytext(sanitize(t),1,MAX_MESSAGE_LEN)
if (t)
src.name = text("Morgue- '[]'", t)
src.overlays += image(src.icon, "morgue_label")
else
src.name = "Morgue"
src.overlays.Cut()
src.add_fingerprint(user)
return
-1
View File
@@ -55,7 +55,6 @@ var/MONKEYBLOCK = 50 // Monkey block will always be the DNA_SE_LENGTH
var/BLOCKADD = 0
var/DIFFMUT = 0
var/HEADACHEBLOCK = 0
var/NOBREATHBLOCK = 0
var/REMOTEVIEWBLOCK = 0
var/REGENERATEBLOCK = 0
+9 -1
View File
@@ -105,4 +105,12 @@ obj/item/clothing/head/helmet/bluetaghelm
item_state = "bluetaghelm"
armor = list(melee = 30, bullet = 10, laser = 20,energy = 10, bomb = 20, bio = 0, rad = 0)
// Offer about the same protection as a hardhat.
flags_inv = HIDEEARS|HIDEEYES
flags_inv = HIDEEARS|HIDEEYES
obj/item/clothing/head/blob
name = "blob hat"
desc = "A collectible hat handed out at the latest Blob Family Reunion."
icon_state = "blobhat"
item_state = "blobhat"
flags = HEADCOVERSEYES|HEADCOVERSMOUTH
flags_inv = HIDEMASK|HIDEEARS|HIDEEYES
+4 -3
View File
@@ -8,7 +8,7 @@
icon_state = "paramedic-vest"
item_state = "paramedic-vest"
allowed = list(/obj/item/stack/medical, /obj/item/weapon/reagent_containers/dropper, /obj/item/weapon/reagent_containers/hypospray, /obj/item/weapon/reagent_containers/syringe, \
/obj/item/device/healthanalyzer, /obj/item/device/flashlight, /obj/item/device/radio, /obj/item/weapon/tank/emergency_oxygen)
/obj/item/device/healthanalyzer, /obj/item/device/antibody_scanner, /obj/item/device/flashlight, /obj/item/device/radio, /obj/item/weapon/tank/emergency_oxygen)
armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 10, rad = 10)
species_fit = list("Vox")
sprite_sheets = list(
@@ -22,7 +22,8 @@
icon_state = "brigphysician-vest"
item_state = "brigphysician-vest"
allowed = list(/obj/item/stack/medical, /obj/item/weapon/reagent_containers/dropper, /obj/item/weapon/reagent_containers/hypospray, /obj/item/weapon/reagent_containers/syringe, \
/obj/item/device/healthanalyzer, /obj/item/device/flashlight, /obj/item/device/radio, /obj/item/weapon/tank/emergency_oxygen)
/obj/item/device/healthanalyzer, /obj/item/device/antibody_scanner, /obj/item/device/flashlight, \
/obj/item/device/radio, /obj/item/weapon/tank/emergency_oxygen)
armor = list(melee = 10, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 10, rad = 0)
//Botonist
@@ -227,7 +228,7 @@
item_state = "fr_jacket"
blood_overlay_type = "armor"
allowed = list(/obj/item/stack/medical, /obj/item/weapon/reagent_containers/dropper, /obj/item/weapon/reagent_containers/hypospray, /obj/item/weapon/reagent_containers/syringe, \
/obj/item/device/healthanalyzer, /obj/item/device/flashlight, /obj/item/device/radio, /obj/item/weapon/tank/emergency_oxygen)
/obj/item/device/healthanalyzer, /obj/item/device/antibody_scanner, /obj/item/device/flashlight, /obj/item/device/radio, /obj/item/weapon/tank/emergency_oxygen)
verb/toggle()
set name = "Toggle Jacket Buttons"
+1 -1
View File
@@ -5,7 +5,7 @@
item_state = "labcoat"
blood_overlay_type = "coat"
body_parts_covered = UPPER_TORSO|LOWER_TORSO|ARMS
allowed = list(/obj/item/device/analyzer,/obj/item/stack/medical,/obj/item/weapon/dnainjector,/obj/item/weapon/reagent_containers/dropper,/obj/item/weapon/reagent_containers/syringe,/obj/item/weapon/reagent_containers/hypospray,/obj/item/device/healthanalyzer,/obj/item/device/flashlight/pen,/obj/item/weapon/reagent_containers/glass/bottle,/obj/item/weapon/reagent_containers/glass/beaker,/obj/item/weapon/reagent_containers/pill,/obj/item/weapon/storage/pill_bottle,/obj/item/weapon/paper)
allowed = list(/obj/item/device/analyzer,/obj/item/device/antibody_scanner,/obj/item/stack/medical,/obj/item/weapon/dnainjector,/obj/item/weapon/reagent_containers/dropper,/obj/item/weapon/reagent_containers/syringe,/obj/item/weapon/reagent_containers/hypospray,/obj/item/device/healthanalyzer,/obj/item/device/flashlight/pen,/obj/item/weapon/reagent_containers/glass/bottle,/obj/item/weapon/reagent_containers/glass/beaker,/obj/item/weapon/reagent_containers/pill,/obj/item/weapon/storage/pill_bottle,/obj/item/weapon/paper)
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 50, rad = 0)
species_fit = list("Vox")
sprite_sheets = list(
+1 -1
View File
@@ -376,7 +376,7 @@ log transactions
//create the most effective combination of notes to make up the requested amount
/obj/machinery/atm/proc/withdraw_arbitrary_sum(var/arbitrary_sum)
dispense_cash(arbitrary_sum,get_turf(src))
dispense_cash(arbitrary_sum,get_step(get_turf(src),turn(dir,180))) // Spawn on the ATM.
//stolen wholesale and then edited a bit from newscasters, which are awesome and by Agouri
/obj/machinery/atm/proc/scan_user(mob/living/carbon/human/human_user as mob)
@@ -222,7 +222,7 @@
src.modules += new /obj/item/device/flash/cyborg(src)
src.modules += new /obj/item/weapon/handcuffs/cyborg(src)
src.modules += new /obj/item/weapon/melee/baton/robot(src)
src.modules += new /obj/item/weapon/gun/energy/taser/cyborg(src)
src.modules += new /obj/item/weapon/gun/energy/disabler/cyborg(src)
src.modules += new /obj/item/taperoll/police(src)
src.modules += new /obj/item/device/taperecorder(src)
src.emag = new /obj/item/weapon/gun/energy/laser/cyborg(src)
@@ -343,7 +343,7 @@
src.modules += new /obj/item/weapon/card/emag(src)
src.modules += new /obj/item/weapon/tank/jetpack/carbondioxide(src)
src.modules += new /obj/item/weapon/crowbar(src)
src.modules += new /obj/item/weapon/pinpointer/operative(src)
src.modules += new /obj/item/weapon/pinpointer/operative(src)
src.emag = null
return
+22 -1
View File
@@ -57,4 +57,25 @@
client.verbs |= H.species.abilities
CallHook("Login", list("client" = src.client, "mob" = src))
//Update morgues on login/logout
if (stat == DEAD)
var/obj/structure/morgue/Morgue = null
var/mob/living/carbon/human/C = null
if (istype(src,/mob/dead/observer)) //We're a ghost, let's find our corpse
var/mob/dead/observer/G = src
if (G.can_reenter_corpse && G.mind.current)
C = G.mind.current
else if (istype(src,/mob/living/carbon/human))
C = src
if (C) //We found our corpse, is it inside a morgue?
if (istype(C.loc,/obj/structure/morgue))
Morgue = C.loc
else if (istype(C.loc,/obj/structure/closet/body_bag))
var/obj/structure/closet/body_bag/B = C.loc
if (istype(B.loc,/obj/structure/morgue))
Morgue = B.loc
if (Morgue)
Morgue.update()
+21
View File
@@ -10,5 +10,26 @@
if(admins_number == 0) //Apparently the admin logging out is no longer an admin at this point, so we have to check this towards 0 and not towards 1. Awell.
send2adminirc("[key_name(src)] logged out - no more admins online.")
..()
//Update morgues on login/logout
if (stat == DEAD)
var/obj/structure/morgue/Morgue = null
var/mob/living/carbon/human/C = null
if (istype(src,/mob/dead/observer)) //We're a ghost, let's find our corpse
var/mob/dead/observer/G = src
if (G.can_reenter_corpse && G.mind.current)
C = G.mind.current
else if (istype(src,/mob/living/carbon/human))
C = src
if (C) //We found our corpse, is it inside a morgue?
if (istype(C.loc,/obj/structure/morgue))
Morgue = C.loc
else if (istype(C.loc,/obj/structure/closet/body_bag))
var/obj/structure/closet/body_bag/B = C.loc
if (istype(B.loc,/obj/structure/morgue))
Morgue = B.loc
if (Morgue)
Morgue.update()
return 1
+2 -1
View File
@@ -529,7 +529,8 @@
if(client.prefs.disabilities & DISABILITY_FLAG_DEAF)
new_character.dna.SetSEState(DEAFBLOCK,1,1)
new_character.sdisabilities |= DEAF
domutcheck(new_character)
new_character.dna.UpdateSE()
@@ -284,6 +284,38 @@ modules/mob/living/carbon/human/life.dm if you die, you will be zoomed out.
cell_type = "/obj/item/weapon/cell"
charge_cost = 500
/obj/item/weapon/gun/energy/disabler/cyborg
name = "cyborg disabler"
desc = "An integrated disabler that draws from a cyborg's power cell. This weapon contains a limiter to prevent the cyborg's power cell from overheating."
var/charge_tick = 0
var/recharge_time = 2.5
/obj/item/weapon/gun/energy/disabler/cyborg/New()
..()
processing_objects.Add(src)
/obj/item/weapon/gun/energy/disabler/cyborg/Destroy()
processing_objects.Remove(src)
..()
/obj/item/weapon/gun/energy/disabler/cyborg/process() //Every [recharge_time] ticks, recharge a shot for the cyborg
if(power_supply.charge == power_supply.maxcharge)
return 0
charge_tick++
if(charge_tick < recharge_time)
return 0
charge_tick = 0
if(!power_supply) return 0 //sanity
if(isrobot(src.loc))
var/mob/living/silicon/robot/R = src.loc
if(R && R.cell)
if(R.cell.use(charge_cost)) //Take power from the borg...
power_supply.give(charge_cost) //... to recharge the shot
update_icon()
return 1
/* 3d printer 'pseudo guns' for borgs */
@@ -446,7 +446,6 @@
src.printing = 1
for(var/mob/O in viewers(usr))
O.show_message("\blue \the [src] rattles and prints out a sheet of paper.", 1)
sleep(25)
var/obj/item/weapon/paper/P = new /obj/item/weapon/paper( src.loc )
P.info = "<CENTER><B>Chemical Analysis</B></CENTER><BR>"
P.info += "<b>Time of analysis:</b> [worldtime2text(world.time)]<br><br>"
@@ -65,7 +65,7 @@
construction_time = 200
category = list("Cyborg")
//Robot repair
//Robot repair
/datum/design/borg_binary_communication
name = "Cyborg Binary Communication Device"
id = "borg_binary_communication"
@@ -74,7 +74,7 @@
materials = list("$metal"=2500, "$glass"=1000)
construction_time = 200
category = list("Cyborg Repair")
/datum/design/borg_radio
name = "Cyborg Radio"
id = "borg_radio"
@@ -83,7 +83,7 @@
materials = list("$metal"=2500, "$glass"=1000)
construction_time = 200
category = list("Cyborg Repair")
/datum/design/borg_actuator
name = "Cyborg Actuator"
id = "borg_actuator"
@@ -92,7 +92,7 @@
materials = list("$metal"=3500)
construction_time = 200
category = list("Cyborg Repair")
/datum/design/borg_diagnosis_unit
name = "Cyborg Diagnosis Unit"
id = "borg_diagnosis_unit"
@@ -101,7 +101,7 @@
materials = list("$metal"=3500)
construction_time = 200
category = list("Cyborg Repair")
/datum/design/borg_camera
name = "Cyborg Camera"
id = "borg_camera"
@@ -110,7 +110,7 @@
materials = list("$metal"=2500, "$glass"=1000)
construction_time = 200
category = list("Cyborg Repair")
/datum/design/borg_armor
name = "Cyborg Armor"
id = "borg_armor"
@@ -541,7 +541,7 @@
materials = list("$metal"=10000)
construction_time = 100
category = list("Exosuit Equipment")
/datum/design/mech_drill
name = "Exosuit Engineering Equipment (Drill)"
id = "mech_drill"
@@ -559,7 +559,7 @@
materials = list("$metal"=10000)
construction_time = 100
category = list("Exosuit Equipment")
/datum/design/mech_hydraulic_clamp
name = "Exosuit Engineering Equipment (Hydraulic Clamp)"
id = "mech_hydraulic_clamp"
@@ -622,7 +622,7 @@
materials = list("$metal"=20000,"$bananium"=5000)
construction_time = 300
category = list("Exosuit Equipment")
/datum/design/mech_honker
name = "HoNkER BlAsT 5000"
id = "mech_honker"
@@ -631,7 +631,7 @@
materials = list("$metal"=20000,"$bananium"=10000)
construction_time = 500
category = list("Exosuit Equipment")
/datum/design/mech_mousetrap_mortar
name = "H.O.N.K Mousetrap Mortar"
id = "mech_mousetrap_mortar"
@@ -640,7 +640,7 @@
materials = list("$metal"=20000,"$bananium"=5000)
construction_time = 300
category = list("Exosuit Equipment")
// Exosuit Modules
/datum/design/mech_diamond_drill
name = "Exosuit Module (Diamond Mining Drill)"
@@ -652,7 +652,7 @@
materials = list("$metal"=10000,"$diamond"=6500)
construction_time = 100
category = list("Exosuit Equipment")
/datum/design/mech_generator_nuclear
name = "Exosuit Module (ExoNuclear Reactor)"
desc = "Compact nuclear reactor module."
@@ -663,7 +663,7 @@
materials = list("$metal"=10000,"$glass"=1000,"$silver"=500)
construction_time = 100
category = list("Exosuit Equipment")
/datum/design/mech_gravcatapult
name = "Exosuit Module (Gravitational Catapult Module)"
desc = "An exosuit mounted Gravitational Catapult."
@@ -685,7 +685,7 @@
materials = list("$metal"=10000)
construction_time = 100
category = list("Exosuit Equipment")
/datum/design/mech_rcd
name = "Exosuit Module (RCD Module)"
desc = "An exosuit-mounted Rapid Construction Device."
@@ -696,7 +696,7 @@
materials = list("$metal"=30000,"$gold"=20000,"$plasma"=25000,"$silver"=20000)
construction_time = 1200
category = list("Exosuit Equipment")
/datum/design/mech_ccw_armor
name = "Exosuit Module (Reactive Armor Booster Module)"
desc = "Exosuit-mounted armor booster."
@@ -707,7 +707,7 @@
materials = list("$metal"=20000,"$silver"=5000)
construction_time = 100
category = list("Exosuit Equipment")
/datum/design/mech_proj_armor
name = "Exosuit Module (Reflective Armor Booster Module)"
desc = "Exosuit-mounted armor booster."
@@ -718,7 +718,7 @@
materials = list("$metal"=20000,"$gold"=5000)
construction_time = 100
category = list("Exosuit Equipment")
/datum/design/mech_repair_droid
name = "Exosuit Module (Repair Droid Module)"
desc = "Automated Repair Droid. BEEP BOOP"
@@ -729,7 +729,7 @@
materials = list("$metal"=10000,"$glass"=5000,"$gold"=1000,"$silver"=2000)
construction_time = 100
category = list("Exosuit Equipment")
/datum/design/clusterbang_launcher
name = "Exosuit Module (SOB-3 Clusterbang Launcher)"
desc = "A weapon that violates the Geneva Convention at 3 rounds per minute"
@@ -740,7 +740,7 @@
materials = list("$metal"=20000,"$gold"=10000,"$uranium"=10000)
construction_time = 100
category = list("Exosuit Equipment")
/datum/design/mech_teleporter
name = "Exosuit Module (Teleporter Module)"
desc = "An exosuit module that allows exosuits to teleport to any position in view."
@@ -751,7 +751,7 @@
materials = list("$metal"=10000)
construction_time = 100
category = list("Exosuit Equipment")
/datum/design/mech_energy_relay
name = "Exosuit Module (Tesla Energy Relay)"
desc = "Tesla Energy Relay"
@@ -761,8 +761,8 @@
build_path = /obj/item/mecha_parts/mecha_equipment/tesla_energy_relay
materials = list("$metal"=10000,"$glass"=2000,"$gold"=2000,"$silver"=3000)
construction_time = 100
category = list("Exosuit Equipment")
category = list("Exosuit Equipment")
// Exosuit Weapons
/datum/design/mech_laser_heavy
name = "Exosuit Weapon (CH-LC \"Solaris\" Laser Cannon)"
@@ -774,7 +774,7 @@
materials = list("$metal"=10000)
construction_time = 100
category = list("Exosuit Equipment")
/datum/design/mech_laser
name = "Exosuit Weapon (CH-PS \"Immolator\" Laser)"
desc = "Allows for the construction of CH-PS Laser."
@@ -785,7 +785,7 @@
materials = list("$metal"=10000)
construction_time = 100
category = list("Exosuit Equipment")
/datum/design/mech_carbine
name = "Exosuit Weapon (FNX-99 \"Hades\" Carbine)"
desc = "Allows for the construction of FNX-99 \"Hades\" Carbine."
@@ -796,7 +796,7 @@
materials = list("$metal"=10000)
construction_time = 100
category = list("Exosuit Equipment")
/datum/design/mech_scattershot
name = "Exosuit Weapon (LBX AC 10 \"Scattershot\")"
desc = "Allows for the construction of LBX AC 10."
@@ -807,7 +807,7 @@
materials = list("$metal"=10000)
construction_time = 100
category = list("Exosuit Equipment")
/datum/design/mech_ion
name = "Exosuit Weapon (MKIV Ion Heavy Cannon)"
desc = "Allows for the construction of MKIV Ion Heavy Cannon."
@@ -850,7 +850,7 @@
req_tech = list("combat" = 4, "syndicate" = 3)
build_path = /obj/item/borg/upgrade/syndicate
category = "Cyborg Upgrade Modules"
category = list("Cyborg Upgrade Modules")
category = list("Cyborg Upgrade Modules")
/datum/design/borg_upgrade_jetpack
name = "Cyborg Upgrade Module (Mining Jetpack)"
@@ -860,16 +860,16 @@
materials = list("$metal"=10000,"$plasma"=15000,"$uranium" = 20000)
construction_time = 120
category = list("Cyborg Upgrade Modules")
/datum/design/borg_upgrade_tasercooler
name = "Cyborg Upgrade Module (Rapid Taser Cooling Module)"
id = "borg_upgrade_tasercooler"
/datum/design/borg_upgrade_disablercooler
name = "Cyborg Upgrade Module (Rapid Disabler Cooling Module)"
id = "borg_upgrade_disablercooler"
build_type = MECHFAB
build_path = /obj/item/borg/upgrade/tasercooler
build_path = /obj/item/borg/upgrade/disablercooler
materials = list("$metal"=80000 , "$glass"=6000 , "$gold"= 2000, "$diamond" = 500)
construction_time = 120
category = list("Cyborg Upgrade Modules")
/datum/design/borg_upgrade_rename
name = "Cyborg Upgrade Module (Rename Module)"
id = "borg_upgrade_rename"
@@ -878,7 +878,7 @@
materials = list("$metal"=35000)
construction_time = 120
category = list("Cyborg Upgrade Modules")
/datum/design/borg_upgrade_reset
name = "Cyborg Upgrade Module (Reset Module)"
id = "borg_upgrade_reset"
+6 -6
View File
@@ -57,6 +57,12 @@
typepath = /obj/item/clothing/mask/cigarette/pipe
cost = 350
/datum/storeitem/candle
name = "Candles"
desc = "A box of chandles. Use them to fool others into thinking you're out for a romantic dinner...or something."
typepath = /obj/item/weapon/storage/fancy/candle_box
cost = 200
/datum/storeitem/katana
name = "replica katana"
desc = "Woefully underpowered in D20."
@@ -75,12 +81,6 @@
typepath = /obj/item/weapon/toddler
cost = 1000
/datum/storeitem/laserpointer
name = "laser pointer"
desc = "Don't shine it in your eyes!"
typepath = /obj/item/device/laser_pointer
cost = 1000
/datum/storeitem/flag/slime
name = "Slime People flag"
desc = "A flag proudly proclaiming the superior heritage of Slime People."