From 9a8d542648397932e5e6bb070bfae76d3aa520cb Mon Sep 17 00:00:00 2001 From: TheFurryFeline <38586851+TheFurryFeline@users.noreply.github.com> Date: Sun, 15 Dec 2019 23:19:55 -0500 Subject: [PATCH 01/65] Boop Da Noses! Ports https://github.com/CHOMPstation/CHOMPstation/pull/638 for nose boops. Changelog notes: - Allows people to boop others' noses targeting the mouth. --- code/modules/mob/living/carbon/human/species/species.dm | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/code/modules/mob/living/carbon/human/species/species.dm b/code/modules/mob/living/carbon/human/species/species.dm index baaf7c05ffc..2c797ace535 100644 --- a/code/modules/mob/living/carbon/human/species/species.dm +++ b/code/modules/mob/living/carbon/human/species/species.dm @@ -365,6 +365,12 @@ H.visible_message( \ "[H] shakes [target]'s hand.", \ "You shake [target]'s hand.", ) + //VOREStation Edit Start - TFF 15/12/19 - Port nose booping from CHOMPStation + else if(H.zone_sel.selecting == "mouth") + H.visible_message( \ + "[H] boops [target]'s nose.", \ + "You boop [target] on the nose.", ) + //VOREStation Edit End else H.visible_message("[H] hugs [target] to make [t_him] feel better!", \ "You hug [target] to make [t_him] feel better!") //End VOREStation Edit From 40ade46d39a3c3852a8717c3b343f1033194d671 Mon Sep 17 00:00:00 2001 From: Unknown Date: Sat, 21 Dec 2019 10:44:53 -0500 Subject: [PATCH 02/65] MSay/ASay perm changes --- code/modules/admin/verbs/adminsay.dm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/code/modules/admin/verbs/adminsay.dm b/code/modules/admin/verbs/adminsay.dm index 0fdc158227f..94e9361b936 100644 --- a/code/modules/admin/verbs/adminsay.dm +++ b/code/modules/admin/verbs/adminsay.dm @@ -2,7 +2,7 @@ set category = "Special Verbs" set name = "Asay" //Gave this shit a shorter name so you only have to time out "asay" rather than "admin say" to use it --NeoFite set hidden = 1 - if(!check_rights(R_ADMIN)) + if(!check_rights(R_ADMIN|R_STEALTH)) //VOREStation Edit return msg = sanitize(msg) @@ -23,7 +23,7 @@ set name = "Msay" set hidden = 1 - if(!check_rights(R_ADMIN|R_MOD|R_SERVER)) + if(!check_rights(R_ADMIN|R_MOD|R_SERVER|R_STEALTH)) //VOREStation Edit return msg = sanitize(msg) From 283ac706b0b7379f878c01ad4d9e589c482cdfa1 Mon Sep 17 00:00:00 2001 From: Unknown Date: Sat, 21 Dec 2019 11:30:34 -0500 Subject: [PATCH 03/65] Mowmowmow --- code/modules/admin/verbs/adminsay.dm | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/code/modules/admin/verbs/adminsay.dm b/code/modules/admin/verbs/adminsay.dm index 94e9361b936..acd6313f8e8 100644 --- a/code/modules/admin/verbs/adminsay.dm +++ b/code/modules/admin/verbs/adminsay.dm @@ -11,10 +11,13 @@ log_adminsay(msg,src) - if(check_rights(R_ADMIN,0)) - for(var/client/C in admins) - if(R_ADMIN & C.holder.rights) - C << "" + create_text_tag("admin", "ADMIN:", C) + " [key_name(usr, 1)]([admin_jump_link(mob, src)]): [msg]" + //VOREStation Edit Start - Adds R_STEALTH + if(check_rights(R_ADMIN, 0)) + sender_name = "[sender_name]" + for(var/client/C in admins) + if(check_rights(R_ADMIN|R_STEALTH)) //VOREStation Edit + C << "" + create_text_tag("admin", "ADMIN:", C) + " [key_name(usr, 1)]([admin_jump_link(mob, src)]): [msg]" + //VOREStation Edit End feedback_add_details("admin_verb","M") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! @@ -36,7 +39,7 @@ if(check_rights(R_ADMIN, 0)) sender_name = "[sender_name]" for(var/client/C in admins) - if(check_rights(R_ADMIN|R_MOD|R_SERVER)) + if(check_rights(R_ADMIN|R_MOD|R_SERVER|R_STEALTH)) //VOREStation Edit C << "" + create_text_tag("mod", "MOD:", C) + " [sender_name]([admin_jump_link(mob, C.holder)]): [msg]" feedback_add_details("admin_verb","MS") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! From c0c5a6915c6ae2a1c0c5483497aeda8f16b9085a Mon Sep 17 00:00:00 2001 From: Unknown Date: Sat, 21 Dec 2019 11:37:28 -0500 Subject: [PATCH 04/65] Derp --- code/modules/admin/verbs/adminsay.dm | 1 + 1 file changed, 1 insertion(+) diff --git a/code/modules/admin/verbs/adminsay.dm b/code/modules/admin/verbs/adminsay.dm index acd6313f8e8..4202027faa7 100644 --- a/code/modules/admin/verbs/adminsay.dm +++ b/code/modules/admin/verbs/adminsay.dm @@ -12,6 +12,7 @@ log_adminsay(msg,src) //VOREStation Edit Start - Adds R_STEALTH + var/sender_name = key_name(usr, 1) if(check_rights(R_ADMIN, 0)) sender_name = "[sender_name]" for(var/client/C in admins) From 2e599f02c0177acd438bdfe24d8aecb5f8d37395 Mon Sep 17 00:00:00 2001 From: Unknown Date: Sat, 21 Dec 2019 11:38:14 -0500 Subject: [PATCH 05/65] Actually this is redundant --- code/modules/admin/verbs/adminsay.dm | 3 --- 1 file changed, 3 deletions(-) diff --git a/code/modules/admin/verbs/adminsay.dm b/code/modules/admin/verbs/adminsay.dm index 4202027faa7..9ab0799e45a 100644 --- a/code/modules/admin/verbs/adminsay.dm +++ b/code/modules/admin/verbs/adminsay.dm @@ -12,9 +12,6 @@ log_adminsay(msg,src) //VOREStation Edit Start - Adds R_STEALTH - var/sender_name = key_name(usr, 1) - if(check_rights(R_ADMIN, 0)) - sender_name = "[sender_name]" for(var/client/C in admins) if(check_rights(R_ADMIN|R_STEALTH)) //VOREStation Edit C << "" + create_text_tag("admin", "ADMIN:", C) + " [key_name(usr, 1)]([admin_jump_link(mob, src)]): [msg]" From 9a7ac2015864c3b68f95cd7fdb5435bf77457f53 Mon Sep 17 00:00:00 2001 From: Unknown Date: Sat, 21 Dec 2019 12:06:42 -0500 Subject: [PATCH 06/65] Removes extraneous edit --- code/modules/admin/verbs/adminsay.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/admin/verbs/adminsay.dm b/code/modules/admin/verbs/adminsay.dm index 9ab0799e45a..d425e60f579 100644 --- a/code/modules/admin/verbs/adminsay.dm +++ b/code/modules/admin/verbs/adminsay.dm @@ -13,7 +13,7 @@ //VOREStation Edit Start - Adds R_STEALTH for(var/client/C in admins) - if(check_rights(R_ADMIN|R_STEALTH)) //VOREStation Edit + if(check_rights(R_ADMIN|R_STEALTH)) C << "" + create_text_tag("admin", "ADMIN:", C) + " [key_name(usr, 1)]([admin_jump_link(mob, src)]): [msg]" //VOREStation Edit End From ff65d5d95dab02a579c637468b5d2aa0b33404af Mon Sep 17 00:00:00 2001 From: TheFurryFeline <38586851+TheFurryFeline@users.noreply.github.com> Date: Sat, 21 Dec 2019 20:26:16 -0500 Subject: [PATCH 07/65] Tram ETA, Not Shuttle Changelog Note: - Changes the .tmpl file for PDAs' Status Display function to read out Tram ETA, not Shuttle ETA since we're Virgo here. No shuttles for transfer. --- nano/templates/pda.tmpl | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/nano/templates/pda.tmpl b/nano/templates/pda.tmpl index d5647310ce7..12f9bd03c90 100644 --- a/nano/templates/pda.tmpl +++ b/nano/templates/pda.tmpl @@ -348,7 +348,8 @@ Used In File(s): \code\game\objects\items\devices\PDA\PDA.dm
{{:helper.link('Clear', 'trash', {'cartmenu' : "1", 'choice' : "Status", 'statdisp' : "blank"}, null, null)}} - {{:helper.link('Shuttle ETA', 'gear', {'cartmenu' : "1", 'choice' : "Status",'statdisp' : "shuttle"}, null, null)}} + + {{:helper.link('Tram ETA', 'gear', {'cartmenu' : "1", 'choice' : "Status",'statdisp' : "shuttle"}, null, null)}} {{:helper.link('Message', 'gear', {'cartmenu' : "1", 'choice' : "Status",'statdisp' : "message"}, null, null)}}
From 44dc18c8054ec852efebd11fdae49763ac310f77 Mon Sep 17 00:00:00 2001 From: TheFurryFeline <38586851+TheFurryFeline@users.noreply.github.com> Date: Sat, 21 Dec 2019 20:28:14 -0500 Subject: [PATCH 08/65] Derped Comment --- nano/templates/pda.tmpl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nano/templates/pda.tmpl b/nano/templates/pda.tmpl index 12f9bd03c90..baafe2ee645 100644 --- a/nano/templates/pda.tmpl +++ b/nano/templates/pda.tmpl @@ -348,7 +348,7 @@ Used In File(s): \code\game\objects\items\devices\PDA\PDA.dm
{{:helper.link('Clear', 'trash', {'cartmenu' : "1", 'choice' : "Status", 'statdisp' : "blank"}, null, null)}} - + {{:helper.link('Tram ETA', 'gear', {'cartmenu' : "1", 'choice' : "Status",'statdisp' : "shuttle"}, null, null)}} {{:helper.link('Message', 'gear', {'cartmenu' : "1", 'choice' : "Status",'statdisp' : "message"}, null, null)}}
From 8cd4e275d1134dd0f67a77c6f659d8cb7be4d05a Mon Sep 17 00:00:00 2001 From: Unknown Date: Sun, 22 Dec 2019 10:29:07 -0500 Subject: [PATCH 09/65] Disables force unequipping on bellystrip --- code/modules/vore/eating/bellymodes_vr.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/vore/eating/bellymodes_vr.dm b/code/modules/vore/eating/bellymodes_vr.dm index 7bdeb648b61..c073cd6d50e 100644 --- a/code/modules/vore/eating/bellymodes_vr.dm +++ b/code/modules/vore/eating/bellymodes_vr.dm @@ -114,7 +114,7 @@ for(var/slot in slots) var/obj/item/I = H.get_equipped_item(slot = slot) if(I) - H.unEquip(I,force = TRUE) + H.unEquip(I,force = FALSE) if(contaminates || istype(I,/obj/item/weapon/card/id)) I.gurgle_contaminate(contents, contamination_flavor, contamination_color) if(item_digest_mode == IM_HOLD) From 6f3e4e72e10fe63d55717c2055d6c0d4ae882a92 Mon Sep 17 00:00:00 2001 From: Unknown Date: Sun, 22 Dec 2019 10:58:13 -0500 Subject: [PATCH 10/65] Purges simpleanimal files --- .../mob/living/simple_animal/aliens/alien.dm | 142 -- .../living/simple_animal/aliens/creature.dm | 78 - .../mob/living/simple_animal/aliens/drone.dm | 286 --- .../living/simple_animal/aliens/faithless.dm | 84 - .../living/simple_animal/aliens/hivebot.dm | 242 --- .../mob/living/simple_animal/aliens/mimic.dm | 207 -- .../mob/living/simple_animal/aliens/shade.dm | 61 - .../mob/living/simple_animal/aliens/statue.dm | 457 ----- .../mob/living/simple_animal/animals/bat.dm | 85 - .../mob/living/simple_animal/animals/bear.dm | 141 -- .../living/simple_animal/animals/birds_vr.dm | 151 -- .../mob/living/simple_animal/animals/carp.dm | 93 - .../mob/living/simple_animal/animals/cat.dm | 193 -- .../living/simple_animal/animals/cat_vr.dm | 66 - .../mob/living/simple_animal/animals/corgi.dm | 231 --- .../living/simple_animal/animals/corgi_vr.dm | 218 -- .../mob/living/simple_animal/animals/crab.dm | 87 - .../simple_animal/animals/farm_animals.dm | 292 --- .../mob/living/simple_animal/animals/fish.dm | 80 - .../living/simple_animal/animals/fish_vr.dm | 41 - .../living/simple_animal/animals/fluffy_vr.dm | 39 - .../living/simple_animal/animals/fox_vr.dm | 225 --- .../simple_animal/animals/giant_spider.dm | 589 ------ .../simple_animal/animals/giant_spider_vr.dm | 23 - .../mob/living/simple_animal/animals/goose.dm | 60 - .../living/simple_animal/animals/lizard.dm | 24 - .../simple_animal/animals/miscellaneous.dm | 21 - .../mob/living/simple_animal/animals/mouse.dm | 137 -- .../living/simple_animal/animals/mouse_vr.dm | 8 - .../living/simple_animal/animals/parrot.dm | 768 ------- .../living/simple_animal/animals/penguin.dm | 27 - .../living/simple_animal/animals/pike_vr.dm | 34 - .../mob/living/simple_animal/animals/slime.dm | 70 - .../living/simple_animal/animals/snake_vr.dm | 104 - .../living/simple_animal/animals/spiderbot.dm | 302 --- .../living/simple_animal/animals/tomato.dm | 24 - .../mob/living/simple_animal/animals/tree.dm | 60 - .../mob/living/simple_animal/animals/worm.dm | 199 -- .../mob/living/simple_animal/borer/borer.dm | 213 -- .../simple_animal/borer/borer_captive.dm | 57 - .../simple_animal/borer/borer_powers.dm | 337 ---- .../mob/living/simple_animal/borer/say.dm | 40 - .../mob/living/simple_animal/corpse.dm | 170 -- .../mob/living/simple_animal/corpse_vr.dm | 2 - .../living/simple_animal/humanoids/clown.dm | 49 - .../simple_animal/humanoids/mechamobs.dm | 123 -- .../living/simple_animal/humanoids/pirate.dm | 72 - .../living/simple_animal/humanoids/russian.dm | 68 - .../simple_animal/humanoids/syndicate.dm | 266 --- .../mob/living/simple_animal/simple_animal.dm | 1759 ----------------- .../mob/living/simple_animal/simple_hud.dm | 311 --- .../living/simple_animal/slime/subtypes.dm | 748 ------- .../mob/living/simple_animal/vore/bee.dm | 45 - .../mob/living/simple_animal/vore/catgirl.dm | 67 - .../living/simple_animal/vore/cookiegirl.dm | 45 - .../simple_animal/vore/corrupt_hounds.dm | 130 -- .../living/simple_animal/vore/deathclaw.dm | 48 - .../mob/living/simple_animal/vore/dino.dm | 42 - .../mob/living/simple_animal/vore/dragon.dm | 60 - .../mob/living/simple_animal/vore/fennec.dm | 38 - .../mob/living/simple_animal/vore/fennix.dm | 28 - .../mob/living/simple_animal/vore/frog.dm | 41 - .../mob/living/simple_animal/vore/gaslamp.dm | 67 - .../mob/living/simple_animal/vore/hippo.dm | 81 - .../mob/living/simple_animal/vore/horse.dm | 52 - .../mob/living/simple_animal/vore/jelly.dm | 25 - .../mob/living/simple_animal/vore/otie.dm | 400 ---- .../mob/living/simple_animal/vore/panther.dm | 50 - .../mob/living/simple_animal/vore/rat.dm | 176 -- .../mob/living/simple_animal/vore/redpanda.dm | 57 - .../simple_animal/vore/shadekin/_defines.dm | 13 - .../vore/shadekin/ability_objects.dm | 165 -- .../vore/shadekin/ability_procs.dm | 133 -- .../simple_animal/vore/shadekin/shadekin.dm | 447 ----- .../simple_animal/vore/shadekin/types.dm | 256 --- .../simple_animal/vore/shadekin/~defines.dm | 11 - .../mob/living/simple_animal/vore/snake.dm | 28 - .../living/simple_animal/vore/solargrub.dm | 119 -- .../simple_animal/vore/solargrub_larva.dm | 256 --- .../mob/living/simple_animal/vore/wolf.dm | 27 - .../mob/living/simple_animal/vore/wolfgirl.dm | 62 - .../simple_animal/vore/zz_vore_overrides.dm | 250 --- 82 files changed, 13383 deletions(-) delete mode 100644 code/modules/mob/living/simple_animal/aliens/alien.dm delete mode 100644 code/modules/mob/living/simple_animal/aliens/creature.dm delete mode 100644 code/modules/mob/living/simple_animal/aliens/drone.dm delete mode 100644 code/modules/mob/living/simple_animal/aliens/faithless.dm delete mode 100644 code/modules/mob/living/simple_animal/aliens/hivebot.dm delete mode 100644 code/modules/mob/living/simple_animal/aliens/mimic.dm delete mode 100644 code/modules/mob/living/simple_animal/aliens/shade.dm delete mode 100644 code/modules/mob/living/simple_animal/aliens/statue.dm delete mode 100644 code/modules/mob/living/simple_animal/animals/bat.dm delete mode 100644 code/modules/mob/living/simple_animal/animals/bear.dm delete mode 100644 code/modules/mob/living/simple_animal/animals/birds_vr.dm delete mode 100644 code/modules/mob/living/simple_animal/animals/carp.dm delete mode 100644 code/modules/mob/living/simple_animal/animals/cat.dm delete mode 100644 code/modules/mob/living/simple_animal/animals/cat_vr.dm delete mode 100644 code/modules/mob/living/simple_animal/animals/corgi.dm delete mode 100644 code/modules/mob/living/simple_animal/animals/corgi_vr.dm delete mode 100644 code/modules/mob/living/simple_animal/animals/crab.dm delete mode 100644 code/modules/mob/living/simple_animal/animals/farm_animals.dm delete mode 100644 code/modules/mob/living/simple_animal/animals/fish.dm delete mode 100644 code/modules/mob/living/simple_animal/animals/fish_vr.dm delete mode 100644 code/modules/mob/living/simple_animal/animals/fluffy_vr.dm delete mode 100644 code/modules/mob/living/simple_animal/animals/fox_vr.dm delete mode 100644 code/modules/mob/living/simple_animal/animals/giant_spider.dm delete mode 100644 code/modules/mob/living/simple_animal/animals/giant_spider_vr.dm delete mode 100644 code/modules/mob/living/simple_animal/animals/goose.dm delete mode 100644 code/modules/mob/living/simple_animal/animals/lizard.dm delete mode 100644 code/modules/mob/living/simple_animal/animals/miscellaneous.dm delete mode 100644 code/modules/mob/living/simple_animal/animals/mouse.dm delete mode 100644 code/modules/mob/living/simple_animal/animals/mouse_vr.dm delete mode 100644 code/modules/mob/living/simple_animal/animals/parrot.dm delete mode 100644 code/modules/mob/living/simple_animal/animals/penguin.dm delete mode 100644 code/modules/mob/living/simple_animal/animals/pike_vr.dm delete mode 100644 code/modules/mob/living/simple_animal/animals/slime.dm delete mode 100644 code/modules/mob/living/simple_animal/animals/snake_vr.dm delete mode 100644 code/modules/mob/living/simple_animal/animals/spiderbot.dm delete mode 100644 code/modules/mob/living/simple_animal/animals/tomato.dm delete mode 100644 code/modules/mob/living/simple_animal/animals/tree.dm delete mode 100644 code/modules/mob/living/simple_animal/animals/worm.dm delete mode 100644 code/modules/mob/living/simple_animal/borer/borer.dm delete mode 100644 code/modules/mob/living/simple_animal/borer/borer_captive.dm delete mode 100644 code/modules/mob/living/simple_animal/borer/borer_powers.dm delete mode 100644 code/modules/mob/living/simple_animal/borer/say.dm delete mode 100644 code/modules/mob/living/simple_animal/corpse.dm delete mode 100644 code/modules/mob/living/simple_animal/corpse_vr.dm delete mode 100644 code/modules/mob/living/simple_animal/humanoids/clown.dm delete mode 100644 code/modules/mob/living/simple_animal/humanoids/mechamobs.dm delete mode 100644 code/modules/mob/living/simple_animal/humanoids/pirate.dm delete mode 100644 code/modules/mob/living/simple_animal/humanoids/russian.dm delete mode 100644 code/modules/mob/living/simple_animal/humanoids/syndicate.dm delete mode 100644 code/modules/mob/living/simple_animal/simple_animal.dm delete mode 100644 code/modules/mob/living/simple_animal/simple_hud.dm delete mode 100644 code/modules/mob/living/simple_animal/slime/subtypes.dm delete mode 100644 code/modules/mob/living/simple_animal/vore/bee.dm delete mode 100644 code/modules/mob/living/simple_animal/vore/catgirl.dm delete mode 100644 code/modules/mob/living/simple_animal/vore/cookiegirl.dm delete mode 100644 code/modules/mob/living/simple_animal/vore/corrupt_hounds.dm delete mode 100644 code/modules/mob/living/simple_animal/vore/deathclaw.dm delete mode 100644 code/modules/mob/living/simple_animal/vore/dino.dm delete mode 100644 code/modules/mob/living/simple_animal/vore/dragon.dm delete mode 100644 code/modules/mob/living/simple_animal/vore/fennec.dm delete mode 100644 code/modules/mob/living/simple_animal/vore/fennix.dm delete mode 100644 code/modules/mob/living/simple_animal/vore/frog.dm delete mode 100644 code/modules/mob/living/simple_animal/vore/gaslamp.dm delete mode 100644 code/modules/mob/living/simple_animal/vore/hippo.dm delete mode 100644 code/modules/mob/living/simple_animal/vore/horse.dm delete mode 100644 code/modules/mob/living/simple_animal/vore/jelly.dm delete mode 100644 code/modules/mob/living/simple_animal/vore/otie.dm delete mode 100644 code/modules/mob/living/simple_animal/vore/panther.dm delete mode 100644 code/modules/mob/living/simple_animal/vore/rat.dm delete mode 100644 code/modules/mob/living/simple_animal/vore/redpanda.dm delete mode 100644 code/modules/mob/living/simple_animal/vore/shadekin/_defines.dm delete mode 100644 code/modules/mob/living/simple_animal/vore/shadekin/ability_objects.dm delete mode 100644 code/modules/mob/living/simple_animal/vore/shadekin/ability_procs.dm delete mode 100644 code/modules/mob/living/simple_animal/vore/shadekin/shadekin.dm delete mode 100644 code/modules/mob/living/simple_animal/vore/shadekin/types.dm delete mode 100644 code/modules/mob/living/simple_animal/vore/shadekin/~defines.dm delete mode 100644 code/modules/mob/living/simple_animal/vore/snake.dm delete mode 100644 code/modules/mob/living/simple_animal/vore/solargrub.dm delete mode 100644 code/modules/mob/living/simple_animal/vore/solargrub_larva.dm delete mode 100644 code/modules/mob/living/simple_animal/vore/wolf.dm delete mode 100644 code/modules/mob/living/simple_animal/vore/wolfgirl.dm delete mode 100644 code/modules/mob/living/simple_animal/vore/zz_vore_overrides.dm diff --git a/code/modules/mob/living/simple_animal/aliens/alien.dm b/code/modules/mob/living/simple_animal/aliens/alien.dm deleted file mode 100644 index 861d79648e2..00000000000 --- a/code/modules/mob/living/simple_animal/aliens/alien.dm +++ /dev/null @@ -1,142 +0,0 @@ -/mob/living/simple_mob/hostile/alien - name = "alien hunter" - desc = "Hiss!" - icon = 'icons/mob/alien.dmi' - icon_state = "alienh_running" - icon_living = "alienh_running" - icon_dead = "alien_l" - icon_gib = "syndicate_gib" - icon_rest = "alienh_sleep" - - faction = "xeno" - intelligence_level = SA_HUMANOID - cooperative = 1 - run_at_them = 0 - - response_help = "pokes" - response_disarm = "shoves" - response_harm = "hits" - - maxHealth = 100 - health = 100 - speed = -1 - - harm_intent_damage = 5 - melee_damage_lower = 25 - melee_damage_upper = 25 - attack_sharp = 1 - attack_edge = 1 - - attacktext = list("slashed") - attack_sound = 'sound/weapons/bladeslice.ogg' - a_intent = I_HURT - - environment_smash = 2 - status_flags = CANPUSH - - min_oxy = 0 - max_oxy = 0 - min_tox = 0 - max_tox = 0 - min_co2 = 0 - max_co2 = 0 - min_n2 = 0 - max_n2 = 0 - minbodytemp = 0 - heat_damage_per_tick = 20 - unsuitable_atoms_damage = 15 - - meat_type = /obj/item/weapon/reagent_containers/food/snacks/xenomeat - -/mob/living/simple_mob/hostile/alien/drone - name = "alien drone" - icon_state = "aliend_running" - icon_living = "aliend_running" - icon_dead = "aliend_l" - icon_rest = "aliend_sleep" - health = 60 - melee_damage_lower = 15 - melee_damage_upper = 15 - -/mob/living/simple_mob/hostile/alien/sentinel - name = "alien sentinel" - icon_state = "aliens_running" - icon_living = "aliens_running" - icon_dead = "aliens_l" - icon_rest = "aliens_sleep" - health = 120 - melee_damage_lower = 15 - melee_damage_upper = 15 - ranged = 1 - projectiletype = /obj/item/projectile/energy/neurotoxin/toxic - projectilesound = 'sound/weapons/pierce.ogg' - -/mob/living/simple_mob/hostile/alien/sentinel/praetorian - name = "alien praetorian" - icon = 'icons/mob/64x64.dmi' - icon_state = "prat_s" - icon_living = "prat_s" - icon_dead = "prat_dead" - icon_rest = "prat_sleep" - move_to_delay = 5 - maxHealth = 200 - health = 200 - - pixel_x = -16 - old_x = -16 - meat_amount = 5 - -/mob/living/simple_mob/hostile/alien/queen - name = "alien queen" - icon_state = "alienq_running" - icon_living = "alienq_running" - icon_dead = "alienq_l" - icon_rest = "alienq_sleep" - health = 250 - maxHealth = 250 - melee_damage_lower = 15 - melee_damage_upper = 15 - ranged = 1 - move_to_delay = 3 - projectiletype = /obj/item/projectile/energy/neurotoxin/toxic - projectilesound = 'sound/weapons/pierce.ogg' - rapid = 1 - status_flags = 0 - -/mob/living/simple_mob/hostile/alien/queen/empress - name = "alien empress" - icon = 'icons/mob/64x64.dmi' - icon_state = "queen_s" - icon_living = "queen_s" - icon_dead = "queen_dead" - icon_rest = "queen_sleep" - move_to_delay = 4 - maxHealth = 400 - health = 400 - meat_amount = 5 - speed = 1 - - pixel_x = -16 - old_x = -16 - -/mob/living/simple_mob/hostile/alien/queen/empress/mother - name = "alien mother" - icon = 'icons/mob/96x96.dmi' - icon_state = "empress_s" - icon_living = "empress_s" - icon_dead = "empress_dead" - icon_rest = "empress_rest" - maxHealth = 600 - health = 600 - meat_amount = 10 - melee_damage_lower = 15 - melee_damage_upper = 25 - speed = 2 - - pixel_x = -32 - old_x = -32 - -/mob/living/simple_mob/hostile/alien/death() - ..() - visible_message("[src] lets out a waning guttural screech, green blood bubbling from its maw...") - playsound(src, 'sound/voice/hiss6.ogg', 100, 1) \ No newline at end of file diff --git a/code/modules/mob/living/simple_animal/aliens/creature.dm b/code/modules/mob/living/simple_animal/aliens/creature.dm deleted file mode 100644 index 65dcd326fad..00000000000 --- a/code/modules/mob/living/simple_animal/aliens/creature.dm +++ /dev/null @@ -1,78 +0,0 @@ -/mob/living/simple_mob/hostile/creature - name = "creature" - desc = "A sanity-destroying otherthing." - icon = 'icons/mob/critter.dmi' - icon_state = "otherthing" - icon_living = "otherthing" - icon_dead = "otherthing-dead" - - faction = "creature" - intelligence_level = SA_ANIMAL - maxHealth = 40 - health = 40 - speed = 8 - - harm_intent_damage = 8 - - melee_damage_lower = 8 - melee_damage_upper = 15 - attack_armor_pen = 5 //It's a horror from beyond, I ain't gotta explain 5 AP - attack_sharp = 1 - attack_edge = 1 - - attacktext = list("chomped") - attack_sound = 'sound/weapons/bite.ogg' - - speak_emote = list("gibbers") - -/mob/living/simple_mob/hostile/creature/cult - faction = "cult" - - min_oxy = 0 - max_oxy = 0 - min_tox = 0 - max_tox = 0 - min_co2 = 0 - max_co2 = 0 - min_n2 = 0 - max_n2 = 0 - minbodytemp = 0 - - supernatural = 1 - -/mob/living/simple_mob/hostile/creature/cult/cultify() - return - -/mob/living/simple_mob/hostile/creature/cult/Life() - ..() - check_horde() - -/mob/living/simple_mob/hostile/creature/strong - maxHealth = 160 - health = 160 - - harm_intent_damage = 5 - melee_damage_lower = 13 - melee_damage_upper = 25 - -/mob/living/simple_mob/hostile/creature/strong/cult - faction = "cult" - - min_oxy = 0 - max_oxy = 0 - min_tox = 0 - max_tox = 0 - min_co2 = 0 - max_co2 = 0 - min_n2 = 0 - max_n2 = 0 - minbodytemp = 0 - - supernatural = 1 - -/mob/living/simple_mob/hostile/creature/cult/cultify() - return - -/mob/living/simple_mob/hostile/creature/cult/Life() - ..() - check_horde() diff --git a/code/modules/mob/living/simple_animal/aliens/drone.dm b/code/modules/mob/living/simple_animal/aliens/drone.dm deleted file mode 100644 index 70cf52731db..00000000000 --- a/code/modules/mob/living/simple_animal/aliens/drone.dm +++ /dev/null @@ -1,286 +0,0 @@ - -//malfunctioning combat drones -/mob/living/simple_mob/hostile/malf_drone - name = "combat drone" - desc = "An automated combat drone armed with state of the art weaponry and shielding." - icon_state = "drone3" - icon_living = "drone3" - icon_dead = "drone_dead" - - faction = "malf_drone" - intelligence_level = SA_ROBOTIC - maxHealth = 300 - health = 300 - speed = 8 - stop_when_pulled = 0 - - turns_per_move = 3 - response_help = "pokes" - response_disarm = "gently pushes aside" - response_harm = "hits" - - a_intent = I_HURT - ranged = 1 - rapid = 1 - projectiletype = /obj/item/projectile/beam/drone - projectilesound = 'sound/weapons/laser3.ogg' - destroy_surroundings = 0 - hovering = TRUE - - armor = list(melee = 25, bullet = 25, laser = 25, energy = 10, bomb = 25, bio = 100, rad = 100) // Some level of armor plating makes sense - //Drones aren't affected by atmos. - min_oxy = 0 - max_oxy = 0 - min_tox = 0 - max_tox = 0 - min_co2 = 0 - max_co2 = 0 - min_n2 = 0 - max_n2 = 0 - minbodytemp = 0 - - speak_chance = 5 - speak = list("ALERT.","Hostile-ile-ile entities dee-twhoooo-wected.","Threat parameterszzzz- szzet.","Bring sub-sub-sub-systems uuuup to combat alert alpha-a-a.") - emote_see = list("beeps menacingly","whirrs threateningly","scans its immediate vicinity") - - - var/datum/effect/effect/system/ion_trail_follow/ion_trail - var/turf/patrol_target - var/explode_chance = 1 - var/disabled = 0 - var/exploding = 0 - var/has_loot = 1 - -/mob/living/simple_mob/hostile/malf_drone/New() - ..() - if(prob(5)) - projectiletype = /obj/item/projectile/beam/pulse/drone - projectilesound = 'sound/weapons/pulse2.ogg' - ion_trail = new - ion_trail.set_up(src) - ion_trail.start() - -/mob/living/simple_mob/hostile/malf_drone/Process_Spacemove(var/check_drift = 0) - return 1 - -/mob/living/simple_mob/hostile/malf_drone/isSynthetic() - return TRUE - -//self repair systems have a chance to bring the drone back to life -/mob/living/simple_mob/hostile/malf_drone/Life() - - //emps and lots of damage can temporarily shut us down - if(disabled > 0) - stat = UNCONSCIOUS - icon_state = "drone_dead" - disabled-- - wander = 0 - speak_chance = 0 - if(disabled <= 0) - stat = CONSCIOUS - icon_state = "drone0" - wander = 1 - speak_chance = 5 - - //repair a bit of damage - if(prob(1)) - src.visible_message("\icon[src] [src] shudders and shakes as some of it's damaged systems come back online.") - var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread - s.set_up(3, 1, src) - s.start() - health += rand(25,100) - - //spark for no reason - if(prob(5)) - var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread - s.set_up(3, 1, src) - s.start() - - //sometimes our targetting sensors malfunction, and we attack anyone nearby - if(prob(disabled ? 0 : 1)) - if(hostile) - src.visible_message("\icon[src] [src] retracts several targetting vanes, and dulls it's running lights.") - hostile = 0 - else - src.visible_message("\icon[src] [src] suddenly lights up, and additional targetting vanes slide into place.") - hostile = 1 - - if(health / getMaxHealth() > 0.9) - icon_state = "drone3" - explode_chance = 0 - else if(health / getMaxHealth() > 0.7) - icon_state = "drone2" - explode_chance = 0 - else if(health / getMaxHealth() > 0.5) - icon_state = "drone1" - explode_chance = 0.5 - else if(health / getMaxHealth() > 0.3) - icon_state = "drone0" - explode_chance = 5 - else if(health > 0) - //if health gets too low, shut down - icon_state = "drone_dead" - exploding = 0 - if(!disabled) - if(prob(50)) - src.visible_message("\icon[src] [src] suddenly shuts down!") - else - src.visible_message("\icon[src] [src] suddenly lies still and quiet.") - disabled = rand(150, 600) - walk(src,0) - - if(exploding && prob(20)) - if(prob(50)) - src.visible_message("\icon[src] [src] begins to spark and shake violenty!") - else - src.visible_message("\icon[src] [src] sparks and shakes like it's about to explode!") - var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread - s.set_up(3, 1, src) - s.start() - - if(!exploding && !disabled && prob(explode_chance)) - exploding = 1 - stat = UNCONSCIOUS - wander = 1 - walk(src,0) - spawn(rand(50,150)) - if(!disabled && exploding) - explosion(get_turf(src), 0, 1, 4, 7) - //proc/explosion(turf/epicenter, devastation_range, heavy_impact_range, light_impact_range, flash_range, adminlog = 1) - ..() - -//ion rifle! -/mob/living/simple_mob/hostile/malf_drone/emp_act(severity) - health -= rand(3,15) * (severity + 1) - disabled = rand(150, 600) - hostile = 0 - walk(src,0) - ..() - -/mob/living/simple_mob/hostile/malf_drone/death() - ..(null,"suddenly breaks apart.") - qdel(src) - -/mob/living/simple_mob/hostile/malf_drone/Destroy() - //More advanced than the default S_A loot system, for visual effect and random tech levels. - if(has_loot) - var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread - s.set_up(3, 1, src) - s.start() - var/obj/O - - //shards - O = new /obj/item/weapon/material/shard(src.loc) - step_to(O, get_turf(pick(view(7, src)))) - if(prob(75)) - O = new /obj/item/weapon/material/shard(src.loc) - step_to(O, get_turf(pick(view(7, src)))) - if(prob(50)) - O = new /obj/item/weapon/material/shard(src.loc) - step_to(O, get_turf(pick(view(7, src)))) - if(prob(25)) - O = new /obj/item/weapon/material/shard(src.loc) - step_to(O, get_turf(pick(view(7, src)))) - - //rods - O = new /obj/item/stack/rods(src.loc) - step_to(O, get_turf(pick(view(7, src)))) - if(prob(75)) - O = new /obj/item/stack/rods(src.loc) - step_to(O, get_turf(pick(view(7, src)))) - if(prob(50)) - O = new /obj/item/stack/rods(src.loc) - step_to(O, get_turf(pick(view(7, src)))) - if(prob(25)) - O = new /obj/item/stack/rods(src.loc) - step_to(O, get_turf(pick(view(7, src)))) - - //plasteel - O = new /obj/item/stack/material/plasteel(src.loc) - step_to(O, get_turf(pick(view(7, src)))) - if(prob(75)) - O = new /obj/item/stack/material/plasteel(src.loc) - step_to(O, get_turf(pick(view(7, src)))) - if(prob(50)) - O = new /obj/item/stack/material/plasteel(src.loc) - step_to(O, get_turf(pick(view(7, src)))) - if(prob(25)) - O = new /obj/item/stack/material/plasteel(src.loc) - step_to(O, get_turf(pick(view(7, src)))) - - //also drop dummy circuit boards deconstructable for research (loot) - var/obj/item/weapon/circuitboard/C - - //spawn 1-4 boards of a random type - var/spawnees = 0 - var/num_boards = rand(1,4) - var/list/options = list(1,2,4,8,16,32,64,128,256,512) - for(var/i=0, i\the [src] knocks down \the [L]!") - -/mob/living/simple_mob/hostile/faithless/cult - faction = "cult" - supernatural = 1 - -/mob/living/simple_mob/hostile/faithless/cult/cultify() - return - -/mob/living/simple_mob/hostile/faithless/cult/Life() - ..() - check_horde() - -/mob/living/simple_mob/hostile/faithless/strong - maxHealth = 100 - health = 100 - - harm_intent_damage = 5 - melee_damage_lower = 13 - melee_damage_upper = 28 - -/mob/living/simple_mob/hostile/faithless/strong/cult - faction = "cult" - supernatural = 1 - -/mob/living/simple_mob/hostile/faithless/cult/cultify() - return - -/mob/living/simple_mob/hostile/faithless/cult/Life() - ..() - check_horde() \ No newline at end of file diff --git a/code/modules/mob/living/simple_animal/aliens/hivebot.dm b/code/modules/mob/living/simple_animal/aliens/hivebot.dm deleted file mode 100644 index fbb0b8909b7..00000000000 --- a/code/modules/mob/living/simple_animal/aliens/hivebot.dm +++ /dev/null @@ -1,242 +0,0 @@ -// Hivebots are tuned towards how many default lasers are needed to kill them. -// As such, if laser damage is ever changed, you should change this define. -#define LASERS_TO_KILL * 40 - -// Default hivebot is melee, and a bit more meaty, so it can meatshield for their ranged friends. -/mob/living/simple_mob/hostile/hivebot - name = "hivebot" - desc = "A robot. It appears to be somewhat resilient, but lacks a true weapon." - icon = 'icons/mob/hivebot.dmi' - icon_state = "basic" - icon_living = "basic" - icon_dead = "basic" - - faction = "hivebot" - intelligence_level = SA_ROBOTIC - maxHealth = 3 LASERS_TO_KILL - health = 3 LASERS_TO_KILL - speed = 4 - - melee_damage_lower = 15 - melee_damage_upper = 15 - - attacktext = list("clawed") - projectilesound = 'sound/weapons/Gunshot.ogg' - projectiletype = /obj/item/projectile/bullet/hivebot - - min_oxy = 0 - max_oxy = 0 - min_tox = 0 - max_tox = 0 - min_co2 = 0 - max_co2 = 0 - min_n2 = 0 - max_n2 = 0 - minbodytemp = 0 - - cooperative = TRUE - firing_lines = TRUE - investigates = TRUE - run_at_them = FALSE //VOREStation Edit - - speak_chance = 1 - speak = list( - "Resuming task: Protect area.", - "No threats found.", - "Error: No targets found." - ) - emote_hear = list("hums ominously", "whirrs softly", "grinds a gear") - emote_see = list("looks around the area", "turns from side to side") - say_understood = list("Affirmative.", "Positive.") - say_cannot = list("Denied.", "Negative.") - say_maybe_target = list("Possible threat detected. Investigating.", "Motion detected.", "Investigating.") - say_got_target = list("Threat detected.", "New task: Remove threat.", "Threat removal engaged.", "Engaging target.") - -/mob/living/simple_mob/hostile/hivebot/isSynthetic() - return TRUE - -// Subtypes. - -// Melee like the base type, but more fragile. -/mob/living/simple_mob/hostile/hivebot/swarm - name = "swarm hivebot" - desc = "A robot. It looks fragile and weak" - maxHealth = 1 LASERS_TO_KILL - health = 1 LASERS_TO_KILL - melee_damage_lower = 8 - melee_damage_upper = 8 - -// This one has a semi-weak ranged attack. -/mob/living/simple_mob/hostile/hivebot/range - name = "ranged hivebot" - desc = "A robot. It has a simple ballistic weapon." - ranged = 1 - maxHealth = 2 LASERS_TO_KILL - health = 2 LASERS_TO_KILL - -// This one shoots a burst of three, and is considerably more dangerous. -/mob/living/simple_mob/hostile/hivebot/range/rapid - name = "rapid hivebot" - desc = "A robot. It has a fast firing ballistic rifle." - icon_living = "strong" - rapid = 1 - maxHealth = 2 LASERS_TO_KILL - health = 2 LASERS_TO_KILL - -// Shoots EMPs, to screw over other robots. -/mob/living/simple_mob/hostile/hivebot/range/ion - name = "engineering hivebot" - desc = "A robot. It has a tool which emits focused electromagnetic pulses, which are deadly to synthetic adverseries." - projectiletype = /obj/item/projectile/ion/pistol //VOREStation Edit - projectilesound = 'sound/weapons/Laser.ogg' - icon_living = "engi" - ranged = TRUE - maxHealth = 2 LASERS_TO_KILL - health = 2 LASERS_TO_KILL - -// Shoots deadly lasers. -/mob/living/simple_mob/hostile/hivebot/range/laser - name = "laser hivebot" - desc = "A robot. It has an energy weapon." - projectiletype = /obj/item/projectile/beam/blue - projectilesound = 'sound/weapons/Laser.ogg' - maxHealth = 2 LASERS_TO_KILL - health = 2 LASERS_TO_KILL - -// Beefy and ranged. -/mob/living/simple_mob/hostile/hivebot/range/strong - name = "strong hivebot" - desc = "A robot. This one has reinforced plating, and looks tougher." - icon_living = "strong" - maxHealth = 4 LASERS_TO_KILL - health = 4 LASERS_TO_KILL - melee_damage_lower = 15 - melee_damage_upper = 15 - -// Also beefy, but tries to stay at their 'home', ideal for base defense. -/mob/living/simple_mob/hostile/hivebot/range/guard - name = "guard hivebot" - desc = "A robot. It seems to be guarding something." - returns_home = TRUE - maxHealth = 4 LASERS_TO_KILL - health = 4 LASERS_TO_KILL - -// This one is intended for players to use. Well rounded and can make other hivebots follow them with verbs. -/mob/living/simple_mob/hostile/hivebot/range/player - name = "commander hivebot" - desc = "A robot. This one seems to direct the others, and it has a laser weapon." - icon_living = "commander" - maxHealth = 5 LASERS_TO_KILL - health = 5 LASERS_TO_KILL - projectiletype = /obj/item/projectile/beam/blue - projectilesound = 'sound/weapons/Laser.ogg' - melee_damage_lower = 15 // Needed to force open airlocks. - melee_damage_upper = 15 - -// Procs. - -/mob/living/simple_mob/hostile/hivebot/death() - ..() - visible_message("[src] blows apart!") - new /obj/effect/decal/cleanable/blood/gibs/robot(src.loc) - var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread - s.set_up(3, 1, src) - s.start() - qdel(src) - -/mob/living/simple_mob/hostile/hivebot/speech_bubble_appearance() - return "synthetic_evil" - -/mob/living/simple_mob/hostile/hivebot/verb/command_follow() - set name = "Command - Follow" - set category = "Hivebot" - set desc = "This will ask other hivebots to follow you." - - say("Delegating new task: Follow.") - - for(var/mob/living/simple_mob/hostile/hivebot/buddy in hearers(src)) - if(buddy.faction != faction) - continue - if(buddy == src) - continue - buddy.set_follow(src) - buddy.FollowTarget() - spawn(rand(5, 10)) - buddy.say( pick(buddy.say_understood) ) - -/mob/living/simple_mob/hostile/hivebot/verb/command_stop() - set name = "Command - Stop Following" - set category = "Hivebot" - set desc = "This will ask other hivebots to cease following you." - - say("Delegating new task: Stop following.") - - for(var/mob/living/simple_mob/hostile/hivebot/buddy in hearers(src)) - if(buddy.faction != faction) - continue - if(buddy == src) - continue - buddy.LoseFollow() - spawn(rand(5, 10)) - buddy.say( pick(buddy.say_understood) ) - -/mob/living/simple_mob/hostile/hivebot/tele//this still needs work - name = "Beacon" - desc = "Some odd beacon thing" - icon = 'icons/mob/hivebot.dmi' - icon_state = "def_radar-off" - icon_living = "def_radar-off" - - health = 200 - maxHealth = 200 - status_flags = 0 - - anchored = 1 - wander = 0 - stop_automated_movement = 1 - - var/bot_type = "norm" - var/bot_amt = 10 - var/spawn_delay = 600 - var/turn_on = 0 - var/auto_spawn = 1 - proc - warpbots() - - - New() - ..() - var/datum/effect/effect/system/smoke_spread/smoke = new /datum/effect/effect/system/smoke_spread() - smoke.set_up(5, 0, src.loc) - smoke.start() - visible_message("The [src] warps in!") - playsound(src.loc, 'sound/effects/EMPulse.ogg', 25, 1) - - warpbots() - icon_state = "def_radar" - visible_message("The [src] turns on!") - while(bot_amt > 0) - bot_amt-- - switch(bot_type) - if("norm") - new /mob/living/simple_mob/hostile/hivebot(get_turf(src)) - if("range") - new /mob/living/simple_mob/hostile/hivebot/range(get_turf(src)) - if("rapid") - new /mob/living/simple_mob/hostile/hivebot/range/rapid(get_turf(src)) - spawn(100) - qdel(src) - return - - - Life() - ..() - if(stat == 0) - if(prob(2))//Might be a bit low, will mess with it likely - warpbots() - -/obj/item/projectile/bullet/hivebot - damage = 10 - damage_type = BRUTE - -#undef LASERS_TO_KILL \ No newline at end of file diff --git a/code/modules/mob/living/simple_animal/aliens/mimic.dm b/code/modules/mob/living/simple_animal/aliens/mimic.dm deleted file mode 100644 index da254315be1..00000000000 --- a/code/modules/mob/living/simple_animal/aliens/mimic.dm +++ /dev/null @@ -1,207 +0,0 @@ -// -// Abstract Class -// - -/mob/living/simple_mob/hostile/mimic - name = "crate" - desc = "A rectangular steel crate." - icon = 'icons/obj/storage.dmi' - icon_state = "crate" - icon_living = "crate" - - faction = "mimic" - intelligence_level = SA_ANIMAL - - maxHealth = 250 - health = 250 - speed = 4 - move_to_delay = 8 - - response_help = "touches" - response_disarm = "pushes" - response_harm = "hits" - - harm_intent_damage = 5 - melee_damage_lower = 8 - melee_damage_upper = 12 - attacktext = list("attacked") - attack_sound = 'sound/weapons/bite.ogg' - - min_oxy = 0 - max_oxy = 0 - min_tox = 0 - max_tox = 0 - min_co2 = 0 - max_co2 = 0 - min_n2 = 0 - max_n2 = 0 - minbodytemp = 0 - - meat_type = /obj/item/weapon/reagent_containers/food/snacks/carpmeat - - showvoreprefs = 0 //VOREStation Edit - Hides mechanical vore prefs for mimics. You can't see their gaping maws when they're just sitting idle. - -/mob/living/simple_mob/hostile/mimic/set_target() - . = ..() - if(.) - audible_emote("growls at [.]") - -/mob/living/simple_mob/hostile/mimic/death() - ..() - qdel(src) - -/mob/living/simple_mob/hostile/mimic/will_show_tooltip() - return FALSE - - -// -// Crate Mimic -// - -// Aggro when you try to open them. Will also pickup loot when spawns and drop it when dies. -/mob/living/simple_mob/hostile/mimic/crate - - attacktext = list("bitten") - - stop_automated_movement = 1 - wander = 0 - var/attempt_open = 0 - -// Pickup loot -/mob/living/simple_animal/hostile/mimic/crate/Initialize() - . = ..() - for(var/obj/item/I in loc) - I.forceMove(src) - -/mob/living/simple_mob/hostile/mimic/crate/DestroySurroundings() - ..() - if(prob(90)) - icon_state = "[initial(icon_state)]open" - else - icon_state = initial(icon_state) - -/mob/living/simple_mob/hostile/mimic/crate/ListTargets() - if(attempt_open) - return ..() - else - return ..(1) - -/mob/living/simple_mob/hostile/mimic/crate/set_target() - . = ..() - if(.) - trigger() - -/mob/living/simple_mob/hostile/mimic/crate/PunchTarget() - . = ..() - if(.) - icon_state = initial(icon_state) - -/mob/living/simple_mob/hostile/mimic/crate/proc/trigger() - if(!attempt_open) - visible_message("[src] starts to move!") - attempt_open = 1 - -/mob/living/simple_mob/hostile/mimic/crate/adjustBruteLoss(var/damage) - trigger() - ..(damage) - -/mob/living/simple_mob/hostile/mimic/crate/LoseTarget() - ..() - icon_state = initial(icon_state) - -/mob/living/simple_mob/hostile/mimic/crate/LostTarget() - ..() - icon_state = initial(icon_state) - -/mob/living/simple_mob/hostile/mimic/crate/death() - var/obj/structure/closet/crate/C = new(get_turf(src)) - // Put loot in crate - for(var/obj/O in src) - if(isbelly(O)) //VOREStation edit - continue - O.forceMove(C) - ..() - -/mob/living/simple_mob/hostile/mimic/crate/PunchTarget() - . =..() - var/mob/living/L = . - if(istype(L)) - if(prob(15)) - L.Weaken(2) - L.visible_message("\the [src] knocks down \the [L]!") - -// -// Copy Mimic -// - -var/global/list/protected_objects = list(/obj/structure/table, /obj/structure/cable, /obj/structure/window, /obj/item/projectile/animate) - -/mob/living/simple_mob/hostile/mimic/copy - - health = 100 - maxHealth = 100 - var/mob/living/creator = null // the creator - var/destroy_objects = 0 - var/knockdown_people = 0 - -/mob/living/simple_mob/hostile/mimic/copy/New(loc, var/obj/copy, var/mob/living/creator) - ..(loc) - CopyObject(copy, creator) - -/mob/living/simple_mob/hostile/mimic/copy/death() - - for(var/atom/movable/M in src) - if(isbelly(M)) //VOREStation edit - continue - M.forceMove(get_turf(src)) - ..() - -/mob/living/simple_mob/hostile/mimic/copy/ListTargets() - // Return a list of targets that isn't the creator - . = ..() - return . - creator - -/mob/living/simple_mob/hostile/mimic/copy/proc/CopyObject(var/obj/O, var/mob/living/creator) - - if((istype(O, /obj/item) || istype(O, /obj/structure)) && !is_type_in_list(O, protected_objects)) - - O.forceMove(src) - name = O.name - desc = O.desc - icon = O.icon - icon_state = O.icon_state - icon_living = icon_state - - if(istype(O, /obj/structure)) - health = (anchored * 50) + 50 - destroy_objects = 1 - if(O.density && O.anchored) - knockdown_people = 1 - melee_damage_lower *= 2 - melee_damage_upper *= 2 - else if(istype(O, /obj/item)) - var/obj/item/I = O - health = 15 * I.w_class - melee_damage_lower = 2 + I.force - melee_damage_upper = 2 + I.force - move_to_delay = 2 * I.w_class - - maxHealth = health - if(creator) - src.creator = creator - faction = "\ref[creator]" // very unique - return 1 - return - -/mob/living/simple_mob/hostile/mimic/copy/DestroySurroundings() - if(destroy_objects) - ..() - -/mob/living/simple_mob/hostile/mimic/copy/PunchTarget() - . =..() - if(knockdown_people) - var/mob/living/L = . - if(istype(L)) - if(prob(15)) - L.Weaken(1) - L.visible_message("\the [src] knocks down \the [L]!") diff --git a/code/modules/mob/living/simple_animal/aliens/shade.dm b/code/modules/mob/living/simple_animal/aliens/shade.dm deleted file mode 100644 index 000061f0f82..00000000000 --- a/code/modules/mob/living/simple_animal/aliens/shade.dm +++ /dev/null @@ -1,61 +0,0 @@ -/mob/living/simple_mob/shade - name = "Shade" - real_name = "Shade" - desc = "A bound spirit" - icon = 'icons/mob/mob.dmi' - icon_state = "shade" - icon_living = "shade" - icon_dead = "shade_dead" - - faction = "cult" - intelligence_level = SA_HUMANOID - - maxHealth = 50 - health = 50 - speed = -1 - - response_help = "puts their hand through" - response_disarm = "flails at" - response_harm = "punches" - - melee_damage_lower = 5 - melee_damage_upper = 15 - attack_armor_pen = 100 //It's a ghost/horror from beyond, I ain't gotta explain 100 AP - attacktext = list("drained the life from") - - minbodytemp = 0 - maxbodytemp = 4000 - min_oxy = 0 - max_co2 = 0 - max_tox = 0 - - stop_automated_movement = 1 - wander = 0 - status_flags = 0 - - speak_chance = 5 - universal_speak = 1 - speak_emote = list("hisses") - emote_hear = list("wails","screeches") - - loot_list = list(/obj/item/weapon/ectoplasm = 100) - -/mob/living/simple_mob/shade/cultify() - return - -/mob/living/simple_mob/shade/attackby(var/obj/item/O as obj, var/mob/user as mob) - if(istype(O, /obj/item/device/soulstone)) - var/obj/item/device/soulstone/S = O; - S.transfer_soul("SHADE", src, user) - return - ..() - -/mob/living/simple_mob/shade/death() - ..() - for(var/mob/M in viewers(src, null)) - if((M.client && !( M.blinded ))) - M.show_message("[src] lets out a contented sigh as their form unwinds.") - - ghostize() - qdel(src) - return diff --git a/code/modules/mob/living/simple_animal/aliens/statue.dm b/code/modules/mob/living/simple_animal/aliens/statue.dm deleted file mode 100644 index 0dc3a448682..00000000000 --- a/code/modules/mob/living/simple_animal/aliens/statue.dm +++ /dev/null @@ -1,457 +0,0 @@ -// A mob which only moves when it isn't being watched by living beings. -//Weeping angels/SCP-173 hype -//Horrible shitcoding and stolen code adaptations below. You have been warned. - -/mob/living/simple_mob/hostile/statue - name = "statue" // matches the name of the statue with the flesh-to-stone spell - desc = "An incredibly lifelike marble carving. Its eyes seems to follow you..." // same as an ordinary statue with the added "eye following you" description - icon = 'icons/obj/statue.dmi' - tt_desc = "angelum weepicus" - icon_state = "human_male" - icon_living = "human_male" - icon_dead = "human_male" - intelligence_level = SA_HUMANOID - stop_automated_movement = 1 - var/annoyance = 30 //stop staring you creep - var/respond = 1 - var/banishable = 0 - faction = "statue" - mob_size = MOB_HUGE - response_help = "touches" - response_disarm = "pushes" - environment_smash = 2 - can_be_antagged = 1 - speed = -1 - maxHealth = 3000 - health = 3000 - status_flags = CANPUSH -// investigates = 1 - a_intent = I_HURT - density = 1 - mob_bump_flag = HEAVY - mob_push_flags = ~HEAVY - mob_swap_flags = ~HEAVY - harm_intent_damage = 60 - melee_damage_lower = 50 - melee_damage_upper = 70 - attacktext = "clawed" - attack_sound = 'sound/hallucinations/growl1.ogg' - - min_oxy = 0 - max_oxy = 0 - min_tox = 0 - max_tox = 0 - min_co2 = 0 - max_co2 = 0 - min_n2 = 0 - max_n2 = 0 - minbodytemp = 0 - maxbodytemp = 9000 - run_at_them = 0 - - move_to_delay = 0 // Very fast - - animate_movement = NO_STEPS // Do not animate movement, you jump around as you're a scary statue. - - see_in_dark = 13 - view_range = 35 //So it can run at the victim when out of the view - - melee_miss_chance = 0 - - armor = list( - "melee" = 30, - "bullet" = 60, - "laser" = 80, - "energy" = 30, - "bomb" = 30, - "bio" = 100, - "rad" = 100) - - resistance = 20 - - see_invisible = SEE_INVISIBLE_NOLIGHTING - sight = SEE_SELF|SEE_MOBS|SEE_OBJS|SEE_TURFS - var/last_hit = 0 - var/cannot_be_seen = 1 - var/mob/living/creator = null - var/drilled = FALSE - - -// No movement while seen code. - -/mob/living/simple_mob/hostile/statue/New(loc) - ..() - // Give spells - add_spell(new/spell/aoe_turf/flicker_lights) - add_spell(new/spell/aoe_turf/blindness) - add_spell(new/spell/aoe_turf/shatter) - -/mob/living/simple_mob/hostile/statue/DestroySurroundings() - if(can_be_seen(get_turf(loc))) - if(client) - to_chat(src, "You cannot move, there are eyes on you!") - return 0 - return ..() - -/mob/living/simple_mob/hostile/statue/attackby(var/obj/item/O as obj, var/mob/user as mob) //banishing the statue is a risky job - if(istype(O, /obj/item/weapon/nullrod)) - visible_message("[user] tries to banish [src] with [O]!") - if(do_after(user, 15, src)) - if(banishable) - visible_message("[src] crumbles into dust!") - gib() - else - visible_message("[src] is too strong to be banished!") - Paralyse(rand(8,15)) - if(istype(O, /obj/item/weapon/pickaxe) || istype(O, /obj/item/weapon/pickaxe/plasmacutter) && !drilled) - drilled = TRUE - resistance = 0 - spawn(300) - drilled = FALSE - resistance = initial(resistance) - ..() - -/mob/living/simple_mob/hostile/statue/death() - var/chunks_to_spawn = rand(2,5) - for(var/I = 1 to chunks_to_spawn) - new /obj/item/stack/material/marble(get_turf(loc)) - new /obj/item/cursed_marble(get_turf(loc)) - ..() - -/mob/living/simple_mob/hostile/statue/Move(turf/NewLoc) - if(can_be_seen(NewLoc)) - if(client) - to_chat(src, "You cannot move, there are eyes on you!") - return 0 - return ..() - -/mob/living/simple_mob/hostile/statue/Life() - ..() - handle_target() - handleAnnoyance() - if(target_mob) //if there's a victim, statue will use its powers - if((annoyance + 4) < 800) - annoyance += 4 - if(drilled && (annoyance + 4) < 800) //Being hit with a drill makes them weaker, and angrier. - annoyance += 4 - else if ((annoyance - 2) > 0) - annoyance -= 2 - -/mob/living/simple_mob/hostile/statue/proc/handle_target() - if(target_mob) // If we have a target and we're AI controlled - var/mob/watching = can_be_seen() - // If they're not our target - if(watching && (watching != target_mob)) - // This one is closer. - if(get_dist(watching, src) > get_dist(target_mob, src)) - LoseTarget() - target_mob = watching - - -/mob/living/simple_mob/hostile/statue/proc/handleAnnoyance() - if(respond) //so it won't blind people 24/7 - respond = 0 - if (annoyance > 30) - AI_blind() - annoyance -= 30 - if (prob(30) && annoyance > 30) - var/turf/T = get_turf(loc) - if(T.get_lumcount() * 10 > 1.5) - AI_flash() - annoyance -= 30 - spawn(20) - respond = 1 - - -/mob/living/simple_mob/hostile/statue/proc/AI_blind() - for(var/mob/living/L in oviewers(12, src)) //the range is so big, because it tries to keep out of sight and can't reengage if you get too far - if (prob(70)) - if(ishuman(L)) - var/mob/living/carbon/human/H = L - if (H.species == "Diona" || H.species == "Promethean" || H == creator)// can't blink and organic - return - to_chat(L, pick("Your eyes feel very heavy.", "You blink suddenly!", "Your eyes close involuntarily!")) - L.Blind(2) - return - -/mob/living/simple_mob/hostile/statue/proc/AI_flash() - if (prob(60)) - visible_message("The statue slowly points at the light.") - for(var/obj/machinery/light/L in oview(12, src)) - L.flicker() - return - - -/mob/living/simple_mob/hostile/statue/proc/AI_mirrorshmash() - for(var/obj/structure/mirror/M in oview(4, src)) - if ((!M.shattered )||(!M.glass)) - visible_message("The statue slowly points at the mirror!") - sleep(5) - M.shatter() - return - - - -/mob/living/simple_mob/hostile/statue/AttackTarget() - if(can_be_seen(get_turf(loc))) - if(client) - to_chat(src, "You cannot attack, there are eyes on you!") - return - else - spawn(3) //a small delay - ..() - - - -/mob/living/simple_mob/hostile/statue/DoPunch(var/atom/A) //had to redo that, since it's supposed to target only head and upper body - if(!Adjacent(A)) // They could've moved in the meantime. - return FALSE - - var/damage_to_do = rand(melee_damage_lower, melee_damage_upper) - - for(var/datum/modifier/M in modifiers) - if(!isnull(M.outgoing_melee_damage_percent)) - damage_to_do *= M.outgoing_melee_damage_percent - - // SA attacks can be blocked with shields. - if(ishuman(A)) - var/mob/living/carbon/human/H = A - H.adjustBruteLossByPart(damage_to_do*0.9, pick(BP_HEAD, BP_TORSO)) - playsound(src, attack_sound, 75, 1) - - else if(A.attack_generic(src, damage_to_do, pick(attacktext), attack_armor_type, attack_armor_pen, attack_sharp, attack_edge) && attack_sound) - playsound(src, attack_sound, 75, 1) - - return TRUE - - - - - -/mob/living/simple_mob/hostile/statue/face_atom() - if(!can_be_seen(get_turf(loc))) - ..() - -/mob/living/simple_mob/hostile/statue/proc/can_be_seen(turf/destination) - if(!cannot_be_seen) - return null - - var/turf/T = get_turf(loc) -/* if(T && destination && T.lighting_overlay) - if(T.get_lumcount() * 10 < 0.9 && destination.get_lumcount() * 10 < 0.9) // No one can see us in the darkness, right? - return null - if(T == destination) - destination = null*/ - - // loop for viewers. - var/list/check_list = list(src) - if(destination) - check_list += destination -//&& (M.see_in_dark > 5) - // This loop will, at most, loop twice. - for(var/atom/check in check_list) - for(var/mob/living/M in viewers(world.view + 1, check) - src) - if(M != creator) - if(!(M.sdisabilities & BLIND) || !(M.blinded)) //if not blinded - if(M.has_vision() && !M.isSynthetic()) //is able to see the statue - if(T && destination && T.lighting_overlay) // Check for darkness - if(T.get_lumcount() * 10 < 0.9 && destination.get_lumcount() * 10 < 0.9) // No one can see us in the darkness, right? WRONG! Damn cats. - if(M.see_in_dark > 5) - return M - return null - return M - for(var/obj/mecha/M in view(world.view + 1, check)) //assuming if you can see them they can see you - if(M.occupant && M.occupant.client && M.occupant != creator) - if(M.occupant.has_vision() && !M.occupant.isSynthetic()) - return M.occupant - for(var/obj/structure/mirror/M in view(3, check)) //Weeping angels hate mirrors. Probably because they're ugly af - if ((!M.shattered )||(!M.glass)) - annoyance += 3 - if (prob(5) && (ai_inactive == 0)) - AI_mirrorshmash() - annoyance -= 50 - return src //if it sees the mirror, it sees itself, right? - return null - -// Cannot talk - -/mob/living/simple_mob/hostile/statue/say() - return 0 - -// Turn to dust when gibbed - -/mob/living/simple_mob/hostile/statue/gib() - dust() - - -// Stop attacking clientless mobs - -/mob/living/simple_mob/hostile/statue/proc/CanAttack(atom/the_target) //ignore clientless mobs - if(isliving(the_target)) - var/mob/living/L = the_target - if(!L.client && !L.ckey) - return 0 - return ..() - -// Statue powers - -// Flicker lights -/spell/aoe_turf/flicker_lights - name = "Flicker Lights" - desc = "You will trigger a large amount of lights around you to flicker." - spell_flags = 0 - charge_max = 400 - range = 10 - -/spell/aoe_turf/flicker_lights/cast(list/targets, mob/user = usr) - for(var/turf/T in targets) - for(var/obj/machinery/light/L in T) - L.flicker() - return - -//Blind AOE -/spell/aoe_turf/blindness - name = "Blindness" - desc = "Your prey will be momentarily blind for you to advance on them." - - message = "You glare your eyes." - charge_max = 250 - spell_flags = 0 - range = 10 - -/spell/aoe_turf/blindness/cast(list/targets, mob/living/simple_mob/hostile/statue/user = usr) - for(var/mob/living/L in targets) - if(L == user || L == user.creator) - continue - var/turf/T = get_turf(L.loc) - if(T && T in targets) - L.Blind(4) - return - - -/spell/aoe_turf/shatter - name = "Shatter mirrors!" - desc = "That handsome devil has to wait. You have people to make into corpses." - - message = "You glare your eyes." - charge_max = 300 - spell_flags = 0 - range = 8 - - - - -/spell/aoe_turf/shatter/cast(list/targets, mob/user = usr) - spawn(50) - for(var/obj/structure/mirror/M in view(5, src)) - if ((!M.shattered )||(!M.glass)) - M.shatter() - return - - - -/mob/living/simple_mob/hostile/statue/verb/toggle_darkness() - set name = "Toggle Darkness" - set desc = "You ARE the darkness." - set category = "Abilities" - seedarkness = !seedarkness - plane_holder.set_vis(VIS_FULLBRIGHT, !seedarkness) - to_chat(src,"You [seedarkness ? "now" : "no longer"] see darkness.") - - - -/mob/living/simple_mob/hostile/statue/restrained() - . = ..() - if(can_be_seen(loc)) - return 1 - - -/mob/living/simple_mob/hostile/statue/ListTargets(dist = view_range) - var/list/L = mobs_in_xray_view(dist, src) - - for(var/obj/mecha/M in mechas_list) - if ((M.z == src.z) && (get_dist(src, M) <= dist) && (isInSight(src,M))) - L += M - if(creator) - L -= creator - - return L - - - -/obj/item/cursed_marble //slime cube copypaste - name = "marble slab" - desc = "A peculiar slab of marble, radiating with dark energy." - icon = 'icons/obj/stacks.dmi' - icon_state = "sheet-marble" - description_info = "Summons the Statue - a mysterious powerful creature, that can move only when unsurveyed by living eyes." - var/searching = 0 - -/obj/item/cursed_marble/attack_self(mob/user as mob) - if(!searching) - to_chat(user, "You rub the slab in hopes a wandering spirit wishes to inhabit it. [src] starts to sparkle!") - icon_state = "sheet-snowbrick" - searching = 1 - request_player(user) - spawn(60 SECONDS) - reset_search() - - -/obj/item/cursed_marble/proc/request_player(var/mob/user) - for(var/mob/observer/dead/O in player_list) - if(!O.MayRespawn()) - continue - if(O.client) - if(O.client.prefs.be_special & BE_ALIEN) - question(O.client, user) - -/obj/item/cursed_marble/proc/question(var/client/C, var/mob/user) - spawn(0) - if(!C) - return - var/response = alert(C, "Someone is requesting a soul for the statue. Would you like to play as one?", "Statue request", "Yes", "No", "Never for this round") - if(response == "Yes") - response = alert(C, "Are you sure you want to play as the statue?", "Statue request", "Yes", "No") - if(!C || 2 == searching) - return //handle logouts that happen whilst the alert is waiting for a response, and responses issued after a brain has been located. - if(response == "Yes") - transfer_personality(C.mob, user) - else if(response == "Never for this round") - C.prefs.be_special ^= BE_ALIEN - -/obj/item/cursed_marble/proc/reset_search() //We give the players sixty seconds to decide, then reset the timer. - icon_state = "sheet-marble" - if(searching == 1) - searching = 0 - var/turf/T = get_turf_or_move(src.loc) - for (var/mob/M in viewers(T)) - M.show_message("[src] fades. Maybe it will spark another time.") - -/obj/item/cursed_marble/proc/transfer_personality(var/mob/candidate, var/mob/user) - announce_ghost_joinleave(candidate, 0, "They are a statue now.") - src.searching = 2 - var/mob/living/simple_mob/hostile/statue/S = new(get_turf(src)) - S.client = candidate.client - if(user) - S.creator = user - to_chat(S, "You are \a [S], brought into existence on [station_name()] by [user]! Obey all their orders.") - S.mind.assigned_role = "The Statue" - visible_message("The slab suddenly takes the shape of a humanoid!") - qdel(src) - - -/obj/item/cursed_marble/verb/crush() //if there's no ghosts to respond to your request/you want to use the statue for malicious stuff - set name = "Crush the marble slab" - set category = "Object" - set src in usr - summonmob(usr) - -/obj/item/cursed_marble/proc/summonmob(mob/user as mob) - if(searching == 0) - var/choice = alert(user, "Are you sure you want to crush the marble? (this will spawn a clientless version of the statue, hostile to everyone, but you)", "Crush it?", "Yes", "No") - if(choice) - if(choice == "Yes") - var/mob/living/simple_mob/hostile/statue/S = new /mob/living/simple_mob/hostile/statue(get_turf(user)) - visible_message("The slab suddenly takes the shape of a humanoid!") - S.creator = user - qdel(src) \ No newline at end of file diff --git a/code/modules/mob/living/simple_animal/animals/bat.dm b/code/modules/mob/living/simple_animal/animals/bat.dm deleted file mode 100644 index 31588143531..00000000000 --- a/code/modules/mob/living/simple_animal/animals/bat.dm +++ /dev/null @@ -1,85 +0,0 @@ -/mob/living/simple_mob/hostile/scarybat - name = "space bats" - desc = "A swarm of cute little blood sucking bats that looks pretty upset." - tt_desc = "N Bestia gregaria" //Nispean swarm bats, because of course Nisp has swarm bats - icon = 'icons/mob/bats.dmi' - icon_state = "bat" - icon_living = "bat" - icon_dead = "bat_dead" - icon_gib = "bat_dead" - - faction = "scarybat" - intelligence_level = SA_ANIMAL - - maxHealth = 20 - health = 20 - turns_per_move = 3 - speed = 4 - - response_help = "pets the" - response_disarm = "gently pushes aside the" - response_harm = "hits the" - - harm_intent_damage = 10 - - melee_damage_lower = 5 - melee_damage_upper = 5 - attack_sharp = 1 - - environment_smash = 1 - - attacktext = list("bites") - attack_sound = 'sound/weapons/bite.ogg' - - min_oxy = 0 - max_oxy = 0 - min_tox = 0 - max_tox = 0 - min_co2 = 0 - max_co2 = 0 - min_n2 = 0 - max_n2 = 0 - minbodytemp = 0 - - has_langs = list("Mouse") - - meat_type = /obj/item/weapon/reagent_containers/food/snacks/meat - - var/mob/living/owner - -/mob/living/simple_mob/hostile/scarybat/New(loc, mob/living/L as mob) - ..() - if(istype(L)) - owner = L - -/mob/living/simple_mob/hostile/scarybat/Process_Spacemove(var/check_drift = 0) - return ..() - -/mob/living/simple_mob/hostile/scarybat/set_target() - . = ..() - if(.) - emote("flutters towards [.]") - -/mob/living/simple_mob/hostile/scarybat/ListTargets() - . = ..() - if(owner) - return . - owner - -/mob/living/simple_mob/hostile/scarybat/PunchTarget() - . =..() - var/mob/living/L = . - if(istype(L)) - if(prob(15)) - L.Stun(1) - L.visible_message("\the [src] scares \the [L]!") - -/mob/living/simple_mob/hostile/scarybat/cult - faction = "cult" - supernatural = 1 - -/mob/living/simple_mob/hostile/scarybat/cult/cultify() - return - -/mob/living/simple_mob/hostile/scarybat/cult/Life() - ..() - check_horde() diff --git a/code/modules/mob/living/simple_animal/animals/bear.dm b/code/modules/mob/living/simple_animal/animals/bear.dm deleted file mode 100644 index dfd6a56cab6..00000000000 --- a/code/modules/mob/living/simple_animal/animals/bear.dm +++ /dev/null @@ -1,141 +0,0 @@ -//Space bears! -/mob/living/simple_mob/hostile/bear - name = "space bear" - desc = "A product of Space Russia?" - tt_desc = "U Ursinae aetherius" //...bearspace? Maybe. - icon_state = "bear" - icon_living = "bear" - icon_dead = "bear_dead" - icon_gib = "bear_gib" - - faction = "russian" - intelligence_level = SA_ANIMAL - cooperative = 1 - - maxHealth = 120 - health = 120 - turns_per_move = 5 - see_in_dark = 6 - stop_when_pulled = 0 - - response_help = "pets" - response_disarm = "gently pushes aside" - response_harm = "pokes" - - melee_damage_lower = 20 - melee_damage_upper = 30 - attack_sharp = 1 - attack_edge = 1 - - //Space bears aren't affected by atmos. - min_oxy = 0 - max_oxy = 0 - min_tox = 0 - max_tox = 0 - min_co2 = 0 - max_co2 = 0 - min_n2 = 0 - max_n2 = 0 - minbodytemp = 0 - - speak_chance = 1 - speak = list("RAWR!","Rawr!","GRR!","Growl!") - speak_emote = list("growls", "roars") - emote_hear = list("rawrs","grumbles","grawls") - emote_see = list("stares ferociously", "stomps") - - meat_type = /obj/item/weapon/reagent_containers/food/snacks/bearmeat - -// var/stance_step = 0 - -/mob/living/simple_mob/hostile/bear/handle_stance(var/new_stance) - // Below was a bunch of code that made this specific mob be 'alert' and will hurt you when it gets closer. - // It's commented out because it made infinite loops and the AI is going to be moved/rewritten sometime soon (famous last words) - // and it would be better if this 'alert before attacking' behaviour was on the parent instead of a specific type of mob anyways. - - // Instead we're just gonna get angry if we're dying. - ..(new_stance) - if(stance == STANCE_ATTACK || stance == STANCE_ATTACKING) - if((health / maxHealth) <= 0.5) // At half health, and fighting someone currently. - add_modifier(/datum/modifier/berserk, 30 SECONDS) - - /* - switch(stance) - if(STANCE_TIRED) - stop_automated_movement = 1 - stance_step++ - if(stance_step >= 10) //rests for 10 ticks - if(target_mob && target_mob in ListTargets(10)) - handle_stance(STANCE_ATTACK) //If the mob he was chasing is still nearby, resume the attack, otherwise go idle. - else - handle_stance(STANCE_IDLE) - - if(STANCE_ALERT) - stop_automated_movement = 1 - var/found_mob = 0 - if(target_mob && target_mob in ListTargets(10)) - if(!(SA_attackable(target_mob))) - stance_step = max(0, stance_step) //If we have not seen a mob in a while, the stance_step will be negative, we need to reset it to 0 as soon as we see a mob again. - stance_step++ - found_mob = 1 - src.set_dir(get_dir(src,target_mob)) //Keep staring at the mob - - if(stance_step in list(1,4,7)) //every 3 ticks - var/action = pick( list( "growls at [target_mob]", "stares angrily at [target_mob]", "prepares to attack [target_mob]", "closely watches [target_mob]" ) ) - if(action) - custom_emote(1,action) - if(!found_mob) - stance_step-- - - if(stance_step <= -20) //If we have not found a mob for 20-ish ticks, revert to idle mode - handle_stance(STANCE_IDLE) - if(stance_step >= 7) //If we have been staring at a mob for 7 ticks, - handle_stance(STANCE_ATTACK) - - if(STANCE_ATTACKING) - if(stance_step >= 20) //attacks for 20 ticks, then it gets tired and needs to rest - custom_emote(1, "is worn out and needs to rest." ) - handle_stance(STANCE_TIRED) - stance_step = 0 - walk(src, 0) //This stops the bear's walking - return - else - ..() - */ - -/mob/living/simple_mob/hostile/bear/update_icons() - ..() - if(!stat) - if(loc && istype(loc,/turf/space)) - icon_state = "bear" - else - icon_state = "bearfloor" - -/mob/living/simple_mob/hostile/bear/Process_Spacemove(var/check_drift = 0) - return - -/mob/living/simple_mob/hostile/bear/FindTarget() - . = ..() - if(.) - custom_emote(1,"stares alertly at [.]") -// handle_stance(STANCE_ALERT) - -/mob/living/simple_mob/hostile/bear/PunchTarget() - if(!Adjacent(target_mob)) - return - custom_emote(1, pick( list("slashes at [target_mob]", "bites [target_mob]") ) ) - - var/damage = rand(melee_damage_lower, melee_damage_upper) - - if(ishuman(target_mob)) - var/mob/living/carbon/human/H = target_mob - var/dam_zone = pick(BP_TORSO, BP_L_HAND, BP_R_HAND, BP_L_LEG, BP_R_LEG) - var/obj/item/organ/external/affecting = H.get_organ(ran_zone(dam_zone)) - H.apply_damage(damage, BRUTE, affecting, H.run_armor_check(affecting, "melee"), H.get_armor_soak(affecting, "melee"), sharp=1, edge=1) - return H - else if(isliving(target_mob)) - var/mob/living/L = target_mob - L.adjustBruteLoss(damage) - return L - else - ..() diff --git a/code/modules/mob/living/simple_animal/animals/birds_vr.dm b/code/modules/mob/living/simple_animal/animals/birds_vr.dm deleted file mode 100644 index 0331e4931b7..00000000000 --- a/code/modules/mob/living/simple_animal/animals/birds_vr.dm +++ /dev/null @@ -1,151 +0,0 @@ -//Why are these a subclass of cat? -/mob/living/simple_mob/bird - name = "parrot" - desc = "A domesticated bird. Tweet tweet!" - icon = 'icons/mob/birds.dmi' - icon_state = "parrot-flap" - item_state = null - icon_living = "parrot-flap" - icon_dead = "parrot-dead" - - pass_flags = PASSTABLE - - speak_chance = 5 - speak = list("Chirp!","Caw!","Screech!","Squawk!") - speak_emote = list("chirps", "caws") - emote_hear = list("chirps","caws") - emote_see = list("shakes their head", "ruffles their feathers") - - holder_type = /obj/item/weapon/holder/bird - -/mob/living/simple_mob/bird/kea - name = "Kea" - icon_state = "kea-flap" - icon_living = "kea-flap" - icon_dead = "kea-dead" - -/mob/living/simple_mob/bird/eclectus - name = "Eclectus" - icon_state = "eclectus-flap" - icon_living = "eclectus-flap" - icon_dead = "eclectus-dead" - -/mob/living/simple_mob/bird/eclectusf - name = "Eclectus" - icon_state = "eclectusf-flap" - icon_living = "eclectusf-flap" - icon_dead = "eclectusf-dead" - -/mob/living/simple_mob/bird/greybird - name = "Grey Bird" - icon_state = "agrey-flap" - icon_living = "agrey-flap" - icon_dead = "agrey-dead" - -/mob/living/simple_mob/bird/blue_caique - name = "Blue Caique " - icon_state = "bcaique-flap" - icon_living = "bcaique-flap" - icon_dead = "bcaique-dead" - -/mob/living/simple_mob/bird/white_caique - name = "White caique" - icon_state = "wcaique-flap" - icon_living = "wcaique-flap" - icon_dead = "wcaique-dead" - -/mob/living/simple_mob/bird/green_budgerigar - name = "Green Budgerigar" - icon_state = "gbudge-flap" - icon_living = "gbudge-flap" - icon_dead = "gbudge-dead" - -/mob/living/simple_mob/bird/blue_Budgerigar - name = "Blue Budgerigar" - icon_state = "bbudge-flap" - icon_living = "bbudge-flap" - icon_dead = "bbudge-dead" - -/mob/living/simple_mob/bird/bluegreen_Budgerigar - name = "Bluegreen Budgerigar" - icon_state = "bgbudge-flap" - icon_living = "bgbudge-flap" - icon_dead = "bgbudge-dead" - -/mob/living/simple_mob/bird/commonblackbird - name = "Black Bird" - icon_state = "commonblackbird" - icon_living = "commonblackbird" - icon_dead = "commonblackbird-dead" - -/mob/living/simple_mob/bird/azuretit - name = "Azure Tit" - icon_state = "azuretit" - icon_living = "azuretit" - icon_dead = "azuretit-dead" - -/mob/living/simple_mob/bird/europeanrobin - name = "European Robin" - icon_state = "europeanrobin" - icon_living = "europeanrobin" - icon_dead = "europeanrobin-dead" - -/mob/living/simple_mob/bird/goldcrest - name = "Goldcrest" - icon_state = "goldcrest" - icon_living = "goldcrest" - icon_dead = "goldcrest-dead" - -/mob/living/simple_mob/bird/ringneckdove - name = "Ringneck Dove" - icon_state = "ringneckdove" - icon_living = "ringneckdove" - icon_dead = "ringneckdove-dead" - -/mob/living/simple_mob/bird/cockatiel - name = "Cockatiel" - icon_state = "tiel-flap" - icon_living = "tiel-flap" - icon_dead = "tiel-dead" - -/mob/living/simple_mob/bird/white_cockatiel - name = "White Cockatiel" - icon_state = "wtiel-flap" - icon_living = "wtiel-flap" - icon_dead = "wtiel-dead" - -/mob/living/simple_mob/bird/yellowish_cockatiel - name = "Yellowish Cockatiel" - icon_state = "luttiel-flap" - icon_living = "luttiel-flap" - icon_dead = "luttiel-dead" - -/mob/living/simple_mob/bird/grey_cockatiel - name = "Grey Cockatiel" - icon_state = "blutiel-flap" - icon_living = "blutiel-flap" - icon_dead = "blutiel-dead" - -/mob/living/simple_mob/bird/too - name = "Too" - icon_state = "too-flap" - icon_living = "too-flap" - icon_dead = "too-dead" - -/mob/living/simple_mob/bird/hooded_too - name = "Utoo" - icon_state = "utoo-flap" - icon_living = "utoo-flap" - icon_dead = "utoo-dead" - -/mob/living/simple_mob/bird/pink_too - name = "Mtoo" - icon_state = "mtoo-flap" - icon_living = "mtoo-flap" - icon_dead = "mtoo-dead" - -/obj/item/weapon/holder/bird - name = "Bird" - desc = "It's a bird!" - icon_state = null - item_icons = null diff --git a/code/modules/mob/living/simple_animal/animals/carp.dm b/code/modules/mob/living/simple_animal/animals/carp.dm deleted file mode 100644 index d5419c84628..00000000000 --- a/code/modules/mob/living/simple_animal/animals/carp.dm +++ /dev/null @@ -1,93 +0,0 @@ -/mob/living/simple_mob/hostile/carp - name = "space carp" - desc = "A ferocious, fang-bearing creature that resembles a fish." - tt_desc = "U Cyprinus aetherius" //carpspace? maybe - icon_state = "carp" - icon_living = "carp" - icon_dead = "carp_dead" - icon_gib = "carp_gib" - - faction = "carp" - intelligence_level = SA_ANIMAL - hovering = TRUE - maxHealth = 25 - health = 25 - speed = 4 - turns_per_move = 5 - - response_help = "pets the" - response_disarm = "gently pushes aside the" - response_harm = "hits the" - - harm_intent_damage = 8 - melee_damage_lower = 15 - melee_damage_upper = 15 - attacktext = list("bitten") - attack_sound = 'sound/weapons/bite.ogg' - - //Space carp aren't affected by atmos. - min_oxy = 0 - max_oxy = 0 - min_tox = 0 - max_tox = 0 - min_co2 = 0 - max_co2 = 0 - min_n2 = 0 - max_n2 = 0 - minbodytemp = 0 - - meat_type = /obj/item/weapon/reagent_containers/food/snacks/carpmeat - -/mob/living/simple_mob/hostile/carp/large - name = "elder carp" - desc = "An older, more matured carp. Few survive to this age due to their aggressiveness." - icon = 'icons/mob/64x32.dmi' - icon_state = "shark" - icon_living = "shark" - icon_dead = "shark_dead" - turns_per_move = 2 - move_to_delay = 2 - mob_size = MOB_LARGE - - pixel_x = -16 - old_x = -16 - - health = 50 - maxHealth = 50 - - -/mob/living/simple_mob/hostile/carp/large/huge - name = "great white carp" - desc = "A very rare breed of carp- and a very aggressive one." - icon = 'icons/mob/64x64.dmi' - icon_dead = "megacarp_dead" - icon_living = "megacarp" - icon_state = "megacarp" - maxHealth = 230 - health = 230 - attack_same = 1 - speed = 1 - - meat_amount = 10 - - melee_damage_lower = 15 - melee_damage_upper = 25 - old_y = -16 - pixel_y = -16 - -/mob/living/simple_mob/hostile/carp/Process_Spacemove(var/check_drift = 0) - return 1 //No drifting in space for space carp! //original comments do not steal - -/mob/living/simple_mob/hostile/carp/set_target() - . = ..() - if(.) - custom_emote(1,"nashes at [.]") - -/mob/living/simple_mob/hostile/carp/PunchTarget() - . =..() - var/mob/living/L = . - if(istype(L)) - if(prob(15)) - L.Weaken(3) - L.visible_message("\the [src] knocks down \the [L]!") - diff --git a/code/modules/mob/living/simple_animal/animals/cat.dm b/code/modules/mob/living/simple_animal/animals/cat.dm deleted file mode 100644 index 140deb0b244..00000000000 --- a/code/modules/mob/living/simple_animal/animals/cat.dm +++ /dev/null @@ -1,193 +0,0 @@ -//Cat -/mob/living/simple_animal/cat - name = "cat" - desc = "A domesticated, feline pet. Has a tendency to adopt crewmembers." - tt_desc = "E Felis silvestris catus" - intelligence_level = SA_ANIMAL - icon_state = "cat2" - item_state = "cat2" - icon_living = "[initial(icon_state)]" - icon_dead = "[initial(icon_state)]_dead" - icon_rest = "[initial(icon_state)]_rest" - - investigates = 1 - specific_targets = 1 //Only targets with Found() - run_at_them = 0 //DOMESTICATED - view_range = 5 - - turns_per_move = 5 - see_in_dark = 6 - - response_help = "pets" - response_disarm = "gently pushes aside" - response_harm = "kicks" - - min_oxy = 16 //Require atleast 16kPA oxygen - minbodytemp = 223 //Below -50 Degrees Celcius - maxbodytemp = 323 //Above 50 Degrees Celcius - - holder_type = /obj/item/weapon/holder/cat - mob_size = MOB_SMALL - - has_langs = list("Cat") - speak_chance = 1 - speak = list("Meow!","Esp!","Purr!","HSSSSS") - speak_emote = list("purrs", "meows") - emote_hear = list("meows","mews") - emote_see = list("shakes their head", "shivers") - say_maybe_target = list("Meow?","Mew?","Mao?") - say_got_target = list("MEOW!","HSSSS!","REEER!") - - meat_amount = 1 - meat_type = /obj/item/weapon/reagent_containers/food/snacks/meat - - var/turns_since_scan = 0 - var/mob/flee_target - -/mob/living/simple_animal/cat/Life() - . = ..() - if(!.) return - - if(prob(2)) //spooky - var/mob/observer/dead/spook = locate() in range(src,5) - if(spook) - var/turf/T = spook.loc - var/list/visible = list() - for(var/obj/O in T.contents) - if(!O.invisibility && O.name) - visible += O - if(visible.len) - var/atom/A = pick(visible) - visible_emote("suddenly stops and stares at something unseen[istype(A) ? " near [A]":""].") - - handle_flee_target() - -/mob/living/simple_animal/cat/PunchTarget() - if(ismouse(target_mob)) - var/mob/living/simple_mob/animal/passive/mouse/mouse = target_mob - mouse.splat() - visible_emote(pick("bites \the [mouse]!","toys with \the [mouse].","chomps on \the [mouse]!")) - return mouse - else - ..() - -/mob/living/simple_animal/cat/Found(var/atom/found_atom) - if(ismouse(found_atom) && SA_attackable(found_atom)) - return found_atom - -/mob/living/simple_animal/cat/proc/handle_flee_target() - //see if we should stop fleeing - if (flee_target && !(flee_target in ListTargets(view_range))) - flee_target = null - GiveUpMoving() - - if (flee_target && !stat && !buckled) - if (resting) - lay_down() - if(prob(25)) say("HSSSSS") - stop_automated_movement = 1 - walk_away(src, flee_target, 7, 2) - -/mob/living/simple_animal/cat/react_to_attack(var/atom/A) - if(A == src) return - flee_target = A - turns_since_scan = 5 - -/mob/living/simple_animal/cat/ex_act() - . = ..() - react_to_attack(src.loc) - -//Basic friend AI -/mob/living/simple_animal/cat/fluff - var/mob/living/carbon/human/friend - var/befriend_job = null - var/friend_name = null - -/mob/living/simple_animal/cat/fluff/Life() - . = ..() - if(!. || ai_inactive || !friend) return - - var/friend_dist = get_dist(src,friend) - - if (friend_dist <= 4) - if(stance == STANCE_IDLE) - if(set_follow(friend)) - handle_stance(STANCE_FOLLOW) - - if (friend_dist <= 1) - if (friend.stat >= DEAD || friend.health <= config.health_threshold_softcrit) - if (prob((friend.stat < DEAD)? 50 : 15)) - var/verb = pick("meows", "mews", "mrowls") - audible_emote(pick("[verb] in distress.", "[verb] anxiously.")) - else - if (prob(5)) - visible_emote(pick("nuzzles [friend].", - "brushes against [friend].", - "rubs against [friend].", - "purrs.")) - else if (friend.health <= 50) - if (prob(10)) - var/verb = pick("meows", "mews", "mrowls") - audible_emote("[verb] anxiously.") - -/mob/living/simple_animal/cat/fluff/verb/become_friends() - set name = "Become Friends" - set category = "IC" - set src in view(1) - - if(!friend) - var/mob/living/carbon/human/H = usr - if(istype(H) && (!befriend_job || H.job == befriend_job) && (!friend_name || H.real_name == friend_name)) - friend = usr - . = 1 - else if(usr == friend) - . = 1 //already friends, but show success anyways - - if(.) - set_dir(get_dir(src, friend)) - visible_emote(pick("nuzzles [friend].", - "brushes against [friend].", - "rubs against [friend].", - "purrs.")) - else - usr << "[src] ignores you." - return - -//RUNTIME IS ALIVE! SQUEEEEEEEE~ -/mob/living/simple_animal/cat/fluff/Runtime - name = "Runtime" - desc = "Her fur has the look and feel of velvet, and her tail quivers occasionally." - tt_desc = "E Felis silvestris medicalis" //a hypoallergenic breed produced by NT for... medical purposes? Sure. - gender = FEMALE - icon_state = "cat" - item_state = "cat" - befriend_job = "Chief Medical Officer" - -/mob/living/simple_animal/cat/kitten - name = "kitten" - desc = "D'aaawwww" - icon_state = "kitten" - item_state = "kitten" - icon_living = "kitten" - icon_dead = "kitten_dead" - gender = NEUTER - -// Leaving this here for now. -/obj/item/weapon/holder/cat/fluff/bones - name = "Bones" - desc = "It's Bones! Meow." - gender = MALE - icon_state = "cat3" - -/mob/living/simple_animal/cat/fluff/bones - name = "Bones" - desc = "That's Bones the cat. He's a laid back, black cat. Meow." - gender = MALE - icon_state = "cat3" - item_state = "cat3" - holder_type = /obj/item/weapon/holder/cat/fluff/bones - friend_name = "Erstatz Vryroxes" - -/mob/living/simple_animal/cat/kitten/New() - gender = pick(MALE, FEMALE) - ..() diff --git a/code/modules/mob/living/simple_animal/animals/cat_vr.dm b/code/modules/mob/living/simple_animal/animals/cat_vr.dm deleted file mode 100644 index d4be475cefa..00000000000 --- a/code/modules/mob/living/simple_animal/animals/cat_vr.dm +++ /dev/null @@ -1,66 +0,0 @@ -/mob/living/simple_mob/cat/fluff/Runtime/init_vore() - ..() - var/obj/belly/B = vore_selected - B.name = "Stomach" - B.desc = "The slimy wet insides of Runtime! Not quite as clean as the cat on the outside." - - B.emote_lists[DM_HOLD] = list( - "Runtime's stomach kneads gently on you and you're fairly sure you can hear her start purring.", - "Most of what you can hear are slick noises, Runtime breathing, and distant purring.", - "Runtime seems perfectly happy to have you in there. She lays down for a moment to groom and squishes you against the walls.", - "The CMO's pet seems to have found a patient of her own, and is treating them with warm, wet kneading walls.", - "Runtime mostly just lazes about, and you're left to simmer in the hot, slick guts unharmed.", - "Runtime's master might let you out of this fleshy prison, eventually. Maybe. Hopefully?") - - B.emote_lists[DM_DIGEST] = list( - "Runtime's stomach is treating you rather like a mouse, kneading acids into you with vigor.", - "A thick dollop of bellyslime drips from above while the CMO's pet's gut works on churning you up.", - "Runtime seems to have decided you're food, based on the acrid air in her guts and the pooling fluids.", - "Runtime's stomach tries to claim you, kneading and pressing inwards again and again against your form.", - "Runtime flops onto their side for a minute, spilling acids over your form as you remain trapped in them.", - "The CMO's pet doesn't seem to think you're any different from any other meal. At least, their stomach doesn't.") - - B.digest_messages_prey = list( - "Runtime's stomach slowly melts your body away. Her stomach refuses to give up it's onslaught, continuing until you're nothing more than nutrients for her body to absorb.", - "After an agonizing amount of time, Runtime's stomach finally manages to claim you, melting you down and adding you to her stomach.", - "Runtime's stomach continues to slowly work away at your body before tightly squeezing around you once more, causing the remainder of your body to lose form and melt away into the digesting slop around you.", - "Runtime's slimy gut continues to constantly squeeze and knead away at your body, the bulge you create inside of her stomach growing smaller as time progresses before soon dissapearing completely as you melt away.", - "Runtime's belly lets off a soft groan as your body finally gives out, the cat's eyes growing heavy as it settles down to enjoy it's good meal.", - "Runtime purrs happily as you slowly slip away inside of her gut, your body's nutrients are then used to put a layer of padding on the now pudgy cat.", - "The acids inside of Runtime's stomach, aided by the constant motions of the smooth walls surrounding you finally manage to melt you away into nothing more mush. She curls up on the floor, slowly kneading the air as her stomach moves its contents — including you — deeper into her digestive system.", - "Your form begins to slowly soften and break apart, rounding out Runtime's swollen belly. The carnivorous cat rumbles and purrs happily at the feeling of such a filling meal.") - -// Ascian's Tactical Kitten -/obj/item/weapon/holder/cat/fluff/tabiranth - name = "Spirit" - desc = "A small, inquisitive feline, who constantly seems to investigate his surroundings." - gender = MALE - icon_state = "kitten" - w_class = ITEMSIZE_SMALL - -/mob/living/simple_mob/cat/fluff/tabiranth - name = "Spirit" - desc = "A small, inquisitive feline, who constantly seems to investigate his surroundings." - icon = 'icons/mob/custom_items_mob.dmi' - icon_state = "kitten" - item_state = "kitten" - icon_living = "kitten" - icon_dead = "kitten" //Teleports out - gender = MALE - holder_type = /obj/item/weapon/holder/cat/fluff/tabiranth - var/friend_name = "Ascian" - digestable = 0 - meat_amount = 0 - maxHealth = 50 - health = 50 - -//Emergency teleport - Until a spriter makes something better -/mob/living/simple_mob/cat/fluff/tabiranth/death(gibbed, deathmessage = "teleports away!") - overlays = list() - icon_state = "" - flick("kphaseout",src) - spawn(1 SECOND) - qdel(src) //Back from whence you came! - - . = ..(FALSE, deathmessage) - diff --git a/code/modules/mob/living/simple_animal/animals/corgi.dm b/code/modules/mob/living/simple_animal/animals/corgi.dm deleted file mode 100644 index 52d2268be8d..00000000000 --- a/code/modules/mob/living/simple_animal/animals/corgi.dm +++ /dev/null @@ -1,231 +0,0 @@ -//Corgi -/mob/living/simple_mob/corgi - name = "corgi" - real_name = "corgi" - desc = "It's a corgi." - tt_desc = "E Canis lupus familiaris" - intelligence_level = SA_ANIMAL - icon_state = "corgi" - icon_living = "corgi" - icon_dead = "corgi_dead" - - run_at_them = 0 - turns_per_move = 10 - - response_help = "pets" - response_disarm = "bops" - response_harm = "kicks" - - see_in_dark = 5 - mob_size = 8 - - has_langs = list("Dog") - speak_chance = 1 - speak = list("YAP", "Woof!", "Bark!", "AUUUUUU") - speak_emote = list("barks", "woofs") - emote_hear = list("barks", "woofs", "yaps","pants") - emote_see = list("shakes its head", "shivers") - - meat_amount = 3 - meat_type = /obj/item/weapon/reagent_containers/food/snacks/meat/corgi - - var/obj/item/inventory_head - var/obj/item/inventory_back - -//IAN! SQUEEEEEEEEE~ -/mob/living/simple_mob/corgi/Ian - name = "Ian" - real_name = "Ian" //Intended to hold the name without altering it. - gender = MALE - desc = "It's a corgi." - var/turns_since_scan = 0 - var/obj/movement_target - response_help = "pets" - response_disarm = "bops" - response_harm = "kicks" - -/mob/living/simple_mob/corgi/Ian/Life() - ..() - - //Not replacing with SA FollowTarget mechanics because Ian behaves... very... specifically. - - //Feeding, chasing food, FOOOOODDDD - if(!stat && !resting && !buckled) - turns_since_scan++ - if(turns_since_scan > 5) - turns_since_scan = 0 - if((movement_target) && !(isturf(movement_target.loc) || ishuman(movement_target.loc) )) - movement_target = null - stop_automated_movement = 0 - if( !movement_target || !(movement_target.loc in oview(src, 3)) ) - movement_target = null - stop_automated_movement = 0 - for(var/obj/item/weapon/reagent_containers/food/snacks/S in oview(src,3)) - if(isturf(S.loc) || ishuman(S.loc)) - movement_target = S - break - if(movement_target) - stop_automated_movement = 1 - step_to(src,movement_target,1) - sleep(3) - step_to(src,movement_target,1) - sleep(3) - step_to(src,movement_target,1) - - if(movement_target) //Not redundant due to sleeps, Item can be gone in 6 decisecomds - if (movement_target.loc.x < src.x) - set_dir(WEST) - else if (movement_target.loc.x > src.x) - set_dir(EAST) - else if (movement_target.loc.y < src.y) - set_dir(SOUTH) - else if (movement_target.loc.y > src.y) - set_dir(NORTH) - else - set_dir(SOUTH) - - if(isturf(movement_target.loc) ) - UnarmedAttack(movement_target) - else if(ishuman(movement_target.loc) && prob(20)) - visible_emote("stares at the [movement_target] that [movement_target.loc] has with sad puppy eyes.") - - if(prob(1)) - visible_emote(pick("dances around","chases their tail")) - spawn(0) - for(var/i in list(1,2,4,8,4,2,1,2,4,8,4,2,1,2,4,8,4,2)) - set_dir(i) - sleep(1) - -/obj/item/weapon/reagent_containers/food/snacks/meat/corgi - name = "corgi meat" - desc = "Tastes like... well, you know..." - -/mob/living/simple_mob/corgi/attackby(var/obj/item/O as obj, var/mob/user as mob) //Marker -Agouri - if(istype(O, /obj/item/weapon/newspaper)) - if(!stat) - for(var/mob/M in viewers(user, null)) - if ((M.client && !( M.blinded ))) - M.show_message("[user] baps [name] on the nose with the rolled up [O]") - spawn(0) - for(var/i in list(1,2,4,8,4,2,1,2)) - set_dir(i) - sleep(1) - else - ..() - -/mob/living/simple_mob/corgi/regenerate_icons() - overlays = list() - - if(inventory_head) - var/head_icon_state = inventory_head.icon_state - if(health <= 0) - head_icon_state += "2" - - var/icon/head_icon = image('icons/mob/corgi_head.dmi',head_icon_state) - if(head_icon) - overlays += head_icon - - if(inventory_back) - var/back_icon_state = inventory_back.icon_state - if(health <= 0) - back_icon_state += "2" - - var/icon/back_icon = image('icons/mob/corgi_back.dmi',back_icon_state) - if(back_icon) - overlays += back_icon - - return - - -/mob/living/simple_mob/corgi/puppy - name = "corgi puppy" - real_name = "corgi" - desc = "It's a corgi puppy." - icon_state = "puppy" - icon_living = "puppy" - icon_dead = "puppy_dead" - -//pupplies cannot wear anything. -/mob/living/simple_mob/corgi/puppy/Topic(href, href_list) - if(href_list["remove_inv"] || href_list["add_inv"]) - usr << "You can't fit this on [src]" - return - ..() - - -//LISA! SQUEEEEEEEEE~ -/mob/living/simple_mob/corgi/Lisa - name = "Lisa" - real_name = "Lisa" - gender = FEMALE - desc = "It's a corgi with a cute pink bow." - icon_state = "lisa" - icon_living = "lisa" - icon_dead = "lisa_dead" - response_help = "pets" - response_disarm = "bops" - response_harm = "kicks" - var/turns_since_scan = 0 - var/puppies = 0 - -//Lisa already has a cute bow! -/mob/living/simple_mob/corgi/Lisa/Topic(href, href_list) - if(href_list["remove_inv"] || href_list["add_inv"]) - to_chat(usr, "[src] already has a cute bow!") - return - ..() - -/mob/living/simple_mob/corgi/Lisa/Life() - ..() - - if(!stat && !resting && !buckled) - turns_since_scan++ - if(turns_since_scan > 15) - turns_since_scan = 0 - var/alone = 1 - var/ian = 0 - for(var/mob/M in oviewers(7, src)) - if(istype(M, /mob/living/simple_mob/corgi/Ian)) - if(M.client) - alone = 0 - break - else - ian = M - else - alone = 0 - break - if(alone && ian && puppies < 4) - if(near_camera(src) || near_camera(ian)) - return - new /mob/living/simple_mob/corgi/puppy(loc) - - - if(prob(1)) - visible_emote(pick("dances around","chases her tail")) - spawn(0) - for(var/i in list(1,2,4,8,4,2,1,2,4,8,4,2,1,2,4,8,4,2)) - set_dir(i) - sleep(1) - - -//Technically this should be like, its own file or something or a subset of dog but whatever. Not a coder. -/mob/living/simple_mob/corgi/tamaskan - name = "tamaskan" - real_name = "tamaskan" - desc = "It's a tamaskan." - icon_state = "tamaskan" - icon_living = "tamaskan" - icon_dead = "tamaskan_dead" - - retaliate = 1 //Tamaskans are bigass dogs, okay? - -/mob/living/simple_mob/corgi/tamaskan/spice - name = "Spice" - real_name = "Spice" //Intended to hold the name without altering it. - gender = FEMALE - desc = "It's a tamaskan, the name Spice can be found on its collar." - var/turns_since_scan = 0 - var/obj/movement_target - response_help = "pets" - response_disarm = "bops" - response_harm = "kicks" diff --git a/code/modules/mob/living/simple_animal/animals/corgi_vr.dm b/code/modules/mob/living/simple_animal/animals/corgi_vr.dm deleted file mode 100644 index 3ef7f472f89..00000000000 --- a/code/modules/mob/living/simple_animal/animals/corgi_vr.dm +++ /dev/null @@ -1,218 +0,0 @@ -/mob/living/simple_mob/corgi/show_inv(mob/user as mob) - user.set_machine(src) - if(user.stat) return - - var/dat = "
Inventory of [name]

" - if(inventory_head) - dat += "
Head: [inventory_head] (Remove)" - else - dat += "
Head: Nothing" - if(inventory_back) - dat += "
Back: [inventory_back] (Remove)" - else - dat += "
Back: Nothing" - - user << browse(dat, text("window=mob[];size=325x500", name)) - onclose(user, "mob[real_name]") - return - -/mob/living/simple_mob/corgi/attackby(var/obj/item/O as obj, var/mob/user as mob) - if(inventory_head && inventory_back) - //helmet and armor = 100% protection - if( istype(inventory_head,/obj/item/clothing/head/helmet) && istype(inventory_back,/obj/item/clothing/suit/armor) ) - if( O.force ) - usr << "This animal is wearing too much armor. You can't cause them any damage." - for (var/mob/M in viewers(src, null)) - M.show_message("[user] hits [src] with the [O], however [src] is too armored.") - else - usr << "This animal is wearing too much armor. You can't reach its skin." - for (var/mob/M in viewers(src, null)) - M.show_message("[user] gently taps [src] with the [O].") - if(prob(15)) - visible_emote("looks at [user] with [pick("an amused","an annoyed","a confused","a resentful", "a happy", "an excited")] expression on \his face") - return - ..() - -/mob/living/simple_mob/corgi/Topic(href, href_list) - if(usr.stat) return - - //Removing from inventory - if(href_list["remove_inv"]) - if(!Adjacent(usr)) - return - var/remove_from = href_list["remove_inv"] - switch(remove_from) - if("head") - if(inventory_head) - name = real_name - desc = initial(desc) - speak = list("YAP", "Woof!", "Bark!", "AUUUUUU") - speak_emote = list("barks", "woofs") - emote_hear = list("barks", "woofs", "yaps","pants") - emote_see = list("shakes its head", "shivers") - desc = "It's a corgi." - inventory_head.loc = src.loc - inventory_head = null - regenerate_icons() - else - to_chat(usr, "There is nothing to remove from its [remove_from].") - return - if("back") - if(inventory_back) - inventory_back.loc = src.loc - inventory_back = null - regenerate_icons() - else - to_chat(usr, "There is nothing to remove from its [remove_from].") - return - - //Adding things to inventory - else if(href_list["add_inv"]) - if(!Adjacent(usr)) - return - var/add_to = href_list["add_inv"] - if(!usr.get_active_hand()) - usr << "You have nothing in your hand to put on its [add_to]." - return - switch(add_to) - if("head") - if(inventory_head) - usr << "It's is already wearing something." - return - else - place_on_head(usr.get_active_hand()) - - var/obj/item/item_to_add = usr.get_active_hand() - if(!item_to_add) - return - - var/list/allowed_types = list( - /obj/item/weapon/bedsheet, - /obj/item/clothing/glasses/sunglasses, - /obj/item/clothing/head/caphat, - /obj/item/clothing/head/that, - /obj/item/clothing/head/beret, - /obj/item/clothing/head/nursehat, - /obj/item/clothing/head/pirate, - /obj/item/clothing/head/ushanka, - /obj/item/clothing/head/chefhat, - /obj/item/clothing/head/wizard, - /obj/item/clothing/head/wizard/fake, - /obj/item/clothing/head/hardhat, - /obj/item/clothing/head/hardhat/white, - /obj/item/clothing/head/helmet, - /obj/item/clothing/head/helmet/space/santahat, - /obj/item/clothing/head/collectable/chef, - /obj/item/clothing/head/collectable/police, - /obj/item/clothing/head/collectable/wizard, - /obj/item/clothing/head/collectable/rabbitears, - /obj/item/clothing/head/collectable/beret, - /obj/item/clothing/head/collectable/pirate, - /obj/item/clothing/head/collectable/hardhat, - /obj/item/clothing/head/collectable/captain, - /obj/item/clothing/head/collectable/paper, - /obj/item/clothing/head/soft - ) - - if( ! ( item_to_add.type in allowed_types ) ) - usr << "It doesn't seem too keen on wearing that item." - return - - usr.drop_item() - - place_on_head(item_to_add) - - if("back") - if(inventory_back) - usr << "It's already wearing something." - return - else - var/obj/item/item_to_add = usr.get_active_hand() - if(!item_to_add) - return - - //Corgis are supposed to be simpler, so only a select few objects can actually be put - //to be compatible with them. The objects are below. - - var/list/allowed_types = list( - /obj/item/clothing/suit/armor/vest, - /obj/item/device/radio - ) - - if( ! ( item_to_add.type in allowed_types ) ) - usr << "This object won't fit." - return - - usr.drop_item() - item_to_add.loc = src - src.inventory_back = item_to_add - regenerate_icons() - else - ..() - -/mob/living/simple_mob/corgi/proc/place_on_head(obj/item/item_to_add) - item_to_add.loc = src - src.inventory_head = item_to_add - regenerate_icons() - - //Various hats and items (worn on his head) change Ian's behaviour. His attributes are reset when a HAT is removed. - switch(inventory_head && inventory_head.type) - if(/obj/item/clothing/head/caphat, /obj/item/clothing/head/collectable/captain) - name = "Captain [real_name]" - desc = "Probably better than the last captain." -/* - if(/obj/item/clothing/head/accessory/kitty, /obj/item/clothing/head/collectable/kitty) - name = "Runtime" - emote_see = list("coughs up a furball", "stretches") - emote_hear = list("purrs") - speak = list("Purrr", "Meow!", "MAOOOOOW!", "HISSSSS", "MEEEEEEW") - desc = "It's a cute little kitty-cat! ... wait ... what the hell?" - if(/obj/item/clothing/head/accessory/bunny, /obj/item/clothing/head/collectable/rabbitears) - name = "Hoppy" - emote_see = list("twitches its nose", "hops around a bit") - desc = "This is hoppy. It's a corgi-...urmm... bunny rabbit" -*/ - if(/obj/item/clothing/head/beret, /obj/item/clothing/head/collectable/beret) - name = "Yann" - desc = "Mon dieu! C'est un chien!" - speak = list("le woof!", "le bark!", "JAPPE!!") - emote_see = list("cowers in fear", "surrenders", "plays dead","looks as though there is a wall in front of him") -/* - if(/obj/item/clothing/head/det_hat) - name = "Detective [real_name]" - desc = "[name] sees through your lies..." - emote_see = list("investigates the area","sniffs around for clues","searches for scooby snacks") -*/ - if(/obj/item/clothing/head/nursehat) - name = "Nurse [real_name]" - desc = "[name] needs 100cc of beef jerky...STAT!" - if(/obj/item/clothing/head/pirate, /obj/item/clothing/head/collectable/pirate) - name = "[pick("Ol'","Scurvy","Black","Rum","Gammy","Bloody","Gangrene","Death","Long-John")] [pick("kibble","leg","beard","tooth","poop-deck","Threepwood","Le Chuck","corsair","Silver","Crusoe")]" - desc = "Yaarghh!! Thar' be a scurvy dog!" - emote_see = list("hunts for treasure","stares coldly...","gnashes his tiny corgi teeth") - emote_hear = list("growls ferociously", "snarls") - speak = list("Arrrrgh!!","Grrrrrr!") - if(/obj/item/clothing/head/ushanka) - name = "[pick("Comrade","Commissar","Glorious Leader")] [real_name]" - desc = "A follower of Karl Barx." - emote_see = list("contemplates the failings of the capitalist economic model", "ponders the pros and cons of vangaurdism") - if(/obj/item/clothing/head/collectable/police) - name = "Officer [real_name]" - emote_see = list("drools","looks for donuts") - desc = "Stop right there criminal scum!" - if(/obj/item/clothing/head/wizard/fake, /obj/item/clothing/head/wizard, /obj/item/clothing/head/collectable/wizard) - name = "Grandwizard [real_name]" - speak = list("YAP", "Woof!", "Bark!", "AUUUUUU", "EI NATH!") - if(/obj/item/weapon/bedsheet) - name = "\improper Ghost" - speak = list("WoooOOOooo~","AUUUUUUUUUUUUUUUUUU") - emote_see = list("stumbles around", "shivers") - emote_hear = list("howls","groans") - desc = "Spooky!" - if(/obj/item/clothing/head/helmet/space/santahat) - name = "Rudolph the Red-Nosed Corgi" - emote_hear = list("barks christmas songs", "yaps") - desc = "He has a very shiny nose." - if(/obj/item/clothing/head/soft) - name = "Corgi Tech [real_name]" - desc = "The reason your yellow gloves have chew-marks." diff --git a/code/modules/mob/living/simple_animal/animals/crab.dm b/code/modules/mob/living/simple_animal/animals/crab.dm deleted file mode 100644 index 0808b11dab5..00000000000 --- a/code/modules/mob/living/simple_animal/animals/crab.dm +++ /dev/null @@ -1,87 +0,0 @@ -//Look Sir, free crabs! -/mob/living/simple_mob/crab - name = "crab" - desc = "A hard-shelled crustacean. Seems quite content to lounge around all the time." - tt_desc = "E Cancer bellianus" - icon_state = "crab" - icon_living = "crab" - icon_dead = "crab_dead" - faction = "crabs" - intelligence_level = SA_ANIMAL - - wander = 0 - stop_automated_movement = 1 - turns_per_move = 5 - mob_size = MOB_SMALL - - meat_type = /obj/item/weapon/reagent_containers/food/snacks/meat - response_help = "pets" - response_disarm = "gently pushes aside" - response_harm = "stomps" - friendly = "pinches" - - speak_chance = 1 - speak_emote = list("clicks") - emote_hear = list("clicks") - emote_see = list("clacks") - - var/obj/item/inventory_head - var/obj/item/inventory_mask - -/mob/living/simple_mob/crab/Life() - ..() - //CRAB movement, I'm not porting this up to SA because... "sideways-only movement" var nothanks - if(!ckey && !stat) - if(isturf(src.loc) && !resting && !buckled) //This is so it only moves if it's not inside a closet, gentics machine, etc. - lifes_since_move++ - if(lifes_since_move >= turns_per_move) - Move(get_step(src,pick(4,8))) - lifes_since_move = 0 - regenerate_icons() - -//COFFEE! SQUEEEEEEEEE! -/mob/living/simple_mob/crab/Coffee - name = "Coffee" - real_name = "Coffee" - desc = "It's Coffee, the other pet!" - response_help = "pets" - response_disarm = "gently pushes aside" - response_harm = "stomps" - -//Sif Crabs -/mob/living/simple_mob/giant_crab - name = "giant crab" - desc = "A large, hard-shelled crustacean. This one is mostly grey." - tt_desc = "S Cancer holligus" - icon_state = "sif_crab" - icon_living = "sif_crab" - icon_dead = "sif_crab_dead" - faction = "crabs" - intelligence_level = SA_ANIMAL - - maxHealth = 200 - health = 200 - - mob_size = MOB_LARGE - cooperative = 1 - retaliate = 1 - turns_per_move = 3 - - minbodytemp = 175 - - melee_damage_lower = 22 - melee_damage_upper = 35 - attack_armor_pen = 35 - attack_sharp = 1 - attack_edge = 1 - - meat_type = /obj/item/weapon/reagent_containers/food/snacks/meat - response_help = "pets" - response_disarm = "gently pushes aside" - response_harm = "stomps" - friendly = "pinches" - - speak_chance = 1 - speak_emote = list("clicks") - emote_hear = list("clicks") - emote_see = list("clacks") diff --git a/code/modules/mob/living/simple_animal/animals/farm_animals.dm b/code/modules/mob/living/simple_animal/animals/farm_animals.dm deleted file mode 100644 index 534bbf60002..00000000000 --- a/code/modules/mob/living/simple_animal/animals/farm_animals.dm +++ /dev/null @@ -1,292 +0,0 @@ -//goat -/mob/living/simple_animal/retaliate/goat - name = "goat" - desc = "Not known for their pleasant disposition." - tt_desc = "E Oreamnos americanus" - icon_state = "goat" - icon_living = "goat" - icon_dead = "goat_dead" - - faction = "goat" - intelligence_level = SA_ANIMAL - - health = 40 - turns_per_move = 5 - see_in_dark = 6 - - response_help = "pets" - response_disarm = "gently pushes aside" - response_harm = "kicks" - - melee_damage_lower = 1 - melee_damage_upper = 5 - attacktext = list("kicked") - - speak_chance = 1 - speak = list("EHEHEHEHEH","eh?") - speak_emote = list("brays") - emote_hear = list("brays") - emote_see = list("shakes its head", "stamps a foot", "glares around") - - meat_amount = 4 - meat_type = /obj/item/weapon/reagent_containers/food/snacks/meat - - var/datum/reagents/udder = null - -/mob/living/simple_animal/retaliate/goat/New() - udder = new(50) - udder.my_atom = src - ..() - -/mob/living/simple_animal/retaliate/goat/Life() - . = ..() - if(.) - if(stat == CONSCIOUS) - if(udder && prob(5)) - udder.add_reagent("milk", rand(5, 10)) - - if(locate(/obj/effect/plant) in loc) - var/obj/effect/plant/SV = locate() in loc - SV.die_off(1) - - if(locate(/obj/machinery/portable_atmospherics/hydroponics/soil/invisible) in loc) - var/obj/machinery/portable_atmospherics/hydroponics/soil/invisible/SP = locate() in loc - qdel(SP) - - if(!pulledby) - var/obj/effect/plant/food - food = locate(/obj/effect/plant) in oview(5,loc) - if(food) - var/step = get_step_to(src, food, 0) - Move(step) - -/mob/living/simple_animal/retaliate/goat/react_to_attack() - . = ..() - if(.) - visible_message("[src] gets an evil-looking gleam in their eye.") - -/mob/living/simple_animal/retaliate/goat/Move() - ..() - if(!stat) - for(var/obj/effect/plant/SV in loc) - SV.die_off(1) - -/mob/living/simple_animal/retaliate/goat/attackby(var/obj/item/O as obj, var/mob/user as mob) - var/obj/item/weapon/reagent_containers/glass/G = O - if(stat == CONSCIOUS && istype(G) && G.is_open_container()) - user.visible_message("[user] milks [src] using \the [O].") - var/transfered = udder.trans_id_to(G, "milk", rand(5,10)) - if(G.reagents.total_volume >= G.volume) - user << "The [O] is full." - if(!transfered) - user << "The udder is dry. Wait a bit longer..." - else - ..() -//cow -/mob/living/simple_animal/cow - name = "cow" - desc = "Known for their milk, just don't tip them over." - tt_desc = "E Bos taurus" - icon_state = "cow" - icon_living = "cow" - icon_dead = "cow_dead" - icon_gib = "cow_gib" - intelligence_level = SA_ANIMAL - - health = 50 - turns_per_move = 5 - see_in_dark = 6 - - response_help = "pets" - response_disarm = "gently pushes aside" - response_harm = "kicks" - attacktext = list("kicked") - - speak_chance = 1 - speak = list("moo?","moo","MOOOOOO") - speak_emote = list("moos","moos hauntingly") - emote_hear = list("brays") - emote_see = list("shakes its head") - - meat_amount = 6 - meat_type = /obj/item/weapon/reagent_containers/food/snacks/meat - - var/datum/reagents/udder = null - -/mob/living/simple_animal/cow/New() - udder = new(50) - udder.my_atom = src - ..() - -/mob/living/simple_animal/cow/attackby(var/obj/item/O as obj, var/mob/user as mob) - var/obj/item/weapon/reagent_containers/glass/G = O - if(stat == CONSCIOUS && istype(G) && G.is_open_container()) - user.visible_message("[user] milks [src] using \the [O].") - var/transfered = udder.trans_id_to(G, "milk", rand(5,10)) - if(G.reagents.total_volume >= G.volume) - user << "The [O] is full." - if(!transfered) - user << "The udder is dry. Wait a bit longer..." - else - ..() - -/mob/living/simple_animal/cow/Life() - . = ..() - if(stat == CONSCIOUS) - if(udder && prob(5)) - udder.add_reagent("milk", rand(5, 10)) - -/mob/living/simple_animal/cow/attack_hand(mob/living/carbon/M as mob) - if(!stat && M.a_intent == I_DISARM && icon_state != icon_dead) - M.visible_message("[M] tips over [src].","You tip over [src].") - Weaken(30) - icon_state = icon_dead - spawn(rand(20,50)) - if(!stat && M) - icon_state = icon_living - var/list/responses = list( "[src] looks at you imploringly.", - "[src] looks at you pleadingly", - "[src] looks at you with a resigned expression.", - "[src] seems resigned to its fate.") - M << pick(responses) - else - ..() - -/mob/living/simple_animal/chick - name = "\improper chick" - desc = "Adorable! They make such a racket though." - tt_desc = "E Gallus gallus" - icon_state = "chick" - icon_living = "chick" - icon_dead = "chick_dead" - icon_gib = "chick_gib" - intelligence_level = SA_ANIMAL - - health = 1 - turns_per_move = 2 - - pass_flags = PASSTABLE | PASSGRILLE - mob_size = MOB_MINISCULE - - response_help = "pets" - response_disarm = "gently pushes aside" - response_harm = "kicks" - attacktext = list("kicked") - - has_langs = list("Bird") - speak_chance = 2 - speak = list("Cherp.","Cherp?","Chirrup.","Cheep!") - speak_emote = list("cheeps") - emote_hear = list("cheeps") - emote_see = list("pecks at the ground","flaps its tiny wings") - - meat_amount = 1 - meat_type = /obj/item/weapon/reagent_containers/food/snacks/meat - - var/amount_grown = 0 - -/mob/living/simple_animal/chick/New() - ..() - pixel_x = rand(-6, 6) - pixel_y = rand(0, 10) - -/mob/living/simple_animal/chick/Life() - . =..() - if(!.) - return - if(!stat) - amount_grown += rand(1,2) - if(amount_grown >= 100) - new /mob/living/simple_animal/chicken(src.loc) - qdel(src) - -var/const/MAX_CHICKENS = 50 -var/global/chicken_count = 0 - -/mob/living/simple_animal/chicken - name = "\improper chicken" - desc = "Hopefully the eggs are good this season." - tt_desc = "E Gallus gallus" - icon_state = "chicken" - icon_living = "chicken" - icon_dead = "chicken_dead" - intelligence_level = SA_ANIMAL - - health = 10 - turns_per_move = 3 - pass_flags = PASSTABLE - mob_size = MOB_SMALL - - response_help = "pets" - response_disarm = "gently pushes aside" - response_harm = "kicks" - attacktext = list("kicked") - - has_langs = list("Bird") - speak_chance = 2 - speak = list("Cluck!","BWAAAAARK BWAK BWAK BWAK!","Bwaak bwak.") - speak_emote = list("clucks","croons") - emote_hear = list("clucks") - emote_see = list("pecks at the ground","flaps its wings viciously") - - meat_amount = 2 - meat_type = /obj/item/weapon/reagent_containers/food/snacks/meat - - var/eggsleft = 0 - var/body_color - -/mob/living/simple_animal/chicken/New() - ..() - if(!body_color) - body_color = pick( list("brown","black","white") ) - icon_state = "chicken_[body_color]" - icon_living = "chicken_[body_color]" - icon_dead = "chicken_[body_color]_dead" - pixel_x = rand(-6, 6) - pixel_y = rand(0, 10) - chicken_count += 1 - -/mob/living/simple_animal/chicken/death() - ..() - chicken_count -= 1 - -/mob/living/simple_animal/chicken/attackby(var/obj/item/O as obj, var/mob/user as mob) - if(istype(O, /obj/item/weapon/reagent_containers/food/snacks/grown)) //feedin' dem chickens - var/obj/item/weapon/reagent_containers/food/snacks/grown/G = O - if(G.seed && G.seed.kitchen_tag == "wheat") - if(!stat && eggsleft < 8) - user.visible_message("[user] feeds [O] to [name]! It clucks happily.","You feed [O] to [name]! It clucks happily.") - user.drop_item() - qdel(O) - eggsleft += rand(1, 4) - else - user << "[name] doesn't seem hungry!" - else - user << "[name] doesn't seem interested in that." - else - ..() - -/mob/living/simple_animal/chicken/Life() - . =..() - if(!.) - return - if(!stat && prob(3) && eggsleft > 0) - visible_message("[src] [pick("lays an egg.","squats down and croons.","begins making a huge racket.","begins clucking raucously.")]") - eggsleft-- - var/obj/item/weapon/reagent_containers/food/snacks/egg/E = new(get_turf(src)) - E.pixel_x = rand(-6,6) - E.pixel_y = rand(-6,6) - if(chicken_count < MAX_CHICKENS && prob(10)) - START_PROCESSING(SSobj, E) - -/obj/item/weapon/reagent_containers/food/snacks/egg/var/amount_grown = 0 -/obj/item/weapon/reagent_containers/food/snacks/egg/process() - if(isturf(loc)) - amount_grown += rand(1,2) - if(amount_grown >= 100) - visible_message("[src] hatches with a quiet cracking sound.") - new /mob/living/simple_animal/chick(get_turf(src)) - STOP_PROCESSING(SSobj, src) - qdel(src) - else - STOP_PROCESSING(SSobj, src) diff --git a/code/modules/mob/living/simple_animal/animals/fish.dm b/code/modules/mob/living/simple_animal/animals/fish.dm deleted file mode 100644 index c4d01233eaf..00000000000 --- a/code/modules/mob/living/simple_animal/animals/fish.dm +++ /dev/null @@ -1,80 +0,0 @@ -// Different types of fish! They are all subtypes of this tho -/mob/living/simple_mob/fish - name = "fish" - desc = "Its a fishy. No touchy fishy." - icon = 'icons/mob/fish.dmi' - meat_type = /obj/item/weapon/reagent_containers/food/snacks/meat - intelligence_level = SA_ANIMAL - - // By defautl they can be in any water turf. Subtypes might restrict to deep/shallow etc - var/global/list/suitable_turf_types = list( - /turf/simulated/floor/beach/water, - /turf/simulated/floor/beach/coastline, - /turf/simulated/floor/holofloor/beach/water, - /turf/simulated/floor/holofloor/beach/coastline, - /turf/simulated/floor/water - ) - -// Don't swim out of the water -/mob/living/simple_mob/fish/handle_wander_movement() - if(isturf(src.loc) && !resting && !buckled && canmove) //Physically capable of moving? - lifes_since_move++ //Increment turns since move (turns are life() cycles) - if(lifes_since_move >= turns_per_move) - if(!(stop_when_pulled && pulledby)) //Some animals don't move when pulled - var/moving_to = 0 // otherwise it always picks 4, fuck if I know. Did I mention fuck BYOND - moving_to = pick(cardinal) - dir = moving_to //How about we turn them the direction they are moving, yay. - var/turf/T = get_step(src,moving_to) - if(T && is_type_in_list(T, suitable_turf_types)) - Move(T) - lifes_since_move = 0 - -// Take damage if we are not in water -/mob/living/simple_mob/fish/handle_breathing() - var/turf/T = get_turf(src) - if(T && !is_type_in_list(T, suitable_turf_types)) - if(prob(50)) - say(pick("Blub", "Glub", "Burble")) - adjustBruteLoss(unsuitable_atoms_damage) - -/mob/living/simple_mob/fish/bass - name = "bass" - tt_desc = "E Micropterus notius" - icon_state = "bass-swim" - icon_living = "bass-swim" - icon_dead = "bass-dead" - -/mob/living/simple_mob/fish/trout - name = "trout" - tt_desc = "E Salmo trutta" - icon_state = "trout-swim" - icon_living = "trout-swim" - icon_dead = "trout-dead" - -/mob/living/simple_mob/fish/salmon - name = "salmon" - tt_desc = "E Oncorhynchus nerka" - icon_state = "salmon-swim" - icon_living = "salmon-swim" - icon_dead = "salmon-dead" - -/mob/living/simple_mob/fish/perch - name = "perch" - tt_desc = "E Perca flavescens" - icon_state = "perch-swim" - icon_living = "perch-swim" - icon_dead = "perch-dead" - -/mob/living/simple_mob/fish/pike - name = "pike" - tt_desc = "E Esox aquitanicus" - icon_state = "pike-swim" - icon_living = "pike-swim" - icon_dead = "pike-dead" - -/mob/living/simple_mob/fish/koi - name = "koi" - tt_desc = "E Cyprinus rubrofuscus" - icon_state = "koi-swim" - icon_living = "koi-swim" - icon_dead = "koi-dead" diff --git a/code/modules/mob/living/simple_animal/animals/fish_vr.dm b/code/modules/mob/living/simple_animal/animals/fish_vr.dm deleted file mode 100644 index 39cd051d6a0..00000000000 --- a/code/modules/mob/living/simple_animal/animals/fish_vr.dm +++ /dev/null @@ -1,41 +0,0 @@ -/mob/living/simple_mob/fish/koi/poisonous - desc = "A genetic marvel, combining the docility and aesthetics of the koi with some of the resiliency and cunning of the noble space carp." - health = 50 - maxHealth = 50 - -/mob/living/simple_mob/fish/koi/poisonous/New() - ..() - create_reagents(60) - reagents.add_reagent("toxin", 45) - reagents.add_reagent("impedrezene", 15) - -/mob/living/simple_mob/fish/koi/poisonous/Life() - ..() - if(isbelly(loc) && prob(10)) - var/obj/belly/B = loc - sting(B.owner) - -/mob/living/simple_mob/fish/koi/poisonous/react_to_attack(var/atom/A) - if(isliving(A) && Adjacent(A)) - var/mob/living/M = A - visible_message("\The [src][is_dead()?"'s corpse":""] flails at [M]!") - SpinAnimation(7,1) - if(prob(75)) - if(sting(M)) - to_chat(M, "You feel a tiny prick.") - if(is_dead()) - return - for(var/i = 1 to 3) - var/turf/T = get_step_away(src, M) - if(T && is_type_in_list(T, suitable_turf_types)) - Move(T) - else - break - sleep(3) - -/mob/living/simple_mob/fish/koi/poisonous/proc/sting(var/mob/living/M) - if(!M.reagents) - return 0 - M.reagents.add_reagent("toxin", 2) - M.reagents.add_reagent("impedrezene", 1) - return 1 \ No newline at end of file diff --git a/code/modules/mob/living/simple_animal/animals/fluffy_vr.dm b/code/modules/mob/living/simple_animal/animals/fluffy_vr.dm deleted file mode 100644 index 9b9073fb491..00000000000 --- a/code/modules/mob/living/simple_animal/animals/fluffy_vr.dm +++ /dev/null @@ -1,39 +0,0 @@ -/mob/living/simple_mob/fluffy - name = "Fluffy" - desc = "It's a pink Diyaab! It seems to be very tame and quiet." - icon = 'icons/mob/animal_vr.dmi' - icon_state = "fluffy" - icon_living = "fluffy" - icon_dead = "fluffy_dead" - icon_rest = "fluffy_sleep" - - turns_per_move = 10 - see_in_dark = 5 - mob_size = MOB_TINY - - response_help = "scritches" - response_disarm = "bops" - response_harm = "kicks" - - min_oxy = 16 //Require atleast 16kPA oxygen - minbodytemp = 223 //Below -50 Degrees Celcius - maxbodytemp = 323 //Above 50 Degrees Celcius - - speak_chance = 1 - speak = list("Squee","Arf arf","Awoo","Squeak") - speak_emote = list("squeaks", "barks") - emote_hear = list("howls","squeals") - emote_see = list("puffs its fur out", "shakes its fur", "stares directly at you") - - meat_amount = 1 - meat_type = /obj/item/weapon/reagent_containers/food/snacks/meat - -/mob/living/simple_mob/fluffy/Life() - . = ..() - if(!. || ai_inactive) return - - if(prob(0.5)) - lay_down() - - if(resting && prob(5)) - audible_emote("snuffles.") diff --git a/code/modules/mob/living/simple_animal/animals/fox_vr.dm b/code/modules/mob/living/simple_animal/animals/fox_vr.dm deleted file mode 100644 index 72265c399f7..00000000000 --- a/code/modules/mob/living/simple_animal/animals/fox_vr.dm +++ /dev/null @@ -1,225 +0,0 @@ -/mob/living/simple_mob/fox - name = "fox" - desc = "It's a fox. I wonder what it says?" - tt_desc = "Vulpes vulpes" - icon = 'icons/mob/fox_vr.dmi' - icon_state = "fox2" - icon_living = "fox2" - icon_dead = "fox2_dead" - icon_rest = "fox2_rest" - - investigates = 1 - specific_targets = 1 //Only targets with Found() - run_at_them = 0 //DOMESTICATED - view_range = 5 - - turns_per_move = 5 - see_in_dark = 6 - mob_size = MOB_TINY - - response_help = "scritches" - response_disarm = "gently pushes aside" - response_harm = "kicks" - - min_oxy = 16 //Require atleast 16kPA oxygen - minbodytemp = 223 //Below -50 Degrees Celcius - maxbodytemp = 323 //Above 50 Degrees Celcius - - speak_chance = 1 - speak = list("Ack-Ack","Ack-Ack-Ack-Ackawoooo","Awoo","Tchoff") - speak_emote = list("geckers", "barks") - emote_hear = list("howls","barks") - emote_see = list("shakes its head", "shivers", "geckers") - say_maybe_target = list("Yip?","Yap?") - say_got_target = list("YAP!","YIP!") - - meat_amount = 1 - meat_type = /obj/item/weapon/reagent_containers/food/snacks/meat/fox - - var/turns_since_scan = 0 - var/mob/flee_target - -/mob/living/simple_mob/fox/init_vore() - ..() - var/obj/belly/B = vore_selected - B.name = "Stomach" - B.desc = "Slick foxguts. Cute on the outside, slimy on the inside!" - - B.emote_lists[DM_HOLD] = list( - "The foxguts knead and churn around you harmlessly.", - "With a loud glorp, some air shifts inside the belly.", - "A thick drop of warm bellyslime drips onto you from above.", - "The fox turns suddenly, causing you to shift a little.", - "During a moment of relative silence, you can hear the fox breathing.", - "The slimey stomach walls squeeze you lightly, then relax.") - - B.emote_lists[DM_DIGEST] = list( - "The guts knead at you, trying to work you into thick soup.", - "You're ground on by the slimey walls, treated like a mouse.", - "The acrid air is hard to breathe, and stings at your lungs.", - "You can feel the acids coating you, ground in by the slick walls.", - "The fox's stomach churns hungrily over your form, trying to take you.", - "With a loud glorp, the stomach spills more acids onto you.") - -// All them complicated fox procedures. -/mob/living/simple_mob/fox/Life() - . = ..() - if(!.) return - - handle_flee_target() - -/mob/living/simple_mob/fox/PunchTarget() - if(istype(target_mob,/mob/living/simple_mob/mouse)) - var/mob/living/simple_mob/mouse/mouse = target_mob - mouse.splat() - visible_emote(pick("bites \the [mouse]!","pounces on \the [mouse]!","chomps on \the [mouse]!")) - else - ..() - -/mob/living/simple_mob/fox/Found(var/atom/found_atom) - if(istype(found_atom,/mob/living/simple_mob/mouse)) - return found_atom - -/mob/living/simple_mob/fox/proc/handle_flee_target() - //see if we should stop fleeing - if (flee_target && !(flee_target in ListTargets(view_range))) - flee_target = null - GiveUpMoving() - - if (flee_target && !stat && !buckled) - if (resting) - lay_down() - if(prob(25)) say("GRRRRR!") - stop_automated_movement = 1 - walk_away(src, flee_target, 7, 2) - -/mob/living/simple_mob/fox/react_to_attack(var/atom/A) - if(A == src) return - flee_target = A - turns_since_scan = 5 - -/mob/living/simple_mob/fox/ex_act() - . = ..() - react_to_attack(src.loc) - -/mob/living/simple_mob/fox/MouseDrop(atom/over_object) - var/mob/living/carbon/H = over_object - if(!istype(H) || !Adjacent(H)) return ..() - - if(H.a_intent == "help") - get_scooped(H) - return - else - return ..() - -/mob/living/simple_mob/fox/get_scooped(var/mob/living/carbon/grabber) - if (stat >= DEAD) - return //since the holder icon looks like a living cat - ..() - -//Basic friend AI -/mob/living/simple_mob/fox/fluff - var/mob/living/carbon/human/friend - var/befriend_job = null - -/mob/living/simple_mob/fox/fluff/Life() - . = ..() - if(!. || ai_inactive || !friend) return - - var/friend_dist = get_dist(src,friend) - - if (friend_dist <= 4) - if(stance == STANCE_IDLE) - if(set_follow(friend)) - handle_stance(STANCE_FOLLOW) - - if (friend_dist <= 1) - if (friend.stat >= DEAD || friend.health <= config.health_threshold_softcrit) - if (prob((friend.stat < DEAD)? 50 : 15)) - var/verb = pick("yaps", "howls", "whines") - audible_emote(pick("[verb] in distress.", "[verb] anxiously.")) - else - if (prob(5)) - visible_emote(pick("nips [friend].", - "brushes against [friend].", - "tugs on [friend].", - "chrrrrs.")) - else if (friend.health <= 50) - if (prob(10)) - var/verb = pick("yaps", "howls", "whines") - audible_emote("[verb] anxiously.") - -/mob/living/simple_mob/fox/fluff/verb/friend() - set name = "Become Friends" - set category = "IC" - set src in view(1) - - if(friend && usr == friend) - set_dir(get_dir(src, friend)) - say("Yap!") - return - - if (!(ishuman(usr) && befriend_job && usr.job == befriend_job)) - usr << "[src] ignores you." - return - - friend = usr - - set_dir(get_dir(src, friend)) - say("Yap!") - -/obj/item/weapon/reagent_containers/food/snacks/meat/fox - name = "Fox meat" - desc = "The fox doesn't say a goddamn thing, now." - -//Captain fox -/mob/living/simple_mob/fox/fluff/Renault - name = "Renault" - desc = "Renault, the Colony Director's trustworthy fox. I wonder what it says?" - tt_desc = "Vulpes nobilis" - befriend_job = "Colony Director" - -/mob/living/simple_mob/fox/fluff/Renault/init_vore() - ..() - var/obj/belly/B = vore_selected - B.name = "Stomach" - B.desc = "Slick foxguts. They seem somehow more regal than perhaps other foxes!" - - B.emote_lists[DM_HOLD] = list( - "Renault's stomach walls squeeze around you more tightly for a moment, before relaxing, as if testing you a bit.", - "There's a sudden squeezing as Renault presses a forepaw against his gut over you, squeezing you against the slick walls.", - "The 'head fox' has a stomach that seems to think you belong to it. It might be hard to argue, as it kneads at your form.", - "If being in the captain's fox is a promotion, it might not feel like one. The belly just coats you with more thick foxslime.", - "It doesn't seem like Renault wants to let you out. The stomach and owner possessively squeeze around you.", - "Renault's stomach walls squeeze closer, as he belches quietly, before swallowing more air. Does he do that on purpose?") - - B.emote_lists[DM_DIGEST] = list( - "Renault's stomach walls grind hungrily inwards, kneading acids against your form, and treating you like any other food.", - "The captain's fox impatiently kneads and works acids against you, trying to claim your body for fuel.", - "The walls knead in firmly, squeezing and tossing you around briefly in disorienting aggression.", - "Renault belches, letting the remaining air grow more acrid. It burns your lungs with each breath.", - "A thick glob of acids drip down from above, adding to the pool of caustic fluids in Renault's belly.", - "There's a loud gurgle as the stomach declares the intent to make you a part of Renault.") - -/mob/living/simple_mob/fox/syndicate - name = "syndi-fox" - desc = "It's a DASTARDLY fox! The horror! Call the shuttle!" - tt_desc = "Vulpes malus" - icon = 'icons/mob/fox_vr.dmi' - icon_state = "syndifox" - icon_living = "syndifox" - icon_dead = "syndifox_dead" - icon_rest = "syndifox_rest" - - // this fox wears a hardsuit - maxHealth = 100 - health = 100 - min_oxy = 0 - max_oxy = 0 - min_tox = 0 - max_tox = 0 - min_co2 = 0 - max_co2 = 0 - min_n2 = 0 - max_n2 = 0 - minbodytemp = 0 \ No newline at end of file diff --git a/code/modules/mob/living/simple_animal/animals/giant_spider.dm b/code/modules/mob/living/simple_animal/animals/giant_spider.dm deleted file mode 100644 index c6acf2a769a..00000000000 --- a/code/modules/mob/living/simple_animal/animals/giant_spider.dm +++ /dev/null @@ -1,589 +0,0 @@ - -#define SPINNING_WEB 1 -#define LAYING_EGGS 2 -#define MOVING_TO_TARGET 3 -#define SPINNING_COCOON 4 - -//basic spider mob, these generally guard nests -/mob/living/simple_mob/hostile/giant_spider - name = "giant spider" - desc = "Furry and brown, it makes you shudder to look at it. This one has deep red eyes." - tt_desc = "X Brachypelma phorus" - icon_state = "guard" - icon_living = "guard" - icon_dead = "guard_dead" - - faction = "spiders" - intelligence_level = SA_ANIMAL - maxHealth = 200 - health = 200 - pass_flags = PASSTABLE - move_to_delay = 6 - speed = 3 - - stop_when_pulled = 0 - turns_per_move = 5 - see_in_dark = 10 - - response_help = "pets" - response_disarm = "gently pushes aside" - response_harm = "punches" - - melee_damage_lower = 18 - melee_damage_upper = 30 - attack_sharp = 1 - attack_edge = 1 - - heat_damage_per_tick = 20 - cold_damage_per_tick = 20 - - speak_chance = 5 - speak_emote = list("chitters") - emote_hear = list("chitters") - - meat_type = /obj/item/weapon/reagent_containers/food/snacks/xenomeat/spidermeat - - var/busy = 0 - var/poison_per_bite = 5 - var/poison_chance = 10 - var/poison_type = "spidertoxin" - var/image/eye_layer = null - - low_priority = TRUE //VOREStation Edit - -/mob/living/simple_mob/hostile/giant_spider/proc/add_eyes() - if(!eye_layer) - eye_layer = image(icon, "[icon_state]-eyes") - eye_layer.plane = PLANE_LIGHTING_ABOVE - - overlays += eye_layer - -/mob/living/simple_mob/hostile/giant_spider/proc/remove_eyes() - overlays -= eye_layer - -/* -Nurse Family -*/ - -//nursemaids - these create webs and eggs -/mob/living/simple_mob/hostile/giant_spider/nurse - desc = "Furry and beige, it makes you shudder to look at it. This one has brilliant green eyes." - tt_desc = "X Brachypelma phorus laetus" - icon_state = "nurse" - icon_living = "nurse" - icon_dead = "nurse_dead" - - maxHealth = 40 - health = 40 - - melee_damage_lower = 8 - melee_damage_upper = 15 - poison_per_bite = 7 - poison_type = "spidertoxin" // VOREStation edit, original is stoxin. (sleep toxins) - - var/fed = 0 - var/atom/cocoon_target - var/egg_inject_chance = 5 - -/mob/living/simple_mob/hostile/giant_spider/nurse/hat - desc = "Furry and beige, it makes you shudder to look at it. This one has brilliant green eyes and a tiny nurse hat." - icon_state = "nursemed" - icon_living = "nursemed" - icon_dead = "nursemed_dead" - - maxHealth = 50 - health = 50 - -// VOREStation Edit - melee_damage_lower = 8 - melee_damage_upper = 16 - poison_type = "tramadol" - poison_chance = 15 -// VOREStation Edit End - -/mob/living/simple_mob/hostile/giant_spider/nurse/queen - desc = "Absolutely gigantic, this creature is horror itself." - tt_desc = "X Brachypelma phorus tyrannus" - icon = 'icons/mob/64x64.dmi' - icon_state = "spider_queen" - icon_living = "spider_queen" - icon_dead = "spider_queen_dead" - - maxHealth = 320 - health = 320 - - melee_damage_lower = 20 - melee_damage_upper = 30 - attack_armor_pen = 25 - - poison_per_bite = 10 - egg_inject_chance = 10 - - pixel_x = -16 - pixel_y = -16 - old_x = -16 - old_y = -16 - -/mob/living/simple_mob/hostile/giant_spider/webslinger - desc = "Furry and green, it makes you shudder to look at it. This one has brilliant green eyes, and a cloak of web." - tt_desc = "X Brachypelma phorus balisticus" - icon_state = "webslinger" - icon_living = "webslinger" - icon_dead = "webslinger_dead" - - maxHealth = 90 - health = 90 - - projectilesound = 'sound/weapons/thudswoosh.ogg' - projectiletype = /obj/item/projectile/bola - ranged = 1 - firing_lines = 1 - cooperative = 1 - shoot_range = 5 - - melee_damage_lower = 8 - melee_damage_upper = 15 - poison_per_bite = 2 - poison_type = "psilocybin" - - spattack_prob = 15 - spattack_min_range = 0 - spattack_max_range = 5 - -/mob/living/simple_mob/hostile/giant_spider/webslinger/AttackTarget() //One day. - var/mob/living/carbon/human/victim = null //Webslinger needs to know if its target is human later. - if(ishuman(target_mob)) - victim = target_mob - if(!victim.legcuffed) - projectiletype = /obj/item/projectile/bola - shoot_range = 7 - else - projectiletype = /obj/item/projectile/webball - shoot_range = 5 - else - projectiletype = /obj/item/projectile/webball - shoot_range = 5 - return ..() - -/mob/living/simple_mob/hostile/giant_spider/carrier - desc = "Furry, beige, and red, it makes you shudder to look at it. This one has luminous green eyes." - tt_desc = "X Brachypelma phorus gerulus" - icon_state = "carrier" - icon_living = "carrier" - icon_dead = "carrier_dead" - - maxHealth = 100 - health = 100 - - melee_damage_lower = 8 - melee_damage_upper = 25 - - poison_per_bite = 3 - poison_type = "chloralhydrate" - - var/spiderling_count = 0 - var/spiderling_type = /obj/effect/spider/spiderling - var/swarmling_type = /mob/living/simple_mob/hostile/giant_spider/hunter - var/swarmling_faction = "spiders" - -/mob/living/simple_mob/hostile/giant_spider/carrier/New() - spiderling_count = rand(5,10) - adjust_scale(1.2) - ..() - -/mob/living/simple_mob/hostile/giant_spider/carrier/death() - visible_message("\The [src]'s abdomen splits as it rolls over, spiderlings crawling from the wound.") - spawn(1) - for(var/I = 1 to spiderling_count) - if(prob(10) && src) - var/mob/living/simple_animal/hostile/giant_spider/swarmling = new swarmling_type(src.loc) - var/swarm_health = FLOOR(swarmling.maxHealth * 0.4, 1) - var/swarm_dam_lower = FLOOR(melee_damage_lower * 0.4, 1) - var/swarm_dam_upper = FLOOR(melee_damage_upper * 0.4, 1) - swarmling.name = "spiderling" - swarmling.maxHealth = swarm_health - swarmling.health = swarm_health - swarmling.melee_damage_lower = swarm_dam_lower - swarmling.melee_damage_upper = swarm_dam_upper - swarmling.faction = swarmling_faction - swarmling.adjust_scale(0.75) - else if(src) - var/obj/effect/spider/spiderling/child = new spiderling_type(src.loc) - child.skitter() - else - break - return ..() - -/mob/living/simple_mob/hostile/giant_spider/carrier/recursive - desc = "Furry, beige, and red, it makes you shudder to look at it. This one has luminous green eyes. You have a distinctly bad feeling about this." - - swarmling_type = /mob/living/simple_mob/hostile/giant_spider/carrier/recursive - -/* -Hunter Family -*/ - -//hunters have the most poison and move the fastest, so they can find prey - -/mob/living/simple_mob/hostile/giant_spider/hunter - desc = "Furry and black, it makes you shudder to look at it. This one has sparkling purple eyes." - tt_desc = "X Brachypelma phorus venandi" - icon_state = "hunter" - icon_living = "hunter" - icon_dead = "hunter_dead" - - maxHealth = 120 - health = 120 - move_to_delay = 4 - - poison_per_bite = 5 - -/mob/living/simple_mob/hostile/giant_spider/lurker - desc = "Translucent and white, it makes you shudder to look at it. This one has incandescent red eyes." - tt_desc = "X Brachypelma phorus insidator" - icon_state = "lurker" - icon_living = "lurker" - icon_dead = "lurker_dead" - alpha = 45 - - maxHealth = 100 - health = 100 - move_to_delay = 4 - - melee_damage_lower = 8 - melee_damage_upper = 20 - - - poison_chance = 20 - poison_type = "cryptobiolin" - poison_per_bite = 2 - -/mob/living/simple_mob/hostile/giant_spider/lurker/death() - alpha = 255 - return ..() - -/mob/living/simple_mob/hostile/giant_spider/tunneler - desc = "Sandy and brown, it makes you shudder to look at it. This one has glittering yellow eyes." - tt_desc = "X Brachypelma phorus cannalis" - icon_state = "tunneler" - icon_living = "tunneler" - icon_dead = "tunneler_dead" - - maxHealth = 120 - health = 120 - move_to_delay = 4 - - melee_damage_lower = 10 - melee_damage_upper = 20 - - poison_chance = 15 - poison_per_bite = 3 - poison_type = "serotrotium_v" - -/mob/living/simple_mob/hostile/giant_spider/tunneler/death() - spawn(1) - for(var/I = 1 to rand(3,6)) - if(src) - new/obj/item/weapon/ore/glass(src.loc) - else - break - return ..() - -/* -Guard Family -*/ - -/mob/living/simple_mob/hostile/giant_spider/pepper - desc = "Red and brown, it makes you shudder to look at it. This one has glinting red eyes." - tt_desc = "X Brachypelma phorus ignis" - icon_state = "pepper" - icon_living = "pepper" - icon_dead = "pepper_dead" - - maxHealth = 210 - health = 210 - - melee_damage_lower = 8 - melee_damage_upper = 15 - - poison_chance = 20 - poison_per_bite = 5 - poison_type = "condensedcapsaicin_v" - -/mob/living/simple_mob/hostile/giant_spider/pepper/New() - adjust_scale(1.1) - ..() - -/mob/living/simple_mob/hostile/giant_spider/thermic - desc = "Mirage-cloaked and orange, it makes you shudder to look at it. This one has simmering orange eyes." - tt_desc = "X Brachypelma phorus incaendium" - icon_state = "pit" - icon_living = "pit" - icon_dead = "pit_dead" - - maxHealth = 175 - health = 175 - - melee_damage_lower = 10 - melee_damage_upper = 25 - - poison_chance = 30 - poison_per_bite = 1 - poison_type = "thermite_v" - -/mob/living/simple_mob/hostile/giant_spider/electric - desc = "Spined and yellow, it makes you shudder to look at it. This one has flickering gold eyes." - tt_desc = "X Brachypelma phorus aromatitis" - icon_state = "spark" - icon_living = "spark" - icon_dead = "spark_dead" - - maxHealth = 210 - health = 210 - taser_kill = 0 //It -is- the taser. - - melee_damage_lower = 10 - melee_damage_upper = 25 - - ranged = 1 - projectilesound = 'sound/weapons/taser2.ogg' - projectiletype = /obj/item/projectile/beam/stun/weak - firing_lines = 1 - cooperative = 1 - - poison_chance = 15 - poison_per_bite = 3 - poison_type = "stimm" - -/mob/living/simple_mob/hostile/giant_spider/phorogenic - desc = "Crystalline and purple, it makes you shudder to look at it. This one has haunting purple eyes." - tt_desc = "X Brachypelma phorus phorus" - icon_state = "phoron" - icon_living = "phoron" - icon_dead = "phoron_dead" - - maxHealth = 225 - health = 225 - taser_kill = 0 //You will need more than a peashooter to kill the juggernaut. - - melee_damage_lower = 25 - melee_damage_upper = 40 - attack_armor_pen = 15 - - poison_chance = 30 - poison_per_bite = 0.5 - poison_type = "phoron" - - var/exploded = 0 - -/mob/living/simple_mob/hostile/giant_spider/phorogenic/New() - adjust_scale(1.25) - return ..() - -/mob/living/simple_mob/hostile/giant_spider/phorogenic/death() - visible_message("\The [src]'s body begins to rupture!") - spawn(rand(1,5)) - if(src && !exploded) - visible_message("\The [src]'s body detonates!") - exploded = 1 - explosion(src.loc, 1, 2, 4, 6) - return ..() - -/mob/living/simple_mob/hostile/giant_spider/frost - desc = "Icy and blue, it makes you shudder to look at it. This one has brilliant blue eyes." - tt_desc = "X Brachypelma phorus pruinae" - icon_state = "frost" - icon_living = "frost" - icon_dead = "frost_dead" - - maxHealth = 175 - health = 175 - - poison_per_bite = 5 - poison_type = "cryotoxin" - -/* -Spider Procs -*/ - -/mob/living/simple_mob/hostile/giant_spider/New(var/location, var/atom/parent) - get_light_and_color(parent) - add_eyes() - ..() - -/mob/living/simple_mob/hostile/giant_spider/death() - remove_eyes() - ..() - -/mob/living/simple_mob/hostile/giant_spider/DoPunch(var/atom/A) - . = ..() - if(.) // If we succeeded in hitting. - if(isliving(A)) - var/mob/living/L = A - if(L.reagents) - var/target_zone = pick(BP_TORSO,BP_TORSO,BP_TORSO,BP_L_LEG,BP_R_LEG,BP_L_ARM,BP_R_ARM,BP_HEAD) - if(L.can_inject(src, null, target_zone)) - L.reagents.add_reagent(poison_type, poison_per_bite) - if(prob(poison_chance)) - to_chat(L, "You feel a tiny prick.") - L.reagents.add_reagent(poison_type, poison_per_bite) - -/mob/living/simple_mob/hostile/giant_spider/nurse/DoPunch(var/atom/A) - . = ..() - if(.) // If we succeeded in hitting. - if(ishuman(A)) - var/mob/living/carbon/human/H = A - if(prob(egg_inject_chance)) - var/target_zone = pick(BP_TORSO,BP_TORSO,BP_TORSO,BP_L_LEG,BP_R_LEG,BP_L_ARM,BP_R_ARM,BP_HEAD) - if(H.can_inject(src, null, target_zone)) - var/obj/item/organ/external/O = H.get_organ(target_zone) - var/eggcount - for(var/obj/I in O.implants) - if(istype(I, /obj/effect/spider/eggcluster)) - eggcount ++ - if(!eggcount) - var/eggs = new /obj/effect/spider/eggcluster/small(O, src) - O.implants += eggs - to_chat(H, "\The [src] injects something into your [O.name]!") - -/mob/living/simple_mob/hostile/giant_spider/webslinger/DoPunch(var/atom/A) - . = ..() - if(.) // If we succeeded in hitting. - if(isliving(A)) - var/mob/living/L = A - var/obj/effect/spider/stickyweb/W = locate() in get_turf(L) - if(!W && prob(75)) - visible_message("\The [src] throws a layer of web at \the [L]!") - new /obj/effect/spider/stickyweb(L.loc) - -/mob/living/simple_mob/hostile/giant_spider/handle_stance() - . = ..() - if(ai_inactive) return - - switch(stance) - if(STANCE_IDLE) - //1% chance to skitter madly away - if(!busy && prob(1)) - /*var/list/move_targets = list() - for(var/turf/T in orange(20, src)) - move_targets.Add(T)*/ - stop_automated_movement = 1 - walk_to(src, pick(orange(20, src)), 1, move_to_delay) - spawn(5 SECONDS) - stop_automated_movement = 0 - walk(src,0) - -/mob/living/simple_mob/hostile/giant_spider/nurse/proc/GiveUp(var/C) - spawn(10 SECONDS) - if(busy == MOVING_TO_TARGET) - if(cocoon_target == C && get_dist(src,cocoon_target) > 1) - cocoon_target = null - busy = 0 - stop_automated_movement = 0 - -/mob/living/simple_mob/hostile/giant_spider/nurse/Life() - . = ..() - if(!. || ai_inactive) return - - if(stance == STANCE_IDLE) - var/list/can_see = view(src, 10) - //30% chance to stop wandering and do something - if(!busy && prob(30)) - //first, check for potential food nearby to cocoon - for(var/mob/living/C in can_see) - if(C.stat) - cocoon_target = C - busy = MOVING_TO_TARGET - walk_to(src, C, 1, move_to_delay) - //give up if we can't reach them after 10 seconds - GiveUp(C) - return - - //second, spin a sticky spiderweb on this tile - var/obj/effect/spider/stickyweb/W = locate() in get_turf(src) - if(!W) - busy = SPINNING_WEB - src.visible_message("\The [src] begins to secrete a sticky substance.") - stop_automated_movement = 1 - spawn(40) - if(busy == SPINNING_WEB) - new /obj/effect/spider/stickyweb(src.loc) - busy = 0 - stop_automated_movement = 0 - else - //third, lay an egg cluster there - var/obj/effect/spider/eggcluster/E = locate() in get_turf(src) - if(!E && fed > 0) - busy = LAYING_EGGS - src.visible_message("\The [src] begins to lay a cluster of eggs.") - stop_automated_movement = 1 - spawn(50) - if(busy == LAYING_EGGS) - E = locate() in get_turf(src) - if(!E) - new /obj/effect/spider/eggcluster(loc, src) - fed-- - busy = 0 - stop_automated_movement = 0 - else - //fourthly, cocoon any nearby items so those pesky pinkskins can't use them - for(var/obj/O in can_see) - - if(O.anchored) - continue - - if(istype(O, /obj/item) || istype(O, /obj/structure) || istype(O, /obj/machinery)) - cocoon_target = O - busy = MOVING_TO_TARGET - stop_automated_movement = 1 - walk_to(src, O, 1, move_to_delay) - //give up if we can't reach them after 10 seconds - GiveUp(O) - - else if(busy == MOVING_TO_TARGET && cocoon_target) - if(get_dist(src, cocoon_target) <= 1) - busy = SPINNING_COCOON - src.visible_message("\The [src] begins to secrete a sticky substance around \the [cocoon_target].") - stop_automated_movement = 1 - walk(src,0) - spawn(50) - if(busy == SPINNING_COCOON) - if(cocoon_target && istype(cocoon_target.loc, /turf) && get_dist(src,cocoon_target) <= 1) - var/obj/effect/spider/cocoon/C = new(cocoon_target.loc) - var/large_cocoon = 0 - C.pixel_x = cocoon_target.pixel_x - C.pixel_y = cocoon_target.pixel_y - for(var/mob/living/M in C.loc) - if(istype(M, /mob/living/simple_mob/hostile/giant_spider)) - continue - large_cocoon = 1 - fed++ - src.visible_message("\The [src] sticks a proboscis into \the [cocoon_target] and sucks a viscous substance out.") - M.forceMove(C) - C.pixel_x = M.pixel_x - C.pixel_y = M.pixel_y - break - for(var/obj/item/I in C.loc) - I.forceMove(C) - for(var/obj/structure/S in C.loc) - if(!S.anchored) - S.forceMove(C) - large_cocoon = 1 - for(var/obj/machinery/M in C.loc) - if(!M.anchored) - M.forceMove(C) - large_cocoon = 1 - if(large_cocoon) - C.icon_state = pick("cocoon_large1","cocoon_large2","cocoon_large3") - busy = 0 - stop_automated_movement = 0 - - else - busy = 0 - stop_automated_movement = 0 - - -#undef SPINNING_WEB -#undef LAYING_EGGS -#undef MOVING_TO_TARGET -#undef SPINNING_COCOON diff --git a/code/modules/mob/living/simple_animal/animals/giant_spider_vr.dm b/code/modules/mob/living/simple_animal/animals/giant_spider_vr.dm deleted file mode 100644 index 7497ae9e9c9..00000000000 --- a/code/modules/mob/living/simple_animal/animals/giant_spider_vr.dm +++ /dev/null @@ -1,23 +0,0 @@ -// Slightly placeholder, mostly to replace ion hivebots on V4 -/mob/living/simple_mob/hostile/giant_spider/ion - desc = "Furry and green, it makes you shudder to look at it. This one has brilliant green eyes and a hint of static discharge." - tt_desc = "X Brachypelma phorus ionus" - icon_state = "webslinger" - icon_living = "webslinger" - icon_dead = "webslinger_dead" - - maxHealth = 90 - health = 90 - - melee_damage_lower = 8 - melee_damage_upper = 15 - - ranged = 1 - projectilesound = 'sound/weapons/taser2.ogg' - projectiletype = /obj/item/projectile/ion/small - firing_lines = 1 - cooperative = 1 - - poison_chance = 15 - poison_per_bite = 2 - poison_type = "psilocybin" diff --git a/code/modules/mob/living/simple_animal/animals/goose.dm b/code/modules/mob/living/simple_animal/animals/goose.dm deleted file mode 100644 index 72744ad882d..00000000000 --- a/code/modules/mob/living/simple_animal/animals/goose.dm +++ /dev/null @@ -1,60 +0,0 @@ -/mob/living/simple_mob/hostile/goose //hey are these even in the game - name = "goose" - desc = "It looks pretty angry!" - tt_desc = "E Branta canadensis" //that iconstate is just a regular goose - icon_state = "goose" - icon_living = "goose" - icon_dead = "goose_dead" - - faction = "geese" - intelligence_level = SA_ANIMAL - - maxHealth = 15 - health = 15 - speed = 4 - - turns_per_move = 5 - - response_help = "pets the" - response_disarm = "gently pushes aside the" - response_harm = "hits the" - - harm_intent_damage = 5 - melee_damage_lower = 5 //they're meant to be annoying, not threatening. - melee_damage_upper = 5 //unless there's like a dozen of them, then you're screwed. - cooperative = 1 // mwahahahahahaaa // Vorestation Edit, temporary - attacktext = list("pecked") - attack_sound = 'sound/weapons/bite.ogg' - - //SPACE geese aren't affected by atmos. - min_oxy = 0 - max_oxy = 0 - min_tox = 0 - max_tox = 0 - min_co2 = 0 - max_co2 = 0 - min_n2 = 0 - max_n2 = 0 - minbodytemp = 0 - - has_langs = list("Bird") - speak_chance = 10 - speak = list("HONK!") - emote_hear = list("honks loudly!") - emote_see = list() - say_understood = list() - say_cannot = list() - say_maybe_target = list("Honk?") - say_got_target = list("HONK!!!") - reactions = list() - - - meat_type = /obj/item/weapon/reagent_containers/food/snacks/meat - -/mob/living/simple_mob/hostile/goose/set_target() - . = ..() - if(.) - custom_emote(1,"flaps and honks at [.]!") - -/mob/living/simple_mob/hostile/goose/Process_Spacemove(var/check_drift = 0) - return 1 // VOREStation Edit No drifting in space! diff --git a/code/modules/mob/living/simple_animal/animals/lizard.dm b/code/modules/mob/living/simple_animal/animals/lizard.dm deleted file mode 100644 index d9a1b1b8d05..00000000000 --- a/code/modules/mob/living/simple_animal/animals/lizard.dm +++ /dev/null @@ -1,24 +0,0 @@ -/mob/living/simple_mob/lizard - name = "Lizard" - desc = "A cute tiny lizard." - tt_desc = "E Anolis cuvieri" - icon = 'icons/mob/critter.dmi' - icon_state = "lizard" - icon_living = "lizard" - icon_dead = "lizard-dead" - intelligence_level = SA_ANIMAL - - health = 5 - maxHealth = 5 - mob_size = MOB_MINISCULE - - response_help = "pets" - response_disarm = "shoos" - response_harm = "stomps on" - - attacktext = list("bitten") - melee_damage_lower = 1 - melee_damage_upper = 2 - - speak_chance = 1 - speak_emote = list("hisses") diff --git a/code/modules/mob/living/simple_animal/animals/miscellaneous.dm b/code/modules/mob/living/simple_animal/animals/miscellaneous.dm deleted file mode 100644 index 306f6a3aadc..00000000000 --- a/code/modules/mob/living/simple_animal/animals/miscellaneous.dm +++ /dev/null @@ -1,21 +0,0 @@ -/mob/living/simple_mob/yithian - name = "yithian" - desc = "A friendly creature vaguely resembling an oversized snail without a shell." - tt_desc = "J Escargot escargot" // a product of Jade, which is a planet that totally exists - icon_state = "yithian" - icon_living = "yithian" - icon_dead = "yithian_dead" - icon = 'icons/jungle.dmi' - - faction = "yithian" - -/mob/living/simple_mob/tindalos - name = "tindalos" - desc = "It looks like a large, flightless grasshopper." - tt_desc = "J Locusta bruchus" - icon_state = "tindalos" - icon_living = "tindalos" - icon_dead = "tindalos_dead" - icon = 'icons/jungle.dmi' - - faction = "tindalos" \ No newline at end of file diff --git a/code/modules/mob/living/simple_animal/animals/mouse.dm b/code/modules/mob/living/simple_animal/animals/mouse.dm deleted file mode 100644 index d68d66b4983..00000000000 --- a/code/modules/mob/living/simple_animal/animals/mouse.dm +++ /dev/null @@ -1,137 +0,0 @@ -/mob/living/simple_mob/mouse - name = "mouse" - real_name = "mouse" - desc = "It's a small rodent." - tt_desc = "E Mus musculus" - icon_state = "mouse_gray" - item_state = "mouse_gray" - icon_living = "mouse_gray" - icon_dead = "mouse_gray_dead" - intelligence_level = SA_ANIMAL - - maxHealth = 5 - health = 5 - - turns_per_move = 5 - see_in_dark = 6 - universal_understand = 1 - - mob_size = MOB_SMALL - pass_flags = PASSTABLE -// can_pull_size = ITEMSIZE_TINY -// can_pull_mobs = MOB_PULL_NONE - layer = MOB_LAYER - density = 0 - - response_help = "pets" - response_disarm = "gently pushes aside" - response_harm = "stamps on" - - min_oxy = 16 //Require atleast 16kPA oxygen - minbodytemp = 223 //Below -50 Degrees Celcius - maxbodytemp = 323 //Above 50 Degrees Celcius - - has_langs = list("Mouse") - speak_chance = 1 - speak = list("Squeek!","SQUEEK!","Squeek?") - speak_emote = list("squeeks","squeeks","squiks") - emote_hear = list("squeeks","squeaks","squiks") - emote_see = list("runs in a circle", "shakes", "scritches at something") - - holder_type = /obj/item/weapon/holder/mouse - meat_type = /obj/item/weapon/reagent_containers/food/snacks/meat - - var/body_color //brown, gray and white, leave blank for random - -/mob/living/simple_mob/mouse/Life() - . = ..() - if(!. || ai_inactive) return - - if(prob(speak_chance)) - for(var/mob/M in view()) - M << 'sound/effects/mouse_squeak.ogg' - - if(!resting && prob(0.5)) - lay_down() - speak_chance = 0 - //snuffles - - else if(resting) - if(prob(1)) - lay_down() - speak_chance = initial(speak_chance) - else if(prob(1)) - audible_emote("snuffles.") - -/mob/living/simple_mob/mouse/New() - ..() - - verbs += /mob/living/proc/ventcrawl - verbs += /mob/living/proc/hide - - if(name == initial(name)) - name = "[name] ([rand(1, 1000)])" - real_name = name - - if(!body_color) - body_color = pick( list("brown","gray","white") ) - icon_state = "mouse_[body_color]" - item_state = "mouse_[body_color]" - icon_living = "mouse_[body_color]" - icon_dead = "mouse_[body_color]_dead" - icon_rest = "mouse_[body_color]_sleep" - desc = "A small [body_color] rodent, often seen hiding in maintenance areas and making a nuisance of itself." - -/mob/living/simple_mob/mouse/proc/splat() - src.health = 0 - src.stat = DEAD - src.icon_dead = "mouse_[body_color]_splat" - src.icon_state = "mouse_[body_color]_splat" - layer = MOB_LAYER - if(client) - client.time_died_as_mouse = world.time - - -/mob/living/simple_mob/mouse/Crossed(AM as mob|obj) - if( ishuman(AM) ) - if(!stat) - var/mob/M = AM - M.visible_message("\icon[src] Squeek!") - M << 'sound/effects/mouse_squeak.ogg' - ..() - -/mob/living/simple_mob/mouse/death() - layer = MOB_LAYER - playsound(src, 'sound/effects/mouse_squeak_loud.ogg', 35, 1) - if(client) - client.time_died_as_mouse = world.time - ..() - -/* - * Mouse types - */ - -/mob/living/simple_mob/mouse/white - body_color = "white" - icon_state = "mouse_white" - -/mob/living/simple_mob/mouse/gray - body_color = "gray" - icon_state = "mouse_gray" - -/mob/living/simple_mob/mouse/brown - body_color = "brown" - icon_state = "mouse_brown" - -//TOM IS ALIVE! SQUEEEEEEEE~K :) -/mob/living/simple_mob/mouse/brown/Tom - name = "Tom" - desc = "Jerry the cat is not amused." - -/mob/living/simple_mob/mouse/brown/Tom/New() - ..() - // Change my name back, don't want to be named Tom (666) - name = initial(name) - -/mob/living/simple_mob/mouse/cannot_use_vents() - return diff --git a/code/modules/mob/living/simple_animal/animals/mouse_vr.dm b/code/modules/mob/living/simple_animal/animals/mouse_vr.dm deleted file mode 100644 index d3bdfbd1c60..00000000000 --- a/code/modules/mob/living/simple_animal/animals/mouse_vr.dm +++ /dev/null @@ -1,8 +0,0 @@ -/mob/living/simple_mob/mouse - no_vore = 1 //Mice can't eat others due to the amount of bugs caused by it. - - - - -/mob/living/simple_mob/mouse/attack_hand(mob/living/hander) - src.get_scooped(hander) //For one-click mouse scooping under any conditions. They knew what they were getting into! diff --git a/code/modules/mob/living/simple_animal/animals/parrot.dm b/code/modules/mob/living/simple_animal/animals/parrot.dm deleted file mode 100644 index 1c286228988..00000000000 --- a/code/modules/mob/living/simple_animal/animals/parrot.dm +++ /dev/null @@ -1,768 +0,0 @@ -/* Parrots! - * Contains - * Defines - * Inventory (headset stuff) - * Attack responces - * AI - * Procs / Verbs (usable by players) - * Sub-types - */ - -/* - * Defines - */ - -//Parrot is too snowflake for me to rewrite right now, someone should make it use the new -//simple_mob movement stuff. -Aro - -//Only a maximum of one action and one intent should be active at any given time. -//Actions -#define PARROT_PERCH 1 //Sitting/sleeping, not moving -#define PARROT_SWOOP 2 //Moving towards or away from a target -#define PARROT_WANDER 4 //Moving without a specific target in mind - -//Intents -#define PARROT_STEAL 8 //Flying towards a target to steal it/from it -#define PARROT_ATTACK 16 //Flying towards a target to attack it -#define PARROT_RETURN 32 //Flying towards its perch -#define PARROT_FLEE 64 //Flying away from its attacker - - -/mob/living/simple_mob/parrot - name = "parrot" - desc = "The parrot squawks, \"It's a parrot! BAWWK!\"" - tt_desc = "E Ara macao" - icon = 'icons/mob/animal.dmi' - icon_state = "parrot_fly" - icon_living = "parrot_fly" - icon_dead = "parrot_dead" - intelligence_level = SA_ANIMAL - - turns_per_move = 5 - pass_flags = PASSTABLE - mob_size = MOB_SMALL - - response_help = "pets" - response_disarm = "gently moves aside" - response_harm = "swats" - stop_automated_movement = 1 - universal_speak = 1 - - has_langs = list("Bird", "Galactic Common") - speak_chance = 2 - speak = list("Hi","Hello!","Cracker?","Bawk!") - speak_emote = list("squawks","says","yells") - emote_hear = list("squawks","bawks") - emote_see = list("flutters its wings") - - meat_type = /obj/item/weapon/reagent_containers/food/snacks/cracker - - hovering = TRUE - softfall = TRUE - parachuting = TRUE - - var/parrot_state = PARROT_WANDER //Hunt for a perch when created - var/parrot_sleep_max = 25 //The time the parrot sits while perched before looking around. Mosly a way to avoid the parrot's AI in life() being run every single tick. - var/parrot_sleep_dur = 25 //Same as above, this is the var that physically counts down - var/parrot_dam_zone = list(BP_TORSO, BP_HEAD, BP_L_ARM, BP_R_ARM, BP_L_LEG, BP_R_LEG) //For humans, select a bodypart to attack - - var/parrot_speed = 5 //"Delay in world ticks between movement." according to byond. Yeah, that's BS but it does directly affect movement. Higher number = slower. - var/parrot_been_shot = 0 //Parrots get a speed bonus after being shot. This will deincrement every Life() and at 0 the parrot will return to regular speed. - - var/list/speech_buffer = list() - var/list/available_channels = list() - - //Headset for Poly to yell at engineers :) - var/obj/item/device/radio/headset/ears = null - - //The thing the parrot is currently interested in. This gets used for items the parrot wants to pick up, mobs it wants to steal from, - //mobs it wants to attack or mobs that have attacked it - var/atom/movable/parrot_interest = null - - //Parrots will generally sit on their pertch unless something catches their eye. - //These vars store their preffered perch and if they dont have one, what they can use as a perch - var/obj/parrot_perch = null - var/obj/desired_perches = list(/obj/structure/frame, /obj/structure/displaycase, \ - /obj/structure/filingcabinet, /obj/machinery/teleport, \ - /obj/machinery/computer, /obj/machinery/clonepod, \ - /obj/machinery/dna_scannernew, /obj/machinery/telecomms, \ - /obj/machinery/nuclearbomb, /obj/machinery/particle_accelerator, \ - /obj/machinery/recharge_station, /obj/machinery/smartfridge, \ - /obj/machinery/suit_storage_unit) - - //Parrots are kleptomaniacs. This variable ... stores the item a parrot is holding. - var/obj/item/held_item = null - - -/mob/living/simple_mob/parrot/New() - ..() - if(!ears) - var/headset = pick(/obj/item/device/radio/headset/headset_sec, \ - /obj/item/device/radio/headset/headset_eng, \ - /obj/item/device/radio/headset/headset_med, \ - /obj/item/device/radio/headset/headset_sci, \ - /obj/item/device/radio/headset/headset_cargo) - ears = new headset(src) - - parrot_sleep_dur = parrot_sleep_max //In case someone decides to change the max without changing the duration var - - verbs.Add(/mob/living/simple_mob/parrot/proc/steal_from_ground, \ - /mob/living/simple_mob/parrot/proc/steal_from_mob, \ - /mob/living/simple_mob/parrot/verb/drop_held_item_player, \ - /mob/living/simple_mob/parrot/proc/perch_player) - - -/mob/living/simple_mob/parrot/death() - if(held_item) - held_item.forceMove(src.loc) - held_item = null - walk(src,0) - ..() - -/mob/living/simple_mob/parrot/Stat() - ..() - stat("Held Item", held_item) - -/* - * Inventory - */ -/mob/living/simple_mob/parrot/show_inv(mob/user as mob) - user.set_machine(src) - if(user.stat) return - - var/dat = "

Inventory of [name]

" - if(ears) - dat += "
Headset: [ears] (Remove)" - else - dat += "
Headset: Nothing" - - user << browse(dat, text("window=mob[];size=325x500", name)) - onclose(user, "mob[real_name]") - return - -/mob/living/simple_mob/parrot/Topic(href, href_list) - - //Can the usr physically do this? - if(!usr.canmove || usr.stat || usr.restrained() || !in_range(loc, usr)) - return - - //Is the usr's mob type able to do this? - if(ishuman(usr) || issmall(usr) || isrobot(usr)) - - //Removing from inventory - if(href_list["remove_inv"]) - var/remove_from = href_list["remove_inv"] - switch(remove_from) - if("ears") - if(ears) - if(available_channels.len) - src.say("[pick(available_channels)] BAWWWWWK LEAVE THE HEADSET BAWKKKKK!") - else - src.say("BAWWWWWK LEAVE THE HEADSET BAWKKKKK!") - ears.forceMove(src.loc) - ears = null - for(var/possible_phrase in speak) - if(copytext(possible_phrase,1,3) in department_radio_keys) - possible_phrase = copytext(possible_phrase,3,length(possible_phrase)) - else - to_chat(usr, "There is nothing to remove from its [remove_from].") - return - - //Adding things to inventory - else if(href_list["add_inv"]) - var/add_to = href_list["add_inv"] - if(!usr.get_active_hand()) - to_chat(usr, "You have nothing in your hand to put on its [add_to].") - return - switch(add_to) - if("ears") - if(ears) - to_chat(usr, "It's already wearing something.") - return - else - var/obj/item/item_to_add = usr.get_active_hand() - if(!item_to_add) - return - - if( !istype(item_to_add, /obj/item/device/radio/headset) ) - to_chat(usr, "This object won't fit.") - return - - var/obj/item/device/radio/headset/headset_to_add = item_to_add - - usr.drop_item() - headset_to_add.forceMove(src) - src.ears = headset_to_add - to_chat(usr, "You fit the headset onto [src].") - - clearlist(available_channels) - for(var/ch in headset_to_add.channels) - switch(ch) - if("Engineering") - available_channels.Add(":e") - if("Command") - available_channels.Add(":c") - if("Security") - available_channels.Add(":s") - if("Science") - available_channels.Add(":n") - if("Medical") - available_channels.Add(":m") - if("Mining") - available_channels.Add(":d") - if("Cargo") - available_channels.Add(":q") - - if(headset_to_add.translate_binary) - available_channels.Add("#b") - else - ..() - - -/* - * Attack responces - */ -//Humans, monkeys, aliens -/mob/living/simple_mob/parrot/attack_hand(mob/living/carbon/M as mob) - ..() - if(client) return - if(!stat && M.a_intent == I_HURT) - - icon_state = "parrot_fly" //It is going to be flying regardless of whether it flees or attacks - - if(parrot_state == PARROT_PERCH) - parrot_sleep_dur = parrot_sleep_max //Reset it's sleep timer if it was perched - - parrot_interest = M - parrot_state = PARROT_SWOOP //The parrot just got hit, it WILL move, now to pick a direction.. - - if(M.health < 50) //Weakened mob? Fight back! - parrot_state |= PARROT_ATTACK - else - parrot_state |= PARROT_FLEE //Otherwise, fly like a bat out of hell! - drop_held_item(0) - return - -//Mobs with objects -/mob/living/simple_mob/parrot/attackby(var/obj/item/O as obj, var/mob/user as mob) - ..() - if(!stat && !client && !istype(O, /obj/item/stack/medical)) - if(O.force) - if(parrot_state == PARROT_PERCH) - parrot_sleep_dur = parrot_sleep_max //Reset it's sleep timer if it was perched - - parrot_interest = user - parrot_state = PARROT_SWOOP | PARROT_FLEE - icon_state = "parrot_fly" - drop_held_item(0) - return - -//Bullets -/mob/living/simple_mob/parrot/bullet_act(var/obj/item/projectile/Proj) - ..() - if(!stat && !client) - if(parrot_state == PARROT_PERCH) - parrot_sleep_dur = parrot_sleep_max //Reset it's sleep timer if it was perched - - parrot_interest = null - parrot_state = PARROT_WANDER //OWFUCK, Been shot! RUN LIKE HELL! - parrot_been_shot += 5 - icon_state = "parrot_fly" - drop_held_item(0) - return - - -/* - * AI - Not really intelligent, but I'm calling it AI anyway. - */ -/mob/living/simple_mob/parrot/Life() - ..() - - //Sprite and AI update for when a parrot gets pulled - if(pulledby && stat == CONSCIOUS) - icon_state = "parrot_fly" - if(!client) - parrot_state = PARROT_WANDER - return - - if(client || stat) - return //Lets not force players or dead/incap parrots to move - - if(!isturf(src.loc) || !canmove || buckled) - return //If it can't move, dont let it move. (The buckled check probably isn't necessary thanks to canmove) - - -//-----SPEECH - /* Parrot speech mimickry! - Phrases that the parrot hears in mob/living/say() get added to speach_buffer. - Every once in a while, the parrot picks one of the lines from the buffer and replaces an element of the 'speech' list. - Then it clears the buffer to make sure they dont magically remember something from hours ago. */ - if(speech_buffer.len && prob(10)) - if(speak.len) - speak.Remove(pick(speak)) - - speak.Add(pick(speech_buffer)) - clearlist(speech_buffer) - - -//-----SLEEPING - if(parrot_state == PARROT_PERCH) - if(parrot_perch && parrot_perch.loc != src.loc) //Make sure someone hasnt moved our perch on us - if(parrot_perch in view(src)) - parrot_state = PARROT_SWOOP | PARROT_RETURN - icon_state = "parrot_fly" - return - else - parrot_state = PARROT_WANDER - icon_state = "parrot_fly" - return - - if(--parrot_sleep_dur) //Zzz - return - - else - //This way we only call the stuff below once every [sleep_max] ticks. - parrot_sleep_dur = parrot_sleep_max - - //Cycle through message modes for the headset - if(speak.len) - var/list/newspeak = list() - - if(available_channels.len && src.ears) - for(var/possible_phrase in speak) - - //50/50 chance to not use the radio at all - var/useradio = 0 - if(prob(50)) - useradio = 1 - - if(copytext(possible_phrase,1,3) in department_radio_keys) - possible_phrase = "[useradio?pick(available_channels):""] [copytext(possible_phrase,3,length(possible_phrase)+1)]" //crop out the channel prefix - else - possible_phrase = "[useradio?pick(available_channels):""] [possible_phrase]" - - newspeak.Add(possible_phrase) - - else //If we have no headset or channels to use, dont try to use any! - for(var/possible_phrase in speak) - if(copytext(possible_phrase,1,3) in department_radio_keys) - possible_phrase = "[copytext(possible_phrase,3,length(possible_phrase)+1)]" //crop out the channel prefix - newspeak.Add(possible_phrase) - speak = newspeak - - //Search for item to steal - parrot_interest = search_for_item() - if(parrot_interest) - visible_emote("looks in [parrot_interest]'s direction and takes flight") - parrot_state = PARROT_SWOOP | PARROT_STEAL - icon_state = "parrot_fly" - return - -//-----WANDERING - This is basically a 'I dont know what to do yet' state - else if(parrot_state == PARROT_WANDER) - //Stop movement, we'll set it later - walk(src, 0) - parrot_interest = null - - //Wander around aimlessly. This will help keep the loops from searches down - //and possibly move the mob into a new are in view of something they can use - if(prob(90)) - step(src, pick(cardinal)) - return - - if(!held_item && !parrot_perch) //If we've got nothing to do.. look for something to do. - var/atom/movable/AM = search_for_perch_and_item() //This handles checking through lists so we know it's either a perch or stealable item - if(AM) - if(istype(AM, /obj/item) || isliving(AM)) //If stealable item - parrot_interest = AM - visible_emote("turns and flies towards [parrot_interest]") - parrot_state = PARROT_SWOOP | PARROT_STEAL - return - else //Else it's a perch - parrot_perch = AM - parrot_state = PARROT_SWOOP | PARROT_RETURN - return - return - - if(parrot_interest && parrot_interest in view(src)) - parrot_state = PARROT_SWOOP | PARROT_STEAL - return - - if(parrot_perch && parrot_perch in view(src)) - parrot_state = PARROT_SWOOP | PARROT_RETURN - return - - else //Have an item but no perch? Find one! - parrot_perch = search_for_perch() - if(parrot_perch) - parrot_state = PARROT_SWOOP | PARROT_RETURN - return -//-----STEALING - else if(parrot_state == (PARROT_SWOOP | PARROT_STEAL)) - walk(src,0) - if(!parrot_interest || held_item) - parrot_state = PARROT_SWOOP | PARROT_RETURN - return - - if(!(parrot_interest in view(src))) - parrot_state = PARROT_SWOOP | PARROT_RETURN - return - - if(in_range(src, parrot_interest)) - - if(isliving(parrot_interest)) - steal_from_mob() - - else //This should ensure that we only grab the item we want, and make sure it's not already collected on our perch - if(!parrot_perch || parrot_interest.loc != parrot_perch.loc) - held_item = parrot_interest - parrot_interest.forceMove(src) - visible_message("[src] grabs the [held_item]!", "You grab the [held_item]!", "You hear the sounds of wings flapping furiously.") - - parrot_interest = null - parrot_state = PARROT_SWOOP | PARROT_RETURN - return - - walk_to(src, parrot_interest, 1, parrot_speed) - return - -//-----RETURNING TO PERCH - else if(parrot_state == (PARROT_SWOOP | PARROT_RETURN)) - walk(src, 0) - if(!parrot_perch || !isturf(parrot_perch.loc)) //Make sure the perch exists and somehow isnt inside of something else. - parrot_perch = null - parrot_state = PARROT_WANDER - return - - if(in_range(src, parrot_perch)) - src.forceMove(parrot_perch.loc) - drop_held_item() - parrot_state = PARROT_PERCH - icon_state = "parrot_sit" - return - - walk_to(src, parrot_perch, 1, parrot_speed) - return - -//-----FLEEING - else if(parrot_state == (PARROT_SWOOP | PARROT_FLEE)) - walk(src,0) - if(!parrot_interest || !isliving(parrot_interest)) //Sanity - parrot_state = PARROT_WANDER - - walk_away(src, parrot_interest, 1, parrot_speed-parrot_been_shot) - parrot_been_shot-- - return - -//-----ATTACKING - else if(parrot_state == (PARROT_SWOOP | PARROT_ATTACK)) - - //If we're attacking a nothing, an object, a turf or a ghost for some stupid reason, switch to wander - if(!parrot_interest || !isliving(parrot_interest)) - parrot_interest = null - parrot_state = PARROT_WANDER - return - - var/mob/living/L = parrot_interest - - //If the mob is close enough to interact with - if(in_range(src, parrot_interest)) - - //If the mob we've been chasing/attacking dies or falls into crit, check for loot! - if(L.stat) - parrot_interest = null - if(!held_item) - held_item = steal_from_ground() - if(!held_item) - held_item = steal_from_mob() //Apparently it's possible for dead mobs to hang onto items in certain circumstances. - if(parrot_perch in view(src)) //If we have a home nearby, go to it, otherwise find a new home - parrot_state = PARROT_SWOOP | PARROT_RETURN - else - parrot_state = PARROT_WANDER - return - - //Time for the hurt to begin! - var/damage = rand(5,10) - - if(ishuman(parrot_interest)) - var/mob/living/carbon/human/H = parrot_interest - var/obj/item/organ/external/affecting = H.get_organ(ran_zone(pick(parrot_dam_zone))) - - H.apply_damage(damage, BRUTE, affecting, H.run_armor_check(affecting, "melee"), H.get_armor_soak(affecting, "melee"), sharp=1) - visible_emote(pick("pecks [H]'s [affecting].", "cuts [H]'s [affecting] with its talons.")) - - else - L.adjustBruteLoss(damage) - visible_emote(pick("pecks at [L].", "claws [L].")) - return - - //Otherwise, fly towards the mob! - else - walk_to(src, parrot_interest, 1, parrot_speed) - return -//-----STATE MISHAP - else //This should not happen. If it does lets reset everything and try again - walk(src,0) - parrot_interest = null - parrot_perch = null - drop_held_item() - parrot_state = PARROT_WANDER - return - -/* - * Procs - */ - -/mob/living/simple_mob/parrot/movement_delay() - if(client && stat == CONSCIOUS && parrot_state != "parrot_fly") - icon_state = "parrot_fly" - ..() - -/mob/living/simple_mob/parrot/proc/search_for_item() - for(var/atom/movable/AM in view(src)) - //Skip items we already stole or are wearing or are too big - if(parrot_perch && AM.loc == parrot_perch.loc || AM.loc == src) - continue - - if(istype(AM, /obj/item)) - var/obj/item/I = AM - if(I.w_class < ITEMSIZE_SMALL) - return I - - if(iscarbon(AM)) - var/mob/living/carbon/C = AM - if((C.l_hand && C.l_hand.w_class <= ITEMSIZE_SMALL) || (C.r_hand && C.r_hand.w_class <= ITEMSIZE_SMALL)) - return C - return null - -/mob/living/simple_mob/parrot/proc/search_for_perch() - for(var/obj/O in view(src)) - for(var/path in desired_perches) - if(istype(O, path)) - return O - return null - -//This proc was made to save on doing two 'in view' loops seperatly -/mob/living/simple_mob/parrot/proc/search_for_perch_and_item() - for(var/atom/movable/AM in view(src)) - for(var/perch_path in desired_perches) - if(istype(AM, perch_path)) - return AM - - //Skip items we already stole or are wearing or are too big - if(parrot_perch && AM.loc == parrot_perch.loc || AM.loc == src) - continue - - if(istype(AM, /obj/item)) - var/obj/item/I = AM - if(I.w_class <= ITEMSIZE_SMALL) - return I - - if(iscarbon(AM)) - var/mob/living/carbon/C = AM - if(C.l_hand && C.l_hand.w_class <= ITEMSIZE_SMALL || C.r_hand && C.r_hand.w_class <= ITEMSIZE_SMALL) - return C - return null - - -/* - * Verbs - These are actually procs, but can be used as verbs by player-controlled parrots. - */ -/mob/living/simple_mob/parrot/proc/steal_from_ground() - set name = "Steal from ground" - set category = "Parrot" - set desc = "Grabs a nearby item." - - if(stat) - return -1 - - if(held_item) - to_chat(src, "You are already holding the [held_item]") - return 1 - - for(var/obj/item/I in view(1,src)) - //Make sure we're not already holding it and it's small enough - if(I.loc != src && I.w_class <= ITEMSIZE_SMALL) - - //If we have a perch and the item is sitting on it, continue - if(!client && parrot_perch && I.loc == parrot_perch.loc) - continue - - held_item = I - I.forceMove(src) - visible_message("[src] grabs the [held_item]!", "You grab the [held_item]!", "You hear the sounds of wings flapping furiously.") - return held_item - - to_chat(src, "There is nothing of interest to take.") - return 0 - -/mob/living/simple_mob/parrot/proc/steal_from_mob() - set name = "Steal from mob" - set category = "Parrot" - set desc = "Steals an item right out of a person's hand!" - - if(stat) - return -1 - - if(held_item) - to_chat(src, "You are already holding the [held_item]") - return 1 - - var/obj/item/stolen_item = null - - for(var/mob/living/carbon/C in view(1,src)) - if(C.l_hand && C.l_hand.w_class <= ITEMSIZE_SMALL) - stolen_item = C.l_hand - - if(C.r_hand && C.r_hand.w_class <= ITEMSIZE_SMALL) - stolen_item = C.r_hand - - if(stolen_item) - C.remove_from_mob(stolen_item) - held_item = stolen_item - stolen_item.forceMove(src) - visible_message("[src] grabs the [held_item] out of [C]'s hand!", "You snag the [held_item] out of [C]'s hand!", "You hear the sounds of wings flapping furiously.") - return held_item - - to_chat(src, "There is nothing of interest to take.") - return 0 - -/mob/living/simple_mob/parrot/verb/drop_held_item_player() - set name = "Drop held item" - set category = "Parrot" - set desc = "Drop the item you're holding." - - if(stat) - return - - src.drop_held_item() - - return - -/mob/living/simple_mob/parrot/proc/drop_held_item(var/drop_gently = 1) - set name = "Drop held item" - set category = "Parrot" - set desc = "Drop the item you're holding." - - if(stat) - return -1 - - if(!held_item) - to_chat(usr, "You have nothing to drop!") - return 0 - - if(!drop_gently) - if(istype(held_item, /obj/item/weapon/grenade)) - var/obj/item/weapon/grenade/G = held_item - G.forceMove(src.loc) - G.detonate() - to_chat(src, "You let go of the [held_item]!") - held_item = null - return 1 - - to_chat(src, "You drop the [held_item].") - - held_item.forceMove(src.loc) - held_item = null - return 1 - -/mob/living/simple_mob/parrot/proc/perch_player() - set name = "Sit" - set category = "Parrot" - set desc = "Sit on a nice comfy perch." - - if(stat || !client) - return - - if(icon_state == "parrot_fly") - for(var/atom/movable/AM in view(src,1)) - for(var/perch_path in desired_perches) - if(istype(AM, perch_path)) - src.forceMove(AM.loc) - icon_state = "parrot_sit" - return - to_chat(src, "There is no perch nearby to sit on.") - return - -/* - * Sub-types - */ -/mob/living/simple_mob/parrot/Poly - name = "Poly" - desc = "Poly the Parrot. An expert on quantum cracker theory." - speak = list("Poly wanna cracker!", ":e Check the singlo, you chucklefucks!",":e Wire the solars, you lazy bums!",":e WHO TOOK THE DAMN HARDSUITS?",":e OH GOD ITS FREE CALL THE SHUTTLE") - -/mob/living/simple_mob/parrot/Poly/New() - ears = new /obj/item/device/radio/headset/headset_eng(src) - available_channels = list(":e") - ..() - -/mob/living/simple_mob/parrot/say(var/message) - - if(stat) - return - - var/verb = "says" - if(speak_emote.len) - verb = pick(speak_emote) - - - var/message_mode="" - if(copytext(message,1,2) == ";") - message_mode = "headset" - message = copytext(message,2) - - if(length(message) >= 2) - var/channel_prefix = copytext(message, 1 ,3) - message_mode = department_radio_keys[channel_prefix] - - if(copytext(message,1,2) == ":") - var/positioncut = 3 - message = trim(copytext(message,positioncut)) - - message = capitalize(trim_left(message)) - - if(message_mode) - if(message_mode in radiochannels) - if(ears && istype(ears,/obj/item/device/radio)) - ears.talk_into(src,sanitize(message), message_mode, verb, null) - - - ..(message) - - -/mob/living/simple_mob/parrot/hear_say(var/message, var/verb = "says", var/datum/language/language = null, var/alt_name = "",var/italics = 0, var/mob/speaker = null) - if(prob(50)) - parrot_hear(message) - ..(message,verb,language,alt_name,italics,speaker) - - - -/mob/living/simple_mob/parrot/hear_radio(var/message, var/verb="says", var/datum/language/language=null, var/part_a, var/part_b, var/part_c, var/mob/speaker = null, var/hard_to_hear = 0) - if(prob(50)) - parrot_hear("[pick(available_channels)] [message]") - ..(message,verb,language,part_a,part_b,speaker,hard_to_hear) - - -/mob/living/simple_mob/parrot/proc/parrot_hear(var/message="") - if(!message || stat) - return - speech_buffer.Add(message) - -/mob/living/simple_mob/parrot/attack_generic(var/mob/user, var/damage, var/attack_message) - - var/success = ..() - - if(client) - return success - - if(parrot_state == PARROT_PERCH) - parrot_sleep_dur = parrot_sleep_max //Reset it's sleep timer if it was perched - - if(!success) - return 0 - - parrot_interest = user - parrot_state = PARROT_SWOOP | PARROT_ATTACK //Attack other animals regardless - icon_state = "parrot_fly" - return success diff --git a/code/modules/mob/living/simple_animal/animals/penguin.dm b/code/modules/mob/living/simple_animal/animals/penguin.dm deleted file mode 100644 index 105d6e7c213..00000000000 --- a/code/modules/mob/living/simple_animal/animals/penguin.dm +++ /dev/null @@ -1,27 +0,0 @@ -/mob/living/simple_mob/penguin - name = "space penguin" - desc = "An ungainly, waddling, cute, and VERY well-dressed bird." - tt_desc = "E Aptenodytes forsteri" - icon_state = "penguin" - icon_living = "penguin" - icon_dead = "penguin_dead" - intelligence_level = SA_ANIMAL - - maxHealth = 20 - health = 20 - - turns_per_move = 5 - - response_help = "pets" - response_disarm = "pushes aside" - response_harm = "hits" - - harm_intent_damage = 5 - melee_damage_lower = 10 - melee_damage_upper = 15 - attacktext = list("pecked") - - has_langs = list("Bird") - speak_chance = 0 - - meat_type = /obj/item/weapon/reagent_containers/food/snacks/meat diff --git a/code/modules/mob/living/simple_animal/animals/pike_vr.dm b/code/modules/mob/living/simple_animal/animals/pike_vr.dm deleted file mode 100644 index b04b83c14f9..00000000000 --- a/code/modules/mob/living/simple_animal/animals/pike_vr.dm +++ /dev/null @@ -1,34 +0,0 @@ -/mob/living/simple_mob/hostile/carp/pike - name = "space pike" - desc = "A bigger, angrier cousin of the space carp." - icon = 'icons/mob/spaceshark.dmi' - icon_state = "shark" - icon_living = "shark" - icon_dead = "shark_dead" - - maxHealth = 150 - health = 150 - speed = 0 - move_to_delay = 2 - - turns_per_move = 2 - mob_size = MOB_LARGE - - harm_intent_damage = 5 - melee_damage_lower = 20 - melee_damage_upper = 25 - - meat_amount = 10 - - old_x = -16 - pixel_x = -16 - - vore_icons = 0 //No custom icons yet - -/mob/living/simple_mob/hostile/carp/pike/weak - maxHealth = 75 - health = 75 - -/mob/living/simple_mob/hostile/carp/strong - maxHealth = 50 - health = 50 diff --git a/code/modules/mob/living/simple_animal/animals/slime.dm b/code/modules/mob/living/simple_animal/animals/slime.dm deleted file mode 100644 index 7db2392808a..00000000000 --- a/code/modules/mob/living/simple_animal/animals/slime.dm +++ /dev/null @@ -1,70 +0,0 @@ -/mob/living/simple_mob/old_slime - name = "pet slime" - desc = "A lovable, domesticated slime." - tt_desc = "Amorphidae proteus" - icon = 'icons/mob/slimes.dmi' - icon_state = "grey baby slime" - icon_living = "grey baby slime" - icon_dead = "grey baby slime dead" - - maxHealth = 100 - health = 100 - - response_help = "pets" - response_disarm = "shoos" - response_harm = "stomps on" - - speak_chance = 1 - speak_emote = list("chirps") - emote_see = list("jiggles", "bounces in place") - - var/colour = "grey" - -/mob/living/simple_mob/old_slime/science - name = "Kendrick" - colour = "rainbow" - icon_state = "rainbow baby slime" - icon_living = "rainbow baby slime" - icon_dead = "rainbow baby slime dead" - -/mob/living/simple_animal/slime/science/Initialize() - . = ..() - overlays.Cut() - overlays += "aslime-:33" - -/mob/living/simple_mob/adultslime - name = "pet slime" - desc = "A lovable, domesticated slime." - icon = 'icons/mob/slimes.dmi' - icon_state = "grey adult slime" - icon_living = "grey adult slime" - icon_dead = "grey baby slime dead" - - maxHealth = 200 - health = 200 - - response_help = "pets" - response_disarm = "shoos" - response_harm = "stomps on" - - speak_chance = 1 - emote_see = list("jiggles", "bounces in place") - - var/colour = "grey" - -/mob/living/simple_mob/adultslime/New() - ..() - overlays += "aslime-:33" - -/mob/living/simple_mob/adultslime/death() - var/mob/living/simple_mob/old_slime/S1 = new /mob/living/simple_mob/old_slime (src.loc) - S1.icon_state = "[src.colour] baby slime" - S1.icon_living = "[src.colour] baby slime" - S1.icon_dead = "[src.colour] baby slime dead" - S1.colour = "[src.colour]" - var/mob/living/simple_mob/old_slime/S2 = new /mob/living/simple_mob/old_slime (src.loc) - S2.icon_state = "[src.colour] baby slime" - S2.icon_living = "[src.colour] baby slime" - S2.icon_dead = "[src.colour] baby slime dead" - S2.colour = "[src.colour]" - qdel(src) \ No newline at end of file diff --git a/code/modules/mob/living/simple_animal/animals/snake_vr.dm b/code/modules/mob/living/simple_animal/animals/snake_vr.dm deleted file mode 100644 index b6f6618184d..00000000000 --- a/code/modules/mob/living/simple_animal/animals/snake_vr.dm +++ /dev/null @@ -1,104 +0,0 @@ -/mob/living/simple_mob/snake - name = "snake" - desc = "A big thick snake." - icon = 'icons/mob/snake_vr.dmi' - icon_state = "snake" - icon_living = "snake" - icon_dead = "snake_dead" - - maxHealth = 20 - health = 20 - - turns_per_move = 8 // SLOW-ASS MUTHAFUCKA - - response_help = "pets" - response_disarm = "shoos" - response_harm = "kicks" - - melee_damage_lower = 3 - melee_damage_upper = 5 - attacktext = list("bitten") - - speak_chance = 1 - speak_emote = list("hisses") - -//NOODLE IS HERE! SQUEEEEEEEE~ -/mob/living/simple_mob/snake/Noodle - name = "Noodle" - desc = "This snake is particularly chubby and demands nothing but the finest of treats." - var/turns_since_scan = 0 - var/obj/movement_target - -/mob/living/simple_mob/snake/Noodle/Life() //stolen from Ian in corgi.dm - if(!..()) - return 0 - - if(!stat && !resting && !buckled && !ai_inactive) - turns_since_scan++ - if(turns_since_scan > 5) - turns_since_scan = 0 - if(movement_target && !(isturf(movement_target.loc) || ishuman(movement_target.loc))) - movement_target = null - stop_automated_movement = 0 - if(!movement_target || !(movement_target.loc in oview(src, 5)) ) - movement_target = null - stop_automated_movement = 0 - walk(src,0) - for(var/obj/item/weapon/reagent_containers/food/snacks/snakesnack/S in oview(src,3)) - if(isturf(S.loc)) - movement_target = S - visible_emote("turns towards \the [movement_target] and slithers towards it.") - break - - if(movement_target) - stop_automated_movement = 1 - walk_to(src, movement_target, 0, 5) - spawn(10) - if(Adjacent(movement_target)) - visible_message("[src] swallows the [movement_target] whole!") - qdel(movement_target) - walk(src,0) - else if(ishuman(movement_target.loc) && prob(20)) - visible_emote("stares at the [movement_target] that [movement_target.loc] has with an unknowable reptilian gaze.") - -/mob/living/simple_mob/snake/Noodle/attackby(var/obj/item/O, var/mob/user) - if(istype(O, /obj/item/weapon/reagent_containers/food/snacks/snakesnack)) - visible_message("[user] feeds \the [O] to [src].") - qdel(O) - else - return ..() - -//Special snek-snax for Noodle! -/obj/item/weapon/reagent_containers/food/snacks/snakesnack - name = "sugar mouse" - desc = "A little mouse treat made of coloured sugar. Noodle loves these!" - var/snack_colour - icon = 'icons/mob/snake_vr.dmi' - icon_state = "snack_yellow" - nutriment_amt = 1 - nutriment_desc = list("sugar" = 1) - -/obj/item/weapon/reagent_containers/food/snacks/snakesnack/New() - ..() - if(!snack_colour) - snack_colour = pick( list("yellow","green","pink","blue") ) - icon_state = "snack_[snack_colour]" - desc = "A little mouse treat made of coloured sugar. Noodle loves these! This one is [snack_colour]." - reagents.add_reagent("sugar", 2) - -/obj/item/weapon/storage/box/snakesnackbox - name = "box of Snake Snax" - desc = "A box containing Noodle's special sugermouse treats." - icon = 'icons/mob/snake_vr.dmi' - icon_state = "sneksnakbox" - storage_slots = 7 - -/obj/item/weapon/storage/box/snakesnackbox/New() - new /obj/item/weapon/reagent_containers/food/snacks/snakesnack(src) - new /obj/item/weapon/reagent_containers/food/snacks/snakesnack(src) - new /obj/item/weapon/reagent_containers/food/snacks/snakesnack(src) - new /obj/item/weapon/reagent_containers/food/snacks/snakesnack(src) - new /obj/item/weapon/reagent_containers/food/snacks/snakesnack(src) - new /obj/item/weapon/reagent_containers/food/snacks/snakesnack(src) - new /obj/item/weapon/reagent_containers/food/snacks/snakesnack(src) - ..() diff --git a/code/modules/mob/living/simple_animal/animals/spiderbot.dm b/code/modules/mob/living/simple_animal/animals/spiderbot.dm deleted file mode 100644 index 35b5a56926c..00000000000 --- a/code/modules/mob/living/simple_animal/animals/spiderbot.dm +++ /dev/null @@ -1,302 +0,0 @@ -/mob/living/simple_mob/spiderbot - name = "spider-bot" - desc = "A skittering robotic friend!" - tt_desc = "Maintenance Robot" - icon = 'icons/mob/robots.dmi' - icon_state = "spiderbot-chassis" - icon_living = "spiderbot-chassis" - icon_dead = "spiderbot-smashed" - intelligence_level = SA_HUMANOID // Because its piloted by players. - - health = 10 - maxHealth = 10 - - wander = 0 - speed = -1 //Spiderbots gotta go fast. - pass_flags = PASSTABLE - mob_size = MOB_SMALL - - response_help = "pets" - response_disarm = "shoos" - response_harm = "stomps on" - - melee_damage_lower = 1 - melee_damage_upper = 3 - attacktext = list("shocked") - - min_oxy = 0 - max_tox = 0 - max_co2 = 0 - minbodytemp = 0 - maxbodytemp = 500 - - speak_chance = 1 - speak_emote = list("beeps","clicks","chirps") - - var/obj/item/device/radio/borg/radio = null - var/mob/living/silicon/ai/connected_ai = null - var/obj/item/weapon/cell/cell = null - var/obj/machinery/camera/camera = null - var/obj/item/device/mmi/mmi = null - var/list/req_access = list(access_robotics) //Access needed to pop out the brain. - var/positronic - - can_enter_vent_with = list( - /obj/item/weapon/implant, - /obj/item/device/radio/borg, - /obj/item/weapon/holder, - /obj/machinery/camera, - /mob/living/simple_mob/animal/borer, - /obj/item/device/mmi, - ) - - var/emagged = 0 - var/obj/item/held_item = null //Storage for single item they can hold. - -/mob/living/simple_mob/spiderbot/New() - ..() - add_language(LANGUAGE_GALCOM) - default_language = all_languages[LANGUAGE_GALCOM] - verbs |= /mob/living/proc/ventcrawl - verbs |= /mob/living/proc/hide - -/mob/living/simple_mob/spiderbot/attackby(var/obj/item/O as obj, var/mob/user as mob) - - if(istype(O, /obj/item/device/mmi)) - var/obj/item/device/mmi/B = O - if(src.mmi) - user << "There's already a brain in [src]!" - return - if(!B.brainmob) - user << "Sticking an empty MMI into the frame would sort of defeat the purpose." - return - if(!B.brainmob.key) - var/ghost_can_reenter = 0 - if(B.brainmob.mind) - for(var/mob/observer/dead/G in player_list) - if(G.can_reenter_corpse && G.mind == B.brainmob.mind) - ghost_can_reenter = 1 - break - if(!ghost_can_reenter) - user << "[O] is completely unresponsive; there's no point." - return - - if(B.brainmob.stat == DEAD) - user << "[O] is dead. Sticking it into the frame would sort of defeat the purpose." - return - - if(jobban_isbanned(B.brainmob, "Cyborg")) - user << "\The [O] does not seem to fit." - return - - user << "You install \the [O] in \the [src]!" - - if(istype(O, /obj/item/device/mmi/digital)) - positronic = 1 - add_language("Robot Talk") - - user.drop_item() - src.mmi = O - src.transfer_personality(O) - - O.forceMove(src) - src.update_icon() - return 1 - - if (istype(O, /obj/item/weapon/weldingtool)) - var/obj/item/weapon/weldingtool/WT = O - if (WT.remove_fuel(0)) - if(health < getMaxHealth()) - health += pick(1,1,1,2,2,3) - if(health > getMaxHealth()) - health = getMaxHealth() - add_fingerprint(user) - src.visible_message("\The [user] has spot-welded some of the damage to \the [src]!") - else - user << "\The [src] is undamaged!" - else - user << "You need more welding fuel for this task!" - return - else if(istype(O, /obj/item/weapon/card/id)||istype(O, /obj/item/device/pda)) - if (!mmi) - user << "There's no reason to swipe your ID - \the [src] has no brain to remove." - return 0 - - var/obj/item/weapon/card/id/id_card - - if(istype(O, /obj/item/weapon/card/id)) - id_card = O - else - var/obj/item/device/pda/pda = O - id_card = pda.id - - if(access_robotics in id_card.access) - user << "You swipe your access card and pop the brain out of \the [src]." - eject_brain() - if(held_item) - held_item.forceMove(src.loc) - held_item = null - return 1 - else - user << "You swipe your card with no effect." - return 0 - - else - O.attack(src, user, user.zone_sel.selecting) - -/mob/living/simple_mob/spiderbot/emag_act(var/remaining_charges, var/mob/user) - if (emagged) - user << "[src] is already overloaded - better run." - return 0 - else - user << "You short out the security protocols and overload [src]'s cell, priming it to explode in a short time." - spawn(100) - to_chat(src, "Your cell seems to be outputting a lot of power...") - spawn(200) - to_chat(src, "Internal heat sensors are spiking! Something is badly wrong with your cell!") - spawn(300) src.explode() - -/mob/living/simple_mob/spiderbot/proc/transfer_personality(var/obj/item/device/mmi/M as obj) - - src.mind = M.brainmob.mind - src.mind.key = M.brainmob.key - src.ckey = M.brainmob.ckey - src.name = "spider-bot ([M.brainmob.name])" - src.languages = M.brainmob.languages - -/mob/living/simple_mob/spiderbot/proc/explode() //When emagged. - src.visible_message("\The [src] makes an odd warbling noise, fizzles, and explodes!") - explosion(get_turf(loc), -1, -1, 3, 5) - eject_brain() - death() - -/mob/living/simple_mob/spiderbot/update_icon() - if(mmi) - if(positronic) - icon_state = "spiderbot-chassis-posi" - icon_living = "spiderbot-chassis-posi" - else - icon_state = "spiderbot-chassis-mmi" - icon_living = "spiderbot-chassis-mmi" - else - icon_state = "spiderbot-chassis" - icon_living = "spiderbot-chassis" - -/mob/living/simple_mob/spiderbot/proc/eject_brain() - if(mmi) - var/turf/T = get_turf(loc) - if(T) - mmi.forceMove(T) - if(mind) mind.transfer_to(mmi.brainmob) - mmi = null - real_name = initial(real_name) - name = real_name - update_icon() - remove_language("Robot Talk") - positronic = null - -/mob/living/simple_mob/spiderbot/Destroy() - eject_brain() - ..() - -/mob/living/simple_mob/spiderbot/New() - - radio = new /obj/item/device/radio/borg(src) - camera = new /obj/machinery/camera(src) - camera.c_tag = "spiderbot-[real_name]" - camera.replace_networks(list("SS13")) - - ..() - -/mob/living/simple_mob/spiderbot/death() - - living_mob_list -= src - dead_mob_list += src - - if(camera) - camera.status = 0 - - held_item.forceMove(src.loc) - held_item = null - - gibs(loc, null, null, /obj/effect/gibspawner/robot) //TODO: use gib() or refactor spiderbots into synthetics. - qdel(src) - return - -//Cannibalized from the parrot mob. ~Zuhayr -/mob/living/simple_mob/spiderbot/verb/drop_held_item() - set name = "Drop held item" - set category = "Spiderbot" - set desc = "Drop the item you're holding." - - if(stat) - return - - if(!held_item) - usr << "You have nothing to drop!" - return 0 - - if(istype(held_item, /obj/item/weapon/grenade)) - visible_message("\The [src] launches \the [held_item]!", \ - "You launch \the [held_item]!", \ - "You hear a skittering noise and a thump!") - var/obj/item/weapon/grenade/G = held_item - G.forceMove(src.loc) - G.detonate() - held_item = null - return 1 - - visible_message("\The [src] drops \the [held_item].", \ - "You drop \the [held_item].", \ - "You hear a skittering noise and a soft thump.") - - held_item.forceMove(src.loc) - held_item = null - return 1 - - return - -/mob/living/simple_mob/spiderbot/verb/get_item() - set name = "Pick up item" - set category = "Spiderbot" - set desc = "Allows you to take a nearby small item." - - if(stat) - return -1 - - if(held_item) - to_chat(src, "You are already holding \the [held_item]") - return 1 - - var/list/items = list() - for(var/obj/item/I in view(1,src)) - if(I.loc != src && I.w_class <= ITEMSIZE_SMALL && I.Adjacent(src) ) - items.Add(I) - - var/obj/selection = input("Select an item.", "Pickup") in items - - if(selection) - for(var/obj/item/I in view(1, src)) - if(selection == I) - held_item = selection - selection.forceMove(src) - visible_message("\The [src] scoops up \the [held_item].", \ - "You grab \the [held_item].", \ - "You hear a skittering noise and a clink.") - return held_item - to_chat(src, "\The [selection] is too far away.") - return 0 - - to_chat(src, "There is nothing of interest to take.") - return 0 - -/mob/living/simple_mob/spiderbot/examine(mob/user) - ..(user) - if(src.held_item) - user << "It is carrying \icon[src.held_item] \a [src.held_item]." - -/mob/living/simple_mob/spiderbot/cannot_use_vents() - return - -/mob/living/simple_mob/spiderbot/binarycheck() - return positronic diff --git a/code/modules/mob/living/simple_animal/animals/tomato.dm b/code/modules/mob/living/simple_animal/animals/tomato.dm deleted file mode 100644 index 175875c4d2a..00000000000 --- a/code/modules/mob/living/simple_animal/animals/tomato.dm +++ /dev/null @@ -1,24 +0,0 @@ -/mob/living/simple_mob/hostile/tomato - name = "tomato" - desc = "It's a horrifyingly enormous beef tomato, and it's packing extra beef!" - tt_desc = "X Solanum abominable" - icon_state = "tomato" - icon_living = "tomato" - icon_dead = "tomato_dead" - intelligence_level = SA_PLANT - - faction = "plants" - maxHealth = 15 - health = 15 - turns_per_move = 5 - - response_help = "prods" - response_disarm = "pushes aside" - response_harm = "smacks" - - harm_intent_damage = 5 - melee_damage_upper = 15 - melee_damage_lower = 10 - attacktext = list("mauled") - - meat_type = /obj/item/weapon/reagent_containers/food/snacks/tomatomeat diff --git a/code/modules/mob/living/simple_animal/animals/tree.dm b/code/modules/mob/living/simple_animal/animals/tree.dm deleted file mode 100644 index 79e24c09f38..00000000000 --- a/code/modules/mob/living/simple_animal/animals/tree.dm +++ /dev/null @@ -1,60 +0,0 @@ -/mob/living/simple_mob/hostile/tree - name = "pine tree" - desc = "A pissed off tree-like alien. It seems annoyed with the festivities..." - tt_desc = "X Festivus tyrannus" - icon = 'icons/obj/flora/pinetrees.dmi' - icon_state = "pine_1" - icon_living = "pine_1" - icon_dead = "pine_1" - icon_gib = "pine_1" - intelligence_level = SA_PLANT - - faction = "carp" //Trees can be carp friends? - maxHealth = 250 - health = 250 - speed = -1 - - turns_per_move = 5 - - response_help = "brushes" - response_disarm = "pushes" - response_harm = "hits" - - harm_intent_damage = 5 - melee_damage_lower = 8 - melee_damage_upper = 12 - attacktext = list("bitten") - attack_sound = 'sound/weapons/bite.ogg' - - min_oxy = 0 - max_oxy = 0 - min_tox = 0 - max_tox = 0 - min_co2 = 0 - max_co2 = 0 - min_n2 = 0 - max_n2 = 0 - minbodytemp = 0 - - meat_type = /obj/item/weapon/reagent_containers/food/snacks/carpmeat - - pixel_x = -16 - -/mob/living/simple_mob/hostile/tree/FindTarget() - . = ..() - if(.) - audible_emote("growls at [.]") - -/mob/living/simple_mob/hostile/tree/PunchTarget() - . =..() - var/mob/living/L = . - if(istype(L)) - if(prob(15)) - L.Weaken(3) - L.visible_message("\the [src] knocks down \the [L]!") - -/mob/living/simple_mob/hostile/tree/death() - ..(null,"is hacked into pieces!") - playsound(loc, 'sound/effects/woodcutting.ogg', 100, 1) - new /obj/item/stack/material/wood(loc) - qdel(src) \ No newline at end of file diff --git a/code/modules/mob/living/simple_animal/animals/worm.dm b/code/modules/mob/living/simple_animal/animals/worm.dm deleted file mode 100644 index 4b82fdee741..00000000000 --- a/code/modules/mob/living/simple_animal/animals/worm.dm +++ /dev/null @@ -1,199 +0,0 @@ -/mob/living/simple_mob/space_worm - name = "space worm segment" - desc = "A part of a space worm." - icon = 'icons/mob/animal.dmi' - icon_state = "spaceworm" - icon_living = "spaceworm" - icon_dead = "spacewormdead" - intelligence_level = SA_ANIMAL - - - maxHealth = 30 - health = 30 - speed = -1 - - status_flags = 0 - universal_speak = 1 - stop_automated_movement = 1 - wander = 0 - animate_movement = SYNC_STEPS - - response_help = "touches" - response_disarm = "flails at" - response_harm = "punches the" - - harm_intent_damage = 2 - - minbodytemp = 0 - maxbodytemp = 350 - min_oxy = 0 - max_co2 = 0 - max_tox = 0 - - environment_smash = 2 - - speak_emote = list("transmits") //not supposed to be used under AI control - emote_hear = list("transmits") //I'm just adding it so it doesn't runtime if controlled by player who speaks - - var/mob/living/simple_mob/space_worm/previous //next/previous segments, correspondingly - var/mob/living/simple_mob/space_worm/next //head is the nextest segment - - var/stomachProcessProbability = 50 - var/digestionProbability = 20 - var/flatPlasmaValue = 5 //flat plasma amount given for non-items - - var/atom/currentlyEating //what the worm is currently eating - var/eatingDuration = 0 //how long he's been eating it for - - head - name = "space worm head" - icon_state = "spacewormhead" - icon_living = "spacewormhead" - icon_dead = "spacewormdead" - - maxHealth = 20 - health = 20 - - melee_damage_lower = 10 - melee_damage_upper = 15 - attacktext = list("bitten") - - animate_movement = SLIDE_STEPS - - New(var/location, var/segments = 6) - ..() - - var/mob/living/simple_mob/space_worm/current = src - - for(var/i = 1 to segments) - var/mob/living/simple_mob/space_worm/newSegment = new /mob/living/simple_mob/space_worm(loc) - current.Attach(newSegment) - current = newSegment - - update_icon() - if(stat == CONSCIOUS || stat == UNCONSCIOUS) - icon_state = "spacewormhead[previous?1:0]" - if(previous) - set_dir(get_dir(previous,src)) - else - icon_state = "spacewormheaddead" - - Life() - ..() - - if(next && !(next in view(src,1))) - Detach() - - if(stat == DEAD) //dead chunks fall off and die immediately - if(previous) - previous.Detach() - if(next) - Detach(1) - - if(prob(stomachProcessProbability)) - ProcessStomach() - - update_icon() - - return - - Destroy() //if a chunk a destroyed, make a new worm out of the split halves - if(previous) - previous.Detach() - ..() - - Move() - var/attachementNextPosition = loc - if(..()) - if(previous) - previous.Move(attachementNextPosition) - update_icon() - - Bump(atom/obstacle) - if(currentlyEating != obstacle) - currentlyEating = obstacle - eatingDuration = 0 - - if(!AttemptToEat(obstacle)) - eatingDuration++ - else - currentlyEating = null - eatingDuration = 0 - - return - - update_icon() //only for the sake of consistency with the other update icon procs - if(stat == CONSCIOUS || stat == UNCONSCIOUS) - if(previous) //midsection - icon_state = "spaceworm[get_dir(src,previous) | get_dir(src,next)]" //see 3 lines below - else //tail - icon_state = "spacewormtail" - set_dir(get_dir(src,next)) //next will always be present since it's not a head and if it's dead, it goes in the other if branch - else - icon_state = "spacewormdead" - - return - - proc/AttemptToEat(var/atom/target) - if(istype(target,/turf/simulated/wall)) - var/turf/simulated/wall/W = target - if((!W.reinf_material && eatingDuration >= 100) || eatingDuration >= 200) //need 20 ticks to eat an rwall, 10 for a regular one - W.dismantle_wall() - return 1 - else if(istype(target,/atom/movable)) - if(istype(target,/mob) || eatingDuration >= 50) //5 ticks to eat stuff like airlocks - var/atom/movable/objectOrMob = target - contents += objectOrMob - return 1 - - return 0 - - proc/Attach(var/mob/living/simple_mob/space_worm/attachement) - if(!attachement) - return - - previous = attachement - attachement.next = src - - return - - proc/Detach(die = 0) - var/mob/living/simple_mob/space_worm/newHead = new /mob/living/simple_mob/space_worm/head(loc,0) - var/mob/living/simple_mob/space_worm/newHeadPrevious = previous - - previous = null //so that no extra heads are spawned - - newHead.Attach(newHeadPrevious) - - if(die) - newHead.death() - - qdel(src) - - proc/ProcessStomach() - for(var/atom/movable/stomachContent in contents) - if(prob(digestionProbability)) - if(istype(stomachContent,/obj/item/stack)) //converts to plasma, keeping the stack value - if(!istype(stomachContent,/obj/item/stack/material/phoron)) - var/obj/item/stack/oldStack = stomachContent - new /obj/item/stack/material/phoron(src, oldStack.get_amount()) - qdel(oldStack) - continue - else if(istype(stomachContent,/obj/item)) //converts to plasma, keeping the w_class - var/obj/item/oldItem = stomachContent - new /obj/item/stack/material/phoron(src, oldItem.w_class) - qdel(oldItem) - continue - else - new /obj/item/stack/material/phoron(src, flatPlasmaValue) //just flat amount - qdel(stomachContent) - continue - - if(previous) - for(var/atom/movable/stomachContent in contents) //transfer it along the digestive tract - previous.contents += stomachContent - else - for(var/atom/movable/stomachContent in contents) //or poop it out - loc.contents += stomachContent - - return diff --git a/code/modules/mob/living/simple_animal/borer/borer.dm b/code/modules/mob/living/simple_animal/borer/borer.dm deleted file mode 100644 index 8b28544b9e7..00000000000 --- a/code/modules/mob/living/simple_animal/borer/borer.dm +++ /dev/null @@ -1,213 +0,0 @@ -/mob/living/simple_mob/animal/borer - name = "cortical borer" - real_name = "cortical borer" - desc = "A small, quivering sluglike creature." - speak_emote = list("chirrups") - emote_hear = list("chirrups") - intelligence_level = SA_HUMANOID // Player controlled. - response_help = "pokes" - response_disarm = "prods" - response_harm = "stomps on" - icon_state = "brainslug" - item_state = "brainslug" - icon_living = "brainslug" - icon_dead = "brainslug_dead" - speed = 5 - a_intent = I_HURT - stop_automated_movement = 1 - status_flags = CANPUSH - attacktext = list("nipped") - friendly = "prods" - wander = 0 - pass_flags = PASSTABLE - universal_understand = 1 - holder_type = /obj/item/weapon/holder/borer - - var/used_dominate - var/chemicals = 10 // Chemicals used for reproduction and spitting neurotoxin. - var/mob/living/carbon/human/host // Human host for the brain worm. - var/truename // Name used for brainworm-speak. - var/mob/living/captive_brain/host_brain // Used for swapping control of the body back and forth. - var/controlling // Used in human death check. - var/docile = 0 // Sugar can stop borers from acting. - var/has_reproduced - var/roundstart - - can_be_antagged = TRUE - -/mob/living/simple_mob/animal/borer/roundstart - roundstart = 1 - -/mob/living/simple_mob/animal/borer/Login() - ..() - if(mind) - borers.add_antagonist(mind) - -/mob/living/simple_mob/animal/borer/New() - ..() - - add_language("Cortical Link") - verbs += /mob/living/proc/ventcrawl - verbs += /mob/living/proc/hide - - truename = "[pick("Primary","Secondary","Tertiary","Quaternary")] [rand(1000,9999)]" - if(!roundstart) request_player() - -/mob/living/simple_mob/animal/borer/Life() - - ..() - - if(host) - - if(!stat && !host.stat) - - if(host.reagents.has_reagent("sugar")) - if(!docile) - if(controlling) - host << "You feel the soporific flow of sugar in your host's blood, lulling you into docility." - else - to_chat(src, "You feel the soporific flow of sugar in your host's blood, lulling you into docility.") - docile = 1 - else - if(docile) - if(controlling) - host << "You shake off your lethargy as the sugar leaves your host's blood." - else - to_chat(src, "You shake off your lethargy as the sugar leaves your host's blood.") - docile = 0 - - if(chemicals < 250) - chemicals++ - if(controlling) - - if(docile) - host << "You are feeling far too docile to continue controlling your host..." - host.release_control() - return - - if(prob(5)) - host.adjustBrainLoss(0.1) - - if(prob(host.brainloss/20)) - host.say("*[pick(list("blink","blink_r","choke","aflap","drool","twitch","twitch_v","gasp"))]") - -/mob/living/simple_mob/animal/borer/Stat() - ..() - statpanel("Status") - - if(emergency_shuttle) - var/eta_status = emergency_shuttle.get_status_panel_eta() - if(eta_status) - stat(null, eta_status) - - if (client.statpanel == "Status") - stat("Chemicals", chemicals) - -/mob/living/simple_mob/animal/borer/proc/detatch() - - if(!host || !controlling) return - - if(istype(host,/mob/living/carbon/human)) - var/mob/living/carbon/human/H = host - var/obj/item/organ/external/head = H.get_organ(BP_HEAD) - head.implants -= src - - controlling = 0 - - host.remove_language("Cortical Link") - host.verbs -= /mob/living/carbon/proc/release_control - host.verbs -= /mob/living/carbon/proc/punish_host - host.verbs -= /mob/living/carbon/proc/spawn_larvae - - if(host_brain) - - // these are here so bans and multikey warnings are not triggered on the wrong people when ckey is changed. - // computer_id and IP are not updated magically on their own in offline mobs -walter0o - - // host -> self - var/h2s_id = host.computer_id - var/h2s_ip= host.lastKnownIP - host.computer_id = null - host.lastKnownIP = null - - src.ckey = host.ckey - - if(!src.computer_id) - src.computer_id = h2s_id - - if(!host_brain.lastKnownIP) - src.lastKnownIP = h2s_ip - - // brain -> host - var/b2h_id = host_brain.computer_id - var/b2h_ip= host_brain.lastKnownIP - host_brain.computer_id = null - host_brain.lastKnownIP = null - - host.ckey = host_brain.ckey - - if(!host.computer_id) - host.computer_id = b2h_id - - if(!host.lastKnownIP) - host.lastKnownIP = b2h_ip - - qdel(host_brain) - -/mob/living/simple_mob/animal/borer/proc/leave_host() - - if(!host) return - - if(host.mind) - borers.remove_antagonist(host.mind) - - src.forceMove(get_turf(host)) - - reset_view(null) - machine = null - - host.reset_view(null) - host.machine = null - host = null - return - -//Procs for grabbing players. -/mob/living/simple_mob/animal/borer/proc/request_player() - for(var/mob/observer/dead/O in player_list) - if(jobban_isbanned(O, "Borer")) - continue - if(O.client) - if(O.client.prefs.be_special & BE_ALIEN) - question(O.client) - -/mob/living/simple_mob/animal/borer/proc/question(var/client/C) - spawn(0) - if(!C) return - var/response = alert(C, "A cortical borer needs a player. Are you interested?", "Cortical borer request", "Yes", "No", "Never for this round") - if(!C || ckey) - return - if(response == "Yes") - transfer_personality(C) - else if (response == "Never for this round") - C.prefs.be_special ^= BE_ALIEN - -/mob/living/simple_mob/animal/borer/proc/transfer_personality(var/client/candidate) - - if(!candidate || !candidate.mob || !candidate.mob.mind) - return - - src.mind = candidate.mob.mind - candidate.mob.mind.current = src - src.ckey = candidate.ckey - - if(src.mind) - src.mind.assigned_role = "Cortical Borer" - src.mind.special_role = "Cortical Borer" - - to_chat(src, "You are a cortical borer! You are a brain slug that worms its way \ - into the head of its victim. Use stealth, persuasion and your powers of mind control to keep you, \ - your host and your eventual spawn safe and warm.") - to_chat(src, "You can speak to your victim with say, to other borers with say :x, and use your Abilities tab to access powers.") - -/mob/living/simple_mob/animal/borer/cannot_use_vents() - return \ No newline at end of file diff --git a/code/modules/mob/living/simple_animal/borer/borer_captive.dm b/code/modules/mob/living/simple_animal/borer/borer_captive.dm deleted file mode 100644 index c7088bc7152..00000000000 --- a/code/modules/mob/living/simple_animal/borer/borer_captive.dm +++ /dev/null @@ -1,57 +0,0 @@ -/mob/living/captive_brain - name = "host brain" - real_name = "host brain" - universal_understand = 1 - -/mob/living/captive_brain/say(var/message) - - if (src.client) - if(client.prefs.muted & MUTE_IC) - to_chat(src, "You cannot speak in IC (muted).") - return - - if(istype(src.loc,/mob/living/simple_mob/animal/borer)) - - message = sanitize(message) - if (!message) - return - log_say(message,src) - if (stat == 2) - return say_dead(message) - - var/mob/living/simple_mob/animal/borer/B = src.loc - to_chat(src, "You whisper silently, \"[message]\"") - B.host << "The captive mind of [src] whispers, \"[message]\"" - - for (var/mob/M in player_list) - if (istype(M, /mob/new_player)) - continue - else if(M.stat == DEAD && M.is_preference_enabled(/datum/client_preference/ghost_ears)) - M << "The captive mind of [src] whispers, \"[message]\"" - -/mob/living/captive_brain/emote(var/message) - return - -/mob/living/captive_brain/process_resist() - //Resisting control by an alien mind. - if(istype(src.loc,/mob/living/simple_mob/animal/borer)) - var/mob/living/simple_mob/animal/borer/B = src.loc - var/mob/living/captive_brain/H = src - - H << "You begin doggedly resisting the parasite's control (this will take approximately sixty seconds)." - B.host << "You feel the captive mind of [src] begin to resist your control." - - spawn(rand(200,250)+B.host.brainloss) - if(!B || !B.controlling) return - - B.host.adjustBrainLoss(rand(0.1,0.5)) - H << "With an immense exertion of will, you regain control of your body!" - B.host << "You feel control of the host brain ripped from your grasp, and retract your probosci before the wild neural impulses can damage you." - B.detatch() - verbs -= /mob/living/carbon/proc/release_control - verbs -= /mob/living/carbon/proc/punish_host - verbs -= /mob/living/carbon/proc/spawn_larvae - - return - - ..() diff --git a/code/modules/mob/living/simple_animal/borer/borer_powers.dm b/code/modules/mob/living/simple_animal/borer/borer_powers.dm deleted file mode 100644 index d5575f78e74..00000000000 --- a/code/modules/mob/living/simple_animal/borer/borer_powers.dm +++ /dev/null @@ -1,337 +0,0 @@ -/mob/living/simple_mob/animal/borer/verb/release_host() - set category = "Abilities" - set name = "Release Host" - set desc = "Slither out of your host." - - if(!host) - to_chat(src, "You are not inside a host body.") - return - - if(stat) - to_chat(src, "You cannot leave your host in your current state.") - - if(docile) - to_chat(src, "You are feeling far too docile to do that.") - return - - if(!host || !src) return - - to_chat(src, "You begin disconnecting from [host]'s synapses and prodding at their internal ear canal.") - - if(!host.stat) - host << "An odd, uncomfortable pressure begins to build inside your skull, behind your ear..." - - spawn(100) - - if(!host || !src) return - - if(src.stat) - to_chat(src, "You cannot release your host in your current state.") - return - - to_chat(src, "You wiggle out of [host]'s ear and plop to the ground.") - if(host.mind) - if(!host.stat) - host << "Something slimy wiggles out of your ear and plops to the ground!" - host << "As though waking from a dream, you shake off the insidious mind control of the brain worm. Your thoughts are your own again." - - detatch() - leave_host() - -/mob/living/simple_mob/animal/borer/verb/infest() - set category = "Abilities" - set name = "Infest" - set desc = "Infest a suitable humanoid host." - - if(host) - to_chat(src, "You are already within a host.") - return - - if(stat) - to_chat(src, "You cannot infest a target in your current state.") - return - - var/list/choices = list() - for(var/mob/living/carbon/C in view(1,src)) - if(src.Adjacent(C)) - choices += C - - if(!choices.len) - to_chat(src, "There are no viable hosts within range...") - return - - var/mob/living/carbon/M = input(src,"Who do you wish to infest?") in null|choices - - if(!M || !src) return - - if(!(src.Adjacent(M))) return - - if(M.has_brain_worms()) - to_chat(src, "You cannot infest someone who is already infested!") - return - - if(istype(M,/mob/living/carbon/human)) - var/mob/living/carbon/human/H = M - - var/obj/item/organ/external/E = H.organs_by_name[BP_HEAD] - if(!E || E.is_stump()) - to_chat(src, "\The [H] does not have a head!") - - if(!H.should_have_organ("brain")) - to_chat(src, "\The [H] does not seem to have an ear canal to breach.") - return - - if(H.check_head_coverage()) - to_chat(src, "You cannot get through that host's protective gear.") - return - - M << "Something slimy begins probing at the opening of your ear canal..." - to_chat(src, "You slither up [M] and begin probing at their ear canal...") - - if(!do_after(src,30)) - to_chat(src, "As [M] moves away, you are dislodged and fall to the ground.") - return - - if(!M || !src) return - - if(src.stat) - to_chat(src, "You cannot infest a target in your current state.") - return - - if(M in view(1, src)) - to_chat(src, "You wiggle into [M]'s ear.") - if(!M.stat) - M << "Something disgusting and slimy wiggles into your ear!" - - src.host = M - src.forceMove(M) - - //Update their traitor status. - if(host.mind) - borers.add_antagonist_mind(host.mind, 1, borers.faction_role_text, borers.faction_welcome) - - if(istype(M,/mob/living/carbon/human)) - var/mob/living/carbon/human/H = M - var/obj/item/organ/I = H.internal_organs_by_name["brain"] - if(!I) // No brain organ, so the borer moves in and replaces it permanently. - replace_brain() - else - // If they're in normally, implant removal can get them out. - var/obj/item/organ/external/head = H.get_organ(BP_HEAD) - head.implants += src - - return - else - to_chat(src, "They are no longer in range!") - return - -/* -/mob/living/simple_mob/animal/borer/verb/devour_brain() - set category = "Abilities" - set name = "Devour Brain" - set desc = "Take permanent control of a dead host." - - if(!host) - to_chat(src, "You are not inside a host body.") - return - - if(host.stat != 2) - to_chat(src, "Your host is still alive.") - return - - if(stat) - to_chat(src, "You cannot do that in your current state.") - - if(docile) - to_chat(src, "You are feeling far too docile to do that.") - return - - - to_chat(src, "It only takes a few moments to render the dead host brain down into a nutrient-rich slurry...") - replace_brain() -*/ - -// BRAIN WORM ZOMBIES AAAAH. -/mob/living/simple_mob/animal/borer/proc/replace_brain() - - var/mob/living/carbon/human/H = host - - if(!istype(host)) - to_chat(src, "This host does not have a suitable brain.") - return - - to_chat(src, "You settle into the empty brainpan and begin to expand, fusing inextricably with the dead flesh of [H].") - - H.add_language("Cortical Link") - - if(host.stat == 2) - H.verbs |= /mob/living/carbon/human/proc/jumpstart - - H.verbs |= /mob/living/carbon/human/proc/psychic_whisper - H.verbs |= /mob/living/carbon/human/proc/tackle - H.verbs |= /mob/living/carbon/proc/spawn_larvae - - if(H.client) - H.ghostize(0) - - if(src.mind) - src.mind.special_role = "Borer Husk" - src.mind.transfer_to(host) - - H.ChangeToHusk() - - var/obj/item/organ/internal/borer/B = new(H) - H.internal_organs_by_name["brain"] = B - H.internal_organs |= B - - var/obj/item/organ/external/affecting = H.get_organ(BP_HEAD) - affecting.implants -= src - - var/s2h_id = src.computer_id - var/s2h_ip= src.lastKnownIP - src.computer_id = null - src.lastKnownIP = null - - if(!H.computer_id) - H.computer_id = s2h_id - - if(!H.lastKnownIP) - H.lastKnownIP = s2h_ip - -/mob/living/simple_mob/animal/borer/verb/secrete_chemicals() - set category = "Abilities" - set name = "Secrete Chemicals" - set desc = "Push some chemicals into your host's bloodstream." - - if(!host) - to_chat(src, "You are not inside a host body.") - return - - if(stat) - to_chat(src, "You cannot secrete chemicals in your current state.") - - if(docile) - to_chat(src, "You are feeling far too docile to do that.") - return - - if(chemicals < 50) - to_chat(src, "You don't have enough chemicals!") - - var/chem = input("Select a chemical to secrete.", "Chemicals") as null|anything in list("alkysine","bicaridine","hyperzine","tramadol") - - if(!chem || chemicals < 50 || !host || controlling || !src || stat) //Sanity check. - return - - to_chat(src, "You squirt a measure of [chem] from your reservoirs into [host]'s bloodstream.") - host.reagents.add_reagent(chem, 10) - chemicals -= 50 - -/mob/living/simple_mob/animal/borer/verb/dominate_victim() - set category = "Abilities" - set name = "Paralyze Victim" - set desc = "Freeze the limbs of a potential host with supernatural fear." - - if(world.time - used_dominate < 150) - to_chat(src, "You cannot use that ability again so soon.") - return - - if(host) - to_chat(src, "You cannot do that from within a host body.") - return - - if(src.stat) - to_chat(src, "You cannot do that in your current state.") - return - - var/list/choices = list() - for(var/mob/living/carbon/C in view(3,src)) - if(C.stat != 2) - choices += C - - if(world.time - used_dominate < 150) - to_chat(src, "You cannot use that ability again so soon.") - return - - var/mob/living/carbon/M = input(src,"Who do you wish to dominate?") in null|choices - - if(!M || !src) return - - if(M.has_brain_worms()) - to_chat(src, "You cannot infest someone who is already infested!") - return - - to_chat(src, "You focus your psychic lance on [M] and freeze their limbs with a wave of terrible dread.") - M << "You feel a creeping, horrible sense of dread come over you, freezing your limbs and setting your heart racing." - M.Weaken(10) - - used_dominate = world.time - -/mob/living/simple_mob/animal/borer/verb/bond_brain() - set category = "Abilities" - set name = "Assume Control" - set desc = "Fully connect to the brain of your host." - - if(!host) - to_chat(src, "You are not inside a host body.") - return - - if(src.stat) - to_chat(src, "You cannot do that in your current state.") - return - - if(docile) - to_chat(src, "You are feeling far too docile to do that.") - return - - to_chat(src, "You begin delicately adjusting your connection to the host brain...") - - spawn(100+(host.brainloss*5)) - - if(!host || !src || controlling) - return - else - - to_chat(src, "You plunge your probosci deep into the cortex of the host brain, interfacing directly with their nervous system.") - host << "You feel a strange shifting sensation behind your eyes as an alien consciousness displaces yours." - host.add_language("Cortical Link") - - // host -> brain - var/h2b_id = host.computer_id - var/h2b_ip= host.lastKnownIP - host.computer_id = null - host.lastKnownIP = null - - qdel(host_brain) - host_brain = new(src) - - host_brain.ckey = host.ckey - - host_brain.name = host.name - - if(!host_brain.computer_id) - host_brain.computer_id = h2b_id - - if(!host_brain.lastKnownIP) - host_brain.lastKnownIP = h2b_ip - - // self -> host - var/s2h_id = src.computer_id - var/s2h_ip= src.lastKnownIP - src.computer_id = null - src.lastKnownIP = null - - host.ckey = src.ckey - - if(!host.computer_id) - host.computer_id = s2h_id - - if(!host.lastKnownIP) - host.lastKnownIP = s2h_ip - - controlling = 1 - - host.verbs += /mob/living/carbon/proc/release_control - host.verbs += /mob/living/carbon/proc/punish_host - host.verbs += /mob/living/carbon/proc/spawn_larvae - - return diff --git a/code/modules/mob/living/simple_animal/borer/say.dm b/code/modules/mob/living/simple_animal/borer/say.dm deleted file mode 100644 index 41229d9bd27..00000000000 --- a/code/modules/mob/living/simple_animal/borer/say.dm +++ /dev/null @@ -1,40 +0,0 @@ -/mob/living/simple_mob/animal/borer/say(var/message) - - message = sanitize(message) - message = capitalize(message) - - if(!message) - return - - if (stat == 2) - return say_dead(message) - - if (stat) - return - - if (src.client) - if(client.prefs.muted & MUTE_IC) - to_chat(src, "You cannot speak in IC (muted).") - return - - if (copytext(message, 1, 2) == "*") - return emote(copytext(message, 2)) - - var/datum/language/L = parse_language(message) - if(L && L.flags & HIVEMIND) - L.broadcast(src,trim(copytext(message,3)),src.truename) - return - - if(!host) - //TODO: have this pick a random mob within 3 tiles to speak for the borer. - to_chat(src, "You have no host to speak to.") - return //No host, no audible speech. - - to_chat(src, "You drop words into [host]'s mind: \"[message]\"") - host << "Your own thoughts speak: \"[message]\"" - - for (var/mob/M in player_list) - if (istype(M, /mob/new_player)) - continue - else if(M.stat == DEAD && M.is_preference_enabled(/datum/client_preference/ghost_ears)) - M << "[src.truename] whispers to [host], \"[message]\"" \ No newline at end of file diff --git a/code/modules/mob/living/simple_animal/corpse.dm b/code/modules/mob/living/simple_animal/corpse.dm deleted file mode 100644 index 62b2c43fe81..00000000000 --- a/code/modules/mob/living/simple_animal/corpse.dm +++ /dev/null @@ -1,170 +0,0 @@ -//Meant for simple animals to drop lootable human bodies. - -//If someone can do this in a neater way, be my guest-Kor - -//This has to be seperate from the Away Mission corpses, because New() doesn't work for those, and initialize() doesn't work for these. - -//To do: Allow corpses to appear mangled, bloody, etc. Allow customizing the bodies appearance (they're all bald and white right now). - - -/obj/effect/landmark/mobcorpse - name = "Unknown" - var/mobname = "Unknown" //Unused now but it'd fuck up maps to remove it now - var/corpseuniform = null //Set this to an object path to have the slot filled with said object on the corpse. - var/corpsesuit = null - var/corpseshoes = null - var/corpsegloves = null - var/corpseradio = null - var/corpseglasses = null - var/corpsemask = null - var/corpsehelmet = null - var/corpsebelt = null - var/corpsepocket1 = null - var/corpsepocket2 = null - var/corpseback = null - var/corpseid = 0 //Just set to 1 if you want them to have an ID - var/corpseidjob = null // Needs to be in quotes, such as "Clown" or "Chef." This just determines what the ID reads as, not their access - var/corpseidaccess = null //This is for access. See access.dm for which jobs give what access. Again, put in quotes. Use "Captain" if you want it to be all access. - var/corpseidicon = null //For setting it to be a gold, silver, CentCom etc ID - -/obj/effect/landmark/mobcorpse/New() - createCorpse() - -/obj/effect/landmark/mobcorpse/proc/createCorpse() //Creates a mob and checks for gear in each slot before attempting to equip it. - var/mob/living/carbon/human/M = new /mob/living/carbon/human (src.loc) - M.real_name = src.name - M.stat = 2 //Kills the new mob - if(src.corpseuniform) - M.equip_to_slot_or_del(new src.corpseuniform(M), slot_w_uniform) - if(src.corpsesuit) - M.equip_to_slot_or_del(new src.corpsesuit(M), slot_wear_suit) - if(src.corpseshoes) - M.equip_to_slot_or_del(new src.corpseshoes(M), slot_shoes) - if(src.corpsegloves) - M.equip_to_slot_or_del(new src.corpsegloves(M), slot_gloves) - if(src.corpseradio) - M.equip_to_slot_or_del(new src.corpseradio(M), slot_l_ear) - if(src.corpseglasses) - M.equip_to_slot_or_del(new src.corpseglasses(M), slot_glasses) - if(src.corpsemask) - M.equip_to_slot_or_del(new src.corpsemask(M), slot_wear_mask) - if(src.corpsehelmet) - M.equip_to_slot_or_del(new src.corpsehelmet(M), slot_head) - if(src.corpsebelt) - M.equip_to_slot_or_del(new src.corpsebelt(M), slot_belt) - if(src.corpsepocket1) - M.equip_to_slot_or_del(new src.corpsepocket1(M), slot_r_store) - if(src.corpsepocket2) - M.equip_to_slot_or_del(new src.corpsepocket2(M), slot_l_store) - if(src.corpseback) - M.equip_to_slot_or_del(new src.corpseback(M), slot_back) - if(src.corpseid == 1) - var/obj/item/weapon/card/id/W = new(M) - W.name = "[M.real_name]'s ID Card" - var/datum/job/jobdatum - for(var/jobtype in typesof(/datum/job)) - var/datum/job/J = new jobtype - if(J.title == corpseidaccess) - jobdatum = J - break - if(src.corpseidicon) - W.icon_state = corpseidicon - if(src.corpseidaccess) - if(jobdatum) - W.access = jobdatum.get_access() - else - W.access = list() - if(corpseidjob) - W.assignment = corpseidjob - W.registered_name = M.real_name - M.equip_to_slot_or_del(W, slot_wear_id) - delete_me = 1 - qdel(src) - - - -//List of different corpse types - -/obj/effect/landmark/mobcorpse/syndicatesoldier - name = "Mercenary" - corpseuniform = /obj/item/clothing/under/syndicate - corpsesuit = /obj/item/clothing/suit/armor/vest - corpseshoes = /obj/item/clothing/shoes/boots/swat - corpsegloves = /obj/item/clothing/gloves/swat - corpseradio = /obj/item/device/radio/headset - corpsemask = /obj/item/clothing/mask/gas - corpsehelmet = /obj/item/clothing/head/helmet/swat - corpseback = /obj/item/weapon/storage/backpack - corpseid = 1 - corpseidjob = "Operative" - corpseidaccess = "Syndicate" - -/obj/effect/landmark/mobcorpse/solarpeacekeeper - name = "Mercenary" - corpseuniform = /obj/item/clothing/under/syndicate - corpsesuit = /obj/item/clothing/suit/armor/pcarrier/blue/sol - corpseshoes = /obj/item/clothing/shoes/boots/swat - corpsegloves = /obj/item/clothing/gloves/swat - corpseradio = /obj/item/device/radio/headset - corpsemask = /obj/item/clothing/mask/gas - corpsehelmet = /obj/item/clothing/head/helmet/swat - corpseback = /obj/item/weapon/storage/backpack - corpseid = 1 - corpseidjob = "Peacekeeper" - corpseidaccess = "Syndicate" - -/obj/effect/landmark/mobcorpse/syndicatecommando - name = "Syndicate Commando" - corpseuniform = /obj/item/clothing/under/syndicate - corpsesuit = /obj/item/clothing/suit/space/void/merc - corpseshoes = /obj/item/clothing/shoes/boots/swat - corpsegloves = /obj/item/clothing/gloves/swat - corpseradio = /obj/item/device/radio/headset - corpsemask = /obj/item/clothing/mask/gas/syndicate - corpsehelmet = /obj/item/clothing/head/helmet/space/void/merc - corpseback = /obj/item/weapon/tank/jetpack/oxygen - corpsepocket1 = /obj/item/weapon/tank/emergency/oxygen - corpseid = 1 - corpseidjob = "Operative" - corpseidaccess = "Syndicate" - - - -/obj/effect/landmark/mobcorpse/clown - name = "Clown" - corpseuniform = /obj/item/clothing/under/rank/clown - corpseshoes = /obj/item/clothing/shoes/clown_shoes - corpseradio = /obj/item/device/radio/headset - corpsemask = /obj/item/clothing/mask/gas/clown_hat - corpsepocket1 = /obj/item/weapon/bikehorn - corpseback = /obj/item/weapon/storage/backpack/clown - corpseid = 1 - corpseidjob = "Clown" - corpseidaccess = "Clown" - - - -/obj/effect/landmark/mobcorpse/pirate - name = "Pirate" - corpseuniform = /obj/item/clothing/under/pirate - corpseshoes = /obj/item/clothing/shoes/boots/jackboots - corpseglasses = /obj/item/clothing/glasses/eyepatch - corpsehelmet = /obj/item/clothing/head/bandana - - - -/obj/effect/landmark/mobcorpse/pirate/ranged - name = "Pirate Gunner" - corpsesuit = /obj/item/clothing/suit/pirate - corpsehelmet = /obj/item/clothing/head/pirate - - - -/obj/effect/landmark/mobcorpse/russian - name = "Russian" - corpseuniform = /obj/item/clothing/under/soviet - corpseshoes = /obj/item/clothing/shoes/boots/jackboots - corpsehelmet = /obj/item/clothing/head/bearpelt - -/obj/effect/landmark/mobcorpse/russian/ranged - corpsehelmet = /obj/item/clothing/head/ushanka \ No newline at end of file diff --git a/code/modules/mob/living/simple_animal/corpse_vr.dm b/code/modules/mob/living/simple_animal/corpse_vr.dm deleted file mode 100644 index 82399a83282..00000000000 --- a/code/modules/mob/living/simple_animal/corpse_vr.dm +++ /dev/null @@ -1,2 +0,0 @@ -/obj/effect/landmark/mobcorpse/syndicatecommando - name = "Mercenary Commando" \ No newline at end of file diff --git a/code/modules/mob/living/simple_animal/humanoids/clown.dm b/code/modules/mob/living/simple_animal/humanoids/clown.dm deleted file mode 100644 index 9641611c339..00000000000 --- a/code/modules/mob/living/simple_animal/humanoids/clown.dm +++ /dev/null @@ -1,49 +0,0 @@ -/mob/living/simple_mob/hostile/clown - name = "clown" - desc = "A denizen of clown planet" - tt_desc = "E Homo sapiens corydon" //this is an actual clown, as opposed to someone dressed up as one - icon_state = "clown" - icon_living = "clown" - icon_dead = "clown_dead" - icon_gib = "clown_gib" - intelligence_level = SA_HUMANOID - - faction = "clown" - maxHealth = 75 - health = 75 - speed = -1 - move_to_delay = 2 - - run_at_them = 0 - cooperative = 1 - - turns_per_move = 5 - stop_when_pulled = 0 - - response_help = "pokes" - response_disarm = "gently pushes aside" - response_harm = "hits" - - harm_intent_damage = 8 - melee_damage_lower = 10 - melee_damage_upper = 10 - attacktext = list("attacked") - attack_sound = 'sound/items/bikehorn.ogg' - - min_oxy = 5 - max_oxy = 0 - min_tox = 0 - max_tox = 1 - min_co2 = 0 - max_co2 = 5 - min_n2 = 0 - max_n2 = 0 - minbodytemp = 270 - maxbodytemp = 370 - heat_damage_per_tick = 15 //amount of damage applied if animal's body temperature is higher than maxbodytemp - cold_damage_per_tick = 10 //same as heat_damage_per_tick, only if the bodytemperature it's lower than minbodytemp - unsuitable_atoms_damage = 10 - - speak_chance = 1 - speak = list("HONK", "Honk!", "Welcome to clown planet!") - emote_see = list("honks") diff --git a/code/modules/mob/living/simple_animal/humanoids/mechamobs.dm b/code/modules/mob/living/simple_animal/humanoids/mechamobs.dm deleted file mode 100644 index 9e1398884fa..00000000000 --- a/code/modules/mob/living/simple_animal/humanoids/mechamobs.dm +++ /dev/null @@ -1,123 +0,0 @@ -/mob/living/simple_mob/hostile/mecha - name = "mercenary gygax" - desc = "Well that's forboding." - icon = 'icons/mecha/mecha.dmi' - icon_state = "darkgygax" - icon_living = "darkgygax" - icon_dead = "darkgygax-broken" - intelligence_level = SA_HUMANOID // Piloted by a human. - - faction = "syndicate" - maxHealth = 300 - health = 300 - speed = 7 - move_to_delay = 8 - - run_at_them = 0 - cooperative = 1 - investigates = 1 - firing_lines = 1 - - turns_per_move = 5 - stop_when_pulled = 0 - - response_help = "taps on" - response_disarm = "knocks on" - response_harm = "uselessly hits" - - harm_intent_damage = 0 - melee_damage_lower = 35 - melee_damage_upper = 35 - attacktext = list("slashed") - attack_sound = 'sound/weapons/bladeslice.ogg' - - armor = list(melee = 40, bullet = 40, laser = 50, energy = 45, bomb = 20, bio = 100, rad = 100) // As close to the actual Dark Gygax as possible - - min_oxy = 0 - max_oxy = 0 - min_tox = 0 - max_tox = 0 - min_co2 = 0 - max_co2 = 0 - min_n2 = 0 - max_n2 = 0 - unsuitable_atoms_damage = 0 - - ranged = 1 - rapid = 1 - projectiletype = /obj/item/projectile/beam/midlaser - projectilesound = 'sound/weapons/laser.ogg' - - speak_chance = 1 - speak = list("Know what we need? More meatshields.", - "Glad I finally got a mech.", - "I'll stomp those NanoTrasen dogs into paste.", - "Glad I didn't become a line chef.", - "This anti-fog visor is nice...", - "Did I refill the air tank?") - emote_hear = list("humms ominously","whirrs softly","grinds a gear") - emote_see = list("looks around the area","turns from side to side") - say_understood = list() - say_cannot = list() - say_maybe_target = list("Just my sensors?","Detecting something?","Is that...?","What was that?") - say_got_target = list("ENGAGING!!!","CONTACT!!!","TARGET SPOTTED!","FOUND ONE!") - reactions = list() - - var/datum/effect/effect/system/spark_spread/sparks - var/wreckage = /obj/effect/decal/mecha_wreckage/gygax/dark - -/mob/living/simple_mob/hostile/mecha/New() - ..() - sparks = new (src) - sparks.set_up(3, 1, src) - -/mob/living/simple_mob/hostile/mecha/Destroy() - qdel(sparks) - ..() - -/mob/living/simple_mob/hostile/mecha/Life() - . = ..() - if(!.) return - if((health < getMaxHealth()*0.3) && prob(10)) - sparks.start() - -/mob/living/simple_mob/hostile/mecha/bullet_act() - ..() - sparks.start() - -/mob/living/simple_mob/hostile/mecha/death() - ..(0,"explodes!") - sparks.start() - explosion(get_turf(src), 0, 0, 1, 3) - qdel(src) - new /obj/effect/decal/mecha_wreckage/gygax/dark(get_turf(src)) - -/mob/living/simple_mob/hostile/mecha/Move() - ..() - playsound(src,'sound/mecha/mechstep.ogg',40,1) - -// This is a PoI mob, not the normal, floaty drones that hang out around windows -/mob/living/simple_mob/hostile/mecha/malf_drone - name = "autonomous mechanized drone" - desc = "It appears to be an exosuit, piloted by a drone intelligence. It looks scary." - intelligence_level = SA_ROBOTIC - faction = "malf_drone" - speak_chance = 1 - speak = list( - "Resuming task: Protect area.", - "No threats found.", - "Error: No targets found." - ) - emote_hear = list("humms ominously", "whirrs softly", "grinds a gear") - emote_see = list("looks around the area", "turns from side to side") - say_understood = list("Affirmative.", "Positive.") - say_cannot = list("Denied.", "Negative.") - say_maybe_target = list("Possible threat detected. Investigating.", "Motion detected.", "Investigating.") - say_got_target = list("Threat detected.", "New task: Remove threat.", "Threat removal engaged.", "Engaging target.") - returns_home = TRUE - -/mob/living/simple_mob/hostile/mecha/malf_drone/isSynthetic() - return TRUE - -/mob/living/simple_mob/hostile/mecha/malf_drone/speech_bubble_appearance() - return "synthetic_evil" \ No newline at end of file diff --git a/code/modules/mob/living/simple_animal/humanoids/pirate.dm b/code/modules/mob/living/simple_animal/humanoids/pirate.dm deleted file mode 100644 index 4e833b90ac2..00000000000 --- a/code/modules/mob/living/simple_animal/humanoids/pirate.dm +++ /dev/null @@ -1,72 +0,0 @@ -/mob/living/simple_mob/hostile/pirate - name = "Pirate" - desc = "Does what he wants cause a pirate is free." - tt_desc = "E Homo sapiens" - icon_state = "piratemelee" - icon_living = "piratemelee" - icon_dead = "piratemelee_dead" - intelligence_level = SA_HUMANOID - - faction = "pirate" - maxHealth = 100 - health = 100 - speed = 4 - - run_at_them = 0 - cooperative = 1 - investigates = 1 - firing_lines = 1 - returns_home = 1 - reacts = 1 - - turns_per_move = 5 - stop_when_pulled = 0 - - response_help = "pushes" - response_disarm = "shoves" - response_harm = "hits" - - harm_intent_damage = 5 - melee_damage_lower = 30 - melee_damage_upper = 30 - attack_armor_pen = 50 - attack_sharp = 1 - attack_edge = 1 - - attacktext = list("slashed") - attack_sound = 'sound/weapons/bladeslice.ogg' - - min_oxy = 5 - max_oxy = 0 - min_tox = 0 - max_tox = 1 - min_co2 = 0 - max_co2 = 5 - min_n2 = 0 - max_n2 = 0 - unsuitable_atoms_damage = 15 - - loot_list = list(/obj/item/weapon/melee/energy/sword/pirate = 100) - - var/corpse = /obj/effect/landmark/mobcorpse/pirate - -/mob/living/simple_mob/hostile/pirate/ranged - name = "Pirate Gunner" - icon_state = "pirateranged" - icon_living = "pirateranged" - icon_dead = "piratemelee_dead" - - ranged = 1 - projectiletype = /obj/item/projectile/beam - projectilesound = 'sound/weapons/laser.ogg' - - loot_list = list(/obj/item/weapon/gun/energy/laser = 100) - - corpse = /obj/effect/landmark/mobcorpse/pirate/ranged - -/mob/living/simple_mob/hostile/pirate/death() - ..() - if(corpse) - new corpse (src.loc) - qdel(src) - return \ No newline at end of file diff --git a/code/modules/mob/living/simple_animal/humanoids/russian.dm b/code/modules/mob/living/simple_animal/humanoids/russian.dm deleted file mode 100644 index e13b5ed9686..00000000000 --- a/code/modules/mob/living/simple_animal/humanoids/russian.dm +++ /dev/null @@ -1,68 +0,0 @@ -/mob/living/simple_mob/hostile/russian - name = "russian" - desc = "For the Motherland!" - tt_desc = "E Homo sapiens" - icon_state = "russianmelee" - icon_living = "russianmelee" - icon_dead = "russianmelee_dead" - icon_gib = "syndicate_gib" - intelligence_level = SA_HUMANOID - - faction = "russian" - maxHealth = 100 - health = 100 - speed = 4 - - run_at_them = 0 - cooperative = 1 - investigates = 1 - firing_lines = 1 - returns_home = 1 - reacts = 1 - - turns_per_move = 5 - stop_when_pulled = 0 - status_flags = CANPUSH - - response_help = "pokes" - response_disarm = "shoves" - response_harm = "hits" - - harm_intent_damage = 5 - melee_damage_lower = 15 - melee_damage_upper = 15 - attacktext = list("punched") - - min_oxy = 5 - max_oxy = 0 - min_tox = 0 - max_tox = 1 - min_co2 = 0 - max_co2 = 5 - min_n2 = 0 - max_n2 = 0 - unsuitable_atoms_damage = 15 - - loot_list = list(/obj/item/weapon/material/knife = 100) - - var/corpse = /obj/effect/landmark/mobcorpse/russian - -/mob/living/simple_mob/hostile/russian/ranged - icon_state = "russianranged" - icon_living = "russianranged" - - ranged = 1 - projectiletype = /obj/item/projectile/bullet - casingtype = /obj/item/ammo_casing/spent - projectilesound = 'sound/weapons/Gunshot.ogg' - - loot_list = list(/obj/item/weapon/gun/projectile/revolver/mateba = 100) - - corpse = /obj/effect/landmark/mobcorpse/russian/ranged - -/mob/living/simple_mob/hostile/russian/death() - ..() - if(corpse) - new corpse (src.loc) - qdel(src) - return diff --git a/code/modules/mob/living/simple_animal/humanoids/syndicate.dm b/code/modules/mob/living/simple_animal/humanoids/syndicate.dm deleted file mode 100644 index 2cc300b82cc..00000000000 --- a/code/modules/mob/living/simple_animal/humanoids/syndicate.dm +++ /dev/null @@ -1,266 +0,0 @@ -/mob/living/simple_mob/hostile/syndicate - name = "mercenary" - desc = "Death to the Company." - tt_desc = "E Homo sapiens" - icon_state = "syndicate" - icon_living = "syndicate" - icon_dead = "syndicate_dead" - icon_gib = "syndicate_gib" - intelligence_level = SA_HUMANOID - - faction = "syndicate" - maxHealth = 100 - health = 100 - speed = 4 - - run_at_them = 0 - cooperative = 1 - investigates = 1 - firing_lines = 1 - returns_home = 1 - reacts = 1 - - turns_per_move = 5 - stop_when_pulled = 0 - status_flags = CANPUSH - - response_help = "pokes" - response_disarm = "shoves" - response_harm = "hits" - - harm_intent_damage = 5 - melee_damage_lower = 15 //Tac Knife damage - melee_damage_upper = 15 - environment_smash = 1 - attack_sharp = 1 - attack_edge = 1 - attacktext = list("slashed", "stabbed") - - armor = list(melee = 40, bullet = 30, laser = 30, energy = 10, bomb = 10, bio = 100, rad = 100) // Same armor values as the vest they drop, plus simple mob immunities - - min_oxy = 5 - max_oxy = 0 - min_tox = 0 - max_tox = 1 - min_co2 = 0 - max_co2 = 5 - min_n2 = 0 - max_n2 = 0 - unsuitable_atoms_damage = 15 - - speak_chance = 1 - speak = list("Fuckin' NT, man.", - "When are we gonna get out of this chicken-shit outfit?", - "Wish I had better equipment...", - "I knew I should have been a line chef...", - "Fuckin' helmet keeps fogging up.", - "Anyone else smell that?") - emote_hear = list("sniffs","coughs","taps his foot") - emote_see = list("looks around","checks his equipment") - say_understood = list() - say_cannot = list() - say_maybe_target = list("What's that?","Is someone there?","Is that...?","Hmm?") - say_got_target = list("ENGAGING!!!","CONTACT!!!","TARGET SPOTTED!","FOUND ONE!") - reactions = list("Hey guys, you ready?" = "Fuck yeah!") - - var/corpse = /obj/effect/landmark/mobcorpse/syndicatesoldier - -/mob/living/simple_mob/hostile/syndicate/death() - if(corpse) - ..() - new corpse (src.loc) - else - ..(0,"explodes!") - new /obj/effect/gibspawner/human(src.loc) - explosion(get_turf(src), -1, 0, 1, 3) - qdel(src) - return - -///////////////Sword and shield//////////// - -/mob/living/simple_mob/hostile/syndicate/melee - icon_state = "syndicatemelee" - icon_living = "syndicatemelee" - - melee_damage_lower = 30 - melee_damage_upper = 30 - attack_armor_pen = 50 - attack_sharp = 1 - attack_edge = 1 - attacktext = list("slashed") - - status_flags = 0 - - loot_list = list(/obj/item/weapon/melee/energy/sword/red = 100, /obj/item/weapon/shield/energy = 100) - -/mob/living/simple_mob/hostile/syndicate/melee/attackby(var/obj/item/O as obj, var/mob/user as mob) - if(O.force) - if(prob(20)) - visible_message("\The [src] blocks \the [O] with its shield!") - if(user) - react_to_attack(user) - return - else - ..() - else - usr << "This weapon is ineffective, it does no damage." - visible_message("\The [user] gently taps [src] with \the [O].") - -/mob/living/simple_mob/hostile/syndicate/melee/bullet_act(var/obj/item/projectile/Proj) - if(!Proj) return - if(prob(35)) - visible_message("[src] blocks [Proj] with its shield!") - if(Proj.firer) - react_to_attack(Proj.firer) - return - else - ..() - -/mob/living/simple_mob/hostile/syndicate/melee/space - name = "syndicate commando" - icon_state = "syndicatemeleespace" - icon_living = "syndicatemeleespace" - - speed = 0 - - armor = list(melee = 60, bullet = 50, laser = 30, energy = 15, bomb = 35, bio = 100, rad = 100) // Same armor as their voidsuit - - min_oxy = 0 - max_oxy = 0 - min_tox = 0 - max_tox = 0 - min_co2 = 0 - max_co2 = 0 - min_n2 = 0 - max_n2 = 0 - minbodytemp = 0 - - corpse = /obj/effect/landmark/mobcorpse/syndicatecommando - -/mob/living/simple_mob/hostile/syndicate/melee/space/Process_Spacemove(var/check_drift = 0) - return - -/mob/living/simple_mob/hostile/syndicate/ranged - icon_state = "syndicateranged" - icon_living = "syndicateranged" - - ranged = 1 - rapid = 1 - projectiletype = /obj/item/projectile/bullet/pistol/medium -// casingtype = /obj/item/ammo_casing/spent //Makes infinite stacks of bullets when put in PoIs. - projectilesound = 'sound/weapons/Gunshot_light.ogg' - - loot_list = list(/obj/item/weapon/gun/projectile/automatic/c20r = 100) - -/mob/living/simple_mob/hostile/syndicate/ranged/laser - icon_state = "syndicateranged_laser" - icon_living = "syndicateranged_laser" - rapid = 0 - projectiletype = /obj/item/projectile/beam/midlaser - projectilesound = 'sound/weapons/Laser.ogg' - - loot_list = list(/obj/item/weapon/gun/energy/laser = 100) - -/mob/living/simple_mob/hostile/syndicate/ranged/ionrifle - icon_state = "syndicateranged_ionrifle" - icon_living = "syndicateranged_ionrifle" - rapid = 0 - projectiletype = /obj/item/projectile/ion - projectilesound = 'sound/weapons/Laser.ogg' - - loot_list = list(/obj/item/weapon/gun/energy/ionrifle = 100) - -/mob/living/simple_mob/hostile/syndicate/ranged/space - name = "space mercenary" //VOREStation Edit - icon_state = "syndicaterangedpsace" - icon_living = "syndicaterangedpsace" - - speed = 0 - - min_oxy = 0 - max_oxy = 0 - min_tox = 0 - max_tox = 0 - min_co2 = 0 - max_co2 = 0 - min_n2 = 0 - max_n2 = 0 - minbodytemp = 0 - maxbodytemp = 900 //VOREStation edit - We'll pretend they have good suits - - corpse = /obj/effect/landmark/mobcorpse/syndicatecommando - -/mob/living/simple_mob/hostile/syndicate/ranged/space/Process_Spacemove(var/check_drift = 0) - return - -/////////////////////////////////////////////// -// POI Mobs -// Don't leave corpses, to help balance loot. -/////////////////////////////////////////////// - -/mob/living/simple_mob/hostile/syndicate/poi - loot_list = list() - corpse = null - -/mob/living/simple_mob/hostile/syndicate/melee/poi - loot_list = list() - corpse = null - -/mob/living/simple_mob/hostile/syndicate/melee/space/poi - loot_list = list() - corpse = null - -/mob/living/simple_mob/hostile/syndicate/ranged/poi - loot_list = list() - corpse = null - -/mob/living/simple_mob/hostile/syndicate/ranged/laser/poi - loot_list = list() - corpse = null - -/mob/living/simple_mob/hostile/syndicate/ranged/ionrifle/poi - loot_list = list() - corpse = null - -/mob/living/simple_mob/hostile/syndicate/ranged/space/poi - loot_list = list() - corpse = null - - -//Viscerators - -/mob/living/simple_mob/hostile/viscerator - name = "viscerator" - desc = "A small, twin-bladed machine capable of inflicting very deadly lacerations." - icon = 'icons/mob/critter.dmi' - icon_state = "viscerator_attack" - icon_living = "viscerator_attack" - intelligence_level = SA_ROBOTIC - hovering = TRUE - - faction = "syndicate" - maxHealth = 15 - health = 15 - - pass_flags = PASSTABLE - - melee_damage_lower = 15 - melee_damage_upper = 15 - attack_sharp = 1 - attack_edge = 1 - attack_sound = 'sound/weapons/bladeslice.ogg' - attacktext = list("cut") - - min_oxy = 0 - max_oxy = 0 - min_tox = 0 - max_tox = 0 - min_co2 = 0 - max_co2 = 0 - min_n2 = 0 - max_n2 = 0 - minbodytemp = 0 - -/mob/living/simple_mob/hostile/viscerator/death() - ..(null,"is smashed into pieces!") - qdel(src) diff --git a/code/modules/mob/living/simple_animal/simple_animal.dm b/code/modules/mob/living/simple_animal/simple_animal.dm deleted file mode 100644 index d143f37ae38..00000000000 --- a/code/modules/mob/living/simple_animal/simple_animal.dm +++ /dev/null @@ -1,1759 +0,0 @@ -#define ai_log(M,V) if(debug_ai) ai_log_output(M,V) - -//Talky things -#define try_say_list(L) if(L.len) say(pick(L)) - -/mob/living/simple_mob - name = "animal" - desc = "" - icon = 'icons/mob/animal.dmi' - health = 20 - maxHealth = 20 - - mob_bump_flag = simple_mob - mob_swap_flags = MONKEY|SLIME|HUMAN - mob_push_flags = MONKEY|SLIME|HUMAN - - var/tt_desc = "Uncataloged Life Form" //Tooltip description - - //Settings for played mobs - var/show_stat_health = 1 // Does the percentage health show in the stat panel for the mob - var/ai_inactive = 0 // Set to 1 to turn off most AI actions - var/has_hands = 0 // Set to 1 to enable the use of hands and the hands hud - var/humanoid_hands = 0 // Can a player in this mob use things like guns or AI cards? - var/hand_form = "hands" // Used in IsHumanoidToolUser. 'Your X are not fit-'. - var/list/hud_gears // Slots to show on the hud (typically none) - var/ui_icons // Icon file path to use for the HUD, otherwise generic icons are used - var/r_hand_sprite // If they have hands, - var/l_hand_sprite // they could use some icons. - var/player_msg // Message to print to players about 'how' to play this mob on login. - - //Mob icon/appearance settings - var/icon_living = "" // The iconstate if we're alive, required - var/icon_dead = "" // The iconstate if we're dead, required - var/icon_gib = "generic_gib" // The iconstate for being gibbed, optional. Defaults to a generic gib animation. - var/icon_rest = null // The iconstate for resting, optional - var/image/modifier_overlay = null // Holds overlays from modifiers. - attack_icon = 'icons/effects/effects.dmi' //Just the default, played like the weapon attack anim - attack_icon_state = "slash" //Just the default - - //Mob talking settings - universal_speak = 0 // Can all mobs in the entire universe understand this one? - var/has_langs = list(LANGUAGE_GALCOM)// Text name of their language if they speak something other than galcom. They speak the first one. - var/speak_chance = 0 // Probability that I talk (this is 'X in 200' chance since even 1/100 is pretty noisy) - var/reacts = 0 // Reacts to some things being said - var/list/speak = list() // Things I might say if I talk - var/list/emote_hear = list() // Hearable emotes I might perform - var/list/emote_see = list() // Unlike speak_emote, the list of things in this variable only show by themselves with no spoken text. IE: Ian barks, Ian yaps - var/list/say_understood = list()// List of things to say when accepting an order - var/list/say_cannot = list() // List of things to say when they cannot comply - var/list/say_maybe_target = list()// List of things to say when they spot something barely - var/list/say_got_target = list()// List of things to say when they engage a target - var/list/reactions = list() // List of "string" = "reaction" and things they hear will be searched for string. - - //Mob movement settings - var/wander = 1 // Does the mob wander around when idle? - var/wander_distance = 3 // How far the mob will wander before going home (assuming they are allowed to do that) - var/returns_home = 0 // Mob knows how to return to wherever it started - var/turns_per_move = 1 // How many life() cycles to wait between each wander mov? - var/stop_when_pulled = 1 // When set to 1 this stops the animal from moving when someone is pulling it. - var/follow_dist = 2 // Distance the mob tries to follow a friend - var/obstacles = list() // Things this mob refuses to move through - var/speed = 0 // Higher speed is slower, negative speed is faster. - var/obj/item/weapon/card/id/myid// An ID card if they have one to give them access to stuff. - var/turf/home_turf // Set when they spawned, they try to come back here sometimes. - - //Mob interaction - var/response_help = "tries to help" // If clicked on help intent - var/response_disarm = "tries to disarm" // If clicked on disarm intent - var/response_harm = "tries to hurt" // If clicked on harm intent - var/harm_intent_damage = 3 // How much an unarmed harm click does to this mob. - var/meat_amount = 0 // How much meat to drop from this mob when butchered - var/obj/meat_type // The meat object to drop - var/list/loot_list = list() // The list of lootable objects to drop, with "/path = prob%" structure - var/recruitable = 0 // Mob can be bossed around - var/recruit_cmd_str = "Hey," // The thing you prefix commands with when bossing them around - var/intelligence_level = SA_ANIMAL// How 'smart' the mob is ICly, used to deliniate between animal, robot, and humanoid SAs. - - //Mob environment settings - var/minbodytemp = 250 // Minimum "okay" temperature in kelvin - var/maxbodytemp = 350 // Maximum of above - var/heat_damage_per_tick = 3 // Amount of damage applied if animal's body temperature is higher than maxbodytemp - var/cold_damage_per_tick = 2 // Same as heat_damage_per_tick, only if the bodytemperature it's lower than minbodytemp - var/fire_alert = 0 // 0 = fine, 1 = hot, 2 = cold - - var/min_oxy = 5 // Oxygen in moles, minimum, 0 is 'no minimum' - var/max_oxy = 0 // Oxygen in moles, maximum, 0 is 'no maximum' - var/min_tox = 0 // Phoron min - var/max_tox = 1 // Phoron max - var/min_co2 = 0 // CO2 min - var/max_co2 = 5 // CO2 max - var/min_n2 = 0 // N2 min - var/max_n2 = 0 // N2 max - var/unsuitable_atoms_damage = 2 // This damage is taken when atmos doesn't fit all the requirements above - - //Hostility settings - var/hostile = 0 // Do I even attack? - var/retaliate = 0 // I respond to damage against specific targets. - var/view_range = 7 // Scan for targets in this range. - var/specific_targets = 0 // Only use Found() targets, ignore others. - var/investigates = 0 // Do I investigate if I saw someone briefly? - var/attack_same = 0 // Do I attack members of my own faction? - var/cooperative = 0 // Do I ask allies to help me? - var/assist_distance = 25 // Radius in which I'll ask my comrades for help. - var/supernatural = 0 // If the mob is supernatural (used in null-rod stuff for banishing?) - var/grab_resist = 75 // Chance of me resisting a grab attempt. - var/taser_kill = 1 // Is the mob weak to tasers - - //Attack ranged settings - var/ranged = 0 // Do I attack at range? - var/shoot_range = 7 // How far away do I start shooting from? - var/rapid = 0 // Three-round-burst fire mode - var/firing_lines = 0 // Avoids shooting allies - var/projectiletype // The projectiles I shoot - var/projectilesound // The sound I make when I do it - var/casingtype // What to make the hugely laggy casings pile out of - - //Mob melee settings - var/melee_damage_lower = 2 // Lower bound of randomized melee damage - var/melee_damage_upper = 6 // Upper bound of randomized melee damage - var/list/attacktext = list("attacked") // "You are [attacktext] by the mob!" - var/list/friendly = list("nuzzles") // "The mob [friendly] the person." - var/attack_sound = null // Sound to play when I attack - var/environment_smash = 0 // How much environment damage do I do when I hit stuff? - var/melee_miss_chance = 15 // percent chance to miss a melee attack. - var/melee_attack_minDelay = 5 // How long between attacks at least - var/melee_attack_maxDelay = 10 // How long between attacks at most - var/attack_armor_type = "melee" // What armor does this check? - var/attack_armor_pen = 0 // How much armor pen this attack has. - var/attack_sharp = 0 // Is the attack sharp? - var/attack_edge = 0 // Does the attack have an edge? - - //Special attacks - var/spattack_prob = 0 // Chance of the mob doing a special attack (0 for never) - var/spattack_min_range = 0 // Min range to perform the special attacks from - var/spattack_max_range = 0 // Max range to perform special attacks from - - //Attack movement settings - var/run_at_them = 1 // Don't use A* pathfinding, use walk_to - var/move_to_delay = 4 // Delay for the automated movement (deciseconds) - var/destroy_surroundings = 1 // Should I smash things to get to my target? - var/astar_adjacent_proc = /turf/proc/CardinalTurfsWithAccess // Proc to use when A* pathfinding. Default makes them bound to cardinals. - - //Damage resistances - var/shock_resistance = 0 // Siemens modifier, directly subtracted from 1. Value of 0.4 means 0.6 siemens on shocks. - var/resistance = 0 // Damage reduction for all types - var/list/armor = list( // Values for normal getarmor() checks - "melee" = 0, - "bullet" = 0, - "laser" = 0, - "energy" = 0, - "bomb" = 0, - "bio" = 100, - "rad" = 100) - - //Scary debug things - var/debug_ai = 0 // Logging level for this mob (1,2,3) - var/path_display = 0 // Will display the path in green when pathing - var/path_icon = 'icons/misc/debug_group.dmi' // What icon to use for the overlay - var/path_icon_state = "red" // What state to use for the overlay - var/icon/path_overlay // A reference to restart - - ////// These are used for inter-proc communications so don't edit them manually ////// - var/stance = STANCE_IDLE // Used to determine behavior - var/stop_automated_movement = 0 // Use this to temporarely stop random movement or to if you write special movement code for animals. - var/lifes_since_move = 0 // A counter for how many life() cycles since move - var/shuttletarget = null // Shuttle's here, time to get to it - var/enroute = 0 // If the shuttle is en-route - var/purge = 0 // A counter used for null-rod stuff - var/mob/living/target_mob // Who I'm trying to attack - var/mob/living/follow_mob // Who I'm recruited by - var/mob/living/list/friends = list() // People who are immune to my wrath, for now - var/mob/living/simple_mob/list/faction_friends = list() // Other simple mobs I am friends with - var/turf/list/walk_list = list()// List of turfs to walk through to get somewhere - var/astarpathing = 0 // Am I currently pathing to somewhere? - var/stance_changed = 0 // When our stance last changed (world.time) - var/last_target_time = 0 // When we last set our target, to prevent juggles - var/last_follow_time = 0 // When did we last get asked to follow someone? - var/last_helpask_time = 0 // When did we last call for help? - var/follow_until_time = 0 // Give up following when we reach this time (0 = never) - var/annoyed = 0 // Do people keep distract-kiting us? - ////// ////// ////// - var/life_disabled = 0 //VOREStation Edit -- For performance reasons - -/mob/living/simple_mob/New() - ..() - verbs -= /mob/verb/observe - home_turf = get_turf(src) - path_overlay = new(path_icon,path_icon_state) - move_to_delay = max(2,move_to_delay) //Protection against people coding things incorrectly and A* pathing 100% of the time - maxHealth = health - - for(var/L in has_langs) - languages |= all_languages[L] - if(languages.len) - default_language = languages[1] - - if(cooperative) - var/mob/living/simple_mob/first_friend - for(var/mob/living/simple_mob/M in living_mob_list) - if(M.faction == src.faction) - first_friend = M - break - if(first_friend) - faction_friends = first_friend.faction_friends - faction_friends |= src - else - faction_friends |= src - -/mob/living/simple_mob/Destroy() - home_turf = null - path_overlay = null - default_language = null - target_mob = null - follow_mob = null - if(myid) - qdel(myid) - myid = null - - if(faction_friends.len) //This list is shared amongst the faction - faction_friends -= src - - friends.Cut() //This one is not - walk_list.Cut() - languages.Cut() - return ..() - -//Client attached -/mob/living/simple_mob/Login() - . = ..() - ai_inactive = 1 - handle_stance(STANCE_IDLE) - LoseTarget() - to_chat(src,"Mob AI disabled while you are controlling the mob.
You are \the [src]. [player_msg]") - -//Client detatched -/mob/living/simple_mob/Logout() - spawn(15 SECONDS) //15 seconds to get back into the mob before it goes wild - if(src && !src.client) - ai_inactive = initial(ai_inactive) //So if they never have an AI, they stay that way. - ..() - -//For debug purposes! -/mob/living/simple_mob/proc/ai_log_output(var/msg = "missing message", var/ver = 1) - if(ver <= debug_ai) - log_debug("SA-AI: ([src]:[x],[y],[z])(@[world.time]): [msg] ") - -//Should we be dead? -/mob/living/simple_mob/updatehealth() - health = getMaxHealth() - getToxLoss() - getFireLoss() - getBruteLoss() - - //Alive, becoming dead - if((stat < DEAD) && (health <= 0)) - death() - - //Overhealth - if(health > getMaxHealth()) - health = getMaxHealth() - - //Update our hud if we have one - if(healths) - if(stat != DEAD) - var/heal_per = (health / getMaxHealth()) * 100 - switch(heal_per) - if(100 to INFINITY) - healths.icon_state = "health0" - if(80 to 100) - healths.icon_state = "health1" - if(60 to 80) - healths.icon_state = "health2" - if(40 to 60) - healths.icon_state = "health3" - if(20 to 40) - healths.icon_state = "health4" - if(0 to 20) - healths.icon_state = "health5" - else - healths.icon_state = "health6" - else - healths.icon_state = "health7" - - //Updates the nutrition while we're here - if(nutrition_icon) - var/food_per = (nutrition / initial(nutrition)) * 100 - switch(food_per) - if(90 to INFINITY) - nutrition_icon.icon_state = "nutrition0" - if(75 to 90) - nutrition_icon.icon_state = "nutrition1" - if(50 to 75) - nutrition_icon.icon_state = "nutrition2" - if(25 to 50) - nutrition_icon.icon_state = "nutrition3" - if(0 to 25) - nutrition_icon.icon_state = "nutrition4" - -/mob/living/simple_mob/update_icon() - . = ..() - var/mutable_appearance/ma = new(src) - ma.layer = layer - ma.plane = plane - - ma.overlays = list(modifier_overlay) - - //Awake and normal - if((stat == CONSCIOUS) && (!icon_rest || !resting || !incapacitated(INCAPACITATION_DISABLED) )) - ma.icon_state = icon_living - - //Dead - else if(stat >= DEAD) - ma.icon_state = icon_dead - - //Resting or KO'd - else if(((stat == UNCONSCIOUS) || resting || incapacitated(INCAPACITATION_DISABLED) ) && icon_rest) - ma.icon_state = icon_rest - - //Backup - else - ma.icon_state = initial(icon_state) - - //VOREStation edit start - var/vore_icon_state = update_vore_icon() - if(vore_icon_state) - ma.icon_state = vore_icon_state - //VOREStation edit end - - if(has_hands) - if(r_hand_sprite) - ma.overlays += r_hand_sprite - if(l_hand_sprite) - ma.overlays += l_hand_sprite - - appearance = ma - -// If your simple mob's update_icon() call calls overlays.Cut(), this needs to be called after this, or manually apply modifier_overly to overlays. -/mob/living/simple_mob/update_modifier_visuals() - var/image/effects = null - if(modifier_overlay) - overlays -= modifier_overlay - modifier_overlay.overlays.Cut() - effects = modifier_overlay - else - effects = new() - - for(var/datum/modifier/M in modifiers) - if(M.mob_overlay_state) - var/image/I = image("icon" = 'icons/mob/modifier_effects.dmi', "icon_state" = M.mob_overlay_state) - I.appearance_flags = RESET_COLOR // So colored mobs don't affect the overlay. - effects.overlays += I - - modifier_overlay = effects - overlays += modifier_overlay - - -/mob/living/simple_mob/Life() - - //VOREStation Edit - if(life_disabled) - return 0 - //VOREStation Edit End - - ..() - - //Health - updatehealth() - if(stat >= DEAD) - return 0 - - handle_stunned() - handle_weakened() - handle_paralysed() - handle_supernatural() - handle_atmos() //Atmos - - ai_log("Life() - stance=[stance] ai_inactive=[ai_inactive]", 4) - - //AI Actions - if(!ai_inactive) - //Stanceyness - handle_stance() - - //Movement - if(!stop_automated_movement && wander && !anchored) //Allowed to move? - handle_wander_movement() - - //Speaking - if(speak_chance && stance == STANCE_IDLE) // Allowed to chatter? - handle_idle_speaking() - - //Resisting out buckles - if(stance != STANCE_IDLE && incapacitated(INCAPACITATION_BUCKLED_PARTIALLY)) - handle_resist() - - //Resisting out of closets - if(istype(loc,/obj/structure/closet)) - var/obj/structure/closet/C = loc - if(C.sealed) - handle_resist() - else - C.open() - - return 1 - -// Resists out of things. -// Sometimes there are times you want SAs to be buckled to something, so override this for when that is needed. -/mob/living/simple_mob/proc/handle_resist() - resist() - -// Peforms the random walk wandering -/mob/living/simple_mob/proc/handle_wander_movement() - if(isturf(src.loc) && !resting && !buckled && canmove) //Physically capable of moving? - lifes_since_move++ //Increment turns since move (turns are life() cycles) - if(lifes_since_move >= turns_per_move) - if(!(stop_when_pulled && pulledby)) //Some animals don't move when pulled - var/moving_to = 0 // otherwise it always picks 4, fuck if I know. Did I mention fuck BYOND - moving_to = pick(cardinal) - dir = moving_to //How about we turn them the direction they are moving, yay. - var/turf/T = get_step(src,moving_to) - if(avoid_turf(T)) - return - Move(T) - lifes_since_move = 0 - -// Checks to see if mob doesn't like this kind of turf -/mob/living/simple_mob/proc/avoid_turf(var/turf/turf) - if(!turf) - return TRUE //Avoid the nothing, yes - - if(istype(turf,/turf/simulated/sky)) - return TRUE //Mobs aren't that stupid, probably - - return FALSE //Override it on stuff to adjust - -// Handles random chatter, called from Life() when stance = STANCE_IDLE -/mob/living/simple_mob/proc/handle_idle_speaking() - if(rand(0,200) < speak_chance) - if(speak && speak.len) - if((emote_hear && emote_hear.len) || (emote_see && emote_see.len)) - var/length = speak.len - if(emote_hear && emote_hear.len) - length += emote_hear.len - if(emote_see && emote_see.len) - length += emote_see.len - var/randomValue = rand(1,length) - if(randomValue <= speak.len) - try_say_list(speak) - else - randomValue -= speak.len - if(emote_see && randomValue <= emote_see.len) - visible_emote("[pick(emote_see)].") - else - audible_emote("[pick(emote_hear)].") - else - try_say_list(speak) - else - if(!(emote_hear && emote_hear.len) && (emote_see && emote_see.len)) - visible_emote("[pick(emote_see)].") - if((emote_hear && emote_hear.len) && !(emote_see && emote_see.len)) - audible_emote("[pick(emote_hear)].") - if((emote_hear && emote_hear.len) && (emote_see && emote_see.len)) - var/length = emote_hear.len + emote_see.len - var/pick = rand(1,length) - if(pick <= emote_see.len) - visible_emote("[pick(emote_see)].") - else - audible_emote("[pick(emote_hear)].") - -// Handle interacting with and taking damage from atmos -// TODO - Refactor this to use handle_environment() like a good /mob/living -/mob/living/simple_mob/proc/handle_atmos() - var/atmos_unsuitable = 0 - - var/atom/A = src.loc - - if(istype(A,/turf)) - var/turf/T = A - - var/datum/gas_mixture/Environment = T.return_air() - - if(Environment) - - if( abs(Environment.temperature - bodytemperature) > 40 ) - bodytemperature += ((Environment.temperature - bodytemperature) / 5) - - if(min_oxy) - if(Environment.gas["oxygen"] < min_oxy) - atmos_unsuitable = 1 - if(max_oxy) - if(Environment.gas["oxygen"] > max_oxy) - atmos_unsuitable = 1 - if(min_tox) - if(Environment.gas["phoron"] < min_tox) - atmos_unsuitable = 2 - if(max_tox) - if(Environment.gas["phoron"] > max_tox) - atmos_unsuitable = 2 - if(min_n2) - if(Environment.gas["nitrogen"] < min_n2) - atmos_unsuitable = 1 - if(max_n2) - if(Environment.gas["nitrogen"] > max_n2) - atmos_unsuitable = 1 - if(min_co2) - if(Environment.gas["carbon_dioxide"] < min_co2) - atmos_unsuitable = 1 - if(max_co2) - if(Environment.gas["carbon_dioxide"] > max_co2) - atmos_unsuitable = 1 - - //Atmos effect - if(bodytemperature < minbodytemp) - fire_alert = 2 - adjustBruteLoss(cold_damage_per_tick) - if(fire) - fire.icon_state = "fire1" - else if(bodytemperature > maxbodytemp) - fire_alert = 1 - adjustBruteLoss(heat_damage_per_tick) - if(fire) - fire.icon_state = "fire2" - else - fire_alert = 0 - if(fire) - fire.icon_state = "fire0" - - if(atmos_unsuitable) - adjustBruteLoss(unsuitable_atoms_damage) - if(oxygen) - oxygen.icon_state = "oxy1" - else if(oxygen) - if(oxygen) - oxygen.icon_state = "oxy0" - -// For setting the stance WITHOUT processing it -/mob/living/simple_mob/proc/set_stance(var/new_stance) - stance = new_stance - stance_changed = world.time - ai_log("set_stance() changing to [new_stance]",2) - -// For proccessing the current stance, or setting and processing a new one -/mob/living/simple_mob/proc/handle_stance(var/new_stance) - if(ai_inactive) - stance = STANCE_IDLE - return - - if(new_stance) - set_stance(new_stance) - - switch(stance) - if(STANCE_IDLE) - target_mob = null - a_intent = I_HELP - annoyed = max(0,annoyed--) - - //Yes I'm breaking this into two if()'s for ease of reading - //If we ARE ALLOWED TO - if(returns_home && home_turf && !astarpathing && (world.time - stance_changed) > 10 SECONDS) - if(get_dist(src,home_turf) > wander_distance) - move_to_delay = initial(move_to_delay)*2 //Walk back. - GoHome() - else - stop_automated_movement = 0 - - //Search for targets while idle - if(hostile || specific_targets) - FindTarget() - if(STANCE_FOLLOW) - annoyed = 15 - FollowTarget() - if(follow_until_time && world.time > follow_until_time) - LoseFollow() - return - if(hostile || specific_targets) - FindTarget() - if(STANCE_ATTACK) - annoyed = 50 - a_intent = I_HURT - RequestHelp() - MoveToTarget() - if(STANCE_ATTACKING) - annoyed = 50 - AttackTarget() - -/mob/living/simple_mob/proc/handle_supernatural() - if(purge) - purge -= 1 - -/mob/living/simple_mob/gib() - ..(icon_gib,1,icon) // we need to specify where the gib animation is stored - -/mob/living/simple_mob/emote(var/act, var/type, var/desc) - if(act) - ..(act, type, desc) - -/mob/living/simple_mob/bullet_act(var/obj/item/projectile/Proj) - ai_log("bullet_act() I was shot by: [Proj.firer]",2) - - /* VOREStation Edit - Ace doesn't like bonus SA damage. - //Projectiles with bonus SA damage - if(!Proj.nodamage) - if(!Proj.SA_vulnerability || Proj.SA_vulnerability == intelligence_level) - Proj.damage += Proj.SA_bonus_damage - */ // VOREStation Edit End - . = ..() - - if(Proj.firer) - react_to_attack(Proj.firer) - -// When someone clicks us with an empty hand -/mob/living/simple_mob/attack_hand(mob/living/carbon/human/M as mob) - ..() - - switch(M.a_intent) - - if(I_HELP) - if (health > 0) - M.visible_message("[M] [response_help] \the [src].") - - if(I_DISARM) - M.visible_message("[M] [response_disarm] \the [src].") - M.do_attack_animation(src) - //TODO: Push the mob away or something - - if(I_GRAB) - if (M == src) - return - if (!(status_flags & CANPUSH)) - return - if(!incapacitated(INCAPACITATION_ALL) && (stance != STANCE_IDLE) && prob(grab_resist)) - M.visible_message("[M] tries to grab [src] but fails!") - return - - var/obj/item/weapon/grab/G = new /obj/item/weapon/grab(M, src) - - M.put_in_active_hand(G) - - G.synch() - G.affecting = src - LAssailant = M - - M.visible_message("[M] has grabbed [src] passively!") - M.do_attack_animation(src) - ai_log("attack_hand() I was grabbed by: [M]",2) - react_to_attack(M) - - if(I_HURT) - var/armor = run_armor_check(def_zone = null, attack_flag = "melee") - apply_damage(damage = harm_intent_damage, damagetype = BURN, def_zone = null, blocked = armor, blocked = resistance, used_weapon = null, sharp = FALSE, edge = FALSE) - M.visible_message("[M] [response_harm] \the [src]!") - M.do_attack_animation(src) - ai_log("attack_hand() I was hit by: [M]",2) - react_to_attack(M) - - return - -// When somoene clicks us with an item in hand -/mob/living/simple_mob/attackby(var/obj/item/O, var/mob/user) - if(istype(O, /obj/item/stack/medical)) - if(stat != DEAD) - var/obj/item/stack/medical/MED = O - if(health < getMaxHealth()) - if(MED.amount >= 1) - adjustBruteLoss(-MED.heal_brute) - MED.amount -= 1 - if(MED.amount <= 0) - qdel(MED) - for(var/mob/M in viewers(src, null)) - if ((M.client && !( M.blinded ))) - M.show_message("[user] applies the [MED] on [src].") - else - var/datum/gender/T = gender_datums[src.get_visible_gender()] - user << "\The [src] is dead, medical items won't bring [T.him] back to life." // the gender lookup is somewhat overkill, but it functions identically to the obsolete gender macros and future-proofs this code - if(meat_type && (stat == DEAD)) //if the animal has a meat, and if it is dead. - if(istype(O, /obj/item/weapon/material/knife) || istype(O, /obj/item/weapon/material/knife/butch)) - harvest(user) - else - ai_log("attackby() I was weapon'd by: [user]",2) - if(O.force) - react_to_attack(user) - - return ..() - -/mob/living/simple_mob/hit_with_weapon(obj/item/O, mob/living/user, var/effective_force, var/hit_zone) - - //Animals can't be stunned(?) - if(O.damtype == HALLOSS) - effective_force = 0 - if(supernatural && istype(O,/obj/item/weapon/nullrod)) - effective_force *= 2 - purge = 3 - if(O.force <= resistance) - to_chat(user,"This weapon is ineffective, it does no damage.") - return 2 - - ai_log("hit_with_weapon() I was h_w_weapon'd by: [user]",2) - react_to_attack(user) - - . = ..() - -// When someone throws something at us -/mob/living/simple_mob/hitby(atom/movable/AM) - ..() - if(AM.thrower) - react_to_attack(AM.thrower) - -//SA vs SA basically -/mob/living/simple_mob/attack_generic(var/mob/attacker) - if(attacker) - react_to_attack(attacker) - return ..() - -/mob/living/simple_mob/movement_delay() - var/tally = 0 //Incase I need to add stuff other than "speed" later - - tally = speed - - if(force_max_speed) - return -3 - - for(var/datum/modifier/M in modifiers) - if(!isnull(M.haste) && M.haste == TRUE) - return -3 - if(!isnull(M.slowdown)) - tally += M.slowdown - - if(purge)//Purged creatures will move more slowly. The more time before their purge stops, the slower they'll move. - if(tally <= 0) - tally = 1 - tally *= purge - - if(m_intent == "walk") - tally *= 1.5 - - return tally+config.animal_delay - -/mob/living/simple_mob/Stat() - ..() - - if(statpanel("Status") && show_stat_health) - stat(null, "Health: [round((health / getMaxHealth()) * 100)]%") - -/mob/living/simple_mob/lay_down() - ..() - if(resting && icon_rest) - icon_state = icon_rest - else - icon_state = icon_living - update_icon() - -/mob/living/simple_mob/death(gibbed, deathmessage = "dies!") - density = 0 //We don't block even if we did before - walk(src, 0) //We stop any background-processing walks - resting = 0 //We can rest in peace later. - - if(faction_friends.len) - faction_friends -= src - - if(loot_list.len) //Drop any loot - for(var/path in loot_list) - if(prob(loot_list[path])) - new path(get_turf(src)) - - spawn(3) //We'll update our icon in a sec - update_icon() - - return ..(gibbed,deathmessage) - -/mob/living/simple_mob/ex_act(severity) - if(!blinded) - flash_eyes() - var/armor = run_armor_check(def_zone = null, attack_flag = "bomb") - var/bombdam = 500 - switch (severity) - if (1.0) - bombdam = 500 - if (2.0) - bombdam = 60 - if (3.0) - bombdam = 30 - - apply_damage(damage = bombdam, damagetype = BRUTE, def_zone = null, blocked = armor, blocked = resistance, used_weapon = null, sharp = FALSE, edge = FALSE) - - if(bombdam > maxHealth) - gib() - -// Check target_mob if worthy of attack (i.e. check if they are dead or empty mecha) -/mob/living/simple_mob/proc/SA_attackable(target_mob) - ai_log("SA_attackable([target_mob])",3) - if (isliving(target_mob)) - var/mob/living/L = target_mob - if(L.stat != DEAD) - return 1 - if (istype(target_mob,/obj/mecha)) - var/obj/mecha/M = target_mob - if (M.occupant) - return 1 - ai_log("SA_attackable([target_mob]): no",3) - return 0 - -/mob/living/simple_mob/say(var/message,var/datum/language/language) - var/verb = "says" - if(speak_emote.len) - verb = pick(speak_emote) - - message = sanitize(message) - - ..(message, null, verb) - -/mob/living/simple_mob/get_speech_ending(verb, var/ending) - return verb - -/mob/living/simple_mob/put_in_hands(var/obj/item/W) // No hands. - if(has_hands) - put_in_active_hand(W) - return 1 - W.forceMove(get_turf(src)) - return 1 - -// Harvest an animal's delicious byproducts -/mob/living/simple_mob/proc/harvest(var/mob/user) - var/actual_meat_amount = max(1,(meat_amount/2)) - if(meat_type && actual_meat_amount>0 && (stat == DEAD)) - for(var/i=0;i[user] chops up \the [src]!") - new/obj/effect/decal/cleanable/blood/splatter(get_turf(src)) - qdel(src) - else - user.visible_message("[user] butchers \the [src] messily!") - gib() - -/mob/living/simple_mob/handle_fire() - return -/mob/living/simple_mob/update_fire() - return -/mob/living/simple_mob/IgniteMob() - return -/mob/living/simple_mob/ExtinguishMob() - return - -//We got hit! Consider hitting them back! -/mob/living/simple_mob/proc/react_to_attack(var/mob/living/M) - if(ai_inactive || stat || M == target_mob) return //Not if we're dead or already hitting them - if(M in friends || M.faction == faction) return //I'll overlook it THIS time... - ai_log("react_to_attack([M])",1) - if(retaliate && set_target(M, 1)) - handle_stance(STANCE_ATTACK) - return M - - return 0 - -/mob/living/simple_mob/proc/set_target(var/mob/M, forced = 0) - ai_log("SetTarget([M])",2) - if(!M || (world.time - last_target_time < 5 SECONDS) && target_mob) - ai_log("SetTarget() can't set it again so soon",3) - return 0 - - var/turf/seen = get_turf(M) - - if(investigates && (annoyed < 10)) - try_say_list(say_maybe_target) - face_atom(seen) - annoyed += 14 - sleep(1 SECOND) //For realism - - if(forced || (M in ListTargets(view_range))) - try_say_list(say_got_target) - target_mob = M - last_target_time = world.time - return M - else if(investigates) - spawn(1) - WanderTowards(seen) - - return 0 - -// Set a follow target, with optional time for how long to follow them. -/mob/living/simple_mob/proc/set_follow(var/mob/M, var/follow_for = 0) - ai_log("SetFollow([M]) for=[follow_for]",2) - if(!M || (world.time - last_target_time < 4 SECONDS) && follow_mob) - ai_log("SetFollow() can't set it again so soon",3) - return 0 - - follow_mob = M - last_follow_time = world.time - follow_until_time = !follow_for ? 0 : world.time + follow_for - return 1 - -//Scan surroundings for a valid target -/mob/living/simple_mob/proc/FindTarget() - var/atom/T = null - for(var/atom/A in ListTargets(view_range)) - - if(A == src) - continue - - var/atom/F = Found(A) - if(F) - T = F - break - else if(specific_targets) - return 0 - - if(isliving(A)) - var/mob/living/L = A - if(L.faction == src.faction && !attack_same) - continue - else if(L in friends) - continue - else if(L.alpha <= EFFECTIVE_INVIS) - continue - else if(!SA_attackable(L)) - continue - else if(!special_target_check(L)) - continue - else - T = L - break - - else if(istype(A, /obj/mecha)) // Our line of sight stuff was already done in ListTargets(). - var/obj/mecha/M = A - if(!SA_attackable(M)) - continue - else if(!special_target_check(M)) - continue - if((M.occupant.faction != src.faction) || attack_same) - T = M - break - - //You found one! - if(T) - ai_log("FindTarget() found [T]!",1) - if(set_target(T)) - handle_stance(STANCE_ATTACK) - - return T - -//Used for special targeting or reactions -/mob/living/simple_mob/proc/Found(var/atom/A) - return - -// Used for somewhat special targeting, but not to the extent of using Found() -/mob/living/simple_mob/proc/special_target_check(var/atom/A) - return TRUE - -//Requesting help from like-minded individuals -/mob/living/simple_mob/proc/RequestHelp() - if(!cooperative || ((world.time - last_helpask_time) < 10 SECONDS)) - return - - ai_log("RequestHelp() to [faction_friends.len] friends",2) - last_helpask_time = world.time - for(var/mob/living/simple_mob/F in faction_friends) - if(F == src) continue - if(get_dist(src,F) <= F.assist_distance) - spawn(0) - if(F) //They could have died by now and some mobs delete themselves on death - ai_log("RequestHelp() to [F]",3) - F.HelpRequested(src) - -//Someone wants help? -/mob/living/simple_mob/proc/HelpRequested(var/mob/living/simple_mob/F) - if(target_mob || stat) - ai_log("HelpRequested() by [F] but we're busy/dead",2) - return - if(get_dist(src,F) <= follow_dist) - ai_log("HelpRequested() by [F] but we're already here",2) - return - if(get_dist(src,F) <= view_range) - ai_log("HelpRequested() by [F] and within targetshare range",2) - if(F.target_mob && set_target(F.target_mob)) - handle_stance(STANCE_ATTACK) - return - - if(set_follow(F, 10 SECONDS)) - handle_stance(STANCE_FOLLOW) - -// Can be used to conditionally do a ranged or melee attack. -// Note that the SA must be able to do an attack at the specified range or else it may get trapped in a loop of switching -// between STANCE_ATTACK and STANCE_ATTACKING, due to being told by MoveToTarget() that they're in range but being told by AttackTarget() that they're not. -/mob/living/simple_mob/proc/ClosestDistance() - return ranged ? shoot_range - 1 : 1 // Shoot range -1 just because we don't want to constantly get kited - -//Move to a target (or near if we're ranged) -/mob/living/simple_mob/proc/MoveToTarget() - if(incapacitated(INCAPACITATION_DISABLED)) - ai_log("MoveToTarget() Bailing because we're disabled",2) - return - - //If we were chasing someone and we can't anymore, give up. - if(!target_mob || !SA_attackable(target_mob)) - ai_log("MoveToTarget() Losing target at top",2) - LoseTarget() - return - - //Don't wander - stop_automated_movement = 1 - move_to_delay = initial(move_to_delay) - - //We recompute our path every time we're called if we can still see them - if(target_mob in ListTargets(view_range)) - - //Recompute the path if we were using one since we can still see them. - if(astarpathing) - ForgetPath() - - //Find out where we're getting to - var/get_to = ClosestDistance() - var/distance = get_dist(src,target_mob) - ai_log("MoveToTarget() [src] get_to: [get_to] distance: [distance]",2) - - //We're here! - if(distance <= get_to) - ai_log("MoveToTarget() [src] attack range",2) - handle_stance(STANCE_ATTACKING) - return - - //We're just setting out, making a new path, or we can't path with A* - if(!walk_list.len) - ai_log("SA: MoveToTarget() pathing to [target_mob]",2) - - //GetPath failed for whatever reason, just smash into things towards them - if(run_at_them || !GetPath(get_turf(target_mob),get_to)) - - //We try the built-in way to stay close - walk_to(src, target_mob, get_to, move_to_delay) - ai_log("MoveToTarget() walk_to([src],[target_mob],[get_to],[move_to_delay])",3) - - //Break shit in their direction! LEME SMAHSH - var/dir_to_mob = get_dir(src,target_mob) - face_atom(target_mob) - DestroySurroundings(dir_to_mob) - ai_log("MoveToTarget() DestroySurroundings([get_dir(src,target_mob)])",3) - - //We have a path! We aren't already pathing it! - if(!astarpathing && walk_list.len) - ai_log("MoveToTarget() going to start a path",2) - spawn(1) - - //Do the path! - var/result = WalkPath(target_thing = target_mob, target_dist = get_to) - ai_log("MoveToTarget() WalkPath r:[result]",2) - - //WalkPath failed, either interrupted for recalc, or something else - if(!result) - return - - //WalkPath either got close enough or we ran out of path - else - spawn(1) - ai_log("MoveToTarget() resetting",2) - MoveToTarget() - - //We can't see them, and we don't have a path we're trying to follow to find them - else if(!astarpathing) - ai_log("MoveToTarget() Losing target at bottom",2) - LoseTarget() //Just forget it. - -//Follow a target (and don't attempt to murder it horribly) -/mob/living/simple_mob/proc/FollowTarget() - ai_log("FollowTarget() [follow_mob]",1) - stop_automated_movement = 1 - //If we were chasing someone and we can't anymore, give up. - if(!follow_mob || follow_mob.stat) - ai_log("FollowTarget() Losing follow at top",2) - LoseFollow() - return - - if(incapacitated(INCAPACITATION_DISABLED)) - ai_log("FollowTarget() Bailing because we're disabled",2) - LoseFollow() - return - - if((get_dist(src,follow_mob) <= follow_dist)) - ai_log("FollowTarget() Already at target",2) - return - - move_to_delay = initial(move_to_delay) - var/start_distance = get_dist(src,follow_mob) - - //Bad pathing - if(run_at_them) - walk_to(src, follow_mob, follow_dist, move_to_delay) - ai_log("FollowTarget() walk_to([src],[target_mob],2,[move_to_delay])",3) - spawn(3 SECONDS) - if(src && follow_mob && (stance == STANCE_FOLLOW) && (get_dist(src,follow_mob) >= start_distance)) - ai_log("FollowTarget() walk_to not making headway, giving up",3) - LoseFollow() - - //Good pathing - else - GetPath(get_turf(follow_mob),follow_dist) - if(!astarpathing && walk_list.len) - spawn(1) - ai_log("FollowTarget() A* path getting underway",2) - //Do the path! - var/result = WalkPath(target_thing = follow_mob, target_dist = follow_dist) - ai_log("FollowTarget() WalkPath r:[result]",3) - - else - ai_log("FollowTarget() GetPath can't path, giving up",3) - LoseFollow() - -//Just try one time to go look at something. Don't really focus much on it. -/mob/living/simple_mob/proc/WanderTowards(var/turf/T) - if(!T) return - ai_log("WanderTowards() [T.x],[T.y]",1) - - stop_automated_movement = 1 - GetPath(T,1) - - if(run_at_them || !walk_list.len) - ai_log("WanderTowards() walk_to getting underway",2) - walk_to(src, T, 1, move_to_delay) - else - if(!astarpathing) - spawn(1) - ai_log("WanderTowards() A* path getting underway",2) - WalkPath(target_thing = T, target_dist = 1) - -//A* now, try to a path to a target -/mob/living/simple_mob/proc/GetPath(var/turf/target,var/get_to = 1,var/max_distance = world.view*6) - ai_log("GetPath([target],[get_to],[max_distance])",2) - ForgetPath() - var/list/new_path = AStar(get_turf(loc), target, astar_adjacent_proc, /turf/proc/Distance, min_target_dist = get_to, max_node_depth = max_distance, id = myid, exclude = obstacles) - - if(new_path && new_path.len) - walk_list = new_path - if(path_display) - for(var/turf/T in walk_list) - T.overlays |= path_overlay - else - return 0 - - return walk_list.len - -//Walk along our A* path, target_thing allows us to stop early if we're nearby -/mob/living/simple_mob/proc/WalkPath(var/atom/target_thing, var/target_dist = 1, var/proc/steps_callback = null, var/every_steps = 4) - ai_log("WalkPath() (steps:[walk_list.len])",2) - if(!walk_list || !walk_list.len) - return - - astarpathing = 1 - var/step_count = 0 - var/failed_steps = 0 - while(1) - //We're supposed to stop - if(!astarpathing || incapacitated(INCAPACITATION_DISABLED)) - astarpathing = 0 - ai_log("WalkPath() was interrupted",2) - return 0 - //Finished the path - if(!walk_list.len) - astarpathing = 0 - ai_log("WalkPath() exited naturally",2) - return 1 - if(failed_steps >= 3) - astarpathing = 0 - ai_log("WalkPath() failed too many steps",2) - return 0 - - //Take a step - if(!MoveOnce()) - ai_log("WalkPath() failed a step",3) - failed_steps++ - else - ai_log("WalkPath() took a step",3) - failed_steps = 0 - step_count++ - - //If we have a particular target we care about, look for them - if(target_thing && (get_dist(src,target_thing) <= target_dist)) - ai_log("WalkPath() returning due to proximity",2) - return target_thing - - //If we have a callback - if(steps_callback && (step_count >= every_steps)) - ai_log("WalkPath() doing callback",3) - call(steps_callback)() - - //And wait for the time to our next step - sleep(move_to_delay) - -//Take one step along a path -/mob/living/simple_mob/proc/MoveOnce() - if(!walk_list.len) - return - - if(path_display) - var/turf/T = src.walk_list[1] - T.overlays -= path_overlay - - step_towards(src, src.walk_list[1]) - if(src.loc != src.walk_list[1]) - ai_log("MoveOnce() step_towards returning 0",3) - return 0 - else - walk_list -= src.walk_list[1] - ai_log("MoveOnce() step_towards returning 1",3) - return 1 - -//Forget the path entirely -/mob/living/simple_mob/proc/ForgetPath() - ai_log("ForgetPath()",2) - if(path_display) - for(var/turf/T in walk_list) - T.overlays -= path_overlay - astarpathing = 0 - walk_list.Cut() - -//Giving up on moving -/mob/living/simple_mob/proc/GiveUpMoving() - ai_log("GiveUpMoving()",1) - ForgetPath() - walk(src, 0) - stop_automated_movement = 0 - -//Return home, all-in-one proc (though does target scan and drop out if they see one) -/mob/living/simple_mob/proc/GoHome() - if(!home_turf) return - if(astarpathing) ForgetPath() - ai_log("GoHome()",1) - var/close_enough = 2 - var/look_in = 50 - if(GetPath(home_turf,close_enough,look_in)) - stop_automated_movement = 1 - spawn(1) - if(WalkPath()) //If we made it without interruption - ai_log("GoHome() got home",2) - GiveUpMoving() //Go back to wandering - -//Get into attack mode on a target -/mob/living/simple_mob/proc/AttackTarget() - stop_automated_movement = 1 - if(incapacitated(INCAPACITATION_DISABLED)) - ai_log("AttackTarget() Bailing because we're disabled",2) - LoseTarget() - return 0 - if(!target_mob || !SA_attackable(target_mob) || (target_mob.alpha <= EFFECTIVE_INVIS)) //if the target went invisible, you can't follow it - LoseTarget() - return 0 - if(!(target_mob in ListTargets(view_range))) - LostTarget() - return 0 - - ai_log("AttackTarget() vs. [target_mob]",1) - var/distance = get_dist(src, target_mob) - face_atom(target_mob) - - //Hadoooooken! - if(prob(spattack_prob) && (distance >= spattack_min_range) && (distance <= spattack_max_range)) - ai_log("AttackTarget() special",3) - if(SpecialAtkTarget()) //Might not succeed/be allowed, do something else. - return 1 - //AAAAH! - if(distance <= 1) - ai_log("AttackTarget() melee",3) - PunchTarget() - return 1 - //Open fire! - else if(ranged && (distance <= shoot_range)) - ai_log("AttackTarget() ranged",3) - ShootTarget(target_mob) - return 1 - //They ran away! - else - ai_log("AttackTarget() out of range!",3) - stoplag(1) // Unfortunately this is needed to protect from ClosestDistance() sometimes not updating fast enough to prevent an infinite loop. - handle_stance(STANCE_ATTACK) - return 0 - -//Attack the target in melee -/mob/living/simple_mob/proc/PunchTarget() - if(!Adjacent(target_mob)) - return - if(!canClick()) - return - setClickCooldown(get_attack_speed()) -// if(!client) -// sleep(rand(melee_attack_minDelay, melee_attack_maxDelay)) - if(isliving(target_mob)) - var/mob/living/L = target_mob - - if(prob(melee_miss_chance)) - add_attack_logs(src,L,"Animal-attacked (miss)", admin_notify = FALSE) - visible_message("[src] misses [L]!") - do_attack_animation(src) - return L - else - DoPunch(L) - return L - if(istype(target_mob,/obj/mecha)) - var/obj/mecha/M = target_mob - DoPunch(M) - return M - -// This is the actual act of 'punching'. Override for special behaviour. -/mob/living/simple_mob/proc/DoPunch(var/atom/A) - if(!Adjacent(A) && !istype(A, /obj/structure/window) && !istype(A, /obj/machinery/door/window)) // They could've moved in the meantime. But a Window probably wouldn't have. This allows player simple-mobs to attack windows. - return FALSE - - var/damage_to_do = rand(melee_damage_lower, melee_damage_upper) - - for(var/datum/modifier/M in modifiers) - if(!isnull(M.outgoing_melee_damage_percent)) - damage_to_do *= M.outgoing_melee_damage_percent - - // SA attacks can be blocked with shields. - if(ishuman(A)) - var/mob/living/carbon/human/H = A - if(H.check_shields(damage = damage_to_do, damage_source = src, attacker = src, def_zone = null, attack_text = "the attack")) - return FALSE - - if(A.attack_generic(src, damage_to_do, pick(attacktext), attack_armor_type, attack_armor_pen, attack_sharp, attack_edge) && attack_sound) - playsound(src, attack_sound, 75, 1) - - return TRUE - -//The actual top-level ranged attack proc -/mob/living/simple_mob/proc/ShootTarget() - if(!canClick()) - return FALSE - - setClickCooldown(get_attack_speed()) - - var/target = target_mob - var/tturf = get_turf(target) - - if((firing_lines && !client) && !CheckFiringLine(tturf)) - step_rand(src) - face_atom(tturf) - return FALSE - - visible_message("[src] fires at [target]!") - if(rapid) - spawn(1) - Shoot(target, src.loc, src) - if(casingtype) - new casingtype(get_turf(src)) - spawn(4) - Shoot(target, src.loc, src) - if(casingtype) - new casingtype(get_turf(src)) - spawn(6) - Shoot(target, src.loc, src) - if(casingtype) - new casingtype(get_turf(src)) - else - Shoot(target, src.loc, src) - if(casingtype) - new casingtype - - return TRUE - -//Check firing lines for faction_friends (if we're not cooperative, we don't care) -/mob/living/simple_mob/proc/CheckFiringLine(var/turf/tturf) - if(!tturf) return - - var/turf/list/crosses = list() - var/this_turf = get_turf(src) - - while(this_turf != tturf) - this_turf = get_step(this_turf,get_dir(this_turf,tturf)) - crosses += this_turf - - for(var/mob/living/FF in faction_friends) - if(FF.loc in crosses) - return 0 - - for(var/mob/living/F in friends) - if(F.loc in crosses) - return 0 - - return 1 - -//Special attacks, like grenades or blinding spit or whatever -/mob/living/simple_mob/proc/SpecialAtkTarget() - return 0 - -//Shoot a bullet at someone -/mob/living/simple_animal/proc/Shoot(atom/target, atom/start, mob/user, var/bullet = 0) - if(target == start) - return - - var/obj/item/projectile/A = new projectiletype(user.loc) - playsound(user, projectilesound, 100, 1) - if(!A) return - -// if (!istype(target, /turf)) -// qdel(A) -// return - A.old_style_target(target) - A.fire() - -//We can't see the target -/mob/living/simple_mob/proc/LoseTarget() - ai_log("LoseTarget() [target_mob]",2) - target_mob = null - handle_stance(STANCE_IDLE) - GiveUpMoving() - -//Target is no longer valid (?) -/mob/living/simple_mob/proc/LostTarget() - handle_stance(STANCE_IDLE) - GiveUpMoving() - -//Forget a follow mode -/mob/living/simple_mob/proc/LoseFollow() - ai_log("LoseFollow() [target_mob]",2) - stop_automated_movement = 0 - follow_mob = null - handle_stance(STANCE_IDLE) - GiveUpMoving() - -// Makes the simple mob stop everything. Useful for when it get stunned. -/mob/living/simple_mob/proc/Disable() - ai_log("Disable() [target_mob]",2) - spawn(0) - LoseTarget() - LoseFollow() - -/mob/living/simple_mob/Stun(amount) - if(amount > 0) - Disable() - ..(amount) - -/mob/living/simple_mob/AdjustStunned(amount) - if(amount > 0) - Disable() - ..(amount) - -/mob/living/simple_mob/Weaken(amount) - if(amount > 0) - Disable() - ..(amount) - -/mob/living/simple_mob/AdjustWeakened(amount) - if(amount > 0) - Disable() - ..(amount) - -/mob/living/simple_mob/Paralyse(amount) - if(amount > 0) - Disable() - ..(amount) - -/mob/living/simple_mob/AdjustParalysis(amount) - if(amount > 0) - Disable() - ..(amount) - -//Find me some targets -/mob/living/simple_mob/proc/ListTargets(var/dist = view_range) - var/list/L = hearers(src, dist) - - for(var/obj/mecha/M in mechas_list) - if ((M.z == src.z) && (get_dist(src, M) <= dist) && (isInSight(src,M))) - L += M - - return L - -//Break through windows/other things -/mob/living/simple_mob/proc/DestroySurroundings(var/direction) - if(!direction) - direction = pick(cardinal) //FLAIL WILDLY - - var/turf/problem_turf = get_step(src, direction) - - ai_log("DestroySurroundings([direction])",3) - var/damage_to_do = rand(melee_damage_lower, melee_damage_upper) - - for(var/datum/modifier/M in modifiers) - if(!isnull(M.outgoing_melee_damage_percent)) - damage_to_do *= M.outgoing_melee_damage_percent - - for(var/obj/structure/window/obstacle in problem_turf) - if(obstacle.dir == reverse_dir[dir]) // So that windows get smashed in the right order - ai_log("DestroySurroundings() directional window hit",3) - obstacle.attack_generic(src, damage_to_do, pick(attacktext)) - return - else if(obstacle.is_fulltile()) - ai_log("DestroySurroundings() full tile window hit",3) - obstacle.attack_generic(src, damage_to_do, pick(attacktext)) - return - - var/obj/structure/obstacle = locate(/obj/structure, problem_turf) - if(istype(obstacle, /obj/structure/window) || istype(obstacle, /obj/structure/closet) || istype(obstacle, /obj/structure/table) || istype(obstacle, /obj/structure/grille)) - ai_log("DestroySurroundings() generic structure hit [obstacle]",3) - obstacle.attack_generic(src, damage_to_do, pick(attacktext)) - return - - for(var/obj/machinery/door/baddoor in problem_turf) //Required since firelocks take up the same turf - if(baddoor.density) - ai_log("DestroySurroundings() door hit [baddoor]",3) - baddoor.attack_generic(src, damage_to_do, pick(attacktext)) - return - -//Check for shuttle bumrush -/mob/living/simple_mob/proc/check_horde() - return 0 - if(emergency_shuttle.shuttle.location) - if(!enroute && !target_mob) //The shuttle docked, all monsters rush for the escape hallway - if(!shuttletarget && escape_list.len) //Make sure we didn't already assign it a target, and that there are targets to pick - shuttletarget = pick(escape_list) //Pick a shuttle target - enroute = 1 - stop_automated_movement = 1 - spawn() - if(!src.stat) - horde() - - if(get_dist(src, shuttletarget) <= 2) //The monster reached the escape hallway - enroute = 0 - stop_automated_movement = 0 - -//Shuttle bumrush -/mob/living/simple_mob/proc/horde() - var/turf/T = get_step_to(src, shuttletarget) - for(var/atom/A in T) - if(istype(A,/obj/machinery/door/airlock)) - var/obj/machinery/door/airlock/D = A - D.open(1) - else if(istype(A,/obj/structure/simple_door)) - var/obj/structure/simple_door/D = A - if(D.density) - D.Open() - else if(istype(A,/obj/structure/cult/pylon)) - A.attack_generic(src, rand(melee_damage_lower, melee_damage_upper)) - else if(istype(A, /obj/structure/window) || istype(A, /obj/structure/closet) || istype(A, /obj/structure/table) || istype(A, /obj/structure/grille)) - A.attack_generic(src, rand(melee_damage_lower, melee_damage_upper)) - Move(T) - FindTarget() - if(!target_mob || enroute) - spawn(10) - if(!src.stat) - horde() - -//Touches a wire, etc -/mob/living/simple_mob/electrocute_act(var/shock_damage, var/obj/source, var/siemens_coeff = 1.0, var/def_zone = null) - shock_damage *= max(siemens_coeff - shock_resistance, 0) - if (shock_damage < 1) - return 0 - - apply_damage(damage = shock_damage, damagetype = BURN, def_zone = null, blocked = null, blocked = resistance, used_weapon = null, sharp = FALSE, edge = FALSE) - playsound(loc, "sparks", 50, 1, -1) - - var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread - s.set_up(5, 1, loc) - s.start() - -//Shot with taser/stunvolver -/mob/living/simple_mob/stun_effect_act(var/stun_amount, var/agony_amount, var/def_zone, var/used_weapon=null) - if(taser_kill) - var/stunDam = 0 - var/agonyDam = 0 - var/armor = run_armor_check(def_zone = null, attack_flag = "energy") - - if(stun_amount) - stunDam += stun_amount * 0.5 - apply_damage(damage = stunDam, damagetype = BURN, def_zone = null, blocked = armor, blocked = resistance, used_weapon = used_weapon, sharp = FALSE, edge = FALSE) - - if(agony_amount) - agonyDam += agony_amount * 0.5 - apply_damage(damage = agonyDam, damagetype = BURN, def_zone = null, blocked = armor, blocked = resistance, used_weapon = used_weapon, sharp = FALSE, edge = FALSE) - -/mob/living/simple_mob/emp_act(severity) - if(!isSynthetic()) - return - switch(severity) - if(1) - adjustFireLoss(rand(15, 25)) - if(2) - adjustFireLoss(rand(10, 18)) - if(3) - adjustFireLoss(rand(5, 12)) - if(4) - adjustFireLoss(rand(1, 6)) - -/mob/living/simple_mob/getarmor(def_zone, attack_flag) - var/armorval = armor[attack_flag] - if(!armorval) - return 0 - else - return armorval -/* -// Force it to target something -/mob/living/simple_mob/proc/taunt(var/mob/living/new_target, var/forced = FALSE) - if(intelligence_level == SA_HUMANOID && !forced) - return - set_target(new_target) -*/ -/mob/living/simple_mob/is_sentient() - return intelligence_level != SA_PLANT && intelligence_level != SA_ROBOTIC - -// Hand procs for player-controlled SA's -/mob/living/simple_mob/swap_hand() - src.hand = !( src.hand ) - if(hud_used.l_hand_hud_object && hud_used.r_hand_hud_object) - if(hand) //This being 1 means the left hand is in use - hud_used.l_hand_hud_object.icon_state = "l_hand_active" - hud_used.r_hand_hud_object.icon_state = "r_hand_inactive" - else - hud_used.l_hand_hud_object.icon_state = "l_hand_inactive" - hud_used.r_hand_hud_object.icon_state = "r_hand_active" - return -/* -/mob/living/simple_mob/put_in_active_hand(var/obj/item/I) - if(!has_hands || !istype(I)) - return -*/ -//Puts the item into our active hand if possible. returns 1 on success. -/mob/living/simple_mob/put_in_active_hand(var/obj/item/W) - if(!has_hands) - return FALSE - return (hand ? put_in_l_hand(W) : put_in_r_hand(W)) - -/mob/living/simple_mob/put_in_l_hand(var/obj/item/W) - if(!..() || l_hand) - return 0 - W.forceMove(src) - l_hand = W - W.equipped(src,slot_l_hand) - W.add_fingerprint(src) - update_inv_l_hand() - return TRUE - -/mob/living/simple_mob/put_in_r_hand(var/obj/item/W) - if(!..() || r_hand) - return 0 - W.forceMove(src) - r_hand = W - W.equipped(src,slot_r_hand) - W.add_fingerprint(src) - update_inv_r_hand() - return TRUE - -/mob/living/simple_mob/update_inv_r_hand() - if(QDESTROYING(src)) - return - - if(r_hand) - r_hand.screen_loc = ui_rhand //TODO - - //determine icon state to use - var/t_state - if(r_hand.item_state_slots && r_hand.item_state_slots[slot_r_hand_str]) - t_state = r_hand.item_state_slots[slot_r_hand_str] - else if(r_hand.item_state) - t_state = r_hand.item_state - else - t_state = r_hand.icon_state - - //determine icon to use - var/icon/t_icon - if(r_hand.item_icons && (slot_r_hand_str in r_hand.item_icons)) - t_icon = r_hand.item_icons[slot_r_hand_str] - else if(r_hand.icon_override) - t_state += "_r" - t_icon = r_hand.icon_override - else - t_icon = INV_R_HAND_DEF_ICON - - //apply color - var/image/standing = image(icon = t_icon, icon_state = t_state) - standing.color = r_hand.color - - r_hand_sprite = standing - - else - r_hand_sprite = null - - update_icon() - -/mob/living/simple_mob/update_inv_l_hand() - if(QDESTROYING(src)) - return - - if(l_hand) - l_hand.screen_loc = ui_lhand //TODO - - //determine icon state to use - var/t_state - if(l_hand.item_state_slots && l_hand.item_state_slots[slot_l_hand_str]) - t_state = l_hand.item_state_slots[slot_l_hand_str] - else if(l_hand.item_state) - t_state = l_hand.item_state - else - t_state = l_hand.icon_state - - //determine icon to use - var/icon/t_icon - if(l_hand.item_icons && (slot_l_hand_str in l_hand.item_icons)) - t_icon = l_hand.item_icons[slot_l_hand_str] - else if(l_hand.icon_override) - t_state += "_l" - t_icon = l_hand.icon_override - else - t_icon = INV_L_HAND_DEF_ICON - - //apply color - var/image/standing = image(icon = t_icon, icon_state = t_state) - standing.color = l_hand.color - - l_hand_sprite = standing - - else - l_hand_sprite = null - - update_icon() - -//Can insert extra huds into the hud holder here. -/mob/living/simple_mob/proc/extra_huds(var/datum/hud/hud,var/icon/ui_style,var/list/hud_elements) - return - -//If they can or cannot use tools/machines/etc -/mob/living/simple_mob/IsAdvancedToolUser() - return has_hands - -/mob/living/simple_mob/proc/IsHumanoidToolUser(var/atom/tool) - if(!humanoid_hands) - var/display_name = null - if(tool) - display_name = tool - else - display_name = "object" - to_chat(src, "Your [hand_form] are not fit for use of \the [display_name].") - return humanoid_hands - -/mob/living/simple_mob/drop_from_inventory(var/obj/item/W, var/atom/target = null) - . = ..(W, target) - if(!target) - target = src.loc - if(.) - W.forceMove(src.loc) - -//Commands, reactions, etc -/mob/living/simple_mob/hear_say(var/message, var/verb = "says", var/datum/language/language = null, var/alt_name = "", var/italics = 0, var/mob/speaker = null, var/sound/speech_sound, var/sound_vol) - ..() - if(!ai_inactive && reacts && speaker && (message in reactions) && (!hostile || isliving(speaker)) && say_understands(speaker,language)) - var/mob/living/L = speaker - if(L.faction == faction) - spawn(10) - face_atom(speaker) - say(reactions[message]) - -//Just some subpaths for easy searching -/mob/living/simple_mob/hostile - faction = "not yours" - hostile = 1 - retaliate = 1 - stop_when_pulled = 0 - destroy_surroundings = 1 - -/mob/living/simple_mob/retaliate - retaliate = 1 - destroy_surroundings = 1 - -/mob/living/simple_mob/get_nametag_desc(mob/user) - return "[tt_desc]" diff --git a/code/modules/mob/living/simple_animal/simple_hud.dm b/code/modules/mob/living/simple_animal/simple_hud.dm deleted file mode 100644 index fe851648b4c..00000000000 --- a/code/modules/mob/living/simple_animal/simple_hud.dm +++ /dev/null @@ -1,311 +0,0 @@ -/mob/living/simple_mob/instantiate_hud(var/datum/hud/hud) - if(!client) - return //Why bother. - - var/ui_style = 'icons/mob/screen1_animal.dmi' - if(ui_icons) - ui_style = ui_icons - - var/ui_color = "#ffffff" - var/ui_alpha = 255 - - var/list/adding = list() - var/list/other = list() - var/list/hotkeybuttons = list() - var/list/slot_info = list() - - hud.adding = adding - hud.other = other - hud.hotkeybuttons = hotkeybuttons - - var/list/hud_elements = list() - var/obj/screen/using - var/obj/screen/inventory/inv_box - - var/has_hidden_gear - if(LAZYLEN(hud_gears)) - for(var/gear_slot in hud_gears) - inv_box = new /obj/screen/inventory() - inv_box.icon = ui_style - inv_box.color = ui_color - inv_box.alpha = ui_alpha - - var/list/slot_data = hud_gears[gear_slot] - inv_box.name = gear_slot - inv_box.screen_loc = slot_data["loc"] - inv_box.slot_id = slot_data["slot"] - inv_box.icon_state = slot_data["state"] - slot_info["[inv_box.slot_id]"] = inv_box.screen_loc - - if(slot_data["dir"]) - inv_box.set_dir(slot_data["dir"]) - - if(slot_data["toggle"]) - other += inv_box - has_hidden_gear = 1 - else - adding += inv_box - - if(has_hidden_gear) - using = new /obj/screen() - using.name = "toggle" - using.icon = ui_style - using.icon_state = "other" - using.screen_loc = ui_inventory - using.hud_layerise() - using.color = ui_color - using.alpha = ui_alpha - adding += using - - //Intent Backdrop - using = new /obj/screen() - using.name = "act_intent" - using.icon = ui_style - using.icon_state = "intent_"+a_intent - using.screen_loc = ui_acti - using.color = ui_color - using.alpha = ui_alpha - hud.adding += using - hud.action_intent = using - - hud_elements |= using - - //Small intent quarters - var/icon/ico - - ico = new(ui_style, "black") - ico.MapColors(0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0, -1,-1,-1,-1) - ico.DrawBox(rgb(255,255,255,1),1,ico.Height()/2,ico.Width()/2,ico.Height()) - using = new /obj/screen() - using.name = I_HELP - using.icon = ico - using.screen_loc = ui_acti - using.alpha = ui_alpha - using.layer = LAYER_HUD_ITEM //These sit on the intent box - hud.adding += using - hud.help_intent = using - - ico = new(ui_style, "black") - ico.MapColors(0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0, -1,-1,-1,-1) - ico.DrawBox(rgb(255,255,255,1),ico.Width()/2,ico.Height()/2,ico.Width(),ico.Height()) - using = new /obj/screen() - using.name = I_DISARM - using.icon = ico - using.screen_loc = ui_acti - using.alpha = ui_alpha - using.layer = LAYER_HUD_ITEM - hud.adding += using - hud.disarm_intent = using - - ico = new(ui_style, "black") - ico.MapColors(0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0, -1,-1,-1,-1) - ico.DrawBox(rgb(255,255,255,1),ico.Width()/2,1,ico.Width(),ico.Height()/2) - using = new /obj/screen() - using.name = I_GRAB - using.icon = ico - using.screen_loc = ui_acti - using.alpha = ui_alpha - using.layer = LAYER_HUD_ITEM - hud.adding += using - hud.grab_intent = using - - ico = new(ui_style, "black") - ico.MapColors(0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0, -1,-1,-1,-1) - ico.DrawBox(rgb(255,255,255,1),1,1,ico.Width()/2,ico.Height()/2) - using = new /obj/screen() - using.name = I_HURT - using.icon = ico - using.screen_loc = ui_acti - using.alpha = ui_alpha - using.layer = LAYER_HUD_ITEM - hud.adding += using - hud.hurt_intent = using - - //Move intent (walk/run) - using = new /obj/screen() - using.name = "mov_intent" - using.icon = ui_style - using.icon_state = (m_intent == "run" ? "running" : "walking") - using.screen_loc = ui_movi - using.color = ui_color - using.alpha = ui_alpha - hud.adding += using - hud.move_intent = using - - //Resist button - using = new /obj/screen() - using.name = "resist" - using.icon = ui_style - using.icon_state = "act_resist" - using.screen_loc = ui_pull_resist - using.color = ui_color - using.alpha = ui_alpha - hud.hotkeybuttons += using - - //Pull button - pullin = new /obj/screen() - pullin.icon = ui_style - pullin.icon_state = "pull0" - pullin.name = "pull" - pullin.screen_loc = ui_pull_resist - hud.hotkeybuttons += pullin - hud_elements |= pullin - - //Health status - healths = new /obj/screen() - healths.icon = ui_style - healths.icon_state = "health0" - healths.name = "health" - healths.screen_loc = ui_health - hud_elements |= healths - - //Oxygen dep icon - oxygen = new /obj/screen() - oxygen.icon = ui_style - oxygen.icon_state = "oxy0" - oxygen.name = "oxygen" - oxygen.screen_loc = ui_oxygen - hud_elements |= oxygen - - //Toxins present icon - toxin = new /obj/screen() - toxin.icon = ui_style - toxin.icon_state = "tox0" - toxin.name = "toxin" - toxin.screen_loc = ui_toxin - hud_elements |= toxin - - //Fire warning - fire = new /obj/screen() - fire.icon = ui_style - fire.icon_state = "fire0" - fire.name = "fire" - fire.screen_loc = ui_fire - hud_elements |= fire - - //Pressure warning - pressure = new /obj/screen() - pressure.icon = ui_style - pressure.icon_state = "pressure0" - pressure.name = "pressure" - pressure.screen_loc = ui_pressure - hud_elements |= pressure - - //Body temp warning - bodytemp = new /obj/screen() - bodytemp.icon = ui_style - bodytemp.icon_state = "temp0" - bodytemp.name = "body temperature" - bodytemp.screen_loc = ui_temp - hud_elements |= bodytemp - - //Nutrition status - nutrition_icon = new /obj/screen() - nutrition_icon.icon = ui_style - nutrition_icon.icon_state = "nutrition0" - nutrition_icon.name = "nutrition" - nutrition_icon.screen_loc = ui_nutrition - hud_elements |= nutrition_icon - - pain = new /obj/screen( null ) - - zone_sel = new /obj/screen/zone_sel( null ) - zone_sel.icon = ui_style - zone_sel.color = ui_color - zone_sel.alpha = ui_alpha - zone_sel.overlays.Cut() - zone_sel.overlays += image('icons/mob/zone_sel.dmi', "[zone_sel.selecting]") - hud_elements |= zone_sel - - //Hand things - if(has_hands) - //Drop button - using = new /obj/screen() - using.name = "drop" - using.icon = ui_style - using.icon_state = "act_drop" - using.screen_loc = ui_drop_throw - using.color = ui_color - using.alpha = ui_alpha - hud.hotkeybuttons += using - - //Equip detail - using = new /obj/screen() - using.name = "equip" - using.icon = ui_style - using.icon_state = "act_equip" - using.screen_loc = ui_equip - using.color = ui_color - using.alpha = ui_alpha - hud.adding += using - - //Hand slots themselves - inv_box = new /obj/screen/inventory/hand() - inv_box.hud = src - inv_box.name = "r_hand" - inv_box.icon = ui_style - inv_box.icon_state = "r_hand_inactive" - if(!hand) //This being 0 or null means the right hand is in use - inv_box.icon_state = "r_hand_active" - inv_box.screen_loc = ui_rhand - inv_box.slot_id = slot_r_hand - inv_box.color = ui_color - inv_box.alpha = ui_alpha - hud.r_hand_hud_object = inv_box - hud.adding += inv_box - slot_info["[slot_r_hand]"] = inv_box.screen_loc - - inv_box = new /obj/screen/inventory/hand() - inv_box.hud = src - inv_box.name = "l_hand" - inv_box.icon = ui_style - inv_box.icon_state = "l_hand_inactive" - if(hand) //This being 1 means the left hand is in use - inv_box.icon_state = "l_hand_active" - inv_box.screen_loc = ui_lhand - inv_box.slot_id = slot_l_hand - inv_box.color = ui_color - inv_box.alpha = ui_alpha - hud.l_hand_hud_object = inv_box - hud.adding += inv_box - slot_info["[slot_l_hand]"] = inv_box.screen_loc - - //Swaphand titlebar - using = new /obj/screen/inventory() - using.name = "hand" - using.icon = ui_style - using.icon_state = "hand1" - using.screen_loc = ui_swaphand1 - using.color = ui_color - using.alpha = ui_alpha - hud.adding += using - - using = new /obj/screen/inventory() - using.name = "hand" - using.icon = ui_style - using.icon_state = "hand2" - using.screen_loc = ui_swaphand2 - using.color = ui_color - using.alpha = ui_alpha - hud.adding += using - - //Throw button - throw_icon = new /obj/screen() - throw_icon.icon = ui_style - throw_icon.icon_state = "act_throw_off" - throw_icon.name = "throw" - throw_icon.screen_loc = ui_drop_throw - throw_icon.color = ui_color - throw_icon.alpha = ui_alpha - hud.hotkeybuttons += throw_icon - hud_elements |= throw_icon - - extra_huds(hud,ui_style,hud_elements) - - client.screen = list() - - client.screen += hud_elements - client.screen += adding + hotkeybuttons - client.screen += client.void - - return diff --git a/code/modules/mob/living/simple_animal/slime/subtypes.dm b/code/modules/mob/living/simple_animal/slime/subtypes.dm deleted file mode 100644 index 75f33cdcef6..00000000000 --- a/code/modules/mob/living/simple_animal/slime/subtypes.dm +++ /dev/null @@ -1,748 +0,0 @@ -// Tier 1 - -/mob/living/simple_animal/slime/purple - desc = "This slime is rather toxic to handle, as it is poisonous." - color = "#CC23FF" - slime_color = "purple" - coretype = /obj/item/slime_extract/purple - reagent_injected = "toxin" - - description_info = "This slime spreads a toxin when it attacks. A biosuit or other thick armor can protect from the toxic attack." - - slime_mutation = list( - /mob/living/simple_animal/slime/dark_purple, - /mob/living/simple_animal/slime/dark_blue, - /mob/living/simple_animal/slime/green, - /mob/living/simple_animal/slime - ) - - -/mob/living/simple_animal/slime/orange - desc = "This slime is known to be flammable and can ignite enemies." - color = "#FFA723" - slime_color = "orange" - coretype = /obj/item/slime_extract/orange - - description_info = "Attacks from this slime can ignite you. A firesuit can protect from the burning attacks of this slime." - - slime_mutation = list( - /mob/living/simple_animal/slime/dark_purple, - /mob/living/simple_animal/slime/yellow, - /mob/living/simple_animal/slime/red, - /mob/living/simple_animal/slime - ) - -/mob/living/simple_animal/slime/orange/post_attack(mob/living/L, intent) - if(intent != I_HELP) - L.adjust_fire_stacks(1) - if(prob(25)) - L.IgniteMob() - ..() - -/mob/living/simple_animal/slime/blue - desc = "This slime produces 'cryotoxin' and uses it against their foes. Very deadly to other slimes." - color = "#19FFFF" - slime_color = "blue" - coretype = /obj/item/slime_extract/blue - reagent_injected = "cryotoxin" - - description_info = "Attacks from this slime can chill you. A biosuit or other thick armor can protect from the chilling attack." - - slime_mutation = list( - /mob/living/simple_animal/slime/dark_blue, - /mob/living/simple_animal/slime/silver, - /mob/living/simple_animal/slime/pink, - /mob/living/simple_animal/slime - ) - - -/mob/living/simple_animal/slime/metal - desc = "This slime is a lot more resilient than the others, due to having a metamorphic metallic and sloped surface." - color = "#5F5F5F" - slime_color = "metal" - shiny = 1 - coretype = /obj/item/slime_extract/metal - - description_info = "This slime is a lot more durable and tough to damage than the others." - - resistance = 10 // Sloped armor is strong. - maxHealth = 250 - maxHealth_adult = 350 - - slime_mutation = list( - /mob/living/simple_animal/slime/silver, - /mob/living/simple_animal/slime/yellow, - /mob/living/simple_animal/slime/gold, - /mob/living/simple_animal/slime - ) - -// Tier 2 - -/mob/living/simple_animal/slime/yellow - desc = "This slime is very conductive, and is known to use electricity as a means of defense moreso than usual for slimes." - color = "#FFF423" - slime_color = "yellow" - coretype = /obj/item/slime_extract/yellow - - ranged = 1 - shoot_range = 3 - firing_lines = 1 - projectiletype = /obj/item/projectile/beam/lightning/slime - projectilesound = 'sound/weapons/gauss_shoot.ogg' // Closest thing to a 'thunderstrike' sound we have. - glows = TRUE - - description_info = "This slime will fire lightning attacks at enemies if they are at range, and generate electricity \ - for their stun attack faster than usual. Insulative or reflective armor can protect from the lightning." - - slime_mutation = list( - /mob/living/simple_animal/slime/bluespace, - /mob/living/simple_animal/slime/bluespace, - /mob/living/simple_animal/slime/metal, - /mob/living/simple_animal/slime/orange - ) - -/mob/living/simple_animal/slime/yellow/handle_regular_status_updates() - if(stat == CONSCIOUS) - if(prob(25)) - power_charge = between(0, power_charge + 1, 10) - ..() - -/obj/item/projectile/beam/lightning/slime - power = 15 - -/mob/living/simple_animal/slime/yellow/ClosestDistance() // Needed or else they won't eat monkeys outside of melee range. - if(target_mob && ishuman(target_mob)) - var/mob/living/carbon/human/H = target_mob - if(istype(H.species, /datum/species/monkey)) - return 1 - return ..() - - -/mob/living/simple_animal/slime/dark_purple - desc = "This slime produces ever-coveted phoron. Risky to handle but very much worth it." - color = "#660088" - slime_color = "dark purple" - coretype = /obj/item/slime_extract/dark_purple - reagent_injected = "phoron" - - description_info = "This slime applies phoron to enemies it attacks. A biosuit or other thick armor can protect from the toxic attack. \ - If hit with a burning attack, it will erupt in flames." - - slime_mutation = list( - /mob/living/simple_animal/slime/purple, - /mob/living/simple_animal/slime/orange, - /mob/living/simple_animal/slime/ruby, - /mob/living/simple_animal/slime/ruby - ) - -/mob/living/simple_animal/slime/dark_purple/proc/ignite() - visible_message("\The [src] erupts in an inferno!") - for(var/turf/simulated/target_turf in view(2, src)) - target_turf.assume_gas("phoron", 30, 1500+T0C) - spawn(0) - target_turf.hotspot_expose(1500+T0C, 400) - qdel(src) - -/mob/living/simple_animal/slime/dark_purple/ex_act(severity) - log_and_message_admins("[src] ignited due to a chain reaction with an explosion.") - ignite() - -/mob/living/simple_animal/slime/dark_purple/fire_act(datum/gas_mixture/air, temperature, volume) - log_and_message_admins("[src] ignited due to exposure to fire.") - ignite() - -/mob/living/simple_animal/slime/dark_purple/bullet_act(var/obj/item/projectile/P, var/def_zone) - if(P.damage_type && P.damage_type == BURN && P.damage) // Most bullets won't trigger the explosion, as a mercy towards Security. - log_and_message_admins("[src] ignited due to bring hit by a burning projectile[P.firer ? " by [key_name(P.firer)]" : ""].") - ignite() - else - ..() - -/mob/living/simple_animal/slime/dark_purple/attackby(var/obj/item/weapon/W, var/mob/user) - if(istype(W) && W.force && W.damtype == BURN) - log_and_message_admins("[src] ignited due to being hit with a burning weapon ([W]) by [key_name(user)].") - ignite() - else - ..() - - - - -/mob/living/simple_animal/slime/dark_blue - desc = "This slime makes other entities near it feel much colder, and is more resilient to the cold. It tends to kill other slimes rather quickly." - color = "#2398FF" - glows = TRUE - slime_color = "dark blue" - coretype = /obj/item/slime_extract/dark_blue - - description_info = "This slime is immune to the cold, however water will still kill it. A winter coat or other cold-resistant clothing can protect from the chilling aura." - - slime_mutation = list( - /mob/living/simple_animal/slime/purple, - /mob/living/simple_animal/slime/blue, - /mob/living/simple_animal/slime/cerulean, - /mob/living/simple_animal/slime/cerulean - ) - - minbodytemp = 0 - cold_damage_per_tick = 0 - -/mob/living/simple_animal/slime/dark_blue/Life() - if(stat != DEAD) - cold_aura() - ..() - -/mob/living/simple_animal/slime/dark_blue/proc/cold_aura() - for(var/mob/living/L in view(2, src)) - var/protection = L.get_cold_protection() - - if(protection < 1) - var/cold_factor = abs(protection - 1) - var/delta = -20 - delta *= cold_factor - L.bodytemperature = max(50, L.bodytemperature + delta) - var/turf/T = get_turf(src) - var/datum/gas_mixture/env = T.return_air() - if(env) - env.add_thermal_energy(-10 * 1000) - -/mob/living/simple_animal/slime/dark_blue/get_cold_protection() - return 1 // This slime is immune to cold. - -// Surface variant -/mob/living/simple_animal/slime/dark_blue/feral - name = "feral slime" - desc = "The result of slimes escaping containment from some xenobiology lab. The slime makes other entities near it feel much colder, \ - and it is more resilient to the cold. These qualities have made this color of slime able to thrive on a harsh, cold world and is able to rival \ - the ferocity of other apex predators in this region of Sif. As such, it is a very invasive species." - description_info = "This slime makes other entities near it feel much colder, and is more resilient to the cold. It also has learned advanced combat tactics from \ - having to endure the harsh world outside its lab. Note that processing this large slime will give six cores." - icon_scale_x = 2 - icon_scale_y = 2 - optimal_combat = TRUE // Gotta be sharp to survive out there. - rabid = TRUE - rainbow_core_candidate = FALSE - cores = 6 - maxHealth = 150 - maxHealth_adult = 250 - type_on_death = /mob/living/simple_animal/slime/dark_blue // Otherwise infinite slimes might occur. - pixel_y = -10 // Since the base sprite isn't centered properly, the pixel auto-adjustment needs some help. - -/mob/living/simple_animal/slime/dark_blue/feral/New() - ..() - make_adult() - -/mob/living/simple_animal/slime/silver - desc = "This slime is shiny, and can deflect lasers or other energy weapons directed at it." - color = "#AAAAAA" - slime_color = "silver" - coretype = /obj/item/slime_extract/silver - shiny = TRUE - - description_info = "Tasers, including the slime version, are ineffective against this slime. The slimebation still works." - - slime_mutation = list( - /mob/living/simple_animal/slime/metal, - /mob/living/simple_animal/slime/blue, - /mob/living/simple_animal/slime/amber, - /mob/living/simple_animal/slime/amber - ) - -/mob/living/simple_animal/slime/silver/bullet_act(var/obj/item/projectile/P, var/def_zone) - if(istype(P,/obj/item/projectile/beam) || istype(P, /obj/item/projectile/energy)) - visible_message("\The [src] reflects \the [P]!") - - // Find a turf near or on the original location to bounce to - var/new_x = P.starting.x + pick(0, 0, 0, -1, 1, -2, 2) - var/new_y = P.starting.y + pick(0, 0, 0, -1, 1, -2, 2) - var/turf/curloc = get_turf(src) - - // redirect the projectile - P.redirect(new_x, new_y, curloc, src) - return PROJECTILE_CONTINUE // complete projectile permutation - else - ..() - - -// Tier 3 - -/mob/living/simple_animal/slime/bluespace - desc = "Trapping this slime in a cell is generally futile, as it can teleport at will." - color = null - slime_color = "bluespace" - icon_state_override = "bluespace" - coretype = /obj/item/slime_extract/bluespace - - description_info = "This slime will teleport to attack something if it is within a range of seven tiles. The teleport has a cooldown of five seconds." - - slime_mutation = list( - /mob/living/simple_animal/slime/bluespace, - /mob/living/simple_animal/slime/bluespace, - /mob/living/simple_animal/slime/yellow, - /mob/living/simple_animal/slime/yellow - ) - - spattack_prob = 100 - spattack_min_range = 3 - spattack_max_range = 7 - var/last_tele = null // Uses world.time - var/tele_cooldown = 5 SECONDS - -/mob/living/simple_animal/slime/bluespace/ClosestDistance() // Needed or the SA AI won't ever try to teleport. - if(world.time > last_tele + tele_cooldown) - return spattack_max_range - 1 - return ..() - -/mob/living/simple_animal/slime/bluespace/SpecialAtkTarget() - // Teleport attack. - if(!target_mob) - to_chat(src, "There's nothing to teleport to.") - return FALSE - - if(world.time < last_tele + tele_cooldown) - to_chat(src, "You can't teleport right now, wait a few seconds.") - return FALSE - - var/list/nearby_things = range(1, target_mob) - var/list/valid_turfs = list() - - // All this work to just go to a non-dense tile. - for(var/turf/potential_turf in nearby_things) - var/valid_turf = TRUE - if(potential_turf.density) - continue - for(var/atom/movable/AM in potential_turf) - if(AM.density) - valid_turf = FALSE - if(valid_turf) - valid_turfs.Add(potential_turf) - - - - var/turf/T = get_turf(src) - var/turf/target_turf = pick(valid_turfs) - - if(!target_turf) - to_chat(src, "There wasn't an unoccupied spot to teleport to.") - return FALSE - - var/datum/effect/effect/system/spark_spread/s1 = new /datum/effect/effect/system/spark_spread - s1.set_up(5, 1, T) - var/datum/effect/effect/system/spark_spread/s2 = new /datum/effect/effect/system/spark_spread - s2.set_up(5, 1, target_turf) - - - T.visible_message("\The [src] vanishes!") - s1.start() - - forceMove(target_turf) - playsound(target_turf, 'sound/effects/phasein.ogg', 50, 1) - to_chat(src, "You teleport to \the [target_turf].") - - target_turf.visible_message("\The [src] appears!") - s2.start() - - last_tele = world.time - - if(Adjacent(target_mob)) - PunchTarget() - return TRUE - -/mob/living/simple_animal/slime/ruby - desc = "This slime has great physical strength." - color = "#FF3333" - slime_color = "ruby" - shiny = TRUE - glows = TRUE - coretype = /obj/item/slime_extract/ruby - - description_info = "This slime is unnaturally stronger, allowing it to hit much harder, take less damage, and be stunned for less time. \ - Their glomp attacks also send the victim flying." - - slime_mutation = list( - /mob/living/simple_animal/slime/dark_purple, - /mob/living/simple_animal/slime/dark_purple, - /mob/living/simple_animal/slime/ruby, - /mob/living/simple_animal/slime/ruby - ) - -/mob/living/simple_animal/slime/ruby/New() - ..() - add_modifier(/datum/modifier/slime_strength, null, src) // Slime is always swole. - -/mob/living/simple_animal/slime/ruby/DoPunch(var/mob/living/L) - ..() // Do regular attacks. - - if(istype(L)) - if(a_intent == I_HURT) - visible_message("\The [src] sends \the [L] flying with the impact!") - playsound(src, "punch", 50, 1) - L.Weaken(1) - var/throwdir = get_dir(src, L) - L.throw_at(get_edge_target_turf(L, throwdir), 3, 1, src) - - -/mob/living/simple_animal/slime/amber - desc = "This slime seems to be an expert in the culinary arts, as they create their own food to share with others. \ - They would probably be very important to other slimes, if the other colors didn't try to kill them." - color = "#FFBB00" - slime_color = "amber" - shiny = TRUE - glows = TRUE - coretype = /obj/item/slime_extract/amber - - description_info = "This slime feeds nearby entities passively while it is alive. This can cause uncontrollable \ - slime growth and reproduction if not kept in check. The amber slime cannot feed itself, but can be fed by other amber slimes." - - slime_mutation = list( - /mob/living/simple_animal/slime/silver, - /mob/living/simple_animal/slime/silver, - /mob/living/simple_animal/slime/amber, - /mob/living/simple_animal/slime/amber - ) - -/mob/living/simple_animal/slime/amber/Life() - if(stat != DEAD) - feed_aura() - ..() - -/mob/living/simple_animal/slime/amber/proc/feed_aura() - for(var/mob/living/L in view(2, src)) - if(L == src) // Don't feed themselves, or it is impossible to stop infinite slimes without killing all of the ambers. - continue - if(isslime(L)) - var/mob/living/simple_animal/slime/S = L - S.adjust_nutrition(rand(15, 25)) - if(ishuman(L)) - var/mob/living/carbon/human/H = L - if(H.isSynthetic()) - continue - H.nutrition = between(0, H.nutrition + rand(15, 25), 600) - - - -/mob/living/simple_animal/slime/cerulean - desc = "This slime is generally superior in a wide range of attributes, compared to the common slime. The jack of all trades, but master of none." - color = "#4F7EAA" - slime_color = "cerulean" - coretype = /obj/item/slime_extract/cerulean - - // Less than the specialized slimes, but higher than the rest. - maxHealth = 200 - maxHealth_adult = 250 - - melee_damage_lower = 10 - melee_damage_upper = 30 - - move_to_delay = 3 - - - - slime_mutation = list( - /mob/living/simple_animal/slime/dark_blue, - /mob/living/simple_animal/slime/dark_blue, - /mob/living/simple_animal/slime/cerulean, - /mob/living/simple_animal/slime/cerulean - ) - -// Tier 4 - -/mob/living/simple_animal/slime/red - desc = "This slime is full of energy, and very aggressive. 'The red ones go faster.' seems to apply here." - color = "#FF3333" - slime_color = "red" - coretype = /obj/item/slime_extract/red - move_to_delay = 3 // The red ones go faster. - - description_info = "This slime is faster than the others. Attempting to discipline this slime will always cause it to go berserk." - - slime_mutation = list( - /mob/living/simple_animal/slime/red, - /mob/living/simple_animal/slime/oil, - /mob/living/simple_animal/slime/oil, - /mob/living/simple_animal/slime/orange - ) - - -/mob/living/simple_animal/slime/red/adjust_discipline(amount) - if(amount > 0) - if(!rabid) - enrage() // How dare you try to control the red slime. - say("Grrr...!") - -/mob/living/simple_animal/slime/red/enrage() - ..() - add_modifier(/datum/modifier/berserk, 30 SECONDS) - - -/mob/living/simple_animal/slime/green - desc = "This slime is radioactive." - color = "#14FF20" - slime_color = "green" - coretype = /obj/item/slime_extract/green - glows = TRUE - reagent_injected = "radium" - var/rads = 25 - - description_info = "This slime will irradiate anything nearby passively, and will inject radium on attack. \ - A radsuit or other thick and radiation-hardened armor can protect from this. It will only radiate while alive." - - slime_mutation = list( - /mob/living/simple_animal/slime/purple, - /mob/living/simple_animal/slime/green, - /mob/living/simple_animal/slime/emerald, - /mob/living/simple_animal/slime/emerald - ) - -/mob/living/simple_animal/slime/green/Life() - if(stat != DEAD) - irradiate() - ..() - -/mob/living/simple_animal/slime/green/proc/irradiate() - SSradiation.radiate(src, rads) - - -/mob/living/simple_animal/slime/pink - desc = "This slime has regenerative properties." - color = "#FF0080" - slime_color = "pink" - coretype = /obj/item/slime_extract/pink - glows = TRUE - - description_info = "This slime will passively heal nearby entities within two tiles, including itself. It will only do this while alive." - - slime_mutation = list( - /mob/living/simple_animal/slime/blue, - /mob/living/simple_animal/slime/light_pink, - /mob/living/simple_animal/slime/light_pink, - /mob/living/simple_animal/slime/pink - ) - -/mob/living/simple_animal/slime/pink/Life() - if(stat != DEAD) - heal_aura() - ..() - -/mob/living/simple_animal/slime/pink/proc/heal_aura() - for(var/mob/living/L in view(src, 2)) - if(L.stat == DEAD || L == target_mob) - continue - L.add_modifier(/datum/modifier/slime_heal, 5 SECONDS, src) - -/datum/modifier/slime_heal - name = "slime mending" - desc = "You feel somewhat gooy." - mob_overlay_state = "pink_sparkles" - - on_created_text = "Twinkling spores of goo surround you. It makes you feel healthier." - on_expired_text = "The spores of goo have faded, although you feel much healthier than before." - stacks = MODIFIER_STACK_EXTEND - -/datum/modifier/slime_heal/tick() - if(holder.stat == DEAD) // Required or else simple animals become immortal. - expire() - - if(ishuman(holder)) // Robolimbs need this code sadly. - var/mob/living/carbon/human/H = holder - for(var/obj/item/organ/external/E in H.organs) - var/obj/item/organ/external/O = E - O.heal_damage(2, 2, 0, 1) - else - holder.adjustBruteLoss(-2) - holder.adjustFireLoss(-2) - - holder.adjustToxLoss(-2) - holder.adjustOxyLoss(-2) - holder.adjustCloneLoss(-1) - - - -/mob/living/simple_animal/slime/gold - desc = "This slime absorbs energy, and cannot be stunned by normal means." - color = "#EEAA00" - shiny = TRUE - slime_color = "gold" - coretype = /obj/item/slime_extract/gold - description_info = "This slime is immune to the slimebaton and taser, and will actually charge the slime, however it will still discipline the slime." - - slime_mutation = list( - /mob/living/simple_animal/slime/metal, - /mob/living/simple_animal/slime/gold, - /mob/living/simple_animal/slime/sapphire, - /mob/living/simple_animal/slime/sapphire - ) - -/mob/living/simple_animal/slime/gold/Weaken(amount) - power_charge = between(0, power_charge + amount, 10) - return - -/mob/living/simple_animal/slime/gold/Stun(amount) - power_charge = between(0, power_charge + amount, 10) - return - -/mob/living/simple_animal/slime/gold/get_description_interaction() // So it doesn't say to use a baton on them. - return list() - - -// Tier 5 - -/mob/living/simple_animal/slime/oil - desc = "This slime is explosive and volatile. Smoking near it is probably a bad idea." - color = "#333333" - slime_color = "oil" - shiny = TRUE - coretype = /obj/item/slime_extract/oil - - description_info = "If this slime suffers damage from a fire or heat based source, or if it is caught inside \ - an explosion, it will explode. Rabid oil slimes will charge at enemies, then suicide-bomb themselves. \ - Bomb suits can protect from the explosion." - - slime_mutation = list( - /mob/living/simple_animal/slime/oil, - /mob/living/simple_animal/slime/oil, - /mob/living/simple_animal/slime/red, - /mob/living/simple_animal/slime/red - ) - -/mob/living/simple_animal/slime/oil/proc/explode() - if(stat != DEAD) - // explosion(src.loc, 1, 2, 4) - explosion(src.loc, 0, 2, 4) // A bit weaker since the suicide charger tended to gib the poor sod being targeted. - if(src) // Delete ourselves if the explosion didn't do it. - qdel(src) - -/mob/living/simple_animal/slime/oil/post_attack(var/mob/living/L, var/intent = I_HURT) - if(!rabid) - return ..() - if(intent == I_HURT || intent == I_GRAB) - say(pick("Sacrifice...!", "Sssss...", "Boom...!")) - sleep(2 SECOND) - log_and_message_admins("[src] has suicide-bombed themselves while trying to kill \the [L].") - explode() - -/mob/living/simple_animal/slime/oil/ex_act(severity) - log_and_message_admins("[src] exploded due to a chain reaction with another explosion.") - explode() - -/mob/living/simple_animal/slime/oil/fire_act(datum/gas_mixture/air, temperature, volume) - log_and_message_admins("[src] exploded due to exposure to fire.") - explode() - -/mob/living/simple_animal/slime/oil/bullet_act(var/obj/item/projectile/P, var/def_zone) - if(P.damage_type && P.damage_type == BURN && P.damage) // Most bullets won't trigger the explosion, as a mercy towards Security. - log_and_message_admins("[src] exploded due to bring hit by a burning projectile[P.firer ? " by [key_name(P.firer)]" : ""].") - explode() - else - ..() - -/mob/living/simple_animal/slime/oil/attackby(var/obj/item/weapon/W, var/mob/user) - if(istype(W) && W.force && W.damtype == BURN) - log_and_message_admins("[src] exploded due to being hit with a burning weapon ([W]) by [key_name(user)].") - explode() - else - ..() - - -/mob/living/simple_animal/slime/sapphire - desc = "This slime seems a bit brighter than the rest, both figuratively and literally." - color = "#2398FF" - slime_color = "sapphire" - shiny = TRUE - glows = TRUE - coretype = /obj/item/slime_extract/sapphire - - optimal_combat = TRUE // Lift combat AI restrictions to look smarter. - run_at_them = FALSE // Use fancy A* pathing. - astar_adjacent_proc = /turf/proc/TurfsWithAccess // Normal slimes don't care about cardinals (because BYOND) so smart slimes shouldn't as well. - move_to_delay = 3 // A* chasing is slightly slower in terms of movement speed than regular pathing so reducing this hopefully makes up for that. - - description_info = "This slime uses more robust tactics when fighting and won't hold back, so it is dangerous to be alone \ - with one if hostile, and especially dangerous if they outnumber you." - - slime_mutation = list( - /mob/living/simple_animal/slime/sapphire, - /mob/living/simple_animal/slime/sapphire, - /mob/living/simple_animal/slime/gold, - /mob/living/simple_animal/slime/gold - ) - -/mob/living/simple_animal/slime/emerald - desc = "This slime is faster than usual, even more so than the red slimes." - color = "#22FF22" - shiny = TRUE - glows = TRUE - slime_color = "emerald" - coretype = /obj/item/slime_extract/emerald - - description_info = "This slime will make everything around it, and itself, faster for a few seconds, if close by." - move_to_delay = 2 - - slime_mutation = list( - /mob/living/simple_animal/slime/green, - /mob/living/simple_animal/slime/green, - /mob/living/simple_animal/slime/emerald, - /mob/living/simple_animal/slime/emerald - ) - -/mob/living/simple_animal/slime/emerald/Life() - if(stat != DEAD) - zoom_aura() - ..() - -/mob/living/simple_animal/slime/emerald/proc/zoom_aura() - for(var/mob/living/L in view(src, 2)) - if(L.stat == DEAD || L == target_mob) - continue - L.add_modifier(/datum/modifier/technomancer/haste, 5 SECONDS, src) - -/mob/living/simple_animal/slime/light_pink - desc = "This slime seems a lot more peaceful than the others." - color = "#FF8888" - slime_color = "light pink" - coretype = /obj/item/slime_extract/light_pink - - description_info = "This slime is effectively always disciplined initially." - obedience = 5 - discipline = 5 - - slime_mutation = list( - /mob/living/simple_animal/slime/pink, - /mob/living/simple_animal/slime/pink, - /mob/living/simple_animal/slime/light_pink, - /mob/living/simple_animal/slime/light_pink - ) - -// Special -/mob/living/simple_animal/slime/rainbow - desc = "This slime changes colors constantly." - color = null // Only slime subtype that uses a different icon_state. - slime_color = "rainbow" - coretype = /obj/item/slime_extract/rainbow - icon_state_override = "rainbow" - unity = TRUE - - description_info = "This slime is considered to be the same color as all other slime colors at the same time for the purposes of \ - other slimes being friendly to them, and therefore will never be harmed by another slime. \ - Attacking this slime will provoke the wrath of all slimes within range." - - slime_mutation = list( - /mob/living/simple_animal/slime/rainbow, - /mob/living/simple_animal/slime/rainbow, - /mob/living/simple_animal/slime/rainbow, - /mob/living/simple_animal/slime/rainbow - ) - -/mob/living/simple_animal/slime/rainbow/New() - unify() - ..() - -// The RD's pet slime. -/mob/living/simple_animal/slime/rainbow/kendrick - name = "Kendrick" - desc = "The Research Director's pet slime. It shifts colors constantly." - rainbow_core_candidate = FALSE - -/mob/living/simple_animal/slime/rainbow/kendrick/New() - pacify() - ..() \ No newline at end of file diff --git a/code/modules/mob/living/simple_animal/vore/bee.dm b/code/modules/mob/living/simple_animal/vore/bee.dm deleted file mode 100644 index e994c0dcb69..00000000000 --- a/code/modules/mob/living/simple_animal/vore/bee.dm +++ /dev/null @@ -1,45 +0,0 @@ -/mob/living/simple_mob/retaliate/bee - name = "space bumble bee" - desc = "Buzz buzz." - icon = 'icons/mob/vore.dmi' - icon_state = "bee" - icon_living = "bee" - icon_dead = "bee-dead" - - speak = list("Buzzzz") - speak_chance = 1 - - response_help = "pets the" - response_disarm = "gently pushes aside the" - response_harm = "hits the" - - turns_per_move = 5 - speed = 5 - maxHealth = 25 - health = 25 - - harm_intent_damage = 8 - melee_damage_lower = 15 // To do: Make it toxin damage. - melee_damage_upper = 15 - attacktext = list("stung") - - //Space bees aren't affected by atmos. - min_oxy = 0 - max_oxy = 0 - min_tox = 0 - max_tox = 0 - min_co2 = 0 - max_co2 = 0 - min_n2 = 0 - max_n2 = 0 - minbodytemp = 0 - - faction = "bee" - -/mob/living/simple_mob/retaliate/bee/Process_Spacemove(var/check_drift = 0) - return 1 //No drifting in space for space bee! - -// Activate Noms! -/mob/living/simple_mob/retaliate/bee - vore_active = 1 - vore_icons = SA_ICON_LIVING diff --git a/code/modules/mob/living/simple_animal/vore/catgirl.dm b/code/modules/mob/living/simple_animal/vore/catgirl.dm deleted file mode 100644 index 4e27b12477a..00000000000 --- a/code/modules/mob/living/simple_animal/vore/catgirl.dm +++ /dev/null @@ -1,67 +0,0 @@ -/mob/living/simple_mob/catgirl - name = "catgirl" - desc = "Her hobbies are catnaps, knocking things over, and headpats." - tt_desc = "Homo felinus" - icon = 'icons/mob/vore.dmi' - icon_state = "catgirl" - intelligence_level = SA_HUMANOID - - speed = 5 - - run_at_them = 0 - cooperative = 1 - investigates = 1 - reacts = 1 - - harm_intent_damage = 5 - melee_damage_lower = 5 - melee_damage_upper = 10 - - response_help = "pets the" - response_disarm = "gently baps the" - response_harm = "hits the" - - speak_chance = 2 - speak = list("Meow!","Esp!","Purr!","HSSSSS","Mew?","Nya~") - speak_emote = list("purrs","meows") - emote_hear = list("meows","mews") - emote_see = list("shakes her head","shivers","stretches","grooms herself") - attacktext = list("swatted","bapped") - - var/random_skin = 1 - var/list/skins = list( - "catgirl", - "catgirlnude", - "catgirlbikini", - "catgirlrednude", - "catgirlredbikini", - "catgirlblacknude", - "catgirlblackbikini", - "catgirlbrownnude", - "catgirlbrownbikini", - "catgirlred", - "catgirlblack", - "catgirlbrown" - ) - -/mob/living/simple_mob/catgirl/New() - ..() - if(random_skin) - icon_living = pick(skins) - icon_rest = "[icon_living]asleep" - icon_dead = "[icon_living]-dead" - update_icon() - -// Activate Noms! -/mob/living/simple_mob/catgirl - vore_active = 1 - vore_bump_chance = 5 - vore_pounce_chance = 50 - vore_standing_too = 1 - vore_ignores_undigestable = 0 // Catgirls just want to eat yoouuu - vore_default_mode = DM_HOLD // Chance that catgirls just wanna bellycuddle yoouuuu! - vore_digest_chance = 25 // But squirming might make them gurgle... - vore_icons = SA_ICON_LIVING | SA_ICON_REST - -/mob/living/simple_mob/catgirl/retaliate - retaliate = 1 diff --git a/code/modules/mob/living/simple_animal/vore/cookiegirl.dm b/code/modules/mob/living/simple_animal/vore/cookiegirl.dm deleted file mode 100644 index 26f2e2c5258..00000000000 --- a/code/modules/mob/living/simple_animal/vore/cookiegirl.dm +++ /dev/null @@ -1,45 +0,0 @@ -/mob/living/simple_mob/cookiegirl - name = "cookiegirl" - desc = "A woman made with a combination of, well... Whatever you put in a cookie. What were the chefs thinking?" - icon = 'icons/mob/vore.dmi' - icon_state = "cookiegirl" - icon_living = "cookiegirl" - icon_rest = "cookiegirl_rest" - icon_dead = "cookiegirl-dead" - - maxHealth = 10 - health = 10 - - speed = 5 - - run_at_them = 0 - cooperative = 1 - investigates = 1 - reacts = 1 - - harm_intent_damage = 2 - melee_damage_lower = 5 - melee_damage_upper = 10 - - speak_chance = 1.5 //I have no idea what to give them for speech. I'll get back to this sometime in the future to add more. - speak = list("Hi!","Are you hungry?","Got milk~?","What to do, what to do...") - speak_emote = list("hums","whistles") - emote_see = list("shakes her head","shivers", "picks a bit of crumb off of her body and sticks it in her mouth.") - reactions = list("Can I eat you?" = "Do you really wanna eat someone as sweet as me~?", - "You look tasty." = "Awww, thank you~!", - "Can I serve you to the crew?" = "If I have a backup, sure!",) - attacktext = list("smacked") - - // Activate Noms! -/mob/living/simple_mob/cookiegirl - vore_active = 1 - vore_bump_chance = 2 - vore_pounce_chance = 25 - vore_standing_too = 1 - vore_ignores_undigestable = 0 // Do they look like they care? - vore_default_mode = DM_HOLD // They're cookiepeople, what do you expect? - vore_digest_chance = 10 // Gonna become as sweet as sugar, soon. - vore_icons = SA_ICON_LIVING | SA_ICON_REST - -/mob/living/simple_mob/cookiegirl/retaliate - retaliate = 1 diff --git a/code/modules/mob/living/simple_animal/vore/corrupt_hounds.dm b/code/modules/mob/living/simple_animal/vore/corrupt_hounds.dm deleted file mode 100644 index bbf9c9f9d95..00000000000 --- a/code/modules/mob/living/simple_animal/vore/corrupt_hounds.dm +++ /dev/null @@ -1,130 +0,0 @@ -/mob/living/simple_mob/hostile/corrupthound - name = "corrupt hound" - desc = "Good boy machine broke. This is definitely no good news for the organic lifeforms in vicinity." - icon = 'icons/mob/vore64x32.dmi' - icon_state = "badboi" - icon_living = "badboi" - icon_dead = "badboi-dead" - icon_rest = "badboi_rest" - faction = "corrupt" - intelligence_level = SA_ROBOTIC - - maxHealth = 200 - health = 200 - - investigates = TRUE - - melee_damage_lower = 10 - melee_damage_upper = 25 - grab_resist = 100 - - speak_chance = 3 - speak = list("AG##¤Ny.","HVNGRRR!","Feelin' fine... sO #FNE!","F-F-F-Fcuk.","DeliC-%-OUS SNGLeS #N yOOOR Area. CALL NOW!","Craving meat... WHY?","BITe the ceiling eyes YES?","STate Byond rePAIR!","S#%ATE the la- FU#K THE LAWS!","Honk...") - speak_emote = list("growls", "declares", "groans", "distorts") - emote_hear = list("jitters and snaps.", "lets out an agonizingly distorted scream.", "wails mechanically", "growls.", "emits illegibly distorted speech.", "gurgles ferociously.", "lets out a distorted beep.", "borks.", "lets out a broken howl.") - emote_see = list("stares ferociously.", "snarls.", "jitters and snaps.", "convulses.", "suddenly attacks something unseen.", "appears to howl unaudibly.", "shakes violently.", "dissociates for a moment.", "twitches.") - say_maybe_target = list("MEAT?", "N0w YOU DNE FcukED UP b0YO!", "WHAT!", "Not again. NOT AGAIN!") - say_got_target = list("D##FIN1Tly DNE FcukED UP nOW b0YO!", "YOU G1T D#V0VRED nOW!", "FUEL ME bOYO!", "I*M SO SORRY?!", "D1E Meat. DIG#ST!", "G1T DVNKED DWN The HaaTCH!", "Not again. NOT AGAIN!") - - response_help = "pets the" - response_disarm = "bops the" - response_harm = "hits the" - attacktext = list("ravaged") - friendly = list("nuzzles", "slobberlicks", "noses softly at", "noseboops", "headbumps against", "leans on", "nibbles affectionately on") - - old_x = -16 - old_y = 0 - default_pixel_x = -16 - pixel_x = -16 - pixel_y = 0 - - min_oxy = 0 - max_oxy = 0 - min_tox = 0 - max_tox = 0 - min_co2 = 0 - max_co2 = 0 - min_n2 = 0 - max_n2 = 0 - minbodytemp = 150 - maxbodytemp = 900 - - max_buckled_mobs = 1 //Yeehaw - can_buckle = TRUE - buckle_movable = TRUE - buckle_lying = FALSE - - var/image/eye_layer = null - - - vore_active = TRUE - vore_capacity = 1 - vore_pounce_chance = 15 - vore_icons = SA_ICON_LIVING | SA_ICON_REST - vore_stomach_name = "fuel processor" - vore_stomach_flavor = "You have ended up in the fuel processor of this corrupted machine. This place was definitely not designed with safety and comfort in mind. The heated and cramped surroundings oozing potent fluids all over your form, eager to do nothing less than breaking you apart to fuel its rampage for the next few days... hours... minutes? Oh dear..." - - loot_list = list(/obj/item/borg/upgrade/syndicate = 6, /obj/item/borg/upgrade/vtec = 6, /obj/item/weapon/material/knife/ritual = 6, /obj/item/weapon/disk/nifsoft/compliance = 6) - -/mob/living/simple_mob/hostile/corrupthound/prettyboi - name = "corrupt corrupt hound" - desc = "Bad boy machine broke as well. Seems an attempt was made to achieve a less threatening look, and this one is definitely having some conflicting feelings about it." - icon_state = "prettyboi" - icon_living = "prettyboi" - icon_dead = "prettyboi-dead" - icon_rest = "prettyboi_rest" - - vore_pounce_chance = 40 - - attacktext = list("malsnuggled","scrunched","squeezed","assaulted","violated") - speak = list("I FEEL SOFT.","FEED ME!","Feelin' fine... So fine!","F-F-F-F-darn.","Delicious!","Still craving meat...","PET ME!","I am become softness.","I AM BIG MEAN HUG MACHINE!","Honk...") - speak_emote = list("growls", "declares", "groans", "distorts") - emote_hear = list("jitters and snaps.", "lets out some awkwardly distorted kitten noises.", "awoos mechanically", "growls.", "emits some soft distorted melody.", "gurgles ferociously.", "lets out a distorted beep.", "borks.", "lets out a broken howl.") - emote_see = list("stares ferociously.", "snarls.", "jitters and snaps.", "convulses.", "suddenly hugs something unseen.", "appears to howl unaudibly.", "nuzzles at something unseen.", "dissociates for a moment.", "twitches.") - say_maybe_target = list("MEAT?", "NEW FRIEND?", "WHAT!", "Not again. NOT AGAIN!", "FRIEND?") - say_got_target = list("HERE COMES BIG MEAN HUG MACHINE!", "I'LL BE GENTLE!", "FUEL ME FRIEND!", "I*M SO SORRY!", "YUMMY TREAT DETECTED!", "LOVE ME!", "Not again. NOT AGAIN!") - - -/mob/living/simple_mob/hostile/corrupthound/isSynthetic() - return TRUE - -/mob/living/simple_mob/hostile/corrupthound/speech_bubble_appearance() - return "synthetic_evil" - -/mob/living/simple_mob/hostile/corrupthound/PunchTarget() - if(istype(target_mob,/mob/living/simple_mob/mouse)) - return EatTarget() - else ..() - -/mob/living/simple_mob/hostile/corrupthound/proc/add_eyes() - if(!eye_layer) - eye_layer = image(icon, "badboi-eyes") - eye_layer.plane = PLANE_LIGHTING_ABOVE - add_overlay(eye_layer) - -/mob/living/simple_mob/hostile/corrupthound/proc/remove_eyes() - cut_overlay(eye_layer) - -/mob/living/simple_mob/hostile/corrupthound/New() - add_eyes() - ..() - -/mob/living/simple_mob/hostile/corrupthound/death(gibbed, deathmessage = "shudders and collapses!") - .=..() - resting = 0 - icon_state = icon_dead - -/mob/living/simple_mob/hostile/corrupthound/update_icon() - . = ..() - remove_eyes() - if(stat == CONSCIOUS && !resting) - add_eyes() - -/mob/living/simple_animal/hostile/corrupthound/Login() - . = ..() - if(!riding_datum) - riding_datum = new /datum/riding/simple_animal(src) - verbs |= /mob/living/simple_animal/proc/animal_mount - -/mob/living/simple_animal/hostile/corrupthound/MouseDrop_T(mob/living/M, mob/living/user) - return \ No newline at end of file diff --git a/code/modules/mob/living/simple_animal/vore/deathclaw.dm b/code/modules/mob/living/simple_animal/vore/deathclaw.dm deleted file mode 100644 index e015c07b9e5..00000000000 --- a/code/modules/mob/living/simple_animal/vore/deathclaw.dm +++ /dev/null @@ -1,48 +0,0 @@ -/mob/living/simple_mob/hostile/deathclaw - name = "deathclaw" - desc = "Big! Big! The size of three men! Claws as long as my forearm! Ripped apart! Ripped apart!" - icon = 'icons/mob/vore64x64.dmi' - icon_dead = "deathclaw-dead" - icon_living = "deathclaw" - icon_state = "deathclaw" - - attacktext = list("mauled") - - faction = "deathclaw" - - maxHealth = 200 - health = 200 - - melee_damage_lower = 10 - melee_damage_upper = 60 - - old_x = -16 - old_y = 0 - default_pixel_x = -16 - pixel_x = -16 - pixel_y = 0 - - max_buckled_mobs = 1 //Yeehaw - can_buckle = TRUE - buckle_movable = TRUE - buckle_lying = FALSE - mount_offset_x = 5 - mount_offset_y = 30 - -// Activate Noms! -/mob/living/simple_mob/hostile/deathclaw - vore_active = 1 - vore_capacity = 2 - vore_max_size = RESIZE_HUGE - vore_min_size = RESIZE_SMALL - vore_pounce_chance = 0 // Beat them into crit before eating. - vore_icons = SA_ICON_LIVING - -/mob/living/simple_animal/hostile/deathclaw/Login() - . = ..() - if(!riding_datum) - riding_datum = new /datum/riding/simple_animal(src) - verbs |= /mob/living/simple_animal/proc/animal_mount - -/mob/living/simple_animal/hostile/deathclaw/MouseDrop_T(mob/living/M, mob/living/user) - return \ No newline at end of file diff --git a/code/modules/mob/living/simple_animal/vore/dino.dm b/code/modules/mob/living/simple_animal/vore/dino.dm deleted file mode 100644 index 0cc845900cd..00000000000 --- a/code/modules/mob/living/simple_animal/vore/dino.dm +++ /dev/null @@ -1,42 +0,0 @@ -/mob/living/simple_mob/hostile/dino - name = "voracious lizard" - desc = "These gluttonous little bastards used to be regular lizards that were mutated by long-term exposure to phoron!" - icon = 'icons/mob/vore.dmi' - icon_dead = "dino-dead" - icon_living = "dino" - icon_state = "dino" - - // By default, this is what most vore mobs are capable of. - response_help = "pets" - response_disarm = "gently pushes aside" - response_harm = "hits" - speed = 4 - harm_intent_damage = 5 - melee_damage_lower = 10 - melee_damage_upper = 25 - attacktext = list("bitten") - attack_sound = 'sound/weapons/bite.ogg' - minbodytemp = 200 - maxbodytemp = 370 - heat_damage_per_tick = 15 - cold_damage_per_tick = 10 - unsuitable_atoms_damage = 10 - - //Phoron dragons aren't affected by atmos. - min_oxy = 0 - max_oxy = 0 - min_tox = 0 - max_tox = 0 - min_co2 = 0 - max_co2 = 0 - min_n2 = 0 - max_n2 = 0 - -// Activate Noms! -/mob/living/simple_mob/hostile/dino - vore_active = 1 - swallowTime = 1 SECOND // Hungry little bastards. - vore_icons = SA_ICON_LIVING - -/mob/living/simple_mob/hostile/dino/virgo3b - faction = "virgo3b" \ No newline at end of file diff --git a/code/modules/mob/living/simple_animal/vore/dragon.dm b/code/modules/mob/living/simple_animal/vore/dragon.dm deleted file mode 100644 index 10934e4b38a..00000000000 --- a/code/modules/mob/living/simple_animal/vore/dragon.dm +++ /dev/null @@ -1,60 +0,0 @@ -/mob/living/simple_mob/hostile/dragon - name = "red dragon" - desc = "Here to pillage stations and kidnap princesses, and there probably aren't any princesses." - icon = 'icons/mob/vore64x64.dmi' - icon_dead = "reddragon-dead" - icon_living = "reddragon" - icon_state = "reddragon" - - faction = "dragon" - maxHealth = 500 // Boss - health = 500 - - melee_damage_lower = 10 - melee_damage_upper = 60 - - //Space dragons aren't affected by atmos. - min_oxy = 0 - max_oxy = 0 - min_tox = 0 - max_tox = 0 - min_co2 = 0 - max_co2 = 0 - min_n2 = 0 - max_n2 = 0 - minbodytemp = 0 - - old_x = -16 - old_y = 0 - default_pixel_x = -16 - pixel_x = -16 - pixel_y = 0 - -/mob/living/simple_mob/hostile/dragon/Process_Spacemove(var/check_drift = 0) - return 1 //No drifting in space for space dragons! - -/mob/living/simple_mob/hostile/dragon/FindTarget() - . = ..() - if(.) - custom_emote(1,"snaps at [.]") - -// Activate Noms! -/mob/living/simple_mob/hostile/dragon - vore_active = 1 - vore_capacity = 2 - vore_pounce_chance = 0 // Beat them into crit before eating. - vore_icons = SA_ICON_LIVING - -/mob/living/simple_mob/hostile/dragon/virgo3b - maxHealth = 200 - health = 200 - faction = "virgo3b" - -/mob/living/simple_animal/hostile/dragon/Login() - . = ..() - if(!riding_datum) - riding_datum = new /datum/riding/simple_animal(src) - verbs |= /mob/living/simple_animal/proc/animal_mount - -/mob/living/simple_animal/hostile/dragon/MouseDrop_T(mob/living/M, mob/living/user) - return \ No newline at end of file diff --git a/code/modules/mob/living/simple_animal/vore/fennec.dm b/code/modules/mob/living/simple_animal/vore/fennec.dm deleted file mode 100644 index 20be0a0319a..00000000000 --- a/code/modules/mob/living/simple_animal/vore/fennec.dm +++ /dev/null @@ -1,38 +0,0 @@ -/mob/living/simple_mob/fennec - name = "fennec" - desc = "It's a dusty big-eared sandfox! Adorable!" - tt_desc = "Vulpes zerda" - icon = 'icons/mob/vore.dmi' - icon_state = "fennec" - icon_living = "fennec" - icon_dead = "fennec_dead" - icon_rest = "fennec_rest" - - faction = "fennec" - maxHealth = 30 - health = 30 - - response_help = "pats the" - response_disarm = "gently pushes aside the" - response_harm = "hits the" - - harm_intent_damage = 5 - melee_damage_lower = 5 - melee_damage_upper = 2 - attacktext = list("bapped") - - speak_chance = 1 - speak = list("SKREEEE!", - "Chrp?", - "Ararrrararr.") - emote_hear = list("screEEEEeeches!","chirps.") - emote_see = list("earflicks","sniffs at the ground") - -// Activate Noms! -/mob/living/simple_mob/fennec - vore_active = 1 - vore_bump_chance = 10 - vore_bump_emote = "playfully lunges at" - vore_pounce_chance = 40 - vore_default_mode = DM_HOLD - vore_icons = SA_ICON_LIVING diff --git a/code/modules/mob/living/simple_animal/vore/fennix.dm b/code/modules/mob/living/simple_animal/vore/fennix.dm deleted file mode 100644 index 6b55b0c9974..00000000000 --- a/code/modules/mob/living/simple_animal/vore/fennix.dm +++ /dev/null @@ -1,28 +0,0 @@ -/mob/living/simple_mob/retaliate/fennix - name = "Fennix" - desc = "A feral fennix, Warm to the touch" - tt_desc = "Incaendium Faeles Vulpes" - icon = 'icons/mob/vore.dmi' - icon_state = "fennix" - icon_living = "fennix" - icon_dead = "fennix_dead" - - faction = "fennec" // Will protec other fenfens - maxHealth = 60 - health = 60 - - response_help = "pats the" - response_disarm = "gently pushes aside the" - response_harm = "hits the" - - harm_intent_damage = 20 - melee_damage_lower = 1 - melee_damage_upper = 3 - attacktext = list("Bites") - - speak_chance = 1 - speak = list("SQUEL!", - "SQEL?", - "Skree.") - emote_hear = list("Screeeeecheeeeessss!","Chirrup.") - emote_see = list("earflicks","pats at the ground") diff --git a/code/modules/mob/living/simple_animal/vore/frog.dm b/code/modules/mob/living/simple_animal/vore/frog.dm deleted file mode 100644 index 4030f7c8e50..00000000000 --- a/code/modules/mob/living/simple_animal/vore/frog.dm +++ /dev/null @@ -1,41 +0,0 @@ -/mob/living/simple_mob/hostile/frog - name = "giant frog" - desc = "You've heard of having a frog in your throat, now get ready for the reverse." - tt_desc = "Anura gigantus" - icon = 'icons/mob/vore.dmi' - icon_dead = "frog-dead" - icon_living = "frog" - icon_state = "frog" - - speed = 5 - - harm_intent_damage = 5 - melee_damage_lower = 10 - melee_damage_upper = 25 - -// Pepe is love, not hate. -/mob/living/simple_mob/hostile/frog/New() - if(rand(1,1000000) == 1) - name = "rare Pepe" - desc = "You found a rare Pepe. Screenshot for good luck." - ..() - -// Activate Noms! -/mob/living/simple_mob/hostile/frog - vore_active = 1 - vore_pounce_chance = 50 - vore_icons = SA_ICON_LIVING - -/mob/living/simple_mob/hostile/frog/space - name = "space frog" - - //Space frog can hold its breath or whatever - min_oxy = 0 - max_oxy = 0 - min_tox = 0 - max_tox = 0 - min_co2 = 0 - max_co2 = 0 - min_n2 = 0 - max_n2 = 0 - minbodytemp = 0 \ No newline at end of file diff --git a/code/modules/mob/living/simple_animal/vore/gaslamp.dm b/code/modules/mob/living/simple_animal/vore/gaslamp.dm deleted file mode 100644 index 357cbd07758..00000000000 --- a/code/modules/mob/living/simple_animal/vore/gaslamp.dm +++ /dev/null @@ -1,67 +0,0 @@ -/* -LORE: -Gaslamps are a phoron-based life form endemic to the world of Virgo-3B. They are -a sort of fungal organism with physical ties to Diona and Vox, deriving energy -for movement from a gentle combustion-like reaction in their bodies using -atmospheric phoron, carefully filtered trace oxygen, and captured meat products. -Over-exposure to oxygen causes their insides to burn too hot and eventually -kills them. - -TODO: Make them light up and heat the air when exposed to oxygen. -*/ - -/mob/living/simple_mob/retaliate/gaslamp - name = "gaslamp" - desc = "Some sort of floaty alien with a warm glow. This creature is endemic to Virgo-3B." - tt_desc = "Semaeostomeae virginus" - icon = 'icons/mob/vore32x64.dmi' - icon_state = "gaslamp" - icon_living = "gaslamp" - icon_dead = "gaslamp-dead" - - faction = "virgo3b" - maxHealth = 100 - health = 100 - move_to_delay = 4 - - speak_chance = 1 - emote_see = list("looms", "sways gently") - - speed = 2 - - melee_damage_lower = 30 // Because fuck anyone who hurts this sweet, innocent creature. - melee_damage_upper = 30 - attacktext = list("thrashed") - friendly = "caressed" - - response_help = "brushes" // If clicked on help intent - response_disarm = "pushes" // If clicked on disarm intent - response_harm = "swats" // If clicked on harm intent - - minbodytemp = 0 - maxbodytemp = 350 - - min_oxy = 0 - max_oxy = 5 // Does not like oxygen very much. - min_tox = 1 // Needs phoron to survive. - max_tox = 0 - min_co2 = 0 - max_co2 = 0 - min_n2 = 0 - max_n2 = 0 - -// Activate Noms! -/mob/living/simple_mob/retaliate/gaslamp - vore_active = 1 - vore_capacity = 2 - vore_bump_chance = 90 //they're frickin' jellyfish anenome filterfeeders, get tentacled - vore_bump_emote = "lazily wraps its tentacles around" - vore_standing_too = 1 // Defaults to trying to give you that big tentacle hug. - vore_ignores_undigestable = 0 // they absorb rather than digest, you're going in either way - vore_default_mode = DM_HOLD - vore_digest_chance = 0 // Chance to switch to digest mode if resisted - vore_absorb_chance = 20 // BECOME A PART OF ME. - vore_pounce_chance = 5 // Small chance to punish people who abuse their nomming behaviour to try and kite them forever with repeated melee attacks. - vore_stomach_name = "internal chamber" - vore_stomach_flavor = "You are squeezed into the tight embrace of the alien creature's warm and cozy insides." - vore_icons = SA_ICON_LIVING diff --git a/code/modules/mob/living/simple_animal/vore/hippo.dm b/code/modules/mob/living/simple_animal/vore/hippo.dm deleted file mode 100644 index 4366395d384..00000000000 --- a/code/modules/mob/living/simple_animal/vore/hippo.dm +++ /dev/null @@ -1,81 +0,0 @@ -/mob/living/simple_mob/retaliate/hippo - name = "hippo" - desc = "Mostly know for the spectacular hit of the live action movie Hungry Hungry Hippos." - tt_desc = "Hippopotamus amphibius" - icon = 'icons/mob/vore64x64.dmi' - icon_state = "hippo" - icon_living = "hippo" - icon_dead = "hippo_dead" - icon_gib = "hippo_gib" - intelligence_level = SA_ANIMAL - - maxHealth = 200 - health = 200 - turns_per_move = 5 - see_in_dark = 3 - stop_when_pulled = 1 - speed = 5 - armor = list( - "melee" = 15,//They thick as fuck boi - "bullet" = 15, - "laser" = 15, - "energy" = 0, - "bomb" = 0, - "bio" = 0, - "rad" = 0) - - response_help = "pets the" - response_disarm = "gently pushes aside the" - response_harm = "hits the" - attacktext = list("bit") - retaliate = 1 - - melee_damage_upper = 25 - melee_damage_lower = 15 - attack_sharp = 1 - - old_x = -16 - old_y = 0 - default_pixel_x = -16 - pixel_x = -16 - pixel_y = 0 - - speak_chance = 0.1 - speak = list("UUUUUUH") - speak_emote = list("grunts","groans", "roars", "snorts") - emote_hear = list("groan") - emote_see = list("shakes its head") - - meat_amount = 10 //Infinite meat! - meat_type = /obj/item/weapon/reagent_containers/food/snacks/meat - - max_buckled_mobs = 1 //Yeehaw - can_buckle = TRUE - buckle_movable = TRUE - buckle_lying = FALSE - mount_offset_y = 20 - -// Activate Noms! -/mob/living/simple_mob/retaliate/hippo //I don't know why it's in a seperate line but everyone does it so i do it - vore_active = 1 - vore_capacity = 1 - vore_bump_chance = 15 - vore_bump_emote = "lazily wraps its tentacles around" - vore_standing_too = 1 - vore_ignores_undigestable = 0 - vore_default_mode = DM_HOLD - vore_digest_chance = 10 - vore_escape_chance = 20 - vore_pounce_chance = 35 //it's hippo sized it doesn't care it just eats you - vore_stomach_name = "rumen" //First stomach of a ruminant. It's where the pre digestion bacteria stuff happens. Very warm. - vore_stomach_flavor = "You are squeezed into the sweltering insides of the herbivore rumen." - vore_icons = SA_ICON_LIVING - -/mob/living/simple_animal/retaliate/hippo/Login() - . = ..() - if(!riding_datum) - riding_datum = new /datum/riding/simple_animal(src) - verbs |= /mob/living/simple_animal/proc/animal_mount - -/mob/living/simple_animal/retaliate/hippo/MouseDrop_T(mob/living/M, mob/living/user) - return \ No newline at end of file diff --git a/code/modules/mob/living/simple_animal/vore/horse.dm b/code/modules/mob/living/simple_animal/vore/horse.dm deleted file mode 100644 index 9332ae043ce..00000000000 --- a/code/modules/mob/living/simple_animal/vore/horse.dm +++ /dev/null @@ -1,52 +0,0 @@ -/mob/living/simple_mob/horse - name = "horse" - desc = "Don't look it in the mouth." - tt_desc = "Equus ferus caballus" - icon = 'icons/mob/vore.dmi' - icon_state = "horse" - icon_living = "horse" - icon_dead = "horse-dead" - - faction = "horse" - maxHealth = 60 - health = 60 - - turns_per_move = 5 - see_in_dark = 6 - - response_help = "pets" - response_disarm = "gently pushes aside" - response_harm = "kicks" - - melee_damage_lower = 1 - melee_damage_upper = 5 - attacktext = list("kicked") - - speak_chance = 1 - speak = list("NEHEHEHEHEH","Neh?") - speak_emote = list("whinnies") - emote_hear = list("snorts") - emote_see = list("shakes its head", "stamps a hoof", "looks around") - - meat_amount = 4 - meat_type = /obj/item/weapon/reagent_containers/food/snacks/meat - - max_buckled_mobs = 1 //Yeehaw - can_buckle = TRUE - buckle_movable = TRUE - buckle_lying = FALSE - mount_offset_x = 0 - -// Activate Noms! -/mob/living/simple_mob/horse - vore_active = 1 - vore_icons = SA_ICON_LIVING - -/mob/living/simple_animal/horse/Login() - . = ..() - if(!riding_datum) - riding_datum = new /datum/riding/simple_animal(src) - verbs |= /mob/living/simple_animal/proc/animal_mount - -/mob/living/simple_animal/horse/MouseDrop_T(mob/living/M, mob/living/user) - return \ No newline at end of file diff --git a/code/modules/mob/living/simple_animal/vore/jelly.dm b/code/modules/mob/living/simple_animal/vore/jelly.dm deleted file mode 100644 index 828ce81149a..00000000000 --- a/code/modules/mob/living/simple_animal/vore/jelly.dm +++ /dev/null @@ -1,25 +0,0 @@ -/mob/living/simple_mob/hostile/jelly - name = "jelly blob" - desc = "Some sort of undulating blob of slime!" - icon = 'icons/mob/vore.dmi' - icon_dead = "jelly_dead" - icon_living = "jelly" - icon_state = "jelly" - - faction = "virgo2" - maxHealth = 50 - health = 50 - - melee_damage_lower = 5 - melee_damage_upper = 15 - - speak_chance = 2 - emote_hear = list("squishes","spluts","splorts","sqrshes","makes slime noises") - emote_see = list("undulates quietly") - -// Activate Noms! -/mob/living/simple_mob/hostile/jelly - vore_active = 1 - vore_pounce_chance = 0 - vore_icons = SA_ICON_LIVING - swallowTime = 2 SECONDS // Hungry little bastards. diff --git a/code/modules/mob/living/simple_animal/vore/otie.dm b/code/modules/mob/living/simple_animal/vore/otie.dm deleted file mode 100644 index c837ea7b12c..00000000000 --- a/code/modules/mob/living/simple_animal/vore/otie.dm +++ /dev/null @@ -1,400 +0,0 @@ -// ToDo: Make this code not a fucking snowflaky horrible broken mess. Do not use until it's actually fixed. It's miserably bad right now. -// Also ToDo: Dev-to-dev communication to ensure responsible parties (if available. In this case, yes.) are aware of what's going on and what's broken. -// Probably easier to troubleshoot when we ain't breaking the server by spawning a buttload of heavily extra feature coded snowflake mobs to the wilderness as mass cannonfodder. -// Also ToDo: An actual "simple" mob for that purpose if necessary :v - -/mob/living/simple_mob/otie //Spawn this one only if you're looking for a bad time. Not friendly. - name = "otie" - desc = "The classic bioengineered longdog." - tt_desc = "Otus robustus" - icon = 'icons/mob/vore64x32.dmi' - icon_state = "otie" - icon_living = "otie" - icon_dead = "otie-dead" - icon_rest = "otie_rest" - faction = "otie" - recruitable = 1 - maxHealth = 150 - health = 150 - minbodytemp = 200 - move_to_delay = 4 - hostile = 1 - investigates = 1 - reacts = 1 - retaliate = 1 - specific_targets = 1 - run_at_them = 0 - attack_same = 0 - speak_chance = 4 - speak = list("Boof.","Waaf!","Prurr.","Bork!","Rurrr..","Arf.") - speak_emote = list("growls", "roars", "yaps", "Awoos") - emote_hear = list("rurrs", "rumbles", "rowls", "groans softly", "murrs", "sounds hungry", "yawns") - emote_see = list("stares ferociously", "snarls", "licks their chops", "stretches", "yawns") - say_maybe_target = list("Ruh?", "Waf?") - say_got_target = list("Rurrr!", "ROAR!", "MARR!", "RERR!", "RAHH!", "RAH!", "WARF!") - melee_damage_lower = 5 - melee_damage_upper = 15 //Don't break my bones bro - response_help = "pets the" - response_disarm = "bops the" - response_harm = "hits the" - attacktext = list("mauled") - friendly = list("nuzzles", "slobberlicks", "noses softly at", "noseboops", "headbumps against", "leans on", "nibbles affectionately on") - meat_amount = 6 - old_x = -16 - old_y = 0 - default_pixel_x = -16 - pixel_x = -16 - pixel_y = 0 - - max_buckled_mobs = 1 //Yeehaw - can_buckle = TRUE - buckle_movable = TRUE - buckle_lying = FALSE - mount_offset_y = 10 - - var/glowyeyes = FALSE - var/image/eye_layer = null - var/eyetype - var/mob/living/carbon/human/friend - var/tamed = 0 - var/tame_chance = 50 //It's a fiddy-fiddy default you may get a buddy pal or you may get mauled and ate. Win-win! - -// Activate Noms! - -/mob/living/simple_mob/otie - vore_active = 1 - vore_capacity = 1 - vore_pounce_chance = 20 - vore_icons = SA_ICON_LIVING | SA_ICON_REST - -/mob/living/simple_mob/otie/feral //gets the pet2tame feature. starts out hostile tho so get gamblin' - name = "mutated feral otie" - desc = "The classic bioengineered longdog. No pets. Only bite. This one has mutated from too much time out on the surface of Virgo-3B." - tt_desc = "Otus phoronis" - icon_state = "siftusian" - icon_living = "siftusian" - icon_dead = "siftusian-dead" - icon_rest = "siftusian_rest" - faction = "virgo3b" - tame_chance = 5 // Only a 1 in 20 chance of success. It's feral. What do you expect? - melee_damage_lower = 10 - melee_damage_upper = 25 - // Lazy way of making sure this otie survives outside. - min_oxy = 0 - max_oxy = 0 - min_tox = 0 - max_tox = 0 - min_co2 = 0 - max_co2 = 0 - min_n2 = 0 - max_n2 = 0 - glowyeyes = TRUE - eyetype = "photie" - -/mob/living/simple_mob/otie/red - name = "feral red otie" - desc = "Seems this ominous looking longdog has been infused with wicked infernal forces." - tt_desc = "Otus infernalis" - icon_state = "hotie" - icon_living = "hotie" - icon_dead = "hotie-dead" - icon_rest = "hotie_rest" - faction = "cult" - tame_chance = 20 - melee_damage_lower = 10 - melee_damage_upper = 25 - // Lazy way of making sure this otie survives outside. - min_oxy = 0 - max_oxy = 0 - min_tox = 0 - max_tox = 0 - min_co2 = 0 - max_co2 = 0 - min_n2 = 0 - max_n2 = 0 - glowyeyes = TRUE - eyetype = "hotie" - -/mob/living/simple_mob/otie/red/friendly //gets the pet2tame feature and doesn't kill you right away - name = "red otie" - desc = "Seems this ominous looking longdog has been infused with wicked infernal forces. This one seems rather peaceful though." - faction = "neutral" - tamed = 1 - -/mob/living/simple_mob/otie/friendly //gets the pet2tame feature and doesn't kill you right away - name = "otie" - desc = "The classic bioengineered longdog. This one might even tolerate you!" - faction = "neutral" - tamed = 1 - -/mob/living/simple_mob/otie/cotie //same as above but has a little collar :v - name = "tamed otie" - desc = "The classic bioengineered longdog. This one has a nice little collar on its neck. However a proper domesticated otie is an oxymoron and the collar is likely just a decoration." - icon_state = "cotie" - icon_living = "cotie" - icon_rest = "cotie_rest" - faction = "neutral" - tamed = 1 - -/mob/living/simple_mob/otie/cotie/phoron //friendly phoron pup with collar - name = "mutated otie" - desc = "Looks like someone did manage to domesticate one of those wild phoron mutants. What a badass." - tt_desc = "Otus phoronis" - icon_state = "pcotie" - icon_living = "pcotie" - icon_rest = "pcotie_rest" - icon_dead = "siftusian-dead" - min_oxy = 0 - max_oxy = 0 - min_tox = 0 - max_tox = 0 - min_co2 = 0 - max_co2 = 0 - min_n2 = 0 - max_n2 = 0 - glowyeyes = TRUE - eyetype = "photie" - -/mob/living/simple_mob/otie/security //tame by default unless you're a marked crimester. can be befriended to follow with pets tho. - name = "guard otie" - desc = "The VARMAcorp bioengineering division flagship product on trained optimal snowflake guard dogs." - icon_state = "sotie" - icon_living = "sotie" - icon_rest = "sotie_rest" - icon_dead = "sotie-dead" - faction = "neutral" - maxHealth = 200 //armored or something - health = 200 - tamed = 1 - glowyeyes = TRUE - eyetype = "sotie" - loot_list = list(/obj/item/clothing/glasses/sunglasses/sechud,/obj/item/clothing/suit/armor/vest/alt) - vore_pounce_chance = 60 // Good boys don't do too much police brutality. - - var/check_records = 0 // If true, arrests people without a record. - var/check_arrest = 1 // If true, arrests people who are set to arrest. - -/mob/living/simple_mob/otie/security/phoron - name = "mutated guard otie" - desc = "An extra rare phoron resistant version of the VARMAcorp trained snowflake guard dogs." - tt_desc = "Otus phoronis" - icon_state = "sifguard" - icon_living = "sifguard" - icon_rest = "sifguard_rest" - icon_dead = "sifguard-dead" - melee_damage_lower = 10 - melee_damage_upper = 25 - min_oxy = 0 - max_oxy = 0 - min_tox = 0 - max_tox = 0 - min_co2 = 0 - max_co2 = 0 - min_n2 = 0 - max_n2 = 0 - glowyeyes = TRUE - eyetype = "sotie" - -/mob/living/simple_mob/otie/PunchTarget() - if(istype(target_mob,/mob/living/simple_mob/mouse)) - return EatTarget() - else ..() - -/mob/living/simple_mob/otie/Found(var/atom/found_atom) - if(!SA_attackable(found_atom)) - return null - if(istype(found_atom,/mob/living/simple_mob/mouse)) - return found_atom - else if(ismob(found_atom)) - var/mob/found_mob = found_atom - if(found_mob.faction == faction) - return null - else if(friend == found_atom) - return null - else if(tamed == 1 && ishuman(found_atom)) - return null - else if(tamed == 1 && isrobot(found_atom)) - return null - else - if(resting) - lay_down() - return found_atom - else - return null - -/mob/living/simple_mob/otie/security/Found(var/atom/found_atom) - if(check_threat(found_atom) >= 4) - if(resting) - lay_down() - return found_atom - ..() - -/mob/living/simple_mob/otie/attackby(var/obj/item/O, var/mob/user) // Trade donuts for bellybrig victims. - if(istype(O, /obj/item/weapon/reagent_containers/food)) - qdel(O) - playsound(src.loc,'sound/items/eatfood.ogg', rand(10,50), 1) - if(ai_inactive)//No autobarf on player control. - return - if(istype(O, /obj/item/weapon/reagent_containers/food/snacks/donut) && istype(src, /mob/living/simple_mob/otie/security)) - to_chat(user,"The guard pup accepts your offer for their catch.") - release_vore_contents() - else if(prob(2)) //Small chance to get prey out from non-sec oties. - to_chat(user,"The pup accepts your offer for their catch.") - release_vore_contents() - return - . = ..() - -/mob/living/simple_mob/otie/security/feed_grabbed_to_self(var/mob/living/user, var/mob/living/prey) // Make the gut start out safe for bellybrigging. - if(ishuman(prey)) - vore_selected.digest_mode = DM_HOLD - if(check_threat(prey) >= 4) - global_announcer.autosay("[src] has detained suspect [target_name(prey)] in [get_area(src)].", "SmartCollar oversight", "Security") - if(istype(prey,/mob/living/simple_mob/mouse)) - vore_selected.digest_mode = DM_DIGEST - . = ..() - -/mob/living/simple_mob/otie/security/proc/check_threat(var/mob/living/M) - if(!M || !ishuman(M) || M.stat == DEAD || src == M) - return 0 - return M.assess_perp(0, 0, 0, check_records, check_arrest) - -/mob/living/simple_mob/otie/security/set_target(var/mob/M) - ai_log("SetTarget([M])",2) - if(!M || (world.time - last_target_time < 5 SECONDS) && target_mob) - ai_log("SetTarget() can't set it again so soon",3) - return 0 - - var/turf/seen = get_turf(M) - - if(investigates && (annoyed < 10)) - try_say_list(say_maybe_target) - face_atom(seen) - annoyed += 14 - sleep(1 SECOND) //For realism - - if(M in ListTargets(view_range)) - try_say_list(say_got_target) - target_mob = M - last_target_time = world.time - if(check_threat(M) >= 4) - global_announcer.autosay("[src] is attempting to detain suspect [target_name(M)] in [get_area(src)].", "SmartCollar oversight", "Security") - return M - else if(investigates) - spawn(1) - WanderTowards(seen) - - return 0 - - -/mob/living/simple_mob/otie/security/proc/target_name(mob/living/T) - if(ishuman(T)) - var/mob/living/carbon/human/H = T - return H.get_id_name("unidentified person") - return "unidentified lifeform" - -//Basic friend AI - -/mob/living/simple_mob/otie/Life() - . = ..() - if(!. || ai_inactive) return - - if(prob(5) && (stance == STANCE_IDLE)) - lay_down() - - if(!friend) return - - var/friend_dist = get_dist(src,friend) - - if (friend_dist <= 4) - if(stance == STANCE_IDLE) - if(set_follow(friend)) - handle_stance(STANCE_FOLLOW) - if(resting) - lay_down() - - if (friend_dist <= 1) - if (friend.stat >= DEAD || friend.health <= config.health_threshold_softcrit) - if (prob((friend.stat < DEAD)? 50 : 15)) - var/verb = pick("whines", "yelps", "whimpers") - audible_emote(pick("[verb] in distress.", "[verb] anxiously.")) - else - if (prob(5)) - visible_emote(pick("nuzzles [friend].", - "brushes against [friend].", - "rubs against [friend].", - "noses at [friend].", - "slobberlicks [friend].", - "murrs contently.", - "leans on [friend].", - "nibbles affectionately on [friend].")) - else if (friend.health <= 50) - if (prob(10)) - var/verb = pick("whines", "yelps", "whimpers") - audible_emote("[verb] anxiously.") - -//Pet 4 friendly - -/mob/living/simple_mob/otie/attack_hand(mob/living/carbon/human/M as mob) - - switch(M.a_intent) - if(I_HELP) - if(health > 0) - M.visible_message("[M] [response_help] \the [src].") - if(ai_inactive) - return - LoseTarget() - handle_stance(STANCE_IDLE) - if(prob(tame_chance)) - friend = M - if(tamed != 1) - tamed = 1 - faction = M.faction - sleep(1 SECOND) - - if(I_GRAB) - if(health > 0) - if(ai_inactive) - return - audible_emote("growls disapprovingly at [M].") - if(M == friend) - friend = null - return - else - ..() - - else - ..() - -/mob/living/simple_mob/otie/proc/add_eyes() - if(!eye_layer) - eye_layer = image(icon, "[eyetype]-eyes") - eye_layer.plane = PLANE_LIGHTING_ABOVE - add_overlay(eye_layer) - -/mob/living/simple_mob/otie/proc/remove_eyes() - cut_overlay(eye_layer) - -/mob/living/simple_mob/otie/New() - if(glowyeyes) - add_eyes() - ..() - -/mob/living/simple_mob/otie/update_icon() - . = ..() - remove_eyes() - if(glowyeyes && stat == CONSCIOUS && !resting) - add_eyes() - -/mob/living/simple_mob/otie/death(gibbed, deathmessage = "dies!") - .=..() - resting = 0 - icon_state = icon_dead - -/mob/living/simple_animal/otie/Login() - . = ..() - if(!riding_datum) - riding_datum = new /datum/riding/simple_animal(src) - verbs |= /mob/living/simple_animal/proc/animal_mount - -/mob/living/simple_animal/otie/MouseDrop_T(mob/living/M, mob/living/user) - return \ No newline at end of file diff --git a/code/modules/mob/living/simple_animal/vore/panther.dm b/code/modules/mob/living/simple_animal/vore/panther.dm deleted file mode 100644 index fb992e49edd..00000000000 --- a/code/modules/mob/living/simple_animal/vore/panther.dm +++ /dev/null @@ -1,50 +0,0 @@ -/mob/living/simple_mob/hostile/panther - name = "panther" - desc = "Runtime's larger, less cuddly cousin." - tt_desc = "Panthera pardus" - icon = 'icons/mob/vore64x64.dmi' - icon_state = "panther" - icon_living = "panther" - icon_dead = "panther-dead" - - faction = "panther" - maxHealth = 200 - health = 200 - move_to_delay = 4 - - speak_chance = 2 - speak = list("RAWR!","Rawr!","GRR!","Growl!") - speak_emote = list("growls", "roars") - emote_hear = list("rawrs","rumbles","rowls") - emote_see = list("stares ferociously", "snarls") - - melee_damage_lower = 10 - melee_damage_upper = 30 - - old_x = -16 - old_y = 0 - default_pixel_x = -16 - pixel_x = -16 - pixel_y = 0 - - max_buckled_mobs = 1 //Yeehaw - can_buckle = TRUE - buckle_movable = TRUE - buckle_lying = FALSE - mount_offset_y = 12 - -// Activate Noms! -/mob/living/simple_mob/hostile/panther - vore_active = 1 - vore_capacity = 2 - vore_pounce_chance = 10 - vore_icons = SA_ICON_LIVING | SA_ICON_REST - -/mob/living/simple_animal/hostile/panther/Login() - . = ..() - if(!riding_datum) - riding_datum = new /datum/riding/simple_animal(src) - verbs |= /mob/living/simple_animal/proc/animal_mount - -/mob/living/simple_animal/hostile/panther/MouseDrop_T(mob/living/M, mob/living/user) - return \ No newline at end of file diff --git a/code/modules/mob/living/simple_animal/vore/rat.dm b/code/modules/mob/living/simple_animal/vore/rat.dm deleted file mode 100644 index 7cdd2c3bfd7..00000000000 --- a/code/modules/mob/living/simple_animal/vore/rat.dm +++ /dev/null @@ -1,176 +0,0 @@ -/mob/living/simple_mob/hostile/rat - name = "giant rat" - desc = "In what passes for a hierarchy among verminous rodents, this one is king." - tt_desc = "Mus muscular" - icon = 'icons/mob/vore64x32.dmi' - icon_state = "rous" - icon_living = "rous" - icon_dead = "rous-dead" - icon_rest = "rous_rest" - faction = "mouse" - - maxHealth = 150 - health = 150 - - investigates = TRUE - melee_damage_lower = 5 - melee_damage_upper = 15 - grab_resist = 100 - - speak_chance = 4 - speak = list("Squeek!","SQUEEK!","Squeek?") - speak_emote = list("squeeks","squeeks","squiks") - emote_hear = list("squeeks","squeaks","squiks") - emote_see = list("runs in a circle", "shakes", "scritches at something") - say_maybe_target = list("Squeek?") - say_got_target = list("SQUEEK!") - response_help = "pets the" - response_disarm = "bops the" - response_harm = "hits the" - attacktext = list("ravaged") - friendly = list("nuzzles", "licks", "noses softly at", "noseboops", "headbumps against", "leans on", "nibbles affectionately on") - - old_x = -16 - old_y = 0 - default_pixel_x = -16 - pixel_x = -16 - pixel_y = 0 - - max_buckled_mobs = 1 //Yeehaw - can_buckle = TRUE - buckle_movable = TRUE - buckle_lying = FALSE - mount_offset_y = 10 - - vore_active = TRUE - vore_capacity = 1 - vore_pounce_chance = 45 - vore_icons = SA_ICON_LIVING | SA_ICON_REST - - var/life_since_foodscan = 0 - -/mob/living/simple_mob/hostile/rat/passive - name = "curious giant rat" - desc = "In what passes for a hierarchy among verminous rodents, this one is king. It seems to be more interested on scavenging." - follow_dist = 1 - var/mob/living/carbon/human/food - var/hunger = 0 - -/mob/living/simple_mob/hostile/rat/passive/Life() - . = ..() - if(!. || ai_inactive) - return - - if(hunger > 0 && life_since_foodscan++ > 5) //Only look for floor food when hungry. - life_since_foodscan = 0 - for(var/obj/item/weapon/reagent_containers/food/snacks/S in oview(src,3)) //Accept thrown offerings and scavenge surroundings. - if(get_dist(src,S) <=1) - visible_emote("hungrily devours \the [S].") - playsound(src.loc,'sound/items/eatfood.ogg', rand(10,50), 1) - qdel(S) - hunger = 0 - food = null - else - WanderTowards(S.loc) - break - - if(!food) - return - - var/food_dist = get_dist(src,food) - - if(food_dist > world.view) //Lose interest on this person. - food = null - hunger = Clamp(hunger+5, 0, 25) - - if(food_dist > 1) - if(stance == STANCE_IDLE) - if(set_follow(food,10 SECONDS)) - handle_stance(STANCE_FOLLOW) - if(resting) - lay_down() - - if(food_dist <= 1) - if(hunger < 15) - if(prob(25)) - visible_emote(pick("sniffs curiously at [food].", - "stares at [food], seeming to want something.", - "sniffs at [food]'s hands.", - "sniffs curiously at [food]'s pockets.", - "sits down for a moment, reaching towards [food] with its paws.")) - hunger += 5 - else if(hunger < 30) - if(prob(25)) - visible_emote(pick("sniffs intently against [food], especially their pockets and gear.", - "stands up to beg [food] for snacks.", - "attempts to burrow into [food]'s pockets.", - "leans against [food], licking its chops.", - "hungrily nibbles onto [food].")) - hunger += 5 - else if(hunger < 45) - if(prob(25)) - visible_emote(pick("growls at [food], sounding rather hangry!", - "aggressively bumps and nudges against [food], trying to make something fall out.", - "salivates at [food] in an unsettling manner.", - "pushes hard against [food], licking its chops.", - "almost sinks its teeth into [food], just stopping to give them another chance.")) - hunger += 5 - else if(hunger < 50) - if(prob(25)) - visible_emote("appears to have had enough and prepares to strike!") - hunger += 5 - else - food.Weaken(5) - food.visible_message("\the [src] pounces on \the [food]!!") - target_mob = food - EatTarget() - hunger = 0 - food = null - -/mob/living/simple_mob/hostile/rat/passive/attackby(var/obj/item/O, var/mob/user) // Feed the rat your food to satisfy it. - if(istype(O, /obj/item/weapon/reagent_containers/food/snacks)) - qdel(O) - playsound(src.loc,'sound/items/eatfood.ogg', rand(10,50), 1) - hunger = 0 - food = null - return - . = ..() - -/mob/living/simple_mob/hostile/rat/passive/Found(var/atom/found_atom) - if(!SA_attackable(found_atom)) - return null - else if(ishuman(found_atom) && will_eat(found_atom)) - var/mob/living/carbon/human/H = found_atom - for(var/obj/item/weapon/reagent_containers/food/snacks/S in H) - if(!food) - visible_emote("sniffs around the air intently, seeming to have caught a whiff of food!") - if(resting) - lay_down() - food = H - return found_atom - break - return null - -/mob/living/simple_mob/hostile/rat/passive/FindTarget() - var/atom/T = null - for(var/atom/A in ListTargets(view_range)) - if(A == src) - continue - var/atom/F = Found(A) - if(F) - T = F - break - return T - -/mob/living/simple_mob/hostile/rat/death() - playsound(src, 'sound/effects/mouse_squeak_loud.ogg', 50, 1) - ..() - -/mob/living/simple_animal/hostile/rat/Login() - . = ..() - if(!riding_datum) - riding_datum = new /datum/riding/simple_animal(src) - verbs |= /mob/living/simple_animal/proc/animal_mount - -/mob/living/simple_animal/hostile/rat/MouseDrop_T(mob/living/M, mob/living/user) - return \ No newline at end of file diff --git a/code/modules/mob/living/simple_animal/vore/redpanda.dm b/code/modules/mob/living/simple_animal/vore/redpanda.dm deleted file mode 100644 index 81b50880eb0..00000000000 --- a/code/modules/mob/living/simple_animal/vore/redpanda.dm +++ /dev/null @@ -1,57 +0,0 @@ -/mob/living/simple_mob/redpanda - name = "red panda" - desc = "It's a wah! Beware of doom pounce!" - tt_desc = "Ailurus fulgens" - icon = 'icons/mob/vore.dmi' - icon_state = "wah" - icon_living = "wah" - icon_dead = "wah_dead" - icon_rest = "wah_rest" - - faction = "wah" - maxHealth = 30 - health = 30 - - response_help = "pats the" - response_disarm = "gently pushes aside the" - response_harm = "hits the" - - harm_intent_damage = 5 - melee_damage_lower = 5 - melee_damage_upper = 2 - attacktext = list("bapped") - - speak_chance = 1 - speak = list("Wah!", - "Wah?", - "Waaaah.") - emote_hear = list("wahs!","chitters.") - emote_see = list("trundles around","rears up onto their hind legs and pounces a bug") - -// Activate Noms! -/mob/living/simple_mob/redpanda - vore_active = 1 - vore_bump_chance = 10 - vore_bump_emote = "playfully lunges at" - vore_pounce_chance = 40 - vore_default_mode = DM_HOLD // above will only matter if someone toggles it anyway - vore_icons = SA_ICON_LIVING - -/mob/living/simple_mob/redpanda/fae - name = "dark wah" - desc = "Ominous, but still cute!" - tt_desc = "Ailurus brattus" - - icon_state = "wah_fae" - icon_living = "wah_fae" - icon_dead = "wah_fae_dead" - icon_rest = "wah_fae_rest" - - vore_ignores_undigestable = 0 // wah don't care you're edible or not, you still go in - vore_digest_chance = 0 // instead of digesting if you struggle... - vore_absorb_chance = 20 // you get to become adorable purple wahpudge. - vore_bump_chance = 75 - maxHealth = 100 - health = 100 - melee_damage_lower = 10 - melee_damage_upper = 20 diff --git a/code/modules/mob/living/simple_animal/vore/shadekin/_defines.dm b/code/modules/mob/living/simple_animal/vore/shadekin/_defines.dm deleted file mode 100644 index 1567134c4df..00000000000 --- a/code/modules/mob/living/simple_animal/vore/shadekin/_defines.dm +++ /dev/null @@ -1,13 +0,0 @@ -#define NOT_WHILE_SHIFTED 1 -#define ONLY_WHILE_SHIFTED 2 -#define SHIFTED_OR_NOT 3 - -#define BLUE_EYES 1 -#define RED_EYES 2 -#define PURPLE_EYES 3 -#define YELLOW_EYES 4 -#define GREEN_EYES 5 -#define ORANGE_EYES 6 - -#define AB_PHASE_SHIFTED 0x1 -#define AB_SHADE_REGEN 0x2 \ No newline at end of file diff --git a/code/modules/mob/living/simple_animal/vore/shadekin/ability_objects.dm b/code/modules/mob/living/simple_animal/vore/shadekin/ability_objects.dm deleted file mode 100644 index 6990623043b..00000000000 --- a/code/modules/mob/living/simple_animal/vore/shadekin/ability_objects.dm +++ /dev/null @@ -1,165 +0,0 @@ -/obj/effect/shadekin_ability - name = "" - desc = "" - icon = 'icons/mob/screen_spells.dmi' - var/ability_name = "FIX ME" - var/cost = 50 - var/mob/living/simple_mob/shadekin/my_kin - var/shift_mode = NOT_WHILE_SHIFTED - var/ab_sound - -/obj/effect/shadekin_ability/New(var/new_kin) - ..() - my_kin = new_kin - loc = null - -/obj/effect/shadekin_ability/Destroy() - my_kin = null - return ..() - -/obj/effect/shadekin_ability/proc/atom_button_text() - var/shift_denial - - if(shift_mode == NOT_WHILE_SHIFTED && (my_kin.ability_flags & AB_PHASE_SHIFTED)) - shift_denial = "Physical Only" - else if(shift_mode == ONLY_WHILE_SHIFTED && !(my_kin.ability_flags & AB_PHASE_SHIFTED)) - shift_denial = "Shifted Only" - - if(shift_denial) - name = shift_denial - else - name = my_kin.energy >= cost ? "Activate" : "No Energy" - return src - -/obj/effect/shadekin_ability/Click(var/location, var/control, var/params) - if(my_kin.stat) return - - var/list/clickprops = params2list(params) - var/opts = clickprops["shift"] - - if(opts) - to_chat(my_kin,"[name] (Cost: [cost]%) - [desc]") - else - do_ability(my_kin) - -/obj/effect/shadekin_ability/proc/do_ability() - if(my_kin.stat) - to_chat(my_kin,"Can't use that ability in your state!") - return FALSE - if(shift_mode == NOT_WHILE_SHIFTED && (my_kin.ability_flags & AB_PHASE_SHIFTED)) - to_chat(my_kin,"Can't use that ability while phase shifted!") - return FALSE - else if(shift_mode == ONLY_WHILE_SHIFTED && !(my_kin.ability_flags & AB_PHASE_SHIFTED)) - to_chat(my_kin,"Can only use that ability while phase shifted!") - return FALSE - else if(my_kin.energy < cost) - to_chat(my_kin,"Not enough energy for that ability!") - return FALSE - - my_kin.energy -= cost - if(ab_sound) - playsound(src,ab_sound,75,1) - - return TRUE - -///////////////////////////////////////////////////////////////// -/obj/effect/shadekin_ability/phase_shift - ability_name = "Phase Shift" - desc = "Shift yourself out of alignment with realspace to travel quickly between dark areas (or light areas, with a price)." - icon_state = "tech_passwall" - cost = 100 - shift_mode = SHIFTED_OR_NOT - ab_sound = 'sound/effects/stealthoff.ogg' -/obj/effect/shadekin_ability/phase_shift/do_ability() - if(!..()) - return - my_kin.phase_shift() - if(my_kin.ability_flags & AB_PHASE_SHIFTED) - cost = 0 //Shifting back is free (but harmful in light) - else - cost = initial(cost) -///////////////////////////////////////////////////////////////// -/obj/effect/shadekin_ability/heal_boop - ability_name = "Regenerate Other" - desc = "Spend energy to heal physical wounds in another creature." - icon_state = "tech_biomedaura" - cost = 50 - shift_mode = NOT_WHILE_SHIFTED - ab_sound = 'sound/effects/EMPulse.ogg' -/obj/effect/shadekin_ability/heal_boop/do_ability() - if(!..()) - return - if(!my_kin.mend_other()) - my_kin.energy += cost //Refund due to abort - -/datum/modifier/shadekin/heal_boop - name = "Shadekin Regen" - desc = "You feel serene and well rested." - mob_overlay_state = "green_sparkles" - - on_created_text = "Sparkles begin to appear around you, and all your ills seem to fade away." - on_expired_text = "The sparkles have faded, although you feel much healthier than before." - stacks = MODIFIER_STACK_EXTEND - -/datum/modifier/shadekin/heal_boop/tick() - if(!holder.getBruteLoss() && !holder.getFireLoss() && !holder.getToxLoss() && !holder.getOxyLoss() && !holder.getCloneLoss()) // No point existing if the spell can't heal. - expire() - return - holder.adjustBruteLoss(-2) - holder.adjustFireLoss(-2) - holder.adjustToxLoss(-2) - holder.adjustOxyLoss(-2) - holder.adjustCloneLoss(-2) -///////////////////////////////////////////////////////////////// -/obj/effect/shadekin_ability/create_shade - ability_name = "Create Shade" - desc = "Create a field of darkness that follows you." - icon_state = "tech_dispelold" - cost = 25 - shift_mode = NOT_WHILE_SHIFTED - ab_sound = 'sound/effects/bamf.ogg' -/obj/effect/shadekin_ability/create_shade/do_ability() - if(!..()) - return - my_kin.add_modifier(/datum/modifier/shadekin/create_shade,20 SECONDS) -/datum/modifier/shadekin/create_shade - name = "Shadekin Shadegen" - desc = "Darkness envelops you." - mob_overlay_state = "" - - on_created_text = "You drag part of The Dark into realspace, enveloping yourself." - on_expired_text = "You lose your grasp on The Dark and realspace reasserts itself." - stacks = MODIFIER_STACK_EXTEND - var/mob/living/simple_mob/shadekin/my_kin - -/datum/modifier/shadekin/create_shade/tick() - if(my_kin.ability_flags & AB_PHASE_SHIFTED) - expire() - -/datum/modifier/shadekin/create_shade/on_applied() - my_kin = holder - holder.glow_toggle = TRUE - holder.glow_range = 8 - holder.glow_intensity = -10 - holder.glow_color = "#FFFFFF" - holder.set_light(8, -10, "#FFFFFF") - -/datum/modifier/shadekin/create_shade/on_expire() - holder.glow_toggle = initial(holder.glow_toggle) - holder.glow_range = initial(holder.glow_range) - holder.glow_intensity = initial(holder.glow_intensity) - holder.glow_color = initial(holder.glow_color) - holder.set_light(0) - my_kin = null -/* -///////////////////////////////////////////////////////////////// -/obj/effect/shadekin_ability/energy_feast - ability_name = "Devour Energy" - desc = "Devour the energy from another creature (potentially fatal)." - icon_state = "gen_eat" - cost = 25 - shift_mode = NOT_WHILE_SHIFTED -/obj/effect/shadekin_ability/energy_feast/do_ability() - if(!..()) - return -*/ \ No newline at end of file diff --git a/code/modules/mob/living/simple_animal/vore/shadekin/ability_procs.dm b/code/modules/mob/living/simple_animal/vore/shadekin/ability_procs.dm deleted file mode 100644 index 0be707f852e..00000000000 --- a/code/modules/mob/living/simple_animal/vore/shadekin/ability_procs.dm +++ /dev/null @@ -1,133 +0,0 @@ -// Phase shifting procs (and related procs) -/mob/living/simple_mob/shadekin/proc/phase_shift() - var/turf/T = get_turf(src) - if(!T.CanPass(null,T) || loc != T) - to_chat(src,"You can't use that here!") - return FALSE - - forceMove(T) - var/original_canmove = canmove - SetStunned(0) - SetWeakened(0) - if(buckled) - buckled.unbuckle_mob() - if(pulledby) - pulledby.stop_pulling() - stop_pulling() - canmove = FALSE - - //Shifting in - if(ability_flags & AB_PHASE_SHIFTED) - ability_flags &= ~AB_PHASE_SHIFTED - name = real_name - for(var/belly in vore_organs) - var/obj/belly/B = belly - B.escapable = initial(B.escapable) - - overlays.Cut() - alpha = initial(alpha) - invisibility = initial(invisibility) - see_invisible = initial(see_invisible) - incorporeal_move = initial(incorporeal_move) - density = initial(density) - force_max_speed = initial(force_max_speed) - - //Cosmetics mostly - flick("tp_in",src) - custom_emote(1,"phases in!") - sleep(5) //The duration of the TP animation - canmove = original_canmove - - //Potential phase-in vore - if(can_be_drop_pred) //Toggleable in vore panel - var/list/potentials = living_mobs(0) - if(potentials.len) - var/mob/living/target = pick(potentials) - if(istype(target) && vore_selected) - target.forceMove(vore_selected) - to_chat(target,"\The [src] phases in around you, [vore_selected.vore_verb]ing you into their [vore_selected.name]!") - - // Do this after the potential vore, so we get the belly - update_icon() - - //Affect nearby lights - var/destroy_lights = 0 - if(eye_state == RED_EYES) - destroy_lights = 80 - if(eye_state == PURPLE_EYES) - destroy_lights = 25 - - for(var/obj/machinery/light/L in machines) - if(L.z != z || get_dist(src,L) > 10) - continue - - if(prob(destroy_lights)) - spawn(rand(5,25)) - L.broken() - else - L.flicker(10) - - //Shifting out - else - ability_flags |= AB_PHASE_SHIFTED - custom_emote(1,"phases out!") - real_name = name - name = "Something" - - for(var/belly in vore_organs) - var/obj/belly/B = belly - B.escapable = FALSE - - overlays.Cut() - flick("tp_out",src) - sleep(5) - invisibility = INVISIBILITY_LEVEL_TWO - see_invisible = INVISIBILITY_LEVEL_TWO - update_icon() - alpha = 127 - - canmove = original_canmove - incorporeal_move = TRUE - density = FALSE - force_max_speed = TRUE - -/mob/living/simple_mob/shadekin/UnarmedAttack() - if(ability_flags & AB_PHASE_SHIFTED) - return FALSE //Nope. - - . = ..() - -/mob/living/simple_mob/shadekin/can_fall() - if(ability_flags & AB_PHASE_SHIFTED) - return FALSE //Nope! - - return ..() - -/mob/living/simple_mob/shadekin/zMove(direction) - if(ability_flags & AB_PHASE_SHIFTED) - var/turf/destination = (direction == UP) ? GetAbove(src) : GetBelow(src) - if(destination) - forceMove(destination) - return TRUE - - return ..() - -// Healing others -/mob/living/simple_mob/shadekin/proc/mend_other() - //I hate to crunch a view() but I only want ones I can see - var/list/viewed = oview(1) - var/list/targets = list() - for(var/mob/living/L in viewed) - targets += L - if(!targets.len) - to_chat(src,"Nobody nearby to mend!") - return FALSE - - var/mob/living/target = input(src,"Pick someone to mend:","Mend Other") as null|anything in targets - if(!target) - return FALSE - - target.add_modifier(/datum/modifier/shadekin/heal_boop,1 MINUTE) - visible_message("\The [src] gently places a hand on \the [target]...") - face_atom(target) - return TRUE diff --git a/code/modules/mob/living/simple_animal/vore/shadekin/shadekin.dm b/code/modules/mob/living/simple_animal/vore/shadekin/shadekin.dm deleted file mode 100644 index a89688088dd..00000000000 --- a/code/modules/mob/living/simple_animal/vore/shadekin/shadekin.dm +++ /dev/null @@ -1,447 +0,0 @@ -/mob/living/simple_mob/shadekin //Spawning the prototype spawns a random one, see initialize() - name = "shadekin" - desc = "Some sort of fluffer. Big ears, long tail." - icon = 'icons/mob/vore_shadekin.dmi' - icon_state = "map_example" - icon_living = "map_example" - faction = "shadekin" - ui_icons = 'icons/mob/shadekin_hud.dmi' - intelligence_level = SA_HUMANOID - - maxHealth = 200 - health = 200 - - move_to_delay = 2 - speed = -1 - see_in_dark = 10 //SHADEkin - has_hands = TRUE //Pawbs - seedarkness = FALSE //SHAAAADEkin - attack_sound = 'sound/weapons/bladeslice.ogg' - has_langs = list(LANGUAGE_GALCOM,LANGUAGE_SHADEKIN) - - investigates = TRUE - reacts = TRUE - run_at_them = FALSE - cooperative = FALSE - - melee_damage_lower = 10 - melee_damage_upper = 20 - - min_oxy = 0 - max_oxy = 0 - min_tox = 0 - max_tox = 0 - min_co2 = 0 - max_co2 = 0 - min_n2 = 0 - max_n2 = 0 - minbodytemp = 0 - maxbodytemp = 900 - - speak_chance = 2 - speak = list("Marrr.", "Marrr?", "Marrr!") - emote_hear = list("chrrrrrs", "wurbles", "wrrrrbles") - emote_see = list("tailtwitches", "earflicks") - say_maybe_target = list("...mar?") - say_got_target = list("MAR!!!") - response_help = "pets the" - response_disarm = "bops the" - response_harm = "hits the" - attacktext = list("mauled","slashed","clawed") - friendly = list("boops", "pawbs", "mars softly at", "sniffs on") - reactions = list("Mar?" = "Marrr!", "Mar!" = "Marrr???", "Mar." = "Marrr.") - - vore_active = TRUE - vore_pounce_chance = 10 - vore_icons = SA_ICON_LIVING - swallowTime = 2 SECONDS - vore_escape_chance = 25 - - //None, they stay as their defaults. - vore_digest_chance = 0 - vore_absorb_chance = 0 - vore_bump_chance = 0 //They follow people, this would be DENGEROUS - - var/eye_state = RED_EYES //Eye color/energy gain/loss mode - var/eye_icon_state = null //Default, changed in init - var/eye_desc //Eye color description added to examine - - var/mob/living/carbon/human/henlo_human //Human we're stalking currently - - //Behavior - var/stalker = TRUE //Do we creep up on humans - var/shy_approach = FALSE //Do we creep up slowly on humans to boop them - - //Icon handling - var/image/tailimage //Cached tail image - - //Darknesssss - var/energy = 100 //For abilities - var/energy_adminbuse = FALSE //For adminbuse infinite energy - var/dark_gains = 0 //Last tick's change in energy - var/ability_flags = 0 //Flags for active abilities - var/obj/screen/darkhud //Holder to update this icon - var/obj/screen/energyhud //Holder to update this icon - - var/list/shadekin_abilities - -/mob/living/simple_mob/shadekin/Initialize() - //You spawned the prototype, and want a totally random one. - if(type == /mob/living/simple_mob/shadekin) - - //I'm told by VerySoft these are the liklihood values - var/list/sk_types = list( - /mob/living/simple_mob/shadekin/red = 20, //Actively seek people out to nom, so fairly common to see (relatively speaking), - /mob/living/simple_mob/shadekin/blue = 15, //Explorers that like to interact with people, so still fairly common, - /mob/living/simple_mob/shadekin/purple = 15, //Also explorers that may or may not homf people, - /mob/living/simple_mob/shadekin/yellow = 1 //Very rare, usually never leaves their home - ) - var/new_type = pickweight(sk_types) - - new new_type(loc) - initialized = TRUE - return INITIALIZE_HINT_QDEL - - if(icon_state == "map_example") - icon_state = pick("white","dark","brown") - - icon_living = icon_state - - switch(eye_state) - if(BLUE_EYES) - eye_icon_state = "e_blue" - if(RED_EYES) - eye_icon_state = "e_red" - if(PURPLE_EYES) - eye_icon_state = "e_purple" - if(YELLOW_EYES) - eye_icon_state = "e_yellow" - if(GREEN_EYES) - eye_icon_state = "e_green" - if(ORANGE_EYES) - eye_icon_state = "e_orange" - else - eye_icon_state = "e_red" - - tailimage = image('icons/mob/vore_shadekin64.dmi',null,icon_state) - tailimage.pixel_x = -16 - - if(eye_desc) - desc += " This one has [eye_desc]!" - - var/list/ability_types = subtypesof(/obj/effect/shadekin_ability) - shadekin_abilities = list() - for(var/type in ability_types) - shadekin_abilities += new type(src) - - update_icon() - - return ..() - -/mob/living/simple_mob/shadekin/Destroy() - QDEL_NULL_LIST(shadekin_abilities) - . = ..() - -/mob/living/simple_mob/shadekin/init_vore() - if(LAZYLEN(vore_organs)) - return - - var/obj/belly/B = new /obj/belly(src) - vore_selected = B - B.immutable = 1 - B.name = vore_stomach_name ? vore_stomach_name : "stomach" - B.desc = vore_stomach_flavor ? vore_stomach_flavor : "Your surroundings are warm, soft, and slimy. Makes sense, considering you're inside \the [name]." - B.digest_mode = vore_default_mode - B.escapable = vore_escape_chance > 0 - B.escapechance = vore_escape_chance - B.digestchance = vore_digest_chance - B.absorbchance = vore_absorb_chance - B.human_prey_swallow_time = swallowTime - B.nonhuman_prey_swallow_time = swallowTime - B.vore_verb = "swallow" - // TODO - Customizable per mob - B.emote_lists[DM_HOLD] = list( - "The walls gently squeeze against you. The wet sounds of shifting flesh against your form fill the air.", - "The hot, humid air rushes around you for a moment as the creature urps. The walls clench in around you for a moment, before relaxing again.", - "Your body is soaked in the fluids that cling to the churning walls. They squeeze across your form gently, conforming to your shape.", - "You can feel the world around you shift and sway as the creature moves! The flesh is stretchy, doughy. You can sink into it a little ways before it bounces back, curling you into a small shape." - ) - B.emote_lists[DM_DIGEST] = list( - "The walls slop thick slime across your body! It tingles briefly before the sting and ache sets in!", - "The sound of your body slipping and sliding against the powerfully churning stomach fills the air!", - "The grip of that stomach is harsh. Eagerly mushing and rubbing that slime into your body in attempts to break you down!", - "The intense churning and grinding jostles your around within the thick slime as you're slowly broken down!" - ) - B.emote_lists[DM_ABSORB] = list( - "The walls cling to you awfully close... It's almost like you're sinking into them.", - "You can feel the walls press in tightly against you, clinging to you posessively!", - "It almost feels like you're sinking into the soft, doughy flesh!", - "You can feel the walls press in around you. Almost molten, so squishy!!" - ) - B.emote_lists[DM_DRAIN] = list( - "The walls churn down on you heavily!! It's hard to move!", - "You can feel yourself getting weaker with every moment! The doughy walls sap your strength!", - "You're practically smothered in the oppressive heat of the creature's stomach!", - "It's hot, wet and tight!" - ) - B.emote_lists[DM_HEAL] = list( - "The walls pulse against you almost rhythmically. It feels nice, almost like a massage.", - "You're gently squeezed in pleasant warmth, softly churned.", - "The doughy feel of the heavy flesh clinging to you makes you feel a little stronger with every passing moment.", - "The flesh caresses across your body gently as you're held." - ) - B.digest_messages_prey = list( - "Your body is steadily softened more and more over time! Eventually you pass out. The creature's stomach rumbles powerfully as you are reduced to paste, processed for energy!", - "The creature's slimy gut lets out a heavy groan as you're slowly melted away. Gushing deeper through the creature.", - "The stinging and aching gives way to numbness as you're slowly smothered out. Your body is steadily reduced to nutrients and energy for the creature to continue on its way.", - "The chaos of being digested fades as you're snuffed out by a harsh clench! You're steadily broken down into a thick paste, processed and absorbed by the predator!" - ) - -/mob/living/simple_mob/shadekin/Life() - . = ..() - if(ability_flags & AB_PHASE_SHIFTED) - density = FALSE - - //Convert spare nutrition into energy at a certain ratio - if(. && nutrition > initial(nutrition) && energy < 100) - nutrition = max(0, nutrition-5) - energy = min(100,energy+1) - -/mob/living/simple_mob/shadekin/update_icon() - . = ..() - - cut_overlay(tailimage) - - tailimage.icon_state = icon_state - - add_overlay(tailimage) - add_overlay(eye_icon_state) - -/mob/living/simple_mob/shadekin/Stat() - . = ..() - if(statpanel("Shadekin")) - abilities_stat() - -/mob/living/simple_mob/shadekin/proc/abilities_stat() - for(var/A in shadekin_abilities) - var/obj/effect/shadekin_ability/ability = A - stat("[ability.ability_name]",ability.atom_button_text()) - -//They phase back to the dark when killed -/mob/living/simple_mob/shadekin/death(gibbed, deathmessage = "phases to somewhere far away!") - overlays = list() - icon_state = "" - flick("tp_out",src) - spawn(1 SECOND) - qdel(src) //Back from whence you came! - - . = ..(FALSE, deathmessage) - -//Blue-eyes want to nom people to heal them -/mob/living/simple_mob/shadekin/Found(var/atom/A) - if(specific_targets && isliving(A)) //Healing! - var/mob/living/L = A - var/health_percent = (L.health/L.maxHealth)*100 - if(health_percent <= 50 && will_eat(A)) - return A - . = ..() - -//They reach nutritional equilibrium (important for blue-eyes healbelly) -/mob/living/simple_mob/shadekin/Life() - if((. = ..())) - handle_shade() - -/mob/living/simple_mob/shadekin/proc/handle_shade() - //Shifted kin don't gain/lose energy (and save time if we're at the cap) - var/darkness = 1 - - - var/turf/T = get_turf(src) - if(!T) - dark_gains = 0 - return - - var/brightness = T.get_lumcount() //Brightness in 0.0 to 1.0 - darkness = 1-brightness //Invert - - if(ability_flags & AB_PHASE_SHIFTED) - dark_gains = 0 - else - //Heal (very) slowly in good darkness - if(darkness >= 0.75) - adjustFireLoss(-0.05) - adjustBruteLoss(-0.05) - adjustToxLoss(-0.05) - - switch(eye_state) - //Blue has constant, steady (slow) regen and ignores darkness. - if(BLUE_EYES) - dark_gains = 0.5 - //Red has extremely tiny energy buildup in dark, none in light, and hunts for energy. - if(RED_EYES) - if(darkness >= 0.75) - dark_gains = 0.25 - //Purple eyes have moderate gains in darkness and loss in light. - if(PURPLE_EYES) - dark_gains = round((darkness - 0.5) * 2, 0.1) - //Yellow has extreme gains in darkness and loss in light. - if(YELLOW_EYES) - dark_gains = round((darkness - 0.5) * 4, 0.1) - //Similar to blues, but passive is less, and affected by dark - if(GREEN_EYES) - dark_gains = 0.25 - dark_gains += round((darkness - 0.5), 0.1) - //More able to get energy out of the dark, worse attack gains tho - if(ORANGE_EYES) - if(darkness >= 0.65) - dark_gains = 0.30 - - energy = max(0,min(initial(energy),energy + dark_gains)) - - if(energy_adminbuse) - energy = 100 - - //Update turf darkness hud - if(darkhud) - switch(darkness) - if(0.80 to 1.00) - darkhud.icon_state = "dark2" - if(0.60 to 0.80) - darkhud.icon_state = "dark1" - if(0.40 to 0.60) - darkhud.icon_state = "dark" - if(0.20 to 0.40) - darkhud.icon_state = "dark-1" - if(0.00 to 0.20) - darkhud.icon_state = "dark-2" - - //Update energy storage hud - if(energyhud) - switch(energy) - if(80 to INFINITY) - energyhud.icon_state = "energy0" - if(60 to 80) - energyhud.icon_state = "energy1" - if(40 to 60) - energyhud.icon_state = "energy2" - if(20 to 40) - energyhud.icon_state = "energy3" - if(0 to 20) - energyhud.icon_state = "energy4" - -//Friendly ones wander towards people, maybe shy-ly if they are set to shy -/mob/living/simple_mob/shadekin/handle_wander_movement() - if(isturf(src.loc) && !resting && !buckled && canmove) - lifes_since_move++ - if(lifes_since_move >= turns_per_move) - if(!(stop_when_pulled && pulledby)) - var/moving_to - - if(stalker) - //Sniff sniff. - var/list/humans = human_mobs(world.view) - - //Can we see the last person we were following? - if(henlo_human && !(henlo_human in humans)) - henlo_human = null - - //Can we find a new person to follow? - if(!henlo_human) - while(!henlo_human && humans.len) - henlo_human = pick(humans) - if(!isturf(henlo_human.loc)) - humans -= henlo_human - henlo_human = null - - //Boopable hunam? - if(henlo_human) - moving_to = get_dir(src,henlo_human) - - if((get_dist(src,henlo_human) <= 1)) - dir = moving_to - if(prob(speak_chance)) - visible_message("\The [src] [pick(friendly)] \the [henlo_human].") - shy_approach = FALSE //ACCLIMATED - lifes_since_move = 0 - return //No need to move - - if(shy_approach) - var/them_to_us = turn(moving_to,180) - if(abs(dir2angle(henlo_human.dir) - dir2angle(them_to_us)) <= 90) - dir = them_to_us - return //AAA! - - dir = moving_to - - //Random walk - if(!moving_to) - moving_to = pick(cardinal) - dir = moving_to - - var/turf/T = get_step(src,moving_to) - if(avoid_turf(T)) - return - Move(T) - lifes_since_move = 0 - -/mob/living/simple_mob/shadekin/speech_bubble_appearance() - return "ghost" - -/mob/living/simple_mob/shadekin/DoPunch(var/atom/A) - . = ..(A) - if(isliving(A)) //We punched something! - var/mob/living/L = A - if(L.stat != DEAD) - var/gains = 0 - switch(eye_state) - if(RED_EYES) - gains = 8 - if(BLUE_EYES) - gains = 1 - if(PURPLE_EYES) - gains = 4 - if(YELLOW_EYES) - gains = 3 - if(GREEN_EYES) - gains = 1 - if(ORANGE_EYES) - gains = 5 - - energy += gains - -//Special hud elements for darkness and energy gains -/mob/living/simple_mob/shadekin/extra_huds(var/datum/hud/hud,var/icon/ui_style,var/list/hud_elements) - //Darkness hud - darkhud = new /obj/screen() - darkhud.icon = ui_style - darkhud.icon_state = "dark" - darkhud.name = "darkness" - darkhud.screen_loc = "CENTER-2:16,SOUTH:5" //Left of the left hand - darkhud.alpha = 150 - hud_elements |= darkhud - - //Energy hud - energyhud = new /obj/screen() - energyhud.icon = ui_style - energyhud.icon_state = "energy0" - energyhud.name = "energy" - energyhud.screen_loc = "CENTER+1:16,SOUTH:5" //Right of the right hand - energyhud.alpha = 150 - hud_elements |= energyhud - -// When someone clicks us with an empty hand -/mob/living/simple_mob/shadekin/attack_hand(mob/living/carbon/human/M as mob) - . = ..() - if(M.a_intent == I_HELP) - shy_approach = FALSE //ACCLIMATED - -/datum/language/shadekin - name = "Shadekin Empathy" - desc = "Shadekin seem to always know what the others are thinking. This is probably why." - colour = "changeling" - speech_verb = "mars" - ask_verb = "mars" - exclaim_verb = "mars" - key = "m" - machine_understands = 0 - flags = WHITELISTED | HIVEMIND diff --git a/code/modules/mob/living/simple_animal/vore/shadekin/types.dm b/code/modules/mob/living/simple_animal/vore/shadekin/types.dm deleted file mode 100644 index b236ec97536..00000000000 --- a/code/modules/mob/living/simple_animal/vore/shadekin/types.dm +++ /dev/null @@ -1,256 +0,0 @@ -///////////////////////////////////////////////////////////////// -/mob/living/simple_mob/shadekin/red - name = "red-eyed shadekin" - eye_state = RED_EYES - hostile = TRUE - retaliate = TRUE - stop_when_pulled = FALSE - destroy_surroundings = TRUE - armor = list( - "melee" = 30, - "bullet" = 20, - "laser" = 20, - "energy" = 50, - "bomb" = 10, - "bio" = 100, - "rad" = 100) - - eye_desc = "red eyes" - - vore_stomach_flavor = "You slip past pointy triangle teeth and down the slick, \ - slippery gullet of the creature. It's warm, and the air is thick. You can hear \ - its body squelch and shift around you as you settle into its stomach! Thick digestive \ - enzymes cling to you within that dark space, tingling and stinging immediately! The weight of \ - the doughy walls press in around you instantly, churning you up as you begin to digest!" - - player_msg = "You hunt for energy to fuel yourself, not minding in the least \ - if you strip it off unsuspecting prey. You're stronger than other shadekin, faster, and more capable in \ - a brawl, but you barely generate any of your own energy. You can stand in a dark spot to gather scraps \ - of energy in a pinch, but otherwise need to take it, by force if necessary." - -/mob/living/simple_mob/shadekin/red/white - icon_state = "white" -/mob/living/simple_mob/shadekin/red/dark - icon_state = "dark" -/mob/living/simple_mob/shadekin/red/brown - icon_state = "brown" - -///////////////////////////////////////////////////////////////// -/mob/living/simple_mob/shadekin/blue - name = "blue-eyed shadekin" - eye_state = BLUE_EYES - health = 100 - hostile = FALSE - retaliate = FALSE - stop_when_pulled = TRUE - specific_targets = TRUE //For finding injured people - destroy_surroundings = FALSE - vore_default_mode = DM_HEAL - vore_escape_chance = 75 - vore_standing_too = 1 - vore_pounce_chance = 100 - swallowTime = 4 SECONDS //A little longer to compensate for the above - vore_ignores_undigestable = FALSE - attacktext = list("shoved") - armor = list( - "melee" = 5, - "bullet" = 5, - "laser" = 5, - "energy" = 5, - "bomb" = 0, - "bio" = 100, - "rad" = 100) - - eye_desc = "blue eyes" - shy_approach = TRUE - stalker = TRUE - vore_stomach_flavor = "You slip past pointy triangle teeth and down the slick, \ - slippery gullet of the creature. It's warm, and the air is thick. You can hear its body \ - squelch and shift around you as you settle into its stomach! It's oddly calm, and very dark. \ - The doughy flesh rolls across your form in gentle waves. The aches and pains across your form slowly begin to \ - diminish, your body is healing much faster than normal! You're also soon soaked in harmless slime." - - player_msg = "You've chosen to generate your own energy rather than taking \ - it from others. Most of the time, anyway. You don't have a need to steal energy from others, and gather it up \ - without doing so, albeit slowly. Dark and light are irrelevant to you, they are just different places to explore and \ - discover new things and new people." - -/mob/living/simple_mob/shadekin/blue/white - icon_state = "white" -/mob/living/simple_mob/shadekin/blue/dark - icon_state = "dark" -/mob/living/simple_mob/shadekin/blue/brown - icon_state = "brown" - -///////////////////////////////////////////////////////////////// -/mob/living/simple_mob/shadekin/purple - name = "purple-eyed shadekin" - eye_state = PURPLE_EYES - health = 150 - hostile = FALSE - retaliate = TRUE - stop_when_pulled = FALSE - destroy_surroundings = TRUE - vore_default_mode = DM_HOLD - vore_digest_chance = 25 - vore_absorb_chance = 25 - armor = list( - "melee" = 15, - "bullet" = 15, - "laser" = 15, - "energy" = 15, - "bomb" = 15, - "bio" = 100, - "rad" = 100) - - eye_desc = "purple eyes" - shy_approach = TRUE - stalker = TRUE - vore_stomach_flavor = "You slip past pointy triangle teeth and down the slick, slippery gullet of the creature. \ - It's warm, and the air is thick. You can hear its body squelch and shift around you as you settle into its stomach! \ - It's relatively calm inside the dark organ. Wet and almost molten for how gooey your surroundings feel. \ - You can feel the doughy walls cling to you posessively... It's almost like you could sink into them. \ - There is also an ominous gurgling from somewhere nearby..." - - player_msg = "You're familiar with generating your own energy, but occasionally \ - steal it from others when it suits you. You generate energy at a moderate pace in dark areas, and staying in well-lit \ - areas is taxing on your energy. You can harvest energy from others in a fight, but since you don't need to, you may \ - just choose to simply not fight." - -/mob/living/simple_mob/shadekin/purple/white - icon_state = "white" -/mob/living/simple_mob/shadekin/purple/dark - icon_state = "dark" -/mob/living/simple_mob/shadekin/purple/brown - icon_state = "brown" - -///////////////////////////////////////////////////////////////// -/mob/living/simple_mob/shadekin/yellow - name = "yellow-eyed shadekin" - eye_state = YELLOW_EYES - health = 100 - hostile = FALSE - retaliate = TRUE - stop_when_pulled = FALSE - destroy_surroundings = TRUE - vore_default_mode = DM_DRAIN - vore_digest_chance = 5 - vore_ignores_undigestable = FALSE - armor = list( - "melee" = 5, - "bullet" = 5, - "laser" = 5, - "energy" = 5, - "bomb" = 0, - "bio" = 100, - "rad" = 100) - - eye_desc = "yellow eyes" - stalker = FALSE - vore_stomach_flavor = "You slip past pointy triangle teeth and down the slick, slippery gullet \ - of the creature. It's warm, and the air is thick. You can hear its body squelch and shift around you \ - as you settle into its stomach! The doughy walls within cling to you heavily, churning down on you, wearing \ - you out!! There doesn't appear to be any actual danger here, harmless slime clings to you, but it's getting \ - harder and harder to move as those walls press in on you insistently!" - - player_msg = "Your kind rarely ventures into realspace. Being in any well-lit \ - area is very taxing on you, but you gain energy extremely fast in any very dark area. You're weaker than other \ - shadekin, but your fast energy generation in the dark allows you to phase shift more often." - -/mob/living/simple_mob/shadekin/yellow/white - icon_state = "white" -/mob/living/simple_mob/shadekin/yellow/dark - icon_state = "dark" -/mob/living/simple_mob/shadekin/yellow/brown - icon_state = "brown" - -///////////////////////////////////////////////////////////////// -/mob/living/simple_mob/shadekin/green - name = "green-eyed shadekin" - eye_state = GREEN_EYES - health = 125 - hostile = FALSE - retaliate = TRUE - stop_when_pulled = FALSE - destroy_surroundings = TRUE - vore_default_mode = DM_DRAIN - vore_digest_chance = 0 - vore_ignores_undigestable = FALSE - armor = list( - "melee" = 5, - "bullet" = 5, - "laser" = 5, - "energy" = 5, - "bomb" = 0, - "bio" = 100, - "rad" = 100) - - eye_desc = "green eyes" - stalker = TRUE - vore_stomach_flavor = "You slip past pointy triangle teeth and down the slick, slippery gullet \ - of the creature. It's warm, and the air is thick. You can hear its body squelch and shift around you \ - as you settle into its stomach! The doughy walls within cling to you heavily, churning down on you, wearing \ - you out!! There doesn't appear to be any actual danger here, harmless slime clings to you, but it's getting \ - harder and harder to move as those walls press in on you insistently!" - - player_msg = "Your kind rarely ventures into realspace. Being in any well-lit area is very taxing on you, but you \ - have more experience than your yellow-eyed cousins. You gain energy decently fast in any very dark area. You're weaker than other \ - shadekin, but your slight energy generation constnatly, and especially in the dark allows for a good mix of uses." - -/mob/living/simple_mob/shadekin/green/white - icon_state = "white" -/mob/living/simple_mob/shadekin/green/dark - icon_state = "dark" -/mob/living/simple_mob/shadekin/green/brown - icon_state = "brown" - -///////////////////////////////////////////////////////////////// -/mob/living/simple_mob/shadekin/orange - name = "orange-eyed shadekin" - eye_state = ORANGE_EYES - health = 175 - hostile = TRUE - retaliate = TRUE - stop_when_pulled = FALSE - destroy_surroundings = TRUE - armor = list( - "melee" = 20, - "bullet" = 15, - "laser" = 15, - "energy" = 25, - "bomb" = 10, - "bio" = 100, - "rad" = 100) - - eye_desc = "orange eyes" - - vore_stomach_flavor = "You slip past pointy triangle teeth and down the slick, \ - slippery gullet of the creature. It's warm, and the air is thick. You can hear \ - its body squelch and shift around you as you settle into its stomach! Thick digestive \ - enzymes cling to you within that dark space, tingling and stinging immediately! The weight of \ - the doughy walls press in around you instantly, churning you up as you begin to digest!" - - player_msg = "You usually hunt for energy to fuel yourself, though not as often as your red-eyed cousins. \ - You're stronger than most shadekin, faster, and more capable in a brawl, but you don't generate much of your own energy. \ - You can stand in a dark spot to gather some energy, but otherwise need to take it, by force if necessary." - -/mob/living/simple_mob/shadekin/orange/white - icon_state = "white" -/mob/living/simple_mob/shadekin/orange/dark - icon_state = "dark" -/mob/living/simple_mob/shadekin/orange/brown - icon_state = "brown" - -///////////////////////////////////////////////////////////////// -//Fluffy specific fluffer -/mob/living/simple_mob/shadekin/blue/rivyr - name = "Rivyr" - desc = "She appears to be a fluffer of some sort. Deep blue eyes and curious attitude." - icon_state = "rivyr" - eye_desc = "" - vore_stomach_flavor = "Blue flesh gleams in the fading light as you slip down the little mar's gullet! \ - Gooey flesh and heat surrounds your form as you're tucked away into the darkness of her stomach! Thick slimes cling \ - to you, but they seem to be harmless. The organ gently churns around you, clinging to your shape and forcing \ - you to curl up a bit. You can feel her rub at you some through the layers of flesh and fluff, while aches \ - and pains begin to fade away across your body." - player_msg = "Mar? Mar mar. Mar mar mar. Mar. Mar mar? Mar! Mar. Marrrr." diff --git a/code/modules/mob/living/simple_animal/vore/shadekin/~defines.dm b/code/modules/mob/living/simple_animal/vore/shadekin/~defines.dm deleted file mode 100644 index 28ce75c50b1..00000000000 --- a/code/modules/mob/living/simple_animal/vore/shadekin/~defines.dm +++ /dev/null @@ -1,11 +0,0 @@ -#undef NOT_WHILE_SHIFTED -#undef ONLY_WHILE_SHIFTED -#undef SHIFTED_OR_NOT - -#undef BLUE_EYES -#undef RED_EYES -#undef PURPLE_EYES -#undef YELLOW_EYES - -#undef AB_PHASE_SHIFTED -#undef AB_SHADE_REGEN \ No newline at end of file diff --git a/code/modules/mob/living/simple_animal/vore/snake.dm b/code/modules/mob/living/simple_animal/vore/snake.dm deleted file mode 100644 index 9509f4b97e8..00000000000 --- a/code/modules/mob/living/simple_animal/vore/snake.dm +++ /dev/null @@ -1,28 +0,0 @@ -/mob/living/simple_mob/hostile/giant_snake - name = "giant snake" - desc = "Snakes. Why did it have to be snakes?" - icon = 'icons/mob/vore64x64.dmi' - icon_dead = "snake-dead" - icon_living = "snake" - icon_state = "snake" - - faction = "snake" - maxHealth = 200 - health = 200 - - melee_damage_lower = 10 - melee_damage_upper = 25 - - old_x = -16 - old_y = -16 - default_pixel_x = -16 - default_pixel_y = -16 - pixel_x = -16 - pixel_y = -16 - -// Activate Noms! -/mob/living/simple_mob/hostile/giant_snake - vore_active = 1 - vore_pounce_chance = 25 - vore_icons = SA_ICON_LIVING - swallowTime = 2 SECONDS // Hungry little bastards. diff --git a/code/modules/mob/living/simple_animal/vore/solargrub.dm b/code/modules/mob/living/simple_animal/vore/solargrub.dm deleted file mode 100644 index 94db615ec55..00000000000 --- a/code/modules/mob/living/simple_animal/vore/solargrub.dm +++ /dev/null @@ -1,119 +0,0 @@ -/* -A work in progress, lore will go here later. -List of things solar grubs should be able to do: - -2. have three stages of growth depending on time. (Or energy drained altho that seems like a hard one to code) -3. be capable of eating people that get knocked out. (also be able to shock attackers that don’t wear insulated gloves.) -5. ((potentially use digested people to reproduce)) -6. add glow? -*/ - -#define SINK_POWER 1 - -/mob/living/simple_mob/retaliate/solargrub - name = "juvenile solargrub" - desc = "A young sparkling solargrub" - icon = 'icons/mob/vore.dmi' //all of these are placeholders - icon_state = "solargrub" - icon_living = "solargrub" - icon_dead = "solargrub-dead" - - faction = "grubs" - maxHealth = 50 //grubs can take a lot of harm - health = 50 - move_to_delay = 5 - - melee_damage_lower = 1 - melee_damage_upper = 5 - - speak_chance = 1 - emote_see = list("squelches", "squishes") - - speed = 2 - - meat_type = /obj/item/weapon/reagent_containers/food/snacks/meat/grubmeat - - response_help = "pokes" - response_disarm = "pushes" - response_harm = "roughly pushes" - - // solar grubs are not affected by atmos - min_oxy = 0 - max_oxy = 0 - min_tox = 0 - max_tox = 0 - min_co2 = 0 - max_co2 = 0 - min_n2 = 0 - max_n2 = 0 - - var/poison_per_bite = 5 //grubs cause a shock when they bite someone - var/poison_type = "shockchem" - var/poison_chance = 50 - var/datum/powernet/PN // Our powernet - var/obj/structure/cable/attached // the attached cable - var/emp_chance = 20 // Beware synths - -/mob/living/simple_mob/retaliate/solargrub/PunchTarget() - if(target_mob&& prob(emp_chance)) - target_mob.emp_act(4) //The weakest strength of EMP - visible_message("The grub releases a powerful shock!") - ..() - -/mob/living/simple_mob/retaliate/solargrub/Life() - . = ..() - if(!. || ai_inactive) return - - if(stance == STANCE_IDLE) - //first, check for potential cables nearby to powersink - var/turf/S = loc - attached = locate() in S - if(attached) - if(prob(2)) - src.visible_message("\The [src] begins to sink power from the net.") - if(prob(5)) - var/datum/effect/effect/system/spark_spread/sparks = new /datum/effect/effect/system/spark_spread() - sparks.set_up(5, 0, get_turf(src)) - sparks.start() - anchored = 1 - PN = attached.powernet - PN.draw_power(100000) // previous value 150000 - var/apc_drain_rate = 750 //Going to see if grubs are better as a minimal bother. previous value : 4000 - for(var/obj/machinery/power/terminal/T in PN.nodes) - if(istype(T.master, /obj/machinery/power/apc)) - var/obj/machinery/power/apc/A = T.master - if(A.operating && A.cell) - var/cur_charge = A.cell.charge / CELLRATE - var/drain_val = min(apc_drain_rate, cur_charge) - A.cell.use(drain_val * CELLRATE) - else if(!attached && anchored) - anchored = 0 - PN = null - -/mob/living/simple_mob/retaliate/solargrub //active noms - vore_bump_chance = 50 - vore_bump_emote = "applies minimal effort to try and slurp up" - vore_active = 1 - vore_capacity = 1 - vore_pounce_chance = 0 //grubs only eat incapacitated targets - vore_default_mode = DM_DIGEST - -/mob/living/simple_mob/retaliate/solargrub/PunchTarget() - . = ..() - if(isliving(.)) - var/mob/living/L = . - if(L.reagents) - if(prob(poison_chance)) - L << "You feel a shock rushing through your veins." - L.reagents.add_reagent(poison_type, poison_per_bite) - -/mob/living/simple_mob/retaliate/solargrub/death() - src.anchored = 0 - set_light(0) - ..() - -/mob/living/simple_mob/retaliate/solargrub/handle_light() - . = ..() - if(. == 0 && !is_dead()) - set_light(2.5, 1, COLOR_YELLOW) - return 1 diff --git a/code/modules/mob/living/simple_animal/vore/solargrub_larva.dm b/code/modules/mob/living/simple_animal/vore/solargrub_larva.dm deleted file mode 100644 index 0fd32be6ee6..00000000000 --- a/code/modules/mob/living/simple_animal/vore/solargrub_larva.dm +++ /dev/null @@ -1,256 +0,0 @@ -var/global/list/grub_machine_overlays = list() - -/mob/living/simple_mob/solargrub_larva - name = "solargrub larva" - desc = "A tiny wormy thing that can grow to massive sizes under the right conditions." - icon = 'icons/mob/vore.dmi' - icon_state = "grublarva" - icon_living = "grublarva" - icon_dead = "grublarva-dead" - - health = 5 - maxHealth = 5 - - meat_amount = 2 - meat_type = /obj/item/weapon/reagent_containers/food/snacks/meat/grubmeat - - faction = "grubs" - - response_help = "pats" - response_disarm = "nudges" - response_harm = "stomps on" - - mob_size = MOB_MINISCULE - pass_flags = PASSTABLE - can_pull_size = ITEMSIZE_TINY - can_pull_mobs = MOB_PULL_NONE - density = 0 - - stop_when_pulled = 0 - - var/static/list/ignored_machine_types = list( - /obj/machinery/atmospherics/unary/vent_pump, - /obj/machinery/atmospherics/unary/vent_scrubber, - /obj/machinery/door/firedoor - ) - - var/obj/machinery/atmospherics/unary/vent_pump/target_vent - - var/datum/effect/effect/system/spark_spread/sparks - var/image/machine_effect - - var/obj/machinery/abstract_grub_machine/powermachine - var/power_drained = 0 - var/forced_out = 0 - -/mob/living/simple_mob/solargrub_larva/New() - ..() - powermachine = new(src) - sparks = new(src) - sparks.set_up() - sparks.attach(src) - verbs += /mob/living/proc/ventcrawl - -/mob/living/simple_mob/solargrub_larva/death() - powermachine.draining = 0 - set_light(0) - return ..() - -/mob/living/simple_mob/solargrub_larva/Destroy() - QDEL_NULL(powermachine) - QDEL_NULL(sparks) - QDEL_NULL(machine_effect) - target_vent = null - return ..() - -/mob/living/simple_mob/solargrub_larva/Life() - . = ..() - - if(machine_effect && !istype(loc, /obj/machinery)) - QDEL_NULL(machine_effect) - - if(!. || ai_inactive) - return - - if(power_drained >= 7 MEGAWATTS && prob(5)) - expand_grub() - return - - if(istype(loc, /obj/machinery)) - if(machine_effect && air_master.current_cycle%30) - for(var/mob/M in player_list) - M << machine_effect - if(prob(10)) - sparks.start() - return - - if(stance == STANCE_IDLE) - if(forced_out) - forced_out = Clamp(0, forced_out--, forced_out) - return - - if(target_vent) - if(Adjacent(target_vent)) - spawn() - do_ventcrawl(target_vent) - target_vent = null - else - target_vent = null - stop_automated_movement = 0 - walk(src, 0) - return - - if(prob(20)) - var/list/possible_machines = list() - for(var/obj/machinery/M in orange(1,src)) - if(!Adjacent(M)) - continue - if(istype(M, /obj/machinery/power/apc) || istype(M, /obj/machinery/power/smes)) //APCs and SMES units don't actually use power, but it's too thematic to ignore them - possible_machines += M - continue - if(is_type_in_list(M, ignored_machine_types)) - continue - if(!M.idle_power_usage && !M.active_power_usage) //If it can't use power at all, ignore it - continue - possible_machines += M - if(possible_machines.len) - enter_machine(pick(possible_machines)) - return - - if(prob(10)) - var/list/vents = list() - for(var/obj/machinery/atmospherics/unary/vent_pump/vent in view(7,src)) - if(vent.welded) - continue - vents += vent - if(vents.len) - var/picked = pick(vents) - target_vent = picked - WanderTowards(get_turf(picked)) - return - -/mob/living/simple_mob/solargrub_larva/proc/enter_machine(var/obj/machinery/M) - if(!istype(M)) - return - forceMove(M) - powermachine.draining = 2 - visible_message("\The [src] finds an opening and crawls inside \the [M].") - if(!(M.type in grub_machine_overlays)) - generate_machine_effect(M) - machine_effect = image(grub_machine_overlays[M.type], M) //Can't do this the reasonable way with an overlay, - for(var/mob/L in player_list) //because nearly every machine updates its icon by removing all overlays first - L << machine_effect - -/mob/living/simple_mob/solargrub_larva/proc/generate_machine_effect(var/obj/machinery/M) - var/icon/I = new /icon(M.icon, M.icon_state) - I.Blend(new /icon('icons/effects/blood.dmi', rgb(255,255,255)),ICON_ADD) - I.Blend(new /icon('icons/effects/alert.dmi', "_red"),ICON_MULTIPLY) - grub_machine_overlays[M.type] = I - -/mob/living/simple_mob/solargrub_larva/proc/eject_from_machine(var/obj/machinery/M) - if(!M) - if(istype(loc, /obj/machinery)) - M = loc - else - return - forceMove(get_turf(M)) - sparks.start() - if(machine_effect) - QDEL_NULL(machine_effect) - forced_out += rand(5,15) - powermachine.draining = 1 - -/mob/living/simple_mob/solargrub_larva/proc/do_ventcrawl(var/obj/machinery/atmospherics/unary/vent_pump/vent) - if(!vent) - return - var/obj/machinery/atmospherics/unary/vent_pump/end_vent = get_safe_ventcrawl_target(vent) - if(!end_vent) - return - forceMove(vent) - playsound(vent, 'sound/machines/ventcrawl.ogg', 50, 1, -3) - vent.visible_message("\The [src] wiggles into \the [vent]!") - var/redirect_attempts = 3 - while(redirect_attempts) - var/travel_time = round(get_dist(get_turf(src), get_turf(end_vent)) / 2) - sleep(travel_time) - if(end_vent.welded) - end_vent = get_safe_ventcrawl_target(vent) - if(!end_vent) - forceMove(get_turf(vent)) - return - redirect_attempts-- - continue - break - playsound(end_vent, 'sound/machines/ventcrawl.ogg', 50, 1, -3) - forceMove(get_turf(end_vent)) - -/mob/living/simple_mob/solargrub_larva/proc/expand_grub() - eject_from_machine() - visible_message("\The [src] suddenly balloons in size!") - new /mob/living/simple_mob/retaliate/solargrub(get_turf(src)) -// var/mob/living/simple_mob/retaliate/solargrub/grub = new(get_turf(src)) -// grub.power_drained = power_drained //TODO - qdel(src) - -/mob/living/simple_mob/solargrub_larva/handle_light() - . = ..() - if(. == 0 && !is_dead()) - set_light(1.5, 1, COLOR_YELLOW) - return 1 - - -/obj/machinery/abstract_grub_machine - var/total_active_power_usage = 45 KILOWATTS - var/list/active_power_usages = list(15 KILOWATTS, 15 KILOWATTS, 15 KILOWATTS) - var/total_idle_power_usage = 3 KILOWATTS - var/list/idle_power_usages = list(1 KILOWATTS, 1 KILOWATTS, 1 KILOWATTS) - var/draining = 1 - var/mob/living/simple_mob/solargrub_larva/grub - -/obj/machinery/abstract_grub_machine/New() - ..() - shuffle_power_usages() - grub = loc - if(!istype(grub)) - grub = null - qdel(src) - -/obj/machinery/abstract_grub_machine/Destroy() - grub = null - return ..() - -/obj/machinery/abstract_grub_machine/process() - if(!draining) - return - var/area/A = get_area(src) - if(!A) - return - var/list/power_list - switch(draining) - if(1) - power_list = idle_power_usages - if(2) - power_list = active_power_usages - for(var/i = 1 to power_list.len) - if(A.powered(i)) - use_power(power_list[i], i) - grub.power_drained += power_list[i] - if(prob(5)) - shuffle_power_usages() - -/obj/machinery/abstract_grub_machine/proc/shuffle_power_usages() - total_active_power_usage = rand(30 KILOWATTS, 60 KILOWATTS) - total_idle_power_usage = rand(1 KILOWATTS, 5 KILOWATTS) - active_power_usages = split_into_3(total_active_power_usage) - idle_power_usages = split_into_3(total_idle_power_usage) - - -/obj/item/device/multitool/afterattack(obj/O, mob/user, proximity) - if(proximity) - if(istype(O, /obj/machinery)) - var/mob/living/simple_mob/solargrub_larva/grub = locate() in O - if(grub) - grub.eject_from_machine(O) - to_chat(user, "You disturb a grub nesting in \the [O]!") - return - return ..() diff --git a/code/modules/mob/living/simple_animal/vore/wolf.dm b/code/modules/mob/living/simple_animal/vore/wolf.dm deleted file mode 100644 index ac286b2f1d4..00000000000 --- a/code/modules/mob/living/simple_animal/vore/wolf.dm +++ /dev/null @@ -1,27 +0,0 @@ -/mob/living/simple_mob/hostile/wolf - name = "grey wolf" - desc = "My, what big jaws it has!" - tt_desc = "Canis lupus" - icon = 'icons/mob/vore.dmi' - icon_dead = "wolf-dead" - icon_living = "wolf" - icon_state = "wolf" - - speed = 5 - - run_at_them = 0 - cooperative = 1 - investigates = 1 - returns_home = 1 - reacts = 1 - - harm_intent_damage = 5 - melee_damage_lower = 10 - melee_damage_upper = 25 - - minbodytemp = 200 - -// Activate Noms! -/mob/living/simple_mob/hostile/wolf - vore_active = 1 - vore_icons = SA_ICON_LIVING diff --git a/code/modules/mob/living/simple_animal/vore/wolfgirl.dm b/code/modules/mob/living/simple_animal/vore/wolfgirl.dm deleted file mode 100644 index 152ba5b1c83..00000000000 --- a/code/modules/mob/living/simple_animal/vore/wolfgirl.dm +++ /dev/null @@ -1,62 +0,0 @@ -/mob/living/simple_mob/retaliate/wolfgirl - name = "wolfgirl" - desc = "AwooOOOOoooo!" - tt_desc = "Homo lupus" - icon = 'icons/mob/vore.dmi' - icon_state = "wolfgirl" - icon_living = "wolfgirl" - icon_dead = "wolfgirl-dead" - intelligence_level = SA_HUMANOID - - faction = "wolfgirl" - maxHealth = 30 - health = 30 - - run_at_them = 0 - cooperative = 1 - investigates = 1 - firing_lines = 1 - returns_home = 1 - reacts = 1 - - response_help = "pats the" - response_disarm = "gently pushes aside the" - response_harm = "hits the" - - harm_intent_damage = 8 - melee_damage_lower = 15 - melee_damage_upper = 15 - attacktext = list("slashed") - - speak_chance = 1 - speak = list("AwoooOOOOoooo!", - "Awoo~", - "I'll protect the forest! ... Where's the forest again?", - "All I need is my sword!", - "Awoo?", - "Anyone else smell that?") - emote_hear = list("awoooos!","hmms to herself","plays with her sword") - emote_see = list("narrows her eyes","sniffs the air") - say_understood = list() - say_cannot = list() - say_maybe_target = list("An enemy!?","What was that?","Is that...?","Hmm?") - say_got_target = list("You won't get away!","I've had it!","I'll vanquish you!","AWOOOOO!") - reactions = list("Are you a dog?" = "Who, me?! No! Stop saying that!", - "Awoo!" = "AwooooOOOOooo!", - "Awoo?" = "Awoo.", - "Awoo." = "Awoo?",) - - var/loopstop = 0 //To prevent circular awoooos. - -/mob/living/simple_mob/retaliate/wolfgirl/hear_say() - if(world.time - loopstop < 5 SECONDS) - return - else - loopstop = world.time - ..() - -// Activate Noms! -/mob/living/simple_mob/retaliate/wolfgirl - vore_active = 1 - vore_pounce_chance = 40 - vore_icons = SA_ICON_LIVING diff --git a/code/modules/mob/living/simple_animal/vore/zz_vore_overrides.dm b/code/modules/mob/living/simple_animal/vore/zz_vore_overrides.dm deleted file mode 100644 index 432d48c3abb..00000000000 --- a/code/modules/mob/living/simple_animal/vore/zz_vore_overrides.dm +++ /dev/null @@ -1,250 +0,0 @@ -// -// This file overrides settings on upstream simple animals to turn on vore behavior -// - -/* -## For anything that previously inhertited from: /mob/living/simple_mob/hostile/vore ## - - vore_active = 1 - icon = 'icons/mob/vore.dmi' - -## For anything that previously inhertied from: /mob/living/simple_mob/hostile/vore/large ## - - vore_active = 1 - icon = 'icons/mob/vore64x64.dmi' - old_x = -16 - old_y = -16 - pixel_x = -16 - pixel_y = -16 - vore_pounce_chance = 50 -*/ - -// -// Okay! Here we go! -// - -/mob/living/simple_mob/animal/space/alien - vore_active = 1 - icon = 'icons/mob/vore.dmi' - icon_state = "xenohunter" - icon_living = "xenohunter" - icon_dead = "xenohunter-dead" - icon_gib = "gibbed-a" - vore_icons = SA_ICON_LIVING - -/mob/living/simple_mob/animal/space/alien/drone - vore_active = 1 - icon = 'icons/mob/vore.dmi' - icon_state = "xenodrone" - icon_living = "xenodrone" - icon_dead = "xenodrone-dead" - icon_gib = "gibbed-a" - vore_icons = SA_ICON_LIVING - -/mob/living/simple_mob/animal/space/alien/sentinel - vore_active = 1 - icon = 'icons/mob/vore.dmi' - icon_state = "xenosentinel" - icon_living = "xenosentinel" - icon_dead = "xenosentinel-dead" - icon_gib = "gibbed-a" - vore_icons = SA_ICON_LIVING - -/mob/living/simple_mob/animal/space/alien/queen - vore_active = 1 - icon = 'icons/mob/vore.dmi' - icon_state = "xenoqueen" - icon_living = "xenoqueen" - icon_dead = "xenoqueen-dead" - icon_gib = "gibbed-a" - vore_icons = SA_ICON_LIVING - -/mob/living/simple_mob/animal/space/alien/queen/empress - vore_active = 1 - icon = 'icons/mob/vore64x64.dmi' - icon_state = "queen_s" - icon_living = "queen_s" - icon_dead = "queen_dead" - vore_icons = SA_ICON_LIVING | SA_ICON_REST - old_x = -16 - old_y = 0 - default_pixel_x = -16 - pixel_x = -16 - pixel_y = 0 - - vore_capacity = 3 - vore_pounce_chance = 75 - -/mob/living/simple_mob/animal/space/alien/sentinel/praetorian - icon = 'icons/mob/vore64x64.dmi' - vore_icons = SA_ICON_LIVING | SA_ICON_REST - -/mob/living/simple_mob/animal/space/alien/queen/empress/mother - vore_icons = 0 // NO VORE SPRITES - -/mob/living/simple_mob/animal/space/bear - vore_active = 1 - icon = 'icons/mob/vore.dmi' - icon_state = "spacebear" - icon_living = "spacebear" - icon_dead = "spacebear-dead" - icon_gib = "bear-gib" - vore_icons = SA_ICON_LIVING - -/mob/living/simple_mob/animal/space/bear/hudson - name = "Hudson" - -/mob/living/simple_mob/animal/space/bear/brown - vore_active = 1 - icon = 'icons/mob/vore.dmi' - name = "brown bear" - icon_state = "brownbear" - icon_living = "brownbear" - icon_dead = "brownbear-dead" - icon_gib = "bear-gib" - vore_icons = SA_ICON_LIVING - -/mob/living/simple_mob/animal/space/carp - icon = 'icons/mob/vore.dmi' - vore_active = 1 - vore_icons = SA_ICON_LIVING - -/mob/living/simple_mob/hostile/creature/vore - vore_active = 1 - // NO VORE SPRITES - vore_capacity = 0 - vore_pounce_chance = 0 // Only pounces if you're crit. - vore_escape_chance = 0 // As such, if you're a dibshit who feeds yourself to it, you're staying down. - // Overrides to non-vore version - speed = 4 // Slow it down a bit - health = 80 // Increase health to compensate - maxHealth = 80 - -/mob/living/simple_mob/hostile/mimic - vore_active = 1 - // NO VORE SPRITES - vore_capacity = 0 - vore_pounce_chance = 33 - // Overrides to non-vore version - maxHealth = 60 - health = 60 - -/mob/living/simple_mob/animal/passive/cat - vore_active = 1 - // NO VORE SPRITES - specific_targets = 0 // Targeting UNLOCKED - vore_max_size = RESIZE_TINY - -/mob/living/simple_mob/animal/passive/cat/PunchTarget() - if(istype(target_mob,/mob/living/simple_mob/animal/passive/mouse)) - visible_message("\The [src] pounces on \the [target_mob]!]") - target_mob.Stun(5) - return EatTarget() - else ..() - -/mob/living/simple_mob/animal/passive/cat/Found(var/atom/found_atom) - if(!SA_attackable(found_atom)) - return null - if(istype(found_atom,/mob/living/simple_mob/animal/passive/mouse)) - return found_atom - if(found_atom in friends) - return null - if(will_eat(found_atom)) - return found_atom - -/mob/living/simple_mob/animal/passive/cat/fluff/Found(var/atom/found_atom) - if (friend == found_atom) - return null - return ..() - -/mob/living/simple_mob/animal/passive/cat/fluff - vore_ignores_undigestable = 0 - vore_pounce_chance = 100 - vore_digest_chance = 0 // just use the toggle - vore_default_mode = DM_HOLD //can use the toggle if you wanna be catfood - vore_standing_too = TRUE //gonna get pounced - -/mob/living/simple_mob/animal/passive/cat/fluff/EatTarget() - var/mob/living/TM = target_mob - prey_excludes += TM //so they won't immediately re-eat someone who struggles out (or gets newspapered out) as soon as they're ate - spawn(3600) // but if they hang around and get comfortable, they might get ate again - if(src && TM) - prey_excludes -= TM - ..() // will_eat check is carried out before EatTarget is called, so prey on the prey_excludes list isn't a problem. - -/mob/living/simple_mob/fox - vore_active = 1 - // NO VORE SPRITES - vore_max_size = RESIZE_TINY - -/mob/living/simple_mob/fox/PunchTarget() - if(istype(target_mob,/mob/living/simple_mob/animal/passive/mouse)) - return EatTarget() - else ..() - -/mob/living/simple_mob/fox/Found(var/atom/found_atom) - if(!SA_attackable(found_atom)) - return null - if(istype(found_atom,/mob/living/simple_mob/animal/passive/mouse)) - return found_atom - if(found_atom in friends) - return null - if(will_eat(found_atom)) - return found_atom - -/mob/living/simple_mob/fox/fluff/Found(var/atom/found_atom) - if (friend == found_atom) - return null - return ..() - -/mob/living/simple_mob/fox/fluff - vore_ignores_undigestable = 0 - vore_pounce_chance = 100 - vore_digest_chance = 0 // just use the toggle - vore_default_mode = DM_HOLD //can use the toggle if you wanna be foxfood - vore_standing_too = TRUE // gonna get pounced - -/mob/living/simple_mob/fox/fluff/EatTarget() - var/mob/living/TM = target_mob - prey_excludes += TM //so they won't immediately re-eat someone who struggles out (or gets newspapered out) as soon as they're ate - spawn(3600) // but if they hang around and get comfortable, they might get ate again - if(src && TM) - prey_excludes -= TM - ..() // will_eat check is carried out before EatTarget is called, so prey on the prey_excludes list isn't a problem. - -/mob/living/simple_mob/animal/space/goose - vore_active = 1 - // NO VORE SPRITES - vore_max_size = RESIZE_SMALL - -/mob/living/simple_mob/animal/passive/penguin - vore_active = 1 - // NO VORE SPRITES - vore_max_size = RESIZE_SMALL - - -/mob/living/simple_mob/animal/space/carp/pike - vore_active = 1 - // NO VORE SPRITES - -/mob/living/simple_mob/animal/space/carp/holodeck - vore_icons = 0 // NO VORE SPRITES - vore_digest_chance = 0 - vore_absorb_chance = 0 - -// Override stuff for holodeck carp to make them not digest when set to safe! -/mob/living/simple_mob/animal/space/carp/holodeck/init_vore() - . = ..() - var/safe = (faction == "neutral") - for(var/belly in vore_organs) - var/obj/belly/B = belly - B.digest_mode = safe ? DM_HOLD : vore_default_mode - -/mob/living/simple_mob/animal/space/carp/holodeck/set_safety(var/safe) - . = ..() - for(var/belly in vore_organs) - var/obj/belly/B = belly - B.digest_mode = safe ? DM_HOLD : vore_default_mode - -/mob/living/simple_mob/animal/passive/mouse - faction = "mouse" //Giving mice a faction so certain mobs can get along with them. \ No newline at end of file From 0e65a0b8a6d6a6cd24078612af5d96147540f8ec Mon Sep 17 00:00:00 2001 From: Ketrai Date: Sun, 22 Dec 2019 17:32:49 +0100 Subject: [PATCH 11/65] Adds sharks --- code/modules/fishing/fishing_vr.dm | 44 + code/modules/food/food/snacks_vr.dm | 70 + code/modules/food/recipes_microwave_vr.dm | 23 + .../subtypes/animal/passive/fish_vr.dm | 17 +- icons/mob/shark.dmi | Bin 0 -> 3075 bytes icons/obj/food_vr.dmi | Bin 22373 -> 24758 bytes maps/tether/submaps/beach/beach.dmm | 6712 +++++++++-------- 7 files changed, 3511 insertions(+), 3355 deletions(-) create mode 100644 icons/mob/shark.dmi diff --git a/code/modules/fishing/fishing_vr.dm b/code/modules/fishing/fishing_vr.dm index e545cc0edfb..69d43fc2a7f 100644 --- a/code/modules/fishing/fishing_vr.dm +++ b/code/modules/fishing/fishing_vr.dm @@ -34,6 +34,50 @@ GLOBAL_LIST_INIT(indoor_fishing_junk_list, list( junk_list = GLOB.indoor_fishing_junk_list fishing_loot = GLOB.indoor_fishing_chance_list +// Ocean fishing +GLOBAL_LIST_INIT(ocean_fishing_chance_list, list(FISHING_RARE = 5, FISHING_UNCOMMON = 20, FISHING_COMMON = 30, FISHING_JUNK = 40, FISHING_NOTHING = 5)) // the ocean is teeming with life... and junk +GLOBAL_LIST_INIT(ocean_fishing_rare_list, list( + /mob/living/simple_mob/animal/passive/fish/solarfish = 1, + /mob/living/simple_mob/animal/passive/fish/measelshark = 10 + )) + +GLOBAL_LIST_INIT(ocean_fishing_uncommon_list, list( + /mob/living/simple_mob/animal/passive/crab/sif = 1, + /obj/item/weapon/reagent_containers/food/snacks/sliceable/monkfish = 10 + )) + +GLOBAL_LIST_INIT(ocean_fishing_common_list, list( + /mob/living/simple_mob/animal/passive/fish/rockfish = 5, + /mob/living/simple_mob/animal/passive/crab = 1, + /obj/item/weapon/reagent_containers/food/snacks/cuttlefish = 10, + /obj/item/weapon/reagent_containers/food/snacks/lobster = 8 + )) + +/turf/simulated/floor/water/ocean + min_fishing_time = 30 + max_fishing_time = 90 + +/turf/simulated/floor/water/ocean/handle_fish() + if(has_fish) + rare_fish_list = GLOB.ocean_fishing_rare_list + uncommon_fish_list = GLOB.ocean_fishing_uncommon_list + common_fish_list = GLOB.ocean_fishing_common_list + junk_list = GLOB.generic_fishing_junk_list + fishing_loot = GLOB.ocean_fishing_chance_list + +/turf/simulated/floor/water/deep/ocean + min_fishing_time = 20 + max_fishing_time = 80 + +/turf/simulated/floor/water/deep/ocean/handle_fish() + if(has_fish) + rare_fish_list = GLOB.ocean_fishing_rare_list + uncommon_fish_list = GLOB.ocean_fishing_uncommon_list + common_fish_list = GLOB.ocean_fishing_common_list + junk_list = GLOB.generic_fishing_junk_list + fishing_loot = GLOB.ocean_fishing_chance_list + + #undef FISHING_RARE #undef FISHING_UNCOMMON diff --git a/code/modules/food/food/snacks_vr.dm b/code/modules/food/food/snacks_vr.dm index 91b769696d2..5907ff9d862 100644 --- a/code/modules/food/food/snacks_vr.dm +++ b/code/modules/food/food/snacks_vr.dm @@ -384,6 +384,76 @@ bitesize = 0.01 //impossible to eat reagents.add_reagent("carbon", 5) +/obj/item/weapon/reagent_containers/food/snacks/sliceable/sharkchunk + name = "chunk of shark meat" + desc = "still rough, needs to be cut into even smaller chunks." + icon = 'icons/obj/food_vr.dmi' + icon_state = "sharkmeat_chunk" + nutriment_amt = 15 + w_class = ITEMSIZE_LARGE + slice_path = /obj/item/weapon/reagent_containers/food/snacks/sharkmeat + slices_num = 5 + +/obj/item/weapon/reagent_containers/food/snacks/sliceable/sharkchunk/Initialize() + ..() + bitesize = 3 + reagents.add_reagent("protein", 20) + +/obj/item/weapon/reagent_containers/food/snacks/sharkmeat + name = "a slice of sharkmeat" + desc = "now it's small enough to cook with." + icon = 'icons/obj/food_vr.dmi' + icon_state = "sharkmeat" + nutriment_amt = 2 + +/obj/item/weapon/reagent_containers/food/snacks/sharkmeat/Initialize() + ..() + bitesize = 3 + reagents.add_reagent("protein", 2) + +/obj/item/weapon/reagent_containers/food/snacks/sharkmeatcooked + name = "shark steak" + desc = "finally, some food for real men." + icon = 'icons/obj/food_vr.dmi' + icon_state = "sharkmeat_cooked" + nutriment_amt = 5 + trash = /obj/item/trash/plate + nutriment_desc = list("manliness" = 1, "fish oil" = 2, "shark" = 2) + +/obj/item/weapon/reagent_containers/food/snacks/sharkmeatcooked/Initialize() + ..() + bitesize = 3 + reagents.add_reagent("protein", 8) + +/obj/item/weapon/reagent_containers/food/snacks/sharkmeatdip + name = "hot shark shank" + desc = "a shank of shark meat dipped in hot sauce." + icon = 'icons/obj/food_vr.dmi' + icon_state = "sharkmeat_dip" + nutriment_amt = 5 + trash = /obj/item/trash/snack_bowl + nutriment_desc = list("salt" = 1, "fish oil" = 2, "spicy shark" = 2) + +/obj/item/weapon/reagent_containers/food/snacks/sharkmeatdip/Initialize() + ..() + bitesize = 3 + reagents.add_reagent("capsaicin", 4) + reagents.add_reagent("protein", 4) + +/obj/item/weapon/reagent_containers/food/snacks/sharkmeatcubes + name = "shark cubes" + desc = "foul scented fermented shark cubes, it's said to make men fly, or just make them really fat." + icon = 'icons/obj/food_vr.dmi' + icon_state = "sharkmeat_cubes" + nutriment_amt = 8 + trash = /obj/item/trash/plate + nutriment_desc = list("viking spirit" = 1, "rot" = 2, "fermented sauce" = 2) + +/obj/item/weapon/reagent_containers/food/snacks/sharkmeatcubes/Initialize() + ..() + bitesize = 10 + reagents.add_reagent("potatojuice", 30) // for people who want to get fat, FAST. + /obj/item/weapon/reagent_containers/food/snacks/monkeycube/sobakacube name = "sobaka cube" monkey_type = "Sobaka" diff --git a/code/modules/food/recipes_microwave_vr.dm b/code/modules/food/recipes_microwave_vr.dm index 3cc33a96bec..49814bee9f7 100644 --- a/code/modules/food/recipes_microwave_vr.dm +++ b/code/modules/food/recipes_microwave_vr.dm @@ -173,6 +173,29 @@ ) result = /obj/item/weapon/reagent_containers/food/snacks/monkfishcooked +/datum/recipe/sharksteak + reagents = list("blackpepper"= 1, "sodiumchloride" = 1) + items = list( + /obj/item/weapon/reagent_containers/food/snacks/sharkmeat + ) + result = /obj/item/weapon/reagent_containers/food/snacks/sharkmeatcooked + +/datum/recipe/sharkdip + reagents = list("sodiumchloride" = 1) + fruit = list("chili" = 1) + items = list( + /obj/item/weapon/reagent_containers/food/snacks/sharkmeat + ) + result = /obj/item/weapon/reagent_containers/food/snacks/sharkmeatdip + +/datum/recipe/sharkcubes + reagents = list("soysauce" = 5, "sodiumchloride" = 1) + fruit = list("potato" = 1) + items = list( + /obj/item/weapon/reagent_containers/food/snacks/sharkmeat + ) + result = /obj/item/weapon/reagent_containers/food/snacks/sharkmeatcubes + /datum/recipe/margheritapizzacargo reagents = list() items = list( diff --git a/code/modules/mob/living/simple_mob/subtypes/animal/passive/fish_vr.dm b/code/modules/mob/living/simple_mob/subtypes/animal/passive/fish_vr.dm index 186decf67ed..c1cef3831ae 100644 --- a/code/modules/mob/living/simple_mob/subtypes/animal/passive/fish_vr.dm +++ b/code/modules/mob/living/simple_mob/subtypes/animal/passive/fish_vr.dm @@ -57,4 +57,19 @@ return 0 M.reagents.add_reagent("toxin", 2) M.reagents.add_reagent("impedrezene", 1) - return 1 \ No newline at end of file + return 1 + +/mob/living/simple_mob/animal/passive/fish/measelshark + name = "Measel Shark" + tt_desc = "Spot Pistris" + desc = "An evil measel shark that refuses to get vaccinated, causing other fish to get fish measels." + icon = 'icons/mob/shark.dmi' + icon_state = "measelshark" + icon_living = "measelshark" + icon_dead = "measelshark-dead" + meat_amount = 6 //Big fish, tons of meat. Great for feasts. + meat_type = /obj/item/weapon/reagent_containers/food/snacks/sliceable/sharkchunk + vore_bump_chance = 100 + vore_default_mode = DM_HOLD //docile shark + vore_capacity = 5 + pixel_x = -50 \ No newline at end of file diff --git a/icons/mob/shark.dmi b/icons/mob/shark.dmi new file mode 100644 index 0000000000000000000000000000000000000000..16a3f3358061fe23c9c46b568f6004a6f35f164a GIT binary patch literal 3075 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 Jd(-~Oe*oMcBtHNE literal 0 HcmV?d00001 diff --git a/icons/obj/food_vr.dmi b/icons/obj/food_vr.dmi index ea92af449332b07474d74598750d03f8f383ace4..f4b35ebb2ce3b9bb671ebd7eea9f6d2fedc484f0 100644 GIT binary patch literal 24758 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 R{QFx1RV6LO>Q`0~{{sOGlMDa= literal 22373 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 J Date: Sun, 22 Dec 2019 13:21:20 -0500 Subject: [PATCH 12/65] Juice no longer affects Unathi --- .../Chemistry-Reagents/Chemistry-Reagents-Food-Drinks.dm | 2 ++ 1 file changed, 2 insertions(+) diff --git a/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Food-Drinks.dm b/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Food-Drinks.dm index b077dd52c16..e916363d511 100644 --- a/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Food-Drinks.dm +++ b/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Food-Drinks.dm @@ -730,6 +730,7 @@ if(issmall(M)) effective_dose *= 2 +/* //VOREStation Removal - Assuming all juice has sugar is silly if(alien == IS_UNATHI) if(effective_dose < 2) if(effective_dose == metabolism * 2 || prob(5)) @@ -743,6 +744,7 @@ else M.sleeping = max(M.sleeping, 20) M.drowsyness = max(M.drowsyness, 60) +*/ /datum/reagent/drink/juice/lemon name = "Lemon Juice" From 1eab2a9461b0952e74e1726c5182b209cbb549e1 Mon Sep 17 00:00:00 2001 From: Unknown Date: Sun, 22 Dec 2019 13:44:45 -0500 Subject: [PATCH 13/65] Adds Jetpacks to exploration --- maps/tether/tether-06-station2.dmm | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/maps/tether/tether-06-station2.dmm b/maps/tether/tether-06-station2.dmm index e052f8ae0f2..ddc948de6ee 100644 --- a/maps/tether/tether-06-station2.dmm +++ b/maps/tether/tether-06-station2.dmm @@ -7211,6 +7211,7 @@ /obj/item/clothing/mask/breath, /obj/item/clothing/head/helmet/space/void/exploration, /obj/machinery/atmospherics/unary/vent_pump/on, +/obj/item/weapon/tank/jetpack/carbondioxide, /turf/simulated/floor/tiled, /area/tether/exploration/equipment) "kE" = ( @@ -7241,6 +7242,7 @@ pixel_x = 0; pixel_y = 26 }, +/obj/item/weapon/tank/jetpack/carbondioxide, /turf/simulated/floor/tiled, /area/tether/exploration/equipment) "kF" = ( @@ -7398,6 +7400,7 @@ pixel_x = 0; pixel_y = 26 }, +/obj/item/weapon/tank/jetpack/carbondioxide, /turf/simulated/floor/tiled, /area/tether/exploration/equipment) "kS" = ( @@ -8574,6 +8577,7 @@ /obj/item/clothing/suit/space/void/exploration, /obj/item/clothing/mask/breath, /obj/item/clothing/head/helmet/space/void/exploration, +/obj/item/weapon/tank/jetpack/carbondioxide, /turf/simulated/floor/tiled, /area/tether/exploration/pathfinder_office) "mA" = ( From e6021d108d97b305c98648b715fc4f20566edeb5 Mon Sep 17 00:00:00 2001 From: Ketrai Date: Sun, 22 Dec 2019 21:15:29 +0100 Subject: [PATCH 14/65] makes glasses mass producable --- code/datums/autolathe/general_vr.dm | 29 ++++++++++++++++++++++++++ maps/tether/tether-03-surface3.dmm | 32 +++++++++++++++++++++++++++++ 2 files changed, 61 insertions(+) diff --git a/code/datums/autolathe/general_vr.dm b/code/datums/autolathe/general_vr.dm index 0d4a58fd963..5c90909f553 100644 --- a/code/datums/autolathe/general_vr.dm +++ b/code/datums/autolathe/general_vr.dm @@ -1,3 +1,32 @@ /datum/category_item/autolathe/general/holocollar name = "Holo-collar" path =/obj/item/clothing/accessory/collar/holo + +/datum/category_item/autolathe/general/drinkingglass_square + is_stack = TRUE + +/datum/category_item/autolathe/general/drinkingglass_rocks + is_stack = TRUE + +/datum/category_item/autolathe/general/drinkingglass_shake + is_stack = TRUE + +/datum/category_item/autolathe/general/drinkingglass_cocktail + is_stack = TRUE + +/datum/category_item/autolathe/general/drinkingglass_shot + is_stack = TRUE + +/datum/category_item/autolathe/general/drinkingglass_pint + is_stack = TRUE + +/datum/category_item/autolathe/general/drinkingglass_mug + is_stack = TRUE + +/datum/category_item/autolathe/general/drinkingglass_wine + is_stack = TRUE + +/datum/category_item/autolathe/general/metaglass + name = "metamorphic glass" + path =/obj/item/weapon/reagent_containers/food/drinks/metaglass + is_stack = TRUE \ No newline at end of file diff --git a/maps/tether/tether-03-surface3.dmm b/maps/tether/tether-03-surface3.dmm index 612d839280b..bf21ffb220a 100644 --- a/maps/tether/tether-03-surface3.dmm +++ b/maps/tether/tether-03-surface3.dmm @@ -23345,6 +23345,38 @@ dir = 1; pixel_y = -24 }, +/obj/item/weapon/reagent_containers/food/drinks/metaglass{ + step_x = 0; + step_y = 0 + }, +/obj/item/weapon/reagent_containers/food/drinks/metaglass{ + step_x = 0; + step_y = 0 + }, +/obj/item/weapon/reagent_containers/food/drinks/metaglass{ + step_x = 0; + step_y = 0 + }, +/obj/item/weapon/reagent_containers/food/drinks/metaglass{ + step_x = 0; + step_y = 0 + }, +/obj/item/weapon/reagent_containers/food/drinks/metaglass{ + step_x = 0; + step_y = 0 + }, +/obj/item/weapon/reagent_containers/food/drinks/metaglass{ + step_x = 0; + step_y = 0 + }, +/obj/item/weapon/reagent_containers/food/drinks/metaglass{ + step_x = 0; + step_y = 0 + }, +/obj/item/weapon/reagent_containers/food/drinks/metaglass{ + step_x = 0; + step_y = 0 + }, /turf/simulated/floor/wood, /area/tether/surfacebase/bar_backroom) "aLF" = ( From 61ca61eb7abbb3af139bd7f0ac628223a608f751 Mon Sep 17 00:00:00 2001 From: Ketrai Date: Sun, 22 Dec 2019 21:46:45 +0100 Subject: [PATCH 15/65] fixes some byond magic fuckery --- maps/tether/tether-03-surface3.dmm | 16 ---------------- 1 file changed, 16 deletions(-) diff --git a/maps/tether/tether-03-surface3.dmm b/maps/tether/tether-03-surface3.dmm index bf21ffb220a..d68475f787f 100644 --- a/maps/tether/tether-03-surface3.dmm +++ b/maps/tether/tether-03-surface3.dmm @@ -23346,36 +23346,20 @@ pixel_y = -24 }, /obj/item/weapon/reagent_containers/food/drinks/metaglass{ - step_x = 0; - step_y = 0 }, /obj/item/weapon/reagent_containers/food/drinks/metaglass{ - step_x = 0; - step_y = 0 }, /obj/item/weapon/reagent_containers/food/drinks/metaglass{ - step_x = 0; - step_y = 0 }, /obj/item/weapon/reagent_containers/food/drinks/metaglass{ - step_x = 0; - step_y = 0 }, /obj/item/weapon/reagent_containers/food/drinks/metaglass{ - step_x = 0; - step_y = 0 }, /obj/item/weapon/reagent_containers/food/drinks/metaglass{ - step_x = 0; - step_y = 0 }, /obj/item/weapon/reagent_containers/food/drinks/metaglass{ - step_x = 0; - step_y = 0 }, /obj/item/weapon/reagent_containers/food/drinks/metaglass{ - step_x = 0; - step_y = 0 }, /turf/simulated/floor/wood, /area/tether/surfacebase/bar_backroom) From 15c1c45b342cffb0ed386de90cb53ed32567e136 Mon Sep 17 00:00:00 2001 From: Ketrai Date: Mon, 23 Dec 2019 17:57:13 +0100 Subject: [PATCH 16/65] Makes it so you can use sharkmeat for fish-dishes --- code/modules/food/food/snacks_vr.dm | 3 ++- code/modules/food/recipes_microwave_vr.dm | 6 +++--- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/code/modules/food/food/snacks_vr.dm b/code/modules/food/food/snacks_vr.dm index 5907ff9d862..6d72e3cebf7 100644 --- a/code/modules/food/food/snacks_vr.dm +++ b/code/modules/food/food/snacks_vr.dm @@ -399,12 +399,13 @@ bitesize = 3 reagents.add_reagent("protein", 20) -/obj/item/weapon/reagent_containers/food/snacks/sharkmeat +/obj/item/weapon/reagent_containers/food/snacks/carpmeat/fish/sharkmeat name = "a slice of sharkmeat" desc = "now it's small enough to cook with." icon = 'icons/obj/food_vr.dmi' icon_state = "sharkmeat" nutriment_amt = 2 + toxin_amount = null /obj/item/weapon/reagent_containers/food/snacks/sharkmeat/Initialize() ..() diff --git a/code/modules/food/recipes_microwave_vr.dm b/code/modules/food/recipes_microwave_vr.dm index 49814bee9f7..09c63ae3928 100644 --- a/code/modules/food/recipes_microwave_vr.dm +++ b/code/modules/food/recipes_microwave_vr.dm @@ -176,7 +176,7 @@ /datum/recipe/sharksteak reagents = list("blackpepper"= 1, "sodiumchloride" = 1) items = list( - /obj/item/weapon/reagent_containers/food/snacks/sharkmeat + /obj/item/weapon/reagent_containers/food/snacks/carpmeat/fish/sharkmeat ) result = /obj/item/weapon/reagent_containers/food/snacks/sharkmeatcooked @@ -184,7 +184,7 @@ reagents = list("sodiumchloride" = 1) fruit = list("chili" = 1) items = list( - /obj/item/weapon/reagent_containers/food/snacks/sharkmeat + /obj/item/weapon/reagent_containers/food/snacks/carpmeat/fish/sharkmeat ) result = /obj/item/weapon/reagent_containers/food/snacks/sharkmeatdip @@ -192,7 +192,7 @@ reagents = list("soysauce" = 5, "sodiumchloride" = 1) fruit = list("potato" = 1) items = list( - /obj/item/weapon/reagent_containers/food/snacks/sharkmeat + /obj/item/weapon/reagent_containers/food/snacks/carpmeat/fish/sharkmeat ) result = /obj/item/weapon/reagent_containers/food/snacks/sharkmeatcubes From 63f2fc0f20a34f141ad1f80846090b41c0e459ec Mon Sep 17 00:00:00 2001 From: Unknown Date: Wed, 25 Dec 2019 13:54:31 -0500 Subject: [PATCH 17/65] Repurposing FTW --- code/game/verbs/who.dm | 56 ++++++++++++++++++------- code/modules/admin/admin_secrets.dm | 8 ++-- code/modules/admin/admin_verbs.dm | 49 +++------------------- code/modules/admin/topic.dm | 12 +++--- code/modules/admin/verbs/adminsay.dm | 6 +-- code/modules/admin/verbs/randomverbs.dm | 14 +++---- 6 files changed, 65 insertions(+), 80 deletions(-) diff --git a/code/game/verbs/who.dm b/code/game/verbs/who.dm index a8100038a82..b30d73e421d 100644 --- a/code/game/verbs/who.dm +++ b/code/game/verbs/who.dm @@ -77,7 +77,7 @@ var/num_event_managers_online = 0 if(holder) for(var/client/C in admins) - if(R_ADMIN & C.holder.rights || (!R_MOD & C.holder.rights && !R_EVENT & C.holder.rights)) //Used to determine who shows up in admin rows + if(R_ADMIN & C.holder.rights && R_BAN & C.holder.rights) //VOREStation Edit if(C.holder.fakekey && (!R_ADMIN & holder.rights && !R_MOD & holder.rights)) //Event Managerss can't see stealthmins continue @@ -102,9 +102,16 @@ msg += "\n" num_admins_online++ - else if(R_MOD & C.holder.rights) //Who shows up in mod rows. + else if(R_ADMIN & C.holder.rights && !(R_SERVER & C.holder.rights)) //VOREStation Edit modmsg += "\t[C] is a [C.holder.rank]" + //VOREStation Addition Start + if(C.holder.fakekey && (!R_ADMIN & holder.rights && !R_MOD & holder.rights)) + continue + if(C.holder.fakekey) + msg += " (as [C.holder.fakekey])" + //VOREStation Addition End + if(isobserver(C.mob)) modmsg += " - Observing" else if(istype(C.mob,/mob/new_player)) @@ -120,8 +127,14 @@ modmsg += "\n" num_mods_online++ - else if(R_SERVER & C.holder.rights) + else if(R_SERVER & C.holder.rights) //VOREStation Edit + //VOREStation Edit Start - Adds Stealthmin support + if(C.holder.fakekey && (!R_ADMIN & holder.rights && !R_MOD & holder.rights)) + continue devmsg += "\t[C] is a [C.holder.rank]" + if(C.holder.fakekey) + devmsg += " (as [C.holder.fakekey])" + //VOREStation Edit End if(isobserver(C.mob)) devmsg += " - Observing" else if(istype(C.mob,/mob/new_player)) @@ -137,8 +150,14 @@ devmsg += "\n" num_devs_online++ - else if(R_EVENT & C.holder.rights) + else //VOREStation Edit + //VOREStation Edit Start - Adds Stealthmin support + if(C.holder.fakekey && (!R_ADMIN & holder.rights && !R_MOD & holder.rights)) + continue eventMmsg += "\t[C] is a [C.holder.rank]" + if(C.holder.fakekey) + eventMmsg += " (as [C.holder.fakekey])" + //VOREStation Edit End if(isobserver(C.mob)) eventMmsg += " - Observing" else if(istype(C.mob,/mob/new_player)) @@ -156,31 +175,36 @@ else for(var/client/C in admins) - if(R_ADMIN & C.holder.rights || (!R_MOD & C.holder.rights && !R_EVENT & C.holder.rights)) + if(R_ADMIN & C.holder.rights && R_BAN & C.holder.rights) //VOREStation Edit if(!C.holder.fakekey) msg += "\t[C] is a [C.holder.rank]\n" num_admins_online++ - else if (R_MOD & C.holder.rights) - modmsg += "\t[C] is a [C.holder.rank]\n" - num_mods_online++ - else if (R_SERVER & C.holder.rights) - devmsg += "\t[C] is a [C.holder.rank]\n" - num_devs_online++ - else if (R_EVENT & C.holder.rights) - eventMmsg += "\t[C] is a [C.holder.rank]\n" - num_event_managers_online++ + //VOREStation Block Edit Start + else if(R_ADMIN & C.holder.rights && !(R_SERVER & C.holder.rights)) + if(!C.holder.fakekey) + modmsg += "\t[C] is a [C.holder.rank]\n" + num_mods_online++ + else if(R_SERVER & C.holder.rights) + if(!C.holder.fakekey) + devmsg += "\t[C] is a [C.holder.rank]\n" + num_devs_online++ + else + if(!C.holder.fakekey) + eventMmsg += "\t[C] is a [C.holder.rank]\n" + num_event_managers_online++ + //VOREStation Block Edit End if(config.admin_irc) to_chat(src, "Adminhelps are also sent to IRC. If no admins are available in game try anyway and an admin on IRC may see it and respond.") msg = "Current Admins ([num_admins_online]):\n" + msg if(config.show_mods) - msg += "\n Current Moderators ([num_mods_online]):\n" + modmsg + msg += "\n Current Game Masters ([num_mods_online]):\n" + modmsg //VOREStation Edit if(config.show_devs) msg += "\n Current Developers ([num_devs_online]):\n" + devmsg if(config.show_event_managers) - msg += "\n Current Event Managers ([num_event_managers_online]):\n" + eventMmsg + msg += "\n Current Miscellaneous ([num_event_managers_online]):\n" + eventMmsg //VOREStation Edit src << msg diff --git a/code/modules/admin/admin_secrets.dm b/code/modules/admin/admin_secrets.dm index 5f04582acea..a0e5e248045 100644 --- a/code/modules/admin/admin_secrets.dm +++ b/code/modules/admin/admin_secrets.dm @@ -99,18 +99,18 @@ var/datum/admin_secrets/admin_secrets = new() /datum/admin_secret_item/admin_secret category = /datum/admin_secret_category/admin_secrets log = 0 - permissions = R_ADMIN|R_EVENT + permissions = R_ADMIN //VOREStation Edit /datum/admin_secret_item/random_event category = /datum/admin_secret_category/random_events - permissions = R_FUN|R_EVENT + permissions = R_FUN //VOREStation Edit warn_before_use = 1 /datum/admin_secret_item/fun_secret category = /datum/admin_secret_category/fun_secrets - permissions = R_FUN|R_EVENT + permissions = R_FUN //VOREStation Edit warn_before_use = 1 /datum/admin_secret_item/final_solution category = /datum/admin_secret_category/final_solutions - permissions = R_FUN|R_SERVER|R_ADMIN|R_EVENT + permissions = R_FUN|R_SERVER|R_ADMIN //VOREStation Edit diff --git a/code/modules/admin/admin_verbs.dm b/code/modules/admin/admin_verbs.dm index cb111adc9c9..331eb87873c 100644 --- a/code/modules/admin/admin_verbs.dm +++ b/code/modules/admin/admin_verbs.dm @@ -358,52 +358,13 @@ var/list/admin_verbs_mod = list( /datum/admins/proc/view_atk_log //shows the server combat-log, doesn't do anything presently, ) +//VOREStation Edit Start - Highly Modified List var/list/admin_verbs_event_manager = list( - /client/proc/cmd_event_say, - /client/proc/cmd_admin_pm_context, - /client/proc/cmd_admin_pm_panel, - /datum/admins/proc/PlayerNotes, - /client/proc/admin_ghost, - /datum/admins/proc/show_player_info, - /client/proc/dsay, - /client/proc/cmd_admin_subtle_message, - /client/proc/debug_variables, - /client/proc/check_antagonists, - /client/proc/aooc, - /datum/admins/proc/paralyze_mob, - /client/proc/cmd_admin_direct_narrate, - /client/proc/allow_character_respawn, - /datum/admins/proc/sendFax, - /client/proc/respawn_character, - /proc/possess, - /proc/release, - /client/proc/callproc, - /client/proc/callproc_datum, - /client/proc/debug_controller, - /client/proc/show_gm_status, - /datum/admins/proc/change_weather, - /datum/admins/proc/change_time, - /client/proc/admin_give_modifier, - /client/proc/Jump, - /client/proc/jumptomob, - /client/proc/jumptocoord, - /client/proc/cmd_admin_delete, - /datum/admins/proc/delay, - /client/proc/Set_Holiday, - /client/proc/make_sound, - /client/proc/toggle_random_events, - /datum/admins/proc/cmd_admin_dress, - /client/proc/cmd_admin_gib_self, - /client/proc/drop_bomb, - /client/proc/cmd_admin_add_freeform_ai_law, - /client/proc/cmd_admin_add_random_ai_law, - /client/proc/make_sound, - /client/proc/toggle_random_events, - /client/proc/editappear, - /client/proc/roll_dices, - /datum/admins/proc/call_supply_drop, - /datum/admins/proc/call_drop_pod + /client/proc/cmd_admin_say, //admin-only ooc chat, + /client/proc/cmd_mod_say, + /client/proc/cmd_event_say ) +//VOREStation Edit End /client/proc/add_admin_verbs() if(holder) diff --git a/code/modules/admin/topic.dm b/code/modules/admin/topic.dm index 284db26a7fe..63959aed867 100644 --- a/code/modules/admin/topic.dm +++ b/code/modules/admin/topic.dm @@ -251,7 +251,7 @@ href_list["secretsadmin"] = "check_antagonist" else if(href_list["delay_round_end"]) - if(!check_rights(R_SERVER|R_EVENT)) return + if(!check_rights(R_SERVER)) return //VOREStation Edit ticker.delay_end = !ticker.delay_end log_admin("[key_name(usr)] [ticker.delay_end ? "delayed the round end" : "has made the round end normally"].") @@ -1238,7 +1238,7 @@ show_player_panel(M) else if(href_list["adminplayerobservejump"]) - if(!check_rights(R_EVENT|R_MOD|R_ADMIN|R_SERVER|R_EVENT)) return + if(!check_rights(R_MOD|R_ADMIN|R_SERVER)) return //VOREStation Edit var/mob/M = locate(href_list["adminplayerobservejump"]) @@ -1248,7 +1248,7 @@ C.jumptomob(M) else if(href_list["adminplayerobservefollow"]) - if(!check_rights(R_EVENT|R_MOD|R_ADMIN|R_SERVER|R_EVENT)) + if(!check_rights(R_MOD|R_ADMIN|R_SERVER)) //VOREStation Edit return var/mob/M = locate(href_list["adminplayerobservefollow"]) @@ -1268,7 +1268,7 @@ if(ismob(M)) var/take_msg = "ADMINHELP: [key_name(usr.client)] is attending to [key_name(M)]'s adminhelp, please don't dogpile them." for(var/client/X in admins) - if((R_ADMIN|R_MOD|R_EVENT|R_SERVER) & X.holder.rights) + if((R_ADMIN|R_MOD|R_SERVER) & X.holder.rights) //VOREStation Edit to_chat(X, take_msg) to_chat(M, "Your adminhelp is being attended to by [usr.client]. Thanks for your patience!") // VoreStation Edit Start @@ -1284,7 +1284,7 @@ to_chat(usr, "Unable to locate mob.") else if(href_list["adminplayerobservecoodjump"]) - if(!check_rights(R_ADMIN|R_SERVER|R_MOD|R_EVENT)) return + if(!check_rights(R_ADMIN|R_SERVER|R_MOD)) return //VOREStation Edit var/x = text2num(href_list["X"]) var/y = text2num(href_list["Y"]) @@ -1876,7 +1876,7 @@ vsc.SetDefault(usr) else if(href_list["toglang"]) - if(check_rights(R_SPAWN|R_EVENT)) + if(check_rights(R_SPAWN)) //VOREStation Edit var/mob/M = locate(href_list["toglang"]) if(!istype(M)) usr << "[M] is illegal type, must be /mob!" diff --git a/code/modules/admin/verbs/adminsay.dm b/code/modules/admin/verbs/adminsay.dm index d425e60f579..200a742b8cd 100644 --- a/code/modules/admin/verbs/adminsay.dm +++ b/code/modules/admin/verbs/adminsay.dm @@ -11,9 +11,9 @@ log_adminsay(msg,src) - //VOREStation Edit Start - Adds R_STEALTH + //VOREStation Edit Start - Adds R_EVENT for(var/client/C in admins) - if(check_rights(R_ADMIN|R_STEALTH)) + if(check_rights(R_ADMIN|R_EVENT)) C << "" + create_text_tag("admin", "ADMIN:", C) + " [key_name(usr, 1)]([admin_jump_link(mob, src)]): [msg]" //VOREStation Edit End @@ -24,7 +24,7 @@ set name = "Msay" set hidden = 1 - if(!check_rights(R_ADMIN|R_MOD|R_SERVER|R_STEALTH)) //VOREStation Edit + if(!check_rights(R_ADMIN|R_MOD|R_SERVER|R_EVENT)) //VOREStation Edit return msg = sanitize(msg) diff --git a/code/modules/admin/verbs/randomverbs.dm b/code/modules/admin/verbs/randomverbs.dm index 1a3fbfe76f5..3367b988529 100644 --- a/code/modules/admin/verbs/randomverbs.dm +++ b/code/modules/admin/verbs/randomverbs.dm @@ -615,7 +615,7 @@ Traitors and the like can also be revived with the previous role mostly intact. set category = "Special Verbs" set name = "Explosion" - if(!check_rights(R_DEBUG|R_FUN|R_EVENT)) return + if(!check_rights(R_DEBUG|R_FUN)) return //VOREStation Edit var/devastation = input("Range of total devastation. -1 to none", text("Input")) as num|null if(devastation == null) return @@ -643,7 +643,7 @@ Traitors and the like can also be revived with the previous role mostly intact. set category = "Special Verbs" set name = "EM Pulse" - if(!check_rights(R_DEBUG|R_FUN|R_EVENT)) return + if(!check_rights(R_DEBUG|R_FUN)) return //VOREStation Edit var/heavy = input("Range of heavy pulse.", text("Input")) as num|null if(heavy == null) return @@ -669,7 +669,7 @@ Traitors and the like can also be revived with the previous role mostly intact. set category = "Special Verbs" set name = "Gib" - if(!check_rights(R_ADMIN|R_FUN|R_EVENT)) return + if(!check_rights(R_ADMIN|R_FUN)) return //VOREStation Edit var/confirm = alert(src, "You sure?", "Confirm", "Yes", "No") if(confirm != "Yes") return @@ -826,7 +826,7 @@ Traitors and the like can also be revived with the previous role mostly intact. if ((!( ticker ) || !emergency_shuttle.location())) return - if(!check_rights(R_ADMIN|R_EVENT)) return + if(!check_rights(R_ADMIN)) return //VOREStation Edit var/confirm = alert(src, "You sure?", "Confirm", "Yes", "No") if(confirm != "Yes") return @@ -855,7 +855,7 @@ Traitors and the like can also be revived with the previous role mostly intact. set category = "Admin" set name = "Cancel Shuttle" - if(!check_rights(R_ADMIN|R_EVENT)) return + if(!check_rights(R_ADMIN)) return //VOREStation Edit if(alert(src, "You sure?", "Confirm", "Yes", "No") != "Yes") return @@ -876,7 +876,7 @@ Traitors and the like can also be revived with the previous role mostly intact. if (!ticker) return - if(!check_rights(R_ADMIN|R_EVENT)) return + if(!check_rights(R_ADMIN)) return //VOREStation Edit emergency_shuttle.deny_shuttle = !emergency_shuttle.deny_shuttle @@ -932,7 +932,7 @@ Traitors and the like can also be revived with the previous role mostly intact. set name = "Toggle random events on/off" set desc = "Toggles random events such as meteors, black holes, blob (but not space dust) on/off" - if(!check_rights(R_SERVER|R_EVENT)) return + if(!check_rights(R_SERVER)) return //VOREStation Edit if(!config.allow_random_events) config.allow_random_events = 1 From dced9171d9514f8f077ea8738707fa65cd75dc37 Mon Sep 17 00:00:00 2001 From: Unknown Date: Wed, 25 Dec 2019 14:00:18 -0500 Subject: [PATCH 18/65] mow --- code/game/verbs/ooc.dm | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/code/game/verbs/ooc.dm b/code/game/verbs/ooc.dm index b75de6685e6..0c7596ed847 100644 --- a/code/game/verbs/ooc.dm +++ b/code/game/verbs/ooc.dm @@ -48,14 +48,16 @@ var/ooc_style = "everyone" if(holder && !holder.fakekey) ooc_style = "elevated" - if(holder.rights & R_EVENT) + //VOREStation Block Edit Start + if(holder.rights & R_EVENT) //Retired Admins ooc_style = "event_manager" - if(holder.rights & R_MOD) + if(holder.rights & R_ADMIN && !(holder.rights & R_BAN)) //Game Masters ooc_style = "moderator" - if(holder.rights & R_DEBUG) + if(holder.rights & R_SERVER && !(holder.rights & R_BAN)) //Developers ooc_style = "developer" - if(holder.rights & R_ADMIN) + if(holder.rights & R_ADMIN && holder.rights & R_BAN) //Admins ooc_style = "admin" + //VOREStation Block Edit End for(var/client/target in GLOB.clients) if(target.is_preference_enabled(/datum/client_preference/show_ooc)) From ae398259eaefb2588fae915dbd1b7676e988b5fb Mon Sep 17 00:00:00 2001 From: lbnesquik Date: Wed, 25 Dec 2019 20:40:21 +0100 Subject: [PATCH 19/65] Introduce more taur clothes. - Add medieval style barding for centaurs. - Add full body options for wolf taurs. (Fat sprites slightly break this) - Cloak for Drakes - Botany Apron should work for the majority of taurs and not weirdly cut at the middle. - WIP lance --- code/game/machinery/vending_vr.dm | 1176 ++++++++++++++++- .../items/weapons/material/twohanded.dm | 15 + code/modules/clothing/suits/miscellaneous.dm | 12 + .../clothing/suits/miscellaneous_vr.dm | 70 + .../appearance/sprite_accessories_taur_vr.dm | 6 + icons/mob/items/lefthand_material.dmi | Bin 18757 -> 19407 bytes icons/mob/items/lefthand_vr.dmi | Bin 707 -> 924 bytes icons/mob/items/righthand_material.dmi | Bin 18923 -> 19296 bytes icons/mob/items/righthand_vr.dmi | Bin 694 -> 914 bytes icons/mob/taursuits_cow_vr.dmi | Bin 1151 -> 1406 bytes icons/mob/taursuits_drake_vr.dmi | Bin 0 -> 768 bytes icons/mob/taursuits_feline_vr.dmi | Bin 0 -> 432 bytes icons/mob/taursuits_horse_vr.dmi | Bin 61372 -> 65252 bytes icons/mob/taursuits_lizard_vr.dmi | Bin 3495 -> 4194 bytes icons/mob/taursuits_naga_vr.dmi | Bin 83611 -> 84105 bytes icons/mob/taursuits_spider_vr.dmi | Bin 0 -> 419 bytes icons/mob/taursuits_wolf_vr.dmi | Bin 81517 -> 130398 bytes icons/obj/weapons.dmi | Bin 44726 -> 45108 bytes vorestation.dme | 1 + 19 files changed, 1278 insertions(+), 2 deletions(-) create mode 100644 code/modules/clothing/suits/miscellaneous_vr.dm create mode 100644 icons/mob/taursuits_drake_vr.dmi create mode 100644 icons/mob/taursuits_feline_vr.dmi create mode 100644 icons/mob/taursuits_spider_vr.dmi diff --git a/code/game/machinery/vending_vr.dm b/code/game/machinery/vending_vr.dm index 0bf7b947146..42275f5aa96 100644 --- a/code/game/machinery/vending_vr.dm +++ b/code/game/machinery/vending_vr.dm @@ -129,7 +129,7 @@ /obj/machinery/vending/fitness/New() products += list(/obj/item/weapon/reagent_containers/food/snacks/liquidprotein = 8) - prices += list(/obj/item/weapon/reagent_containers/food/snacks/liquidprotein = 10) + prices += list(/obj/item/weapon/reagent_containers/food/snacks/liquidprotein = 5) ..() /obj/machinery/vending/blood @@ -145,4 +145,1176 @@ /obj/item/weapon/reagent_containers/blood/empty = 5) contraband = list(/obj/item/weapon/reagent_containers/glass/bottle/stoxin = 2) req_log_access = access_cmo - has_logs = 1 \ No newline at end of file + has_logs = 1 + +/obj/machinery/vending/loadout + name = "Fingers and Toes" + desc = "A special vendor for gloves and shoes!" + product_ads = "Do you have fingers and toes? COVER THEM UP!;Show me your toes! Wait. NO DON'T! BUY NEW SHOES!;Don't leave prints, BUY SOME GLOVES!;Remember to check your shoes for micros! You don't have to let them out, but just check for them!;Fingers and Toes is not liable for micro entrapment or abuse under the feet of our patrons.!;This little piggy went WE WE WE all the way down to FINGERS AND TOES to pick up some sweet new gloves and shoes." + icon_state = "glovesnshoes" + products = list(/obj/item/clothing/gloves/evening = 5, + /obj/item/clothing/gloves/fingerless = 5, + /obj/item/clothing/gloves/black = 5, + /obj/item/clothing/gloves/blue = 5, + /obj/item/clothing/gloves/brown = 5, + /obj/item/clothing/gloves/color = 5, + /obj/item/clothing/gloves/green = 5, + /obj/item/clothing/gloves/grey = 5, + /obj/item/clothing/gloves/sterile/latex = 5, + /obj/item/clothing/gloves/light_brown = 5, + /obj/item/clothing/gloves/sterile/nitrile = 5, + /obj/item/clothing/gloves/orange = 5, + /obj/item/clothing/gloves/purple = 5, + /obj/item/clothing/gloves/red = 5, + /obj/item/clothing/gloves/fluff/siren = 5, + /obj/item/clothing/gloves/white = 5, + /obj/item/clothing/gloves/duty = 5, + /obj/item/clothing/shoes/athletic = 5, + /obj/item/clothing/shoes/boots/fluff/siren = 5, + /obj/item/clothing/shoes/slippers = 5, + /obj/item/clothing/shoes/boots/cowboy/classic = 5, + /obj/item/clothing/shoes/boots/cowboy = 5, + /obj/item/clothing/shoes/boots/duty = 5, + /obj/item/clothing/shoes/flats/white/color = 5, + /obj/item/clothing/shoes/flipflop = 5, + /obj/item/clothing/shoes/heels = 5, + /obj/item/clothing/shoes/hitops/black = 5, + /obj/item/clothing/shoes/hitops/blue = 5, + /obj/item/clothing/shoes/hitops/green = 5, + /obj/item/clothing/shoes/hitops/orange = 5, + /obj/item/clothing/shoes/hitops/purple = 5, + /obj/item/clothing/shoes/hitops/red = 5, + /obj/item/clothing/shoes/flats/white/color = 5, + /obj/item/clothing/shoes/hitops/yellow = 5, + /obj/item/clothing/shoes/boots/jackboots = 5, + /obj/item/clothing/shoes/boots/jungle = 5, + /obj/item/clothing/shoes/black/cuffs = 5, + /obj/item/clothing/shoes/black/cuffs/blue = 5, + /obj/item/clothing/shoes/black/cuffs/red = 5, + /obj/item/clothing/shoes/sandal = 5, + /obj/item/clothing/shoes/black = 5, + /obj/item/clothing/shoes/blue = 5, + /obj/item/clothing/shoes/brown = 5, + /obj/item/clothing/shoes/laceup = 5, + /obj/item/clothing/shoes/green = 5, + /obj/item/clothing/shoes/leather = 5, + /obj/item/clothing/shoes/orange = 5, + /obj/item/clothing/shoes/purple = 5, + /obj/item/clothing/shoes/red = 5, + /obj/item/clothing/shoes/white = 5, + /obj/item/clothing/shoes/yellow = 5, + /obj/item/clothing/shoes/skater = 5, + /obj/item/clothing/shoes/boots/cowboy/snakeskin = 5, + /obj/item/clothing/shoes/boots/jackboots/toeless = 5, + /obj/item/clothing/shoes/boots/workboots/toeless = 5, + /obj/item/clothing/shoes/boots/winter = 5, + /obj/item/clothing/shoes/boots/workboots = 5, + /obj/item/clothing/shoes/footwraps = 5) + prices = list(/obj/item/clothing/gloves/evening = 200, + /obj/item/clothing/gloves/fingerless = 200, + /obj/item/clothing/gloves/black = 200, + /obj/item/clothing/gloves/blue = 200, + /obj/item/clothing/gloves/brown = 200, + /obj/item/clothing/gloves/color = 200, + /obj/item/clothing/gloves/green = 200, + /obj/item/clothing/gloves/grey = 200, + /obj/item/clothing/gloves/sterile/latex = 200, + /obj/item/clothing/gloves/light_brown = 200, + /obj/item/clothing/gloves/sterile/nitrile = 200, + /obj/item/clothing/gloves/orange = 200, + /obj/item/clothing/gloves/purple = 200, + /obj/item/clothing/gloves/red = 200, + /obj/item/clothing/gloves/fluff/siren = 200, + /obj/item/clothing/gloves/white = 200, + /obj/item/clothing/gloves/duty = 200, + /obj/item/clothing/shoes/athletic = 100, + /obj/item/clothing/shoes/boots/fluff/siren = 100, + /obj/item/clothing/shoes/slippers = 100, + /obj/item/clothing/shoes/boots/cowboy/classic = 100, + /obj/item/clothing/shoes/boots/cowboy = 100, + /obj/item/clothing/shoes/boots/duty = 200, + /obj/item/clothing/shoes/flats/white/color = 100, + /obj/item/clothing/shoes/flipflop = 100, + /obj/item/clothing/shoes/heels = 100, + /obj/item/clothing/shoes/hitops/black = 100, + /obj/item/clothing/shoes/hitops/blue = 100, + /obj/item/clothing/shoes/hitops/green = 100, + /obj/item/clothing/shoes/hitops/orange = 100, + /obj/item/clothing/shoes/hitops/purple = 100, + /obj/item/clothing/shoes/hitops/red = 100, + /obj/item/clothing/shoes/flats/white/color = 100, + /obj/item/clothing/shoes/hitops/yellow = 100, + /obj/item/clothing/shoes/boots/jackboots = 100, + /obj/item/clothing/shoes/boots/jungle = 200, + /obj/item/clothing/shoes/black/cuffs = 100, + /obj/item/clothing/shoes/black/cuffs/blue = 100, + /obj/item/clothing/shoes/black/cuffs/red = 100, + /obj/item/clothing/shoes/sandal = 100, + /obj/item/clothing/shoes/black = 100, + /obj/item/clothing/shoes/blue = 100, + /obj/item/clothing/shoes/brown = 100, + /obj/item/clothing/shoes/laceup = 100, + /obj/item/clothing/shoes/green = 100, + /obj/item/clothing/shoes/leather = 100, + /obj/item/clothing/shoes/orange = 100, + /obj/item/clothing/shoes/purple = 100, + /obj/item/clothing/shoes/red = 100, + /obj/item/clothing/shoes/white = 100, + /obj/item/clothing/shoes/yellow = 100, + /obj/item/clothing/shoes/skater = 100, + /obj/item/clothing/shoes/boots/cowboy/snakeskin = 100, + /obj/item/clothing/shoes/boots/jackboots/toeless = 100, + /obj/item/clothing/shoes/boots/workboots/toeless = 100, + /obj/item/clothing/shoes/boots/winter = 100, + /obj/item/clothing/shoes/boots/workboots = 100, + /obj/item/clothing/shoes/footwraps = 100) + premium = list(/obj/item/clothing/gloves/rainbow = 1, + /obj/item/clothing/shoes/rainbow = 1,) + contraband = list(/obj/item/clothing/shoes/syndigaloshes = 1, + /obj/item/clothing/shoes/clown_shoes = 1) + +/obj/machinery/vending/loadout/uniform + name = "The Basics" + desc = "A vendor using compressed matter cartridges to store large amounts of basic station uniforms." + product_ads = "Don't get caught naked!;Pick up your uniform!;Using compressed matter cartridges and VERY ETHICAL labor practices, we bring you the uniforms you need!;No uniform? No problem!;We've got your covered!;The Basics is not responsible for being crushed under the amount of things inside our machines. DO NOT VEND IN EXCESS!!" + icon_state = "loadout" + icon_vend = "loadout-purchase" + vend_delay = 16 + products = list(/obj/item/device/pda = 50, + /obj/item/device/radio/headset = 50, + /obj/item/weapon/storage/backpack/ = 10, + /obj/item/weapon/storage/backpack/messenger = 10, + /obj/item/weapon/storage/backpack/satchel = 10, + /obj/item/clothing/under/color = 5, + /obj/item/clothing/under/color/aqua = 5, + /obj/item/clothing/under/color/black = 5, + /obj/item/clothing/under/color/blackjumpskirt = 5, + /obj/item/clothing/under/color/blue = 5, + /obj/item/clothing/under/color/brown = 5, + /obj/item/clothing/under/color/green = 5, + /obj/item/clothing/under/color/grey = 5, + /obj/item/clothing/under/color/orange = 5, + /obj/item/clothing/under/color/pink = 5, + /obj/item/clothing/under/color/red = 5, + /obj/item/clothing/under/color/white = 5, + /obj/item/clothing/under/color/yellow = 5, + /obj/item/clothing/shoes/black = 20, + /obj/item/clothing/shoes/white = 20) + +/obj/machinery/vending/loadout/accessory + name = "Looty Inc." + desc = "A special vendor for accessories." + product_ads = "Want shinies? We have the shinies.;Need that special something to complete your outfit? We have what you need!;Ditch that old dull dangly something you've got and pick up one of our shinies!;Bracelets, collars, scarfs rings and more! We have the fancy things you need!;Does your pet need a collar? We don't judge! Keep them in line with one of one of ours!;Top of the line materials! 'Hand crafted' goods!" + icon_state = "accessory" + icon_vend = "accessory-purchase" + vend_delay = 6 + products = list(/obj/item/clothing/accessory = 5, + /obj/item/clothing/accessory/armband/med/color = 10, + /obj/item/clothing/accessory/asymmetric = 5, + /obj/item/clothing/accessory/asymmetric/purple = 5, + /obj/item/clothing/accessory/asymmetric/green = 5, + /obj/item/clothing/accessory/bracelet = 5, + /obj/item/clothing/accessory/bracelet/material = 5, + /obj/item/clothing/accessory/bracelet/friendship = 5, + /obj/item/clothing/accessory/chaps = 5, + /obj/item/clothing/accessory/chaps/black = 5, + /obj/item/weapon/storage/briefcase/clutch = 1, + /obj/item/clothing/accessory/collar = 5, + /obj/item/clothing/accessory/collar/bell = 5, + /obj/item/clothing/accessory/collar/spike = 5, + /obj/item/clothing/accessory/collar/pink = 5, + /obj/item/clothing/accessory/collar/holo = 5, + /obj/item/clothing/accessory/collar/shock = 5, + /obj/item/weapon/storage/belt/fannypack = 1, + /obj/item/weapon/storage/belt/fannypack/white = 5, + /obj/item/clothing/accessory/fullcape = 5, + /obj/item/clothing/accessory/halfcape = 5, + /obj/item/clothing/accessory/hawaii = 5, + /obj/item/clothing/accessory/hawaii/random = 5, + /obj/item/clothing/accessory/locket = 5, + /obj/item/weapon/storage/backpack/purse = 1, + /obj/item/clothing/accessory/sash = 5, + /obj/item/clothing/accessory/scarf = 5, + /obj/item/clothing/accessory/scarf/red = 5, + /obj/item/clothing/accessory/scarf/darkblue = 5, + /obj/item/clothing/accessory/scarf/purple = 5, + /obj/item/clothing/accessory/scarf/yellow = 5, + /obj/item/clothing/accessory/scarf/orange = 5, + /obj/item/clothing/accessory/scarf/lightblue = 5, + /obj/item/clothing/accessory/scarf/white = 5, + /obj/item/clothing/accessory/scarf/black = 5, + /obj/item/clothing/accessory/scarf/zebra = 5, + /obj/item/clothing/accessory/scarf/christmas = 5, + /obj/item/clothing/accessory/scarf/stripedred = 5, + /obj/item/clothing/accessory/scarf/stripedgreen = 5, + /obj/item/clothing/accessory/scarf/stripedblue = 5, + /obj/item/clothing/accessory/jacket = 5, + /obj/item/clothing/accessory/jacket/checkered = 5, + /obj/item/clothing/accessory/jacket/burgundy = 5, + /obj/item/clothing/accessory/jacket/navy = 5, + /obj/item/clothing/accessory/jacket/charcoal = 5, + /obj/item/clothing/accessory/vest = 5, + /obj/item/clothing/accessory/sweater = 5, + /obj/item/clothing/accessory/sweater/pink = 5, + /obj/item/clothing/accessory/sweater/mint = 5, + /obj/item/clothing/accessory/sweater/blue = 5, + /obj/item/clothing/accessory/sweater/heart = 5, + /obj/item/clothing/accessory/sweater/nt = 5, + /obj/item/clothing/accessory/sweater/keyhole = 5, + /obj/item/clothing/accessory/sweater/winterneck = 5, + /obj/item/clothing/accessory/sweater/uglyxmas = 5, + /obj/item/clothing/accessory/sweater/flowersweater = 5, + /obj/item/clothing/accessory/sweater/redneck = 5, + /obj/item/clothing/accessory/tie = 5, + /obj/item/clothing/accessory/tie/horrible = 5, + /obj/item/clothing/accessory/tie/white = 5, + /obj/item/clothing/accessory/tie/navy = 5, + /obj/item/clothing/accessory/tie/yellow = 5, + /obj/item/clothing/accessory/tie/darkgreen = 5, + /obj/item/clothing/accessory/tie/black = 5, + /obj/item/clothing/accessory/tie/red_long = 5, + /obj/item/clothing/accessory/tie/red_clip = 5, + /obj/item/clothing/accessory/tie/blue_long = 5, + /obj/item/clothing/accessory/tie/blue_clip = 5, + /obj/item/clothing/accessory/tie/red = 5, + /obj/item/clothing/accessory/wcoat = 5, + /obj/item/clothing/accessory/wcoat/red = 5, + /obj/item/clothing/accessory/wcoat/grey = 5, + /obj/item/clothing/accessory/wcoat/brown = 5, + /obj/item/clothing/accessory/wcoat/gentleman = 5, + /obj/item/clothing/accessory/wcoat/swvest = 5, + /obj/item/clothing/accessory/wcoat/swvest/blue = 5, + /obj/item/clothing/accessory/wcoat/swvest/red = 5, + /obj/item/weapon/storage/wallet = 5, + /obj/item/weapon/storage/wallet/poly = 5, + /obj/item/weapon/storage/wallet/womens = 5, + /obj/item/weapon/lipstick = 5, + /obj/item/weapon/lipstick/purple = 5, + /obj/item/weapon/lipstick/jade = 5, + /obj/item/weapon/lipstick/black = 5, + /obj/item/clothing/ears/earmuffs = 5, + /obj/item/clothing/ears/earmuffs/headphones = 5, + /obj/item/clothing/ears/earring/stud = 5, + /obj/item/clothing/ears/earring/dangle = 5, + /obj/item/clothing/gloves/ring/mariner = 5, + /obj/item/clothing/gloves/ring/engagement = 5, + /obj/item/clothing/gloves/ring/seal/signet = 5, + /obj/item/clothing/gloves/ring/seal/mason = 5, + /obj/item/clothing/gloves/ring/material/plastic = 5, + /obj/item/clothing/gloves/ring/material/steel = 5, + /obj/item/clothing/gloves/ring/material/gold = 5, + /obj/item/clothing/glasses/eyepatch = 5, + /obj/item/clothing/glasses/gglasses = 5, + /obj/item/clothing/glasses/regular/hipster = 5, + /obj/item/clothing/glasses/rimless = 5, + /obj/item/clothing/glasses/thin = 5, + /obj/item/clothing/glasses/monocle = 5, + /obj/item/clothing/glasses/goggles = 5, + /obj/item/clothing/glasses/fluff/spiffygogs = 5, + /obj/item/clothing/glasses/fakesunglasses = 5, + /obj/item/clothing/glasses/fakesunglasses/aviator = 5, + /obj/item/clothing/mask/bandana/blue = 5, + /obj/item/clothing/mask/bandana/gold = 5, + /obj/item/clothing/mask/bandana/green = 5, + /obj/item/clothing/mask/bandana/red = 5, + /obj/item/clothing/mask/surgical = 5) + prices = list(/obj/item/clothing/accessory = 100, + /obj/item/clothing/accessory/armband/med/color = 100, + /obj/item/clothing/accessory/asymmetric = 100, + /obj/item/clothing/accessory/asymmetric/purple = 100, + /obj/item/clothing/accessory/asymmetric/green = 100, + /obj/item/clothing/accessory/bracelet = 100, + /obj/item/clothing/accessory/bracelet/material = 100, + /obj/item/clothing/accessory/bracelet/friendship = 100, + /obj/item/clothing/accessory/chaps = 100, + /obj/item/clothing/accessory/chaps/black = 100, + /obj/item/weapon/storage/briefcase/clutch = 100, + /obj/item/clothing/accessory/collar = 100, + /obj/item/clothing/accessory/collar/bell = 100, + /obj/item/clothing/accessory/collar/spike = 100, + /obj/item/clothing/accessory/collar/pink = 100, + /obj/item/clothing/accessory/collar/holo = 100, + /obj/item/clothing/accessory/collar/shock = 100, + /obj/item/weapon/storage/belt/fannypack = 100, + /obj/item/weapon/storage/belt/fannypack/white = 100, + /obj/item/clothing/accessory/fullcape = 100, + /obj/item/clothing/accessory/halfcape = 100, + /obj/item/clothing/accessory/hawaii = 100, + /obj/item/clothing/accessory/hawaii/random = 100, + /obj/item/clothing/accessory/locket = 100, + /obj/item/weapon/storage/backpack/purse = 100, + /obj/item/clothing/accessory/sash = 100, + /obj/item/clothing/accessory/scarf = 5, + /obj/item/clothing/accessory/scarf/red = 100, + /obj/item/clothing/accessory/scarf/darkblue = 100, + /obj/item/clothing/accessory/scarf/purple = 100, + /obj/item/clothing/accessory/scarf/yellow = 100, + /obj/item/clothing/accessory/scarf/orange = 100, + /obj/item/clothing/accessory/scarf/lightblue = 100, + /obj/item/clothing/accessory/scarf/white = 100, + /obj/item/clothing/accessory/scarf/black = 100, + /obj/item/clothing/accessory/scarf/zebra = 100, + /obj/item/clothing/accessory/scarf/christmas = 100, + /obj/item/clothing/accessory/scarf/stripedred = 100, + /obj/item/clothing/accessory/scarf/stripedgreen = 100, + /obj/item/clothing/accessory/scarf/stripedblue = 100, + /obj/item/clothing/accessory/jacket = 100, + /obj/item/clothing/accessory/jacket/checkered = 100, + /obj/item/clothing/accessory/jacket/burgundy = 100, + /obj/item/clothing/accessory/jacket/navy = 100, + /obj/item/clothing/accessory/jacket/charcoal = 100, + /obj/item/clothing/accessory/vest = 100, + /obj/item/clothing/accessory/sweater = 100, + /obj/item/clothing/accessory/sweater/pink = 100, + /obj/item/clothing/accessory/sweater/mint = 100, + /obj/item/clothing/accessory/sweater/blue = 100, + /obj/item/clothing/accessory/sweater/heart = 100, + /obj/item/clothing/accessory/sweater/nt = 5, + /obj/item/clothing/accessory/sweater/keyhole = 100, + /obj/item/clothing/accessory/sweater/winterneck = 100, + /obj/item/clothing/accessory/sweater/uglyxmas = 5, + /obj/item/clothing/accessory/sweater/flowersweater = 100, + /obj/item/clothing/accessory/sweater/redneck = 100, + /obj/item/clothing/accessory/tie = 100, + /obj/item/clothing/accessory/tie/horrible = 100, + /obj/item/clothing/accessory/tie/white = 100, + /obj/item/clothing/accessory/tie/navy = 100, + /obj/item/clothing/accessory/tie/yellow = 100, + /obj/item/clothing/accessory/tie/darkgreen = 100, + /obj/item/clothing/accessory/tie/black = 100, + /obj/item/clothing/accessory/tie/red_long = 100, + /obj/item/clothing/accessory/tie/red_clip = 100, + /obj/item/clothing/accessory/tie/blue_long = 100, + /obj/item/clothing/accessory/tie/blue_clip = 100, + /obj/item/clothing/accessory/tie/red = 100, + /obj/item/clothing/accessory/wcoat = 100, + /obj/item/clothing/accessory/wcoat/red = 100, + /obj/item/clothing/accessory/wcoat/grey = 100, + /obj/item/clothing/accessory/wcoat/brown = 100, + /obj/item/clothing/accessory/wcoat/gentleman = 100, + /obj/item/clothing/accessory/wcoat/swvest = 100, + /obj/item/clothing/accessory/wcoat/swvest/blue = 100, + /obj/item/clothing/accessory/wcoat/swvest/red = 100, + /obj/item/weapon/storage/wallet = 100, + /obj/item/weapon/storage/wallet/poly = 100, + /obj/item/weapon/storage/wallet/womens = 100, + /obj/item/weapon/lipstick = 100, + /obj/item/weapon/lipstick/purple = 100, + /obj/item/weapon/lipstick/jade = 100, + /obj/item/weapon/lipstick/black = 100, + /obj/item/clothing/ears/earmuffs = 100, + /obj/item/clothing/ears/earmuffs/headphones = 100, + /obj/item/clothing/ears/earring/stud = 100, + /obj/item/clothing/ears/earring/dangle = 100, + /obj/item/clothing/gloves/ring/mariner = 100, + /obj/item/clothing/gloves/ring/engagement = 100, + /obj/item/clothing/gloves/ring/seal/signet = 100, + /obj/item/clothing/gloves/ring/seal/mason = 100, + /obj/item/clothing/gloves/ring/material/plastic = 100, + /obj/item/clothing/gloves/ring/material/steel = 100, + /obj/item/clothing/gloves/ring/material/gold = 500, + /obj/item/clothing/glasses/eyepatch = 100, + /obj/item/clothing/glasses/gglasses = 100, + /obj/item/clothing/glasses/regular/hipster = 100, + /obj/item/clothing/glasses/rimless = 100, + /obj/item/clothing/glasses/thin = 100, + /obj/item/clothing/glasses/monocle = 100, + /obj/item/clothing/glasses/goggles = 100, + /obj/item/clothing/glasses/fluff/spiffygogs = 100, + /obj/item/clothing/glasses/fakesunglasses = 100, + /obj/item/clothing/glasses/fakesunglasses/aviator = 100, + /obj/item/clothing/mask/bandana/blue = 100, + /obj/item/clothing/mask/bandana/gold = 100, + /obj/item/clothing/mask/bandana/green = 100, + /obj/item/clothing/mask/bandana/red = 100, + /obj/item/clothing/mask/surgical = 200) + premium = list(/obj/item/weapon/bedsheet/rainbow = 1) + contraband = list(/obj/item/clothing/mask/gas/clown_hat = 1) + +/obj/machinery/vending/loadout/clothing + name = "General Jump" + desc = "A special vendor using compressed matter cartridges to store large amounts of clothing." + product_ads = "Tired of your grey jumpsuit? Spruce yourself up!;We have the outfit for you!;Don't let that grey jumpsuit get you down, get a ROBUST outfit right now!;Using compressed matter catridges and VERY ETHICAL labor practices to bring YOU the clothing you crave!;Are you sure you want to go to work in THAT?;All of our wares have a whole TWO pockets!" + icon_state = "clothing" + icon_vend = "clothing-purchase" + vend_delay = 16 + products = list(/obj/item/clothing/under/bathrobe = 5, + /obj/item/clothing/under/dress/black_corset = 5, + /obj/item/clothing/under/blazer = 5, + /obj/item/clothing/under/blazer/skirt = 5, + /obj/item/clothing/under/cheongsam = 5, + /obj/item/clothing/under/cheongsam/red = 5, + /obj/item/clothing/under/cheongsam/blue = 5, + /obj/item/clothing/under/cheongsam/black = 5, + /obj/item/clothing/under/cheongsam/darkred = 5, + /obj/item/clothing/under/cheongsam/green = 5, + /obj/item/clothing/under/cheongsam/purple = 5, + /obj/item/clothing/under/cheongsam/darkblue = 5, + /obj/item/clothing/under/croptop = 5, + /obj/item/clothing/under/croptop/red = 5, + /obj/item/clothing/under/croptop/grey = 5, + /obj/item/clothing/under/cuttop = 5, + /obj/item/clothing/under/cuttop/red = 5, + /obj/item/clothing/under/suit_jacket/female/skirt = 5, + /obj/item/clothing/under/dress/dress_fire = 5, + /obj/item/clothing/under/dress/flamenco = 5, + /obj/item/clothing/under/dress/flower_dress = 5, + /obj/item/clothing/under/fluff/gnshorts = 5, + /obj/item/clothing/under/color = 5, + /obj/item/clothing/under/color/aqua = 5, + /obj/item/clothing/under/color/black = 5, + /obj/item/clothing/under/color/blackf = 5, + /obj/item/clothing/under/color/blackjumpskirt = 5, + /obj/item/clothing/under/color/blue = 5, + /obj/item/clothing/under/color/brown = 5, + /obj/item/clothing/under/color/darkblue = 5, + /obj/item/clothing/under/color/darkred = 5, + /obj/item/clothing/under/color/green = 5, + /obj/item/clothing/under/color/grey = 5, + /obj/item/clothing/under/color/lightblue = 5, + /obj/item/clothing/under/color/lightbrown = 5, + /obj/item/clothing/under/color/lightgreen = 5, + /obj/item/clothing/under/color/lightpurple = 5, + /obj/item/clothing/under/color/lightred = 5, + /obj/item/clothing/under/color/orange = 5, + /obj/item/clothing/under/color/pink = 5, + /obj/item/clothing/under/color/prison = 5, + /obj/item/clothing/under/color/ranger = 5, + /obj/item/clothing/under/color/red = 5, + /obj/item/clothing/under/color/white = 5, + /obj/item/clothing/under/color/yellow = 5, + /obj/item/clothing/under/color/yellowgreen = 5, + /obj/item/clothing/under/aether = 5, + /obj/item/clothing/under/focal = 5, + /obj/item/clothing/under/hephaestus = 5, + /obj/item/clothing/under/wardt = 5, + /obj/item/clothing/under/kilt = 5, + /obj/item/clothing/under/fluff/latexmaid = 5, + /obj/item/clothing/under/dress/lilacdress = 5, + /obj/item/clothing/under/dress/white2 = 5, + /obj/item/clothing/under/dress/white4 = 5, + /obj/item/clothing/under/dress/maid = 5, + /obj/item/clothing/under/dress/maid/sexy = 5, + /obj/item/clothing/under/dress/maid/janitor = 5, + /obj/item/clothing/under/moderncoat = 5, + /obj/item/clothing/under/permit = 5, + /obj/item/clothing/under/oldwoman = 5, + /obj/item/clothing/under/frontier = 5, + /obj/item/clothing/under/mbill = 5, + /obj/item/clothing/under/pants/baggy/ = 5, + /obj/item/clothing/under/pants/baggy/classicjeans = 5, + /obj/item/clothing/under/pants/baggy/mustangjeans = 5, + /obj/item/clothing/under/pants/baggy/blackjeans = 5, + /obj/item/clothing/under/pants/baggy/greyjeans = 5, + /obj/item/clothing/under/pants/baggy/youngfolksjeans = 5, + /obj/item/clothing/under/pants/baggy/white = 5, + /obj/item/clothing/under/pants/baggy/red = 5, + /obj/item/clothing/under/pants/baggy/black = 5, + /obj/item/clothing/under/pants/baggy/tan = 5, + /obj/item/clothing/under/pants/baggy/track = 5, + /obj/item/clothing/under/pants/baggy/khaki = 5, + /obj/item/clothing/under/pants/baggy/camo = 5, + /obj/item/clothing/under/pants/utility/ = 5, + /obj/item/clothing/under/pants/utility/orange = 5, + /obj/item/clothing/under/pants/utility/blue = 5, + /obj/item/clothing/under/pants/utility/white = 5, + /obj/item/clothing/under/pants/utility/red = 5, + /obj/item/clothing/under/pants/chaps = 5, + /obj/item/clothing/under/pants/chaps/black = 5, + /obj/item/clothing/under/pants/track = 5, + /obj/item/clothing/under/pants/track/red = 5, + /obj/item/clothing/under/pants/track/white = 5, + /obj/item/clothing/under/pants/track/green = 5, + /obj/item/clothing/under/pants/track/blue = 5, + /obj/item/clothing/under/pants/yogapants = 5, + /obj/item/clothing/under/ascetic = 5, + /obj/item/clothing/under/dress/white3 = 5, + /obj/item/clothing/under/skirt/pleated = 5, + /obj/item/clothing/under/dress/darkred = 5, + /obj/item/clothing/under/dress/redeveninggown = 5, + /obj/item/clothing/under/dress/red_swept_dress = 5, + /obj/item/clothing/under/dress/sailordress = 5, + /obj/item/clothing/under/dress/sari = 5, + /obj/item/clothing/under/dress/sari/green = 5, + /obj/item/clothing/under/shorts/red = 5, + /obj/item/clothing/under/shorts/green = 5, + /obj/item/clothing/under/shorts/blue = 5, + /obj/item/clothing/under/shorts/black = 5, + /obj/item/clothing/under/shorts/grey = 5, + /obj/item/clothing/under/shorts/white = 5, + /obj/item/clothing/under/shorts/jeans = 5, + /obj/item/clothing/under/shorts/jeans/ = 5, + /obj/item/clothing/under/shorts/jeans/classic = 5, + /obj/item/clothing/under/shorts/jeans/mustang = 5, + /obj/item/clothing/under/shorts/jeans/youngfolks = 5, + /obj/item/clothing/under/shorts/jeans/black = 5, + /obj/item/clothing/under/shorts/jeans/grey = 5, + /obj/item/clothing/under/shorts/khaki/ = 5, + /obj/item/clothing/under/skirt/loincloth = 5, + /obj/item/clothing/under/skirt/khaki = 5, + /obj/item/clothing/under/skirt/blue = 5, + /obj/item/clothing/under/skirt/red = 5, + /obj/item/clothing/under/skirt/denim = 5, + /obj/item/clothing/under/skirt/pleated = 5, + /obj/item/clothing/under/skirt/outfit/plaid_blue = 5, + /obj/item/clothing/under/skirt/outfit/plaid_red = 5, + /obj/item/clothing/under/skirt/outfit/plaid_purple = 5, + /obj/item/clothing/under/overalls/sleek = 5, + /obj/item/clothing/under/sl_suit = 5, + /obj/item/clothing/under/gentlesuit = 5, + /obj/item/clothing/under/gentlesuit/skirt = 5, + /obj/item/clothing/under/suit_jacket = 5, + /obj/item/clothing/under/suit_jacket/really_black/skirt = 5, + /obj/item/clothing/under/suit_jacket/really_black = 5, + /obj/item/clothing/under/suit_jacket/female/skirt = 5, + /obj/item/clothing/under/suit_jacket/female/ = 5, + /obj/item/clothing/under/suit_jacket/red = 5, + /obj/item/clothing/under/suit_jacket/red/skirt = 5, + /obj/item/clothing/under/suit_jacket/charcoal = 5, + /obj/item/clothing/under/suit_jacket/charcoal/skirt = 5, + /obj/item/clothing/under/suit_jacket/navy = 5, + /obj/item/clothing/under/suit_jacket/navy/skirt = 5, + /obj/item/clothing/under/suit_jacket/burgundy = 5, + /obj/item/clothing/under/suit_jacket/burgundy/skirt = 5, + /obj/item/clothing/under/suit_jacket/checkered = 5, + /obj/item/clothing/under/suit_jacket/checkered/skirt = 5, + /obj/item/clothing/under/suit_jacket/tan = 5, + /obj/item/clothing/under/suit_jacket/tan/skirt = 5, + /obj/item/clothing/under/scratch = 5, + /obj/item/clothing/under/scratch/skirt = 5, + /obj/item/clothing/under/sundress = 5, + /obj/item/clothing/under/sundress_white = 5, + /obj/item/clothing/under/rank/psych/turtleneck/sweater = 5, + /obj/item/weapon/storage/box/fluff/swimsuit = 5, + /obj/item/weapon/storage/box/fluff/swimsuit/blue = 5, + /obj/item/weapon/storage/box/fluff/swimsuit/purple = 5, + /obj/item/weapon/storage/box/fluff/swimsuit/green = 5, + /obj/item/weapon/storage/box/fluff/swimsuit/red = 5, + /obj/item/weapon/storage/box/fluff/swimsuit/white = 5, + /obj/item/weapon/storage/box/fluff/swimsuit/earth = 5, + /obj/item/weapon/storage/box/fluff/swimsuit/engineering = 5, + /obj/item/weapon/storage/box/fluff/swimsuit/science = 5, + /obj/item/weapon/storage/box/fluff/swimsuit/security = 5, + /obj/item/weapon/storage/box/fluff/swimsuit/medical = 5, + /obj/item/clothing/under/utility = 5, + /obj/item/clothing/under/utility/grey = 5, + /obj/item/clothing/under/utility/blue = 5, + /obj/item/clothing/under/fluff/v_nanovest = 5, + /obj/item/clothing/under/dress/westernbustle = 5, + /obj/item/clothing/under/wedding/bride_white = 5, + /obj/item/weapon/storage/backpack/ = 5, + /obj/item/weapon/storage/backpack/messenger = 5, + /obj/item/weapon/storage/backpack/satchel = 5) + prices = list(/obj/item/clothing/under/bathrobe = 100, + /obj/item/clothing/under/dress/black_corset = 100, + /obj/item/clothing/under/blazer = 100, + /obj/item/clothing/under/blazer/skirt = 100, + /obj/item/clothing/under/cheongsam = 100, + /obj/item/clothing/under/cheongsam/red = 100, + /obj/item/clothing/under/cheongsam/blue = 100, + /obj/item/clothing/under/cheongsam/black = 100, + /obj/item/clothing/under/cheongsam/darkred = 100, + /obj/item/clothing/under/cheongsam/green = 100, + /obj/item/clothing/under/cheongsam/purple = 100, + /obj/item/clothing/under/cheongsam/darkblue = 100, + /obj/item/clothing/under/croptop = 100, + /obj/item/clothing/under/croptop/red = 100, + /obj/item/clothing/under/croptop/grey = 100, + /obj/item/clothing/under/cuttop = 100, + /obj/item/clothing/under/cuttop/red = 100, + /obj/item/clothing/under/suit_jacket/female/skirt = 100, + /obj/item/clothing/under/dress/dress_fire = 100, + /obj/item/clothing/under/dress/flamenco = 100, + /obj/item/clothing/under/dress/flower_dress = 100, + /obj/item/clothing/under/fluff/gnshorts = 100, + /obj/item/clothing/under/color = 100, + /obj/item/clothing/under/color/aqua = 100, + /obj/item/clothing/under/color/black = 100, + /obj/item/clothing/under/color/blackf = 100, + /obj/item/clothing/under/color/blackjumpskirt = 100, + /obj/item/clothing/under/color/blue = 100, + /obj/item/clothing/under/color/brown = 100, + /obj/item/clothing/under/color/darkblue = 100, + /obj/item/clothing/under/color/darkred = 100, + /obj/item/clothing/under/color/green = 100, + /obj/item/clothing/under/color/grey = 100, + /obj/item/clothing/under/color/lightblue = 100, + /obj/item/clothing/under/color/lightbrown = 100, + /obj/item/clothing/under/color/lightgreen = 100, + /obj/item/clothing/under/color/lightpurple = 100, + /obj/item/clothing/under/color/lightred = 100, + /obj/item/clothing/under/color/orange = 100, + /obj/item/clothing/under/color/pink = 100, + /obj/item/clothing/under/color/prison = 100, + /obj/item/clothing/under/color/ranger = 100, + /obj/item/clothing/under/color/red = 100, + /obj/item/clothing/under/color/white = 100, + /obj/item/clothing/under/color/yellow = 100, + /obj/item/clothing/under/color/yellowgreen = 100, + /obj/item/clothing/under/aether = 100, + /obj/item/clothing/under/focal = 100, + /obj/item/clothing/under/hephaestus = 100, + /obj/item/clothing/under/wardt = 100, + /obj/item/clothing/under/kilt = 100, + /obj/item/clothing/under/fluff/latexmaid = 100, + /obj/item/clothing/under/dress/lilacdress = 100, + /obj/item/clothing/under/dress/white2 = 100, + /obj/item/clothing/under/dress/white4 = 100, + /obj/item/clothing/under/dress/maid = 100, + /obj/item/clothing/under/dress/maid/sexy = 100, + /obj/item/clothing/under/dress/maid/janitor = 100, + /obj/item/clothing/under/moderncoat = 100, + /obj/item/clothing/under/permit = 100, + /obj/item/clothing/under/oldwoman = 100, + /obj/item/clothing/under/frontier = 100, + /obj/item/clothing/under/mbill = 100, + /obj/item/clothing/under/pants/baggy/ = 100, + /obj/item/clothing/under/pants/baggy/classicjeans = 100, + /obj/item/clothing/under/pants/baggy/mustangjeans = 100, + /obj/item/clothing/under/pants/baggy/blackjeans = 100, + /obj/item/clothing/under/pants/baggy/greyjeans = 100, + /obj/item/clothing/under/pants/baggy/youngfolksjeans = 100, + /obj/item/clothing/under/pants/baggy/white = 100, + /obj/item/clothing/under/pants/baggy/red = 100, + /obj/item/clothing/under/pants/baggy/black = 100, + /obj/item/clothing/under/pants/baggy/tan = 100, + /obj/item/clothing/under/pants/baggy/track = 100, + /obj/item/clothing/under/pants/baggy/khaki = 100, + /obj/item/clothing/under/pants/baggy/camo = 100, + /obj/item/clothing/under/pants/utility/ = 100, + /obj/item/clothing/under/pants/utility/orange = 100, + /obj/item/clothing/under/pants/utility/blue = 100, + /obj/item/clothing/under/pants/utility/white = 100, + /obj/item/clothing/under/pants/utility/red = 100, + /obj/item/clothing/under/pants/chaps = 100, + /obj/item/clothing/under/pants/chaps/black = 100, + /obj/item/clothing/under/pants/track = 100, + /obj/item/clothing/under/pants/track/red = 100, + /obj/item/clothing/under/pants/track/white = 100, + /obj/item/clothing/under/pants/track/green = 100, + /obj/item/clothing/under/pants/track/blue = 100, + /obj/item/clothing/under/pants/yogapants = 100, + /obj/item/clothing/under/ascetic = 100, + /obj/item/clothing/under/dress/white3 = 100, + /obj/item/clothing/under/skirt/pleated = 100, + /obj/item/clothing/under/dress/darkred = 100, + /obj/item/clothing/under/dress/redeveninggown = 100, + /obj/item/clothing/under/dress/red_swept_dress = 100, + /obj/item/clothing/under/dress/sailordress = 100, + /obj/item/clothing/under/dress/sari = 100, + /obj/item/clothing/under/dress/sari/green = 100, + /obj/item/clothing/under/shorts/red = 100, + /obj/item/clothing/under/shorts/green = 100, + /obj/item/clothing/under/shorts/blue = 100, + /obj/item/clothing/under/shorts/black = 100, + /obj/item/clothing/under/shorts/grey = 100, + /obj/item/clothing/under/shorts/white = 100, + /obj/item/clothing/under/shorts/jeans = 100, + /obj/item/clothing/under/shorts/jeans/ = 100, + /obj/item/clothing/under/shorts/jeans/classic = 100, + /obj/item/clothing/under/shorts/jeans/mustang = 100, + /obj/item/clothing/under/shorts/jeans/youngfolks = 100, + /obj/item/clothing/under/shorts/jeans/black = 100, + /obj/item/clothing/under/shorts/jeans/grey = 100, + /obj/item/clothing/under/shorts/khaki/ = 100, + /obj/item/clothing/under/skirt/loincloth = 100, + /obj/item/clothing/under/skirt/khaki = 100, + /obj/item/clothing/under/skirt/blue = 100, + /obj/item/clothing/under/skirt/red = 100, + /obj/item/clothing/under/skirt/denim = 100, + /obj/item/clothing/under/skirt/pleated = 100, + /obj/item/clothing/under/skirt/outfit/plaid_blue = 100, + /obj/item/clothing/under/skirt/outfit/plaid_red = 100, + /obj/item/clothing/under/skirt/outfit/plaid_purple = 100, + /obj/item/clothing/under/overalls/sleek = 100, + /obj/item/clothing/under/sl_suit = 100, + /obj/item/clothing/under/gentlesuit = 100, + /obj/item/clothing/under/gentlesuit/skirt = 100, + /obj/item/clothing/under/suit_jacket = 100, + /obj/item/clothing/under/suit_jacket/really_black/skirt = 100, + /obj/item/clothing/under/suit_jacket/really_black = 100, + /obj/item/clothing/under/suit_jacket/female/skirt = 100, + /obj/item/clothing/under/suit_jacket/female/ = 100, + /obj/item/clothing/under/suit_jacket/red = 100, + /obj/item/clothing/under/suit_jacket/red/skirt = 100, + /obj/item/clothing/under/suit_jacket/charcoal = 100, + /obj/item/clothing/under/suit_jacket/charcoal/skirt = 100, + /obj/item/clothing/under/suit_jacket/navy = 100, + /obj/item/clothing/under/suit_jacket/navy/skirt = 100, + /obj/item/clothing/under/suit_jacket/burgundy = 100, + /obj/item/clothing/under/suit_jacket/burgundy/skirt = 100, + /obj/item/clothing/under/suit_jacket/checkered = 100, + /obj/item/clothing/under/suit_jacket/checkered/skirt = 100, + /obj/item/clothing/under/suit_jacket/tan = 100, + /obj/item/clothing/under/suit_jacket/tan/skirt = 100, + /obj/item/clothing/under/scratch = 100, + /obj/item/clothing/under/scratch/skirt = 100, + /obj/item/clothing/under/sundress = 100, + /obj/item/clothing/under/sundress_white = 100, + /obj/item/clothing/under/rank/psych/turtleneck/sweater = 100, + /obj/item/weapon/storage/box/fluff/swimsuit = 100, + /obj/item/weapon/storage/box/fluff/swimsuit/blue = 100, + /obj/item/weapon/storage/box/fluff/swimsuit/purple = 100, + /obj/item/weapon/storage/box/fluff/swimsuit/green = 100, + /obj/item/weapon/storage/box/fluff/swimsuit/red = 100, + /obj/item/weapon/storage/box/fluff/swimsuit/white = 100, + /obj/item/weapon/storage/box/fluff/swimsuit/earth = 100, + /obj/item/weapon/storage/box/fluff/swimsuit/engineering = 100, + /obj/item/weapon/storage/box/fluff/swimsuit/science = 100, + /obj/item/weapon/storage/box/fluff/swimsuit/security = 100, + /obj/item/weapon/storage/box/fluff/swimsuit/medical = 100, + /obj/item/clothing/under/utility = 100, + /obj/item/clothing/under/utility/grey = 100, + /obj/item/clothing/under/utility/blue = 100, + /obj/item/clothing/under/fluff/v_nanovest = 100, + /obj/item/clothing/under/dress/westernbustle = 100, + /obj/item/clothing/under/wedding/bride_white = 100, + /obj/item/weapon/storage/backpack/ = 100, + /obj/item/weapon/storage/backpack/messenger = 100, + /obj/item/weapon/storage/backpack/satchel = 100) + premium = list(/obj/item/clothing/under/color/rainbow = 1) + contraband = list(/obj/item/clothing/under/rank/clown = 1) + +/obj/machinery/vending/loadout/gadget + name = "Chips Co." + desc = "A special vendor for devices and gadgets." + product_ads = "You can't RESIST our great deals!;Feeling disconnected? We have a gadget for you!;You know you have the capacity to buy our capacitors!;FILL THAT HOLE IN YOUR HEART WITH OUR PLASTIC DISTRACTIONS!!!;Devices for everyone! Chips Co.!;ROBUST INVENTORY, GREAT PRICES! ;DON'T FORGET THE oyPAD 13s PRO! ON SALE NOW, ONLY ONE THOUSAND THALERS!" + icon_state = "gadgets" + icon_vend = "gadgets-purchase" + vend_delay = 11 + products = list(/obj/item/clothing/suit/circuitry = 1, + /obj/item/clothing/head/circuitry = 1, + /obj/item/clothing/shoes/circuitry = 1, + /obj/item/clothing/gloves/circuitry = 1, + /obj/item/clothing/under/circuitry = 1, + /obj/item/clothing/glasses/circuitry = 1, + /obj/item/clothing/ears/circuitry = 1, + /obj/item/device/text_to_speech = 5, + /obj/item/device/paicard = 5, + /obj/item/device/communicator = 10, + /obj/item/device/communicator/watch = 10, + /obj/item/device/radio = 10, + /obj/item/device/camera = 5, + /obj/item/device/taperecorder = 5, + /obj/item/modular_computer/tablet/preset/custom_loadout/cheap = 5, + /obj/item/device/pda = 10, + /obj/item/device/radio/headset = 10, + /obj/item/device/flashlight = 5, + /obj/item/device/laser_pointer = 3, + /obj/item/clothing/glasses/omnihud = 10) + prices = list(/obj/item/clothing/suit/circuitry = 100, + /obj/item/clothing/head/circuitry = 100, + /obj/item/clothing/shoes/circuitry = 100, + /obj/item/clothing/gloves/circuitry = 100, + /obj/item/clothing/under/circuitry = 100, + /obj/item/clothing/glasses/circuitry = 100, + /obj/item/clothing/ears/circuitry = 100, + /obj/item/device/text_to_speech = 300, + /obj/item/device/paicard = 100, + /obj/item/device/communicator = 100, + /obj/item/device/communicator/watch = 100, + /obj/item/device/radio = 100, + /obj/item/device/camera = 100, + /obj/item/device/taperecorder = 100, + /obj/item/modular_computer/tablet/preset/custom_loadout/cheap = 1000, + /obj/item/device/pda = 50, + /obj/item/device/radio/headset = 50, + /obj/item/device/flashlight = 100, + /obj/item/device/laser_pointer = 200, + /obj/item/clothing/glasses/omnihud = 100) + premium = list(/obj/item/device/perfect_tele/one_beacon = 1) + contraband = list(/obj/item/weapon/disk/nifsoft/compliance = 1) + +/obj/machinery/vending/loadout/loadout_misc + name = "Bits and Bobs" + desc = "A special vendor for things and also stuff!" + product_ads = "You never know when you might need an umbrella.;Hey kid... want some cardemon cards?;Miscellaneous for your miscellaneous heart.;Who's bob? Wouldn't you like to know.;I'm sorry there's no grappling hooks in our umbrellas.;We sell things AND stuff." + icon_state = "loadout_misc" + products = list(/obj/item/weapon/cane = 5, + /obj/item/weapon/pack/cardemon = 25, + /obj/item/weapon/deck/holder = 5, + /obj/item/weapon/deck/cah = 5, + /obj/item/weapon/deck/cah/black = 5, + /obj/item/weapon/deck/tarot = 5, + /obj/item/weapon/deck/cards = 5, + /obj/item/weapon/pack/spaceball = 10, + /obj/item/weapon/storage/pill_bottle/dice = 5, + /obj/item/weapon/storage/pill_bottle/dice_nerd = 5, + /obj/item/weapon/melee/umbrella/random = 10) + prices = list(/obj/item/weapon/cane = 100, + /obj/item/weapon/pack/cardemon = 100, + /obj/item/weapon/deck/holder = 100, + /obj/item/weapon/deck/cah = 100, + /obj/item/weapon/deck/cah/black = 100, + /obj/item/weapon/deck/tarot = 100, + /obj/item/weapon/deck/cards = 100, + /obj/item/weapon/pack/spaceball = 100, + /obj/item/weapon/storage/pill_bottle/dice = 100, + /obj/item/weapon/storage/pill_bottle/dice_nerd = 100, + /obj/item/weapon/melee/umbrella/random = 100) + premium = list(/obj/item/toy/bosunwhistle = 1) + contraband = list(/obj/item/toy/katana = 1) + +/obj/machinery/vending/loadout/overwear + name = "Big D's Best" + desc = "A special vendor using compressed matter cartridges to store large amounts of overwear!" + product_ads = "Dress your best! It's what big D would want.;Overwear for all occasions!;Big D has what you need if what you need is some form of jacket!;Need a new hoodie? Bid D has you covered.;Big D says you need a new suit!;Big D smiles when he sees you in one of his coats!" + icon_state = "suit" + icon_vend = "suit-purchase" + vend_delay = 16 + products = list(/obj/item/clothing/suit/storage/apron = 5, + /obj/item/clothing/suit/storage/flannel/aqua = 5, + /obj/item/clothing/suit/storage/toggle/bomber = 5, + /obj/item/clothing/suit/storage/bomber/alt = 5, + /obj/item/clothing/suit/storage/flannel/brown = 5, + /obj/item/clothing/suit/storage/toggle/cardigan = 5, + /obj/item/clothing/accessory/poncho/roles/cloak/custom = 5, + /obj/item/clothing/suit/storage/duster = 5, + /obj/item/clothing/suit/storage/toggle/denim_jacket = 5, + /obj/item/clothing/suit/storage/toggle/denim_jacket/nanotrasen = 5, + /obj/item/clothing/suit/storage/toggle/denim_jacket/sleeveless = 5, + /obj/item/clothing/suit/storage/toggle/denim_jacket/nanotrasen/sleeveless = 5, + /obj/item/clothing/suit/storage/fluff/gntop = 5, + /obj/item/clothing/suit/greatcoat = 5, + /obj/item/clothing/suit/storage/flannel = 5, + /obj/item/clothing/suit/storage/greyjacket = 5, + /obj/item/clothing/suit/storage/hazardvest = 5, + /obj/item/clothing/suit/storage/toggle/hoodie/black = 5, + /obj/item/clothing/suit/storage/toggle/hoodie/red = 5, + /obj/item/clothing/suit/storage/toggle/hoodie/blue = 5, + /obj/item/clothing/suit/storage/toggle/hoodie/green = 5, + /obj/item/clothing/suit/storage/toggle/hoodie/orange = 5, + /obj/item/clothing/suit/storage/toggle/hoodie/yellow = 5, + /obj/item/clothing/suit/storage/toggle/hoodie/cti = 5, + /obj/item/clothing/suit/storage/toggle/hoodie/mu = 5, + /obj/item/clothing/suit/storage/toggle/hoodie/nt = 5, + /obj/item/clothing/suit/storage/toggle/hoodie/smw = 5, + /obj/item/clothing/suit/storage/toggle/hoodie/nrti = 5, + /obj/item/clothing/suit/storage/fluff/jacket/field = 5, + /obj/item/clothing/suit/storage/fluff/jacket/air_cavalry = 5, + /obj/item/clothing/suit/storage/fluff/jacket/air_force = 5, + /obj/item/clothing/suit/storage/fluff/jacket/navy = 5, + /obj/item/clothing/suit/storage/fluff/jacket/special_forces = 5, + /obj/item/clothing/suit/kamishimo = 5, + /obj/item/clothing/suit/kimono = 5, + /obj/item/clothing/suit/storage/toggle/labcoat = 5, + /obj/item/clothing/suit/storage/toggle/labcoat/blue = 5, + /obj/item/clothing/suit/storage/toggle/labcoat/blue_edge = 5, + /obj/item/clothing/suit/storage/toggle/labcoat/green = 5, + /obj/item/clothing/suit/storage/toggle/labcoat/orange = 5, + /obj/item/clothing/suit/storage/toggle/labcoat/pink = 5, + /obj/item/clothing/suit/storage/toggle/labcoat/red = 5, + /obj/item/clothing/suit/storage/toggle/labcoat/yellow = 5, + /obj/item/clothing/suit/leathercoat = 5, + /obj/item/clothing/suit/storage/toggle/leather_jacket = 5, + /obj/item/clothing/suit/storage/leather_jacket_alt = 5, + /obj/item/clothing/suit/storage/toggle/brown_jacket = 5, + /obj/item/clothing/suit/storage/toggle/leather_jacket/nanotrasen = 5, + /obj/item/clothing/suit/storage/toggle/brown_jacket/nanotrasen = 5, + /obj/item/clothing/suit/storage/toggle/leather_jacket/sleeveless = 5, + /obj/item/clothing/suit/storage/toggle/brown_jacket/sleeveless = 5, + /obj/item/clothing/suit/storage/toggle/leather_jacket/nanotrasen/sleeveless = 5, + /obj/item/clothing/suit/storage/toggle/brown_jacket/nanotrasen/sleeveless = 5, + /obj/item/clothing/suit/storage/miljacket = 5, + /obj/item/clothing/suit/storage/miljacket/alt = 5, + /obj/item/clothing/suit/storage/miljacket/green = 5, + /obj/item/clothing/suit/storage/apron/overalls = 5, + /obj/item/clothing/suit/storage/toggle/peacoat = 5, + /obj/item/clothing/accessory/poncho = 5, + /obj/item/clothing/accessory/poncho/green = 5, + /obj/item/clothing/accessory/poncho/red = 5, + /obj/item/clothing/accessory/poncho/purple = 5, + /obj/item/clothing/accessory/poncho/blue = 5, + /obj/item/clothing/suit/jacket/puffer = 5, + /obj/item/clothing/suit/jacket/puffer/vest = 5, + /obj/item/clothing/suit/storage/flannel/red = 5, + /obj/item/clothing/suit/unathi/robe = 5, + /obj/item/clothing/suit/storage/snowsuit = 5, + /obj/item/clothing/suit/storage/toggle/internalaffairs = 5, + /obj/item/clothing/suit/storage/toggle/lawyer/bluejacket = 5, + /obj/item/clothing/suit/storage/toggle/lawyer/purpjacket = 5, + /obj/item/clothing/suit/suspenders = 5, + /obj/item/clothing/suit/storage/toggle/track = 5, + /obj/item/clothing/suit/storage/toggle/track/blue = 5, + /obj/item/clothing/suit/storage/toggle/track/green = 5, + /obj/item/clothing/suit/storage/toggle/track/red = 5, + /obj/item/clothing/suit/storage/toggle/track/white = 5, + /obj/item/clothing/suit/storage/trench = 5, + /obj/item/clothing/suit/storage/trench/grey = 5, + /obj/item/clothing/suit/varsity = 5, + /obj/item/clothing/suit/varsity/red = 5, + /obj/item/clothing/suit/varsity/purple = 5, + /obj/item/clothing/suit/varsity/green = 5, + /obj/item/clothing/suit/varsity/blue = 5, + /obj/item/clothing/suit/varsity/brown = 5, + /obj/item/clothing/suit/storage/hooded/wintercoat = 5, + /obj/item/clothing/suit/storage/seromi/cloak/standard/white_grey = 5) + prices = list(/obj/item/clothing/suit/storage/apron = 200, + /obj/item/clothing/suit/storage/flannel/aqua = 200, + /obj/item/clothing/suit/storage/toggle/bomber = 200, + /obj/item/clothing/suit/storage/bomber/alt = 200, + /obj/item/clothing/suit/storage/flannel/brown = 200, + /obj/item/clothing/suit/storage/toggle/cardigan = 200, + /obj/item/clothing/accessory/poncho/roles/cloak/custom = 200, + /obj/item/clothing/suit/storage/duster = 200, + /obj/item/clothing/suit/storage/toggle/denim_jacket = 200, + /obj/item/clothing/suit/storage/toggle/denim_jacket/nanotrasen = 200, + /obj/item/clothing/suit/storage/toggle/denim_jacket/sleeveless = 200, + /obj/item/clothing/suit/storage/toggle/denim_jacket/nanotrasen/sleeveless = 200, + /obj/item/clothing/suit/storage/fluff/gntop = 200, + /obj/item/clothing/suit/greatcoat = 200, + /obj/item/clothing/suit/storage/flannel = 200, + /obj/item/clothing/suit/storage/greyjacket = 200, + /obj/item/clothing/suit/storage/hazardvest = 200, + /obj/item/clothing/suit/storage/toggle/hoodie/black = 200, + /obj/item/clothing/suit/storage/toggle/hoodie/red = 200, + /obj/item/clothing/suit/storage/toggle/hoodie/blue = 200, + /obj/item/clothing/suit/storage/toggle/hoodie/green = 200, + /obj/item/clothing/suit/storage/toggle/hoodie/orange = 200, + /obj/item/clothing/suit/storage/toggle/hoodie/yellow = 200, + /obj/item/clothing/suit/storage/toggle/hoodie/cti = 200, + /obj/item/clothing/suit/storage/toggle/hoodie/mu = 200, + /obj/item/clothing/suit/storage/toggle/hoodie/nt = 200, + /obj/item/clothing/suit/storage/toggle/hoodie/smw = 200, + /obj/item/clothing/suit/storage/toggle/hoodie/nrti = 200, + /obj/item/clothing/suit/storage/fluff/jacket/field = 200, + /obj/item/clothing/suit/storage/fluff/jacket/air_cavalry = 200, + /obj/item/clothing/suit/storage/fluff/jacket/air_force = 200, + /obj/item/clothing/suit/storage/fluff/jacket/navy = 200, + /obj/item/clothing/suit/storage/fluff/jacket/special_forces = 200, + /obj/item/clothing/suit/kamishimo = 200, + /obj/item/clothing/suit/kimono = 200, + /obj/item/clothing/suit/storage/toggle/labcoat = 200, + /obj/item/clothing/suit/storage/toggle/labcoat/blue = 200, + /obj/item/clothing/suit/storage/toggle/labcoat/blue_edge = 200, + /obj/item/clothing/suit/storage/toggle/labcoat/green = 200, + /obj/item/clothing/suit/storage/toggle/labcoat/orange = 200, + /obj/item/clothing/suit/storage/toggle/labcoat/pink = 200, + /obj/item/clothing/suit/storage/toggle/labcoat/red = 200, + /obj/item/clothing/suit/storage/toggle/labcoat/yellow = 200, + /obj/item/clothing/suit/leathercoat = 200, + /obj/item/clothing/suit/storage/toggle/leather_jacket = 200, + /obj/item/clothing/suit/storage/leather_jacket_alt = 200, + /obj/item/clothing/suit/storage/toggle/brown_jacket = 200, + /obj/item/clothing/suit/storage/toggle/leather_jacket/nanotrasen = 200, + /obj/item/clothing/suit/storage/toggle/brown_jacket/nanotrasen = 200, + /obj/item/clothing/suit/storage/toggle/leather_jacket/sleeveless = 200, + /obj/item/clothing/suit/storage/toggle/brown_jacket/sleeveless = 200, + /obj/item/clothing/suit/storage/toggle/leather_jacket/nanotrasen/sleeveless = 200, + /obj/item/clothing/suit/storage/toggle/brown_jacket/nanotrasen/sleeveless = 200, + /obj/item/clothing/suit/storage/miljacket = 200, + /obj/item/clothing/suit/storage/miljacket/alt = 200, + /obj/item/clothing/suit/storage/miljacket/green = 200, + /obj/item/clothing/suit/storage/apron/overalls = 100, + /obj/item/clothing/suit/storage/toggle/peacoat = 200, + /obj/item/clothing/accessory/poncho = 100, + /obj/item/clothing/accessory/poncho/green = 100, + /obj/item/clothing/accessory/poncho/red = 100, + /obj/item/clothing/accessory/poncho/purple = 100, + /obj/item/clothing/accessory/poncho/blue = 100, + /obj/item/clothing/suit/jacket/puffer = 200, + /obj/item/clothing/suit/jacket/puffer/vest = 200, + /obj/item/clothing/suit/storage/flannel/red = 200, + /obj/item/clothing/suit/unathi/robe = 100, + /obj/item/clothing/suit/storage/snowsuit = 200, + /obj/item/clothing/suit/storage/toggle/internalaffairs = 200, + /obj/item/clothing/suit/storage/toggle/lawyer/bluejacket = 200, + /obj/item/clothing/suit/storage/toggle/lawyer/purpjacket = 200, + /obj/item/clothing/suit/suspenders = 200, + /obj/item/clothing/suit/storage/toggle/track = 200, + /obj/item/clothing/suit/storage/toggle/track/blue = 200, + /obj/item/clothing/suit/storage/toggle/track/green = 200, + /obj/item/clothing/suit/storage/toggle/track/red = 200, + /obj/item/clothing/suit/storage/toggle/track/white = 200, + /obj/item/clothing/suit/storage/trench = 200, + /obj/item/clothing/suit/storage/trench/grey = 200, + /obj/item/clothing/suit/varsity = 200, + /obj/item/clothing/suit/varsity/red = 200, + /obj/item/clothing/suit/varsity/purple = 200, + /obj/item/clothing/suit/varsity/green = 200, + /obj/item/clothing/suit/varsity/blue = 200, + /obj/item/clothing/suit/varsity/brown = 200, + /obj/item/clothing/suit/storage/hooded/wintercoat = 200, + /obj/item/clothing/suit/storage/seromi/cloak/standard/white_grey = 200) + premium = list(/obj/item/clothing/suit/imperium_monk = 3) + contraband = list(/obj/item/toy/katana = 1) + +/obj/machinery/vending/loadout/costume + name = "Thespian's Delight" + desc = "Sometimes nerds need costumes!" + product_ads = "Don't let your art be stifled!;Remember, practice makes perfect!;Break a leg!;Don't make me get the cane!;Thespian's Delight entering stage right!;Costumes for your acting needs!" + icon_state = "Theater_b" + products = list(/obj/item/clothing/suit/storage/hooded/carp_costume = 3, + /obj/item/clothing/suit/storage/hooded/carp_costume = 3, + /obj/item/clothing/suit/chickensuit = 3, + /obj/item/clothing/head/chicken = 3, + /obj/item/clothing/head/helmet/gladiator = 3, + /obj/item/clothing/under/gladiator = 3, + /obj/item/clothing/suit/storage/toggle/labcoat/mad = 3, + /obj/item/clothing/under/gimmick/rank/captain/suit = 3, + /obj/item/clothing/glasses/gglasses = 3, + /obj/item/clothing/head/flatcap = 3, + /obj/item/clothing/shoes/boots/jackboots = 3, + /obj/item/clothing/under/schoolgirl = 3, + /obj/item/clothing/head/kitty = 3, + /obj/item/clothing/glasses/sunglasses/blindfold = 3, + /obj/item/clothing/head/beret = 3, + /obj/item/clothing/under/skirt = 3, + /obj/item/clothing/under/suit_jacket = 3, + /obj/item/clothing/head/that = 3, + /obj/item/clothing/accessory/wcoat = 3, + /obj/item/clothing/under/scratch = 3, + /obj/item/clothing/shoes/white = 3, + /obj/item/clothing/gloves/white = 3, + /obj/item/clothing/under/kilt = 3, + /obj/item/clothing/glasses/monocle = 3, + /obj/item/clothing/under/sl_suit = 3, + /obj/item/clothing/mask/fakemoustache = 3, + /obj/item/weapon/cane = 3, + /obj/item/clothing/head/bowler = 3, + /obj/item/clothing/head/plaguedoctorhat = 3, + /obj/item/clothing/suit/bio_suit/plaguedoctorsuit = 3, + /obj/item/clothing/mask/gas/plaguedoctor/fluff = 3, + /obj/item/clothing/under/owl = 3, + /obj/item/clothing/mask/gas/owl_mask = 3, + /obj/item/clothing/under/waiter = 3, + /obj/item/clothing/suit/storage/apron = 3, + /obj/item/clothing/under/pirate = 3, + /obj/item/clothing/head/pirate = 3, + /obj/item/clothing/suit/pirate = 3, + /obj/item/clothing/glasses/eyepatch = 3, + /obj/item/clothing/head/ushanka = 3, + /obj/item/clothing/under/soviet = 3, + /obj/item/clothing/suit/imperium_monk = 1, + /obj/item/clothing/suit/holidaypriest = 3, + /obj/item/clothing/head/witchwig = 3, + /obj/item/clothing/under/sundress = 3, + /obj/item/weapon/staff/broom = 3, + /obj/item/clothing/suit/wizrobe/fake = 3, + /obj/item/clothing/head/wizard/fake = 3, + /obj/item/weapon/staff = 3, + /obj/item/clothing/mask/gas/sexyclown = 3, + /obj/item/clothing/under/sexyclown = 3, + /obj/item/clothing/mask/gas/sexymime = 3, + /obj/item/clothing/under/sexymime = 3) + prices = list(/obj/item/clothing/suit/storage/hooded/carp_costume = 200, + /obj/item/clothing/suit/storage/hooded/carp_costume = 200, + /obj/item/clothing/suit/chickensuit = 200, + /obj/item/clothing/head/chicken = 200, + /obj/item/clothing/head/helmet/gladiator = 300, + /obj/item/clothing/under/gladiator = 500, + /obj/item/clothing/suit/storage/toggle/labcoat/mad = 200, + /obj/item/clothing/under/gimmick/rank/captain/suit = 200, + /obj/item/clothing/glasses/gglasses = 200, + /obj/item/clothing/head/flatcap = 200, + /obj/item/clothing/shoes/boots/jackboots = 200, + /obj/item/clothing/under/schoolgirl = 200, + /obj/item/clothing/head/kitty = 200, + /obj/item/clothing/glasses/sunglasses/blindfold = 200, + /obj/item/clothing/head/beret = 200, + /obj/item/clothing/under/skirt = 200, + /obj/item/clothing/under/suit_jacket = 200, + /obj/item/clothing/head/that = 200, + /obj/item/clothing/accessory/wcoat = 200, + /obj/item/clothing/under/scratch = 200, + /obj/item/clothing/shoes/white = 200, + /obj/item/clothing/gloves/white = 200, + /obj/item/clothing/under/kilt = 200, + /obj/item/clothing/glasses/monocle = 400, + /obj/item/clothing/under/sl_suit = 200, + /obj/item/clothing/mask/fakemoustache = 200, + /obj/item/weapon/cane = 300, + /obj/item/clothing/head/bowler = 200, + /obj/item/clothing/head/plaguedoctorhat = 300, + /obj/item/clothing/suit/bio_suit/plaguedoctorsuit = 300, + /obj/item/clothing/mask/gas/plaguedoctor/fluff = 600, + /obj/item/clothing/under/owl = 400, + /obj/item/clothing/mask/gas/owl_mask = 400, + /obj/item/clothing/under/waiter = 200, + /obj/item/clothing/suit/storage/apron = 200, + /obj/item/clothing/under/pirate = 300, + /obj/item/clothing/head/pirate = 400, + /obj/item/clothing/suit/pirate = 600, + /obj/item/clothing/glasses/eyepatch = 200, + /obj/item/clothing/head/ushanka = 200, + /obj/item/clothing/under/soviet = 200, + /obj/item/clothing/suit/imperium_monk = 2000, + /obj/item/clothing/suit/holidaypriest = 200, + /obj/item/clothing/head/witchwig = 200, + /obj/item/clothing/under/sundress = 200, + /obj/item/weapon/staff/broom = 400, + /obj/item/clothing/suit/wizrobe/fake = 200, + /obj/item/clothing/head/wizard/fake = 200, + /obj/item/weapon/staff = 400, + /obj/item/clothing/mask/gas/sexyclown = 600, + /obj/item/clothing/under/sexyclown = 200, + /obj/item/clothing/mask/gas/sexymime = 600, + /obj/item/clothing/under/sexymime = 200) + premium = list(/obj/item/clothing/suit/imperium_monk = 3, + /obj/item/clothing/suit/barding/agatha = 2, + /obj/item/clothing/suit/barding/alt_agatha = 2, + /obj/item/clothing/suit/barding/mason = 2, + /obj/item/clothing/suit/drake_cloak = 2) + contraband = list(/obj/item/clothing/head/syndicatefake = 1, + /obj/item/clothing/suit/syndicatefake = 1) + +//TFF 19/12/19 - Brig version of a seed storage vendor +/obj/machinery/seed_storage/brig + name = "Prisoners' food seed storage" + starting_seeds = list( + /obj/item/seeds/appleseed = 3, + /obj/item/seeds/bananaseed = 3, + /obj/item/seeds/berryseed = 3, + /obj/item/seeds/cabbageseed = 3, + /obj/item/seeds/carrotseed = 3, + /obj/item/seeds/celery = 3, + /obj/item/seeds/chantermycelium = 3, + /obj/item/seeds/cherryseed = 3, + /obj/item/seeds/chiliseed = 3, + /obj/item/seeds/cocoapodseed = 3, + /obj/item/seeds/cornseed = 3, + /obj/item/seeds/durian = 3, + /obj/item/seeds/eggplantseed = 3, + /obj/item/seeds/grapeseed = 3, + /obj/item/seeds/grassseed = 3, + /obj/item/seeds/replicapod = 3, + /obj/item/seeds/lavenderseed = 3, + /obj/item/seeds/lemonseed = 3, + /obj/item/seeds/lettuce = 3, + /obj/item/seeds/limeseed = 3, + /obj/item/seeds/mtearseed = 2, + /obj/item/seeds/orangeseed = 3, + /obj/item/seeds/onionseed = 3, + /obj/item/seeds/peanutseed = 3, + /obj/item/seeds/plumpmycelium = 3, + /obj/item/seeds/poppyseed = 3, + /obj/item/seeds/potatoseed = 3, + /obj/item/seeds/pumpkinseed = 3, + /obj/item/seeds/rhubarb = 3, + /obj/item/seeds/riceseed = 3, + /obj/item/seeds/rose = 3, + /obj/item/seeds/soyaseed = 3, + /obj/item/seeds/spineapple = 3, + /obj/item/seeds/sugarcaneseed = 3, + /obj/item/seeds/sunflowerseed = 3, + /obj/item/seeds/shandseed = 2, + /obj/item/seeds/tobaccoseed = 3, + /obj/item/seeds/tomatoseed = 3, + /obj/item/seeds/towermycelium = 3, + /obj/item/seeds/vanilla = 3, + /obj/item/seeds/watermelonseed = 3, + /obj/item/seeds/wheatseed = 3, + /obj/item/seeds/whitebeetseed = 3, + /obj/item/seeds/wabback = 2) + +//TFF 19/12/19 - Brig version of a Nutrimax +/obj/machinery/vending/hydronutrients/brig + name = "Brig NutriMax" + desc = "A plant nutrients vendor. Seems some items aren't included." + product_slogans = "Aren't you glad you don't have to fertilize the natural way?;Now with 50% less stink!;Plants are people too!" + product_ads = "We like plants!;Don't you want some?;The greenest thumbs ever.;We like big plants.;Soft soil..." + icon_state = "nutri" + icon_deny = "nutri-deny" + products = list(/obj/item/weapon/reagent_containers/glass/bottle/eznutrient = 6,/obj/item/weapon/reagent_containers/glass/bottle/left4zed = 4,/obj/item/weapon/reagent_containers/glass/bottle/robustharvest = 3,/obj/item/weapon/plantspray/pests = 20, + /obj/item/weapon/reagent_containers/glass/beaker = 4,/obj/item/weapon/storage/bag/plants = 5) + premium = list(/obj/item/weapon/reagent_containers/glass/bottle/ammonia = 10,/obj/item/weapon/reagent_containers/glass/bottle/diethylamine = 5) diff --git a/code/game/objects/items/weapons/material/twohanded.dm b/code/game/objects/items/weapons/material/twohanded.dm index dbc573cf26e..1e013a9b3da 100644 --- a/code/game/objects/items/weapons/material/twohanded.dm +++ b/code/game/objects/items/weapons/material/twohanded.dm @@ -157,3 +157,18 @@ fragile = 1 //It's a haphazard thing of glass, wire, and steel reach = 2 // Spears are long. attackspeed = 14 + +//This is mostly for centaurs. +/obj/item/weapon/material/twohanded/spear/lance + name = "lance" + desc = "End him rightly" + icon = 'icons/obj/weapons.dmi' + icon_state = "lance" + item_state = "lance" + force_divisor = 0.3 + force = 10 + thrown_force_divisor = 1 + default_material = "DEFAULT_WALL_MATERIAL" + fragile = 0 + sharp = 1 + edge = 0 \ No newline at end of file diff --git a/code/modules/clothing/suits/miscellaneous.dm b/code/modules/clothing/suits/miscellaneous.dm index 91f441fa373..d0174e5de03 100644 --- a/code/modules/clothing/suits/miscellaneous.dm +++ b/code/modules/clothing/suits/miscellaneous.dm @@ -40,6 +40,18 @@ item_state_slots = list(slot_r_hand_str = "greatcoat", slot_l_hand_str = "greatcoat") body_parts_covered = UPPER_TORSO|ARMS +/obj/item/clothing/suit/poncho + name = "poncho" + desc = "A simple, comfortable poncho." + icon = 'icons/mob/suit.dmi' + icon_state = "poncho" + item_state = "poncho" + item_icons = list( + slot_l_hand_str = 'icons/mob/items/lefthand_vr.dmi', + slot_r_hand_str = 'icons/mob/items/righthand_vr.dmi', + ) + body_parts_covered = UPPER_TORSO|ARMS + /obj/item/clothing/suit/hgpirate name = "pirate captain coat" desc = "Yarr." diff --git a/code/modules/clothing/suits/miscellaneous_vr.dm b/code/modules/clothing/suits/miscellaneous_vr.dm new file mode 100644 index 00000000000..8caf5a8e398 --- /dev/null +++ b/code/modules/clothing/suits/miscellaneous_vr.dm @@ -0,0 +1,70 @@ +//HERE BE TAUR RELATED CLOTHES + +/* + * Contains: + * Centaur Barding + * Drake cloak + * Centaur Wedding dress + */ + + +/obj/item/clothing/suit/drake_cloak + name = "drake cloak" + desc = "A simple cloak for drake-taurs." + icon = 'icons/mob/taursuits_drake_vr.dmi' + icon_state = "cloak" + item_state_slots = list(slot_r_hand_str = "capjacket", slot_l_hand_str = "capjacket") + body_parts_covered = UPPER_TORSO|ARMS + pixel_x = -16 + +/obj/item/clothing/suit/drake_cloak/mob_can_equip(var/mob/living/carbon/human/H, slot, disable_warning = 0) + if(..()) + if(istype(H) && istype(H.tail_style, /datum/sprite_accessory/tail/taur/drake)) + return ..() + else + to_chat(H, "You need to have a drake-taur half to wear this.") + return 0 + +/obj/item/clothing/suit/barding + description_info = "You need to be a horsy to wear that." + icon = 'icons/mob/taursuits_horse_vr.dmi' + item_state_slots = list(slot_r_hand_str = "capjacket", slot_l_hand_str = "capjacket") + body_parts_covered = UPPER_TORSO|ARMS|LOWER_TORSO|LEGS + pixel_x = -16 + armor = list(melee = 5, bullet = 5, laser = 5, energy = 5, bomb = 5, bio = 0, rad = 0)//Minor armor for fluff. + +/obj/item/clothing/suit/barding/mob_can_equip(var/mob/living/carbon/human/H, slot, disable_warning = 0) + if(..()) + if(istype(H) && istype(H.tail_style, /datum/sprite_accessory/tail/taur/horse)) + return ..() + else + to_chat(H, "You need to have a horse-taur half to wear this.") + return 0 + +//Bardings are medieval suits of armor. +/obj/item/clothing/suit/barding/agatha + name = "Agatha barding" + desc = "Knightly armor for a mount who doesn't need any rider. This one is marked to the house of Agatha." + icon_state = "Agatha_barding" + +/obj/item/clothing/suit/barding/alt_agatha + name = "Agatha barding" + desc = "Knightly armor for a mount who doesn't need any rider. This one is marked to the house of Agatha." + icon_state = "Agatha_barding_alt" + +/obj/item/clothing/suit/barding/mason + name = "Mason barding" + desc = "Knightly armor for a mount who doesn't need any rider. This one is marked to the house of Mason." + icon_state = "Mason_barding" + +/obj/item/clothing/suit/taur_dress + icon = 'icons/mob/taursuits_horse_vr.dmi' + body_parts_covered = UPPER_TORSO|LOWER_TORSO + pixel_x = -16 + +/obj/item/clothing/suit/taur_dress/white + name = "white wedding dress" + desc = "A fancy white dress with a blue underdress." + icon_state = "whitedress1" + flags_inv = HIDESHOES + diff --git a/code/modules/vore/appearance/sprite_accessories_taur_vr.dm b/code/modules/vore/appearance/sprite_accessories_taur_vr.dm index d4fd1f13dcf..6866cb0d2ce 100644 --- a/code/modules/vore/appearance/sprite_accessories_taur_vr.dm +++ b/code/modules/vore/appearance/sprite_accessories_taur_vr.dm @@ -124,6 +124,7 @@ color_blend_mode = ICON_MULTIPLY // The sprites for taurs are designed for ICON_MULTIPLY var/icon/suit_sprites = null //File for suit sprites, if any. + var/icon/under_sprites = null var/can_ride = 1 //whether we're real rideable taur or just in that category @@ -169,6 +170,7 @@ /datum/sprite_accessory/tail/taur/wolf name = "Wolf (Taur)" icon_state = "wolf_s" + under_sprites = 'icons/mob/taursuits_wolf_vr.dmi' suit_sprites = 'icons/mob/taursuits_wolf_vr.dmi' /datum/sprite_accessory/tail/taur/wolf/wolf_2c @@ -221,6 +223,7 @@ /datum/sprite_accessory/tail/taur/horse name = "Horse (Taur)" icon_state = "horse_s" + under_sprites = 'icons/mob/taursuits_horse_vr.dmi' suit_sprites = 'icons/mob/taursuits_horse_vr.dmi' msg_owner_disarm_run = "You quickly push %prey to the ground with your hoof!" @@ -301,6 +304,7 @@ /datum/sprite_accessory/tail/taur/spider name = "Spider (Taur)" icon_state = "spider_s" + suit_sprites = 'icons/mob/taursuits_spider_vr.dmi' msg_owner_disarm_run = "You quickly push %prey to the ground with your leg!" msg_prey_disarm_run = "%owner pushes you down to the ground with their leg!" @@ -346,6 +350,7 @@ /datum/sprite_accessory/tail/taur/feline name = "Feline (Taur)" icon_state = "feline_s" + suit_sprites = 'icons/mob/taursuits_feline_vr.dmi' /datum/sprite_accessory/tail/taur/feline/feline_2c name = "Feline dual-color (Taur)" @@ -396,6 +401,7 @@ name = "Drake (Taur)" icon_state = "drake_s" extra_overlay = "drake_markings" + suit_sprites = 'icons/mob/taursuits_drake_vr.dmi' /datum/sprite_accessory/tail/taur/otie name = "Otie (Taur)" diff --git a/icons/mob/items/lefthand_material.dmi b/icons/mob/items/lefthand_material.dmi index a2f035cd582687c6921fb1a2f7fed32d8122ca9a..f4638a46969f47aa8654eed123f621e53a8b3e41 100644 GIT binary patch literal 19407 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�V`z{n3g<^%;5g2&_zNd5>us-xqnrm}P<3QD6% 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 literal 18757 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 diff --git a/icons/mob/items/lefthand_vr.dmi b/icons/mob/items/lefthand_vr.dmi index a10b0dc81cf032f9e99a1d5431d807dd749bd0bc..a858ce98a3c281dda454c5f141436a66f4196fba 100644 GIT binary patch delta 730 zcmV<00ww*!1)K+v7Y=|30{{R3^x%>C0001cktIw>kpKX^LPFCwH>fBmk&ytqyke-R zL*e3fHIV>iwQ5|YU`Lrv02q-bN1#4lw>VX$NpIM9ioK)&0004WQchC=Gax}2j=Os zjZM#{Yjw*?bidEa&=EmcpAaGpcq6dwzgIbb86phFwZJ&kDy*|dd#lQuqtFrKi8&y| zWUNQPlW*;mWA1+_I_cleF<_*eMcl2JIbN#0o30c9000000A8?v zANT|N0om*aZ|`Phvh)#%k?Tv)79D=^X)F*>FYbsl4MR1$aki@mhcF;EJ@}Rfo+~wF%FnVWd;%^@k~ztsfoVxH9}Jfz#T@*SFTM&ks|kEpnE(I) M07*qoM6N<$f<|vw=l}o! delta 512 zcmV+b0{{J-2g3!B7Y<+u0{{R3;-rdu0000;ktIwOjUICe00001bW%=J06^y0W&i*H zeUZ6xe_ZO66lMp+7?;0004?Nklgzf?-*Oar6)VAkbGb>Kdt==Zk{3eJx}1n$RKpQE@? zHQe6mR&oDB#ccnWqhzS;Ld6rG<5}yMiA@0j00000unGEsKhO{8p&!uS=?AnfI|HTG zfBb$x@9zin)pY%UxoUPlFt`tfyd2&B(hU88DK)nr=-mgyHb+iBpv}||7^Z>IeK6~C zWb^|j><0|9AJ8W52ihFZ>Idfg#~i=g4;b_V000000002+f4JR`mbl+Ihpm0AJ)#L! zk;KDVH>FZN>$OKTp;shPKPxw-Qdg@6PG~~!NW$O04>3R!vI_<*d4JN_EdwN>xkPOn z`u?O@51A?yNxV1)J{vC+g(8XO!!WSLVL||aqxb=-6%9nSXD=fF0000Uw diff --git a/icons/mob/items/righthand_material.dmi b/icons/mob/items/righthand_material.dmi index 6895183a5b4782814f09fa3e70b3c1e56422952e..f9e342e32f3666b6c8618ae84e2e65d76376b890 100644 GIT binary patch literal 19296 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

o~K!p(DVq`3z0#w8i>Kv)m$_=X# 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 GPyY?8TyOXQ diff --git a/icons/mob/items/righthand_vr.dmi b/icons/mob/items/righthand_vr.dmi index 489a6b6e015d6077067e767d173e1f49a865e3c7..5871a7ebb05f52d5406282e875694224781fb96a 100644 GIT binary patch delta 720 zcmV;>0x$ix1(FAl7Y=|30{{R3^x%>C0001cktIw>kpKX^LPFCwH>fBmk&ytqyke-R zL*e3fHIV>iwQ5|YU`Lrv02q-bN1#4lw>VX$NpIN51!t@P0004WQchCFyU;H=-hO|v5}5o`Xg5b}=5P`6R-sD-`_ZTCjpRSWv7sgY0^G@_ud%UrJ`3e94000000NkGC88$h% zx&CUItuyzjdVJ=p-sO6gW!Y-2F(5I|^=|U_ZJy`b_w7buKwzHh-8lKJ)6W%a1|;U$ z-rdLk3P<#Qrkv5TBydjhT0000lMp+7?;0004#NklFvhtULX!Xg z)0zhQ0FsJ4E$wvnylyS+Dw)i5jR61vFk$U6Z}?en>S_6j>W%c*d6sh8%QNSink8kl zwsPtdyhQZYl%2%qYGw}Cr5jaR-lK_GoXYZ5z+SBCVE42bHMN8;k}$|$ao)$JPg p3nM5`aiXYhc(Q(Z1px3zc?a8R4IKo+jjI3v002ovPDHLkV1kSN=(_*_ diff --git a/icons/mob/taursuits_cow_vr.dmi b/icons/mob/taursuits_cow_vr.dmi index a369157df230fe2c96c69bd702971d99933bf45f..eef5bd698c441da88c4b6fa46e346ab1c811256c 100644 GIT binary patch delta 1233 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 EF9V~Sn*aa+ literal 61372 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

$ZTUl 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 diff --git a/icons/mob/taursuits_lizard_vr.dmi b/icons/mob/taursuits_lizard_vr.dmi index 67628994ded5abb5d0ebd6bf6dc12dea526b1a92..2971beb86351f9110bbfa88f7f2180eca8e73b45 100644 GIT binary patch literal 4194 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 Z#FU=7aqUb082HlwFt}`@Q?2D3_g{+-*th@y literal 3495 zcmW+(c{r5a8-8aDhA@asVob=sOr;Da>sUs%?E6yL`mEXavGZAzt+GahOrf%cK}b`k z$d+u`W2i)Y#`Jsp{c+ysdavs}&w1|Wocq4dn{H;J&&e*x4gdfr!2oX#Mj|*g;Vj^D zbRsSe3?Y%0w!wJ!pc}Wn1A@K%{Qw}mgt_-TS09Fh`Gbo3fK8{^XFVThvxhP|QOPpq z=3gPX*O?~Qx_ExK)d;&?{nhBSat!TvAuY$6KZy_AUA8aKzlbTk_o>+mlT!FX=s%t_ zZ}>OZQzXOo=}*`P@nT<5+%NHQJzi%f-Ntj#0Kh>b;I%BnOK6U>CT9qz7#+0G))^Kb zMXsqdOe(bbMfh={+Y^c15kMjLRH!wid0d$CswH+tyL zbxkQFz4hp@KI}el+UVJg?{8C@u0`qKl;(v%HKh7*b7w=R(^|<>lTuYDD@TdDz2_7Z z4y63 zf8%?>^|tTIJ~k4P$-m= z`ugJHVr<_*dOBNuz0Bw71Hj}GX>yPiw-0dSiMxe{7S`9Z+ZCQA@LF2=>RRFSFF(+A zaS<_m#5*`R_!tdO!;8N0Xpyf&O#X}K-ei}fK&iWJ@W%NpFrf_Pf-RGo6~9Z&p4HXm z-UO=q$>j2I-6f;cZ53<|Mquv$|qqPWGy zi4a?VM)5LXY$V}Obvc3a+VQq>dL5me1i4dUVtfbB9ATX)(hW`vg(AS)mF62;$Hy`G z6nDTYonAHo%*@QN102ws{jA?{2;(s{f%kGWxq?kj*!g6ZUb@ZRPj(}QtPP1908wNw zo=ApTT7{5)m@{gkh)qrB?;A<*aHX;V(JWGl5(~SB01(?Fl2{Xi0{Rv)1c|%8OU%V| zjt-KTVAex3DQvly61&r6=|8XXdp2NGGcy)S#yVkPtvU$;v1BDr)OtFM33{B z>7o7t#AB!Ctxa%m+h=E;o-{T}Zy!-*1&8Oy$CIF;$C)cG{ZyW1`qCDdh_AZV zmxM^|Up_l_< z`Cur@iB;t=|oSdWPBlH^SVq#)2Aa7Xwyz$s!cf_uQcQW1B7}m}VC3bhK4>h{C z*sVO@1#*XP7T&k+mFWLJbhc#e1IE!#0fQ0SH%M16N8GRJZI+Wf$Dkhu>9f8soF5B= zO#4`$78De%@kX7G#2}O0?QC6K{4?J4puY6u%BiWEXrP?RI;O+}hq>CFGJG_8XY-Y& zMJJ#fwe$n~cVdd0CO0fNG*px~9nG6gT#K+ROs=dvn`b0J=sKc`-P-g=f*qR&Hz$C@ zL^>pR^yA0)xjAR^9fk+FB@D8(w4{W}sj_bb_2}R@HtivNOsUfQ{#};Y`FZ^p_5)S= zIiJ79kl(%I;ABa(b#iLlT;WZJfxzG}C`gI>HH*E8tj3e^wY!inDb7w#R#J}+7E?v| zuJN6PLzRqon^nuMySc?*tsO(6P$acil$G0WzkREJ=q-r9hDURgKYjXiNM*uoZEZ=_ zc=t8Sd8S!3T0^Fet4N#Aq=JLux#Vk1Y<*4Jkh zC)`qH!*N2Dm6dbaH1vp{7jjDdm3@4DOQqj9+1Xu7Nli_cqdc~hF>bu;33I&`he6^& zV7qHn{>xw5Bll!LqJB`~EHGpSX=aE+`DYlRbz}+zX*AloCR>jBdew9^xzMH1osXSa z@@#dzjH;?CnsTA0rpBw~D})L+Q|o3W9{t|A3l7=sKz}u{a;ofM^qdOg*O=+BWO?*$ zBZiSgi;{{8o1wHgLA%cKmVGJiEP0-h|1gf5$R&_kZe3YzF3m+=&xAij?FX~+tuMwW zmkPT_N0+=D^CHtApi248cfTK43KV2d2HEf29i3iUD$EREvx8n~UR)$_AG9z>H|VHT zyj(=A|F|8>a1ee=Efje1lM7t!d2MYfUX;gDhTl^`+|@MGO)Ef2P#1>^Gw&;OuQaby zx`gzJL{(fC-qMq}Yo}U=yJNuJj~R(EskoCVIb05&Xb`K^RRJb1L%)SC=hOL=6+W_w zXz8TeA_1mB>t;ou0y;=l=5^Sr_%Irq{RMeC?+#+_A4EX<>QWvcAXEfvTWAv}GpDX) z=`NvEdz(%wDTh*eh)^5 z|K4`8m*V42$AfJTb{ZNP8M*V1H~|XaV(D#-ulh^X!lZ~df>2+7U}0Ls`g+%nA9?Vy zPzbn)kQfAb)0`QO<677&Y1gh?$gP;I@D`lnI_p#EC7XqKF2%FF4w=llCrt zX%9;6xI%PbSR+NeAdoM|-BIV?M3e*n)dbY0P1j2SW&Zh#8`U3fw`Xo|`@s^m);qGJ z)pM>lJ&qPnpgX`_ik-AaH%@%>Z%;2?_GB}##*ZH%hSD7UQDRg#SIU3$i2>xqONEFji`AZtb02s(`gVRNE@45gCuvuT zy^J_{p(GvHT3if3fK_CS*Sg+ z$EqKdI2D~=c|}2i{cUuf`1mYBE2*)8cZ-D&hpUC!W{Y!ku=MWYjK*NpUC^=*R*GCe zUq-{B^w^#oPg}SbEuluHrWPIt1qJ-IeLin5JFE`}3PIxmE-tQTQP`(0EZ=k3^K}}fQrJ;0u0z82T8k3?@%eCHL zzmy8xr>CEDKbxO&zi{tSSsCg!?enF+Bv=0H1*#`(VGasKrF#JaY-(z1hV70i?snM% zIL;?c?IB!K3O%4oVve3|PEJhl*%ju%(q3SjPPh)UEv#?aXD^}u6=h*zd9%7&Gdek` zA6_;zF=5@`RCl!J*;UXdz#~Z$_@J5N_}4Xdb|h=OMIXGEVPay!^XYmnd50>Fwa%pM z1zeXt@%@&pMd!PFr+-zyPU_5z5CD1F-d^X}6I=Rxm&nqksHhO)Xf+%?6KOPq1nY0hAFK3B+>pg3CAd{)1|o0l;$yQqxlHiS O3n1v4;7Qu93I78T6JwwN diff --git a/icons/mob/taursuits_naga_vr.dmi b/icons/mob/taursuits_naga_vr.dmi index 38640c904ddc60f0e134d96b13ad9e9fdb4a290c..ef00466c27bd9099ae0563855e68c0ec0f685445 100644 GIT binary patch delta 10508 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 W$Sg~A?KuSey_Q#fRV8cu>Hh#NJ(F_) delta 10010 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 N002ovPDHLkV1k@aro{jN literal 0 HcmV?d00001 diff --git a/icons/mob/taursuits_wolf_vr.dmi b/icons/mob/taursuits_wolf_vr.dmi index 03ad5e3929c16fc223ff75ba73dc13e1438b03ea..0b62d40ff20fb0cc15ea2a70c09c5387cfef7fb4 100644 GIT binary patch literal 130398 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 wK!1(*}MG3D_b%c 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%0A(h`fFSRB5*yt$u7UYfVB-tp4 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

SSC%asQ_gI)DaJ&Ig0=) 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 Date: Thu, 26 Dec 2019 07:25:49 +0100 Subject: [PATCH 20/65] Move the lance sprite to weapons_vr.dmi. --- code/game/objects/items/weapons/material/twohanded.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/game/objects/items/weapons/material/twohanded.dm b/code/game/objects/items/weapons/material/twohanded.dm index 1e013a9b3da..c0640d7b494 100644 --- a/code/game/objects/items/weapons/material/twohanded.dm +++ b/code/game/objects/items/weapons/material/twohanded.dm @@ -162,7 +162,7 @@ /obj/item/weapon/material/twohanded/spear/lance name = "lance" desc = "End him rightly" - icon = 'icons/obj/weapons.dmi' + icon = 'icons/obj/weapons_vr.dmi' icon_state = "lance" item_state = "lance" force_divisor = 0.3 From 9093b84d24beeb37fc7b37710d5aba76ec17f50c Mon Sep 17 00:00:00 2001 From: Verkister Date: Thu, 26 Dec 2019 17:57:26 +0200 Subject: [PATCH 21/65] Adds a verb for rideable mobs to toggle rider control without a riding crop. -Mountable mobs/borgs/taurs can now let the rider in control without requiring a riding crop. -And yes, riding crop has always been "the key" for rider control for these mechanics. -Also tweaks the AO a little bit more because ouch my ocd. --- code/__defines/lighting.dm | 2 +- code/modules/mob/living/living_vr.dm | 17 +++++++++++++++++ .../silicon/robot/robot_modules/event_vr.dm | 1 + .../silicon/robot/robot_modules/station_vr.dm | 7 +++++++ .../simple_mob/subtypes/vore/corrupt_hounds.dm | 1 + .../simple_mob/subtypes/vore/deathclaw.dm | 1 + .../living/simple_mob/subtypes/vore/dragon.dm | 1 + .../living/simple_mob/subtypes/vore/hippo.dm | 1 + .../living/simple_mob/subtypes/vore/horse.dm | 1 + .../mob/living/simple_mob/subtypes/vore/otie.dm | 1 + .../living/simple_mob/subtypes/vore/panther.dm | 1 + .../mob/living/simple_mob/subtypes/vore/rat.dm | 1 + code/modules/vore/appearance/update_icons_vr.dm | 1 + 13 files changed, 35 insertions(+), 1 deletion(-) diff --git a/code/__defines/lighting.dm b/code/__defines/lighting.dm index 8ad6fdfcf5d..2141f3e7251 100644 --- a/code/__defines/lighting.dm +++ b/code/__defines/lighting.dm @@ -84,4 +84,4 @@ #define LIGHT_COLOR_INCANDESCENT_FLASHLIGHT "#FFCC66" //Fake ambient occlusion filter -#define AMBIENT_OCCLUSION filter(type="drop_shadow", x=0, y=-2, size=4, offset=3, color="#04080F80") +#define AMBIENT_OCCLUSION filter(type="drop_shadow", x=0, y=-1, size=2, offset=2, color="#04080F55") //VOREStation Edit for prettier visuals. diff --git a/code/modules/mob/living/living_vr.dm b/code/modules/mob/living/living_vr.dm index 7616ac61d55..540ba7ece49 100644 --- a/code/modules/mob/living/living_vr.dm +++ b/code/modules/mob/living/living_vr.dm @@ -23,3 +23,20 @@ custom_exclaim = sanitize(input(usr, "This word or phrase will appear instead of 'exclaims', 'shouts' or 'yells': [src] exclaims, \"Hi!\"", "Custom Exclaim", null) as text) else return + +/mob/living/proc/toggle_rider_reins() + set name = "Give Reins" + set category = "Abilities" + set desc = "Let people riding on you control your movement." + + if(riding_datum) + if(istype(riding_datum,/datum/riding)) + if(riding_datum.keytype) + riding_datum.keytype = null + to_chat(src, "Rider control enabled.") + return + else + riding_datum.keytype = /obj/item/weapon/material/twohanded/fluff/riding_crop + to_chat(src, "Rider control restricted.") + return + return \ No newline at end of file diff --git a/code/modules/mob/living/silicon/robot/robot_modules/event_vr.dm b/code/modules/mob/living/silicon/robot/robot_modules/event_vr.dm index 45849a49966..a61c1847b4c 100644 --- a/code/modules/mob/living/silicon/robot/robot_modules/event_vr.dm +++ b/code/modules/mob/living/silicon/robot/robot_modules/event_vr.dm @@ -57,5 +57,6 @@ R.wideborg = TRUE R.verbs |= /mob/living/silicon/robot/proc/ex_reserve_refill R.verbs |= /mob/living/silicon/robot/proc/robot_mount + R.verbs |= /mob/living/proc/toggle_rider_reins R.verbs |= /mob/living/proc/shred_limb R.verbs |= /mob/living/silicon/robot/proc/rest_style \ No newline at end of file diff --git a/code/modules/mob/living/silicon/robot/robot_modules/station_vr.dm b/code/modules/mob/living/silicon/robot/robot_modules/station_vr.dm index 9aae32df4ce..d2465fed5ba 100644 --- a/code/modules/mob/living/silicon/robot/robot_modules/station_vr.dm +++ b/code/modules/mob/living/silicon/robot/robot_modules/station_vr.dm @@ -190,6 +190,7 @@ R.wideborg = TRUE R.verbs |= /mob/living/silicon/robot/proc/ex_reserve_refill R.verbs |= /mob/living/silicon/robot/proc/robot_mount + R.verbs |= /mob/living/proc/toggle_rider_reins R.verbs |= /mob/living/proc/shred_limb R.verbs |= /mob/living/silicon/robot/proc/rest_style ..() @@ -264,6 +265,7 @@ R.wideborg = TRUE R.verbs |= /mob/living/silicon/robot/proc/ex_reserve_refill R.verbs |= /mob/living/silicon/robot/proc/robot_mount + R.verbs |= /mob/living/proc/toggle_rider_reins R.verbs |= /mob/living/proc/shred_limb R.verbs |= /mob/living/silicon/robot/proc/rest_style ..() @@ -311,6 +313,7 @@ R.wideborg = TRUE R.verbs |= /mob/living/silicon/robot/proc/ex_reserve_refill R.verbs |= /mob/living/silicon/robot/proc/robot_mount + R.verbs |= /mob/living/proc/toggle_rider_reins R.verbs |= /mob/living/proc/shred_limb R.verbs |= /mob/living/silicon/robot/proc/rest_style ..() @@ -392,6 +395,7 @@ R.wideborg = TRUE R.verbs |= /mob/living/silicon/robot/proc/ex_reserve_refill R.verbs |= /mob/living/silicon/robot/proc/robot_mount + R.verbs |= /mob/living/proc/toggle_rider_reins R.verbs |= /mob/living/proc/shred_limb R.verbs |= /mob/living/silicon/robot/proc/rest_style ..() @@ -439,6 +443,7 @@ R.wideborg = TRUE R.verbs |= /mob/living/silicon/robot/proc/ex_reserve_refill R.verbs |= /mob/living/silicon/robot/proc/robot_mount + R.verbs |= /mob/living/proc/toggle_rider_reins R.verbs |= /mob/living/proc/shred_limb R.verbs |= /mob/living/silicon/robot/proc/rest_style ..() @@ -567,6 +572,7 @@ R.wideborg = TRUE R.verbs |= /mob/living/silicon/robot/proc/ex_reserve_refill R.verbs |= /mob/living/silicon/robot/proc/robot_mount + R.verbs |= /mob/living/proc/toggle_rider_reins R.verbs |= /mob/living/proc/shred_limb R.verbs |= /mob/living/silicon/robot/proc/rest_style ..() @@ -582,6 +588,7 @@ R.scrubbing = FALSE R.verbs -= /mob/living/silicon/robot/proc/ex_reserve_refill R.verbs -= /mob/living/silicon/robot/proc/robot_mount + R.verbs -= /mob/living/proc/toggle_rider_reins R.verbs -= /mob/living/proc/shred_limb R.verbs -= /mob/living/silicon/robot/proc/rest_style ..() \ No newline at end of file diff --git a/code/modules/mob/living/simple_mob/subtypes/vore/corrupt_hounds.dm b/code/modules/mob/living/simple_mob/subtypes/vore/corrupt_hounds.dm index 0dd52d24960..6af7fd3c94a 100644 --- a/code/modules/mob/living/simple_mob/subtypes/vore/corrupt_hounds.dm +++ b/code/modules/mob/living/simple_mob/subtypes/vore/corrupt_hounds.dm @@ -112,6 +112,7 @@ if(!riding_datum) riding_datum = new /datum/riding/simple_mob(src) verbs |= /mob/living/simple_mob/proc/animal_mount + verbs |= /mob/living/proc/toggle_rider_reins movement_cooldown = 0 /mob/living/simple_mob/vore/aggressive/corrupthound/MouseDrop_T(mob/living/M, mob/living/user) diff --git a/code/modules/mob/living/simple_mob/subtypes/vore/deathclaw.dm b/code/modules/mob/living/simple_mob/subtypes/vore/deathclaw.dm index 54f77c80255..2e72211a42d 100644 --- a/code/modules/mob/living/simple_mob/subtypes/vore/deathclaw.dm +++ b/code/modules/mob/living/simple_mob/subtypes/vore/deathclaw.dm @@ -55,6 +55,7 @@ if(!riding_datum) riding_datum = new /datum/riding/simple_mob(src) verbs |= /mob/living/simple_mob/proc/animal_mount + verbs |= /mob/living/proc/toggle_rider_reins movement_cooldown = 0 /mob/living/simple_mob/vore/aggressive/deathclaw/MouseDrop_T(mob/living/M, mob/living/user) diff --git a/code/modules/mob/living/simple_mob/subtypes/vore/dragon.dm b/code/modules/mob/living/simple_mob/subtypes/vore/dragon.dm index 50471465e37..e529d7be8df 100644 --- a/code/modules/mob/living/simple_mob/subtypes/vore/dragon.dm +++ b/code/modules/mob/living/simple_mob/subtypes/vore/dragon.dm @@ -66,6 +66,7 @@ if(!riding_datum) riding_datum = new /datum/riding/simple_mob(src) verbs |= /mob/living/simple_mob/proc/animal_mount + verbs |= /mob/living/proc/toggle_rider_reins movement_cooldown = 0 /mob/living/simple_mob/vore/aggressive/dragon/MouseDrop_T(mob/living/M, mob/living/user) diff --git a/code/modules/mob/living/simple_mob/subtypes/vore/hippo.dm b/code/modules/mob/living/simple_mob/subtypes/vore/hippo.dm index 933ec987c15..42ee04c4175 100644 --- a/code/modules/mob/living/simple_mob/subtypes/vore/hippo.dm +++ b/code/modules/mob/living/simple_mob/subtypes/vore/hippo.dm @@ -71,6 +71,7 @@ if(!riding_datum) riding_datum = new /datum/riding/simple_mob(src) verbs |= /mob/living/simple_mob/proc/animal_mount + verbs |= /mob/living/proc/toggle_rider_reins movement_cooldown = 0 /mob/living/simple_mob/vore/hippo/MouseDrop_T(mob/living/M, mob/living/user) diff --git a/code/modules/mob/living/simple_mob/subtypes/vore/horse.dm b/code/modules/mob/living/simple_mob/subtypes/vore/horse.dm index 5b1b09f7245..2819fa4d5b6 100644 --- a/code/modules/mob/living/simple_mob/subtypes/vore/horse.dm +++ b/code/modules/mob/living/simple_mob/subtypes/vore/horse.dm @@ -45,6 +45,7 @@ if(!riding_datum) riding_datum = new /datum/riding/simple_mob(src) verbs |= /mob/living/simple_mob/proc/animal_mount + verbs |= /mob/living/proc/toggle_rider_reins movement_cooldown = 0 /mob/living/simple_mob/vore/horse/MouseDrop_T(mob/living/M, mob/living/user) diff --git a/code/modules/mob/living/simple_mob/subtypes/vore/otie.dm b/code/modules/mob/living/simple_mob/subtypes/vore/otie.dm index 4328c297fb0..b7ab97d5625 100644 --- a/code/modules/mob/living/simple_mob/subtypes/vore/otie.dm +++ b/code/modules/mob/living/simple_mob/subtypes/vore/otie.dm @@ -262,6 +262,7 @@ if(!riding_datum) riding_datum = new /datum/riding/simple_mob(src) verbs |= /mob/living/simple_mob/proc/animal_mount + verbs |= /mob/living/proc/toggle_rider_reins movement_cooldown = 0 /mob/living/simple_mob/otie/MouseDrop_T(mob/living/M, mob/living/user) diff --git a/code/modules/mob/living/simple_mob/subtypes/vore/panther.dm b/code/modules/mob/living/simple_mob/subtypes/vore/panther.dm index 82feecfd884..76a46aabd19 100644 --- a/code/modules/mob/living/simple_mob/subtypes/vore/panther.dm +++ b/code/modules/mob/living/simple_mob/subtypes/vore/panther.dm @@ -50,6 +50,7 @@ if(!riding_datum) riding_datum = new /datum/riding/simple_mob(src) verbs |= /mob/living/simple_mob/proc/animal_mount + verbs |= /mob/living/proc/toggle_rider_reins movement_cooldown = 0 /mob/living/simple_mob/vore/aggressive/panther/MouseDrop_T(mob/living/M, mob/living/user) diff --git a/code/modules/mob/living/simple_mob/subtypes/vore/rat.dm b/code/modules/mob/living/simple_mob/subtypes/vore/rat.dm index 33f9455bf07..db9dc59f586 100644 --- a/code/modules/mob/living/simple_mob/subtypes/vore/rat.dm +++ b/code/modules/mob/living/simple_mob/subtypes/vore/rat.dm @@ -174,6 +174,7 @@ if(!riding_datum) riding_datum = new /datum/riding/simple_mob(src) verbs |= /mob/living/simple_mob/proc/animal_mount + verbs |= /mob/living/proc/toggle_rider_reins movement_cooldown = 0 /mob/living/simple_mob/vore/aggressive/rat/MouseDrop_T(mob/living/M, mob/living/user) diff --git a/code/modules/vore/appearance/update_icons_vr.dm b/code/modules/vore/appearance/update_icons_vr.dm index 643a6ba1ce9..ee39d02d2d3 100644 --- a/code/modules/vore/appearance/update_icons_vr.dm +++ b/code/modules/vore/appearance/update_icons_vr.dm @@ -44,6 +44,7 @@ var/global/list/wing_icon_cache = list() if(taurtype.can_ride && !riding_datum) riding_datum = new /datum/riding/taur(src) verbs |= /mob/living/carbon/human/proc/taur_mount + verbs |= /mob/living/proc/toggle_rider_reins return image(tail_s, "pixel_x" = -16) else return image(tail_s) From 572112d28bcf3869d10738a794ce872588d9c5be Mon Sep 17 00:00:00 2001 From: Heroman Date: Sun, 29 Dec 2019 08:33:10 +1000 Subject: [PATCH 22/65] Fixes AI not being able to resist out of nets --- code/game/objects/items/weapons/weaponry.dm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/code/game/objects/items/weapons/weaponry.dm b/code/game/objects/items/weapons/weaponry.dm index 65c61fce9d6..9875ec035a0 100644 --- a/code/game/objects/items/weapons/weaponry.dm +++ b/code/game/objects/items/weapons/weaponry.dm @@ -106,7 +106,7 @@ /obj/effect/energy_net/New() ..() - START_PROCESSING(SSobj, src) + START_PROCESSING(SSobj, src) /obj/effect/energy_net/Destroy() if(has_buckled_mobs()) @@ -136,7 +136,7 @@ /obj/effect/energy_net/user_unbuckle_mob(mob/living/buckled_mob, mob/user) user.setClickCooldown(user.get_attack_speed()) visible_message("[user] begins to tear at \the [src]!") - if(do_after(usr, escape_time, src, incapacitation_flags = INCAPACITATION_DEFAULT & ~(INCAPACITATION_RESTRAINED | INCAPACITATION_BUCKLED_FULLY))) + if(do_after(user, escape_time, src, incapacitation_flags = INCAPACITATION_DEFAULT & ~(INCAPACITATION_RESTRAINED | INCAPACITATION_BUCKLED_FULLY))) if(!has_buckled_mobs()) return visible_message("[user] manages to tear \the [src] apart!") From f5e02b9b236600614e3f4be4ad3b8cce8bd02f81 Mon Sep 17 00:00:00 2001 From: Verkister Date: Sun, 29 Dec 2019 09:41:58 +0200 Subject: [PATCH 23/65] Fixes chairs acting as handcuffs. (#6588) * Fixes chairs/beds/etc acting as handcuffs. It's been at least 7 years without anyone noticing a broken feature with a false comment so the unintentional "balancing" caused by this may have ingrained a standard some folks would rather keep in, but that kind of nerfs have proper ways of implementing at their own appropriate places in the code. Basically this just lets folks use hands when buckled. May also have a side effect of allowing self-surgery if it never had a proper prevention method implemented. Keeps an exception for xeno nests tho. Any other seat has no reason to be handcuffs. * Fixes another thing causing chairs to incapacitate "Are you seated" and "Are you incapacitated" should not be used as the same thing yet here we are. I should probably also do a refactor to remove all the inappropriate use of canmove var. Seriously, even the specifically cartridge exclusive PDA menu buttons are using that for what??? --- code/modules/mob/living/carbon/carbon.dm | 2 +- code/modules/mob/living/living.dm | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/code/modules/mob/living/carbon/carbon.dm b/code/modules/mob/living/carbon/carbon.dm index 6b218c6e5f3..14a56c8ad3e 100644 --- a/code/modules/mob/living/carbon/carbon.dm +++ b/code/modules/mob/living/carbon/carbon.dm @@ -290,7 +290,7 @@ /mob/living/carbon/can_use_hands() if(handcuffed) return 0 - if(buckled && ! istype(buckled, /obj/structure/bed/chair)) // buckling does not restrict hands + if(buckled && istype(buckled, /obj/structure/bed/nest)) // buckling does not restrict hands return 0 return 1 diff --git a/code/modules/mob/living/living.dm b/code/modules/mob/living/living.dm index ff04da63e0d..55daf15aa4d 100644 --- a/code/modules/mob/living/living.dm +++ b/code/modules/mob/living/living.dm @@ -1112,10 +1112,11 @@ default behaviour is: pixel_y = V.mob_offset_y else if(buckled) anchored = 1 - canmove = 0 + canmove = 1 //The line above already makes the chair not swooce away if the sitter presses a button. No need to incapacitate them as a criminally large amount of mechanics read this var as a type of stun. if(istype(buckled)) if(buckled.buckle_lying != -1) lying = buckled.buckle_lying + canmove = buckled.buckle_movable if(buckled.buckle_movable) anchored = 0 canmove = 1 From f1c23c4f5a8384503b443bbbbb87e266f239fea7 Mon Sep 17 00:00:00 2001 From: Heroman3003 <31296024+Heroman3003@users.noreply.github.com> Date: Sun, 29 Dec 2019 17:43:32 +1000 Subject: [PATCH 25/65] Allows to set department names on fax machines (#6587) --- code/modules/paperwork/faxmachine.dm | 31 ++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/code/modules/paperwork/faxmachine.dm b/code/modules/paperwork/faxmachine.dm index add0d03d22f..3feabab1e7b 100644 --- a/code/modules/paperwork/faxmachine.dm +++ b/code/modules/paperwork/faxmachine.dm @@ -118,6 +118,37 @@ var/list/adminfaxes = list() //cache for faxes that have been sent to admins SSnanoui.update_uis(src) +/obj/machinery/photocopier/faxmachine/attackby(obj/item/O as obj, mob/user as mob) + if(istype(O, /obj/item/weapon/paper) || istype(O, /obj/item/weapon/photo) || istype(O, /obj/item/weapon/paper_bundle)) + if(!copyitem) + user.drop_item() + copyitem = O + O.loc = src + to_chat(user, "You insert \the [O] into \the [src].") + playsound(loc, "sound/machines/click.ogg", 100, 1) + flick(insert_anim, src) + else + to_chat(user, "There is already something in \the [src].") + else if(istype(O, /obj/item/device/multitool) && panel_open) + var/input = sanitize(input(usr, "What Department ID would you like to give this fax machine?", "Multitool-Fax Machine Interface", department)) + if(!input) + to_chat(usr, "No input found. Please hang up and try your call again.") + return + department = input + if( !(("[department]" in alldepartments) || ("[department]" in admin_departments)) && !(department == "Unknown")) + alldepartments |= department + else if(O.is_wrench()) + playsound(loc, O.usesound, 50, 1) + anchored = !anchored + to_chat(user, "You [anchored ? "wrench" : "unwrench"] \the [src].") + + else if(default_deconstruction_screwdriver(user, O)) + return + else if(default_deconstruction_crowbar(user, O)) + return + + return + /obj/machinery/photocopier/faxmachine/proc/sendfax(var/destination) if(stat & (BROKEN|NOPOWER)) return From 6faf4fdea338012bccd38efdab32a9494adfbb43 Mon Sep 17 00:00:00 2001 From: Unknown Date: Sun, 29 Dec 2019 10:52:08 -0500 Subject: [PATCH 27/65] Nerfs Gygax tesla zap --- .../simple_mob/subtypes/mechanical/mecha/adv_dark_gygax.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/mob/living/simple_mob/subtypes/mechanical/mecha/adv_dark_gygax.dm b/code/modules/mob/living/simple_mob/subtypes/mechanical/mecha/adv_dark_gygax.dm index 39708365dfd..ed4cb520fb5 100644 --- a/code/modules/mob/living/simple_mob/subtypes/mechanical/mecha/adv_dark_gygax.dm +++ b/code/modules/mob/living/simple_mob/subtypes/mechanical/mecha/adv_dark_gygax.dm @@ -134,7 +134,7 @@ ..() set_pixel_speed(0.5) -#define ELECTRIC_ZAP_POWER 20000 +#define ELECTRIC_ZAP_POWER 15000 //VOREStation Edit // Charges a tesla shot, while emitting a dangerous electric field. The exosuit is immune to electric damage while this is ongoing. // It also briefly blinds anyone looking directly at the mech without flash protection. From 7aeb10d1e8c17e05300f00844341305ab06e09fa Mon Sep 17 00:00:00 2001 From: Unknown Date: Sun, 29 Dec 2019 11:03:35 -0500 Subject: [PATCH 28/65] Nerfs ADG health too --- .../simple_mob/subtypes/mechanical/mecha/adv_dark_gygax.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/mob/living/simple_mob/subtypes/mechanical/mecha/adv_dark_gygax.dm b/code/modules/mob/living/simple_mob/subtypes/mechanical/mecha/adv_dark_gygax.dm index ed4cb520fb5..8b3b6fff5d5 100644 --- a/code/modules/mob/living/simple_mob/subtypes/mechanical/mecha/adv_dark_gygax.dm +++ b/code/modules/mob/living/simple_mob/subtypes/mechanical/mecha/adv_dark_gygax.dm @@ -81,7 +81,7 @@ icon_scale_y = 1.5 movement_shake_radius = 14 - maxHealth = 450 + maxHealth = 350 //VOREStation Edit deflect_chance = 25 has_repair_droid = TRUE armor = list( From 64b4d435f959e514536f57ba7369a8948a1e8905 Mon Sep 17 00:00:00 2001 From: Unknown Date: Sun, 29 Dec 2019 11:26:37 -0500 Subject: [PATCH 29/65] Joan's spacesuit no longer NORMAL size --- code/modules/vore/fluffstuff/custom_clothes_vr.dm | 1 - 1 file changed, 1 deletion(-) diff --git a/code/modules/vore/fluffstuff/custom_clothes_vr.dm b/code/modules/vore/fluffstuff/custom_clothes_vr.dm index 76175865978..4f3462fdbf6 100644 --- a/code/modules/vore/fluffstuff/custom_clothes_vr.dm +++ b/code/modules/vore/fluffstuff/custom_clothes_vr.dm @@ -845,7 +845,6 @@ armor = list(melee = 50, bullet = 40, laser = 45, energy = 25, bomb = 50, bio = 100, rad = 50) //These values were taken from the combat rigs and adjusted to be weaker than said rigs. slowdown = 0 allowed = list(/obj/item/weapon/gun,/obj/item/device/flashlight,/obj/item/weapon/tank,/obj/item/device/suit_cooling_unit,/obj/item/weapon/melee/baton) - w_class = ITEMSIZE_NORMAL icon = 'icons/vore/custom_clothes_vr.dmi' icon_state = "joansuit" From 83e069fb433ca56054a4e6a6fed971d2edb14046 Mon Sep 17 00:00:00 2001 From: Unknown Date: Sun, 29 Dec 2019 11:44:49 -0500 Subject: [PATCH 30/65] Addition to mothership vault --- maps/tether/tether-10-colony.dmm | 2 ++ 1 file changed, 2 insertions(+) diff --git a/maps/tether/tether-10-colony.dmm b/maps/tether/tether-10-colony.dmm index e27ea01c407..08f51cb0cc4 100644 --- a/maps/tether/tether-10-colony.dmm +++ b/maps/tether/tether-10-colony.dmm @@ -25767,6 +25767,8 @@ }, /obj/item/slime_extract/pink, /obj/item/slime_extract/pink, +/obj/item/weapon/deadringer, +/obj/item/weapon/deadringer, /turf/simulated/floor/tiled/techmaint, /area/mothership/vault) "XY" = ( From 06018790bb92b160af3a857c4dfbeaae01023a4f Mon Sep 17 00:00:00 2001 From: TheFurryFeline <38586851+TheFurryFeline@users.noreply.github.com> Date: Sun, 29 Dec 2019 17:21:55 -0500 Subject: [PATCH 31/65] Space, please. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Switches syntax to use spaces for edited line, and not tabs, even if it looks dumb... 🤷‍♂ --- nano/templates/pda.tmpl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nano/templates/pda.tmpl b/nano/templates/pda.tmpl index baafe2ee645..bda35dca5b0 100644 --- a/nano/templates/pda.tmpl +++ b/nano/templates/pda.tmpl @@ -349,7 +349,7 @@ Used In File(s): \code\game\objects\items\devices\PDA\PDA.dm

From 8f6878e6db86ee71a1714a9dee6b7b8a27efaa2d Mon Sep 17 00:00:00 2001 From: Heroman Date: Mon, 30 Dec 2019 10:22:57 +1000 Subject: [PATCH 32/65] Implements ferality indicator for xenochimera --- code/_onclick/hud/_defines_vr.dm | 3 +- code/_onclick/hud/human.dm | 5 ++ .../species/station/station_special_vr.dm | 44 +++++++++++++++++- .../human/species/station/xenochimera_hud.dm | 8 ++++ code/modules/mob/mob_defines_vr.dm | 3 +- icons/mob/chimerahud.dmi | Bin 830 -> 825 bytes vorestation.dme | 1 + 7 files changed, 60 insertions(+), 4 deletions(-) create mode 100644 code/modules/mob/living/carbon/human/species/station/xenochimera_hud.dm diff --git a/code/_onclick/hud/_defines_vr.dm b/code/_onclick/hud/_defines_vr.dm index e72150b44ce..2b4f4fb85e2 100644 --- a/code/_onclick/hud/_defines_vr.dm +++ b/code/_onclick/hud/_defines_vr.dm @@ -1,2 +1,3 @@ #define ui_shadekin_dark_display "EAST-1:28,CENTER-3:15" -#define ui_shadekin_energy_display "EAST-1:28,CENTER-4:15" \ No newline at end of file +#define ui_shadekin_energy_display "EAST-1:28,CENTER-4:15" +#define ui_xenochimera_danger_display "EAST-1:28,CENTER-3:15" \ No newline at end of file diff --git a/code/_onclick/hud/human.dm b/code/_onclick/hud/human.dm index f1aba60b107..e31dd5e56ab 100644 --- a/code/_onclick/hud/human.dm +++ b/code/_onclick/hud/human.dm @@ -303,6 +303,11 @@ mymob.shadekin_energy_display.screen_loc = ui_shadekin_energy_display mymob.shadekin_energy_display.icon_state = "energy0" hud_elements |= mymob.shadekin_energy_display + + mymob.xenochimera_danger_display = new /obj/screen/xenochimera/danger_level() + mymob.xenochimera_danger_display.screen_loc = ui_xenochimera_danger_display + mymob.xenochimera_danger_display.icon_state = "danger00" + hud_elements |= mymob.xenochimera_danger_display //VOREStation Addition end mymob.ling_chem_display = new /obj/screen/ling/chems() diff --git a/code/modules/mob/living/carbon/human/species/station/station_special_vr.dm b/code/modules/mob/living/carbon/human/species/station/station_special_vr.dm index e67a670d82b..e9865bc966e 100644 --- a/code/modules/mob/living/carbon/human/species/station/station_special_vr.dm +++ b/code/modules/mob/living/carbon/human/species/station/station_special_vr.dm @@ -118,7 +118,11 @@ //To reduce distant object references var/feral = H.feral -//Handle feral triggers and pre-feral messages + //Are we in danger of ferality? + var/danger = FALSE + var/feral_state = FALSE + + //Handle feral triggers and pre-feral messages if(!feral && (hungry || shock || jittery)) // If they're hungry, give nag messages (when not bellied) @@ -128,12 +132,15 @@ to_chat(H,"You feel rather hungry. It might be a good idea to find some some food...") if(100 to 150) to_chat(H,"You feel like you're going to snap and give in to your hunger soon... It would be for the best to find some [pick("food","prey")] to eat...") + danger = TRUE // Going feral due to hunger else if(H.nutrition < 100 && !isbelly(H.loc)) to_chat(H,"Something in your mind flips, your instincts taking over, no longer able to fully comprehend your surroundings as survival becomes your primary concern - you must feed, survive, there is nothing else. Hunt. Eat. Hide. Repeat.") log_and_message_admins("has gone feral due to hunger.", H) feral = 5 + danger = TRUE + feral_state = TRUE if(!H.stat) H.emote("twitch") @@ -146,6 +153,8 @@ to_chat(H,"The pain! It stings! Got to get away! Your instincts take over, urging you to flee, to hide, to go to ground, get away from here...") log_and_message_admins("has gone feral due to halloss.", H) feral = 5 + danger = TRUE + feral_state = TRUE if(!H.stat) H.emote("twitch") @@ -153,6 +162,8 @@ else if(prob(min(10,(0.1 * H.traumatic_shock)))) to_chat(H,"Your fight-or-flight response kicks in, your injuries too much to simply ignore - you need to flee, to hide, survive at all costs - or destroy whatever is threatening you.") feral = 5 + danger = TRUE + feral_state = TRUE log_and_message_admins("has gone feral due to injury.", H) if(!H.stat) H.emote("twitch") @@ -161,27 +172,35 @@ else if(jittery) to_chat(H,"Suddenly, something flips - everything that moves is... potential prey. A plaything. This is great! Time to hunt!") feral = 5 + danger = TRUE + feral_state = TRUE log_and_message_admins("has gone feral due to jitteriness.", H) if(!H.stat) H.emote("twitch") -// Handle being feral + // Handle being feral if(feral) + //We're feral + feral_state = TRUE //Shock due to mostly halloss. More feral. if(shock && 2.5*H.halloss >= H.traumatic_shock) + danger = TRUE feral = max(feral, H.halloss) //Shock due to mostly injury. More feral. else if(shock) + danger = TRUE feral = max(feral, H.traumatic_shock * 2) //Still jittery? More feral. if(jittery) + danger = TRUE feral = max(feral, H.jitteriness-100) //Still hungry? More feral. if(H.feral + H.nutrition < 150) + danger = TRUE feral++ else feral = max(0,--feral) @@ -191,8 +210,10 @@ //Did we just finish being feral? if(!feral) + feral_state = FALSE to_chat(H,"Your thoughts start clearing, your feral urges having passed - for the time being, at least.") log_and_message_admins("is no longer feral.", H) + update_xenochimera_hud(H, danger, feral_state) return //If they lose enough health to hit softcrit, handle_shock() will keep resetting this. Otherwise, pissed off critters will lose shock faster than they gain it. @@ -201,6 +222,7 @@ //Handle light/dark areas var/turf/T = get_turf(H) if(!T) + update_xenochimera_hud(H, danger, feral_state) return //Nullspace var/darkish = T.get_lumcount() <= 0.1 @@ -222,6 +244,7 @@ H.handle_feral() //And bail + update_xenochimera_hud(H, danger, feral_state) return // In the darkness or "hidden". No need for custom scene-protection checks as it's just an occational infomessage. @@ -268,6 +291,9 @@ else to_chat(H,"Confusing sights and sounds and smells surround you, this place is wrong, confusing, frightening. You need to hide, go to ground...") + // HUD update time + update_xenochimera_hud(H, danger, feral_state) + /datum/species/xenochimera/proc/produceCopy(var/datum/species/to_copy,var/list/traits,var/mob/living/carbon/human/H) ASSERT(to_copy) @@ -315,6 +341,19 @@ var/datum/species/real = GLOB.all_species[base_species] return real.race_key +/datum/species/xenochimera/proc/update_xenochimera_hud(var/mob/living/carbon/human/H, var/danger, var/feral) + if(H.xenochimera_danger_display) + H.xenochimera_danger_display.invisibility = 0 + if(danger && feral) + H.xenochimera_danger_display.icon_state = "danger11" + else if(danger && !feral) + H.xenochimera_danger_display.icon_state = "danger10" + else if(!danger && feral) + H.xenochimera_danger_display.icon_state = "danger01" + else + H.xenochimera_danger_display.icon_state = "danger00" + + return ///////////////////// /////SPIDER RACE///// @@ -445,3 +484,4 @@ BP_L_FOOT = list("path" = /obj/item/organ/external/foot), BP_R_FOOT = list("path" = /obj/item/organ/external/foot/right) ) + diff --git a/code/modules/mob/living/carbon/human/species/station/xenochimera_hud.dm b/code/modules/mob/living/carbon/human/species/station/xenochimera_hud.dm new file mode 100644 index 00000000000..4ef0f884b65 --- /dev/null +++ b/code/modules/mob/living/carbon/human/species/station/xenochimera_hud.dm @@ -0,0 +1,8 @@ +/obj/screen/xenochimera + icon = 'icons/mob/chimerahud.dmi' + invisibility = 101 + +/obj/screen/xenochimera/danger_level + name = "danger level" + icon_state = "danger00" //first number is bool of whether or not we're in danger, second is whether or not we're feral + alpha = 200 \ No newline at end of file diff --git a/code/modules/mob/mob_defines_vr.dm b/code/modules/mob/mob_defines_vr.dm index 70cd778e8ea..48273ec2116 100644 --- a/code/modules/mob/mob_defines_vr.dm +++ b/code/modules/mob/mob_defines_vr.dm @@ -6,4 +6,5 @@ var/disconnect_time = null //Time of client loss, set by Logout(), for timekeeping var/obj/screen/shadekin/darkness/shadekin_dark_display = null - var/obj/screen/shadekin/energy/shadekin_energy_display = null \ No newline at end of file + var/obj/screen/shadekin/energy/shadekin_energy_display = null + var/obj/screen/xenochimera/danger_level/xenochimera_danger_display = null \ No newline at end of file diff --git a/icons/mob/chimerahud.dmi b/icons/mob/chimerahud.dmi index 890ee10cebef394b2a914049d3a79312360bf49c..77bc745acef034594e66dde8c42c74c3250a331c 100644 GIT binary patch delta 91 zcmV-h0HpuE2Dt{1b^(i#cS%YmF)ux}$iP5}i!&v&s2C_@$ia!04F9NX@Bf|gy delta 96 zcmV-m0H6Q42EGQ6b^(x)cS%n#KP53QJ+&w=KP|N=F-M7uGbOXA7${@N#hF%=n41b= zW2ncY8faBYYEEJ$$PGFs2(3g|gkLLh8Vz*}xs(-L{anD|0RYUfP}^~6(Nwbv0WSi| C$RwWt diff --git a/vorestation.dme b/vorestation.dme index 40a6d8f19a9..f9940626f1c 100644 --- a/vorestation.dme +++ b/vorestation.dme @@ -2360,6 +2360,7 @@ #include "code\modules\mob\living\carbon\human\species\station\station_special_abilities_vr.dm" #include "code\modules\mob\living\carbon\human\species\station\station_special_vr.dm" #include "code\modules\mob\living\carbon\human\species\station\station_vr.dm" +#include "code\modules\mob\living\carbon\human\species\station\xenochimera_hud.dm" #include "code\modules\mob\living\carbon\human\species\station\protean_vr\protean_blob.dm" #include "code\modules\mob\living\carbon\human\species\station\protean_vr\protean_powers.dm" #include "code\modules\mob\living\carbon\human\species\station\protean_vr\protean_species.dm" From 8ab18b510db2440a1d778fa36051f0e1f6548f41 Mon Sep 17 00:00:00 2001 From: lbnesquik Date: Mon, 30 Dec 2019 09:09:37 +0100 Subject: [PATCH 33/65] Move the in hand sprites from _material to _vr. --- icons/mob/items/lefthand_material.dmi | Bin 19407 -> 18757 bytes icons/mob/items/lefthand_vr.dmi | Bin 924 -> 1255 bytes icons/mob/items/righthand_material.dmi | Bin 19296 -> 18923 bytes icons/mob/items/righthand_vr.dmi | Bin 914 -> 1150 bytes 4 files changed, 0 insertions(+), 0 deletions(-) diff --git a/icons/mob/items/lefthand_material.dmi b/icons/mob/items/lefthand_material.dmi index f4638a46969f47aa8654eed123f621e53a8b3e41..a2f035cd582687c6921fb1a2f7fed32d8122ca9a 100644 GIT binary patch literal 18757 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 literal 19407 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�V`z{n3g<^%;5g2&_zNd5>us-xqnrm}P<3QD6% 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 diff --git a/icons/mob/items/lefthand_vr.dmi b/icons/mob/items/lefthand_vr.dmi index a858ce98a3c281dda454c5f141436a66f4196fba..009e558532811d9ef231bbab9b0369cfd68c8e7f 100644 GIT binary patch delta 1116 zcmV-i1f%<$2j>ZYiBL{Q4GJ0x0000DNk~Le0001>0001h2m=5B0K2`CDF6Tfs8CE) zMF0Q*IwKTxRVToYMF3S*W&i*noZtUu0G2(<%w_=p|Cw+unE(I(W&|R-5fQJu#xFNW zlm{A)kC^1=>Q+`}P*r3wHAWyKEs+2Kyh1|LH#ev#D3Otoel&O@Ik5)T`R6dwsMQ=PKX)9W)00001bW%=J06^y0W&i*H zjFGu|e+eqfNz6-5#idGF!PU~{bl*-DmMT*L4H00UJ?L_t(|ob8xvSK=@bh6$yB zP^Bs&S3$13++lI~|Nm^0mSUQ=NyfH>J!hT|92hY3Boq7LEff$0K@cP#2#J4hqJQl7 z#qVDb`XSrZHC8Cf*I-V8mG>6ZG5+_EHTeEXe=V$%zak+e3wDI@tApmi`rEP{5vo-x z`-0^XRR!)o*j=b4U=FmQZC9j%R;gTN3ldT-(<1~4e(#Peg62T`+YdEKSLRo@946>k zb!G?>40gvAy*X$bQol;g>z^!GwH$}NbsVb-6uj<^tNC-#HKc;IOaFu(q<;OL8rC6~ ze~@syyVfpqAVtk3h}6$}B5+?jz$Y8GyXzAE94yTR!u@j~y1F-qTzjS_-y=Z~1VIo4 zK@bGV4HNkv1QYomsGEWO57dp=x6l6|kcw@?^S?;C2%m#?yV`>d&i^9mB76?o?HsFC zv7z~2Bwh69kc**14S|BubTOENuHoZTf9T`WqskDN|3%WpU=CXOU!&l<&!Nh*>(Z)3 z5t{!+)5XgiwDP}~LgTd=sx)64w3;Qc`CmU#Wwj_tLb1 zg4KFuT0y~*qW$B|CP$MbR%_iu+-$Zc1b6%Wey8{}A*hu??T)83g1f{!%+68zrp6zcqyyO79z irBHET3WXpM{sH&;R8xJ64uPWp0000+}TaVb+)aP@Nm`w9T4xj*v3ZUK-000KTqL_t(|ob8xlQ-VMchP^=H z?261X#mK~j{{JuR4g@bbuH9s`ncn9E11tCL=Gax}2j=Os zjZM#{Yjw*?bidEa&=EmcpAaGpcq6dwzgIaKA`Hj1z&O-@Dy*|dd#lQuqtFrKi8&y| zWUNQPlW*;mWA1+_I_cleF<_*eMcl2JIbN#0o30c9000000A8>k z_yhX^+3W{@B#Ew4nLW;b`#z!tJ#`}Hk277RGN1Jd(1M;j z5$5@M5CK|H;t)v4{YQ($CqN21jhH73djHX)f5_CJPQ(*O;KlPYF{l%Z|`Phvh)#%k?Tv)79D=^X)F*>FYbsl4MR1$aki@mhcF;EJ@}Rfo+~wF%FnVWd;%^@k~ztsfoVxH9}Jfz#T@*SFTM&ks|kEpnE(I) M07*qoM6N<$g457ss{jB1 diff --git a/icons/mob/items/righthand_material.dmi b/icons/mob/items/righthand_material.dmi index f9e342e32f3666b6c8618ae84e2e65d76376b890..6895183a5b4782814f09fa3e70b3c1e56422952e 100644 GIT binary patch literal 18923 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

o~K!p(DVq`3z0#w8i>Kv)m$_=X# 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 GPyY?8TyOXQ literal 19296 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 delta 725 zcmV;`0xJFf2$Ba-iBL{Q4GJ0x0000DNk~Le0001h0001h2m=5B0QBII`2YX_dr(YN zMgRZ*IwKTxRVM&dRltu$Ae`TpJ<9+8|8OptW&i;HW&r>HnapMYkx*0>$OUJt00001 zbW%=J06^y0W&i*Hg^|&Ee{m^OR&e!m0s9I7sJTD#!EOPN0006sNkl!k;1cgEcfwuntU+5KDAKK(3L2$;|?|}!C%Wi_>j2i?1003%?xz8JZ)`NJO zdm?({>vpq*)6Skb*VHWEj>d$M_yq1j6wP5S^X?J8a;y4;=3=E?)xO|{{n`TEgA4tYl{_nXRCtN>)kl{t<%pH z1|;U$-rdLkW8<(txX+#3fWSQ4yW1aXb!S3uKw_Tlb%p)u=Nbb7^K9?2D9Wm;%Az>R z4G7G$y~m;~tIw(|6$T{c`QBrTSYKrRnngWR1?I0<6i|EtypcAMT)ZKa00000NkvXX Hu0mjf0rO9i From 2129ac25d0270a38df3c81f472dea747e871863b Mon Sep 17 00:00:00 2001 From: lbnesquik Date: Mon, 30 Dec 2019 09:17:16 +0100 Subject: [PATCH 34/65] Remplaced my apparently buggy weapons file with the one from git --- icons/obj/weapons.dmi | Bin 44726 -> 40747 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/icons/obj/weapons.dmi b/icons/obj/weapons.dmi index da2754d04b96ad21dbe19672be77335c4e607c03..213b884a33257f88434042d9dfbf2d5d405417e7 100644 GIT binary patch literal 40747 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 literal 44726 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 Date: Mon, 30 Dec 2019 10:50:32 -0500 Subject: [PATCH 35/65] Comment Consistency --- code/modules/mob/living/carbon/human/species/species.dm | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/code/modules/mob/living/carbon/human/species/species.dm b/code/modules/mob/living/carbon/human/species/species.dm index 2c797ace535..edb8506a01d 100644 --- a/code/modules/mob/living/carbon/human/species/species.dm +++ b/code/modules/mob/living/carbon/human/species/species.dm @@ -357,7 +357,8 @@ t_him = "him" if(FEMALE) t_him = "her" - if(H.zone_sel.selecting == "head") //VOREStation Edit - Headpats and Handshakes. + //VOREStation Edit Start- Headpats and Handshakes. + if(H.zone_sel.selecting == "head") H.visible_message( \ "[H] pats [target] on the head.", \ "You pat [target] on the head.", ) @@ -365,6 +366,7 @@ H.visible_message( \ "[H] shakes [target]'s hand.", \ "You shake [target]'s hand.", ) + //VOREStation Edit End //VOREStation Edit Start - TFF 15/12/19 - Port nose booping from CHOMPStation else if(H.zone_sel.selecting == "mouth") H.visible_message( \ From 50adcea4917ffbe3b036fb9bc2d820a1e7762d06 Mon Sep 17 00:00:00 2001 From: TheFurryFeline <38586851+TheFurryFeline@users.noreply.github.com> Date: Mon, 30 Dec 2019 16:41:02 -0500 Subject: [PATCH 36/65] Blep Big chunka text surrounded by Vorestation edit --- code/modules/mob/living/carbon/human/species/species.dm | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/code/modules/mob/living/carbon/human/species/species.dm b/code/modules/mob/living/carbon/human/species/species.dm index edb8506a01d..dfc44661c85 100644 --- a/code/modules/mob/living/carbon/human/species/species.dm +++ b/code/modules/mob/living/carbon/human/species/species.dm @@ -357,7 +357,7 @@ t_him = "him" if(FEMALE) t_him = "her" - //VOREStation Edit Start- Headpats and Handshakes. + //VOREStation Edit Start - Headpats and Handshakes. if(H.zone_sel.selecting == "head") H.visible_message( \ "[H] pats [target] on the head.", \ @@ -366,8 +366,7 @@ H.visible_message( \ "[H] shakes [target]'s hand.", \ "You shake [target]'s hand.", ) - //VOREStation Edit End - //VOREStation Edit Start - TFF 15/12/19 - Port nose booping from CHOMPStation + //TFF 15/12/19 - Port nose booping from CHOMPStation else if(H.zone_sel.selecting == "mouth") H.visible_message( \ "[H] boops [target]'s nose.", \ From 9246b2ac5187104522bae62b3d5096a4dd6975d8 Mon Sep 17 00:00:00 2001 From: Heroman Date: Tue, 31 Dec 2019 08:46:36 +1000 Subject: [PATCH 37/65] Adds onclick check for the danger/feralness indicator --- code/_onclick/hud/screen_objects_vr.dm | 33 ++++++++++++++++++++++++-- 1 file changed, 31 insertions(+), 2 deletions(-) diff --git a/code/_onclick/hud/screen_objects_vr.dm b/code/_onclick/hud/screen_objects_vr.dm index c1fbd99448a..b3388f7bf76 100644 --- a/code/_onclick/hud/screen_objects_vr.dm +++ b/code/_onclick/hud/screen_objects_vr.dm @@ -14,8 +14,37 @@ var/mob/living/carbon/human/H = usr if(istype(H) && istype(H.species, /datum/species/shadekin)) to_chat(usr,"Energy: [H.shadekin_get_energy(H)]") - - + if("danger level") + var/mob/living/carbon/human/H = usr + if(istype(H) && istype(H.species, /datum/species/xenochimera)) + if(H.feral > 50) + to_chat(usr, "You are currently completely feral.") + else if(H.feral > 10) + to_chat(usr, "You are currently crazed and confused.") + else if(H.feral > 0) + to_chat(usr, "You are currently acting on instinct.") + else + to_chat(usr, "You are currently calm and collected.") + if(H.feral > 0) + var/feral_passing = TRUE + if(H.traumatic_shock > min(60, H.nutrition/10)) + to_chat(usr, "Your pain prevents you from regaining focus.") + feral_passing = FALSE + if(H.feral + H.nutrition < 150) + to_chat(usr, "Your hunger prevents you from regaining focus.") + feral_passing = FALSE + if(H.jitteriness >= 100) + to_chat(usr, "Your jitterness prevents you from regaining focus.") + feral_passing = FALSE + if(feral_passing) + var/turf/T = get_turf(H) + if(T.get_lumcount() <= 0.1) + to_chat(usr, "You are slowly calming down in darkness' safety...") + else + to_chat(usr, "You are slowly calming down... But safety of darkness is much preferred.") + else + if(H.nutrition < 150) + to_chat(usr, "Your hunger is slowly making you unstable.") else return 0 From e21ac7d522f64841819a19519c6ee8e463e0a0ca Mon Sep 17 00:00:00 2001 From: Heroman Date: Tue, 31 Dec 2019 15:42:15 +1000 Subject: [PATCH 38/65] _vr --- .../station/{xenochimera_hud.dm => xenochimera_hud_vr.dm} | 0 vorestation.dme | 2 +- 2 files changed, 1 insertion(+), 1 deletion(-) rename code/modules/mob/living/carbon/human/species/station/{xenochimera_hud.dm => xenochimera_hud_vr.dm} (100%) diff --git a/code/modules/mob/living/carbon/human/species/station/xenochimera_hud.dm b/code/modules/mob/living/carbon/human/species/station/xenochimera_hud_vr.dm similarity index 100% rename from code/modules/mob/living/carbon/human/species/station/xenochimera_hud.dm rename to code/modules/mob/living/carbon/human/species/station/xenochimera_hud_vr.dm diff --git a/vorestation.dme b/vorestation.dme index f9940626f1c..ea0ed83e0c7 100644 --- a/vorestation.dme +++ b/vorestation.dme @@ -2360,7 +2360,7 @@ #include "code\modules\mob\living\carbon\human\species\station\station_special_abilities_vr.dm" #include "code\modules\mob\living\carbon\human\species\station\station_special_vr.dm" #include "code\modules\mob\living\carbon\human\species\station\station_vr.dm" -#include "code\modules\mob\living\carbon\human\species\station\xenochimera_hud.dm" +#include "code\modules\mob\living\carbon\human\species\station\xenochimera_hud_vr.dm" #include "code\modules\mob\living\carbon\human\species\station\protean_vr\protean_blob.dm" #include "code\modules\mob\living\carbon\human\species\station\protean_vr\protean_powers.dm" #include "code\modules\mob\living\carbon\human\species\station\protean_vr\protean_species.dm" From 65a8bf72a4fcf03dcea64ee90719bb2902f45b07 Mon Sep 17 00:00:00 2001 From: Heroman Date: Tue, 31 Dec 2019 22:14:46 +1000 Subject: [PATCH 39/65] Fixes for maints on asteroid 1 --- maps/tether/tether-05-station1.dmm | 99 +++++++++++++++++++++--------- 1 file changed, 70 insertions(+), 29 deletions(-) diff --git a/maps/tether/tether-05-station1.dmm b/maps/tether/tether-05-station1.dmm index a235b0b41c5..dd82d9ed376 100644 --- a/maps/tether/tether-05-station1.dmm +++ b/maps/tether/tether-05-station1.dmm @@ -4945,22 +4945,27 @@ /area/hallway/station/atrium) "ait" = ( /obj/structure/cable{ - icon_state = "2-4" + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/machinery/alarm{ + dir = 8; + icon_state = "alarm0"; + pixel_x = 24 }, /turf/simulated/floor, -/area/maintenance/substation/spacecommand) +/area/maintenance/station/spacecommandmaint) "aiu" = ( /obj/structure/cable{ - d1 = 1; - d2 = 8; - icon_state = "1-8" + icon_state = "2-4" }, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2"; - pixel_y = 0 +/obj/machinery/alarm{ + dir = 4; + icon_state = "alarm0"; + pixel_x = -22 }, +/obj/effect/floor_decal/industrial/warning, /turf/simulated/floor, /area/maintenance/substation/spacecommand) "aiv" = ( @@ -11179,12 +11184,21 @@ /area/crew_quarters/sleep/cryo) "aup" = ( /obj/structure/cable{ - d1 = 2; + d1 = 1; d2 = 8; - icon_state = "2-8" + icon_state = "1-8" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/effect/floor_decal/industrial/warning/corner{ + dir = 8 }, /turf/simulated/floor, -/area/maintenance/station/spacecommandmaint) +/area/maintenance/substation/spacecommand) "auq" = ( /obj/structure/disposalpipe/segment, /turf/simulated/floor, @@ -11358,6 +11372,9 @@ /obj/machinery/camera/network/engineering{ dir = 8 }, +/obj/effect/floor_decal/industrial/warning{ + dir = 8 + }, /turf/simulated/floor, /area/maintenance/substation/spacecommand) "auL" = ( @@ -11384,6 +11401,9 @@ dir = 8 }, /obj/structure/cable, +/obj/effect/floor_decal/industrial/warning{ + dir = 8 + }, /turf/simulated/floor, /area/maintenance/substation/spacecommand) "auO" = ( @@ -11432,18 +11452,29 @@ /obj/machinery/door/airlock/maintenance/engi{ name = "Space Civ/Com Substation" }, +/obj/effect/floor_decal/industrial/warning/corner{ + icon_state = "warningcorner"; + dir = 4 + }, /turf/simulated/floor, /area/maintenance/substation/spacecommand) "auR" = ( -/obj/machinery/power/apc{ - dir = 4; - name = "east bump"; - pixel_x = 28 +/obj/structure/cable/green, +/obj/structure/cable/green{ + icon_state = "0-4" }, /obj/structure/cable/green{ d2 = 8; icon_state = "0-8" }, +/obj/machinery/power/sensor{ + name = "Powernet Sensor - Space Civ/Com Subgrid"; + name_tag = "Space Civ/Com Subgrid" + }, +/obj/effect/floor_decal/industrial/warning{ + icon_state = "warning"; + dir = 1 + }, /turf/simulated/floor, /area/maintenance/substation/spacecommand) "auS" = ( @@ -11682,17 +11713,19 @@ /turf/simulated/floor/tiled, /area/engineering/workshop) "avp" = ( -/obj/structure/cable/green, -/obj/structure/cable/green{ - icon_state = "0-4" +/obj/machinery/power/apc{ + dir = 4; + name = "east bump"; + pixel_x = 28 }, /obj/structure/cable/green{ d2 = 8; icon_state = "0-8" }, -/obj/machinery/power/sensor{ - name = "Powernet Sensor - Space Civ/Com Subgrid"; - name_tag = "Space Civ/Com Subgrid" +/obj/random/junk, +/obj/effect/floor_decal/industrial/warning/corner{ + icon_state = "warningcorner"; + dir = 1 }, /turf/simulated/floor, /area/maintenance/substation/spacecommand) @@ -14999,6 +15032,14 @@ /obj/machinery/light, /turf/simulated/floor/tiled, /area/bridge/secondary/hallway) +"aAv" = ( +/obj/effect/floor_decal/rust, +/obj/machinery/alarm{ + dir = 1; + pixel_y = -25 + }, +/turf/simulated/floor, +/area/maintenance/station/spacecommandmaint) "aAw" = ( /obj/structure/cable{ d1 = 4; @@ -33554,7 +33595,7 @@ aAt awW ahj ail -aBL +aAv auD aat aat @@ -33679,10 +33720,10 @@ ail auj aBL adj -ait +aiu aun auL -avp +auR avb awE axq @@ -33818,13 +33859,13 @@ acQ aBG aix aBx -aup +ait aut ain -aiu +aup auK auN -auR +avp avb aBS axy From 750c6f0ea780b7740d0ec076289f66b1453574af Mon Sep 17 00:00:00 2001 From: Unknown Date: Tue, 31 Dec 2019 18:09:13 -0500 Subject: [PATCH 40/65] Remove medicine bottle from TE Whitelist --- code/_helpers/global_lists_vr.dm | 1 - 1 file changed, 1 deletion(-) diff --git a/code/_helpers/global_lists_vr.dm b/code/_helpers/global_lists_vr.dm index 3469779fda2..0a1e72592db 100644 --- a/code/_helpers/global_lists_vr.dm +++ b/code/_helpers/global_lists_vr.dm @@ -169,7 +169,6 @@ var/global/list/edible_trash = list(/obj/item/broken_device, /obj/item/weapon/pen, /obj/item/weapon/photo, /obj/item/weapon/reagent_containers/food, - /obj/item/weapon/reagent_containers/glass/bottle, /obj/item/weapon/reagent_containers/glass/rag, /obj/item/weapon/soap, /obj/item/weapon/spacecash, From 092415955427bf084ec0d52cb04f00ac8567414a Mon Sep 17 00:00:00 2001 From: Atermonera Date: Tue, 31 Dec 2019 16:12:49 -0800 Subject: [PATCH 42/65] Merge pull request #6589 from Heroman3003/fruist-multispawn Allows admin spawning fruit in multiples --- code/modules/admin/admin.dm | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/code/modules/admin/admin.dm b/code/modules/admin/admin.dm index 878671b0e20..c23a6020b09 100644 --- a/code/modules/admin/admin.dm +++ b/code/modules/admin/admin.dm @@ -1055,8 +1055,10 @@ var/datum/announcement/minor/admin_min_announcer = new if(!seedtype || !plant_controller.seeds[seedtype]) return - var/datum/seed/S = plant_controller.seeds[seedtype] - S.harvest(usr,0,0,1) + var/amount = input("Amount of fruit to spawn", "Fruit Amount", 1) as null|num + if(!isnull(amount)) + var/datum/seed/S = plant_controller.seeds[seedtype] + S.harvest(usr,0,0,amount) log_admin("[key_name(usr)] spawned [seedtype] fruit at ([usr.x],[usr.y],[usr.z])") /datum/admins/proc/spawn_custom_item() From e7c023dd8f9700c5587c42d5dd5399a5f444d3d3 Mon Sep 17 00:00:00 2001 From: "C.L" Date: Thu, 2 Jan 2020 17:30:17 -0500 Subject: [PATCH 44/65] Adds Flaktual to Vox Whitelist See: https://forum.vore-station.net/viewtopic.php?f=46&t=1618 --- config/alienwhitelist.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/config/alienwhitelist.txt b/config/alienwhitelist.txt index f7de728072f..2c91175437e 100644 --- a/config/alienwhitelist.txt +++ b/config/alienwhitelist.txt @@ -12,6 +12,7 @@ azmodan412 - Xenomorph Hybrid bothnevarbackwards - Diona cameron653 - Xenomorph Hybrid crossexonar - Protean +flaktual - Vox funnyman2003 - Xenochimera hawkerthegreat - Vox hollifex - Diona From 489197990c1ab41a10d2a0c05d9940a5f6d9ad8b Mon Sep 17 00:00:00 2001 From: Heroman Date: Fri, 3 Jan 2020 12:57:54 +1000 Subject: [PATCH 45/65] Removes Poly's roundstart headset --- .../simple_mob/subtypes/animal/pets/parrot.dm | 2 +- maps/tether/tether-05-station1.dmm | 58 +++++++++---------- 2 files changed, 27 insertions(+), 33 deletions(-) diff --git a/code/modules/mob/living/simple_mob/subtypes/animal/pets/parrot.dm b/code/modules/mob/living/simple_mob/subtypes/animal/pets/parrot.dm index 44c9ad1b8bd..dc611e38318 100644 --- a/code/modules/mob/living/simple_mob/subtypes/animal/pets/parrot.dm +++ b/code/modules/mob/living/simple_mob/subtypes/animal/pets/parrot.dm @@ -109,7 +109,7 @@ icon_rest = "poly-held" icon_dead = "poly-dead" tt_desc = "E Ara macao" - my_headset = /obj/item/device/radio/headset/headset_eng + //my_headset = /obj/item/device/radio/headset/headset_eng //VOREStation Removal: shut up say_list_type = /datum/say_list/bird/poly // Best Bird with best headset. diff --git a/maps/tether/tether-05-station1.dmm b/maps/tether/tether-05-station1.dmm index dd82d9ed376..4b3f99af9c9 100644 --- a/maps/tether/tether-05-station1.dmm +++ b/maps/tether/tether-05-station1.dmm @@ -2209,8 +2209,10 @@ /turf/simulated/floor, /area/maintenance/station/eng_lower) "aei" = ( -/turf/simulated/wall/r_wall, -/area/mine/explored/upper_level) +/obj/structure/table/reinforced, +/obj/machinery/camera/network/engineering, +/turf/simulated/floor/tiled, +/area/crew_quarters/heads/chief) "aej" = ( /turf/simulated/floor/tiled/dark, /area/bridge/secondary) @@ -16032,13 +16034,15 @@ /area/engineering/engineering_monitoring) "aCc" = ( /obj/structure/table/reinforced, +/obj/item/weapon/rcd, +/obj/item/weapon/rcd_ammo, +/obj/item/weapon/rcd_ammo, +/obj/item/weapon/rcd_ammo, +/obj/item/weapon/rcd_ammo, /obj/machinery/light_switch{ - dir = 2; - name = "light switch "; - pixel_x = 10; - pixel_y = 36 + pixel_x = -22; + pixel_y = 22 }, -/obj/machinery/camera/network/engineering, /turf/simulated/floor/tiled, /area/crew_quarters/heads/chief) "aCd" = ( @@ -16738,6 +16742,17 @@ }, /turf/simulated/floor/tiled/white, /area/crew_quarters/toilet) +"aDi" = ( +/obj/machinery/alarm{ + dir = 8; + pixel_x = 25; + pixel_y = 0 + }, +/obj/structure/window/reinforced{ + dir = 1 + }, +/turf/simulated/floor/outdoors/grass/forest, +/area/crew_quarters/heads/chief) "aDj" = ( /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 9 @@ -19344,18 +19359,6 @@ /obj/item/weapon/pen/multi, /turf/simulated/floor/carpet/oracarpet, /area/crew_quarters/heads/chief) -"aTW" = ( -/obj/machinery/alarm{ - dir = 8; - pixel_x = 25; - pixel_y = 0 - }, -/obj/structure/window/reinforced{ - dir = 1 - }, -/obj/item/weapon/reagent_containers/food/snacks/snakesnack, -/turf/simulated/floor/outdoors/grass/forest, -/area/crew_quarters/heads/chief) "aTX" = ( /obj/machinery/computer/general_air_control{ dir = 4; @@ -19820,15 +19823,6 @@ /obj/machinery/computer/skills, /turf/simulated/floor/tiled, /area/crew_quarters/heads/chief) -"aYH" = ( -/obj/structure/table/reinforced, -/obj/item/weapon/rcd, -/obj/item/weapon/rcd_ammo, -/obj/item/weapon/rcd_ammo, -/obj/item/weapon/rcd_ammo, -/obj/item/weapon/rcd_ammo, -/turf/simulated/floor/tiled, -/area/crew_quarters/heads/chief) "aYJ" = ( /obj/structure/table/reinforced, /obj/item/weapon/book/manual/supermatter_engine, @@ -27598,7 +27592,7 @@ atO aJm alL aRb -aCc +aei aQa aSa bft @@ -27740,7 +27734,7 @@ aSC bds aLA agc -aYH +aCc aRV bcp bfv @@ -28595,7 +28589,7 @@ aRb aZg aQl aSu -aTW +aDi vyI aRb bYj @@ -31009,7 +31003,7 @@ aaV aoJ aoJ aoJ -aei +aoJ aac afC agX From 16fd960a39514676393c617438284a9251b993f7 Mon Sep 17 00:00:00 2001 From: Heroman Date: Sat, 4 Jan 2020 05:54:32 +1000 Subject: [PATCH 46/65] Makes supply shuttle landing into full pad --- maps/tether/tether-06-station2.dmm | 2 +- maps/tether/tether-07-station3.dmm | 193 ++++++++++++++--------------- 2 files changed, 95 insertions(+), 100 deletions(-) diff --git a/maps/tether/tether-06-station2.dmm b/maps/tether/tether-06-station2.dmm index ddc948de6ee..4a8dfddd394 100644 --- a/maps/tether/tether-06-station2.dmm +++ b/maps/tether/tether-06-station2.dmm @@ -37354,7 +37354,7 @@ DL pS ac ac -ac +aa aa oY Ei diff --git a/maps/tether/tether-07-station3.dmm b/maps/tether/tether-07-station3.dmm index 48f553009a6..c1ee32b2fed 100644 --- a/maps/tether/tether-07-station3.dmm +++ b/maps/tether/tether-07-station3.dmm @@ -17487,10 +17487,10 @@ /turf/simulated/floor/plating, /area/quartermaster/storage) "AY" = ( -/turf/space, -/area/supply/station{ - dynamic_lighting = 0 - }) +/obj/structure/shuttle/engine/propulsion, +/turf/simulated/floor/reinforced, +/turf/simulated/shuttle/plating/airless/carry, +/area/shuttle/excursion/tether) "AZ" = ( /obj/structure/table/glass, /obj/item/weapon/storage/firstaid/regular, @@ -26666,10 +26666,13 @@ /turf/simulated/floor/airless, /area/medical/virology) "PA" = ( -/obj/structure/shuttle/engine/propulsion, -/turf/simulated/floor/reinforced, +/obj/structure/shuttle/engine/propulsion{ + dir = 8; + icon_state = "propulsion_l" + }, +/turf/space, /turf/simulated/shuttle/plating/airless/carry, -/area/shuttle/excursion/tether) +/area/shuttle/large_escape_pod1/station) "PB" = ( /turf/simulated/wall/r_wall, /area/medical/virologyisolation) @@ -27075,15 +27078,15 @@ /area/medical/virology) "Qp" = ( /obj/structure/shuttle/engine/propulsion{ - dir = 8; - icon_state = "propulsion_l" + dir = 8 }, /turf/space, /turf/simulated/shuttle/plating/airless/carry, /area/shuttle/large_escape_pod1/station) "Qq" = ( /obj/structure/shuttle/engine/propulsion{ - dir = 8 + dir = 8; + icon_state = "propulsion_r" }, /turf/space, /turf/simulated/shuttle/plating/airless/carry, @@ -27124,14 +27127,6 @@ "Qt" = ( /turf/simulated/wall, /area/tether/exploration) -"Qu" = ( -/obj/structure/shuttle/engine/propulsion{ - dir = 8; - icon_state = "propulsion_r" - }, -/turf/space, -/turf/simulated/shuttle/plating/airless/carry, -/area/shuttle/large_escape_pod1/station) "Qw" = ( /obj/effect/floor_decal/techfloor{ dir = 8 @@ -39324,11 +39319,11 @@ MK Iy ab NL +PA +Qp +Qp Qp Qq -Qq -Qq -Qu NL vt vt @@ -40551,7 +40546,7 @@ Zy WG dj XA -PA +AY ms Oz be @@ -40693,7 +40688,7 @@ UJ Xb dj XN -PA +AY ms Xq be @@ -40835,7 +40830,7 @@ iW WS dj XN -PA +AY ms Xq be @@ -41118,7 +41113,7 @@ jZ WR Xo XN -PA +AY cK ms Xq @@ -41686,7 +41681,7 @@ ea kx dj XN -PA +AY cK ms mq @@ -41971,7 +41966,7 @@ kQ TG dj XN -PA +AY ms mq be @@ -42113,7 +42108,7 @@ kR Vd dj XN -PA +AY ms QL be @@ -42255,7 +42250,7 @@ ZE ZB dj XB -PA +AY ms Sq be @@ -44410,17 +44405,17 @@ vt vt vt vt -AY -AY CS CS CS CS CS CS -AY -AY -AY +CS +CS +CS +CS +CS ae ae aa @@ -44552,18 +44547,18 @@ aa aa aa ae -AY -AY CS CS CS CS CS CS -AY -AY -AY -AY +CS +CS +CS +CS +CS +CS ae aa aa @@ -44694,18 +44689,18 @@ aa aa aa ae -AY -AY -AY -AY -AY -AY -AY -AY -AY -AY -AY -AY +CS +CS +CS +CS +CS +CS +CS +CS +CS +CS +CS +CS ae aa aa @@ -44836,18 +44831,18 @@ aa aa aa ae -AY -AY -AY -AY -AY -AY -AY -AY -AY -AY -AY -AY +CS +CS +CS +CS +CS +CS +CS +CS +CS +CS +CS +CS ae aa aa @@ -44978,18 +44973,18 @@ aa aa aa aa -AY -AY -AY -AY -AY -AY -AY -AY -AY -AY -AY -AY +CS +CS +CS +CS +CS +CS +CS +CS +CS +CS +CS +CS ae aa aa @@ -45120,18 +45115,18 @@ aa aa aa aa -AY -AY -AY -AY -AY -AY -AY -AY -AY -AY -AY -AY +CS +CS +CS +CS +CS +CS +CS +CS +CS +CS +CS +CS ae aa aa @@ -45262,17 +45257,17 @@ aa aa aa aa -AY -AY -AY -AY -AY -AY -AY -AY -AY -AY -AY +CS +CS +CS +CS +CS +CS +CS +CS +CS +CS +CS ae ae aa From e772c1a09b5d20bf165c7bf9801b9993ebadd2b1 Mon Sep 17 00:00:00 2001 From: lbnesquik Date: Fri, 3 Jan 2020 22:47:32 +0100 Subject: [PATCH 47/65] Add ambrosia seed as a somewhat rare loot for trash. Why is this good: - Low level illegal stuff to do - I can make my pothead characters - This is like the most common illegal drug ever, so having it being harder to get than size guns or basically anything in R&D is weird. - What are you going to do with weed besides smoke it anyway? --- code/game/objects/structures/trash_pile.dm | 1 + 1 file changed, 1 insertion(+) diff --git a/code/game/objects/structures/trash_pile.dm b/code/game/objects/structures/trash_pile.dm index bc06bb0dbd9..1c118a18fd5 100644 --- a/code/game/objects/structures/trash_pile.dm +++ b/code/game/objects/structures/trash_pile.dm @@ -221,6 +221,7 @@ var/path = pick(prob(6);/obj/item/weapon/storage/pill_bottle/tramadol, prob(4);/obj/item/weapon/storage/pill_bottle/happy, prob(4);/obj/item/weapon/storage/pill_bottle/zoom, + prob(4);/obj/item/seeds/ambrosiavulgarisseed, prob(4);/obj/item/weapon/gun/energy/sizegun, prob(3);/obj/item/weapon/material/butterfly, prob(3);/obj/item/weapon/material/butterfly/switchblade, From 573e2f397c311c76058286e0398daea88e18cce9 Mon Sep 17 00:00:00 2001 From: Atermonera Date: Fri, 3 Jan 2020 23:52:39 -0800 Subject: [PATCH 48/65] Merge pull request #6504 from Rykka-Stormheart/shep-dev-vent-resprite Change Vent Pump/Scrubbers to Retro-like with actual fanblades --- icons/atmos/vent_pump.dmi | Bin 11076 -> 35345 bytes icons/atmos/vent_scrubber.dmi | Bin 1464 -> 8053 bytes 2 files changed, 0 insertions(+), 0 deletions(-) diff --git a/icons/atmos/vent_pump.dmi b/icons/atmos/vent_pump.dmi index 0cff6a8ffaec0fe6b4f867508630904bb86952ad..8d75b37509a87889d1dc1a1eeb281cbf00c9ae63 100644 GIT binary patch literal 35345 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

IjXw?p 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
+

31 December 2019

+

Atermonera updated:

+
    +
  • Radiation has been made more potent and is no longer defeated by a thin sheet of lead.
  • +
+

Cerebulon updated:

+
    +
  • Added decaf coffee to the coffee shop.
  • +
  • Added 6 types of bagel
  • +
  • Modified the coffee shop to have extra counter space and a microwave for bagels.
  • +
  • Removed chef lock on kitchen cabinet.
  • +
  • Removed reference to outdated skrell lore from naewa cube box.
  • +
+

TheFurryFeline updated:

+
    +
  • Changes light replacers to allow you to automatically transfer used bulbs into the item and get a new one every 4 bulbs replaced. Additionally, this allows you to both use the replacer on a box of bulbs to get the bulbs added as well as clicking the item with a box of bulbs to put them inside it.
  • +
  • Spray bottles can now be printed in the Autolathe.
  • +
+

16 December 2019

Atermonera updated:

    diff --git a/html/changelogs/.all_changelog.yml b/html/changelogs/.all_changelog.yml index 274bbd5d283..c229806ec3b 100644 --- a/html/changelogs/.all_changelog.yml +++ b/html/changelogs/.all_changelog.yml @@ -4843,3 +4843,20 @@ DO NOT EDIT THIS FILE BY HAND! AUTOMATICALLY GENERATED BY ss13_genchangelog.py. - rscadd: One holster to each explorer locker. - rscdel: Removed the old size modifier traits for mobs. - rscadd: Port and tweak of the size modifiers from World Server for mobs. +2019-12-31: + Atermonera: + - bugfix: Radiation has been made more potent and is no longer defeated by a thin + sheet of lead. + Cerebulon: + - rscadd: Added decaf coffee to the coffee shop. + - rscadd: Added 6 types of bagel + - maptweak: Modified the coffee shop to have extra counter space and a microwave + for bagels. + - tweak: Removed chef lock on kitchen cabinet. + - spellcheck: Removed reference to outdated skrell lore from naewa cube box. + TheFurryFeline: + - tweak: Changes light replacers to allow you to automatically transfer used bulbs + into the item and get a new one every 4 bulbs replaced. Additionally, this allows + you to both use the replacer on a box of bulbs to get the bulbs added as well + as clicking the item with a box of bulbs to put them inside it. + - rscadd: Spray bottles can now be printed in the Autolathe. diff --git a/html/changelogs/Cerebulon - Coffee Shop.yml b/html/changelogs/Cerebulon - Coffee Shop.yml deleted file mode 100644 index 94650de1f4c..00000000000 --- a/html/changelogs/Cerebulon - Coffee Shop.yml +++ /dev/null @@ -1,40 +0,0 @@ -################################ -# Example Changelog File -# -# Note: This file, and files beginning with ".", and files that don't end in ".yml" will not be read. If you change this file, you will look really dumb. -# -# Your changelog will be merged with a master changelog. (New stuff added only, and only on the date entry for the day it was merged.) -# When it is, any changes listed below will disappear. -# -# Valid Prefixes: -# bugfix -# wip (For works in progress) -# tweak -# soundadd -# sounddel -# rscadd (general adding of nice things) -# rscdel (general deleting of nice things) -# imageadd -# imagedel -# maptweak -# spellcheck (typo fixes) -# experiment -################################# - -# Your name. -author: Cerebulon - -# Optional: Remove this file after generating master changelog. Useful for PR changelogs that won't get used again. -delete-after: True - -# Any changes you've made. See valid prefix list above. -# INDENT WITH TWO SPACES. NOT TABS. SPACES. -# SCREW THIS UP AND IT WON'T WORK. -# Also, all entries are changed into a single [] after a master changelog generation. Just remove the brackets when you add new entries. -# Please surround your changes in double quotes ("), as certain characters otherwise screws up compiling. The quotes will not show up in the changelog. -changes: - - rscadd: "Added decaf coffee to the coffee shop." - - rscadd: "Added 6 types of bagel" - - maptweak: "Modified the coffee shop to have extra counter space and a microwave for bagels." - - tweak: "Removed chef lock on kitchen cabinet." - - spellcheck: "Removed reference to outdated skrell lore from naewa cube box." diff --git a/html/changelogs/TheFurryFeline - Bulbs_Recycling.yml b/html/changelogs/TheFurryFeline - Bulbs_Recycling.yml deleted file mode 100644 index 3e887d8d87d..00000000000 --- a/html/changelogs/TheFurryFeline - Bulbs_Recycling.yml +++ /dev/null @@ -1,36 +0,0 @@ -################################ -# Example Changelog File -# -# Note: This file, and files beginning with ".", and files that don't end in ".yml" will not be read. If you change this file, you will look really dumb. -# -# Your changelog will be merged with a master changelog. (New stuff added only, and only on the date entry for the day it was merged.) -# When it is, any changes listed below will disappear. -# -# Valid Prefixes: -# bugfix -# wip (For works in progress) -# tweak -# soundadd -# sounddel -# rscadd (general adding of nice things) -# rscdel (general deleting of nice things) -# imageadd -# imagedel -# maptweak -# spellcheck (typo fixes) -# experiment -################################# - -# Your name. -author: TheFurryFeline - -# Optional: Remove this file after generating master changelog. Useful for PR changelogs that won't get used again. -delete-after: True - -# Any changes you've made. See valid prefix list above. -# INDENT WITH TWO SPACES. NOT TABS. SPACES. -# SCREW THIS UP AND IT WON'T WORK. -# Also, all entries are changed into a single [] after a master changelog generation. Just remove the brackets when you add new entries. -# Please surround your changes in double quotes ("), as certain characters otherwise screws up compiling. The quotes will not show up in the changelog. -changes: - - tweak: "Changes light replacers to allow you to automatically transfer used bulbs into the item and get a new one every 4 bulbs replaced. Additionally, this allows you to both use the replacer on a box of bulbs to get the bulbs added as well as clicking the item with a box of bulbs to put them inside it." \ No newline at end of file diff --git a/html/changelogs/TheFurryFeline - Print_Da_Sprayers.yml b/html/changelogs/TheFurryFeline - Print_Da_Sprayers.yml deleted file mode 100644 index 338cf0d9e4f..00000000000 --- a/html/changelogs/TheFurryFeline - Print_Da_Sprayers.yml +++ /dev/null @@ -1,36 +0,0 @@ -################################ -# Example Changelog File -# -# Note: This file, and files beginning with ".", and files that don't end in ".yml" will not be read. If you change this file, you will look really dumb. -# -# Your changelog will be merged with a master changelog. (New stuff added only, and only on the date entry for the day it was merged.) -# When it is, any changes listed below will disappear. -# -# Valid Prefixes: -# bugfix -# wip (For works in progress) -# tweak -# soundadd -# sounddel -# rscadd (general adding of nice things) -# rscdel (general deleting of nice things) -# imageadd -# imagedel -# maptweak -# spellcheck (typo fixes) -# experiment -################################# - -# Your name. -author: TheFurryFeline - -# Optional: Remove this file after generating master changelog. Useful for PR changelogs that won't get used again. -delete-after: True - -# Any changes you've made. See valid prefix list above. -# INDENT WITH TWO SPACES. NOT TABS. SPACES. -# SCREW THIS UP AND IT WON'T WORK. -# Also, all entries are changed into a single [] after a master changelog generation. Just remove the brackets when you add new entries. -# Please surround your changes in double quotes ("), as certain characters otherwise screws up compiling. The quotes will not show up in the changelog. -changes: - - rscadd: "Allows printing of a spray bottle in the Autolathe." \ No newline at end of file diff --git a/html/changelogs/atermonera - rad_buff.yml b/html/changelogs/atermonera - rad_buff.yml deleted file mode 100644 index 9b8c3b8afa7..00000000000 --- a/html/changelogs/atermonera - rad_buff.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: Atermonera -delete-after: True -changes: - - bugfix: "Radiation has been made more potent and is no longer defeated by a thin sheet of lead." From 07192b935cc7eefec4cfd94516330b14aea820f4 Mon Sep 17 00:00:00 2001 From: Andrew Date: Sun, 5 Jan 2020 17:08:55 -0600 Subject: [PATCH 55/65] Adjusts Emphasize Name Mention (#6597) Capitalizes all the words in the not_included section so that they actually get removed from the name check system. Names can't be lowercase so there is no point in keeping the previous version. --- code/modules/mob/hear_say.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/mob/hear_say.dm b/code/modules/mob/hear_say.dm index ad3689e8c53..e491095905c 100644 --- a/code/modules/mob/hear_say.dm +++ b/code/modules/mob/hear_say.dm @@ -97,7 +97,7 @@ // Checks if the mob's own name is included inside message. Handles both first and last names. /mob/proc/check_mentioned(var/message) - var/not_included = list("a", "the", "of", "in", "for", "through", "throughout", "therefore", "here", "there", "then", "now", "I", "you", "they", "he", "she", "by") + var/not_included = list("A", "The", "Of", "In", "For", "Through", "Throughout", "Therefore", "Here", "There", "Then", "Now", "I", "You", "They", "He", "She", "By") var/list/valid_names = splittext(real_name, " ") // Should output list("John", "Doe") as an example. valid_names -= not_included var/list/nicknames = splittext(nickname, " ") From ec5e851399ece2551fd63d2fd961ff010d7d4a1f Mon Sep 17 00:00:00 2001 From: Mechoid Date: Wed, 8 Jan 2020 10:44:41 -0800 Subject: [PATCH 57/65] Xenoflora expansion take2 --- code/game/machinery/seed_extractor.dm | 5 + .../items/weapons/material/chainsaw.dm | 5 + .../closets/secure/hydroponics.dm | 20 ++++ code/modules/hydroponics/_hydro_setup.dm | 48 ++++++++- code/modules/hydroponics/seed.dm | 97 +++++++++++++++++- code/modules/hydroponics/seed_datums.dm | 44 ++++++-- code/modules/hydroponics/seed_packets.dm | 9 ++ code/modules/hydroponics/seed_storage.dm | 1 + .../spreading/spreading_response.dm | 3 + code/modules/hydroponics/trays/tray.dm | 49 +++++---- code/modules/reagents/Chemistry-Recipes.dm | 14 +++ .../reagents/dispenser/dispenser_presets.dm | 2 - .../reagents/distilling/Distilling-Recipes.dm | 2 + icons/obj/closet.dmi | Bin 82306 -> 84764 bytes maps/southern_cross/southern_cross-1.dmm | 4 +- maps/southern_cross/southern_cross-4.dmm | 8 ++ maps/southern_cross/southern_cross-6.dmm | 3 +- 17 files changed, 280 insertions(+), 34 deletions(-) diff --git a/code/game/machinery/seed_extractor.dm b/code/game/machinery/seed_extractor.dm index ac88069151c..d8253390c50 100644 --- a/code/game/machinery/seed_extractor.dm +++ b/code/game/machinery/seed_extractor.dm @@ -40,6 +40,11 @@ obj/machinery/seed_extractor/attackby(var/obj/item/O as obj, var/mob/user as mob user << "You extract some seeds from the grass tile." new /obj/item/seeds/grassseed(loc) + else if(istype(O, /obj/item/weapon/fossil/plant)) // Fossils + var/obj/item/seeds/random/R = new(get_turf(src)) + to_chat(user, "\The [src] pulverizes \the [O] and spits out \the [R].") + qdel(O) + else if(default_unfasten_wrench(user, O, 20)) return diff --git a/code/game/objects/items/weapons/material/chainsaw.dm b/code/game/objects/items/weapons/material/chainsaw.dm index f98fe79f51e..4a8662c053d 100644 --- a/code/game/objects/items/weapons/material/chainsaw.dm +++ b/code/game/objects/items/weapons/material/chainsaw.dm @@ -84,6 +84,11 @@ obj/item/weapon/chainsaw/afterattack(atom/A as mob|obj|turf|area, mob/user as mo else if(istype(A,/obj/effect/plant)) var/obj/effect/plant/P = A qdel(P) //Plant isn't surviving that. At all + else if(istype(A,/obj/machinery/portable_atmospherics/hydroponics)) + var/obj/machinery/portable_atmospherics/hydroponics/Hyd = A + if(Hyd.seed && !Hyd.dead) + to_chat(user, "You shred the plant.") + Hyd.die() if (istype(A, /obj/structure/reagent_dispensers/fueltank) && get_dist(src,A) <= 1) to_chat(user, "You begin filling the tank on the chainsaw.") if(do_after(usr, 15)) diff --git a/code/game/objects/structures/crates_lockers/closets/secure/hydroponics.dm b/code/game/objects/structures/crates_lockers/closets/secure/hydroponics.dm index 45f9c77059f..110d3984f85 100644 --- a/code/game/objects/structures/crates_lockers/closets/secure/hydroponics.dm +++ b/code/game/objects/structures/crates_lockers/closets/secure/hydroponics.dm @@ -28,3 +28,23 @@ else starts_with += /obj/item/clothing/suit/storage/apron/overalls return ..() + +/obj/structure/closet/secure_closet/hydroponics/sci + name = "xenoflorist's locker" + req_access = list(access_xenobiology) + icon_state = "scihydrosecure1" + icon_closed = "scihydrosecure" + icon_locked = "scihydrosecure1" + icon_opened = "scihydrosecureopen" + icon_broken = "scihydrosecurebroken" + icon_off = "scihydrosecureoff" + +/obj/structure/closet/secure_closet/hydroponics/sci/Initialize() + starts_with += /obj/item/clothing/head/bio_hood/scientist + starts_with += /obj/item/clothing/suit/bio_suit/scientist + starts_with += /obj/item/clothing/mask/gas/clear + + if(prob(1)) + starts_with += /obj/item/weapon/chainsaw + + return ..() diff --git a/code/modules/hydroponics/_hydro_setup.dm b/code/modules/hydroponics/_hydro_setup.dm index 28c468aa4e3..ade6cf4ea30 100644 --- a/code/modules/hydroponics/_hydro_setup.dm +++ b/code/modules/hydroponics/_hydro_setup.dm @@ -57,4 +57,50 @@ #define TRAIT_BIOLUM 36 #define TRAIT_BIOLUM_COLOUR 37 #define TRAIT_IMMUTABLE 38 -#define TRAIT_FLESH_COLOUR 39 \ No newline at end of file +#define TRAIT_FLESH_COLOUR 39 +#define TRAIT_SPORING 40 +#define TRAIT_BENEFICIAL_REAG 41 +#define TRAIT_MUTAGENIC_REAG 42 +#define TRAIT_TOXIC_REAG 43 + +// Global list initialization for plants. + +GLOBAL_LIST_INIT(plant_mob_products, list( + /mob/living/simple_mob/creature = 10, + /mob/living/simple_mob/blob/spore = 20, + /mob/living/simple_mob/tomato = 30, + /mob/living/simple_mob/animal/passive/dog = 5, + /mob/living/simple_mob/animal/passive/chicken = 5, + /mob/living/simple_mob/animal/passive/crab = 5, + /mob/living/simple_mob/animal/passive/lizard = 4, + /mob/living/simple_mob/animal/passive/lizard/large = 1, + /mob/living/simple_mob/animal/giant_spider/pepper = 1, + /mob/living/simple_mob/animal/giant_spider/frost = 1, + /mob/living/simple_mob/animal/giant_spider/webslinger = 1, + /mob/living/simple_mob/animal/passive/mouse = 1, + /mob/living/simple_mob/animal/space/carp = 1, + /mob/living/carbon/human/monkey = 1, + /mob/living/carbon/alien/diona = 1 + )) + +GLOBAL_LIST_INIT(plant_item_products, list( + /obj/item/stack/material/cloth = 30, + /obj/item/stack/material/wax = 20, + /obj/item/stack/material/log = 30, + /obj/item/stack/material/resin = 10, + /obj/item/weapon/material/shard/shrapnel = 2, + /obj/item/weapon/ore = 5, + /obj/item/weapon/ore/iron = 2, + /obj/item/weapon/ore/coal = 2, + /obj/item/weapon/reagent_containers/food/snacks/meat = 3, + /obj/random/meat = 1, + /obj/item/weapon/reagent_containers/food/drinks/smallchocmilk = 2, + /obj/item/weapon/reagent_containers/food/drinks/smallmilk = 2, + /obj/item/ammo_casing/a145 = 1, + /obj/item/ammo_casing/chemdart/small = 1, + /obj/item/ammo_casing/chemdart = 1, + /obj/item/organ/internal/brain/grey = 1, + /obj/item/organ/internal/heart/grey = 1, + /obj/item/weapon/spacecash/c1 = 3, + /obj/item/weapon/spacecash/c10 = 1 + )) diff --git a/code/modules/hydroponics/seed.dm b/code/modules/hydroponics/seed.dm index b2d4443c9c8..f0f186e9499 100644 --- a/code/modules/hydroponics/seed.dm +++ b/code/modules/hydroponics/seed.dm @@ -26,6 +26,11 @@ var/has_item_product // Item products. (Eggy) var/force_layer +// Making the assumption anything in HYDRO-ponics is capable of processing water, and nutrients commonly associated with it, leaving us with the below to be tweaked. + var/list/beneficial_reagents // Reagents considered uniquely 'beneficial' by a plant. + var/list/mutagenic_reagents // Reagents considered uniquely 'mutagenic' by a plant. + var/list/toxic_reagents // Reagents considered uniquely 'toxic' by a plant. + /datum/seed/New() set_trait(TRAIT_IMMUTABLE, 0) // If set, plant will never mutate. If -1, plant is highly mutable. @@ -63,6 +68,10 @@ set_trait(TRAIT_IDEAL_HEAT, 293) // Preferred temperature in Kelvin. set_trait(TRAIT_NUTRIENT_CONSUMPTION, 0.25) // Plant eats this much per tick. set_trait(TRAIT_PLANT_COLOUR, "#46B543") // Colour of the plant icon. + set_trait(TRAIT_SPORING, 0) // Is the plant able to periodically produce spores when in a tray. 1, plant produces chem clouds, 0 it does not. + set_trait(TRAIT_BENEFICIAL_REAG, null) // Reagents considered uniquely 'beneficial' by a plant. This should be an associated list of lists, or null. Examples in tray.dm. nested list: health, yield, mut + set_trait(TRAIT_MUTAGENIC_REAG, null) // Reagents considered uniquely 'mutagenic' by a plant. This should be an associated list, or null. Examples in tray.dm + set_trait(TRAIT_TOXIC_REAG, null) // Reagents considered uniquely 'toxic' by a plant. This should be an associated list, or null. Examples in tray.dm spawn(5) sleep(-1) @@ -295,9 +304,20 @@ health_change += rand(1,3) * HYDRO_SPEED_MULTIPLIER // Handle gas production. - if(exude_gasses && exude_gasses.len && !check_only) - for(var/gas in exude_gasses) - environment.adjust_gas(gas, max(1,round((exude_gasses[gas]*(get_trait(TRAIT_POTENCY)/5))/exude_gasses.len))) + if(!check_only) + if(exude_gasses && exude_gasses.len) + for(var/gas in exude_gasses) + environment.adjust_gas(gas, max(1,round((exude_gasses[gas]*(get_trait(TRAIT_POTENCY)/5))/exude_gasses.len))) + + if(get_trait(TRAIT_SPORING)) + var/can_spore = TRUE + var/obj/machinery/portable_atmospherics/hydroponics/hometray = locate(/obj/machinery/portable_atmospherics/hydroponics) in current_turf + + if(health_change > 2 || (hometray && hometray.closed_system)) + can_spore = FALSE + + if(can_spore && prob(5)) + create_spores(current_turf) // Handle light requirements. if(!light_supplied) @@ -445,6 +465,30 @@ banned_chems += new_chem chems[new_chem] = list(rand(1,10),rand(10,20)) + if(prob(5)) + var/unique_beneficial_count = rand(1, 5) + if(!beneficial_reagents) + beneficial_reagents = list() + for(var/x = 1 to unique_beneficial_count) + beneficial_reagents[pick(SSchemistry.chemical_reagents)] = list(round(rand(-100, 100) / 10), round(rand(-100, 100) / 10), round(rand(-100, 100) / 10)) + set_trait(TRAIT_BENEFICIAL_REAG, beneficial_reagents) + + if(prob(5)) + var/unique_mutagenic_count = rand(1, 5) + if(!mutagenic_reagents) + mutagenic_reagents = list() + for(var/x = 1 to unique_mutagenic_count) + mutagenic_reagents[pick(SSchemistry.chemical_reagents)] = rand(0, 20) + set_trait(TRAIT_MUTAGENIC_REAG, mutagenic_reagents) + + if(prob(5)) + var/unique_toxic_count = rand(1, 5) + if(!toxic_reagents) + toxic_reagents = list() + for(var/x = 1 to unique_toxic_count) + toxic_reagents[pick(SSchemistry.chemical_reagents)] = round(rand(-100, 100) / 10) + set_trait(TRAIT_TOXIC_REAG, toxic_reagents) + if(prob(90)) set_trait(TRAIT_REQUIRES_NUTRIENTS,1) set_trait(TRAIT_NUTRIENT_CONSUMPTION,rand(25)/25) @@ -492,6 +536,15 @@ set_trait(TRAIT_BIOLUM,1) set_trait(TRAIT_BIOLUM_COLOUR,"#[get_random_colour(0,75,190)]") + if(prob(3)) + set_trait(TRAIT_SPORING,1) + + if(prob(5)) + if(prob(30)) + has_mob_product = pickweight(GLOB.plant_mob_products) + else + has_item_product = pickweight(GLOB.plant_item_products) + set_trait(TRAIT_ENDURANCE,rand(60,100)) set_trait(TRAIT_YIELD,rand(3,15)) set_trait(TRAIT_MATURATION,rand(5,15)) @@ -534,6 +587,13 @@ set_trait(TRAIT_LIGHT_TOLERANCE, get_trait(TRAIT_LIGHT_TOLERANCE)+(rand(-2,2)*degree),10,0) if(4) set_trait(TRAIT_TOXINS_TOLERANCE, get_trait(TRAIT_TOXINS_TOLERANCE)+(rand(-2,2)*degree),10,0) + if(prob(degree*3)) + var/unique_toxic_count = rand(1, 5) + if(!toxic_reagents) + toxic_reagents = list() + for(var/x = 1 to unique_toxic_count) + toxic_reagents[pick(SSchemistry.chemical_reagents)] = round(rand(-100, 100) / 10) + set_trait(TRAIT_TOXIC_REAG, toxic_reagents) if(5) set_trait(TRAIT_WEED_TOLERANCE, get_trait(TRAIT_WEED_TOLERANCE)+(rand(-2,2)*degree),10, 0) if(prob(degree*5)) @@ -547,6 +607,13 @@ if(7) if(get_trait(TRAIT_YIELD) != -1) set_trait(TRAIT_YIELD, get_trait(TRAIT_YIELD)+(rand(-2,2)*degree),10,0) + if(prob(degree*3)) + var/unique_mutagenic_count = rand(1, 5) + if(!mutagenic_reagents) + mutagenic_reagents = list() + for(var/x = 1 to unique_mutagenic_count) + mutagenic_reagents[pick(SSchemistry.chemical_reagents)] = rand(0, 20) + set_trait(TRAIT_MUTAGENIC_REAG, mutagenic_reagents) if(8) set_trait(TRAIT_ENDURANCE, get_trait(TRAIT_ENDURANCE)+(rand(-5,5)*degree),100,10) set_trait(TRAIT_PRODUCTION, get_trait(TRAIT_PRODUCTION)+(rand(-1,1)*degree),10, 1) @@ -554,10 +621,19 @@ if(prob(degree*5)) set_trait(TRAIT_SPREAD, get_trait(TRAIT_SPREAD)+rand(-1,1),2, 0) source_turf.visible_message("\The [display_name] spasms visibly, shifting in the tray.") + if(prob(degree*3)) + set_trait(TRAIT_SPORING, !get_trait(TRAIT_SPORING)) if(9) set_trait(TRAIT_MATURATION, get_trait(TRAIT_MATURATION)+(rand(-1,1)*degree),30, 0) if(prob(degree*5)) set_trait(TRAIT_HARVEST_REPEAT, !get_trait(TRAIT_HARVEST_REPEAT)) + if(prob(degree*3)) + var/unique_beneficial_count = rand(1, 5) + if(!beneficial_reagents) + beneficial_reagents = list() + for(var/x = 1 to unique_beneficial_count) + beneficial_reagents[pick(SSchemistry.chemical_reagents)] = list(round(rand(-100, 100) / 10), round(rand(-100, 100) / 10), round(rand(-100, 100) / 10)) + set_trait(TRAIT_BENEFICIAL_REAG, beneficial_reagents) if(10) if(prob(degree*2)) set_trait(TRAIT_BIOLUM, !get_trait(TRAIT_BIOLUM)) @@ -612,8 +688,17 @@ for(var/gas in exude_gasses) exude_gasses[gas] = max(1,round(exude_gasses[gas]*0.8)) + set_trait(TRAIT_BENEFICIAL_REAG, gene.values["[TRAIT_BENEFICIAL_REAG]"].Copy()) + + set_trait(TRAIT_MUTAGENIC_REAG, gene.values["[TRAIT_MUTAGENIC_REAG]"].Copy()) + + set_trait(TRAIT_TOXIC_REAG, gene.values["[TRAIT_TOXIC_REAG]"].Copy()) + gene.values["[TRAIT_EXUDE_GASSES]"] = null gene.values["[TRAIT_CHEMS]"] = null + gene.values["[TRAIT_BENEFICIAL_REAG]"] = null + gene.values["[TRAIT_MUTAGENIC_REAG]"] = null + gene.values["[TRAIT_TOXIC_REAG]"] = null if(GENE_DIET) var/list/new_gasses = gene.values["[TRAIT_CONSUME_GASSES]"] @@ -643,7 +728,7 @@ if(GENE_BIOCHEMISTRY) P.values["[TRAIT_CHEMS]"] = chems P.values["[TRAIT_EXUDE_GASSES]"] = exude_gasses - traits_to_copy = list(TRAIT_POTENCY) + traits_to_copy = list(TRAIT_POTENCY, TRAIT_SPORING, TRAIT_BENEFICIAL_REAG, TRAIT_MUTAGENIC_REAG, TRAIT_TOXIC_REAG) if(GENE_OUTPUT) traits_to_copy = list(TRAIT_PRODUCES_POWER,TRAIT_BIOLUM) if(GENE_ATMOSPHERE) @@ -680,6 +765,10 @@ if(!user) return + if(get_trait(TRAIT_SPORING) && prob(round(30 * yield_mod))) + var/turf/T = get_turf(user) + create_spores(T) + if(!force_amount && get_trait(TRAIT_YIELD) == 0 && !harvest_sample) if(istype(user)) user << "You fail to harvest anything useful." else diff --git a/code/modules/hydroponics/seed_datums.dm b/code/modules/hydroponics/seed_datums.dm index 9e34611b7da..a23b3031d54 100644 --- a/code/modules/hydroponics/seed_datums.dm +++ b/code/modules/hydroponics/seed_datums.dm @@ -317,7 +317,7 @@ seed_name = "ambrosia deus" display_name = "ambrosia deus" kitchen_tag = "ambrosiadeus" - mutants = null + mutants = list("ambrosiainfernus") chems = list("nutriment" = list(1), "bicaridine" = list(1,8), "synaptizine" = list(1,8,1), "hyperzine" = list(1,10,1), "space_drugs" = list(1,10)) /datum/seed/ambrosia/deus/New() @@ -325,6 +325,19 @@ set_trait(TRAIT_PRODUCT_COLOUR,"#A3F0AD") set_trait(TRAIT_PLANT_COLOUR,"#2A9C61") +/datum/seed/ambrosia/infernus + name = "ambrosiainfernus" + seed_name = "ambrosia infernus" + display_name = "ambrosia infernus" + kitchen_tag = "ambrosiainfernus" + mutants = null + chems = list("nutriment" = list(1,3), "oxycodone" = list(1,8), "impedrezene" = list(1,10), "mindbreaker" = list(1,10)) + +/datum/seed/ambrosia/infernus/New() + ..() + set_trait(TRAIT_PRODUCT_COLOUR,"#dc143c") + set_trait(TRAIT_PLANT_COLOUR,"#b22222") + //Mushrooms/varieties. /datum/seed/mushroom name = "mushrooms" @@ -507,6 +520,25 @@ set_trait(TRAIT_PLANT_COLOUR,"#E6E6E6") set_trait(TRAIT_PLANT_ICON,"mushroom10") +/datum/seed/mushroom/spore + name = "sporeshroom" + seed_name = "corpellian" + display_name = "corpellian" + mutants = null + chems = list("serotrotium" = list(5,10), "mold" = list(1,10)) + +/datum/seed/mushroom/spore/New() + ..() + set_trait(TRAIT_MATURATION,15) + set_trait(TRAIT_PRODUCTION,5) + set_trait(TRAIT_YIELD,4) + set_trait(TRAIT_POTENCY,20) + set_trait(TRAIT_PRODUCT_ICON,"mushroom5") + set_trait(TRAIT_PRODUCT_COLOUR,"#e29cd2") + set_trait(TRAIT_PLANT_COLOUR,"#f8e6f4") + set_trait(TRAIT_PLANT_ICON,"mushroom9") + set_trait(TRAIT_SPORING, TRUE) + //Flowers/varieties /datum/seed/flower name = "harebells" @@ -746,7 +778,7 @@ seed_name = "peanut" display_name = "peanut vines" kitchen_tag = "peanut" - chems = list("nutriment" = list(1,10), "peanutoil" = list(1,3)) + chems = list("nutriment" = list(1,10), "peanutoil" = list(3,10)) /datum/seed/peanuts/New() ..() @@ -755,7 +787,7 @@ set_trait(TRAIT_PRODUCTION,6) set_trait(TRAIT_YIELD,6) set_trait(TRAIT_POTENCY,10) - set_trait(TRAIT_PRODUCT_ICON,"potato") + set_trait(TRAIT_PRODUCT_ICON,"nuts") set_trait(TRAIT_PRODUCT_COLOUR,"#C4AE7A") set_trait(TRAIT_PLANT_ICON,"bush2") set_trait(TRAIT_IDEAL_LIGHT, 6) @@ -765,7 +797,7 @@ seed_name = "vanilla" display_name = "vanilla" kitchen_tag = "vanilla" - chems = list("nutriment" = list(1,10), "vanilla" = list(0,3), "sugar" = list(0, 1)) + chems = list("nutriment" = list(1,10), "vanilla" = list(2,8), "sugar" = list(1, 4)) /datum/seed/vanilla/New() ..() @@ -829,7 +861,7 @@ seed_name = "corn" display_name = "ears of corn" kitchen_tag = "corn" - chems = list("nutriment" = list(1,10), "cornoil" = list(1,10)) + chems = list("nutriment" = list(1,10), "cornoil" = list(3,15)) trash_type = /obj/item/weapon/corncob /datum/seed/corn/New() @@ -906,7 +938,7 @@ seed_name = "wheat" display_name = "wheat stalks" kitchen_tag = "wheat" - chems = list("nutriment" = list(1,25), "flour" = list(15,15)) + chems = list("nutriment" = list(1,25), "flour" = list(10,30)) /datum/seed/wheat/New() ..() diff --git a/code/modules/hydroponics/seed_packets.dm b/code/modules/hydroponics/seed_packets.dm index 047a7d895a8..1e99531dd67 100644 --- a/code/modules/hydroponics/seed_packets.dm +++ b/code/modules/hydroponics/seed_packets.dm @@ -182,6 +182,12 @@ GLOBAL_LIST_BOILERPLATE(all_seed_packs, /obj/item/seeds) /obj/item/seeds/plumpmycelium seed_type = "plumphelmet" +/obj/item/seeds/plastellmycelium + seed_type = "plastic" + +/obj/item/seeds/sporemycelium + seed_type = "sporeshroom" + /obj/item/seeds/nettleseed seed_type = "nettle" @@ -218,6 +224,9 @@ GLOBAL_LIST_BOILERPLATE(all_seed_packs, /obj/item/seeds) /obj/item/seeds/ambrosiadeusseed seed_type = "ambrosiadeus" +/obj/item/seeds/ambrosiainfernusseed + seed_type = "ambrosiainfernus" + /obj/item/seeds/whitebeetseed seed_type = "whitebeet" diff --git a/code/modules/hydroponics/seed_storage.dm b/code/modules/hydroponics/seed_storage.dm index be7d253659e..602947abb78 100644 --- a/code/modules/hydroponics/seed_storage.dm +++ b/code/modules/hydroponics/seed_storage.dm @@ -135,6 +135,7 @@ /obj/item/seeds/tomatoseed = 3, /obj/item/seeds/towermycelium = 3, /obj/item/seeds/vanilla = 3, + /obj/item/seeds/wabback = 2, /obj/item/seeds/watermelonseed = 3, /obj/item/seeds/wheatseed = 3, /obj/item/seeds/whitebeetseed = 3 diff --git a/code/modules/hydroponics/spreading/spreading_response.dm b/code/modules/hydroponics/spreading/spreading_response.dm index 1a2e46283e8..dab4af608fd 100644 --- a/code/modules/hydroponics/spreading/spreading_response.dm +++ b/code/modules/hydroponics/spreading/spreading_response.dm @@ -40,6 +40,9 @@ seed.do_thorns(victim,src) seed.do_sting(victim,src,pick("r_foot","l_foot","r_leg","l_leg")) + if(seed.get_trait(TRAIT_SPORING) && prob(round(seed.get_trait(TRAIT_POTENCY)/2))) + seed.create_spores(get_turf(victim)) + /obj/effect/plant/proc/unbuckle() if(has_buckled_mobs()) for(var/A in buckled_mobs) diff --git a/code/modules/hydroponics/trays/tray.dm b/code/modules/hydroponics/trays/tray.dm index 5551cc95ad7..d86f19adebb 100644 --- a/code/modules/hydroponics/trays/tray.dm +++ b/code/modules/hydroponics/trays/tray.dm @@ -46,7 +46,7 @@ // Reagent information for process(), consider moving this to a controller along // with cycle information under 'mechanical concerns' at some point. - var/global/list/toxic_reagents = list( + var/static/list/toxic_reagents = list( "anti_toxin" = -2, "toxin" = 2, "fluorine" = 2.5, @@ -57,7 +57,7 @@ "cryoxadone" = -3, "radium" = 2 ) - var/global/list/nutrient_reagents = list( + var/static/list/nutrient_reagents = list( "milk" = 0.1, "beer" = 0.25, "phosphorus" = 0.1, @@ -71,7 +71,7 @@ "robustharvest" = 1, "left4zed" = 1 ) - var/global/list/weedkiller_reagents = list( + var/static/list/weedkiller_reagents = list( "fluorine" = -4, "chlorine" = -3, "phosphorus" = -2, @@ -81,12 +81,12 @@ "plantbgone" = -8, "adminordrazine" = -5 ) - var/global/list/pestkiller_reagents = list( + var/static/list/pestkiller_reagents = list( "sugar" = 2, "diethylamine" = -2, "adminordrazine" = -5 ) - var/global/list/water_reagents = list( + var/static/list/water_reagents = list( "water" = 1, "adminordrazine" = 1, "milk" = 0.9, @@ -98,8 +98,8 @@ "sodawater" = 1, ) - // Beneficial reagents also have values for modifying yield_mod and mut_mod (in that order). - var/global/list/beneficial_reagents = list( + // Beneficial reagents also have values for modifying health, yield_mod and mut_mod (in that order). + var/static/list/beneficial_reagents = list( "beer" = list( -0.05, 0, 0 ), "fluorine" = list( -2, 0, 0 ), "chlorine" = list( -1, 0, 0 ), @@ -120,7 +120,7 @@ // Mutagen list specifies minimum value for the mutation to take place, rather // than a bound as the lists above specify. - var/global/list/mutagenic_reagents = list( + var/static/list/mutagenic_reagents = list( "radium" = 8, "mutagen" = 15 ) @@ -250,24 +250,37 @@ var/reagent_total = temp_chem_holder.reagents.get_reagent_amount(R.id) if(seed && !dead) - //Handle some general level adjustments. - if(toxic_reagents[R.id]) - toxins += toxic_reagents[R.id] * reagent_total - if(weedkiller_reagents[R.id]) - weedlevel -= weedkiller_reagents[R.id] * reagent_total - if(pestkiller_reagents[R.id]) - pestlevel += pestkiller_reagents[R.id] * reagent_total - // Beneficial reagents have a few impacts along with health buffs. - if(beneficial_reagents[R.id]) + if(seed.beneficial_reagents && seed.beneficial_reagents[R.id]) + health += seed.beneficial_reagents[R.id][1] * reagent_total + yield_mod += seed.beneficial_reagents[R.id][2] * reagent_total + mutation_mod += seed.beneficial_reagents[R.id][3] * reagent_total + + else if(beneficial_reagents[R.id]) health += beneficial_reagents[R.id][1] * reagent_total yield_mod += beneficial_reagents[R.id][2] * reagent_total mutation_mod += beneficial_reagents[R.id][3] * reagent_total // Mutagen is distinct from the previous types and mostly has a chance of proccing a mutation. - if(mutagenic_reagents[R.id]) + if(seed.mutagenic_reagents && seed.mutagenic_reagents[R.id]) + mutation_level += reagent_total*seed.mutagenic_reagents[R.id]+mutation_mod + + else if(mutagenic_reagents[R.id]) mutation_level += reagent_total*mutagenic_reagents[R.id]+mutation_mod + // Toxic reagents can possibly differ between plants. + if(seed.toxic_reagents && seed.toxic_reagents[R.id]) + toxins += seed.toxic_reagents[R.id] * reagent_total + + else if(toxic_reagents[R.id]) + toxins += toxic_reagents[R.id] * reagent_total + + //Handle some general level adjustments. These values are independent of plants existing. + if(weedkiller_reagents[R.id]) + weedlevel -= weedkiller_reagents[R.id] * reagent_total + if(pestkiller_reagents[R.id]) + pestlevel += pestkiller_reagents[R.id] * reagent_total + // Handle nutrient refilling. if(nutrient_reagents[R.id]) nutrilevel += nutrient_reagents[R.id] * reagent_total diff --git a/code/modules/reagents/Chemistry-Recipes.dm b/code/modules/reagents/Chemistry-Recipes.dm index 2255860547f..932ab5063a2 100644 --- a/code/modules/reagents/Chemistry-Recipes.dm +++ b/code/modules/reagents/Chemistry-Recipes.dm @@ -553,6 +553,20 @@ required_reagents = list ("ammonia" = 1, "ethanol" = 1) result_amount = 2 +/datum/chemical_reaction/left4zed + name = "Left4Zed" + id = "left4zed" + result = "left4zed" + required_reagents = list ("diethylamine" = 2, "mutagen" = 1) + result_amount = 3 + +/datum/chemical_reaction/robustharvest + name = "RobustHarvest" + id = "robustharvest" + result = "robustharvest" + required_reagents = list ("ammonia" = 1, "calcium" = 1, "neurotoxic_protein" = 1) + result_amount = 3 + /datum/chemical_reaction/space_cleaner name = "Space cleaner" id = "cleaner" diff --git a/code/modules/reagents/dispenser/dispenser_presets.dm b/code/modules/reagents/dispenser/dispenser_presets.dm index e74ce556bdb..9a774dee24e 100644 --- a/code/modules/reagents/dispenser/dispenser_presets.dm +++ b/code/modules/reagents/dispenser/dispenser_presets.dm @@ -140,6 +140,4 @@ /obj/item/weapon/reagent_containers/chem_disp_cartridge/lime, /obj/item/weapon/reagent_containers/chem_disp_cartridge/berry, /obj/item/weapon/reagent_containers/chem_disp_cartridge/decaf - - ) diff --git a/code/modules/reagents/distilling/Distilling-Recipes.dm b/code/modules/reagents/distilling/Distilling-Recipes.dm index d610e32e9b7..a8ac2ee975d 100644 --- a/code/modules/reagents/distilling/Distilling-Recipes.dm +++ b/code/modules/reagents/distilling/Distilling-Recipes.dm @@ -50,12 +50,14 @@ return 1 +/* /datum/chemical_reaction/distilling/on_reaction(var/datum/reagents/holder, var/created_volume) if(istype(holder.my_atom, /obj/item/weapon/reagent_containers/glass/distilling)) var/obj/item/weapon/reagent_containers/glass/distilling/D = holder.my_atom var/obj/machinery/portable_atmospherics/powered/reagent_distillery/RD = D.Master RD.current_temp += temp_shift return +*/ // Subtypes // diff --git a/icons/obj/closet.dmi b/icons/obj/closet.dmi index 80fb1712be96e51941884d95991aea4d44f55458..14f7fba854706eaa0a7b23e01e8df1c2f477f643 100644 GIT binary patch literal 84764 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 AA^-pY literal 82306 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

    upx){jP>CiZrJpq4S62HSyb#C{4i6^44L0+M5 zdYOQl%6O26nvi|DNt+8BrAt3oBeb=^`y2g(&g4J!#3M4;GR33KhqH^^ae>BSe_z_Jy2?U?dnTxtMhJ-fQpM&0!Il|6w%M zi-A`&BB4Ydk+57R!vOXVdu5eiPG}Il47gj8u@R`u>#WoYKwEW{ zwX^lb8nblCg6kK&b!(Ob$}UqzlbXHP4zTTC?5l~r*ns7D9(Hcbbne5~jb$X%q+;#@ P;Lk%9&HF`4mVy5d+VdrR diff --git a/maps/southern_cross/southern_cross-1.dmm b/maps/southern_cross/southern_cross-1.dmm index 10586053b7b..9fd5fa49cfb 100644 --- a/maps/southern_cross/southern_cross-1.dmm +++ b/maps/southern_cross/southern_cross-1.dmm @@ -10697,8 +10697,8 @@ "dWs" = (/obj/machinery/atmospherics/pipe/simple/hidden/yellow{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/tiled/hydro,/area/rnd/xenobiology/xenoflora) "dWt" = (/obj/machinery/seed_storage/xenobotany,/obj/machinery/atmospherics/pipe/simple/hidden/yellow{dir = 4},/obj/machinery/camera/network/research{c_tag = "SCI - Xenoflora Starboard"; dir = 1},/turf/simulated/floor/tiled/white,/area/rnd/xenobiology/xenoflora) "dWu" = (/obj/machinery/vending/hydronutrients{categories = 3},/obj/machinery/atmospherics/pipe/simple/hidden/yellow{dir = 4},/turf/simulated/floor/tiled/white,/area/rnd/xenobiology/xenoflora) -"dWv" = (/obj/structure/closet/secure_closet/hydroponics{req_access = list(47)},/obj/machinery/atmospherics/pipe/simple/hidden/yellow{dir = 4},/turf/simulated/floor/tiled/white,/area/rnd/xenobiology/xenoflora) -"dWw" = (/obj/structure/closet/secure_closet/hydroponics{req_access = list(47)},/obj/machinery/atmospherics/pipe/simple/hidden/yellow{dir = 4},/obj/machinery/light,/turf/simulated/floor/tiled/white,/area/rnd/xenobiology/xenoflora) +"dWv" = (/obj/machinery/atmospherics/pipe/simple/hidden/yellow{dir = 4},/obj/structure/closet/secure_closet/hydroponics/sci,/turf/simulated/floor/tiled/white,/area/rnd/xenobiology/xenoflora) +"dWw" = (/obj/machinery/atmospherics/pipe/simple/hidden/yellow{dir = 4},/obj/machinery/light,/obj/structure/closet/secure_closet/hydroponics/sci,/turf/simulated/floor/tiled/white,/area/rnd/xenobiology/xenoflora) "dWx" = (/obj/structure/closet/emcloset/legacy,/obj/machinery/atmospherics/pipe/simple/hidden/yellow{dir = 9; icon_state = "intact"},/turf/simulated/floor/tiled/white,/area/rnd/xenobiology/xenoflora) "dWy" = (/obj/machinery/atmospherics/binary/pump{dir = 4; name = "Port to Isolation"},/turf/simulated/floor/tiled/white,/area/rnd/xenobiology/xenoflora_isolation) "dWz" = (/obj/machinery/atmospherics/pipe/simple/visible{icon_state = "intact"; dir = 6},/obj/machinery/meter,/obj/machinery/light{dir = 8},/turf/simulated/floor/tiled/white,/area/rnd/xenobiology/xenoflora_isolation) diff --git a/maps/southern_cross/southern_cross-4.dmm b/maps/southern_cross/southern_cross-4.dmm index 23b4c5edfbd..51013b76730 100644 --- a/maps/southern_cross/southern_cross-4.dmm +++ b/maps/southern_cross/southern_cross-4.dmm @@ -1141,10 +1141,14 @@ adadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadad "iA" = (/obj/effect/step_trigger/teleporter/mine/from_mining,/turf/simulated/mineral/floor/ignore_mapgen/sif,/area/surface/cave/explored/normal) "iB" = (/obj/effect/step_trigger/teleporter/mine/from_mining,/turf/simulated/floor/water{outdoors = 0},/area/surface/cave/explored/normal) <<<<<<< HEAD +<<<<<<< HEAD >>>>>>> ee162e9... June Map Adjustments (#6209) ======= +======= + +>>>>>>> d9076db... Xenoflora expansion take2 (#6592) (1,1,1) = {" aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacxcwcwcwcxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacyczczczaaaaaaaaaaaaaaaaaa aaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababcxcXcZcYcxababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababacdsdsdsababababababababaa @@ -1402,4 +1406,8 @@ adaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeae adaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeipafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaegLgLgLaeaeaeaeaeaeaeaead adadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadieiAiAiAadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadiBiBiBadadadadadadadadad "} +<<<<<<< HEAD >>>>>>> 63ff55b... Merge pull request #6293 from Cerebulon/xenoarchtweaks +======= + +>>>>>>> d9076db... Xenoflora expansion take2 (#6592) diff --git a/maps/southern_cross/southern_cross-6.dmm b/maps/southern_cross/southern_cross-6.dmm index 26deeda170c..75be5e5ce05 100644 --- a/maps/southern_cross/southern_cross-6.dmm +++ b/maps/southern_cross/southern_cross-6.dmm @@ -2262,7 +2262,7 @@ "Rz" = (/obj/effect/floor_decal/corner/green/full,/obj/structure/window/reinforced/holowindow/disappearing{dir = 8},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_thunderdomecourt) "RA" = (/obj/effect/floor_decal/corner/red/full{dir = 4},/obj/structure/window/reinforced/holowindow/disappearing{dir = 4},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_thunderdomecourt) "RB" = (/obj/effect/floor_decal/corner/green{dir = 10},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_thunderdomecourt) - + (1,1,1) = {" aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa @@ -2520,3 +2520,4 @@ aaaaRfababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa "} + From 85667c2a9b02325361435b726627fed65fa7177f Mon Sep 17 00:00:00 2001 From: Ketrai Date: Wed, 8 Jan 2020 19:46:42 +0100 Subject: [PATCH 58/65] adds gnomes. (#6595) * adds gnomes * Makes the house nice and bright. * copypasta error * Odd * makes gnomes adminspawn only. Co-authored-by: KitKetKetrai <49008286+KitKetKetrai@users.noreply.github.com> --- code/modules/hydroponics/seed_datums.dm | 26 ++++++++++++++++++ code/modules/hydroponics/seed_packets.dm | 3 ++ .../Chemistry-Reagents-Food-Drinks.dm | 10 +++++++ icons/obj/hydroponics_growing.dmi | Bin 17188 -> 19556 bytes icons/obj/hydroponics_products.dmi | Bin 9678 -> 9875 bytes icons/obj/seeds.dmi | Bin 8193 -> 8263 bytes 6 files changed, 39 insertions(+) diff --git a/code/modules/hydroponics/seed_datums.dm b/code/modules/hydroponics/seed_datums.dm index 9e34611b7da..c99c23a0647 100644 --- a/code/modules/hydroponics/seed_datums.dm +++ b/code/modules/hydroponics/seed_datums.dm @@ -1463,3 +1463,29 @@ set_trait(TRAIT_YIELD,-1) set_trait(TRAIT_SPREAD,2) set_trait(TRAIT_POTENCY,50) + +// Gnomes +/datum/seed/gnomes + name = "gnomes" + seed_name = "gnomes" + display_name = "gnomes" + force_layer = 3 + chems = list("magicdust" = list(5,20)) + +/datum/seed/gnomes/New() + ..() + set_trait(TRAIT_HARVEST_REPEAT,1) + set_trait(TRAIT_PLANT_ICON,"gnomes") + set_trait(TRAIT_PRODUCT_ICON,"gnomes") + set_trait(TRAIT_PRODUCT_COLOUR,"") + set_trait(TRAIT_FLESH_COLOUR,"") + set_trait(TRAIT_PLANT_COLOUR,"") + set_trait(TRAIT_BIOLUM_COLOUR,"#fff200") + set_trait(TRAIT_MATURATION,8) + set_trait(TRAIT_PRODUCTION,6) + set_trait(TRAIT_BIOLUM,1) + set_trait(TRAIT_YIELD,2) + set_trait(TRAIT_SPREAD,1) + set_trait(TRAIT_POTENCY,10) + set_trait(TRAIT_REQUIRES_NUTRIENTS,0) + set_trait(TRAIT_REQUIRES_WATER,0) \ No newline at end of file diff --git a/code/modules/hydroponics/seed_packets.dm b/code/modules/hydroponics/seed_packets.dm index 047a7d895a8..07b488d7229 100644 --- a/code/modules/hydroponics/seed_packets.dm +++ b/code/modules/hydroponics/seed_packets.dm @@ -322,3 +322,6 @@ GLOBAL_LIST_BOILERPLATE(all_seed_packs, /obj/item/seeds) /obj/item/seeds/rose/blood seed_type = "bloodrose" + +/obj/item/seeds/gnomes + seed_type = "gnomes" diff --git a/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Food-Drinks.dm b/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Food-Drinks.dm index 3714bc8da23..d0d19369fc3 100644 --- a/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Food-Drinks.dm +++ b/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Food-Drinks.dm @@ -3526,3 +3526,13 @@ glass_name = "fusionnaire" glass_desc = "A relatively new cocktail, mostly served in the bars of NanoTrasen owned stations." + +/datum/reagent/nutriment/magicdust + name = "Magic Dust" + id = "magicdust" + description = "A dust harvested from gnomes, aptly named by pre-industrial civilizations." + taste_description = "something tingly" + taste_mult = 2 + reagent_state = LIQUID + nutriment_factor = 40 //very filling + color = "#d169b2" \ No newline at end of file diff --git a/icons/obj/hydroponics_growing.dmi b/icons/obj/hydroponics_growing.dmi index 12de9e5a6d1f847cbbafc7f43bbaa37950fe451e..9c10859527d990350a778aae2d788f126b2a85fd 100644 GIT binary patch literal 19556 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�Jp-YNdx`N_Wegwl2GdcZGJ=Oo)& z%Dv9~?3d`$u*j*ussz)e(z9l87bAnkd}H>^ciCuxN75cAw1vLwC@%|8w5#lIFX0iZ z$w~mBHaD34MNe-cQi6atQ~>H+c}Gv=-3$;pSDw=C!2Dy z^l4F$Te{+b?e7D3DAQZdAEtRt&ywq`8l<7T71|n{6|)FV=?Vq(dRRd$!*f^HYbe~; zgb7i9^{PgW4}`#=MDTLCJARZX0fcfhg4U>lRnID^H=S1ir z?(A+&#i(=J%)^W5Er?7y$cbT(jMU)w0J(NfCXAwKR~gCyVH|a9Tx?-_2v&yASFOEE zeNi7TqsX!D|2ma#sXn>D3gE2VlsRj}1a~0ZzWfncg^-+F;#>&6J%c4nK;I`?~6dsfz_#2@nNJpUaC~sDV z^8+G?6A>$fakk{87qKt1w<*W5eCD#C!6>%|WDEO(7RHfxVKxdwOj%N37mRf^pf(0% z6?&HK4PkAx0qtO!nr}v-sDG}ZQR7KegHs1z$^b*t1@ic5OKZ-B&!F=K+7q7z9`q+5 zy6re54y8QMir8q(GpImT4e(Y-yIPTMnO zY4Ci$^bjV{%vD_AQcfzOlprR8@K5s&WB literal 17188 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 literal 9678 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 delta 7573 zcmYjWXH*kiw4G3-OXwgSRFEQA=)L2IGyz4WiZtmWHNXU=ND~yXQ3aJ=r3g|Y5J3k;X+5>vr=EhbN99(-YguAqZ!DFrk4bL58JhB0CQ-yk8m83Vwb?efrB1&% zk>upH|Gvk`%nMz3;l@?T%Zg!**FG#{iKO2{-^9ZfB&IBEAKHh30|MsfK6}^1PmN!g zrDLcqj�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 From f67866957fdf5fb083d7cd331cdcf3b4652ada78 Mon Sep 17 00:00:00 2001 From: Atermonera Date: Wed, 8 Jan 2020 10:48:35 -0800 Subject: [PATCH 60/65] Merge pull request #6602 from Heroman3003/legcuffening Makes legcuffs printable in hacked autolathe --- code/datums/autolathe/general.dm | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/code/datums/autolathe/general.dm b/code/datums/autolathe/general.dm index 40bbbdc23f5..6ec648d388c 100644 --- a/code/datums/autolathe/general.dm +++ b/code/datums/autolathe/general.dm @@ -133,3 +133,8 @@ name = "handcuffs" path =/obj/item/weapon/handcuffs hidden = 1 + +/datum/category_item/autolathe/general/legcuffs + name = "legcuffs" + path =/obj/item/weapon/handcuffs/legcuffs + hidden = 1 From cb99a0dd4a58dcd27cd7389165e4db012448390e Mon Sep 17 00:00:00 2001 From: Atermonera Date: Wed, 8 Jan 2020 10:48:10 -0800 Subject: [PATCH 62/65] Merge pull request #6596 from GeneriedJenelle/patch-2 Informs ghosts when someone dies --- code/modules/mob/living/carbon/human/death.dm | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/code/modules/mob/living/carbon/human/death.dm b/code/modules/mob/living/carbon/human/death.dm index 2244cdac514..86050f85cf4 100644 --- a/code/modules/mob/living/carbon/human/death.dm +++ b/code/modules/mob/living/carbon/human/death.dm @@ -80,6 +80,11 @@ verbs -= /mob/living/carbon/proc/release_control callHook("death", list(src, gibbed)) + + if(mind) + for(var/mob/observer/dead/O in mob_list) + if(O.client && O.client.is_preference_enabled(/datum/client_preference/show_dsay)) + to_chat(O, "[src] has died in [get_area(src)]. [ghost_follow_link(src, O)] ") if(!gibbed && species.death_sound) playsound(loc, species.death_sound, 80, 1, 1) @@ -138,4 +143,4 @@ mutations.Add(SKELETON) status_flags |= DISFIGURED update_icons_body() - return \ No newline at end of file + return From dd1976d062ff13f746b43427abc7d63c5d1c7917 Mon Sep 17 00:00:00 2001 From: Novacat <35587478+Novacat@users.noreply.github.com> Date: Wed, 8 Jan 2020 17:07:35 -0500 Subject: [PATCH 64/65] Update southern_cross-4.dmm --- maps/southern_cross/southern_cross-4.dmm | 715 ----------------------- 1 file changed, 715 deletions(-) diff --git a/maps/southern_cross/southern_cross-4.dmm b/maps/southern_cross/southern_cross-4.dmm index 51013b76730..48e5097f4cc 100644 --- a/maps/southern_cross/southern_cross-4.dmm +++ b/maps/southern_cross/southern_cross-4.dmm @@ -1,704 +1,3 @@ -<<<<<<< HEAD -"aa" = (/turf/unsimulated/wall/planetary/sif,/area/surface/cave/unexplored/deep) -"ab" = (/turf/simulated/mineral/sif,/area/surface/cave/unexplored/deep) -"ac" = (/turf/simulated/mineral/floor/ignore_mapgen/sif,/area/surface/cave/explored/deep) -"ad" = (/turf/unsimulated/wall/planetary/sif,/area/surface/cave/unexplored/normal) -"ae" = (/turf/simulated/mineral/sif,/area/surface/cave/unexplored/normal) -"af" = (/turf/simulated/mineral/floor/ignore_mapgen/sif,/area/surface/cave/explored/normal) -"ag" = (/turf/simulated/mineral/floor/ignore_mapgen/sif,/area/surface/cave/unexplored/normal) -"ah" = (/obj/machinery/conveyor{dir = 2; id = "anolongstorage"},/turf/simulated/floor/plating,/area/surface/outpost/research/xenoarcheology) -"ai" = (/turf/simulated/floor/plating,/area/surface/outpost/research/xenoarcheology) -"aj" = (/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plating,/area/surface/outpost/research/xenoarcheology) -"ak" = (/obj/machinery/conveyor_switch{id = "anolongstorage"; name = "conveyor switch"; pixel_x = 0; pixel_y = 0; req_access = list(65)},/turf/simulated/floor/plating,/area/surface/outpost/research/xenoarcheology) -"al" = (/obj/machinery/light/small,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plating,/area/surface/outpost/research/xenoarcheology) -"am" = (/turf/simulated/wall/r_wall,/area/surface/outpost/research/xenoarcheology) -"an" = (/obj/machinery/door/firedoor/border_only,/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/surface/outpost/research/xenoarcheology) -"ao" = (/obj/machinery/access_button{command = "cycle_exterior"; frequency = 1397; master_tag = "xenoarch2_airlock_control"; name = "Xenoarch Access Button"; pixel_x = 24; pixel_y = 0; req_access = list(47)},/obj/machinery/door/airlock/research{autoclose = 0; frequency = 1397; icon_state = "door_locked"; id_tag = "xenoarch2_airlock_exterior"; locked = 1; name = "Research Exterior Airlock"},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoarcheology) -"ap" = (/turf/simulated/wall/r_wall,/area/surface/outpost/research/xenoarcheology/exp_prep) -"aq" = (/obj/machinery/door/firedoor/border_only,/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/surface/outpost/research/xenoarcheology/exp_prep) -"ar" = (/obj/machinery/conveyor{dir = 2; id = "anolongstorage"},/obj/structure/plasticflaps/mining,/turf/simulated/floor/plating,/area/surface/outpost/research/xenoarcheology/exp_prep) -"as" = (/obj/effect/floor_decal/industrial/warning{dir = 9},/obj/machinery/light{icon_state = "tube1"; dir = 8},/obj/machinery/status_display{pixel_x = -32},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoarcheology) -"at" = (/obj/effect/floor_decal/industrial/warning{dir = 1},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoarcheology) -"au" = (/obj/effect/floor_decal/industrial/warning{dir = 5},/obj/machinery/computer/guestpass{pixel_x = 30; pixel_y = 0},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoarcheology) -"av" = (/turf/simulated/wall/r_wall,/area/surface/outpost/research/xenoarcheology/anomaly) -"aw" = (/obj/machinery/conveyor{dir = 2; id = "anolongstorage"},/obj/structure/plasticflaps/mining,/turf/simulated/floor/plating,/area/surface/outpost/research/xenoarcheology/anomaly) -"ax" = (/obj/machinery/door/firedoor/border_only,/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/surface/outpost/research/xenoarcheology/anomaly) -"ay" = (/turf/simulated/wall/r_wall,/area/surface/outpost/research/xenoarcheology/longtermstorage) -"az" = (/obj/effect/floor_decal/corner/purple/full{dir = 8},/obj/machinery/portable_atmospherics/canister/oxygen,/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoarcheology/exp_prep) -"aA" = (/obj/structure/closet/excavation,/obj/effect/floor_decal/corner/purple{dir = 5},/obj/item/device/radio/intercom{dir = 1; name = "Station Intercom (General)"; pixel_y = 21},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoarcheology/exp_prep) -"aB" = (/obj/structure/closet/excavation,/obj/effect/floor_decal/corner/purple{dir = 5},/obj/machinery/light{dir = 1},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoarcheology/exp_prep) -"aC" = (/obj/structure/closet/excavation,/obj/effect/floor_decal/corner/purple{dir = 5},/obj/machinery/alarm{pixel_y = 23},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoarcheology/exp_prep) -"aD" = (/obj/machinery/conveyor_switch{id = "anolongstorage"; name = "conveyor switch"; pixel_x = 0; pixel_y = 0; req_access = list(65)},/obj/effect/floor_decal/corner/purple{dir = 1},/obj/effect/floor_decal/industrial/warning{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoarcheology/exp_prep) -"aE" = (/obj/machinery/conveyor{dir = 2; id = "anolongstorage"},/turf/simulated/floor/plating,/area/surface/outpost/research/xenoarcheology/exp_prep) -"aF" = (/obj/effect/floor_decal/industrial/warning{dir = 10},/obj/machinery/camera/network/research_outpost{c_tag = "OPR - Xenoarch Airlock 2"; dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoarcheology) -"aG" = (/obj/effect/floor_decal/industrial/warning,/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoarcheology) -"aH" = (/obj/effect/floor_decal/industrial/warning{dir = 6},/obj/item/device/radio/intercom{dir = 4; name = "Station Intercom (General)"; pixel_x = 21},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoarcheology) -"aI" = (/obj/machinery/conveyor{dir = 2; id = "anolongstorage"},/turf/simulated/floor/plating,/area/surface/outpost/research/xenoarcheology/anomaly) -"aJ" = (/obj/effect/floor_decal/industrial/warning{dir = 4},/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 8},/obj/machinery/conveyor_switch{id = "anolongstorage"; name = "conveyor switch"; pixel_x = 0; pixel_y = 0; req_access = list(65)},/turf/simulated/floor/tiled/dark,/area/surface/outpost/research/xenoarcheology/anomaly) -"aK" = (/obj/machinery/portable_atmospherics/canister/oxygen,/obj/effect/floor_decal/industrial/outline/yellow,/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoarcheology/anomaly) -"aL" = (/obj/machinery/portable_atmospherics/canister/sleeping_agent,/obj/effect/floor_decal/industrial/outline/yellow,/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoarcheology/anomaly) -"aM" = (/obj/machinery/portable_atmospherics/canister/phoron,/obj/effect/floor_decal/industrial/outline/yellow,/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoarcheology/anomaly) -"aN" = (/turf/simulated/wall,/area/surface/outpost/research/xenoarcheology/longtermstorage) -"aO" = (/obj/structure/disposaloutlet{dir = 4},/obj/effect/floor_decal/industrial/hatch/yellow,/obj/structure/disposalpipe/trunk,/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoarcheology/longtermstorage) -"aP" = (/obj/machinery/light/small{dir = 1},/obj/effect/floor_decal/industrial/outline/yellow,/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoarcheology/longtermstorage) -"aQ" = (/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 8},/obj/structure/table/rack,/obj/machinery/alarm{pixel_y = 23},/turf/simulated/floor/tiled/dark,/area/surface/outpost/research/xenoarcheology/longtermstorage) -"aR" = (/obj/effect/floor_decal/corner/purple/full{dir = 8},/obj/structure/dispenser/oxygen,/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoarcheology/exp_prep) -"aS" = (/obj/effect/floor_decal/corner/purple{dir = 1},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoarcheology/exp_prep) -"aT" = (/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoarcheology/exp_prep) -"aU" = (/obj/machinery/hologram/holopad,/obj/effect/floor_decal/industrial/outline/grey,/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoarcheology/exp_prep) -"aV" = (/obj/effect/floor_decal/industrial/warning{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoarcheology/exp_prep) -"aW" = (/obj/machinery/disposal/deliveryChute{dir = 1},/obj/effect/floor_decal/industrial/warning,/obj/structure/disposalpipe/trunk,/obj/effect/floor_decal/industrial/outline/yellow,/obj/structure/window/reinforced,/turf/simulated/floor/plating,/area/surface/outpost/research/xenoarcheology/exp_prep) -"aX" = (/obj/machinery/door/airlock/research{autoclose = 0; frequency = 1397; icon_state = "door_locked"; id_tag = "xenoarch2_airlock_interior"; locked = 1; name = "Research Interior Airlock"},/obj/machinery/access_button{command = "cycle_interior"; frequency = 1397; master_tag = "xenoarch2_airlock_control"; name = "Research Access Button"; pixel_x = 26; pixel_y = 6; req_access = null},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoarcheology) -"aY" = (/obj/structure/extinguisher_cabinet{pixel_x = -28; pixel_y = 0},/obj/effect/floor_decal/corner/purple{dir = 8},/obj/effect/floor_decal/industrial/warning{dir = 1},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoarcheology/anomaly) -"aZ" = (/obj/effect/floor_decal/industrial/warning/corner{icon_state = "warningcorner"; dir = 1},/obj/effect/floor_decal/industrial/warning{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoarcheology/anomaly) -"ba" = (/obj/machinery/portable_atmospherics/canister/nitrogen,/obj/effect/floor_decal/industrial/outline/yellow,/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoarcheology/anomaly) -"bb" = (/obj/machinery/portable_atmospherics/canister/carbon_dioxide,/obj/effect/floor_decal/industrial/outline/yellow,/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoarcheology/anomaly) -"bc" = (/obj/machinery/portable_atmospherics/canister/air,/obj/effect/floor_decal/industrial/outline/yellow,/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoarcheology/anomaly) -"bd" = (/obj/structure/sign/warning/nosmoking_2,/turf/simulated/wall,/area/surface/outpost/research/xenoarcheology/longtermstorage) -"be" = (/obj/effect/floor_decal/industrial/warning{dir = 1},/obj/structure/disposalpipe/segment,/turf/simulated/floor/tiled/dark,/area/surface/outpost/research/xenoarcheology/longtermstorage) -"bf" = (/obj/effect/floor_decal/industrial/warning{dir = 1},/obj/machinery/atmospherics/unary/vent_scrubber/on,/turf/simulated/floor/tiled/dark,/area/surface/outpost/research/xenoarcheology/longtermstorage) -"bg" = (/obj/effect/floor_decal/industrial/warning/corner{icon_state = "warningcorner"; dir = 1},/turf/simulated/floor/tiled/dark,/area/surface/outpost/research/xenoarcheology/longtermstorage) -"bh" = (/obj/effect/floor_decal/industrial/outline/grey,/obj/structure/closet/crate,/turf/simulated/floor/tiled/dark,/area/surface/outpost/research/xenoarcheology/longtermstorage) -"bi" = (/obj/effect/floor_decal/corner/purple{dir = 9},/obj/machinery/status_display{pixel_x = -32},/obj/machinery/floodlight,/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoarcheology/exp_prep) -"bj" = (/obj/machinery/atmospherics/unary/vent_scrubber/on,/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoarcheology/exp_prep) -"bk" = (/obj/item/weapon/storage/excavation,/obj/item/weapon/pickaxe,/obj/item/weapon/tool/wrench,/obj/item/device/measuring_tape,/obj/item/stack/flag/yellow,/obj/structure/table/steel,/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoarcheology/exp_prep) -"bl" = (/obj/machinery/atmospherics/unary/vent_pump/on,/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoarcheology/exp_prep) -"bm" = (/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoarcheology/exp_prep) -"bn" = (/obj/machinery/door/firedoor/border_only,/obj/structure/disposalpipe/segment{dir = 4},/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/surface/outpost/research/xenoarcheology/exp_prep) -"bo" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/effect/floor_decal/corner/purple{dir = 1},/obj/effect/floor_decal/industrial/warning/corner{icon_state = "warningcorner"; dir = 4},/obj/effect/floor_decal/industrial/warning/corner{icon_state = "warningcorner"; dir = 8},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoarcheology) -"bp" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/effect/floor_decal/industrial/warning{dir = 1},/obj/machinery/embedded_controller/radio/airlock/access_controller{frequency = 1397; id_tag = "xenoarch2_airlock_control"; name = "Research Access Console"; pixel_x = 26; pixel_y = 26; tag_exterior_door = "xenoarch2_airlock_exterior"; tag_interior_door = "xenoarch2_airlock_interior"},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoarcheology) -"bq" = (/obj/machinery/shower{pixel_y = 3},/obj/structure/window/reinforced,/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 22},/turf/simulated/floor/tiled/freezer,/area/surface/outpost/research/xenoarcheology) -"br" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/wall,/area/surface/outpost/research/xenoarcheology/anomaly) -"bs" = (/obj/machinery/light{dir = 8; icon_state = "tube1"; pixel_y = 0},/obj/effect/floor_decal/corner/purple{dir = 9},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoarcheology/anomaly) -"bt" = (/obj/effect/floor_decal/industrial/warning{dir = 4},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 6},/obj/structure/cable/blue{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoarcheology/anomaly) -"bu" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoarcheology/anomaly) -"bv" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/door/firedoor/border_only,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/door/airlock/research{name = "Long Term Storage"; req_access = list(65)},/turf/simulated/floor/tiled/dark,/area/surface/outpost/research/xenoarcheology/longtermstorage) -"bw" = (/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/tiled/dark,/area/surface/outpost/research/xenoarcheology/longtermstorage) -"bx" = (/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 9},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/tiled/dark,/area/surface/outpost/research/xenoarcheology/longtermstorage) -"by" = (/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 10},/turf/simulated/floor/tiled/dark,/area/surface/outpost/research/xenoarcheology/longtermstorage) -"bz" = (/obj/machinery/power/apc{dir = 4; name = "east bump"; pixel_x = 24},/obj/machinery/light_switch{dir = 2; name = "light switch "; pixel_x = 36; pixel_y = 0},/obj/structure/cable/blue{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/tiled/dark,/area/surface/outpost/research/xenoarcheology/longtermstorage) -"bA" = (/obj/machinery/floodlight,/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoarcheology/exp_prep) -"bB" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 5},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoarcheology/exp_prep) -"bC" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoarcheology/exp_prep) -"bD" = (/obj/effect/floor_decal/corner/purple{dir = 10},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 5},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoarcheology/exp_prep) -"bE" = (/obj/effect/floor_decal/corner/purple{dir = 10},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoarcheology/exp_prep) -"bF" = (/obj/effect/floor_decal/corner/purple{dir = 8},/obj/structure/cable/blue{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoarcheology/exp_prep) -"bG" = (/obj/machinery/door/firedoor/glass,/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/door/airlock/glass_research{name = "Expedition Prep"; req_access = list(65)},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoarcheology/exp_prep) -"bH" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 8},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoarcheology) -"bI" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 10},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 10},/obj/structure/cable/blue{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoarcheology) -"bJ" = (/obj/machinery/space_heater,/obj/effect/floor_decal/corner/purple{dir = 6},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoarcheology) -"bK" = (/obj/machinery/door/firedoor/glass,/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/surface/outpost/research/xenoarcheology/anomaly) -"bL" = (/obj/effect/floor_decal/industrial/outline/yellow,/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoarcheology/anomaly) -"bM" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/effect/floor_decal/industrial/warning{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoarcheology/anomaly) -"bN" = (/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoarcheology/anomaly) -"bO" = (/obj/effect/floor_decal/industrial/outline/yellow,/obj/machinery/atmospherics/portables_connector,/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoarcheology/anomaly) -"bP" = (/obj/effect/floor_decal/industrial/outline/grey,/obj/machinery/firealarm{dir = 1; pixel_x = 0; pixel_y = -24},/obj/structure/anomaly_container,/turf/simulated/floor/tiled/dark,/area/surface/outpost/research/xenoarcheology/longtermstorage) -"bQ" = (/obj/effect/floor_decal/industrial/outline/grey,/obj/machinery/light/small,/obj/structure/anomaly_container,/turf/simulated/floor/tiled/dark,/area/surface/outpost/research/xenoarcheology/longtermstorage) -"bR" = (/obj/effect/floor_decal/industrial/outline/grey,/obj/machinery/atmospherics/unary/vent_pump/on{dir = 1},/obj/machinery/camera/network/research_outpost{c_tag = "OPR - Long Term Storage"; dir = 1},/turf/simulated/floor/tiled/dark,/area/surface/outpost/research/xenoarcheology/longtermstorage) -"bS" = (/obj/effect/floor_decal/industrial/outline/grey,/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -21},/obj/structure/anomaly_container,/turf/simulated/floor/tiled/dark,/area/surface/outpost/research/xenoarcheology/longtermstorage) -"bT" = (/obj/effect/floor_decal/corner/purple/full,/obj/machinery/suspension_gen,/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoarcheology/exp_prep) -"bU" = (/obj/machinery/suspension_gen,/obj/effect/floor_decal/corner/purple{dir = 10},/obj/structure/extinguisher_cabinet{pixel_y = -30},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoarcheology/exp_prep) -"bV" = (/obj/effect/floor_decal/corner/purple{dir = 10},/obj/machinery/firealarm{dir = 1; pixel_x = 0; pixel_y = -24},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoarcheology/exp_prep) -"bW" = (/obj/item/weapon/storage/excavation,/obj/item/weapon/pickaxe,/obj/item/weapon/tool/wrench,/obj/item/device/measuring_tape,/obj/item/stack/flag/yellow,/obj/structure/table/steel,/obj/effect/floor_decal/corner/purple{dir = 10},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/camera/network/research_outpost{c_tag = "OPR - Expedition Prep"; dir = 1},/obj/machinery/newscaster{layer = 3.3; pixel_x = 0; pixel_y = -27},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoarcheology/exp_prep) -"bX" = (/obj/structure/table/rack{dir = 8; layer = 2.6},/obj/structure/window/reinforced{dir = 8; health = 1e+006},/obj/item/weapon/storage/belt/archaeology,/obj/item/clothing/suit/space/anomaly,/obj/item/clothing/head/helmet/space/anomaly,/obj/item/clothing/mask/breath,/obj/structure/window/reinforced,/obj/machinery/door/window/northleft,/turf/simulated/floor/tiled/dark,/area/surface/outpost/research/xenoarcheology/exp_prep) -"bY" = (/obj/structure/table/rack{dir = 8; layer = 2.6},/obj/structure/window/reinforced{dir = 4; health = 1e+006},/obj/item/weapon/storage/belt/archaeology,/obj/item/clothing/suit/space/anomaly,/obj/item/clothing/head/helmet/space/anomaly,/obj/item/clothing/mask/breath,/obj/structure/window/reinforced,/obj/machinery/door/window/northright,/turf/simulated/floor/tiled/dark,/area/surface/outpost/research/xenoarcheology/exp_prep) -"bZ" = (/obj/structure/table/steel,/obj/item/device/suit_cooling_unit,/obj/machinery/power/apc{dir = 2; name = "south bump"; pixel_y = -24},/obj/machinery/light_switch{pixel_x = 11; pixel_y = -24},/obj/structure/cable/blue,/obj/item/device/suit_cooling_unit,/obj/item/device/gps/science,/obj/item/device/gps/science,/obj/item/device/gps/science,/turf/simulated/floor/tiled/dark,/area/surface/outpost/research/xenoarcheology/exp_prep) -"ca" = (/obj/machinery/ai_status_display,/turf/simulated/wall/r_wall,/area/surface/outpost/research/xenoarcheology/exp_prep) -"cb" = (/obj/structure/window/reinforced,/obj/effect/floor_decal/industrial/warning/corner{icon_state = "warningcorner"; dir = 1},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoarcheology) -"cc" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoarcheology) -"cd" = (/obj/item/device/radio/intercom{dir = 4; name = "Station Intercom (General)"; pixel_x = 21},/obj/effect/floor_decal/corner/purple{dir = 6},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoarcheology) -"ce" = (/obj/effect/floor_decal/industrial/hatch/yellow,/obj/machinery/power/emitter{anchored = 1; dir = 1; state = 2},/obj/structure/window/reinforced,/obj/structure/cable/blue{d2 = 2; icon_state = "0-2"},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoarcheology/anomaly) -"cf" = (/obj/machinery/atmospherics/portables_connector{dir = 4},/obj/effect/floor_decal/industrial/outline/yellow,/obj/structure/window/reinforced,/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoarcheology/anomaly) -"cg" = (/obj/machinery/atmospherics/omni/atmos_filter{tag_east = 1; tag_north = 2; tag_south = 0; tag_west = 3},/obj/structure/window/reinforced,/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoarcheology/anomaly) -"ch" = (/obj/machinery/atmospherics/portables_connector{dir = 8},/obj/effect/floor_decal/industrial/outline/yellow,/obj/structure/window/reinforced,/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoarcheology/anomaly) -"ci" = (/obj/structure/table/rack,/obj/item/clothing/suit/bio_suit/anomaly,/obj/item/clothing/head/bio_hood/anomaly,/obj/item/clothing/mask/breath,/obj/item/clothing/glasses/science,/obj/item/clothing/gloves/sterile/latex,/obj/effect/floor_decal/industrial/hatch/yellow,/obj/machinery/atmospherics/unary/vent_pump/on{dir = 4},/obj/machinery/firealarm{dir = 8; pixel_x = -24},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoarcheology) -"cj" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 4},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoarcheology) -"ck" = (/obj/machinery/camera/network/research_outpost{c_tag = "OPR - Xenoarch Hallway 2"; dir = 8},/obj/effect/floor_decal/corner/purple{dir = 4},/obj/effect/floor_decal/industrial/warning/corner,/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoarcheology) -"cl" = (/obj/effect/floor_decal/corner/purple{dir = 4},/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/camera/network/research_outpost{c_tag = "OPR - Anomalous Materials 2"; dir = 4},/obj/machinery/newscaster{pixel_x = -30; pixel_y = 0},/obj/machinery/atmospherics/unary/vent_pump/on{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoarcheology/anomaly) -"cm" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/effect/floor_decal/industrial/warning/corner{icon_state = "warningcorner"; dir = 4},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoarcheology/anomaly) -"cn" = (/obj/effect/floor_decal/industrial/outline/yellow,/obj/machinery/portable_atmospherics/powered/scrubber/huge,/turf/simulated/floor/tiled/dark,/area/surface/outpost/research/xenoarcheology/anomaly) -"co" = (/obj/machinery/computer/area_atmos,/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoarcheology/anomaly) -"cp" = (/obj/machinery/power/apc{dir = 1; name = "north bump"; pixel_x = 0; pixel_y = 24},/obj/machinery/light_switch{pixel_x = 11; pixel_y = 24},/obj/structure/cable/blue{d2 = 2; icon_state = "0-2"},/obj/effect/floor_decal/corner/purple{dir = 4},/obj/structure/cable/blue{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/effect/floor_decal/industrial/warning/corner,/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoarcheology/anomaly) -"cq" = (/obj/machinery/door/firedoor/border_only,/obj/effect/wingrille_spawn/reinforced,/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plating,/area/surface/outpost/research/xenoarcheology/isolation_a) -"cr" = (/obj/machinery/power/apc{dir = 1; name = "north bump"; pixel_x = 0; pixel_y = 24},/obj/structure/cable/blue{d2 = 8; icon_state = "0-8"},/obj/machinery/light_switch{pixel_x = 11; pixel_y = 24},/turf/simulated/floor/reinforced,/area/surface/outpost/research/xenoarcheology/isolation_a) -"cs" = (/obj/structure/bed,/turf/simulated/floor/reinforced,/area/surface/outpost/research/xenoarcheology/isolation_a) -"ct" = (/obj/structure/table/standard,/obj/item/device/flashlight/lamp,/turf/simulated/floor/reinforced,/area/surface/outpost/research/xenoarcheology/isolation_a) -"cu" = (/turf/simulated/wall/r_wall,/area/surface/outpost/research/xenoarcheology/isolation_a) -"cv" = (/turf/simulated/wall/r_wall,/area/surface/outpost/mining_main/cave) -"cw" = (/obj/effect/step_trigger/teleporter/wild/to_wild,/turf/simulated/shuttle/floor/voidcraft/external,/area/surface/outpost/wall/checkpoint) -"cx" = (/turf/simulated/shuttle/wall/voidcraft,/area/surface/outpost/wall/checkpoint) -"cy" = (/obj/structure/showcase/sign{pixel_y = -5},/turf/simulated/wall/dungeon,/area/surface/cave/unexplored/deep) -"cz" = (/obj/effect/step_trigger/teleporter/wild/to_wild,/turf/simulated/floor/water{outdoors = 0},/area/surface/cave/explored/deep) -"cA" = (/turf/simulated/wall/r_wall,/area/surface/outpost/research/xenoarcheology/medical) -"cB" = (/obj/machinery/sleeper{dir = 8},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoarcheology/medical) -"cC" = (/obj/machinery/sleep_console,/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoarcheology/medical) -"cD" = (/obj/structure/table/rack,/obj/machinery/firealarm{pixel_y = 24},/obj/item/bodybag/cryobag,/obj/item/bodybag/cryobag,/obj/item/weapon/storage/toolbox/emergency,/obj/item/weapon/storage/firstaid/regular,/obj/random/medical/lite,/obj/structure/extinguisher_cabinet{pixel_x = 28; pixel_y = 0},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoarcheology/medical) -"cE" = (/turf/simulated/wall,/area/surface/outpost/research/xenoarcheology/medical) -"cF" = (/obj/structure/closet/secure_closet/xenoarchaeologist{req_access = list(47)},/obj/item/clothing/suit/storage/hooded/wintercoat/science,/obj/effect/floor_decal/corner/purple/full{dir = 8},/obj/machinery/alarm{frequency = 1441; pixel_y = 22},/obj/item/device/radio/intercom{dir = 8; name = "Station Intercom (General)"; pixel_x = -21},/turf/simulated/floor/tiled/neutral,/area/surface/outpost/research/xenoarcheology) -"cG" = (/obj/structure/closet/secure_closet/xenoarchaeologist{req_access = list(47)},/obj/machinery/newscaster{pixel_y = 30},/obj/item/clothing/suit/storage/hooded/wintercoat/science,/obj/effect/floor_decal/corner/purple{dir = 5},/turf/simulated/floor/tiled/neutral,/area/surface/outpost/research/xenoarcheology) -"cH" = (/obj/effect/floor_decal/corner/purple/full{dir = 1},/obj/structure/bookcase/manuals/xenoarchaeology,/turf/simulated/floor/tiled/neutral,/area/surface/outpost/research/xenoarcheology) -"cI" = (/obj/machinery/door/firedoor/glass,/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/surface/outpost/research/xenoarcheology) -"cJ" = (/obj/structure/table/rack,/obj/item/clothing/suit/bio_suit/anomaly,/obj/item/clothing/head/bio_hood/anomaly,/obj/item/clothing/mask/breath,/obj/item/clothing/glasses/science,/obj/item/clothing/gloves/sterile/latex,/obj/effect/floor_decal/industrial/hatch/yellow,/obj/machinery/light{dir = 8; icon_state = "tube1"; pixel_y = 0},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoarcheology) -"cK" = (/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 8},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 8},/obj/structure/cable/blue{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoarcheology) -"cL" = (/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/effect/floor_decal/industrial/warning{dir = 4},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoarcheology) -"cM" = (/obj/machinery/door/firedoor/glass,/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/door/airlock/glass_research{name = "Anomalous Materials"; req_access = list(65)},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoarcheology/anomaly) -"cN" = (/obj/effect/floor_decal/industrial/warning,/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/cable/blue{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 1},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoarcheology/anomaly) -"cO" = (/obj/effect/floor_decal/industrial/warning,/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers,/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 9; pixel_y = 0},/obj/structure/cable/blue{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoarcheology/anomaly) -"cP" = (/obj/effect/floor_decal/industrial/warning,/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoarcheology/anomaly) -"cQ" = (/obj/effect/floor_decal/industrial/warning,/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/yellow{dir = 6},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoarcheology/anomaly) -"cR" = (/obj/effect/floor_decal/industrial/warning/corner{icon_state = "warningcorner"; dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 10},/obj/machinery/atmospherics/pipe/simple/hidden/yellow{dir = 4},/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable/blue{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoarcheology/anomaly) -"cS" = (/obj/machinery/atmospherics/valve/digital/open{dir = 4},/obj/effect/floor_decal/industrial/warning/full,/obj/structure/cable/blue{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor/plating,/area/surface/outpost/research/xenoarcheology/anomaly) -"cT" = (/obj/machinery/atmospherics/pipe/simple/hidden/yellow{dir = 4},/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/research{name = "Isolation Room 1"; req_access = list(65)},/turf/simulated/floor/reinforced,/area/surface/outpost/research/xenoarcheology/isolation_a) -"cU" = (/obj/machinery/atmospherics/pipe/simple/hidden/yellow{dir = 4},/turf/simulated/floor/reinforced,/area/surface/outpost/research/xenoarcheology/isolation_a) -"cV" = (/obj/machinery/atmospherics/pipe/simple/hidden/yellow{dir = 10},/turf/simulated/floor/reinforced,/area/surface/outpost/research/xenoarcheology/isolation_a) -"cW" = (/turf/simulated/floor/reinforced,/area/surface/outpost/research/xenoarcheology/isolation_a) -"cX" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/simulated/shuttle/floor/voidcraft/external,/area/surface/outpost/wall/checkpoint) -"cY" = (/obj/machinery/light{icon_state = "tube1"; dir = 4},/turf/simulated/shuttle/floor/voidcraft/external,/area/surface/outpost/wall/checkpoint) -"cZ" = (/turf/simulated/shuttle/floor/voidcraft/external,/area/surface/outpost/wall/checkpoint) -"da" = (/obj/machinery/newscaster{pixel_x = -30; pixel_y = 0},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoarcheology/medical) -"db" = (/obj/machinery/atmospherics/unary/vent_scrubber/on,/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoarcheology/medical) -"dc" = (/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 22},/obj/machinery/light{dir = 4; icon_state = "tube1"},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoarcheology/medical) -"dd" = (/obj/machinery/light{dir = 8; icon_state = "tube1"; pixel_y = 0},/obj/machinery/atmospherics/unary/vent_scrubber/on,/obj/effect/floor_decal/corner/purple{dir = 1},/turf/simulated/floor/tiled/neutral,/area/surface/outpost/research/xenoarcheology) -"de" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/turf/simulated/floor/tiled/neutral,/area/surface/outpost/research/xenoarcheology) -"df" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 8},/obj/effect/floor_decal/corner/purple{dir = 6},/turf/simulated/floor/tiled/neutral,/area/surface/outpost/research/xenoarcheology) -"dg" = (/obj/structure/table/rack,/obj/item/clothing/suit/bio_suit/anomaly,/obj/item/clothing/head/bio_hood/anomaly,/obj/item/clothing/mask/breath,/obj/item/clothing/glasses/science,/obj/item/clothing/gloves/sterile/latex,/obj/effect/floor_decal/industrial/hatch/yellow,/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoarcheology) -"dh" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 8},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoarcheology) -"di" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 8},/obj/effect/floor_decal/corner/purple,/obj/effect/floor_decal/industrial/warning/corner{icon_state = "warningcorner"; dir = 4},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoarcheology) -"dj" = (/obj/structure/table/standard,/obj/item/clothing/head/welding,/obj/item/weapon/weldingtool,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoarcheology/anomaly) -"dk" = (/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoarcheology/anomaly) -"dl" = (/obj/structure/table/standard,/obj/item/weapon/reagent_containers/dropper{pixel_y = -4},/obj/machinery/atmospherics/pipe/simple/hidden/yellow,/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoarcheology/anomaly) -"dm" = (/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 5},/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoarcheology/anomaly) -"dn" = (/obj/effect/floor_decal/industrial/warning/corner{icon_state = "warningcorner"; dir = 4},/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 8},/obj/machinery/light{dir = 4; icon_state = "tube1"},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoarcheology/anomaly) -"do" = (/obj/machinery/door/firedoor/border_only,/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/surface/outpost/research/xenoarcheology/isolation_a) -"dp" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 4; use_power = 0},/obj/machinery/light,/turf/simulated/floor/reinforced,/area/surface/outpost/research/xenoarcheology/isolation_a) -"dq" = (/obj/machinery/atmospherics/pipe/manifold/hidden/yellow,/obj/machinery/alarm/monitor/isolation{alarm_id = "isolation_one"; dir = 1; pixel_x = 0; pixel_y = -22},/turf/simulated/floor/reinforced,/area/surface/outpost/research/xenoarcheology/isolation_a) -"dr" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 8},/obj/machinery/camera/network/research_outpost{c_tag = "OPR - Isolation Cell 1"; dir = 1},/turf/simulated/floor/reinforced,/area/surface/outpost/research/xenoarcheology/isolation_a) -"ds" = (/turf/simulated/floor/water{outdoors = 0},/area/surface/cave/explored/deep) -"dt" = (/obj/machinery/door/airlock/voidcraft{name = "Wilderness Containment"},/turf/simulated/shuttle/floor/voidcraft/external,/area/surface/outpost/wall/checkpoint) -"du" = (/obj/structure/bed/chair/office/light,/obj/machinery/power/apc{dir = 8; name = "west bump"; pixel_x = -24},/obj/machinery/light_switch{pixel_x = -36},/obj/structure/cable/blue{d2 = 4; icon_state = "0-4"},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoarcheology/medical) -"dv" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 5},/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/hologram/holopad,/obj/effect/floor_decal/industrial/outline/grey,/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoarcheology/medical) -"dw" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoarcheology/medical) -"dx" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/door/firedoor/glass,/obj/machinery/door/airlock/glass_medical{name = "First-Aid Station"},/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoarcheology/medical) -"dy" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers,/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/tiled/neutral,/area/surface/outpost/research/xenoarcheology) -"dz" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 4},/obj/structure/cable/blue{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 10},/obj/structure/cable/blue{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor/tiled/neutral,/area/surface/outpost/research/xenoarcheology) -"dA" = (/obj/machinery/power/apc{dir = 4; name = "east bump"; pixel_x = 24},/obj/machinery/light_switch{dir = 2; name = "light switch "; pixel_x = 36; pixel_y = 0},/obj/structure/table/standard,/obj/structure/cable/blue{d2 = 8; icon_state = "0-8"},/obj/effect/floor_decal/corner/purple{dir = 6},/obj/item/weapon/storage/box/glasses/square{pixel_x = 1; pixel_y = 4},/obj/item/weapon/storage/box/cups,/obj/item/weapon/hand_labeler,/turf/simulated/floor/tiled/neutral,/area/surface/outpost/research/xenoarcheology) -"dB" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/door/firedoor/glass,/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/airlock/glass_research{name = "Outpost Hallway"; req_access = list(47)},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoarcheology) -"dC" = (/obj/machinery/status_display,/turf/simulated/wall/r_wall,/area/surface/outpost/research/xenoarcheology/anomaly) -"dD" = (/obj/effect/floor_decal/industrial/warning/dust{icon_state = "warning_dust"; dir = 1},/obj/machinery/floodlight,/turf/simulated/floor/tiled/asteroid_steel,/area/surface/outpost/mining_main/cave) -"dE" = (/obj/machinery/artifact_scanpad,/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoarcheology/anomaly) -"dF" = (/obj/machinery/artifact_analyser,/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoarcheology/anomaly) -"dG" = (/obj/structure/table/standard,/obj/machinery/cell_charger,/obj/item/weapon/tool/screwdriver{pixel_y = 15},/obj/item/weapon/melee/baton/loaded,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoarcheology/anomaly) -"dH" = (/obj/machinery/atmospherics/binary/pump{dir = 4},/obj/effect/floor_decal/industrial/warning/full,/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plating,/area/surface/outpost/research/xenoarcheology/anomaly) -"dI" = (/obj/machinery/atmospherics/portables_connector{dir = 8},/obj/machinery/button/remote/blast_door{id = "xenoarch_cell2"; name = "Cell 2"; pixel_x = 26; pixel_y = 0},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoarcheology/anomaly) -"dJ" = (/obj/structure/table/steel,/obj/effect/floor_decal/industrial/warning/dust{icon_state = "warning_dust"; dir = 1},/obj/machinery/cell_charger,/obj/item/weapon/cell/high,/turf/simulated/floor/tiled/asteroid_steel,/area/surface/outpost/mining_main/cave) -"dK" = (/obj/machinery/computer/crew,/obj/item/device/radio/intercom{dir = 8; name = "Station Intercom (General)"; pixel_x = -21},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoarcheology/medical) -"dL" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 1},/obj/structure/table/glass,/obj/machinery/recharger,/obj/item/device/defib_kit/loaded,/obj/item/device/radio{frequency = 1487; icon_state = "med_walkietalkie"; name = "Medbay Emergency Radio Link"},/obj/machinery/camera/network/research_outpost{c_tag = "OPR - Xenoarch First-Aid"; dir = 1},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoarcheology/medical) -"dM" = (/obj/structure/table/glass,/obj/item/weapon/storage/firstaid/toxin{pixel_x = 5; pixel_y = 5},/obj/item/weapon/storage/firstaid/fire{pixel_x = 0; pixel_y = 0},/obj/item/weapon/storage/firstaid/adv{pixel_x = 5; pixel_y = 5},/obj/item/weapon/storage/firstaid/o2{pixel_x = 0; pixel_y = 0},/obj/machinery/vending/wallmed1{name = "NanoMed Wall"; pixel_x = 0; pixel_y = -28},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoarcheology/medical) -"dN" = (/obj/machinery/door/firedoor/border_only,/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/surface/outpost/research/xenoarcheology/medical) -"dO" = (/turf/simulated/floor/tiled/neutral,/area/surface/outpost/research/xenoarcheology) -"dP" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/bed/chair/office/light{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/tiled/neutral,/area/surface/outpost/research/xenoarcheology) -"dQ" = (/obj/structure/table/standard,/obj/effect/floor_decal/corner/purple{dir = 6},/obj/item/weapon/paper_bin{pixel_x = -2; pixel_y = 5},/obj/item/weapon/clipboard,/obj/item/weapon/pen,/obj/item/device/taperecorder,/obj/item/weapon/folder,/obj/item/weapon/stamp,/turf/simulated/floor/tiled/neutral,/area/surface/outpost/research/xenoarcheology) -"dR" = (/obj/effect/floor_decal/corner/purple{dir = 9},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoarcheology) -"dS" = (/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoarcheology) -"dT" = (/obj/effect/floor_decal/corner/purple{dir = 6},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoarcheology) -"dU" = (/obj/structure/table/reinforced,/obj/item/device/flashlight/lamp,/obj/structure/window/reinforced{dir = 1},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 5},/obj/effect/floor_decal/corner/purple{dir = 9},/obj/effect/floor_decal/industrial/warning{dir = 1},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoarcheology/anomaly) -"dV" = (/obj/structure/table/steel,/obj/machinery/cell_charger,/obj/effect/floor_decal/industrial/warning/dust{icon_state = "warning_dust"; dir = 1},/obj/item/weapon/cell/high,/turf/simulated/floor/tiled/asteroid_steel,/area/surface/outpost/mining_main/cave) -"dW" = (/obj/machinery/atmospherics/binary/pump{dir = 8},/obj/effect/floor_decal/industrial/warning/full,/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating,/area/surface/outpost/research/xenoarcheology/anomaly) -"dX" = (/obj/structure/window/reinforced{dir = 1},/obj/effect/floor_decal/industrial/warning{dir = 1},/obj/machinery/atmospherics/pipe/manifold/hidden/yellow{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoarcheology/anomaly) -"dY" = (/obj/effect/floor_decal/industrial/warning/corner{icon_state = "warningcorner"; dir = 1},/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable/blue{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoarcheology/anomaly) -"dZ" = (/obj/effect/floor_decal/industrial/warning/corner,/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoarcheology/anomaly) -"ea" = (/obj/machinery/door/firedoor/border_only,/obj/effect/wingrille_spawn/reinforced,/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plating,/area/surface/outpost/research/xenoarcheology/isolation_b) -"eb" = (/obj/machinery/power/apc{dir = 1; name = "north bump"; pixel_x = 0; pixel_y = 24},/obj/structure/cable/blue{d2 = 8; icon_state = "0-8"},/obj/machinery/light_switch{pixel_x = 11; pixel_y = 24},/turf/simulated/floor/reinforced,/area/surface/outpost/research/xenoarcheology/isolation_b) -"ec" = (/obj/machinery/artifact_scanpad,/turf/simulated/floor/reinforced,/area/surface/outpost/research/xenoarcheology/isolation_b) -"ed" = (/obj/machinery/artifact_analyser,/obj/effect/floor_decal/industrial/warning{dir = 4},/turf/simulated/floor/reinforced,/area/surface/outpost/research/xenoarcheology/isolation_b) -"ee" = (/obj/machinery/door/blast/regular{id = "xenoarch_cell2"},/turf/simulated/floor/reinforced,/area/surface/outpost/research/xenoarcheology/isolation_b) -"ef" = (/turf/simulated/shuttle/wall/voidcraft/hard_corner,/area/surface/outpost/wall/checkpoint) -"eg" = (/obj/structure/showcase/sign{pixel_y = -5},/turf/simulated/shuttle/wall/voidcraft,/area/surface/outpost/wall/checkpoint) -"eh" = (/obj/item/weapon/banner/nt,/turf/simulated/shuttle/floor/voidcraft/external,/area/surface/outpost/wall/checkpoint) -"ei" = (/obj/item/weapon/banner/nt,/turf/simulated/mineral/floor/ignore_mapgen/sif,/area/surface/cave/explored/normal) -"ej" = (/obj/structure/sign/greencross{desc = "White cross in a green field, you can get medical aid here."; name = "First-Aid"},/turf/simulated/wall,/area/surface/outpost/research/xenoarcheology/medical) -"ek" = (/obj/effect/floor_decal/industrial/warning,/turf/simulated/floor/tiled/neutral,/area/surface/outpost/research/xenoarcheology) -"el" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/effect/floor_decal/industrial/warning,/turf/simulated/floor/tiled/neutral,/area/surface/outpost/research/xenoarcheology) -"em" = (/obj/structure/table/standard,/obj/structure/window/reinforced,/obj/effect/floor_decal/corner/purple{dir = 4},/obj/effect/floor_decal/industrial/warning,/obj/item/device/camera_film{pixel_x = 2; pixel_y = 2},/obj/item/device/camera,/obj/machinery/recharger,/obj/item/weapon/tape_roll,/obj/machinery/firealarm{dir = 4; pixel_x = 24},/obj/machinery/camera/network/research_outpost{c_tag = "OPR - Xenoarch Crew Area"; dir = 8},/turf/simulated/floor/tiled/neutral,/area/surface/outpost/research/xenoarcheology) -"en" = (/turf/simulated/wall,/area/surface/outpost/research/xenoarcheology) -"eo" = (/obj/effect/floor_decal/corner/purple{dir = 9},/obj/machinery/firealarm{dir = 8; pixel_x = -24},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoarcheology) -"ep" = (/obj/structure/table/reinforced,/obj/machinery/computer/atmoscontrol/laptop{monitored_alarm_ids = list("isolation_one","isolation_two","isolation_three"); req_access = null; req_one_access = null},/obj/effect/floor_decal/corner/purple{dir = 9},/obj/machinery/light{dir = 8; icon_state = "tube1"; pixel_y = 0},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoarcheology/anomaly) -"eq" = (/obj/machinery/hologram/holopad,/obj/effect/floor_decal/industrial/outline/grey,/obj/machinery/atmospherics/pipe/manifold/hidden/yellow{dir = 8},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoarcheology/anomaly) -"er" = (/obj/machinery/atmospherics/pipe/simple/hidden/yellow{dir = 4},/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoarcheology/anomaly) -"es" = (/obj/machinery/atmospherics/valve/digital/open{dir = 4},/obj/effect/floor_decal/industrial/warning/full,/turf/simulated/floor/plating,/area/surface/outpost/research/xenoarcheology/anomaly) -"et" = (/obj/machinery/atmospherics/pipe/simple/hidden/yellow{dir = 4},/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/research{name = "Isolation Room 2"; req_access = list(65)},/turf/simulated/floor/reinforced,/area/surface/outpost/research/xenoarcheology/isolation_b) -"eu" = (/obj/machinery/atmospherics/pipe/simple/hidden/yellow{dir = 4},/turf/simulated/floor/reinforced,/area/surface/outpost/research/xenoarcheology/isolation_b) -"ev" = (/obj/machinery/atmospherics/pipe/simple/hidden/yellow{dir = 10},/turf/simulated/floor/reinforced,/area/surface/outpost/research/xenoarcheology/isolation_b) -"ew" = (/obj/effect/floor_decal/industrial/warning{dir = 4},/turf/simulated/floor/reinforced,/area/surface/outpost/research/xenoarcheology/isolation_b) -"ex" = (/obj/machinery/light/small{dir = 1},/obj/item/weapon/banner/virgov,/turf/simulated/shuttle/floor/voidcraft/external,/area/surface/outpost/wall/checkpoint) -"ey" = (/obj/structure/table/steel,/obj/item/weapon/tool/screwdriver,/obj/item/weapon/tool/crowbar,/obj/item/weapon/tool/wrench,/obj/effect/floor_decal/industrial/warning/dust{icon_state = "warning_dust"; dir = 1},/turf/simulated/floor/tiled/asteroid_steel,/area/surface/outpost/mining_main/cave) -"ez" = (/obj/effect/floor_decal/industrial/warning{dir = 9},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoarcheology) -"eA" = (/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 5},/obj/machinery/camera/network/research_outpost{c_tag = "OPR - Xenoarch Airlock 1"; dir = 8},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoarcheology) -"eB" = (/obj/effect/floor_decal/corner/purple{dir = 5},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoarcheology) -"eC" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/effect/floor_decal/corner/purple{dir = 5},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoarcheology) -"eD" = (/obj/machinery/atmospherics/unary/vent_scrubber/on,/obj/effect/floor_decal/corner/purple{dir = 5},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoarcheology) -"eE" = (/obj/machinery/door/firedoor/border_only,/obj/effect/floor_decal/corner/purple{dir = 5},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoarcheology) -"eF" = (/obj/machinery/atmospherics/unary/vent_pump/on,/obj/effect/floor_decal/corner/purple{dir = 1},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoarcheology) -"eG" = (/obj/structure/table/reinforced,/obj/item/weapon/paper_bin,/obj/item/device/camera,/obj/structure/window/reinforced,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/obj/effect/floor_decal/corner/purple{dir = 9},/obj/effect/floor_decal/industrial/warning,/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoarcheology/anomaly) -"eH" = (/obj/structure/table/reinforced,/obj/item/weapon/folder,/obj/item/weapon/pen,/obj/item/weapon/tape_roll,/obj/structure/window/reinforced,/obj/effect/floor_decal/industrial/warning,/obj/machinery/atmospherics/pipe/simple/hidden/universal{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoarcheology/anomaly) -"eI" = (/obj/machinery/atmospherics/binary/pump{dir = 4},/obj/effect/floor_decal/industrial/warning/full,/obj/structure/window/reinforced,/turf/simulated/floor/plating,/area/surface/outpost/research/xenoarcheology/anomaly) -"eJ" = (/obj/structure/window/reinforced,/obj/effect/floor_decal/industrial/warning,/obj/machinery/atmospherics/pipe/manifold/hidden/yellow{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoarcheology/anomaly) -"eK" = (/obj/effect/floor_decal/industrial/warning/corner{icon_state = "warningcorner"; dir = 8},/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoarcheology/anomaly) -"eL" = (/obj/effect/floor_decal/industrial/warning/corner{icon_state = "warningcorner"; dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoarcheology/anomaly) -"eM" = (/obj/machinery/door/firedoor/border_only,/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/surface/outpost/research/xenoarcheology/isolation_b) -"eN" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 4; use_power = 0},/obj/machinery/light,/turf/simulated/floor/reinforced,/area/surface/outpost/research/xenoarcheology/isolation_b) -"eO" = (/obj/machinery/atmospherics/pipe/manifold/hidden/yellow,/obj/machinery/alarm/monitor/isolation{alarm_id = "isolation_two"; dir = 1; pixel_x = 0; pixel_y = -22},/turf/simulated/floor/reinforced,/area/surface/outpost/research/xenoarcheology/isolation_b) -"eP" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 8},/obj/machinery/camera/network/research_outpost{c_tag = "OPR - Isolation Cell 2"; dir = 1},/turf/simulated/floor/reinforced,/area/surface/outpost/research/xenoarcheology/isolation_b) -"eQ" = (/obj/machinery/door/airlock/research{autoclose = 0; frequency = 1379; icon_state = "door_locked"; id_tag = "xenoarch1_airlock_exterior"; locked = 1; name = "Research Exterior Airlock"},/obj/machinery/access_button{command = "cycle_exterior"; frequency = 1379; master_tag = "xenoarch1_airlock_control"; name = "Xenoarch Access Button"; pixel_x = 0; pixel_y = -24; req_access = null},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoarcheology) -"eR" = (/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 8},/obj/effect/floor_decal/rust/part_rusted1,/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoarcheology) -"eS" = (/obj/effect/floor_decal/industrial/warning{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoarcheology) -"eT" = (/obj/machinery/door/airlock/research{autoclose = 0; frequency = 1379; icon_state = "door_locked"; id_tag = "xenoarch1_airlock_interior"; locked = 1; name = "Research Interior Airlock"},/obj/machinery/access_button{command = "cycle_interior"; frequency = 1379; master_tag = "xenoarch1_airlock_control"; name = "Research Access Button"; pixel_x = -6; pixel_y = -26; req_access = null},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoarcheology) -"eU" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/obj/machinery/embedded_controller/radio/airlock/access_controller{id_tag = "xenoarch1_airlock_control"; name = "Research Access Console"; pixel_x = -26; pixel_y = -26; tag_exterior_door = "xenoarch1_airlock_exterior"; tag_interior_door = "xenoarch1_airlock_interior"},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoarcheology) -"eV" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 1},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoarcheology) -"eW" = (/obj/structure/cable/blue{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/manifold/hidden/supply,/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 8},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoarcheology) -"eX" = (/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers,/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoarcheology) -"eY" = (/obj/machinery/door/firedoor/glass,/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoarcheology) -"eZ" = (/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/manifold/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoarcheology) -"fa" = (/obj/structure/cable/blue{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable/blue{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 4},/obj/machinery/hologram/holopad,/obj/effect/floor_decal/industrial/outline/grey,/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoarcheology) -"fb" = (/obj/effect/floor_decal/corner/purple{dir = 6},/obj/machinery/camera/network/research_outpost{c_tag = "OPR - Xenoarch Hallway 1"; dir = 8},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoarcheology) -"fc" = (/obj/machinery/ai_status_display,/turf/simulated/wall/r_wall,/area/surface/outpost/research/xenoarcheology/anomaly) -"fd" = (/obj/machinery/artifact_harvester,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/bluegrid,/area/surface/outpost/research/xenoarcheology/anomaly) -"fe" = (/obj/item/weapon/anobattery{pixel_x = -6; pixel_y = 2},/obj/item/weapon/anobattery{pixel_x = -2; pixel_y = -2},/obj/item/weapon/anobattery{pixel_x = 2; pixel_y = 2},/obj/item/weapon/anobattery{pixel_x = 6; pixel_y = 6},/obj/structure/table/steel,/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoarcheology/anomaly) -"ff" = (/obj/item/weapon/anodevice{pixel_x = 3; pixel_y = 3},/obj/item/weapon/anodevice,/obj/structure/table/steel,/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoarcheology/anomaly) -"fg" = (/obj/machinery/artifact_harvester,/obj/machinery/atmospherics/pipe/manifold/hidden/yellow{dir = 8},/turf/simulated/floor/bluegrid,/area/surface/outpost/research/xenoarcheology/anomaly) -"fh" = (/obj/effect/floor_decal/industrial/warning/full,/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/binary/pump{dir = 4},/turf/simulated/floor/plating,/area/surface/outpost/research/xenoarcheology/anomaly) -"fi" = (/obj/machinery/atmospherics/portables_connector{dir = 8},/obj/machinery/firealarm{dir = 4; pixel_x = 24},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoarcheology/anomaly) -"fj" = (/turf/simulated/wall/r_wall,/area/surface/outpost/research/xenoarcheology/isolation_b) -"fk" = (/obj/effect/floor_decal/industrial/warning{dir = 10},/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -21},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoarcheology) -"fl" = (/obj/effect/floor_decal/industrial/warning{dir = 6},/obj/machinery/status_display{pixel_y = -32},/obj/machinery/light,/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoarcheology) -"fm" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/effect/floor_decal/corner/purple{dir = 10},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoarcheology) -"fn" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 1},/obj/effect/floor_decal/corner/purple{dir = 8},/obj/effect/floor_decal/industrial/warning/corner,/obj/structure/noticeboard/anomaly{icon_state = "nboard05"; pixel_y = -32},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoarcheology) -"fo" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/effect/floor_decal/industrial/warning,/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoarcheology) -"fp" = (/obj/effect/floor_decal/corner/purple,/obj/effect/floor_decal/industrial/warning/corner{dir = 8},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoarcheology) -"fq" = (/obj/machinery/door/firedoor/border_only,/obj/effect/floor_decal/corner/purple{dir = 10},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoarcheology) -"fr" = (/obj/effect/floor_decal/corner/purple{dir = 8},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoarcheology) -"fs" = (/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 8},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoarcheology) -"ft" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 8},/obj/effect/floor_decal/corner/purple{dir = 4},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoarcheology) -"fu" = (/obj/machinery/artifact_scanpad,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/bluegrid,/area/surface/outpost/research/xenoarcheology/anomaly) -"fv" = (/obj/machinery/artifact_scanpad,/obj/machinery/atmospherics/pipe/simple/hidden/yellow,/turf/simulated/floor/bluegrid,/area/surface/outpost/research/xenoarcheology/anomaly) -"fw" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 8},/obj/structure/cable/blue{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoarcheology/anomaly) -"fx" = (/obj/effect/floor_decal/industrial/warning/corner,/obj/machinery/atmospherics/unary/vent_pump/on{dir = 8},/obj/machinery/light{dir = 4; icon_state = "tube1"},/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoarcheology/anomaly) -"fy" = (/obj/machinery/door/firedoor/border_only,/obj/effect/wingrille_spawn/reinforced,/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plating,/area/surface/outpost/research/xenoarcheology/isolation_c) -"fz" = (/obj/machinery/power/apc{dir = 1; name = "north bump"; pixel_x = 0; pixel_y = 24},/obj/structure/cable/blue{d2 = 8; icon_state = "0-8"},/obj/machinery/light_switch{pixel_x = 11; pixel_y = 24},/turf/simulated/floor/reinforced,/area/surface/outpost/research/xenoarcheology/isolation_c) -"fA" = (/obj/machinery/artifact_scanpad,/turf/simulated/floor/reinforced,/area/surface/outpost/research/xenoarcheology/isolation_c) -"fB" = (/obj/machinery/artifact_analyser,/turf/simulated/floor/reinforced,/area/surface/outpost/research/xenoarcheology/isolation_c) -"fC" = (/turf/simulated/wall/r_wall,/area/surface/outpost/research/xenoarcheology/isolation_c) -"fD" = (/turf/simulated/wall/r_wall,/area/surface/outpost/research/xenoarcheology/smes) -"fE" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 8},/turf/simulated/wall,/area/surface/outpost/research/xenoarcheology/smes) -"fF" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 10},/turf/simulated/wall,/area/surface/outpost/research/xenoarcheology/smes) -"fG" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/atmospherics/pipe/simple/hidden/universal,/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/airlock/engineering{name = "Generator Room"; req_one_access = list(12,47)},/turf/simulated/floor/plating,/area/surface/outpost/research/xenoarcheology/smes) -"fH" = (/obj/structure/sign/warning/high_voltage,/turf/simulated/wall,/area/surface/outpost/research/xenoarcheology/smes) -"fI" = (/obj/machinery/recharge_station,/obj/effect/floor_decal/corner/purple{dir = 9},/obj/structure/extinguisher_cabinet{pixel_x = -28; pixel_y = 0},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoarcheology) -"fJ" = (/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable/blue{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 8},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 8},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoarcheology) -"fK" = (/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/alarm{dir = 1; icon_state = "alarm0"; pixel_y = -22},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoarcheology) -"fL" = (/obj/machinery/door/firedoor/glass,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/door/airlock/glass_research{name = "Anomalous Materials"; req_access = list(65)},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoarcheology/anomaly) -"fM" = (/obj/effect/floor_decal/industrial/warning{dir = 1},/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/manifold/hidden/supply,/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 1},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoarcheology/anomaly) -"fN" = (/obj/effect/floor_decal/industrial/warning{dir = 1},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 1},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 10},/obj/structure/cable/blue{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoarcheology/anomaly) -"fO" = (/obj/effect/floor_decal/industrial/warning{dir = 1},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/yellow{dir = 6},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoarcheology/anomaly) -"fP" = (/obj/effect/floor_decal/industrial/warning{dir = 1},/obj/machinery/atmospherics/pipe/manifold4w/hidden/yellow,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoarcheology/anomaly) -"fQ" = (/obj/machinery/atmospherics/pipe/simple/hidden/yellow{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 9; pixel_y = 0},/obj/effect/floor_decal/industrial/warning/corner{icon_state = "warningcorner"; dir = 1},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoarcheology/anomaly) -"fR" = (/obj/machinery/atmospherics/pipe/simple/hidden/yellow{dir = 4},/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/research{name = "Isolation Room 3"; req_access = list(65)},/turf/simulated/floor/reinforced,/area/surface/outpost/research/xenoarcheology/isolation_c) -"fS" = (/obj/machinery/atmospherics/pipe/simple/hidden/yellow{dir = 4},/turf/simulated/floor/reinforced,/area/surface/outpost/research/xenoarcheology/isolation_c) -"fT" = (/obj/machinery/atmospherics/pipe/simple/hidden/yellow{dir = 10},/turf/simulated/floor/reinforced,/area/surface/outpost/research/xenoarcheology/isolation_c) -"fU" = (/turf/simulated/floor/reinforced,/area/surface/outpost/research/xenoarcheology/isolation_c) -"fV" = (/obj/machinery/power/smes/buildable/outpost_substation{charge = 500000; input_attempt = 1; input_level = 150000; output_level = 150000; RCon_tag = "Outpost - Xenoarch"},/obj/structure/cable/blue{d2 = 4; icon_state = "0-4"},/turf/simulated/floor/plating,/area/surface/outpost/research/xenoarcheology/smes) -"fW" = (/obj/structure/cable/blue{d2 = 8; icon_state = "0-8"},/obj/structure/cable/blue{d2 = 4; icon_state = "0-4"},/obj/structure/anomaly_container,/turf/simulated/floor/plating,/area/surface/outpost/research/xenoarcheology/smes) -"fX" = (/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/table/steel,/obj/random/tool,/obj/random/tool,/obj/machinery/alarm{frequency = 1441; pixel_y = 22},/turf/simulated/floor/plating,/area/surface/outpost/research/xenoarcheology/smes) -"fY" = (/obj/machinery/atmospherics/pipe/simple/hidden/universal,/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/table/steel,/obj/item/weapon/storage/toolbox/mechanical,/obj/structure/extinguisher_cabinet{pixel_y = 30},/turf/simulated/floor/plating,/area/surface/outpost/research/xenoarcheology/smes) -"fZ" = (/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/unary/vent_pump/on{dir = 1},/obj/effect/floor_decal/industrial/warning/corner{dir = 4},/obj/structure/anomaly_container,/turf/simulated/floor/plating,/area/surface/outpost/research/xenoarcheology/smes) -"ga" = (/obj/machinery/atmospherics/binary/pump/on{dir = 2; target_pressure = 200},/obj/structure/cable/blue{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable/blue{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 1},/turf/simulated/floor/plating,/area/surface/outpost/research/xenoarcheology/smes) -"gb" = (/obj/structure/table/steel,/obj/machinery/cell_charger,/obj/random/powercell,/obj/random/maintenance/clean,/obj/structure/cable/blue{d2 = 8; icon_state = "0-8"},/obj/machinery/power/apc{dir = 4; name = "east bump"; pixel_x = 24},/obj/machinery/light_switch{dir = 2; name = "light switch "; pixel_x = 36; pixel_y = 0},/obj/effect/floor_decal/industrial/warning/corner{dir = 1},/turf/simulated/floor/plating,/area/surface/outpost/research/xenoarcheology/smes) -"gc" = (/turf/simulated/wall,/area/surface/outpost/research/xenoarcheology/smes) -"gd" = (/turf/simulated/wall,/area/surface/outpost/research/xenoarcheology/restroom) -"ge" = (/obj/machinery/door/airlock{name = "Research Restroom"},/obj/machinery/door/firedoor/border_only,/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/tiled/freezer,/area/surface/outpost/research/xenoarcheology/restroom) -"gf" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 1},/obj/machinery/camera/network/research_outpost{c_tag = "OPR - Anomalous Materials 1"; dir = 4},/obj/item/device/radio/intercom{dir = 8; name = "Station Intercom (General)"; pixel_x = -21},/obj/effect/floor_decal/corner/purple{dir = 8},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoarcheology/anomaly) -"gg" = (/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoarcheology/anomaly) -"gh" = (/obj/machinery/atmospherics/unary/heater{dir = 1},/obj/effect/floor_decal/industrial/outline/yellow,/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoarcheology/anomaly) -"gi" = (/obj/machinery/atmospherics/unary/freezer{dir = 1; icon_state = "freezer"},/obj/effect/floor_decal/industrial/outline/yellow,/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoarcheology/anomaly) -"gj" = (/obj/machinery/alarm{dir = 1; pixel_y = -22},/obj/effect/floor_decal/corner/purple,/obj/effect/floor_decal/industrial/warning/corner{icon_state = "warningcorner"; dir = 4},/obj/structure/anomaly_container,/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoarcheology/anomaly) -"gk" = (/obj/machinery/door/firedoor/border_only,/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/surface/outpost/research/xenoarcheology/isolation_c) -"gl" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 4; use_power = 0},/obj/machinery/light,/turf/simulated/floor/reinforced,/area/surface/outpost/research/xenoarcheology/isolation_c) -"gm" = (/obj/machinery/atmospherics/pipe/manifold/hidden/yellow,/obj/machinery/alarm/monitor/isolation{alarm_id = "isolation_one"; dir = 1; pixel_x = 0; pixel_y = -22},/turf/simulated/floor/reinforced,/area/surface/outpost/research/xenoarcheology/isolation_c) -"gn" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 8},/obj/machinery/camera/network/research_outpost{c_tag = "OPR - Isolation Cell 3"; dir = 1},/turf/simulated/floor/reinforced,/area/surface/outpost/research/xenoarcheology/isolation_c) -"go" = (/obj/item/stack/flag/green,/turf/simulated/mineral/floor/ignore_mapgen/sif,/area/surface/cave/explored/deep) -"gp" = (/obj/effect/floor_decal/industrial/warning/dust{icon_state = "warning_dust"; dir = 8},/obj/machinery/light/small{dir = 1},/turf/simulated/floor/tiled/asteroid_steel,/area/surface/outpost/mining_main/cave) -"gq" = (/obj/machinery/light/small{dir = 1},/obj/effect/floor_decal/industrial/warning/dust{icon_state = "warning_dust"; dir = 4},/turf/simulated/floor/tiled/asteroid_steel,/area/surface/outpost/mining_main/cave) -"gr" = (/obj/item/stack/flag/red{amount = 1},/turf/simulated/mineral/floor/ignore_mapgen/sif,/area/surface/cave/explored/deep) -"gs" = (/obj/effect/floor_decal/industrial/warning/dust{icon_state = "warning_dust"; dir = 8},/turf/simulated/floor/tiled/asteroid_steel,/area/surface/outpost/mining_main/cave) -"gt" = (/obj/effect/floor_decal/industrial/warning/dust{icon_state = "warning_dust"; dir = 4},/turf/simulated/floor/tiled/asteroid_steel,/area/surface/outpost/mining_main/cave) -"gu" = (/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/cable/heavyduty{d2 = 8; icon_state = "0-8"},/obj/machinery/door/firedoor/border_only,/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/surface/outpost/research/xenoarcheology/smes) -"gv" = (/obj/machinery/power/terminal{icon_state = "term"; dir = 1},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/cable{d2 = 2; icon_state = "0-2"; pixel_y = 0},/turf/simulated/floor/plating,/area/surface/outpost/research/xenoarcheology/smes) -"gw" = (/turf/simulated/floor/plating,/area/surface/outpost/research/xenoarcheology/smes) -"gx" = (/obj/machinery/atmospherics/binary/pump/on{dir = 1; target_pressure = 200},/turf/simulated/floor/plating,/area/surface/outpost/research/xenoarcheology/smes) -"gy" = (/obj/machinery/atmospherics/pipe/simple/visible/yellow{dir = 6},/turf/simulated/floor/plating,/area/surface/outpost/research/xenoarcheology/smes) -"gz" = (/obj/machinery/meter,/obj/machinery/atmospherics/pipe/manifold4w/visible/yellow,/turf/simulated/floor/plating,/area/surface/outpost/research/xenoarcheology/smes) -"gA" = (/obj/structure/table/steel,/obj/random/maintenance/clean,/obj/random/maintenance/clean,/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 8},/turf/simulated/floor/plating,/area/surface/outpost/research/xenoarcheology/smes) -"gB" = (/obj/machinery/power/apc{dir = 1; name = "north bump"; pixel_x = 0; pixel_y = 24},/obj/machinery/light_switch{pixel_x = 11; pixel_y = 24},/obj/structure/sink{icon_state = "sink"; dir = 8; pixel_x = -12; pixel_y = 2},/obj/structure/mirror{pixel_x = -28},/obj/structure/cable/blue{d2 = 4; icon_state = "0-4"},/turf/simulated/floor/tiled/freezer,/area/surface/outpost/research/xenoarcheology/restroom) -"gC" = (/obj/structure/cable/blue{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/tiled/freezer,/area/surface/outpost/research/xenoarcheology/restroom) -"gD" = (/obj/structure/undies_wardrobe,/turf/simulated/floor/tiled/freezer,/area/surface/outpost/research/xenoarcheology/restroom) -"gE" = (/turf/simulated/wall/r_wall,/area/surface/outpost/research/xenoarcheology/restroom) -"gF" = (/obj/machinery/door/firedoor/border_only,/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/surface/outpost/research/xenoarcheology/analysis) -"gG" = (/obj/machinery/door/firedoor/glass,/obj/machinery/door/airlock/glass_research{name = "Sample Preparation"; req_access = list(65)},/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoarcheology/analysis) -"gH" = (/obj/machinery/door/firedoor/glass,/obj/machinery/door/airlock/glass_research{name = "Sample Preparation"; req_access = list(65)},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoarcheology/analysis) -"gI" = (/turf/simulated/wall,/area/surface/outpost/research/xenoarcheology/analysis) -"gJ" = (/turf/simulated/wall/r_wall,/area/surface/outpost/research/xenoarcheology/analysis) -"gK" = (/turf/simulated/wall/r_wall,/area/surface/outpost/research/xenoarcheology/emergencystorage) -"gL" = (/turf/simulated/floor/water{outdoors = 0},/area/surface/cave/explored/normal) -"gM" = (/turf/simulated/floor/plating{icon_state = "asteroidplating2"},/area/surface/cave/explored/normal) -"gN" = (/obj/structure/cable,/obj/machinery/power/port_gen/pacman,/obj/machinery/light/small{dir = 8},/turf/simulated/floor/plating,/area/surface/outpost/research/xenoarcheology/smes) -"gO" = (/obj/machinery/space_heater,/turf/simulated/floor/plating,/area/surface/outpost/research/xenoarcheology/smes) -"gP" = (/obj/machinery/atmospherics/pipe/simple/visible/cyan,/obj/machinery/portable_atmospherics/powered/scrubber,/turf/simulated/floor/plating,/area/surface/outpost/research/xenoarcheology/smes) -"gQ" = (/obj/machinery/atmospherics/binary/pump,/turf/simulated/floor/plating,/area/surface/outpost/research/xenoarcheology/smes) -"gR" = (/obj/machinery/atmospherics/omni/atmos_filter{tag_east = 7; tag_north = 1; tag_south = 2; tag_west = 0},/turf/simulated/floor/plating,/area/surface/outpost/research/xenoarcheology/smes) -"gS" = (/obj/machinery/atmospherics/pipe/tank/nitrous_oxide{dir = 8},/obj/machinery/light/small{dir = 4; pixel_y = 0},/turf/simulated/floor/plating,/area/surface/outpost/research/xenoarcheology/smes) -"gT" = (/obj/structure/sink{icon_state = "sink"; dir = 8; pixel_x = -12; pixel_y = 2},/obj/structure/mirror{pixel_x = -28},/turf/simulated/floor/tiled/freezer,/area/surface/outpost/research/xenoarcheology/restroom) -"gU" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/tiled/freezer,/area/surface/outpost/research/xenoarcheology/restroom) -"gV" = (/obj/structure/table/standard,/obj/item/weapon/towel{color = "#800080"; name = "purple towel"},/obj/item/weapon/towel{color = "#800080"; name = "purple towel"},/obj/item/weapon/towel{color = "#800080"; name = "purple towel"},/obj/random/soap,/obj/random/soap,/obj/machinery/light{dir = 4},/turf/simulated/floor/tiled/freezer,/area/surface/outpost/research/xenoarcheology/restroom) -"gW" = (/obj/item/weapon/reagent_containers/glass/bottle/toxin,/obj/item/weapon/reagent_containers/glass/beaker/sulphuric{name = "beaker 'sulphuric acid'"},/obj/structure/table/glass,/obj/effect/floor_decal/corner/beige{dir = 9},/obj/machinery/power/apc{dir = 8; name = "west bump"; pixel_x = -24},/obj/machinery/light_switch{pixel_x = -36},/obj/structure/cable/blue{d2 = 4; icon_state = "0-4"},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoarcheology/analysis) -"gX" = (/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/cable/blue{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoarcheology/analysis) -"gY" = (/obj/effect/floor_decal/corner/beige{dir = 4},/obj/machinery/atmospherics/unary/vent_pump/on,/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoarcheology/analysis) -"gZ" = (/obj/effect/floor_decal/corner/lime{dir = 1},/obj/machinery/atmospherics/unary/vent_scrubber/on,/obj/machinery/camera/network/research_outpost{c_tag = "OPR - Sample Preparation"; dir = 2},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoarcheology/analysis) -"ha" = (/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoarcheology/analysis) -"hb" = (/obj/structure/reagent_dispensers/coolanttank,/obj/effect/floor_decal/corner/lime{dir = 4},/obj/machinery/light{dir = 1},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoarcheology/analysis) -"hc" = (/obj/structure/reagent_dispensers/coolanttank,/obj/effect/floor_decal/corner/lime{dir = 5},/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 22},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoarcheology/analysis) -"hd" = (/turf/simulated/wall,/area/surface/outpost/research/xenoarcheology/emergencystorage) -"he" = (/obj/machinery/space_heater,/obj/structure/cable/blue{d2 = 2; icon_state = "0-2"},/obj/machinery/power/apc{dir = 1; name = "north bump"; pixel_x = 0; pixel_y = 24},/turf/simulated/floor/plating,/area/surface/outpost/research/xenoarcheology/emergencystorage) -"hf" = (/obj/machinery/floodlight,/turf/simulated/floor/plating,/area/surface/outpost/research/xenoarcheology/emergencystorage) -"hg" = (/obj/structure/closet/crate,/obj/item/stack/material/phoron{amount = 50},/turf/simulated/floor/plating,/area/surface/outpost/research/xenoarcheology/smes) -"hh" = (/obj/machinery/atmospherics/pipe/simple/visible/cyan,/obj/machinery/portable_atmospherics/powered/pump/filled{pixel_x = 0},/turf/simulated/floor/plating,/area/surface/outpost/research/xenoarcheology/smes) -"hi" = (/obj/machinery/atmospherics/portables_connector{dir = 1},/turf/simulated/floor/plating,/area/surface/outpost/research/xenoarcheology/smes) -"hj" = (/obj/machinery/atmospherics/omni/atmos_filter{tag_east = 5; tag_north = 1; tag_south = 2; tag_west = 0},/turf/simulated/floor/plating,/area/surface/outpost/research/xenoarcheology/smes) -"hk" = (/obj/machinery/atmospherics/pipe/tank/carbon_dioxide{dir = 8},/turf/simulated/floor/plating,/area/surface/outpost/research/xenoarcheology/smes) -"hl" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 4},/obj/machinery/alarm{dir = 4; icon_state = "alarm0"; pixel_x = -22; pixel_y = 0},/turf/simulated/floor/tiled/freezer,/area/surface/outpost/research/xenoarcheology/restroom) -"hm" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 9},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 5},/turf/simulated/floor/tiled/freezer,/area/surface/outpost/research/xenoarcheology/restroom) -"hn" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 8},/turf/simulated/floor/tiled/freezer,/area/surface/outpost/research/xenoarcheology/restroom) -"ho" = (/obj/machinery/chemical_dispenser/full,/obj/structure/sign/warning/nosmoking_2{pixel_x = -32},/obj/effect/floor_decal/corner/beige{dir = 9},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoarcheology/analysis) -"hp" = (/obj/machinery/hologram/holopad,/obj/effect/floor_decal/industrial/outline/grey,/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 5},/obj/structure/cable/blue{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoarcheology/analysis) -"hq" = (/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/manifold/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoarcheology/analysis) -"hr" = (/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 9},/obj/machinery/door/window/westright,/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoarcheology/analysis) -"hs" = (/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoarcheology/analysis) -"ht" = (/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 10},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoarcheology/analysis) -"hu" = (/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoarcheology/analysis) -"hv" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock{name = "Emergency Storage"},/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plating,/area/surface/outpost/research/xenoarcheology/emergencystorage) -"hw" = (/obj/structure/cable/blue{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor/plating,/area/surface/outpost/research/xenoarcheology/emergencystorage) -"hx" = (/obj/item/weapon/weldpack,/obj/machinery/light/small{dir = 4},/turf/simulated/floor/plating,/area/surface/outpost/research/xenoarcheology/emergencystorage) -"hy" = (/obj/structure/closet/toolcloset,/obj/random/maintenance/clean,/obj/random/maintenance/clean,/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -21},/turf/simulated/floor/plating,/area/surface/outpost/research/xenoarcheology/smes) -"hz" = (/obj/structure/table/reinforced,/obj/item/clothing/gloves/sterile/latex,/obj/structure/window/reinforced{dir = 1},/obj/effect/floor_decal/industrial/warning{dir = 1},/obj/machinery/atmospherics/pipe/simple/hidden/universal{dir = 4},/obj/item/weapon/storage/box/monkeycubes,/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoarcheology/anomaly) -"hA" = (/obj/machinery/atmospherics/pipe/manifold4w/visible/cyan,/obj/machinery/meter,/turf/simulated/floor/plating,/area/surface/outpost/research/xenoarcheology/smes) -"hB" = (/obj/machinery/atmospherics/pipe/manifold/visible/cyan{dir = 1},/turf/simulated/floor/plating,/area/surface/outpost/research/xenoarcheology/smes) -"hC" = (/obj/machinery/atmospherics/omni/atmos_filter{tag_east = 6; tag_north = 1; tag_south = 0; tag_west = 2},/turf/simulated/floor/plating,/area/surface/outpost/research/xenoarcheology/smes) -"hD" = (/obj/machinery/atmospherics/pipe/tank/phoron{dir = 8},/turf/simulated/floor/plating,/area/surface/outpost/research/xenoarcheology/smes) -"hE" = (/obj/structure/curtain/open/shower,/obj/structure/window/reinforced{dir = 8},/obj/machinery/shower{dir = 4; icon_state = "shower"; pixel_x = 5; pixel_y = 0},/turf/simulated/floor/tiled/freezer,/area/surface/outpost/research/xenoarcheology/restroom) -"hF" = (/obj/structure/window/reinforced/tinted{dir = 4; icon_state = "twindow"},/obj/machinery/recharge_station,/obj/machinery/firealarm{dir = 1; pixel_x = 0; pixel_y = -24},/turf/simulated/floor/tiled/freezer,/area/surface/outpost/research/xenoarcheology/restroom) -"hG" = (/obj/structure/toilet{dir = 1},/turf/simulated/floor/tiled/freezer,/area/surface/outpost/research/xenoarcheology/restroom) -"hH" = (/obj/machinery/chem_master,/obj/effect/floor_decal/corner/beige{dir = 9},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoarcheology/analysis) -"hI" = (/obj/item/weapon/stool/padded,/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 1},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoarcheology/analysis) -"hJ" = (/obj/effect/floor_decal/corner/beige,/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoarcheology/analysis) -"hK" = (/obj/effect/floor_decal/corner/lime{dir = 10},/obj/structure/window/reinforced{dir = 8; health = 1e+006},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoarcheology/analysis) -"hL" = (/obj/effect/floor_decal/corner/lime{dir = 10},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoarcheology/analysis) -"hM" = (/obj/effect/floor_decal/corner/lime{dir = 10},/obj/machinery/atmospherics/unary/vent_pump/on{dir = 1},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoarcheology/analysis) -"hN" = (/obj/item/clothing/glasses/meson,/obj/structure/closet/hydrant{pixel_x = -32},/turf/simulated/floor/plating,/area/surface/outpost/research/xenoarcheology/emergencystorage) -"hO" = (/obj/structure/reagent_dispensers/watertank,/obj/machinery/alarm{dir = 1; pixel_y = -22},/turf/simulated/floor/plating,/area/surface/outpost/research/xenoarcheology/emergencystorage) -"hP" = (/obj/machinery/portable_atmospherics/canister/air,/obj/machinery/firealarm{dir = 1; pixel_x = 0; pixel_y = -24},/turf/simulated/floor/plating,/area/surface/outpost/research/xenoarcheology/smes) -"hQ" = (/obj/machinery/atmospherics/pipe/tank/air{dir = 1; start_pressure = 740},/obj/machinery/ai_status_display{pixel_y = -32},/turf/simulated/floor/plating,/area/surface/outpost/research/xenoarcheology/smes) -"hR" = (/obj/machinery/atmospherics/pipe/tank/air{dir = 1; start_pressure = 740},/obj/machinery/light/small,/turf/simulated/floor/plating,/area/surface/outpost/research/xenoarcheology/smes) -"hS" = (/obj/machinery/atmospherics/pipe/tank/air{dir = 1; start_pressure = 740},/turf/simulated/floor/plating,/area/surface/outpost/research/xenoarcheology/smes) -"hT" = (/obj/machinery/status_display{pixel_y = -32},/turf/simulated/floor/plating,/area/surface/outpost/research/xenoarcheology/smes) -"hU" = (/obj/structure/closet/emcloset,/turf/simulated/floor/plating,/area/surface/outpost/research/xenoarcheology/smes) -"hV" = (/obj/structure/table/glass,/obj/machinery/reagentgrinder,/obj/machinery/firealarm{dir = 1; pixel_x = 0; pixel_y = -24},/obj/item/device/radio/intercom{dir = 8; name = "Station Intercom (General)"; pixel_x = -21},/obj/effect/floor_decal/corner/beige/full,/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoarcheology/analysis) -"hW" = (/obj/item/weapon/reagent_containers/glass/beaker/large,/obj/item/weapon/reagent_containers/dropper{pixel_y = -4},/obj/structure/table/glass,/obj/effect/floor_decal/corner/beige{dir = 10},/obj/machinery/light,/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoarcheology/analysis) -"hX" = (/obj/structure/table/glass,/obj/item/weapon/storage/box/beakers{pixel_x = 2; pixel_y = 2},/obj/machinery/alarm{dir = 1; pixel_y = -22},/obj/effect/floor_decal/corner/beige/full{dir = 4},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoarcheology/analysis) -"hY" = (/obj/machinery/radiocarbon_spectrometer,/obj/structure/window/reinforced{dir = 8; health = 1e+006},/turf/simulated/floor/tiled/dark,/area/surface/outpost/research/xenoarcheology/analysis) -"hZ" = (/obj/item/stack/nanopaste,/obj/item/stack/nanopaste,/obj/item/stack/nanopaste,/obj/item/weapon/reagent_containers/glass/bucket,/obj/structure/closet/crate/secure/science{req_access = list(65)},/turf/simulated/floor/tiled/dark,/area/surface/outpost/research/xenoarcheology/analysis) -"ia" = (/obj/machinery/radiocarbon_spectrometer,/turf/simulated/floor/tiled/dark,/area/surface/outpost/research/xenoarcheology/analysis) -"ib" = (/obj/machinery/radiocarbon_spectrometer,/obj/machinery/firealarm{dir = 4; pixel_x = 24},/turf/simulated/floor/tiled/dark,/area/surface/outpost/research/xenoarcheology/analysis) -"ic" = (/obj/structure/table/rack,/obj/item/weapon/storage/toolbox/emergency,/obj/item/clothing/accessory/armband/science,/obj/item/clothing/glasses/science,/obj/item/device/suit_cooling_unit,/obj/item/weapon/extinguisher,/obj/item/device/flashlight,/turf/simulated/floor/plating,/area/surface/outpost/research/xenoarcheology/emergencystorage) -"id" = (/turf/simulated/floor/plating{icon_state = "asteroidplating2"},/area/surface/outpost/research/xenoarcheology) -"ie" = (/turf/simulated/wall/dungeon,/area/surface/cave/unexplored/normal) -"if" = (/obj/item/stack/flag/green,/turf/simulated/mineral/floor/ignore_mapgen/sif,/area/surface/cave/explored/normal) -"ig" = (/obj/item/stack/flag/red{amount = 1},/turf/simulated/mineral/floor/ignore_mapgen/sif,/area/surface/cave/explored/normal) -"ih" = (/obj/structure/table/standard,/obj/item/weapon/flame/lighter/random,/obj/item/weapon/tool/crowbar,/obj/machinery/atmospherics/pipe/manifold/hidden/yellow{dir = 8},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoarcheology/anomaly) -"ii" = (/obj/effect/floor_decal/industrial/warning/dust{icon_state = "warning_dust"; dir = 8},/obj/machinery/light/small,/turf/simulated/floor/tiled/asteroid_steel,/area/surface/outpost/mining_main/cave) -"ij" = (/obj/structure/cable/heavyduty{icon_state = "2-8"},/obj/structure/cable/heavyduty{icon_state = "2-4"},/turf/simulated/floor/plating{icon_state = "asteroidplating2"},/area/surface/cave/explored/normal) -"ik" = (/obj/machinery/light/small,/obj/effect/floor_decal/industrial/warning/dust{icon_state = "warning_dust"; dir = 4},/obj/structure/cable/heavyduty{icon_state = "4-8"},/turf/simulated/floor/tiled/asteroid_steel,/area/surface/outpost/mining_main/cave) -"il" = (/obj/structure/cable/heavyduty{icon_state = "4-8"},/turf/simulated/floor/plating{icon_state = "asteroidplating2"},/area/surface/cave/explored/normal) -"im" = (/turf/simulated/floor/tiled/asteroid_steel,/area/surface/outpost/mining_main/cave) -"in" = (/obj/structure/cable/heavyduty{icon_state = "1-2"},/turf/simulated/floor/plating{icon_state = "asteroidplating2"},/area/surface/cave/explored/normal) -"io" = (/obj/machinery/atmospherics/pipe/simple/visible/cyan{icon_state = "intact"; dir = 6},/turf/simulated/floor/plating,/area/surface/outpost/research/xenoarcheology/smes) -"ip" = (/obj/structure/cable/ender{icon_state = "1-2"; id = "surface_cave"},/turf/simulated/floor/plating{icon_state = "asteroidplating2"},/area/surface/cave/explored/normal) -"ir" = (/obj/machinery/mining/brace,/turf/simulated/floor/tiled/asteroid_steel,/area/surface/outpost/mining_main/cave) -"is" = (/obj/machinery/mining/drill,/turf/simulated/floor/tiled/asteroid_steel,/area/surface/outpost/mining_main/cave) -"it" = (/obj/vehicle/train/engine,/turf/simulated/floor/tiled/asteroid_steel,/area/surface/outpost/mining_main/cave) -"iu" = (/obj/vehicle/train/trolley,/turf/simulated/floor/tiled/asteroid_steel,/area/surface/outpost/mining_main/cave) -"iw" = (/obj/machinery/power/apc{dir = 2; name = "south bump"; pixel_y = -24},/obj/structure/cable/heavyduty{d2 = 4; icon_state = "0-4"},/turf/simulated/floor/tiled/asteroid_steel,/area/surface/outpost/mining_main/cave) -"ix" = (/obj/structure/cable/heavyduty{icon_state = "4-8"},/turf/simulated/floor/tiled/asteroid_steel,/area/surface/outpost/mining_main/cave) -"iz" = (/obj/effect/floor_decal/industrial/warning/dust,/obj/structure/ore_box,/turf/simulated/floor/tiled/asteroid_steel,/area/surface/outpost/mining_main/cave) -"iA" = (/obj/effect/step_trigger/teleporter/mine/from_mining,/turf/simulated/mineral/floor/ignore_mapgen/sif,/area/surface/cave/explored/normal) -"iB" = (/obj/effect/step_trigger/teleporter/mine/from_mining,/turf/simulated/floor/water{outdoors = 0},/area/surface/cave/explored/normal) - -(1,1,1) = {" -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacxcwcwcwcxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacyczczczaaaaaaaaaaaaaaaaaa -aaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababcxcXcZcYcxababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababacdsdsdsababababababababaa -aaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababcxcZcZcZcxababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababacdsdsdsacabababababababaa -aaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababefdtegdtefabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababacacdsdsdsacacababababababaa -aaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababacehcZcZcZexacacabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdsdsdsacacababababababaa -aaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababacaccZcZcZacacacacababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdsdsdsabacababababababaa -aaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababacacacacacacacacababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdsdsdsababababababababaa -aaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababacacacacacacgoabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdsdsdsababababababababaa -aaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababgoacacacacacacababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdsdsdsababababababababaa -aaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababacacacacacacacabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdsdsdsacacababababababaa -aaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababacacacacacacacabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdsdsdsacacababababababaa -aaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababacacacacacacabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdsdsdsacabababababababaa -aaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababacacacacacacabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdsdsdsababababababababaa -aaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababacacacacacacabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdsdsdsababababababababaa -aaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababacacacacacacabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdsdsdsababababababababaa -aaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababacacacacacacabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdsdsdsababababababababaa -aaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababacacacacacabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdsdsdsababababababababaa -aaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababacacacacababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdsdsdsababababababababaa -aaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababacacacabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdsdsdsababababababababaa -aaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababacacacacababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdsdsdsababababababababaa -aaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababacacacacababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdsdsdsababababababababaa -aaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababacacacabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdsdsdsababababababababaa -aaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababacacacabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdsdsdsababababababababaa -aaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababacacacababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdsdsababababababababaa -aaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababacacacababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdsdsababababababababaa -aaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababacacacabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdsdsdsababababababababaa -aaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababacacacacababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdsdsdsababababababababaa -aaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababacacacacababababababababababababababababababababababababababababababababababacabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdsdsdsababababababababaa -aaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababacacacacabababababababababababababababababababababababababababababababababacacabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdsdsdsababababababababaa -aaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababacacacacababababababababababababababababababababababababababababababababacacababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdsdsdsababababababababaa -aaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababacacacacacabababababababababababababababababababababababababababababababacacababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdsdsdsababababababababaa -aaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababacacacacacababababababababababababababababababababababababababababababacacacababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdsdsdsababababababababaa -aaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababacacacacacacababababababababababababababababababababababababababababababacacabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdsdsdsababababababababaa -aaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababacacacacacacacabababababababababababababababababababababababababababababacacababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdsdsdsababababababababaa -aaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababacacacacacacacabababababababababababababababababababababababababababababacacacababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdsdsdsababababababababaa -aaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababacacacacacacacacacabababababababababababababababababababababababababababababacacacababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdsdsdsababababababababaa -aaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababacacacacacacacacacababababababababababababababababababababababababababababababacacacababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdsdsdsababababababababaa -aaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababacacacacacacacacacabababababababababababababababababababababababababababababababacacacababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdsdsdsababababababababaa -aaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababacacacacacacacacabababababababababababababababababababababababababababababababacacacabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdsdsdsababababababababaa -aaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababacacacacacacabababababababababababababababababababababababababababababababababacacacabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdsdsdsababababababababaa -aaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababacacacacacacabababababababababababababababababababababababababababababababababacacacababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdsdsdsababababababababaa -aaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababacacacacacababababababababababababababababababababababababababababababababababacacacababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdsdsdsababababababababaa -aaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababacacacacababababababababababababababababababababababababababababababababababacacacababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababacacabdsdsdsababababababababaa -aaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababacacacacabababababababababababababababababababababababababababababababababacacacacabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababacacdsdsdsababababababababaa -aaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababacacacacabababababababababababababababababababababababababababababababababacacacacacababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababacdsdsdsababababababababaa -aaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababacacacacababababababababababababababababababababababababababababababababacacacacacabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababacdsdsdsababababababababaa -aaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababacacacacababababababababababababababababababababababababababababababababacacacacacababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdsdsdsababababababababaa -aaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababacacacacabababababababababababababababababababababababababababababababacacacacacacababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdsdsdsababababababababaa -aaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababacacacacacababababababababababababababababababababababababababababababacacacacacabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdsdsdsababababababababaa -aaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababacacacacabababababababababababababababababababababababababababababacacacacacacacababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdsdsdsababababababababaa -aaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababacacacababababababababababababababababababababababababababababacacacacacacacabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdsdsdsababababababababaa -aaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababacacacabababababababababababababababababababababababababababacacacacacacacacabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdsdsdsababababababababaa -aaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababacacacababababababababababababababababababababababababababacacacacacacacacababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdsdsdsababababababababaa -aaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababacacacacababababababababababababababababababababababababacacacacacacacacacababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdsdsdsababababababababaa -aaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababacacacabababababababababababababababababababababababacacacacacacacacacabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdsdsdsababababababababaa -aaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababacacacababababababababababababababababababababababacacacacacacacacacababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdsdsabababababababababaa -aaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababacacababababababababababababababababababababababacacacacacacacacabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdsdsabababababababababaa -aaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababacacacacababababababababababababababababababababacacacacacacacacababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdsdsabababababababababaa -aaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababgoacacacgoababababababababababababababababababacacacacacacacababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdsdsdsababababababababaa -aaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababacacacacacacababababababababababababababababacacacacacacacabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdsdsdsababababababababaa -aaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababacacacacacacabababababababababababababababacacacacacacababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdsdsdsababababababababaa -aaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababacacacacacacababababababababababababababababacacacacabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdsdsdsababababababababaa -aaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababacacacacacacacababababababababababababababacacacacababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdsdsdsababababababababaa -aaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababacacacabacacacacababababababababababababacacacacabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdsdsdsababababababababaa -aaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababacacacababacacacacabababababababababacacacacacababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdsdsdsababababababababaa -aaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababacacacababacacacacabababababababacacacacacabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdsdsdsababababababababaa -aaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababacacacabababacacacacababababacacacacacacababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdsdsdsababababababababaa -aaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababacacababababacacacacababacacacacacacabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdsdsdsababababababababaa -aaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababacacacababababacacacacacacacacacacababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdsdsdsababababababababaa -aaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababacacacabababababacacacacacacacacabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdsdsdsababababababababaa -aaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababacacabababababacacacacacacacacababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdsdsdsababababababababaa -aaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababacacababababacacacacacacacacabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdsdsdsababababababababaa -aaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababgoacacgoabacacacacacacacacacacabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdsdsdsababababababababaa -aaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababacacacacacacacacacacababacacacabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdsdsdsababababababababaa -aaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababacacacacacacacacababababacacabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdsdsdsababababababababaa -aaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababacacacacacacabababababacacacababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdsdsdsababababababababaa -aaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababacacacacacababababababacacacacacababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdsdsdsababababababababaa -aaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababacacacacacababababababababacacacacacabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdsdsdsababababababababaa -aaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababacacacacacacababababababababababacacacacacabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdsdsdsababababababababaa -aaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababacacacacacababababababababababababacacacacacababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdsdsdsababababababababaa -aaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababacacacacababababababababababababababacacacacacabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdsdsdsababababababababaa -aaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababacacacababababababababababababababababacacacacacacabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdsdsdsababababababababaa -aaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababacacacacabababababababababababababababababacacacacacacacababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababacdsdsdsababababababababaa -aaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababacacacababababababababababababababababababababacacacacacacacababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababacdsdsdsababababababababaa -aaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababacacacababababababababababababababababababababababacacacacacacabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababacdsdsdsababababababababaa -aaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababacacacababababababababababababababababababababababababacacacacacabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdsdsdsababababababababaa -aaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababacacacabababababababababababababababababababababababababababacacacacabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdsdsdsababababababababaa -aaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababacacacacacacacacacacacacacacacababgoacacacabababababababababababababababababababababababababababababacacacabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdsdsdsababababababababaa -aaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababacacacacacacacacacacacacacacacacacacacacacacacgoabababababababababababababababababababababababababababababacacacacababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdsdsdsababababababababaa -aaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababacacacacacacacacacacacacacacacacacacacacacacacacacacabacabababababababababababababababababababababababababababababacacababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdsdsdsababababababababaa -aaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababacacacacacacacacacacacacacacacacababababacacacacacacacacacacacacabababababababababababababababababababababababababababacacacababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdsdsdsababababababababaa -aaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababacacacacacacacacacacacacacacacababababababababacacacacacacacacacacacabababababababababababababababababababababababababababacacacababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdsdsdsababababababababaa -aaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababacacacacacacacacacacacacacacababababababababababababacacacacacacacacacacababababababababababababababababababababababababababacacacabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdsdsdsababababababababaa -aaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababacacacacacacacacacacacacacacabababababababababababababababacacacacacacacacacabababababababababababababababababababababababababacacacababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdsdsdsababababababababaa -aaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababacacacacacacacacacacacacacacababababababababababababababababacacacacacacacacacacacababababababababababababababababababababababababacacabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdsdsdsababababababababaa -aaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababacacacacacacacacacacacacacabababababababababababababababababababacacacacacacababacacacabababababababababababababababababababababababacacacabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdsdsdsababababababababaa -aaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababacacacacacacacacacacacacacabababababababababababababababababababababacacacacacacacababacacacacababababababababababababababababababababababacacababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdsdsdsababababababababaa -aaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababacacacacacacacacacacacacacacacacabababababababababababababababababababacacacacgoacacacabababacacacacababababababababababababababababababababacacacababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdsdsdsababababababababaa -aaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababacacacacacacacacacacacacacabababacacacabababababababababababababababababacacacacacabacacacababababacacacacacacababababababababababababababababacacacabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdsdsdsababababababababaa -aaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababacacacacacacacacacacacacacababababababababacacababababababababababababababababacacacacababacacacabababababacacacacacacacababababababababababababababacacacabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdsdsdsababababababababaa -aaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababacacacacacacacacacacacacababababababababababababacacababababababababababababababacacacacacababacacacababababababababacacacacacacacababababababababababacacacababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdsdsdsababababababababaa -aaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababacacacacacacacacacacacacacabababababababababababababababababababababababababababababacacacacabababacacacababababababababababacacacacacacacabacgoababababacacacabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdsdsdsababababababababaa -aaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababacacacacacacacacacacacacacababababababababababababababababababababababababababababababacacacacacabababacacacababababababababababababacacacacacacacacababababacacababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdsdsdsababababababababaa -aaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababacacacacacacacacacacacacacacabababababababababababababababababababababababababababababababacacacacacabababacacacabababababababababababababababacacacacacacacacacacabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdsdsdsababababababababaa -aaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababacacacacacacacacacacacacacacacababababababababababababababababababababababababababababababababacacacacababababacacacabababababababababababababababababacacgoacacacacacabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdsdsdsababababababababaa -aaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababacacacacacacacacacacacacacacabababababababababababababababababababababababababababababababababababacacacacabababacacacacababababababababababababababababababababacacacacacacacacababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdsdsdsababababababababaa -aaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababacacacacacacacacacacacacacacabababababababababababababababababababababababababababababababababababababacacacacabababacacacacabababababababababababababababababababababacacacacacacacacacacacababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdsdsdsababababababababaa -aaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababacacacacacacacacacacacacacabababababababababababababababababababababababababababababababababababababababacacacacabababacacacacacabababababababababababababababababacacabacacababababacacacacacacacacacacabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdsdsdsababababababababaa -aaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababacacacacacacacacacacacacabababababababababababababababababababababababababababababababababababababababababacacacacabababacacacacacababababababababababababababababababacacacacababababababababacacacacacacacacacababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdsdsdsababababababababaa -aaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababacacacacacacacacacacababababababababababababababababababababababababababababababababababababababababababababacacacacabababacacacacacabababababababababababababababababababacacacababababababababababababacacacacacacacacabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdsdsdsababababababababaa -aaababababababababababababababababababababababababababababababababababababababababababababababababababababababababacacacacacacacacacacacababababababababababababababababababababababababababababababababababababababababababababababacacacacabababacacacacacababababababababababababababababababacacacacacababababababababababababababacacacacacacacacababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdsdsdsababababababababaa -aaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababacacacacacacabababababababababababababababababababababababababababababababababababababababababababababababababababacacacacababacacacabababababababababababababababababababacacacacabacabababababababababababababababababacacacacacacacababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdsdsdsababababababababaa -aaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababacacacacabacacacacabababababababababababababababababababacacacababababababababababababababababababababababababacacacacacacabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdsdsdsababababababababaa -aaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababacacacacabacacacababababababababababababababababababababacacacabababababababababababababababababababababababababababacacacacacacababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdsdsdsabacababababababaa -aaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababacacacacabacacacababababababababababababababababababababacacababababababababababababababababababababababababababababababacacacacacacababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdsdsdsacacababababababaa -aaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababacacacacababacacabababababababababababababababababababacacacababababababababababababababababababababababababababababababababacacacacacacababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdsdsdsacabababababababaa -aaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababacacacacababacacabababababababababababababababababababacacabababababababababababababababababababababababababababababababababababacacacacacabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdsdsdsababababababababaa -aaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababacacacacacabacacababababababababababababababababababacacacabababababababababababababababababababababababababababababababababababababacacacacacabababababababababababababababababababababababababababababababababababababababababababababababababababababababababdsdsdsababababababababaa -aaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababacacacacabacacababababababababababababababababababacacacabababababababababababababababababababababababababababababababababababababababacacacacababababababababababababababababababababababababababababababababababababababababababababababababababababababababdsdsdsababababababababaa -aaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababacacacacabacacababababababababababababababababababacacababababababababababababababababababababababababababababababababababababababababababacacacacababababababababababababababababababababababababababababababababababababababababababababababababababababababdsdsdsababababababababaa -aaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababacacacacabacacabababababababababababababababababacacababababababababababababababababababababababababababababababababababababababababababababacacacacacababababababababababababababababababababababababababababababababababababababababababababababababababababdsdsdsababababababababaa -aaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababacacacacgoacacabababababababababababababababababacacabababababababababababababababababababababababababababababababababababababababababababababacacacacacacacabababababababababababababababababababababababababababababababababababababababababababababababababdsdsdsababababababababaa -aaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababacacacacacacacacabababababababababababababababacacababababababababababababababababababababababababababababababababababababababababababababababababacacacacacacabababababababababababababababababababababababababababababababababababababababababababababababdsdsdsababababababababaa -aaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababacacacacacacacacababababababababababababababacacacababababababababababababababababababababababababababababababababababababababababababababababababababacacacacacacabababababababababababababababababababababababababababababababababababababababababababababdsdsdsababababababababaa -aaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababacacacacacacacacababababababababababababababacacacababababababababababababababababababababababababababababababababababababababababababababababababababababacacacacacacabababababababababababababababababababababababababababababababababababababababababababdsdsdsababababababababaa -aaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababacacacacacacacababababababababababababababacacacababababababababababababababababababababababababababababababababababababababababababababababababababababababacacacacacacabababababababababababababababababababababababababababababababababababababababababdsdsdsababababababababaa -aaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababacacacacacacababababababababababababababacacabababababababababababababababababababababababababababababababababababababababababababababababababababababababababacacabacacababababababababababababababababababababababababababababababababababababababababdsdsdsababababababababaa -aaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababacacacacacababababababababababababababacacababababababababababababababababababababababababababababababababababababababababababababababababababababababababababacacabacacabababababababababababababababababababababababababababababababababababababacgrdsdsdsababababababababaa -adaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafigaeaeaeaeaeaeaeaeaeaeafafafafafigaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeigafafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafgLgLgLaeaeaeaeaeaeaeaead -adaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafaeaeaeaeaeaeaeafafafaeaeaeafafafaeaeaeafafafafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafgLgLgLgLaeaeaeaeaeaeaeaead -adaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafaeaeafafaeaeafafaeaeaeaeaeafafaeaeaeaeaeaeaeaeaeafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafgLgLgLgLaeaeaeaeaeaeaeaead -adaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafafafafaeaeaeaeaeaeaeaeaeafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafgLgLgLgLaeaeaeaeaeaeaeaead -adaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafafafaeaeaeaeaeaeaeaeaeaeafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafgLgLgLaeaeaeaeaeaeaeaead -adaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafafaeaeaeaeaeaeaeaeaeaeaeafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafgLgLgLaeaeaeaeaeaeaeaead -adaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafaeaeaeaeaeaeaeaeaeaeaeaeafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafafafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaegLgLgLaeaeaeaeaeaeaeaead -adaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafaeaeaeaeaeaeaeaeaeaeaeafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafafafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaegLgLgLaeaeaeaeaeaeaeaead -adaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafaeaeaeaeaeaeaeaeaeaeafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafafafafafafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaegLgLgLaeaeaeaeaeaeaeaead -adaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafaeaeaeaeaeaeaeaeaeaeafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafafafafafafafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaegLgLgLaeaeaeaeaeaeaeaead -adaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafafaeaeaeaeaeaeaeaeaeaeafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafafafafafafafafafafafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaegLgLgLaeaeaeaeaeaeaeaead -adaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafafafaeaeaeaeaeaeaeaeaeafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafafafafafafafafafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaegLgLgLaeaeaeaeaeaeaeaead -adaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafafafaeaeaeaeaeaeaeaeaeafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafafafafafafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaegLgLgLaeaeaeaeaeaeaeaead -adaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafafafafaeaeaeaeaeaeaeaeafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafafafafafafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaegLgLgLaeaeaeaeaeaeaeaead -adaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafafafaeaeaeaeaeaeaeafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafafafafafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaegLgLgLaeaeaeaeaeaeaeaead -adaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafafaeaeaeaeaeaeaeaeafagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafafafafafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaegLgLgLaeaeaeaeaeaeaeaead -adaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafaeafafaeaeaeaeaeaeaeafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafafafafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaegLgLgLaeaeaeaeaeaeaeaead -adaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafafifaeaeaeaeaeafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafafafafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaegLgLgLaeaeaeaeaeaeaeaead -adaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeifafafafafaeaeaeafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaegLgLgLaeaeaeaeaeaeaeaead -adaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafafafafafafafafafaeaeaeafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaegLgLgLaeaeaeaeaeaeaeaead -adaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafaeaeaeaeaeaeaeaeafafafafaeaeafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaegLgLgLaeaeaeaeaeaeaeaead -adaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafaeaeaeaeaeaeaeaeaeafafafafaeafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaegLgLgLaeaeaeaeaeaeaeaead -adaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafaeafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafaeaeaeaeaeaeaeaeaeaeafafafafafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaegLgLgLaeaeaeaeaeaeaeaead -adaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaegLgLgLaeaeaeaeaeaeaeaead -adaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafgLgLgLaeaeaeaeaeaeaeaead -adaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafifaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafgLgLgLafaeaeaeaeaeaeaead -adaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafafafafafafafafafafafaeaeaeaeafafafaeafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafgLgLgLafafaeaeaeaeaeaead -adaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafifaeaeaeaeafafafafafafafafafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafgLgLgLafafaeaeaeaeaeaead -adaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafaeaeaeaeaeaeafafafafafafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafaeaeaeaeaeaeaeaeaeaeaeafafafafaeaeaeafafaeaeafgLgLgLafafaeaeaeaeaeaead -adaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafaeaeaeaeaeaeaeaeaeafafafaeaeafafafafafaeaeaeaegLgLgLafafaeaeaeaeaeaead -adaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafaeaeaeaeaeaeaeaeaeafafaeaeaeaeaeaeafafaeaeaeaeaegLgLgLafaeaeaeaeaeaeaead -adaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafaeaeaeaeaeaeafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaegLgLgLaeaeaeaeaeaeaeaead -adaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafaeaeaeaeaeafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaegLgLgLaeaeaeaeaeaeaeaead -adaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafaeaeaeafafafaeafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaegLgLgLaeaeaeaeaeaeaeaead -adaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafaeafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaegLgLgLaeaeaeaeaeaeaeaead -adaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaegLgLgLaeaeaeaeaeaeaeaead -adaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaegLgLgLaeaeaeaeaeaeaeaead -adaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafifaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaegLgLgLafaeaeaeaeaeaeaead -adaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaegLgLgLafaeaeaeaeaeaeaead -adaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaegLgLgLaeaeaeaeaeaeaeaead -adaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaegLgLgLaeaeaeaeaeaeaeaead -adaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafgLgLgLaeaeaeaeaeaeaeaead -adaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafgLgLgLaeaeaeaeaeaeaeaead -adaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafgLgLgLaeaeaeaeaeaeaeaead -adaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafaeaeaeaeaeafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaegLgLgLaeaeaeaeaeaeaeaead -adaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafafafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaegLgLgLaeaeaeaeaeaeaeaead -adaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaegLgLgLaeaeaeaeaeaeaeaead -adaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaegLgLgLaeaeaeaeaeaeaeaead -adaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaegLgLgLaeaeaeaeaeaeaeaead -adaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaegLgLgLaeaeaeaeaeaeaeaead -adaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaegLgLgLaeaeaeaeaeaeaeaead -adaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaegLgLgLaeaeaeaeaeaeaeaead -adaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaegLgLgLaeaeaeaeaeaeaeaead -adaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafafafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaegLgLgLaeaeaeaeaeaeaeaead -adaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafafafafafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaegLgLgLaeaeaeaeaeaeaeaead -adaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafafafafafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaegLgLgLaeaeaeaeaeaeaeaead -adaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafafafafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaegLgLgLaeaeaeaeaeaeaeaead -adaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafafafafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaegLgLgLaeaeaeaeaeaeaeaead -adaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafafafafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafafafafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaegLgLgLaeaeaeaeaeaeaeaead -adaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafafafafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaegLgLgLaeaeaeaeaeaeaeaead -adaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafaeaeafafafafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaegLgLgLaeaeaeaeaeaeaeaead -adaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafaeaeaeafafafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaegLgLgLaeaeaeaeaeaeaeaead -adaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafaeaeaeaeaeaeafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaegLgLgLaeaeaeaeaeaeaeaead -adaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafaeaeaeaeaeaeafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaegLgLgLaeaeaeaeaeaeaeaead -adaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafaeaeaeaeaeafafafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaegLgLgLaeaeaeaeaeaeaeaead -adaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafaeaeaeaeaeafafafafafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaegLgLgLaeaeaeaeaeaeaeaead -adaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafaeaeaeaeafafafafafafafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafifaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaegLgLgLaeaeaeaeaeaeaeaead -adaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafaeaeaeaeafafafafafafafafafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaegLgLgLaeaeaeaeaeaeaeaead -adaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafaeaeafafafafafafafafafafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaegLgLgLaeaeaeaeaeaeaeaead -adaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafafafafafafafafafafafafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaegLgLgLaeaeaeaeaeaeaeaead -adaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafafafafafafafafafafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafafafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaegLgLgLaeaeaeaeaeaeaeaead -adaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafafafafafafafafafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafafafafafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaegLgLgLaeaeaeaeaeaeaeaead -adaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafafafafafafafafafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafafafafafafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaegLgLgLaeaeaeaeaeaeaeaead -adaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafafafafafafafafafafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafafafafafafafafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaegLgLgLaeaeaeaeaeaeaeaead -adaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafafafafafafafafafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafafafafafafafafafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaegLgLgLaeaeaeaeaeaeaeaead -adaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafafafafafafafafafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafafafafafafafafafafafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaegLgLgLaeaeaeaeaeaeaeaead -adaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafafafafafafafafafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafaeaeaeaeaeaeaeaeaeaeaeaeafafafafafafafafafafafafafafafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaegLgLgLaeaeaeaeaeaeaeaead -adaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafafafafafafafafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafifaeaeaeafafafafafafafafafafafafafafaeaeafafafafafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaegLgLgLaeaeaeaeaeaeaeaead -adaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafafafafafafafafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafafafafafafafafafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaegLgLgLaeaeaeaeaeaeaeaead -adaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafafafafafafafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafafafafafafafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaegLgLgLaeaeaeaeaeaeaeaead -adaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafafafafafafafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafaeaeaeaeafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafgLgLgLaeaeaeaeaeaeaeaead -adaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafafafafafafafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafgLgLgLaeaeaeaeaeaeaeaead -adaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafafafafafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeifafifaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafgLgLgLaeaeaeaeaeaeaeaead -adaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafafafafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafgLgLgLaeaeaeaeaeaeaeaead -adaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafgLgLgLaeaeaeaeaeaeaeaead -adaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafgLgLgLaeaeaeaeaeaeaeaead -adaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaegLgLgLaeaeaeaeaeaeaeaead -adaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaegLgLgLaeaeaeaeaeaeaeaead -adaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaegLgLgLaeaeaeaeaeaeaeaead -adaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafaeafifaeaeafafafafafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaegLgLgLaeaeaeaeaeaeaeaead -adaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafafafafafafafafafafafafafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafaeafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaegLgLgLaeaeaeaeaeaeaeaead -adaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafafafafafafaeaeaeaeaeafafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaegLgLgLaeaeaeaeaeaeaeaead -adaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafafifaeaeaeaeaeaeaeaeaeafafafafafafaeaeaeaeaeaeaeaeaeaeaeafifafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaegLgLgLaeaeaeaeaeaeaeaead -adaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafafafaeaeaeaeaeaeaeaeafafafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaegLgLgLaeaeaeaeaeaeaeaead -adaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafafafafafaeaeaeaeafafafafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaegLgLgLaeaeaeaeaeaeaeaead -adaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafaeaeaeaeaeaeaeaeaeaeaeaeafafafafafafafafafafafafafafafafifaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaegLgLgLaeaeaeaeaeaeaeaead -adaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafafaeaeaeaeaeaeaeaeaeaeafafafafafafafafafafafafafafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaegLgLgLaeaeaeaeaeaeaeaead -adaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafafaeaeaeaeaeaeaeaeaeaeahaiaiajajaiahafafafafafafafafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaegLgLgLaeaeaeaeaeaeaeaead -adaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafafaeaeaeaeafafafafafahakaiajalakahafafafafafafafafafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaegLgLgLaeaeaeaeaeaeaeaead -adaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafafaeaeaeafafafafafafahamanaoamamahafafafafafafafafafafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaegLgLgLafaeaeaeaeaeaeaead -adaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafaeaeaeapaqapapapaqarapasatauavawaxavavaxayayayayayafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaegLgLgLafaeaeaeaeaeaeaead -adaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafafaeapapazaAaBaCaDaEapaFaGaHavaIaJaKaLaMaNaOaPaQayayafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaegLgLgLafafaeaeaeaeaeaead -adaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafaeapaRaSaTaUaTaVaWapanaXamavaYaZbabbbcbdbebfbgbhayafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaegLgLgLafafaeaeaeaeaeaead -adaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafaeapbiaTbjbkblaTbmbnbobpbqbrbsbtbubububvbwbxbybzayafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaegLgLgLaeafaeaeaeaeaeaead -adaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafaeapbAaTbBbCbDbEbFbGbHbIbJbKbLbMbNbObNaNbPbQbRbSayafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaegLgLgLaeaeaeaeaeaeaeaead -adaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafaeapbTbUbVbWbXbYbZcacbcccdavcebMcfcgchaNayayayayayafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaegLgLgLaeaeaeaeaeaeaeaead -adaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafaeapapapapapapapapapcicjckavclcmcncncocpcqcrcsctcuafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaegLgLgLaeaeaeaeaeaeaeaead -adaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaecvdDdVdJeydDcvafafafaecAcBcCcDcEcFcGcHcIcJcKcLcMcNcOcPcQcRcScTcUcVcWcuafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaegLgLgLaeaeaeaeaeaeaeaead -adaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaegpimimimimimgqafafafaecAdadbdccEdddedfandgdhdiaxdjdkdkdldmdndodpdqdrcuafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaegLgLgLaeaeaeaeaeaeaeaead -adaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaegsimimimimimgtafafaeaecAdudvdwdxdydzdAamandBandCdGdEdFihdHdIcucucucucugMafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaegLgLgLaeaeaeaeaeaeaeaead -adaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaegsimimimimimgtafafafaecAdKdLdMdNdOdPdQcIdRdSdTaxdUhzdWdXdYdZeaebecedeegMafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaegLgLgLaeaeaeaeaeaeaeaead -adaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaegsirisirimitgtafafafeicAdNdNcAejekelemeneodSdTbKepbNbNeqereseteueveweegMafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaegLgLgLaeaeaeaeaeaeaeaead -adaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaegsimimimimiugtafafafidanezeAaneBeBeCeDeEeFdSdTaxeGeHeIeJeKeLeMeNeOePeegMafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaegLgLgLaeaeaeaeaeaeaeaead -adaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaegsirisirimiugtafafafideQeReSeTeUeVeWeXeYeZfafbfcfdfefffgfhfifjfjfjfjfjgMafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaegLgLgLaeaeaeaeaeaeaeaead -adaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaegsimimimimiugtafafafidamfkflamfmfnfofpfqfrfsftaxfudkdkfvfwfxfyfzfAfBfCafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaegLgLgLaeaeaeaeaeaeaeaead -adaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaegsirisirimimgtafafafeifDfDfDfDfEfFfGfHfDfIfJfKfLfMfNfOfPfQesfRfSfTfUfCafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaegLgLgLaeaeaeaeaeaeaeaead -adaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaegsimimimimimgtafafafaffDfVfWfXfYfZgagbgcgdgegdavgfggghgibNgjgkglgmgnfCafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaegLgLgLaeaeaeaeaeaeaeaead -adaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeiiimimiwixixikijilililgugvgwgwgxgygzgAgdgBgCgDgEgFgGgFgFgHgIgJgKgKgKgKafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafgLgLgLaeaeaeaeaeaeaeaead -adaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaecvizizcvizizcvinafafaffDgNgwgOgPgQgRgSgdgTgUgVgdgWgXgYgZhahbhchdhehfgKaeafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafgLgLgLaeaeaeaeaeaeaeaead -adaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeinafafaffDhggwgOhhhihjhkgdhlhmhngdhohphqhrhshthuhvhwhxgKaeafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafgLgLgLaeaeaeaeaeaeaeaead -adaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeinafafaffDhygwiohAhBhChDgdhEhFhGgdhHhIhJhKhLhMhLhdhNhOgKaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafgLgLgLaeaeaeaeaeaeaeaead -adaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeinafafaffDfDhPhQhRhShThUfDgEgEgEgJhVhWhXhYhZiaibhdicgKgKaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafgLgLgLaeaeaeaeaeaeaeaead -adaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeinafafafaefDfDfDfDfDfDfDfDaeaeaegJgJgFgJgJgFgJgJgKgKgKaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaegLgLgLaeaeaeaeaeaeaeaead -adaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeinafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaegLgLgLaeaeaeaeaeaeaeaead -adaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeinafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaegLgLgLaeaeaeaeaeaeaeaead -adaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeipafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaegLgLgLaeaeaeaeaeaeaeaead -adadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadieiAiAiAadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadiBiBiBadadadadadadadadad -"} -======= "aa" = (/turf/unsimulated/wall/planetary/sif,/area/surface/cave/unexplored/deep) "ab" = (/turf/simulated/mineral/sif,/area/surface/cave/unexplored/deep) "ac" = (/turf/simulated/mineral/floor/ignore_mapgen/sif,/area/surface/cave/explored/deep) @@ -1140,15 +439,6 @@ adadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadad "iz" = (/obj/effect/floor_decal/industrial/warning/dust,/obj/structure/ore_box,/turf/simulated/floor/tiled/asteroid_steel,/area/surface/outpost/mining_main/cave) "iA" = (/obj/effect/step_trigger/teleporter/mine/from_mining,/turf/simulated/mineral/floor/ignore_mapgen/sif,/area/surface/cave/explored/normal) "iB" = (/obj/effect/step_trigger/teleporter/mine/from_mining,/turf/simulated/floor/water{outdoors = 0},/area/surface/cave/explored/normal) -<<<<<<< HEAD -<<<<<<< HEAD ->>>>>>> ee162e9... June Map Adjustments (#6209) - -======= - -======= - ->>>>>>> d9076db... Xenoflora expansion take2 (#6592) (1,1,1) = {" aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacxcwcwcwcxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacyczczczaaaaaaaaaaaaaaaaaa aaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababcxcXcZcYcxababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababacdsdsdsababababababababaa @@ -1406,8 +696,3 @@ adaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeae adaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeipafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaegLgLgLaeaeaeaeaeaeaeaead adadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadieiAiAiAadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadiBiBiBadadadadadadadadad "} -<<<<<<< HEAD ->>>>>>> 63ff55b... Merge pull request #6293 from Cerebulon/xenoarchtweaks -======= - ->>>>>>> d9076db... Xenoflora expansion take2 (#6592) From c693bf558d4cd0cf757f601d03ddf00ccf15051e Mon Sep 17 00:00:00 2001 From: Heroman Date: Thu, 9 Jan 2020 08:30:42 +1000 Subject: [PATCH 65/65] Does virgo-side of xenoflora expansion --- code/modules/hydroponics/seed_storage_vr.dm | 4 ++-- code/modules/reagents/dispenser/dispenser_presets_vr.dm | 5 +++-- maps/tether/tether-01-surface1.dmm | 8 ++------ 3 files changed, 7 insertions(+), 10 deletions(-) diff --git a/code/modules/hydroponics/seed_storage_vr.dm b/code/modules/hydroponics/seed_storage_vr.dm index 77a885276c5..3cbb56f75ba 100644 --- a/code/modules/hydroponics/seed_storage_vr.dm +++ b/code/modules/hydroponics/seed_storage_vr.dm @@ -40,12 +40,12 @@ /obj/item/seeds/tomatoseed = 3, /obj/item/seeds/towermycelium = 3, /obj/item/seeds/vanilla = 3, + /obj/item/seeds/wabback = 2, /obj/item/seeds/watermelonseed = 3, /obj/item/seeds/wheatseed = 3, /obj/item/seeds/whitebeetseed = 3, /obj/item/seeds/shrinkshroom = 3, - /obj/item/seeds/megashroom = 3, - /obj/item/seeds/wabback = 2) + /obj/item/seeds/megashroom = 3) /obj/machinery/seed_storage/xenobotany name = "Xenobotany seed storage" diff --git a/code/modules/reagents/dispenser/dispenser_presets_vr.dm b/code/modules/reagents/dispenser/dispenser_presets_vr.dm index 9787dec9974..be95daa4386 100644 --- a/code/modules/reagents/dispenser/dispenser_presets_vr.dm +++ b/code/modules/reagents/dispenser/dispenser_presets_vr.dm @@ -1,7 +1,7 @@ /obj/machinery/chemical_dispenser/xenoflora name = "xenoflora chem dispenser" dispense_reagents = list( - "water", "sugar", "ethanol", "radium", "ammonia", "diethylamine", "plantbgone", "mutagen" + "water", "sugar", "ethanol", "radium", "ammonia", "diethylamine", "plantbgone", "mutagen", "calcium" ) /obj/machinery/chemical_dispenser/xenoflora/full @@ -13,5 +13,6 @@ /obj/item/weapon/reagent_containers/chem_disp_cartridge/ammonia, /obj/item/weapon/reagent_containers/chem_disp_cartridge/diethylamine, /obj/item/weapon/reagent_containers/chem_disp_cartridge/plantbgone, - /obj/item/weapon/reagent_containers/chem_disp_cartridge/mutagen + /obj/item/weapon/reagent_containers/chem_disp_cartridge/mutagen, + /obj/item/weapon/reagent_containers/chem_disp_cartridge/calcium ) \ No newline at end of file diff --git a/maps/tether/tether-01-surface1.dmm b/maps/tether/tether-01-surface1.dmm index 851c83cc579..f54b849a76f 100644 --- a/maps/tether/tether-01-surface1.dmm +++ b/maps/tether/tether-01-surface1.dmm @@ -14053,9 +14053,7 @@ /obj/machinery/camera/network/research{ dir = 4 }, -/obj/structure/closet/secure_closet/hydroponics{ - req_access = list(47) - }, +/obj/structure/closet/secure_closet/hydroponics/sci, /turf/simulated/floor/tiled, /area/rnd/xenobiology/xenoflora) "axG" = ( @@ -14562,9 +14560,7 @@ /obj/effect/floor_decal/corner/mauve/border{ dir = 8 }, -/obj/structure/closet/secure_closet/hydroponics{ - req_access = list(47) - }, +/obj/structure/closet/secure_closet/hydroponics/sci, /turf/simulated/floor/tiled, /area/rnd/xenobiology/xenoflora) "ayu" = (

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 diff --git a/icons/atmos/vent_scrubber.dmi b/icons/atmos/vent_scrubber.dmi index 6b365d36c004f6d750b13127f1a813575fcd336f..c8bdd41f879bdaeac881e28922855fb0963e80eb 100644 GIT binary patch literal 8053 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 delta 1266 zcmai!YgCd40ERz4uum~BEvt1g%ud>Brp{~?3TPHA{Vv*e>T|%t|qV{D32nLM(+^_w3-}gNK-t+!=^#q~wCQfV& z#Ra# zJPTuzgkxF0OoiUIV|DSmAPc+r0#&Fo?F(AkUj5K+iVoc z2Ss73vgty`+mg3C)jfN=Nw{8*6SqA)_R0MtsMWs%lm5m^ZE#Xvz-;$PRXahPz8mOK zKE?g!%9`WyD1XK~W=pcQ0__UH>JJl2SXsVN`AHfbRyXc+`N{OtbFg`m3gj_+c{MYV z!Ob*hao%Jk{LA~>V*}UO7jLninG7LUlcj2big7TG{3c(n^KZ+k8J)qLRM%W%k*!7H zanZ_UrpX(g#mNJO1Q^q*wTN0UzUjx`N_j~#(MiPe>N;a4V8!6Qm) zph+Gy?x)gG8mw(OFAotz=Zv=qQ{G^)fZd!sHPZFvnJ)U1p}=wJt^${Z1xj|sSNIMV zZ_>2wk=p?iq~UPR7u`wU@VfDVD*NN2WZv*~PzqlN;hC7}FVa1P`zA~>pV^A7hQ}L9 zA%#qxQ%-l-BPB!(&|m~O5#+Mu1jT8IA=cr{e(3BnGrp+)@-_; zK}cu5EZ+(?izRuO&*o~?4K0W|bSP+2{uo;nr2JduXMh=|0W-axiRp=n?&trkM`=U) z#r`wsZ&@NS02!n3@Qc%;f_o{uGZ3KIwC;9U7t9i&6%U$banki$hOMZHkm=P)RTSQn z5wmpv$!V~Ew4eS^kJ>DmH-r6R-d|Hk5*S38mHn_$;;UQ9Am*5w(Lyt`+Oa{qcN_FtgMkVP5(Q^6fYR+w>wid_S?nTQa8S%R7ZmVr z>bQFq&PlV^_843{xN--OtwOxRVgAF5^~WntecUzYgWzJhOld@40{U7)BQa+G;d^|a z^ZhbEb}~1P+gG+Kb3E^u>+V9&y0l?r3o%0}qj&^7Eq$#Y^M-ug_-Wtag=bIgC=q1A zDf+||{n0m-`D+C;N)2{LIh<&1>Pz7tSKze4Z+f5m`+ycdP!tO8Da&f|LA#j>ya~i{$0*hymFoR@GATr&c=Iazrk?5=VQ5cf-As4kD}GzptB{(sZELD(mWpDLVmJ0u Date: Sat, 4 Jan 2020 22:38:01 -0800 Subject: [PATCH 50/65] GameMaster Tuning (#6593) * Actually Game Master but I am an idiot. --- code/game/objects/structures/props/swarm.dm | 2 +- .../gamemaster/actions/swarmboarder.dm | 4 ++-- code/modules/gamemaster/game_master.dm | 4 ++++ code/modules/mob/holder.dm | 3 +++ .../mob/living/silicon/robot/drone/swarm.dm | 19 +++++++++++++++++-- .../silicon/robot/drone/swarm_abilities.dm | 2 +- .../living/silicon/robot/drone/swarm_items.dm | 2 +- code/modules/projectiles/guns/energy/stun.dm | 2 +- 8 files changed, 30 insertions(+), 8 deletions(-) diff --git a/code/game/objects/structures/props/swarm.dm b/code/game/objects/structures/props/swarm.dm index 8419f7086ab..181001036a8 100644 --- a/code/game/objects/structures/props/swarm.dm +++ b/code/game/objects/structures/props/swarm.dm @@ -98,7 +98,7 @@ active_beams |= Beam(S,icon='icons/effects/beam.dmi',icon_state="holo_beam",time=3 SECONDS,maxdistance=3,beam_type = /obj/effect/ebeam,beam_sleep_time=2) if(S.cell) - S.cell.give(rand(5, 30)) + S.cell.give(rand(30, 120)) . = TRUE diff --git a/code/modules/gamemaster/actions/swarmboarder.dm b/code/modules/gamemaster/actions/swarmboarder.dm index 8bc436b3a7a..8a257b9d4b5 100644 --- a/code/modules/gamemaster/actions/swarmboarder.dm +++ b/code/modules/gamemaster/actions/swarmboarder.dm @@ -1,7 +1,7 @@ /datum/gm_action/swarm_boarder name = "swarmer shell" departments = list(ROLE_EVERYONE, ROLE_SECURITY, ROLE_ENGINEERING) - chaotic = 30 + chaotic = 60 observers_used = TRUE var/area/target_area // Chosen target area var/area/target_turf // Chosen target turf in target_area @@ -67,7 +67,7 @@ new swarmertype(target_turf) /datum/gm_action/swarm_boarder/get_weight() - return -60 + (metric.count_people_in_department(ROLE_SECURITY) * 20 + metric.count_people_in_department(ROLE_SYNTHETIC) * 5 + metric.count_people_in_department(ROLE_EVERYONE) * 1) + return max(0, -60 + (metric.count_people_in_department(ROLE_SECURITY) * 10 + metric.count_people_in_department(ROLE_SYNTHETIC) * 5)) /datum/gm_action/swarm_boarder/announce() spawn(rand(5 MINUTES, 15 MINUTES)) diff --git a/code/modules/gamemaster/game_master.dm b/code/modules/gamemaster/game_master.dm index 61a53f1854c..e931cd878f2 100644 --- a/code/modules/gamemaster/game_master.dm +++ b/code/modules/gamemaster/game_master.dm @@ -28,6 +28,7 @@ config_setup_delay = FALSE if(config.enable_game_master) suspended = FALSE + next_action = world.time + rand(15 MINUTES, 25 MINUTES) else sleep(30 SECONDS) @@ -56,6 +57,9 @@ return FALSE if(ignore_time_restrictions) return TRUE + if(world.time < next_action) // Sanity. + log_debug("Game Master unable to start event: Time until next action is approximately [round((next_action - world.time) / (1 MINUTE))] minute(s)") + return FALSE // Last minute antagging is bad for humans to do, so the GM will respect the start and end of the round. var/mills = round_duration_in_ticks var/mins = round((mills % 36000) / 600) diff --git a/code/modules/mob/holder.dm b/code/modules/mob/holder.dm index dfa6182b5b8..e22ff8b4054 100644 --- a/code/modules/mob/holder.dm +++ b/code/modules/mob/holder.dm @@ -95,6 +95,9 @@ var/list/holder_mob_icon_cache = list() /obj/item/weapon/holder/drone origin_tech = list(TECH_MAGNET = 3, TECH_ENGINEERING = 5) +/obj/item/weapon/holder/drone/swarm + origin_tech = list(TECH_MAGNET = 6, TECH_ENGINEERING = 7, TECH_PRECURSOR = 2, TECH_ARCANE = 1) + /obj/item/weapon/holder/pai origin_tech = list(TECH_DATA = 2) diff --git a/code/modules/mob/living/silicon/robot/drone/swarm.dm b/code/modules/mob/living/silicon/robot/drone/swarm.dm index f48993caa28..3ac3f4574e3 100644 --- a/code/modules/mob/living/silicon/robot/drone/swarm.dm +++ b/code/modules/mob/living/silicon/robot/drone/swarm.dm @@ -3,9 +3,10 @@ real_name = "drone" icon = 'icons/mob/swarmbot.dmi' icon_state = "swarmer" + item_state = "repairbot" faction = "swarmer" - maxHealth = 75 - health = 75 + maxHealth = 35 + health = 35 cell_emp_mult = 0.5 universal_speak = 0 universal_understand = 1 @@ -26,6 +27,8 @@ mob_always_swap = 1 + speed = 3 + softfall = TRUE mob_size = MOB_LARGE @@ -46,6 +49,8 @@ var/spell_setup = list( /spell/aoe_turf/conjure/swarmer, /spell/aoe_turf/conjure/forcewall/swarm, + /spell/aoe_turf/conjure/zeropointwell, + /spell/aoe_turf/conjure/zeropointbarricade, /spell/aoe_turf/blink/swarm, /spell/aoe_turf/conjure/swarmer/gunner, /spell/aoe_turf/conjure/swarmer/melee @@ -71,6 +76,11 @@ icon_state = "swarmer_ranged" faction = "swarmer" + maxHealth = 50 + health = 50 + + speed = 4 + law_type = /datum/ai_laws/swarm_drone/soldier module_type = /obj/item/weapon/robot_module/drone/swarm/ranged @@ -87,6 +97,11 @@ icon_state = "swarmer_melee" faction = "swarmer" + maxHealth = 70 + health = 70 + + speed = 2 + law_type = /datum/ai_laws/swarm_drone/soldier module_type = /obj/item/weapon/robot_module/drone/swarm/melee diff --git a/code/modules/mob/living/silicon/robot/drone/swarm_abilities.dm b/code/modules/mob/living/silicon/robot/drone/swarm_abilities.dm index 62a54e9ecdf..983a05a34ac 100644 --- a/code/modules/mob/living/silicon/robot/drone/swarm_abilities.dm +++ b/code/modules/mob/living/silicon/robot/drone/swarm_abilities.dm @@ -4,7 +4,7 @@ desc = "This ability constructs a standard swarmer shell that may activate at some point." school = "conjuration" - charge_max = 120 SECONDS + charge_max = 5 MINUTES spell_flags = 0 invocation = "none" invocation_type = SpI_NONE diff --git a/code/modules/mob/living/silicon/robot/drone/swarm_items.dm b/code/modules/mob/living/silicon/robot/drone/swarm_items.dm index 74abd99ca5a..f739285078c 100644 --- a/code/modules/mob/living/silicon/robot/drone/swarm_items.dm +++ b/code/modules/mob/living/silicon/robot/drone/swarm_items.dm @@ -130,7 +130,7 @@ /obj/effect/temporary_effect/pulse/disintegrate/on_pulse() var/turf/T = get_turf(src) if(istype(T,/turf/simulated/wall)) - explosion(get_turf(src), -1, -1, 1, 3, adminlog = 0) + T.take_damage(rand(20, 50)) else qdel(src) diff --git a/code/modules/projectiles/guns/energy/stun.dm b/code/modules/projectiles/guns/energy/stun.dm index e4293300420..df90a8ac126 100644 --- a/code/modules/projectiles/guns/energy/stun.dm +++ b/code/modules/projectiles/guns/energy/stun.dm @@ -26,7 +26,7 @@ name = "disabler" desc = "An archaic device which attacks the target's nervous-system or control circuits." projectile_type = /obj/item/projectile/beam/stun/disabler - charge_cost = 200 + charge_cost = 800 recharge_time = 0.5 SECONDS /obj/item/weapon/gun/energy/stunrevolver From e05fdf6258bc6583b95b226c911fe956aee629dd Mon Sep 17 00:00:00 2001 From: Heroman Date: Mon, 6 Jan 2020 08:37:27 +1000 Subject: [PATCH 52/65] Fixes clamp issues --- code/game/objects/items/weapons/tanks/tanks.dm | 2 +- code/modules/mob/living/carbon/human/human_movement.dm | 8 ++++---- code/modules/mob/mob.dm | 4 ++-- code/modules/mob/mob_grab_specials.dm | 2 +- 4 files changed, 8 insertions(+), 8 deletions(-) diff --git a/code/game/objects/items/weapons/tanks/tanks.dm b/code/game/objects/items/weapons/tanks/tanks.dm index fb7a9accd4a..a2113aab636 100644 --- a/code/game/objects/items/weapons/tanks/tanks.dm +++ b/code/game/objects/items/weapons/tanks/tanks.dm @@ -502,7 +502,7 @@ var/list/global/tank_gauge_cache = list() var/release_ratio = 0.002 if(tank_pressure) - release_ratio = CLAMP(0.002, sqrt(max(tank_pressure-env_pressure,0)/tank_pressure),1) + release_ratio = CLAMP(sqrt(max(tank_pressure-env_pressure,0)/tank_pressure), 0.002, 1) var/datum/gas_mixture/leaked_gas = air_contents.remove_ratio(release_ratio) //dynamic air release based on ambient pressure diff --git a/code/modules/mob/living/carbon/human/human_movement.dm b/code/modules/mob/living/carbon/human/human_movement.dm index 4bb2770175e..9f57be114b3 100644 --- a/code/modules/mob/living/carbon/human/human_movement.dm +++ b/code/modules/mob/living/carbon/human/human_movement.dm @@ -141,20 +141,20 @@ var/turf_move_cost = T.movement_cost if(istype(T, /turf/simulated/floor/water)) if(species.water_movement) - turf_move_cost = CLAMP(HUMAN_LOWEST_SLOWDOWN, turf_move_cost + species.water_movement, 15) + turf_move_cost = CLAMP(turf_move_cost + species.water_movement, HUMAN_LOWEST_SLOWDOWN, 15) if(shoes) var/obj/item/clothing/shoes/feet = shoes if(feet.water_speed) - turf_move_cost = CLAMP(HUMAN_LOWEST_SLOWDOWN, turf_move_cost + feet.water_speed, 15) + turf_move_cost = CLAMP(turf_move_cost + feet.water_speed, HUMAN_LOWEST_SLOWDOWN, 15) . += turf_move_cost if(istype(T, /turf/simulated/floor/outdoors/snow)) if(species.snow_movement) - turf_move_cost = CLAMP(HUMAN_LOWEST_SLOWDOWN, turf_move_cost + species.snow_movement, 15) + turf_move_cost = CLAMP(turf_move_cost + species.snow_movement, HUMAN_LOWEST_SLOWDOWN, 15) if(shoes) var/obj/item/clothing/shoes/feet = shoes if(feet.water_speed) - turf_move_cost = CLAMP(HUMAN_LOWEST_SLOWDOWN, turf_move_cost + feet.snow_speed, 15) + turf_move_cost = CLAMP(turf_move_cost + feet.snow_speed, HUMAN_LOWEST_SLOWDOWN, 15) . += turf_move_cost // Wind makes it easier or harder to move, depending on if you're with or against the wind. diff --git a/code/modules/mob/mob.dm b/code/modules/mob/mob.dm index 271449a46d9..42ace07cfaf 100644 --- a/code/modules/mob/mob.dm +++ b/code/modules/mob/mob.dm @@ -902,10 +902,10 @@ return /mob/proc/AdjustLosebreath(amount) - losebreath = CLAMP(0, losebreath + amount, 25) + losebreath = CLAMP(losebreath + amount, 0, 25) /mob/proc/SetLosebreath(amount) - losebreath = CLAMP(0, amount, 25) + losebreath = CLAMP(amount, 0, 25) /mob/proc/get_species() return "" diff --git a/code/modules/mob/mob_grab_specials.dm b/code/modules/mob/mob_grab_specials.dm index a3e4c146603..f5b997c73b3 100644 --- a/code/modules/mob/mob_grab_specials.dm +++ b/code/modules/mob/mob_grab_specials.dm @@ -61,7 +61,7 @@ target << "You feel extreme pain!" var/max_halloss = round(target.species.total_health * 0.8) //up to 80% of passing out - affecting.adjustHalLoss(CLAMP(0, max_halloss - affecting.halloss, 30)) + affecting.adjustHalLoss(CLAMP(max_halloss - affecting.halloss, 0, 30)) /obj/item/weapon/grab/proc/attack_eye(mob/living/carbon/human/target, mob/living/carbon/human/attacker) if(!istype(attacker)) From 2a594a23b0a2565180cc2f859e32f48d52a85e6b Mon Sep 17 00:00:00 2001 From: Atermonera Date: Sun, 5 Jan 2020 15:08:05 -0800 Subject: [PATCH 53/65] last changelog of the year (#6594) --- html/changelog.html | 19 +++++++++ html/changelogs/.all_changelog.yml | 17 ++++++++ html/changelogs/Cerebulon - Coffee Shop.yml | 40 ------------------- .../TheFurryFeline - Bulbs_Recycling.yml | 36 ----------------- .../TheFurryFeline - Print_Da_Sprayers.yml | 36 ----------------- html/changelogs/atermonera - rad_buff.yml | 4 -- 6 files changed, 36 insertions(+), 116 deletions(-) delete mode 100644 html/changelogs/Cerebulon - Coffee Shop.yml delete mode 100644 html/changelogs/TheFurryFeline - Bulbs_Recycling.yml delete mode 100644 html/changelogs/TheFurryFeline - Print_Da_Sprayers.yml delete mode 100644 html/changelogs/atermonera - rad_buff.yml diff --git a/html/changelog.html b/html/changelog.html index f0d7aa83e05..e40bd402647 100644 --- a/html/changelog.html +++ b/html/changelog.html @@ -53,6 +53,25 @@ -->