Skip to content

YAML Basics: Part 3 Intermediate Concepts

Adam Sechrest edited this page Dec 22, 2021 · 2 revisions

General Notes On Support Documentation Formatting

In previous articles, we pointed out the Lich script repository for learning both what settings are available and how individual scripts utilize those settings. Since it may not be immediately obvious how the formatting of the documentation should align with the actual format in your YAML, a few examples will be provided here.

Under the combat-trainer expanded section of the Lich script repository, find the following information:

skinning: Hash of skinning related settings.
skinning:skin: true to skin kills.
skinning:arrange_all: true if you can use the arrange ALL command.
skinning:arrange_count: Number of times to arrange
skinning:arrange_types: Hash of creature noun to the type of arranging to do, eg rat:part. All arranging defaults to skin.
skinning:tie_bundle: true to tie your bundles up to reduce weight and item count.

If you have seen a skinning section in another character's YAML or base.yaml, you will see that each attribute is listed along with the section to which it belongs. As such, the proper way to format this section of the combat-trainer documentation is as such:

skinning:
  skin: true
  arrange_all: false
  arrange_count: 5
  arrange_types: rat:bone
  tie_bundle: true

Another example:

training_abilities: Special one off trainers during combat. Hash is training type keyed to cooldown in seconds.
training_abilities:PercMana: Moon mage attunement training, retreats first.
training_abilities:Perc: Attunement training with perc.
training_abilities:Perc Health: Empathy training with perc heal.
training_abilities:Astro: Predict weather for astrology training.
training_abilities:App: Train appraisal by appraising enemies. Requires Approx 100 ranks for learning.
training_abilities:App Quick: See above.
training_abilities:App Careful: See above.
training_abilities:Tactics: Train tactics with weave, bob, and circle.
training_abilities:Hunt: Train perception and possibly scouting with the hunt command.
training_abilities:Pray: Pray to an immortal for theurgy.
training_abilities:Scream: Train bardic lore with scream conc.
training_abilities:Stealth: Train stealth with hiding and stalking.
training_abilities:Ambush Stun: Uses settings stun_weapon, stun_weapon_skill and stun_skill

In our YAML, listing only the abilities relevant to our starter character:

training_abilities:
  Perc: 120
  Tactics: 80
  Hunt: 90
  Stealth: 60

Each of these abilities will be called every # of seconds (e.g., your character will hide ("Stealth") every 60 seconds, hunt ever 90 seconds, and so on).

Basically, every list or hash or array will include each "level" for each nesting, or indentation.

Intermediate YAML Features

Our existing starter character YAML here for ease of reference:

hunting_info:
- :zone: rats
  :duration: 60
  stop_on:
  - Parry Ability
  - Shield Usage
  - Small Edged

weapon_training:
  Small Edged: short sword

buff_spells:
  Sweet Buff Spell:
    abbrev: sbs
    recast: 3
    mana: 5
    cambrinth:
    - 4
    - 4

offensive_spells:
- skill: Debilitation
  name: Barry Manilow's Greatest Hits
  abbrev: bmgh
  mana: 5
- skill: Targeted Magic
  name: Psychic Headbutt
  abbrev: ph
  mana: 5

cambrinth: ring
cambrinth_cap: 4
stored_cambrinth: false

crossing_training:
- Perception
- Augmentation
- Athletics
- Outdoorsmanship
- Attunement
- Utility
- Warding

gear:
  :adjective: cloth
  :name: hood
  :is_leather: true
  :hinders_lockpicking: true
  :is_worn: true

  ...rest of gear...
  
  :adjective: short
  :name: sword
  :is_leather: false

gear_sets:
  standard:
  - cloth hood
  ...rest of gear...
  stealing: []

If you were to set this up and execute the training-manager script, you would notice a few things. One, it begins by going through a certain set of actions before executing the crossing-training script. Once the skills listed under crossing_training reach acceptable levels, only then will training-manager call the combat script, combat-trainer.

What if we wanted to alter the order? Suppose we want to prioritize combat-trainer over crossing-training. We simply enable the following:

training_manager_hunting_priority: true

This setting tells Lich to hunt first, train second. But how does Lich know when to stop training in town to return to combat? Or, how does Lich know which skills it needs to prioritize in order to return to combat?

training_manager_priority_skills:
- Small Edged
- Parry Ability
- Shield Usage

These two settings (training_manager_hunting_priority: true and training_manager_priority_skills) provide training-manager the necessary information to both prioritize hunting and to determine at what point crossing-training should stop.

Combined with our stop_on list, here is what is happening:

training-manager begins hunting (training_manager_hunting_priority: true) and stays in combat until 60 minutes have passed (:duration: 60) or until our three skills (stop_on) have reached acceptable learning rates. It then exits combat and begins training the skills listed in crossing_training. It will continue training those skills until Small Edged, Parry Ability, or Shield Usage (training_manager_priority_skills) reaches a learning rate of 6/34 or below, at which point it will return to combat.

Optimizing Combat Versus Crossing Training Time

Given the differences in absorption time across skill sets, configuring your stop_on and training_manager_priority_skills can have a large impact on time spent in and out of combat. Consider the following two examples of a Warrior Mage (Primary:Magic - Secondary:Weapons,Lore - Tertiary:Survival,Armor).

stop_on:
- Targeted Magic
- Debilitation

training_manager_priority_skills:
- Plate Armor
- Evasion

...versus...

stop_on:
- Plate Armor
- Evasion

training_manager_priority_skills:
- Targeted Magic
- Debilitation

What will be the difference? In the first grouping, time spent in combat will be very low due to magic skills locking very quickly, whereas time spent out of combat will be very long since tertiary skills drain so slowly.

However, in the second grouping, time spent in combat will be very low due to armor and evasion locking quickly (additionally, faster due to tertiary skills having smaller pools), and time spent out of combat will be relatively quickly due to primary skill drain rate.

It is generally accepted to set your stop_on to be skills that lock in a sufficient amount of time while also training any other incidentals you wish, and then setting your training_manager_priority_skills to skills that drain in such a time that allows your crossing_training list to successfully iterate at least once while still preventing all combat skills from completely draining (at least, from staying completely drained for too long).

Furthermore, using these settings allows one to maintain some semblance of control over time spent in combat against creatures the character has soft-capped. For example, soft-capping Evasion as a Survival primary happens frequently. So, setting your stop_on to Evasion will mean you will never leave combat without manual intervention (assuming :duration is not set).

Thus, set stop_on to skills that train to mind lock quickly, but not so quickly that your other combat skills suffer.

This is on a character-by-character basis, and will require continual upkeep and maintenance to ensure optimal timings.

Continue to part 4

Clone this wiki locally