mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-08-24 05:30:05 +01:00
## About The Pull Request Melbert asked me to make this and I thought it'd be relatively easy and plausibly useful so I did. This PR adds a feature to the VV menu for mobs which allows you to apply and configure an AI controller from a list of templates. It's not as versatile as coding one would be, but it should be able to accomodate a lot of generic scenarios. Some examples of basic stuff you can set it up to do: - Give Ian a machine gun he will fire at nearby people while staying within a specified min/max range. - Have Poly fire brimstone beams on cooldown at whoever is nearby (although she won't bother trying to line up cardinally). - Assign a gorilla to be someone's personal bodyguard which will follow them around and attack anyone who hurts them. I have also made an executive decision to remove the restriction that basic ai controllers can only be placed on basic mobs. We've removed _most_ non-basic simple mobs from the game, and also have more recently updated most AI behaviours to work agnostically of whether they are assigned to a basic mob or not... which means that they'll largely work on carbons. Coincidentally, this feature makes sure to ask if you want an AI controller to remain active on a mob which already has a client. Assigning an active AI controller to a live player which forces their character to automatically attempt to run away from whoever the last person to attack them was is ~~not recommended behaviour because it's largely untested~~ highly recommended behaviour because I think it's very funny (makes it very hard to play though). I'm gonna do another PR some time which cleans up `random_speech` so it's configurable and then let you slap that on whoever as well. ## Why It's Good For The Game Enables a greater level of admin abuse. ## Changelog 🆑 admin: Added easier tooling for admins to add or change the AI controllers on mobs /🆑
40 lines
1.6 KiB
Plaintext
40 lines
1.6 KiB
Plaintext
/mob/living/basic/heretic_summon/fire_shark
|
|
name = "\improper Fire Shark"
|
|
real_name = "Fire Shark"
|
|
desc = "It is a eldritch dwarf space shark, also known as a fire shark."
|
|
icon_state = "fire_shark"
|
|
icon_living = "fire_shark"
|
|
pass_flags = PASSTABLE | PASSMOB
|
|
mob_biotypes = MOB_ORGANIC | MOB_BEAST | MOB_AQUATIC
|
|
speed = -0.5
|
|
health = 16
|
|
maxHealth = 16
|
|
melee_damage_lower = 8
|
|
melee_damage_upper = 8
|
|
attack_sound = 'sound/items/weapons/bite.ogg'
|
|
attack_vis_effect = ATTACK_EFFECT_BITE
|
|
obj_damage = 0
|
|
attack_verb_continuous = "bites"
|
|
attack_verb_simple = "bite"
|
|
damage_coeff = list(BRUTE = 1, BURN = 0.25, TOX = 0, STAMINA = 0, OXY = 0)
|
|
faction = list(FACTION_HERETIC)
|
|
mob_size = MOB_SIZE_TINY
|
|
speak_emote = list("screams")
|
|
basic_mob_flags = DEL_ON_DEATH
|
|
ai_controller = /datum/ai_controller/basic_controller/simple/simple_hostile_obstacles
|
|
initial_language_holder = /datum/language_holder/carp/hear_common
|
|
|
|
/mob/living/basic/heretic_summon/fire_shark/Initialize(mapload)
|
|
. = ..()
|
|
AddElement(/datum/element/death_gases, /datum/gas/plasma, 40)
|
|
AddElement(/datum/element/simple_flying)
|
|
AddElement(/datum/element/venomous, /datum/reagent/phlogiston, 2, injection_flags = INJECT_CHECK_PENETRATE_THICK)
|
|
AddComponent(/datum/component/swarming)
|
|
AddComponent(/datum/component/regenerator, outline_colour = COLOR_DARK_RED)
|
|
ADD_TRAIT(src, TRAIT_SPACEWALK, INNATE_TRAIT)
|
|
ADD_TRAIT(src, TRAIT_FREE_HYPERSPACE_MOVEMENT, INNATE_TRAIT)
|
|
ADD_TRAIT(src, TRAIT_VENTCRAWLER_ALWAYS, INNATE_TRAIT)
|
|
|
|
/mob/living/basic/heretic_summon/fire_shark/wild
|
|
faction = list(FACTION_HOSTILE)
|