Editing Event Reference
Jump to navigation
Jump to search
Warning: You are not logged in. Your IP address will be publicly visible if you make any edits. If you log in or create an account, your edits will be attributed to your username, along with other benefits.
The edit can be undone. Please check the comparison below to verify that this is what you want to do, and then publish the changes below to finish undoing the edit.
Latest revision | Your text | ||
Line 5: | Line 5: | ||
== Condition Reference == | == Condition Reference == | ||
Here is a list of currently implemented conditions. New event conditions can be created by creating a new | Here is a list of currently implemented conditions. New event conditions can be created by creating a new method under the '''core.components.event.condition''' module: | ||
=== | === true === | ||
The <code>true</code> condition will always evaluate to *True* (unless the "not" operator is used) | |||
==== Parameters ==== | |||
<code>None</code> | |||
==== Examples ==== | |||
* <code>is true</code> | |||
* <code>not true</code> | |||
=== | |||
* <code>is | |||
* <code>not | |||
=== | === player_at === | ||
Check to see if one | Check to see if the player is inside the event's area. This event will check the event object's <code>X</code>, <code>Y</code>, <code>Width</code>, and <code>Height</code> properties and checks to see if the player is within those bounds. That includes event areas that are greater than one tile in size. You can optionally include an <code>x,y</code> parameter to specify a single tile location. | ||
==== Parameters ==== | |||
* <code> | * <code>x</code>: X tile coordinates that the player is at (optional) | ||
* <code>y</code>: Y tile coordinate that the player is at (optional) | |||
==== Examples ==== | |||
* <code>is | * <code>is player_at</code> | ||
* <code>is | * <code>is player_at 4,3</code> | ||
=== | === player_facing === | ||
Check to see | Check to see if the player is facing: <code>up</code>, <code>down</code>, <code>left</code> or <code>right</code>. | ||
==== Parameters ==== | |||
<code>direction</code>: Direction to check for: (<code>up</code>, <code>down</code>, <code>left</code>, <code>right</code>) | |||
==== Examples ==== | |||
* <code>is | * <code>is player_facing up</code> | ||
* <code> | * <code>not player_facing down</code> | ||
=== | === player_facing_tile === | ||
Check to see | Check to see if the player is facing a particular tile. This event will check the event object's <code>X</code>, <code>Y</code> coordinates for the tile to check for. | ||
==== Parameters ==== | |||
<code>None</code> | |||
==== Examples ==== | |||
<code>is player_facing_tile</code> | |||
=== | === player_moved === | ||
Checks to see if the player has just moved. If the player is standing still, this condition will return <code>False</code>. | |||
==== Parameters ==== | |||
<code>None</code> | |||
==== Examples ==== | |||
* <code>is | * <code>is player_moved</code> | ||
* <code> | * <code>not player_moved</code> | ||
=== has_monster === | === has_monster === | ||
Checks to see the player is has a monster in his party. | |||
==== Parameters ==== | |||
<code>monster_slug</code>: The slug of the monster to check for. | |||
==== Examples ==== | |||
<code>is has_monster txmn_pigabyte</code> | |||
=== | === inventory_contains === | ||
Not yet implemented | |||
==== Parameters ==== | |||
<code>item</code>: The item name to check for. | |||
==== Examples ==== | |||
<code>is inventory_contains Potion</code> | |||
=== | === combat_started === | ||
Check to see if | Check to see if combat has currently started. | ||
==== Parameters ==== | |||
<code>None</code> | |||
==== Examples ==== | |||
<code>is combat_started</code> | |||
=== | === button_pressed === | ||
Check to see if | Check to see if a particular key has been pressed. E.g. <code>K_RETURN</code>. | ||
==== Parameters ==== | |||
<code>key</code>: A pygame key constant such as <code>K_RETURN</code>. For a list of all possible keys, refer to the [https://www.pygame.org/docs/ref/key.html Pygame Key Page] | |||
=== | ==== Examples ==== | ||
* <code>is button_pressed K_RETURN</code> | |||
* <code>is button_pressed K_ESCAPE</code> | |||
* <code>not button_pressed K_SPACE</code> | |||
=== dialog_open === | |||
Check to see if a dialog window is currently open. | |||
==== Parameters ==== | |||
<code>None</code> | |||
=== | ==== Examples ==== | ||
* <code>is dialog_open</code> | |||
* <code>not dialog_open</code> | |||
=== variable_set === | |||
Check to see if <code>variable_name</code> has been set to <code>value</code>. | |||
==== Parameters ==== | |||
<code>variable_name:value</code>: A key, value pair of the variable to look up and the expected value. | |||
=== | ==== Examples ==== | ||
* <code>is variable_set battle_won:yes</code> | |||
* <code>not variable_set current_badges:4</code> | |||
* <code>is variable_set talked_to_prof:false</code> | |||
* <code> | |||
* <code> | |||
* <code> | |||
=== npc_exists === | |||
Check to see if an NPC exists on the current map with <code>npc_name</code>. | |||
=== | ==== Parameters ==== | ||
<code>npc_name</code>: The name of the NPC on the current map. | |||
==== Examples ==== | |||
<code>not npc_exists Apple</code> | |||
'' | === npc_at === | ||
Check to see if the npc is inside the event's area. This event will check the event object's <code>X</code>, <code>Y</code>, <code>Width</code>, and <code>Height</code> properties and checks to see if the npc is within those bounds. That includes event areas that are greater than one tile in size. You can optionally include an <code>x,y</code> parameter to specify a single tile location. | |||
=== | ==== Parameters ==== | ||
* <code>name</code>: The name of the NPC. | |||
* <code>x</code>: X tile coordinates that the player is at (optional) | |||
* <code>y</code>: Y tile coordinate that the player is at (optional) | |||
==== Examples ==== | |||
* <code> | * <code>is npc_at Maple</code> | ||
* <code>is npc_at Maple,4,3</code> | |||
=== npc_facing === | |||
Check to see if the npc is facing: <code>up</code>, <code>down</code>, <code>left</code> or <code>right</code>. | |||
=== | ==== Parameters ==== | ||
* <code>name</code>: The name of the NPC. | |||
* <code>direction</code>: Direction to check for: (<code>up</code>, <code>down</code>, <code>left</code>, <code>right</code>) | |||
==== Examples ==== | |||
* <code> | * <code>is npc_facing Maple,up</code> | ||
* <code> | * <code>not npc_facing Maple,down</code> | ||
' | === npc_facing_tile === | ||
Check to see if the npc is facing a particular tile. This event will check the event object's <code>X</code>, <code>Y</code> coordinates for the tile to check for. | |||
=== | ==== Parameters ==== | ||
<code>name</code>: The name of the NPC. | |||
==== Examples ==== | |||
<code>is npc_facing_tile Maple</code> | |||
=== facing_npc === | |||
Check to see if the player is facing an NPC with the name <code>npc_name</code>. | |||
=== | ==== Parameters ==== | ||
<code>npc_name</code>: The name of the NPC on the current map. | |||
==== Examples ==== | |||
<code>is facing_npc Apple</code> | |||
=== party_size === | === party_size === | ||
Perform a check on the player's party size. The <code>check</code> parameter can be: <code>equals</code>, <code>less_than</code>, or <code>greater_than</code>. | |||
==== Parameters ==== | |||
* <code> | * <code>check</code>: The check to run against the party size. Can be: <code>equals</code>, <code>less_than</code>, or <code>greater_than</code>. | ||
* <code>party_size</code>: The size of the party to check against. | * <code>party_size</code>: The size of the party to check against. | ||
==== Examples ==== | |||
* <code>is party_size less_than,1</code> | * <code>is party_size less_than,1</code> | ||
* <code>not party_size equals,0</code> | * <code>not party_size equals,0</code> | ||
* <code>is party_size greater_than,4</code> | * <code>is party_size greater_than,4</code> | ||
=== | === music_playing === | ||
Check if | Check to see if the specified music file is currently playing. | ||
==== Parameters ==== | |||
<code>music_file</code>: The music file to check. | |||
==== Examples ==== | |||
<code>is music_playing 472452_8-Bit-Ambient.ogg</code> | |||
== Action Reference == | == Action Reference == | ||
Here is a list of currently supported actions. New event actions can be created by creating a new | Here is a list of currently supported actions. New event actions can be created by creating a new function under the '''core.components.event.Action''' class: | ||
=== | === teleport === | ||
Teleports the player to a given position on a map. This teleport is immediate and does not have any transition animation. | |||
==== Parameters ==== | |||
* <code> | * <code>map_name</code>: The map file to teleport the player to. | ||
* <code> | * <code>x</code>: The X-tile coordinate to teleport the player to. | ||
* <code>y</code>: The Y-tile coordinate to teleport the player to. | |||
==== Examples ==== | |||
* <code> | * <code>teleport map1.tmx,3,4</code> | ||
* <code> | * <code>teleport room1.tmx,8,1</code> | ||
=== | === transition_teleport === | ||
Teleports the player to a given position on a map with a screen transition over <code>x</code> seconds. | |||
==== Parameters ==== | |||
* <code> | * <code>map_name</code>: The map file to teleport the player to. | ||
* <code> | * <code>x</code>: The X-tile coordinate to teleport the player to. | ||
* <code>y</code>: The Y-tile coordinate to teleport the player to. | |||
* <code>transition_time</code>: The time in seconds the transition will last. | |||
==== Examples ==== | |||
* <code>teleport map2.tmx,1,6,1.5</code> | |||
* <code>teleport room1.tmx,8,1,4</code> | |||
=== | |||
=== | |||
* <code> | |||
* <code> | |||
=== call_event === | === call_event === | ||
Executes the actions from another event, ignoring its conditions. This can be especially useful for scenarios where you might need multiple sets of conditions that could be true, such as executing an action when the player is at a certain position OR has a certain item in their inventory. | Executes the actions from another event, ignoring its conditions. This can be especially useful for scenarios where you might need multiple sets of conditions that could be true, such as executing an action when the player is at a certain position OR has a certain item in their inventory. | ||
==== Parameters ==== | |||
<code>event_id</code>: The id of the event whose actions should be executed. | |||
==== Examples ==== | |||
* <code>call_event | * <code>call_event 11</code> | ||
* <code>call_event 8</code> | |||
=== | === set_variable === | ||
Sets an arbitrary variable to a particular value. This action is good for seeing if battles with NPCs have been fought or not. These variables are also saved when the player saves the game. | |||
==== Parameters ==== | |||
<code>variable_name:value</code>: A key, value pair of the <code>variable_name</code> to set with <code>value</code>. | |||
==== Examples ==== | |||
* <code>set_variable battle_won:yes</code> | |||
* <code>set_variable talked_to_prof:true</code> | |||
=== play_sound === | |||
Plays an audio file located under "sounds/". | |||
=== | ==== Parameters ==== | ||
<code>filename</code>: The name of the sound file to play under "sounds/" | |||
==== Examples ==== | |||
<code>play_sound combat/falling_Macro.ogg</code> | |||
=== play_music === | |||
Plays an audio file located under "music/" on a loop. | |||
=== | ==== Parameters ==== | ||
<code>filename</code>: The name of the music file to play under "music/" | |||
==== Examples ==== | |||
<code>play_music 472452_8-Bit-Ambient.ogg</code> | |||
=== player_face === | |||
Makes the player face a particular direction. Parameter can be set to: <code>left</code>, <code>right</code>, <code>up</code>, or <code>down</code>. | |||
=== | ==== Parameters ==== | ||
* <code>direction</code>: Direction to make the player face. Can be set to: <code>left</code>, <code>right</code>, <code>up</code>, or <code>down</code>. | |||
==== Examples ==== | |||
* <code> | * <code>player_face left</code> | ||
* <code> | * <code>player_face up</code> | ||
=== player_stop === | |||
Stops the player from moving until <code>player_resume</code> is called. | |||
=== | ==== Parameters ==== | ||
<code>None</code> | |||
==== Examples ==== | |||
<code>player_stop</code> | |||
' | === player_resume === | ||
Resumes the player's ability to move. Usually used after the <code>player_stop</code> action. | |||
=== | ==== Parameters ==== | ||
<code>None</code> | |||
==== Examples ==== | |||
<code>player_resume</code> | |||
=== pause_music === | |||
Pauses the currently playing music. | |||
=== | ==== Parameters ==== | ||
<code>None</code> | |||
==== Examples ==== | |||
<code>pause_music</code> | |||
=== fadeout_music === | |||
Fades out music over <code>x</code> seconds. | |||
=== | ==== Parameters ==== | ||
<code>time_seconds</code>: Time in seconds to fade out the currently playing music. | |||
==== Examples ==== | |||
<code>fadeout_music 2</code> | |||
=== dialog === | |||
* <code> | Opens the dialog box with provided text. For line breaks, use the <code>\n</code> character. You may also use special variables in dialog events. If you have multiple dialog commands they will display sequentially. Using <code>$<nowiki>{{</nowiki>end<nowiki>}}</nowiki></code> does nothing as it used to denote the end of a dialog chain. Here is a list of available variables: | ||
* <code>$<nowiki>{{</nowiki>name<nowiki>}}</nowiki></code> - The current player's name. | |||
=== | ==== Parameters ==== | ||
<code>text</code>: The text to display in a dialog window. | |||
==== Examples ==== | |||
* <code> | * <code>dialog Red:\n This is some dialog!</code> | ||
* <code> | * <code>dialog $<nowiki>{{</nowiki>name<nowiki>}}</nowiki>:\n Hello there! \nHow are you?</code> | ||
=== translated_dialog === | |||
Opens the dialog box with translated text for a given key found in <code>resources/db/locale/<locale>.json</code>. Optional variable replacement will also be translated if the value is a key in the locale file. For line breaks, use the <code>\n</code> character. If you have multiple translated_dialog commands they will display sequentially. Using <code>$<nowiki>{{</nowiki>end<nowiki>}}</nowiki></code> does nothing as it used to denote the end of a dialog chain. You may also use special variables in dialog events. Here is a list of available variables: | |||
* <code>$<nowiki>{{</nowiki>name<nowiki>}}</nowiki></code> - The current player's name. | |||
=== | ==== Parameters ==== | ||
* <code>dialog_key</code>: The translated text for a given key found in <code>resources/db/locale/<locale>.json</code> to display in a dialog window. | |||
* <code>parameters</code>: Optional comma-separated <code>var=value</code> parameters to replace variables in the translation text. The <code>value</code> can either be text or a key found in <code>resources/db/locale/<locale>.json</code>. | |||
==== Examples ==== | |||
* <code> | * <code>translated_dialog received_x,name=a brand new car!</code> | ||
* <code>translated_dialog received_x,name=item_potion</code> | |||
* <code>translated_dialog combat_fainted,name=$<nowiki>{{</nowiki>name<nowiki>}}</nowiki></code> | |||
* <code>translated_dialog combat_opponent_call_tuxemon,user=$<nowiki>{{</nowiki>name<nowiki>}}</nowiki>,name=some guy</code> | |||
=== dialog_chain === | |||
Deprecated. Use [#dialog dialog] | |||
=== | === translated_dialog_chain === | ||
Deprecated. Use [#translated_dialog translated_dialog] | |||
=== dialog_choice === | |||
Asks the player to select a choice. | |||
==== Parameters ==== | |||
* <code> | * <code>choices</code>: The possible choices separated by colons. | ||
* <code>variable</code>: The variable to store the answer. | |||
=== | ==== Examples ==== | ||
<code>dialog_choice Yes:No:Maybe,myvariable</code> | |||
=== translated_dialog_choice === | |||
Asks the player to select a choice. The translations for the text are looked up based on a given key. | |||
==== Parameters ==== | |||
* <code> | * <code>choice_keys</code>: Keys to reference translated text choices separated by colons. | ||
* <code> | * <code>variable</code>: The variable to store the answer which will be the key for the translated text. | ||
=== | ==== Examples ==== | ||
<code>dialog_choice yes:no,myvariable</code> | |||
=== screen_transition === | |||
Fades the screen to black and back over <code>x</code> seconds. | |||
==== Parameters ==== | |||
<code>transition_time</code>: Time in seconds to fade the screen to black. | |||
==== Examples ==== | |||
<code>screen_transition 2</code> | |||
= | |||
=== create_npc === | === create_npc === | ||
Creates an NPC and places them on the current map. | Creates an NPC and places them on the current map. | ||
==== Parameters ==== | |||
* <code>name</code>: The name of the NPC to create. This NPC should exist in <code>resources/db/npc</code> in JSON format. | * <code>name</code>: The name of the NPC to create. This NPC should exist in <code>resources/db/npc</code> in JSON format. | ||
* <code>tile_pos_x</code>: The X-tile coordinate to place the NPC. | * <code>tile_pos_x</code>: The X-tile coordinate to place the NPC. | ||
* <code>tile_pos_y</code>: The Y-tile coordinate to place the NPC. | * <code>tile_pos_y</code>: The Y-tile coordinate to place the NPC. | ||
* <code>animations</code>: The name of the sprite to use for the animations in <code>resources/sprites</code>. | |||
* <code>behavior</code>: The NPC's movement behavior. Currently not implemented. | * <code>behavior</code>: The NPC's movement behavior. Currently not implemented. | ||
==== Examples ==== | |||
* <code>create_npc Maple,2,3</code> | * <code>create_npc Maple,2,3,maple,wander</code> | ||
* <code>create_npc Pine,1,6,stand</code> | * <code>create_npc Pine,1,6,maple,stand</code> | ||
=== remove_npc === | |||
Removes an NPC from the current map. | |||
==== Parameters ==== | |||
<code>name</code>: The name of the NPC to remove. | |||
=== | ==== Examples ==== | ||
* <code>remove_npc Maple</code> | |||
* <code>remove_npc Pine</code> | |||
=== | |||
* <code> | |||
* <code> | |||
=== | === npc_face === | ||
Makes the npc face a particular direction. Parameter can be set to: <code>left</code>, <code>right</code>, <code>up</code>, or <code>down</code>. | |||
==== Parameters ==== | |||
* <code> | * <code>name</code>: The name of the npc. | ||
* <code> | * <code>direction</code>: Direction to make the player face. Can be set to: <code>left</code>, <code>right</code>, <code>up</code>, or <code>down</code>. | ||
==== Examples ==== | |||
* <code>npc_face Maple,left</code> | |||
* <code>npc_face Pine,up</code> | |||
= | |||
* <code> | |||
* <code> | |||
=== pathfind === | === pathfind === | ||
Moves an NPC to a certain tile on the map. | Moves an NPC to a certain tile on the map. | ||
==== Parameters ==== | |||
* <code>name</code>: The name of the NPC to be moved. | * <code>name</code>: The name of the NPC to be moved. | ||
* <code>tile_pos_x</code>: The X-tile coordinate to have the NPC to walk to. | * <code>tile_pos_x</code>: The X-tile coordinate to have the NPC to walk to. | ||
* <code>tile_pos_y</code>: The Y-tile coordinate to have the NPC to walk to. | * <code>tile_pos_y</code>: The Y-tile coordinate to have the NPC to walk to. | ||
==== Examples ==== | |||
* <code>pathfind Maple,2,3</code> | * <code>pathfind Maple,2,3</code> | ||
* <code>pathfind Pine,1,6</code> | * <code>pathfind Pine,1,6</code> | ||
=== | === start_battle === | ||
Start a battle with an NPC defined in </code>resources/db/npc</code>. | |||
Here is an example NPC file: | |||
''resources/db/npc/maple.json'' | |||
<code> | |||
json | |||
{ | { | ||
"monsters": [ | |||
{ | |||
"attack": 50, | |||
"defense": 7, | |||
"name": "Snowball", | |||
"special_attack": 9, | |||
"level": 5, | |||
"monster_slug": 1, | |||
} | "hp": 50, | ||
"speed": 7, | |||
"special_defense": 7, | |||
"exp_give_mod": 3, | |||
"exp_req_mod": 27 | |||
} | |||
], | |||
"id": 1, | |||
"name": "Maple" | |||
} | |||
</code> | |||
==== Parameters ==== | |||
<code>npc_slug</code>: The NPC's slug as defined in the NPC's JSON file in <code>resources/db/npc</code>. | |||
==== Examples ==== | |||
<code>start_battle npc_maple</code> | |||
=== | === add_monster === | ||
Add the specified monster to the player's party. | |||
==== Parameters ==== | |||
* <code> | * <code>monster_name</code>: The name of the monster to add as defined in the monster JSON under <code>resources/db/monster</code>. | ||
* <code>monster_lvl</code>: The level of the monster to start at. | |||
* <code> | |||
==== Examples ==== | |||
<code>add_monster txmn_fruitera,10</code> | |||
=== | |||
=== remove_monster === | === remove_monster === | ||
Removes the specified monster to the player's party. | |||
==== Parameters ==== | |||
<code>monster_slug</code>: The slug of the monster to add as defined in the monster JSON under <code>resources/db/monster</code>. | |||
==== Examples ==== | |||
<code>remove_monster txmn_fruitera</code> | |||
=== | === random_encounter === | ||
Randomly start a battle based on the encounter group looked up via the <code>encounter_id</code>. Encounter groups contain a list of monsters that can be encountered as well as their level and encounter rate. In most circumstances you will pair this action with the <code>player_at</code> and <code>player_moved</code> conditions. | |||
Here is an example encounter file: | |||
''resources/db/encounter/1.json'' | |||
<code>json | |||
{ | |||
"id": 1, | |||
"monsters": [ | |||
{ | |||
"monster_slug": "txmn_bigfin", | |||
"encounter_rate": 10, | |||
"level_range": [ | |||
1, | |||
6 | |||
] | |||
}, | |||
{ | |||
"monster_slug": "txmn_dandylion", | |||
"encounter_rate": 10, | |||
"level_range": [ | |||
1, | |||
6 | |||
] | |||
}, | |||
{ | |||
"monster_slug": "txmn_tux", | |||
"encounter_rate": 10, | |||
"level_range": [ | |||
1, | |||
6 | |||
] | |||
} | |||
] | |||
} | |||
</code> | |||
==== Parameters ==== | |||
<code>encounter_id</code>: The id of the encounter JSON file to use for random battles under <code>resources/db/encounter</code>. | |||
==== Examples ==== | |||
<code>random_encounter 1</code> | |||
=== | === play_map_animation === | ||
Plays an animation on the map. The <code>position</code> parameter can also be <code>player</code> if you want to draw the animation at the player's location. Loop can be either <code>loop</code> or <code>noloop</code>. | |||
==== Parameters ==== | |||
* <code> | * <code>animation_name</code>: The name of the animation to play under <code>resources/animations/tileset</code>. | ||
* <code>duration</code>: The amount of time in seconds between each frame. | |||
* <code>loop</code>: Whether or not to loop the animation. Can be either <code>loop</code> or <code>noloop</code> to loop the animation. | |||
* <code>position</code>: The position to draw the animation. Can either be an <code>x,y</code> coordinate or <code>player</code> to draw the animation over the player. | |||
==== Examples ==== | |||
* <code>play_map_animation grass,0.1,noloop,player</code> | |||
* <code>play_map_animation sign01,0.4,loop,33,10</code> | |||
=== | |||
=== | |||
* <code> | |||
* <code> | |||
=== | === wait_for_input === | ||
Pauses execution of all events until the given input is received. | |||
==== Parameters ==== | |||
<code>input</code>: The pygame input to wait for. | |||
==== Examples ==== | |||
* <code> | * <code>wait_for_input K_RETURN</code> | ||
* <code>wait_for_input K_Q</code> | |||
=== | === wait_for_secs === | ||
Pauses execution of all events for the given amount of time in seconds. | Pauses execution of all events for the given amount of time in seconds. | ||
==== Parameters ==== | |||
<code>seconds</code>: The amount of time in seconds to wait for. | |||
= | |||
==== Examples ==== | |||
* <code>wait_for_secs 2.0</code> | |||
* <code>wait_for_secs 5.2</code> | |||