diff --git a/code/ATMOSPHERICS/pipes.dm b/code/ATMOSPHERICS/pipes.dm index ca699cd1257..8964822c2fd 100644 --- a/code/ATMOSPHERICS/pipes.dm +++ b/code/ATMOSPHERICS/pipes.dm @@ -160,7 +160,7 @@ obj/machinery/atmospherics/pipe proc/burst() src.visible_message("\red \bold [src] bursts!"); playsound(src.loc, 'bang.ogg', 25, 1) - var/datum/effect/system/harmless_smoke_spread/smoke = new + var/datum/effect/effect/system/harmless_smoke_spread/smoke = new smoke.set_up(1,0, src.loc, 0) smoke.start() del(src) diff --git a/code/WorkInProgress/explosion_particles.dm b/code/WorkInProgress/explosion_particles.dm index e47ab0face6..ba59cc63772 100644 --- a/code/WorkInProgress/explosion_particles.dm +++ b/code/WorkInProgress/explosion_particles.dm @@ -65,6 +65,6 @@ P.set_up(10,location) P.start() spawn(5) - var/datum/effect/system/harmless_smoke_spread/S = new/datum/effect/system/harmless_smoke_spread() + var/datum/effect/effect/system/harmless_smoke_spread/S = new/datum/effect/effect/system/harmless_smoke_spread() S.set_up(5,0,location,null) S.start() \ No newline at end of file diff --git a/code/datums/spell.dm b/code/datums/spell.dm index 6724489ece9..03a334e7e9b 100644 --- a/code/datums/spell.dm +++ b/code/datums/spell.dm @@ -145,16 +145,16 @@ var/list/spells = typesof(/obj/effect/proc_holder/spell) //needed for the badmin if(istype(target,/mob) && message) target << text("[message]") if(sparks_spread) - var/datum/effect/system/spark_spread/sparks = new /datum/effect/system/spark_spread() + var/datum/effect/effect/system/spark_spread/sparks = new /datum/effect/effect/system/spark_spread() sparks.set_up(sparks_amt, 0, location) //no idea what the 0 is sparks.start() if(smoke_spread) if(smoke_spread == 1) - var/datum/effect/system/harmless_smoke_spread/smoke = new /datum/effect/system/harmless_smoke_spread() + var/datum/effect/effect/system/harmless_smoke_spread/smoke = new /datum/effect/effect/system/harmless_smoke_spread() smoke.set_up(smoke_amt, 0, location) //no idea what the 0 is smoke.start() else if(smoke_spread == 2) - var/datum/effect/system/bad_smoke_spread/smoke = new /datum/effect/system/bad_smoke_spread() + var/datum/effect/effect/system/bad_smoke_spread/smoke = new /datum/effect/effect/system/bad_smoke_spread() smoke.set_up(smoke_amt, 0, location) //no idea what the 0 is smoke.start() diff --git a/code/datums/spells/ethereal_jaunt.dm b/code/datums/spells/ethereal_jaunt.dm index 0a32c7940ae..46c15db0aa9 100644 --- a/code/datums/spells/ethereal_jaunt.dm +++ b/code/datums/spells/ethereal_jaunt.dm @@ -28,7 +28,7 @@ flick("liquify",animation) target.loc = holder target.client.eye = holder - var/datum/effect/system/steam_spread/steam = new /datum/effect/system/steam_spread() + var/datum/effect/effect/system/steam_spread/steam = new /datum/effect/effect/system/steam_spread() steam.set_up(10, 0, mobloc) steam.start() sleep(jaunt_duration) diff --git a/code/defines/global.dm b/code/defines/global.dm index a709b1d498d..9aa15f3bcf0 100644 --- a/code/defines/global.dm +++ b/code/defines/global.dm @@ -73,8 +73,7 @@ var guests_allowed = 1 shuttle_frozen = 0 shuttle_left = 0 - tinted_weldhelh = 1 //as soon as the thing is sprited, we'll code in the toggle verb, bot for now, it should stay on by default. -errorage //Until you have the actual functionality for it, don't set this on by default. You're putting the cart before the horse. --DH - lawyer = 0//Checks for a lawyer + tinted_weldhelh = 1 list/jobMax = list() list/bombers = list( ) diff --git a/code/defines/mob/living/silicon/robot.dm b/code/defines/mob/living/silicon/robot.dm index 0dcfa85ad95..ebcf1457b69 100644 --- a/code/defines/mob/living/silicon/robot.dm +++ b/code/defines/mob/living/silicon/robot.dm @@ -42,8 +42,8 @@ var/modtype = null var/lower_mod = 0 var/jetpack = 0 - var/datum/effect/system/ion_trail_follow/ion_trail = null - var/datum/effect/system/spark_spread/spark_system//So they can initialize sparks whenever/N + var/datum/effect/effect/system/ion_trail_follow/ion_trail = null + var/datum/effect/effect/system/spark_spread/spark_system//So they can initialize sparks whenever/N var/jeton = 0 var/borgwires = 15 var/killswitch = 0 diff --git a/code/defines/mob/mob.dm b/code/defines/mob/mob.dm index 92f72fd33e0..d1bf9e743d4 100644 --- a/code/defines/mob/mob.dm +++ b/code/defines/mob/mob.dm @@ -226,14 +226,6 @@ the mob is also allowed to move without any sort of restriction. For instance, i // var/obj/effect/organstructure/organStructure = null //for dem organs -/mob/proc/Delete(atom/A in view()) - set category = "Debug" - switch (alert("Are you sure you wish to delete \the [A.name] at ([A.x],[A.y],[A.z]) ?", "Admin Delete Object","Yes","No")) - if("Yes") - log_admin("[usr.key] deleted [A.name] at ([A.x],[A.y],[A.z])") - - - /mob/proc/contract_disease(var/datum/disease/virus, var/skip_this = 0, var/force_species_check=1) // world << "Contract_disease called by [src] with virus [virus]" if(stat >=2) return diff --git a/code/defines/obj.dm b/code/defines/obj.dm index 1ea86a6c652..0bd140df58a 100644 --- a/code/defines/obj.dm +++ b/code/defines/obj.dm @@ -66,7 +66,7 @@ unacidable = 1 density = 0 anchored = 1 - var/datum/effect/system/harmless_smoke_spread/smoke + var/datum/effect/effect/system/harmless_smoke_spread/smoke diff --git a/code/defines/obj/toy.dm b/code/defines/obj/toy.dm index 20bb3931ff0..7f7fffb76c4 100644 --- a/code/defines/obj/toy.dm +++ b/code/defines/obj/toy.dm @@ -266,7 +266,7 @@ throw_impact(atom/hit_atom) ..() - var/datum/effect/system/spark_spread/s = new /datum/effect/system/spark_spread + var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread s.set_up(3, 1, src) s.start() new /obj/effect/decal/ash(src.loc) @@ -280,7 +280,7 @@ if(M.m_intent == "run") M << "\red You step on the snap pop!" - var/datum/effect/system/spark_spread/s = new /datum/effect/system/spark_spread + var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread s.set_up(2, 0, src) s.start() new /obj/effect/decal/ash(src.loc) diff --git a/code/defines/obj/weapon.dm b/code/defines/obj/weapon.dm index 74cb097fb68..63bc6aefed5 100644 --- a/code/defines/obj/weapon.dm +++ b/code/defines/obj/weapon.dm @@ -26,6 +26,9 @@ m_amt = 1000 origin_tech = "materials=2" + IsShield() + return 1 + /obj/item/weapon/sord name = "SORD" desc = "This thing is so unspeakably shitty you are having a hard time even holding it." @@ -228,7 +231,7 @@ throw_range = 1 w_class = 4.0//So you can't hide it in your pocket or some such. flags = FPRINT | TABLEPASS | NOSHIELD - var/datum/effect/system/spark_spread/spark_system + var/datum/effect/effect/system/spark_spread/spark_system /obj/item/weapon/bananapeel name = "Banana Peel" diff --git a/code/game/atom_procs.dm b/code/game/atom_procs.dm index b112c4d1682..ba5ab8d69f8 100644 --- a/code/game/atom_procs.dm +++ b/code/game/atom_procs.dm @@ -765,40 +765,21 @@ var/using_new_click_proc = 0 //TODO ERRORAGE (This is temporary, while the DblCl C.oxyloss = max(0, C.oxyloss-25) C.toxloss = max(0, C.toxloss-25) - if (istype(C, /mob/living/carbon/human)) + if(istype(C, /mob/living/carbon/human)) // ------- YOUR TARGET IS HUMAN ------- var/mob/living/carbon/human/H = C - var/datum/organ/external/affecting = H.organs["chest"] - - var/t = usr:zone_sel:selecting - - if (t in list("eyes", "mouth")) - t = "head" - - if (H.organs[t]) - affecting = H.organs[t] - - if (affecting.heal_damage(25, 25)) + var/datum/organ/external/affecting = H.get_organ(check_zone(usr:zone_sel:selecting)) + if(affecting && affecting.heal_damage(25, 25)) H.UpdateDamageIcon() - else - H.UpdateDamage() - C.updatehealth() else C.heal_organ_damage(25, 25) - C.cloneloss = max(0, C.cloneloss-25) - C.stunned = max(0, C.stunned-5) C.paralysis = max(0, C.paralysis-5) C.stuttering = max(0, C.stuttering-5) C.drowsyness = max(0, C.drowsyness-5) C.weakened = max(0, C.weakened-5) - - if(C.client) - C.updatehealth() - C:handle_regular_hud_updates() usr:nutrition -= rand(1,10) - usr:handle_regular_hud_updates() usr.next_move = world.time + 6 else // ------- PERSON YOU'RE TOUCHING IS ALREADY DEAD ------- diff --git a/code/game/chemistry.dm b/code/game/chemistry.dm index 0e228ca0b9d..cc8b8291d04 100644 --- a/code/game/chemistry.dm +++ b/code/game/chemistry.dm @@ -12,7 +12,7 @@ throw_speed = 4 throw_range = 20 flags = FPRINT | TABLEPASS | ONBELT | USEDELAY - var/datum/effect/system/bad_smoke_spread/smoke + var/datum/effect/effect/system/bad_smoke_spread/smoke /obj/item/weapon/mustardbomb desc = "It is set to detonate in 4 seconds." @@ -26,17 +26,17 @@ throw_speed = 4 throw_range = 20 flags = FPRINT | TABLEPASS | CONDUCT | ONBELT - var/datum/effect/system/mustard_gas_spread/mustard_gas + var/datum/effect/effect/system/mustard_gas_spread/mustard_gas /obj/item/weapon/smokebomb/New() ..() - src.smoke = new /datum/effect/system/bad_smoke_spread/ + src.smoke = new /datum/effect/effect/system/bad_smoke_spread/ src.smoke.attach(src) src.smoke.set_up(10, 0, usr.loc) /obj/item/weapon/mustardbomb/New() ..() - src.mustard_gas = new /datum/effect/system/mustard_gas_spread/ + src.mustard_gas = new /datum/effect/effect/system/mustard_gas_spread/ src.mustard_gas.attach(src) src.mustard_gas.set_up(5, 0, usr.loc) diff --git a/code/game/dna.dm b/code/game/dna.dm index d6594aed8c9..e9243daad0f 100644 --- a/code/game/dna.dm +++ b/code/game/dna.dm @@ -321,7 +321,7 @@ M << "\red You start coughing." if (isblockon(getblock(M.dna.struc_enzymes, CLUMSYBLOCK,3),6)) M << "\red You feel lightheaded." - M.mutations |= CLOWN + M.mutations |= CLUMSY if (isblockon(getblock(M.dna.struc_enzymes, 7,3),7)) M.disabilities |= 8 M << "\red You twitch." diff --git a/code/game/gamemodes/events.dm b/code/game/gamemodes/events.dm index 4cc896eeca3..26b440ad898 100644 --- a/code/game/gamemodes/events.dm +++ b/code/game/gamemodes/events.dm @@ -86,7 +86,7 @@ /obj/effect/bhole/New() - src.smoke = new /datum/effect/system/harmless_smoke_spread() + src.smoke = new /datum/effect/effect/system/harmless_smoke_spread() src.smoke.set_up(5, 0, src) src.smoke.attach(src) src:life() diff --git a/code/game/gamemodes/events/ninja_abilities.dm b/code/game/gamemodes/events/ninja_abilities.dm index 88fb058ed31..c7b1521d058 100644 --- a/code/game/gamemodes/events/ninja_abilities.dm +++ b/code/game/gamemodes/events/ninja_abilities.dm @@ -57,7 +57,7 @@ Not sure why this would be useful (it's not) but whatever. Ninjas need their smo if(!ninjacost(,2)) var/mob/living/carbon/human/U = affecting U << "\blue There are [s_bombs] smoke bombs remaining." - var/datum/effect/system/bad_smoke_spread/smoke = new /datum/effect/system/bad_smoke_spread() + var/datum/effect/effect/system/bad_smoke_spread/smoke = new /datum/effect/effect/system/bad_smoke_spread() smoke.set_up(10, 0, U.loc) smoke.start() playsound(U.loc, 'bamf.ogg', 50, 2) diff --git a/code/game/gamemodes/events/ninja_equipment.dm b/code/game/gamemodes/events/ninja_equipment.dm index c7e2d5d9f3d..bd35e122292 100644 --- a/code/game/gamemodes/events/ninja_equipment.dm +++ b/code/game/gamemodes/events/ninja_equipment.dm @@ -948,7 +948,7 @@ ________________________________________________________________________________ if("APC") var/obj/machinery/power/apc/A = target if(A.cell&&A.cell.charge) - var/datum/effect/system/spark_spread/spark_system = new /datum/effect/system/spark_spread() + var/datum/effect/effect/system/spark_spread/spark_system = new /datum/effect/effect/system/spark_spread() spark_system.set_up(5, 0, A.loc) while(G.candrain&&A.cell.charge>0&&!maxcapacity) drain = rand(G.mindrain,G.maxdrain) @@ -976,7 +976,7 @@ ________________________________________________________________________________ if("SMES") var/obj/machinery/power/smes/A = target if(A.charge) - var/datum/effect/system/spark_spread/spark_system = new /datum/effect/system/spark_spread() + var/datum/effect/effect/system/spark_spread/spark_system = new /datum/effect/effect/system/spark_spread() spark_system.set_up(5, 0, A.loc) while(G.candrain&&A.charge>0&&!maxcapacity) drain = rand(G.mindrain,G.maxdrain) @@ -1018,7 +1018,7 @@ ________________________________________________________________________________ var/obj/machinery/A = target if(A.powered())//If powered. - var/datum/effect/system/spark_spread/spark_system = new /datum/effect/system/spark_spread() + var/datum/effect/effect/system/spark_spread/spark_system = new /datum/effect/effect/system/spark_spread() spark_system.set_up(5, 0, A.loc) var/obj/machinery/power/apc/B = A.loc.loc:get_apc()//Object.turf.area find APC @@ -1360,7 +1360,7 @@ It is possible to destroy the net by the occupant or someone else. M << "\red You appear in a strange place!" spawn(0) - var/datum/effect/system/spark_spread/spark_system = new /datum/effect/system/spark_spread() + var/datum/effect/effect/system/spark_spread/spark_system = new /datum/effect/effect/system/spark_spread() spark_system.set_up(5, 0, M.loc) spark_system.start() playsound(M.loc, 'phasein.ogg', 25, 1) diff --git a/code/game/gamemodes/gameticker.dm b/code/game/gamemodes/gameticker.dm index c10fe51bb44..c2223f9d17e 100644 --- a/code/game/gamemodes/gameticker.dm +++ b/code/game/gamemodes/gameticker.dm @@ -54,7 +54,7 @@ var/global/datum/controller/gameticker/ticker var/datum/game_mode/M = config.pick_mode(secret_force_mode) if(M.can_start()) src.mode = config.pick_mode(secret_force_mode) - ResetOccupations() + job_master.ResetOccupations() if(!src.mode) src.mode = pickweight(runnable_modes) if(src.mode) @@ -67,18 +67,18 @@ var/global/datum/controller/gameticker/ticker world << "Unable to start [mode.name]. Not enough players, [mode.required_players] players needed. Reverting to pre-game lobby." del(mode) current_state = GAME_STATE_PREGAME - ResetOccupations() + job_master.ResetOccupations() return 0 //Configure mode and assign player to special mode stuff - DivideOccupations() //Distribute jobs + job_master.DivideOccupations() //Distribute jobs var/can_continue = src.mode.pre_setup()//Setup special modes if(!can_continue) del(mode) current_state = GAME_STATE_PREGAME world << "Error setting up [master_mode]. Reverting to pre-game lobby." - ResetOccupations() + job_master.ResetOccupations() return 0 if(hide_mode) @@ -143,15 +143,12 @@ var/global/datum/controller/gameticker/ticker proc/equip_characters() var/captainless=1 for(var/mob/living/carbon/human/player in world) - if(player) - if(player.mind) - if(player.mind.assigned_role) - if(player.mind.assigned_role == "Captain") - captainless=0 - if(player.mind.assigned_role != "MODE") - player.Equip_Rank(player.mind.assigned_role) - - if (captainless) + if(player && player.mind && player.mind.assigned_role) + if(player.mind.assigned_role == "Captain") + captainless=0 + if(player.mind.assigned_role != "MODE") + job_master.EquipRank(player, player.mind.assigned_role, 0) + if(captainless) world << "Captainship not forced on anyone." diff --git a/code/game/gamemodes/traitor/traitor.dm b/code/game/gamemodes/traitor/traitor.dm index f953e03f751..f491818969a 100644 --- a/code/game/gamemodes/traitor/traitor.dm +++ b/code/game/gamemodes/traitor/traitor.dm @@ -192,7 +192,7 @@ if (traitor_mob.mind) if (traitor_mob.mind.assigned_role == "Clown") traitor_mob << "Your training has allowed you to overcome your clownish nature, allowing you to wield weapons without harming yourself." - traitor_mob.mutations &= ~CLOWN + traitor_mob.mutations &= ~CLUMSY // find a radio! toolbox(es), backpack, belt, headset var/loc = "" diff --git a/code/game/gamemodes/wizard/spells.dm b/code/game/gamemodes/wizard/spells.dm index 920ca87c51d..bbc1e54c331 100644 --- a/code/game/gamemodes/wizard/spells.dm +++ b/code/game/gamemodes/wizard/spells.dm @@ -101,7 +101,7 @@ usr.verbs -= /client/proc/smokecloud spawn(120) usr.verbs += /client/proc/smokecloud - var/datum/effect/system/bad_smoke_spread/smoke = new /datum/effect/system/bad_smoke_spread() + var/datum/effect/effect/system/bad_smoke_spread/smoke = new /datum/effect/effect/system/bad_smoke_spread() smoke.set_up(10, 0, usr.loc) smoke.start() @@ -244,7 +244,7 @@ usr.say("EI NATH") usr.spellvoice() - var/datum/effect/system/spark_spread/s = new /datum/effect/system/spark_spread + var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread s.set_up(4, 1, M) s.start() @@ -287,7 +287,7 @@ if(T.y>world.maxy-4 || T.y<4) continue turfs += T if(!turfs.len) turfs += pick(/turf in orange(6)) - var/datum/effect/system/harmless_smoke_spread/smoke = new /datum/effect/system/harmless_smoke_spread() + var/datum/effect/effect/system/harmless_smoke_spread/smoke = new /datum/effect/effect/system/harmless_smoke_spread() smoke.set_up(10, 0, usr.loc) smoke.start() var/turf/picked = pick(turfs) @@ -330,7 +330,7 @@ usr.say("SCYAR NILA [uppertext(A)]") usr.spellvoice() - var/datum/effect/system/harmless_smoke_spread/smoke = new /datum/effect/system/harmless_smoke_spread() + var/datum/effect/effect/system/harmless_smoke_spread/smoke = new /datum/effect/effect/system/harmless_smoke_spread() smoke.set_up(5, 0, usr.loc) smoke.attach(usr) smoke.start() @@ -360,7 +360,7 @@ A = input("Area to jump to", "BOOYEA", A) in teleportlocs var/area/thearea = teleportlocs[A] - var/datum/effect/system/harmless_smoke_spread/smoke = new /datum/effect/system/harmless_smoke_spread() + var/datum/effect/effect/system/harmless_smoke_spread/smoke = new /datum/effect/effect/system/harmless_smoke_spread() smoke.set_up(5, 0, usr.loc) smoke.attach(usr) smoke.start() @@ -410,7 +410,7 @@ flick("liquify",animation) H.loc = holder H.client.eye = holder - var/datum/effect/system/steam_spread/steam = new /datum/effect/system/steam_spread() + var/datum/effect/effect/system/steam_spread/steam = new /datum/effect/effect/system/steam_spread() steam.set_up(10, 0, mobloc) steam.start() sleep(time) diff --git a/code/game/gamemodes/wizard/wizard.dm b/code/game/gamemodes/wizard/wizard.dm index 42440b10275..ca48e48201d 100644 --- a/code/game/gamemodes/wizard/wizard.dm +++ b/code/game/gamemodes/wizard/wizard.dm @@ -295,209 +295,3 @@ Made a proc here so it's not repeated several times.*/ // playsound(usr.loc, pick('null.ogg','null.ogg'), 100, 1) // else // playsound(usr.loc, pick('null.ogg','null.ogg'), 100, 1) - - - - - - - - - - - - - - - - - - -//UNUSED/OLD CODE - -// for (var/obj/effect/landmark/A in world) -// if (A.name == "Teleport-Scroll") -// new /obj/item/weapon/teleportation_scroll(A.loc) -// del(A) -// continue -//Scroll now starts in the wizard's inventory. - -// if (wizard_mob.mind.assigned_role == "Clown") -// wizard_mob << "Your training has allowed you to overcome your clownish nature, allowing you to wield weapons without harming yourself." -// wizard_mob.mutations &= ~CLOWN No more clowns as wizarrrddsss - -/*Creates random numbers/codes for the uplink. - var/freq = 1441 - var/list/freqlist = list() - while (freq <= 1489) - if (freq < 1451 || freq > 1459) - freqlist += freq - freq += 2 - if ((freq % 2) == 0) - freq += 1 - freq = freqlist[rand(1, freqlist.len)] - // generate a passcode if the uplink is hidden in a PDA - var/pda_pass = "[rand(100,999)] [pick("Morgan","Circe","Prospero","Elminister","Raistlin","Tzeentch","Saruman","Khelben","Dumbledor","Gandalf","Houdini","Teferi","Urza","Tenser","Zagyg","Mystryl","Boccob","Merlin")]" -No longer used because wizards begin with a spell book.*/ - -/*Checks where to spawn the swf uplink. - var/loc = "" - var/obj/item/device/R = null //Hide the uplink in a PDA if available, otherwise radio - if (!R && istype(wizard_mob.belt, /obj/item/device/pda)) - R = wizard_mob.belt - loc = "on your belt" - if (!R && istype(wizard_mob.l_hand, /obj/item/weapon/storage)) - var/obj/item/weapon/storage/S = wizard_mob.l_hand - var/list/L = S.return_inv() - for (var/obj/item/device/radio/foo in L) - R = foo - loc = "in the [S.name] in your left hand" - break - if (!R && istype(wizard_mob.r_hand, /obj/item/weapon/storage)) - var/obj/item/weapon/storage/S = wizard_mob.r_hand - var/list/L = S.return_inv() - for (var/obj/item/device/radio/foo in L) - R = foo - loc = "in the [S.name] in your right hand" - break - if (!R && istype(wizard_mob.back, /obj/item/weapon/storage)) - var/obj/item/weapon/storage/S = wizard_mob.back - var/list/L = S.return_inv() - for (var/obj/item/device/radio/foo in L) - R = foo - loc = "in the [S.name] on your back" - break - if (!R && wizard_mob.w_uniform && istype(wizard_mob.belt, /obj/item/device/radio)) - R = wizard_mob.belt - loc = "on your belt" - if (!R && istype(wizard_mob.ears, /obj/item/device/radio)) - R = wizard_mob.ears - loc = "on your head" - if (!R) - wizard_mob << "Unfortunately, the Space Wizards Federation wasn't able to get you a radio." - else - if (istype(R, /obj/item/device/radio)) - var/obj/item/weapon/SWF_uplink/T = new /obj/item/weapon/SWF_uplink(R) - R:traitorradio = T - R:traitor_frequency = freq - T.name = R.name - T.icon_state = R.icon_state - T.origradio = R - wizard_mob << "The Space Wizards Federation have cunningly disguised a spell book as your [R.name] [loc]. Simply dial the frequency [format_frequency(freq)] to unlock it's hidden features." - wizard_mob.mind.store_memory("Radio Freq: [format_frequency(freq)] ([R.name] [loc]).") - else if (istype(R, /obj/item/device/pda)) - var/obj/item/weapon/integrated_uplink/SWF/T = new /obj/item/weapon/integrated_uplink/SWF(R) - R:uplink = T - T.lock_code = pda_pass - T.hostpda = R - wizard_mob << "The Space Wizards Federation have cunningly enchanted a spellbook into your PDA [loc]. Simply enter the code \"[pda_pass]\" into the ringtone select to unlock its hidden features." - wizard_mob.mind.store_memory("Uplink Passcode: [pda_pass] ([R.name] [loc]).") -No longer used because wizards begin with a spell book.*/ - -/*Code which works for intergrated uplinks, like those in PDAs. -/obj/item/weapon/integrated_uplink/SWF - name = "enchanted uplink" - uses = 4 - var/temp = null - -/obj/item/weapon/integrated_uplink/SWF/generate_menu() - src.menu_message = "Wizarding Uplink Console:
" - src.menu_message += "Tele-Crystals left: [src.uses]
" - src.menu_message += "
" - - if(src.temp) - src.menu_message += "[src.temp]
" - else //Nice empty space for it to appear in. - src.menu_message += "
" - src.menu_message += "Request item:
" - src.menu_message += "Each item costs 1 telecrystal. The number afterwards is the cooldown time.
" - src.menu_message += "Magic Missile (10)
" - src.menu_message += "Fireball (10)
" - src.menu_message += "Disintegrate (60)
" - src.menu_message += "Disable Technology (60)
" - src.menu_message += "Smoke (10)
" - src.menu_message += "Blind (30)
" - src.menu_message += "Forcewall (10)
" - src.menu_message += "Blink (2)
" - src.menu_message += "Teleport (30)
" - src.menu_message += "Mutate (60)
" - src.menu_message += "Ethereal Jaunt (60)
" - src.menu_message += "Knock (10)
" - src.menu_message += "
" - return - -/obj/item/weapon/integrated_uplink/SWF/Topic(href, href_list) - if ((isnull(src.hostpda)) || (!src.active)) - return - - if (usr.stat || usr.restrained() || !in_range(src.hostpda, usr)) - return - - if (href_list["buy_spell"]) - switch(href_list["buy_spell"]) - if("magicmissile") - if (src.uses >= 1) - src.uses -= 1 - usr.verbs += /client/proc/magicmissile - src.temp = "This spell fires several, slow moving, magic projectiles at nearby targets. If they hit a target, it is paralyzed and takes minor damage." - if("fireball") - if (src.uses >= 1) - src.uses -= 1 - usr.verbs += /client/proc/fireball - src.temp = "This spell fires a fireball at a target and does not require wizard garb. Be careful not to fire it at people that are standing next to you." - if("disintegrate") - if (src.uses >= 1) - src.uses -= 1 - usr.verbs += /mob/proc/kill - src.temp = "This spell instantly kills somebody adjacent to you with the vilest of magick. It has a long cooldown." - if("emp") - if (src.uses >= 1) - src.uses -= 1 - usr.verbs += /mob/proc/tech - src.temp = "This spell disables all weapons, cameras and most other technology in range." - if("smoke") - if (src.uses >= 1) - src.uses -= 1 - usr.verbs += /client/proc/smokecloud - src.temp = "This spell spawns a cloud of choking smoke at your location and does not require wizard garb." - if("blind") - if (src.uses >= 1) - src.uses -= 1 - usr.verbs += /client/proc/blind - src.temp = "This spell temporarly blinds a single person and does not require wizard garb." - if("forcewall") - if (src.uses >= 1) - src.uses -= 1 - usr.verbs += /client/proc/forcewall - src.temp = "This spell creates an unbreakable wall that lasts for 30 seconds and does not require wizard garb." - if("blink") - if (src.uses >= 1) - src.uses -= 1 - usr.verbs += /client/proc/blink - src.temp = "This spell randomly teleports you a short distance. Useful for evasion or getting into areas if you have patience." - if("teleport") - if (src.uses >= 1) - src.uses -= 1 - usr.verbs += /mob/proc/teleport - src.temp = "This spell teleports you to a type of area of your selection. Very useful if you are in danger, but has a decent cooldown, and is unpredictable." - if("mutate") - if (src.uses >= 1) - src.uses -= 1 - usr.verbs += /client/proc/mutate - src.temp = "This spell causes you to turn into a hulk, and gain telekinesis for a short while." - if("jaunt") - if (src.uses >= 1) - src.uses -= 1 - usr.verbs += /client/proc/jaunt - src.temp = "This spell creates your ethereal form, temporarily making you invisible and able to pass through walls." - if("knock") - if (src.uses >= 1) - src.uses -= 1 - usr.verbs += /client/proc/knock - src.temp = "This spell opens nearby doors and does not require wizard garb." - src.generate_menu() - src.print_to_host(src.menu_message) - return - - return -No longer used because wizards begin with a spell book.*/ \ No newline at end of file diff --git a/code/game/jobs/job/assistant.dm b/code/game/jobs/job/assistant.dm new file mode 100644 index 00000000000..84513bef214 --- /dev/null +++ b/code/game/jobs/job/assistant.dm @@ -0,0 +1,14 @@ +/datum/job/assistant + title = "Assistant" + flag = ASSISTANT + department_flag = CIVILIAN + faction = "Station" + total_positions = -1 + spawn_positions = -1 + + + equip(var/mob/living/carbon/human/H) + if(!H) return 0 + H.equip_if_possible(new /obj/item/clothing/under/color/grey(H), H.slot_w_uniform) + H.equip_if_possible(new /obj/item/clothing/shoes/black(H), H.slot_shoes) + return 1 diff --git a/code/game/jobs/job/captian.dm b/code/game/jobs/job/captian.dm new file mode 100644 index 00000000000..c21bec3d2e8 --- /dev/null +++ b/code/game/jobs/job/captian.dm @@ -0,0 +1,50 @@ +/datum/job/captain + title = "Captain" + flag = CAPTAIN + department_flag = ENGSEC + faction = "Station" + total_positions = 1 + spawn_positions = 1 + + + equip(var/mob/living/carbon/human/H) + if(!H) return 0 + H.equip_if_possible(new /obj/item/device/radio/headset/heads/captain(H), H.slot_ears) + H.equip_if_possible(new /obj/item/weapon/storage/backpack(H), H.slot_back) + H.equip_if_possible(new /obj/item/weapon/storage/box/survival(H.back), H.slot_in_backpack) + H.equip_if_possible(new /obj/item/clothing/under/rank/captain(H), H.slot_w_uniform) + H.equip_if_possible(new /obj/item/device/pda/captain(H), H.slot_belt) + H.equip_if_possible(new /obj/item/clothing/suit/armor/captain(H), H.slot_wear_suit) + H.equip_if_possible(new /obj/item/clothing/shoes/brown(H), H.slot_shoes) + H.equip_if_possible(new /obj/item/clothing/head/caphat(H), H.slot_head) + H.equip_if_possible(new /obj/item/clothing/glasses/sunglasses(H), H.slot_glasses) + H.equip_if_possible(new /obj/item/weapon/storage/id_kit(H), H.slot_in_backpack) + var/obj/item/weapon/implant/loyalty/L = new/obj/item/weapon/implant/loyalty(H) + L.imp_in = H + L.implanted = 1 + world << "[src] is the captain!" + return 1 + + + +/datum/job/hop + title = "Head of Personnel" + flag = HOP + department_flag = CIVILIAN + faction = "Station" + total_positions = 1 + spawn_positions = 1 + + + equip(var/mob/living/carbon/human/H) + if(!H) return 0 + H.equip_if_possible(new /obj/item/device/radio/headset/heads/hop(H), H.slot_ears) + H.equip_if_possible(new /obj/item/weapon/storage/backpack(H), H.slot_back) + H.equip_if_possible(new /obj/item/weapon/storage/box/survival(H.back), H.slot_in_backpack) + H.equip_if_possible(new /obj/item/clothing/under/rank/head_of_personnel(H), H.slot_w_uniform) + H.equip_if_possible(new /obj/item/clothing/shoes/brown(H), H.slot_shoes) + H.equip_if_possible(new /obj/item/device/pda/heads/hop(H), H.slot_belt) + H.equip_if_possible(new /obj/item/clothing/suit/armor/vest(H), H.slot_wear_suit) + H.equip_if_possible(new /obj/item/clothing/head/helmet(H), H.slot_head) + H.equip_if_possible(new /obj/item/weapon/storage/id_kit(H), H.slot_in_backpack) + return 1 diff --git a/code/game/jobs/job/civilian.dm b/code/game/jobs/job/civilian.dm new file mode 100644 index 00000000000..5a1271e0ea4 --- /dev/null +++ b/code/game/jobs/job/civilian.dm @@ -0,0 +1,259 @@ + + + + + +//Food +/datum/job/bartender + title = "Bartender" + flag = BARTENDER + department_flag = CIVILIAN + faction = "Station" + total_positions = 1 + spawn_positions = 1 + + + equip(var/mob/living/carbon/human/H) + if(!H) return 0 + H.equip_if_possible(new /obj/item/weapon/storage/backpack(H), H.slot_back) + H.equip_if_possible(new /obj/item/weapon/storage/box/survival(H.back), H.slot_in_backpack) + H.equip_if_possible(new /obj/item/clothing/under/rank/bartender(H), H.slot_w_uniform) + H.equip_if_possible(new /obj/item/clothing/shoes/black(H), H.slot_shoes) + H.equip_if_possible(new /obj/item/clothing/suit/armor/vest(H), H.slot_wear_suit) + H.equip_if_possible(new /obj/item/ammo_casing/shotgun/beanbag(H), H.slot_in_backpack) + H.equip_if_possible(new /obj/item/ammo_casing/shotgun/beanbag(H), H.slot_in_backpack) + H.equip_if_possible(new /obj/item/ammo_casing/shotgun/beanbag(H), H.slot_in_backpack) + H.equip_if_possible(new /obj/item/ammo_casing/shotgun/beanbag(H), H.slot_in_backpack) + return 1 + + + +/datum/job/chef + title = "Chef" + flag = CHEF + department_flag = CIVILIAN + faction = "Station" + total_positions = 1 + spawn_positions = 1 + + + equip(var/mob/living/carbon/human/H) + if(!H) return 0 + H.equip_if_possible(new /obj/item/clothing/under/rank/chef(H), H.slot_w_uniform) + H.equip_if_possible(new /obj/item/clothing/suit/chef(H), H.slot_wear_suit) + H.equip_if_possible(new /obj/item/clothing/shoes/black(H), H.slot_shoes) + H.equip_if_possible(new /obj/item/clothing/head/chefhat(H), H.slot_head) + return 1 + + + +/datum/job/hydro + title = "Botanist" + flag = BOTANIST + department_flag = CIVILIAN + faction = "Station" + total_positions = 3 + spawn_positions = 2 + + + equip(var/mob/living/carbon/human/H) + if(!H) return 0 + H.equip_if_possible(new /obj/item/clothing/under/rank/hydroponics(H), H.slot_w_uniform) + H.equip_if_possible(new /obj/item/clothing/shoes/black(H), H.slot_shoes) + H.equip_if_possible(new /obj/item/clothing/gloves/botanic_leather(H), H.slot_gloves) + H.equip_if_possible(new /obj/item/clothing/suit/apron(H), H.slot_wear_suit) + H.equip_if_possible(new /obj/item/device/analyzer/plant_analyzer(H), H.slot_s_store) + return 1 + + + +//Cargo +/datum/job/qm + title = "Quartermaster" + flag = QUARTERMASTER + department_flag = CIVILIAN + faction = "Station" + total_positions = 1 + spawn_positions = 1 + + + equip(var/mob/living/carbon/human/H) + if(!H) return 0 + H.equip_if_possible(new /obj/item/device/radio/headset/heads/qm(H), H.slot_ears) + H.equip_if_possible(new /obj/item/clothing/under/rank/cargo(H), H.slot_w_uniform) + H.equip_if_possible(new /obj/item/clothing/shoes/black(H), H.slot_shoes) + H.equip_if_possible(new /obj/item/device/pda/quartermaster(H), H.slot_belt) + H.equip_if_possible(new /obj/item/clothing/gloves/black(H), H.slot_gloves) + H.equip_if_possible(new /obj/item/clothing/glasses/sunglasses(H), H.slot_glasses) + H.equip_if_possible(new /obj/item/weapon/clipboard(H), H.slot_l_hand) + return 1 + + + +/datum/job/cargo_tech + title = "Cargo Technician" + flag = CARGOTECH + department_flag = CIVILIAN + faction = "Station" + total_positions = 2 + spawn_positions = 2 + + + equip(var/mob/living/carbon/human/H) + if(!H) return 0 + H.equip_if_possible(new /obj/item/device/radio/headset/headset_cargo(H), H.slot_ears) + H.equip_if_possible(new /obj/item/clothing/under/rank/cargo(H), H.slot_w_uniform) + H.equip_if_possible(new /obj/item/clothing/shoes/black(H), H.slot_shoes) + H.equip_if_possible(new /obj/item/device/pda/quartermaster(H), H.slot_belt) + H.equip_if_possible(new /obj/item/clothing/gloves/black(H), H.slot_gloves) + return 1 + + + +/datum/job/mining + title = "Shaft Miner" + flag = MINER + department_flag = CIVILIAN + faction = "Station" + total_positions = 3 + spawn_positions = 3 + + + equip(var/mob/living/carbon/human/H) + if(!H) return 0 + H.equip_if_possible(new /obj/item/device/radio/headset/headset_mine (H), H.slot_ears) + H.equip_if_possible(new /obj/item/weapon/storage/backpack/industrial (H), H.slot_back) + H.equip_if_possible(new /obj/item/weapon/storage/box/engineer(H.back), H.slot_in_backpack) + H.equip_if_possible(new /obj/item/clothing/under/rank/miner(H), H.slot_w_uniform) + H.equip_if_possible(new /obj/item/clothing/shoes/black(H), H.slot_shoes) + H.equip_if_possible(new /obj/item/clothing/gloves/black(H), H.slot_gloves) + H.equip_if_possible(new /obj/item/weapon/crowbar(H), H.slot_in_backpack) + H.equip_if_possible(new /obj/item/weapon/satchel(H), H.slot_in_backpack) + return 1 + + + +//Griff +/datum/job/clown + title = "Clown" + flag = CLOWN + department_flag = CIVILIAN + faction = "Station" + total_positions = 1 + spawn_positions = 1 + + + equip(var/mob/living/carbon/human/H) + if(!H) return 0 + H.equip_if_possible(new /obj/item/weapon/storage/backpack/clown(H), H.slot_back) + H.equip_if_possible(new /obj/item/weapon/storage/box/survival(H.back), H.slot_in_backpack) + H.equip_if_possible(new /obj/item/clothing/under/rank/clown(H), H.slot_w_uniform) + H.equip_if_possible(new /obj/item/clothing/shoes/clown_shoes(H), H.slot_shoes) + H.equip_if_possible(new /obj/item/device/pda/clown(H), H.slot_belt) + H.equip_if_possible(new /obj/item/clothing/mask/gas/clown_hat(H), H.slot_wear_mask) + H.equip_if_possible(new /obj/item/weapon/reagent_containers/food/snacks/grown/banana(H), H.slot_in_backpack) + H.equip_if_possible(new /obj/item/weapon/bikehorn(H), H.slot_in_backpack) + H.equip_if_possible(new /obj/item/weapon/stamp/clown(H), H.slot_in_backpack) + H.equip_if_possible(new /obj/item/toy/crayon/rainbow(H), H.slot_in_backpack) + H.equip_if_possible(new /obj/item/toy/crayonbox(H), H.slot_in_backpack) + H.mutations |= CLOWN + return 1 + + + +/datum/job/mime + title = "Mime" + flag = MIME + department_flag = CIVILIAN + faction = "Station" + total_positions = 1 + spawn_positions = 1 + + + equip(var/mob/living/carbon/human/H) + if(!H) return 0 + H.equip_if_possible(new /obj/item/weapon/storage/backpack(H), H.slot_back) + H.equip_if_possible(new /obj/item/weapon/storage/box/survival(H.back), H.slot_in_backpack) + H.equip_if_possible(new /obj/item/clothing/under/mime(H), H.slot_w_uniform) + H.equip_if_possible(new /obj/item/clothing/shoes/black(H), H.slot_shoes) + H.equip_if_possible(new /obj/item/device/pda/mime(H), H.slot_belt) + H.equip_if_possible(new /obj/item/clothing/gloves/white(H), H.slot_gloves) + H.equip_if_possible(new /obj/item/clothing/mask/gas/mime(H), H.slot_wear_mask) + H.equip_if_possible(new /obj/item/clothing/head/beret(H), H.slot_head) + H.equip_if_possible(new /obj/item/clothing/suit/suspenders(H), H.slot_wear_suit) + H.equip_if_possible(new /obj/item/toy/crayon/mime(H), H.slot_in_backpack) + H.equip_if_possible(new /obj/item/weapon/reagent_containers/food/drinks/bottle/bottleofnothing(H), H.slot_in_backpack) + H.verbs += /client/proc/mimespeak + H.verbs += /client/proc/mimewall + H.mind.special_verbs += /client/proc/mimespeak + H.mind.special_verbs += /client/proc/mimewall + H.miming = 1 + return 1 + + + +/datum/job/janitor + title = "Janitor" + flag = JANITOR + department_flag = CIVILIAN + faction = "Station" + total_positions = 1 + spawn_positions = 1 + + + equip(var/mob/living/carbon/human/H) + if(!H) return 0 + H.equip_if_possible(new /obj/item/clothing/under/rank/janitor(H), H.slot_w_uniform) + H.equip_if_possible(new /obj/item/clothing/shoes/black(H), H.slot_shoes) + H.equip_if_possible(new /obj/item/device/pda/janitor(H), H.slot_belt) + return 1 + + + +//More or less assistants +/datum/job/librarian + title = "Librarian" + flag = LIBRARIAN + department_flag = CIVILIAN + faction = "Station" + total_positions = 1 + spawn_positions = 1 + + + equip(var/mob/living/carbon/human/H) + if(!H) return 0 + H.equip_if_possible(new /obj/item/clothing/under/suit_jacket/red(H), H.slot_w_uniform) + H.equip_if_possible(new /obj/item/clothing/shoes/black(H), H.slot_shoes) + H.equip_if_possible(new /obj/item/weapon/barcodescanner(H), H.slot_l_hand) + return 1 + + + +var/global/lawyer = 0//Checks for another lawyer +/datum/job/lawyer + title = "Lawyer" + flag = LAWYER + department_flag = CIVILIAN + faction = "Station" + total_positions = 2 + spawn_positions = 2 + + + equip(var/mob/living/carbon/human/H) + if(!H) return 0 + H.equip_if_possible(new /obj/item/weapon/storage/backpack(H), H.slot_back) + H.equip_if_possible(new /obj/item/weapon/storage/box/survival(H.back), H.slot_in_backpack) + if(!lawyer) + lawyer = 1 + H.equip_if_possible(new /obj/item/clothing/under/lawyer/bluesuit(H), H.slot_w_uniform) + H.equip_if_possible(new /obj/item/clothing/suit/lawyer/bluejacket(H), H.slot_wear_suit) + else + H.equip_if_possible(new /obj/item/clothing/under/lawyer/purpsuit(H), H.slot_w_uniform) + H.equip_if_possible(new /obj/item/clothing/suit/lawyer/purpjacket(H), H.slot_wear_suit) + H.equip_if_possible(new /obj/item/clothing/shoes/brown(H), H.slot_shoes) + H.equip_if_possible(new /obj/item/device/pda/lawyer(H), H.slot_belt) + H.equip_if_possible(new /obj/item/device/detective_scanner(H), H.slot_in_backpack)//Why do they even get this? + H.equip_if_possible(new /obj/item/weapon/storage/briefcase(H), H.slot_l_hand) + return 1 + + diff --git a/code/game/jobs/job/civilian_chaplain.dm b/code/game/jobs/job/civilian_chaplain.dm new file mode 100644 index 00000000000..5a84c6a8553 --- /dev/null +++ b/code/game/jobs/job/civilian_chaplain.dm @@ -0,0 +1,152 @@ +//Due to how large this one is it gets its own file +/datum/job/chaplain + title = "Chaplain" + flag = CHAPLAIN + department_flag = CIVILIAN + faction = "Station" + total_positions = 1 + spawn_positions = 1 + + + equip(var/mob/living/carbon/human/H) + if(!H) return 0 + + var/obj/item/weapon/storage/bible/B = new /obj/item/weapon/storage/bible/booze(H) + H.equip_if_possible(B, H.slot_l_hand) + H.equip_if_possible(new /obj/item/device/pda/chaplain(H), H.slot_belt) + H.equip_if_possible(new /obj/item/clothing/under/rank/chaplain(H), H.slot_w_uniform) + H.equip_if_possible(new /obj/item/clothing/shoes/black(H), H.slot_shoes) + spawn(0) + var/religion_name = "Christianity" + var/new_religion = input(H, "You are the Chaplain. Would you like to change your religion? Default is Christianity, in SPACE.", "Name change", religion_name) + + if ((length(new_religion) == 0) || (new_religion == "Christianity")) + new_religion = religion_name + + if (new_religion) + if (length(new_religion) >= 26) + new_religion = copytext(new_religion, 1, 26) + new_religion = dd_replacetext(new_religion, ">", "'") + switch(lowertext(new_religion)) + if("christianity") + B.name = pick("The Holy Bible","The Dead Sea Scrolls") + if("satanism") + B.name = "The Unholy Bible" + if("cthulu") + B.name = "The Necronomicon" + if("islam") + B.name = "Quran" + if("scientology") + B.name = pick("The Biography of L. Ron Hubbard","Dianetics") + if("chaos") + B.name = "The Book of Lorgar" + if("imperium") + B.name = "Uplifting Primer" + if("toolboxia") + B.name = "Toolbox Manifesto" + if("homosexuality") + B.name = "Guys Gone Wild" + if("lol", "wtf", "gay", "penis", "ass", "poo", "badmin", "shitmin", "deadmin", "cock", "cocks") + B.name = pick("Woodys Got Wood: The Aftermath", "War of the Cocks", "Sweet Bro and Hella Jef: Expanded Edition") + H.brainloss = 100 // starts off retarded as fuck + if("science") + B.name = pick("Principle of Relativity", "Quantum Enigma: Physics Encounters Consciousness", "Programming the Universe", "Quantum Physics and Theology", "String Theory for Dummies", "How To: Build Your Own Warp Drive", "The Mysteries of Bluespace", "Playing God: Collector's Edition") + else + B.name = "The Holy Book of [new_religion]" + + spawn(1) + var/deity_name = "Space Jesus" + var/new_deity = input(H, "Would you like to change your deity? Default is Space Jesus.", "Name change", deity_name) + + if ((length(new_deity) == 0) || (new_deity == "Space Jesus") ) + new_deity = deity_name + + if(new_deity) + if (length(new_deity) >= 26) + new_deity = copytext(new_deity, 1, 26) + new_deity = dd_replacetext(new_deity, ">", "'") + B.deity_name = new_deity + + var/accepted = 0 + var/outoftime = 0 + spawn(200) // 20 seconds to choose + outoftime = 1 + while(!accepted) + if(!B) break // prevents possible runtime errors + + switch(input(H,"Which bible style would you like?") in list("Bible", "Koran", "Scrapbook", "Daederic Scroll", "Creeper", "White Bible", "Holy Light", "Athiest", "Tome", "The King in Yellow", "Ithaqua", "Scientology", "the bible melts", "Necronomicon")) + if("Koran") + B.icon_state = "koran" + B.item_state = "koran" + for(var/area/chapel/main/A in world) + for(var/turf/T in A.contents) + if(T.icon_state == "carpetsymbol") + T.dir = 4 + if("Scrapbook") + B.icon_state = "scrapbook" + B.item_state = "scrapbook" + if("Daederic Scroll") + B.icon_state = "daederic_scroll" + B.item_state = "daederic" + if("Creeper") + B.icon_state = "creeper" + B.item_state = "syringe_kit" + if("White Bible") + B.icon_state = "white" + B.item_state = "syringe_kit" + if("Holy Light") + B.icon_state = "holylight" + B.item_state = "syringe_kit" + if("Athiest") + B.icon_state = "athiest" + B.item_state = "syringe_kit" + for(var/area/chapel/main/A in world) + for(var/turf/T in A.contents) + if(T.icon_state == "carpetsymbol") + T.dir = 10 + if("Tome") + B.icon_state = "tome" + B.item_state = "syringe_kit" + if("The King in Yellow") + B.icon_state = "kingyellow" + B.item_state = "kingyellow" + if("Ithaqua") + B.icon_state = "ithaqua" + B.item_state = "ithaqua" + if("Scientology") + B.icon_state = "scientology" + B.item_state = "scientology" + for(var/area/chapel/main/A in world) + for(var/turf/T in A.contents) + if(T.icon_state == "carpetsymbol") + T.dir = 8 + if("the bible melts") + B.icon_state = "melted" + B.item_state = "melted" + if("Necronomicon") + B.icon_state = "necronomicon" + B.item_state = "necronomicon" + else + // if christian bible, revert to default + B.icon_state = "bible" + B.item_state = "bible" + for(var/area/chapel/main/A in world) + for(var/turf/T in A.contents) + if(T.icon_state == "carpetsymbol") + T.dir = 2 + + H:update_clothing() // so that it updates the bible's item_state in his hand + + switch(input(H,"Look at your bible - is this what you want?") in list("Yes","No")) + if("Yes") + accepted = 1 + if("No") + if(outoftime) + H << "Welp, out of time, buddy. You're stuck. Next time choose faster." + accepted = 1 + + if(ticker) + ticker.Bible_icon_state = B.icon_state + ticker.Bible_item_state = B.item_state + ticker.Bible_name = B.name + return 1 \ No newline at end of file diff --git a/code/game/jobs/job/engineering.dm b/code/game/jobs/job/engineering.dm new file mode 100644 index 00000000000..21378012d24 --- /dev/null +++ b/code/game/jobs/job/engineering.dm @@ -0,0 +1,88 @@ +/datum/job/chief_engineer + title = "Chief Engineer" + flag = CHIEF + department_flag = ENGSEC + faction = "Station" + total_positions = 1 + spawn_positions = 1 + + + equip(var/mob/living/carbon/human/H) + if(!H) return 0 + H.equip_if_possible(new /obj/item/device/radio/headset/heads/ce(H), H.slot_ears) + H.equip_if_possible(new /obj/item/weapon/storage/backpack/industrial (H), H.slot_back) + H.equip_if_possible(new /obj/item/weapon/storage/box/engineer(H.back), H.slot_in_backpack) + H.equip_if_possible(new /obj/item/clothing/under/rank/chief_engineer(H), H.slot_w_uniform) + H.equip_if_possible(new /obj/item/device/pda/heads/ce(H), H.slot_belt) + H.equip_if_possible(new /obj/item/clothing/shoes/brown(H), H.slot_shoes) + H.equip_if_possible(new /obj/item/clothing/head/helmet/hardhat/white(H), H.slot_head) + H.equip_if_possible(new /obj/item/weapon/storage/belt/utility/full(H), H.slot_l_hand) + H.equip_if_possible(new /obj/item/clothing/gloves/black(H), H.slot_gloves) + return 1 + + + +/datum/job/engineer + title = "Station Engineer" + flag = ENGINEER + department_flag = ENGSEC + faction = "Station" + total_positions = 5 + spawn_positions = 5 + + + equip(var/mob/living/carbon/human/H) + if(!H) return 0 + H.equip_if_possible(new /obj/item/device/radio/headset/headset_eng(H), H.slot_ears) + H.equip_if_possible(new /obj/item/weapon/storage/backpack/industrial(H), H.slot_back) + H.equip_if_possible(new /obj/item/weapon/storage/box/engineer(H.back), H.slot_in_backpack) + H.equip_if_possible(new /obj/item/clothing/under/rank/engineer(H), H.slot_w_uniform) + H.equip_if_possible(new /obj/item/clothing/shoes/orange(H), H.slot_shoes) + H.equip_if_possible(new /obj/item/device/pda/engineering(H), H.slot_belt) + H.equip_if_possible(new /obj/item/clothing/head/helmet/hardhat(H), H.slot_head) + H.equip_if_possible(new /obj/item/weapon/storage/belt/utility/full(H), H.slot_l_hand) + H.equip_if_possible(new /obj/item/device/t_scanner(H), H.slot_r_store) + return 1 + + + +/datum/job/atmos + title = "Atmospheric Technician" + flag = ATMOSTECH + department_flag = ENGSEC + faction = "Station" + total_positions = 3 + spawn_positions = 2 + + + equip(var/mob/living/carbon/human/H) + if(!H) return 0 + H.equip_if_possible(new /obj/item/device/radio/headset/headset_eng(H), H.slot_ears) + H.equip_if_possible(new /obj/item/weapon/storage/backpack(H), H.slot_back) + H.equip_if_possible(new /obj/item/weapon/storage/box/survival(H.back), H.slot_in_backpack) + H.equip_if_possible(new /obj/item/clothing/under/rank/atmospheric_technician(H), H.slot_w_uniform) + H.equip_if_possible(new /obj/item/clothing/shoes/black(H), H.slot_shoes) + H.equip_if_possible(new /obj/item/device/pda/engineering(H), H.slot_belt) + H.equip_if_possible(new /obj/item/weapon/storage/toolbox/mechanical(H), H.slot_l_hand) + return 1 + + + +/datum/job/roboticist + title = "Roboticist" + flag = ROBOTICIST + department_flag = ENGSEC + faction = "Station" + total_positions = 2 + spawn_positions = 1 + + equip(var/mob/living/carbon/human/H) + if(!H) return 0 + H.equip_if_possible(new /obj/item/device/radio/headset/headset_eng(H), H.slot_ears) + H.equip_if_possible(new /obj/item/weapon/storage/backpack(H), H.slot_back) + H.equip_if_possible(new /obj/item/weapon/storage/box/survival(H.back), H.slot_in_backpack) + H.equip_if_possible(new /obj/item/clothing/under/rank/roboticist(H), H.slot_w_uniform) + H.equip_if_possible(new /obj/item/clothing/shoes/black(H), H.slot_shoes) + H.equip_if_possible(new /obj/item/device/pda/engineering(H), H.slot_belt) + H.equip_if_possible(new /obj/item/clothing/gloves/black(H), H.slot_gloves) + return 1 \ No newline at end of file diff --git a/code/game/jobs/job/job.dm b/code/game/jobs/job/job.dm new file mode 100644 index 00000000000..1931a976797 --- /dev/null +++ b/code/game/jobs/job/job.dm @@ -0,0 +1,94 @@ +/datum/job + var + //The name of the job + title = "NOPE" + //Bitflags for the job + flag = 0 + department_flag = 0 + //Players will be allowed to spawn in as jobs that are set to "Station" + faction = "None" + //How many players can be this job + total_positions = 0 + //How many players can spawn in as this job + spawn_positions = 0 + //How many players have this job + current_positions = 0 + + + proc/equip(var/mob/living/carbon/human/H) + return 1 + + +var/datum/jobs/jobs = new/datum/jobs() + +/datum/jobs + var/list/datum/job/all_jobs = list() + + proc/get_all_jobs() + return all_jobs + + //This proc returns all the jobs which are NOT admin only + proc/get_normal_jobs() +// var/list/datum/job/normal_jobs = list() +// for(var/datum/job/J in all_jobs) +// if(!J.admin_only) +// normal_jobs += J +// return normal_jobs + + //This proc returns all the jobs which are admin only + proc/get_admin_jobs() +// var/list/datum/job/admin_jobs = list() +// for(var/datum/job/J in all_jobs) +// if(J.admin_only) +// admin_jobs += J +// return admin_jobs + + //This proc returns the job datum of the job with the alias or job title given as the argument. Returns an empty string otherwise. + proc/get_job(var/alias) +// for(var/datum/job/J in all_jobs) +// if(J.is_job_alias(alias)) +// return J + return "" + + //This proc returns a string with the default job title for the job with the given alias. Returns an empty string otherwise. + proc/get_job_title(var/alias) +// for(var/datum/job/J in all_jobs) +// if(J.is_job_alias(alias)) +// return J.title + return "" +/* + //This proc returns all the job datums of the workers whose boss has the alias provided. (IE Engineer under Chief Engineer, etc.) + proc/get_jobs_under(var/boss_alias) + var/boss_title = get_job_title(boss_alias) + var/list/datum/job/employees = list() + for(var/datum/job/J in all_jobs) + if(boss_title in J.bosses) + employees += J + return employees*/ + + //This proc returns the chosen vital and high priority jobs that the person selected. It goes from top to bottom of the list, until it finds a job which does not have such priority. + //Example: Choosing (in this order): CE, Captain, Engineer, RD will only return CE and Captain, as RD is assumed as being an unwanted choice. + //This proc is used in the allocation algorithm when deciding vital and high priority jobs. +/* proc/get_prefered_high_priority_jobs() + var/list/datum/job/hp_jobs = list() + for(var/datum/job/J in all_jobs) + if(J.assignment_priority == HIGH_PRIORITY_JOB || J.assignment_priority == VITAL_PRIORITY_JOB) + hp_jobs += J + else + break + return hp_jobs + + //If only priority is given, it will return the jobs of only that priority, if end_priority is set it will return the jobs with their priority higher or equal to var/priority and lower or equal to end_priority. end_priority must be higher than 0. + proc/get_jobs_by_priority(var/priority, var/end_priority = 0) + var/list/datum/job/priority_jobs = list() + if(end_priority) + if(end_priority < priority) + return + for(var/datum/job/J in all_jobs) + if(J.assignment_priority >= priority && J.assignment_priority <= end_priority) + priority_jobs += J + else + for(var/datum/job/J in all_jobs) + if(J.assignment_priority == priority) + priority_jobs += J + return priority_jobs*/ \ No newline at end of file diff --git a/code/game/jobs/job/medical.dm b/code/game/jobs/job/medical.dm new file mode 100644 index 00000000000..24096fcdb1a --- /dev/null +++ b/code/game/jobs/job/medical.dm @@ -0,0 +1,94 @@ +/datum/job/cmo + title = "Chief Medical Officer" + flag = CMO + department_flag = MEDSCI + faction = "Station" + total_positions = 1 + spawn_positions = 1 + + + equip(var/mob/living/carbon/human/H) + if(!H) return 0 + H.equip_if_possible(new /obj/item/device/radio/headset/heads/cmo(H), H.slot_ears) + H.equip_if_possible(new /obj/item/weapon/storage/backpack/medic (H), H.slot_back) + H.equip_if_possible(new /obj/item/weapon/storage/box/survival(H.back), H.slot_in_backpack) + H.equip_if_possible(new /obj/item/clothing/under/rank/chief_medical_officer(H), H.slot_w_uniform) + H.equip_if_possible(new /obj/item/clothing/shoes/brown(H), H.slot_shoes) + H.equip_if_possible(new /obj/item/device/pda/heads/cmo(H), H.slot_belt) + H.equip_if_possible(new /obj/item/clothing/suit/labcoat/cmo(H), H.slot_wear_suit) + H.equip_if_possible(new /obj/item/weapon/storage/firstaid/regular(H), H.slot_l_hand) + H.equip_if_possible(new /obj/item/device/flashlight/pen(H), H.slot_s_store) + return 1 + + + +/datum/job/doctor + title = "Medical Doctor" + flag = DOCTOR + department_flag = MEDSCI + faction = "Station" + total_positions = 5 + spawn_positions = 3 + + + equip(var/mob/living/carbon/human/H) + if(!H) return 0 + H.equip_if_possible(new /obj/item/device/radio/headset/headset_med(H), H.slot_ears) + H.equip_if_possible(new /obj/item/weapon/storage/backpack/medic (H), H.slot_back) + H.equip_if_possible(new /obj/item/weapon/storage/box/survival(H.back), H.slot_in_backpack) + H.equip_if_possible(new /obj/item/clothing/under/rank/medical(H), H.slot_w_uniform) + H.equip_if_possible(new /obj/item/clothing/shoes/white(H), H.slot_shoes) + H.equip_if_possible(new /obj/item/device/pda/medical(H), H.slot_belt) + H.equip_if_possible(new /obj/item/clothing/suit/labcoat(H), H.slot_wear_suit) + H.equip_if_possible(new /obj/item/weapon/storage/firstaid/regular(H), H.slot_l_hand) + H.equip_if_possible(new /obj/item/device/flashlight/pen(H), H.slot_s_store) + return 1 + + + +/datum/job/geneticist + title = "Geneticist" + flag = GENETICIST + department_flag = MEDSCI + faction = "Station" + total_positions = 2 + spawn_positions = 2 + + + equip(var/mob/living/carbon/human/H) + if(!H) return 0 + H.equip_if_possible(new /obj/item/device/radio/headset/headset_medsci(H), H.slot_ears) + H.equip_if_possible(new /obj/item/weapon/storage/backpack/medic (H), H.slot_back) + H.equip_if_possible(new /obj/item/weapon/storage/box/survival(H.back), H.slot_in_backpack) + H.equip_if_possible(new /obj/item/clothing/under/rank/geneticist(H), H.slot_w_uniform) + H.equip_if_possible(new /obj/item/clothing/shoes/white(H), H.slot_shoes) + H.equip_if_possible(new /obj/item/device/pda/medical(H), H.slot_belt) + H.equip_if_possible(new /obj/item/clothing/suit/labcoat/genetics(H), H.slot_wear_suit) + H.equip_if_possible(new /obj/item/device/flashlight/pen(H), H.slot_s_store) + return 1 + + + +/datum/job/virologist + title = "Virologist" + flag = VIROLOGIST + department_flag = MEDSCI + faction = "Station" + total_positions = 1 + spawn_positions = 1 + + + equip(var/mob/living/carbon/human/H) + if(!H) return 0 + H.equip_if_possible(new /obj/item/device/radio/headset/headset_med(H), H.slot_ears) + H.equip_if_possible(new /obj/item/weapon/storage/backpack/medic (H), H.slot_back) + H.equip_if_possible(new /obj/item/weapon/storage/box/survival(H.back), H.slot_in_backpack) + H.equip_if_possible(new /obj/item/clothing/under/rank/medical(H), H.slot_w_uniform) + H.equip_if_possible(new /obj/item/device/pda/medical(H), H.slot_belt) + H.equip_if_possible(new /obj/item/clothing/mask/surgical(H), H.slot_wear_mask) + H.equip_if_possible(new /obj/item/clothing/shoes/white(H), H.slot_shoes) + H.equip_if_possible(new /obj/item/clothing/suit/labcoat/virologist(H), H.slot_wear_suit) + H.equip_if_possible(new /obj/item/device/flashlight/pen(H), H.slot_s_store) + return 1 + + diff --git a/code/game/jobs/job/science.dm b/code/game/jobs/job/science.dm new file mode 100644 index 00000000000..f9afec98a7c --- /dev/null +++ b/code/game/jobs/job/science.dm @@ -0,0 +1,61 @@ +/datum/job/rd + title = "Research Director" + flag = RD + department_flag = MEDSCI + faction = "Station" + total_positions = 1 + spawn_positions = 1 + + + equip(var/mob/living/carbon/human/H) + if(!H) return 0 + H.equip_if_possible(new /obj/item/device/radio/headset/heads/rd(H), H.slot_ears) + H.equip_if_possible(new /obj/item/clothing/shoes/brown(H), H.slot_shoes) + H.equip_if_possible(new /obj/item/clothing/under/rank/research_director(H), H.slot_w_uniform) + H.equip_if_possible(new /obj/item/device/pda/heads/rd(H), H.slot_belt) + H.equip_if_possible(new /obj/item/clothing/suit/labcoat(H), H.slot_wear_suit) + H.equip_if_possible(new /obj/item/weapon/pen(H), H.slot_l_hand) + H.equip_if_possible(new /obj/item/weapon/clipboard(H), H.slot_r_hand) + return 1 + + + +/datum/job/scientist + title = "Scientist" + flag = SCIENTIST + department_flag = MEDSCI + faction = "Station" + total_positions = 5 + spawn_positions = 3 + + + equip(var/mob/living/carbon/human/H) + if(!H) return 0 + H.equip_if_possible(new /obj/item/device/radio/headset/headset_sci(H), H.slot_ears) + H.equip_if_possible(new /obj/item/clothing/under/rank/scientist(H), H.slot_w_uniform) + H.equip_if_possible(new /obj/item/clothing/shoes/white(H), H.slot_shoes) + H.equip_if_possible(new /obj/item/device/pda/toxins(H), H.slot_belt) + H.equip_if_possible(new /obj/item/clothing/suit/labcoat/science(H), H.slot_wear_suit) + H.equip_if_possible(new /obj/item/clothing/mask/gas(H), H.slot_wear_mask) + H.equip_if_possible(new /obj/item/weapon/tank/oxygen(H), H.slot_l_hand) + return 1 + + + +/datum/job/chemist + title = "Chemist" + flag = CHEMIST + department_flag = MEDSCI + faction = "Station" + total_positions = 2 + spawn_positions = 2 + + + equip(var/mob/living/carbon/human/H) + if(!H) return 0 + H.equip_if_possible(new /obj/item/device/radio/headset/headset_medsci(H), H.slot_ears) + H.equip_if_possible(new /obj/item/clothing/under/rank/chemist(H), H.slot_w_uniform) + H.equip_if_possible(new /obj/item/clothing/shoes/white(H), H.slot_shoes) + H.equip_if_possible(new /obj/item/device/pda/toxins(H), H.slot_belt) + H.equip_if_possible(new /obj/item/clothing/suit/labcoat/chemist(H), H.slot_wear_suit) + return 1 diff --git a/code/game/jobs/job/security.dm b/code/game/jobs/job/security.dm new file mode 100644 index 00000000000..dfc90deeca9 --- /dev/null +++ b/code/game/jobs/job/security.dm @@ -0,0 +1,124 @@ +/datum/job/hos + title = "Head of Security" + flag = HOS + department_flag = ENGSEC + faction = "Station" + total_positions = 1 + spawn_positions = 1 + + + equip(var/mob/living/carbon/human/H) + if(!H) return 0 + H.equip_if_possible(new /obj/item/weapon/storage/backpack/security (H), H.slot_back) + H.equip_if_possible(new /obj/item/weapon/storage/box/survival(H.back), H.slot_in_backpack) + H.equip_if_possible(new /obj/item/device/radio/headset/heads/hos(H), H.slot_ears) + H.equip_if_possible(new /obj/item/clothing/under/rank/head_of_security(H), H.slot_w_uniform) + H.equip_if_possible(new /obj/item/clothing/shoes/jackboots(H), H.slot_shoes) + H.equip_if_possible(new /obj/item/device/pda/heads/hos(H), H.slot_belt) + H.equip_if_possible(new /obj/item/clothing/suit/armor/hos(H), H.slot_wear_suit) + H.equip_if_possible(new /obj/item/clothing/gloves/black(H), H.slot_gloves) + H.equip_if_possible(new /obj/item/clothing/head/helmet/HoS(H), H.slot_head) + H.equip_if_possible(new /obj/item/clothing/mask/gas/emergency(H), H.slot_wear_mask) + H.equip_if_possible(new /obj/item/clothing/glasses/sunglasses/sechud(H), H.slot_glasses) + H.equip_if_possible(new /obj/item/weapon/handcuffs(H), H.slot_in_backpack) + H.equip_if_possible(new /obj/item/weapon/gun/energy/gun(H), H.slot_s_store) + H.equip_if_possible(new /obj/item/device/flash(H), H.slot_l_store) + var/obj/item/weapon/implant/loyalty/L = new/obj/item/weapon/implant/loyalty(H) + L.imp_in = H + L.implanted = 1 + return 1 + + + +/datum/job/warden + title = "Warden" + flag = WARDEN + department_flag = ENGSEC + faction = "Station" + total_positions = 1 + spawn_positions = 1 + + + equip(var/mob/living/carbon/human/H) + if(!H) return 0 + H.equip_if_possible(new /obj/item/device/radio/headset/headset_sec(H), H.slot_ears) + H.equip_if_possible(new /obj/item/weapon/storage/backpack/security(H), H.slot_back) + H.equip_if_possible(new /obj/item/weapon/storage/box/survival(H.back), H.slot_in_backpack) + H.equip_if_possible(new /obj/item/clothing/under/rank/warden(H), H.slot_w_uniform) + H.equip_if_possible(new /obj/item/clothing/shoes/jackboots(H), H.slot_shoes) + H.equip_if_possible(new /obj/item/device/pda/security(H), H.slot_belt) + H.equip_if_possible(new /obj/item/clothing/suit/armor/vest(H), H.slot_wear_suit) + H.equip_if_possible(new /obj/item/clothing/head/helmet/warden(H), H.slot_head) + H.equip_if_possible(new /obj/item/clothing/gloves/black(H), H.slot_gloves) + H.equip_if_possible(new /obj/item/clothing/glasses/sunglasses/sechud(H), H.slot_glasses) + H.equip_if_possible(new /obj/item/clothing/mask/gas/emergency(H), H.slot_wear_mask) + H.equip_if_possible(new /obj/item/weapon/gun/energy/taser(H), H.slot_s_store) + H.equip_if_possible(new /obj/item/weapon/handcuffs(H), H.slot_in_backpack) + H.equip_if_possible(new /obj/item/device/flash(H), H.slot_l_store) + var/obj/item/weapon/implant/loyalty/L = new/obj/item/weapon/implant/loyalty(H) + L.imp_in = H + L.implanted = 1 + return 1 + + + +/datum/job/detective + title = "Detective" + flag = DETECTIVE + department_flag = ENGSEC + faction = "Station" + total_positions = 1 + spawn_positions = 1 + + + equip(var/mob/living/carbon/human/H) + if(!H) return 0 + H.equip_if_possible(new /obj/item/device/radio/headset/headset_sec(H), H.slot_ears) + H.equip_if_possible(new /obj/item/weapon/storage/backpack(H), H.slot_back) + H.equip_if_possible(new /obj/item/weapon/storage/box/survival(H.back), H.slot_in_backpack) + H.equip_if_possible(new /obj/item/clothing/under/det(H), H.slot_w_uniform) + H.equip_if_possible(new /obj/item/clothing/shoes/brown(H), H.slot_shoes) + H.equip_if_possible(new /obj/item/device/pda/detective(H), H.slot_belt) + H.equip_if_possible(new /obj/item/clothing/head/det_hat(H), H.slot_head) + var/obj/item/clothing/mask/cigarette/CIG = new /obj/item/clothing/mask/cigarette(H) + CIG.light("") + H.equip_if_possible(CIG, H.slot_wear_mask) + H.equip_if_possible(new /obj/item/clothing/gloves/black(H), H.slot_gloves) + H.equip_if_possible(new /obj/item/weapon/storage/fcard_kit(H.back), H.slot_in_backpack) + H.equip_if_possible(new /obj/item/weapon/fcardholder(H), H.slot_in_backpack) + H.equip_if_possible(new /obj/item/clothing/suit/det_suit(H), H.slot_wear_suit) + H.equip_if_possible(new /obj/item/device/detective_scanner(H), H.slot_in_backpack) + H.equip_if_possible(new /obj/item/weapon/zippo(H), H.slot_l_store) + H.equip_if_possible(new /obj/item/weapon/reagent_containers/food/snacks/candy_corn(H), H.slot_h_store) + var/obj/item/weapon/implant/loyalty/L = new/obj/item/weapon/implant/loyalty(H) + L.imp_in = H + L.implanted = 1 + return 1 + + + +/datum/job/officer + title = "Security Officer" + flag = OFFICER + department_flag = ENGSEC + faction = "Station" + total_positions = 5 + spawn_positions = 5 + + + equip(var/mob/living/carbon/human/H) + if(!H) return 0 + H.equip_if_possible(new /obj/item/device/radio/headset/headset_sec(H), H.slot_ears) + H.equip_if_possible(new /obj/item/weapon/storage/backpack/security(H), H.slot_back) + H.equip_if_possible(new /obj/item/weapon/storage/box/survival(H.back), H.slot_in_backpack) + H.equip_if_possible(new /obj/item/clothing/under/rank/security(H), H.slot_w_uniform) + H.equip_if_possible(new /obj/item/clothing/shoes/jackboots(H), H.slot_shoes) + H.equip_if_possible(new /obj/item/device/pda/security(H), H.slot_belt) + H.equip_if_possible(new /obj/item/clothing/suit/armor/vest(H), H.slot_wear_suit) + H.equip_if_possible(new /obj/item/clothing/head/helmet(H), H.slot_head) + H.equip_if_possible(new /obj/item/weapon/handcuffs(H), H.slot_in_backpack) + H.equip_if_possible(new /obj/item/weapon/handcuffs(H), H.slot_s_store) + var/obj/item/weapon/implant/loyalty/L = new/obj/item/weapon/implant/loyalty(H) + L.imp_in = H + L.implanted = 1 + return 1 diff --git a/code/game/jobs/job/silicon.dm b/code/game/jobs/job/silicon.dm new file mode 100644 index 00000000000..f18aa2323f9 --- /dev/null +++ b/code/game/jobs/job/silicon.dm @@ -0,0 +1,27 @@ +/datum/job/ai + title = "AI" + flag = AI + department_flag = ENGSEC + faction = "Station" + total_positions = 0 + spawn_positions = 1 + + + equip(var/mob/living/carbon/human/H) + if(!H) return 0 + return 1 + + + +/datum/job/cyborg + title = "Cyborg" + flag = CYBORG + department_flag = ENGSEC + faction = "Station" + total_positions = 0 + spawn_positions = 1 + + + equip(var/mob/living/carbon/human/H) + if(!H) return 0 + return 1 \ No newline at end of file diff --git a/code/game/jobs/job_controller.dm b/code/game/jobs/job_controller.dm new file mode 100644 index 00000000000..0f5bd67c08e --- /dev/null +++ b/code/game/jobs/job_controller.dm @@ -0,0 +1,222 @@ +var/global/datum/controller/occupations/job_master + +/datum/controller/occupations + var + //List of all jobs + list/occupations = list() + //Players who need jobs + list/unassigned = list() + + + proc/SetupOccupations(var/faction = "Station") + occupations = list() + var/list/all_jobs = typesof(/datum/job) + if(!all_jobs.len) + world << "\red \b Error setting up jobs, no job datums found" + return 0 + for(var/J in all_jobs) + var/datum/job/job = new J() + if(!job) continue + if(job.faction != faction) continue + occupations += job + return 1 + + + proc/GetJob(var/name) + if(!name) return null + for(var/datum/job/J in occupations) + if(!J) continue + if(J.title == name) return J + return null + + + proc/AssignRole(var/mob/new_player/player, var/job, var/latejoin = 0) + if((player) && (player.mind) && (job)) + var/datum/job/J = GetJob(job) + if(jobban_isbanned(player, job)) return 0 + if(J && ((J.title == "Assistant") || ( (J.current_positions < J.total_positions) || ((J.current_positions < J.spawn_positions) && !latejoin)) )) + player.mind.assigned_role = J.title + unassigned -= player + J.current_positions++ + return 1 + return 0 + + + proc/FindOccupationCandidates(datum/job/job, level, flag) + var/list/candidates = list() + for(var/mob/new_player/player in unassigned) + if(jobban_isbanned(player, job.title)) continue + if(flag && (!player.preferences.be_special & flag)) continue + switch(level) + if(1) + if(job.flag == player.preferences.GetJobDepartment(job, level)) candidates += player + if(2) + if(job.flag == player.preferences.GetJobDepartment(job, level)) candidates += player + if(3) + if(job.flag == player.preferences.GetJobDepartment(job, level)) candidates += player + return candidates + + + proc/ResetOccupations() + for(var/mob/new_player/player in world) + if((player) && (player.mind)) + player.mind.assigned_role = null + player.mind.special_role = null + SetupOccupations() + unassigned = list() + return + + + proc/FillHeadPosition() + for(var/level = 1 to 3) + for(var/command_position in command_positions) + var/datum/job/job = GetJob(command_position) + if(!job) continue + var/list/candidates = FindOccupationCandidates(job, level) + if(!candidates.len) continue + var/mob/new_player/candidate = pick(candidates) + if(AssignRole(candidate, command_position)) + return 1 + return 0 + + + proc/FillAIPosition() + var/ai_selected = 0 + var/datum/job/job = GetJob("AI") + if(!job) return 0 + if((job.title == "AI") && (config) && (!config.allow_ai)) return 0 + + for(var/level = 1 to 3) + var/list/candidates = list() + if(ticker.mode.name == "AI malfunction")//Make sure they want to malf if its malf + candidates = FindOccupationCandidates(job, level, BE_MALF) + else + candidates = FindOccupationCandidates(job, level) + if(candidates.len) + var/mob/new_player/candidate = pick(candidates) + if(AssignRole(candidate, "AI")) + ai_selected++ + break + //Malf NEEDS an AI so force one if we didn't get a player who wanted it + if((ticker.mode.name == "AI malfunction")&&(!ai_selected)) + unassigned = shuffle(unassigned) + for(var/mob/new_player/player in unassigned) + if(jobban_isbanned(player, "AI")) continue + if(AssignRole(player, "AI")) + ai_selected++ + break + if(ai_selected) return 1 + return 0 + + +/** Proc DivideOccupations + * fills var "assigned_role" for all ready players. + * This proc must not have any side effect besides of modifying "assigned_role". + **/ + proc/DivideOccupations() + //Setup new player list and get the jobs list + SetupOccupations() + + //Get the players who are ready + for(var/mob/new_player/player in world) + if((player) && (player.client) && (player.ready) && (player.mind) && (!player.mind.assigned_role)) + unassigned += player + + if(unassigned.len == 0) return 0 + //Shuffle players and jobs + unassigned = shuffle(unassigned) + // occupations = shuffle(occupations) check and see if we can do this one + + //Select one head + FillHeadPosition() + + //Check for an AI + FillAIPosition() + + //Assistants are checked first + var/datum/job/assist = new /datum/job/assistant() + var/list/assistant_candidates = FindOccupationCandidates(assist, 3) + for(var/mob/new_player/player in assistant_candidates) + AssignRole(player, "Assistant") + + //Other jobs are now checked + for(var/level = 1 to 3) + for(var/datum/job/job in occupations) + if(!job) continue + if(!unassigned.len) break + if(job.current_positions >= job.spawn_positions) continue + var/list/candidates = FindOccupationCandidates(unassigned, job, level) + while(candidates.len && (job.current_positions < job.spawn_positions)) + var/mob/new_player/candidate = pick(candidates) + AssignRole(candidate, job) + + for(var/mob/new_player/player in unassigned) + AssignRole(player, "Assistant") + return 1 + + + proc/EquipRank(var/mob/living/carbon/human/H, var/rank, var/joined_late) + if(!H) return 0 + var/datum/job/job = GetJob(rank) + if(job) + job.equip(H) + else + H << "Your job is [rank] and the game just can't handle it! Please report this bug to an administrator." + + spawnId(H,rank) + H << "You are the [rank]." + H.job = rank + if(H.mind) + H.mind.assigned_role = rank + + if(!joined_late && rank != "Tourist") + var/obj/S = null + for(var/obj/effect/landmark/start/sloc in world) + if(sloc.name != rank) continue + if(locate(/mob/living) in sloc.loc) continue + S = sloc + break + if(!S) + S = locate("start*[rank]") // use old stype + if(istype(S, /obj/effect/landmark/start) && istype(S.loc, /turf)) + H.loc = S.loc + + if(H.mind && H.mind.assigned_role == "Cyborg")//This could likely be done somewhere else + H.Robotize() + return 1 + + H.equip_if_possible(new /obj/item/device/radio/headset(H), H.slot_ears) + var/obj/item/weapon/storage/backpack/BPK = new/obj/item/weapon/storage/backpack(H) + new /obj/item/weapon/storage/box/survival(BPK) + H.equip_if_possible(BPK, H.slot_back,1) + return 1 + + + proc/spawnId(var/mob/living/carbon/human/H, rank) + if(!H) return 0 + var/obj/item/weapon/card/id/C = null + switch(rank) + if("Cyborg") + return + if("Captain") + C = new /obj/item/weapon/card/id/gold(H) + else + C = new /obj/item/weapon/card/id(H) + if(C) + C.registered = H.real_name + C.assignment = rank + C.name = "[C.registered]'s ID Card ([C.assignment])" + C.access = get_access(C.assignment) + H.equip_if_possible(C, H.slot_wear_id) + H.equip_if_possible(new /obj/item/weapon/pen(H), H.slot_r_store) + H.equip_if_possible(new /obj/item/device/pda(H), H.slot_belt) + if(istype(H.belt, /obj/item/device/pda))//I bet this could just use locate + var/obj/item/device/pda/pda = H.belt + pda.owner = H.real_name + pda.ownjob = H.wear_id.assignment + pda.name = "PDA-[H.real_name] ([pda.ownjob])" + + if(rank == "Clown") + spawn(1) + clname(H) + return 1 \ No newline at end of file diff --git a/code/game/jobs/jobprocs.dm b/code/game/jobs/jobprocs.dm index 6cd37230d4f..38ad667f7d7 100644 --- a/code/game/jobs/jobprocs.dm +++ b/code/game/jobs/jobprocs.dm @@ -1,4 +1,7 @@ +/* /proc/SetupJobs(jobsfile) //ran during round setup, reads info from jobs.txt -- Urist + return 1 + var/text = file2text(jobsfile) if(!text) @@ -36,698 +39,9 @@ world << "\red \b Jobs set up!" return - - -/proc/FindOccupationCandidates(list/unassigned, job, level) - var/list/candidates = list() - if((job == "AI") && (config) && (!config.allow_ai)) return candidates - for(var/mob/new_player/player in unassigned) - if(player.preferences.occupation[job] == level) - if(jobban_isbanned(player, job)) - continue - candidates += player - return candidates - - -/proc/ResetOccupations() - for(var/mob/new_player/player in world) - if((player) && (player.mind)) - player.mind.assigned_role = null - player.mind.special_role = null - return - - -/proc/Assign_Role(var/mob/new_player/player, var/job) - if((player) && (player.mind) && (job)) - player.mind.assigned_role = job - return 1 - return 0 - - -/proc/FillHeadPosition(list/unassigned, list/jobs) - for(var/level = 1 to 3) - for(var/command_position in command_positions) - var/list/candidates = FindOccupationCandidates(unassigned, command_position, level) - if(!candidates.len) continue - var/mob/new_player/candidate = pick(candidates) - if(Assign_Role(candidate, command_position)) - unassigned -= candidate - jobs[command_position]-- - return 1 - return 0 - - -/proc/FillAIPosition(list/unassigned, list/jobs) - var/ai_selected = 0 - for(var/level = 1 to 3) - var/list/candidates = FindOccupationCandidates(unassigned, "AI", level) - if(ticker.mode.name == "AI malfunction")//Make sure they want to malf if its malf - for(var/mob/new_player/player in candidates) - if(!player.preferences.be_special & BE_MALF) - candidates -= player - if(candidates.len) - var/mob/new_player/candidate = pick(candidates) - if(Assign_Role(candidate, "AI")) - unassigned -= candidate - jobs["AI"]-- - ai_selected++ - break - //Malf NEEDS an AI so force one if we didn't get a player who wanted it - if((ticker.mode.name == "AI malfunction")&&(!ai_selected)) - unassigned = shuffle(unassigned) - for(var/mob/new_player/player in unassigned) - if(jobban_isbanned(player, "AI")) - continue - if(Assign_Role(player, "AI")) - unassigned -= player - jobs["AI"]-- - ai_selected++ - break - if(ai_selected) return 1 - return 0 - - -/** Proc DivideOccupations - * fills var "assigned_role" for all ready players. - * This proc must not have any side effect besides of modifying "assigned_role". - **/ -/proc/DivideOccupations() - //Setup new player list and get the jobs list - var/list/unassigned = list() - var/list/occupations_available = occupations.Copy() - - //Get the players who are ready - for(var/mob/new_player/player in world) - if((player) && (player.client) && (player.ready) && (player.mind) && (!player.mind.assigned_role)) - unassigned += player - - if(unassigned.len == 0) return 0 - //Shuffle players and jobs - unassigned = shuffle(unassigned) -// occupations_available = shuffle(occupations_available) - - //Select one head - FillHeadPosition(unassigned, occupations_available) - - //Check for an AI - FillAIPosition(unassigned, occupations_available) - - //Assistants are checked first - for(var/mob/new_player/player in unassigned) - if(player.preferences.occupation["Assistant"] == 0) continue - unassigned -= player - Assign_Role(player, "Assistant") - - //Other jobs are now checked - for(var/level = 1 to 3) - for(var/occupation in occupations_available) - if(!unassigned.len) break - if(occupations_available[occupation] == 0) continue - var/list/candidates = FindOccupationCandidates(unassigned, occupation, level) - while(candidates.len && occupations_available[occupation]) - var/mob/new_player/candidate = pick(candidates) - if(Assign_Role(candidate, occupation)) - unassigned -= candidate - occupations_available[occupation]-- - - for(var/mob/new_player/player in unassigned) - Assign_Role(player, "Assistant") - return 1 - - -/mob/living/carbon/human/proc/Equip_Rank(rank, joined_late) - switch(rank) - if ("Chaplain") - var/obj/item/weapon/storage/bible/B = new /obj/item/weapon/storage/bible/booze(src) - src.equip_if_possible(B, slot_l_hand) - src.equip_if_possible(new /obj/item/device/pda/chaplain(src), slot_belt) - src.equip_if_possible(new /obj/item/clothing/under/rank/chaplain(src), slot_w_uniform) - src.equip_if_possible(new /obj/item/clothing/shoes/black(src), slot_shoes) - //if(prob(15)) - // src.see_invisible = 15 -- Doesn't work as see_invisible is reset every world cycle. -- Skie - //The two procs below allow the Chaplain to choose their religion. All it really does is change their bible. - spawn(0) - var/religion_name = "Christianity" - var/new_religion = input(src, "You are the Chaplain. Would you like to change your religion? Default is Christianity, in SPACE.", "Name change", religion_name) - - if ((length(new_religion) == 0) || (new_religion == "Christianity")) - new_religion = religion_name - - if (new_religion) - if (length(new_religion) >= 26) - new_religion = copytext(new_religion, 1, 26) - new_religion = dd_replacetext(new_religion, ">", "'") - switch(lowertext(new_religion)) - if("christianity") - B.name = pick("The Holy Bible","The Dead Sea Scrolls") - if("satanism") - B.name = "The Unholy Bible" - if("cthulu") - B.name = "The Necronomicon" - if("islam") - B.name = "Quran" - if("scientology") - B.name = pick("The Biography of L. Ron Hubbard","Dianetics") - if("chaos") - B.name = "The Book of Lorgar" - if("imperium") - B.name = "Uplifting Primer" - if("toolboxia") - B.name = "Toolbox Manifesto" - if("homosexuality") - B.name = "Guys Gone Wild" - if("lol", "wtf", "gay", "penis", "ass", "poo", "badmin", "shitmin", "deadmin", "cock", "cocks") - B.name = pick("Woodys Got Wood: The Aftermath", "War of the Cocks", "Sweet Bro and Hella Jef: Expanded Edition") - brainloss = 100 // starts off retarded as fuck - if("science") - B.name = pick("Principle of Relativity", "Quantum Enigma: Physics Encounters Consciousness", "Programming the Universe", "Quantum Physics and Theology", "String Theory for Dummies", "How To: Build Your Own Warp Drive", "The Mysteries of Bluespace", "Playing God: Collector's Edition") - else - B.name = "The Holy Book of [new_religion]" - - spawn(1) - var/deity_name = "Space Jesus" - var/new_deity = input(src, "Would you like to change your deity? Default is Space Jesus.", "Name change", deity_name) - - if ( (length(new_deity) == 0) || (new_deity == "Space Jesus") ) - new_deity = deity_name - - if(new_deity) - if (length(new_deity) >= 26) - new_deity = copytext(new_deity, 1, 26) - new_deity = dd_replacetext(new_deity, ">", "'") - B.deity_name = new_deity - - var/accepted = 0 - var/outoftime = 0 - spawn(200) // 20 seconds to choose - outoftime = 1 - while(!accepted) - if(!B) break // prevents possible runtime errors - - switch(input(src,"Which bible style would you like?") in list("Bible", "Koran", "Scrapbook", "Daederic Scroll", "Creeper", "White Bible", "Holy Light", "Athiest", "Tome", "The King in Yellow", "Ithaqua", "Scientology", "the bible melts", "Necronomicon")) - if("Koran") - B.icon_state = "koran" - B.item_state = "koran" - for(var/area/chapel/main/A in world) - for(var/turf/T in A.contents) - if(T.icon_state == "carpetsymbol") - T.dir = 4 - if("Scrapbook") - B.icon_state = "scrapbook" - B.item_state = "scrapbook" - if("Daederic Scroll") - B.icon_state = "daederic_scroll" - B.item_state = "daederic" - if("Creeper") - B.icon_state = "creeper" - B.item_state = "syringe_kit" - if("White Bible") - B.icon_state = "white" - B.item_state = "syringe_kit" - if("Holy Light") - B.icon_state = "holylight" - B.item_state = "syringe_kit" - if("Athiest") - B.icon_state = "athiest" - B.item_state = "syringe_kit" - for(var/area/chapel/main/A in world) - for(var/turf/T in A.contents) - if(T.icon_state == "carpetsymbol") - T.dir = 10 - if("Tome") - B.icon_state = "tome" - B.item_state = "syringe_kit" - if("The King in Yellow") - B.icon_state = "kingyellow" - B.item_state = "kingyellow" - if("Ithaqua") - B.icon_state = "ithaqua" - B.item_state = "ithaqua" - if("Scientology") - B.icon_state = "scientology" - B.item_state = "scientology" - for(var/area/chapel/main/A in world) - for(var/turf/T in A.contents) - if(T.icon_state == "carpetsymbol") - T.dir = 8 - if("the bible melts") - B.icon_state = "melted" - B.item_state = "melted" - if("Necronomicon") - B.icon_state = "necronomicon" - B.item_state = "necronomicon" - else - // if christian bible, revert to default - B.icon_state = "bible" - B.item_state = "bible" - for(var/area/chapel/main/A in world) - for(var/turf/T in A.contents) - if(T.icon_state == "carpetsymbol") - T.dir = 2 - - src:update_clothing() // so that it updates the bible's item_state in his hand - - switch(input(src,"Look at your bible - is this what you want?") in list("Yes","No")) - if("Yes") - accepted = 1 - if("No") - if(outoftime) - src << "Welp, out of time, buddy. You're stuck. Next time choose faster." - accepted = 1 - - if(ticker) - ticker.Bible_icon_state = B.icon_state - ticker.Bible_item_state = B.item_state - ticker.Bible_name = B.name - - - if ("Geneticist") - src.equip_if_possible(new /obj/item/device/radio/headset/headset_medsci (src), slot_ears) // -- TLE - src.equip_if_possible(new /obj/item/clothing/under/rank/geneticist(src), slot_w_uniform) - src.equip_if_possible(new /obj/item/device/pda/medical(src), slot_belt) - src.equip_if_possible(new /obj/item/weapon/storage/backpack/medic (src), slot_back) - src.equip_if_possible(new /obj/item/weapon/storage/box/survival(src.back), slot_in_backpack) - src.equip_if_possible(new /obj/item/clothing/shoes/white(src), slot_shoes) - src.equip_if_possible(new /obj/item/clothing/suit/labcoat/genetics(src), slot_wear_suit) - src.equip_if_possible(new /obj/item/device/flashlight/pen(src), slot_s_store) - - if ("Chemist") - src.equip_if_possible(new /obj/item/device/radio/headset/headset_medsci (src), slot_ears) // -- TLE - src.equip_if_possible(new /obj/item/clothing/under/rank/chemist(src), slot_w_uniform) - src.equip_if_possible(new /obj/item/device/pda/toxins(src), slot_belt) - src.equip_if_possible(new /obj/item/clothing/shoes/white(src), slot_shoes) - src.equip_if_possible(new /obj/item/clothing/suit/labcoat/chemist(src), slot_wear_suit) - - if ("Janitor") - src.equip_if_possible(new /obj/item/clothing/under/rank/janitor(src), slot_w_uniform) - src.equip_if_possible(new /obj/item/device/pda/janitor(src), slot_belt) - src.equip_if_possible(new /obj/item/clothing/shoes/black(src), slot_shoes) - - if ("Clown") - src.equip_if_possible(new /obj/item/weapon/storage/backpack/clown (src), slot_back) - src.equip_if_possible(new /obj/item/weapon/storage/box/survival(src.back), slot_in_backpack) - src.equip_if_possible(new /obj/item/clothing/under/rank/clown(src), slot_w_uniform) - src.equip_if_possible(new /obj/item/device/pda/clown(src), slot_belt) - src.equip_if_possible(new /obj/item/clothing/shoes/clown_shoes(src), slot_shoes) - src.equip_if_possible(new /obj/item/clothing/mask/gas/clown_hat(src), slot_wear_mask) - src.equip_if_possible(new /obj/item/weapon/reagent_containers/food/snacks/grown/banana(src), slot_in_backpack) - src.equip_if_possible(new /obj/item/weapon/bikehorn(src), slot_in_backpack) - src.equip_if_possible(new /obj/item/weapon/stamp/clown(src), slot_in_backpack) - src.equip_if_possible(new /obj/item/toy/crayon/rainbow(src), slot_in_backpack) - src.equip_if_possible(new /obj/item/toy/crayonbox(src), slot_in_backpack) - src.mutations |= CLOWN - - if ("Mime") - src.equip_if_possible(new /obj/item/weapon/storage/backpack(src), slot_back) - src.equip_if_possible(new /obj/item/weapon/storage/box/survival(src.back), slot_in_backpack) - src.equip_if_possible(new /obj/item/clothing/under/mime(src), slot_w_uniform) - src.equip_if_possible(new /obj/item/device/pda/mime(src), slot_belt) - src.equip_if_possible(new /obj/item/clothing/shoes/black(src), slot_shoes) - src.equip_if_possible(new /obj/item/clothing/gloves/white(src), slot_gloves) - src.equip_if_possible(new /obj/item/clothing/mask/gas/mime(src), slot_wear_mask) - src.equip_if_possible(new /obj/item/clothing/head/beret(src), slot_head) - src.equip_if_possible(new /obj/item/clothing/suit/suspenders(src), slot_wear_suit) - src.equip_if_possible(new /obj/item/toy/crayon/mime(src), slot_in_backpack) - src.equip_if_possible(new /obj/item/weapon/reagent_containers/food/drinks/bottle/bottleofnothing(src), slot_in_backpack) - src.verbs += /client/proc/mimespeak - src.verbs += /client/proc/mimewall - src.mind.special_verbs += /client/proc/mimespeak - src.mind.special_verbs += /client/proc/mimewall - src.miming = 1 - - if ("Station Engineer") - src.equip_if_possible(new /obj/item/weapon/storage/backpack/industrial (src), slot_back) - src.equip_if_possible(new /obj/item/weapon/storage/box/engineer(src.back), slot_in_backpack) - src.equip_if_possible(new /obj/item/device/radio/headset/headset_eng (src), slot_ears) // -- TLE - src.equip_if_possible(new /obj/item/clothing/under/rank/engineer(src), slot_w_uniform) - src.equip_if_possible(new /obj/item/device/pda/engineering(src), slot_belt) - src.equip_if_possible(new /obj/item/clothing/shoes/orange(src), slot_shoes) - src.equip_if_possible(new /obj/item/clothing/head/helmet/hardhat(src), slot_head) - src.equip_if_possible(new /obj/item/weapon/storage/belt/utility/full(src), slot_l_hand) - src.equip_if_possible(new /obj/item/device/t_scanner(src), slot_r_store) - - if ("Shaft Miner") - src.equip_if_possible(new /obj/item/weapon/storage/backpack/industrial (src), slot_back) - src.equip_if_possible(new /obj/item/weapon/storage/box/engineer(src.back), slot_in_backpack) - src.equip_if_possible(new /obj/item/device/radio/headset/headset_mine (src), slot_ears) - src.equip_if_possible(new /obj/item/clothing/under/rank/miner(src), slot_w_uniform) - src.equip_if_possible(new /obj/item/clothing/shoes/black(src), slot_shoes) - src.equip_if_possible(new /obj/item/clothing/gloves/black(src), slot_gloves) - src.equip_if_possible(new /obj/item/weapon/crowbar(src), slot_in_backpack) - src.equip_if_possible(new /obj/item/weapon/satchel(src), slot_in_backpack) - - if ("Assistant") - src.equip_if_possible(new /obj/item/clothing/under/color/grey(src), slot_w_uniform) - src.equip_if_possible(new /obj/item/clothing/shoes/black(src), slot_shoes) - - if ("Detective") - src.equip_if_possible(new /obj/item/device/radio/headset/headset_sec (src), slot_ears) // -- TLE - src.equip_if_possible(new /obj/item/weapon/storage/backpack(src), slot_back) - src.equip_if_possible(new /obj/item/weapon/storage/box/survival(src.back), slot_in_backpack) - src.equip_if_possible(new /obj/item/clothing/under/det(src), slot_w_uniform) - src.equip_if_possible(new /obj/item/device/pda/detective(src), slot_belt) - src.equip_if_possible(new /obj/item/clothing/shoes/brown(src), slot_shoes) - src.equip_if_possible(new /obj/item/clothing/head/det_hat(src), slot_head) - var/obj/item/clothing/mask/cigarette/CIG = new /obj/item/clothing/mask/cigarette(src) - CIG.light("") - src.equip_if_possible(CIG, slot_wear_mask) // sorry, no more cigar - src.equip_if_possible(new /obj/item/clothing/gloves/black(src), slot_gloves) - src.equip_if_possible(new /obj/item/weapon/storage/fcard_kit(src.back), slot_in_backpack) - src.equip_if_possible(new /obj/item/weapon/fcardholder(src), slot_in_backpack) - src.equip_if_possible(new /obj/item/clothing/suit/det_suit(src), slot_wear_suit) - src.equip_if_possible(new /obj/item/device/detective_scanner(src), slot_in_backpack) - src.equip_if_possible(new /obj/item/weapon/zippo(src), slot_l_store) - src.equip_if_possible(new /obj/item/weapon/reagent_containers/food/snacks/candy_corn(src), slot_h_store) - var/obj/item/weapon/implant/loyalty/L = new/obj/item/weapon/implant/loyalty(src) - L.imp_in = src - L.implanted = 1 - - if ("Medical Doctor") - src.equip_if_possible(new /obj/item/device/radio/headset/headset_med (src), slot_ears) // -- TLE - src.equip_if_possible(new /obj/item/weapon/storage/backpack/medic (src), slot_back) - src.equip_if_possible(new /obj/item/weapon/storage/box/survival(src.back), slot_in_backpack) - src.equip_if_possible(new /obj/item/clothing/under/rank/medical(src), slot_w_uniform) - src.equip_if_possible(new /obj/item/clothing/shoes/white(src), slot_shoes) - src.equip_if_possible(new /obj/item/clothing/suit/labcoat(src), slot_wear_suit) - src.equip_if_possible(new /obj/item/device/pda/medical(src), slot_belt) - src.equip_if_possible(new /obj/item/weapon/storage/firstaid/regular(src), slot_l_hand) - src.equip_if_possible(new /obj/item/device/flashlight/pen(src), slot_s_store) - - if ("Captain") - src.equip_if_possible(new /obj/item/device/radio/headset/heads/captain (src), slot_ears) - src.equip_if_possible(new /obj/item/weapon/storage/backpack(src), slot_back) - src.equip_if_possible(new /obj/item/weapon/storage/box/survival(src.back), slot_in_backpack) - src.equip_if_possible(new /obj/item/clothing/under/rank/captain(src), slot_w_uniform) - src.equip_if_possible(new /obj/item/device/pda/captain(src), slot_belt) - src.equip_if_possible(new /obj/item/clothing/suit/armor/captain(src), slot_wear_suit) - src.equip_if_possible(new /obj/item/clothing/shoes/brown(src), slot_shoes) - src.equip_if_possible(new /obj/item/clothing/head/caphat(src), slot_head) - src.equip_if_possible(new /obj/item/clothing/glasses/sunglasses(src), slot_glasses) - src.equip_if_possible(new /obj/item/weapon/storage/id_kit(src), slot_in_backpack) - var/obj/item/weapon/implant/loyalty/L = new/obj/item/weapon/implant/loyalty(src) - L.imp_in = src - L.implanted = 1 - - if ("Security Officer") - src.equip_if_possible(new /obj/item/device/radio/headset/headset_sec (src), slot_ears) // -- TLE - src.equip_if_possible(new /obj/item/weapon/storage/backpack/security (src), slot_back) - src.equip_if_possible(new /obj/item/weapon/storage/box/survival(src.back), slot_in_backpack) - src.equip_if_possible(new /obj/item/clothing/under/rank/security(src), slot_w_uniform) - src.equip_if_possible(new /obj/item/device/pda/security(src), slot_belt) - src.equip_if_possible(new /obj/item/clothing/suit/armor/vest(src), slot_wear_suit) - src.equip_if_possible(new /obj/item/clothing/head/helmet(src), slot_head) - src.equip_if_possible(new /obj/item/clothing/shoes/jackboots(src), slot_shoes) - src.equip_if_possible(new /obj/item/weapon/handcuffs(src), slot_in_backpack) - src.equip_if_possible(new /obj/item/weapon/handcuffs(src), slot_s_store) - var/obj/item/weapon/implant/loyalty/L = new/obj/item/weapon/implant/loyalty(src) - L.imp_in = src - L.implanted = 1 - - if ("Warden") - src.equip_if_possible(new /obj/item/device/radio/headset/headset_sec (src), slot_ears) // -- TLE - src.equip_if_possible(new /obj/item/weapon/storage/backpack/security (src), slot_back) - src.equip_if_possible(new /obj/item/weapon/storage/box/survival(src.back), slot_in_backpack) - src.equip_if_possible(new /obj/item/clothing/under/rank/warden(src), slot_w_uniform) - src.equip_if_possible(new /obj/item/device/pda/security(src), slot_belt) - src.equip_if_possible(new /obj/item/clothing/suit/armor/vest(src), slot_wear_suit) - src.equip_if_possible(new /obj/item/clothing/head/helmet/warden(src), slot_head) - src.equip_if_possible(new /obj/item/clothing/shoes/jackboots(src), slot_shoes) - src.equip_if_possible(new /obj/item/clothing/gloves/black(src), slot_gloves) - src.equip_if_possible(new /obj/item/clothing/glasses/sunglasses/sechud(src), slot_glasses) - src.equip_if_possible(new /obj/item/clothing/mask/gas/emergency(src), slot_wear_mask) - src.equip_if_possible(new /obj/item/weapon/gun/energy/taser(src), slot_s_store) - src.equip_if_possible(new /obj/item/weapon/handcuffs(src), slot_in_backpack) - src.equip_if_possible(new /obj/item/device/flash(src), slot_l_store) - var/obj/item/weapon/implant/loyalty/L = new/obj/item/weapon/implant/loyalty(src) - L.imp_in = src - L.implanted = 1 - - if ("Scientist") - src.equip_if_possible(new /obj/item/device/radio/headset/headset_sci (src), slot_ears) - src.equip_if_possible(new /obj/item/clothing/under/rank/scientist(src), slot_w_uniform) - src.equip_if_possible(new /obj/item/device/pda/toxins(src), slot_belt) - src.equip_if_possible(new /obj/item/clothing/suit/labcoat/science(src), slot_wear_suit) - src.equip_if_possible(new /obj/item/clothing/shoes/white(src), slot_shoes) - src.equip_if_possible(new /obj/item/clothing/mask/gas(src), slot_wear_mask) - src.equip_if_possible(new /obj/item/weapon/tank/oxygen(src), slot_l_hand) - - if ("Head of Security") //ready to come in game and kick ass - Microwave - src.equip_if_possible(new /obj/item/device/radio/headset/heads/hos (src), slot_ears) - src.equip_if_possible(new /obj/item/clothing/under/rank/head_of_security(src), slot_w_uniform) - src.equip_if_possible(new /obj/item/device/pda/heads/hos(src), slot_belt) - src.equip_if_possible(new /obj/item/clothing/suit/armor/hos(src), slot_wear_suit) - src.equip_if_possible(new /obj/item/clothing/shoes/jackboots(src), slot_shoes) - src.equip_if_possible(new /obj/item/clothing/gloves/black(src), slot_gloves) - src.equip_if_possible(new /obj/item/clothing/head/helmet/HoS(src), slot_head) - src.equip_if_possible(new /obj/item/clothing/mask/gas/emergency(src), slot_wear_mask) - src.equip_if_possible(new /obj/item/weapon/storage/backpack/security (src), slot_back) - src.equip_if_possible(new /obj/item/weapon/storage/box/survival(src.back), slot_in_backpack) - src.equip_if_possible(new /obj/item/clothing/glasses/sunglasses/sechud(src), slot_glasses) - src.equip_if_possible(new /obj/item/weapon/handcuffs(src), slot_in_backpack) - src.equip_if_possible(new /obj/item/weapon/gun/energy(src), slot_s_store) - src.equip_if_possible(new /obj/item/device/flash(src), slot_l_store) - var/obj/item/weapon/implant/loyalty/L = new/obj/item/weapon/implant/loyalty(src) - L.imp_in = src - L.implanted = 1 - - if ("Head of Personnel") - src.equip_if_possible(new /obj/item/device/radio/headset/heads/hop (src), slot_ears) // -- TLE - src.equip_if_possible(new /obj/item/weapon/storage/backpack(src), slot_back) - src.equip_if_possible(new /obj/item/weapon/storage/box/survival(src.back), slot_in_backpack) - src.equip_if_possible(new /obj/item/clothing/under/rank/head_of_personnel(src), slot_w_uniform) - src.equip_if_possible(new /obj/item/device/pda/heads/hop(src), slot_belt) - src.equip_if_possible(new /obj/item/clothing/suit/armor/vest(src), slot_wear_suit) - src.equip_if_possible(new /obj/item/clothing/shoes/brown(src), slot_shoes) - src.equip_if_possible(new /obj/item/clothing/head/helmet(src), slot_head) - src.equip_if_possible(new /obj/item/weapon/storage/id_kit(src), slot_in_backpack) - - if ("Atmospheric Technician") - src.equip_if_possible(new /obj/item/device/radio/headset/headset_eng (src), slot_ears) // -- TLE - src.equip_if_possible(new /obj/item/clothing/under/rank/atmospheric_technician(src), slot_w_uniform) - src.equip_if_possible(new /obj/item/clothing/shoes/black(src), slot_shoes) - src.equip_if_possible(new /obj/item/weapon/storage/toolbox/mechanical(src), slot_l_hand) - - if ("Bartender") - src.equip_if_possible(new /obj/item/clothing/under/rank/bartender(src), slot_w_uniform) - src.equip_if_possible(new /obj/item/clothing/shoes/black(src), slot_shoes) - src.equip_if_possible(new /obj/item/clothing/suit/armor/vest(src), slot_wear_suit) - src.equip_if_possible(new /obj/item/weapon/storage/backpack(src), slot_back) - src.equip_if_possible(new /obj/item/weapon/storage/box/survival(src.back), slot_in_backpack) - src.equip_if_possible(new /obj/item/ammo_casing/shotgun/beanbag(src), slot_in_backpack) - src.equip_if_possible(new /obj/item/ammo_casing/shotgun/beanbag(src), slot_in_backpack) - src.equip_if_possible(new /obj/item/ammo_casing/shotgun/beanbag(src), slot_in_backpack) - src.equip_if_possible(new /obj/item/ammo_casing/shotgun/beanbag(src), slot_in_backpack) - - if ("Chef") - src.equip_if_possible(new /obj/item/clothing/under/rank/chef(src), slot_w_uniform) - src.equip_if_possible(new /obj/item/clothing/suit/chef(src), slot_wear_suit) - src.equip_if_possible(new /obj/item/clothing/shoes/black(src), slot_shoes) - src.equip_if_possible(new /obj/item/clothing/head/chefhat(src), slot_head) - - if ("Roboticist") - src.equip_if_possible(new /obj/item/device/radio/headset/headset_rob (src), slot_ears) // -- DH - src.equip_if_possible(new /obj/item/clothing/under/rank/roboticist(src), slot_w_uniform) - src.equip_if_possible(new /obj/item/device/pda/engineering(src), slot_belt) - src.equip_if_possible(new /obj/item/clothing/shoes/black(src), slot_shoes) - src.equip_if_possible(new /obj/item/weapon/storage/backpack(src), slot_back) - src.equip_if_possible(new /obj/item/weapon/storage/box/survival(src.back), slot_in_backpack) - src.equip_if_possible(new /obj/item/clothing/suit/labcoat(src), slot_wear_suit) - src.equip_if_possible(new /obj/item/clothing/gloves/black(src), slot_gloves) - src.equip_if_possible(new /obj/item/weapon/storage/toolbox/mechanical(src), slot_l_hand) - - if ("Botanist") //slot_s_store will free the hands of the working class - src.equip_if_possible(new /obj/item/clothing/under/rank/hydroponics(src), slot_w_uniform) - src.equip_if_possible(new /obj/item/clothing/shoes/black(src), slot_shoes) - src.equip_if_possible(new /obj/item/clothing/gloves/botanic_leather(src), slot_gloves) - src.equip_if_possible(new /obj/item/clothing/suit/apron(src), slot_wear_suit) - src.equip_if_possible(new /obj/item/device/analyzer/plant_analyzer(src), slot_s_store) - - if ("Librarian") - src.equip_if_possible(new /obj/item/clothing/under/suit_jacket/red(src), slot_w_uniform) - src.equip_if_possible(new /obj/item/clothing/shoes/black(src), slot_shoes) - src.equip_if_possible(new /obj/item/weapon/barcodescanner(src), slot_l_hand) - - if ("Lawyer") - if(!lawyer) - lawyer = 1 - src.equip_if_possible(new /obj/item/clothing/under/lawyer/bluesuit(src), slot_w_uniform) - src.equip_if_possible(new /obj/item/clothing/suit/lawyer/bluejacket(src), slot_wear_suit) - src.equip_if_possible(new /obj/item/device/pda/lawyer(src), slot_belt) - else - src.equip_if_possible(new /obj/item/clothing/under/lawyer/purpsuit(src), slot_w_uniform) - src.equip_if_possible(new /obj/item/clothing/suit/lawyer/purpjacket(src), slot_wear_suit) - src.equip_if_possible(new /obj/item/device/pda/lawyer(src), slot_belt) - src.equip_if_possible(new /obj/item/clothing/shoes/brown(src), slot_shoes) - src.equip_if_possible(new /obj/item/weapon/storage/backpack(src), slot_back) - src.equip_if_possible(new /obj/item/weapon/storage/box/survival(src.back), slot_in_backpack) - src.equip_if_possible(new /obj/item/device/detective_scanner(src), slot_in_backpack)//Why do they even get this? - src.equip_if_possible(new /obj/item/weapon/storage/briefcase(src), slot_l_hand) - - if ("Quartermaster") - src.equip_if_possible(new /obj/item/device/radio/headset/heads/qm (src), slot_ears) - src.equip_if_possible(new /obj/item/clothing/gloves/black(src), slot_gloves) - src.equip_if_possible(new /obj/item/clothing/shoes/black(src), slot_shoes) - src.equip_if_possible(new /obj/item/clothing/under/rank/cargo(src), slot_w_uniform) - src.equip_if_possible(new /obj/item/device/pda/quartermaster(src), slot_belt) - src.equip_if_possible(new /obj/item/clothing/glasses/sunglasses(src), slot_glasses) - src.equip_if_possible(new /obj/item/weapon/clipboard(src), slot_l_hand) - - if ("Cargo Technician") - src.equip_if_possible(new /obj/item/device/radio/headset/headset_cargo(src), slot_ears) - src.equip_if_possible(new /obj/item/clothing/gloves/black(src), slot_gloves) - src.equip_if_possible(new /obj/item/clothing/shoes/black(src), slot_shoes) - src.equip_if_possible(new /obj/item/clothing/under/rank/cargo(src), slot_w_uniform) - src.equip_if_possible(new /obj/item/device/pda/quartermaster(src), slot_belt) - - if ("Chief Engineer") - src.equip_if_possible(new /obj/item/weapon/storage/backpack/industrial (src), slot_back) - src.equip_if_possible(new /obj/item/weapon/storage/box/engineer(src.back), slot_in_backpack) - src.equip_if_possible(new /obj/item/device/radio/headset/heads/ce (src), slot_ears) - src.equip_if_possible(new /obj/item/clothing/gloves/black(src), slot_gloves) - src.equip_if_possible(new /obj/item/clothing/shoes/brown(src), slot_shoes) - src.equip_if_possible(new /obj/item/clothing/head/helmet/hardhat/white(src), slot_head) - src.equip_if_possible(new /obj/item/weapon/storage/belt/utility/full(src), slot_l_hand) - var/obj/item/clothing/mask/cigarette/CIG = new /obj/item/clothing/mask/cigarette(src) - CIG.light("") - src.equip_if_possible(CIG, slot_wear_mask) - src.equip_if_possible(new /obj/item/clothing/under/rank/chief_engineer(src), slot_w_uniform) - src.equip_if_possible(new /obj/item/device/pda/heads/ce(src), slot_belt) - - if ("Research Director") - src.equip_if_possible(new /obj/item/device/radio/headset/heads/rd (src), slot_ears) - src.equip_if_possible(new /obj/item/clothing/shoes/brown(src), slot_shoes) - src.equip_if_possible(new /obj/item/clothing/under/rank/research_director(src), slot_w_uniform) - src.equip_if_possible(new /obj/item/device/pda/heads/rd(src), slot_belt) - src.equip_if_possible(new /obj/item/clothing/suit/labcoat(src), slot_wear_suit) - //src.equip_if_possible(new /obj/item/weapon/pen(src), slot_l_hand) - src.equip_if_possible(new /obj/item/weapon/clipboard(src), slot_r_hand) - src.equip_if_possible(new /obj/item/device/flashlight/pen(src), slot_s_store) - - if ("Chief Medical Officer") - src.equip_if_possible(new /obj/item/device/radio/headset/heads/cmo (src), slot_ears) - src.equip_if_possible(new /obj/item/weapon/storage/backpack/medic (src), slot_back) - src.equip_if_possible(new /obj/item/weapon/storage/box/survival(src.back), slot_in_backpack) - src.equip_if_possible(new /obj/item/clothing/shoes/brown(src), slot_shoes) - src.equip_if_possible(new /obj/item/clothing/under/rank/chief_medical_officer(src), slot_w_uniform) - src.equip_if_possible(new /obj/item/device/pda/heads/cmo(src), slot_belt) - src.equip_if_possible(new /obj/item/clothing/suit/labcoat/cmo(src), slot_wear_suit) - src.equip_if_possible(new /obj/item/weapon/storage/firstaid/regular(src), slot_l_hand) - src.equip_if_possible(new /obj/item/device/flashlight/pen(src), slot_s_store) - - if ("Virologist") - src.equip_if_possible(new /obj/item/device/radio/headset/headset_medsci (src), slot_ears) // -- TLE - src.equip_if_possible(new /obj/item/weapon/storage/backpack/medic (src), slot_back) - src.equip_if_possible(new /obj/item/weapon/storage/box/survival(src.back), slot_in_backpack) - src.equip_if_possible(new /obj/item/clothing/under/rank/medical(src), slot_w_uniform) - src.equip_if_possible(new /obj/item/device/pda/medical(src), slot_belt) - src.equip_if_possible(new /obj/item/clothing/mask/surgical(src), slot_wear_mask) - src.equip_if_possible(new /obj/item/clothing/shoes/white(src), slot_shoes) - src.equip_if_possible(new /obj/item/clothing/suit/labcoat/virologist(src), slot_wear_suit) - src.equip_if_possible(new /obj/item/device/flashlight/pen(src), slot_s_store) - - if ("Cyborg") -// Robotize() - - else - src << "RUH ROH! Your job is [rank] and the game just can't handle it! Please report this bug to an administrator." - - spawnId(rank) - if(rank == "Captain") - world << "[src] is the captain!" - src << "You are the [rank]." - src.job = rank - if(src.mind) - src.mind.assigned_role = rank - - if (!joined_late && rank != "Tourist") - var/obj/S = null - for(var/obj/effect/landmark/start/sloc in world) - if (sloc.name != rank) - continue - if (locate(/mob) in sloc.loc) - continue - S = sloc - break - if (!S) - S = locate("start*[rank]") // use old stype - if (istype(S, /obj/effect/landmark/start) && istype(S.loc, /turf)) - src.loc = S.loc -// if(S.name == "Cyborg") -// src.Robotize() - /*else - var/list/L = list() - for(var/area/arrival/start/S in world) - L += S - if(L.len < 1) // Added this check to stop the empty list bug -- TLE - return // ** - var/A = pick(L) - var/list/NL = list() - for(var/turf/T in A) - if(!T.density) - var/clear = 1 - for(var/obj/O in T) - if(O.density) - clear = 0 - break - if(clear) - NL += T - src.loc = pick(NL) - */ - if(src.mind) - if(src.mind.assigned_role == "Cyborg") - src << "YOU ARE GETTING BORGED NOW" - src.Robotize() - return - src.equip_if_possible(new /obj/item/device/radio/headset(src), slot_ears) - var/obj/item/weapon/storage/backpack/BPK = new/obj/item/weapon/storage/backpack(src) - new /obj/item/weapon/storage/box/survival(BPK) - src.equip_if_possible(BPK, slot_back,1) - /* - spawn(10) - var/obj/item/weapon/camera_test/CT = new/obj/item/weapon/camera_test(src.loc) - CT.afterattack(src, src, 10) - var/obj/item/weapon/photo/PH - PH = locate(/obj/item/weapon/photo,src.loc) - if(PH) - PH.layer = 3 - src.equip_if_possible(PH, slot_in_backpack) - del(CT)*/ //--For another day - errorage - return - - -/mob/living/carbon/human/proc/spawnId(rank) - var/obj/item/weapon/card/id/C = null - switch(rank) - if("Cyborg") - return - if("Captain") - C = new /obj/item/weapon/card/id/gold(src) - else - C = new /obj/item/weapon/card/id(src) - if(C) - C.registered = src.real_name - C.assignment = rank - C.name = "[C.registered]'s ID Card ([C.assignment])" - C.access = get_access(C.assignment) - src.equip_if_possible(C, slot_wear_id) - src.equip_if_possible(new /obj/item/weapon/pen(src), slot_r_store) - //src.equip_if_possible(new /obj/item/device/radio/signaler(src), slot_belt) - src.equip_if_possible(new /obj/item/device/pda(src), slot_belt) - if (istype(src.belt, /obj/item/device/pda)) - var/obj/item/device/pda/pda = src.belt - pda.owner = src.real_name - pda.ownjob = src.wear_id.assignment - pda.name = "PDA-[src.real_name] ([pda.ownjob])" -/* - if (istype(src.r_store, /obj/item/device/pda)) //damned mime PDAs not starting in belt slot - var/obj/item/device/pda/pda = src.r_store - pda.owner = src.real_name - pda.ownjob = src.wear_id.assignment - pda.name = "PDA-[src.real_name] ([pda.ownjob])" */ - if (rank == "Clown") - spawn clname(src) +//TODO: put these somewhere else /client/proc/mimewall() set category = "Mime" set name = "Invisible wall" diff --git a/code/game/jobs/jobs.dm b/code/game/jobs/jobs.dm index fac6eeac191..b60b6357cd5 100644 --- a/code/game/jobs/jobs.dm +++ b/code/game/jobs/jobs.dm @@ -1,58 +1,48 @@ -var/list/occupations = list( - "Assistant" = -1, - "Captain" = 1, +var/const + ENGSEC =(1<<0) - //civilian - "Head of Personnel" = 1, - - "Bartender" = 1, - "Botanist" = 2, - "Chef" = 1, - "Janitor" = 1, - "Librarian" = 1, - "Quartermaster" = 1, - "Cargo Technician" = 3, - "Shaft Miner" = 3, - "Lawyer" = 2, - "Chaplain" = 1, - "Clown" = 1, - "Mime" = 1, + CAPTAIN =(1<<0) + HOS =(1<<1) + WARDEN =(1<<2) + DETECTIVE =(1<<3) + OFFICER =(1<<4) + CHIEF =(1<<5) + ENGINEER =(1<<6) + ATMOSTECH =(1<<7) + ROBOTICIST =(1<<8) + AI =(1<<9) + CYBORG =(1<<10) - //engineering - "Chief Engineer" = 1, + MEDSCI =(1<<1) - "Station Engineer" = 5, - "Atmospheric Technician"= 4, - "Roboticist" = 1, - - //medical - "Chief Medical Officer" = 1, - - "Medical Doctor" = 5, - "Geneticist" = 2, - "Virologist" = 1, + RD =(1<<0) + SCIENTIST =(1<<1) + CHEMIST =(1<<2) + CMO =(1<<3) + DOCTOR =(1<<4) + GENETICIST =(1<<5) + VIROLOGIST =(1<<6) - //science - "Research Director" = 1, + CIVILIAN =(1<<2) - "Scientist" = 3, - "Chemist" = 2, + HOP =(1<<0) + BARTENDER =(1<<1) + BOTANIST =(1<<2) + CHEF =(1<<3) + JANITOR =(1<<4) + LIBRARIAN =(1<<5) + QUARTERMASTER =(1<<6) + CARGOTECH =(1<<7) + MINER =(1<<8) + LAWYER =(1<<9) + CHAPLAIN =(1<<10) + CLOWN =(1<<11) + MIME =(1<<12) + ASSISTANT =(1<<13) - - //security - "Head of Security" = 1, - - "Warden" = 1, - "Detective" = 1, - "Security Officer" = 5, - - - //silicon - "AI" = 1, - "Cyborg" = 1 -) +var/list/occupations = list() var/list/assistant_occupations = list( diff --git a/code/game/machinery/ai_slipper.dm b/code/game/machinery/ai_slipper.dm index d43f381fa79..f73e2be7fb9 100644 --- a/code/game/machinery/ai_slipper.dm +++ b/code/game/machinery/ai_slipper.dm @@ -96,7 +96,7 @@ if(cooldown_on || disabled) return else - new /obj/effect/foam(src.loc) + new /obj/effect/effect/foam(src.loc) src.uses-- cooldown_on = 1 cooldown_time = world.timeofday + 100 diff --git a/code/game/machinery/autolathe.dm b/code/game/machinery/autolathe.dm index 288950e1be0..d1f4c52b1ef 100644 --- a/code/game/machinery/autolathe.dm +++ b/code/game/machinery/autolathe.dm @@ -315,7 +315,7 @@ var/global/list/autolathe_recipes_hidden = list( \ return 0 if(!prob(prb)) return 0 - var/datum/effect/system/spark_spread/s = new /datum/effect/system/spark_spread + var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread s.set_up(5, 1, src) s.start() if (electrocute_mob(user, get_area(src), src, 0.7)) diff --git a/code/game/machinery/bots/cleanbot.dm b/code/game/machinery/bots/cleanbot.dm index 96937e958a8..f6cbab25230 100644 --- a/code/game/machinery/bots/cleanbot.dm +++ b/code/game/machinery/bots/cleanbot.dm @@ -247,7 +247,7 @@ text("[src.oddbutton ? "Yes" : "No" if (prob(50)) new /obj/item/robot_parts/l_arm(Tsec) - var/datum/effect/system/spark_spread/s = new /datum/effect/system/spark_spread + var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread s.set_up(3, 1, src) s.start() del(src) diff --git a/code/game/machinery/bots/ed209bot.dm b/code/game/machinery/bots/ed209bot.dm index 78b273263ff..0e4f95eabb5 100644 --- a/code/game/machinery/bots/ed209bot.dm +++ b/code/game/machinery/bots/ed209bot.dm @@ -696,7 +696,7 @@ Auto Patrol: []"}, if (prob(50)) new /obj/item/robot_parts/l_arm(Tsec) - var/datum/effect/system/spark_spread/s = new /datum/effect/system/spark_spread + var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread s.set_up(3, 1, src) s.start() diff --git a/code/game/machinery/bots/floorbot.dm b/code/game/machinery/bots/floorbot.dm index 3b7ceb766c8..37d8c28d0cd 100644 --- a/code/game/machinery/bots/floorbot.dm +++ b/code/game/machinery/bots/floorbot.dm @@ -355,7 +355,7 @@ if (amount) new /obj/item/stack/tile/steel(Tsec) // only one tile, yes - var/datum/effect/system/spark_spread/s = new /datum/effect/system/spark_spread + var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread s.set_up(3, 1, src) s.start() del(src) diff --git a/code/game/machinery/bots/medbot.dm b/code/game/machinery/bots/medbot.dm index a16eb184b75..827a7548bfe 100644 --- a/code/game/machinery/bots/medbot.dm +++ b/code/game/machinery/bots/medbot.dm @@ -474,7 +474,7 @@ if (prob(50)) new /obj/item/robot_parts/l_arm(Tsec) - var/datum/effect/system/spark_spread/s = new /datum/effect/system/spark_spread + var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread s.set_up(3, 1, src) s.start() del(src) diff --git a/code/game/machinery/bots/mulebot.dm b/code/game/machinery/bots/mulebot.dm index e451dabdf8c..d04d4575e77 100644 --- a/code/game/machinery/bots/mulebot.dm +++ b/code/game/machinery/bots/mulebot.dm @@ -957,7 +957,7 @@ cell.update_icon() cell = null - var/datum/effect/system/spark_spread/s = new /datum/effect/system/spark_spread + var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread s.set_up(3, 1, src) s.start() diff --git a/code/game/machinery/bots/secbot.dm b/code/game/machinery/bots/secbot.dm index 1cbf5e4c7eb..384a6287372 100644 --- a/code/game/machinery/bots/secbot.dm +++ b/code/game/machinery/bots/secbot.dm @@ -677,7 +677,7 @@ Auto Patrol: []"}, if (prob(50)) new /obj/item/robot_parts/l_arm(Tsec) - var/datum/effect/system/spark_spread/s = new /datum/effect/system/spark_spread + var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread s.set_up(3, 1, src) s.start() diff --git a/code/game/machinery/camera.dm b/code/game/machinery/camera.dm index b71e00d9bc7..f373d91f7d1 100644 --- a/code/game/machinery/camera.dm +++ b/code/game/machinery/camera.dm @@ -322,7 +322,7 @@ src.bugged = 1 else if(istype(W, /obj/item/weapon/melee/energy/blade))//Putting it here last since it's a special case. I wonder if there is a better way to do these than type casting. deactivate(user,2)//Here so that you can disconnect anyone viewing the camera, regardless if it's on or off. - var/datum/effect/system/spark_spread/spark_system = new /datum/effect/system/spark_spread() + var/datum/effect/effect/system/spark_spread/spark_system = new /datum/effect/effect/system/spark_spread() spark_system.set_up(5, 0, loc) spark_system.start() playsound(loc, 'blade1.ogg', 50, 1) diff --git a/code/game/machinery/computer/computer.dm b/code/game/machinery/computer/computer.dm index 5efb6eb72aa..d1a78b37389 100644 --- a/code/game/machinery/computer/computer.dm +++ b/code/game/machinery/computer/computer.dm @@ -15,7 +15,7 @@ Pod/Blast Doors computer for(var/x in verbs) verbs -= x set_broken() - var/datum/effect/system/harmless_smoke_spread/smoke = new /datum/effect/system/harmless_smoke_spread() + var/datum/effect/effect/system/harmless_smoke_spread/smoke = new /datum/effect/effect/system/harmless_smoke_spread() smoke.set_up(5, 0, src) smoke.start() return @@ -244,7 +244,7 @@ Pod/Blast Doors computer carddesc += "" carddesc += "Assignment: " - jobs = "[target_rank]" + jobs = "[target_rank]" //CHECK THIS var/accesses = "" if(istype(src,/obj/machinery/computer/card/centcom)) @@ -271,7 +271,7 @@ Pod/Blast Doors computer accesses += "
" accesses += "" accesses += "" - body = "[carddesc]
[jobs]

[accesses]" + body = "[carddesc]
[jobs]

[accesses]" //CHECK THIS else body = "{Log in}

" body += "Access Crew Manifest" diff --git a/code/game/machinery/deployable.dm b/code/game/machinery/deployable.dm index e171a17399b..f05d34a3fdc 100644 --- a/code/game/machinery/deployable.dm +++ b/code/game/machinery/deployable.dm @@ -179,7 +179,7 @@ for reference: user << "Barrier lock toggled off." return else - var/datum/effect/system/spark_spread/s = new /datum/effect/system/spark_spread + var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread s.set_up(2, 1, src) s.start() for(var/mob/O in viewers(src, null)) @@ -191,7 +191,7 @@ for reference: src.emagged = 1 src.req_access = null user << "You break the ID authentication lock on the [src]." - var/datum/effect/system/spark_spread/s = new /datum/effect/system/spark_spread + var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread s.set_up(2, 1, src) s.start() for(var/mob/O in viewers(src, null)) @@ -200,7 +200,7 @@ for reference: else if (src.emagged == 1) src.emagged = 2 user << "You short out the anchoring mechanism on the [src]." - var/datum/effect/system/spark_spread/s = new /datum/effect/system/spark_spread + var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread s.set_up(2, 1, src) s.start() for(var/mob/O in viewers(src, null)) @@ -270,7 +270,7 @@ for reference: /* var/obj/item/stack/rods/ =*/ new /obj/item/stack/rods(Tsec) - var/datum/effect/system/spark_spread/s = new /datum/effect/system/spark_spread + var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread s.set_up(3, 1, src) s.start() diff --git a/code/game/machinery/doors/airlock.dm b/code/game/machinery/doors/airlock.dm index d2144c54ba9..9ac7e268a6b 100644 --- a/code/game/machinery/doors/airlock.dm +++ b/code/game/machinery/doors/airlock.dm @@ -404,7 +404,7 @@ About the new airlock wires panel: return 0 if(!prob(prb)) return 0 //you lucked out, no shock for you - var/datum/effect/system/spark_spread/s = new /datum/effect/system/spark_spread + var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread s.set_up(5, 1, src) s.start() //sparks always. if (electrocute_mob(user, get_area(src), src)) @@ -599,7 +599,7 @@ About the new airlock wires panel: if(!istype(H.head, /obj/item/clothing/head/helmet)) for(var/mob/M in viewers(src, null)) M << "\red [user] headbutts the airlock." - var/datum/organ/external/affecting = H.organs["head"] + var/datum/organ/external/affecting = H.get_organ("head") affecting.take_damage(10, 0) H.stunned = 8 H.weakened = 5 diff --git a/code/game/machinery/doors/door.dm b/code/game/machinery/doors/door.dm index 71609954899..fc730443457 100644 --- a/code/game/machinery/doors/door.dm +++ b/code/game/machinery/doors/door.dm @@ -139,7 +139,7 @@ src.operating = -1 if(istype(I, /obj/item/weapon/melee/energy/blade)) if(istype(src, /obj/machinery/door/airlock)) - var/datum/effect/system/spark_spread/spark_system = new /datum/effect/system/spark_spread() + var/datum/effect/effect/system/spark_spread/spark_system = new /datum/effect/effect/system/spark_spread() spark_system.set_up(5, 0, src.loc) spark_system.start() playsound(src.loc, 'blade1.ogg', 50, 1) @@ -232,7 +232,7 @@ del(src) if(3.0) if(prob(80)) - var/datum/effect/system/spark_spread/s = new /datum/effect/system/spark_spread + var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread s.set_up(2, 1, src) s.start() diff --git a/code/game/machinery/doors/windowdoor.dm b/code/game/machinery/doors/windowdoor.dm index 9b9a1cf8a84..d91c2b56bca 100644 --- a/code/game/machinery/doors/windowdoor.dm +++ b/code/game/machinery/doors/windowdoor.dm @@ -123,7 +123,7 @@ if (src.density && (istype(I, /obj/item/weapon/card/emag)||istype(I, /obj/item/weapon/melee/energy/blade))) src.operating = -1 if(istype(I, /obj/item/weapon/melee/energy/blade)) - var/datum/effect/system/spark_spread/spark_system = new /datum/effect/system/spark_spread() + var/datum/effect/effect/system/spark_spread/spark_system = new /datum/effect/effect/system/spark_spread() spark_system.set_up(5, 0, src.loc) spark_system.start() playsound(src.loc, "sparks", 50, 1) diff --git a/code/game/machinery/igniter.dm b/code/game/machinery/igniter.dm index 65d833806fa..41be21bae5f 100644 --- a/code/game/machinery/igniter.dm +++ b/code/game/machinery/igniter.dm @@ -88,7 +88,7 @@ flick("[base_state]-spark", src) - var/datum/effect/system/spark_spread/s = new /datum/effect/system/spark_spread + var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread s.set_up(2, 1, src) s.start() src.last_spark = world.time diff --git a/code/game/machinery/kitchen/microwave.dm b/code/game/machinery/kitchen/microwave.dm index 2a7cfda27ee..525a0d61546 100644 --- a/code/game/machinery/kitchen/microwave.dm +++ b/code/game/machinery/kitchen/microwave.dm @@ -329,7 +329,7 @@ src.updateUsrDialog() /obj/machinery/microwave/proc/broke() - var/datum/effect/system/spark_spread/s = new + var/datum/effect/effect/system/spark_spread/s = new s.set_up(2, 1, src) s.start() src.icon_state = "mwb" // Make it look all busted up and shit diff --git a/code/game/machinery/portable_turret.dm b/code/game/machinery/portable_turret.dm index 26ea1e78ced..4e07cd66a5d 100644 --- a/code/game/machinery/portable_turret.dm +++ b/code/game/machinery/portable_turret.dm @@ -46,12 +46,12 @@ var/emagged = 0 // 1: emagged, 0: not emagged var/on = 1 // determines if the turret is on - var/datum/effect/system/spark_spread/spark_system // the spark system, used for generating... sparks? + var/datum/effect/effect/system/spark_spread/spark_system // the spark system, used for generating... sparks? New() ..() // Sets up a spark system - spark_system = new /datum/effect/system/spark_spread + spark_system = new /datum/effect/effect/system/spark_spread spark_system.set_up(5, 0, src) spark_system.attach(src) Del() diff --git a/code/game/machinery/teleporter.dm b/code/game/machinery/teleporter.dm index 613aa21abb0..b7ff8c2d9f1 100644 --- a/code/game/machinery/teleporter.dm +++ b/code/game/machinery/teleporter.dm @@ -132,7 +132,7 @@ else do_teleport(M, com.locked, 0) //dead-on precision else - var/datum/effect/system/spark_spread/s = new /datum/effect/system/spark_spread + var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread s.set_up(5, 1, src) s.start() for(var/mob/B in hearers(src, null)) @@ -219,7 +219,7 @@ M.loc = tmploc sleep(2) - var/datum/effect/system/spark_spread/s = new /datum/effect/system/spark_spread + var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread s.set_up(5, 1, M) s.start() return diff --git a/code/game/machinery/turrets.dm b/code/game/machinery/turrets.dm index f37548c9857..60b8d6933c2 100644 --- a/code/game/machinery/turrets.dm +++ b/code/game/machinery/turrets.dm @@ -57,7 +57,7 @@ var/wasvalid = 0 var/lastfired = 0 var/shot_delay = 30 //3 seconds between shots - var/datum/effect/system/spark_spread/spark_system + var/datum/effect/effect/system/spark_spread/spark_system use_power = 1 idle_power_usage = 50 active_power_usage = 300 @@ -68,7 +68,7 @@ /obj/machinery/turret/New() - spark_system = new /datum/effect/system/spark_spread + spark_system = new /datum/effect/effect/system/spark_spread spark_system.set_up(5, 0, src) spark_system.attach(src) // targets = new diff --git a/code/game/machinery/vending.dm b/code/game/machinery/vending.dm index 1dd6ea93204..74dfd1b5cae 100644 --- a/code/game/machinery/vending.dm +++ b/code/game/machinery/vending.dm @@ -443,7 +443,7 @@ return 0 if(!prob(prb)) return 0 - var/datum/effect/system/spark_spread/s = new /datum/effect/system/spark_spread + var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread s.set_up(5, 1, src) s.start() if (electrocute_mob(user, get_area(src), src, 0.7)) diff --git a/code/game/magic/cultist/runes.dm b/code/game/magic/cultist/runes.dm index 18d51d8ab3c..241b13ba0d8 100644 --- a/code/game/magic/cultist/runes.dm +++ b/code/game/magic/cultist/runes.dm @@ -271,10 +271,7 @@ var/list/sacrificed = list() corpse_to_raise.mind.key = ghost.key corpse_to_raise.key = ghost.key del(ghost) - for(var/A in corpse_to_raise.organs) - var/datum/organ/external/affecting = corpse_to_raise.organs[A] - if(!istype(affecting)) - continue + for(var/datum/organ/external/affecting in corpse_to_raise.organs) affecting.heal_damage(1000, 1000) corpse_to_raise.toxloss = 0 corpse_to_raise.oxyloss = 0 diff --git a/code/game/master_controller.dm b/code/game/master_controller.dm index c8d7c20b6bd..414ccaf849e 100644 --- a/code/game/master_controller.dm +++ b/code/game/master_controller.dm @@ -19,6 +19,11 @@ datum/controller/game_controller air_master = new /datum/controller/air_system() air_master.setup() + if(!job_master) + job_master = new /datum/controller/occupations() + if(job_master.SetupOccupations()) + world << "\red \b Job setup complete" + if(!tension_master) tension_master = new /datum/tension() @@ -28,9 +33,8 @@ datum/controller/game_controller setupgenetics() - SetupJobs("config/jobs.txt") +// SetupJobs("config/jobs.txt") - //setupcorpses() Not used any more. syndicate_code_phrase = generate_code_phrase()//Sets up code phrase for traitors, for the round. syndicate_code_response = generate_code_phrase() @@ -62,11 +66,6 @@ datum/controller/game_controller for(var/obj/machinery/atmospherics/unary/vent_scrubber/T in world) T.broadcast_status() - /*world << "\red \b Initializing atmos machinery" - sleep(-1) - - find_air_alarms()*/ - world << "\red \b Initializations complete." diff --git a/code/game/mecha/combat/combat.dm b/code/game/mecha/combat/combat.dm index 6fd1583feb7..353e40c2b11 100644 --- a/code/game/mecha/combat/combat.dm +++ b/code/game/mecha/combat/combat.dm @@ -55,9 +55,8 @@ var/mob/living/carbon/human/H = target // if (M.health <= 0) return - var/dam_zone = pick("chest", "chest", "chest", "head", "groin") - if (istype(H.organs[dam_zone], /datum/organ/external)) - var/datum/organ/external/temp = H.organs[dam_zone] + var/datum/organ/external/temp = H.get_organ(pick("chest", "chest", "chest", "head")) + if(temp) switch(damtype) if("brute") H.paralysis += 1 diff --git a/code/game/mecha/combat/marauder.dm b/code/game/mecha/combat/marauder.dm index 1596bc76e31..47ff4e6a988 100644 --- a/code/game/mecha/combat/marauder.dm +++ b/code/game/mecha/combat/marauder.dm @@ -12,7 +12,7 @@ var/smoke = 5 var/smoke_ready = 1 var/smoke_cooldown = 100 - var/datum/effect/system/harmless_smoke_spread/smoke_system = new + var/datum/effect/effect/system/harmless_smoke_spread/smoke_system = new operation_req_access = list(access_cent_specops) wreckage = "/obj/effect/decal/mecha_wreckage/marauder" add_req_access = 0 diff --git a/code/game/mecha/equipment/tools/tools.dm b/code/game/mecha/equipment/tools/tools.dm index b62a7a76f82..653fb8d244d 100644 --- a/code/game/mecha/equipment/tools/tools.dm +++ b/code/game/mecha/equipment/tools/tools.dm @@ -134,7 +134,7 @@ var/list/the_targets = list(T,T1,T2) spawn(0) for(var/a=0, a<5, a++) - var/obj/effect/water/W = new /obj/effect/water(get_turf(chassis)) + var/obj/effect/effect/water/W = new /obj/effect/effect/water(get_turf(chassis)) if(!W) return var/turf/my_target = pick(the_targets) diff --git a/code/game/mecha/mecha.dm b/code/game/mecha/mecha.dm index 92c01e9c2b6..ad6eacc5b26 100644 --- a/code/game/mecha/mecha.dm +++ b/code/game/mecha/mecha.dm @@ -32,7 +32,7 @@ var/add_req_access = 1 var/dna //dna-locking the mech var/list/proc_res = list() //stores proc owners, like proc_res["functionname"] = owner reference - var/datum/effect/system/spark_spread/spark_system = new + var/datum/effect/effect/system/spark_spread/spark_system = new var/lights = 0 var/lights_power = 6 diff --git a/code/game/objects/blood.dm b/code/game/objects/blood.dm index c660cafc029..da37b28f3de 100644 --- a/code/game/objects/blood.dm +++ b/code/game/objects/blood.dm @@ -47,7 +47,7 @@ /*var/obj/effect/decal/cleanable/oil/o =*/ new /obj/effect/decal/cleanable/oil/streak(src.loc) else if (prob(10)) - var/datum/effect/system/spark_spread/s = new /datum/effect/system/spark_spread + var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread s.set_up(3, 1, src) s.start() if (step_to(src, get_step(src, direction), 0)) diff --git a/code/game/objects/closets.dm b/code/game/objects/closets.dm index 250696eb4a7..b4cbf555d1a 100644 --- a/code/game/objects/closets.dm +++ b/code/game/objects/closets.dm @@ -3,8 +3,7 @@ /obj/structure/closet/CanPass(atom/movable/mover, turf/target, height=0, air_group=0) if(air_group || (height==0 || wall_mounted)) return 1 - - return opened + return (!density) /obj/structure/closet/proc/can_open() if (src.welded) @@ -44,6 +43,7 @@ src.icon_state = src.icon_opened src.opened = 1 playsound(src.loc, 'click.ogg', 15, 1, -3) + density = 0 return 1 /obj/structure/closet/proc/close() @@ -74,6 +74,7 @@ src.icon_state = src.icon_closed src.opened = 0 playsound(src.loc, 'click.ogg', 15, 1, -3) + density = 1 return 1 /obj/structure/closet/proc/toggle() @@ -188,17 +189,19 @@ return /obj/structure/closet - var/lastbang + var/lastbang = 0 /obj/structure/closet/relaymove(mob/user as mob) if (user.stat) return if (!src.open()) user << "\blue It won't budge!" - if (world.time > lastbang+5) - lastbang = world.time + if(!lastbang) + lastbang = 1 for (var/mob/M in hearers(src, null)) M << text("BANG, bang!", max(0, 5 - get_dist(src, M))) + spawn(30) + lastbang = 0 /obj/structure/closet/Move() ..() diff --git a/code/game/objects/closets/secure/personal.dm b/code/game/objects/closets/secure/personal.dm index 9cfe7784e81..9072b405d65 100644 --- a/code/game/objects/closets/secure/personal.dm +++ b/code/game/objects/closets/secure/personal.dm @@ -45,7 +45,7 @@ desc = "It appears to be broken." icon_state = src.icon_broken if(istype(W, /obj/item/weapon/melee/energy/blade)) - var/datum/effect/system/spark_spread/spark_system = new /datum/effect/system/spark_spread() + var/datum/effect/effect/system/spark_spread/spark_system = new /datum/effect/effect/system/spark_spread() spark_system.set_up(5, 0, src.loc) spark_system.start() playsound(src.loc, 'blade1.ogg', 50, 1) diff --git a/code/game/objects/devices/chameleonproj.dm b/code/game/objects/devices/chameleonproj.dm index 2efe2bf108b..c08ffa32e74 100644 --- a/code/game/objects/devices/chameleonproj.dm +++ b/code/game/objects/devices/chameleonproj.dm @@ -93,7 +93,7 @@ proc/disrupt() if(active_dummy) - var/datum/effect/system/spark_spread/spark_system = new /datum/effect/system/spark_spread + var/datum/effect/effect/system/spark_spread/spark_system = new /datum/effect/effect/system/spark_spread spark_system.set_up(5, 0, src) spark_system.attach(src) spark_system.start() diff --git a/code/game/objects/devices/flash.dm b/code/game/objects/devices/flash.dm index bd3fdcb2db6..185f80a2560 100644 --- a/code/game/objects/devices/flash.dm +++ b/code/game/objects/devices/flash.dm @@ -154,7 +154,7 @@ clown_check(var/mob/user) - if((user.mutations & CLOWN) && prob(50)) + if((user.mutations & CLUMSY) && prob(50)) user << "\red The Flash slips out of your hand." user.drop_item() return 0 diff --git a/code/game/objects/devices/flashlight.dm b/code/game/objects/devices/flashlight.dm index e79b645ff98..d75b661f8c4 100644 --- a/code/game/objects/devices/flashlight.dm +++ b/code/game/objects/devices/flashlight.dm @@ -28,7 +28,7 @@ attack(mob/M as mob, mob/user as mob) src.add_fingerprint(user) if(src.on && user.zone_sel.selecting == "eyes") - if ((user.mutations & CLOWN || user.brainloss >= 60) && prob(50))//too dumb to use flashlight properly + if ((user.mutations & CLUMSY || user.brainloss >= 60) && prob(50))//too dumb to use flashlight properly return ..()//just hit them in the head if (!(istype(usr, /mob/living/carbon/human) || ticker) && ticker.mode.name != "monkey")//don't have dexterity diff --git a/code/game/objects/devices/scanners.dm b/code/game/objects/devices/scanners.dm index 468d92f9e5d..ec37ca8e23b 100644 --- a/code/game/objects/devices/scanners.dm +++ b/code/game/objects/devices/scanners.dm @@ -180,7 +180,7 @@ MASS SPECTROMETER origin_tech = "magnets=1;biotech=1" /obj/item/device/healthanalyzer/attack(mob/M as mob, mob/user as mob) - if ((user.mutations & CLOWN || user.brainloss >= 60) && prob(50)) + if ((user.mutations & CLUMSY || user.brainloss >= 60) && prob(50)) user << text("\red You try to analyze the floor's vitals!") for(var/mob/O in viewers(M, null)) O.show_message(text("\red [user] has analyzed the floor's vitals!"), 1) diff --git a/code/game/objects/effect_system.dm b/code/game/objects/effect_system.dm index 8dc006f256a..9cc0356d0f6 100644 --- a/code/game/objects/effect_system.dm +++ b/code/game/objects/effect_system.dm @@ -6,14 +6,14 @@ would spawn and follow the beaker, even if it is carried or thrown. */ -/obj/effect +/obj/effect/effect name = "effect" icon = 'effects.dmi' mouse_opacity = 0 unacidable = 1//So effect are not targeted by alien acid. flags = TABLEPASS -/obj/effect/water +/obj/effect/effect/water name = "water" icon = 'effects.dmi' icon_state = "extinguish" @@ -21,7 +21,7 @@ would spawn and follow the beaker, even if it is carried or thrown. flags = 2.0 mouse_opacity = 0 -/obj/effect/smoke +/obj/effect/effect/smoke name = "smoke" icon = 'water.dmi' icon_state = "smoke" @@ -31,7 +31,7 @@ would spawn and follow the beaker, even if it is carried or thrown. var/amount = 8.0 -/obj/effect/water/New() +/obj/effect/effect/water/New() ..() //var/turf/T = src.loc //if (istype(T, /turf)) @@ -41,14 +41,14 @@ would spawn and follow the beaker, even if it is carried or thrown. return return -/obj/effect/water/Del() +/obj/effect/effect/water/Del() //var/turf/T = src.loc //if (istype(T, /turf)) // T.firelevel = 0 //TODO: FIX ..() return -/obj/effect/water/Move(turf/newloc) +/obj/effect/effect/water/Move(turf/newloc) //var/turf/T = src.loc //if (istype(T, /turf)) // T.firelevel = 0 //TODO: FIX @@ -59,7 +59,7 @@ would spawn and follow the beaker, even if it is carried or thrown. return 0 .=..() -/obj/effect/water/Bump(atom/A) +/obj/effect/effect/water/Bump(atom/A) if(reagents) reagents.reaction(A) return ..() @@ -79,35 +79,35 @@ OPTIONAL: steam.attach(mob) steam.start() -- spawns the effect */ ///////////////////////////////////////////// -/obj/effect/steam +/obj/effect/effect/steam name = "steam" icon = 'effects.dmi' icon_state = "extinguish" density = 0 -/datum/effect/system/steam_spread +/datum/effect/effect/system/steam_spread var/number = 3 var/cardinals = 0 var/turf/location var/atom/holder -/datum/effect/system/steam_spread/proc/set_up(n = 3, c = 0, turf/loc) +/datum/effect/effect/system/steam_spread/proc/set_up(n = 3, c = 0, turf/loc) if(n > 10) n = 10 number = n cardinals = c location = loc -/datum/effect/system/steam_spread/proc/attach(atom/atom) +/datum/effect/effect/system/steam_spread/proc/attach(atom/atom) holder = atom -/datum/effect/system/steam_spread/proc/start() +/datum/effect/effect/system/steam_spread/proc/start() var/i = 0 for(i=0, i 10) n = 10 number = n @@ -180,10 +180,10 @@ steam.start() -- spawns the effect else location = get_turf(loca) -/datum/effect/system/spark_spread/proc/attach(atom/atom) +/datum/effect/effect/system/spark_spread/proc/attach(atom/atom) holder = atom -/datum/effect/system/spark_spread/proc/start() +/datum/effect/effect/system/spark_spread/proc/start() var/i = 0 for(i=0, i 20) @@ -191,7 +191,7 @@ steam.start() -- spawns the effect spawn(0) if(holder) src.location = get_turf(holder) - var/obj/effect/sparks/sparks = new /obj/effect/sparks(src.location) + var/obj/effect/effect/sparks/sparks = new /obj/effect/effect/sparks(src.location) src.total_sparks++ var/direction if(src.cardinals) @@ -219,7 +219,7 @@ steam.start() -- spawns the effect ///////////////////////////////////////////// -/obj/effect/harmless_smoke +/obj/effect/effect/harmless_smoke name = "smoke" icon_state = "smoke" opacity = 1 @@ -231,17 +231,17 @@ steam.start() -- spawns the effect pixel_x = -32 pixel_y = -32 -/obj/effect/harmless_smoke/New() +/obj/effect/effect/harmless_smoke/New() ..() spawn (100) del(src) return -/obj/effect/harmless_smoke/Move() +/obj/effect/effect/harmless_smoke/Move() ..() return -/datum/effect/system/harmless_smoke_spread +/datum/effect/effect/system/harmless_smoke_spread var/number = 3 var/cardinals = 0 var/turf/location @@ -249,7 +249,7 @@ steam.start() -- spawns the effect var/total_smoke = 0 // To stop it being spammed and lagging! var/direction -/datum/effect/system/harmless_smoke_spread/proc/set_up(n = 5, c = 0, loca, direct) +/datum/effect/effect/system/harmless_smoke_spread/proc/set_up(n = 5, c = 0, loca, direct) if(n > 10) n = 10 number = n @@ -262,10 +262,10 @@ steam.start() -- spawns the effect direction = direct -/datum/effect/system/harmless_smoke_spread/proc/attach(atom/atom) +/datum/effect/effect/system/harmless_smoke_spread/proc/attach(atom/atom) holder = atom -/datum/effect/system/harmless_smoke_spread/proc/start() +/datum/effect/effect/system/harmless_smoke_spread/proc/start() var/i = 0 for(i=0, i 20) @@ -273,7 +273,7 @@ steam.start() -- spawns the effect spawn(0) if(holder) src.location = get_turf(holder) - var/obj/effect/harmless_smoke/smoke = new /obj/effect/harmless_smoke(src.location) + var/obj/effect/effect/harmless_smoke/smoke = new /obj/effect/effect/harmless_smoke(src.location) src.total_smoke++ var/direction = src.direction if(!direction) @@ -298,7 +298,7 @@ steam.start() -- spawns the effect // Bad smoke ///////////////////////////////////////////// -/obj/effect/bad_smoke +/obj/effect/effect/bad_smoke name = "smoke" icon_state = "smoke" opacity = 1 @@ -310,13 +310,13 @@ steam.start() -- spawns the effect pixel_x = -32 pixel_y = -32 -/obj/effect/bad_smoke/New() +/obj/effect/effect/bad_smoke/New() ..() spawn (200+rand(10,30)) del(src) return -/obj/effect/bad_smoke/Move() +/obj/effect/effect/bad_smoke/Move() ..() for(var/mob/living/carbon/M in get_turf(src)) if (M.internal != null && M.wear_mask && (M.wear_mask.flags & MASKINTERNALS)) @@ -331,7 +331,7 @@ steam.start() -- spawns the effect return -/obj/effect/bad_smoke/CanPass(atom/movable/mover, turf/target, height=0, air_group=0) +/obj/effect/effect/bad_smoke/CanPass(atom/movable/mover, turf/target, height=0, air_group=0) if(air_group || (height==0)) return 1 if(istype(mover, /obj/item/projectile/beam)) var/obj/item/projectile/beam/B = mover @@ -339,7 +339,7 @@ steam.start() -- spawns the effect return 1 -/obj/effect/bad_smoke/HasEntered(mob/living/carbon/M as mob ) +/obj/effect/effect/bad_smoke/HasEntered(mob/living/carbon/M as mob ) ..() if(istype(M, /mob/living/carbon)) if (M.internal != null && M.wear_mask && (M.wear_mask.flags & MASKINTERNALS)) @@ -354,7 +354,7 @@ steam.start() -- spawns the effect M.coughedtime = 0 return -/datum/effect/system/bad_smoke_spread +/datum/effect/effect/system/bad_smoke_spread var/number = 3 var/cardinals = 0 var/turf/location @@ -362,7 +362,7 @@ steam.start() -- spawns the effect var/total_smoke = 0 // To stop it being spammed and lagging! var/direction -/datum/effect/system/bad_smoke_spread/proc/set_up(n = 5, c = 0, loca, direct) +/datum/effect/effect/system/bad_smoke_spread/proc/set_up(n = 5, c = 0, loca, direct) if(n > 20) n = 20 number = n @@ -375,10 +375,10 @@ steam.start() -- spawns the effect direction = direct -/datum/effect/system/bad_smoke_spread/proc/attach(atom/atom) +/datum/effect/effect/system/bad_smoke_spread/proc/attach(atom/atom) holder = atom -/datum/effect/system/bad_smoke_spread/proc/start() +/datum/effect/effect/system/bad_smoke_spread/proc/start() var/i = 0 for(i=0, i 20) @@ -386,7 +386,7 @@ steam.start() -- spawns the effect spawn(0) if(holder) src.location = get_turf(holder) - var/obj/effect/bad_smoke/smoke = new /obj/effect/bad_smoke(src.location) + var/obj/effect/effect/bad_smoke/smoke = new /obj/effect/effect/bad_smoke(src.location) src.total_smoke++ var/direction = src.direction if(!direction) @@ -407,7 +407,7 @@ steam.start() -- spawns the effect ///////////////////////////////////////////// -/obj/effect/chem_smoke +/obj/effect/effect/chem_smoke name = "smoke" opacity = 1 anchored = 0.0 @@ -418,7 +418,7 @@ steam.start() -- spawns the effect pixel_x = -32 pixel_y = -32 -/obj/effect/chem_smoke/New() +/obj/effect/effect/chem_smoke/New() ..() var/datum/reagents/R = new/datum/reagents(500) reagents = R @@ -428,20 +428,20 @@ steam.start() -- spawns the effect del(src) return -/obj/effect/chem_smoke/Move() +/obj/effect/effect/chem_smoke/Move() ..() for(var/atom/A in view(1, src)) reagents.reaction(A) return -/obj/effect/chem_smoke/HasEntered(mob/living/carbon/M as mob ) +/obj/effect/effect/chem_smoke/HasEntered(mob/living/carbon/M as mob ) ..() reagents.reaction(M) return -/datum/effect/system/chem_smoke_spread +/datum/effect/effect/system/chem_smoke_spread var/number = 3 var/cardinals = 0 var/turf/location @@ -456,7 +456,7 @@ steam.start() -- spawns the effect chemholder.reagents = R R.my_atom = chemholder -/datum/effect/system/chem_smoke_spread/proc/set_up(var/datum/reagents/carry = null, n = 5, c = 0, loca, direct) +/datum/effect/effect/system/chem_smoke_spread/proc/set_up(var/datum/reagents/carry = null, n = 5, c = 0, loca, direct) if(n > 20) n = 20 number = n @@ -471,10 +471,10 @@ steam.start() -- spawns the effect direction = direct -/datum/effect/system/chem_smoke_spread/proc/attach(atom/atom) +/datum/effect/effect/system/chem_smoke_spread/proc/attach(atom/atom) holder = atom -/datum/effect/system/chem_smoke_spread/proc/start() +/datum/effect/effect/system/chem_smoke_spread/proc/start() var/i = 0 // Calculate the smokes' color @@ -505,7 +505,7 @@ steam.start() -- spawns the effect spawn(0) if(holder) src.location = get_turf(holder) - var/obj/effect/chem_smoke/smoke = new /obj/effect/chem_smoke(src.location) + var/obj/effect/effect/chem_smoke/smoke = new /obj/effect/effect/chem_smoke(src.location) src.total_smoke++ var/direction = src.direction if(!direction) @@ -537,7 +537,7 @@ steam.start() -- spawns the effect // Sleep smoke ///////////////////////////////////////////// -/obj/effect/sleep_smoke +/obj/effect/effect/sleep_smoke name = "smoke" icon_state = "smoke" opacity = 1 @@ -549,13 +549,13 @@ steam.start() -- spawns the effect pixel_x = -32 pixel_y = -32 -/obj/effect/sleep_smoke/New() +/obj/effect/effect/sleep_smoke/New() ..() spawn (200+rand(10,30)) del(src) return -/obj/effect/sleep_smoke/Move() +/obj/effect/effect/sleep_smoke/Move() ..() for(var/mob/living/carbon/M in get_turf(src)) if (M.internal != null && M.wear_mask && (M.wear_mask.flags & MASKINTERNALS)) @@ -570,7 +570,7 @@ steam.start() -- spawns the effect M.coughedtime = 0 return -/obj/effect/sleep_smoke/HasEntered(mob/living/carbon/M as mob ) +/obj/effect/effect/sleep_smoke/HasEntered(mob/living/carbon/M as mob ) ..() if(istype(M, /mob/living/carbon)) if (M.internal != null && M.wear_mask && (M.wear_mask.flags & MASKINTERNALS)) @@ -586,7 +586,7 @@ steam.start() -- spawns the effect M.coughedtime = 0 return -/datum/effect/system/sleep_smoke_spread +/datum/effect/effect/system/sleep_smoke_spread var/number = 3 var/cardinals = 0 var/turf/location @@ -594,7 +594,7 @@ steam.start() -- spawns the effect var/total_smoke = 0 // To stop it being spammed and lagging! var/direction -/datum/effect/system/sleep_smoke_spread/proc/set_up(n = 5, c = 0, loca, direct) +/datum/effect/effect/system/sleep_smoke_spread/proc/set_up(n = 5, c = 0, loca, direct) if(n > 20) n = 20 number = n @@ -607,10 +607,10 @@ steam.start() -- spawns the effect direction = direct -/datum/effect/system/sleep_smoke_spread/proc/attach(atom/atom) +/datum/effect/effect/system/sleep_smoke_spread/proc/attach(atom/atom) holder = atom -/datum/effect/system/sleep_smoke_spread/proc/start() +/datum/effect/effect/system/sleep_smoke_spread/proc/start() var/i = 0 for(i=0, i 20) @@ -618,7 +618,7 @@ steam.start() -- spawns the effect spawn(0) if(holder) src.location = get_turf(holder) - var/obj/effect/sleep_smoke/smoke = new /obj/effect/sleep_smoke(src.location) + var/obj/effect/effect/sleep_smoke/smoke = new /obj/effect/effect/sleep_smoke(src.location) src.total_smoke++ var/direction = src.direction if(!direction) @@ -638,7 +638,7 @@ steam.start() -- spawns the effect ///////////////////////////////////////////// -/obj/effect/mustard_gas +/obj/effect/effect/mustard_gas name = "mustard gas" icon_state = "mustard" opacity = 1 @@ -646,13 +646,13 @@ steam.start() -- spawns the effect mouse_opacity = 0 var/amount = 6.0 -/obj/effect/mustard_gas/New() +/obj/effect/effect/mustard_gas/New() ..() spawn (100) del(src) return -/obj/effect/mustard_gas/Move() +/obj/effect/effect/mustard_gas/Move() ..() for(var/mob/living/carbon/human/R in get_turf(src)) if (R.internal != null && usr.wear_mask && (R.wear_mask.flags & MASKINTERNALS) && R.wear_suit != null && !istype(R.wear_suit, /obj/item/clothing/suit/labcoat) && !istype(R.wear_suit, /obj/item/clothing/suit/straight_jacket) && !istype(R.wear_suit, /obj/item/clothing/suit/straight_jacket && !istype(R.wear_suit, /obj/item/clothing/suit/armor))) @@ -666,7 +666,7 @@ steam.start() -- spawns the effect R.updatehealth() return -/obj/effect/mustard_gas/HasEntered(mob/living/carbon/human/R as mob ) +/obj/effect/effect/mustard_gas/HasEntered(mob/living/carbon/human/R as mob ) ..() if (istype(R, /mob/living/carbon/human)) if (R.internal != null && usr.wear_mask && (R.wear_mask.flags & MASKINTERNALS) && R.wear_suit != null && !istype(R.wear_suit, /obj/item/clothing/suit/labcoat) && !istype(R.wear_suit, /obj/item/clothing/suit/straight_jacket) && !istype(R.wear_suit, /obj/item/clothing/suit/straight_jacket && !istype(R.wear_suit, /obj/item/clothing/suit/armor))) @@ -680,7 +680,7 @@ steam.start() -- spawns the effect R.updatehealth() return -/datum/effect/system/mustard_gas_spread +/datum/effect/effect/system/mustard_gas_spread var/number = 3 var/cardinals = 0 var/turf/location @@ -688,7 +688,7 @@ steam.start() -- spawns the effect var/total_smoke = 0 // To stop it being spammed and lagging! var/direction -/datum/effect/system/mustard_gas_spread/proc/set_up(n = 5, c = 0, loca, direct) +/datum/effect/effect/system/mustard_gas_spread/proc/set_up(n = 5, c = 0, loca, direct) if(n > 20) n = 20 number = n @@ -700,10 +700,10 @@ steam.start() -- spawns the effect if(direct) direction = direct -/datum/effect/system/mustard_gas_spread/proc/attach(atom/atom) +/datum/effect/effect/system/mustard_gas_spread/proc/attach(atom/atom) holder = atom -/datum/effect/system/mustard_gas_spread/proc/start() +/datum/effect/effect/system/mustard_gas_spread/proc/start() var/i = 0 for(i=0, i 20) @@ -711,7 +711,7 @@ steam.start() -- spawns the effect spawn(0) if(holder) src.location = get_turf(holder) - var/obj/effect/mustard_gas/smoke = new /obj/effect/mustard_gas(src.location) + var/obj/effect/effect/mustard_gas/smoke = new /obj/effect/effect/mustard_gas(src.location) src.total_smoke++ var/direction = src.direction if(!direction) @@ -737,22 +737,22 @@ steam.start() -- spawns the effect /// and don't call start() in a loop that will be repeated otherwise it'll get spammed! ///////////////////////////////////////////// -/obj/effect/ion_trails +/obj/effect/effect/ion_trails name = "ion trails" icon_state = "ion_trails" anchored = 1.0 -/datum/effect/system/ion_trail_follow +/datum/effect/effect/system/ion_trail_follow var/atom/holder var/turf/oldposition var/processing = 1 var/on = 1 -/datum/effect/system/ion_trail_follow/proc/set_up(atom/atom) +/datum/effect/effect/system/ion_trail_follow/proc/set_up(atom/atom) holder = atom oldposition = get_turf(atom) -/datum/effect/system/ion_trail_follow/proc/start() +/datum/effect/effect/system/ion_trail_follow/proc/start() if(!src.on) src.on = 1 src.processing = 1 @@ -762,7 +762,7 @@ steam.start() -- spawns the effect var/turf/T = get_turf(src.holder) if(T != src.oldposition) if(istype(T, /turf/space)) - var/obj/effect/ion_trails/I = new /obj/effect/ion_trails(src.oldposition) + var/obj/effect/effect/ion_trails/I = new /obj/effect/effect/ion_trails(src.oldposition) src.oldposition = T I.dir = src.holder.dir flick("ion_fade", I) @@ -779,7 +779,7 @@ steam.start() -- spawns the effect src.processing = 1 src.start() -/datum/effect/system/ion_trail_follow/proc/stop() +/datum/effect/effect/system/ion_trail_follow/proc/stop() src.processing = 0 src.on = 0 @@ -792,18 +792,18 @@ steam.start() -- spawns the effect // even if it's carried of thrown. ///////////////////////////////////////////// -/datum/effect/system/steam_trail_follow +/datum/effect/effect/system/steam_trail_follow var/atom/holder var/turf/oldposition var/processing = 1 var/on = 1 var/number -/datum/effect/system/steam_trail_follow/proc/set_up(atom/atom) +/datum/effect/effect/system/steam_trail_follow/proc/set_up(atom/atom) holder = atom oldposition = get_turf(atom) -/datum/effect/system/steam_trail_follow/proc/start() +/datum/effect/effect/system/steam_trail_follow/proc/start() if(!src.on) src.on = 1 src.processing = 1 @@ -811,7 +811,7 @@ steam.start() -- spawns the effect src.processing = 0 spawn(0) if(src.number < 3) - var/obj/effect/steam/I = new /obj/effect/steam(src.oldposition) + var/obj/effect/effect/steam/I = new /obj/effect/effect/steam(src.oldposition) src.number++ src.oldposition = get_turf(holder) I.dir = src.holder.dir @@ -828,7 +828,7 @@ steam.start() -- spawns the effect src.processing = 1 src.start() -/datum/effect/system/steam_trail_follow/proc/stop() +/datum/effect/effect/system/steam_trail_follow/proc/stop() src.processing = 0 src.on = 0 @@ -838,7 +838,7 @@ steam.start() -- spawns the effect // Similar to smoke, but spreads out more // metal foams leave behind a foamed metal wall -/obj/effect/foam +/obj/effect/effect/foam name = "foam" icon_state = "foam" opacity = 0 @@ -852,7 +852,7 @@ steam.start() -- spawns the effect var/metal = 0 -/obj/effect/foam/New(loc, var/ismetal=0) +/obj/effect/effect/foam/New(loc, var/ismetal=0) ..(loc) icon_state = "[ismetal ? "m":""]foam" metal = ismetal @@ -874,7 +874,7 @@ steam.start() -- spawns the effect return // on delete, transfer any reagents to the floor -/obj/effect/foam/Del() +/obj/effect/effect/foam/Del() if(!metal && reagents) for(var/atom/A in oview(0,src)) if(A == src) @@ -882,7 +882,7 @@ steam.start() -- spawns the effect reagents.reaction(A, 1, 1) ..() -/obj/effect/foam/process() +/obj/effect/effect/foam/process() if(--amount < 0) return @@ -899,7 +899,7 @@ steam.start() -- spawns the effect if(!T.Enter(src)) continue - var/obj/effect/foam/F = locate() in T + var/obj/effect/effect/foam/F = locate() in T if(F) continue @@ -914,7 +914,7 @@ steam.start() -- spawns the effect // foam disolves when heated // except metal foams -/obj/effect/foam/temperature_expose(datum/gas_mixture/air, exposed_temperature, exposed_volume) +/obj/effect/effect/foam/temperature_expose(datum/gas_mixture/air, exposed_temperature, exposed_volume) if(!metal && prob(max(0, exposed_temperature - 475))) flick("[icon_state]-disolve", src) @@ -922,7 +922,7 @@ steam.start() -- spawns the effect del(src) -/obj/effect/foam/HasEntered(var/atom/movable/AM) +/obj/effect/effect/foam/HasEntered(var/atom/movable/AM) if(metal) return @@ -938,7 +938,7 @@ steam.start() -- spawns the effect M.weakened = 2 -/datum/effect/system/foam_spread +/datum/effect/effect/system/foam_spread var/amount = 5 // the size of the foam spread. var/turf/location var/list/carried_reagents // the IDs of reagents present when the foam was mixed @@ -947,7 +947,7 @@ steam.start() -- spawns the effect -/datum/effect/system/foam_spread/proc/set_up(amt=5, loca, var/datum/reagents/carry = null, var/metalfoam = 0) +/datum/effect/effect/system/foam_spread/proc/set_up(amt=5, loca, var/datum/reagents/carry = null, var/metalfoam = 0) amount = round(amt/5, 1) if(istype(loca, /turf/)) location = loca @@ -967,9 +967,9 @@ steam.start() -- spawns the effect for(var/datum/reagent/R in carry.reagent_list) carried_reagents += R.id -/datum/effect/system/foam_spread/proc/start() +/datum/effect/effect/system/foam_spread/proc/start() spawn(0) - var/obj/effect/foam/F = locate() in location + var/obj/effect/effect/foam/F = locate() in location if(F) F.amount += amount return @@ -1117,13 +1117,13 @@ steam.start() -- spawns the effect return 1 -/datum/effect/system/reagents_explosion +/datum/effect/effect/system/reagents_explosion var/amount // TNT equivalent var/turf/location var/flashing = 0 // does explosion creates flash effect? var/flashing_factor = 0 // factor of how powerful the flash effect relatively to the explosion -/datum/effect/system/reagents_explosion/proc/set_up (amt, loc, flash = 0, flash_fact = 0) +/datum/effect/effect/system/reagents_explosion/proc/set_up (amt, loc, flash = 0, flash_fact = 0) amount = amt if(istype(loc, /turf/)) location = loc @@ -1135,9 +1135,9 @@ steam.start() -- spawns the effect return -/datum/effect/system/reagents_explosion/proc/start() +/datum/effect/effect/system/reagents_explosion/proc/start() if (amount <= 2) - var/datum/effect/system/spark_spread/s = new /datum/effect/system/spark_spread + var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread s.set_up(2, 1, location) s.start() diff --git a/code/game/objects/gibs.dm b/code/game/objects/gibs.dm index 629a99e7f96..15dcb69af2e 100644 --- a/code/game/objects/gibs.dm +++ b/code/game/objects/gibs.dm @@ -33,7 +33,7 @@ del(D) if(sparks) - var/datum/effect/system/spark_spread/s = new /datum/effect/system/spark_spread + var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread s.set_up(2, 1, location) s.start() diff --git a/code/game/objects/grille.dm b/code/game/objects/grille.dm index ccf6ce7a0f7..6c89401cdcc 100644 --- a/code/game/objects/grille.dm +++ b/code/game/objects/grille.dm @@ -150,7 +150,7 @@ var/obj/structure/cable/C = T.get_cable_node() if(C) if (electrocute_mob(user, C, src)) - var/datum/effect/system/spark_spread/s = new /datum/effect/system/spark_spread + var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread s.set_up(5, 1, src) s.start() return 1 diff --git a/code/game/objects/items.dm b/code/game/objects/items.dm index cb53bc3bdd8..a41fcfe6871 100644 --- a/code/game/objects/items.dm +++ b/code/game/objects/items.dm @@ -27,7 +27,7 @@ M.handcuffed = new /obj/item/weapon/handcuffs(M) else - if ((usr.mutations & CLOWN) && prob(50)) + if ((usr.mutations & CLUMSY) && prob(50)) usr << "\red Uh ... how do those things work?!" if (istype(M, /mob/living/carbon/human)) var/obj/effect/equip_e/human/O = new /obj/effect/equip_e/human( ) @@ -123,7 +123,7 @@ for(var/a=0, a<5, a++) spawn(0) - var/obj/effect/water/W = new /obj/effect/water( get_turf(src) ) + var/obj/effect/effect/water/W = new /obj/effect/effect/water( get_turf(src) ) var/turf/my_target = pick(the_targets) var/datum/reagents/R = new/datum/reagents(5) if(!W) return diff --git a/code/game/objects/items/item.dm b/code/game/objects/items/item.dm index 72ddbbf44bf..c8d5e170840 100644 --- a/code/game/objects/items/item.dm +++ b/code/game/objects/items/item.dm @@ -99,7 +99,7 @@ if(5.0) t = "huge" else - if ((usr.mutations & CLOWN) && prob(50)) t = "funny-looking" + if ((usr.mutations & CLUMSY) && prob(50)) t = "funny-looking" usr << text("This is a []\icon[][]. It is a [] item.", !src.blood_DNA ? "" : "bloody ",src, src.name, t) if(src.desc) usr << src.desc @@ -330,6 +330,12 @@ src.add_fingerprint(user) return 1 + +/obj/item/proc/IsShield() + return 0 + + + /obj/item/proc/eyestab(mob/living/carbon/M as mob, mob/living/carbon/user as mob) var/mob/living/carbon/human/H = M @@ -358,7 +364,7 @@ M.attack_log += "\[[time_stamp()]\] Attacked by [user.name] ([user.ckey]) with [src.name] (INTENT: [uppertext(user.a_intent)])" src.add_fingerprint(user) - //if((user.mutations & CLOWN) && prob(50)) + //if((user.mutations & CLUMSY) && prob(50)) // M = user /* M << "\red You stab yourself in the eye." @@ -377,7 +383,7 @@ "\red You stab yourself in the eyes with [src]!" \ ) if(istype(M, /mob/living/carbon/human)) - var/datum/organ/external/affecting = M:organs["head"] + var/datum/organ/external/affecting = M:get_organ("head") affecting.take_damage(7) else M.take_organ_damage(7) diff --git a/code/game/objects/items/weapons/RCD.dm b/code/game/objects/items/weapons/RCD.dm index 323d2859319..69416e53c06 100644 --- a/code/game/objects/items/weapons/RCD.dm +++ b/code/game/objects/items/weapons/RCD.dm @@ -19,7 +19,7 @@ RCD m_amt = 50000 origin_tech = "engineering=4;materials=2" var - datum/effect/system/spark_spread/spark_system + datum/effect/effect/system/spark_spread/spark_system matter = 0 working = 0 mode = 1 @@ -28,7 +28,7 @@ RCD New() desc = "A RCD. It currently holds [matter]/30 matter-units." - src.spark_system = new /datum/effect/system/spark_spread + src.spark_system = new /datum/effect/effect/system/spark_spread spark_system.set_up(5, 0, src) spark_system.attach(src) return diff --git a/code/game/objects/items/weapons/grenades.dm b/code/game/objects/items/weapons/grenades.dm index 6086c4292ab..28090a66ec6 100644 --- a/code/game/objects/items/weapons/grenades.dm +++ b/code/game/objects/items/weapons/grenades.dm @@ -65,7 +65,7 @@ FLASHBANG clown_check(var/mob/living/user) - if((user.mutations & CLOWN) && prob(50)) + if((user.mutations & CLUMSY) && prob(50)) user << "\red Huh? How does this thing work?!" src.active = 1 src.icon_state = "empar" @@ -242,7 +242,7 @@ FLASHBANG clown_check(var/mob/living/user) - if ((user.mutations & CLOWN) && prob(50)) + if ((user.mutations & CLUMSY) && prob(50)) user << "\red Huh? How does this thing work?!" src.active = 1 src.icon_state = "flashbang1" diff --git a/code/game/objects/items/weapons/hydroponics.dm b/code/game/objects/items/weapons/hydroponics.dm index b7a5b5aee05..26486b4b2a7 100644 --- a/code/game/objects/items/weapons/hydroponics.dm +++ b/code/game/objects/items/weapons/hydroponics.dm @@ -77,8 +77,8 @@ Deathnettle if(!user.gloves) user << "\red The nettle burns your bare hand!" if(istype(user, /mob/living/carbon/human)) - var/organ = (user.hand ? "l_":"r_") + pick("hand","hand","arm") - var/datum/organ/external/affecting = user.organs[organ] + var/organ = ((user.hand ? "l_":"r_") + "arm") + var/datum/organ/external/affecting = user.get_organ(organ) affecting.take_damage(0,force) else user.take_organ_damage(0,force) @@ -96,8 +96,8 @@ Deathnettle /obj/item/weapon/grown/deathnettle/pickup(mob/living/carbon/human/user as mob) if(!user.gloves) if(istype(user, /mob/living/carbon/human)) - var/organ = (user.hand ? "l_":"r_") + pick("hand","hand","arm") - var/datum/organ/external/affecting = user.organs[organ] + var/organ = ((user.hand ? "l_":"r_") + "arm") + var/datum/organ/external/affecting = user.get_organ(organ) affecting.take_damage(0,force) else user.take_organ_damage(0,force) diff --git a/code/game/objects/items/weapons/kitchen.dm b/code/game/objects/items/weapons/kitchen.dm index 937e256bbb8..70aaa51329a 100644 --- a/code/game/objects/items/weapons/kitchen.dm +++ b/code/game/objects/items/weapons/kitchen.dm @@ -37,7 +37,7 @@ KNIFE src.icon_state = "fork" return else - if((user.mutations & CLOWN) && prob(50)) + if((user.mutations & CLUMSY) && prob(50)) M = user return eyestab(M,user) @@ -47,7 +47,7 @@ KNIFE // ROLLING PIN /obj/item/weapon/kitchen/rollingpin/attack(mob/M as mob, mob/living/user as mob) - if ((user.mutations & CLOWN) && prob(50)) + if ((user.mutations & CLUMSY) && prob(50)) user << "\red The [src] slips out of your hand and hits your head." user.take_organ_damage(10) user.paralysis += 2 @@ -84,7 +84,7 @@ KNIFE // KNIFE /obj/item/weapon/kitchen/utensil/knife/attack(target as mob, mob/living/user as mob) - if ((user.mutations & CLOWN) && prob(50)) + if ((user.mutations & CLUMSY) && prob(50)) user << "\red You accidentally cut yourself with the [src]." user.take_organ_damage(20) return @@ -107,7 +107,7 @@ KNIFE sleep(rand(2,4)) - if((user.mutations & CLOWN) && prob(50)) //What if he's a clown? + if((user.mutations & CLUMSY) && prob(50)) //What if he's a clown? M << "\red You accidentally slam yourself with the [src]!" M.weakened += 1 user.take_organ_damage(2) diff --git a/code/game/objects/items/weapons/papers_bins.dm b/code/game/objects/items/weapons/papers_bins.dm index a2ba05b3dab..afc69a3a545 100644 --- a/code/game/objects/items/weapons/papers_bins.dm +++ b/code/game/objects/items/weapons/papers_bins.dm @@ -180,7 +180,7 @@ CLIPBOARDS set category = "Object" set src in usr - if ((usr.mutations & CLOWN) && prob(50)) + if ((usr.mutations & CLUMSY) && prob(50)) usr << text("\red You cut yourself on the paper.") return var/n_name = input(usr, "What would you like to label the paper?", "Paper Labelling", null) as text diff --git a/code/game/objects/items/weapons/surgery_tools.dm b/code/game/objects/items/weapons/surgery_tools.dm index b73b508df45..e402842e3f0 100644 --- a/code/game/objects/items/weapons/surgery_tools.dm +++ b/code/game/objects/items/weapons/surgery_tools.dm @@ -68,7 +68,7 @@ CIRCULAR SAW if(M == user && prob(25)) user << "\red You mess up!" if(istype(M, /mob/living/carbon/human)) - var/datum/organ/external/affecting = M:organs["head"] + var/datum/organ/external/affecting = M:get_organ("head") affecting.take_damage(15) M.updatehealth() else @@ -154,7 +154,7 @@ CIRCULAR SAW if(M == user && prob(25)) user << "\red You mess up!" if(istype(M, /mob/living/carbon/human)) - var/datum/organ/external/affecting = M:organs["head"] + var/datum/organ/external/affecting = M:get_organ("head") affecting.take_damage(15) M.updatehealth() else @@ -229,7 +229,7 @@ CIRCULAR SAW if(M == user && prob(25)) user << "\red You mess up!" if(istype(M, /mob/living/carbon/human)) - var/datum/organ/external/affecting = M:organs["head"] + var/datum/organ/external/affecting = M:get_organ("head") affecting.take_damage(15) M.updatehealth() else @@ -253,7 +253,7 @@ CIRCULAR SAW if(!istype(M)) return ..() - if((user.mutations & CLOWN) && prob(50)) + if((user.mutations & CLUMSY) && prob(50)) M = user return eyestab(M,user) @@ -325,13 +325,13 @@ CIRCULAR SAW if(M == user && prob(25)) user << "\red You mess up!" if(istype(M, /mob/living/carbon/human)) - var/datum/organ/external/affecting = M:organs["head"] + var/datum/organ/external/affecting = M:get_organ("head") affecting.take_damage(15) else M.take_organ_damage(15) if(istype(M, /mob/living/carbon/human)) - var/datum/organ/external/affecting = M:organs["head"] + var/datum/organ/external/affecting = M:get_organ("head") affecting.take_damage(7) else M.take_organ_damage(7) @@ -370,13 +370,13 @@ CIRCULAR SAW if(M == user && prob(25)) user << "\red You nick an artery!" if(istype(M, /mob/living/carbon/human)) - var/datum/organ/external/affecting = M:organs["head"] + var/datum/organ/external/affecting = M:get_organ("head") affecting.take_damage(75) else M.take_organ_damage(75) if(istype(M, /mob/living/carbon/human)) - var/datum/organ/external/affecting = M:organs["head"] + var/datum/organ/external/affecting = M:get_organ("head") affecting.take_damage(7) else M.take_organ_damage(7) @@ -425,7 +425,7 @@ CIRCULAR SAW if(M == user && prob(25)) user << "\red You mess up!" if(istype(M, /mob/living/carbon/human)) - var/datum/organ/external/affecting = M:organs["head"] + var/datum/organ/external/affecting = M:get_organ("head") affecting.take_damage(15) else M.take_organ_damage(15) @@ -450,7 +450,7 @@ CIRCULAR SAW if(!istype(M)) return ..() - if((user.mutations & CLOWN) && prob(50)) + if((user.mutations & CLUMSY) && prob(50)) M = user return eyestab(M,user) @@ -494,14 +494,14 @@ CIRCULAR SAW if(M == user && prob(25)) user << "\red You mess up!" if(istype(M, /mob/living/carbon/human)) - var/datum/organ/external/affecting = M:organs["head"] + var/datum/organ/external/affecting = M:get_organ("head") affecting.take_damage(40) M.updatehealth() else M.take_organ_damage(40) if(istype(M, /mob/living/carbon/human)) - var/datum/organ/external/affecting = M:organs["head"] + var/datum/organ/external/affecting = M:get_organ("head") affecting.take_damage(7) else M.take_organ_damage(7) diff --git a/code/game/objects/items/weapons/swords_axes_etc.dm b/code/game/objects/items/weapons/swords_axes_etc.dm index c3b76293ee8..6a29f44c745 100644 --- a/code/game/objects/items/weapons/swords_axes_etc.dm +++ b/code/game/objects/items/weapons/swords_axes_etc.dm @@ -10,6 +10,11 @@ STUN BATON // SWORD +/obj/item/weapon/melee/energy/sword/IsShield() + if(active) + return 1 + return 0 + /obj/item/weapon/melee/energy/sword/attack(target as mob, mob/user as mob) ..() @@ -17,7 +22,7 @@ STUN BATON color = pick("red","blue","green","purple") /obj/item/weapon/melee/energy/sword/attack_self(mob/living/user as mob) - if ((user.mutations & CLOWN) && prob(50)) + if ((user.mutations & CLUMSY) && prob(50)) user << "\red You accidentally cut yourself with [src]." user.take_organ_damage(5,5) active = !active @@ -55,7 +60,7 @@ STUN BATON //Most of the other special functions are handled in their own files. /obj/item/weapon/melee/energy/blade/New() - spark_system = new /datum/effect/system/spark_spread() + spark_system = new /datum/effect/effect/system/spark_spread() spark_system.set_up(5, 0, src) spark_system.attach(src) return @@ -98,7 +103,7 @@ STUN BATON /obj/item/weapon/melee/baton/attack_self(mob/user as mob) src.status = !( src.status ) - if ((usr.mutations & CLOWN) && prob(50)) + if ((usr.mutations & CLUMSY) && prob(50)) usr << "\red You grab the stunbaton on the wrong side." usr.paralysis += 60 return @@ -114,7 +119,7 @@ STUN BATON return /obj/item/weapon/melee/baton/attack(mob/M as mob, mob/user as mob) - if ((usr.mutations & CLOWN) && prob(50)) + if ((usr.mutations & CLUMSY) && prob(50)) usr << "\red You grab the stunbaton on the wrong side." usr.weakened += 30 return @@ -186,7 +191,7 @@ STUN BATON charges -= 5 /obj/item/weapon/melee/classic_baton/attack(mob/M as mob, mob/living/user as mob) - if ((user.mutations & CLOWN) && prob(50)) + if ((user.mutations & CLUMSY) && prob(50)) user << "\red You club yourself over the head." user.weakened = max(3 * force, user.weakened) if(ishuman(user)) diff --git a/code/game/objects/items/weapons/tools.dm b/code/game/objects/items/weapons/tools.dm index bbc3d988381..ade36179d48 100644 --- a/code/game/objects/items/weapons/tools.dm +++ b/code/game/objects/items/weapons/tools.dm @@ -39,7 +39,7 @@ WELDINGTOOOL if(!istype(M)) return ..() if(user.zone_sel.selecting != "eyes" && user.zone_sel.selecting != "head") return ..() - if((user.mutations & CLOWN) && prob(50)) + if((user.mutations & CLUMSY) && prob(50)) M = user return eyestab(M,user) diff --git a/code/game/objects/new_year.dm b/code/game/objects/new_year.dm index 72fc742aeb1..c6394eb1121 100644 --- a/code/game/objects/new_year.dm +++ b/code/game/objects/new_year.dm @@ -59,7 +59,7 @@ /obj/item/weapon/firbang/afterattack(atom/target as mob|obj|turf|area, mob/user as mob) if (user.equipped() == src) - if ((user.mutations & CLOWN) && prob(50)) + if ((user.mutations & CLUMSY) && prob(50)) user << "\red Huh? How does this thing work?!" src.state = 1 src.icon_state = "flashbang1" @@ -94,11 +94,11 @@ playsound(src.loc, 'bang.ogg', 25, 1) var/turf/T = get_turf(src) if(T) - var/datum/effect/system/harmless_smoke_spread/smoke = new + var/datum/effect/effect/system/harmless_smoke_spread/smoke = new smoke.set_up(3, 0, src.loc) smoke.attach(src) smoke.start() - var/datum/effect/system/spark_spread/s = new /datum/effect/system/spark_spread + var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread s.set_up(3, 1, src) s.start() new /obj/effect/new_year_tree(T) @@ -107,7 +107,7 @@ /obj/item/weapon/firbang/attack_self(mob/user as mob) if (!src.state) - if (user.mutations & CLOWN) + if (user.mutations & CLUMSY) user << "\red Huh? How does this thing work?!" spawn( 5 ) prime() diff --git a/code/game/objects/radio/electropack.dm b/code/game/objects/radio/electropack.dm index 082c29848f8..3920b0ab354 100644 --- a/code/game/objects/radio/electropack.dm +++ b/code/game/objects/radio/electropack.dm @@ -134,7 +134,7 @@ if (M.moved_recently && M.last_move) step(M, M.last_move) M.show_message("\red You feel a sharp shock!") - var/datum/effect/system/spark_spread/s = new /datum/effect/system/spark_spread + var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread s.set_up(3, 1, M) s.start() diff --git a/code/game/objects/radio/newradio.dm b/code/game/objects/radio/newradio.dm new file mode 100644 index 00000000000..fc80055b943 --- /dev/null +++ b/code/game/objects/radio/newradio.dm @@ -0,0 +1,48 @@ +/obj/item/device/Nradio + icon = 'radio.dmi' + name = "station bounced radio" + suffix = "\[3\]" + icon_state = "walkietalkie" + item_state = "walkietalkie" + + flags = 450//FFFF what does this even mean likely conduct+onbelt+someothershit + throw_speed = 2 + throw_range = 9 + w_class = 2 + g_amt = 25 + m_amt = 75 + + var + //General things + frequency = 1459 //Default freq + broadcasting = 0 //Mike + listening = 1 //Speaker + secured = 0 //Can you see our wires + freerange = 0 // 0 - Sanitize frequencies, 1 - Full range + + datum/radio_frequency/radio_connection = null + list/datum/radio_frequency/secure_radio_connections = new + + //Internal things + obj/item/weapon/syndicate_uplink/uplink = null //If we have an uplink one of our freqs will activate it + wires = WIRE_RECEIVE | WIRE_TRANSMIT //Active wires + + list/channels = list() //see communications.dm for full list. First channes is a "default" for :h +// "Example" = FREQ_LISTENING|FREQ_BROADCASTING + + last_transmission //What is this + obj/item/device/radio/patch_link = null //What is this + + var/const + WIRE_TRANSMIT = 1 //sends a signal, like to set off a bomb or electrocute someone, or talk + WIRE_RECEIVE = 2 //we can hear things + TRANSMISSION_DELAY = 5 // only 2/second/radio antispam protection + FREQ_LISTENING = 1 + + + proc + set_frequency(new_frequency) + radio_controller.remove_object(src, frequency) + frequency = new_frequency + radio_connection = radio_controller.add_object(src, frequency, RADIO_CHAT) + diff --git a/code/game/objects/secstorage/sbriefcase.dm b/code/game/objects/secstorage/sbriefcase.dm index cdec94b4f71..3362984a608 100644 --- a/code/game/objects/secstorage/sbriefcase.dm +++ b/code/game/objects/secstorage/sbriefcase.dm @@ -16,7 +16,7 @@ new /obj/item/weapon/pen(src) /obj/item/weapon/secstorage/sbriefcase/attack(mob/M as mob, mob/living/user as mob) - if ((user.mutations & CLOWN) && prob(50)) + if ((user.mutations & CLUMSY) && prob(50)) user << "\red The [src] slips out of your hand and hits your head." user.take_organ_damage(10) user.paralysis += 2 diff --git a/code/game/objects/secstorage/secstorage.dm b/code/game/objects/secstorage/secstorage.dm index 724529eb351..864bb1f6310 100644 --- a/code/game/objects/secstorage/secstorage.dm +++ b/code/game/objects/secstorage/secstorage.dm @@ -102,7 +102,7 @@ overlays += image('storage.dmi', icon_locking) locked = 0 if(istype(W, /obj/item/weapon/melee/energy/blade)) - var/datum/effect/system/spark_spread/spark_system = new /datum/effect/system/spark_spread() + var/datum/effect/effect/system/spark_spread/spark_system = new /datum/effect/effect/system/spark_spread() spark_system.set_up(5, 0, src.loc) spark_system.start() playsound(src.loc, 'blade1.ogg', 50, 1) diff --git a/code/game/objects/secure_closets.dm b/code/game/objects/secure_closets.dm index 64837bd7059..e5ffb532689 100644 --- a/code/game/objects/secure_closets.dm +++ b/code/game/objects/secure_closets.dm @@ -164,7 +164,7 @@ desc = "It appears to be broken." icon_state = src.icon_broken if(istype(W, /obj/item/weapon/melee/energy/blade)) - var/datum/effect/system/spark_spread/spark_system = new /datum/effect/system/spark_spread() + var/datum/effect/effect/system/spark_spread/spark_system = new /datum/effect/effect/system/spark_spread() spark_system.set_up(5, 0, src.loc) spark_system.start() playsound(src.loc, 'blade1.ogg', 50, 1) diff --git a/code/game/objects/stacks/glass.dm b/code/game/objects/stacks/glass.dm index 107edfa856c..6665ffcf75f 100644 --- a/code/game/objects/stacks/glass.dm +++ b/code/game/objects/stacks/glass.dm @@ -168,7 +168,7 @@ SHARDS if(ishuman(M)) var/mob/living/carbon/human/H = M if(!H.shoes) - var/datum/organ/external/affecting = H.organs[pick("l_foot", "r_foot")] + var/datum/organ/external/affecting = H.get_organ(pick("l_leg", "r_leg")) H.weakened = max(3, H.weakened) affecting.take_damage(5, 0) H.UpdateDamageIcon() diff --git a/code/game/objects/stool.dm b/code/game/objects/stool.dm index 4cd21ddea6d..5f1214fc8db 100644 --- a/code/game/objects/stool.dm +++ b/code/game/objects/stool.dm @@ -189,7 +189,7 @@ flick("e_chairs", src) flick("e_chairos", src.overl) - var/datum/effect/system/spark_spread/s = new /datum/effect/system/spark_spread + var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread s.set_up(12, 1, src) s.start() for(var/mob/living/M in src.loc) diff --git a/code/game/objects/storage/bible.dm b/code/game/objects/storage/bible.dm index cc77a59a9f1..7230ea9d55f 100644 --- a/code/game/objects/storage/bible.dm +++ b/code/game/objects/storage/bible.dm @@ -7,17 +7,14 @@ new /obj/item/weapon/spacecash(src) /obj/item/weapon/storage/bible/proc/bless(mob/living/carbon/M as mob) - var/mob/living/carbon/human/H = M - var/heal_amt = 10 - for(var/A in H.organs) - var/datum/organ/external/affecting = null - if(!H.organs[A]) continue - affecting = H.organs[A] - if(!istype(affecting, /datum/organ/external)) continue - if(affecting.heal_damage(heal_amt, heal_amt)) - H.UpdateDamageIcon() - else - H.UpdateDamage() + if(ishuman(M)) + var/mob/living/carbon/human/H = M + var/heal_amt = 10 + for(var/datum/organ/external/affecting in H.organs) + if(affecting.heal_damage(heal_amt, heal_amt)) + H.UpdateDamageIcon() + else + H.UpdateDamage() return /obj/item/weapon/storage/bible/attack(mob/M as mob, mob/living/user as mob) @@ -38,7 +35,7 @@ user.take_organ_damage(0,10) return - if ((user.mutations & CLOWN) && prob(50)) + if ((user.mutations & CLUMSY) && prob(50)) user << "\red The [src] slips out of your hand and hits your head." user.take_organ_damage(10) user.paralysis += 20 diff --git a/code/game/objects/storage/briefcase.dm b/code/game/objects/storage/briefcase.dm index 3cbdc434126..d29aa0c830b 100644 --- a/code/game/objects/storage/briefcase.dm +++ b/code/game/objects/storage/briefcase.dm @@ -11,7 +11,7 @@ /obj/item/weapon/storage/briefcase/attack(mob/M as mob, mob/living/user as mob) //..() - if ((user.mutations & CLOWN) && prob(50)) + if ((user.mutations & CLUMSY) && prob(50)) user << "\red The [src] slips out of your hand and hits your head." user.take_organ_damage(10) user.paralysis += 2 diff --git a/code/game/objects/storage/lockbox.dm b/code/game/objects/storage/lockbox.dm index bc618e454cc..49b9d3b3fda 100644 --- a/code/game/objects/storage/lockbox.dm +++ b/code/game/objects/storage/lockbox.dm @@ -39,7 +39,7 @@ desc = "It appears to be broken." icon_state = src.icon_broken if(istype(W, /obj/item/weapon/melee/energy/blade)) - var/datum/effect/system/spark_spread/spark_system = new /datum/effect/system/spark_spread() + var/datum/effect/effect/system/spark_spread/spark_system = new /datum/effect/effect/system/spark_spread() spark_system.set_up(5, 0, src.loc) spark_system.start() playsound(src.loc, 'blade1.ogg', 50, 1) diff --git a/code/game/objects/tables_racks.dm b/code/game/objects/tables_racks.dm index db9eaf1de38..5ca6acab859 100644 --- a/code/game/objects/tables_racks.dm +++ b/code/game/objects/tables_racks.dm @@ -144,7 +144,7 @@ TABLE AND RACK OBJECT INTERATIONS return if(istype(W, /obj/item/weapon/melee/energy/blade)) - var/datum/effect/system/spark_spread/spark_system = new /datum/effect/system/spark_spread() + var/datum/effect/effect/system/spark_spread/spark_system = new /datum/effect/effect/system/spark_spread() spark_system.set_up(5, 0, src.loc) spark_system.start() playsound(src.loc, 'blade1.ogg', 50, 1) @@ -186,7 +186,7 @@ TABLE AND RACK OBJECT INTERATIONS if(isrobot(user)) return if(istype(W, /obj/item/weapon/melee/energy/blade)) - var/datum/effect/system/spark_spread/spark_system = new /datum/effect/system/spark_spread() + var/datum/effect/effect/system/spark_spread/spark_system = new /datum/effect/effect/system/spark_spread() spark_system.set_up(5, 0, src.loc) spark_system.start() playsound(src.loc, 'blade1.ogg', 50, 1) @@ -256,7 +256,7 @@ TABLE AND RACK OBJECT INTERATIONS return if(istype(W, /obj/item/weapon/melee/energy/blade)) - var/datum/effect/system/spark_spread/spark_system = new /datum/effect/system/spark_spread() + var/datum/effect/effect/system/spark_spread/spark_system = new /datum/effect/effect/system/spark_spread() spark_system.set_up(5, 0, src.loc) spark_system.start() playsound(src.loc, 'blade1.ogg', 50, 1) diff --git a/code/game/objects/tank.dm b/code/game/objects/tank.dm index 0d59e73b099..71c68278d0a 100644 --- a/code/game/objects/tank.dm +++ b/code/game/objects/tank.dm @@ -29,7 +29,7 @@ var/on = 0.0 w_class = 4.0 item_state = "jetpack" - var/datum/effect/system/ion_trail_follow/ion_trail + var/datum/effect/effect/system/ion_trail_follow/ion_trail distribute_pressure = ONE_ATMOSPHERE*O2STANDARD //volume = 140 //jetpack sould be larger, but then it will never deplete -rastaf0 @@ -400,7 +400,7 @@ /obj/item/weapon/tank/jetpack/New() ..() - src.ion_trail = new /datum/effect/system/ion_trail_follow() + src.ion_trail = new /datum/effect/effect/system/ion_trail_follow() src.ion_trail.set_up(src) src.air_contents.oxygen = (6*ONE_ATMOSPHERE)*volume/(R_IDEAL_GAS_EQUATION*T20C) return @@ -424,7 +424,7 @@ /obj/item/weapon/tank/jetpack/proc/allow_thrust(num, mob/living/user as mob) if (!( src.on )) return 0 - if ((num < 0.01 || src.air_contents.total_moles() < num)) + if ((num < 0.005 || src.air_contents.total_moles() < num)) src.ion_trail.stop() return 0 diff --git a/code/game/objects/weapons.dm b/code/game/objects/weapons.dm index dd7eb83bde7..c7552ec1e81 100644 --- a/code/game/objects/weapons.dm +++ b/code/game/objects/weapons.dm @@ -5,7 +5,7 @@ user << " You have BANNED [M]" /obj/effect/mine/proc/triggerrad(obj) - var/datum/effect/system/spark_spread/s = new /datum/effect/system/spark_spread + var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread s.set_up(3, 1, src) s.start() obj:radiation += 50 @@ -16,7 +16,7 @@ /obj/effect/mine/proc/triggerstun(obj) obj:stunned += 30 - var/datum/effect/system/spark_spread/s = new /datum/effect/system/spark_spread + var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread s.set_up(3, 1, src) s.start() spawn(0) @@ -60,7 +60,7 @@ del(src) /obj/effect/mine/proc/triggerkick(obj) - var/datum/effect/system/spark_spread/s = new /datum/effect/system/spark_spread + var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread s.set_up(3, 1, src) s.start() del(obj:client) @@ -129,11 +129,11 @@ switch(type) if("feet") if(!H.shoes) - affecting = H.organs[pick("l_foot", "r_foot")] + affecting = H.get_organ(pick("l_leg", "r_leg")) H.weakened = max(3, H.weakened) if("l_hand", "r_hand") if(!H.gloves) - affecting = H.organs[type] + affecting = H.get_organ(type) H.stunned = max(3, H.stunned) if(affecting) affecting.take_damage(1, 0) @@ -153,7 +153,7 @@ user << "\blue You arm the mousetrap." else icon_state = "mousetrap" - if((user.brainloss >= 60 || user.mutations & CLOWN) && prob(50)) + if((user.brainloss >= 60 || user.mutations & CLUMSY) && prob(50)) var/which_hand = "l_hand" if(!user.hand) which_hand = "r_hand" @@ -170,7 +170,7 @@ /obj/item/weapon/mousetrap/attack_hand(mob/user as mob) if(armed) - if((user.brainloss >= 60 || user.mutations & CLOWN) && prob(50)) + if((user.brainloss >= 60 || user.mutations & CLUMSY) && prob(50)) var/which_hand = "l_hand" if(!user.hand) which_hand = "r_hand" diff --git a/code/game/vials.dm b/code/game/vials.dm index d6366ea0e73..f7f4483f243 100644 --- a/code/game/vials.dm +++ b/code/game/vials.dm @@ -186,7 +186,7 @@ var/i for(i=0, i<10, i++) spawn(0) - var/obj/effect/water/water1 = new /obj/effect/water( mobloc ) + var/obj/effect/effect/water/water1 = new /obj/effect/effect/water( mobloc ) var/direction = pick(alldirs) water1.name = "water" water1.density = 0 @@ -210,7 +210,7 @@ var/c for(c=0, c= 30) - var/datum/organ/external/affecting = M:organs["head"] + var/datum/organ/external/affecting = M:get_organ("head") if(affecting) affecting.take_damage(25, 0) M:UpdateDamage() @@ -691,7 +691,7 @@ datum del (M:head) M << "\red Your helmet melts into uselessness!" return - var/datum/organ/external/affecting = M:organs["head"] + var/datum/organ/external/affecting = M:get_organ("head") affecting.take_damage(35, 0) M:UpdateDamage() M:UpdateDamageIcon() @@ -706,7 +706,7 @@ datum M.take_organ_damage(min(15, volume * 4)) // same deal as sulphuric acid else if(istype(M, /mob/living/carbon/human)) - var/datum/organ/external/affecting = M:organs["head"] + var/datum/organ/external/affecting = M:get_organ("head") affecting.take_damage(30, 0) M:UpdateDamage() M:UpdateDamageIcon() diff --git a/code/modules/chemical/Chemistry-Recipes.dm b/code/modules/chemical/Chemistry-Recipes.dm index 1db83548317..1f1b79a4697 100644 --- a/code/modules/chemical/Chemistry-Recipes.dm +++ b/code/modules/chemical/Chemistry-Recipes.dm @@ -28,7 +28,7 @@ datum result_amount = 2 on_reaction(var/datum/reagents/holder, var/created_volume) var/location = get_turf(holder.my_atom) - var/datum/effect/system/reagents_explosion/e = new() + var/datum/effect/effect/system/reagents_explosion/e = new() e.set_up(round (created_volume/10, 1), location, 0, 0) e.start() @@ -277,7 +277,7 @@ datum result_amount = 2 on_reaction(var/datum/reagents/holder, var/created_volume) var/location = get_turf(holder.my_atom) - var/datum/effect/system/reagents_explosion/e = new() + var/datum/effect/effect/system/reagents_explosion/e = new() e.set_up(round (created_volume/2, 1), location, 0, 0) e.start() @@ -299,7 +299,7 @@ datum result_amount = null on_reaction(var/datum/reagents/holder, var/created_volume) var/location = get_turf(holder.my_atom) - var/datum/effect/system/spark_spread/s = new /datum/effect/system/spark_spread + var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread s.set_up(2, 1, location) s.start() for(var/mob/living/carbon/M in viewers(world.view, location)) @@ -378,7 +378,7 @@ datum secondary = 1 on_reaction(var/datum/reagents/holder, var/created_volume) var/location = get_turf(holder.my_atom) - var/datum/effect/system/chem_smoke_spread/S = new /datum/effect/system/chem_smoke_spread + var/datum/effect/effect/system/chem_smoke_spread/S = new /datum/effect/effect/system/chem_smoke_spread S.attach(location) S.set_up(holder, 10, 0, location) playsound(location, 'smoke.ogg', 50, 1, -3) @@ -438,7 +438,7 @@ datum //for(var/datum/reagent/R in holder.reagent_list) // world << "[R.name] = [R.volume]" - var/datum/effect/system/foam_spread/s = new() + var/datum/effect/effect/system/foam_spread/s = new() s.set_up(created_volume, location, holder, 0) s.start() holder.clear_reagents() @@ -460,7 +460,7 @@ datum for(var/mob/M in viewers(5, location)) M << "\red The solution spews out a metalic foam!" - var/datum/effect/system/foam_spread/s = new() + var/datum/effect/effect/system/foam_spread/s = new() s.set_up(created_volume/2, location, holder, 1) s.start() return @@ -480,7 +480,7 @@ datum for(var/mob/M in viewers(5, location)) M << "\red The solution spews out a metalic foam!" - var/datum/effect/system/foam_spread/s = new() + var/datum/effect/effect/system/foam_spread/s = new() s.set_up(created_volume/2, location, holder, 2) s.start() return @@ -537,7 +537,7 @@ datum required_other = 2 on_reaction(var/datum/reagents/holder, var/created_volume) var/location = get_turf(holder.my_atom) - var/datum/effect/system/reagents_explosion/e = new() + var/datum/effect/effect/system/reagents_explosion/e = new() e.set_up(round (created_volume/10, 1), location, 0, 0) e.start() @@ -759,7 +759,7 @@ datum //for(var/datum/reagent/R in holder.reagent_list) // world << "[R.name] = [R.volume]" - var/datum/effect/system/foam_spread/s = new() + var/datum/effect/effect/system/foam_spread/s = new() s.set_up(created_volume, location, holder, 0) s.start() holder.clear_reagents() diff --git a/code/modules/chemical/Chemistry-Tools.dm b/code/modules/chemical/Chemistry-Tools.dm index 894e1a0707f..8b0cbf183c9 100644 --- a/code/modules/chemical/Chemistry-Tools.dm +++ b/code/modules/chemical/Chemistry-Tools.dm @@ -225,7 +225,7 @@ G.reagents.trans_to(src, G.reagents.total_volume) if(src.reagents.total_volume) //The possible reactions didnt use up all reagents. - var/datum/effect/system/steam_spread/steam = new /datum/effect/system/steam_spread() + var/datum/effect/effect/system/steam_spread/steam = new /datum/effect/effect/system/steam_spread() steam.set_up(10, 0, get_turf(src)) steam.attach(src) steam.start() @@ -530,12 +530,12 @@ return if(2.0) if (prob(50)) - new /obj/effect/water(src.loc) + new /obj/effect/effect/water(src.loc) del(src) return if(3.0) if (prob(5)) - new /obj/effect/water(src.loc) + new /obj/effect/effect/water(src.loc) del(src) return else @@ -543,7 +543,7 @@ blob_act() if(prob(50)) - new /obj/effect/water(src.loc) + new /obj/effect/effect/water(src.loc) del(src) diff --git a/code/modules/clothing/spacesuits/ninja.dm b/code/modules/clothing/spacesuits/ninja.dm index b15e1dbe4c0..ce028fe46ac 100644 --- a/code/modules/clothing/spacesuits/ninja.dm +++ b/code/modules/clothing/spacesuits/ninja.dm @@ -22,7 +22,7 @@ //Important parts of the suit. mob/living/carbon/affecting = null//The wearer. obj/item/weapon/cell/cell//Starts out with a high-capacity cell using New(). - datum/effect/system/spark_spread/spark_system//To create sparks. + datum/effect/effect/system/spark_spread/spark_system//To create sparks. reagent_list[] = list("tricordrazine","dexalinp","spaceacillin","anti_toxin","nutriment","radium","hyronalin")//The reagents ids which are added to the suit at New(). stored_research[]//For stealing station research. obj/item/weapon/disk/tech_disk/t_disk//To copy design onto disk. diff --git a/code/modules/critters/critter_AI.dm b/code/modules/critters/critter_AI.dm index 9703a7d99c3..5448e894dd3 100644 --- a/code/modules/critters/critter_AI.dm +++ b/code/modules/critters/critter_AI.dm @@ -154,24 +154,13 @@ O.show_message("\red [src] [src.attacktext] [src.target]!", 1) if(ismob(src.target)) - var/damage = rand(melee_damage_lower, melee_damage_upper) if(istype(target, /mob/living/carbon/human)) - var/dam_zone = pick("head", "chest", "l_hand", "r_hand", "l_leg", "r_leg", "groin") - if (dam_zone == "chest") - if ((((target:wear_suit && target:wear_suit.body_parts_covered & UPPER_TORSO) || (target:w_uniform && target:w_uniform.body_parts_covered & LOWER_TORSO)) && prob(10))) - if(prob(20)) - target:show_message("\blue You have been protected from a hit to the chest.") - return - if (istype(target:organs[text("[]", dam_zone)], /datum/organ/external)) - var/datum/organ/external/temp = target:organs[text("[]", dam_zone)] - if (temp.take_damage(damage, 0)) - target:UpdateDamageIcon() - else - target:UpdateDamage() - target:updatehealth() - + var/mob/living/carbon/human/H = target + var/dam_zone = pick("chest", "l_hand", "r_hand", "l_leg", "r_leg") + var/datum/organ/external/affecting = H.get_organ(ran_zone(dam_zone)) + H.apply_damage(damage, BRUTE, affecting, H.run_armor_check(affecting, "melee")) else target:bruteloss += damage diff --git a/code/modules/critters/hivebots/hivebot.dm b/code/modules/critters/hivebots/hivebot.dm index 304e928cd8a..329660fe248 100644 --- a/code/modules/critters/hivebots/hivebot.dm +++ b/code/modules/critters/hivebots/hivebot.dm @@ -40,7 +40,7 @@ src.visible_message("[src] blows apart!") var/turf/Ts = get_turf(src) new /obj/effect/decal/cleanable/robot_debris(Ts) - var/datum/effect/system/spark_spread/s = new /datum/effect/system/spark_spread + var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread s.set_up(3, 1, src) s.start() del(src) @@ -198,7 +198,7 @@ New() ..() - var/datum/effect/system/harmless_smoke_spread/smoke = new /datum/effect/system/harmless_smoke_spread() + var/datum/effect/effect/system/harmless_smoke_spread/smoke = new /datum/effect/effect/system/harmless_smoke_spread() smoke.set_up(5, 0, src.loc) smoke.start() for(var/mob/O in viewers(src, null)) diff --git a/code/modules/mob/living/carbon/alien/humanoid/humanoid.dm b/code/modules/mob/living/carbon/alien/humanoid/humanoid.dm index 51a1ea9de32..82c89cca204 100644 --- a/code/modules/mob/living/carbon/alien/humanoid/humanoid.dm +++ b/code/modules/mob/living/carbon/alien/humanoid/humanoid.dm @@ -548,7 +548,7 @@ if (stunned < power) stunned = power - var/datum/effect/system/spark_spread/s = new /datum/effect/system/spark_spread + var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread s.set_up(5, 1, src) s.start() diff --git a/code/modules/mob/living/carbon/alien/humanoid/life.dm b/code/modules/mob/living/carbon/alien/humanoid/life.dm index 8d708a4461e..bc0bed6d3ee 100644 --- a/code/modules/mob/living/carbon/alien/humanoid/life.dm +++ b/code/modules/mob/living/carbon/alien/humanoid/life.dm @@ -212,7 +212,7 @@ breath = loc.remove_air(breath_moles) // Handle chem smoke effect -- Doohl - for(var/obj/effect/chem_smoke/smoke in view(1, src)) + for(var/obj/effect/effect/chem_smoke/smoke in view(1, src)) if(smoke.reagents.total_volume) smoke.reagents.reaction(src, INGEST) spawn(5) diff --git a/code/modules/mob/living/carbon/alien/larva/life.dm b/code/modules/mob/living/carbon/alien/larva/life.dm index e77b05f5ea6..f2535086aaf 100644 --- a/code/modules/mob/living/carbon/alien/larva/life.dm +++ b/code/modules/mob/living/carbon/alien/larva/life.dm @@ -193,7 +193,7 @@ breath = loc.remove_air(breath_moles) // Handle chem smoke effect -- Doohl - for(var/obj/effect/chem_smoke/smoke in view(1, src)) + for(var/obj/effect/effect/chem_smoke/smoke in view(1, src)) if(smoke.reagents.total_volume) smoke.reagents.reaction(src, INGEST) spawn(5) diff --git a/code/modules/mob/living/carbon/carbon.dm b/code/modules/mob/living/carbon/carbon.dm index 7e7d60a74f0..b9d51ff603e 100644 --- a/code/modules/mob/living/carbon/carbon.dm +++ b/code/modules/mob/living/carbon/carbon.dm @@ -19,7 +19,7 @@ var/d = rand(round(I.force / 4), I.force) if(istype(src, /mob/living/carbon/human)) var/mob/living/carbon/human/H = src - var/organ = H.organs["chest"] + var/organ = H.get_organ("chest") if (istype(organ, /datum/organ/external)) var/datum/organ/external/temp = organ temp.take_damage(d, 0) diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm index 5d62f250118..f093caf2cf1 100644 --- a/code/modules/mob/living/carbon/human/human.dm +++ b/code/modules/mob/living/carbon/human/human.dm @@ -264,107 +264,29 @@ if (prob(50) && !shielded) paralysis += 10 - for(var/organ in organs) - var/datum/organ/external/temp = organs[text("[]", organ)] - if (istype(temp, /datum/organ/external)) - switch(temp.name) - if("head") - temp.take_damage(b_loss * 0.2, f_loss * 0.2) - if("chest") - temp.take_damage(b_loss * 0.4, f_loss * 0.4) - if("groin") - temp.take_damage(b_loss * 0.1, f_loss * 0.1) - if("l_arm") - temp.take_damage(b_loss * 0.05, f_loss * 0.05) - if("r_arm") - temp.take_damage(b_loss * 0.05, f_loss * 0.05) -/* if("l_hand") -/ temp.take_damage(b_loss * 0.0225, f_loss * 0.0225) - if("r_hand") - temp.take_damage(b_loss * 0.0225, f_loss * 0.0225)*/ - if("l_leg") - temp.take_damage(b_loss * 0.05, f_loss * 0.05) - if("r_leg") - temp.take_damage(b_loss * 0.05, f_loss * 0.05) -/* if("l_foot") - temp.take_damage(b_loss * 0.0225, f_loss * 0.0225) - if("r_foot") - temp.take_damage(b_loss * 0.0225, f_loss * 0.0225)*/ - + for(var/datum/organ/external/temp in organs) + switch(temp.name) + if("head") + temp.take_damage(b_loss * 0.2, f_loss * 0.2) + if("chest") + temp.take_damage(b_loss * 0.4, f_loss * 0.4) + if("l_arm") + temp.take_damage(b_loss * 0.05, f_loss * 0.05) + if("r_arm") + temp.take_damage(b_loss * 0.05, f_loss * 0.05) + if("l_leg") + temp.take_damage(b_loss * 0.05, f_loss * 0.05) + if("r_leg") + temp.take_damage(b_loss * 0.05, f_loss * 0.05) UpdateDamageIcon() /mob/living/carbon/human/blob_act() - if (stat == 2) - return - var/damage = null - if (stat != 2) - damage = rand(30,40) - + if(stat == 2) return show_message("\red The blob attacks you!") - - var/list/zones = list("head","chest","chest", "groin", "l_arm", "r_arm", "l_leg", "r_leg") - - var/zone = pick(zones) - - var/datum/organ/external/temp = organs["[zone]"] - - switch(zone)//This really needs an update badly - if ("head") - if ((((head && head.body_parts_covered & HEAD) || (wear_mask && wear_mask.body_parts_covered & HEAD)) && prob(99))) - if (prob(20)) - temp.take_damage(damage, 0) - else - show_message("\red You have been protected from a hit to the head.") - return - if (damage > 4.9) - if (weakened < 10) - weakened = rand(10, 15) - for(var/mob/O in viewers(src, null)) - O.show_message(text("\red The blob has weakened []!", src), 1, "\red You hear someone fall.", 2) - temp.take_damage(damage) - if ("chest") - if ((((wear_suit && wear_suit.body_parts_covered & UPPER_TORSO) || (w_uniform && w_uniform.body_parts_covered & UPPER_TORSO)) && prob(85))) - show_message("\red You have been protected from a hit to the chest.") - return - if (damage > 4.9) - if (prob(50)) - if (weakened < 5) - weakened = 5 - for(var/mob/O in viewers(src, null)) - O.show_message(text("\red The blob has knocked down []!", src), 1, "\red You hear someone fall.", 2) - else - if (stunned < 5) - stunned = 5 - for(var/mob/O in viewers(src, null)) - if(O.client) O.show_message(text("\red The blob has stunned []!", src), 1) - if(stat != 2) stat = 1 - temp.take_damage(damage) - if ("groin") - if ((((wear_suit && wear_suit.body_parts_covered & LOWER_TORSO) || (w_uniform && w_uniform.body_parts_covered & LOWER_TORSO)) && prob(75))) - show_message("\red You have been protected from a hit to the lower chest.") - return - else - temp.take_damage(damage, 0) - - - if("l_arm") - temp.take_damage(damage, 0) - if("r_arm") - temp.take_damage(damage, 0) - if("l_hand") - temp.take_damage(damage, 0) - if("r_hand") - temp.take_damage(damage, 0) - if("l_leg") - temp.take_damage(damage, 0) - if("r_leg") - temp.take_damage(damage, 0) - if("l_foot") - temp.take_damage(damage, 0) - if("r_foot") - temp.take_damage(damage, 0) - + var/dam_zone = pick("chest", "l_hand", "r_hand", "l_leg", "r_leg") + var/datum/organ/external/affecting = get_organ(ran_zone(dam_zone)) + apply_damage(rand(30,40), BRUTE, affecting, run_armor_check(affecting, "melee")) UpdateDamageIcon() return @@ -1137,51 +1059,19 @@ */ last_b_state = stat -/mob/living/carbon/human/hand_p(mob/M as mob)//update needed - if (M.a_intent == "hurt") - if (istype(M.wear_mask, /obj/item/clothing/mask/muzzle)) - return - if (health > 0) - if (istype(wear_suit, /obj/item/clothing/suit/space)) - if (prob(25)) - for(var/mob/O in viewers(src, null)) - O.show_message(text("\red [M.name] has attempted to bite []!", src), 1) - return - else if (istype(wear_suit, /obj/item/clothing/suit/space/santa)) - if (prob(25)) - for(var/mob/O in viewers(src, null)) - O.show_message(text("\red [M.name] has attempted to bite []!", src), 1) - return - else if (istype(wear_suit, /obj/item/clothing/suit/bio_suit)) - if (prob(25)) - for(var/mob/O in viewers(src, null)) - O.show_message(text("\red [M.name] has attempted to bite []!", src), 1) - return - else if (istype(wear_suit, /obj/item/clothing/suit/armor)) - if (prob(25)) - for(var/mob/O in viewers(src, null)) - O.show_message(text("\red [M.name] has attempted to bite []!", src), 1) - return - else - for(var/mob/O in viewers(src, null)) - if ((O.client && !( O.blinded ))) - O.show_message(text("\red [M.name] has bit []!", src), 1) - var/damage = rand(1, 3) - var/dam_zone = pick("chest", "l_hand", "r_hand", "l_leg", "r_leg", "groin") - if (istype(organs[text("[]", dam_zone)], /datum/organ/external)) - var/datum/organ/external/temp = organs[text("[]", dam_zone)] - if (temp.take_damage(damage, 0)) - UpdateDamageIcon() - else - UpdateDamage() - updatehealth() +/mob/living/carbon/human/hand_p(mob/M as mob) + var/dam_zone = pick("chest", "l_hand", "r_hand", "l_leg", "r_leg") + var/datum/organ/external/affecting = get_organ(ran_zone(dam_zone)) + var/armor = run_armor_check(affecting, "melee") + apply_damage(rand(1,2), BRUTE, affecting, armor) + if(armor >= 2) return - for(var/datum/disease/D in M.viruses) - if(istype(D, /datum/disease/jungle_fever)) - var/mob/living/carbon/human/H = src - src = null - src = H.monkeyize() - contract_disease(D,1,0) + for(var/datum/disease/D in M.viruses) + if(istype(D, /datum/disease/jungle_fever)) + var/mob/living/carbon/human/H = src + src = null + src = H.monkeyize() + contract_disease(D,1,0) return @@ -1240,7 +1130,7 @@ if (stunned < power) stunned = power - var/datum/effect/system/spark_spread/s = new /datum/effect/system/spark_spread + var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread s.set_up(5, 1, src) s.start() diff --git a/code/modules/mob/living/carbon/human/human_attackhand.dm b/code/modules/mob/living/carbon/human/human_attackhand.dm index 0baebd8db5d..44a868b80e5 100644 --- a/code/modules/mob/living/carbon/human/human_attackhand.dm +++ b/code/modules/mob/living/carbon/human/human_attackhand.dm @@ -90,7 +90,6 @@ visible_message("\red [M] has weakened [src]!") apply_effect(4, WEAKEN, armor_block) UpdateDamageIcon() - updatehealth() if("disarm") @@ -99,7 +98,7 @@ if(w_uniform) w_uniform.add_fingerprint(M) - var/datum/organ/external/affecting = organs[ran_zone(M.zone_sel.selecting)] + var/datum/organ/external/affecting = get_organ(ran_zone(M.zone_sel.selecting)) var/randn = rand(1, 100) if (randn <= 25) apply_effect(2, WEAKEN, run_armor_check(affecting, "melee")) diff --git a/code/modules/mob/living/carbon/human/human_attackpaw.dm b/code/modules/mob/living/carbon/human/human_attackpaw.dm index 03b1e5f2cb6..8d01ca3e8f2 100644 --- a/code/modules/mob/living/carbon/human/human_attackpaw.dm +++ b/code/modules/mob/living/carbon/human/human_attackpaw.dm @@ -10,11 +10,9 @@ O.show_message(text("\red [M.name] has bit []!", src), 1) var/damage = rand(1, 3) - var/dam_zone = pick("chest", "l_hand", "r_hand", "l_leg", "r_leg", "groin") + var/dam_zone = pick("chest", "l_hand", "r_hand", "l_leg", "r_leg") var/datum/organ/external/affecting = get_organ(ran_zone(dam_zone)) - var/armor_block = run_armor_check(affecting, "melee") - apply_damage(damage, BRUTE, affecting, armor_block) - UpdateDamageIcon() + apply_damage(damage, BRUTE, affecting, run_armor_check(affecting, "melee")) for(var/datum/disease/D in M.viruses) if(istype(D, /datum/disease/jungle_fever)) diff --git a/code/modules/mob/living/carbon/human/human_damage.dm b/code/modules/mob/living/carbon/human/human_damage.dm index e1a9a0d8ba0..648947082e0 100644 --- a/code/modules/mob/living/carbon/human/human_damage.dm +++ b/code/modules/mob/living/carbon/human/human_damage.dm @@ -29,20 +29,14 @@ body_lying = list() UpdateDamage() for(var/datum/organ/external/O in organs) - if(istype(O, /datum/organ/external)) - var/icon/DI = new /icon('dam_human.dmi', O.damage_state) // the damage icon for whole human - DI.Blend(new /icon('dam_mask.dmi', O.icon_name), ICON_MULTIPLY) // mask with this organ's pixels - - // world << "[O.icon_name] [O.damage_state] \icon[DI]" - - body_standing += DI - - DI = new /icon('dam_human.dmi', "[O.damage_state]-2") // repeat for lying icons - DI.Blend(new /icon('dam_mask.dmi', "[O.icon_name]2"), ICON_MULTIPLY) - - // world << "[O.r_name]2 [O.d_i_state]-2 \icon[DI]" - - body_lying += DI + var/icon/DI = new /icon('dam_human.dmi', O.damage_state) // the damage icon for whole human + DI.Blend(new /icon('dam_mask.dmi', O.icon_name), ICON_MULTIPLY) // mask with this organ's pixels + // world << "[O.icon_name] [O.damage_state] \icon[DI]" + body_standing += DI + DI = new /icon('dam_human.dmi', "[O.damage_state]-2") // repeat for lying icons + DI.Blend(new /icon('dam_mask.dmi', "[O.icon_name]2"), ICON_MULTIPLY) + // world << "[O.r_name]2 [O.d_i_state]-2 \icon[DI]" + body_lying += DI /mob/living/carbon/human/proc/get_organ(var/zone) diff --git a/code/modules/mob/living/carbon/human/human_defense.dm b/code/modules/mob/living/carbon/human/human_defense.dm index b77604049fe..bf7922a0949 100644 --- a/code/modules/mob/living/carbon/human/human_defense.dm +++ b/code/modules/mob/living/carbon/human/human_defense.dm @@ -28,9 +28,8 @@ emp_act //If you don't specify a bodypart, it checks ALL your bodyparts for protection, and averages out the values for(var/datum/organ/external/organ in organs) - if(istype(organ)) - armorval += checkarmor(organ, type) - organnum++ + armorval += checkarmor(organ, type) + organnum++ return armorval/max(organnum, 1) @@ -48,14 +47,15 @@ emp_act /mob/living/carbon/human/proc/check_shields(var/damage = 0, var/attack_text = "the attack") - var/list/hand_held_shields = list("/obj/item/weapon/shield/riot","/obj/item/weapon/melee/energy/sword") - if(l_hand && is_type_in_list(l_hand, hand_held_shields))//Current base is the prob(50-d/3) - if(prob(50 - round(damage / 3))) - show_message("\red You block [attack_text] with your [l_hand.name]!", 4) + if(l_hand && istype(l_hand, /obj/item))//Current base is the prob(50-d/3) + var/obj/item/I = l_hand + if(I.IsShield() && (prob(50 - round(damage / 3)))) + visible_message("\red [src] blocks [attack_text] with the [l_hand.name]!") return 1 - if(r_hand && is_type_in_list(r_hand, hand_held_shields)) - if(prob(50 - round(damage / 3))) - show_message("\red You block [attack_text] with your [l_hand.name]!", 4) + if(r_hand && istype(r_hand, /obj/item)) + var/obj/item/I = r_hand + if(I.IsShield() && (prob(50 - round(damage / 3)))) + visible_message("\red [src] blocks [attack_text] with the [r_hand.name]!") return 1 return 0 diff --git a/code/modules/mob/living/carbon/human/life.dm b/code/modules/mob/living/carbon/human/life.dm index 7df5a83c222..3f4fa44ed33 100644 --- a/code/modules/mob/living/carbon/human/life.dm +++ b/code/modules/mob/living/carbon/human/life.dm @@ -257,7 +257,7 @@ if(!block) - for(var/obj/effect/chem_smoke/smoke in view(1, src)) + for(var/obj/effect/effect/chem_smoke/smoke in view(1, src)) if(smoke.reagents.total_volume) smoke.reagents.reaction(src, INGEST) spawn(5) diff --git a/code/modules/mob/living/carbon/monkey/life.dm b/code/modules/mob/living/carbon/monkey/life.dm index eef527db42d..5225b5d926c 100644 --- a/code/modules/mob/living/carbon/monkey/life.dm +++ b/code/modules/mob/living/carbon/monkey/life.dm @@ -211,7 +211,7 @@ if(!block) - for(var/obj/effect/chem_smoke/smoke in view(1, src)) + for(var/obj/effect/effect/chem_smoke/smoke in view(1, src)) if(smoke.reagents.total_volume) smoke.reagents.reaction(src, INGEST) spawn(5) diff --git a/code/modules/mob/living/carbon/monkey/monkey.dm b/code/modules/mob/living/carbon/monkey/monkey.dm index a51902cfaad..960e9f91045 100644 --- a/code/modules/mob/living/carbon/monkey/monkey.dm +++ b/code/modules/mob/living/carbon/monkey/monkey.dm @@ -364,7 +364,7 @@ if (stunned < power) stunned = power - var/datum/effect/system/spark_spread/s = new /datum/effect/system/spark_spread + var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread s.set_up(5, 1, src) s.start() diff --git a/code/modules/mob/living/living.dm b/code/modules/mob/living/living.dm index d7fc4ba07a7..095dad7d64e 100644 --- a/code/modules/mob/living/living.dm +++ b/code/modules/mob/living/living.dm @@ -22,12 +22,9 @@ return 0 var/mob/living/carbon/human/H = src //make this damage method divide the damage to be done among all the body parts, then burn each body part for that much damage. will have better effect then just randomly picking a body part var/divided_damage = (burn_amount)/(H.organs.len) - var/datum/organ/external/affecting = null var/extradam = 0 //added to when organ is at max dam - for(var/A in H.organs) - if(!H.organs[A]) continue - affecting = H.organs[A] - if(!istype(affecting, /datum/organ/external)) continue + for(var/datum/organ/external/affecting in H.organs) + if(!affecting) continue if(affecting.take_damage(0, divided_damage+extradam)) extradam = 0 else diff --git a/code/modules/mob/living/silicon/robot/robot.dm b/code/modules/mob/living/silicon/robot/robot.dm index 26aeae9034c..d7bd5c6d532 100644 --- a/code/modules/mob/living/silicon/robot/robot.dm +++ b/code/modules/mob/living/silicon/robot/robot.dm @@ -1,6 +1,6 @@ /mob/living/silicon/robot/New(loc,var/syndie = 0) - spark_system = new /datum/effect/system/spark_spread() + spark_system = new /datum/effect/effect/system/spark_spread() spark_system.set_up(5, 0, src) spark_system.attach(src) spawn (1) @@ -584,7 +584,7 @@ flick("noise", flash) - var/datum/effect/system/spark_spread/s = new /datum/effect/system/spark_spread + var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread s.set_up(5, 1, src) s.start() diff --git a/code/modules/mob/new_player/new_player.dm b/code/modules/mob/new_player/new_player.dm index 260b384c781..444242f298c 100644 --- a/code/modules/mob/new_player/new_player.dm +++ b/code/modules/mob/new_player/new_player.dm @@ -1,7 +1,8 @@ -mob/new_player - var/datum/preferences/preferences - var/ready = 0 - var/spawning = 0//Referenced when you want to delete the new_player later on in the code. +/mob/new_player + var + datum/preferences/preferences = null + ready = 0 + spawning = 0//Referenced when you want to delete the new_player later on in the code. invisibility = 101 @@ -10,12 +11,8 @@ mob/new_player canmove = 0 anchored = 1 // don't get pushed around -// var/list/jobs_restricted_by_gamemode Login() - //Next line is commented out because seem it does nothing helpful and on the other hand it calls mob/new_player/Move() to EACH turf in the world. --rastaf0 - //..() - if(!preferences) preferences = new @@ -25,8 +22,10 @@ mob/new_player mind.current = src var/starting_loc = pick(newplayer_start) + if(!starting_loc) starting_loc = locate(1,1,1) loc = starting_loc sight |= SEE_TURFS + var/list/watch_locations = list() for(var/obj/effect/landmark/landmark in world) if(landmark.tag == "landmark*new_player") @@ -103,38 +102,27 @@ mob/new_player del(src) return - verb - new_player_panel() - set src = usr - new_player_panel_proc() - - proc + verb/new_player_panel() + set src = usr new_player_panel_proc() - var/output = "New Player Options" - /*output += " | Refresh
" - output += "Name: [preferences.be_random_name ? "Random" :preferences.real_name]"*/ + proc/new_player_panel_proc() + var/output = "New Player Options" + output +="
" + output += "
Setup Character

" - output +="
" + if(!ticker || ticker.current_state <= GAME_STATE_PREGAME) + if(!ready) output += "Declare Ready
" + else output += "You are ready (Cancel)
" - /*output += "Preferred jobs:
" - output += "[preferences.occupation[1]]
" - output += "[preferences.occupation[2]]
" - output += "[preferences.occupation[3]]
"*/ + else + output += "Join Game!
" - output += "
Setup Character

" - if(!ticker || ticker.current_state <= GAME_STATE_PREGAME) - if(!ready) - output += "Declare Ready
" - else - output += "You are ready (Cancel)
" - else - output += "Join Game!
" + output += "
Observe
" - output += "
Observe
" - - src << browse(output,"window=playersetup;size=250x210;can_close=0") + src << browse(output,"window=playersetup;size=250x210;can_close=0") + return Stat() ..() @@ -203,93 +191,37 @@ mob/new_player LateChoices() if(href_list["SelectedJob"]) - if (!usr.client.authenticated) + if(!usr.client.authenticated) src << "You are not authorized to enter the game." return - if (!enter_allowed) + if(!enter_allowed) usr << "\blue There is an administrative lock on entering the game!" return - switch(href_list["SelectedJob"]) - if ("1") - AttemptLateSpawn("Captain") - if ("2") - AttemptLateSpawn("Head of Security") - if ("3") - AttemptLateSpawn("Head of Personnel") - if ("4") - AttemptLateSpawn("Station Engineer") - if ("5") - AttemptLateSpawn("Bartender") - if ("6") - AttemptLateSpawn("Scientist") - if ("7") - AttemptLateSpawn("Chemist") - if ("8") - AttemptLateSpawn("Geneticist") - if ("9") - AttemptLateSpawn("Security Officer") - if ("10") - AttemptLateSpawn("Medical Doctor") - if ("11") - AttemptLateSpawn("Atmospheric Technician") - if ("12") - AttemptLateSpawn("Detective") - if ("13") - AttemptLateSpawn("Chaplain") - if ("14") - AttemptLateSpawn("Janitor") - if ("15") - AttemptLateSpawn("Clown") - if ("16") - AttemptLateSpawn("Chef") - if ("17") - AttemptLateSpawn("Roboticist") - if ("18") - AttemptLateSpawn("Assistant") - if ("19") - AttemptLateSpawn("Quartermaster") - if ("20") - AttemptLateSpawn("Research Director") - if ("21") - AttemptLateSpawn("Chief Engineer") - if ("22") - AttemptLateSpawn("Botanist") - if ("23") - AttemptLateSpawn("Librarian") - if ("24") - AttemptLateSpawn("Virologist") - if ("25") - AttemptLateSpawn("Lawyer") - if ("26") - AttemptLateSpawn("Cargo Technician") - if ("27") - AttemptLateSpawn("Chief Medical Officer") - if ("28") - AttemptLateSpawn("Warden") - if ("29") - AttemptLateSpawn("Shaft Miner") - if ("30") - AttemptLateSpawn("Mime") + AttemptLateSpawn(href_list["SelectedJob"]) + return if(!ready && href_list["preferences"]) preferences.process_link(src, href_list) else if(!href_list["late_join"]) new_player_panel() - proc/IsJobAvailable(rank) - if(((jobMax[rank] < 0) || (countJob(rank) < jobMax[rank])) && !jobban_isbanned(src,rank)) + +/* proc/IsJobAvailable(rank) + if(((occupations[rank] < 0) || (countJob(rank) < occupations[rank])) && !jobban_isbanned(src,rank)) return 1 else - return 0 + return 0*/ - proc/AttemptLateSpawn(rank, maxAllowed) - if(IsJobAvailable(rank, maxAllowed)) + + proc/AttemptLateSpawn(rank) + var/datum/job/job = job_master.GetJob(rank) + if(job && ((job.title == "Assistant") || (job.current_positions < job.total_positions))) var/mob/living/carbon/human/character = create_character() var/icon/char_icon = getFlatIcon(character,0)//We're creating out own cache so it's not needed. - if (character) - character.Equip_Rank(rank, joined_late=1) + if(job_master.AssignRole(character, rank, 1)) + job_master.EquipRank(character, rank, 1) if(character.mind) if(character.mind.assigned_role != "Cyborg") ManifestLateSpawn(character,char_icon) @@ -305,6 +237,7 @@ mob/new_player else src << alert("[rank] is not available. Please try another.") + proc/AnnounceArrival(var/mob/living/carbon/human/character, var/rank) if (ticker.current_state == GAME_STATE_PLAYING) var/ailist[] = list() @@ -336,7 +269,7 @@ mob/new_player M.fields["id"] = G.fields["id"] S.fields["name"] = G.fields["name"] S.fields["id"] = G.fields["id"] - if (H.gender == FEMALE) + if(H.gender == FEMALE) G.fields["sex"] = "Female" else G.fields["sex"] = "Male" @@ -381,102 +314,17 @@ mob/new_player data_core.locked += L return -// This fxn creates positions for assistants based on existing positions. This could be more elegant. + proc/LateChoices() var/dat = "" dat += "Choose from the following open positions:
" - if (IsJobAvailable("Captain")) - dat += "Captain
" - - if (IsJobAvailable("Head of Security")) - dat += "Head of Security
" - - if (IsJobAvailable("Head of Personnel")) - dat += "Head of Personnel
" - - if (IsJobAvailable("Research Director")) - dat += "Research Director
" - - if (IsJobAvailable("Chief Engineer")) - dat += "Chief Engineer
" - - if (IsJobAvailable("Station Engineer")) - dat += "Station Engineer
" - - if (IsJobAvailable("Bartender")) - dat += "Bartender
" - - if (IsJobAvailable("Scientist")) - dat += "Scientist
" - - if (IsJobAvailable("Chemist")) - dat += "Chemist
" - - if (IsJobAvailable("Geneticist")) - dat += "Geneticist
" - - if (IsJobAvailable("Security Officer")) - dat += "Security Officer
" - - if (IsJobAvailable("Medical Doctor")) - dat += "Medical Doctor
" - - if (IsJobAvailable("Atmospheric Technician")) - dat += "Atmospheric Technician
" - - if (IsJobAvailable("Detective")) - dat += "Detective
" - - if (IsJobAvailable("Chaplain")) - dat += "Chaplain
" - - if (IsJobAvailable("Janitor")) - dat += "Janitor
" - - if (IsJobAvailable("Clown")) - dat += "Clown
" - - if (IsJobAvailable("Mime")) - dat += "Mime
" - - if (IsJobAvailable("Chef")) - dat += "Chef
" - - if (IsJobAvailable("Roboticist")) - dat += "Roboticist
" - - if (IsJobAvailable("Quartermaster")) - dat += "Quartermaster
" - - if (IsJobAvailable("Botanist")) - dat += "Botanist
" - - if (IsJobAvailable("Librarian")) - dat += "Librarian
" - - if (IsJobAvailable("Virologist")) - dat += "Virologist
" - - if (IsJobAvailable("Lawyer")) - dat += "Lawyer
" - - if (IsJobAvailable("Cargo Technician")) - dat += "Cargo Technician
" - - if (IsJobAvailable("Chief Medical Officer")) - dat += "Chief Medical Officer
" - - if (IsJobAvailable("Warden")) - dat += "Warden
" - - if (IsJobAvailable("Shaft Miner")) - dat += "Shaft Miner
" - - if (!jobban_isbanned(src,"Assistant")) - dat += "Assistant
" + for(var/datum/job/job in job_master.occupations) + if(job && ((job.title == "Assistant") || (job.current_positions < job.total_positions))) + dat += "[job.title]
" src << browse(dat, "window=latechoices;size=300x640;can_close=0") + proc/create_character() spawning = 1 var/mob/living/carbon/human/new_character = new(loc) @@ -489,9 +337,9 @@ mob/new_player mind.transfer_to(new_character) mind.original = new_character - return new_character + Move() return 0 diff --git a/code/modules/mob/new_player/preferences.dm b/code/modules/mob/new_player/preferences.dm index 32556a78d69..ad634bade44 100644 --- a/code/modules/mob/new_player/preferences.dm +++ b/code/modules/mob/new_player/preferences.dm @@ -28,354 +28,83 @@ var/global/list/special_roles = list( //keep synced with the defines BE_* in set "infested monkey" = ispath(text2path("/datum/game_mode/monkey")), ) */ +var/const + BE_TRAITOR =(1<<0) + BE_OPERATIVE =(1<<1) + BE_CHANGELING=(1<<2) + BE_WIZARD =(1<<3) + BE_MALF =(1<<4) + BE_REV =(1<<5) + BE_ALIEN =(1<<6) + BE_CULTIST =(1<<7) + BE_MONKEY =(1<<8) + BE_PAI =(1<<9) datum/preferences - var/real_name - var/gender = MALE - var/age = 30.0 - var/b_type = "A+" + var + real_name + be_random_name = 0 + gender = MALE + age = 30.0 + b_type = "A+" - var/be_special //bitfields. See defines in setup.dm. --rastaf0 - var/midis = 1 - var/lastchangelog = 0 // size of last seen changelog file -- rastaf0 - var/ooccolor = "#b82e00" - var/be_random_name = 0 - var/underwear = 1 - var/bubbles = 0 // 0 if the player doesn't want bubbles to appear + //Special role selection + be_special = 0 + //Play admin midis + midis = 1 + //Saved changlog filesize to detect if there was a change + lastchangelog = 0 - var/occupation[length(occupations)] - var/datum/jobs/wanted_jobs = list() + //Just like it sounds + ooccolor = "#b82e00" + underwear = 1 - var/h_style = "Short Hair" - var/f_style = "Shaved" + //Hair type + h_style = "Short Hair" + //Hair color + r_hair = 0 + g_hair = 0 + b_hair = 0 - var/r_hair = 0 - var/g_hair = 0 - var/b_hair = 0 + //Face hair type + f_style = "Shaved" + //Face hair color + r_facial = 0 + g_facial = 0 + b_facial = 0 - var/r_facial = 0 - var/g_facial = 0 - var/b_facial = 0 + //Skin color + s_tone = 0 - var/s_tone = 0 - var/r_eyes = 0 - var/g_eyes = 0 - var/b_eyes = 0 + //Eye color + r_eyes = 0 + g_eyes = 0 + b_eyes = 0 - var/UI = UI_OLD // saving the whole .DMI in preferences is not a good idea. --rastaf0 //'screen1_old.dmi' // Skie + //UI style + UI = UI_OLD + + //Mob preview + icon/preview_icon = null + + //Jobs, uses bitflags + job_civilian_high = 0 + job_civilian_med = 0 + job_civilian_low = 0 + + job_medsci_high = 0 + job_medsci_med = 0 + job_medsci_low = 0 + + job_engsec_high = 0 + job_engsec_med = 0 + job_engsec_low = 0 - var/icon/preview_icon = null New() randomize_name() - for(var/n in occupation) - n=0 ..() - //The mob should have a gender you want before running this proc. - proc/randomize_appearance_for(var/mob/living/carbon/human/H) - if(H.gender == MALE) - gender = MALE - else - gender = FEMALE - randomize_skin_tone() - randomize_hair(gender) - randomize_hair_color("hair") - if(gender == MALE)//only for dudes. - randomize_facial() - randomize_hair_color("facial") - randomize_eyes_color() - underwear = pick(0,1) - b_type = pick("A+", "A-", "B+", "B-", "AB+", "AB-", "O+", "O-") - age = rand(19,35) - copy_to(H,1) - - proc/randomize_name() - if (gender == MALE) - real_name = capitalize(pick(first_names_male) + " " + capitalize(pick(last_names))) - else - real_name = capitalize(pick(first_names_female) + " " + capitalize(pick(last_names))) - - proc/randomize_hair(var/gender) - //Women are more likely to have longer hair. - var/temp = gender==FEMALE&&prob(80) ? pick(2,6,8) : rand(1,9) - switch(temp) - if(1) - h_style = "Short Hair" - if(2) - h_style = "Long Hair" - if(3) - h_style = "Cut Hair" - if(4) - h_style = "Mohawk" - if(5) - h_style = "Balding" - if(6) - h_style = "Fag" - if(7) - h_style = "Bedhead" - if(8) - h_style = "Dreadlocks" - else - h_style = "bald" - - proc/randomize_facial() - var/temp = prob(50) ? 14 : rand(1,13)//50% of not having a beard. Otherwise get a random one. - switch(temp) - if(1) - f_style = "Watson" - if(2) - f_style = "Chaplin" - if(3) - f_style = "Selleck" - if(4) - f_style = "Neckbeard" - if(5) - f_style = "Full Beard" - if(6) - f_style = "Long Beard" - if(7) - f_style = "Van Dyke" - if(8) - f_style = "Elvis" - if(9) - f_style = "Abe" - if(10) - f_style = "Chinstrap" - if(11) - f_style = "Hipster" - if(12) - f_style = "Goatee" - if(13) - f_style = "Hogan" - else - f_style = "bald" - - proc/randomize_skin_tone() - var/tone - - var/tmp = pickweight ( list ("caucasian" = 55, "afroamerican" = 15, "african" = 10, "latino" = 10, "albino" = 5, "weird" = 5)) - switch (tmp) - if ("caucasian") - tone = -45 + 35 - if ("afroamerican") - tone = -150 + 35 - if ("african") - tone = -200 + 35 - if ("latino") - tone = -90 + 35 - if ("albino") - tone = -1 + 35 - if ("weird") - tone = -(rand (1, 220)) + 35 - - s_tone = min(max(tone + rand (-25, 25), -185), 34) - - proc/randomize_hair_color(var/target = "hair") - if (prob (75) && target == "facial") // Chance to inherit hair color - r_facial = r_hair - g_facial = g_hair - b_facial = b_hair - return - - var/red - var/green - var/blue - - var/col = pick ("blonde", "black", "chestnut", "copper", "brown", "wheat", "old", "punk") - switch (col) - if ("blonde") - red = 255 - green = 255 - blue = 0 - if ("black") - red = 0 - green = 0 - blue = 0 - if ("chestnut") - red = 153 - green = 102 - blue = 51 - if ("copper") - red = 255 - green = 153 - blue = 0 - if ("brown") - red = 102 - green = 51 - blue = 0 - if ("wheat") - red = 255 - green = 255 - blue = 153 - if ("old") - red = rand (100, 255) - green = red - blue = red - if ("punk") - red = rand (0, 255) - green = rand (0, 255) - blue = rand (0, 255) - - red = max(min(red + rand (-25, 25), 255), 0) - green = max(min(green + rand (-25, 25), 255), 0) - blue = max(min(blue + rand (-25, 25), 255), 0) - - switch (target) - if ("hair") - r_hair = red - g_hair = green - b_hair = blue - if ("facial") - r_facial = red - g_facial = green - b_facial = blue - - proc/randomize_eyes_color() - var/red - var/green - var/blue - - var/col = pick ("black", "grey", "brown", "chestnut", "blue", "lightblue", "green", "albino", "weird") - switch (col) - if ("black") - red = 0 - green = 0 - blue = 0 - if ("grey") - red = rand (100, 200) - green = red - blue = red - if ("brown") - red = 102 - green = 51 - blue = 0 - if ("chestnut") - red = 153 - green = 102 - blue = 0 - if ("blue") - red = 51 - green = 102 - blue = 204 - if ("lightblue") - red = 102 - green = 204 - blue = 255 - if ("green") - red = 0 - green = 102 - blue = 0 - if ("albino") - red = rand (200, 255) - green = rand (0, 150) - blue = rand (0, 150) - if ("weird") - red = rand (0, 255) - green = rand (0, 255) - blue = rand (0, 255) - - red = max(min(red + rand (-25, 25), 255), 0) - green = max(min(green + rand (-25, 25), 255), 0) - blue = max(min(blue + rand (-25, 25), 255), 0) - - r_eyes = red - g_eyes = green - b_eyes = blue - - proc/update_preview_icon() - del(preview_icon) - - var/g = "m" - if (gender == MALE) - g = "m" - else if (gender == FEMALE) - g = "f" - - preview_icon = new /icon('human.dmi', "body_[g]_s") - - // Skin tone - if (s_tone >= 0) - preview_icon.Blend(rgb(s_tone, s_tone, s_tone), ICON_ADD) - else - preview_icon.Blend(rgb(-s_tone, -s_tone, -s_tone), ICON_SUBTRACT) - - if (underwear > 0) - preview_icon.Blend(new /icon('human.dmi', "underwear[underwear]_[g]_s"), ICON_OVERLAY) - - var/icon/eyes_s = new/icon("icon" = 'human_face.dmi', "icon_state" = "eyes_s") - eyes_s.Blend(rgb(r_eyes, g_eyes, b_eyes), ICON_ADD) - - var/h_style_r = null - switch(h_style) - if("Short Hair") - h_style_r = "hair_a" - if("Long Hair") - h_style_r = "hair_b" - if("Cut Hair") - h_style_r = "hair_c" - if("Mohawk") - h_style_r = "hair_d" - if("Balding") - h_style_r = "hair_e" - if("Fag") - h_style_r = "hair_f" - if("Bedhead") - h_style_r = "hair_bedhead" - if("Dreadlocks") - h_style_r = "hair_dreads" - else - h_style_r = "bald" - - var/f_style_r = null - switch(f_style) - if ("Watson") - f_style_r = "facial_watson" - if ("Chaplin") - f_style_r = "facial_chaplin" - if ("Selleck") - f_style_r = "facial_selleck" - if ("Neckbeard") - f_style_r = "facial_neckbeard" - if ("Full Beard") - f_style_r = "facial_fullbeard" - if ("Long Beard") - f_style_r = "facial_longbeard" - if ("Van Dyke") - f_style_r = "facial_vandyke" - if ("Elvis") - f_style_r = "facial_elvis" - if ("Abe") - f_style_r = "facial_abe" - if ("Chinstrap") - f_style_r = "facial_chin" - if ("Hipster") - f_style_r = "facial_hip" - if ("Goatee") - f_style_r = "facial_gt" - if ("Hogan") - f_style_r = "facial_hogan" - else - f_style_r = "bald" - - var/icon/hair_s = new/icon("icon" = 'human_face.dmi', "icon_state" = "[h_style_r]_s") - hair_s.Blend(rgb(r_hair, g_hair, b_hair), ICON_ADD) - - var/icon/facial_s = new/icon("icon" = 'human_face.dmi', "icon_state" = "[f_style_r]_s") - facial_s.Blend(rgb(r_facial, g_facial, b_facial), ICON_ADD) - - var/icon/mouth_s = new/icon("icon" = 'human_face.dmi', "icon_state" = "mouth_[g]_s") - - eyes_s.Blend(hair_s, ICON_OVERLAY) - eyes_s.Blend(mouth_s, ICON_OVERLAY) - eyes_s.Blend(facial_s, ICON_OVERLAY) - - preview_icon.Blend(eyes_s, ICON_OVERLAY) - - del(mouth_s) - del(facial_s) - del(hair_s) - del(eyes_s) proc/ShowChoices(mob/user) update_preview_icon() @@ -394,7 +123,6 @@ datum/preferences dat += "
" dat += "UI Style: [UI == UI_NEW ? "New" : "Old"]
" dat += "Play admin midis: [midis == 1 ? "Yes" : "No"]
" - //dat += "Show chat bubbles: [bubbles == 1 ? "Yes" : "No"]
" if((user.client) && (user.client.holder) && (user.client.holder.rank) && (user.client.holder.rank == "Game Master")) dat += "
OOC
" @@ -440,7 +168,7 @@ datum/preferences src.be_special = 0 dat += "
" - if (!IsGuestKey(user.key)) + if(!IsGuestKey(user.key)) dat += "Load Setup
" dat += "Save Setup
" @@ -453,38 +181,35 @@ datum/preferences var/HTML = "" HTML += "
" HTML += "Choose occupation chances
Unavailable occupations are in red.
" - for(var/job in occupations) - if(!occupation[job]) - occupation[job] = 0 - if(jobban_isbanned(user, job)) - HTML += "[job]
" + for(var/datum/job/job in job_master.occupations) + var/rank = job.title + if(jobban_isbanned(user, rank)) + HTML += "[rank]
" continue - if((occupation["Assistant"] != 0) && (job != "Assistant")) - HTML += "[job]
" + if((job_civilian_low & ASSISTANT) && (rank != "Assistant")) + HTML += "[rank]
" continue - if((job in command_positions) || (job == "AI"))//Bold head jobs - HTML += "[job]" + if((rank in command_positions) || (rank == "AI"))//Bold head jobs + HTML += "[rank]" else - HTML += "[job]" + HTML += "[rank]" - if(job == "Assistant")//Assistant is special - if(occupation[job] != 0) + if(rank == "Assistant")//Assistant is special + if(job_civilian_low & ASSISTANT) HTML += "\[Yes]" else HTML += "\[No]" HTML += "
" continue - switch(occupation[job]) - if(0) - HTML += "\[NEVER]" - if(1) - HTML += "\[High]" - if(2) - HTML += "\[Medium]" - if(3) - HTML += "\[Low]" - else HTML += "*"+occupation[job]+"*" + if(GetJobDepartment(job, 1) & job.flag) + HTML += "\[High]" + else if(GetJobDepartment(job, 2) & job.flag) + HTML += "\[Medium]" + else if(GetJobDepartment(job, 3) & job.flag) + HTML += "\[Low]" + else + HTML += "\[NEVER]" HTML += "
" HTML += "
" @@ -495,37 +220,118 @@ datum/preferences user << browse(HTML, "window=mob_occupation;size=320x600") return - proc/SetJob(mob/user, job="Captain") - if((!(occupations.Find(job)) && !(assistant_occupations.Find(job)) && (job != "No Preference"))) + + proc/SetJob(mob/user, role) + var/datum/job/job = job_master.GetJob(role) + if(!job) user << browse(null, "window=mob_occupation") ShowChoices(user) return - if(job == "Assistant") - if(occupation[job] == 0) - occupation[job] = 4 + if(role == "Assistant") + if(job_civilian_low & job.flag) + job_civilian_low &= ~job.flag else - occupation[job] = 0 + job_civilian_low |= job.flag SetChoices(user) return 1 - if(occupation[job] == 2)//Only one job may be set to "High" - for(var/j in occupation) - if(occupation[j] == 1) - occupation[j] = 2 - - occupation[job] = (occupation[job]-1) - if(occupation[job] < 0) - occupation[job] = 3 + if(GetJobDepartment(job, 1) & job.flag) + SetJobDepartment(job, 1) + else if(GetJobDepartment(job, 2) & job.flag) + SetJobDepartment(job, 2) + else if(GetJobDepartment(job, 3) & job.flag) + SetJobDepartment(job, 3) + else//job = Never + SetJobDepartment(job, 4) SetChoices(user) - return 1 - proc/process_link(mob/user, list/link_tags) - if (link_tags["occ"]) - if (link_tags["cancel"]) + proc/GetJobDepartment(var/datum/job/job, var/level) + if(!job || !level) return 0 + switch(job.department_flag) + if(CIVILIAN) + switch(level) + if(1) + return job_civilian_high + if(2) + return job_civilian_med + if(3) + return job_civilian_low + if(MEDSCI) + switch(level) + if(1) + return job_medsci_high + if(2) + return job_medsci_med + if(3) + return job_medsci_low + if(ENGSEC) + switch(level) + if(1) + return job_engsec_high + if(2) + return job_engsec_med + if(3) + return job_engsec_low + return 0 + + + proc/SetJobDepartment(var/datum/job/job, var/level) + if(!job || !level) return 0 + switch(level) + if(1)//Only one of these should ever be active at once so clear them all here + job_civilian_high = 0 + job_medsci_high = 0 + job_engsec_high = 0 + return 1 + if(2)//Set current highs to med, then reset them + job_civilian_med |= job_civilian_high + job_medsci_med |= job_medsci_high + job_engsec_med |= job_engsec_high + job_civilian_high = 0 + job_medsci_high = 0 + job_engsec_high = 0 + + switch(job.department_flag) + if(CIVILIAN) + switch(level) + if(2) + job_civilian_high = job.flag + job_civilian_med &= ~job.flag + if(3) + job_civilian_med |= job.flag + job_civilian_low &= ~job.flag + else + job_civilian_low |= job.flag + if(MEDSCI) + switch(level) + if(2) + job_medsci_high = job.flag + job_medsci_med &= ~job.flag + if(3) + job_medsci_med |= job.flag + job_medsci_low &= ~job.flag + else + job_medsci_low |= job.flag + if(ENGSEC) + switch(level) + if(2) + job_engsec_high = job.flag + job_engsec_med &= ~job.flag + if(3) + job_engsec_med |= job.flag + job_engsec_low &= ~job.flag + else + job_engsec_low |= job.flag + return 1 + + + proc/process_link(mob/user, list/link_tags) + if(link_tags["occ"]) + if(link_tags["cancel"]) user << browse(null, "window=\ref[user]occupation") return else if(link_tags["job"]) @@ -535,7 +341,7 @@ datum/preferences return 1 - if (link_tags["real_name"]) + if(link_tags["real_name"]) var/new_name switch(link_tags["real_name"]) @@ -556,135 +362,132 @@ datum/preferences new_name = copytext(new_name, 1, 26) real_name = new_name - if (link_tags["age"]) + if(link_tags["age"]) switch(link_tags["age"]) - if ("input") + if("input") var/new_age = input(user, "Please select type in age: 20-45", "Character Generation") as num if(new_age) age = max(min(round(text2num(new_age)), 45), 20) - if ("random") + if("random") age = rand (20, 45) - if (link_tags["b_type"]) + if(link_tags["b_type"]) switch(link_tags["b_type"]) - if ("input") + if("input") var/new_b_type = input(user, "Please select a blood type:", "Character Generation") as null|anything in list( "A+", "A-", "B+", "B-", "AB+", "AB-", "O+", "O-" ) - if (new_b_type) + if(new_b_type) b_type = new_b_type - if ("random") + if("random") b_type = pickweight ( list ("A+" = 31, "A-" = 7, "B+" = 8, "B-" = 2, "AB+" = 2, "AB-" = 1, "O+" = 40, "O-" = 9)) - if (link_tags["hair"]) + if(link_tags["hair"]) switch(link_tags["hair"]) - if ("input") + if("input") var/new_hair = input(user, "Please select hair color.", "Character Generation") as color if(new_hair) r_hair = hex2num(copytext(new_hair, 2, 4)) g_hair = hex2num(copytext(new_hair, 4, 6)) b_hair = hex2num(copytext(new_hair, 6, 8)) - if ("random") + if("random") randomize_hair_color("hair") - if (link_tags["facial"]) + if(link_tags["facial"]) switch(link_tags["facial"]) - if ("input") + if("input") var/new_facial = input(user, "Please select facial hair color.", "Character Generation") as color if(new_facial) r_facial = hex2num(copytext(new_facial, 2, 4)) g_facial = hex2num(copytext(new_facial, 4, 6)) b_facial = hex2num(copytext(new_facial, 6, 8)) - if ("random") + if("random") randomize_hair_color("facial") - if (link_tags["eyes"]) + if(link_tags["eyes"]) switch(link_tags["eyes"]) - if ("input") + if("input") var/new_eyes = input(user, "Please select eye color.", "Character Generation") as color if(new_eyes) r_eyes = hex2num(copytext(new_eyes, 2, 4)) g_eyes = hex2num(copytext(new_eyes, 4, 6)) b_eyes = hex2num(copytext(new_eyes, 6, 8)) - if ("random") + if("random") randomize_eyes_color() - if (link_tags["s_tone"]) + if(link_tags["s_tone"]) switch(link_tags["s_tone"]) - if ("random") + if("random") randomize_skin_tone() if("input") var/new_tone = input(user, "Please select skin tone level: 1-220 (1=albino, 35=caucasian, 150=black, 220='very' black)", "Character Generation") as text - if (new_tone) + if(new_tone) s_tone = max(min(round(text2num(new_tone)), 220), 1) s_tone = -s_tone + 35 - if (link_tags["h_style"]) + if(link_tags["h_style"]) switch(link_tags["h_style"]) - if ("random") - if (gender == FEMALE) + if("random") + if(gender == FEMALE) h_style = pickweight ( list ("Cut Hair" = 5, "Short Hair" = 5, "Long Hair" = 5, "Mohawk" = 5, "Balding" = 1, "Fag" = 5, "Bedhead" = 5, "Dreadlocks" = 5, "Bald" = 5)) else h_style = pickweight ( list ("Cut Hair" = 5, "Short Hair" = 5, "Long Hair" = 5, "Mohawk" = 5, "Balding" = 5, "Fag" = 5, "Bedhead" = 5, "Dreadlocks" = 5, "Bald" = 5)) if("input") var/new_style = input(user, "Please select hair style", "Character Generation") as null|anything in list( "Cut Hair", "Short Hair", "Long Hair", "Mohawk", "Balding", "Fag", "Bedhead", "Dreadlocks", "Bald" ) - if (new_style) + if(new_style) h_style = new_style - if (link_tags["ooccolor"]) + if(link_tags["ooccolor"]) var/ooccolor = input(user, "Please select OOC colour.", "OOC colour") as color if(ooccolor) src.ooccolor = ooccolor - if (link_tags["f_style"]) + if(link_tags["f_style"]) switch(link_tags["f_style"]) - if ("random") - if (gender == FEMALE) + if("random") + if(gender == FEMALE) f_style = pickweight ( list("Watson" = 1, "Chaplin" = 1, "Selleck" = 1, "Full Beard" = 1, "Long Beard" = 1, "Neckbeard" = 1, "Van Dyke" = 1, "Elvis" = 1, "Abe" = 1, "Chinstrap" = 1, "Hipster" = 1, "Goatee" = 1, "Hogan" = 1, "Shaved" = 100)) else f_style = pickweight ( list("Watson" = 1, "Chaplin" = 1, "Selleck" = 1, "Full Beard" = 1, "Long Beard" = 1, "Neckbeard" = 1, "Van Dyke" = 1, "Elvis" = 1, "Abe" = 1, "Chinstrap" = 1, "Hipster" = 1, "Goatee" = 1, "Hogan" = 1, "Shaved" = 10)) if("input") var/new_style = input(user, "Please select facial style", "Character Generation") as null|anything in list("Watson", "Chaplin", "Selleck", "Full Beard", "Long Beard", "Neckbeard", "Van Dyke", "Elvis", "Abe", "Chinstrap", "Hipster", "Goatee", "Hogan", "Shaved") - if (new_style) + if(new_style) f_style = new_style - if (link_tags["gender"]) - if (gender == MALE) + if(link_tags["gender"]) + if(gender == MALE) gender = FEMALE else gender = MALE - if (link_tags["UI"]) - if (UI == UI_OLD) + if(link_tags["UI"]) + if(UI == UI_OLD) UI = UI_NEW else UI = UI_OLD - if (link_tags["midis"]) + if(link_tags["midis"]) midis = (midis+1)%2 - if (link_tags["bubbles"]) - bubbles = !bubbles - - if (link_tags["underwear"]) + if(link_tags["underwear"]) if(!IsGuestKey(user.key)) switch(link_tags["underwear"]) - if ("random") - if (prob (75)) + if("random") + if(prob (75)) underwear = 1 else underwear = 0 if("input") - if (underwear == 1) + if(underwear == 1) underwear = 0 else underwear = 1 - if (link_tags["be_special"]) + if(link_tags["be_special"]) src.be_special^=(1<= 0) + preview_icon.Blend(rgb(s_tone, s_tone, s_tone), ICON_ADD) + else + preview_icon.Blend(rgb(-s_tone, -s_tone, -s_tone), ICON_SUBTRACT) + + if (underwear > 0) + preview_icon.Blend(new /icon('human.dmi', "underwear[underwear]_[g]_s"), ICON_OVERLAY) + + var/icon/eyes_s = new/icon("icon" = 'human_face.dmi', "icon_state" = "eyes_s") + eyes_s.Blend(rgb(r_eyes, g_eyes, b_eyes), ICON_ADD) + + var/h_style_r = null + switch(h_style) + if("Short Hair") + h_style_r = "hair_a" + if("Long Hair") + h_style_r = "hair_b" + if("Cut Hair") + h_style_r = "hair_c" + if("Mohawk") + h_style_r = "hair_d" + if("Balding") + h_style_r = "hair_e" + if("Fag") + h_style_r = "hair_f" + if("Bedhead") + h_style_r = "hair_bedhead" + if("Dreadlocks") + h_style_r = "hair_dreads" + else + h_style_r = "bald" + + var/f_style_r = null + switch(f_style) + if ("Watson") + f_style_r = "facial_watson" + if ("Chaplin") + f_style_r = "facial_chaplin" + if ("Selleck") + f_style_r = "facial_selleck" + if ("Neckbeard") + f_style_r = "facial_neckbeard" + if ("Full Beard") + f_style_r = "facial_fullbeard" + if ("Long Beard") + f_style_r = "facial_longbeard" + if ("Van Dyke") + f_style_r = "facial_vandyke" + if ("Elvis") + f_style_r = "facial_elvis" + if ("Abe") + f_style_r = "facial_abe" + if ("Chinstrap") + f_style_r = "facial_chin" + if ("Hipster") + f_style_r = "facial_hip" + if ("Goatee") + f_style_r = "facial_gt" + if ("Hogan") + f_style_r = "facial_hogan" + else + f_style_r = "bald" + + var/icon/hair_s = new/icon("icon" = 'human_face.dmi', "icon_state" = "[h_style_r]_s") + hair_s.Blend(rgb(r_hair, g_hair, b_hair), ICON_ADD) + + var/icon/facial_s = new/icon("icon" = 'human_face.dmi', "icon_state" = "[f_style_r]_s") + facial_s.Blend(rgb(r_facial, g_facial, b_facial), ICON_ADD) + + var/icon/mouth_s = new/icon("icon" = 'human_face.dmi', "icon_state" = "mouth_[g]_s") + + eyes_s.Blend(hair_s, ICON_OVERLAY) + eyes_s.Blend(mouth_s, ICON_OVERLAY) + eyes_s.Blend(facial_s, ICON_OVERLAY) + + preview_icon.Blend(eyes_s, ICON_OVERLAY) + + del(mouth_s) + del(facial_s) + del(hair_s) + del(eyes_s) \ No newline at end of file diff --git a/code/modules/mob/new_player/savefile.dm b/code/modules/mob/new_player/savefile.dm index 744f4364436..1b6561052f0 100644 --- a/code/modules/mob/new_player/savefile.dm +++ b/code/modules/mob/new_player/savefile.dm @@ -1,5 +1,5 @@ -#define SAVEFILE_VERSION_MIN 2 -#define SAVEFILE_VERSION_MAX 3 +#define SAVEFILE_VERSION_MIN 3 +#define SAVEFILE_VERSION_MAX 4 datum/preferences/proc/savefile_path(mob/user) return "data/player_saves/[copytext(user.ckey, 1, 2)]/[user.ckey]/preferences.sav" @@ -9,25 +9,31 @@ datum/preferences/proc/savefile_save(mob/user) return 0 var/savefile/F = new /savefile(src.savefile_path(user)) - var/version - F["version"] >> version - - if (!isnull(version) && version<=2) - F["be_syndicate"] << null - F["be_alien"] << null - F["UI"] << null +// var/version +// F["version"] >> version F["version"] << SAVEFILE_VERSION_MAX F["real_name"] << src.real_name + F["name_is_always_random"] << src.be_random_name + F["gender"] << src.gender F["age"] << src.age - for(var/job in uniquelist(occupations + assistant_occupations)) - //world << src.occupation[job] - F["occupation_"+job] << src.occupation[job] - //F["occupation_1"] << src.occupation[1] - //F["occupation_2"] << src.occupation[2] - //F["occupation_3"] << src.occupation[3] + + //Job data + F["job_civilian_high"] << src.job_civilian_high + F["job_civilian_med"] << src.job_civilian_med + F["job_civilian_low"] << src.job_civilian_low + + F["job_medsci_high"] << src.job_medsci_high + F["job_medsci_med"] << src.job_medsci_med + F["job_medsci_low"] << src.job_medsci_low + + F["job_engsec_high"] << src.job_engsec_high + F["job_engsec_med"] << src.job_engsec_med + F["job_engsec_low"] << src.job_engsec_low + + //Body data F["hair_red"] << src.r_hair F["hair_green"] << src.g_hair F["hair_blue"] << src.b_hair @@ -41,17 +47,13 @@ datum/preferences/proc/savefile_save(mob/user) F["eyes_green"] << src.g_eyes F["eyes_blue"] << src.b_eyes F["blood_type"] << src.b_type - //F["be_syndicate"] << src.be_syndicate - F["be_special"] << src.be_special F["underwear"] << src.underwear - F["name_is_always_random"] << src.be_random_name - F["UI"] << src.UI // Skie - //world << "DEBUG: saving UI as [UI]" - //F["be_alien"] << src.be_alien // Urist - F["midis"] << src.midis // Urist - F["bubbles"] << src.bubbles // Doohl - F["ooccolor"] << src.ooccolor // Urist - F["lastchangelog"] << src.lastchangelog // rastaf0 + + F["be_special"] << src.be_special + F["UI"] << src.UI + F["midis"] << src.midis + F["ooccolor"] << src.ooccolor + F["lastchangelog"] << src.lastchangelog return 1 @@ -61,14 +63,11 @@ datum/preferences/proc/savefile_save(mob/user) // returns 1 if loaded (or file was incompatible) // returns 0 if savefile did not exist -datum/preferences/proc/savefile_load(mob/user, var/silent = 1) - if (IsGuestKey(user.key)) - return 0 +datum/preferences/proc/savefile_load(mob/user) + if(IsGuestKey(user.key)) return 0 var/path = savefile_path(user) - - if (!fexists(path)) - return 0 + if(!fexists(path)) return 0 var/savefile/F = new /savefile(path) @@ -77,20 +76,13 @@ datum/preferences/proc/savefile_load(mob/user, var/silent = 1) if (isnull(version) || version < SAVEFILE_VERSION_MIN || version > SAVEFILE_VERSION_MAX) fdel(path) - -// if (!silent) -// alert(user, "Your savefile was incompatible with this version and was deleted.") - + alert(user, "Your savefile was incompatible with this version and was deleted.") return 0 F["real_name"] >> src.real_name F["gender"] >> src.gender F["age"] >> src.age - for(var/job in uniquelist(occupations + assistant_occupations)) - F["occupation_"+job] >> src.occupation[job] - //F["occupation_1"] >> src.occupation[1] - //F["occupation_2"] >> src.occupation[2] - //F["occupation_3"] >> src.occupation[3] + F["hair_red"] >> src.r_hair F["hair_green"] >> src.g_hair F["hair_blue"] >> src.b_hair @@ -106,37 +98,25 @@ datum/preferences/proc/savefile_load(mob/user, var/silent = 1) F["blood_type"] >> src.b_type F["underwear"] >> src.underwear F["name_is_always_random"] >> src.be_random_name - //F["be_alien"] >> src.be_alien // Urist - F["midis"] >> src.midis // Urist - F["bubbles"] >> src.bubbles // Doohl - F["ooccolor"] >> src.ooccolor // Urist - F["lastchangelog"] >> src.lastchangelog // rastaf0 + F["midis"] >> src.midis + F["ooccolor"] >> src.ooccolor + F["lastchangelog"] >> src.lastchangelog + F["UI"] >> src.UI + F["be_special"] >> src.be_special + if(version && (version >= SAVEFILE_VERSION_MAX)) + F["job_civilian_high"] >> src.job_civilian_high + F["job_civilian_med"] >> src.job_civilian_med + F["job_civilian_low"] >> src.job_civilian_low + + F["job_medsci_high"] >> src.job_medsci_high + F["job_medsci_med"] >> src.job_medsci_med + F["job_medsci_low"] >> src.job_medsci_low + + F["job_engsec_high"] >> src.job_engsec_high + F["job_engsec_med"] >> src.job_engsec_med + F["job_engsec_low"] >> src.job_engsec_low - if (version<=2) // migration from old preferences file format --rastaf0 - src.UI = 0 // swithing from storing an image file to storing boolean value --rastaf0 - //world << "DEBUG: loading legacy UI as [UI]" - var/tmp - F["be_syndicate"] >> tmp - if (tmp) - be_special |= BE_TRAITOR - be_special |= BE_OPERATIVE - be_special |= BE_CHANGELING - be_special |= BE_WIZARD - be_special |= BE_MALF - be_special |= BE_REV - F["be_alien"] >> tmp - F["be_pai"] >> tmp - if (tmp) - be_special |= BE_ALIEN - be_special |= BE_PAI - del(F) - fdel(path) - savefile_save(user) - else // /migration end - F["UI"] >> src.UI - F["be_special"] >> src.be_special - //world << "DEBUG: loading new UI as [UI]" return 1 diff --git a/code/modules/mob/screen.dm b/code/modules/mob/screen.dm index 412931973a5..271c808e5a0 100644 --- a/code/modules/mob/screen.dm +++ b/code/modules/mob/screen.dm @@ -399,7 +399,7 @@ if("hand") usr:swap_hand() if("resist") - if (usr.next_move < world.time) + if(usr.next_move < world.time) return usr.next_move = world.time + 20 if ((!( usr.stat ) && usr.canmove && !( usr.restrained() ))) diff --git a/code/modules/mob/transform_procs.dm b/code/modules/mob/transform_procs.dm index 8fe2ad8f136..7c49d288e27 100644 --- a/code/modules/mob/transform_procs.dm +++ b/code/modules/mob/transform_procs.dm @@ -11,8 +11,7 @@ icon = null invisibility = 101 for(var/t in organs) - //organs[text("[]", t)] = null - del(organs[text("[]", t)]) + del(t) var/atom/movable/overlay/animation = new /atom/movable/overlay( loc ) animation.icon_state = "blank" animation.icon = 'mob.dmi' @@ -53,7 +52,7 @@ if (monkeyizing) return for(var/t in organs) - del(organs[text("[]", t)]) + del(t) return ..() /mob/living/carbon/AIize() @@ -155,7 +154,7 @@ icon = null invisibility = 101 for(var/t in organs) - del(organs[text("[t]")]) + del(t) if(client) //client.screen -= main_hud1.contents client.screen -= hud_used.contents @@ -218,7 +217,7 @@ icon = null invisibility = 101 for(var/t in organs) - del(organs[t]) + del(t) var/alien_caste = pick("Hunter","Sentinel","Drone") var/mob/living/carbon/alien/humanoid/new_xeno @@ -258,7 +257,7 @@ icon = null invisibility = 101 for(var/t in organs) - del(organs[t]) + del(t) if(reproduce) var/number = pick(2,2,2,2,2,2,2,2,2,2,2,2,2,2,3,4) diff --git a/code/modules/power/apc.dm b/code/modules/power/apc.dm index 68c71fd01a2..c95aaf65bc5 100644 --- a/code/modules/power/apc.dm +++ b/code/modules/power/apc.dm @@ -327,7 +327,7 @@ var/turf/T = get_turf_loc(src) var/obj/structure/cable/N = T.get_cable_node() if (prob(50) && electrocute_mob(usr, N, N)) - var/datum/effect/system/spark_spread/s = new /datum/effect/system/spark_spread + var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread s.set_up(5, 1, src) s.start() return @@ -345,7 +345,7 @@ playsound(src.loc, 'Deconstruct.ogg', 50, 1) if(do_after(user, 50)) if (prob(50) && electrocute_mob(usr, terminal.powernet, terminal)) - var/datum/effect/system/spark_spread/s = new /datum/effect/system/spark_spread + var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread s.set_up(5, 1, src) s.start() return @@ -851,11 +851,11 @@ malfai << "Hack complete. The APC is now under your exclusive control. Discharging cell to fuse interface." updateicon() - var/datum/effect/system/harmless_smoke_spread/smoke = new /datum/effect/system/harmless_smoke_spread() + var/datum/effect/effect/system/harmless_smoke_spread/smoke = new /datum/effect/effect/system/harmless_smoke_spread() smoke.set_up(3, 0, src.loc) smoke.attach(src) smoke.start() - var/datum/effect/system/spark_spread/s = new /datum/effect/system/spark_spread + var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread s.set_up(3, 1, src) s.start() for(var/mob/M in viewers(src)) @@ -880,11 +880,11 @@ cell.corrupt() src.malfhack = 1 updateicon() - var/datum/effect/system/harmless_smoke_spread/smoke = new /datum/effect/system/harmless_smoke_spread() + var/datum/effect/effect/system/harmless_smoke_spread/smoke = new /datum/effect/effect/system/harmless_smoke_spread() smoke.set_up(3, 0, src.loc) smoke.attach(src) smoke.start() - var/datum/effect/system/spark_spread/s = new /datum/effect/system/spark_spread + var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread s.set_up(3, 1, src) s.start() for(var/mob/M in viewers(src)) @@ -1160,7 +1160,7 @@ /obj/machinery/power/apc/proc/shock(mob/user, prb) if(!prob(prb)) return 0 - var/datum/effect/system/spark_spread/s = new /datum/effect/system/spark_spread + var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread s.set_up(5, 1, src) s.start() if (electrocute_mob(user, src, src)) diff --git a/code/modules/power/cable.dm b/code/modules/power/cable.dm index 3028a819052..db06a85fbec 100644 --- a/code/modules/power/cable.dm +++ b/code/modules/power/cable.dm @@ -193,7 +193,7 @@ if(!prob(prb)) return 0 if (electrocute_mob(user, powernets[src.netnum], src, siemens_coeff)) - var/datum/effect/system/spark_spread/s = new /datum/effect/system/spark_spread + var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread s.set_up(5, 1, src) s.start() return 1 diff --git a/code/modules/power/lighting.dm b/code/modules/power/lighting.dm index fd11a05ca2c..7c24acb92c4 100644 --- a/code/modules/power/lighting.dm +++ b/code/modules/power/lighting.dm @@ -222,7 +222,7 @@ else if(status == LIGHT_EMPTY) user << "You stick \the [W] into the light socket!" if(has_power() && (W.flags & CONDUCT)) - var/datum/effect/system/spark_spread/s = new /datum/effect/system/spark_spread + var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread s.set_up(3, 1, src) s.start() //if(!user.mutations & COLD_RESISTANCE) @@ -282,7 +282,7 @@ else user << "You try to remove the light [fitting], but you burn your hand on it!" - var/datum/organ/external/affecting = H.organs["[user.hand ? "l" : "r" ]_hand"] + var/datum/organ/external/affecting = H.get_organ("[user.hand ? "l" : "r" ]_arm") affecting.take_damage( 0, 5 ) // 5 burn damage @@ -324,7 +324,7 @@ if(status == LIGHT_OK || status == LIGHT_BURNED) playsound(src.loc, 'Glasshit.ogg', 75, 1) if(on) - var/datum/effect/system/spark_spread/s = new /datum/effect/system/spark_spread + var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread s.set_up(3, 1, src) s.start() status = LIGHT_BROKEN diff --git a/code/modules/power/singularity/containment_field.dm b/code/modules/power/singularity/containment_field.dm index 112525e9fef..f5593cd95eb 100644 --- a/code/modules/power/singularity/containment_field.dm +++ b/code/modules/power/singularity/containment_field.dm @@ -55,7 +55,7 @@ del(src) return 0 if(iscarbon(user)) - var/datum/effect/system/spark_spread/s = new /datum/effect/system/spark_spread + var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread s.set_up(5, 1, user.loc) s.start() var/shock_damage = min(rand(30,40),rand(30,40)) @@ -72,7 +72,7 @@ user.throw_at(target, 200, 4) return else if(issilicon(user)) - var/datum/effect/system/spark_spread/s = new /datum/effect/system/spark_spread + var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread s.set_up(5, 1, user.loc) s.start() var/shock_damage = rand(15,30) diff --git a/code/modules/power/singularity/emitter.dm b/code/modules/power/singularity/emitter.dm index 460d3c947a5..336478efb0f 100644 --- a/code/modules/power/singularity/emitter.dm +++ b/code/modules/power/singularity/emitter.dm @@ -90,7 +90,7 @@ A.icon_state = "u_laser" playsound(src.loc, 'emitter.ogg', 25, 1) if(prob(35)) - var/datum/effect/system/spark_spread/s = new /datum/effect/system/spark_spread + var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread s.set_up(5, 1, src) s.start() A.dir = src.dir diff --git a/code/modules/power/smes.dm b/code/modules/power/smes.dm index 9a6544f583b..686bb6e7671 100644 --- a/code/modules/power/smes.dm +++ b/code/modules/power/smes.dm @@ -324,7 +324,7 @@ for(var/mob/M in viewers(src)) M.show_message("\red The [src.name] is making strange noises!", 3, "\red You hear sizzling electronics.", 2) sleep(10*pick(4,5,6,7,10,14)) - var/datum/effect/system/harmless_smoke_spread/smoke = new /datum/effect/system/harmless_smoke_spread() + var/datum/effect/effect/system/harmless_smoke_spread/smoke = new /datum/effect/effect/system/harmless_smoke_spread() smoke.set_up(3, 0, src.loc) smoke.attach(src) smoke.start() @@ -333,7 +333,7 @@ return if(prob(15)) //Power drain world << "\red SMES power drain in [src.loc.loc]" - var/datum/effect/system/spark_spread/s = new /datum/effect/system/spark_spread + var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread s.set_up(3, 1, src) s.start() if(prob(50)) @@ -342,7 +342,7 @@ emp_act(2) if(prob(5)) //smoke only world << "\red SMES smoke in [src.loc.loc]" - var/datum/effect/system/harmless_smoke_spread/smoke = new /datum/effect/system/harmless_smoke_spread() + var/datum/effect/effect/system/harmless_smoke_spread/smoke = new /datum/effect/effect/system/harmless_smoke_spread() smoke.set_up(3, 0, src.loc) smoke.attach(src) smoke.start() diff --git a/code/modules/projectiles/gun.dm b/code/modules/projectiles/gun.dm index 68e93cf23f4..b6743610865 100644 --- a/code/modules/projectiles/gun.dm +++ b/code/modules/projectiles/gun.dm @@ -44,7 +44,7 @@ if(istype(user, /mob/living)) var/mob/living/M = user - if ((M.mutations & CLOWN) && prob(50)) + if ((M.mutations & CLUMSY) && prob(50)) M << "\red The [src.name] blows up in your face." M.take_organ_damage(0,20) M.drop_item() diff --git a/code/modules/projectiles/guns/energy.dm b/code/modules/projectiles/guns/energy.dm index 45f7c05046f..e739ea24bbf 100644 --- a/code/modules/projectiles/guns/energy.dm +++ b/code/modules/projectiles/guns/energy.dm @@ -8,7 +8,7 @@ obj/item/weapon/cell/power_supply //What type of power cell this uses charge_cost = 100 //How much energy is needed to fire. cell_type = "/obj/item/weapon/cell" - projectile_type = "/obj/item/projectile" + projectile_type = "/obj/item/projectile/energy" emp_act(severity) power_supply.use(round(power_supply.maxcharge / severity)) diff --git a/code/modules/projectiles/guns/energy/nuclear.dm b/code/modules/projectiles/guns/energy/nuclear.dm index b8947625caa..6e61558aa85 100644 --- a/code/modules/projectiles/guns/energy/nuclear.dm +++ b/code/modules/projectiles/guns/energy/nuclear.dm @@ -6,6 +6,7 @@ charge_cost = 100 //How much energy is needed to fire. projectile_type = "/obj/item/projectile/energy/electrode" + origin_tech = "combat=3;magnets=2" var mode = 0 //0 = stun, 1 = kill diff --git a/code/modules/projectiles/guns/energy/stun.dm b/code/modules/projectiles/guns/energy/stun.dm index 95d4dbf7a41..2332c25a285 100644 --- a/code/modules/projectiles/guns/energy/stun.dm +++ b/code/modules/projectiles/guns/energy/stun.dm @@ -5,7 +5,7 @@ icon_state = "taser" fire_sound = 'Taser.ogg' charge_cost = 100 - projectile_type = "/obj/item/projectile/electrode" + projectile_type = "/obj/item/projectile/energy/electrode" cell_type = "/obj/item/weapon/cell/crap" @@ -30,7 +30,7 @@ fire_sound = 'Gunshot.ogg' origin_tech = "combat=3;materials=3;powerstorage=2" charge_cost = 125 - projectile_type = "/obj/item/projectile/electrode" + projectile_type = "/obj/item/projectile/energy/electrode" cell_type = "/obj/item/weapon/cell" @@ -80,6 +80,6 @@ w_class = 4.0 force = 10 m_amt = 200000 - projectile_type = "/obj/item/projectile/largebolt" + projectile_type = "/obj/item/projectile/energy/bolt/large" diff --git a/code/modules/projectiles/projectile/energy.dm b/code/modules/projectiles/projectile/energy.dm index 3b8d7d429f8..07ecdcb710b 100644 --- a/code/modules/projectiles/projectile/energy.dm +++ b/code/modules/projectiles/projectile/energy.dm @@ -1,16 +1,15 @@ /obj/item/projectile/energy name = "energy" icon_state = "spark" - damage = 0 damage_type = BURN - nodamage = 1 flag = "energy" /obj/item/projectile/energy/electrode name = "electrode" icon_state = "spark" + nodamage = 1 stun = 10 weaken = 10 stutter = 10 @@ -19,6 +18,7 @@ /obj/item/projectile/energy/declone name = "declown" icon_state = "declone" + nodamage = 1 damage_type = CLONE irradiate = 40 diff --git a/code/modules/research/rdmachines.dm b/code/modules/research/rdmachines.dm index e594eb79def..43f92517bf2 100644 --- a/code/modules/research/rdmachines.dm +++ b/code/modules/research/rdmachines.dm @@ -40,7 +40,7 @@ return 0 if(!prob(prb)) return 0 - var/datum/effect/system/spark_spread/s = new /datum/effect/system/spark_spread + var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread s.set_up(5, 1, src) s.start() if (electrocute_mob(user, get_area(src), src, 0.7)) diff --git a/code/setup.dm b/code/setup.dm index 771617bd5d1..6607e3985a7 100644 --- a/code/setup.dm +++ b/code/setup.dm @@ -151,7 +151,7 @@ #define COLD_RESISTANCE 2 #define XRAY 4 #define HULK 8 -#define CLOWN 16 +#define CLUMSY 16 #define FAT 32 #define HUSK 64 //changeling-drained #define LASER 128 @@ -185,19 +185,6 @@ var/const GAS_CO2 = 1 << 3 GAS_N2O = 1 << 4 -// bitflags for preferences -#define BE_TRAITOR (1<<0) -#define BE_OPERATIVE (1<<1) -#define BE_CHANGELING (1<<2) -#define BE_WIZARD (1<<3) -#define BE_MALF (1<<4) -#define BE_REV (1<<5) -#define BE_ALIEN (1<<6) -#define BE_CULTIST (1<<7) -#define BE_MONKEY (1<<8) -#define BE_PAI (1<<9) -//#define BE_CIVILIAN (1<<15) //well, I must stop here. --rastaf0 - var/list/accessable_z_levels = list("1" = 10, "3" = 15, "4" = 60, "5" = 15) //This list contains the z-level numbers which can be accessed via space travel and the percentile chances to get there. (Exceptions: extended, sandbox and nuke) -Errorage @@ -206,6 +193,8 @@ var/list/accessable_z_levels = list("1" = 10, "3" = 15, "4" = 60, "5" = 15) //Th var/list/global_mutations = list() // list of hidden mutation things +//Bluh shields + //Damage things #define BRUTE "brute" @@ -220,4 +209,6 @@ var/list/global_mutations = list() // list of hidden mutation things #define IRRADIATE "irradiate" #define STUTTER "stutter" #define EYE_BLUR "eye_blur" -#define DROWSY "drowsy" \ No newline at end of file +#define DROWSY "drowsy" + + diff --git a/code/game/objects/traps.dm b/code/unused/traps.dm similarity index 100% rename from code/game/objects/traps.dm rename to code/unused/traps.dm diff --git a/icons/changelog.html b/icons/changelog.html index 4adb0bc90f9..9f2b13fe0b3 100644 --- a/icons/changelog.html +++ b/icons/changelog.html @@ -66,6 +66,7 @@ should be listed in the changelog upon commit tho. Thanks. -->
  • Telekenesis now only allows you to pick up objects.
  • Stun gloves ignore intent.
  • Moved the loyalty implants to the HoS' locker.
  • +
  • Job system redone, remember to setup your prefs.
  • @@ -83,11 +84,6 @@ should be listed in the changelog upon commit tho. Thanks. -->
  • Less ponies, gryphons, and Tohou.
  • -
  • Rolan7 updated: -
      -
    • The GREY TIDE is no more.
    • -
    -
  • 1 October 2011: diff --git a/maps/tgstation.2.0.8.dmm b/maps/tgstation.2.0.8.dmm index 6de015e5e82..5dc4c3977b6 100644 --- a/maps/tgstation.2.0.8.dmm +++ b/maps/tgstation.2.0.8.dmm @@ -380,7 +380,7 @@ "ahp" = (/obj/machinery/atmospherics/pipe/manifold{color = "blue"; dir = 4; icon_state = "manifold-b-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/turf/simulated/floor/plating,/area/maintenance/fsmaint) "ahq" = (/turf/simulated/floor/plating,/area/maintenance/fsmaint) "ahr" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating,/area/maintenance/fsmaint) -"ahs" = (/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -29},/obj/structure/table,/obj/item/weapon/storage/body_bag_box,/turf/simulated/floor,/area/security/warden) +"ahs" = (/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -29},/obj/structure/table,/obj/machinery/recharger,/turf/simulated/floor,/area/security/warden) "aht" = (/obj/machinery/light,/obj/structure/table,/obj/machinery/recharger,/turf/simulated/floor,/area/security/warden) "ahu" = (/obj/structure/table,/obj/machinery/recharger,/turf/simulated/floor,/area/security/warden) "ahv" = (/obj/structure/table,/obj/item/weapon/storage/lockbox,/turf/simulated/floor,/area/security/warden) @@ -402,7 +402,7 @@ "ahL" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = "90Curve"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plating,/area/maintenance/fsmaint) "ahM" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating,/area/maintenance/fsmaint) "ahN" = (/obj/structure/closet/l3closet/security,/turf/simulated/floor,/area/security/warden) -"ahO" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 4; on = 1},/obj/structure/rack,/obj/item/weapon/storage/trackimp_kit,/obj/item/weapon/storage/chemimp_kit,/obj/item/weapon/storage/handcuff_kit,/turf/simulated/floor,/area/security/warden) +"ahO" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 4; on = 1},/obj/structure/rack,/obj/item/weapon/storage/trackimp_kit,/obj/item/weapon/storage/chemimp_kit,/obj/item/weapon/storage/handcuff_kit,/obj/item/weapon/storage/body_bag_box,/turf/simulated/floor,/area/security/warden) "ahP" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/machinery/atmospherics/pipe/simple,/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/security/warden) "ahQ" = (/obj/machinery/door/airlock/security{name = "Warden's Office"; req_access = null; req_access_txt = "3"},/turf/simulated/floor,/area/security/warden) "ahR" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/turf/simulated/floor/plating,/area/security/warden) @@ -2599,7 +2599,7 @@ "aXY" = (/obj/machinery/vending/snack,/turf/simulated/floor,/area/crew_quarters/heads) "aXZ" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = "Streight"},/turf/simulated/floor,/area/crew_quarters/heads) "aYa" = (/obj/structure/stool/chair{dir = 4},/turf/simulated/floor{icon_state = "blue"; dir = 4},/area/crew_quarters/heads) -"aYb" = (/obj/machinery/camera{c_tag = "Heads of Staff"; dir = 8; network = "SS13"},/obj/structure/table/reinforced,/obj/item/weapon/book/manual/security_space_law,/turf/simulated/floor,/area/crew_quarters/heads) +"aYb" = (/obj/machinery/camera{c_tag = "Heads of Staff"; dir = 8; network = "SS13"},/obj/structure/table/reinforced,/turf/simulated/floor,/area/crew_quarters/heads) "aYc" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/crew_quarters/heads) "aYd" = (/turf/simulated/floor{icon_state = "bot"},/area/hallway/primary/central) "aYe" = (/obj/machinery/navbeacon{codes_txt = "patrol;next_patrol=Med"; location = "HOP"},/turf/simulated/floor,/area/hallway/primary/central) @@ -5612,23 +5612,23 @@ "cdV" = (/mob/living/silicon/decoy{icon_state = "ai-malf"; name = "GLaDOS"},/turf/unsimulated/floor{icon_state = "whiteshiny"},/area/syndicate_mothership) "cdW" = (/obj/item/device/radio/intercom{broadcasting = 1; dir = 1; freerange = 1; frequency = 1337; listening = 1; name = "Syndicate Ops Intercom"; pixel_y = 0},/obj/structure/window/reinforced{dir = 4},/turf/unsimulated/floor{icon_state = "circuit"},/area/syndicate_mothership) "cdX" = (/turf/unsimulated/wall{icon = 'mineral_walls.dmi'; icon_state = "plasma3"},/area/alien) -"cdY" = (/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor5"},/area/alien) +"cdY" = (/turf/unsimulated/floor{icon = 'shuttle.dmi'; icon_state = "floor5"},/area/alien) "cdZ" = (/turf/unsimulated/wall{icon = 'mineral_walls.dmi'; icon_state = "plasma1"},/area/alien) "cea" = (/obj/structure/stool/chair{dir = 4},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/syndicate_elite/mothership) "ceb" = (/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/syndicate_elite/mothership) "cec" = (/obj/structure/stool/chair{dir = 8},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/syndicate_elite/mothership) -"ced" = (/obj/item/weapon/paper{info = "Some stuff is missing..."; name = "Insert alien artifacts here."},/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor5"},/area/alien) -"cee" = (/obj/machinery/door/airlock/hatch,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor5"},/area/alien) +"ced" = (/obj/item/weapon/paper{info = "Some stuff is missing..."; name = "Insert alien artifacts here."},/turf/unsimulated/floor{icon = 'shuttle.dmi'; icon_state = "floor5"},/area/alien) +"cee" = (/obj/machinery/door/airlock/hatch,/turf/unsimulated/floor{icon = 'shuttle.dmi'; icon_state = "floor5"},/area/alien) "cef" = (/turf/space,/area/syndicate_mothership/elite_squad) "ceg" = (/turf/simulated/shuttle/wall{icon_state = "wall3"},/area/syndicate_mothership/elite_squad) -"ceh" = (/obj/machinery/computer/pod{id = "syndicate_elite"; name = "Hull Door Control"},/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor4"},/area/syndicate_mothership/elite_squad) -"cei" = (/obj/item/device/radio/intercom{broadcasting = 1; dir = 1; freerange = 1; frequency = 1337; listening = 0; name = "Syndicate Ops Intercom"; pixel_y = 28},/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor4"},/area/syndicate_mothership/elite_squad) -"cej" = (/obj/effect/landmark{name = "Syndicate-Commando"; tag = "Commando"},/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor4"},/area/syndicate_mothership/elite_squad) -"cek" = (/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor4"},/area/syndicate_mothership/elite_squad) -"cel" = (/obj/machinery/mech_bay_recharge_port,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor4"},/area/syndicate_mothership/elite_squad) -"cem" = (/obj/mecha/combat/marauder/mauler,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor4"},/area/syndicate_mothership) -"cen" = (/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor4"},/area/syndicate_mothership) -"ceo" = (/obj/structure/closet/acloset,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor5"},/area/alien) +"ceh" = (/obj/machinery/computer/pod{id = "syndicate_elite"; name = "Hull Door Control"},/turf/unsimulated/floor{icon = 'shuttle.dmi'; icon_state = "floor4"},/area/syndicate_mothership/elite_squad) +"cei" = (/obj/item/device/radio/intercom{broadcasting = 1; dir = 1; freerange = 1; frequency = 1337; listening = 0; name = "Syndicate Ops Intercom"; pixel_y = 28},/turf/unsimulated/floor{icon = 'shuttle.dmi'; icon_state = "floor4"},/area/syndicate_mothership/elite_squad) +"cej" = (/obj/effect/landmark{name = "Syndicate-Commando"; tag = "Commando"},/turf/unsimulated/floor{icon = 'shuttle.dmi'; icon_state = "floor4"},/area/syndicate_mothership/elite_squad) +"cek" = (/turf/unsimulated/floor{icon = 'shuttle.dmi'; icon_state = "floor4"},/area/syndicate_mothership/elite_squad) +"cel" = (/obj/machinery/mech_bay_recharge_port,/turf/unsimulated/floor{icon = 'shuttle.dmi'; icon_state = "floor4"},/area/syndicate_mothership/elite_squad) +"cem" = (/obj/mecha/combat/marauder/mauler,/turf/unsimulated/floor{icon = 'shuttle.dmi'; icon_state = "floor4"},/area/syndicate_mothership) +"cen" = (/turf/unsimulated/floor{icon = 'shuttle.dmi'; icon_state = "floor4"},/area/syndicate_mothership) +"ceo" = (/obj/structure/closet/acloset,/turf/unsimulated/floor{icon = 'shuttle.dmi'; icon_state = "floor5"},/area/alien) "cep" = (/turf/unsimulated/wall{icon = 'mineral_walls.dmi'; icon_state = "plasma2"},/area/alien) "ceq" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/turf/unsimulated/floor{name = "plating"},/area/syndicate_mothership/elite_squad) "cer" = (/turf/space,/area/shuttle/alien/base) @@ -5638,8 +5638,8 @@ "cev" = (/obj/machinery/door/airlock/external{name = "Shuttle Airlock"; req_access_txt = "150"},/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "syndicate_elite"; name = "Side Hull Door"; opacity = 0},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/syndicate_elite/mothership) "cew" = (/turf/unsimulated/floor{name = "plating"},/area/syndicate_mothership/elite_squad) "cex" = (/obj/machinery/door/airlock/external{req_access_txt = "150"},/turf/unsimulated/floor{name = "plating"},/area/syndicate_mothership/elite_squad) -"cey" = (/obj/machinery/door/airlock/glass_security{name = "Airlock"; req_access_txt = "150"},/obj/machinery/door/poddoor{id = "syndicate_elite_mech_room"; name = "Mech Room Door"},/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor4"},/area/syndicate_mothership/elite_squad) -"cez" = (/obj/structure/stool/bed/alien,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor5"},/area/alien) +"cey" = (/obj/machinery/door/airlock/glass_security{name = "Airlock"; req_access_txt = "150"},/obj/machinery/door/poddoor{id = "syndicate_elite_mech_room"; name = "Mech Room Door"},/turf/unsimulated/floor{icon = 'shuttle.dmi'; icon_state = "floor4"},/area/syndicate_mothership/elite_squad) +"cez" = (/obj/structure/stool/bed/alien,/turf/unsimulated/floor{icon = 'shuttle.dmi'; icon_state = "floor5"},/area/alien) "ceA" = (/obj/machinery/computer/pod{id = "syndicate_elite"; name = "Hull Door Control"},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/syndicate_elite/mothership) "ceB" = (/obj/machinery/computer/syndicate_elite_shuttle,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/syndicate_elite/mothership) "ceC" = (/turf/space,/turf/simulated/shuttle/wall{icon_state = "diagonalWall3"},/area/shuttle/syndicate_elite/mothership) @@ -5651,35 +5651,35 @@ "ceI" = (/turf/space,/turf/simulated/shuttle/wall{dir = 8; icon_state = "diagonalWall3"},/area/syndicate_station/start) "ceJ" = (/turf/simulated/shuttle/wall{icon_state = "wall3"},/area/syndicate_station/start) "ceK" = (/turf/space,/turf/simulated/shuttle/wall{dir = 1; icon_state = "diagonalWall3"},/area/syndicate_station/start) -"ceL" = (/obj/structure/table,/obj/machinery/microwave,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor4"},/area/syndicate_station/start) -"ceM" = (/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor4"},/area/syndicate_station/start) -"ceN" = (/obj/structure/table,/obj/machinery/light/lamp{pixel_x = 4; pixel_y = 1},/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor4"},/area/syndicate_station/start) -"ceO" = (/obj/machinery/computer/syndicate_station,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor4"},/area/syndicate_station/start) -"ceP" = (/obj/structure/table,/obj/item/weapon/pen/sleepypen,/obj/item/weapon/paper,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor4"},/area/syndicate_station/start) -"ceQ" = (/obj/machinery/vending/cigarette,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor4"},/area/syndicate_station/start) -"ceR" = (/obj/structure/table,/obj/item/weapon/storage/donkpocket_kit{pixel_x = 3; pixel_y = 3},/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor4"},/area/syndicate_station/start) -"ceS" = (/obj/structure/stool{pixel_y = 8},/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor4"},/area/syndicate_station/start) -"ceT" = (/obj/structure/table,/obj/item/weapon/cell{charge = 100; maxcharge = 15000},/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor4"},/area/syndicate_station/start) -"ceU" = (/obj/effect/landmark{name = "Syndicate-Gear-Closet"},/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor4"},/area/syndicate_station/start) +"ceL" = (/obj/structure/table,/obj/machinery/microwave,/turf/unsimulated/floor{icon = 'shuttle.dmi'; icon_state = "floor4"},/area/syndicate_station/start) +"ceM" = (/turf/unsimulated/floor{icon = 'shuttle.dmi'; icon_state = "floor4"},/area/syndicate_station/start) +"ceN" = (/obj/structure/table,/obj/machinery/light/lamp{pixel_x = 4; pixel_y = 1},/turf/unsimulated/floor{icon = 'shuttle.dmi'; icon_state = "floor4"},/area/syndicate_station/start) +"ceO" = (/obj/machinery/computer/syndicate_station,/turf/unsimulated/floor{icon = 'shuttle.dmi'; icon_state = "floor4"},/area/syndicate_station/start) +"ceP" = (/obj/structure/table,/obj/item/weapon/pen/sleepypen,/obj/item/weapon/paper,/turf/unsimulated/floor{icon = 'shuttle.dmi'; icon_state = "floor4"},/area/syndicate_station/start) +"ceQ" = (/obj/machinery/vending/cigarette,/turf/unsimulated/floor{icon = 'shuttle.dmi'; icon_state = "floor4"},/area/syndicate_station/start) +"ceR" = (/obj/structure/table,/obj/item/weapon/storage/donkpocket_kit{pixel_x = 3; pixel_y = 3},/turf/unsimulated/floor{icon = 'shuttle.dmi'; icon_state = "floor4"},/area/syndicate_station/start) +"ceS" = (/obj/structure/stool{pixel_y = 8},/turf/unsimulated/floor{icon = 'shuttle.dmi'; icon_state = "floor4"},/area/syndicate_station/start) +"ceT" = (/obj/structure/table,/obj/item/weapon/cell{charge = 100; maxcharge = 15000},/turf/unsimulated/floor{icon = 'shuttle.dmi'; icon_state = "floor4"},/area/syndicate_station/start) +"ceU" = (/obj/effect/landmark{name = "Syndicate-Gear-Closet"},/turf/unsimulated/floor{icon = 'shuttle.dmi'; icon_state = "floor4"},/area/syndicate_station/start) "ceV" = (/turf/space,/turf/simulated/shuttle/wall{icon_state = "diagonalWall3"},/area/syndicate_station/start) -"ceW" = (/obj/machinery/door/window,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor4"},/area/syndicate_station/start) +"ceW" = (/obj/machinery/door/window,/turf/unsimulated/floor{icon = 'shuttle.dmi'; icon_state = "floor4"},/area/syndicate_station/start) "ceX" = (/turf/space,/turf/simulated/shuttle/wall{dir = 4; icon_state = "diagonalWall3"},/area/syndicate_station/start) -"ceY" = (/obj/structure/table,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor4"},/area/syndicate_station/start) +"ceY" = (/obj/structure/table,/turf/unsimulated/floor{icon = 'shuttle.dmi'; icon_state = "floor4"},/area/syndicate_station/start) "ceZ" = (/turf/unsimulated/wall,/area/centcom) -"cfa" = (/obj/effect/landmark{name = "Nuclear-Closet"},/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor4"},/area/syndicate_station/start) +"cfa" = (/obj/effect/landmark{name = "Nuclear-Closet"},/turf/unsimulated/floor{icon = 'shuttle.dmi'; icon_state = "floor4"},/area/syndicate_station/start) "cfb" = (/turf/unsimulated/wall{desc = "Why it no open!"; icon = 'rapid_pdoor.dmi'; icon_state = "pdoor1"; name = "External Airlock"},/area) "cfc" = (/turf/unsimulated/wall{desc = "Why it no open!"; icon = 'rapid_pdoor.dmi'; icon_state = "pdoor1"; name = "Shuttle Bay Blast Door"},/area/centcom) "cfd" = (/turf/unsimulated/floor{tag = "icon-warnplate (WEST)"; icon_state = "warnplate"; dir = 8},/area/centcom) "cfe" = (/turf/unsimulated/floor{name = "plating"},/area/centcom) -"cff" = (/obj/structure/stool/chair{dir = 4},/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor4"},/area/syndicate_station/start) +"cff" = (/obj/structure/stool/chair{dir = 4},/turf/unsimulated/floor{icon = 'shuttle.dmi'; icon_state = "floor4"},/area/syndicate_station/start) "cfg" = (/obj/effect/securearea{name = "EXTERNAL AIRLOCK"; desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"},/turf/simulated/shuttle/wall{icon_state = "wall3"},/area/syndicate_station/start) -"cfh" = (/obj/machinery/door/poddoor{id = "syndicate"; name = "Outer Airlock"},/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor4"},/area/syndicate_station/start) +"cfh" = (/obj/machinery/door/poddoor{id = "syndicate"; name = "Outer Airlock"},/turf/unsimulated/floor{icon = 'shuttle.dmi'; icon_state = "floor4"},/area/syndicate_station/start) "cfi" = (/turf/unsimulated/floor{name = "plating"},/turf/simulated/shuttle/wall{dir = 8; icon_state = "diagonalWall3"},/area/shuttle/administration/centcom) "cfj" = (/turf/simulated/shuttle/wall{icon_state = "wall3"},/area/shuttle/administration/centcom) "cfk" = (/obj/machinery/door/airlock/external,/turf/simulated/floor/plating,/area/shuttle/administration/centcom) "cfl" = (/turf/unsimulated/floor{name = "plating"},/turf/simulated/shuttle/wall{dir = 1; icon_state = "diagonalWall3"},/area/shuttle/administration/centcom) -"cfm" = (/obj/structure/table,/obj/item/device/aicard,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor4"},/area/syndicate_station/start) -"cfn" = (/obj/structure/table,/obj/machinery/computer/pod/old/syndicate{id = "syndicate"; pixel_x = -3; pixel_y = 8},/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor4"},/area/syndicate_station/start) +"cfm" = (/obj/structure/table,/obj/item/device/aicard,/turf/unsimulated/floor{icon = 'shuttle.dmi'; icon_state = "floor4"},/area/syndicate_station/start) +"cfn" = (/obj/structure/table,/obj/machinery/computer/pod/old/syndicate{id = "syndicate"; pixel_x = -3; pixel_y = 8},/turf/unsimulated/floor{icon = 'shuttle.dmi'; icon_state = "floor4"},/area/syndicate_station/start) "cfo" = (/obj/machinery/vending/boozeomat,/turf/simulated/shuttle/wall{icon_state = "wall3"},/area/shuttle/administration/centcom) "cfp" = (/obj/machinery/vending/coffee,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/administration/centcom) "cfq" = (/obj/machinery/vending/cigarette,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/administration/centcom) @@ -5687,16 +5687,16 @@ "cfs" = (/turf/simulated/floor/plating,/area/shuttle/administration/centcom) "cft" = (/obj/structure/table{icon_state = "tabledir"; dir = 2},/obj/item/device/multitool,/obj/item/weapon/cleaner,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/administration/centcom) "cfu" = (/obj/structure/table{icon_state = "tabledir"; dir = 2},/obj/item/weapon/storage/toolbox/mechanical,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/administration/centcom) -"cfv" = (/obj/machinery/door/window{dir = 4; icon = 'windoor.dmi'; req_access_txt = "0"},/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor4"},/area/syndicate_station/start) -"cfw" = (/obj/machinery/door/airlock/external,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor4"},/area/syndicate_station/start) +"cfv" = (/obj/machinery/door/window{dir = 4; icon = 'windoor.dmi'; req_access_txt = "0"},/turf/unsimulated/floor{icon = 'shuttle.dmi'; icon_state = "floor4"},/area/syndicate_station/start) +"cfw" = (/obj/machinery/door/airlock/external,/turf/unsimulated/floor{icon = 'shuttle.dmi'; icon_state = "floor4"},/area/syndicate_station/start) "cfx" = (/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/administration/centcom) "cfy" = (/obj/machinery/door/airlock/centcom{name = "General Access"; opacity = 1; req_access_txt = "101"},/turf/simulated/floor/plating,/area/shuttle/administration/centcom) "cfz" = (/obj/structure/table,/obj/machinery/recharger{pixel_y = 4},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/administration/centcom) "cfA" = (/obj/structure/table{icon_state = "tabledir"; dir = 2},/obj/machinery/cell_charger,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/administration/centcom) "cfB" = (/turf/unsimulated/wall,/area/centcom/living) -"cfC" = (/obj/machinery/door/window{base_state = "right"; dir = 4; icon_state = "right"},/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor4"},/area/syndicate_station/start) +"cfC" = (/obj/machinery/door/window{base_state = "right"; dir = 4; icon_state = "right"},/turf/unsimulated/floor{icon = 'shuttle.dmi'; icon_state = "floor4"},/area/syndicate_station/start) "cfD" = (/obj/machinery/atmospherics/pipe/simple{dir = 10},/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/syndicate_station/start) -"cfE" = (/obj/structure/rack,/obj/item/clothing/suit/space/syndicate,/obj/item/clothing/head/helmet/space/syndicate,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor4"},/area/syndicate_station/start) +"cfE" = (/obj/structure/rack,/obj/item/clothing/suit/space/syndicate,/obj/item/clothing/head/helmet/space/syndicate,/turf/unsimulated/floor{icon = 'shuttle.dmi'; icon_state = "floor4"},/area/syndicate_station/start) "cfF" = (/obj/machinery/door/window/northright,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/administration/centcom) "cfG" = (/obj/structure/table/reinforced{icon_state = "reinf_tabledir"},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/administration/centcom) "cfH" = (/obj/structure/table/reinforced{icon_state = "reinf_tabledir"},/obj/item/weapon/zippo,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/administration/centcom) @@ -5729,16 +5729,16 @@ "cgi" = (/turf/unsimulated/floor{name = "plating"},/area/centcom/suppy) "cgj" = (/turf/unsimulated/floor{tag = "icon-warnplate (EAST)"; icon_state = "warnplate"; dir = 4},/area/centcom/suppy) "cgk" = (/turf/unsimulated/wall{desc = "Why it no open!"; icon = 'rapid_pdoor.dmi'; icon_state = "pdoor1"; name = "Shuttle Bay Blast Door"},/area/centcom/suppy) -"cgl" = (/obj/machinery/sleeper{icon_state = "sleeper_0-r"; orient = "RIGHT"},/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor3"},/area/syndicate_station/start) -"cgm" = (/obj/effect/landmark{name = "Syndicate-Spawn"},/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor3"},/area/syndicate_station/start) -"cgn" = (/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor3"},/area/syndicate_station/start) -"cgo" = (/obj/machinery/atmospherics/pipe/simple,/obj/structure/table,/obj/item/stack/medical/bruise_pack,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor3"},/area/syndicate_station/start) -"cgp" = (/obj/machinery/atmospherics/pipe/simple,/obj/structure/table,/obj/item/stack/medical/ointment,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor3"},/area/syndicate_station/start) -"cgq" = (/obj/structure/table,/obj/machinery/cell_charger,/obj/item/clothing/gloves/yellow,/obj/item/device/assembly/signaler,/obj/item/clothing/glasses/night,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor4"},/area/syndicate_station/start) -"cgr" = (/obj/structure/table,/obj/item/clothing/gloves/yellow,/obj/item/device/assembly/signaler,/obj/item/clothing/glasses/night,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor4"},/area/syndicate_station/start) -"cgs" = (/obj/structure/table,/obj/item/weapon/wrench,/obj/item/clothing/gloves/yellow,/obj/item/device/assembly/infra,/obj/item/clothing/glasses/night,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor4"},/area/syndicate_station/start) -"cgt" = (/obj/structure/table,/obj/item/clothing/gloves/yellow,/obj/item/device/assembly/prox_sensor{pixel_x = -8; pixel_y = 4},/obj/item/clothing/glasses/night,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor4"},/area/syndicate_station/start) -"cgu" = (/obj/structure/table,/obj/item/weapon/crowbar,/obj/item/weapon/cable_coil{pixel_x = 3; pixel_y = -7},/obj/item/clothing/gloves/yellow,/obj/item/device/assembly/prox_sensor{pixel_x = -8; pixel_y = 4},/obj/item/clothing/glasses/night,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor4"},/area/syndicate_station/start) +"cgl" = (/obj/machinery/sleeper{icon_state = "sleeper_0-r"; orient = "RIGHT"},/turf/unsimulated/floor{icon = 'shuttle.dmi'; icon_state = "floor3"},/area/syndicate_station/start) +"cgm" = (/obj/effect/landmark{name = "Syndicate-Spawn"},/turf/unsimulated/floor{icon = 'shuttle.dmi'; icon_state = "floor3"},/area/syndicate_station/start) +"cgn" = (/turf/unsimulated/floor{icon = 'shuttle.dmi'; icon_state = "floor3"},/area/syndicate_station/start) +"cgo" = (/obj/machinery/atmospherics/pipe/simple,/obj/structure/table,/obj/item/stack/medical/bruise_pack,/turf/unsimulated/floor{icon = 'shuttle.dmi'; icon_state = "floor3"},/area/syndicate_station/start) +"cgp" = (/obj/machinery/atmospherics/pipe/simple,/obj/structure/table,/obj/item/stack/medical/ointment,/turf/unsimulated/floor{icon = 'shuttle.dmi'; icon_state = "floor3"},/area/syndicate_station/start) +"cgq" = (/obj/structure/table,/obj/machinery/cell_charger,/obj/item/clothing/gloves/yellow,/obj/item/device/assembly/signaler,/obj/item/clothing/glasses/night,/turf/unsimulated/floor{icon = 'shuttle.dmi'; icon_state = "floor4"},/area/syndicate_station/start) +"cgr" = (/obj/structure/table,/obj/item/clothing/gloves/yellow,/obj/item/device/assembly/signaler,/obj/item/clothing/glasses/night,/turf/unsimulated/floor{icon = 'shuttle.dmi'; icon_state = "floor4"},/area/syndicate_station/start) +"cgs" = (/obj/structure/table,/obj/item/weapon/wrench,/obj/item/clothing/gloves/yellow,/obj/item/device/assembly/infra,/obj/item/clothing/glasses/night,/turf/unsimulated/floor{icon = 'shuttle.dmi'; icon_state = "floor4"},/area/syndicate_station/start) +"cgt" = (/obj/structure/table,/obj/item/clothing/gloves/yellow,/obj/item/device/assembly/prox_sensor{pixel_x = -8; pixel_y = 4},/obj/item/clothing/glasses/night,/turf/unsimulated/floor{icon = 'shuttle.dmi'; icon_state = "floor4"},/area/syndicate_station/start) +"cgu" = (/obj/structure/table,/obj/item/weapon/crowbar,/obj/item/weapon/cable_coil{pixel_x = 3; pixel_y = -7},/obj/item/clothing/gloves/yellow,/obj/item/device/assembly/prox_sensor{pixel_x = -8; pixel_y = 4},/obj/item/clothing/glasses/night,/turf/unsimulated/floor{icon = 'shuttle.dmi'; icon_state = "floor4"},/area/syndicate_station/start) "cgv" = (/obj/structure/shuttle/engine/propulsion{tag = "icon-propulsion_r (EAST)"; icon_state = "propulsion_r"; dir = 4},/turf/space,/area/shuttle/administration/centcom) "cgw" = (/turf/unsimulated/floor{name = "plating"},/turf/simulated/shuttle/wall{dir = 4; icon_state = "diagonalWall3"},/area/shuttle/administration/centcom) "cgx" = (/obj/machinery/vending/cola,/turf/unsimulated/floor{tag = "icon-redyellowfull"; icon_state = "redyellowfull"},/area/centcom/living) @@ -5750,26 +5750,26 @@ "cgD" = (/turf/simulated/shuttle/wall{tag = "icon-swall_s6"; icon_state = "swall_s6"; dir = 2},/area/supply/dock) "cgE" = (/turf/simulated/shuttle/wall{tag = "icon-swall12"; icon_state = "swall12"; dir = 2},/area/supply/dock) "cgF" = (/turf/simulated/shuttle/wall{tag = "icon-swall_s10"; icon_state = "swall_s10"; dir = 2},/area/supply/dock) -"cgG" = (/obj/machinery/door/window{dir = 4; icon = 'windoor.dmi'; req_access_txt = "0"},/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor3"},/area/syndicate_station/start) -"cgH" = (/obj/machinery/door/window/westright,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor4"},/area/syndicate_station/start) -"cgI" = (/obj/structure/crate/internals,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor4"},/area/syndicate_station/start) +"cgG" = (/obj/machinery/door/window{dir = 4; icon = 'windoor.dmi'; req_access_txt = "0"},/turf/unsimulated/floor{icon = 'shuttle.dmi'; icon_state = "floor3"},/area/syndicate_station/start) +"cgH" = (/obj/machinery/door/window/westright,/turf/unsimulated/floor{icon = 'shuttle.dmi'; icon_state = "floor4"},/area/syndicate_station/start) +"cgI" = (/obj/structure/crate/internals,/turf/unsimulated/floor{icon = 'shuttle.dmi'; icon_state = "floor4"},/area/syndicate_station/start) "cgJ" = (/turf/unsimulated/floor{name = "plating"},/turf/simulated/shuttle/wall{icon_state = "diagonalWall3"},/area/shuttle/administration/centcom) "cgK" = (/obj/machinery/sleeper,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/administration/centcom) "cgL" = (/obj/structure/window/reinforced{dir = 5; health = 1e+007},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/administration/centcom) "cgM" = (/turf/unsimulated/floor{tag = "icon-warnplate (EAST)"; icon_state = "warnplate"; dir = 4},/area/centcom) "cgN" = (/turf/simulated/shuttle/wall{tag = "icon-swall3"; icon_state = "swall3"; dir = 2},/area/supply/dock) "cgO" = (/obj/effect/marker/supplymarker,/turf/simulated/shuttle/floor,/area/supply/dock) -"cgP" = (/obj/machinery/door/window{base_state = "right"; dir = 4; icon_state = "right"},/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor3"},/area/syndicate_station/start) -"cgQ" = (/obj/machinery/door/window{icon = 'windoor.dmi'; dir = 8},/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor4"},/area/syndicate_station/start) -"cgR" = (/obj/structure/table,/obj/effect/landmark{name = "Syndicate-Bomb"},/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor4"},/area/syndicate_station/start) +"cgP" = (/obj/machinery/door/window{base_state = "right"; dir = 4; icon_state = "right"},/turf/unsimulated/floor{icon = 'shuttle.dmi'; icon_state = "floor3"},/area/syndicate_station/start) +"cgQ" = (/obj/machinery/door/window{icon = 'windoor.dmi'; dir = 8},/turf/unsimulated/floor{icon = 'shuttle.dmi'; icon_state = "floor4"},/area/syndicate_station/start) +"cgR" = (/obj/structure/table,/obj/effect/landmark{name = "Syndicate-Bomb"},/turf/unsimulated/floor{icon = 'shuttle.dmi'; icon_state = "floor4"},/area/syndicate_station/start) "cgS" = (/turf/unsimulated/floor{tag = "icon-redyellowfull"; icon_state = "redyellowfull"},/area/centcom/living) "cgT" = (/obj/machinery/door/unpowered/shuttle,/turf/simulated/shuttle/floor,/area/supply/dock) -"cgU" = (/obj/structure/table,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor3"},/area/syndicate_station/start) -"cgV" = (/obj/item/weapon/weldingtool,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 1},/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor4"},/area/syndicate_station/start) -"cgW" = (/obj/machinery/door/window{dir = 1},/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor4"},/area/syndicate_station/start) -"cgX" = (/obj/item/weapon/crowbar,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 1},/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor4"},/area/syndicate_station/start) -"cgY" = (/obj/machinery/atmospherics/pipe/simple{dir = 10},/obj/item/weapon/storage/toolbox/mechanical,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor4"},/area/syndicate_station/start) -"cgZ" = (/obj/item/weapon/storage/toolbox/mechanical,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor4"},/area/syndicate_station/start) +"cgU" = (/obj/structure/table,/turf/unsimulated/floor{icon = 'shuttle.dmi'; icon_state = "floor3"},/area/syndicate_station/start) +"cgV" = (/obj/item/weapon/weldingtool,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 1},/turf/unsimulated/floor{icon = 'shuttle.dmi'; icon_state = "floor4"},/area/syndicate_station/start) +"cgW" = (/obj/machinery/door/window{dir = 1},/turf/unsimulated/floor{icon = 'shuttle.dmi'; icon_state = "floor4"},/area/syndicate_station/start) +"cgX" = (/obj/item/weapon/crowbar,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 1},/turf/unsimulated/floor{icon = 'shuttle.dmi'; icon_state = "floor4"},/area/syndicate_station/start) +"cgY" = (/obj/machinery/atmospherics/pipe/simple{dir = 10},/obj/item/weapon/storage/toolbox/mechanical,/turf/unsimulated/floor{icon = 'shuttle.dmi'; icon_state = "floor4"},/area/syndicate_station/start) +"cgZ" = (/obj/item/weapon/storage/toolbox/mechanical,/turf/unsimulated/floor{icon = 'shuttle.dmi'; icon_state = "floor4"},/area/syndicate_station/start) "cha" = (/obj/machinery/dna_scannernew,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/administration/centcom) "chb" = (/obj/machinery/computer/cloning,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/administration/centcom) "chc" = (/obj/machinery/clonepod,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/administration/centcom) @@ -5782,17 +5782,17 @@ "chj" = (/obj/structure/kitchenspike,/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/centcom/living) "chk" = (/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/centcom/living) "chl" = (/obj/machinery/gibber,/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/centcom/living) -"chm" = (/obj/effect/landmark{name = "Nuclear-Bomb"},/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor4"},/area/syndicate_station/start) -"chn" = (/obj/item/clothing/head/helmet/welding,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor4"},/area/syndicate_station/start) +"chm" = (/obj/effect/landmark{name = "Nuclear-Bomb"},/turf/unsimulated/floor{icon = 'shuttle.dmi'; icon_state = "floor4"},/area/syndicate_station/start) +"chn" = (/obj/item/clothing/head/helmet/welding,/turf/unsimulated/floor{icon = 'shuttle.dmi'; icon_state = "floor4"},/area/syndicate_station/start) "cho" = (/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/administration/centcom) "chp" = (/obj/item/weapon/reagent_containers/food/condiment/saltshaker,/obj/structure/table,/turf/unsimulated/floor{tag = "icon-redyellowfull"; icon_state = "redyellowfull"},/area/centcom/living) "chq" = (/turf/unsimulated/floor{icon_state = "cafeteria"; dir = 2},/area/centcom/living) "chr" = (/obj/structure/secure_closet/meat,/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/centcom/living) "chs" = (/obj/machinery/chem_master/condimaster{name = "CondiMaster Neo"},/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/centcom/living) -"cht" = (/obj/structure/crate/medical,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor3"},/area/syndicate_station/start) -"chu" = (/obj/item/weapon/storage/firstaid/regular{pixel_x = 6; pixel_y = -5},/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor3"},/area/syndicate_station/start) +"cht" = (/obj/structure/crate/medical,/turf/unsimulated/floor{icon = 'shuttle.dmi'; icon_state = "floor3"},/area/syndicate_station/start) +"chu" = (/obj/item/weapon/storage/firstaid/regular{pixel_x = 6; pixel_y = -5},/turf/unsimulated/floor{icon = 'shuttle.dmi'; icon_state = "floor3"},/area/syndicate_station/start) "chv" = (/obj/structure/shuttle/engine/heater,/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating/airless,/area/syndicate_station/start) -"chw" = (/obj/item/weapon/extinguisher,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor4"},/area/syndicate_station/start) +"chw" = (/obj/item/weapon/extinguisher,/turf/unsimulated/floor{icon = 'shuttle.dmi'; icon_state = "floor4"},/area/syndicate_station/start) "chx" = (/obj/machinery/optable,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/administration/centcom) "chy" = (/obj/structure/table/reinforced,/obj/machinery/librarycomp,/turf/simulated/floor{dir = 1; icon_state = "chapel"},/area/shuttle/administration/centcom) "chz" = (/obj/structure/bookcase,/turf/simulated/floor{dir = 4; icon_state = "chapel"},/area/shuttle/administration/centcom) @@ -6062,7 +6062,7 @@ "cmD" = (/obj/machinery/door/airlock/external,/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "NTrasen"; name = "Outer Airlock"; opacity = 0},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/specops/centcom) "cmE" = (/turf/space,/turf/simulated/shuttle/wall{dir = 1; icon_state = "diagonalWall3"},/area/shuttle/specops/centcom) "cmF" = (/obj/machinery/door/airlock/centcom{name = "General Access"; opacity = 1; req_access_txt = "101"},/turf/unsimulated/floor{icon_state = "delivery"},/area/centcom/control) -"cmG" = (/obj/structure/table,/obj/item/assembly/shock_kit{icon = 'assemblies.dmi'},/obj/item/device/assembly/signaler,/obj/item/weapon/handcuffs,/obj/item/weapon/melee/classic_baton,/turf/unsimulated/floor{icon_state = "whiteshiny"},/area/centcom/control) +"cmG" = (/obj/structure/table,/obj/item/assembly/shock_kit{icon = 'icons/obj/assemblies.dmi'},/obj/item/device/assembly/signaler,/obj/item/weapon/handcuffs,/obj/item/weapon/melee/classic_baton,/turf/unsimulated/floor{icon_state = "whiteshiny"},/area/centcom/control) "cmH" = (/obj/structure/shuttle/engine/propulsion{tag = "icon-propulsion (EAST)"; icon_state = "propulsion"; dir = 4},/turf/space,/area/shuttle/specops/centcom) "cmI" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/shuttle/engine/heater{tag = "icon-heater (WEST)"; icon_state = "heater"; dir = 8},/turf/unsimulated/floor,/area/shuttle/specops/centcom) "cmJ" = (/obj/effect/landmark{name = "Commando-Bomb"},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/specops/centcom) @@ -6106,12 +6106,12 @@ "cnv" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 5; health = 1e+007},/turf/unsimulated/floor{name = "plating"},/area/centcom/control) "cnw" = (/obj/structure/table/reinforced{icon_state = "reinf_tabledir"},/obj/machinery/door/window/southleft{name = "Security"; req_access_txt = ""},/turf/unsimulated/floor{icon_state = "floor"},/area/centcom/control) "cnx" = (/obj/machinery/door/poddoor{id = "CentComPort"; name = "Security Doors"},/turf/unsimulated/floor{icon_state = "green"; dir = 4},/area/centcom/control) -"cny" = (/obj{anchored = 1; icon = 'icons/turf/shuttle.dmi'; icon_state = "floor3"; layer = 1; name = "floor"},/turf/simulated/shuttle/wall{tag = "icon-swall_f9"; icon_state = "swall_f9"; dir = 2},/area/shuttle/escape/centcom) +"cny" = (/obj{anchored = 1; icon = 'shuttle.dmi'; icon_state = "floor3"; layer = 1; name = "floor"},/turf/simulated/shuttle/wall{tag = "icon-swall_f9"; icon_state = "swall_f9"; dir = 2},/area/shuttle/escape/centcom) "cnz" = (/obj/structure/table,/obj/item/weapon/storage/firstaid/fire,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/escape/centcom) "cnA" = (/obj/structure/stool/chair{dir = 1},/turf/simulated/shuttle/floor,/area/shuttle/escape/centcom) "cnB" = (/obj/machinery/computer/shuttle,/turf/simulated/shuttle/floor,/area/shuttle/escape/centcom) "cnC" = (/obj/structure/table,/obj/item/weapon/storage/firstaid/regular{pixel_x = 2; pixel_y = 3},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/escape/centcom) -"cnD" = (/obj{anchored = 1; icon = 'icons/turf/shuttle.dmi'; icon_state = "floor3"; layer = 1; name = "floor"},/turf/simulated/shuttle/wall{tag = "icon-swall_f5"; icon_state = "swall_f5"; dir = 2},/area/shuttle/escape/centcom) +"cnD" = (/obj{anchored = 1; icon = 'shuttle.dmi'; icon_state = "floor3"; layer = 1; name = "floor"},/turf/simulated/shuttle/wall{tag = "icon-swall_f5"; icon_state = "swall_f5"; dir = 2},/area/shuttle/escape/centcom) "cnE" = (/obj/structure/stool/chair{dir = 1},/turf/unsimulated/floor{icon_state = "delivery"},/area/centcom/control) "cnF" = (/turf/simulated/shuttle/wall{tag = "icon-swall3"; icon_state = "swall3"; dir = 2},/area/shuttle/escape/centcom) "cnG" = (/obj/machinery/computer/atmos_alert,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/escape/centcom) @@ -6197,7 +6197,7 @@ "cpi" = (/obj/structure/rack,/obj/item/toy/sword,/turf/unsimulated/floor{icon_state = "cafeteria"; dir = 2},/area/centcom/holding) "cpj" = (/obj/structure/rack,/obj/item/toy/gun,/turf/unsimulated/floor{icon_state = "cafeteria"; dir = 2},/area/centcom/holding) "cpk" = (/obj/machinery/computer/arcade,/turf/unsimulated/floor{icon_state = "cafeteria"; dir = 2},/area/centcom/holding) -"cpl" = (/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor3"},/area/centcom/holding) +"cpl" = (/turf/unsimulated/floor{icon = 'shuttle.dmi'; icon_state = "floor3"},/area/centcom/holding) "cpm" = (/turf/unsimulated/floor{icon = 'beach.dmi'; icon_state = "sand"; name = "sand"},/area/centcom/holding) "cpn" = (/obj/effect/overlay{anchored = 1; icon = 'icons/misc/beach2.dmi'; icon_state = "palm2"; layer = 10; name = "palm tree"},/obj/effect/overlay{anchored = 1; icon = 'beach.dmi'; icon_state = "coconuts"; name = "coconuts"},/turf/unsimulated/floor{icon = 'beach.dmi'; icon_state = "sand"; name = "sand"},/area/centcom/holding) "cpo" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 5; health = 1e+007},/turf/unsimulated/floor{name = "plating"},/area/centcom/control) @@ -6236,7 +6236,7 @@ "cpV" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/turf/unsimulated/floor{name = "plating"},/area/centcom/evac) "cpW" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/turf/unsimulated/floor{name = "plating"},/area/centcom/evac) "cpX" = (/obj/machinery/door/unpowered/shuttle,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/escape/centcom) -"cpY" = (/obj{anchored = 1; icon = 'icons/turf/shuttle.dmi'; icon_state = "floor"; layer = 1; name = "floor"},/turf/simulated/shuttle/wall{dir = 3; icon_state = "swall_f10"; layer = 2; tag = "icon-swall_f10"},/area/shuttle/escape/centcom) +"cpY" = (/obj{anchored = 1; icon = 'shuttle.dmi'; icon_state = "floor"; layer = 1; name = "floor"},/turf/simulated/shuttle/wall{dir = 3; icon_state = "swall_f10"; layer = 2; tag = "icon-swall_f10"},/area/shuttle/escape/centcom) "cpZ" = (/obj/structure/closet/emcloset,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/escape/centcom) "cqa" = (/obj/structure/rack,/obj/item/toy/crayonbox,/turf/unsimulated/floor{icon_state = "cafeteria"; dir = 2},/area/centcom/holding) "cqb" = (/obj/machinery/vending/coffee,/turf/unsimulated/floor{icon_state = "cafeteria"; dir = 2},/area/centcom/holding) @@ -6465,69 +6465,69 @@ "cuq" = (/turf/simulated/shuttle/wall{tag = "icon-swall12"; icon_state = "swall12"; dir = 2},/area/derelict/ship) "cur" = (/turf/simulated/shuttle/wall{tag = "icon-swall14"; icon_state = "swall14"; dir = 2},/area/derelict/ship) "cus" = (/turf/simulated/shuttle/wall{tag = "icon-swall_s10"; icon_state = "swall_s10"; dir = 2},/area/derelict/ship) -"cut" = (/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor3"},/turf/simulated/shuttle/wall{tag = "icon-swall_f9"; icon_state = "swall_f9"; dir = 2},/area/derelict/ship) -"cuu" = (/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor3"},/area/derelict/ship) -"cuv" = (/obj/machinery/sleeper,/obj/machinery/light{dir = 1},/obj/effect/decal/remains/human,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor3"},/area/derelict/ship) -"cuw" = (/obj/machinery/sleep_console,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor3"},/area/derelict/ship) -"cux" = (/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor3"},/turf/simulated/shuttle/wall{tag = "icon-swall_f5"; icon_state = "swall_f5"; dir = 2},/area/derelict/ship) +"cut" = (/turf/unsimulated/floor{icon = 'shuttle.dmi'; icon_state = "floor3"},/turf/simulated/shuttle/wall{tag = "icon-swall_f9"; icon_state = "swall_f9"; dir = 2},/area/derelict/ship) +"cuu" = (/turf/unsimulated/floor{icon = 'shuttle.dmi'; icon_state = "floor3"},/area/derelict/ship) +"cuv" = (/obj/machinery/sleeper,/obj/machinery/light{dir = 1},/obj/effect/decal/remains/human,/turf/unsimulated/floor{icon = 'shuttle.dmi'; icon_state = "floor3"},/area/derelict/ship) +"cuw" = (/obj/machinery/sleep_console,/turf/unsimulated/floor{icon = 'shuttle.dmi'; icon_state = "floor3"},/area/derelict/ship) +"cux" = (/turf/unsimulated/floor{icon = 'shuttle.dmi'; icon_state = "floor3"},/turf/simulated/shuttle/wall{tag = "icon-swall_f5"; icon_state = "swall_f5"; dir = 2},/area/derelict/ship) "cuy" = (/turf/simulated/shuttle/wall{tag = "icon-swall13"; icon_state = "swall13"; dir = 2},/area/derelict/ship) "cuz" = (/obj/structure/shuttle/engine/propulsion{tag = "icon-burst_r (WEST)"; icon_state = "burst_r"; dir = 8},/turf/space,/area/derelict/ship) "cuA" = (/turf/simulated/shuttle/wall{tag = "icon-swall11"; icon_state = "swall11"; dir = 2},/area/derelict/ship) -"cuB" = (/obj/machinery/computer/med_data,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor3"},/area/derelict/ship) -"cuC" = (/obj/structure/table,/obj/item/weapon/storage/firstaid/regular{pixel_x = 6; pixel_y = -5},/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor3"},/area/derelict/ship) +"cuB" = (/obj/machinery/computer/med_data,/turf/unsimulated/floor{icon = 'shuttle.dmi'; icon_state = "floor3"},/area/derelict/ship) +"cuC" = (/obj/structure/table,/obj/item/weapon/storage/firstaid/regular{pixel_x = 6; pixel_y = -5},/turf/unsimulated/floor{icon = 'shuttle.dmi'; icon_state = "floor3"},/area/derelict/ship) "cuD" = (/turf/simulated/shuttle/wall{tag = "icon-swall15"; icon_state = "swall15"; dir = 2},/area/derelict/ship) "cuE" = (/turf/unsimulated/floor{name = "plating"},/turf/simulated/shuttle/wall{tag = "icon-swall_f9"; icon_state = "swall_f9"; dir = 2},/area/derelict/ship) "cuF" = (/obj/structure/shuttle/engine/heater{tag = "icon-heater (EAST)"; icon_state = "heater"; dir = 4},/turf/unsimulated/floor{name = "plating"},/area/derelict/ship) "cuG" = (/obj/structure/shuttle/engine/propulsion{tag = "icon-propulsion (WEST)"; icon_state = "propulsion"; dir = 8},/turf/space,/area/derelict/ship) -"cuH" = (/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor3"},/turf/simulated/shuttle/wall{tag = "icon-swall_f10"; icon_state = "swall_f10"; dir = 2},/area/derelict/ship) -"cuI" = (/obj/item/weapon/scalpel,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor3"},/area/derelict/ship) +"cuH" = (/turf/unsimulated/floor{icon = 'shuttle.dmi'; icon_state = "floor3"},/turf/simulated/shuttle/wall{tag = "icon-swall_f10"; icon_state = "swall_f10"; dir = 2},/area/derelict/ship) +"cuI" = (/obj/item/weapon/scalpel,/turf/unsimulated/floor{icon = 'shuttle.dmi'; icon_state = "floor3"},/area/derelict/ship) "cuJ" = (/turf/simulated/shuttle/wall{tag = "icon-swall7"; icon_state = "swall7"; dir = 2},/area/derelict/ship) "cuK" = (/turf/unsimulated/floor{name = "plating"},/area/derelict/ship) -"cuL" = (/obj/structure/computerframe{anchored = 1},/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor3"},/area/derelict/ship) +"cuL" = (/obj/structure/computerframe{anchored = 1},/turf/unsimulated/floor{icon = 'shuttle.dmi'; icon_state = "floor3"},/area/derelict/ship) "cuM" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/turf/unsimulated/floor{name = "plating"},/area/derelict/ship) "cuN" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/turf/unsimulated/floor{name = "plating"},/area/derelict/ship) "cuO" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/turf/unsimulated/floor{name = "plating"},/area/derelict/ship) "cuP" = (/obj/machinery/door/airlock/glass{name = "Hibernation Pods"},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/derelict/ship) -"cuQ" = (/obj/structure/stool/chair{dir = 1},/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor3"},/area/derelict/ship) -"cuR" = (/obj/structure/table,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor3"},/area/derelict/ship) +"cuQ" = (/obj/structure/stool/chair{dir = 1},/turf/unsimulated/floor{icon = 'shuttle.dmi'; icon_state = "floor3"},/area/derelict/ship) +"cuR" = (/obj/structure/table,/turf/unsimulated/floor{icon = 'shuttle.dmi'; icon_state = "floor3"},/area/derelict/ship) "cuS" = (/turf/simulated/shuttle/wall{tag = "icon-swall3"; icon_state = "swall3"; dir = 2},/area/derelict/ship) -"cuT" = (/obj/item/device/multitool,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor3"},/area/derelict/ship) -"cuU" = (/obj/item/weapon/cell{charge = 100; maxcharge = 15000},/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor3"},/area/derelict/ship) +"cuT" = (/obj/item/device/multitool,/turf/unsimulated/floor{icon = 'shuttle.dmi'; icon_state = "floor3"},/area/derelict/ship) +"cuU" = (/obj/item/weapon/cell{charge = 100; maxcharge = 15000},/turf/unsimulated/floor{icon = 'shuttle.dmi'; icon_state = "floor3"},/area/derelict/ship) "cuV" = (/obj/machinery/door/unpowered/shuttle,/turf/unsimulated/floor{name = "plating"},/area/derelict/ship) "cuW" = (/turf/unsimulated/floor{name = "plating"},/turf/simulated/shuttle/wall{tag = "icon-swall_f6"; icon_state = "swall_f6"; dir = 2},/area/derelict/ship) "cuX" = (/obj/structure/shuttle/engine/propulsion{tag = "icon-burst_l (WEST)"; icon_state = "burst_l"; dir = 8},/turf/space,/area/derelict/ship) "cuY" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/turf/unsimulated/floor{name = "plating"},/area/derelict/ship) -"cuZ" = (/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor3"},/turf/simulated/shuttle/wall{tag = "icon-swall_f6"; icon_state = "swall_f6"; dir = 2},/area/derelict/ship) -"cva" = (/obj/machinery/door/airlock/glass,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor3"},/area/derelict/ship) -"cvb" = (/obj/machinery/light_switch{pixel_x = 27},/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor3"},/area/derelict/ship) -"cvc" = (/obj/machinery/portable_atmospherics/scrubber,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor3"},/area/derelict/ship) +"cuZ" = (/turf/unsimulated/floor{icon = 'shuttle.dmi'; icon_state = "floor3"},/turf/simulated/shuttle/wall{tag = "icon-swall_f6"; icon_state = "swall_f6"; dir = 2},/area/derelict/ship) +"cva" = (/obj/machinery/door/airlock/glass,/turf/unsimulated/floor{icon = 'shuttle.dmi'; icon_state = "floor3"},/area/derelict/ship) +"cvb" = (/obj/machinery/light_switch{pixel_x = 27},/turf/unsimulated/floor{icon = 'shuttle.dmi'; icon_state = "floor3"},/area/derelict/ship) +"cvc" = (/obj/machinery/portable_atmospherics/scrubber,/turf/unsimulated/floor{icon = 'shuttle.dmi'; icon_state = "floor3"},/area/derelict/ship) "cvd" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/turf/unsimulated/floor{name = "plating"},/area/derelict/ship) -"cve" = (/obj/machinery/light{icon_state = "tube1"; dir = 4},/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor3"},/area/derelict/ship) -"cvf" = (/obj/structure/stool/bed,/obj/item/weapon/bedsheet,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor3"},/area/derelict/ship) -"cvg" = (/obj/machinery/door/window,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor3"},/area/derelict/ship) -"cvh" = (/obj/machinery/light{dir = 1},/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor3"},/area/derelict/ship) +"cve" = (/obj/machinery/light{icon_state = "tube1"; dir = 4},/turf/unsimulated/floor{icon = 'shuttle.dmi'; icon_state = "floor3"},/area/derelict/ship) +"cvf" = (/obj/structure/stool/bed,/obj/item/weapon/bedsheet,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/turf/unsimulated/floor{icon = 'shuttle.dmi'; icon_state = "floor3"},/area/derelict/ship) +"cvg" = (/obj/machinery/door/window,/turf/unsimulated/floor{icon = 'shuttle.dmi'; icon_state = "floor3"},/area/derelict/ship) +"cvh" = (/obj/machinery/light{dir = 1},/turf/unsimulated/floor{icon = 'shuttle.dmi'; icon_state = "floor3"},/area/derelict/ship) "cvi" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/turf/unsimulated/floor{name = "plating"},/area/derelict/ship) -"cvj" = (/obj/machinery/light/small{dir = 8},/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor3"},/area/derelict/ship) -"cvk" = (/obj/structure/table,/obj/item/weapon/tank/oxygen,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor3"},/area/derelict/ship) +"cvj" = (/obj/machinery/light/small{dir = 8},/turf/unsimulated/floor{icon = 'shuttle.dmi'; icon_state = "floor3"},/area/derelict/ship) +"cvk" = (/obj/structure/table,/obj/item/weapon/tank/oxygen,/turf/unsimulated/floor{icon = 'shuttle.dmi'; icon_state = "floor3"},/area/derelict/ship) "cvl" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/turf/unsimulated/floor{name = "plating"},/area/derelict/ship) "cvm" = (/turf/simulated/shuttle/wall{tag = "icon-swall_s6"; icon_state = "swall_s6"; dir = 2},/area) "cvn" = (/turf/simulated/shuttle/wall{tag = "icon-swall14"; icon_state = "swall14"; dir = 2},/area) "cvo" = (/turf/simulated/shuttle/wall{tag = "icon-swall12"; icon_state = "swall12"; dir = 2},/area) "cvp" = (/turf/simulated/shuttle/wall{tag = "icon-swall_s10"; icon_state = "swall_s10"; dir = 2},/area) -"cvq" = (/obj/structure/table,/obj/item/device/analyzer,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor3"},/area/derelict/ship) -"cvr" = (/obj/structure/stool/chair{dir = 8},/obj/effect/decal/remains/human,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor3"},/area/derelict/ship) -"cvs" = (/obj/machinery/light/small{dir = 4},/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor3"},/area/derelict/ship) +"cvq" = (/obj/structure/table,/obj/item/device/analyzer,/turf/unsimulated/floor{icon = 'shuttle.dmi'; icon_state = "floor3"},/area/derelict/ship) +"cvr" = (/obj/structure/stool/chair{dir = 8},/obj/effect/decal/remains/human,/turf/unsimulated/floor{icon = 'shuttle.dmi'; icon_state = "floor3"},/area/derelict/ship) +"cvs" = (/obj/machinery/light/small{dir = 4},/turf/unsimulated/floor{icon = 'shuttle.dmi'; icon_state = "floor3"},/area/derelict/ship) "cvt" = (/obj/machinery/door/airlock/glass{name = "Living Module"},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/derelict/ship) -"cvu" = (/obj/machinery/door/unpowered/shuttle,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor3"},/area/derelict/ship) +"cvu" = (/obj/machinery/door/unpowered/shuttle,/turf/unsimulated/floor{icon = 'shuttle.dmi'; icon_state = "floor3"},/area/derelict/ship) "cvv" = (/turf/simulated/shuttle/wall{tag = "icon-swall7"; icon_state = "swall7"; dir = 2},/area) "cvw" = (/turf/simulated/shuttle/floor{icon_state = "floor3"},/turf/simulated/shuttle/wall{tag = "icon-swall_f9"; icon_state = "swall_f9"; dir = 2},/area) "cvx" = (/turf/simulated/shuttle/floor{icon_state = "floor3"},/area) "cvy" = (/turf/simulated/shuttle/floor{icon_state = "floor3"},/turf/simulated/shuttle/wall{tag = "icon-swall_f5"; icon_state = "swall_f5"; dir = 2},/area) "cvz" = (/turf/simulated/shuttle/wall{tag = "icon-swall11"; icon_state = "swall11"; dir = 2},/area) -"cvA" = (/obj/machinery/door/window/northright,/obj/effect/decal/remains/human,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor3"},/area/derelict/ship) -"cvB" = (/obj/structure/stool/bed,/obj/item/weapon/bedsheet,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor3"},/area/derelict/ship) -"cvC" = (/obj/machinery/light,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor3"},/area/derelict/ship) -"cvD" = (/obj/machinery/portable_atmospherics/canister/oxygen,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor3"},/area/derelict/ship) +"cvA" = (/obj/machinery/door/window/northright,/obj/effect/decal/remains/human,/turf/unsimulated/floor{icon = 'shuttle.dmi'; icon_state = "floor3"},/area/derelict/ship) +"cvB" = (/obj/structure/stool/bed,/obj/item/weapon/bedsheet,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/turf/unsimulated/floor{icon = 'shuttle.dmi'; icon_state = "floor3"},/area/derelict/ship) +"cvC" = (/obj/machinery/light,/turf/unsimulated/floor{icon = 'shuttle.dmi'; icon_state = "floor3"},/area/derelict/ship) +"cvD" = (/obj/machinery/portable_atmospherics/canister/oxygen,/turf/unsimulated/floor{icon = 'shuttle.dmi'; icon_state = "floor3"},/area/derelict/ship) "cvE" = (/obj/machinery/door/unpowered/shuttle,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area) "cvF" = (/turf/simulated/shuttle/wall{tag = "icon-swall_s9"; icon_state = "swall_s9"; dir = 2},/area/derelict/ship) "cvG" = (/turf/simulated/shuttle/wall{tag = "icon-swall_s5"; icon_state = "swall_s5"; dir = 2},/area/derelict/ship) @@ -6538,27 +6538,27 @@ "cvL" = (/turf/simulated/shuttle/wall{tag = "icon-swall_s5"; icon_state = "swall_s5"; dir = 2},/area) "cvM" = (/turf/simulated/shuttle/wall{tag = "icon-swall13"; icon_state = "swall13"; dir = 2},/area) "cvN" = (/turf/simulated/shuttle/wall{tag = "icon-swall_s9"; icon_state = "swall_s9"; dir = 2},/area) -"cvO" = (/obj/item/weapon/shard{icon_state = "medium"},/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor3"},/area/derelict/ship) -"cvP" = (/obj/item/weapon/shard,/obj/structure/stool/chair,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor3"},/area/derelict/ship) -"cvQ" = (/obj/structure/stool/chair,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor3"},/area/derelict/ship) -"cvR" = (/obj/structure/cable,/obj/structure/computerframe{anchored = 1},/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor3"},/area/derelict/ship) -"cvS" = (/obj/structure/cable,/obj/structure/computerframe{anchored = 1},/obj/item/weapon/cable_coil/cut,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor3"},/area/derelict/ship) -"cvT" = (/obj/structure/rack,/obj/item/weapon/tank/emergency_oxygen,/obj/item/weapon/tank/emergency_oxygen,/obj/item/weapon/tank/emergency_oxygen,/obj/item/weapon/tank/emergency_oxygen,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor3"},/area/derelict/ship) -"cvU" = (/obj/structure/rack,/obj/item/clothing/suit/space/syndicate,/obj/item/clothing/head/helmet/space/syndicate,/obj/item/clothing/mask/breath,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor3"},/area/derelict/ship) -"cvV" = (/obj/structure/rack,/obj/item/weapon/storage/toolbox/syndicate,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor3"},/area/derelict/ship) -"cvW" = (/obj/machinery/power/apc{cell_type = 5000; dir = 8; environ = 0; equipment = 0; lighting = 0; locked = 0; name = "Worn-out APC"; pixel_x = -24; pixel_y = 0},/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor3"},/area/derelict/ship) +"cvO" = (/obj/item/weapon/shard{icon_state = "medium"},/turf/unsimulated/floor{icon = 'shuttle.dmi'; icon_state = "floor3"},/area/derelict/ship) +"cvP" = (/obj/item/weapon/shard,/obj/structure/stool/chair,/turf/unsimulated/floor{icon = 'shuttle.dmi'; icon_state = "floor3"},/area/derelict/ship) +"cvQ" = (/obj/structure/stool/chair,/turf/unsimulated/floor{icon = 'shuttle.dmi'; icon_state = "floor3"},/area/derelict/ship) +"cvR" = (/obj/structure/cable,/obj/structure/computerframe{anchored = 1},/turf/unsimulated/floor{icon = 'shuttle.dmi'; icon_state = "floor3"},/area/derelict/ship) +"cvS" = (/obj/structure/cable,/obj/structure/computerframe{anchored = 1},/obj/item/weapon/cable_coil/cut,/turf/unsimulated/floor{icon = 'shuttle.dmi'; icon_state = "floor3"},/area/derelict/ship) +"cvT" = (/obj/structure/rack,/obj/item/weapon/tank/emergency_oxygen,/obj/item/weapon/tank/emergency_oxygen,/obj/item/weapon/tank/emergency_oxygen,/obj/item/weapon/tank/emergency_oxygen,/turf/unsimulated/floor{icon = 'shuttle.dmi'; icon_state = "floor3"},/area/derelict/ship) +"cvU" = (/obj/structure/rack,/obj/item/clothing/suit/space/syndicate,/obj/item/clothing/head/helmet/space/syndicate,/obj/item/clothing/mask/breath,/turf/unsimulated/floor{icon = 'shuttle.dmi'; icon_state = "floor3"},/area/derelict/ship) +"cvV" = (/obj/structure/rack,/obj/item/weapon/storage/toolbox/syndicate,/turf/unsimulated/floor{icon = 'shuttle.dmi'; icon_state = "floor3"},/area/derelict/ship) +"cvW" = (/obj/machinery/power/apc{cell_type = 5000; dir = 8; environ = 0; equipment = 0; lighting = 0; locked = 0; name = "Worn-out APC"; pixel_x = -24; pixel_y = 0},/turf/unsimulated/floor{icon = 'shuttle.dmi'; icon_state = "floor3"},/area/derelict/ship) "cvX" = (/turf/unsimulated/floor{name = "plating"},/turf/simulated/shuttle/wall{tag = "icon-swall_f5"; icon_state = "swall_f5"; dir = 2},/area/derelict/ship) "cvY" = (/obj/item/weapon/card/data/clown,/turf/space,/area) "cvZ" = (/obj/machinery/door/poddoor{id = "oldship_gun"; name = "Pod Bay Door"},/turf/unsimulated/floor{name = "plating"},/area/derelict/ship) "cwa" = (/obj/machinery/mass_driver{dir = 8; icon_state = "mass_driver"; id = "oldship_gun"},/turf/unsimulated/floor{name = "plating"},/area/derelict/ship) "cwb" = (/obj/machinery/door/airlock/glass,/turf/unsimulated/floor{name = "plating"},/area/derelict/ship) -"cwc" = (/obj/machinery/door/airlock/glass{name = "Pod Bay"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; tag = "Streight"},/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor3"},/area/derelict/ship) -"cwd" = (/obj/effect/decal/remains/human,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor3"},/area/derelict/ship) +"cwc" = (/obj/machinery/door/airlock/glass{name = "Pod Bay"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; tag = "Streight"},/turf/unsimulated/floor{icon = 'shuttle.dmi'; icon_state = "floor3"},/area/derelict/ship) +"cwd" = (/obj/effect/decal/remains/human,/turf/unsimulated/floor{icon = 'shuttle.dmi'; icon_state = "floor3"},/area/derelict/ship) "cwe" = (/turf/unsimulated/floor{name = "plating"},/turf/simulated/shuttle/wall{tag = "icon-swall_f10"; icon_state = "swall_f10"; dir = 2},/area/derelict/ship) -"cwf" = (/obj/machinery/computer/pod{id = "oldship_gun"},/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor3"},/area/derelict/ship) -"cwg" = (/obj/machinery/light/small,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor3"},/area/derelict/ship) -"cwh" = (/obj/structure/table,/obj/item/weapon/screwdriver,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor3"},/area/derelict/ship) -"cwi" = (/obj/structure/table,/obj/item/device/radio,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor3"},/area/derelict/ship) +"cwf" = (/obj/machinery/computer/pod{id = "oldship_gun"},/turf/unsimulated/floor{icon = 'shuttle.dmi'; icon_state = "floor3"},/area/derelict/ship) +"cwg" = (/obj/machinery/light/small,/turf/unsimulated/floor{icon = 'shuttle.dmi'; icon_state = "floor3"},/area/derelict/ship) +"cwh" = (/obj/structure/table,/obj/item/weapon/screwdriver,/turf/unsimulated/floor{icon = 'shuttle.dmi'; icon_state = "floor3"},/area/derelict/ship) +"cwi" = (/obj/structure/table,/obj/item/device/radio,/turf/unsimulated/floor{icon = 'shuttle.dmi'; icon_state = "floor3"},/area/derelict/ship) "cwj" = (/obj/machinery/power/solar/fake,/turf/simulated/floor{icon_state = "solarpanel"},/area) "cwk" = (/turf/space,/area/turret_protected/AIsatextFP) "cwl" = (/turf/space,/area/turret_protected/AIsatextFS) diff --git a/tgstation.dme b/tgstation.dme index ae447ec7a0c..f6feeac525e 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -44,6 +44,7 @@ #define FILE_DIR "code/game/gamemodes/traitor" #define FILE_DIR "code/game/gamemodes/wizard" #define FILE_DIR "code/game/jobs" +#define FILE_DIR "code/game/jobs/job" #define FILE_DIR "code/game/machinery" #define FILE_DIR "code/game/machinery/atmoalter" #define FILE_DIR "code/game/machinery/bots" @@ -155,7 +156,6 @@ #define FILE_DIR "icons/turf" #define FILE_DIR "interface" #define FILE_DIR "maps" -#define FILE_DIR "maps/backup" #define FILE_DIR "sound" #define FILE_DIR "sound/ambience" #define FILE_DIR "sound/announcer" @@ -386,9 +386,20 @@ #include "code\game\gamemodes\wizard\spells.dm" #include "code\game\gamemodes\wizard\wizard.dm" #include "code\game\jobs\access.dm" +#include "code\game\jobs\job_controller.dm" #include "code\game\jobs\jobprocs.dm" #include "code\game\jobs\jobs.dm" #include "code\game\jobs\whitelist.dm" +#include "code\game\jobs\job\assistant.dm" +#include "code\game\jobs\job\captian.dm" +#include "code\game\jobs\job\civilian.dm" +#include "code\game\jobs\job\civilian_chaplain.dm" +#include "code\game\jobs\job\engineering.dm" +#include "code\game\jobs\job\job.dm" +#include "code\game\jobs\job\medical.dm" +#include "code\game\jobs\job\science.dm" +#include "code\game\jobs\job\security.dm" +#include "code\game\jobs\job\silicon.dm" #include "code\game\machinery\ai_slipper.dm" #include "code\game\machinery\airlock_control.dm" #include "code\game\machinery\alarm.dm" @@ -531,7 +542,6 @@ #include "code\game\objects\tank.dm" #include "code\game\objects\toys.dm" #include "code\game\objects\transfer_valve.dm" -#include "code\game\objects\traps.dm" #include "code\game\objects\washing_machine.dm" #include "code\game\objects\weapons.dm" #include "code\game\objects\window.dm" @@ -849,6 +859,7 @@ #include "code\modules\mob\new_player\hud.dm" #include "code\modules\mob\new_player\new_player.dm" #include "code\modules\mob\new_player\preferences.dm" +#include "code\modules\mob\new_player\preferences_setup.dm" #include "code\modules\mob\new_player\savefile.dm" #include "code\modules\mob\organ\organ.dm" #include "code\modules\mob\organ\organ_external.dm" @@ -916,7 +927,6 @@ #include "code\modules\research\server.dm" #include "code\WorkInProgress\buildmode.dm" #include "code\WorkInProgress\explosion_particles.dm" -#include "code\WorkInProgress\jobs.dm" #include "code\WorkInProgress\mapload\dmm_suite.dm" #include "code\WorkInProgress\mapload\reader.dm" #include "code\WorkInProgress\recycling\conveyor.dm"