diff --git a/_maps/map_files/Pahrump-AB/Pahrump-AB.dmm b/_maps/map_files/Pahrump-AB/Pahrump-AB.dmm index 8ca7dab189d..30dae64a69c 100644 --- a/_maps/map_files/Pahrump-AB/Pahrump-AB.dmm +++ b/_maps/map_files/Pahrump-AB/Pahrump-AB.dmm @@ -8227,6 +8227,10 @@ }, /turf/open/floor/f13/wood, /area/f13/village) +"aGe" = ( +/mob/living/simple_animal/hostile/eyebot/virtual, +/turf/open/floor/plasteel/f13/vault_floor/misc/vaultrust, +/area/f13/brotherhood) "aGf" = ( /obj/effect/landmark/start/f13/wastelander, /turf/open/floor/f13{ @@ -11010,6 +11014,13 @@ icon_state = "greenrustychess" }, /area/f13/building/massfusion) +"aPD" = ( +/obj/effect/turf_decal/gravel_edge{ + dir = 8 + }, +/obj/structure/fence, +/turf/open/indestructible/ground/outside/dirt, +/area/f13/wasteland) "aPF" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/gallow, @@ -17278,6 +17289,7 @@ /area/f13/wasteland) "bAT" = ( /obj/effect/decal/cleanable/insectguts, +/mob/living/simple_animal/hostile/retaliate/tamedradroach, /turf/open/indestructible/ground/outside/sidewalk, /area/f13/wasteland) "bAV" = ( @@ -18877,6 +18889,11 @@ }, /turf/open/floor/plating/f13/inside, /area/f13/brotherhood) +"cfJ" = ( +/obj/structure/chair/stool/retro/tan, +/mob/living/simple_animal/hostile/retaliate/tamedradroach, +/turf/open/indestructible/ground/outside/sidewalk, +/area/f13/wasteland) "cfT" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, @@ -20519,6 +20536,11 @@ icon_state = "darkdirty" }, /area/f13/ncr) +"cuL" = ( +/obj/item/melee/onehanded/dogwhip, +/obj/item/melee/onehanded/dogprod, +/turf/open/indestructible/ground/outside/dirt, +/area/f13/radiation) "cuU" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, @@ -22063,6 +22085,7 @@ /area/f13/building) "deB" = ( /obj/effect/decal/cleanable/blood/gibs/human/body, +/mob/living/simple_animal/hostile/retaliate/tamedradroach, /turf/open/indestructible/ground/outside/sidewalk, /area/f13/wasteland) "deG" = ( @@ -24997,6 +25020,10 @@ /obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/plasteel/f13/vault_floor/dark/darksolid, /area/f13/building) +"ept" = ( +/obj/structure/sign/poster/contraband/tools, +/turf/closed/wall/mineral/concrete, +/area/f13/brotherhood) "epF" = ( /obj/structure/flora/grass/wasteland{ icon_state = "tall_grass_3" @@ -28355,6 +28382,10 @@ }, /turf/open/indestructible/ground/outside/dirt, /area/f13/radiation) +"fDP" = ( +/mob/living/simple_animal/cow/brahmin/rochelle/roachmother, +/turf/open/indestructible/ground/outside/sidewalk, +/area/f13/wasteland) "fDS" = ( /obj/machinery/light/fo13colored/Pink, /obj/effect/decal/cleanable/dirt, @@ -33673,6 +33704,11 @@ icon_state = "bluedirtychess2" }, /area/f13/building) +"hRV" = ( +/obj/effect/decal/cleanable/dirt, +/mob/living/simple_animal/hostile/retaliate/tamedradroach, +/turf/open/indestructible/ground/outside/sidewalk, +/area/f13/wasteland) "hRX" = ( /obj/item/wrench, /obj/effect/decal/cleanable/dirt, @@ -35459,6 +35495,13 @@ icon_state = "desertsmooth2" }, /area/f13/wasteland) +"iAV" = ( +/mob/living/simple_animal/hostile/retaliate/legionhound, +/turf/open/indestructible/ground/outside/desert/sonora{ + dir = 4; + icon_state = "desertsmooth1" + }, +/area/f13/wasteland) "iAZ" = ( /obj/structure/chair/f13foldupchair{ dir = 8 @@ -35562,6 +35605,7 @@ /area/f13/building) "iCZ" = ( /obj/effect/decal/cleanable/generic, +/obj/structure/fence/corner, /turf/open/indestructible/ground/outside/sidewalk{ icon_state = "horizontaltopbordertop0" }, @@ -38864,6 +38908,11 @@ }, /turf/open/floor/plasteel/f13/vault_floor/misc/rarewhite/rarecyan, /area/f13/building) +"jVV" = ( +/mob/living/simple_animal/cow/brahmin/camilla, +/obj/structure/bed/dogbed, +/turf/open/indestructible/ground/outside/dirt, +/area/f13/radiation) "jWa" = ( /obj/effect/decal/marking{ icon_state = "doublehorizontal" @@ -39939,6 +39988,13 @@ icon_state = "outerborder" }, /area/f13/wasteland) +"kuz" = ( +/obj/effect/turf_decal/gravel_edge{ + dir = 8 + }, +/obj/structure/fence/corner, +/turf/open/indestructible/ground/outside/dirt, +/area/f13/wasteland) "kuF" = ( /obj/structure/table, /obj/item/folder{ @@ -41580,6 +41636,13 @@ }, /turf/open/indestructible/ground/outside/water, /area/f13/wasteland) +"lbI" = ( +/mob/living/simple_animal/cow/brahmin/Vita, +/turf/open/indestructible/ground/outside/desert/sonora{ + dir = 4; + icon_state = "desertsmooth1" + }, +/area/f13/wasteland) "lbR" = ( /obj/structure/destructible/tribal_torch/wall/lit{ dir = 8 @@ -43562,6 +43625,10 @@ icon_state = "outerpavementcorner" }, /area/f13/wasteland) +"lTy" = ( +/mob/living/simple_animal/hostile/retaliate/legionstalker, +/turf/open/indestructible/ground/inside/mountain, +/area/f13/caves) "lTE" = ( /obj/structure/barricade/wooden/strong, /turf/closed/wall/mineral/concrete, @@ -44209,6 +44276,8 @@ "mfG" = ( /obj/structure/table/wood/junk, /obj/item/ammo_box/magazine/zipgun, +/obj/item/melee/onehanded/dogwhip, +/obj/item/melee/onehanded/dogprod, /turf/open/indestructible/ground/outside/sidewalk, /area/f13/wasteland) "mfI" = ( @@ -44995,6 +45064,9 @@ /area/f13/wasteland) "mtG" = ( /obj/effect/decal/cleanable/robot_debris/gib, +/obj/structure/fence{ + dir = 4 + }, /turf/open/indestructible/ground/outside/sidewalk{ icon_state = "horizontaltopbordertop0" }, @@ -45458,6 +45530,11 @@ icon_state = "floorrusty" }, /area/f13/building/mall) +"mFe" = ( +/obj/effect/decal/cleanable/blood, +/obj/structure/reagent_dispensers/barrel/dangerous, +/turf/open/indestructible/ground/outside/dirt, +/area/f13/radiation) "mFl" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, @@ -48439,6 +48516,7 @@ /area/f13/wasteland) "nRe" = ( /obj/item/trash/candy, +/mob/living/simple_animal/cow/brahmin/rochelle/roachmother, /turf/open/indestructible/ground/outside/sidewalk, /area/f13/wasteland) "nRn" = ( @@ -51305,6 +51383,12 @@ icon_state = "floorrusty" }, /area/f13/building/mall) +"oXr" = ( +/obj/structure/barricade/wooden/strong, +/turf/open/indestructible/ground/outside/sidewalk{ + icon_state = "horizontaltopbordertop0" + }, +/area/f13/wasteland) "oXz" = ( /obj/item/trash/sosjerky, /obj/effect/decal/cleanable/dirt/dust, @@ -54500,6 +54584,10 @@ icon_state = "floorrusty" }, /area/f13/building) +"qjV" = ( +/mob/living/simple_animal/hostile/retaliate/tamedradroach, +/turf/open/indestructible/ground/outside/sidewalk, +/area/f13/wasteland) "qkn" = ( /obj/machinery/light/broken, /obj/effect/decal/cleanable/dirt/dust, @@ -55227,6 +55315,11 @@ icon_state = "horizontaloutermain0" }, /area/f13/wasteland) +"qAO" = ( +/mob/living/simple_animal/cow/brahmin/mary, +/obj/structure/bed/dogbed, +/turf/open/indestructible/ground/outside/dirt, +/area/f13/caves) "qAT" = ( /obj/machinery/door/unpowered/secure_steeldoor{ req_access_txt = "281"; @@ -55656,6 +55749,10 @@ }, /turf/open/floor/plasteel/f13/vault_floor/misc/vaultrust, /area/f13/brotherhood) +"qMn" = ( +/obj/structure/sign/poster/contraband/hacking_guide, +/turf/closed/wall/mineral/concrete, +/area/f13/brotherhood) "qMp" = ( /obj/structure/flora/ausbushes/sparsegrass, /obj/structure/flora/grass/coyote/one, @@ -57835,6 +57932,11 @@ /obj/machinery/chem_heater, /turf/open/floor/plasteel/f13/vault_floor/white, /area/f13/building/hospital) +"rMf" = ( +/obj/effect/decal/remains/human, +/mob/living/simple_animal/cow/brahmin/Ronda, +/turf/open/indestructible/ground/inside/mountain, +/area/f13/caves) "rMj" = ( /obj/structure/reagent_dispensers/rainwater_tank, /obj/effect/turf_decal/shadow/floor, @@ -59614,6 +59716,11 @@ }, /turf/open/floor/f13/wood, /area/f13/city) +"szZ" = ( +/mob/living/simple_animal/cow/brahmin/luna, +/obj/structure/bed/dogbed, +/turf/open/indestructible/ground/outside/dirt, +/area/f13/caves) "sAd" = ( /obj/effect/decal/waste{ icon_state = "goo12" @@ -59854,6 +59961,15 @@ icon_state = "horizontalinnermain0" }, /area/f13/wasteland) +"sFt" = ( +/obj/effect/turf_decal/gravel_edge{ + dir = 8 + }, +/obj/structure/fence/door{ + dir = 4 + }, +/turf/open/indestructible/ground/outside/dirt, +/area/f13/wasteland) "sFx" = ( /obj/item/candle/tribal_torch{ lit = 1 @@ -60502,6 +60618,14 @@ icon_state = "horizontaltopborderbottom0" }, /area/f13/wasteland) +"sWg" = ( +/obj/structure/fence{ + dir = 4 + }, +/turf/open/indestructible/ground/outside/sidewalk{ + icon_state = "horizontaltopbordertop0" + }, +/area/f13/wasteland) "sWj" = ( /obj/effect/turf_decal/weather/dirt, /turf/open/indestructible/ground/outside/graveldirt, @@ -62732,6 +62856,12 @@ }, /turf/open/indestructible/ground/outside/desert, /area/f13/radiation) +"tOr" = ( +/obj/structure/closet, +/obj/item/melee/onehanded/dogwhip, +/obj/item/melee/onehanded/dogprod, +/turf/open/indestructible/ground/outside/dirt, +/area/f13/wasteland) "tOC" = ( /obj/structure/flora/tallgrass9, /turf/open/indestructible/ground/outside/water, @@ -63916,6 +64046,11 @@ icon_state = "darkrusty" }, /area/f13/village) +"uoI" = ( +/mob/living/simple_animal/cow/brahmin/abigail, +/obj/structure/bed/dogbed, +/turf/open/indestructible/ground/outside/dirt, +/area/f13/caves) "uoJ" = ( /obj/effect/turf_decal/shadow, /turf/open/indestructible/ground/inside/dirt/stamped/outside/sand{ @@ -63983,6 +64118,10 @@ icon_state = "verticalrightborderright0" }, /area/f13/wasteland) +"uqd" = ( +/mob/living/simple_animal/hostile/eyebot/virtual/floatingeye, +/turf/open/floor/plasteel/f13/vault_floor/misc/vaultrust, +/area/f13/brotherhood) "uqw" = ( /obj/structure/table/wood, /obj/item/crafting/abraxo, @@ -64478,6 +64617,10 @@ icon_state = "horizontalbottombordertop2" }, /area/f13/wasteland) +"uBP" = ( +/obj/structure/sign/poster/prewar/protectron, +/turf/closed/wall/mineral/concrete, +/area/f13/brotherhood) "uBQ" = ( /obj/structure/flora/grass/wasteland{ icon_state = "tall_grass_3" @@ -65159,7 +65302,11 @@ /turf/open/indestructible/ground/outside/sidewalk, /area/f13/wasteland) "uPo" = ( -/obj/item/trash/f13/borscht, +/obj/machinery/door/unpowered/securedoor{ + max_integrity = 300; + obj_integrity = 300; + req_access_txt = "273" + }, /turf/open/indestructible/ground/outside/sidewalk{ icon_state = "horizontaltopbordertop0" }, @@ -65395,6 +65542,11 @@ /obj/structure/flora/ausbushes/reedbush, /turf/open/indestructible/ground/outside/water, /area/f13/wasteland) +"uUM" = ( +/obj/machinery/computer/eyebots, +/obj/structure/table, +/turf/open/floor/plasteel/f13/vault_floor/misc/vaultrust, +/area/f13/brotherhood) "uUO" = ( /obj/effect/spawner/lootdrop/low_tools, /obj/effect/decal/cleanable/dirt, @@ -65983,6 +66135,10 @@ }, /turf/open/indestructible/ground/outside/road, /area/f13/building) +"vhD" = ( +/mob/living/simple_animal/cow/brahmin/Valeria, +/turf/open/indestructible/ground/outside/desert/sonora/coarse, +/area/f13/wasteland) "vhS" = ( /obj/machinery/light, /turf/open/floor/plasteel/f13{ @@ -66850,6 +67006,10 @@ icon_state = "floorrusty" }, /area/f13/city) +"vzh" = ( +/mob/living/simple_animal/hostile/retaliate/ncrguarddog, +/turf/open/indestructible/ground/outside/dirt, +/area/f13/caves) "vzm" = ( /obj/effect/decal/riverbank, /obj/effect/turf_decal/weather/dirt{ @@ -66958,6 +67118,11 @@ }, /turf/open/indestructible/ground/outside/savannah/topcenter, /area/f13/wasteland) +"vBA" = ( +/obj/structure/table, +/obj/item/reagent_containers/food/drinks/soda_cans/monkey_energy, +/turf/open/floor/plasteel/f13/vault_floor/misc/vaultrust, +/area/f13/brotherhood) "vBB" = ( /obj/effect/turf_decal/weather/dirt{ dir = 8 @@ -67365,6 +67530,10 @@ name = "rocky dirt" }, /area/f13/wasteland) +"vLJ" = ( +/mob/living/simple_animal/hostile/retaliate/ncrattackdog, +/turf/open/indestructible/ground/outside/dirt, +/area/f13/caves) "vMk" = ( /obj/structure/flora/grass/wasteland{ icon_state = "tall_grass_3" @@ -67966,6 +68135,12 @@ /obj/effect/decal/cleanable/dirt, /turf/open/indestructible/ground/outside/desert, /area/f13/wasteland) +"vZq" = ( +/obj/structure/chair/comfy{ + dir = 4 + }, +/turf/open/floor/plasteel/f13/vault_floor/misc/vaultrust, +/area/f13/brotherhood) "vZv" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/flora/grass/wasteland{ @@ -68876,6 +69051,8 @@ /obj/effect/decal/cleanable/dirt, /obj/structure/rack, /obj/item/circuitboard/machine/colormate, +/obj/item/melee/onehanded/dogprod, +/obj/item/melee/onehanded/dogwhip, /turf/open/floor/wood_fancy, /area/f13/legion) "wtJ" = ( @@ -70312,6 +70489,11 @@ icon_state = "desertsmooth4" }, /area/f13/wasteland) +"wYq" = ( +/obj/effect/decal/remains/human, +/mob/living/simple_animal/hostile/retaliate/tamedcentaur, +/turf/open/indestructible/ground/outside/dirt, +/area/f13/radiation) "wYt" = ( /obj/structure/flora/ausbushes/sparsegrass, /obj/structure/flora/ausbushes/sparsegrass, @@ -71694,6 +71876,17 @@ icon_state = "redrustyfull" }, /area/f13/building/firestation) +"xAC" = ( +/obj/machinery/light/small{ + dir = 4; + light_color = "red" + }, +/obj/structure/closet/fridge, +/obj/item/reagent_containers/food/drinks/soda_cans/grey_bull, +/obj/item/reagent_containers/food/drinks/soda_cans/pwr_game, +/obj/item/reagent_containers/glass/beaker/waterbottle, +/turf/open/floor/plasteel/f13/vault_floor/misc/vaultrust, +/area/f13/brotherhood) "xAG" = ( /obj/structure/curtain, /obj/effect/decal/cleanable/dirt{ @@ -71888,6 +72081,10 @@ }, /turf/open/floor/plasteel/f13/vault_floor/red/white, /area/f13/building/mall) +"xDK" = ( +/mob/living/simple_animal/hostile/retaliate/legionhound, +/turf/open/indestructible/ground/outside/desert/sonora/coarse, +/area/f13/wasteland) "xDZ" = ( /obj/structure/table/wood, /obj/item/kitchen/knife{ @@ -72924,6 +73121,10 @@ icon_state = "desertcracked3" }, /area/f13/wasteland) +"ybB" = ( +/mob/living/simple_animal/cow/brahmin/rochelle, +/turf/open/indestructible/ground/outside/sidewalk, +/area/f13/wasteland) "ybI" = ( /obj/structure/flora/grass/coyote/two, /turf/open/indestructible/ground/outside/desert, @@ -73706,10 +73907,10 @@ aae aae aae aae -aae -aae -aae -aae +szZ +aJN +aJN +qAO kGV pxI aon @@ -73962,11 +74163,11 @@ aae aae aae aae -aae -aae -aae -aae -aae +aJN +aJN +aJN +aJN +aJN aoo aoo aoo @@ -74218,12 +74419,12 @@ aae aae aae aae -aae -aae -aae -aae -aae -aae +uoI +aJN +aJN +aJN +vzh +aJN aoo aoo aoo @@ -74476,11 +74677,11 @@ aae aae aae aae -aae -aae -aae -aae -aae +vLJ +aJN +aJN +vzh +aJN aoo vLk ugE @@ -74733,11 +74934,11 @@ aae aae aOk aTo -aOk -aae -aae -aae -aae +tPB +aJN +aJN +aJN +aJN aon bzg uyY @@ -74990,11 +75191,11 @@ aOk aOk aOk lWu -aOk -aOk -aae -aae -aae +tPB +tOr +aJN +aJN +aJN aoo cjh cjh @@ -75247,11 +75448,11 @@ gBs gBs tTO mMc -gBs -gBs -gBs -gBs -aOk +kuz +aPD +sFt +aPD +ans kGV otl otl @@ -81272,10 +81473,10 @@ bGM koF koF rac -usN -hiX +wYq hiX hiX +jVV bmR koF koF @@ -81786,7 +81987,7 @@ lCY vWJ asW utG -hiX +hjh hiX hiX hiX @@ -82043,9 +82244,9 @@ hiX nLB bGM cId -pAh -hiX -hiX +mFe +hjh +cuL usN bmR teZ @@ -94368,10 +94569,10 @@ jeh gFA dVU iht -ean +fDP oAg hTg -ean +ybB aQZ qWd tRk @@ -94626,7 +94827,7 @@ dHk ecb iht nHV -ean +fDP ean opE aQZ @@ -94883,10 +95084,10 @@ bcw edG iht mfG -ean +fDP rbn pBw -aQZ +oXr dkx tzr gnd @@ -95141,7 +95342,7 @@ jeh iht iNW kZO -aum +hRV ean mtG mHp @@ -95398,9 +95599,9 @@ nuJ iht nxy eCB +hRV aum -aum -aQZ +sWg xnZ eJO eJO @@ -95654,8 +95855,8 @@ oXV uef iht wwW -kZO -ean +cfJ +qjV ean uPo sVY @@ -95911,10 +96112,10 @@ jeh jeh iht reV -ean +qjV bAT vSc -aQZ +uPo mHp pjF igF @@ -96169,9 +96370,9 @@ uef iht reV deB -ean +qjV deB -aQZ +sWg mHp eJO eJO @@ -96427,8 +96628,8 @@ iht txv ean ieK -ean -aQZ +qjV +sWg mHp kCd igF @@ -114794,7 +114995,7 @@ aaa (162,1,1) = {" aaa pxe -oYF +aGe oYF oYF oYF @@ -115051,7 +115252,7 @@ aaa (163,1,1) = {" aaa pxe -oYF +uqd oYF oYF oYF @@ -116597,7 +116798,7 @@ oYF oYF gnj gnj -oYF +vZq pxe aae vGl @@ -116852,9 +117053,9 @@ aaa pxe oYF oYF -tMb -oYF -oYF +xAC +vBA +uUM pxe aae aae @@ -117109,9 +117310,9 @@ aaa pxe pxe pxe -pxe -pxe -pxe +qMn +uBP +ept pxe aaa aaa @@ -135839,7 +136040,7 @@ hrE ccj ccj ccj -sWC +vhD sVE ccj ccj @@ -136094,9 +136295,9 @@ sMp wtI hrE sVE -sWC +xDK izz -ccj +lbI fPm fnz ccj @@ -136608,7 +136809,7 @@ sMp vvC hrE ccj -ccj +iAV xJd sWC sVE @@ -136867,9 +137068,9 @@ gvW dJF oDu ccj -ccj +iAV sWC -ccj +iAV vNP eov aqx @@ -137902,7 +138103,7 @@ aaB aaB aaB vGl -aaB +lTy qET aae aae @@ -138159,7 +138360,7 @@ aaB aaB aaB aaB -rNB +rMf aaB vGl aae diff --git a/code/datums/components/crafting/recipes/recipes_assemblies.dm b/code/datums/components/crafting/recipes/recipes_assemblies.dm index c11bfd2ba1f..553d0b54b33 100644 --- a/code/datums/components/crafting/recipes/recipes_assemblies.dm +++ b/code/datums/components/crafting/recipes/recipes_assemblies.dm @@ -12,6 +12,30 @@ subcategory = CAT_MISCELLANEOUS category = CAT_MISC +/datum/crafting_recipe/boseyebot + name = "Brotherhood Eyebot" + result = /mob/living/simple_animal/hostile/eyebot/virtual + reqs = list(/obj/item/stack/crafting/electronicparts = 25, + /obj/item/stack/crafting/metalparts = 20, + /obj/item/stack/crafting/goodparts = 15) + tools = list(TOOL_WORKBENCH) + time = 60 + subcategory = CAT_MISCELLANEOUS + category = CAT_MISC + always_available = FALSE + +/datum/crafting_recipe/bosfloat + name = "Brotherhood Floating Eyebot" + result = /mob/living/simple_animal/hostile/eyebot/virtual/floatingeye + reqs = list(/obj/item/stack/crafting/electronicparts = 30, + /obj/item/stack/crafting/metalparts = 25, + /obj/item/stack/crafting/goodparts = 20) + tools = list(TOOL_WORKBENCH) + time = 70 + subcategory = CAT_MISCELLANEOUS + category = CAT_MISC + always_available = FALSE + /datum/crafting_recipe/trading_machine name = "Vending machine" result = /obj/machinery/trading_machine diff --git a/code/datums/traits/good.dm b/code/datums/traits/good.dm index d81589bce64..14eb2601f4e 100644 --- a/code/datums/traits/good.dm +++ b/code/datums/traits/good.dm @@ -1126,9 +1126,9 @@ GLOBAL_LIST_INIT(bone_dancer_recipes, list( /datum/quirk/crittermaster name = "Beast Master - Small Critters" - desc = "Whenever by psychic means or not, you gained ability to control roaches, most geckos and molerats (last ones will be initially hostile and needs to be tamed).\ -
Taming will make them passive toward other players and tamed fauna. Young and adult nightstalkers can be also tamed, but not controlled." - value = 4 + desc = "Whenever by psychic means or not, you gained ability to control roaches, Bloatflies, Feral dogs, Geckos and molerats\ +
You will need to use your Cattle Prod to make them passive toward other players and tamed fauna, Young and adult nightstalkers can be also tamed, But adults not controlled, You can also use this to control Faction-Aligned Beasts, But only if you share said alignment" + value = 5 mob_trait = TRAIT_BEASTMASTER_SMALLCRITTER gain_text = span_notice("You tapped to potentials of the critter horde!") lose_text = span_danger("Small critters refuse to obey your commands now.") @@ -1137,6 +1137,16 @@ GLOBAL_LIST_INIT(bone_dancer_recipes, list( var/obj/effect/proc_holder/mob_common/summon_backup/beastmaster/small_critter/gather var/obj/effect/proc_holder/mob_common/direct_mobs/beastmaster/small_critter/moveto +/datum/quirk/crittermaster/on_spawn() + var/mob/living/carbon/human/H = quirk_holder + var/obj/item/melee/onehanded/dogwhip/dogwhip = new(get_turf(H)) + H.put_in_hands(dogwhip) + H.equip_to_slot_if_possible(dogwhip, SLOT_IN_BACKPACK) + var/obj/item/melee/onehanded/dogprod/dogprod = new(get_turf(H)) + H.put_in_hands(dogprod) + H.equip_to_slot_if_possible(dogprod, SLOT_IN_BACKPACK) + H.regenerate_icons() + /datum/quirk/crittermaster/add() var/mob/living/carbon/human/H = quirk_holder H.faction |= list("critter-friend") diff --git a/code/game/objects/items/melee/f13onehanded.dm b/code/game/objects/items/melee/f13onehanded.dm index eb17b0042f4..62375dc9255 100644 --- a/code/game/objects/items/melee/f13onehanded.dm +++ b/code/game/objects/items/melee/f13onehanded.dm @@ -664,6 +664,28 @@ obj/item/melee/onehanded/knife/switchblade return M.apply_damage(20, STAMINA, null, 0) +/obj/item/melee/onehanded/dogwhip + name = "Dog whip" + desc = "Used to get beasts into action." + icon_state = "whip" + item_state = "chain" + force = 1 + attack_verb = list("riled", "encouraged") + hitsound = 'sound/weapons/whip.ogg' + +/obj/item/melee/onehanded/dogprod + name = "Cattle prod" + desc = "Used to get beasts in line, Will make them hesitant until you encourage them again, Doesn't really work on people." + icon = 'icons/fallout/objects/melee/melee.dmi' + icon_state = "stunprod" + item_state = "stunprod" + force = 1 + attack_verb = list("shocked", "zapped", "prodded") + hitsound = 'sound/weapons/egloves.ogg' + lefthand_file = 'icons/mob/inhands/weapons/melee_lefthand.dmi' + righthand_file = 'icons/mob/inhands/weapons/melee_righthand.dmi' + + /////////////////// // GLOVE WEAPONS // /////////////////// -faster attack speed diff --git a/code/modules/jobs/job_types/bos.dm b/code/modules/jobs/job_types/bos.dm index 9511347b1b8..4fea7d1f706 100644 --- a/code/modules/jobs/job_types/bos.dm +++ b/code/modules/jobs/job_types/bos.dm @@ -546,6 +546,8 @@ Senior Scribe if(visualsOnly) return H.mind.teach_crafting_recipe(GLOB.chemwhiz_recipes) + H.mind.teach_crafting_recipe(/datum/crafting_recipe/boseyebot) + H.mind.teach_crafting_recipe(/datum/crafting_recipe/bosfloat) ADD_TRAIT(H, TRAIT_CHEMWHIZ, src) ADD_TRAIT(H, TRAIT_SURGERY_HIGH, src) ADD_TRAIT(H, TRAIT_CYBERNETICIST, src) @@ -640,6 +642,8 @@ Scribe if(visualsOnly) return H.mind.teach_crafting_recipe(GLOB.chemwhiz_recipes) + H.mind.teach_crafting_recipe(/datum/crafting_recipe/boseyebot) + H.mind.teach_crafting_recipe(/datum/crafting_recipe/bosfloat) ADD_TRAIT(H, TRAIT_CHEMWHIZ, src) ADD_TRAIT(H, TRAIT_SURGERY_HIGH, src) ADD_TRAIT(H, TRAIT_CYBERNETICIST, src) diff --git a/code/modules/mob/living/simple_animal/friendly/farm_animals.dm b/code/modules/mob/living/simple_animal/friendly/farm_animals.dm index 57ea9b269b3..cb0b0fe6976 100644 --- a/code/modules/mob/living/simple_animal/friendly/farm_animals.dm +++ b/code/modules/mob/living/simple_animal/friendly/farm_animals.dm @@ -222,7 +222,7 @@ if(saddle || bridle) . += "
Feeding this beast will let it move quickly for longer! You'll need to remove their bridle and saddle to get them pregnant." else - . += "
Feeding this beast will get it pregnant! You'll need to give them a bridle and/or a saddle to feed their hunger." + . += "
Feeding this beast will get it pregnant! You'll need to give them a bridle and/or a saddle to use them as a mount." switch(hunger) if(1) . += "
They look well fed." @@ -918,6 +918,528 @@ ) butcher_difficulty = 1 +/mob/living/simple_animal/cow/brahmin/Valeria + name = "Valeria" + desc = "Vita's older sister, Still has a lot of fight left in her." + icon = 'icons/fallout/mobs/animals/dogs.dmi' + icon_state = "legiondog" + icon_living = "legiondog" + icon_dead = "legiondog_dead" + icon_gib = "gib" + speak = list("*gnarl","*bark") + speak_emote = list("barks","growls") + emote_hear = list("perks its head up.") + emote_see = list("stares.") + speak_chance = 1 + turns_per_move = 5 + see_in_dark = 6 + health = 90 + maxHealth = 90 + ride_move_delay = 1.8 + can_ghost_into = FALSE + response_help_continuous = "pat" + response_help_simple = "pet" + response_disarm_continuous = "gently pushes aside" + response_disarm_simple = "gently push aside" + response_harm_continuous = "bites" + response_harm_simple = "bites" + attack_verb_continuous = "bites" + attack_verb_simple = "bite" + waddle_amount = 3 + waddle_up_time = 1 + waddle_side_time = 2 + attack_sound = 'sound/weapons/punch1.ogg' + young_type = /mob/living/simple_animal/hostile/retaliate/legionhound + food_types = list( + /obj/item/reagent_containers/food/snacks/meat/slab, + /obj/item/reagent_containers/food/snacks/meat/slab/gecko, + /obj/item/reagent_containers/food/snacks/meat/slab/human, + /obj/item/reagent_containers/food/snacks/meat/slab/human/mutant, + /obj/item/reagent_containers/food/snacks/meat/slab/chicken, + /obj/item/reagent_containers/food/snacks/meat/slab/molerat, + /obj/item/reagent_containers/food/snacks/meat/slab/mirelurk, + /obj/item/reagent_containers/food/snacks/meat/slab/ant_meat, + /obj/item/reagent_containers/food/snacks/meat/slab/fireant_meat, + /obj/item/reagent_containers/food/snacks/meat/slab/bloatfly_meat, + /obj/item/reagent_containers/food/snacks/meat/slab/radscorpion_meat, + /obj/item/reagent_containers/food/snacks/meat/slab/cazador_meat, + /obj/item/reagent_containers/food/snacks/f13/canned/dog + ) + milk_reagent = /datum/reagent/toxin + ride_offsets = list( + "1" = list(15, 8), + "2" = list(15, 8), + "4" = list(15, 8), + "8" = list(15, 8) + ) + guaranteed_butcher_results = list( + /obj/item/reagent_containers/food/snacks/meat/slab/wolf = 2, + /obj/item/stack/sheet/sinew = 2, + /obj/item/stack/sheet/bone = 2 + ) + butcher_results = list( + /obj/item/stack/sheet/animalhide/wolf = 1, + /obj/item/reagent_containers/food/snacks/meat/slab/wolf = 1 + ) + butcher_difficulty = 1 + +/mob/living/simple_animal/cow/brahmin/Ronda + name = "Ronda" + desc = "A Young female nightstalker adopted by the legion, Has plenty of potential." + icon = 'icons/fallout/mobs/animals/nightstalker.dmi' + icon_state = "nightstalker-legion" + icon_living = "nightstalker-legion" + icon_dead = "nightstalker-legion-dead" + speak = list("*shiss","*gnarl","*bark") + speak_emote = list("barks","hisses") + emote_hear = list("perks its head up.") + emote_see = list("stares.") + speak_chance = 1 + turns_per_move = -1 //no random movement + see_in_dark = 6 + health = 120 + maxHealth = 120 + ride_move_delay = 1.8 + can_ghost_into = FALSE + response_help_continuous = "pets" + response_help_simple = "pet" + response_disarm_continuous = "gently pushes aside" + response_disarm_simple = "gently push aside" + response_harm_continuous = "bites" + response_harm_simple = "bites" + attack_verb_continuous = "bites" + attack_verb_simple = "bite" + waddle_amount = 3 + waddle_up_time = 1 + waddle_side_time = 2 + attack_sound = 'sound/weapons/punch1.ogg' + young_type = /mob/living/simple_animal/hostile/retaliate/legionstalker + food_types = list( + /obj/item/reagent_containers/food/snacks/meat/slab, + /obj/item/reagent_containers/food/snacks/meat/slab/gecko, + /obj/item/reagent_containers/food/snacks/meat/slab/human, + /obj/item/reagent_containers/food/snacks/meat/slab/human/mutant, + /obj/item/reagent_containers/food/snacks/meat/slab/chicken, + /obj/item/reagent_containers/food/snacks/meat/slab/molerat, + /obj/item/reagent_containers/food/snacks/meat/slab/mirelurk, + /obj/item/reagent_containers/food/snacks/meat/slab/ant_meat, + /obj/item/reagent_containers/food/snacks/meat/slab/fireant_meat, + /obj/item/reagent_containers/food/snacks/meat/slab/bloatfly_meat, + /obj/item/reagent_containers/food/snacks/meat/slab/radscorpion_meat, + /obj/item/reagent_containers/food/snacks/meat/slab/cazador_meat, + /obj/item/reagent_containers/food/snacks/f13/canned/dog + ) + milk_reagent = /datum/reagent/toxin + ride_offsets = list( + "1" = list(15, 8), + "2" = list(15, 8), + "4" = list(15, 8), + "8" = list(15, 8) + ) + guaranteed_butcher_results = list( + /obj/item/reagent_containers/food/snacks/meat/slab/nightstalker_meat = 2, + /obj/item/stack/sheet/sinew = 2, + /obj/item/stack/sheet/bone = 2 + ) + butcher_results = list( + /obj/item/clothing/head/f13/stalkerpelt = 1, + /obj/item/reagent_containers/food/snacks/meat/slab/nightstalker_meat = 1 + ) + butcher_difficulty = 1 + +/mob/living/simple_animal/cow/brahmin/Vita + name = "Vita" + desc = "The legion's premiere breeding hound, One tough bitch." + icon = 'icons/fallout/mobs/animals/dogs.dmi' + icon_state = "legiondog" + icon_living = "legiondog" + icon_dead = "legiondog_dead" + icon_gib = "gib" + speak = list("*gnarl","*bark") + speak_emote = list("barks","growls") + emote_hear = list("perks its head up.") + emote_see = list("stares.") + speak_chance = 1 + turns_per_move = 2 + see_in_dark = 4 + health = 150 + maxHealth = 150 + ride_move_delay = 1.8 + can_ghost_into = FALSE + response_help_continuous = "pat" + response_help_simple = "pet" + response_disarm_continuous = "gently pushes aside" + response_disarm_simple = "gently push aside" + response_harm_continuous = "bites" + response_harm_simple = "bites" + attack_verb_continuous = "bites" + attack_verb_simple = "bite" + waddle_amount = 3 + waddle_up_time = 1 + waddle_side_time = 2 + attack_sound = 'sound/weapons/punch1.ogg' + young_type = /mob/living/simple_animal/hostile/retaliate/legionhound + food_types = list( + /obj/item/reagent_containers/food/snacks/meat/slab, + /obj/item/reagent_containers/food/snacks/meat/slab/gecko, + /obj/item/reagent_containers/food/snacks/meat/slab/human, + /obj/item/reagent_containers/food/snacks/meat/slab/human/mutant, + /obj/item/reagent_containers/food/snacks/meat/slab/chicken, + /obj/item/reagent_containers/food/snacks/meat/slab/molerat, + /obj/item/reagent_containers/food/snacks/meat/slab/mirelurk, + /obj/item/reagent_containers/food/snacks/meat/slab/ant_meat, + /obj/item/reagent_containers/food/snacks/meat/slab/fireant_meat, + /obj/item/reagent_containers/food/snacks/meat/slab/bloatfly_meat, + /obj/item/reagent_containers/food/snacks/meat/slab/radscorpion_meat, + /obj/item/reagent_containers/food/snacks/meat/slab/cazador_meat, + /obj/item/reagent_containers/food/snacks/f13/canned/dog + ) + milk_reagent = /datum/reagent/toxin + ride_offsets = list( + "1" = list(15, 8), + "2" = list(15, 8), + "4" = list(15, 8), + "8" = list(15, 8) + ) + guaranteed_butcher_results = list( + /obj/item/reagent_containers/food/snacks/meat/slab/wolf = 2, + /obj/item/stack/sheet/sinew = 2, + /obj/item/stack/sheet/bone = 2 + ) + butcher_results = list( + /obj/item/stack/sheet/animalhide/wolf = 1, + /obj/item/reagent_containers/food/snacks/meat/slab/wolf = 1 + ) + butcher_difficulty = 1 + +/mob/living/simple_animal/cow/brahmin/mary + name = "Mary" + desc = "A retired guard dog, Now helps the army by making more like herself." + icon = 'icons/fallout/mobs/animals/dogs.dmi' + icon_state = "tippen" + icon_living = "tippen" + icon_dead = "tippen_dead" + icon_gib = "gib" + speak = list("*gnarl","*bark") + speak_emote = list("barks","growls") + emote_hear = list("perks its head up.") + emote_see = list("stares.") + speak_chance = 1 + turns_per_move = -1 + see_in_dark = 6 + health = 60 + maxHealth = 60 + ride_move_delay = 1.8 + can_ghost_into = FALSE + response_help_continuous = "pat" + response_help_simple = "pet" + response_disarm_continuous = "gently pushes aside" + response_disarm_simple = "gently push aside" + response_harm_continuous = "bites" + response_harm_simple = "bites" + attack_verb_continuous = "bites" + attack_verb_simple = "bite" + waddle_amount = 3 + waddle_up_time = 1 + waddle_side_time = 2 + attack_sound = 'sound/weapons/punch1.ogg' + young_type = /mob/living/simple_animal/hostile/retaliate/ncrguarddog + food_types = list( + /obj/item/reagent_containers/food/snacks/meat/slab, + /obj/item/reagent_containers/food/snacks/meat/slab/gecko, + /obj/item/reagent_containers/food/snacks/meat/slab/human, + /obj/item/reagent_containers/food/snacks/meat/slab/human/mutant, + /obj/item/reagent_containers/food/snacks/meat/slab/chicken, + /obj/item/reagent_containers/food/snacks/meat/slab/molerat, + /obj/item/reagent_containers/food/snacks/meat/slab/mirelurk, + /obj/item/reagent_containers/food/snacks/meat/slab/ant_meat, + /obj/item/reagent_containers/food/snacks/meat/slab/fireant_meat, + /obj/item/reagent_containers/food/snacks/meat/slab/bloatfly_meat, + /obj/item/reagent_containers/food/snacks/meat/slab/radscorpion_meat, + /obj/item/reagent_containers/food/snacks/meat/slab/cazador_meat, + /obj/item/reagent_containers/food/snacks/f13/canned/dog + ) + milk_reagent = /datum/reagent/toxin + ride_offsets = list( + "1" = list(15, 8), + "2" = list(15, 8), + "4" = list(15, 8), + "8" = list(15, 8) + ) + guaranteed_butcher_results = list( + /obj/item/reagent_containers/food/snacks/meat/slab/wolf = 2, + /obj/item/stack/sheet/sinew = 2, + /obj/item/stack/sheet/bone = 2 + ) + butcher_results = list( + /obj/item/stack/sheet/animalhide/wolf = 1, + /obj/item/reagent_containers/food/snacks/meat/slab/wolf = 1 + ) + butcher_difficulty = 1 + +/mob/living/simple_animal/cow/brahmin/luna + name = "Luna" + desc = "One of the NCRA's most capable breeding dogs, Mother of many decorated guard dogs." + icon = 'icons/fallout/mobs/animals/dogs.dmi' + icon_state = "tippen" + icon_living = "tippen" + icon_dead = "tippen_dead" + icon_gib = "gib" + speak = list("*gnarl","*bark") + speak_emote = list("barks","growls") + emote_hear = list("perks its head up.") + emote_see = list("stares.") + speak_chance = 1 + turns_per_move = 4 + see_in_dark = 6 + health = 70 + maxHealth = 70 + ride_move_delay = 1.8 + can_ghost_into = FALSE + response_help_continuous = "pat" + response_help_simple = "pet" + response_disarm_continuous = "gently pushes aside" + response_disarm_simple = "gently push aside" + response_harm_continuous = "bites" + response_harm_simple = "bites" + attack_verb_continuous = "bites" + attack_verb_simple = "bite" + waddle_amount = 3 + waddle_up_time = 1 + waddle_side_time = 2 + attack_sound = 'sound/weapons/punch1.ogg' + young_type = /mob/living/simple_animal/hostile/retaliate/ncrguarddog + food_types = list( + /obj/item/reagent_containers/food/snacks/meat/slab, + /obj/item/reagent_containers/food/snacks/meat/slab/gecko, + /obj/item/reagent_containers/food/snacks/meat/slab/human, + /obj/item/reagent_containers/food/snacks/meat/slab/human/mutant, + /obj/item/reagent_containers/food/snacks/meat/slab/chicken, + /obj/item/reagent_containers/food/snacks/meat/slab/molerat, + /obj/item/reagent_containers/food/snacks/meat/slab/mirelurk, + /obj/item/reagent_containers/food/snacks/meat/slab/ant_meat, + /obj/item/reagent_containers/food/snacks/meat/slab/fireant_meat, + /obj/item/reagent_containers/food/snacks/meat/slab/bloatfly_meat, + /obj/item/reagent_containers/food/snacks/meat/slab/radscorpion_meat, + /obj/item/reagent_containers/food/snacks/meat/slab/cazador_meat, + /obj/item/reagent_containers/food/snacks/f13/canned/dog + ) + milk_reagent = /datum/reagent/toxin + ride_offsets = list( + "1" = list(15, 8), + "2" = list(15, 8), + "4" = list(15, 8), + "8" = list(15, 8) + ) + guaranteed_butcher_results = list( + /obj/item/reagent_containers/food/snacks/meat/slab/wolf = 2, + /obj/item/stack/sheet/sinew = 2, + /obj/item/stack/sheet/bone = 2 + ) + butcher_results = list( + /obj/item/stack/sheet/animalhide/wolf = 1, + /obj/item/reagent_containers/food/snacks/meat/slab/wolf = 1 + ) + butcher_difficulty = 1 + +/mob/living/simple_animal/cow/brahmin/abigail + name = "Abigail" + desc = "The ranger's one and only sweetheart, The toughest bitch you'll ever see." + icon = 'icons/fallout/mobs/animals/dogs.dmi' + icon_state = "shepherd" + icon_living = "shepherd" + icon_dead = "shepherd_dead" + icon_gib = "gib" + speak = list("*gnarl","*bark") + speak_emote = list("barks","growls") + emote_hear = list("perks its head up.") + emote_see = list("stares.") + speak_chance = 1 + turns_per_move = 5 + see_in_dark = 6 + health = 200 + maxHealth = 200 + ride_move_delay = 1.8 + can_ghost_into = FALSE + response_help_continuous = "pat" + response_help_simple = "pet" + response_disarm_continuous = "gently pushes aside" + response_disarm_simple = "gently push aside" + response_harm_continuous = "bites" + response_harm_simple = "bites" + attack_verb_continuous = "bites" + attack_verb_simple = "bite" + waddle_amount = 3 + waddle_up_time = 1 + waddle_side_time = 2 + attack_sound = 'sound/weapons/punch1.ogg' + young_type = /mob/living/simple_animal/hostile/retaliate/ncrattackdog + food_types = list( + /obj/item/reagent_containers/food/snacks/meat/slab, + /obj/item/reagent_containers/food/snacks/meat/slab/gecko, + /obj/item/reagent_containers/food/snacks/meat/slab/human, + /obj/item/reagent_containers/food/snacks/meat/slab/human/mutant, + /obj/item/reagent_containers/food/snacks/meat/slab/chicken, + /obj/item/reagent_containers/food/snacks/meat/slab/molerat, + /obj/item/reagent_containers/food/snacks/meat/slab/mirelurk, + /obj/item/reagent_containers/food/snacks/meat/slab/ant_meat, + /obj/item/reagent_containers/food/snacks/meat/slab/fireant_meat, + /obj/item/reagent_containers/food/snacks/meat/slab/bloatfly_meat, + /obj/item/reagent_containers/food/snacks/meat/slab/radscorpion_meat, + /obj/item/reagent_containers/food/snacks/meat/slab/cazador_meat, + /obj/item/reagent_containers/food/snacks/f13/canned/dog + ) + milk_reagent = /datum/reagent/toxin + ride_offsets = list( + "1" = list(15, 8), + "2" = list(15, 8), + "4" = list(15, 8), + "8" = list(15, 8) + ) + guaranteed_butcher_results = list( + /obj/item/reagent_containers/food/snacks/meat/slab/wolf = 2, + /obj/item/stack/sheet/sinew = 2, + /obj/item/stack/sheet/bone = 2 + ) + butcher_results = list( + /obj/item/stack/sheet/animalhide/wolf = 1, + /obj/item/reagent_containers/food/snacks/meat/slab/wolf = 1 + ) + butcher_difficulty = 1 + +/mob/living/simple_animal/cow/brahmin/camilla + name = "Camilla" + desc = "One cute gal, here to give you and your army everything you need." + icon = 'icons/fallout/mobs/monsters/freaks.dmi' + icon_state = "centaur" + icon_living = "centaur" + icon_dead = "centaur_dead" + icon_gib = "centaur_g" + speak = list("*growl") + speak_emote = list("gurgles","growls") + emote_hear = list("perks its head up.") + emote_see = list("stares.") + speak_chance = 1 + turns_per_move = 8 + see_in_dark = 6 + health = 70 + maxHealth = 70 + ride_move_delay = 1.8 + can_ghost_into = FALSE + response_help_continuous = "pat" + response_help_simple = "pet" + response_disarm_continuous = "gently pushes aside" + response_disarm_simple = "gently push aside" + response_harm_continuous = "bites" + response_harm_simple = "bites" + attack_verb_continuous = "bites" + attack_verb_simple = "bite" + waddle_amount = 3 + waddle_up_time = 1 + waddle_side_time = 2 + attack_sound = 'sound/weapons/punch1.ogg' + young_type = /mob/living/simple_animal/hostile/retaliate/tamedcentaur + food_types = list( + /obj/item/reagent_containers/food/snacks/meat/slab, + /obj/item/reagent_containers/food/snacks/meat/slab/gecko, + /obj/item/reagent_containers/food/snacks/meat/slab/human, + /obj/item/reagent_containers/food/snacks/meat/slab/human/mutant, + /obj/item/reagent_containers/food/snacks/meat/slab/chicken, + /obj/item/reagent_containers/food/snacks/meat/slab/molerat, + /obj/item/reagent_containers/food/snacks/meat/slab/mirelurk, + /obj/item/reagent_containers/food/snacks/meat/slab/ant_meat, + /obj/item/reagent_containers/food/snacks/meat/slab/fireant_meat, + /obj/item/reagent_containers/food/snacks/meat/slab/bloatfly_meat, + /obj/item/reagent_containers/food/snacks/meat/slab/radscorpion_meat, + /obj/item/reagent_containers/food/snacks/meat/slab/cazador_meat, + /obj/item/reagent_containers/food/snacks/f13/canned/dog + ) + milk_reagent = /datum/reagent/toxin + ride_offsets = list( + "1" = list(15, 8), + "2" = list(15, 8), + "4" = list(15, 8), + "8" = list(15, 8) + ) + guaranteed_butcher_results = list( + /obj/item/reagent_containers/food/snacks/meat/slab/human/centaur = 3, + /obj/item/stack/sheet/sinew = 4, + /obj/item/stack/sheet/bone = 4 + ) + butcher_results = list( + /obj/item/stack/sheet/animalhide/human = 1, + /obj/item/reagent_containers/food/snacks/meat/slab/human/centaur = 1 + ) + butcher_difficulty = 1 + +/mob/living/simple_animal/cow/brahmin/rochelle + name = "Rochelle" + desc = "The town's big mama, Some say that 1 in every 3 radroaches in Pahrump are related to her." + icon = 'icons/fallout/mobs/animals/insects.dmi' + icon_state = "radroach" + icon_living = "radroach" + icon_dead = "radroach_dead" + icon_gib = "radroach_gib" + speak = list("*flickers","*skitters") + speak_emote = list("hisses") + emote_hear = list("perks its head up.") + emote_see = list("stares.") + speak_chance = 1 + turns_per_move = 6 + see_in_dark = 6 + health = 70 + maxHealth = 70 + ride_move_delay = 1.8 + can_ghost_into = FALSE + response_help_continuous = "pat" + response_help_simple = "pet" + response_disarm_continuous = "gently pushes aside" + response_disarm_simple = "gently push aside" + response_harm_continuous = "bites" + response_harm_simple = "bites" + attack_verb_continuous = "bites" + attack_verb_simple = "bite" + waddle_amount = 3 + waddle_up_time = 1 + waddle_side_time = 2 + attack_sound = 'sound/weapons/punch1.ogg' + young_type = /mob/living/simple_animal/hostile/retaliate/tamedradroach + food_types = list( + /obj/item/reagent_containers/food/snacks/meat/slab, + /obj/item/reagent_containers/food/snacks/meat/slab/gecko, + /obj/item/reagent_containers/food/snacks/meat/slab/human, + /obj/item/reagent_containers/food/snacks/meat/slab/human/mutant, + /obj/item/reagent_containers/food/snacks/meat/slab/chicken, + /obj/item/reagent_containers/food/snacks/meat/slab/molerat, + /obj/item/reagent_containers/food/snacks/meat/slab/mirelurk, + /obj/item/reagent_containers/food/snacks/meat/slab/ant_meat, + /obj/item/reagent_containers/food/snacks/meat/slab/fireant_meat, + /obj/item/reagent_containers/food/snacks/meat/slab/bloatfly_meat, + /obj/item/reagent_containers/food/snacks/meat/slab/radscorpion_meat, + /obj/item/reagent_containers/food/snacks/meat/slab/cazador_meat, + /obj/item/reagent_containers/food/snacks/f13/canned/dog + ) + milk_reagent = /datum/reagent/toxin + ride_offsets = list( + "1" = list(15, 8), + "2" = list(15, 8), + "4" = list(15, 8), + "8" = list(15, 8) + ) + guaranteed_butcher_results = list( + /obj/item/reagent_containers/food/snacks/meat/slab/radroach_meat = 2, + ) + butcher_results = list( + /obj/item/stack/sheet/animalhide/chitin = 3, + /obj/item/reagent_containers/food/snacks/meat/slab/radroach_meat = 1 + ) + butcher_difficulty = 1 + +/mob/living/simple_animal/cow/brahmin/rochelle/roachmother + name = "Radroach Broodmother" + desc = "One of Rochelle's daughters, Following in their mother's example." + health = 50 + maxHealth = 50 /* /obj/item/brahminbags diff --git a/code/modules/mob/living/simple_animal/hostile/abilities_common.dm b/code/modules/mob/living/simple_animal/hostile/abilities_common.dm index d57d33a26b7..02093e536f4 100644 --- a/code/modules/mob/living/simple_animal/hostile/abilities_common.dm +++ b/code/modules/mob/living/simple_animal/hostile/abilities_common.dm @@ -26,15 +26,31 @@ /mob/living/simple_animal/hostile/gecko,\ /mob/living/simple_animal/hostile/gecko/legacy,\ /mob/living/simple_animal/hostile/gecko/fire,\ + /mob/living/simple_animal/hostile/gecko/legacy/alpha,\ + /mob/living/simple_animal/hostile/gecko/big,\ /mob/living/simple_animal/hostile/molerat,\ + /mob/living/simple_animal/hostile/bloatfly,\ + /mob/living/simple_animal/hostile/wolf, \ + /mob/living/simple_animal/hostile/wolf/alpha, \ /mob/living/simple_animal/hostile/radroach) #define CONTROL_SMALLCRITTER_ALLOWED list(\ /mob/living/simple_animal/hostile/gecko,\ - /mob/living/simple_animal/hostile/gecko,\ + /mob/living/simple_animal/hostile/stalkeryoung,\ /mob/living/simple_animal/hostile/gecko/legacy,\ /mob/living/simple_animal/hostile/gecko/fire,\ + /mob/living/simple_animal/hostile/gecko/legacy/alpha,\ + /mob/living/simple_animal/hostile/gecko/big,\ /mob/living/simple_animal/hostile/molerat,\ + /mob/living/simple_animal/hostile/bloatfly,\ + /mob/living/simple_animal/hostile/wolf, \ + /mob/living/simple_animal/hostile/wolf/alpha, \ + /mob/living/simple_animal/hostile/retaliate/legionstalker, \ + /mob/living/simple_animal/hostile/retaliate/legionhound, \ + /mob/living/simple_animal/hostile/retaliate/ncrguarddog, \ + /mob/living/simple_animal/hostile/retaliate/ncrattackdog, \ + /mob/living/simple_animal/hostile/retaliate/tamedcentaur, \ + /mob/living/simple_animal/hostile/retaliate/tamedradroach, \ /mob/living/simple_animal/hostile/radroach) @@ -480,14 +496,14 @@ M.do_alert_animation(M) user.show_message(span_notice("The [M.name] ain't that simple...")) continue - if("neutral" in M.faction) // Mob is already tamed, or just don't need to be (e.g. curious mice) + if("critter-friend" in M.faction) // Mob is already tamed, or just don't need to be (e.g. curious mice) continue if(prob(35)) // Failure chance M.do_alert_animation(M) user.show_message(span_red("The [M.name] wasn't tamed.")) COOLDOWN_START(src, taming_cooldown, 30 SECONDS) continue - M.faction |= "neutral" // Kinda want to perserve some of F3/NV behavior of tamed not helping with other/same-faction animal + M.faction |= "critter-friend" user.show_message(span_green("The [M.name] is tamed!")) M.name = "tamed [initial(M.name)]" M.desc = "[initial(M.desc)] This one appears to be tame." diff --git a/code/modules/mob/living/simple_animal/hostile/f13/centaur.dm b/code/modules/mob/living/simple_animal/hostile/f13/centaur.dm index e7f04f6c7c4..182470d8277 100644 --- a/code/modules/mob/living/simple_animal/hostile/f13/centaur.dm +++ b/code/modules/mob/living/simple_animal/hostile/f13/centaur.dm @@ -76,6 +76,58 @@ armour_penetration = 0.1 +/mob/living/simple_animal/hostile/retaliate/tamedcentaur + name = "tamed centaur" + desc = "A super mutant's best friend, Will only obey the leader or one of his soldiers." + icon = 'icons/fallout/mobs/monsters/freaks.dmi' + icon_state = "centaur" + icon_living = "centaur" + icon_dead = "centaur_dead" + icon_gib = "centaur_g" + tastes = list("sadness" = 1, "nastyness" = 1) + can_ghost_into = TRUE + maxHealth = 130 + sentience_type = SENTIENCE_BOSS + health = 130 + speed = 3 + harm_intent_damage = 8 + melee_damage_lower = 15 + melee_damage_upper = 20 + ranged = TRUE + wound_bonus = 0 + footstep_type = FOOTSTEP_MOB_CRAWL + mob_biotypes = MOB_ORGANIC|MOB_HUMANOID + robust_searching = TRUE + move_to_delay = 4 + retreat_distance = 0 + minimum_distance = 0 + aggro_vision_range = 7 + vision_range = 7 + turns_per_move = 5 + speak_emote = list("growls") + emote_see = list("screeches", "screams", "howls", "bellows", "flails", "fidgets", "festers") + a_intent = INTENT_HARM + attack_verb_simple = list("whipped", "whacked", "whomped", "wailed on", "smacked", "smashed", "bapped") + atmos_requirements = list("min_oxy" = 5, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 1, "min_co2" = 0, "max_co2" = 5, "min_n2" = 0, "max_n2" = 0) + unsuitable_atmos_damage = 20 + stat_attack = CONSCIOUS + gold_core_spawnable = HOSTILE_SPAWN + faction = list(FACTION_SMUTANT) + guaranteed_butcher_results = list(/obj/item/reagent_containers/food/snacks/meat/slab/human/centaur = 3, + /obj/item/stack/sheet/animalhide/human = 2, + /obj/item/stack/sheet/bone = 2) + projectiletype = /obj/item/projectile/neurotox + projectilesound = 'sound/f13npc/centaur/spit.ogg' + emote_taunt_sound = list('sound/f13npc/centaur/taunt.ogg') + emote_taunt = list("grunts", "gurgles", "wheezes", "flops", "scrabbles") + taunt_chance = 30 + aggrosound = list('sound/f13npc/centaur/aggro1.ogg', ) + idlesound = list('sound/f13npc/centaur/idle1.ogg', 'sound/f13npc/centaur/idle2.ogg') + death_sound = 'sound/f13npc/centaur/centaur_death.ogg' + attack_sound = 'sound/f13npc/centaur/lash.ogg' + + + // ----------------------------------- // ABOMINATION diff --git a/code/modules/mob/living/simple_animal/hostile/f13/insects.dm b/code/modules/mob/living/simple_animal/hostile/f13/insects.dm index 33abe48665e..c44b65b292c 100644 --- a/code/modules/mob/living/simple_animal/hostile/f13/insects.dm +++ b/code/modules/mob/living/simple_animal/hostile/f13/insects.dm @@ -574,3 +574,57 @@ /mob/living/simple_animal/hostile/radroach/jungle faction = list("gecko", "critter-friend", "jungle") + +/mob/living/simple_animal/hostile/retaliate/tamedradroach + name = "Tamed radroach" + desc = "Easy to find, Easy to mass-produce, The APEX of cannon-foddery." + icon = 'icons/fallout/mobs/animals/insects.dmi' + icon_state = "radroach" + icon_living = "radroach" + icon_dead = "radroach_dead" + icon_gib = "radroach_gib" + can_ghost_into = TRUE + waddle_amount = 1 + waddle_up_time = 1 + waddle_side_time = 1 + speed = 2 + maxHealth = 35 + health = 35 + harm_intent_damage = 8 + obj_damage = 20 + melee_damage_lower = 5 + melee_damage_upper = 10 + mob_biotypes = MOB_ORGANIC|MOB_BEAST + speak_chance = 0 + turns_per_move = 5 + guaranteed_butcher_results = list(/obj/item/reagent_containers/food/snacks/meat/slab/radroach_meat = 2, /obj/item/stack/sheet/sinew = 1) + butcher_results = list(/obj/item/stack/sheet/animalhide/chitin = 1) + butcher_difficulty = 1.5 + response_help_simple = "pet" + response_disarm_simple = "gently pushes aside" + response_harm_simple = "hits" + attack_verb_simple = "nips" + attack_sound = 'sound/creatures/radroach_attack.ogg' + speak_emote = list("skitters") + atmos_requirements = list("min_oxy" = 5, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 1, "min_co2" = 0, "max_co2" = 5, "min_n2" = 0, "max_n2" = 0) + faction = list(FACTION_EASTWOOD) + a_intent = INTENT_HARM + pass_flags = PASSTABLE | PASSMOB + density = FALSE + gold_core_spawnable = HOSTILE_SPAWN + randpixel = 12 + variation_list = list( + MOB_COLOR_VARIATION(50, 50, 50, 255, 255, 255), + MOB_SPEED_LIST(2.2, 2.3, 2.4, 2.5, 2.6, 2.7, 2.8), + MOB_SPEED_CHANGE_PER_TURN_CHANCE(100), + MOB_RETREAT_DISTANCE_LIST(0, 2, 3), + MOB_RETREAT_DISTANCE_CHANGE_PER_TURN_CHANCE(100), + MOB_MINIMUM_DISTANCE_LIST(0, 1, 1), + MOB_MINIMUM_DISTANCE_CHANGE_PER_TURN_CHANCE(5), + ) + aggrosound = list('sound/creatures/radroach_chitter.ogg',) + idlesound = list('sound/f13npc/roach/idle1.ogg', 'sound/f13npc/roach/idle2.ogg', 'sound/f13npc/roach/idle3.ogg',) + death_sound = 'sound/f13npc/roach/roach_death.ogg' + desc_short = "One of countless bugs that move in gross hordes." + pop_required_to_jump_into = SMALL_MOB_MIN_PLAYERS + diff --git a/code/modules/mob/living/simple_animal/hostile/f13/wasteanimals.dm b/code/modules/mob/living/simple_animal/hostile/f13/wasteanimals.dm index 31a19b5f4c1..c73f4db1d33 100644 --- a/code/modules/mob/living/simple_animal/hostile/f13/wasteanimals.dm +++ b/code/modules/mob/living/simple_animal/hostile/f13/wasteanimals.dm @@ -426,7 +426,7 @@ aggro_vision_range = 7 vision_range = 9 - faction = list("gecko") + faction = list("gecko", "critter-friend") a_intent = INTENT_HARM gold_core_spawnable = HOSTILE_SPAWN footstep_type = FOOTSTEP_MOB_CLAW @@ -494,7 +494,7 @@ vision_range = 4 - faction = list("gecko") + faction = list("gecko", "critter-friend") a_intent = INTENT_HARM gold_core_spawnable = HOSTILE_SPAWN footstep_type = FOOTSTEP_MOB_HEAVY @@ -642,7 +642,7 @@ attack_sound = 'sound/creatures/nightstalker_bite.ogg' speak_emote = list("growls") atmos_requirements = list("min_oxy" = 5, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 1, "min_co2" = 0, "max_co2" = 5, "min_n2" = 0, "max_n2" = 0) - faction = list("nightstalkers") + faction = list("nightstalkers", "critter-friend") gold_core_spawnable = HOSTILE_SPAWN a_intent = INTENT_HARM footstep_type = FOOTSTEP_MOB_CLAW @@ -676,6 +676,64 @@ icon_living = "nightstalker-legion" icon_dead = "nightstalker-legion-dead" +/mob/living/simple_animal/hostile/retaliate/legionstalker + name = "Legionstalker" + desc = "A nightstalker bred specifically for the legion under the use of combat and companionship. legionstalkers have the body and loyalty of a canine but the agility and deadlyness of rattlesnake." + icon = 'icons/fallout/mobs/animals/nightstalker.dmi' + icon_state = "nightstalker-legion" + icon_living = "nightstalker-legion" + icon_dead = "nightstalker-legion-dead" + icon_gib = null + mob_biotypes = MOB_ORGANIC|MOB_BEAST + speak_chance = 0 + stat_attack = UNCONSCIOUS + turns_per_move = 3 + move_to_delay = 1 + retreat_distance = 0 + minimum_distance = 0 + aggro_vision_range = 7 + vision_range = 8 + guaranteed_butcher_results = list( + /obj/item/reagent_containers/food/snacks/meat/slab/nightstalker_meat = 2, + /obj/item/stack/sheet/sinew = 2, + /obj/item/stack/sheet/bone = 2 + ) + butcher_results = list( + /obj/item/clothing/head/f13/stalkerpelt = 1, + /obj/item/reagent_containers/food/snacks/meat/slab/nightstalker_meat = 1 + ) + butcher_difficulty = 3 + response_help_simple = "pet" + response_disarm_simple = "gently pushes aside" + response_harm_simple = "bites" + emote_taunt = list("growls") + taunt_chance = 30 + speed = 1 + maxHealth = 110 + health = 110 + harm_intent_damage = 8 + obj_damage = 15 + melee_damage_lower = 15 + melee_damage_upper = 20 + attack_verb_simple = "bites" + attack_sound = 'sound/creatures/nightstalker_bite.ogg' + speak_emote = list("growls") + atmos_requirements = list("min_oxy" = 5, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 1, "min_co2" = 0, "max_co2" = 5, "min_n2" = 0, "max_n2" = 0) + faction = list(FACTION_LEGION) + friends = list(FACTION_LEGION) + gold_core_spawnable = HOSTILE_SPAWN + a_intent = INTENT_HARM + footstep_type = FOOTSTEP_MOB_CLAW + waddle_amount = 2 + waddle_up_time = 1 + waddle_side_time = 1 + +/mob/living/simple_animal/hostile/retaliate/legionstalker/AttackingTarget() + . = ..() + if(. && ishuman(target)) + var/mob/living/carbon/human/H = target + H.reagents.add_reagent(/datum/reagent/toxin/cazador_venom, 6) + // NIGHTSTALKER CUB /mob/living/simple_animal/hostile/stalkeryoung name = "young nightstalker" @@ -802,7 +860,7 @@ attack_sound = 'sound/creatures/molerat_attack.ogg' speak_emote = list("chitters") atmos_requirements = list("min_oxy" = 5, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 1, "min_co2" = 0, "max_co2" = 5, "min_n2" = 0, "max_n2" = 0) - faction = list("hostile", "gecko") + faction = list("hostile", "gecko", "critter-friend") gold_core_spawnable = HOSTILE_SPAWN a_intent = INTENT_HARM diff --git a/code/modules/mob/living/simple_animal/hostile/f13/wolf.dm b/code/modules/mob/living/simple_animal/hostile/f13/wolf.dm index 9aeb9ccaafa..e516c053d18 100644 --- a/code/modules/mob/living/simple_animal/hostile/f13/wolf.dm +++ b/code/modules/mob/living/simple_animal/hostile/f13/wolf.dm @@ -16,7 +16,7 @@ response_harm_simple = "kicks" maxHealth = 50 health = 50 - faction = list("hostile", "wolf") + faction = list("hostile", "wolf", "critter-friend") environment_smash = 0 guaranteed_butcher_results = list(/obj/item/stack/sheet/animalhide/wolf = 1, /obj/item/reagent_containers/food/snacks/meat/slab/wolf = 1,/obj/item/stack/sheet/bone = 1) melee_damage_lower = 8 @@ -110,3 +110,119 @@ icon_living = "shepherd" icon_dead = "shepherd_dead" icon_gib = "gib" + +/mob/living/simple_animal/hostile/retaliate/legionhound + name = "Legion Hound" + desc = "War Hounds Hailing from Denver, This breed is slightly smaller then the popular Mongrel, But they're just as deadly, And don't leave around as much fur." + icon = 'icons/fallout/mobs/animals/dogs.dmi' + icon_state = "legiondog" + icon_living = "legiondog" + icon_dead = "legiondog_dead" + icon_gib = "gib" + can_ghost_into = TRUE + mob_biotypes = MOB_ORGANIC|MOB_BEAST + turns_per_move = 3 + response_help_simple = "pet" + response_disarm_simple = "push aside" + response_harm_simple = "kick" + maxHealth = 85 + health = 85 + faction = list(FACTION_LEGION) + friends = list(FACTION_LEGION) + environment_smash = 1 + guaranteed_butcher_results = list(/obj/item/stack/sheet/animalhide/wolf = 1, /obj/item/reagent_containers/food/snacks/meat/slab/wolf = 1,/obj/item/stack/sheet/bone = 1) + melee_damage_lower = 8 + melee_damage_upper = 20 + aggro_vision_range = 25 + waddle_amount = 2 + waddle_up_time = 0 + waddle_side_time = 1 + aggro_vision_range = 7 + attack_verb_simple = "bites" + attack_sound = 'sound/weapons/bite.ogg' + move_to_delay = 2 + footstep_type = FOOTSTEP_MOB_BAREFOOT + emote_taunt_sound = list('sound/f13npc/dog/dog_charge1.ogg', 'sound/f13npc/dog/dog_charge2.ogg', 'sound/f13npc/dog/dog_charge3.ogg', 'sound/f13npc/dog/dog_charge4.ogg', 'sound/f13npc/dog/dog_charge5.ogg', 'sound/f13npc/dog/dog_charge6.ogg', 'sound/f13npc/dog/dog_charge7.ogg',) + emote_taunt = list("growls", "barks", "snarls") + taunt_chance = 30 + aggrosound = list('sound/f13npc/dog/dog_alert1.ogg', 'sound/f13npc/dog/dog_alert2.ogg', 'sound/f13npc/dog/dog_alert3.ogg') + idlesound = list('sound/f13npc/dog/dog_bark1.ogg', 'sound/f13npc/dog/dog_bark2.ogg', 'sound/f13npc/dog/dog_bark3.ogg') + death_sound = 'sound/f13npc/centaur/centaur_death.ogg' + +/mob/living/simple_animal/hostile/retaliate/ncrguarddog + name = "NCR Guard Dog" + desc = "NCR Sheepdogs used for guard duty, Law enforcement, And escort missions, They are known for their intelligence and have worked alongside humans for thousands of years." + icon = 'icons/fallout/mobs/animals/dogs.dmi' + icon_state = "tippen" + icon_living = "tippen" + icon_dead = "tippen_dead" + icon_gib = "gib" + can_ghost_into = TRUE + mob_biotypes = MOB_ORGANIC|MOB_BEAST + turns_per_move = 2 + response_help_simple = "pet" + response_disarm_simple = "push aside" + response_harm_simple = "kick" + maxHealth = 70 + health = 70 + faction = list(FACTION_NCR) + friends = list(FACTION_NCR) + environment_smash = 1 + guaranteed_butcher_results = list(/obj/item/stack/sheet/animalhide/wolf = 1, /obj/item/reagent_containers/food/snacks/meat/slab/wolf = 1,/obj/item/stack/sheet/bone = 1) + melee_damage_lower = 15 + melee_damage_upper = 20 + aggro_vision_range = 10 + waddle_amount = 3 + waddle_up_time = 0 + waddle_side_time = 1 + aggro_vision_range = 7 + attack_verb_simple = "bites" + attack_sound = 'sound/weapons/bite.ogg' + move_to_delay = 2 + footstep_type = FOOTSTEP_MOB_BAREFOOT + emote_taunt_sound = list('sound/f13npc/dog/dog_charge1.ogg', 'sound/f13npc/dog/dog_charge2.ogg', 'sound/f13npc/dog/dog_charge3.ogg', 'sound/f13npc/dog/dog_charge4.ogg', 'sound/f13npc/dog/dog_charge5.ogg', 'sound/f13npc/dog/dog_charge6.ogg', 'sound/f13npc/dog/dog_charge7.ogg',) + emote_taunt = list("growls", "barks", "snarls") + taunt_chance = 30 + aggrosound = list('sound/f13npc/dog/dog_alert1.ogg', 'sound/f13npc/dog/dog_alert2.ogg', 'sound/f13npc/dog/dog_alert3.ogg') + idlesound = list('sound/f13npc/dog/dog_bark1.ogg', 'sound/f13npc/dog/dog_bark2.ogg', 'sound/f13npc/dog/dog_bark3.ogg') + death_sound = 'sound/f13npc/centaur/centaur_death.ogg' + +/mob/living/simple_animal/hostile/retaliate/ncrattackdog + name = "NCR Attack Dog" + desc = "NCR Attack Dogs are purpose-built for war, They were brought into the NCRA along with the rangers, Loyal and ferocious." + icon = 'icons/fallout/mobs/animals/dogs.dmi' + icon_state = "shepherd" + icon_living = "shepherd" + icon_dead = "shepherd_dead" + icon_gib = "gib" + can_ghost_into = TRUE + mob_biotypes = MOB_ORGANIC|MOB_BEAST + turns_per_move = 3 + response_help_simple = "pet" + response_disarm_simple = "push aside" + response_harm_simple = "kick" + maxHealth = 90 + health = 90 + faction = list(FACTION_NCR) + friends = list(FACTION_NCR) + environment_smash = 1 + guaranteed_butcher_results = list(/obj/item/stack/sheet/animalhide/wolf = 1, /obj/item/reagent_containers/food/snacks/meat/slab/wolf = 1,/obj/item/stack/sheet/bone = 1) + melee_damage_lower = 25 + melee_damage_upper = 30 + aggro_vision_range = 15 + waddle_amount = 2 + waddle_up_time = 0 + waddle_side_time = 1 + aggro_vision_range = 7 + attack_verb_simple = "bites" + attack_sound = 'sound/weapons/bite.ogg' + move_to_delay = 2 + footstep_type = FOOTSTEP_MOB_BAREFOOT + emote_taunt_sound = list('sound/f13npc/dog/dog_charge1.ogg', 'sound/f13npc/dog/dog_charge2.ogg', 'sound/f13npc/dog/dog_charge3.ogg', 'sound/f13npc/dog/dog_charge4.ogg', 'sound/f13npc/dog/dog_charge5.ogg', 'sound/f13npc/dog/dog_charge6.ogg', 'sound/f13npc/dog/dog_charge7.ogg',) + emote_taunt = list("growls", "barks", "snarls") + taunt_chance = 30 + aggrosound = list('sound/f13npc/dog/dog_alert1.ogg', 'sound/f13npc/dog/dog_alert2.ogg', 'sound/f13npc/dog/dog_alert3.ogg') + idlesound = list('sound/f13npc/dog/dog_bark1.ogg', 'sound/f13npc/dog/dog_bark2.ogg', 'sound/f13npc/dog/dog_bark3.ogg') + death_sound = 'sound/f13npc/centaur/centaur_death.ogg' + + diff --git a/code/modules/mob/living/simple_animal/hostile/hostile.dm b/code/modules/mob/living/simple_animal/hostile/hostile.dm index 63c5ca03660..8c3d6f69782 100644 --- a/code/modules/mob/living/simple_animal/hostile/hostile.dm +++ b/code/modules/mob/living/simple_animal/hostile/hostile.dm @@ -927,3 +927,16 @@ mob/living/simple_animal/hostile/proc/DestroySurroundings() // for use with mega minimum_distance = rand(0, 10) LoseTarget() visible_message(span_notice("[src] jerks around wildly and starts acting strange!")) + +/mob/living/simple_animal/hostile/attackby(obj/item/I, mob/living/user, params, attackchain_flags, damage_multiplier) + . = ..() + if(istype(I, /obj/item/melee/onehanded/dogprod)) + if("critter-friend" in faction) + LoseTarget() + LoseAggro() + peaceful = TRUE + +/mob/living/simple_animal/hostile/attackby(obj/item/I, mob/living/user, params, attackchain_flags, damage_multiplier) + . = ..() + if(istype(I, /obj/item/melee/onehanded/dogwhip)) + peaceful = FALSE diff --git a/code/modules/mob/living/simple_animal/hostile/retaliate/retaliate.dm b/code/modules/mob/living/simple_animal/hostile/retaliate/retaliate.dm index ceacc06a038..28b3d9882a0 100644 --- a/code/modules/mob/living/simple_animal/hostile/retaliate/retaliate.dm +++ b/code/modules/mob/living/simple_animal/hostile/retaliate/retaliate.dm @@ -54,3 +54,16 @@ . = ..() if(. > 0 && stat == CONSCIOUS) Retaliate() + +/mob/living/simple_animal/hostile/retaliate/attackby(obj/item/I, mob/living/user, params, attackchain_flags, damage_multiplier) + . = ..() + if(istype(I, /obj/item/melee/onehanded/dogprod)) + if("critter-friend" in faction) + LoseTarget() + LoseAggro() + peaceful = TRUE + +/mob/living/simple_animal/hostile/retaliate/attackby(obj/item/I, mob/living/user, params, attackchain_flags, damage_multiplier) + . = ..() + if(istype(I, /obj/item/melee/onehanded/dogwhip)) + peaceful = FALSE diff --git a/fallout/code/game/objects/eyebots.dm b/fallout/code/game/objects/eyebots.dm index b73dae9ffa2..75a65c87d0b 100644 --- a/fallout/code/game/objects/eyebots.dm +++ b/fallout/code/game/objects/eyebots.dm @@ -1,8 +1,29 @@ var/list/eyebots = list() /mob/living/simple_animal/hostile/eyebot/virtual + name = "Brotherhood Eyebot" + desc = "An eyebot reprogrammed and repurposed by brotherhood scribes for Reconnaissance work, Useful in a skirmish." + maxHealth = 65 + health = 65 + peaceful = TRUE + faction = list(FACTION_BROTHERHOOD) + turns_per_move = -1 var/mob/living/carbon/human/pilot +/mob/living/simple_animal/hostile/eyebot/virtual/floatingeye + name = "Brotherhood Floating Eyebot" + desc = "A quick-observation robot reprogrammed and repurposed by brotherhood scribes, Not very deadly, And not very tough, But is armed with a debilitating ranged electrode taser." + maxHealth = 35 + health = 35 + peaceful = TRUE + faction = list(FACTION_BROTHERHOOD) + icon = 'icons/fallout/mobs/robots/eyebots.dmi' + icon_state = "floatingeye" + icon_living = "floatingeye" + icon_dead = "floatingeye_d" + projectiletype = /obj/item/projectile/energy/electrode + projectilesound = 'sound/weapons/resonator_blast.ogg' + /mob/living/simple_animal/hostile/eyebot/virtual/New() . = ..() eyebots += src @@ -36,10 +57,10 @@ var/list/eyebots = list() /obj/machinery/computer/eyebots name = "eyebot console" - desc = "Used to access eyebots." + desc = "Used to access eyebots. (Type stop-control to leave an eyebot.)" icon = 'icons/fallout/machines/terminals.dmi' - icon_state = "enclave" - icon_screen = "enclave_on" + icon_state = "advanced" + icon_screen = "advanced_on" var/datum/browser/popup /obj/machinery/computer/eyebots/New() diff --git a/hailmary.dme b/hailmary.dme index 655e5a4601a..cec0fb5d656 100644 --- a/hailmary.dme +++ b/hailmary.dme @@ -1470,9 +1470,9 @@ #include "code\modules\admin\holder2.dm" #include "code\modules\admin\ipintel.dm" #include "code\modules\admin\IsBanned.dm" -#include "code\modules\admin\outfits.dm" #include "code\modules\admin\multikey_bypass.dm" #include "code\modules\admin\NewBan.dm" +#include "code\modules\admin\outfits.dm" #include "code\modules\admin\permissionedit.dm" #include "code\modules\admin\player_panel.dm" #include "code\modules\admin\secrets.dm"