/tg/ Station 13 - Modules - TypesVar Details - Proc Details

parrot

Parrots! Klepto bastards that imitate your speech and hoard your shit.

Vars

desired_perchesContains all of the perches that parrots will generally sit on until something catches their eye.
earsHeadset for Poly to yell at engineers :)
ediblesFood that Poly loves to eat (spoiler alert it's just crackers)
forced_speech_cooldownTracks the times when we send a phrase through either being pet or attack to ensure it's not abused to flood
held_itemParrots are kleptomaniacs. This variable ... stores the item a parrot is holding.
icon_sitIcon we use while sitting
ignore_itemsitems we wont pick up
speech_blackboard_keyThe blackboard key we use to store the string we're repeating
speech_probability_rateThe generic probability odds we have to do a speech-related action
speech_shuffle_rateThe generic probability odds we have to switch out our speech string

Procs

consume_crackerEats a cracker (or anything i guess). This would be nice to eventually fold into the basic_eating element but we do too much snowflake inventory code stuff for this to be reliable presently. We don't qdel the item here, we assume the invoking proc will have handled that somehow. Returns TRUE if we ate the thing.
drop_held_itemHandles dropping items we're holding. Gently is a special modifier we can use for special interactions.
get_available_channelsGets the available channels that this parrot has access to. Returns a list of the channels we can use.
get_phraseProc that handles sending the signal and returning a valid phrase to say. Will not do anything if we don't have a stat or if we're cliented. Will return either a string or null.
get_static_list_of_phrasesGets a static list of phrases we wish to pass to the element.
on_attackedIf we're right-clicked on with a cracker, we eat the cracker.
on_clickProc that we just use to see if we're rightclicking something for perch behavior or dropping the item we currently ahve
on_injuredHandles special behavior whenever we are injured.
on_petProc that listens for when a parrot is pet so we can dispatch a voice line.
perch_on_humanProc that will perch us on a human. Returns TRUE if we perched, FALSE otherwise.
pick_up_itemHandles picking up the item we're holding, done in its own proc because of a snowflake edge case we need to account for. No additional logic beyond that. Returns TRUE if we picked it up, FALSE otherwise.
pre_attackingMaster proc which will determine the intent of OUR attacks on an object and summon the relevant procs accordingly. This is pretty much meant for players, AI will use the task-specific procs instead.
setup_headsetWill simply set up the headset for the parrot to use. Stub, implemented on subtypes.
start_perchingProc that ascertains the type of perch we're dealing with and starts the perching process. Returns TRUE if we started perching, FALSE otherwise.
steal_from_groundPicks up an item from the ground and puts it in our claws. Returns TRUE if we picked it up, FALSE otherwise.
steal_from_mobLooks for an item that we can snatch and puts it in our claws. Returns TRUE if we picked it up, FALSE otherwise.
update_speech_blackboardsUpdates our speech blackboards mob-side to reflect the current speech on the controller to ensure everything is synchronized.

Var Details

desired_perches

Contains all of the perches that parrots will generally sit on until something catches their eye.

ears

Headset for Poly to yell at engineers :)

edibles

Food that Poly loves to eat (spoiler alert it's just crackers)

forced_speech_cooldown

Tracks the times when we send a phrase through either being pet or attack to ensure it's not abused to flood

held_item

Parrots are kleptomaniacs. This variable ... stores the item a parrot is holding.

icon_sit

Icon we use while sitting

ignore_items

items we wont pick up

speech_blackboard_key

The blackboard key we use to store the string we're repeating

speech_probability_rate

The generic probability odds we have to do a speech-related action

speech_shuffle_rate

The generic probability odds we have to switch out our speech string

Proc Details

consume_cracker

Eats a cracker (or anything i guess). This would be nice to eventually fold into the basic_eating element but we do too much snowflake inventory code stuff for this to be reliable presently. We don't qdel the item here, we assume the invoking proc will have handled that somehow. Returns TRUE if we ate the thing.

drop_held_item

Handles dropping items we're holding. Gently is a special modifier we can use for special interactions.

get_available_channels

Gets the available channels that this parrot has access to. Returns a list of the channels we can use.

get_phrase

Proc that handles sending the signal and returning a valid phrase to say. Will not do anything if we don't have a stat or if we're cliented. Will return either a string or null.

get_static_list_of_phrases

Gets a static list of phrases we wish to pass to the element.

on_attacked

If we're right-clicked on with a cracker, we eat the cracker.

on_click

Proc that we just use to see if we're rightclicking something for perch behavior or dropping the item we currently ahve

on_injured

Handles special behavior whenever we are injured.

on_pet

Proc that listens for when a parrot is pet so we can dispatch a voice line.

perch_on_human

Proc that will perch us on a human. Returns TRUE if we perched, FALSE otherwise.

pick_up_item

Handles picking up the item we're holding, done in its own proc because of a snowflake edge case we need to account for. No additional logic beyond that. Returns TRUE if we picked it up, FALSE otherwise.

pre_attacking

Master proc which will determine the intent of OUR attacks on an object and summon the relevant procs accordingly. This is pretty much meant for players, AI will use the task-specific procs instead.

setup_headset

Will simply set up the headset for the parrot to use. Stub, implemented on subtypes.

start_perching

Proc that ascertains the type of perch we're dealing with and starts the perching process. Returns TRUE if we started perching, FALSE otherwise.

steal_from_ground

Picks up an item from the ground and puts it in our claws. Returns TRUE if we picked it up, FALSE otherwise.

steal_from_mob

Looks for an item that we can snatch and puts it in our claws. Returns TRUE if we picked it up, FALSE otherwise.

update_speech_blackboards

Updates our speech blackboards mob-side to reflect the current speech on the controller to ensure everything is synchronized.