Files
Bubberstation/code/datums/ai/dog/dog_controller.dm
Ben10Omintrix 7a44f10993 basic gutlunchers and ashwalker ranching (#79508)
## About The Pull Request
this pr transforms gutlunchers into basic mobs and gives them a small
ranch that ashwalkers can manage. gutlunches come in various colors and
sizes! female gutlunches will come in different shades of red and males
will come in shades of blue. the child born will have a mix of his
parent's colors.
![the
farm](https://github.com/tgstation/tgstation/assets/138636438/41fdb1ed-e567-4c8d-bb83-b296f878c862)
female gutlunches can make various healing milk and medicine from its
udder. but it will need to consume ores before it can start making milk,
u can either feed it by hand or u can put ores in the wooden trough and
they will go eat from it whenever they get hungry. feeding it gold or
bluespace ore will improve the healing quality of the milk for a short
while

![trough](https://github.com/tgstation/tgstation/assets/138636438/b9c84d18-fdd8-476b-b779-bdfe49dd7e88)
the male gutlunchers are obedient pets. their stats vary from one
another in speed, attack and health. a male gutlunchers stats will
depend on the stats of his parents, the higher his parent's stats are
the better chances he has at rolling higher stats. so u can selectively
breed them to make sure they have the best stats possible. they will
listen to all ur commands and can mine walls or attack enemies if given
the command. also i wanted the farm to have wood fences so i added them
to the game, they cost 5 wood planks to make



## Why It's Good For The Game
refactors gutlunches into basic mobs. also i turned breeding into a
component so it can be applied to all animals and created a breed
command, pets that have this command and the component will go breed
with a partner u point at.

## Changelog
🆑
refactor: gutlunches have been refactored into basic mobs. please report
any bugs
add: ashwalkers have a small ranch they can manage
fix: wall tearer compnent wont runtime when interacting with mineral
walls
/🆑
2023-11-13 01:20:19 -07:00

65 lines
2.3 KiB
Plaintext

/datum/ai_controller/basic_controller/dog
blackboard = list(
BB_DOG_HARASS_HARM = TRUE,
BB_VISION_RANGE = AI_DOG_VISION_RANGE,
BB_PET_TARGETING_STRATEGY = /datum/targeting_strategy/basic/not_friends,
)
ai_movement = /datum/ai_movement/basic_avoidance
idle_behavior = /datum/idle_behavior/idle_dog
planning_subtrees = list(
/datum/ai_planning_subtree/random_speech/dog,
/datum/ai_planning_subtree/pet_planning,
/datum/ai_planning_subtree/dog_harassment,
)
/**
* Same thing but with make tiny corgis and use access cards.
*/
/datum/ai_controller/basic_controller/dog/corgi
blackboard = list(
BB_DOG_HARASS_HARM = TRUE,
BB_VISION_RANGE = AI_DOG_VISION_RANGE,
BB_PET_TARGETING_STRATEGY = /datum/targeting_strategy/basic/not_friends,
// Find nearby mobs ...
BB_TARGETING_STRATEGY = /datum/targeting_strategy/basic/holding_object,
// With tongs in hand!
BB_TARGET_HELD_ITEM = /obj/item/kitchen/tongs,
BB_BABIES_PARTNER_TYPES = list(/mob/living/basic/pet/dog),
BB_BABIES_CHILD_TYPES = list(/mob/living/basic/pet/dog/corgi/puppy = 95, /mob/living/basic/pet/dog/corgi/puppy/void = 5),
)
planning_subtrees = list(
/datum/ai_planning_subtree/random_speech/dog,
/datum/ai_planning_subtree/make_babies, // Ian WILL prioritise sex over following your instructions
/datum/ai_planning_subtree/pet_planning,
/datum/ai_planning_subtree/dog_harassment,
// Find targets to run away from (uses the targeting strategy from above)
/datum/ai_planning_subtree/simple_find_target,
// Flee from that target
/datum/ai_planning_subtree/flee_target,
)
/datum/ai_controller/basic_controller/dog/corgi/get_access()
var/mob/living/basic/pet/dog/corgi/corgi_pawn = pawn
if(!istype(corgi_pawn))
return
return corgi_pawn.access_card.GetAccess()
/datum/ai_controller/basic_controller/dog/puppy
blackboard = list(
BB_DOG_HARASS_HARM = TRUE,
BB_VISION_RANGE = AI_DOG_VISION_RANGE,
BB_PET_TARGETING_STRATEGY = /datum/targeting_strategy/basic/not_friends,
BB_TARGETING_STRATEGY = /datum/targeting_strategy/basic/holding_object,
// With tongs in hand!
BB_TARGET_HELD_ITEM = /obj/item/kitchen/tongs,
)
planning_subtrees = list(
/datum/ai_planning_subtree/random_speech/dog,
/datum/ai_planning_subtree/pet_planning,
/datum/ai_planning_subtree/dog_harassment,
/datum/ai_planning_subtree/simple_find_target,
/datum/ai_planning_subtree/flee_target,
)