;-------------------------------------------------------------------------------
[StoryMode]
;IKEMEN feature: Story mode arcs selectable from main menu. List of available
;story mode arcs is generated automatically based on this data. Story mode
;won't be visible in main menu if there are no story arcs declared.
;
; Each story arc declaration consists of following parameters:
; modename: Unique name of the mode (must be different then any mode name
; listed in [UnlockContent] section)
; displayname: Name of the arc that will be displayed in main menu
; data: path to the JSON table that contains all story arc data OR path
; to LUA file where you can code whole story mode from scratch,
; ignoring everything described below.
;
;JSON's appeal is that it is both compact and human readable/editable solution
;for representing complex data structures. First of all you should familiarize
;yourself with the syntax: https://www.freeformatter.com/json-validator.html
;
; Each JSON object in a top array can store following data (key:value pair)
; if: String containing all trigger statements. The Equality and Relational
; Operators (==, !=, >, >=, <, <=), as well as nesting, are supported.
; You can also check multiple statements at once with && (and), || (or)
; operators. Following statement types are supported:
; - variables and scene variables (use any name, starting with 'var.'
; prefix)
; - match variables (automatically set during match, starting with
; 'match.' prefix) (list available below)
; - character name (check via 'name.X', where X is player num 1 to 8)
; scene: Path to one of the following file formats:
; - mugen style storyboard DEF file (extended with Visual Novel
; like features)
; - movie file in WBM format (not supported yet)
; match: Sub-object used for overwriting default/previous match data
; - p1team: array containing P1 side character filenames (or full paths
; to DEF files) (can be left empty if you use 'select' flag). Random
; chars can be assigned via 'randomselect' name or 'orderX' name
; (where X refers to 'order' paramvalue)
; - p2team: array containing P2 side character filenames (or full paths
; to DEF files). Random chars can be assigned via 'randomselect' name
; or 'orderX' name (where X refers to 'order' paramvalue)
; - p1life: array for adjusting P1 side chars starting life percentage
; - p2life: array for adjusting P2 side chars starting life percentage
; - p1power: array for adjusting P1 side chars starting power level
; - p2power: array for adjusting P2 side chars starting power level
; - p1mode: 0=Single, 1=Simul, 2=Turns, 3=Tag (0 by default)
; - p2mode: 0=Single, 1=Simul, 2=Turns, 3=Tag (0 by default)
; - stage: stage DEF file path (e.g. "stages/mybg.def")
; - music: path to music file that should overwrite stage music.
; Optionally volume can follow after space.
; - musicalt: path to music file that should overwrite stage music on
; during conclusion round. Optionally volume can follow after space.
; - musiclife: path to music file that should overwrite stage music
; when player has less than 30% health during conclusion round.
; Optionally volume can follow after space.
; - zoom: set to 0 to avoid stage zoom even if it is enabled globally.
; Useful for characters that don't work well with zoom
; - ai: set to value between 1 and 8 to force AI Level regardless of
; difficulty chosen in the settings
; - winscreen: set to 0 to avoid displaying win screen after beating
; the opponent team
; - rounds: set the number of rounds to overwrite rounds number chosen
; in the settings
; - time: set the time (in seconds) to overwrite default round time
; - lifebar: path to the lifebar that should be used instead of the
; default one (Ikemen GO Plus comes with dummy lifebar
; ("data/fight_blank.def") which starts the match without delays and
; doesn't use any art - may be useful for creating cinematic matches
; with scenes coded in CNS files.)
; action: Array with special actions that should be used: (can be more than 1)
; - select: displays character select screen (overwrites 'p1team' match
; data if used, team mode follows 'p1mode' setting)
; - cleared: flags this story mode arc as cleared
; - end: ends the story mode arc (returns to main menu)
; setvar: Sub-object containing a list of variables to set - member key is var
; name (starting with 'var.' prefix), member value is variable value to
; set (can be another var)
;
;Story mode arcs loops through whole top array trying to find valid 'if'
;statement. The valid object starts either 'scene' or 'match' members and/or
;uses 'action'. The last (optional) task of the valid object is setting vars
;via 'setvar' member. Then the loop restarts from the beginning of top array.
;
;Storyboard scenes can set variables too. Also each fight automatically sets
;following variables:
;- match.winside: 1=Player1 side won, 2=Player2 side won
;- match.
; <WIP - add all match variables here>
;
;Once you understand the basic concept of this data structure you should be
;able to create both simple and more complicated, branching storylines with
;different story routes, endings etc. Consider installing JSON syntax
;highlighter, preparing a flowchart beforehand, and using self-explanatory var
;names to limit mistakes during table creation. Check out "story_kfm" images in
;docs directory to visualize sample story tables distributed with the engine.
;
;Declare your story mode arcs below.
modename = story_kfm1
displayname = "Kung Fu Story"
data = data/story_kfm1.json
modename = story_kfm2
displayname = "Kung Fu Temple"
data = data/story_kfm2.json