Difference between revisions of "Modding repeated roles"

From Wildermyth Wiki
Line 23: Line 23:
{
{
"modId": "lewe",
"modId": "lewe",
"id": "lewe_skeletonKey_owner",
"id": "lewe_hero",
"importance": -1,
"importance": -1,
"lifespan": "all"
"lifespan": "all"
Line 29: Line 29:
]
]
</syntaxhighlight>
</syntaxhighlight>
The default value of lifespan is "missionOnly".  This is appropriate for other situations, but here we need the aspect to remain in place for the entire game.  Be sure to set lifespan to "all".
The default value of lifespan is "missionOnly".  This is appropriate for other situations, but here we need the aspect to remain in place for the entire game.  Be sure to set lifespan to "all".  Create one aspect for each role you wish to repeat in the second encounter.


==Add the aspects in the outcome==
==Add the aspects in the outcome==
Click the "add"
In the outcome section, click "Add Outcome".  This exact screenshot is from a mod which has a choice, and already has some outcomes including a theme and a relationship change; your outcome section may have fewer sections filled in.
 
[[File:ModdingRepeatedAdd.PNG]]
[[File:ModdingRepeatedAdd.PNG]]
Then
 
In the "New Outcome" dialog, on the left, select Aspects.  Ignore the suggestions in the middle.  On the right, click target to set the role from the encounter to whom the aspect will be added.  Then hover over addAspects, click "new", and select the aspect. 
 
[[File:ModdingRepeatedOutcome.PNG]]
[[File:ModdingRepeatedOutcome.PNG]]
You can add multiple aspects to one character in one outcome, but you will need to add a separate outcome for each character.  The json text for the outcome section should look like this:
<syntaxhighlight lang="json">
{
"class": "Aspects",
"target": "hero",
"addAspects": [
{ "id": "lewe_hero", "value": "1" }
]
},
{
"class": "Aspects",
"target": "leader",
"addAspects": [
{ "id": "lewe_leader", "value": "1" }
]
}
</syntaxhighlight>


==Create the second encounter==
==Create the second encounter==
Create the basic encounter the same way you created the encounter above.   
Create the basic encounter the same way you created the encounter above.  The encounter will have several roles.  You can filter by individual aspects


==Seeing the effect in game==
==Seeing the effect in game==

Revision as of 00:13, 27 December 2019

This page walks through the process of adding a second encounter, which may occur later in the game, where some of the roles from the first encounter are repeated. For example, you may want to foreshadow something by having one character make a comment, and later have something happen to that character. The focus is on getting something simple which you can see in the game, and adding more details later. The description and screenshots are current as of December 2019, early access version 0.12+104 Pixle Masterson.

Prerequisite encounter

  1. This is a brief summary of the prerequisite steps. If you have an example event already skip to the next section. For more details see Modding a wilderness encounter
  2. Select "Tools" at the main game screen, then "Open Editor", then "Content and Comics Editor"
  3. At the upper left, click "Mods", click "Create New Mod" in the browser, and fill in the form.
  4. At the upper left, click "effects", then "New", and fill in the form. In the "Type" dropdown, select "Wilderness Scouting". The name field will fill in with auto-generated text.
  5. On the targets line, add the default "hero" story role and a second story role "volunteer"
  6. Delete the choiceTarget section, and in the outcome list, add "description". This creates the comic.
  7. This is the most common mistake, causing a mod to not work! New events are disabled by default. Under abilities, set encounterEnabled to true
  8. Save, and go to the comics screen
  9. Add a basic full size panel with the hero and volunteer facing each other.
  10. Your screen should look similar to this:

ModdingVariantText.PNG

Key concept

In the outcomes section of an encounter, you can do a lot of things. In this case, we will add a custom "aspect" onto each character. Then the second encounter will have filters, so it will only trigger if the required aspects are present. Suppose the first encounter adds aspects to two characters, but one of them is killed. Then the second encounter will never trigger because it will never find both aspects.

Create the aspects

It's quick to create the aspect file in a text editor, and easier to control the names. Create the folders as needed to edit a new file in the assets/aspects folder. I use one file named <mod>_aspects.json to store all the aspects. Each aspect looks like this:

[
{
	"modId": "lewe",
	"id": "lewe_hero",
	"importance": -1,
	"lifespan": "all"
}
]

The default value of lifespan is "missionOnly". This is appropriate for other situations, but here we need the aspect to remain in place for the entire game. Be sure to set lifespan to "all". Create one aspect for each role you wish to repeat in the second encounter.

Add the aspects in the outcome

In the outcome section, click "Add Outcome". This exact screenshot is from a mod which has a choice, and already has some outcomes including a theme and a relationship change; your outcome section may have fewer sections filled in.

ModdingRepeatedAdd.PNG

In the "New Outcome" dialog, on the left, select Aspects. Ignore the suggestions in the middle. On the right, click target to set the role from the encounter to whom the aspect will be added. Then hover over addAspects, click "new", and select the aspect.

ModdingRepeatedOutcome.PNG

You can add multiple aspects to one character in one outcome, but you will need to add a separate outcome for each character. The json text for the outcome section should look like this:

{
	"class": "Aspects",
	"target": "hero",
	"addAspects": [
		{ "id": "lewe_hero", "value": "1" }
	]
},
{
	"class": "Aspects",
	"target": "leader",
	"addAspects": [
		{ "id": "lewe_leader", "value": "1" }
	]
}

Create the second encounter

Create the basic encounter the same way you created the encounter above. The encounter will have several roles. You can filter by individual aspects

Seeing the effect in game

NYI