diff --git a/code/modules/mob/holder.dm b/code/modules/mob/holder.dm index e1a63b691e2d..1e1ba35a654f 100644 --- a/code/modules/mob/holder.dm +++ b/code/modules/mob/holder.dm @@ -190,3 +190,30 @@ name = "Ikit" desc = "An albino rat with a tiny collar around it's neck, it must belong to someone. Hope it doesn't have some sort of genetically engineered disease or something..." icon_state = "rat_white" + +// Frog + +/obj/item/holder/frog + name = "frog" + desc = "A small amphibian." + icon = 'icons/mob/animal.dmi' + icon_state = "frog_green" + item_state = "frog_green" + item_state_slots = list(WEAR_HEAD = "frog_green") + w_class = SIZE_TINY + flags_equip_slot = SLOT_EAR|SLOT_HEAD + +/obj/item/holder/frog/green + icon_state = "frog_green" + item_state = "frog_green" + item_state_slots = list(WEAR_HEAD = "frog_green") + +/obj/item/holder/frog/blue + icon_state = "frog_blue" + item_state = "frog_blue" + item_state_slots = list(WEAR_HEAD = "frog_blue") + +/obj/item/holder/frog/brown + icon_state = "frog_brown" + item_state = "frog_brown" + item_state_slots = list(WEAR_HEAD = "frog_brown") diff --git a/code/modules/mob/living/simple_animal/bat.dm b/code/modules/mob/living/simple_animal/bat.dm index ccb4b48991cd..46a2bb23244d 100644 --- a/code/modules/mob/living/simple_animal/bat.dm +++ b/code/modules/mob/living/simple_animal/bat.dm @@ -9,6 +9,8 @@ speak = list("screech") speak_emote = list("screeches") emote_hear = list("screeches") + min_turns_per_move = 1 + max_turns_per_move = 4 /mob/living/simple_animal/small/bat/Life(delta_time) . = ..() diff --git a/code/modules/mob/living/simple_animal/friendly/bunny.dm b/code/modules/mob/living/simple_animal/friendly/bunny.dm index 3948326b9a44..7fd7338af54a 100644 --- a/code/modules/mob/living/simple_animal/friendly/bunny.dm +++ b/code/modules/mob/living/simple_animal/friendly/bunny.dm @@ -8,7 +8,8 @@ emote_hear = list("purrs.", "hums.", "squeaks.") emote_see = list("flaps their ears.", "sniffs.") speak_chance = 1 - turns_per_move = 5 + min_turns_per_move = 1 + max_turns_per_move = 3 meat_type = /obj/item/reagent_container/food/snacks/meat response_help = "pets" response_disarm = "gently pushes aside" diff --git a/code/modules/mob/living/simple_animal/friendly/cat.dm b/code/modules/mob/living/simple_animal/friendly/cat.dm index 310cce5040cd..061ed8779bda 100644 --- a/code/modules/mob/living/simple_animal/friendly/cat.dm +++ b/code/modules/mob/living/simple_animal/friendly/cat.dm @@ -11,7 +11,8 @@ emote_hear = list("meows.","mews.", "mrrps.") emote_see = list("shakes their head.", "shivers.", "licks their paw.") speak_chance = 1 - turns_per_move = 5 + min_turns_per_move = 4 + max_turns_per_move = 10 meat_type = /obj/item/reagent_container/food/snacks/meat response_help = "pets" response_disarm = "gently pushes aside" diff --git a/code/modules/mob/living/simple_animal/friendly/corgi.dm b/code/modules/mob/living/simple_animal/friendly/corgi.dm index d96b9c022012..f43d2e6f0c90 100644 --- a/code/modules/mob/living/simple_animal/friendly/corgi.dm +++ b/code/modules/mob/living/simple_animal/friendly/corgi.dm @@ -11,7 +11,8 @@ emote_hear = list("barks.", "woofs.", "yaps.", "pants.") emote_see = list("shakes its head.", "shivers.") speak_chance = 1 - turns_per_move = 10 + min_turns_per_move = 2 + max_turns_per_move = 6 holder_type = /obj/item/holder/corgi meat_type = /obj/item/reagent_container/food/snacks/meat/corgi meat_amount = 3 diff --git a/code/modules/mob/living/simple_animal/friendly/crab.dm b/code/modules/mob/living/simple_animal/friendly/crab.dm index 5ec48216068b..750809dda7ea 100644 --- a/code/modules/mob/living/simple_animal/friendly/crab.dm +++ b/code/modules/mob/living/simple_animal/friendly/crab.dm @@ -10,7 +10,8 @@ emote_hear = list("clicks.") emote_see = list("clacks.") speak_chance = 1 - turns_per_move = 5 + min_turns_per_move = 6 + max_turns_per_move = 12 meat_type = /obj/item/reagent_container/food/snacks/meat response_help = "pets the" response_disarm = "gently pushes aside the" diff --git a/code/modules/mob/living/simple_animal/friendly/farm_animals.dm b/code/modules/mob/living/simple_animal/friendly/farm_animals.dm index 4f5512b08124..56d576c9944f 100644 --- a/code/modules/mob/living/simple_animal/friendly/farm_animals.dm +++ b/code/modules/mob/living/simple_animal/friendly/farm_animals.dm @@ -10,7 +10,8 @@ emote_hear = list("bleats.") emote_see = list("shakes its head.", "wiggles its tail.", "stamps a foot.", "glares around.") speak_chance = 1 - turns_per_move = 5 + min_turns_per_move = 4 + max_turns_per_move = 10 see_in_dark = 6 meat_type = /obj/item/reagent_container/food/snacks/meat meat_amount = 4 @@ -80,7 +81,8 @@ emote_hear = list("moos.") emote_see = list("shakes its head.", "flicks its ear", "swishes its tail.", "licks at its side.") speak_chance = 1 - turns_per_move = 5 + min_turns_per_move = 10 + max_turns_per_move = 18 see_in_dark = 6 meat_type = /obj/item/reagent_container/food/snacks/meat meat_amount = 6 @@ -158,7 +160,8 @@ emote_hear = list("cheeps.") emote_see = list("pecks at the ground.","flaps its tiny wings.", "scratches around with its foot, looking for scraps.") speak_chance = 2 - turns_per_move = 2 + min_turns_per_move = 1 + max_turns_per_move = 4 meat_type = /obj/item/reagent_container/food/snacks/meat meat_amount = 1 response_help = "pets the" @@ -198,7 +201,8 @@ GLOBAL_VAR_INIT(chicken_count, 0) emote_hear = list("clucks.") emote_see = list("pecks at the ground.","flaps its wings viciously.", "scratches around with its foot, looking for scraps.") speak_chance = 2 - turns_per_move = 3 + min_turns_per_move = 2 + max_turns_per_move = 6 meat_type = /obj/item/reagent_container/food/snacks/meat meat_amount = 2 response_help = "pets the" diff --git a/code/modules/mob/living/simple_animal/friendly/frog.dm b/code/modules/mob/living/simple_animal/friendly/frog.dm new file mode 100644 index 000000000000..9e255c2d8f4d --- /dev/null +++ b/code/modules/mob/living/simple_animal/friendly/frog.dm @@ -0,0 +1,93 @@ +/mob/living/simple_animal/small/frog + name = "frog" + real_name = "frog" + desc = "A small amphibian." + + holder_type = /obj/item/holder/frog + + icon_state = "frog_green" + icon_living = "frog_green" + icon_dead = "frog_green_dead" + + speak = list("Ribbit!","Croak!","Rrrrk!","Bworp!") + speak_emote = list("croaks", "ribbits", "warbles") + emote_hear = list("croaks softly.", "lets out a wet ribbit.", "gurgles.") + emote_see = list("blinks slowly.", "puffs its throat.", "sits very still.") + + speak_chance = 1 + min_turns_per_move = 2 + max_turns_per_move = 6 + + see_in_dark = 6 + + response_help = "pets" + response_disarm = "pushes aside" + response_harm = "stomps" + + var/croak_counter = 0 + +/mob/living/simple_animal/small/frog/Life(delta_time) + if(stat == DEAD) + return ..() + + if(isturf(loc)) + if(++croak_counter >= rand(10, 20)) + croak_counter = 0 + switch(rand(1, 5)) + if(1) + playsound(loc, 'sound/effects/frog_1.ogg', 35, 1) + if(2) + playsound(loc, 'sound/effects/frog_2.ogg', 35, 1) + if(3) + playsound(loc, 'sound/effects/frog_3.ogg', 35, 1) + if(4) + playsound(loc, 'sound/effects/frog_4.ogg', 35, 1) + if(5) + playsound(loc, 'sound/effects/frog_5.ogg', 35, 1) + + return ..() + +/mob/living/simple_animal/small/frog/MouseDrop(atom/over_object) + if(!CAN_PICKUP(usr, src)) + return ..() + var/mob/living/carbon/H = over_object + if(!istype(H) || !Adjacent(H) || H != usr) + return ..() + + if(H.a_intent == INTENT_HELP) + get_scooped(H) + return + else + return ..() + +/* + * frog types + */ + +/mob/living/simple_animal/small/frog/blue + icon_state = "frog_blue" + holder_type = /obj/item/holder/frog/blue + +/mob/living/simple_animal/small/frog/brown + icon_state = "frog_brown" + holder_type = /obj/item/holder/frog/brown + +/mob/living/simple_animal/small/frog/random/Initialize() + . = ..() + + switch(pick(1,2,3)) + if(1) + icon_state = "frog_green" + icon_living = "frog_green" + icon_dead = "frog_green_dead" + holder_type = /obj/item/holder/frog/green + if(2) + icon_state = "frog_blue" + icon_living = "frog_blue" + icon_dead = "frog_blue_dead" + holder_type = /obj/item/holder/frog/blue + if(3) + icon_state = "frog_brown" + icon_living = "frog_brown" + icon_dead = "frog_brown_dead" + holder_type = /obj/item/holder/frog/brown diff --git a/code/modules/mob/living/simple_animal/friendly/lizard.dm b/code/modules/mob/living/simple_animal/friendly/lizard.dm index 95f1b44c8be5..858e0ac940aa 100644 --- a/code/modules/mob/living/simple_animal/friendly/lizard.dm +++ b/code/modules/mob/living/simple_animal/friendly/lizard.dm @@ -18,3 +18,5 @@ response_harm = "stomps on" black_market_value = 50 dead_black_market_value = 0 + min_turns_per_move = 5 + max_turns_per_move = 10 diff --git a/code/modules/mob/living/simple_animal/friendly/mouse.dm b/code/modules/mob/living/simple_animal/friendly/mouse.dm index 7457233cb216..1b2c0fe2015d 100644 --- a/code/modules/mob/living/simple_animal/friendly/mouse.dm +++ b/code/modules/mob/living/simple_animal/friendly/mouse.dm @@ -11,7 +11,8 @@ emote_see = list("runs in a circle.", "shakes.", "scritches at something.") mob_size = MOB_SIZE_SMALL speak_chance = 1 - turns_per_move = 5 + min_turns_per_move = 1 + max_turns_per_move = 3 see_in_dark = 6 maxHealth = 5 health = 5 diff --git a/code/modules/mob/living/simple_animal/friendly/rat.dm b/code/modules/mob/living/simple_animal/friendly/rat.dm index 7b8a7974e09e..b6727add366f 100644 --- a/code/modules/mob/living/simple_animal/friendly/rat.dm +++ b/code/modules/mob/living/simple_animal/friendly/rat.dm @@ -9,6 +9,8 @@ health = 10 holder_type = /obj/item/holder/rat icon_base = "rat" + min_turns_per_move = 2 + max_turns_per_move = 5 /* * Rat types diff --git a/code/modules/mob/living/simple_animal/hostile/retaliate/bortrough.dm b/code/modules/mob/living/simple_animal/hostile/retaliate/bortrough.dm index 0c0e467182a4..b50c92f0e717 100644 --- a/code/modules/mob/living/simple_animal/hostile/retaliate/bortrough.dm +++ b/code/modules/mob/living/simple_animal/hostile/retaliate/bortrough.dm @@ -4,6 +4,7 @@ /mob/living/simple_animal/hostile/retaliate/giant_lizard/bortrough name = "Bortrough" + desc = "A large, dangerous animal covered in thick skin. Its beady eyes lazily look in your direction. Best to leave this one alone." icon = 'icons/mob/bortrough.dmi' icon_state = "Bortrough Running" icon_living = "Bortrough Running" diff --git a/code/modules/mob/living/simple_animal/parrot.dm b/code/modules/mob/living/simple_animal/parrot.dm index d1ab958a36cf..0a14aaa25abe 100644 --- a/code/modules/mob/living/simple_animal/parrot.dm +++ b/code/modules/mob/living/simple_animal/parrot.dm @@ -40,7 +40,8 @@ emote_see = list("flutters its wings.", "clacks its beak.", "preens its feathers.", "pins its eyes.") speak_chance = 1//1% (1 in 100) chance every tick; So about once per 150 seconds, assuming an average tick is 1.5s - turns_per_move = 5 + min_turns_per_move = 2 + max_turns_per_move = 6 meat_type = /obj/item/reagent_container/food/snacks/cracker response_help = "pets the" diff --git a/code/modules/mob/living/simple_animal/simple_animal.dm b/code/modules/mob/living/simple_animal/simple_animal.dm index 4b9b3909426a..2f04ce1d846e 100644 --- a/code/modules/mob/living/simple_animal/simple_animal.dm +++ b/code/modules/mob/living/simple_animal/simple_animal.dm @@ -33,6 +33,10 @@ ///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/emote_see = list() + ///How many ticks before the animal moves. Can be overridden. + var/min_turns_per_move = 1 + var/max_turns_per_move = 1 + var/turns_per_move = 1 var/turns_since_move = 0 universal_speak = FALSE //No, just no. @@ -80,6 +84,10 @@ . = ..() SSmob.living_misc_mobs += src + // Randomize each simple mobs movement timer + turns_per_move = rand(min_turns_per_move, max_turns_per_move) + turns_since_move = rand(0, turns_per_move) + /mob/living/simple_animal/Destroy() SSmob.living_misc_mobs -= src return ..() @@ -190,6 +198,7 @@ Move(get_step(src, move_dir )) setDir(move_dir) turns_since_move = 0 + turns_per_move = rand(min_turns_per_move, max_turns_per_move) //Speaking if(!client && speak_chance) diff --git a/code/modules/mob/living/simple_animal/slug.dm b/code/modules/mob/living/simple_animal/slug.dm index e01e8a579d69..16d37db8924e 100644 --- a/code/modules/mob/living/simple_animal/slug.dm +++ b/code/modules/mob/living/simple_animal/slug.dm @@ -14,7 +14,8 @@ response_disarm = "shoos" response_harm = "stomps on" speak_chance = 1 - turns_per_move = 5 + min_turns_per_move = 15 + max_turns_per_move = 30 see_in_dark = 6 maxHealth = 5 health = 5 diff --git a/colonialmarines.dme b/colonialmarines.dme index 3267ba19d393..baef48c46685 100644 --- a/colonialmarines.dme +++ b/colonialmarines.dme @@ -2319,6 +2319,7 @@ #include "code\modules\mob\living\simple_animal\friendly\corgi.dm" #include "code\modules\mob\living\simple_animal\friendly\crab.dm" #include "code\modules\mob\living\simple_animal\friendly\farm_animals.dm" +#include "code\modules\mob\living\simple_animal\friendly\frog.dm" #include "code\modules\mob\living\simple_animal\friendly\lizard.dm" #include "code\modules\mob\living\simple_animal\friendly\mouse.dm" #include "code\modules\mob\living\simple_animal\friendly\rat.dm" diff --git a/icons/mob/animal.dmi b/icons/mob/animal.dmi index 54698c39b7a5..ab828479a7c5 100644 Binary files a/icons/mob/animal.dmi and b/icons/mob/animal.dmi differ diff --git a/icons/mob/humans/onmob/clothing/critters_shoulder.dmi b/icons/mob/humans/onmob/clothing/critters_shoulder.dmi index 4132bdee0e6f..51d1d1a3a63d 100644 Binary files a/icons/mob/humans/onmob/clothing/critters_shoulder.dmi and b/icons/mob/humans/onmob/clothing/critters_shoulder.dmi differ diff --git a/icons/mob/humans/onmob/clothing/head/critters.dmi b/icons/mob/humans/onmob/clothing/head/critters.dmi index c2f5dc659499..ee64d4cf9098 100644 Binary files a/icons/mob/humans/onmob/clothing/head/critters.dmi and b/icons/mob/humans/onmob/clothing/head/critters.dmi differ diff --git a/icons/mob/humans/onmob/inhands/items/critters_lefthand.dmi b/icons/mob/humans/onmob/inhands/items/critters_lefthand.dmi index b511963684bd..1868fd5e3a33 100644 Binary files a/icons/mob/humans/onmob/inhands/items/critters_lefthand.dmi and b/icons/mob/humans/onmob/inhands/items/critters_lefthand.dmi differ diff --git a/icons/mob/humans/onmob/inhands/items/critters_righthand.dmi b/icons/mob/humans/onmob/inhands/items/critters_righthand.dmi index 9051b278fdcd..40f0193934b3 100644 Binary files a/icons/mob/humans/onmob/inhands/items/critters_righthand.dmi and b/icons/mob/humans/onmob/inhands/items/critters_righthand.dmi differ diff --git a/maps/map_files/Sekhmet_Swamp/Sekhmet_Swamp.dmm b/maps/map_files/Sekhmet_Swamp/Sekhmet_Swamp.dmm index 9c779398d82a..3cc7c997cfa1 100644 --- a/maps/map_files/Sekhmet_Swamp/Sekhmet_Swamp.dmm +++ b/maps/map_files/Sekhmet_Swamp/Sekhmet_Swamp.dmm @@ -2566,14 +2566,14 @@ /turf/open/auto_turf/swamp_dirt/layer1, /area/sekhmet/outside/swamp) "ahL" = ( -/obj/structure/machinery/door/airlock/upp/generic/solid/autoname{ - needs_power = 0; - name = "\improper Bolted Airlock"; +/obj/structure/machinery/door/airlock/upp/generic/solid{ + dir = 1; emp_proof = 1; explo_proof = 1; + name = "\improper Bolted Airlock"; + needs_power = 0; unacidable = 1; - unslashable = 1; - dir = 2 + unslashable = 1 }, /turf/open/floor/plating/plating_catwalk/strata, /area/sekhmet/int_reg/small_power) @@ -3423,6 +3423,10 @@ }, /turf/open/auto_turf/swamp_grass/layer1, /area/sekhmet/outside/swamp) +"apY" = ( +/mob/living/simple_animal/small/frog/random, +/turf/open/gm/dirt/swamp_dirt/variant_2, +/area/sekhmet/outside/swamp) "aqa" = ( /obj/structure/machinery/light/small{ dir = 4 @@ -3570,10 +3574,6 @@ color = "#838a88"; dir = 4 }, -/obj/structure/barricade/handrail/wire{ - dir = 1; - pixel_y = 12 - }, /obj/structure/barricade/handrail/wire, /obj/structure/machinery/light{ light_power = 0.5; @@ -4257,6 +4257,7 @@ pixel_x = 9; pixel_y = -7 }, +/mob/living/simple_animal/small/frog/random, /turf/open/gm/coast/dirt/swampbeachcorner/north_west, /area/sekhmet/outside/swamp) "aJP" = ( @@ -5113,6 +5114,7 @@ pixel_x = 16; pixel_y = -1 }, +/mob/living/simple_animal/small/frog/random, /turf/open/gm/coast/dirt/swampbeachcorner/north_west, /area/sekhmet/outside/swamp) "bjL" = ( @@ -5136,14 +5138,14 @@ /turf/open/gm/coast/dirt/swampbeachcorner2/north_east, /area/sekhmet/outside/swamp) "bkb" = ( -/obj/structure/machinery/door/airlock/upp/generic/solid/autoname{ - needs_power = 0; - name = "\improper Bolted Airlock"; +/obj/structure/machinery/door/airlock/upp/generic/solid{ + dir = 1; emp_proof = 1; explo_proof = 1; + name = "\improper Bolted Airlock"; + needs_power = 0; unacidable = 1; - unslashable = 1; - dir = 2 + unslashable = 1 }, /turf/open/floor/plating/plating_catwalk/strata, /area/sekhmet/outside/swamp) @@ -5804,6 +5806,20 @@ }, /turf/open/floor/corsat/squares, /area/sekhmet/int_heavy/research) +"bCz" = ( +/obj/structure/prop/swamp_plants/algae/corner2/south_east{ + pixel_x = 5 + }, +/mob/living/simple_animal/small/frog/random, +/turf/open/gm/coast/dirt/swampdir/west, +/area/sekhmet/outside/swamp) +"bCO" = ( +/obj/structure/prop/swamp_plants/algae/corner2/south_east{ + pixel_y = 3 + }, +/mob/living/simple_animal/small/frog/random, +/turf/open/gm/coast/dirt/swampdir/south, +/area/sekhmet/outside/swamp) "bDx" = ( /turf/closed/wall/strata_outpost/reinforced/hull, /area/sekhmet/outside/central_road) @@ -7010,6 +7026,7 @@ pixel_x = 8; pixel_y = -11 }, +/mob/living/simple_animal/small/frog/random, /turf/open/gm/coast/dirt/swampdir, /area/sekhmet/outside/swamp) "cpR" = ( @@ -7214,6 +7231,7 @@ pixel_y = 14; dir = 1 }, +/mob/living/simple_animal/small/frog/random, /turf/open/gm/coast/dirt/swampbeachcorner/north_west, /area/sekhmet/outside/swamp) "cuY" = ( @@ -8084,6 +8102,7 @@ pixel_x = 10; pixel_y = 18 }, +/mob/living/simple_animal/small/frog/random, /turf/open/gm/coast/dirt/swampbeachcorner/south_west, /area/sekhmet/outside/swamp) "cTk" = ( @@ -9624,6 +9643,10 @@ }, /turf/open/floor/plating/kutjevo, /area/sekhmet/int_reg/southwest_complex) +"dRA" = ( +/mob/living/simple_animal/small/frog/random, +/turf/open/gm/coast/dirt/swampbeachcorner/north_east, +/area/sekhmet/outside/swamp) "dRI" = ( /obj/structure/prop/swamp_plants/algae/small/algae_3{ pixel_x = 11 @@ -10410,6 +10433,7 @@ pixel_x = 16; pixel_y = -13 }, +/mob/living/simple_animal/small/frog/random, /turf/open/gm/dirt/swamp_dirt, /area/sekhmet/outside/swamp) "eib" = ( @@ -10426,6 +10450,7 @@ pixel_y = 12 }, /obj/effect/abstract/ripple/shadow, +/mob/living/simple_animal/small/frog/random, /turf/open/gm/coast/dirt/swampdir/south, /area/sekhmet/outside/swamp) "eil" = ( @@ -10630,6 +10655,7 @@ /area/sekhmet/int_reg/water_filters) "eoP" = ( /obj/structure/prop/swamp_plants/algae/corner2/south_east, +/mob/living/simple_animal/small/frog/random, /turf/open/gm/coast/dirt/swampdir/south, /area/sekhmet/outside/swamp) "eoY" = ( @@ -13943,6 +13969,7 @@ pixel_y = -5; dir = 6 }, +/mob/living/simple_animal/small/frog/random, /turf/open/gm/dirt/swamp_dirt/variant_2, /area/sekhmet/outside/swamp) "gcv" = ( @@ -17767,11 +17794,11 @@ /turf/open/gm/coast/dirt/swampbeachcorner2/south_west, /area/sekhmet/outside/swamp) "ifc" = ( -/obj/structure/machinery/door/airlock/upp/generic/solid/autoname{ - needs_power = 0; - name = "\improper Bolted Airlock"; +/obj/structure/machinery/door/airlock/upp/generic/solid{ emp_proof = 1; explo_proof = 1; + name = "\improper Bolted Airlock"; + needs_power = 0; unacidable = 1; unslashable = 1 }, @@ -24227,6 +24254,10 @@ }, /turf/open/floor/strata/fake_wood, /area/sekhmet/int_glass/offices) +"lQm" = ( +/mob/living/simple_animal/small/frog/random, +/turf/open/gm/coast/dirt/swampdir, +/area/sekhmet/outside/swamp) "lQy" = ( /obj/effect/decal/strata_decals/grime/grime3, /turf/open/floor/prison/sterile_white, @@ -24909,6 +24940,7 @@ pixel_x = -3; pixel_y = 11 }, +/mob/living/simple_animal/small/frog/random, /turf/open/gm/coast/dirt/swampbeachcorner/south_east, /area/sekhmet/outside/swamp) "mkN" = ( @@ -26045,6 +26077,7 @@ pixel_x = 5; pixel_y = -17 }, +/mob/living/simple_animal/small/frog/random, /turf/open/gm/coast/dirt/swampdir, /area/sekhmet/outside/swamp) "mRU" = ( @@ -26549,6 +26582,7 @@ pixel_x = -12; pixel_y = 18 }, +/mob/living/simple_animal/small/frog/random, /turf/open/gm/coast/dirt/swampdir/east, /area/sekhmet/outside/swamp) "nci" = ( @@ -27641,6 +27675,10 @@ /obj/structure/blocker/invisible_wall, /turf/open/floor/strata/floor3, /area/sekhmet/int_reg/catwalk) +"nFn" = ( +/mob/living/simple_animal/small/frog/random, +/turf/open/gm/coast/dirt/swampdir/east, +/area/sekhmet/outside/swamp) "nFO" = ( /obj/structure/prop/colorable_rock/colorable{ color = "#a39e99"; @@ -27815,6 +27853,7 @@ pixel_x = -17; pixel_y = 19 }, +/mob/living/simple_animal/small/frog/random, /turf/open/gm/coast/dirt/swampdir/east, /area/sekhmet/outside/swamp) "nLt" = ( @@ -27848,6 +27887,7 @@ pixel_x = 1; pixel_y = 6 }, +/mob/living/simple_animal/small/frog/random, /turf/open/gm/coast/dirt/swampdir/south, /area/sekhmet/outside/swamp) "nMq" = ( @@ -27895,6 +27935,10 @@ }, /turf/open/floor/strata/floor3, /area/sekhmet/int_heavy/research) +"nOa" = ( +/mob/living/simple_animal/small/frog/random, +/turf/open/gm/coast/dirt/swampbeachcorner/north_west, +/area/sekhmet/outside/swamp) "nOg" = ( /obj/effect/decal/warning_stripes{ icon_state = "E"; @@ -28222,6 +28266,13 @@ }, /turf/open/gm/river/swamp, /area/sekhmet/outside/swamp) +"nWG" = ( +/obj/structure/prop/colorable_rock/colorable{ + color = "#a39e99" + }, +/mob/living/simple_animal/small/frog/random, +/turf/open/gm/dirt/swamp_dirt, +/area/sekhmet/outside/swamp) "nWX" = ( /obj/structure/prop/structure_lattice{ dir = 4 @@ -28513,10 +28564,6 @@ }, /turf/open/floor/corsat/marked, /area/sekhmet/int_reg/southwest_complex) -"odx" = ( -/obj/structure/closet/firecloset, -/turf/open/floor/strata/floor3, -/area/sekhmet/int_reg/military_hangar) "odC" = ( /obj/structure/prop/swamp_plants/algae/corner2/south_east{ pixel_y = -5 @@ -30134,6 +30181,7 @@ /obj/structure/flora/wood/stick4{ dir = 1 }, +/mob/living/simple_animal/small/frog/random, /turf/open/gm/dirt/swamp_dirt/variant_2, /area/sekhmet/outside/swamp) "oTM" = ( @@ -30306,6 +30354,11 @@ /obj/effect/abstract/ripple/shadow, /turf/open/gm/coast/dirt/swampbeachcorner2/south_west, /area/sekhmet/outside/swamp) +"oYF" = ( +/obj/effect/abstract/ripple/shadow, +/mob/living/simple_animal/small/frog/random, +/turf/open/gm/dirt/swamp_dirt/variant_1, +/area/sekhmet/outside/swamp) "oYJ" = ( /obj/structure/flora/bush/ausbushes/var3/sparsegrass, /obj/structure/flora/jungle/vines/light_1{ @@ -31692,6 +31745,7 @@ /obj/structure/prop/swamp_plants/algae/corner2/south_west{ pixel_y = 8 }, +/mob/living/simple_animal/small/frog/random, /turf/open/gm/coast/dirt/swampdir/south, /area/sekhmet/outside/swamp) "pOP" = ( @@ -33975,6 +34029,7 @@ pixel_x = 4; dir = 1 }, +/mob/living/simple_animal/small/frog/random, /turf/open/gm/coast/dirt/swampbeachcorner/south_west, /area/sekhmet/outside/east_jungle) "rfD" = ( @@ -34016,6 +34071,10 @@ /obj/structure/blocker/invisible_wall, /turf/open/gm/river/swamp, /area/sekhmet/outside/swamp) +"rgU" = ( +/mob/living/simple_animal/small/frog/random, +/turf/open/gm/coast/dirt/swampbeachcorner/south_east, +/area/sekhmet/outside/swamp) "rhg" = ( /obj/structure/largecrate/random/barrel/true_random, /turf/open/floor/strata/floor2, @@ -36783,6 +36842,7 @@ pixel_x = -11; pixel_y = -6 }, +/mob/living/simple_animal/small/frog/random, /turf/open/gm/dirt/swamp_dirt, /area/sekhmet/outside/swamp) "sIP" = ( @@ -37113,6 +37173,7 @@ dir = 8; pixel_x = -10 }, +/mob/living/simple_animal/small/frog/random, /turf/open/gm/dirt/swamp_dirt, /area/sekhmet/outside/swamp) "sQP" = ( @@ -37683,6 +37744,7 @@ /area/sekhmet/int_reg/complex_intel) "thT" = ( /obj/structure/platform/metal/shiva, +/mob/living/simple_animal/small/frog/random, /turf/open/gm/dirt/swamp_dirt, /area/sekhmet/outside/swamp) "thZ" = ( @@ -38170,6 +38232,10 @@ }, /turf/open/floor/strata/multi_tiles/west, /area/sekhmet/int_heavy/research) +"tvd" = ( +/mob/living/simple_animal/small/frog/random, +/turf/open/gm/coast/dirt/swampbeachcorner/south_west, +/area/sekhmet/outside/swamp) "tve" = ( /turf/closed/wall/upp_ship, /area/sekhmet/int_reg/water_filters) @@ -39021,6 +39087,10 @@ }, /turf/open/floor/plating/kutjevo, /area/sekhmet/outside/airfield) +"tPA" = ( +/mob/living/simple_animal/small/frog/random, +/turf/open/gm/dirt/swamp_dirt, +/area/sekhmet/outside/swamp) "tPJ" = ( /turf/closed/shuttle/ert{ icon_state = "leftengine_2"; @@ -41196,6 +41266,10 @@ /obj/structure/blocker/invisible_wall, /turf/open/floor/corsat, /area/sekhmet/int_reg/comms_lower) +"uXr" = ( +/mob/living/simple_animal/small/frog/random, +/turf/open/auto_turf/swamp_dirt/layer1, +/area/sekhmet/outside/swamp) "uXF" = ( /turf/open/floor/strata/orange_edge/west, /area/sekhmet/int_reg/comms_lower) @@ -41635,6 +41709,10 @@ }, /turf/open/gm/dirt/swamp_dirt/variant_2, /area/sekhmet/outside/swamp) +"vnn" = ( +/mob/living/simple_animal/small/frog/random, +/turf/open/gm/dirt/swamp_dirt/variant_1, +/area/sekhmet/outside/swamp) "vnt" = ( /obj/structure/prop/swamp_plants/algae/corner/north_east, /obj/structure/prop/swamp_plants/algae/small/algae_4{ @@ -43086,6 +43164,10 @@ }, /turf/open/floor/strata/multi_tiles/southwest, /area/sekhmet/int_reg/military_hangar) +"wbI" = ( +/mob/living/simple_animal/small/frog/random, +/turf/open/auto_turf/swamp_grass/layer1, +/area/sekhmet/outside/swamp) "wbP" = ( /obj/structure/flora/grass/tallgrass/swamp/corner{ dir = 5 @@ -43829,6 +43911,10 @@ "wwR" = ( /turf/closed/wall/strata_outpost/reinforced/hull, /area/sekhmet/outside/southeast_road) +"wwY" = ( +/mob/living/simple_animal/small/frog/random, +/turf/open/gm/coast/dirt/swampdir/south, +/area/sekhmet/outside/swamp) "wxg" = ( /obj/structure/prop/colorable_rock/colorable{ color = "#a39e99"; @@ -46360,6 +46446,7 @@ /obj/structure/prop/swamp_plants/algae/corner2/south_west{ pixel_x = -5 }, +/mob/living/simple_animal/small/frog/random, /turf/open/gm/coast/dirt/swampdir/east, /area/sekhmet/outside/east_jungle) "xOG" = ( @@ -84686,7 +84773,7 @@ ugW eQy xKU ryr -dVw +wwY kRb cHW kRb @@ -85506,7 +85593,7 @@ ahk fCk rtw mRU -dVw +wwY ahk kCV kCV @@ -85639,7 +85726,7 @@ fCQ kdz cxQ wEE -rIb +tvd xYu xYu rdS @@ -86134,7 +86221,7 @@ ufa oES iVA tco -dVw +wwY xYu xYu vRr @@ -88630,7 +88717,7 @@ tHT nJZ qln pDo -gGv +bCO kRb kRb eah @@ -88951,7 +89038,7 @@ xFf tTF pBz pBz -mkN +dRA kWZ kWZ amw @@ -89256,7 +89343,7 @@ vas nUz nUz efi -odx +ouG iwf jVv wlD @@ -89777,7 +89864,7 @@ mUA exp sUs pBz -pBz +wbI pBz pBz gDr @@ -90135,7 +90222,7 @@ pBz pBz pBz ybn -pBz +wbI pBz sUs pBz @@ -90269,8 +90356,8 @@ pBz pBz xFf xFf -pBz -qTH +wbI +nOa iwt umD eib @@ -90454,7 +90541,7 @@ pBz fHD pNp vUF -gCh +bCz rIb pBz pBz @@ -90611,7 +90698,7 @@ sUs kCV kCV pBz -cHW +tPA uFJ bAd xFf @@ -90769,7 +90856,7 @@ mqv kWZ bjW ukm -ksB +rgU ybn pBz kCV @@ -90933,12 +91020,12 @@ pnZ pBz pBz mkN -ksB +rgU kCV kCV ybn sUs -pBz +wbI kdz vhr vHH @@ -90956,7 +91043,7 @@ lzJ kRb uFJ pBz -pBz +wbI exs biL lLx @@ -91275,7 +91362,7 @@ uxt xIp oXN kNR -pBz +wbI bRh bid gcG @@ -91292,7 +91379,7 @@ cFn fgt oSo dVw -cHW +tPA pBz ybn ybn @@ -91599,7 +91686,7 @@ hHl uhn pBz pBz -pBz +wbI dze kWZ rcy @@ -91773,7 +91860,7 @@ ons wKY rAq kWZ -ksB +rgU lzJ pBz cHW @@ -91886,7 +91973,7 @@ pBz cHW gFi sPa -rIb +tvd aOp lzJ pBz @@ -91948,7 +92035,7 @@ eAt cSS xdN jAP -ksB +rgU lzJ pBz ahk @@ -92271,7 +92358,7 @@ pBz pBz lzJ uFJ -pZW +lQm dXA okn mRq @@ -92544,7 +92631,7 @@ eVw vRr atp pBz -cHW +tPA mkN pln kQc @@ -93236,7 +93323,7 @@ kCV kCV cHW ahB -cHW +tPA iKV oBu ahB @@ -93559,7 +93646,7 @@ lIf cCu nPs vVI -cHW +tPA vQw pBz pBz @@ -93870,7 +93957,7 @@ xAf fOT yec rIb -aOp +apY ahX kRb cHW @@ -93902,7 +93989,7 @@ cYv cCu szu hnw -uFJ +vnn kRb ahk pBz @@ -93939,7 +94026,7 @@ vUN ybn lzJ cHW -aOp +apY cHW cHW cHW @@ -94082,7 +94169,7 @@ uhn uhn uhn pBz -cHW +tPA lzJ hGT wxE @@ -94210,14 +94297,14 @@ exp exp sQh vOM -kRb +uXr thc eTK edr mHi ibt jxI -dVw +wwY aOp pBz pBz @@ -94526,7 +94613,7 @@ vHZ mkN kWZ aig -kWZ +nFn vwh fvN uVf @@ -94566,7 +94653,7 @@ fWu iXr rIb aAu -cHW +tPA iEv tWF pae @@ -94884,7 +94971,7 @@ kCV cyh cyh pBz -cHW +tPA psz wRQ dYb @@ -95097,7 +95184,7 @@ dSB epq dmB kXF -ksB +rgU cHW wlK gnQ @@ -95222,7 +95309,7 @@ mFc qnR vWv ycb -aOp +apY cpp wwn bcl @@ -95256,7 +95343,7 @@ kCV kCV pBz lzJ -cHW +tPA mkN gdS esT @@ -95521,7 +95608,7 @@ pBz pBz cHW cHW -aOp +apY uFJ rTB sQh @@ -95548,7 +95635,7 @@ pBz vQw dXi ggk -oBu +oYF rUO pBz pBz @@ -95559,7 +95646,7 @@ hTl nre ngR tuf -ksB +rgU pBz sUs pBz @@ -95698,7 +95785,7 @@ cHW lzJ pAP aOp -cHW +tPA hEf uqM uVT @@ -96034,7 +96121,7 @@ pZW iAf mlo aWK -uFJ +vnn pBz pBz pAP @@ -96583,7 +96670,7 @@ ewF nNu pFZ tJH -rIb +tvd cHW kRb acH @@ -96823,7 +96910,7 @@ tpr pBz ahc cHW -cHW +tPA pZW ksw mPE @@ -96831,7 +96918,7 @@ ptP cCu hEm aho -aAu +nWG kRb kRb atp @@ -97412,7 +97499,7 @@ prs tKj eca nIe -rIb +tvd pqL lUr fqb @@ -97571,7 +97658,7 @@ lzJ cHW acH kRb -cHW +tPA ewn qUv tra @@ -97581,7 +97668,7 @@ pSi rIb cHW cHW -cHW +tPA rUO qYY tve @@ -97684,7 +97771,7 @@ nLM okx aOp cHW -cHW +tPA cHW aOp cHW @@ -97810,7 +97897,7 @@ kCV rUO aOp cHW -cHW +tPA qTH nai wCJ @@ -97922,7 +98009,7 @@ wCG lzW mMd tsU -cHW +tPA kRb lzJ wXj @@ -97985,7 +98072,7 @@ mfR xFB fLj tCN -dVw +wwY elQ kCV kCV @@ -98402,7 +98489,7 @@ cHW cHW kRb lzJ -cHW +tPA cpp kWZ lqt @@ -98923,7 +99010,7 @@ xGW mZj lke iGi -ksB +rgU cHW mxU mxU @@ -99746,7 +99833,7 @@ gwA lIg pdy hdz -rIb +tvd uFJ vQw mxU @@ -99905,7 +99992,7 @@ pBz pBz lzJ cHW -cHW +tPA mkN lqt bTi @@ -100567,7 +100654,7 @@ pBz pBz pBz pBz -cHW +tPA pZW gXh tra @@ -101069,7 +101156,7 @@ own nYF tsA sjH -dVw +wwY cHW uFJ mxU @@ -101113,7 +101200,7 @@ sjx iSq vRr pBz -cHW +tPA qTH wsL qip @@ -101448,7 +101535,7 @@ ajN uwJ tkI qOI -rIb +tvd lzJ kRb dkY @@ -101732,7 +101819,7 @@ tKj qKE pGl iuH -rIb +tvd ahk rUO mxU @@ -102054,7 +102141,7 @@ tkF ykj lsz tve -pZW +lQm dwm gAB gDW @@ -102724,7 +102811,7 @@ xUZ wqU qSa teJ -dVw +wwY cHW cHW agk @@ -102927,7 +103014,7 @@ pBz pBz ybn ajS -kRb +uXr aib kWZ aHj @@ -103709,7 +103796,7 @@ tve fzA rUO uFJ -cHW +tPA vQw cHW cHW diff --git a/maps/sekhmet_swamp.json b/maps/sekhmet_swamp.json index b20d9047c274..d2ad4879d187 100644 --- a/maps/sekhmet_swamp.json +++ b/maps/sekhmet_swamp.json @@ -27,7 +27,7 @@ "/datum/equipment_preset/survivor/clf/coordinator" ], "map_item_type": "/obj/item/map/sekhmet_swamp_map", - "announce_text": "An automated distress signal has been recieved from a Union of Progressive People'experimental medical research colony on border world SI-391, \"Sekhmet Swamp\". Authorization has been granted for a response team from the ###SHIPNAME### to conduct a reconnaissance in force.", + "announce_text": "An automated distress signal has been recieved from a Union of Progressive People's experimental medical research colony on border world SI-391, \"Sekhmet Swamp\". Authorization has been granted for a response team from the ###SHIPNAME### to conduct a reconnaissance in force.", "monkey_types": [ "stok" ], diff --git a/sound/effects/frog_1.ogg b/sound/effects/frog_1.ogg new file mode 100644 index 000000000000..b437349cdf20 Binary files /dev/null and b/sound/effects/frog_1.ogg differ diff --git a/sound/effects/frog_2.ogg b/sound/effects/frog_2.ogg new file mode 100644 index 000000000000..fe5e861e3094 Binary files /dev/null and b/sound/effects/frog_2.ogg differ diff --git a/sound/effects/frog_3.ogg b/sound/effects/frog_3.ogg new file mode 100644 index 000000000000..a738c65b6c3e Binary files /dev/null and b/sound/effects/frog_3.ogg differ diff --git a/sound/effects/frog_4.ogg b/sound/effects/frog_4.ogg new file mode 100644 index 000000000000..280f7098563f Binary files /dev/null and b/sound/effects/frog_4.ogg differ diff --git a/sound/effects/frog_5.ogg b/sound/effects/frog_5.ogg new file mode 100644 index 000000000000..4b669776975e Binary files /dev/null and b/sound/effects/frog_5.ogg differ