User:Mindtheblob

From Wildermyth Wiki
Revision as of 13:09, 14 January 2022 by Mindtheblob (talk | contribs) (Created page with "====Hero Targeting==== Almost all events require heroes to be targeted for roles. Furthermore, many events require heroes to match roles with specific criteria. There are thre...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Hero Targeting

Almost all events require heroes to be targeted for roles. Furthermore, many events require heroes to match roles with specific criteria. There are three main types of roles to consider:

  1. Required Roles
  2. Optional Roles
  3. Forbidden Roles

Required roles are mandatory. If no hero matches a particular required role, the event targeting will fail, and the event will not be in the pool of possible events for the encounter. Optional roles are not mandatory. An event may trigger even if an optional role is not matched. Forbidden roles are forbidden. If a forbidden role is matched to a hero, the event targeting will fail, and the event will not be in the pool of possible events for the encounter.

Note, to make matters more complicated, required roles may have optional targeting preferences, and optional roles may have required score thresholds. These are explained in more detail in the next section.

For current purposes, the sub-sections in this section will briefly explain hero scoring, aspects and tests.

Hero Scoring

Required and optional roles are the most common roles to come across in hero targeting. They typically choose their matches by the hero scoring the highest score of a score function. A score function is a function of requirements and their values for the role. These score functions may include, for example, personality or experience stats, specific relationships between heroes, and aspects such as hooks or items.

Examples of Score Functions
Role: hero1
Score Function: LEADER >= 50
This score function only targets the LEADER stat, and has a score threshold of 50 or above. For a hero to match this role, they must have a LEADER stat of 50 or above.
Role: hero1
Score Function: LEADER+HOTHEAD >= 100
This score function targets the sum of the LEADER and HOTHEAD stats of a hero, and has a score threshold of 100 or above. For a hero to match this role, the sum of their LEADER and HOTHEAD stats must be 100 or above.
Hero Aspects

Another common requirement in hero targeting is the listing of Required or Forbidden Aspects. Listed Aspects are required for a hero to match the target role, whereas Forbidden Aspects make a hero with those aspects ineligible for the role. Continuing with our previous example, lets add a Required and Forbidden Aspect to the role.

Example of Aspects and Score Functions
Role: hero1
Score Function: LEADER >= 50
Aspects: theme_crow
Forbidden Aspects: mystic
This score function only targets the LEADER stat, and has a score threshold of 50 or above. The Aspects lists a required aspect called theme_crow (the aspect for the crow transformation). The Forbidden Aspects lists an aspect called mystic (the hero class). Now, for a hero to match this role, they must have a LEADER stat of 50 or above, have the crow transformation, and not be a mystic.
Hero Tests

A less common requirement is Tests. They are primarily used, when two stats do not want to be mixed in score functions.

Example of Test, Aspect, and Score Function
Role: hero1
Score Function: LEADER >= 50
Aspects: theme_crow
Test: AGE <= 35
This score function only targets the Leader stat, and has a score threshold of 50 or above. The Aspects lists a required Aspect called theme_crow (the aspect for the crow transformation). The Test requires the hero's age to be less than or equal to 35. Now, for a hero to match this role, they must have a LEADER stat of 50 or above, have the crow transformation, and be 35 years of age or younger.
Forbidden Roles

Forbidden roles are far less common. If a forbidden role is matched, the event will not be in the pool of eligible encounter events triggered.

Example of a Forbidden Role
Role: hero1
Forbidden Role: hero2
This event would fail to trigger if a second role was matched, in this case, we might assume the event is only available to a one hero party.
Role Names

Important! When reading event targets, the name of a role is just a name. How the role is defined with scoring, aspects and tests, introduced above, determines if a hero can be matched to the role. Typical role names for heroes used in event targets include hero1, hero2, personality names (goofball, healer, etc.), hook, rival, lover, volunteer, and so forth. With this in mind, a role named rival may well only require a certain personality threshold, or alternatively, it may not have any specific requirements at all. Consider the following quiz:

Quiz: Roles Named Rival
Role name: hero1
Let's assume this role will match any hero.
Question: Which One of the Roles Named Rival Requires a Rival?
A) Role name: rival
Aspects: mystic
B) Role name: rival
Score Function: GOOFBALL >= 80
C) Role name: rival
Score Function: RIVAL_WITH.hero1
Answer: It's actually a trick question, as will be explained in the next section, but the closest is Rival C. It is a trick question because the score function does not specify a score threshold. As it stands, the Rival C role will only preferably target a rival of hero1. If a score threshold was specified, the role would require a hero who is a rival of hero1:
D) Role name: rival
Score Function: RIVAL_WITH.hero1 >= 1
Special Cases of Hero Targeting

In straightforward encounter events, a hero is selected for a single role from the party that triggered the event.

However, there are various special cases, where heroes may be targeted for more than one role, as well as cases, where heroes may be targeted from outside the party.

These special cases are typically used for selecting specific heroes for event choice panels, dialogue, and enabling special choices for heroes with specific requirements. An example of the latter, many transformations have unique choices in certain events, and these are targeted with an optional role, that may well target a hero already matched to another role.

Important! This may result in confusion when interpreting hero targeting. There may be more required roles, than there are required heroes.

At the time of writing, the Wiki does not account for definitions such as fromRoles:,notAlreadyMatchedAs:, and alreadyMatchedAs: in Event Targeting.

The fromRoles definition defines from which roles the role is drawn. The MatchedAs definitions are used to make sure that the same entity is either matched or not matched in another role.

These definitions can currently only be found in the Content Editor. Below, an example is given of what a special case might look like:

Example of a Special Case
Role: hero1 (required)
Score Function: LEADER >= 50
fromRoles: party
Role: rival (required)
Score Function: RIVAL_WITH.hero1 >= 1
Forbidden Aspects: mystic
fromRoles: party
notAlreadyMatchedAs: hero1
Role: hero2 (required)
Forbidden Aspects: mystic
fromRoles: party
notAlreadyMatchedAs: hero1, rival
Role: greedy (required)
Score Function: max(GREEDY, SNARK)
fromRoles: hero1, hero2
This example shows four required roles, but, in fact, only requires three heroes. As we have learned, hero1 requires a LEADER stat threshold, rival is required to be a rival of hero1, and hero2 is required to be a mystic. Unlike the previous three roles, the greedy role is drawn fromRoles: hero1, hero2 and does not have a notAlreadyMatchedAs definition. The score function in greedy role will target the hero with the highest GREEDY or SNARK stat, but only from the roles hero1 and hero2.