Schlorrgo Evolution Expanded (#12385)

This commit is contained in:
Alberyk
2021-08-31 17:58:09 -03:00
committed by GitHub
parent fb763d64c0
commit 869f8fbca3
12 changed files with 260 additions and 69 deletions
+1
View File
@@ -2275,6 +2275,7 @@
#include "code\modules\mob\living\simple_animal\friendly\mushroom.dm"
#include "code\modules\mob\living\simple_animal\friendly\rat.dm"
#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\spiderbot.dm"
#include "code\modules\mob\living\simple_animal\friendly\tomato.dm"
+13 -1
View File
@@ -663,7 +663,19 @@ var/list/holder_mob_icon_cache = list()
/obj/item/holder/schlorrgo
name = "schlorrgo"
icon = 'icons/mob/npc/livestock.dmi'
icon = 'icons/mob/npc/schlorrgo.dmi'
icon_state = "schlorgo"
item_state = "schlorgo"
w_class = ITEMSIZE_NORMAL
/obj/item/holder/schlorrgo/baby
name = "schlorrgo hatchling"
icon_state = "schlorrgo_baby"
item_state = "schlorrgo_baby"
w_class = ITEMSIZE_SMALL
/obj/item/holder/schlorrgo/fat
name = "fat schlorrgo"
icon_state = "schlorrgo_fat"
item_state = "schlorrgo_fat"
w_class = ITEMSIZE_LARGE
@@ -97,63 +97,10 @@
melee_damage_lower = 15
melee_damage_upper = 15
attacktext = "bitten"
attacktext = "gored"
attack_sound = 'sound/weapons/bite.ogg'
hostile_nameable = TRUE
butchering_products = list(/obj/item/stack/material/animalhide = 5)
meat_amount = 8
/mob/living/simple_animal/schlorrgo
name = "schlorrgo"
desc = "A fat creature native to the world of Hro'zamal."
icon = 'icons/mob/npc/livestock.dmi'
icon_state = "schlorgo"
icon_living = "schlorgo"
icon_dead = "schlorgo_dead"
speak = list("Ough!")
speak_emote = list("moans", "moans raucously")
emote_hear = list("moans", "moans raucously")
emote_see = list("rolls around")
emote_sounds = list('sound/effects/creatures/ough.ogg')
meat_amount = 3
hunger_enabled = TRUE
canbrush = TRUE
maxHealth = 50
health = 50
has_udder = TRUE
milk_type = /decl/reagent/drink/milk/schlorrgo
meat_type = /obj/item/reagent_containers/food/snacks/meat/adhomai
organ_names = list("head", "chest", "fatty core", "blubberous torso", "thick centre", "left leg", "right leg")
butchering_products = list(/obj/item/reagent_containers/food/snacks/spreads/lard = 5)
holder_type = /obj/item/holder/schlorrgo
/mob/living/simple_animal/schlorrgo/unarmed_harm_attack(mob/living/carbon/human/user)
var/obj/item/organ/external/left_leg = user.get_organ(BP_L_LEG)
var/obj/item/organ/external/right_leg = user.get_organ(BP_R_LEG)
if(left_leg?.is_usable() && right_leg?.is_usable())
user.visible_message(SPAN_WARNING("[user] punts \the [src]!"))
user.do_attack_animation(src)
make_noise()
throw_at(get_edge_target_turf(user, get_dir(user, src)), 4, 1)
poke(TRUE)
else
..()
/mob/living/simple_animal/schlorrgo/turf_collision(var/turf/T, var/speed = THROWFORCE_SPEED_DIVISOR)
visible_message(SPAN_WARNING("[src] harmlessly bounces off \the [T]!"))
playsound(T, 'sound/effects/bangtaper.ogg', 50, 1, 1)
make_noise()
/mob/living/simple_animal/schlorrgo/fall_impact()
visible_message(SPAN_NOTICE("\The [src] bounces after landing!"))
step(src, pick(alldirs), 1)
return FALSE
@@ -285,20 +285,6 @@
if(chicken_count < MAX_CHICKENS && prob(10))
START_PROCESSING(SSprocessing, E)
/obj/item/reagent_containers/food/snacks/egg
var/amount_grown = 0
/obj/item/reagent_containers/food/snacks/egg/process()
if(isturf(loc))
amount_grown += rand(1,2)
if(amount_grown >= 100)
visible_message("[src] hatches with a quiet cracking sound.")
new /mob/living/simple_animal/chick(get_turf(src))
STOP_PROCESSING(SSprocessing, src)
qdel(src)
else
STOP_PROCESSING(SSprocessing, src)
// Penguins
/mob/living/simple_animal/penguin
@@ -0,0 +1,216 @@
#define EGG_SCHLORRGO 0
#define BABY_SCHLORRGO 1
#define NORMAL_SCHLORRGO 2
#define FAT_SCHLORRGO 3
#define WIDE_SCHLORRGO 4
#define COLOSSAL_SCHLORRGO 5
/mob/living/simple_animal/schlorrgo
name = "schlorrgo"
desc = "A fat creature native to the world of Hro'zamal."
icon = 'icons/mob/npc/schlorrgo.dmi'
icon_state = "schlorrgo"
icon_living = "schlorrgo"
icon_dead = "schlorrgo_dead"
speak = list("Ough!")
speak_emote = list("moans", "moans raucously")
emote_hear = list("moans", "moans raucously")
emote_see = list("rolls around")
emote_sounds = list('sound/effects/creatures/ough.ogg')
meat_amount = 1
hunger_enabled = TRUE
canbrush = TRUE
maxHealth = 30
health = 30
has_udder = TRUE
milk_type = /decl/reagent/drink/milk/schlorrgo
friendly = "bumped"
meat_type = /obj/item/reagent_containers/food/snacks/meat/adhomai
organ_names = list("head", "chest", "fatty core", "blubberous torso", "thick centre", "left leg", "right leg")
butchering_products = list(/obj/item/reagent_containers/food/snacks/spreads/lard = 2)
holder_type = /obj/item/holder/schlorrgo
max_nutrition = 100
stomach_size_mult = 10
metabolic_factor = 0.3
var/starting_nutrition = 100
var/nutrition_threshold = 80
var/current_size = BABY_SCHLORRGO
/mob/living/simple_animal/schlorrgo/Initialize()
. = ..()
nutrition = starting_nutrition
check_wideness_change()
/mob/living/simple_animal/schlorrgo/unarmed_harm_attack(mob/living/carbon/human/user)
var/obj/item/organ/external/left_leg = user.get_organ(BP_L_LEG)
var/obj/item/organ/external/right_leg = user.get_organ(BP_R_LEG)
if(left_leg?.is_usable() && right_leg?.is_usable())
if(current_size >= WIDE_SCHLORRGO)
user.visible_message(SPAN_WARNING("[user] harmlessly kicks \the [src]!"))
var/obj/item/organ/external/leg = pick(right_leg, left_leg)
if(leg)
leg.take_damage(5)
else
user.visible_message(SPAN_WARNING("[user] punts \the [src]!"))
user.do_attack_animation(src)
make_noise()
throw_at(get_edge_target_turf(user, get_dir(user, src)), 4, 1)
poke(TRUE)
else
..()
/mob/living/simple_animal/schlorrgo/turf_collision(var/turf/T, var/speed = THROWFORCE_SPEED_DIVISOR)
visible_message(SPAN_WARNING("[src] harmlessly bounces off \the [T]!"))
playsound(T, 'sound/effects/bangtaper.ogg', 50, 1, 1)
make_noise()
/mob/living/simple_animal/schlorrgo/fall_impact()
visible_message(SPAN_NOTICE("\The [src] bounces after landing!"))
step(src, pick(alldirs), 1)
return FALSE
/mob/living/simple_animal/schlorrgo/process_food()
..()
check_wideness_change()
/mob/living/simple_animal/schlorrgo/proc/check_wideness_change()
if(nutrition >= nutrition_threshold)
increase_wideness()
/mob/living/simple_animal/schlorrgo/proc/increase_wideness()
switch(current_size)
if(EGG_SCHLORRGO)
name = "schlorrgo hatchling"
desc = "A fat creature native to the world of Hro'zamal. This one just hatched from an egg."
current_size = BABY_SCHLORRGO
max_nutrition = 100
nutrition_threshold = 80
maxHealth = 30
health = 30
mob_size = MOB_TINY
meat_amount = 1
butchering_products = list(/obj/item/reagent_containers/food/snacks/spreads/lard = 2)
icon_state = "schlorrgo_baby"
icon_living = "schlorrgo_baby"
icon_dead = "schlorrgo_baby_dead"
holder_type = /obj/item/holder/schlorrgo/baby
if(BABY_SCHLORRGO)
name = "schlorrgo"
desc = "A fat creature native to the world of Hro'zamal."
current_size = NORMAL_SCHLORRGO
max_nutrition = 200
nutrition_threshold = 150
maxHealth = 50
health = 50
mob_size = MOB_SMALL
meat_amount = 3
butchering_products = list(/obj/item/reagent_containers/food/snacks/spreads/lard = 5)
icon_state = "schlorrgo"
icon_living = "schlorrgo"
icon_dead = "schlorrgo_dead"
holder_type = /obj/item/holder/schlorrgo
if(NORMAL_SCHLORRGO)
name = "fat schlorrgo"
desc = "A fat creature native to the world of Hro'zamal. This one is fatter than most schlorrgo."
current_size = FAT_SCHLORRGO
max_nutrition = 400
nutrition_threshold = 300
maxHealth = 100
health = 100
mob_size = MOB_MEDIUM
meat_amount = 6
butchering_products = list(/obj/item/reagent_containers/food/snacks/spreads/lard = 8)
icon_state = "schlorrgo_fat"
icon_living = "schlorrgo_fat"
icon_dead = "schlorrgo_fat_dead"
holder_type = /obj/item/holder/schlorrgo/fat
if(FAT_SCHLORRGO)
name = "massive schlorrgo"
desc = "A fat creature native to the world of Hro'zamal. This one is so big it can barely walk."
current_size = WIDE_SCHLORRGO
max_nutrition = 1000
nutrition_threshold = 800
maxHealth = 250
health = 250
mob_size = MOB_LARGE
meat_amount = 12
butchering_products = list(/obj/item/reagent_containers/food/snacks/spreads/lard = 12)
icon_state = "schlorrgo_wide"
icon_living = "schlorrgo_wide"
icon_dead = "schlorrgo_wide_dead"
melee_damage_lower = 15
melee_damage_upper = 15
attacktext = "crushed"
environment_smash = 1
resistance = 2
mob_swap_flags = HUMAN|SIMPLE_ANIMAL|SLIME|MONKEY
mob_push_flags = ALLMOBS
a_intent = I_HURT
emote_sounds = list('sound/effects/creatures/schlorrgo_scream.ogg')
holder_type = null
if(WIDE_SCHLORRGO)
name = "colossal schlorrgo"
desc = "A fat creature native to the world of Hro'zamal. This one has been immobilized by its massive weight."
current_size = COLOSSAL_SCHLORRGO
max_nutrition = 1500
maxHealth = 450
health = 450
mob_size = MOB_LARGE
meat_amount = 25
butchering_products = list(/obj/item/reagent_containers/food/snacks/spreads/lard = 25)
icon = 'icons/mob/npc/colossal_schlorrgo.dmi'
icon_state = "schlorrgo_colossal"
icon_living = "schlorrgo_colossal"
icon_dead = "schlorrgo_colossal_dead"
pixel_x = -8
anchored = TRUE
opacity = TRUE
melee_damage_lower = 25
melee_damage_upper = 25
environment_smash = 2
resistance = 3
mob_swap_flags = HUMAN|SIMPLE_ANIMAL|SLIME|MONKEY
mob_push_flags = ALLMOBS
a_intent = I_HURT
emote_sounds = list('sound/effects/creatures/schlorrgo_scream.ogg')
holder_type = null
update_icon()
/mob/living/simple_animal/schlorrgo/Move()
if(current_size >= COLOSSAL_SCHLORRGO)
return
..()
/mob/living/simple_animal/schlorrgo/attempt_grab(var/mob/living/grabber)
if(current_size >= WIDE_SCHLORRGO)
to_chat(grabber, SPAN_WARNING("\The [src] is too large to grab!"))
return FALSE
else
return TRUE
/mob/living/simple_animal/schlorrgo/baby
max_nutrition = 50
starting_nutrition = 50
nutrition_threshold = 30
current_size = EGG_SCHLORRGO
@@ -730,6 +730,7 @@
filling_color = "#FDFFD1"
volume = 10
reagents_to_add = list(/decl/reagent/nutriment/protein/egg = 3)
var/hatchling = /mob/living/simple_animal/chick
/obj/item/reagent_containers/food/snacks/egg/afterattack(obj/O as obj, mob/user as mob, proximity)
if(!(proximity && O.is_open_container()))
@@ -761,6 +762,20 @@
else
..()
/obj/item/reagent_containers/food/snacks/egg
var/amount_grown = 0
/obj/item/reagent_containers/food/snacks/egg/process()
if(isturf(loc))
amount_grown += rand(1,2)
if(amount_grown >= 100)
visible_message("[src] hatches with a quiet cracking sound.")
new hatchling(get_turf(src))
STOP_PROCESSING(SSprocessing, src)
qdel(src)
else
STOP_PROCESSING(SSprocessing, src)
/obj/item/reagent_containers/food/snacks/egg/blue
icon_state = "egg-blue"
@@ -785,6 +800,14 @@
/obj/item/reagent_containers/food/snacks/egg/yellow
icon_state = "egg-yellow"
/obj/item/reagent_containers/food/snacks/egg/schlorrgo
name = "alien egg"
desc = "A large mysterious egg."
icon_state = "schlorrgo_egg"
filling_color = "#e9ffd1"
volume = 20
hatchling = /mob/living/simple_animal/schlorrgo/baby
/obj/item/reagent_containers/food/snacks/friedegg
name = "fried egg"
desc = "A fried egg, with a touch of salt and pepper."
+6
View File
@@ -0,0 +1,6 @@
author: Alberyk, Kyres1
delete-after: True
changes:
- rscadd: "Added new Schlorrgo mechanics."
Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 47 KiB

After

Width:  |  Height:  |  Size: 44 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 183 KiB

After

Width:  |  Height:  |  Size: 184 KiB

Binary file not shown.