diff --git a/code/datums/mind.dm b/code/datums/mind.dm index d03909fefbe..7bcb54660e8 100644 --- a/code/datums/mind.dm +++ b/code/datums/mind.dm @@ -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 You have been brainwashed! You are no longer a wizard!" log_admin("[key_name_admin(usr)] has de-wizard'ed [current].") diff --git a/code/datums/spells/fake_gib.dm b/code/datums/spells/fake_gib.dm new file mode 100644 index 00000000000..275bdef67bf --- /dev/null +++ b/code/datums/spells/fake_gib.dm @@ -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" \ No newline at end of file diff --git a/code/game/dna/genes/disabilities.dm b/code/game/dna/genes/disabilities.dm index 3fe9c14ae73..eaf4500359e 100644 --- a/code/game/dna/genes/disabilities.dm +++ b/code/game/dna/genes/disabilities.dm @@ -67,7 +67,7 @@ disability=EPILEPSY New() - block=HEADACHEBLOCK + block=EPILEPSYBLOCK /datum/dna/gene/disability/cough name="Coughing" diff --git a/code/game/gamemodes/setupgame.dm b/code/game/gamemodes/setupgame.dm index 1a81fa9a704..96b1a3d7920 100644 --- a/code/game/gamemodes/setupgame.dm +++ b/code/game/gamemodes/setupgame.dm @@ -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) diff --git a/code/game/gamemodes/traitor/traitor.dm b/code/game/gamemodes/traitor/traitor.dm index f788b8145e8..150911e29d6 100644 --- a/code/game/gamemodes/traitor/traitor.dm +++ b/code/game/gamemodes/traitor/traitor.dm @@ -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 diff --git a/code/game/gamemodes/wizard/spellbook.dm b/code/game/gamemodes/wizard/spellbook.dm index b4724e42414..d546970870d 100644 --- a/code/game/gamemodes/wizard/spellbook.dm +++ b/code/game/gamemodes/wizard/spellbook.dm @@ -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 <<"[src] suddenly vanishes!" 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." \ No newline at end of file diff --git a/code/game/gamemodes/wizard/wizard.dm b/code/game/gamemodes/wizard/wizard.dm index efd37412bb7..cd59d23d0b5 100644 --- a/code/game/gamemodes/wizard/wizard.dm +++ b/code/game/gamemodes/wizard/wizard.dm @@ -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() diff --git a/code/game/machinery/adv_med.dm b/code/game/machinery/adv_med.dm index e991c569706..98747fbb3a6 100644 --- a/code/game/machinery/adv_med.dm +++ b/code/game/machinery/adv_med.dm @@ -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 = "
Body Scan - [href_list["name"]]

" P.info += "Time of scan: [worldtime2text(world.time)]

" diff --git a/code/game/machinery/atmoalter/canister.dm b/code/game/machinery/atmoalter/canister.dm index 7c7ea673335..968a166a153 100644 --- a/code/game/machinery/atmoalter/canister.dm +++ b/code/game/machinery/atmoalter/canister.dm @@ -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() diff --git a/code/game/machinery/cloning.dm b/code/game/machinery/cloning.dm index 19e2cbfff35..f7eb7803fd4 100644 --- a/code/game/machinery/cloning.dm +++ b/code/game/machinery/cloning.dm @@ -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 << "The cloning pod is locked!" - return + return /* for(var/obj/O in src) O.loc = src.loc diff --git a/code/game/machinery/computer/arcade.dm b/code/game/machinery/computer/arcade.dm index 83aa3d30386..a3402129d88 100644 --- a/code/game/machinery/computer/arcade.dm +++ b/code/game/machinery/computer/arcade.dm @@ -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() diff --git a/code/game/machinery/rechargestation.dm b/code/game/machinery/rechargestation.dm index 7b5ba784ef8..eea611886da 100644 --- a/code/game/machinery/rechargestation.dm +++ b/code/game/machinery/rechargestation.dm @@ -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 << "The maintenance panel is locked." - 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() diff --git a/code/game/objects/items/bodybag.dm b/code/game/objects/items/bodybag.dm index a35f3837021..3ff89c5fd60 100644 --- a/code/game/objects/items/bodybag.dm +++ b/code/game/objects/items/bodybag.dm @@ -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 diff --git a/code/game/objects/items/robot/robot_upgrades.dm b/code/game/objects/items/robot/robot_upgrades.dm index 66db8bfb189..23bed41262c 100644 --- a/code/game/objects/items/robot/robot_upgrades.dm +++ b/code/game/objects/items/robot/robot_upgrades.dm @@ -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) diff --git a/code/game/objects/items/toys.dm b/code/game/objects/items/toys.dm index b1d0e0783fe..33858980b99 100644 --- a/code/game/objects/items/toys.dm +++ b/code/game/objects/items/toys.dm @@ -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 \ No newline at end of file + 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("[user] presses the big red button.", "You press the button, it plays a loud noise!", "The button clicks loudly.") + 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 << "Nothing happens." \ No newline at end of file diff --git a/code/game/objects/items/weapons/cards_ids.dm b/code/game/objects/items/weapons/cards_ids.dm index 1c7850ffa13..5a608dc8abe 100644 --- a/code/game/objects/items/weapons/cards_ids.dm +++ b/code/game/objects/items/weapons/cards_ids.dm @@ -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+="" @@ -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 \ No newline at end of file diff --git a/code/game/objects/items/weapons/dna_injector.dm b/code/game/objects/items/weapons/dna_injector.dm index e2b19f317ad..3e4831f701e 100644 --- a/code/game/objects/items/weapons/dna_injector.dm +++ b/code/game/objects/items/weapons/dna_injector.dm @@ -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 diff --git a/code/game/objects/structures/crates_lockers/closets.dm b/code/game/objects/structures/crates_lockers/closets.dm index e206fc37408..7f2ed7e1b3e 100644 --- a/code/game/objects/structures/crates_lockers/closets.dm +++ b/code/game/objects/structures/crates_lockers/closets.dm @@ -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 diff --git a/code/game/objects/structures/crates_lockers/closets/coffin.dm b/code/game/objects/structures/crates_lockers/closets/coffin.dm index c3bb9bf99cd..03337e6a260 100644 --- a/code/game/objects/structures/crates_lockers/closets/coffin.dm +++ b/code/game/objects/structures/crates_lockers/closets/coffin.dm @@ -16,3 +16,4 @@ icon_state = "sarc" icon_closed = "sarc" icon_opened = "sarc_open" + sound = 'sound/effects/stonedoor_openclose.ogg' \ No newline at end of file diff --git a/code/game/objects/structures/morgue.dm b/code/game/objects/structures/morgue.dm index d574d22f859..1b0825f4f84 100644 --- a/code/game/objects/structures/morgue.dm +++ b/code/game/objects/structures/morgue.dm @@ -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 diff --git a/code/global.dm b/code/global.dm index 28ed508a5f4..ef6a3959f2c 100644 --- a/code/global.dm +++ b/code/global.dm @@ -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 diff --git a/code/modules/clothing/head/helmet.dm b/code/modules/clothing/head/helmet.dm index 7cdb9f99bba..31c58f8a943 100644 --- a/code/modules/clothing/head/helmet.dm +++ b/code/modules/clothing/head/helmet.dm @@ -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 \ No newline at end of file + 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 \ No newline at end of file diff --git a/code/modules/clothing/suits/jobs.dm b/code/modules/clothing/suits/jobs.dm index 316cf98f2ff..7f4b11ef8b2 100644 --- a/code/modules/clothing/suits/jobs.dm +++ b/code/modules/clothing/suits/jobs.dm @@ -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" diff --git a/code/modules/clothing/suits/labcoat.dm b/code/modules/clothing/suits/labcoat.dm index b84987f9eb6..14aa7594855 100644 --- a/code/modules/clothing/suits/labcoat.dm +++ b/code/modules/clothing/suits/labcoat.dm @@ -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( diff --git a/code/modules/economy/ATM.dm b/code/modules/economy/ATM.dm index 42a6e43ddc4..f389f9c2863 100644 --- a/code/modules/economy/ATM.dm +++ b/code/modules/economy/ATM.dm @@ -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) diff --git a/code/modules/mob/living/silicon/robot/robot_modules.dm b/code/modules/mob/living/silicon/robot/robot_modules.dm index 294e5859bb8..92a8f1fd557 100644 --- a/code/modules/mob/living/silicon/robot/robot_modules.dm +++ b/code/modules/mob/living/silicon/robot/robot_modules.dm @@ -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 diff --git a/code/modules/mob/login.dm b/code/modules/mob/login.dm index 738e887b775..27127a83e4e 100644 --- a/code/modules/mob/login.dm +++ b/code/modules/mob/login.dm @@ -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() + diff --git a/code/modules/mob/logout.dm b/code/modules/mob/logout.dm index bb01c846caf..45449c1e1c7 100644 --- a/code/modules/mob/logout.dm +++ b/code/modules/mob/logout.dm @@ -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 \ No newline at end of file diff --git a/code/modules/mob/new_player/new_player.dm b/code/modules/mob/new_player/new_player.dm index c8403d5b671..6ecdfdc4e67 100644 --- a/code/modules/mob/new_player/new_player.dm +++ b/code/modules/mob/new_player/new_player.dm @@ -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() diff --git a/code/modules/projectiles/guns/energy/special.dm b/code/modules/projectiles/guns/energy/special.dm index d598d461895..04982e8e587 100644 --- a/code/modules/projectiles/guns/energy/special.dm +++ b/code/modules/projectiles/guns/energy/special.dm @@ -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 */ diff --git a/code/modules/reagents/Chemistry-Machinery.dm b/code/modules/reagents/Chemistry-Machinery.dm index 7bf99cec11e..f9aa75afee5 100644 --- a/code/modules/reagents/Chemistry-Machinery.dm +++ b/code/modules/reagents/Chemistry-Machinery.dm @@ -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 = "
Chemical Analysis

" P.info += "Time of analysis: [worldtime2text(world.time)]

" diff --git a/code/modules/research/designs/mechfabricator_designs.dm b/code/modules/research/designs/mechfabricator_designs.dm index 78e522b21b1..3f784559213 100644 --- a/code/modules/research/designs/mechfabricator_designs.dm +++ b/code/modules/research/designs/mechfabricator_designs.dm @@ -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" diff --git a/code/modules/store/items.dm b/code/modules/store/items.dm index a87dd0c6cd8..32001533d9b 100644 --- a/code/modules/store/items.dm +++ b/code/modules/store/items.dm @@ -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." diff --git a/icons/mob/head.dmi b/icons/mob/head.dmi index 435f3ae32f1..c3ac8ef0451 100644 Binary files a/icons/mob/head.dmi and b/icons/mob/head.dmi differ diff --git a/icons/obj/atmos.dmi b/icons/obj/atmos.dmi index efe3ad114f4..dd1a1f00dbb 100644 Binary files a/icons/obj/atmos.dmi and b/icons/obj/atmos.dmi differ diff --git a/icons/obj/clothing/hats.dmi b/icons/obj/clothing/hats.dmi index 1c71d6d674a..dd1bcd3e70f 100644 Binary files a/icons/obj/clothing/hats.dmi and b/icons/obj/clothing/hats.dmi differ diff --git a/icons/obj/stationobjs.dmi b/icons/obj/stationobjs.dmi index 2116eee6399..df78aea575d 100755 Binary files a/icons/obj/stationobjs.dmi and b/icons/obj/stationobjs.dmi differ diff --git a/maps/cyberiad.dmm b/maps/cyberiad.dmm index 70be5ffd1a6..537fc93ecc7 100644 --- a/maps/cyberiad.dmm +++ b/maps/cyberiad.dmm @@ -2553,7 +2553,7 @@ "aXe" = (/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "bridge blast"; name = "Bridge Blast Doors"; opacity = 0},/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating,/area) "aXf" = (/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "bridge blast"; name = "Bridge Blast Doors"; opacity = 0},/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/status_display{density = 0; layer = 4},/turf/simulated/floor/plating,/area) "aXg" = (/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "bridge blast"; name = "Bridge Blast Doors"; opacity = 0},/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/turf/simulated/floor/plating,/area) -"aXh" = (/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "bridge blast"; name = "Bridge Blast Doors"; opacity = 0},/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/simulated/floor/plating,/area) +"aXh" = (/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "bridge blast"; name = "Bridge Blast Doors"; opacity = 0},/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating,/area) "aXi" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area) "aXj" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating,/area) "aXk" = (/turf/simulated/floor{tag = "icon-stage_stairs"; icon_state = "stage_stairs"},/area/hallway/primary/central/ne) @@ -8572,9 +8572,9 @@ "diR" = (/obj/item/device/radio/intercom{broadcasting = 1; dir = 1; frequency = 1441; listening = 0; name = "Spec Ops Intercom"; pixel_y = 28},/turf/unsimulated/floor{icon_state = "vault"; dir = 8},/area/centcom/specops) "diS" = (/obj/structure/sign/redcross{pixel_y = 32},/turf/unsimulated/floor{icon_state = "vault"; dir = 8},/area/centcom/specops) "diT" = (/obj/structure/mopbucket,/obj/structure/mopbucket,/obj/structure/mopbucket,/obj/structure/mopbucket,/obj/structure/mopbucket,/obj/structure/mopbucket,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom/specops) -"diU" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/effect/forcefield{desc = "You can't get in. Heh."; layer = 1; name = "Blocker"},/turf/unsimulated/wall/fakeglass{tag = "icon-fakewindows (WEST)"; icon_state = "fakewindows"; dir = 8},/area/centcom/specops) +"diU" = (/obj/effect/forcefield{desc = "You can't get in. Heh."; layer = 1; name = "Blocker"},/obj/structure/window/reinforced{dir = 8},/turf/unsimulated/wall/fakeglass{tag = "icon-fakewindows (EAST)"; icon_state = "fakewindows"; dir = 4},/area/centcom/specops) "diV" = (/obj/machinery/door/airlock/centcom{name = "Special Operations Command"; opacity = 1; req_access_txt = "108"},/turf/unsimulated/floor{icon_state = "vault"; dir = 8},/area/centcom/specops) -"diW" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/effect/forcefield{desc = "You can't get in. Heh."; layer = 1; name = "Blocker"},/turf/unsimulated/wall/fakeglass{tag = "icon-fakewindows (EAST)"; icon_state = "fakewindows"; dir = 4},/area/centcom/specops) +"diW" = (/obj/effect/forcefield{desc = "You can't get in. Heh."; layer = 1; name = "Blocker"},/obj/structure/window/reinforced{dir = 4},/turf/unsimulated/wall/fakeglass{tag = "icon-fakewindows (WEST)"; icon_state = "fakewindows"; dir = 8},/area/centcom/specops) "diX" = (/obj/structure/window/reinforced{dir = 1},/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops) "diY" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/unsimulated/floor{name = "plating"},/area/centcom/control) "diZ" = (/obj/structure/rack,/obj/item/clothing/head/helmet/space/rig/ert/engineer,/obj/item/clothing/suit/space/rig/ert/engineer,/obj/item/clothing/tie/storage/brown_vest,/obj/item/clothing/head/helmet/space/rig/ert/engineer,/obj/item/clothing/suit/space/rig/ert/engineer,/obj/item/clothing/tie/storage/brown_vest,/obj/item/clothing/head/helmet/space/rig/ert/engineer,/obj/item/clothing/suit/space/rig/ert/engineer,/obj/item/clothing/tie/storage/brown_vest,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom/specops) @@ -10317,7 +10317,7 @@ "dQu" = (/obj/structure/disposalpipe/segment,/turf/simulated/floor{icon_state = "white"},/area/research_outpost/anomaly) "dQv" = (/obj/machinery/firealarm{pixel_y = -24},/turf/simulated/floor{icon_state = "white"},/area/research_outpost/anomaly) "dQw" = (/obj/structure/rack,/obj/item/clothing/head/welding,/obj/item/weapon/weldingtool,/turf/simulated/floor{icon_state = "white"},/area/research_outpost/anomaly) -"dQx" = (/obj/structure/table,/obj/item/weapon/melee/baton/loaded,/turf/simulated/floor{icon_state = "white"},/area/research_outpost/anomaly) +"dQx" = (/obj/structure/table,/obj/item/device/multitool,/turf/simulated/floor{icon_state = "white"},/area/research_outpost/anomaly) "dQy" = (/obj/machinery/light/small,/obj/machinery/hologram/holopad,/obj/machinery/light_switch{pixel_y = -23},/turf/simulated/floor{icon_state = "white"},/area/research_outpost/anomaly) "dQz" = (/obj/machinery/camera{c_tag = "Research Outpost Anomalous Materials Lab"; dir = 8; network = list("Research Outpost")},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/simulated/floor{icon_state = "white"},/area/research_outpost/anomaly) "dQA" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 8; initialize_directions = 11; level = 1},/obj/structure/sign/science{desc = "A warning sign which reads 'ANOMALOUS MATERIALS'"; name = "\improper ANOMALOUS MATERIALS"; pixel_x = -32},/turf/simulated/floor{dir = 1; icon_state = "whitepurplecorner"},/area/research_outpost/hallway) @@ -12949,7 +12949,7 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadfTdhPdhQdhQdhQdibdfTdfTdhSdhQdhQdhQdicdfTdfTdiddhQdiedifdhQdhQdhQdhQdhQdhQdigdfTdfTdfTdfTdfydhndhodhpdihdiidijdikdildimdindiodihdhndhodhpdfyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadfTdipdhQdhQdhQdiqdfTdfTdirdhQdhQdhQdisdfTdfTditdhQdgfdfTdiudivdivdivdivdivdiwdfTdixdixdixdfydhAdhodhBdiydizdhodiAdiBdiCdhodhodiydhAdhodhBdfyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadfTdfTdfTdfTdfTdfTdfTdfTdfTdiDdfTdfTdfTdfTdfTdfTdiEdfTdfTdfTdfTdhQdhQdiediFdiGdiGdiGdiGdiGdiGdiGdiHdiGdiGdiGdiIdhodhodhodiJdiKdhodhodhodhodhodhodiJdhodhodhodiLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadfTdfTdiMdiNdiOdiPdfTdgTdiQdgTdiQdgTdgTdiRdgTdiSdgTdiSdgTdiRdhQdhQdhQdiTdfTdfTdiUdiVdiWdfTdfTdhXdfTdiXdiXdiXdfydhOdhodhMdiYdhodhodhodhodhodhodhodiYdhOdhodhMdfyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadfTdfTdiMdiNdiOdiPdfTdgTdiQdgTdiQdgTdgTdiRdgTdiSdgTdiSdgTdiRdhQdhQdhQdiTdfTdfTdiWdiVdiUdfTdfTdhXdfTdiXdiXdiXdfydhOdhodhMdiYdhodhodhodhodhodhodhodiYdhOdhodhMdfyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadfTdiZdhQdhQdhQdhQdjadgTdgTdgTdgTdgTdgTdgTdgTdgTdgTdjbdjbdjbdgTdgTdgTdjcdfTdjddjedjedjedjfdfTdhYdfTdfTdfTdfTdfydhndhodhpdiydjgdjhdjidjidjidjjdjkdiydhndhodhpdfyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadfTdiZdhQdhQdhQdhQdfTdgTdgTdgTdgTdgTdgTdgTdgTdgTdjldjmdjndjodjpdgTdgTdjqdfTdjrdjsdjtdjudjedfTdfTdfTaaaaaaaaadfydhndhodhpdfydfydjvdjwdjxdjydjzdfydfydhndhodhpdfyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadfTdjAdhQdjBdjCdjDdfTdfTdfTdjEdfTdfTdfTdjFdgTdgTdjldjmdjmdjmdjpdgTdgTdjGdfTdjedjHdjIdjJdjKdfTaaaaaaaaaaaaaaadfydhndhodhpdfydfydgYdgXdgXdgXdhadfydfydhndhodhpdfyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa diff --git a/paradise.dme b/paradise.dme index 47dbfeb97ed..62c77e9c7fc 100644 --- a/paradise.dme +++ b/paradise.dme @@ -207,6 +207,7 @@ #include "code\datums\spells\emplosion.dm" #include "code\datums\spells\ethereal_jaunt.dm" #include "code\datums\spells\explosion.dm" +#include "code\datums\spells\fake_gib.dm" #include "code\datums\spells\genetic.dm" #include "code\datums\spells\horsemask.dm" #include "code\datums\spells\inflict_handler.dm"