[MIRROR] Adds a seagull (#6821)

Co-authored-by: Heroman3003 <31296024+Heroman3003@users.noreply.github.com>
Co-authored-by: Raeschen <rycoop29@gmail.com>
This commit is contained in:
CHOMPStation2
2023-08-16 00:49:11 -07:00
committed by GitHub
parent ec735809c5
commit ddc54ac3b4
8 changed files with 76 additions and 7 deletions

View File

@@ -781,6 +781,7 @@ var/global/list/xenobio_gold_mobs_safe = list(
/mob/living/simple_mob/vore/bee, /mob/living/simple_mob/vore/bee,
/mob/living/simple_mob/vore/fennec, /mob/living/simple_mob/vore/fennec,
/mob/living/simple_mob/vore/fennix, /mob/living/simple_mob/vore/fennix,
/mob/living/simple_mob/vore/seagull,
/mob/living/simple_mob/vore/hippo, /mob/living/simple_mob/vore/hippo,
/mob/living/simple_mob/vore/horse, /mob/living/simple_mob/vore/horse,
/mob/living/simple_mob/vore/jelly, /mob/living/simple_mob/vore/jelly,

View File

@@ -12,7 +12,7 @@
var/vore_active = 0 // If vore behavior is enabled for this mob var/vore_active = 0 // If vore behavior is enabled for this mob
//CHOMPEdit - Vore_capacity is now defined on living //CHOMPEdit - Vore_capacity is now defined on code/modules/vore/eating/living_ch.dm
vore_capacity = 1 // The capacity (in people) this person can hold vore_capacity = 1 // The capacity (in people) this person can hold
var/vore_max_size = RESIZE_HUGE // The max size this mob will consider eating var/vore_max_size = RESIZE_HUGE // The max size this mob will consider eating
var/vore_min_size = RESIZE_TINY // The min size this mob will consider eating var/vore_min_size = RESIZE_TINY // The min size this mob will consider eating
@@ -41,11 +41,13 @@
var/vore_default_contamination_flavor = "Generic" //Contamination descriptors var/vore_default_contamination_flavor = "Generic" //Contamination descriptors
var/vore_default_contamination_color = "green" //Contamination color var/vore_default_contamination_color = "green" //Contamination color
//CHOMPEDIT start - Moved to living //CHOMPEDIT start - Moved to code/modules/vore/eating/living_ch
//var/vore_fullness = 0 // How "full" the belly is (controls icons) //var/vore_fullness = 0 // How "full" the belly is (controls icons)
//var/vore_icons = 0 // Bitfield for which fields we have vore icons for. //var/vore_icons = 0 // Bitfield for which fields we have vore icons for.
//var/vore_eyes = FALSE // For mobs with fullness specific eye overlays. //var/vore_eyes = FALSE // For mobs with fullness specific eye overlays.
//var/belly_size_multiplier = 1
//CHOMPEDIT end. //CHOMPEDIT end.
var/life_disabled = 0 // For performance reasons var/life_disabled = 0 // For performance reasons
var/vore_attack_override = FALSE // Enable on mobs you want to have special behaviour on melee grab attack. var/vore_attack_override = FALSE // Enable on mobs you want to have special behaviour on melee grab attack.
@@ -75,13 +77,14 @@
return myid return myid
// Update fullness based on size & quantity of belly contents // Update fullness based on size & quantity of belly contents
/* CHOMPEdit - moved to living /* CHOMPEdit - moved to code/modules/vore/eating/living_ch
/mob/living/simple_mob/proc/update_fullness() /mob/living/simple_mob/proc/update_fullness()
var/new_fullness = 0 var/new_fullness = 0
for(var/obj/belly/B as anything in vore_organs) for(var/obj/belly/B as anything in vore_organs)
for(var/mob/living/M in B) for(var/mob/living/M in B)
new_fullness += M.size_multiplier new_fullness += M.size_multiplier
new_fullness = new_fullness / size_multiplier //Divided by pred's size so a macro mob won't get macro belly from a regular prey. new_fullness = new_fullness / size_multiplier //Divided by pred's size so a macro mob won't get macro belly from a regular prey.
new_fullness = new_fullness * belly_size_multiplier // Some mobs are small even at 100% size. Let's account for that.
new_fullness = round(new_fullness, 1) // Because intervals of 0.25 are going to make sprite artists cry. new_fullness = round(new_fullness, 1) // Because intervals of 0.25 are going to make sprite artists cry.
vore_fullness = min(vore_capacity, new_fullness) vore_fullness = min(vore_capacity, new_fullness)
*/ */

View File

@@ -80,8 +80,9 @@
. = ..() . = ..()
if(!.) if(!.)
return return
if(vore_fullness == 0 && movement_cooldown == 50) if(vore_fullness == 0 && movement_cooldown == 10)
movement_cooldown = initial(movement_cooldown) movement_cooldown = initial(movement_cooldown)
/mob/living/simple_mob/vore/alienanimals/dustjumper/perform_the_nom(mob/living/user, mob/living/prey, mob/living/pred, obj/belly/belly, delay) /mob/living/simple_mob/vore/alienanimals/dustjumper/perform_the_nom(mob/living/user, mob/living/prey, mob/living/pred, obj/belly/belly, delay)
. = ..() . = ..()
movement_cooldown = 10 movement_cooldown = 10

View File

@@ -0,0 +1,60 @@
/datum/category_item/catalogue/fauna/seagull // TODO: write actual lore if ever needed
name = "Wildlife - Seagull"
desc = "Classification: Larus brachyrhynchus\
<br><br>\
Gulls, or colloquially seagulls, are seabirds of the family Laridae in the suborder Lari. \
They are most closely related to the terns and skimmers and only distantly related to auks, and even more distantly to waders."
value = CATALOGUER_REWARD_TRIVIAL
/mob/living/simple_mob/vore/seagull
name = "seagull"
desc = "The most dangerous and hostile scavenger of seashores. Beware!"
tt_desc = "Larus brachyrhynchus"
catalogue_data = list(/datum/category_item/catalogue/fauna/seagull)
icon_state = "seagull"
icon_living = "seagull"
icon_dead = "seagull_dead"
icon_rest = "seagull"
icon = 'icons/mob/vore.dmi'
faction = "seagull"
maxHealth = 25
health = 25
response_help = "pats"
response_disarm = "gently pushes aside"
response_harm = "hits"
meat_amount = 2
meat_type = /obj/item/weapon/reagent_containers/food/snacks/meat/chicken
harm_intent_damage = 3
melee_damage_lower = 4
melee_damage_upper = 6
attacktext = list("pecked", "pinched", "wingslapped")
say_list_type = /datum/say_list/seagull
ai_holder_type = /datum/ai_holder/simple_mob/passive
vore_active = 1
vore_capacity = 5
vore_bump_chance = 25
vore_bump_emote = "greedily dives at"
vore_pounce_chance = 70
vore_default_mode = DM_HOLD
vore_icons = SA_ICON_LIVING
belly_size_multiplier = 2.5
/datum/say_list/seagull
speak = list("Ha-Ha-Ha!","Huoh-Huoh-Huoh!","Keow?")
emote_hear = list("screams!","chirps.")
emote_see = list("pecks at the ground","looks around hungrily")
/mob/living/simple_mob/vore/seagull/update_icon()
. = ..()
if(vore_fullness >= 2)
movement_cooldown = 10
else if(movement_cooldown == 10)
movement_cooldown = initial(movement_cooldown)

View File

@@ -18,6 +18,7 @@
var/list/vore_fullness_ex = list("stomach" = 0) // Expanded list of fullness var/list/vore_fullness_ex = list("stomach" = 0) // Expanded list of fullness
var/vore_icons = 0 // Bitfield for which fields we have vore icons for. var/vore_icons = 0 // Bitfield for which fields we have vore icons for.
var/vore_eyes = FALSE // For mobs with fullness specific eye overlays. var/vore_eyes = FALSE // For mobs with fullness specific eye overlays.
var/belly_size_multiplier = 1
var/vore_sprite_multiply = list("stomach" = FALSE, "taur belly" = FALSE) var/vore_sprite_multiply = list("stomach" = FALSE, "taur belly" = FALSE)
var/vore_sprite_color = list("stomach" = "#000", "taur belly" = "#000") var/vore_sprite_color = list("stomach" = "#000", "taur belly" = "#000")
@@ -48,6 +49,7 @@
new_fullness[B.undergarment_chosen + "-color"] = B.undergarment_color new_fullness[B.undergarment_chosen + "-color"] = B.undergarment_color
for(var/belly_class in vore_icon_bellies) for(var/belly_class in vore_icon_bellies)
new_fullness[belly_class] /= size_multiplier //Divided by pred's size so a macro mob won't get macro belly from a regular prey. new_fullness[belly_class] /= size_multiplier //Divided by pred's size so a macro mob won't get macro belly from a regular prey.
new_fullness[belly_class] *= belly_size_multiplier // Some mobs are small even at 100% size. Let's account for that.
new_fullness[belly_class] = round(new_fullness[belly_class], 1) // Because intervals of 0.25 are going to make sprite artists cry. new_fullness[belly_class] = round(new_fullness[belly_class], 1) // Because intervals of 0.25 are going to make sprite artists cry.
vore_fullness_ex[belly_class] = min(vore_capacity_ex[belly_class], new_fullness[belly_class]) vore_fullness_ex[belly_class] = min(vore_capacity_ex[belly_class], new_fullness[belly_class])
vore_fullness += new_fullness[belly_class] vore_fullness += new_fullness[belly_class]
@@ -353,4 +355,4 @@
set name = "Check Nutrition" set name = "Check Nutrition"
set category = "Abilities" set category = "Abilities"
set desc = "Check your current nutrition level." set desc = "Check your current nutrition level."
to_chat(src, "<span class='notice'>Current nutrition level: [nutrition].</span>") to_chat(src, "<span class='notice'>Current nutrition level: [nutrition].</span>")

Binary file not shown.

Before

Width:  |  Height:  |  Size: 328 KiB

After

Width:  |  Height:  |  Size: 332 KiB

View File

@@ -85,9 +85,10 @@
//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)) //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( mobs_to_pick_from = list(
/mob/living/simple_mob/vore/fennec = 300, /mob/living/simple_mob/vore/fennec = 300,
/mob/living/simple_mob/vore/seagull = 200,
/mob/living/simple_mob/animal/passive/snake/python = 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 = 10, //ChompADD
/mob/living/simple_mob/vore/alienanimals/teppi/baby = 1 /mob/living/simple_mob/vore/alienanimals/teppi/baby = 1 //ChompADD
) )
/obj/tether_away_spawner/beach_outside_friendly /obj/tether_away_spawner/beach_outside_friendly

View File

@@ -3448,6 +3448,7 @@
#include "code\modules\mob\living\simple_mob\subtypes\vore\rat.dm" #include "code\modules\mob\living\simple_mob\subtypes\vore\rat.dm"
#include "code\modules\mob\living\simple_mob\subtypes\vore\rat_ch.dm" #include "code\modules\mob\living\simple_mob\subtypes\vore\rat_ch.dm"
#include "code\modules\mob\living\simple_mob\subtypes\vore\redpanda.dm" #include "code\modules\mob\living\simple_mob\subtypes\vore\redpanda.dm"
#include "code\modules\mob\living\simple_mob\subtypes\vore\seagull.dm"
#include "code\modules\mob\living\simple_mob\subtypes\vore\sect_drone.dm" #include "code\modules\mob\living\simple_mob\subtypes\vore\sect_drone.dm"
#include "code\modules\mob\living\simple_mob\subtypes\vore\sect_queen.dm" #include "code\modules\mob\living\simple_mob\subtypes\vore\sect_queen.dm"
#include "code\modules\mob\living\simple_mob\subtypes\vore\sheep.dm" #include "code\modules\mob\living\simple_mob\subtypes\vore\sheep.dm"