From 3225d4558cf6c5492ef6e44822d7cfd4fdc45c8d Mon Sep 17 00:00:00 2001 From: ASmallCuteCat Date: Fri, 22 Aug 2025 08:01:48 -0400 Subject: [PATCH] Adds snakes to the game. (#21185) Ports the snake from Baystation over to Aurora. No snakes have been placed ingame, but they're on the Technomancer "Summon Creature" list and the Random Animal Crate object has a chance to spawn a snake crate. All credit for the snake, snake_m, and snake_dead sprites goes to Baystation. I modified the original sprite to create the snake_rest sprite. --------- Signed-off-by: ASmallCuteCat Co-authored-by: FlamingLily <80451102+FlamingLily@users.noreply.github.com> --- aurorastation.dme | 1 + .../spells/summon/summon_creature.dm | 3 +- code/game/objects/random/misc.dm | 1 + .../structures/crates_lockers/largecrate.dm | 4 ++ .../living/simple_animal/friendly/snake.dm | 18 ++++++ html/changelogs/ASmallCuteCat - snakes.yml | 59 ++++++++++++++++++ icons/mob/npc/animal.dmi | Bin 214260 -> 216238 bytes 7 files changed, 85 insertions(+), 1 deletion(-) create mode 100644 code/modules/mob/living/simple_animal/friendly/snake.dm create mode 100644 html/changelogs/ASmallCuteCat - snakes.yml diff --git a/aurorastation.dme b/aurorastation.dme index 14c60c5a817..bc49b5b2d40 100644 --- a/aurorastation.dme +++ b/aurorastation.dme @@ -2867,6 +2867,7 @@ #include "code\modules\mob\living\simple_animal\friendly\ratking.dm" #include "code\modules\mob\living\simple_animal\friendly\schlorrgo.dm" #include "code\modules\mob\living\simple_animal\friendly\slime.dm" +#include "code\modules\mob\living\simple_animal\friendly\snake.dm" #include "code\modules\mob\living\simple_animal\friendly\spiderbot.dm" #include "code\modules\mob\living\simple_animal\friendly\tomato.dm" #include "code\modules\mob\living\simple_animal\hostile\adhomai.dm" diff --git a/code/game/gamemodes/technomancer/spells/summon/summon_creature.dm b/code/game/gamemodes/technomancer/spells/summon/summon_creature.dm index 802755ed561..3ab3172e0e1 100644 --- a/code/game/gamemodes/technomancer/spells/summon/summon_creature.dm +++ b/code/game/gamemodes/technomancer/spells/summon/summon_creature.dm @@ -2,7 +2,7 @@ name = "Summon Creature" desc = "Teleports a specific creature from their current location in the universe to the targeted tile, \ after a delay. The creature summoned can be chosen by using the ability in your hand. \ - Available creatures are; mice, crabs, parrots, bats, goats, cats, corgis, spiders, and space carp. \ + Available creatures are; mice, crabs, parrots, bats, goats, cats, corgis, snakes, spiders, and space carp. \ The creatures take a few moments to be teleported to the targeted tile. Note that the creatures summoned are \ not inherently loyal to the technomancer, and that the creatures will be hurt slightly from being teleported to you." enhancement_desc = "Summoned entities will never harm their summoner." @@ -27,6 +27,7 @@ "Cat" = /mob/living/simple_animal/cat, "Corgi" = /mob/living/simple_animal/corgi, "Corgi Pup" = /mob/living/simple_animal/corgi/puppy, + "Snake" = /mob/living/simple_animal/snake, "BAT" = /mob/living/simple_animal/hostile/scarybat, "GREIMORIAN" = /mob/living/simple_animal/hostile/giant_spider, "GREIMORIAN HUNTER" = /mob/living/simple_animal/hostile/giant_spider/hunter, diff --git a/code/game/objects/random/misc.dm b/code/game/objects/random/misc.dm index e4f3bbc4bbd..a466a4f9a7c 100644 --- a/code/game/objects/random/misc.dm +++ b/code/game/objects/random/misc.dm @@ -249,6 +249,7 @@ /obj/structure/largecrate/animal/corgi = 3, /obj/structure/largecrate/animal/cow = 4, /obj/structure/largecrate/animal/goat = 3, + /obj/structure/largecrate/animal/snake = 3, /obj/structure/largecrate/animal/cat = 2, /obj/structure/largecrate/animal/chick = 4, /obj/structure/largecrate/animal/adhomai = 0.5, diff --git a/code/game/objects/structures/crates_lockers/largecrate.dm b/code/game/objects/structures/crates_lockers/largecrate.dm index 7c4a2c4b0d0..d2fde5041bc 100644 --- a/code/game/objects/structures/crates_lockers/largecrate.dm +++ b/code/game/objects/structures/crates_lockers/largecrate.dm @@ -63,6 +63,10 @@ name = "cat carrier" held_type = /mob/living/simple_animal/cat +/obj/structure/largecrate/animal/snake + name = "snake crate" + held_type = /mob/living/simple_animal/snake + /obj/structure/largecrate/animal/cat/bones held_type = /mob/living/simple_animal/cat/fluff/bones diff --git a/code/modules/mob/living/simple_animal/friendly/snake.dm b/code/modules/mob/living/simple_animal/friendly/snake.dm new file mode 100644 index 00000000000..ce2129abdc0 --- /dev/null +++ b/code/modules/mob/living/simple_animal/friendly/snake.dm @@ -0,0 +1,18 @@ +/mob/living/simple_animal/snake + name = "snake" + desc = "A slithering serpent." + icon_state = "snake" + icon_living = "snake" + icon_dead = "snake_dead" + icon_rest = "snake_rest" + speak_emote = list("hisses") + emote_see = list("flicks out its tongue", "looks around") + health = 15 + maxHealth = 15 + organ_names = list("head", "body") + response_help = "pets" + response_disarm = "boops" + response_harm = "stomps on" + mob_size = MOB_SMALL + canbrush = TRUE + brush = /obj/item/reagent_containers/glass/rag diff --git a/html/changelogs/ASmallCuteCat - snakes.yml b/html/changelogs/ASmallCuteCat - snakes.yml new file mode 100644 index 00000000000..7b80ae3c459 --- /dev/null +++ b/html/changelogs/ASmallCuteCat - snakes.yml @@ -0,0 +1,59 @@ +################################ +# 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 +# - (fixes bugs) +# wip +# - (work in progress) +# qol +# - (quality of life) +# soundadd +# - (adds a sound) +# sounddel +# - (removes a sound) +# rscadd +# - (adds a feature) +# rscdel +# - (removes a feature) +# imageadd +# - (adds an image or sprite) +# imagedel +# - (removes an image or sprite) +# spellcheck +# - (fixes spelling or grammar) +# experiment +# - (experimental change) +# balance +# - (balance changes) +# code_imp +# - (misc internal code change) +# refactor +# - (refactors code) +# config +# - (makes a change to the config files) +# admin +# - (makes changes to administrator tools) +# server +# - (miscellaneous changes to server) +################################# + +# Your name. +author: ASmallCuteCat + +# 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, this gets changed to [] after reading. Just remove the brackets when you add new shit. +# Please surround your changes in double quotes ("). It works without them, but if you use certain characters it screws up compiling. The quotes will not show up in the changelog. +changes: + - rscadd: "Adds snakes to the game" + - imageadd: "Ports the snake sprites over from Baystation." diff --git a/icons/mob/npc/animal.dmi b/icons/mob/npc/animal.dmi index 7bb0fdc1d6ab8acffcefd524bff141a1add23dd6..f14955aa48da0eab6b65c43b31b3f5720cb0e1ea 100644 GIT binary patch delta 11931 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