mirror of
https://github.com/CHOMPStation2/CHOMPStation2.git
synced 2025-12-13 11:43:31 +00:00
[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:
@@ -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,
|
||||||
|
|||||||
@@ -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)
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
60
code/modules/mob/living/simple_mob/subtypes/vore/seagull.dm
Normal file
60
code/modules/mob/living/simple_mob/subtypes/vore/seagull.dm
Normal 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)
|
||||||
@@ -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 |
@@ -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
|
||||||
|
|||||||
@@ -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"
|
||||||
|
|||||||
Reference in New Issue
Block a user