diff --git a/code/__defines/faction.dm b/code/__defines/faction.dm index 5de9f18f92..d5407d755f 100644 --- a/code/__defines/faction.dm +++ b/code/__defines/faction.dm @@ -73,6 +73,7 @@ #define FACTION_MEOWL "meowl" #define FACTION_MIMIC "mimic" #define FACTION_MOUSE "mouse" +#define FACTION_MOTHROACH "mothroach" #define FACTION_NANOMACHINES "nanomachines" #define FACTION_NEUTRAL "neutral" #define FACTION_OTIE "otie" diff --git a/code/datums/supplypacks/hydroponics.dm b/code/datums/supplypacks/hydroponics.dm index 29ba9d1346..00efcaca98 100644 --- a/code/datums/supplypacks/hydroponics.dm +++ b/code/datums/supplypacks/hydroponics.dm @@ -63,6 +63,15 @@ containertype = /obj/structure/largecrate/animal/catslug containername = "Catslug Crate" +/datum/supply_pack/hydro/catslug + name = "Mothroach Crate" + desc = "Put the mothroach on your head and find out what true cuteness looks like. \ + Contains one mothroach." + contains = list() + cost = 45 + containertype = /obj/structure/largecrate/animal/mothroach + containername = "Mothroach Crate" + /datum/supply_pack/hydro/hydroponics name = "Hydroponics Supply Crate" desc = "A set of standard hydroponics supplies. Requires Hydroponics access." diff --git a/code/game/objects/effects/semirandom_mobs_vr.dm b/code/game/objects/effects/semirandom_mobs_vr.dm index 63606e7659..e304bb910e 100644 --- a/code/game/objects/effects/semirandom_mobs_vr.dm +++ b/code/game/objects/effects/semirandom_mobs_vr.dm @@ -46,6 +46,7 @@ list(/mob/living/simple_mob/animal/passive/lizard), list(/mob/living/simple_mob/animal/passive/mouse), list(/mob/living/simple_mob/animal/passive/mouse/jerboa), + list(/mob/living/simple_mob/animal/passive/mothroach), list(/mob/living/simple_mob/animal/passive/opossum), list(/mob/living/simple_mob/animal/passive/pillbug), list(/mob/living/simple_mob/animal/passive/snake), diff --git a/code/game/objects/random/mob.dm b/code/game/objects/random/mob.dm index 46d916dbd0..d68a687bd2 100644 --- a/code/game/objects/random/mob.dm +++ b/code/game/objects/random/mob.dm @@ -31,6 +31,7 @@ prob(6);/mob/living/simple_mob/animal/goat, prob(10);/mob/living/simple_mob/animal/passive/penguin, prob(10);/mob/living/simple_mob/animal/passive/mouse, + prob(10);/mob/living/simple_mob/animal/passive/mothroach, prob(10);/mob/living/simple_mob/animal/passive/yithian, prob(10);/mob/living/simple_mob/animal/passive/tindalos, prob(10);/mob/living/simple_mob/animal/passive/pillbug, diff --git a/code/game/objects/structures/crates_lockers/largecrate.dm b/code/game/objects/structures/crates_lockers/largecrate.dm index be3c7ef231..b068847354 100644 --- a/code/game/objects/structures/crates_lockers/largecrate.dm +++ b/code/game/objects/structures/crates_lockers/largecrate.dm @@ -134,3 +134,7 @@ /obj/structure/largecrate/animal/catslug name = "catslug carrier" starts_with = list(/mob/living/simple_mob/vore/alienanimals/catslug) + +/obj/structure/largecrate/animal/mothroach + name = "mothroach carrier" + starts_with = list(/mob/living/simple_mob/animal/passive/mothroach) diff --git a/code/modules/events/infestation.dm b/code/modules/events/infestation.dm index ec5de692ea..adc8179e5d 100644 --- a/code/modules/events/infestation.dm +++ b/code/modules/events/infestation.dm @@ -13,7 +13,8 @@ #define VERM_MICE 0 #define VERM_LIZARDS 1 -#define VERM_SPIDERS 2 +#define VERM_MOTHROACH 2 +#define VERM_SPIDERS 3 //CHOMPEdit - This edit wasn't commented >:( /datum/event/infestation announceWhen = 10 @@ -24,7 +25,7 @@ var/vermstring /datum/event/infestation/start() -//CHOMP Edit changed for Southern Cross areas +//CHOMPEdit changed for Southern Cross areas location = rand(0,9) var/list/turf/simulated/floor/turfs = list() var/spawn_area_type @@ -95,8 +96,13 @@ max_number = 8 //CHOMP edit vermstring = "spiders" - /* //Chomp REMOVE - in upstream file, not used here + if(VERM_MOTHROACH) + spawn_types = /mob/living/simple_mob/animal/passive/mothroach + min_number = 1 //CHOMP edit + max_number = 3 //CHOMP edit + vermstring = "mothroaches" // Check if any landmarks exist! + /* //Chomp REMOVE - in upstream file, not used here for(var/obj/effect/landmark/C in GLOB.landmarks_list) if(C.name == "verminstart") spawn_locations.Add(C.loc) @@ -172,3 +178,4 @@ #undef VERM_MICE #undef VERM_LIZARDS #undef VERM_SPIDERS // Chomp EDIT +#undef VERM_MOTHROACH diff --git a/code/modules/mob/living/carbon/human/species/lleill/lleill_items.dm b/code/modules/mob/living/carbon/human/species/lleill/lleill_items.dm index 5e84292715..1cca104c57 100644 --- a/code/modules/mob/living/carbon/human/species/lleill/lleill_items.dm +++ b/code/modules/mob/living/carbon/human/species/lleill/lleill_items.dm @@ -306,6 +306,7 @@ var/tf_possible_types = list( "mouse" = /mob/living/simple_mob/animal/passive/mouse, "rat" = /mob/living/simple_mob/animal/passive/mouse/rat, + "mothroach" = /mob/living/simple_mob/animal/passive/mothroach, "giant rat" = /mob/living/simple_mob/vore/aggressive/rat, "dust jumper" = /mob/living/simple_mob/vore/alienanimals/dustjumper, "woof" = /mob/living/simple_mob/vore/woof, diff --git a/code/modules/mob/living/simple_mob/subtypes/animal/passive/mothroach.dm b/code/modules/mob/living/simple_mob/subtypes/animal/passive/mothroach.dm new file mode 100644 index 0000000000..ef1e532108 --- /dev/null +++ b/code/modules/mob/living/simple_mob/subtypes/animal/passive/mothroach.dm @@ -0,0 +1,99 @@ +/datum/category_item/catalogue/fauna/mothroach + name = "Alien Wildlife - Mothroach" + desc = "The Mothroach is a terrestrial creature that is a hybrid between a mothperson and a cockroach." + value = CATALOGUER_REWARD_MEDIUM + +/mob/living/simple_mob/animal/passive/mothroach + name = "mothroach" + desc = "This is the adorable by-product of multiple attempts at genetically mixing mothpeople with cockroaches." + catalogue_data = list(/datum/category_item/catalogue/fauna/mothroach) + + icon = 'icons/mob/animal.dmi' + icon_state = "mothroach" + icon_living = "mothroach" + icon_dead = "mothroach_dead" + icon_rest = "mothroach_rest" + + faction = FACTION_MOTHROACH + maxHealth = 50 + health = 50 + movement_cooldown = -1 + + see_in_dark = 10 + + meat_amount = 2 + meat_type = /obj/item/reagent_containers/food/snacks/meat + holder_type = /obj/item/holder/mothroach + + response_help = "pats" + response_disarm = "shoos" + response_harm = "hits" + speak_emote = list("flutters") + + harm_intent_damage = 1 + melee_damage_lower = 1 + melee_damage_upper = 2 + attack_sharp = FALSE + attacktext = list("hits") + + mob_size = MOB_SMALL + pass_flags = PASSTABLE + density = FALSE + friendly = list("pats") + can_climb = TRUE + climbing_delay = 2.0 + + say_list_type = /datum/say_list/mothroach + + allow_mind_transfer = TRUE + +/mob/living/simple_mob/animal/passive/mothroach/Initialize(mapload) + . = ..() + + add_verb(src, /mob/living/proc/ventcrawl) + add_verb(src, /mob/living/proc/hide) + + real_name = name + +/mob/living/simple_mob/animal/passive/mothroach/attack_hand(mob/user) + . = ..() + + if(stat != DEAD) + playsound(src, 'sound/voice/scream/moth/moth_scream.ogg', 50, TRUE) + +/mob/living/simple_mob/animal/passive/mothroach/attackby(obj/item/O, mob/user) + . = ..() + + if(stat != DEAD) + playsound(src, 'sound/voice/scream/moth/moth_scream.ogg', 50, TRUE) + +/datum/say_list/mothroach + emote_hear = list("flutters") + +/obj/item/holder/mothroach + name = "mothroach" + desc = "This is the adorable by-product of multiple attempts at genetically mixing mothpeople with cockroaches." + + icon = 'icons/mob/animal.dmi' + icon_state = "mothroach" + + item_state = "mothroach" + slot_flags = SLOT_HEAD + w_class = ITEMSIZE_TINY + item_icons = list( + slot_l_hand_str = 'icons/mob/lefthand_holder.dmi', + slot_r_hand_str = 'icons/mob/righthand_holder.dmi', + slot_head_str = 'icons/mob/head.dmi', + ) + +/mob/living/simple_mob/animal/passive/mothroach/bar + name = "mothroach bartender" + desc = "A mothroach serving drinks. Look at him go." + icon_state = "barroach" + icon_living = "barroach" + icon_dead = "barroach_dead" + + holder_type = /obj/item/holder/mothroach/bar + +/obj/item/holder/mothroach/bar + item_state = "barroach" diff --git a/code/modules/research/tg/experisci/experiment/instances/misc.dm b/code/modules/research/tg/experisci/experiment/instances/misc.dm index 6cf5ebb435..e62aec8227 100644 --- a/code/modules/research/tg/experisci/experiment/instances/misc.dm +++ b/code/modules/research/tg/experisci/experiment/instances/misc.dm @@ -20,6 +20,7 @@ required_points = 1 required_atoms = list( /mob/living/simple_mob/animal/passive/mouse = 1, + /mob/living/simple_mob/animal/passive/mothroach = 1, /mob/living/simple_mob/vore/otie/red/chubby/cocoa = 1, /mob/living/simple_mob/vore/aggressive/rat/pet = 1, ) diff --git a/code/modules/xenoarcheaology/artifacts/autocloner.dm b/code/modules/xenoarcheaology/artifacts/autocloner.dm index f3fb54e32f..8599d92811 100644 --- a/code/modules/xenoarcheaology/artifacts/autocloner.dm +++ b/code/modules/xenoarcheaology/artifacts/autocloner.dm @@ -37,6 +37,7 @@ /mob/living/simple_mob/animal/passive/bird/parrot, /mob/living/simple_mob/animal/passive/crab, /mob/living/simple_mob/animal/passive/mouse, + /mob/living/simple_mob/animal/passive/mothroach, /mob/living/simple_mob/animal/goat) //todo: how the hell is the asteroid permanently powered? diff --git a/code/modules/xenoarcheaology/artifacts/replicator_vr.dm b/code/modules/xenoarcheaology/artifacts/replicator_vr.dm index 52b49c2b18..7df710c214 100644 --- a/code/modules/xenoarcheaology/artifacts/replicator_vr.dm +++ b/code/modules/xenoarcheaology/artifacts/replicator_vr.dm @@ -16,6 +16,7 @@ /mob/living/simple_mob/animal/passive/chicken, /mob/living/simple_mob/animal/passive/opossum, /mob/living/simple_mob/animal/passive/mouse, + /mob/living/simple_mob/animal/passive/mothroach, /mob/living/simple_mob/vore/rabbit, /mob/living/simple_mob/animal/goat, /mob/living/simple_mob/animal/sif/tymisian, diff --git a/icons/mob/animal.dmi b/icons/mob/animal.dmi index 95a2dc3c4b..f1d5143b43 100644 Binary files a/icons/mob/animal.dmi and b/icons/mob/animal.dmi differ diff --git a/icons/mob/head.dmi b/icons/mob/head.dmi index 983a4f95b2..fb9a47cb36 100644 Binary files a/icons/mob/head.dmi and b/icons/mob/head.dmi differ diff --git a/icons/mob/lefthand_holder.dmi b/icons/mob/lefthand_holder.dmi index e5cded14f1..16eeb41241 100644 Binary files a/icons/mob/lefthand_holder.dmi and b/icons/mob/lefthand_holder.dmi differ diff --git a/icons/mob/righthand_holder.dmi b/icons/mob/righthand_holder.dmi index edc2e8d4d3..9729791a1b 100644 Binary files a/icons/mob/righthand_holder.dmi and b/icons/mob/righthand_holder.dmi differ diff --git a/maps/stellar_delight/stellar_delight2.dmm b/maps/stellar_delight/stellar_delight2.dmm index d6731f494e..2464ec5d92 100644 --- a/maps/stellar_delight/stellar_delight2.dmm +++ b/maps/stellar_delight/stellar_delight2.dmm @@ -4344,6 +4344,13 @@ /obj/random/tech_supply, /turf/simulated/floor/tiled/eris/dark/orangecorner, /area/engineering/engine_eva) +"jh" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/mob/living/simple_mob/animal/passive/mothroach/bar, +/turf/simulated/floor/lino, +/area/crew_quarters/bar) "ji" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /obj/machinery/atmospherics/pipe/simple/hidden/supply, @@ -34382,7 +34389,7 @@ sP dw On py -fp +jh Dj Sx po diff --git a/maps/tether/tether-03-surface3.dmm b/maps/tether/tether-03-surface3.dmm index 511fe0f478..364a34d39c 100644 --- a/maps/tether/tether-03-surface3.dmm +++ b/maps/tether/tether-03-surface3.dmm @@ -10095,6 +10095,10 @@ }, /turf/simulated/floor/tiled, /area/rnd/outpost/xenobiology/outpost_north_airlock) +"aqB" = ( +/mob/living/simple_mob/animal/passive/mothroach/bar, +/turf/simulated/floor/lino, +/area/crew_quarters/bar) "aqC" = ( /obj/item/radio/intercom{ dir = 1; @@ -62208,7 +62212,7 @@ anj aKl aGx bgz -bgz +aqB ato bcp atN diff --git a/sound/voice/scream/moth/moth_scream.ogg b/sound/voice/scream/moth/moth_scream.ogg new file mode 100644 index 0000000000..e3cc5b0c9c Binary files /dev/null and b/sound/voice/scream/moth/moth_scream.ogg differ diff --git a/vorestation.dme b/vorestation.dme index 41de82b6ae..a78c4cddfe 100644 --- a/vorestation.dme +++ b/vorestation.dme @@ -3612,6 +3612,7 @@ #include "code\modules\mob\living\simple_mob\subtypes\animal\passive\lizard.dm" #include "code\modules\mob\living\simple_mob\subtypes\animal\passive\lizard_mutant_event.dm" #include "code\modules\mob\living\simple_mob\subtypes\animal\passive\misc.dm" +#include "code\modules\mob\living\simple_mob\subtypes\animal\passive\mothroach.dm" #include "code\modules\mob\living\simple_mob\subtypes\animal\passive\mouse.dm" #include "code\modules\mob\living\simple_mob\subtypes\animal\passive\mouse_mutant_event.dm" #include "code\modules\mob\living\simple_mob\subtypes\animal\passive\mouse_vr.dm"