diff --git a/code/_helpers/global_lists_vr.dm b/code/_helpers/global_lists_vr.dm index 27e000d0ba..1e94d47cd5 100644 --- a/code/_helpers/global_lists_vr.dm +++ b/code/_helpers/global_lists_vr.dm @@ -781,6 +781,7 @@ var/global/list/xenobio_gold_mobs_safe = list( /mob/living/simple_mob/vore/bee, /mob/living/simple_mob/vore/fennec, /mob/living/simple_mob/vore/fennix, + /mob/living/simple_mob/vore/seagull, /mob/living/simple_mob/vore/hippo, /mob/living/simple_mob/vore/horse, /mob/living/simple_mob/vore/jelly, diff --git a/code/modules/mob/living/simple_mob/simple_mob_vr.dm b/code/modules/mob/living/simple_mob/simple_mob_vr.dm index 993f782e55..39bb6860b5 100644 --- a/code/modules/mob/living/simple_mob/simple_mob_vr.dm +++ b/code/modules/mob/living/simple_mob/simple_mob_vr.dm @@ -12,7 +12,7 @@ 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 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 @@ -41,11 +41,13 @@ var/vore_default_contamination_flavor = "Generic" //Contamination descriptors 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_icons = 0 // Bitfield for which fields we have vore icons for. //var/vore_eyes = FALSE // For mobs with fullness specific eye overlays. + //var/belly_size_multiplier = 1 //CHOMPEDIT end. + 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. @@ -75,13 +77,14 @@ return myid // 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() var/new_fullness = 0 for(var/obj/belly/B as anything in vore_organs) for(var/mob/living/M in B) 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 * 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. vore_fullness = min(vore_capacity, new_fullness) */ diff --git a/code/modules/mob/living/simple_mob/subtypes/animal/alien animals/space_mouse.dm b/code/modules/mob/living/simple_mob/subtypes/animal/alien animals/space_mouse.dm index 7a7ab447d1..8b553c33fe 100644 --- a/code/modules/mob/living/simple_mob/subtypes/animal/alien animals/space_mouse.dm +++ b/code/modules/mob/living/simple_mob/subtypes/animal/alien animals/space_mouse.dm @@ -80,8 +80,9 @@ . = ..() if(!.) return - if(vore_fullness == 0 && movement_cooldown == 50) + if(vore_fullness == 0 && movement_cooldown == 10) 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) . = ..() movement_cooldown = 10 diff --git a/code/modules/mob/living/simple_mob/subtypes/vore/seagull.dm b/code/modules/mob/living/simple_mob/subtypes/vore/seagull.dm new file mode 100644 index 0000000000..84b6f87efd --- /dev/null +++ b/code/modules/mob/living/simple_mob/subtypes/vore/seagull.dm @@ -0,0 +1,60 @@ +/datum/category_item/catalogue/fauna/seagull // TODO: write actual lore if ever needed + name = "Wildlife - Seagull" + desc = "Classification: Larus brachyrhynchus\ +

\ + 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) \ No newline at end of file diff --git a/code/modules/vore/eating/living_ch.dm b/code/modules/vore/eating/living_ch.dm index 9731832dbe..77c07e98cf 100644 --- a/code/modules/vore/eating/living_ch.dm +++ b/code/modules/vore/eating/living_ch.dm @@ -18,6 +18,7 @@ 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_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_color = list("stomach" = "#000", "taur belly" = "#000") @@ -48,6 +49,7 @@ new_fullness[B.undergarment_chosen + "-color"] = B.undergarment_color 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] *= 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. vore_fullness_ex[belly_class] = min(vore_capacity_ex[belly_class], new_fullness[belly_class]) vore_fullness += new_fullness[belly_class] @@ -353,4 +355,4 @@ set name = "Check Nutrition" set category = "Abilities" set desc = "Check your current nutrition level." - to_chat(src, "Current nutrition level: [nutrition].") \ No newline at end of file + to_chat(src, "Current nutrition level: [nutrition].") diff --git a/icons/mob/vore.dmi b/icons/mob/vore.dmi index 4265bd359f..74df325400 100644 Binary files a/icons/mob/vore.dmi and b/icons/mob/vore.dmi differ diff --git a/maps/expedition_vr/beach/_beach.dm b/maps/expedition_vr/beach/_beach.dm index 70fbaa8dbf..b8cd10f60f 100644 --- a/maps/expedition_vr/beach/_beach.dm +++ b/maps/expedition_vr/beach/_beach.dm @@ -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)) mobs_to_pick_from = list( /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/vore/alienanimals/teppi = 10, - /mob/living/simple_mob/vore/alienanimals/teppi/baby = 1 + /mob/living/simple_mob/vore/alienanimals/teppi = 10, //ChompADD + /mob/living/simple_mob/vore/alienanimals/teppi/baby = 1 //ChompADD ) /obj/tether_away_spawner/beach_outside_friendly diff --git a/vorestation.dme b/vorestation.dme index cd5af539d2..8b1a320ab8 100644 --- a/vorestation.dme +++ b/vorestation.dme @@ -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_ch.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_queen.dm" #include "code\modules\mob\living\simple_mob\subtypes\vore\sheep.dm"