From 863a9deb7b9bc612fb4a4b3caf1c1665e9a9f017 Mon Sep 17 00:00:00 2001 From: cib Date: Sat, 9 Feb 2013 17:55:53 +0100 Subject: [PATCH 1/9] Added NT relation preference. --- code/game/gamemodes/game_mode.dm | 16 +++- code/game/gamemodes/intercept_report.dm | 110 +++++++----------------- code/game/gamemodes/traitor/traitor.dm | 6 ++ code/modules/client/preferences.dm | 9 ++ 4 files changed, 62 insertions(+), 79 deletions(-) diff --git a/code/game/gamemodes/game_mode.dm b/code/game/gamemodes/game_mode.dm index ecac47c66d..f948f76906 100644 --- a/code/game/gamemodes/game_mode.dm +++ b/code/game/gamemodes/game_mode.dm @@ -204,12 +204,12 @@ Implants; /datum/game_mode/proc/send_intercept() - var/intercepttext = "Cent. Com. Update Requested staus information:
" + var/intercepttext = "Cent. Com. Update Requested status information:
" intercepttext += " Cent. Com has recently been contacted by the following syndicate affiliated organisations in your area, please investigate any information you may have:" var/list/possible_modes = list() possible_modes.Add("revolution", "wizard", "nuke", "traitor", "malf", "changeling", "cult") - possible_modes -= "[ticker.mode]" + //possible_modes -= "[ticker.mode]" var/number = pick(2, 3) var/i = 0 for(i = 0, i < number, i++) @@ -428,3 +428,15 @@ proc/display_roundstart_logout_report() for(var/mob/M in mob_list) if(M.client && M.client.holder) M << msg + + +proc/get_nt_opposed() + var/list/dudes = list() + for(var/mob/living/carbon/human/man in player_list) + if(man.client) + if(man.client.prefs.nanotrasen_relation == "Opposed") + dudes += man + else if(man.client.prefs.nanotrasen_relation == "Skeptical" && prob(50)) + dudes += man + if(dudes.len == 0) return null + return pick(dudes) \ No newline at end of file diff --git a/code/game/gamemodes/intercept_report.dm b/code/game/gamemodes/intercept_report.dm index 35b5f42c69..f4e1b706c0 100644 --- a/code/game/gamemodes/intercept_report.dm +++ b/code/game/gamemodes/intercept_report.dm @@ -111,114 +111,70 @@ return num2text(md5(num2text(rand(1,10000)))) */ +/datum/intercept_text/proc/get_suspect() + var/list/dudes = list() + for(var/mob/living/carbon/human/man in player_list) if(man.client && man.client.prefs.nanotrasen_relation == "Opposed") + dudes += man + for(var/i = 0, i < max(player_list.len/10,2), i++) + dudes += pick(player_list) + return pick(dudes) + /datum/intercept_text/proc/build_traitor(datum/mind/correct_person) var/name_1 = pick(src.org_names_1) var/name_2 = pick(src.org_names_2) - /* - var/fingerprints - var/traitor_name - var/prob_right_dude = rand(prob_correct_person_lower, prob_correct_person_higher) - if(prob(prob_right_dude) && ticker.mode == "traitor") - if(correct_person:assigned_role=="MODE") - traitor_name = pick_mob() - else - traitor_name = correct_person:current - else if(prob(prob_right_dude)) - traitor_name = pick_mob() - else - fingerprints = pick_fingerprints() - */ + var/mob/living/carbon/human/H = get_suspect() + var/fingerprints = num2text(md5(H.dna.uni_identity)) + var/traitor_name = H.real_name + var/prob_right_dude = rand(1, 100) src.text += "

The [name_1] [name_2] implied an undercover operative was acting on their behalf on the station currently." src.text += "It would be in your best interests to suspect everybody, as these undercover operatives could have implants which trigger them to have their memories removed until they are needed. He, or she, could even be a high ranking officer." - /* + src.text += "After some investigation, we " - if(traitor_name) + if(prob(50)) src.text += "are [prob_right_dude]% sure that [traitor_name] may have been involved, and should be closely observed." src.text += "
Note: This group are known to be untrustworthy, so do not act on this information without proper discourse." else src.text += "discovered the following set of fingerprints ([fingerprints]) on sensitive materials, and their owner should be closely observed." src.text += "However, these could also belong to a current Cent. Com employee, so do not act on this without reason." - */ + /datum/intercept_text/proc/build_cult(datum/mind/correct_person) var/name_1 = pick(src.org_names_1) var/name_2 = pick(src.org_names_2) - /* - var/traitor_name - var/traitor_job - var/prob_right_dude = rand(prob_correct_person_lower, prob_correct_person_higher) - var/prob_right_job = rand(prob_correct_job_lower, prob_correct_job_higher) - if(prob(prob_right_job) && is_convertable_to_cult(correct_person)) - if (correct_person) - if(correct_person:assigned_role=="MODE") - traitor_job = pick(get_all_jobs()) - else - traitor_job = correct_person:assigned_role - else - var/list/job_tmp = get_all_jobs() - job_tmp.Remove("Captain", "Chaplain", "AI", "Cyborg", "Security Officer", "Detective", "Head Of Security", "Head of Personnel", "Chief Engineer", "Research Director", "Chief Medical Officer") - traitor_job = pick(job_tmp) - if(prob(prob_right_dude) && ticker.mode == "cult") - if(correct_person:assigned_role=="MODE") - traitor_name = src.pick_mob() - else - traitor_name = correct_person:current - else - traitor_name = pick_mob() - */ + + var/prob_right_dude = rand(1, 100) + var/mob/living/carbon/human/H = get_suspect() + var/traitor_job = H.mind.assigned_role + src.text += "

It has been brought to our attention that the [name_1] [name_2] have stumbled upon some dark secrets. They apparently want to spread the dangerous knowledge onto as many stations as they can." src.text += "Watch out for the following: praying to an unfamilar god, preaching the word of \[REDACTED\], sacrifices, magical dark power, living constructs of evil and a portal to the dimension of the underworld." - /* - src.text += "Based on our intelligence, we are [prob_right_job]% sure that if true, someone doing the job of [traitor_job] on your station may have been converted " + + src.text += "Based on our intelligence, we are [prob_right_dude]% sure that if true, someone doing the job of [traitor_job] on your station may have been converted " src.text += "and instilled with the idea of the flimsiness of the real world, seeking to destroy it. " - if(prob(prob_right_dude)) - src.text += "
In addition, we are [prob_right_dude]% sure that [traitor_name] may have also some in to contact with this " - src.text += "organisation." + src.text += "
However, if this information is acted on without substantial evidence, those responsible will face severe repercussions." - */ + /datum/intercept_text/proc/build_rev(datum/mind/correct_person) var/name_1 = pick(src.org_names_1) var/name_2 = pick(src.org_names_2) - /* - var/traitor_name - var/traitor_job - var/prob_right_dude = rand(prob_correct_person_lower, prob_correct_person_higher) - var/prob_right_job = rand(prob_correct_job_lower, prob_correct_job_higher) - if(prob(prob_right_job) && is_convertable_to_rev(correct_person)) - if (correct_person) - if(correct_person.assigned_role=="MODE") - traitor_job = pick(get_all_jobs()) - else - traitor_job = correct_person.assigned_role - else - var/list/job_tmp = get_all_jobs() - job_tmp-=nonhuman_positions - job_tmp-=command_positions - job_tmp.Remove("Security Officer", "Detective", "Warden", "MODE") - traitor_job = pick(job_tmp) - if(prob(prob_right_dude) && ticker.mode.config_tag == "revolution") - if(correct_person.assigned_role=="MODE") - traitor_name = src.pick_mob() - else - traitor_name = correct_person.current - else - traitor_name = src.pick_mob() - */ + + var/prob_right_dude = rand(1, 100) + var/mob/living/carbon/human/H = get_suspect() + var/traitor_job = H.mind.assigned_role + src.text += "

It has been brought to our attention that the [name_1] [name_2] are attempting to stir unrest on one of our stations in your sector." src.text += "Watch out for suspicious activity among the crew and make sure that all heads of staff report in periodically." - /* - src.text += "Based on our intelligence, we are [prob_right_job]% sure that if true, someone doing the job of [traitor_job] on your station may have been brainwashed " + + src.text += "Based on our intelligence, we are [prob_right_dude]% sure that if true, someone doing the job of [traitor_job] on your station may have been brainwashed " src.text += "at a recent conference, and their department should be closely monitored for signs of mutiny. " - if(prob(prob_right_dude)) - src.text += "
In addition, we are [prob_right_dude]% sure that [traitor_name] may have also some in to contact with this " - src.text += "organisation." + src.text += "
However, if this information is acted on without substantial evidence, those responsible will face severe repercussions." - */ + /datum/intercept_text/proc/build_wizard(datum/mind/correct_person) diff --git a/code/game/gamemodes/traitor/traitor.dm b/code/game/gamemodes/traitor/traitor.dm index b44b415a7d..895c579b1f 100644 --- a/code/game/gamemodes/traitor/traitor.dm +++ b/code/game/gamemodes/traitor/traitor.dm @@ -291,3 +291,9 @@ traitor_mob << "Unfortunately, the Syndicate did not provide you with a code response." traitor_mob << "Use the code words in the order provided, during regular conversation, to identify other agents. Proceed with caution, however, as everyone is a potential foe." //End code phrase. + + // Tell them about people they might want to contact. + var/mob/living/carbon/human/M = get_nt_opposed() + if(M != traitor_mob) + traitor_mob << "We have received credible reports that [M.real_name] might be willing to help our cause. If you need assistance, consider contacting them." + traitor_mob.mind.store_memory("Potential Collaborator: [M.real_name]") \ No newline at end of file diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm index 878fd8f883..9955cee809 100644 --- a/code/modules/client/preferences.dm +++ b/code/modules/client/preferences.dm @@ -98,6 +98,8 @@ datum/preferences var/sec_record = "" var/disabilities = 0 + var/nanotrasen_relation = "Neutral" + // OOC Metadata: var/metadata = "" var/slot_name = "" @@ -298,6 +300,8 @@ datum/preferences dat += "Backpack Type:
[backbaglist[backbag]]
" + dat += "Nanotrasen Relation:
[nanotrasen_relation]
" + dat += "Preview
" dat += "" @@ -919,6 +923,11 @@ datum/preferences if(new_backbag) backbag = backbaglist.Find(new_backbag) + if("nt_relation") + var/new_relation = input(user, "Choose your relation to NT. Note that this represents what others can find out about your character by researching your background, not what your character actually thinks.", "Character Preference") as null|anything in list("Loyal", "Supportive", "Neutral", "Skeptical", "Opposed") + if(new_relation) + nanotrasen_relation = new_relation + if("flavor_text") var/msg = input(usr,"Set the flavor text in your 'examine' verb. This can also be used for OOC notes and preferences!","Flavor Text",html_decode(flavor_text)) as message From 104d21e9e2054369c5552f747f0400e169700a33 Mon Sep 17 00:00:00 2001 From: cib Date: Sun, 10 Feb 2013 22:56:40 +0100 Subject: [PATCH 2/9] Simple animal balance fixes: - Reduced the speed of most simple animals to 4, so now you can get away if you're fast and they don't shoot you - Added a mechanic that determines how likely a hostile animal is to smash in a window, and made this chance very low for carp - Simple animals will no longer attack people in crit --- code/modules/mob/living/simple_animal/hostile/carp.dm | 4 +++- .../mob/living/simple_animal/hostile/creature.dm | 1 + .../mob/living/simple_animal/hostile/faithless.dm | 1 + .../mob/living/simple_animal/hostile/giant_spider.dm | 1 + .../mob/living/simple_animal/hostile/hivebot.dm | 1 + .../mob/living/simple_animal/hostile/hostile.dm | 10 ++++++---- code/modules/mob/living/simple_animal/hostile/mimic.dm | 2 +- .../modules/mob/living/simple_animal/hostile/pirate.dm | 2 +- .../mob/living/simple_animal/hostile/russian.dm | 2 +- .../mob/living/simple_animal/hostile/syndicate.dm | 2 +- code/modules/mob/living/simple_animal/simple_animal.dm | 2 +- 11 files changed, 18 insertions(+), 10 deletions(-) diff --git a/code/modules/mob/living/simple_animal/hostile/carp.dm b/code/modules/mob/living/simple_animal/hostile/carp.dm index 2f53a5a2e1..353ca6156f 100644 --- a/code/modules/mob/living/simple_animal/hostile/carp.dm +++ b/code/modules/mob/living/simple_animal/hostile/carp.dm @@ -13,7 +13,7 @@ response_help = "pets the" response_disarm = "gently pushes aside the" response_harm = "hits the" - speed = -1 + speed = 4 maxHealth = 25 health = 25 @@ -34,6 +34,8 @@ max_n2 = 0 minbodytemp = 0 + break_stuff_probability = 2 + faction = "carp" /mob/living/simple_animal/hostile/carp/Process_Spacemove(var/check_drift = 0) diff --git a/code/modules/mob/living/simple_animal/hostile/creature.dm b/code/modules/mob/living/simple_animal/hostile/creature.dm index b02ba0469d..45464bf895 100644 --- a/code/modules/mob/living/simple_animal/hostile/creature.dm +++ b/code/modules/mob/living/simple_animal/hostile/creature.dm @@ -13,3 +13,4 @@ attacktext = "chomps" attack_sound = 'sound/weapons/bite.ogg' faction = "creature" + speed = 4 \ No newline at end of file diff --git a/code/modules/mob/living/simple_animal/hostile/faithless.dm b/code/modules/mob/living/simple_animal/hostile/faithless.dm index ecc0e8882e..5613c21ac3 100644 --- a/code/modules/mob/living/simple_animal/hostile/faithless.dm +++ b/code/modules/mob/living/simple_animal/hostile/faithless.dm @@ -28,6 +28,7 @@ min_n2 = 0 max_n2 = 0 minbodytemp = 0 + speed = 4 faction = "faithless" diff --git a/code/modules/mob/living/simple_animal/hostile/giant_spider.dm b/code/modules/mob/living/simple_animal/hostile/giant_spider.dm index 9f5c97117b..669541687f 100644 --- a/code/modules/mob/living/simple_animal/hostile/giant_spider.dm +++ b/code/modules/mob/living/simple_animal/hostile/giant_spider.dm @@ -33,6 +33,7 @@ var/busy = 0 pass_flags = PASSTABLE move_to_delay = 6 + speed = 3 //nursemaids - these create webs and eggs /mob/living/simple_animal/hostile/giant_spider/nurse diff --git a/code/modules/mob/living/simple_animal/hostile/hivebot.dm b/code/modules/mob/living/simple_animal/hostile/hivebot.dm index ccf015adcb..c7f0cd845b 100644 --- a/code/modules/mob/living/simple_animal/hostile/hivebot.dm +++ b/code/modules/mob/living/simple_animal/hostile/hivebot.dm @@ -26,6 +26,7 @@ min_n2 = 0 max_n2 = 0 minbodytemp = 0 + speed = 4 /mob/living/simple_animal/hostile/hivebot/range name = "Hivebot" diff --git a/code/modules/mob/living/simple_animal/hostile/hostile.dm b/code/modules/mob/living/simple_animal/hostile/hostile.dm index 7619830a6e..b57ee64fee 100644 --- a/code/modules/mob/living/simple_animal/hostile/hostile.dm +++ b/code/modules/mob/living/simple_animal/hostile/hostile.dm @@ -10,6 +10,7 @@ var/casingtype var/move_to_delay = 2 //delay for the automated movement. var/list/friends = list() + var/break_stuff_probability = 10 stop_automated_movement_when_pulled = 0 /mob/living/simple_animal/hostile/proc/FindTarget() @@ -170,7 +171,8 @@ return /mob/living/simple_animal/hostile/proc/DestroySurroundings() - for(var/dir in cardinal) // North, South, East, West - var/obj/structure/obstacle = locate(/obj/structure, get_step(src, dir)) - if(istype(obstacle, /obj/structure/window) || istype(obstacle, /obj/structure/closet) || istype(obstacle, /obj/structure/table) || istype(obstacle, /obj/structure/grille)) - obstacle.attack_animal(src) + if(prob(break_stuff_probability)) + for(var/dir in cardinal) // North, South, East, West + var/obj/structure/obstacle = locate(/obj/structure, get_step(src, dir)) + if(istype(obstacle, /obj/structure/window) || istype(obstacle, /obj/structure/closet) || istype(obstacle, /obj/structure/table) || istype(obstacle, /obj/structure/grille)) + obstacle.attack_animal(src) diff --git a/code/modules/mob/living/simple_animal/hostile/mimic.dm b/code/modules/mob/living/simple_animal/hostile/mimic.dm index d1a60c5ed8..a910e74f5f 100644 --- a/code/modules/mob/living/simple_animal/hostile/mimic.dm +++ b/code/modules/mob/living/simple_animal/hostile/mimic.dm @@ -13,7 +13,7 @@ response_help = "touches the" response_disarm = "pushes the" response_harm = "hits the" - speed = -1 + speed = 4 maxHealth = 250 health = 250 diff --git a/code/modules/mob/living/simple_animal/hostile/pirate.dm b/code/modules/mob/living/simple_animal/hostile/pirate.dm index 6c2d55df6c..8f1a738ec3 100644 --- a/code/modules/mob/living/simple_animal/hostile/pirate.dm +++ b/code/modules/mob/living/simple_animal/hostile/pirate.dm @@ -9,7 +9,7 @@ response_help = "pushes the" response_disarm = "shoves" response_harm = "hits the" - speed = -1 + speed = 4 stop_automated_movement_when_pulled = 0 maxHealth = 100 health = 100 diff --git a/code/modules/mob/living/simple_animal/hostile/russian.dm b/code/modules/mob/living/simple_animal/hostile/russian.dm index ec2f9dcfd7..6e8b9b8490 100644 --- a/code/modules/mob/living/simple_animal/hostile/russian.dm +++ b/code/modules/mob/living/simple_animal/hostile/russian.dm @@ -10,7 +10,7 @@ response_help = "pokes the" response_disarm = "shoves the" response_harm = "hits the" - speed = -1 + speed = 4 stop_automated_movement_when_pulled = 0 maxHealth = 100 health = 100 diff --git a/code/modules/mob/living/simple_animal/hostile/syndicate.dm b/code/modules/mob/living/simple_animal/hostile/syndicate.dm index 05674763da..520c5016f0 100644 --- a/code/modules/mob/living/simple_animal/hostile/syndicate.dm +++ b/code/modules/mob/living/simple_animal/hostile/syndicate.dm @@ -10,7 +10,7 @@ response_help = "pokes the" response_disarm = "shoves the" response_harm = "hits the" - speed = -1 + speed = 4 stop_automated_movement_when_pulled = 0 maxHealth = 100 health = 100 diff --git a/code/modules/mob/living/simple_animal/simple_animal.dm b/code/modules/mob/living/simple_animal/simple_animal.dm index 3091517fbc..fef8232590 100644 --- a/code/modules/mob/living/simple_animal/simple_animal.dm +++ b/code/modules/mob/living/simple_animal/simple_animal.dm @@ -444,7 +444,7 @@ /mob/living/simple_animal/proc/SA_attackable(target_mob) if (isliving(target_mob)) var/mob/living/L = target_mob - if(!L.stat) + if(!L.stat || L.health <= 0) return (0) if (istype(target_mob,/obj/mecha)) var/obj/mecha/M = target_mob From b97890b8963b5d72e3955eeffc156f9e5b98b89e Mon Sep 17 00:00:00 2001 From: Zuhayr Date: Mon, 11 Feb 2013 19:23:23 -0800 Subject: [PATCH 3/9] Icons and code for an NT-knockoff soghun space suit. --- baystation12.dme | 277 +++++++++++++++++++++- code/modules/clothing/spacesuits/alien.dm | 20 ++ icons/mob/head.dmi | Bin 124389 -> 125268 bytes icons/mob/suit.dmi | Bin 266894 -> 269553 bytes icons/obj/clothing/hats.dmi | Bin 45037 -> 45459 bytes icons/obj/clothing/suits.dmi | Bin 64844 -> 65635 bytes 6 files changed, 293 insertions(+), 4 deletions(-) create mode 100644 code/modules/clothing/spacesuits/alien.dm diff --git a/baystation12.dme b/baystation12.dme index 505a918ba6..8216e5f77c 100644 --- a/baystation12.dme +++ b/baystation12.dme @@ -5,6 +5,274 @@ // END_INTERNALS // BEGIN_FILE_DIR #define FILE_DIR . +#define FILE_DIR "code" +#define FILE_DIR "code/__HELPERS" +#define FILE_DIR "code/ATMOSPHERICS" +#define FILE_DIR "code/ATMOSPHERICS/components" +#define FILE_DIR "code/ATMOSPHERICS/components/binary_devices" +#define FILE_DIR "code/ATMOSPHERICS/components/trinary_devices" +#define FILE_DIR "code/ATMOSPHERICS/components/unary" +#define FILE_DIR "code/controllers" +#define FILE_DIR "code/datums" +#define FILE_DIR "code/datums/diseases" +#define FILE_DIR "code/datums/diseases/advance" +#define FILE_DIR "code/datums/diseases/advance/symptoms" +#define FILE_DIR "code/datums/helper_datums" +#define FILE_DIR "code/datums/organs" +#define FILE_DIR "code/datums/spells" +#define FILE_DIR "code/defines" +#define FILE_DIR "code/defines/obj" +#define FILE_DIR "code/defines/procs" +#define FILE_DIR "code/FEA" +#define FILE_DIR "code/game" +#define FILE_DIR "code/game/area" +#define FILE_DIR "code/game/events" +#define FILE_DIR "code/game/events/EventProcs" +#define FILE_DIR "code/game/events/Events" +#define FILE_DIR "code/game/gamemodes" +#define FILE_DIR "code/game/gamemodes/autotraitor" +#define FILE_DIR "code/game/gamemodes/blob" +#define FILE_DIR "code/game/gamemodes/blob/blobs" +#define FILE_DIR "code/game/gamemodes/changeling" +#define FILE_DIR "code/game/gamemodes/cult" +#define FILE_DIR "code/game/gamemodes/epidemic" +#define FILE_DIR "code/game/gamemodes/events" +#define FILE_DIR "code/game/gamemodes/events/holidays" +#define FILE_DIR "code/game/gamemodes/extended" +#define FILE_DIR "code/game/gamemodes/malfunction" +#define FILE_DIR "code/game/gamemodes/meme" +#define FILE_DIR "code/game/gamemodes/meteor" +#define FILE_DIR "code/game/gamemodes/nuclear" +#define FILE_DIR "code/game/gamemodes/revolution" +#define FILE_DIR "code/game/gamemodes/sandbox" +#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" +#define FILE_DIR "code/game/machinery/camera" +#define FILE_DIR "code/game/machinery/computer" +#define FILE_DIR "code/game/machinery/doors" +#define FILE_DIR "code/game/machinery/embedded_controller" +#define FILE_DIR "code/game/machinery/kitchen" +#define FILE_DIR "code/game/machinery/pipe" +#define FILE_DIR "code/game/machinery/telecomms" +#define FILE_DIR "code/game/magic" +#define FILE_DIR "code/game/mecha" +#define FILE_DIR "code/game/mecha/combat" +#define FILE_DIR "code/game/mecha/equipment" +#define FILE_DIR "code/game/mecha/equipment/tools" +#define FILE_DIR "code/game/mecha/equipment/weapons" +#define FILE_DIR "code/game/mecha/medical" +#define FILE_DIR "code/game/mecha/working" +#define FILE_DIR "code/game/objects" +#define FILE_DIR "code/game/objects/closets" +#define FILE_DIR "code/game/objects/closets/secure" +#define FILE_DIR "code/game/objects/effects" +#define FILE_DIR "code/game/objects/effects/decals" +#define FILE_DIR "code/game/objects/effects/decals/Cleanable" +#define FILE_DIR "code/game/objects/effects/spawners" +#define FILE_DIR "code/game/objects/items" +#define FILE_DIR "code/game/objects/items/devices" +#define FILE_DIR "code/game/objects/items/devices/PDA" +#define FILE_DIR "code/game/objects/items/devices/radio" +#define FILE_DIR "code/game/objects/items/robot" +#define FILE_DIR "code/game/objects/items/stacks" +#define FILE_DIR "code/game/objects/items/stacks/sheets" +#define FILE_DIR "code/game/objects/items/stacks/tiles" +#define FILE_DIR "code/game/objects/items/weapons" +#define FILE_DIR "code/game/objects/items/weapons/grenades" +#define FILE_DIR "code/game/objects/items/weapons/implants" +#define FILE_DIR "code/game/objects/items/weapons/melee" +#define FILE_DIR "code/game/objects/items/weapons/storage" +#define FILE_DIR "code/game/objects/items/weapons/tanks" +#define FILE_DIR "code/game/objects/storage" +#define FILE_DIR "code/game/objects/structures" +#define FILE_DIR "code/game/objects/structures/crates_lockers" +#define FILE_DIR "code/game/objects/structures/crates_lockers/closets" +#define FILE_DIR "code/game/objects/structures/crates_lockers/closets/secure" +#define FILE_DIR "code/game/objects/structures/stool_bed_chair_nest" +#define FILE_DIR "code/game/structure" +#define FILE_DIR "code/game/turfs" +#define FILE_DIR "code/game/turfs/simulated" +#define FILE_DIR "code/game/turfs/space" +#define FILE_DIR "code/game/turfs/unsimulated" +#define FILE_DIR "code/game/vehicles" +#define FILE_DIR "code/game/verbs" +#define FILE_DIR "code/js" +#define FILE_DIR "code/modules" +#define FILE_DIR "code/modules/admin" +#define FILE_DIR "code/modules/admin/DB ban" +#define FILE_DIR "code/modules/admin/permissionverbs" +#define FILE_DIR "code/modules/admin/verbs" +#define FILE_DIR "code/modules/assembly" +#define FILE_DIR "code/modules/awaymissions" +#define FILE_DIR "code/modules/awaymissions/maploader" +#define FILE_DIR "code/modules/client" +#define FILE_DIR "code/modules/clothing" +#define FILE_DIR "code/modules/clothing/glasses" +#define FILE_DIR "code/modules/clothing/gloves" +#define FILE_DIR "code/modules/clothing/head" +#define FILE_DIR "code/modules/clothing/masks" +#define FILE_DIR "code/modules/clothing/shoes" +#define FILE_DIR "code/modules/clothing/spacesuits" +#define FILE_DIR "code/modules/clothing/suits" +#define FILE_DIR "code/modules/clothing/under" +#define FILE_DIR "code/modules/clothing/under/jobs" +#define FILE_DIR "code/modules/customitems" +#define FILE_DIR "code/modules/destilery" +#define FILE_DIR "code/modules/DetectiveWork" +#define FILE_DIR "code/modules/events" +#define FILE_DIR "code/modules/flufftext" +#define FILE_DIR "code/modules/food" +#define FILE_DIR "code/modules/genetics" +#define FILE_DIR "code/modules/icon generation" +#define FILE_DIR "code/modules/library" +#define FILE_DIR "code/modules/liquid" +#define FILE_DIR "code/modules/maps" +#define FILE_DIR "code/modules/mining" +#define FILE_DIR "code/modules/mob" +#define FILE_DIR "code/modules/mob/dead" +#define FILE_DIR "code/modules/mob/dead/observer" +#define FILE_DIR "code/modules/mob/living" +#define FILE_DIR "code/modules/mob/living/blob" +#define FILE_DIR "code/modules/mob/living/carbon" +#define FILE_DIR "code/modules/mob/living/carbon/alien" +#define FILE_DIR "code/modules/mob/living/carbon/alien/humanoid" +#define FILE_DIR "code/modules/mob/living/carbon/alien/humanoid/caste" +#define FILE_DIR "code/modules/mob/living/carbon/alien/larva" +#define FILE_DIR "code/modules/mob/living/carbon/alien/special" +#define FILE_DIR "code/modules/mob/living/carbon/brain" +#define FILE_DIR "code/modules/mob/living/carbon/human" +#define FILE_DIR "code/modules/mob/living/carbon/metroid" +#define FILE_DIR "code/modules/mob/living/carbon/monkey" +#define FILE_DIR "code/modules/mob/living/silicon" +#define FILE_DIR "code/modules/mob/living/silicon/ai" +#define FILE_DIR "code/modules/mob/living/silicon/ai/freelook" +#define FILE_DIR "code/modules/mob/living/silicon/decoy" +#define FILE_DIR "code/modules/mob/living/silicon/pai" +#define FILE_DIR "code/modules/mob/living/silicon/robot" +#define FILE_DIR "code/modules/mob/living/simple_animal" +#define FILE_DIR "code/modules/mob/living/simple_animal/friendly" +#define FILE_DIR "code/modules/mob/living/simple_animal/hostile" +#define FILE_DIR "code/modules/mob/living/simple_animal/hostile/retaliate" +#define FILE_DIR "code/modules/mob/new_player" +#define FILE_DIR "code/modules/paperwork" +#define FILE_DIR "code/modules/power" +#define FILE_DIR "code/modules/power/antimatter" +#define FILE_DIR "code/modules/power/singularity" +#define FILE_DIR "code/modules/power/singularity/particle_accelerator" +#define FILE_DIR "code/modules/projectiles" +#define FILE_DIR "code/modules/projectiles/ammunition" +#define FILE_DIR "code/modules/projectiles/guns" +#define FILE_DIR "code/modules/projectiles/guns/energy" +#define FILE_DIR "code/modules/projectiles/guns/projectile" +#define FILE_DIR "code/modules/projectiles/projectile" +#define FILE_DIR "code/modules/reagents" +#define FILE_DIR "code/modules/reagents/reagent_containers" +#define FILE_DIR "code/modules/reagents/reagent_containers/food" +#define FILE_DIR "code/modules/reagents/reagent_containers/food/drinks" +#define FILE_DIR "code/modules/reagents/reagent_containers/food/drinks/bottle" +#define FILE_DIR "code/modules/reagents/reagent_containers/food/snacks" +#define FILE_DIR "code/modules/reagents/reagent_containers/glass" +#define FILE_DIR "code/modules/reagents/reagent_containers/glass/bottle" +#define FILE_DIR "code/modules/recycling" +#define FILE_DIR "code/modules/research" +#define FILE_DIR "code/modules/research/xenoarchaeology" +#define FILE_DIR "code/modules/scripting" +#define FILE_DIR "code/modules/scripting/AST" +#define FILE_DIR "code/modules/scripting/AST/Operators" +#define FILE_DIR "code/modules/scripting/Implementations" +#define FILE_DIR "code/modules/scripting/Interpreter" +#define FILE_DIR "code/modules/scripting/Parser" +#define FILE_DIR "code/modules/scripting/Scanner" +#define FILE_DIR "code/modules/security levels" +#define FILE_DIR "code/modules/surgery" +#define FILE_DIR "code/TriDimension" +#define FILE_DIR "code/unused" +#define FILE_DIR "code/unused/beast" +#define FILE_DIR "code/unused/computer2" +#define FILE_DIR "code/unused/disease2" +#define FILE_DIR "code/unused/gamemodes" +#define FILE_DIR "code/unused/hivebot" +#define FILE_DIR "code/unused/mining" +#define FILE_DIR "code/unused/optics" +#define FILE_DIR "code/unused/pda2" +#define FILE_DIR "code/unused/powerarmor" +#define FILE_DIR "code/unused/spacecraft" +#define FILE_DIR "code/WorkInProgress" +#define FILE_DIR "code/WorkInProgress/AI_Visibility" +#define FILE_DIR "code/WorkInProgress/animusstation" +#define FILE_DIR "code/WorkInProgress/Apples" +#define FILE_DIR "code/WorkInProgress/Cael_Aislinn" +#define FILE_DIR "code/WorkInProgress/Cael_Aislinn/Economy" +#define FILE_DIR "code/WorkInProgress/Cael_Aislinn/Jungle" +#define FILE_DIR "code/WorkInProgress/Cael_Aislinn/Rust" +#define FILE_DIR "code/WorkInProgress/Cael_Aislinn/Supermatter" +#define FILE_DIR "code/WorkInProgress/carn" +#define FILE_DIR "code/WorkInProgress/Chinsky" +#define FILE_DIR "code/WorkInProgress/Cib" +#define FILE_DIR "code/WorkInProgress/Cib/amorph" +#define FILE_DIR "code/WorkInProgress/Mini" +#define FILE_DIR "code/WorkInProgress/Mloc" +#define FILE_DIR "code/WorkInProgress/organs" +#define FILE_DIR "code/WorkInProgress/Ported" +#define FILE_DIR "code/WorkInProgress/Ported/Abi79" +#define FILE_DIR "code/WorkInProgress/Ported/Bureaucracy" +#define FILE_DIR "code/WorkInProgress/Ported/Spawners" +#define FILE_DIR "code/WorkInProgress/Sigyn" +#define FILE_DIR "code/WorkInProgress/Sigyn/Department Sec" +#define FILE_DIR "code/WorkInProgress/Sigyn/Softcurity" +#define FILE_DIR "code/WorkInProgress/SkyMarshal" +#define FILE_DIR "code/WorkInProgress/Susan" +#define FILE_DIR "code/WorkInProgress/Tastyfish" +#define FILE_DIR "code/WorkInProgress/virus2" +#define FILE_DIR "code/WorkInProgress/virus2/Disease2" +#define FILE_DIR "code/WorkInProgress/Wrongnumber" +#define FILE_DIR "code/ZAS" +#define FILE_DIR "html" +#define FILE_DIR "icons" +#define FILE_DIR "icons/48x48" +#define FILE_DIR "icons/effects" +#define FILE_DIR "icons/mecha" +#define FILE_DIR "icons/misc" +#define FILE_DIR "icons/mob" +#define FILE_DIR "icons/mob/human_races" +#define FILE_DIR "icons/obj" +#define FILE_DIR "icons/obj/assemblies" +#define FILE_DIR "icons/obj/atmospherics" +#define FILE_DIR "icons/obj/clothing" +#define FILE_DIR "icons/obj/doors" +#define FILE_DIR "icons/obj/flora" +#define FILE_DIR "icons/obj/machines" +#define FILE_DIR "icons/obj/pipes" +#define FILE_DIR "icons/pda_icons" +#define FILE_DIR "icons/spideros_icons" +#define FILE_DIR "icons/Testing" +#define FILE_DIR "icons/turf" +#define FILE_DIR "icons/vending_icons" +#define FILE_DIR "interface" +#define FILE_DIR "maps" +#define FILE_DIR "maps/RandomZLevels" +#define FILE_DIR "sound" +#define FILE_DIR "sound/AI" +#define FILE_DIR "sound/ambience" +#define FILE_DIR "sound/effects" +#define FILE_DIR "sound/effects/wind" +#define FILE_DIR "sound/hallucinations" +#define FILE_DIR "sound/items" +#define FILE_DIR "sound/machines" +#define FILE_DIR "sound/mecha" +#define FILE_DIR "sound/misc" +#define FILE_DIR "sound/music" +#define FILE_DIR "sound/piano" +#define FILE_DIR "sound/violin" +#define FILE_DIR "sound/voice" +#define FILE_DIR "sound/weapons" +#define FILE_DIR "tools" +#define FILE_DIR "tools/Redirector" // END_FILE_DIR // BEGIN_PREFERENCES @@ -703,6 +971,7 @@ #include "code\modules\clothing\shoes\colour.dm" #include "code\modules\clothing\shoes\magboots.dm" #include "code\modules\clothing\shoes\miscellaneous.dm" +#include "code\modules\clothing\spacesuits\alien.dm" #include "code\modules\clothing\spacesuits\captain.dm" #include "code\modules\clothing\spacesuits\ert.dm" #include "code\modules\clothing\spacesuits\miscellaneous.dm" @@ -730,10 +999,10 @@ #include "code\modules\customitems\item_defines.dm" #include "code\modules\customitems\item_spawning.dm" #include "code\modules\destilery\main.dm" -#include "code\modules\detectivework\detective_work.dm" -#include "code\modules\detectivework\evidence.dm" -#include "code\modules\detectivework\footprints_and_rag.dm" -#include "code\modules\detectivework\scanner.dm" +#include "code\modules\DetectiveWork\detective_work.dm" +#include "code\modules\DetectiveWork\evidence.dm" +#include "code\modules\DetectiveWork\footprints_and_rag.dm" +#include "code\modules\DetectiveWork\scanner.dm" #include "code\modules\events\alien_infestation.dm" #include "code\modules\events\blob.dm" #include "code\modules\events\brand_intelligence.dm" diff --git a/code/modules/clothing/spacesuits/alien.dm b/code/modules/clothing/spacesuits/alien.dm new file mode 100644 index 0000000000..efecebf2c6 --- /dev/null +++ b/code/modules/clothing/spacesuits/alien.dm @@ -0,0 +1,20 @@ +/obj/item/clothing/head/helmet/space/helmet_soghun_cheap + name = "NT breacher helmet" + desc = "Hey! Watch it with that thing! It's a knock-off of a soghun battle-helm, and that spike could put someone's eye out." + icon_state = "sog_helm_cheap" + item_state = "sog_helm_cheap" + color = "sog_helm_cheap" + armor = list(melee = 40, bullet = 30, laser = 30,energy = 15, bomb = 35, bio = 100, rad = 50) + heat_protection = HEAD + max_heat_protection_temperature = SPACE_SUIT_MAX_HEAT_PROTECITON_TEMPERATURE + +/obj/item/clothing/suit/space/rig_soghun_cheap + name = "NT breacher chassis" + desc = "A cheap NT knock-off of a soghun battle-rig. Looks like a fish, moves like a fish, steers like a cow." + icon_state = "rig-soghun-cheap" + item_state = "rig-soghun-cheap" + slowdown = 2 + armor = list(melee = 40, bullet = 30, laser = 30,energy = 15, bomb = 35, bio = 100, rad = 50) + allowed = list(/obj/item/device/flashlight,/obj/item/weapon/tank,/obj/item/weapon/storage/bag/ore,/obj/item/device/t_scanner,/obj/item/weapon/pickaxe, /obj/item/weapon/rcd) + heat_protection = UPPER_TORSO|LOWER_TORSO|LEGS|FEET|ARMS|HANDS + max_heat_protection_temperature = SPACE_SUIT_MAX_HEAT_PROTECITON_TEMPERATURE \ No newline at end of file diff --git a/icons/mob/head.dmi b/icons/mob/head.dmi index 7c3cb9c91083fa1b9bedda2fcdcbe57a4739a994..1f8d62db91f7eca7ee35d1006c6d2ad094a97da6 100644 GIT binary patch delta 7380 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�x)%4emX7q(PgaQ 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 delta 6564 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 Q5TKf_rlCfKnqAoc0}OQUj{pDw diff --git a/icons/mob/suit.dmi b/icons/mob/suit.dmi index 900afc4afb81db8ad08a57c4bd1905eb2e74afc4..3e1964161f7775411dca5787afec9dd84c0bca8a 100644 GIT binary patch delta 16195 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 delta 13515 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 I()i2&1H-~HkpKVy diff --git a/icons/obj/clothing/hats.dmi b/icons/obj/clothing/hats.dmi index 4554869d5db5aaeeb5569d2f9fe91a2c58931765..6b96c548c475bdfbbfd6c0e9dec83356d0ef68ca 100644 GIT binary patch delta 8282 zcmb7pbyQT*yC@+o9ZC+3fJjKUG}0g~AR-D%cMKd#ksP{1N@Peux;q4hM!G?U96D#- z_>l{q^2ooO7^(mAHWw#|~`yy)yAovURs{vv={ZcXqZF3#Yvih6D z{VbR6mpk?CIe{Kl?Q)FI%9P#UOwIi5#NpwF4(CfYm;FcKc(8Tw5|TTa#~ZT51!Hl$ zSMczu$}jTYj|~q`)ZaWfk}@*-sF+f6a{^PSD;G;#6ZO5{$vhwRtWj%uW2{1z0Gu_g|a856TT@h4UvCTXG%whybo6`QtK!48?~#`Uc6 z5^Sj+WYt``l1qZZ`cn!{M{*#GYVaR8#{!E5nb4D7l!W^3a|L^K4f7|Ym_-WNYkB&v zW{hK&DQ=DU1D{1gC23l)h2Rv)Ajw#4%lEjIpHyrEBOxn3tpdy>-STTfWAUsywnNd` zc>^^qW@IC=E(d)y)UF199QdSCe5kH@N1;|78 zj!&jY&#A?fY2gn?Kh@dcHS7y)6XgrpjMWYY8ZbV4EixirdhnE1PuV6kvbK!B{il_d zQt#`QvJbPETdfxXGK61pmAI^;MxY!>&d-Ki`eXD3;~eJ-5pI_(uZc+*b{t(cwa1hx zZ6Ns&)7-T2RRR8$6CVh?%IT(?2as=nAj38lD+egZx{Kbw$lME3>OP9GTWuw`Rba`L z_uTzKg2e}Cr3-Xc!aj<5LP>c20IH$tNoJ?_X#Ds#Yj*si_0j)er#~B=kF!#`?f{pr zg(NieTd}9FFFf2;50Ip@*)Y)a@VnqLRID^P3z*Q&U)N z3L+kBUzo^-w9K|u_De6unRqUUs5(5ndBD~b_KvET52W|#!xD#Gott+I`Se!Lyj|BC zYv6TCf3pmq_tIJTbRa<+V+k)N=kiw}i+Iup61X0-m+K|1tH4>|>>a%ye!0(s^}FE0 zCuBCt0eJAaI=##}U4%Druc?1;qUEXcUzT6%l9F zENWxpD1X9qPrdS5?2OC|f!}kDt*#gMN609t;^_CqjiU^4$tM&DtzXwvL*=wKd9_dgKVe! zl}l$zNmQwSJUeVmP{{q8`Bgumsu7@YZE`r%dux~f<>eM3NtTRu_mT{Aa7L-Nj^But z+L$K-KZFi@zV7Gp^FxX!I5Z^JKF^QR<#>Yq$AWmWg1@X3{_XR&km$UlQ^x(z1Kt>Vipwwg+6ec!=KFMo7hzcZ(2Vr za_AC1WjH~+Uxxn|lTj5zG#!V^m2FyYf+Q@WaB$1@9BAi%GohI-`3%O$dN!^6d5cPG z)Xz_%yjRe z=SW1s=#*Q(@*}@yoHAoHx|*HQ?m_hTK~o(x-DlG{9sotys!so&jE!8dzRObbzZ3MT z!Rb5Qk50UUKGUYC$GIn55+W~aih|zL$QI##JbuyansUh6S9}-o^00hPU!K>fOc%ST zMgG5+BO@mqxW55iw$G>KiDm7?Mkg$Ku9D;iBlI%(aDMr{&qLD=&w^OnfRl@oMZV?*ijd z{;i5T(O!SE{fZ~PlY3!VQ$pnUb?&PUA{T=!rzy9lqzYd9-9||v@0%<+%n8+4(Rk!9 zkj&Xi=r`67s<{8J5%`}XDCo+maiLiy?1kGKysy8ejT~8+RXr;fYzqAk%SCz3Od)ed zQMa-WQto3iIrm~2VVf{PHFk?PihU-@$ODF!hmcoEb~6~8ft6O@QEi}HCXZ*Y0R+b^ z2zi3wMB{+#HfC9l2&gM8zhOBTt6&Kz%iwl|60H!A=(uUHC(vADye4ruuC_{NnqbZK zSZ!XvD2*!FxlxhmqOf8mP+EiIz|*WFq|*`ygR&402WVlT66w*jDSycgjN`Z)=+laG ztn#qVB4aVX%{gt9TiKsJpArLJGP2U3gnay1gTuzKTQ(C3A9pjZ(ugQE@d4$VhhiQ?9Qlw_)HeJ~^=^8>kiYJvZAUll42)IX$;IZR z6eDfi5%ns8{7!SyNy27Z%Le7{e7i@nWgbo=5BW_?_L+2$mFNo&51 zy5^zItIEHk{jHZW=XZo6R9Ig<7+D!t!UZnD>z>bWl@=Q8AOz~bo%~bF7L$?T;ljqo z^!8;zOcKzA1n%*6rZW$QUu$!~z{rTB@vEhx>pz0)JftPx&z8WA)0+0l*@5Qu`nEEI zGv(cano&D-Q|&(*M{wW#FtX<0YiY0zH3JY77|Dj`^0ZG5`GND)A+w7Y_q`ex3A)8L z|51vO_7RbMD9}w?HT><$4mPsR!B$SrN>(5HPqFaUl#0Inrzs8g6*elD11&<-pL;Tf}-VyigrToEje192y#uW__ut*|X)A2j$u5 zhkTeQRL{8QHz8$MjYW7LZ>@}EmDLKB!v%KAxlC(6%FLW{2?Ez5QSc*-J=t;vuYtez zzHq(bTiK_WY+vJG=<^@cjQ7ga5Y~$w-srO`fHp*7@fq$L`B5K8Scru8SR&cSeWz<- zaUjdlDFin>vCyuS%c7X0^XsY~GZlp&{F)kS=fOujTP6IO$YgZfq2K9K{+v_6oYQnQ zA$g@@;d(m)uJ8H#Fx0|tG%Fmmuda5q3>(X5yiJK^kYR8S#lZ+2y+_T64Ut2yf-1on zRLU>(s1gzr1s^}$+}W|IH5>f>yZenm9FU$KG4ftfZ_x_8vA*805i2E}OeQs3b+_}| z_u>!Fj7y4yRryY+$nkX6IRm{HX#aJA>5tgQ0h~HpF)1-(W_8^IX+LQ(FE97JIo}E5 zZANqXqX6tGmiLtYAb!@%P{`o@s?CM0WzUy1EsS?ZC}+rz5EdUy3r~F;XMb$467b5# z+wCr+E@q{kcKkSUO242nR>j>S(`}iUf3*?CImI%8U>m3<+IePEGpDY#7d}TPj>AOQ z((mfgH1l2oty4lmmDv(%<5_CdpFbva^z?JJ?#0C|+Qn>~oGLXpJ=>cNAmOq#GN-Wy_P%{pFr3bJ!0oBrLRw3ohFrQ z**DP4WW8wtY4AP^mp0_kF_dX_aRu*8{tl6K*0qrzRe5yd!zf~mUAUSMAcmb1?-BJc z%tg*wg!~#_lU;~?FEyPyO78quaW^;i#jx{Z-<3)>BfOvq{;0>-jE;0b$g_4lE1En9 z=+;cGT%kI+)B7-8(=*N%meu}e(q-Bw22+ATn?dr@|C3iE$J99c1LAe;H$P3JWk80W z^_7y@qimpH%Su&4L(UaI?n!wGfN~R)EP!p6RCs)i`H~@25AJD|SPHlUDRw{SUK>iz zYdIa=I6GX*yt(nq0iOVh%)(gk+xm82CX|R1fo7i!GHt&4R7ijp+4PBEBg3dx_5++P zJ4fmV(-=W-Y|S|JvB`*GF-$98#><>C_I)!VF6bVa?fCyTq_CESAGXj z+>cD=0ybN@_4}C2MLN&#WP}m-+&nz`7l%txP^fseHsmXnGK=Vp4ClUEBf9QnlJM0S zau9XDI<_A9ZsW}NG%TKS;b0Bz^^SoEhovUND3|PnBpj|bmzD5Dbi(8 z>gwM=&DqbyIyP%>hYesO{+%Cdzg0fV&r{bqK;izqw!%n#c76-TxY_L5;=j9fs z{>#i*;y2*a@{yx#IV)uag|`D6{x#?nTx-=H7<6Ppwwjo6+V}RS-7{wAnHhdvxerWP zkCmtVj~@#hE-hQD2b{}f6@Q0#$;paRsyKPbRovlC#iHI@QJ(!awmQ4}i3bA~r*CK% zaXyIE1u};wlX|%FiLM!Q&>kGUxG_2*$Oh{00 zb^TeqSpPy{#V9PSWj7Z54X@N1FCos`?@-=`a_m$%%WfaLsQs6=x98{4iI99JefbsX zmPyy3ZTreSmbN%Z?_2AmZj=aE2zQzJUR)&^vrk;1vs+ zCyP$6I%~MMBuP_>7jXK$U#|aOD~{=peNS<=h(d5>KrpW}OYH3IRsNSw)z#JLs;zg| zV`6HGorB%}(Y3!kMMO{cdT-S9=H|Qn{CpR21|?t56I!^zAvc&roypU*k@qln zw2KG`2!d|0j1mWx(2k>t>UGa)^}l>cpgzwGkfICzt15w!*1Om^2w6W?fq&qcLE zYAT+*r6towUrhI{kDgw9wM{<>B&p|`odPHfVyB1*udWtaEvT22YF_z1{_{Dwq z{|EvUl$6}OyljGk@izUj*9_rC1bhNBH8=X;G^@{>DlfjTqH#&zV(Oui<`x^>r_0Ko z>SQ?Hm;D?@7WO3O@bdE79L(3g6xc~nlmFL?cwn-yMD=#ngl4z68tEt~D9B%{v1ha3 zu*a)44MU&<0vH&?eCkRsUZIH@3Z9z*k*X6G{}E7$f;{9#0yhHPzSu$1w5}YLM?(_T z*eTSN;;<6_-(!N)$yTbB*R@y|d$}5>I$BzG)&cuJ6obSAs?Sq?-H!M#7tbRZe3^6p zB#%4YU2++RNh9}DAN`^S?oYhC0XOUY?^>BtnAo^g_LH2RH)p#iZx@}I(E=~Z<0CZp zWxjO_yHmV;y`XIWK^1nK7)Py_IXe5O z#N=Y+2h*S1=j4dlENOy{yR~lYK2mBN931#iGH<{IpGA{!3*uC#+9UkdGpc_rvfX(iam z>+5UG%SzK4m6tz=Jb1n>E-r>+j;~~Uv~7|!xaDg#1{bvbF4~^l+}=LKi!}2}J)EoA zA76Hn(Ialq7u7oVzPGp6(GpPGK<%kV8eZ*R-RO-BH*yWB5A3n|25QBCRWrE+oJ~_z_H4o7tx9r#!hUk zw}-(jI&UlvASs&M)g06&Ts*mWFvj|?M9q;DFEi5^6NDG&#cXMo# zlan9EsOZpg=db=fE{$pjGcB~s;Jxvg!S^e+^&KjTZOJT@b;bCVls@J5q0qe~VB#AonZXL{9r$Bnc&s{YOlPS^$72nz?<9^s3x6}_UsDi~~G zV9Ch#x37@K`7N`j{=;oIQD#}+7r=T>F?M$vx5A#jsfeTVq?D8!@P&qk`Ce*n?h$!> zAz(94t?PfX`)Oa*Gv@P+hHXyuHhl6=l6bWJeejstU$mUlQwz@h?>-)cWb!WvSk?K~ zX>n4P)UO<}v6Q3b)J1=Q!?>!{%ES;~a64U2O-P_fP%-HdOV?~c-t3`6@$I4|aPO(f zX<)LBodhiTX-bpW-n9~a_(7SlXypc!siFuw&>G!cYNf!D#U0ww*!We}VD5D~k&Y!|v|D zeX)!h=8wXv}AQo5_Ms`X2O)Gw)Dh_sF1;TC*<*eoYL+d4W~Nh2ZERBKkUoFe@d8>}%FWG< zSd3O-o12?sl87+(^b`poWq3DNZCm|liU6}e=*~|Lqa|G^OeTDJqo?S17UW`-rgwsk?H^aB2J1-DL_Vc#19wm;4`}d# z-)lp|B2SatD_-M@&4G9}Oo-g+@bjnWkWz?1yIkCD(YyW9>xm_*(S2uXqfavyyZ%+~ z&W>tn!`#?!wv5`Hk1`Ml{d1Pl`>YqCxaY#8D@2dM7Y<8_t$i^?Gc%f%8~rAxZb`tf zB~<6`bcC?GZ&~Glk1Zm0w|B0_lb?iXaffjgOu9Gr%;>}I#*14x|Cc*I=F+9tg|E z@Xke#ou%n`O$q!R{WqOl*{SJidrLgQjTk7j1EQ$;1c&mWp`l^Uob!72<;qOP$%$JI z7%s8wyXU!X*?^yzN73LrPlmxGmP(0NMRX+)&XwyIi{6AwOgB~TW7(SP0KBQv-q}Qi zq&r*%uzU$Ybyf?-4sF}zUfH+qpUF*zUH>&7&N(G}@6OioW|eL%EAtb+pT5F3f(NIv z7DZrTn}~U_p;dz!D}_{tnAg=J7izM>oMbI>jS9YRjlW1TkJk?#r;e5INEQE`>-~WS zm02Mxgl@NRK7wCX>zD!rfXHisahFc2geW~ZJ&R#|k41m@(`HvhI@AqgK*BfUmg=+r z_)qh3LW&Umj4#z8*0cJ<-#>nKTDVC1@r?g$#Sl=n8v7Ah9?c{}w}DLD z%o@XMp}ov~clLK2gC$X6D3?=HagA`=FsEy!A63W zk*jBNG6xbD^XJgvscPYdw&9#F;P!dq|6B|6`IQ38SB^^B-*@=v&Uu^;t)_ou{#|FI z<2Vx&5Er<6U#FS79k1^=`k=a|#`Kq6d=|khLH2o2q}?t~z)uv2f#*7M;Y)^u-(NkU zs?K($W(`KSl_iGu&j!U7f67PF=;;)VKfS>sy>;;@26N%*f>vHec0V+cDu5s`E3caUQ#7=?3nI$?#lwQ z57N(5mQEUe{i6D=~4 zSZq}uNt2|kb9kq|_Soot`>Q!AMymCoPG1$x8@MLVGecJxwhR+W&xNQ^l!GHMbkO6R zyt~7C>fT)n!q^&ab=?aD4rcFbybM2z?ssS!3gAZ22hFFrdl0cu9VKPee+3j|`q;wO zvlC8f^nUdFgz2^zxGl3L{61K`@|eNqDN`|bVn8oh8BwMzEbRf-)^N?yeO~r}d9pxZTOkaP!%A;@ zp?Df}XIu4%oacfi)ygazW}N07>rHr~>CAWLAVqCiNST(>24vAWn&b z>~d>fPHS}q%jU)sJ>ds13+QNBSA2trhR>|9<^Ey;UZj!wgpZFyYC%Tz_wC!Mi3xpl zlCZb87rLimf9dM#+Kks)v4VI_`s+A?R^nyNP&!fDBgN&!Q^seOK*js>+uXW%h*2ra zaE6G+!DKNhI?Xt~H;)ML^z>v&ghb0}+#j$RMmK&IeZJPy269#-Fa^8vjdezlcBRC$ z;T4a*>uOUVnGv?HV~?FZ+a(WbLTB#c&K_VlS1OD^NB+`S34bd;zmsf8Svhpg@Aa!! zYCoEq=#GdCy!ZbA<9yefTU(#=GsGS;65?ZN*bN0xx_u$hyyW)YR^V8WlX@(4jo(6V z?X0kLHFQ;uAie(;$r4z~kPHxe-%ER(knf|bzakE5u4h;>CX-=*iqG|>k+a8TkCRb` zs)*Lqbeg>(XCAPZ_)Fc-!$8#Hh#d z{V8MnjQgBpfWO6UGF2`Es#QpD=aQKvzUyxOF AmjD0& delta 7857 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 Ln)0=>Z^Ql Date: Tue, 12 Feb 2013 16:19:39 +0100 Subject: [PATCH 4/9] Implemented medical side-effects. --- baystation12.dme | 1 + code/WorkInProgress/Cib/MedicalSideEffects.dm | 64 +++++++++++++++++++ code/modules/mob/living/carbon/human/life.dm | 2 + code/modules/reagents/Chemistry-Reagents.dm | 1 + 4 files changed, 68 insertions(+) create mode 100644 code/WorkInProgress/Cib/MedicalSideEffects.dm diff --git a/baystation12.dme b/baystation12.dme index 8216e5f77c..c09a389626 100644 --- a/baystation12.dme +++ b/baystation12.dme @@ -1431,6 +1431,7 @@ #include "code\WorkInProgress\Cael_Aislinn\Supermatter\SuperMatter.dm" #include "code\WorkInProgress\Cael_Aislinn\Supermatter\ZeroPointLaser.dm" #include "code\WorkInProgress\Chinsky\ashtray.dm" +#include "code\WorkInProgress\Cib\MedicalSideEffects.dm" #include "code\WorkInProgress\Mini\ATM.dm" #include "code\WorkInProgress\Ported\policetape.dm" #include "code\WorkInProgress\SkyMarshal\Ultralight_procs.dm" diff --git a/code/WorkInProgress/Cib/MedicalSideEffects.dm b/code/WorkInProgress/Cib/MedicalSideEffects.dm new file mode 100644 index 0000000000..fa096ef1a9 --- /dev/null +++ b/code/WorkInProgress/Cib/MedicalSideEffects.dm @@ -0,0 +1,64 @@ +// MEDICAL SIDE EFFECT BASE +// ======================== +/datum/medical_effect/var/name = "None" +/datum/medical_effect/var/strength = 0 +/datum/medical_effect/proc/on_life(mob/living/carbon/human/H, strength) +/datum/medical_effect/proc/cure(mob/living/carbon/human/H) + + +// MOB HELPERS +// =========== +/mob/living/carbon/human/var/list/datum/medical_effect/side_effects = list() +/mob/proc/add_side_effect(name, strength = 0) +/mob/living/carbon/human/add_side_effect(name, strength = 0) + for(var/datum/medical_effect/M in src.side_effects) if(M.name == name) + M.strength = max(M.strength, strength = 10) + return + + var/list/L = typesof(/datum/medical_effect)-/datum/medical_effect + + for(var/T in L) + var/datum/medical_effect/M = new L + if(M.name == name) + M.strength = strength + side_effects += M + +/mob/living/carbon/human/proc/handle_medical_side_effects() + // Only process every 30 ticks + if(life_tick % 30 == 0) + // One full cycle(in terms of strength) every 10 minutes + var/strength_percent = sin(life_tick / 600) + + // Only do anything if the effect is currently strong enough + if(strength_percent >= 0.7) + for (var/datum/medical_effect/M in side_effects) + if (M.cure()) + side_effects -= M + del(M) + else + M.on_life(src, 0.7*M.strength) + // Effect slowly growing stronger + M.strength++ + +// HEADACHE +// ======== +/datum/medical_effect/headache/name = "Headache" +/datum/medical_effect/headache/on_life(mob/living/carbon/human/H, strength) + switch(strength) + if(1 to 10) + H.custom_pain("You feel a light pain in your head.",0) + if(11 to 30) + H.custom_pain("You feel a throbbing pain in your head!",1) + if(31 to 99) + H.custom_pain("You feel an excrutiating pain in your head!",1) + H.adjustBrainLoss(1) + if(99 to INFINITY) + H.custom_pain("It feels like your head is about to split open!",1) + H.adjustBrainLoss(3) + var/datum/organ/external/O = H.organs_by_name["head"] + O.take_damage(0, 1, 0, "Headache") + +/datum/medical_effect/headache/cure(mob/living/carbon/human/H) + if(H.reagents.has_reagent("alkysine")) + return 1 + return 0 \ No newline at end of file diff --git a/code/modules/mob/living/carbon/human/life.dm b/code/modules/mob/living/carbon/human/life.dm index 1fb111b9ed..8a74afc08e 100644 --- a/code/modules/mob/living/carbon/human/life.dm +++ b/code/modules/mob/living/carbon/human/life.dm @@ -99,6 +99,8 @@ var/const/BLOOD_VOLUME_SURVIVE = 122 handle_pain() + handle_medical_side_effects() + //Status updates, death etc. handle_regular_status_updates() //TODO: optimise ~Carn update_canmove() diff --git a/code/modules/reagents/Chemistry-Reagents.dm b/code/modules/reagents/Chemistry-Reagents.dm index acec96cba7..623e45c6cd 100644 --- a/code/modules/reagents/Chemistry-Reagents.dm +++ b/code/modules/reagents/Chemistry-Reagents.dm @@ -1501,6 +1501,7 @@ datum return if(!M) M = holder.my_atom M.heal_organ_damage(2*REM,0) + M.add_side_effect("Headache") ..() return From 3f04c7ae991a67518ae91fd1a59cf389066beea0 Mon Sep 17 00:00:00 2001 From: cib Date: Tue, 12 Feb 2013 16:38:44 +0100 Subject: [PATCH 5/9] Bugfix for medical side effects. --- code/WorkInProgress/Cib/MedicalSideEffects.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/WorkInProgress/Cib/MedicalSideEffects.dm b/code/WorkInProgress/Cib/MedicalSideEffects.dm index fa096ef1a9..8f0fc6291f 100644 --- a/code/WorkInProgress/Cib/MedicalSideEffects.dm +++ b/code/WorkInProgress/Cib/MedicalSideEffects.dm @@ -18,7 +18,7 @@ var/list/L = typesof(/datum/medical_effect)-/datum/medical_effect for(var/T in L) - var/datum/medical_effect/M = new L + var/datum/medical_effect/M = new T if(M.name == name) M.strength = strength side_effects += M From 1ed5c7ec3718be977bc7ef24ec5b4fcacf8af56e Mon Sep 17 00:00:00 2001 From: cib Date: Tue, 12 Feb 2013 16:57:33 +0100 Subject: [PATCH 6/9] Previously your nanotrasen loyalty setting wouldn't save. --- code/modules/client/preferences_savefile.dm | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/code/modules/client/preferences_savefile.dm b/code/modules/client/preferences_savefile.dm index 80d5e718df..5727e7b671 100644 --- a/code/modules/client/preferences_savefile.dm +++ b/code/modules/client/preferences_savefile.dm @@ -143,6 +143,8 @@ S["skills"] >> skills S["skill_specialization"] >> skill_specialization S["organ_data"] >> organ_data + + S["nanotrasen_relation"] >> nanotrasen_relation //S["skin_style"] >> skin_style //Sanitize @@ -238,6 +240,8 @@ S["skills"] << skills S["skill_specialization"] << skill_specialization S["organ_data"] << organ_data + + S["nanotrasen_relation"] << nanotrasen_relation //S["skin_style"] << skin_style return 1 From 7a0c37867ad1eb5e7edf6cbf5ff1ba9f139ed68f Mon Sep 17 00:00:00 2001 From: cib Date: Tue, 12 Feb 2013 17:14:10 +0100 Subject: [PATCH 7/9] Adjusted medical side effect strength. --- code/WorkInProgress/Cib/MedicalSideEffects.dm | 27 +++++++++---------- 1 file changed, 13 insertions(+), 14 deletions(-) diff --git a/code/WorkInProgress/Cib/MedicalSideEffects.dm b/code/WorkInProgress/Cib/MedicalSideEffects.dm index 8f0fc6291f..eb23d21b14 100644 --- a/code/WorkInProgress/Cib/MedicalSideEffects.dm +++ b/code/WorkInProgress/Cib/MedicalSideEffects.dm @@ -24,21 +24,20 @@ side_effects += M /mob/living/carbon/human/proc/handle_medical_side_effects() - // Only process every 30 ticks - if(life_tick % 30 == 0) - // One full cycle(in terms of strength) every 10 minutes - var/strength_percent = sin(life_tick / 600) + // One full cycle(in terms of strength) every 10 minutes + var/strength_percent = sin(life_tick / 300) - // Only do anything if the effect is currently strong enough - if(strength_percent >= 0.7) - for (var/datum/medical_effect/M in side_effects) - if (M.cure()) - side_effects -= M - del(M) - else - M.on_life(src, 0.7*M.strength) - // Effect slowly growing stronger - M.strength++ + // Only do anything if the effect is currently strong enough + if(strength_percent >= 0.4) + for (var/datum/medical_effect/M in side_effects) + if (M.cure()) + side_effects -= M + del(M) + else + if(life_tick % 30 == 0) + M.on_life(src, strength_percent*M.strength) + // Effect slowly growing stronger + M.strength+=0.2 // HEADACHE // ======== From cf56a206b3b6ce3a07599fe13dc26c265ba9becd Mon Sep 17 00:00:00 2001 From: cib Date: Tue, 12 Feb 2013 17:50:06 +0100 Subject: [PATCH 8/9] Medical side effects confirmed to work now. --- code/WorkInProgress/Cib/MedicalSideEffects.dm | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/code/WorkInProgress/Cib/MedicalSideEffects.dm b/code/WorkInProgress/Cib/MedicalSideEffects.dm index eb23d21b14..522f1162cd 100644 --- a/code/WorkInProgress/Cib/MedicalSideEffects.dm +++ b/code/WorkInProgress/Cib/MedicalSideEffects.dm @@ -12,7 +12,7 @@ /mob/proc/add_side_effect(name, strength = 0) /mob/living/carbon/human/add_side_effect(name, strength = 0) for(var/datum/medical_effect/M in src.side_effects) if(M.name == name) - M.strength = max(M.strength, strength = 10) + M.strength = max(M.strength, 10) return var/list/L = typesof(/datum/medical_effect)-/datum/medical_effect @@ -25,19 +25,19 @@ /mob/living/carbon/human/proc/handle_medical_side_effects() // One full cycle(in terms of strength) every 10 minutes - var/strength_percent = sin(life_tick / 300) + var/strength_percent = sin(life_tick / 2) // Only do anything if the effect is currently strong enough if(strength_percent >= 0.4) for (var/datum/medical_effect/M in side_effects) - if (M.cure()) + if (M.cure(src)) side_effects -= M del(M) else - if(life_tick % 30 == 0) + if(life_tick % 15 == 0) M.on_life(src, strength_percent*M.strength) // Effect slowly growing stronger - M.strength+=0.2 + M.strength+=0.05 // HEADACHE // ======== From 31cd43945d4ae76ff1f6c9818e203a55ac25e274 Mon Sep 17 00:00:00 2001 From: cib Date: Tue, 12 Feb 2013 18:20:57 +0100 Subject: [PATCH 9/9] Added various new side effects: - Headache triggered by bicaridine, alkysine and cryoxadone, treated with tramadol or alkysine - Cramps triggered by bandages and ointment, treated with inaprovaline - Bad stomach, triggered by dermaline, kelatone or being cloned, treated with anti-toxin --- code/WorkInProgress/Cib/MedicalSideEffects.dm | 78 +++++++++++++++++++ code/game/machinery/cloning.dm | 1 + code/game/objects/items/stacks/medical.dm | 1 + code/modules/reagents/Chemistry-Reagents.dm | 1 - 4 files changed, 80 insertions(+), 1 deletion(-) diff --git a/code/WorkInProgress/Cib/MedicalSideEffects.dm b/code/WorkInProgress/Cib/MedicalSideEffects.dm index 522f1162cd..d701bbb94f 100644 --- a/code/WorkInProgress/Cib/MedicalSideEffects.dm +++ b/code/WorkInProgress/Cib/MedicalSideEffects.dm @@ -24,6 +24,13 @@ side_effects += M /mob/living/carbon/human/proc/handle_medical_side_effects() + if(src.reagents.has_reagent("bicaridine") || src.reagents.has_reagent("tricordrazine") || src.reagents.has_reagent("cryoxadone")) + src.add_side_effect("Headache") + + + if(src.reagents.has_reagent("kelotane") || src.reagents.has_reagent("dermaline")) + src.add_side_effect("Bad Stomach") + // One full cycle(in terms of strength) every 10 minutes var/strength_percent = sin(life_tick / 2) @@ -60,4 +67,75 @@ /datum/medical_effect/headache/cure(mob/living/carbon/human/H) if(H.reagents.has_reagent("alkysine")) return 1 + return 0 + +// HEADACHE +// ======== +/datum/medical_effect/headache/name = "Headache" +/datum/medical_effect/headache/on_life(mob/living/carbon/human/H, strength) + switch(strength) + if(1 to 10) + H.custom_pain("You feel a light pain in your head.",0) + if(11 to 30) + H.custom_pain("You feel a throbbing pain in your head!",1) + if(31 to 99) + H.custom_pain("You feel an excrutiating pain in your head!",1) + H.adjustBrainLoss(1) + if(99 to INFINITY) + H.custom_pain("It feels like your head is about to split open!",1) + H.adjustBrainLoss(3) + var/datum/organ/external/O = H.organs_by_name["head"] + O.take_damage(0, 1, 0, "Headache") + +/datum/medical_effect/headache/cure(mob/living/carbon/human/H) + if(H.reagents.has_reagent("alkysine") || H.reagents.has_reagent("tramadol")) + H << "\red Your head stops throbbing.." + return 1 + return 0 + +// BAD STOMACH +// =========== +/datum/medical_effect/bad_stomach/name = "Bad Stomach" +/datum/medical_effect/bad_stomach/on_life(mob/living/carbon/human/H, strength) + switch(strength) + if(1 to 10) + H.custom_pain("You feel a bit light around the stomach.",0) + if(11 to 30) + H.custom_pain("Your stomach hurts.",0) + if(31 to 99) + H.custom_pain("You feel sick.",1) + H.adjustToxLoss(1) + if(99 to INFINITY) + H.custom_pain("You can't hold it in any longer!",1) + H.vomit() + +/datum/medical_effect/bad_stomach/cure(mob/living/carbon/human/H) + if(H.reagents.has_reagent("anti_toxin")) + H << "\red Your stomach feels a little better now.." + return 1 + return 0 + + +// CRAMPS +// ====== +/datum/medical_effect/cramps/name = "Cramps" +/datum/medical_effect/cramps/on_life(mob/living/carbon/human/H, strength) + switch(strength) + if(1 to 10) + H.custom_pain("The muscles in your body hurt a little.",0) + if(11 to 30) + H.custom_pain("The muscles in your body cramp up painfully.",0) + if(31 to 99) + H.emote("me",1,"flinches as all the muscles in their body cramp up.") + H.custom_pain("There's pain all over your body.",1) + H.adjustToxLoss(1) + if(99 to INFINITY) + H.emote("me",1,"flinches as all the muscles in their body cramp up.") + H.custom_pain("It feels as though your muscles are being ripped apart!",1) + H.apply_damage(1, used_weapon = "Cramps") + +/datum/medical_effect/cramps/cure(mob/living/carbon/human/H) + if(H.reagents.has_reagent("inaprovaline")) + H << "\red The cramps let up.." + return 1 return 0 \ No newline at end of file diff --git a/code/game/machinery/cloning.dm b/code/game/machinery/cloning.dm index 5bbcd9b32b..fd54da9de1 100644 --- a/code/game/machinery/cloning.dm +++ b/code/game/machinery/cloning.dm @@ -326,6 +326,7 @@ src.icon_state = "pod_0" src.eject_wait = 0 //If it's still set somehow. domutcheck(src.occupant) //Waiting until they're out before possible monkeyizing. + src.occupant.add_side_effect("Bad Stomach") // Give them an extra side-effect for free. src.occupant = null return diff --git a/code/game/objects/items/stacks/medical.dm b/code/game/objects/items/stacks/medical.dm index 659900aefc..b4f738304f 100644 --- a/code/game/objects/items/stacks/medical.dm +++ b/code/game/objects/items/stacks/medical.dm @@ -53,6 +53,7 @@ user.visible_message( "\blue [user] salves wounds on [M]'s [affecting.display_name].", \ "\blue You salve wounds on [M]'s [affecting.display_name]." ) + H.add_side_effect("Cramps") H.UpdateDamageIcon() else M.heal_organ_damage((src.heal_brute/2), (src.heal_burn/2)) diff --git a/code/modules/reagents/Chemistry-Reagents.dm b/code/modules/reagents/Chemistry-Reagents.dm index 623e45c6cd..acec96cba7 100644 --- a/code/modules/reagents/Chemistry-Reagents.dm +++ b/code/modules/reagents/Chemistry-Reagents.dm @@ -1501,7 +1501,6 @@ datum return if(!M) M = holder.my_atom M.heal_organ_damage(2*REM,0) - M.add_side_effect("Headache") ..() return