Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
160 changes: 160 additions & 0 deletions code/modules/mob/living/simple_animal/rogue/creacher/lobster.dm
Original file line number Diff line number Diff line change
@@ -0,0 +1,160 @@
/mob/living/simple_animal/hostile/retaliate/rogue/lobster
icon = 'icons/roguetown/mob/monster/lobsters.dmi'
name = "marsh crawler"
desc = "A swamp-dwelling creacher with a hardened carapace and pinching claws. A relatively harmless scavenger, they eat detritus from the bog."
icon_state = "marshcrawler"
icon_living = "marshcrawler"
icon_dead = "marshcrawler_dead"
emote_see = list("snaps it's claws.","pinches the air.")
density = FALSE
faction = list("neutral") //these shouldnt be aggressive
pass_flags = PASSTABLE | PASSMOB

botched_butcher_results = list(/obj/item/reagent_containers/food/snacks/rogue/meat/lobster = 1)
butcher_results = list(/obj/item/reagent_containers/food/snacks/rogue/meat/lobster = 2)
perfect_butcher_results = list(/obj/item/reagent_containers/food/snacks/rogue/meat/lobster = 2, /obj/item/reagent_containers/food/snacks/fat)

health = CHICKEN_HEALTH
maxHealth = CHICKEN_HEALTH

response_help_continuous = "pets"
response_help_simple = "pet"
response_disarm_continuous = "gently pushes aside"
response_disarm_simple = "gently push aside"
response_harm_continuous = "kicks"
response_harm_simple = "kick"

food_type = list(/obj/item/reagent_containers/food/snacks/rogue/meat,
/obj/item/bodypart,
/obj/item/organ)

base_intents = list(/datum/intent/simple/claw)
attack_sound = list('sound/vo/mobs/bogbug/bogbugattack1.ogg','sound/vo/mobs/bogbug/bogbugattack2.ogg','sound/vo/mobs/bogbug/bogbugattack3.ogg')
melee_damage_lower = 2
melee_damage_upper = 10

STACON = 5
STASTR = 5
STASPD = 5
STAEND = 5

retreat_distance = 2
minimum_distance = 1
deaggroprob = 0
defprob = 30
defdrain = 8
del_on_deaggro = 999 SECONDS
retreat_health = 0
food = 0

dodgetime = 20
aggressive = 0
// stat_attack = UNCONSCIOUS
body_eater = TRUE

/mob/living/simple_animal/hostile/retaliate/rogue/lobster/strong
name = "blood crawler"
desc = "A swamp-dwelling creacher with a hardened carapace and pinching claws. They have developed a taste for flesh, and they no longer wait for their meal to die first."
icon_state = "bloodcrawler"
icon_living = "bloodcrawler"
icon_dead = "bloodcrawler_dead"
health = VOLF_HEALTH //110hp
maxHealth = VOLF_HEALTH
faction = list("bugs")

melee_damage_lower = 10
melee_damage_upper = 25 //wider range of damage than volves
STACON = 7
STASTR = 7
STASPD = 6
STAEND = 10
retreat_distance = 0
minimum_distance = 0
body_eater = TRUE


/obj/effect/decal/remains/lobster
name = "remains"
gender = PLURAL
icon_state = "bones"
icon = 'icons/roguetown/mob/monster/vol.dmi'

/mob/living/simple_animal/hostile/retaliate/rogue/lobster/Initialize()
. = ..()
gender = MALE

/mob/living/simple_animal/hostile/retaliate/rogue/lobster/death(gibbed)
..()
update_icon()


/mob/living/simple_animal/hostile/retaliate/rogue/lobster/update_icon()
cut_overlays()
..()

/mob/living/simple_animal/hostile/retaliate/rogue/lobster/get_sound(input)
switch(input)
if("aggro")
return pick('sound/vo/mobs/bogbug/bogbug1.ogg','sound/vo/mobs/bogbug/bogbug2.ogg','sound/vo/mobs/bogbug/bogbug3.ogg')
if("pain")
return pick('sound/vo/mobs/bogbug/bogbughurt2.ogg')
if("death")
return pick('sound/vo/mobs/bogbug/bogbughurt1.ogg')
if("idle")
return pick('sound/vo/mobs/bogbug/bogbugidle.ogg')
if("cidle")
return pick('sound/vo/mobs/bogbug/bogbug3.ogg','sound/vo/mobs/bogbug/bogbugidle.ogg')

/mob/living/simple_animal/hostile/retaliate/rogue/lobster/taunted(mob/user)
emote("aggro")
Retaliate()
GiveTarget(user)
return

/mob/living/simple_animal/hostile/retaliate/rogue/lobster/Life()
..()
if(pulledby)
Retaliate()
GiveTarget(pulledby)

/mob/living/simple_animal/hostile/retaliate/rogue/lobster/simple_limb_hit(zone)
if(!zone)
return ""
switch(zone)
if(BODY_ZONE_PRECISE_R_EYE)
return "head"
if(BODY_ZONE_PRECISE_L_EYE)
return "head"
if(BODY_ZONE_PRECISE_NOSE)
return "nose"
if(BODY_ZONE_PRECISE_MOUTH)
return "mouth"
if(BODY_ZONE_PRECISE_SKULL)
return "head"
if(BODY_ZONE_PRECISE_EARS)
return "head"
if(BODY_ZONE_PRECISE_NECK)
return "neck"
if(BODY_ZONE_PRECISE_L_HAND)
return "foreleg"
if(BODY_ZONE_PRECISE_R_HAND)
return "foreleg"
if(BODY_ZONE_PRECISE_L_FOOT)
return "leg"
if(BODY_ZONE_PRECISE_R_FOOT)
return "leg"
if(BODY_ZONE_PRECISE_STOMACH)
return "stomach"
if(BODY_ZONE_PRECISE_GROIN)
return "tail"
if(BODY_ZONE_HEAD)
return "head"
if(BODY_ZONE_R_LEG)
return "leg"
if(BODY_ZONE_L_LEG)
return "leg"
if(BODY_ZONE_R_ARM)
return "foreleg"
if(BODY_ZONE_L_ARM)
return "foreleg"
return ..()
Binary file added icons/roguetown/mob/monster/lobsters.dmi
Binary file not shown.
6 changes: 6 additions & 0 deletions modular/Neu_Food/code/NeuFood.dm
Original file line number Diff line number Diff line change
Expand Up @@ -97,6 +97,12 @@
/obj/item/reagent_containers/food/snacks/rotten/egg
name = "rotted cackleberry"
icon_state = "egg"
/obj/item/reagent_containers/food/snacks/rotten/lobster
name = "rotten creeper flesh"
icon_state = "lobstermeat"
/obj/item/reagent_containers/food/snacks/rotten/lobter/fillet
name = "rotten creeper fillet"
icon_state = "lobsterfillet"
/obj/item/reagent_containers/food/snacks/rotten/egg/throw_impact(atom/hit_atom, datum/thrownthing/thrownthing)
if(!..()) //was it caught by a mob?
var/turf/T = get_turf(hit_atom)
Expand Down
31 changes: 20 additions & 11 deletions modular/Neu_Food/code/cooked/NeuFood_snacks.dm
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@
return FALSE
if(user.mind)
short_cooktime = (50 - ((user.mind.get_skill_level(/datum/skill/craft/cooking))*5))
long_cooktime = (90 - ((user.mind.get_skill_level(/datum/skill/craft/cooking))*10))
long_cooktime = (90 - ((user.mind.get_skill_level(/datum/skill/craft/cooking))*10))
if(istype(mill))
if(!mill.reagents.has_reagent(/datum/reagent/consumable/blackpepper, 1))
to_chat(user, "There's not enough black pepper to make anything with.")
Expand Down Expand Up @@ -72,7 +72,7 @@
var/found_table = locate(/obj/structure/table) in (loc)
if(user.mind)
short_cooktime = (50 - ((user.mind.get_skill_level(/datum/skill/craft/cooking))*5))
long_cooktime = (90 - ((user.mind.get_skill_level(/datum/skill/craft/cooking))*10))
long_cooktime = (90 - ((user.mind.get_skill_level(/datum/skill/craft/cooking))*10))
if(istype(I, /obj/item/reagent_containers/food/snacks/rogue/friedegg))
if(isturf(loc)&& (found_table))
playsound(get_turf(user), 'sound/foley/dropsound/gen_drop.ogg', 30, TRUE, -1)
Expand All @@ -96,7 +96,7 @@
var/found_table = locate(/obj/structure/table) in (loc)
if(user.mind)
short_cooktime = (50 - ((user.mind.get_skill_level(/datum/skill/craft/cooking))*5))
long_cooktime = (90 - ((user.mind.get_skill_level(/datum/skill/craft/cooking))*10))
long_cooktime = (90 - ((user.mind.get_skill_level(/datum/skill/craft/cooking))*10))
if(istype(I, /obj/item/reagent_containers/food/snacks/rogue/cheddarwedge))
if(isturf(loc)&& (found_table))
playsound(get_turf(user), 'sound/foley/dropsound/gen_drop.ogg', 30, TRUE, -1)
Expand All @@ -123,7 +123,7 @@
var/found_table = locate(/obj/structure/table) in (loc)
if(user.mind)
short_cooktime = (50 - ((user.mind.get_skill_level(/datum/skill/craft/cooking))*5))
long_cooktime = (90 - ((user.mind.get_skill_level(/datum/skill/craft/cooking))*10))
long_cooktime = (90 - ((user.mind.get_skill_level(/datum/skill/craft/cooking))*10))
if(istype(I, /obj/item/reagent_containers/food/snacks/rogue/preserved/potato_baked))
if(isturf(loc)&& (found_table))
playsound(get_turf(user), 'sound/foley/dropsound/gen_drop.ogg', 30, TRUE, -1)
Expand Down Expand Up @@ -166,7 +166,7 @@
var/found_table = locate(/obj/structure/table) in (loc)
if(user.mind)
short_cooktime = (50 - ((user.mind.get_skill_level(/datum/skill/craft/cooking))*5))
long_cooktime = (90 - ((user.mind.get_skill_level(/datum/skill/craft/cooking))*10))
long_cooktime = (90 - ((user.mind.get_skill_level(/datum/skill/craft/cooking))*10))
if(istype(I, /obj/item/reagent_containers/food/snacks/rogue/meat/bacon/fried))
if(isturf(loc)&& (found_table))
playsound(get_turf(user), 'sound/foley/dropsound/gen_drop.ogg', 30, TRUE, -1)
Expand Down Expand Up @@ -197,7 +197,16 @@
rotprocess = SHELFLIFE_DECENT


/* ............. bogsteak ................ */
/obj/item/reagent_containers/food/snacks/rogue/meat/lobster/fried
name = "bogsteak"
desc = "tasty, now that the stench of decay has been cooked out of it."
rotprocess = SHELFLIFE_TINY //eat it quick

/obj/item/reagent_containers/food/snacks/rogue/meat/lobster/fillet/fried
name = "creeper fillet"
desc = "Finely minced and fried creeper fillet, it smells so good, you forget that the creeper probably ate human before."
rotprocess = SHELFLIFE_TINY //eat it quick
/*---------------\
| Sausage snacks |
\---------------*/
Expand All @@ -215,7 +224,7 @@
var/found_table = locate(/obj/structure/table) in (loc)
if(user.mind)
short_cooktime = (50 - ((user.mind.get_skill_level(/datum/skill/craft/cooking))*5))
long_cooktime = (90 - ((user.mind.get_skill_level(/datum/skill/craft/cooking))*10))
long_cooktime = (90 - ((user.mind.get_skill_level(/datum/skill/craft/cooking))*10))
if(istype(I, /obj/item/reagent_containers/food/snacks/rogue/preserved/cabbage_fried))
if(isturf(loc)&& (found_table))
playsound(get_turf(user), 'sound/foley/dropsound/gen_drop.ogg', 30, TRUE, -1)
Expand Down Expand Up @@ -269,7 +278,7 @@
var/found_table = locate(/obj/structure/table) in (loc)
if(user.mind)
short_cooktime = (50 - ((user.mind.get_skill_level(/datum/skill/craft/cooking))*5))
long_cooktime = (90 - ((user.mind.get_skill_level(/datum/skill/craft/cooking))*10))
long_cooktime = (90 - ((user.mind.get_skill_level(/datum/skill/craft/cooking))*10))
if(istype(I, /obj/item/reagent_containers/food/snacks/rogue/meat/sausage/cooked))
if(isturf(loc)&& (found_table))
playsound(get_turf(user), 'sound/foley/dropsound/gen_drop.ogg', 30, TRUE, -1)
Expand All @@ -294,7 +303,7 @@
var/found_table = locate(/obj/structure/table) in (loc)
if(user.mind)
short_cooktime = (50 - ((user.mind.get_skill_level(/datum/skill/craft/cooking))*5))
long_cooktime = (90 - ((user.mind.get_skill_level(/datum/skill/craft/cooking))*10))
long_cooktime = (90 - ((user.mind.get_skill_level(/datum/skill/craft/cooking))*10))
if(istype(I, /obj/item/reagent_containers/food/snacks/rogue/meat/sausage/cooked))
if(isturf(loc)&& (found_table))
playsound(get_turf(user), 'sound/foley/dropsound/gen_drop.ogg', 30, TRUE, -1)
Expand All @@ -315,7 +324,7 @@
qdel(src)
else
return ..()


/* ............. Fried onions ................ */
/obj/item/reagent_containers/food/snacks/rogue/preserved/onion_fried
Expand All @@ -330,7 +339,7 @@
var/found_table = locate(/obj/structure/table) in (loc)
if(user.mind)
short_cooktime = (50 - ((user.mind.get_skill_level(/datum/skill/craft/cooking))*5))
long_cooktime = (90 - ((user.mind.get_skill_level(/datum/skill/craft/cooking))*10))
long_cooktime = (90 - ((user.mind.get_skill_level(/datum/skill/craft/cooking))*10))
if(istype(I, /obj/item/reagent_containers/food/snacks/rogue/meat/sausage/cooked))
if(isturf(loc)&& (found_table))
playsound(get_turf(user), 'sound/foley/dropsound/gen_drop.ogg', 30, TRUE, -1)
Expand All @@ -356,7 +365,7 @@
var/found_table = locate(/obj/structure/table) in (loc)
if(user.mind)
short_cooktime = (50 - ((user.mind.get_skill_level(/datum/skill/craft/cooking))*5))
long_cooktime = (90 - ((user.mind.get_skill_level(/datum/skill/craft/cooking))*10))
long_cooktime = (90 - ((user.mind.get_skill_level(/datum/skill/craft/cooking))*10))
if(istype(I, /obj/item/reagent_containers/food/snacks/rogue/meat/sausage/cooked))
if(isturf(loc)&& (found_table))
playsound(get_turf(user), 'sound/foley/dropsound/gen_drop.ogg', 30, TRUE, -1)
Expand Down
17 changes: 16 additions & 1 deletion modular/Neu_Food/code/raw/NeuFood_meat.dm
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@
slice_path = /obj/item/reagent_containers/food/snacks/rogue/meat/mince/beef
slice_bclass = BCLASS_CHOP

/* ............. Pork, spidermeat, birdmeat ................ */
/* ............. Pork, spidermeat, birdmeat, crawler/lobster meat ................ */
/obj/item/reagent_containers/food/snacks/rogue/meat/fatty //pork
name = "raw pigflesh"
icon_state = "meatcutlet"
Expand Down Expand Up @@ -83,6 +83,21 @@
cooked_type = /obj/item/reagent_containers/food/snacks/rogue/meat/poultry/cutlet/fried
become_rot_type = /obj/item/reagent_containers/food/snacks/rotten/chickenleg

/obj/item/reagent_containers/food/snacks/rogue/meat/lobster //tastes good but has little sustenance, luxury good. Just dont ask what the lobsters eat
name = "crawler flesh"
slices_num = 2
icon_state = "lobstermeat"
become_rot_type = /obj/item/reagent_containers/food/snacks/rotten/lobster
cooked_type = /obj/item/reagent_containers/food/snacks/rogue/meat/lobster/fried
slice_path = /obj/item/reagent_containers/food/snacks/rogue/meat/lobster/fillet
rotprocess = SHELFLIFE_TINY

/obj/item/reagent_containers/food/snacks/rogue/meat/lobster/fillet
name = "crawler fillet"
ingredient_size = 2
icon_state = "lobsterfillet"
become_rot_type = /obj/item/reagent_containers/food/snacks/rotten/lobter/fillet

/* ........ Fish sounds ................ */
/obj/item/reagent_containers/food/snacks/fish
chopping_sound = TRUE
Expand Down
Binary file modified modular/Neu_Food/icons/food.dmi
Binary file not shown.
1 change: 1 addition & 0 deletions stonekeep.dme
Original file line number Diff line number Diff line change
Expand Up @@ -2716,6 +2716,7 @@
#include "code\modules\mob\living\simple_animal\rogue\creacher\headless.dm"
#include "code\modules\mob\living\simple_animal\rogue\creacher\honeyspider.dm"
#include "code\modules\mob\living\simple_animal\rogue\creacher\lamia.dm"
#include "code\modules\mob\living\simple_animal\rogue\creacher\lobster.dm"
#include "code\modules\mob\living\simple_animal\rogue\creacher\mole.dm"
#include "code\modules\mob\living\simple_animal\rogue\creacher\shade.dm"
#include "code\modules\mob\living\simple_animal\rogue\creacher\troll.dm"
Expand Down