From 2391957b4e1734d55c59c623fcbf50c9e0f5392e Mon Sep 17 00:00:00 2001
From: klaasjared <86997650+GhostActual@users.noreply.github.com>
Date: Tue, 23 Nov 2021 18:00:23 -0500
Subject: [PATCH] Base Commit
---
.../objects/effects/semirandom_mobs_vr.dm | 6 +-
.../mob/living/simple_mob/donteatpets_vr.dm | 2 +-
.../subtypes/animal/space/snake_vr.dm | 104 +++++++++---------
.../living/simple_mob/subtypes/vore/frog.dm | 4 +-
.../reagents/reactions/instant/instant_vr.dm | 2 +-
icons/mob/snake_vr.dmi | Bin 1234 -> 3686 bytes
maps/expedition_vr/beach/_beach.dm | 2 +-
7 files changed, 62 insertions(+), 58 deletions(-)
diff --git a/code/game/objects/effects/semirandom_mobs_vr.dm b/code/game/objects/effects/semirandom_mobs_vr.dm
index b7008b46277..75136cf5aad 100644
--- a/code/game/objects/effects/semirandom_mobs_vr.dm
+++ b/code/game/objects/effects/semirandom_mobs_vr.dm
@@ -51,6 +51,8 @@ var/global/list/semirandom_mob_spawner_decisions = list()
list(/mob/living/simple_mob/animal/passive/opossum),
list(/mob/living/simple_mob/animal/passive/pillbug),
list(/mob/living/simple_mob/animal/passive/snake),
+ list(/mob/living/simple_mob/animal/passive/snake/red),
+ list(/mob/living/simple_mob/animal/passive/snake/python),
list(/mob/living/simple_mob/animal/passive/tindalos),
list(/mob/living/simple_mob/animal/passive/yithian),
list(
@@ -359,6 +361,8 @@ var/global/list/semirandom_mob_spawner_decisions = list()
list(/mob/living/simple_mob/animal/passive/opossum) = 10,
list(/mob/living/simple_mob/animal/passive/pillbug) = 10,
list(/mob/living/simple_mob/animal/passive/snake) = 10,
+ list(/mob/living/simple_mob/animal/passive/snake/red) = 10,
+ list(/mob/living/simple_mob/animal/passive/snake/python) = 10,
list(/mob/living/simple_mob/animal/passive/tindalos) = 10,
list(/mob/living/simple_mob/animal/passive/yithian) = 10,
list(
@@ -537,7 +541,7 @@ var/global/list/semirandom_mob_spawner_decisions = list()
/mob/living/simple_mob/vore/lamia/zebra/bra,
/mob/living/simple_mob/vore/lamia/zebra/shirt
) = 100,
-// LOOK OKAY MERCS ARE HUMANOIDS SO THEY ARE HERE, but they are also kind of bullshit so they probably shouldn't be able to spawn in the same place as catgirls.
+// LOOK OKAY MERCS ARE HUMANOIDS SO THEY ARE HERE, but they are also kind of bullshit so they probably shouldn't be able to spawn in the same place as catgirls.
// I want some better potentially hostile humanoids that aren't stupid to fight. If they become a big issue I'll comment them out.
// For now they are just rare, and the ranged ones are way more rare than the melee ones, which I think will help balance them out.
list(
diff --git a/code/modules/mob/living/simple_mob/donteatpets_vr.dm b/code/modules/mob/living/simple_mob/donteatpets_vr.dm
index 057373b4c75..adf7d00976a 100644
--- a/code/modules/mob/living/simple_mob/donteatpets_vr.dm
+++ b/code/modules/mob/living/simple_mob/donteatpets_vr.dm
@@ -32,7 +32,7 @@
digestable = 0
devourable = 0
-/mob/living/simple_mob/animal/passive/snake/noodle
+/mob/living/simple_mob/animal/passive/snake/python/noodle
digestable = 0
devourable = 0
diff --git a/code/modules/mob/living/simple_mob/subtypes/animal/space/snake_vr.dm b/code/modules/mob/living/simple_mob/subtypes/animal/space/snake_vr.dm
index c30dd4be5ae..2f5562f09cd 100644
--- a/code/modules/mob/living/simple_mob/subtypes/animal/space/snake_vr.dm
+++ b/code/modules/mob/living/simple_mob/subtypes/animal/space/snake_vr.dm
@@ -3,30 +3,33 @@
desc = "Classification: Reptilia Serpentes\
\
Snakes are elongated, limbless, carnivorous reptiles of the suborder Serpentes \
- Like all other squamates, snakes are ectothermic, amniote vertebrates covered in overlapping scales. \
- Many species of snakes have skulls with several more joints than their lizard ancestors, \
+ Like all other squamates, pythons are ectothermic, amniote vertebrates covered in overlapping scales. \
+ Many species of snake have skulls with several more joints than their lizard ancestors, \
enabling them to swallow prey much larger than their heads with their highly mobile jaws. \
\
- This species of snake is nonvenomous and use their large bodies to primarily subdue their prey. \
+ This type of snake is nonvenomous and use their slender bodies to primarily subdue their prey. \
Nonvenomous snakes either swallow prey alive or kill them by constriction - this is dependant on the prey. \
\
- This specific snake is nonvenomous and is mostly passive - however they will attack if threatened - it is \
- recommended that persons keep their distance as to not provoke these animals."
+ Snakes are mostly passive - however they will attack if threatened - it is recommended that \
+ persons keep their distance as to not provoke these animals."
value = CATALOGUER_REWARD_TRIVIAL
+/*
+ * Green Snake
+ */
/mob/living/simple_mob/animal/passive/snake
name = "snake"
- desc = "A big thick snake."
- tt_desc = "Reptilia Serpentes"
+ desc = "A cute little, green snake. Wiggle wiggle."
+ tt_desc = "E Reptilia Serpentes"
catalogue_data = list(/datum/category_item/catalogue/fauna/snake)
- icon_state = "snake"
- icon_living = "snake"
- icon_dead = "snake_dead"
+ icon_state = "green"
+ icon_living = "green"
+ icon_dead = "green_dead"
icon = 'icons/mob/snake_vr.dmi'
- maxHealth = 20
- health = 20
+ maxHealth = 15
+ health = 15
movement_cooldown = 8 // SLOW-ASS MUTHAFUCKA, I hope.
@@ -44,17 +47,46 @@
/datum/say_list/snake
emote_hear = list("hisses")
-//NOODLE IS HERE! SQUEEEEEEEE~
-/mob/living/simple_mob/animal/passive/snake/noodle
+/*
+ * Red Snake
+ */
+/mob/living/simple_mob/animal/passive/snake/red
+ desc = "A cute little, red snake. Wiggle wiggle."
+
+ icon_state = "red"
+ icon_living = "red"
+ icon_dead = "red_dead"
+ icon = 'icons/mob/snake_vr.dmi'
+
+/*
+ * Python
+ */
+/mob/living/simple_mob/animal/passive/snake/python
+ name = "python"
+ desc = "A big, thick snake."
+ tt_desc = "E Reptilia Pythonidae"
+
+ icon_state = "python"
+ icon_living = "python"
+ icon_dead = "python_dead"
+ icon = 'icons/mob/snake_vr.dmi'
+
+/*
+ * NOODLE IS HERE! SQUEEEEEEEE~
+ */
+/mob/living/simple_mob/animal/passive/snake/python/noodle
name = "Noodle"
desc = "This snake is particularly chubby and demands nothing but the finest of treats."
+ maxHealth = 20
+ health = 20
+
makes_dirt = FALSE
var/turns_since_scan = 0
var/obj/movement_target
-/mob/living/simple_mob/animal/passive/snake/noodle/Life()
+/mob/living/simple_mob/animal/passive/snake/python/noodle/Life()
..()
//Not replacing with SA FollowTarget mechanics because Ian behaves... very... specifically.
@@ -97,41 +129,7 @@
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.")
-/* old eating code, couldn't figure out how to make the "swallows food" thing so I'm keeping this here incase someone wants legacy"
-/mob/living/simple_mob/animal/passive/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/animal/passive/snake/noodle/apply_melee_effects(var/atom/A)
+/mob/living/simple_mob/animal/passive/snake/python/noodle/apply_melee_effects(var/atom/A)
if(ismouse(A))
var/mob/living/simple_mob/animal/passive/mouse/mouse = A
if(mouse.getMaxHealth() < 20) // In case a badmin makes giant mice or something.
@@ -140,14 +138,16 @@
else
..()
-/mob/living/simple_mob/animal/passive/snake/noodle/attackby(var/obj/item/O, var/mob/user)
+/mob/living/simple_mob/animal/passive/snake/python/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!
+/*
+ * 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!"
diff --git a/code/modules/mob/living/simple_mob/subtypes/vore/frog.dm b/code/modules/mob/living/simple_mob/subtypes/vore/frog.dm
index c6ea3efbc16..590b22c0cf9 100644
--- a/code/modules/mob/living/simple_mob/subtypes/vore/frog.dm
+++ b/code/modules/mob/living/simple_mob/subtypes/vore/frog.dm
@@ -1,6 +1,6 @@
/datum/category_item/catalogue/fauna/frog
name = "Wildlife - Giant Frog"
- desc = "Classification: Anura gigantus\
+ desc = "Classification: Anura Gigantus\
\
A frog is any member of a diverse and largely carnivorous group of short-bodied, tailless amphibians composing \
the order Anura. This specific species - Anura gigantus - is a mutated form of Frogs, largely due to exposure to mutagen chemicals. \
@@ -20,7 +20,7 @@
/mob/living/simple_mob/vore/aggressive/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"
+ tt_desc = "Anura Gigantus"
catalogue_data = list(/datum/category_item/catalogue/fauna/frog)
icon_dead = "frog-dead"
diff --git a/code/modules/reagents/reactions/instant/instant_vr.dm b/code/modules/reagents/reactions/instant/instant_vr.dm
index b1d49c012a6..63b764dafeb 100644
--- a/code/modules/reagents/reactions/instant/instant_vr.dm
+++ b/code/modules/reagents/reactions/instant/instant_vr.dm
@@ -400,7 +400,7 @@
/mob/living/simple_mob/animal/passive/bird/parrot/poly,
/mob/living/simple_mob/animal/sif/fluffy,
/mob/living/simple_mob/animal/sif/fluffy/silky,
- /mob/living/simple_mob/animal/passive/snake/noodle,
+ /mob/living/simple_mob/animal/passive/snake/python/noodle,
/mob/living/simple_mob/slime/xenobio/rainbow/kendrick,
/mob/living/simple_mob/animal/space/space_worm, //Space Worm parts that aren't proper heads
/mob/living/simple_mob/animal/space/space_worm/head/severed,
diff --git a/icons/mob/snake_vr.dmi b/icons/mob/snake_vr.dmi
index 42631b85de906cfba7520ec3b220ed4a40c76fa8..6802aecc4761b08567941aac5aa83444f0b16b20 100644
GIT binary patch
literal 3686
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
KY$~k$68{a?KS_-M
literal 1234
zcmV;@1TFiCP)G#$5
z)t9BOps%^p==GPcm!P?z)AiHY?fbC7%zyv@+56eB%&>%!nS_~ydxwvEk9&?(M2=ZI
zz`($~dtU#gvAmB}|G%I2)$RB9)vuSRxuCN3)9bIVm$|v1_4U*H+40P<#QXc%%*?Qv
zgp-+>gpYfPkB@t$O+lquJF2PrzW@LL0d!JMQvg8b*k%9#0G@hOSad{Xb7OL8aCB*J
zZU6vyoQ=@23c@e|1kgG8iqP(2)zw8>q=Ws1lA5y#iHRi9>fhVwAP9wQckphxk{z03
z+p+r8(g%D{&ayq*t=5!GN<=xA?S>KwHOlxcA@Ybh7Qu3jf)b&8NFz!vo?nr2^{09P
zE`GFHqR@#C?wMivS@(mvBa@CEu$lIztj?q_7~`fTT(YLCKj*#yZQy7;!bi
z3R@X(^uIAsKGq(#GT!K)Ogq>JFxbj?vwsqE-bMiT7Aqe{#vA>|guyNcxNW=-Z}N}E
zC>#t(2f^>=J_)<2jO}@&|BV5ZZ-_{Qf+6fCmNE%s0`$Dee~cDj5G0VUiBw{DGl4`-
z0u~_NQK025{Bwm+r>s~Kp=4QcC%lrvK+I+nZ}LAFOuHQ;9M^H!?JrYV026QWKNutg
zYX$RF5WsE&n4ipinllN@bK{P@bK_>u9yipa{T!SM;0JH|NO`T
z(lni?bGZ12)R_Rq-_{w6&O-AKt^}yg2WITy7b#qeg+l?#{vDS9W1|LmyI2B#zM|^i
zu?QADun5!wDAh-j@`MCY7!hUvKFk2SbTdFtPPGc?*}2H~N2#j*y-UIcd+Bo^Iz7pB
z3ZnC~e9ZIspnxQb{+%ZwtAkW3fV-rCN%Z1n_G%nrn}7W#f4j>MN2#j*eQO`!ukl96
z9MX4LmQh+{OF;qW-{*NwX_+ra3WlRpRsU}OC7?Y11xP3g7{-Y}dHhR|P?j+4Cc@?@
z)uPE)f<|ltE(%m2$#mdx0xnBbAn;^_y~DE*852+xSCO30nSiqVAm{%cQBg#YW{UX0
zmnHJf;zNY%YZ&RZlE1k@{>GUA4-XFy4-XFy508HYf7IU}GXCwIzQ4bJaH}A?yREeS
z{lk6jK*4tZ{_#`wS=Zlx`C5NFxCGw6f3K>F(xzGp3ON6xu4_u$dg(?1#(x9}O#{O?
z5h#!U1QOa7hQlWU^zS$Uj}0o2_xCsfPc15NQwg+U0-ENhqQ9@1fVTbRtiNv>?B5mf
wfp1&noyCU;s}+oNrR3LZIU>4e-l2zdTCPM*si-07*qoM6N<$fn+a
diff --git a/maps/expedition_vr/beach/_beach.dm b/maps/expedition_vr/beach/_beach.dm
index 8bbc1765b71..f63be856253 100644
--- a/maps/expedition_vr/beach/_beach.dm
+++ b/maps/expedition_vr/beach/_beach.dm
@@ -85,7 +85,7 @@
//guard = 40 //They'll stay within this range (not defining this disables them staying nearby and they will wander the map (and through step teleports))
mobs_to_pick_from = list(
/mob/living/simple_mob/vore/fennec = 300,
- /mob/living/simple_mob/animal/passive/snake = 100,
+ /mob/living/simple_mob/animal/passive/snake/python = 100,
/mob/living/simple_mob/vore/alienanimals/teppi = 10,
/mob/living/simple_mob/vore/alienanimals/teppi/baby = 1
)