Difference between revisions of "Skills and States Core VisuStella MZ"

From Yanfly.moe Wiki
Jump to navigation Jump to search
Line 21: Line 21:
  
 
{{ExtensionPluginsMZ}}
 
{{ExtensionPluginsMZ}}
 +
* [[Anti-Damage Barriers VisuStella MZ]]
 
* [[Life State Effects VisuStella MZ]]
 
* [[Life State Effects VisuStella MZ]]
 
* [[Skill Cooldowns VisuStella MZ]]
 
* [[Skill Cooldowns VisuStella MZ]]

Revision as of 02:45, 8 October 2020

Welcome to the wiki! This is where you can find resources from Yanfly.moe, Ækashics.moe,
VisuStella, Caz Wolf, Fallen Angel Olivia, Atelier Irina, and other affiliated content creators.



Download

System

This is a plugin created for RPG Maker MZ.

Click here for help on how to install plugins and an explanation on the Tier Hierarchy System.


UpdatePlugins.png

Click here to learn how to update plugins.


Troubleshooting.jpg

Click here for how to troubleshoot plugins if you get an error.



SkillsStatesCoreScreen.png

Extension Plugins

The following plugins are Extension Plugins that require this plugin as its Parent Plugin.

Place the following plugins below this plugin located in the Plugin Manager if you plan on using them.


VisuStella MZ

This plugin is a part of the VisuStella MZ Plugin Library.


Support VisuStella

Click here if you want to help support VisuStella on Patreon.


Introduction

The Skills & States Core plugin extends and builds upon the functionality of RPG Maker MZ's inherent skill, state, and buff functionalities and allows game devs to customize its various aspects.

Features include all (but not limited to) the following:

  • Assigning multiple Skill Types to Skills.
  • Making custom Skill Cost Types (such as HP, Gold, and Items).
  • Allowing Skill Costs to become percentile-based or dynamic either directly through the Skills themselves or through trait-like notetags.
  • Replacing gauges for different classes to display different types of Skill Cost Type resources.
  • Hiding/Showing and enabling/disabling skills based on switches, learned skills, and code.
  • Setting rulings for states, including if they're cleared upon death, how reapplying the state affects their turn count, and more.
  • Allowing states to be categorized and affected by categories, too.
  • Displaying turn counts on states drawn in the window or on sprites.
  • Manipulation of state, buff, and debuff turns through skill and item effect notetags.
  • Create custom damage over time state calculations through notetags.
  • Allow database objects to apply passive states to its user.
  • Passive states can have conditions before they become active as well.
  • Updated Skill Menu Scene layout to fit more modern appearances.
  • Added bonus if Items & Equips Core is installed to utilize the Shop Status Window to display skill data inside the Skill Menu.
  • Control over various aspects of the Skill Menu Scene.

Requirements

This plugin is made for RPG Maker MZ. This will not work in other iterations of RPG Maker.


Tier 1

This plugin is a Tier 1 plugin. Place it under other plugins of lower tier value on your Plugin Manager list (ie: 0, 1, 2, 3, 4, 5).

This is to ensure that your plugins will have the best compatibility with the rest of the VisuStella MZ Plugin library.


Major Changes

This plugin adds some new hard-coded features to RPG Maker MZ's functions. The following is a list of them.

---

Buff & Debuff Level Management

SkillsStatesBuffDebuffs.png

In RPG Maker MZ, buffs and debuffs when applied to one another will shift the buff modifier level up or down. This plugin will add an extra change to the mechanic by making it so that once the buff modifier level reaches a neutral point, the buff or debuff is removed altogether and resets the buff and debuff turn counter for better accuracy.

---

Skill Costs

SkillsStatesSkillCosts.png

In RPG Maker MZ, skill costs used to be hard-coded. Now, all Skill Cost Types are now moved to the Plugin Parameters, including MP and TP. This means that from payment to checking for them, it's all done through the options available.

By default in RPG Maker MZ, displayed skill costs would only display only one type: TP if available, then MP. If a skill costs both TP and MP, then only TP was displayed. This plugin changes that aspect by displaying all the cost types available in order of the Plugin Parameter Skill Cost Types.

By default in RPG Maker MZ, displayed skill costs were only color-coded. This plugin changes that aspect by displaying the Skill Cost Type's name alongside the cost. This is to help color-blind players distinguish what costs a skill has.

---

Sprite Gauges

SkillsStatesSpriteGauges.png

Sprite Gauges in RPG Maker MZ by default are hard-coded and only work for HP, MP, TP, and Time (used for ATB). This plugin makes it possible for them to be customized through the use of Plugin Parameters under the Skill Cost Types and their related-JavaScript entries.

---

Window Functions Moved

Some functions found in RPG Maker MZ's default code for Window_StatusBase and Window_SkillList are now moved to Window_Base to make the functions available throughout all windows for usage.

---

Notetags

RPG Maker MZ's editor is unable to allow for custom traits/properties that a game dev may wish to associate with a database object, event, map, etc. Notetags are used to work around such limitations by allowing the game dev to tag certain traits/properties using specific Notetags declared by the related plugin.

Here is a list of Notetag(s) that you may use.


The following are notetags that have been added through this plugin. These notetags will not work with your game if this plugin is OFF or not present.

General Skill Notetags

SkillsStatesCoreStype.png

The following are general notetags that are skill-related.

---

<Skill Type: x>
<Skill Types: x,x,x>

<Skill Type: name>
<Skill Types: name, name, name>

- Used for: Skill Notetags
- Marks the skill to have multiple Skill Types, meaning they would appear
  under different skill types without needing to create duplicate skills.
- Replace 'x' with a number value representing the Skill Type's ID.
- If using 'name' notetag variant, replace 'name' with the Skill Type(s)
  name desired to be added.

---

Skill Cost Notetags

SkillsStatesSkillCosts.png

The following are notetags that can be used to adjust skill costs. Some of these notetags are added through the Plugin Parameter: Skill Cost Types and can be altered there. This also means that some of these notetags can have their functionality altered and/or removed.

---

<type Cost: x>
<type Cost: x%>

- Used for: Skill Notetags
- These notetags are used to designate costs of custom or already existing
  types that cannot be made by the Database Editor.
- Replace 'type' with a resource type. Existing ones found in the Plugin
  Parameters are 'HP', 'MP', 'TP', 'Gold', and 'Potion'. More can be added.
- Replace 'x' with a number value to determine the exact type cost value.
  This lets you bypass the Database Editor's limit of 9,999 MP and 100 TP.
- The 'x%' version is replaced with a percentile value to determine a cost
  equal to a % of the type's maximum quantity limit.
- Functionality for these notetags can be altered in the Plugin Parameters.

Examples:
  <HP Cost: 500>
  <MP Cost: 25%>
  <Gold Cost: 3000>
  <Potion Cost: 5>

---

<type Cost Max: x>
<type Cost Min: x>

- Used for: Skill Notetags
- These notetags are used to ensure conditional and % costs don't become too
  large or too small.
- Replace 'type' with a resource type. Existing ones found in the Plugin
  Parameters are 'HP', 'MP', 'TP', 'Gold', and 'Potion'. More can be added.
- Replace 'x' with a number value to determine the maximum or minimum values
  that the cost can be.
- Functionality for these notetags can be altered in the Plugin Parameters.

Examples:
  <HP Cost Max: 1500>
  <MP Cost Min: 5>
  <Gold Cost Max: 10000>
  <Potion Cost Min: 3>

---

<type Cost: +x>
<type Cost: -x>

<type Cost: x%>

- Used for: Actor, Class, Weapon, Armor, Enemy, State Notetags
- Replace 'type' with a resource type. Existing ones found in the Plugin
  Parameters are 'HP', 'MP', 'TP', 'Gold', and 'Potion'. More can be added.
- For % notetag variant: Replace 'x' with a number value to determine the
  rate to adjust the Skill Cost Type by as a flat value. This is applied
  before <type Cost: +x> and <type Cost: -x> notetags.
- For + and - notetag variants: Replace 'x' with a number value to determine
  how much to adjust the Skill Cost Type by as a flat value. This is applied
  after <type Cost: x%> notetags.
- Functionality for these notetags can be altered in the Plugin Parameters.

Examples:
  <HP Cost: +20>
  <MP Cost: -10>
  <Gold Cost: 50%>
  <Potion Cost: 200%>

---

<Custom Cost Text>
 text
</Custom Cost Text>

- Used for: Skill Notetags
- Allows you to insert custom text into the skill's cost area towards the
  end of the costs.
- Replace 'text' with the text you wish to display.
- Text codes may be used.

---

JavaScript Notetags: Skill Costs

The following are notetags made for users with JavaScript knowledge to determine any dynamic Skill Cost Types used for particular skills.

---

<JS type Cost>
 code
 code
 cost = code;
</JS type Cost>

- Used for: Skill Notetags
- Replace 'type' with a resource type. Existing ones found in the Plugin
  Parameters are 'HP', 'MP', 'TP', 'Gold', and 'Potion'. More can be added.
- Replace 'code' to determine the type 'cost' of the skill.
- Insert the final type cost into the 'cost' variable.
- The 'user' variable refers to the user about to perform the skill.
- The 'skill' variable refers to the skill being used.
- Functionality for the notetag can be altered in the Plugin Parameters.

---

Gauge Replacement Notetags

SkillsStatesSpriteGauges.png

Certain classes can have their gauges swapped out for other Skill Cost Types. This is especially helpful for the classes that don't utilize those Skill Cost Types. You can mix and match them however you want.

---

<Replace HP Gauge: type>
<Replace MP Gauge: type>
<Replace TP Gauge: type>

- Used for: Class Notetags
- Replaces the HP (1st), MP (2nd), or TP (3rd) gauge with a different Skill
  Cost Type.
- Replace 'type' with a resource type. Existing ones found in the Plugin
  Parameters are 'HP', 'MP', 'TP', 'Gold', and 'Potion'. More can be added.
- Replace 'type' with 'none' to not display any gauges there.
- The <Replace TP Gauge: type> will require 'Display TP in Window' setting
  to be on in the Database > System 1 tab.
- Functionality for the notetags can be altered by changes made to the
  Skill & States Core Plugin Parameters.

---

Skill Accessibility Notetags

Sometimes, you don't want all skills to be visible whether it be to hide menu-only skills during battle, until certain switches are turned ON/OFF, or until certain skills have been learned.

---

<Hide in Battle>
<Hide outside Battle>

- Used for: Skill Notetags
- Makes the specific skill visible or hidden depending on whether or not the
  player is currently in battle.

---

<Show Switch: x>

<Show All Switches: x,x,x>
<Show Any Switches: x,x,x>

- Used for: Skill Notetags
- Determines the visibility of the skill based on switches.
- Replace 'x' with the switch ID to determine the skill's visibility.
- If 'All' notetag variant is used, skill will be hidden until all switches
  are ON. Then, it would be shown.
- If 'Any' notetag variant is used, skill will be shown if any of the
  switches are ON. Otherwise, it would be hidden.

---

<Hide Switch: x>

<Hide All Switches: x,x,x>
<Hide Any Switches: x,x,x>

- Used for: Skill Notetags
- Determines the visibility of the skill based on switches.
- Replace 'x' with the switch ID to determine the skill's visibility.
- If 'All' notetag variant is used, skill will be shown until all switches
  are ON. Then, it would be hidden.
- If 'Any' notetag variant is used, skill will be hidden if any of the
  switches are ON. Otherwise, it would be shown.

---

<Show if learned Skill: x>

<Show if learned All Skills: x,x,x>
<Show if learned Any Skills: x,x,x>

<Show if learned Skill: name>

<Show if learned All Skills: name, name, name>
<Show if learned Any Skills: name, name, name>

- Used for: Skill Notetags
- Determines the visibility of the skill based on skills learned.
- Determines the visibility of the skill based on skills learned.
- This does not apply to skills added by traits on actors, classes, any
  equipment, or states. These are not considered learned skills. They are
  considered temporary skills.
- Replace 'x' with the skill ID to determine the skill's visibility.
- If 'name' notetag viarant is used, replace 'name' with the skill's name to
  be checked for the notetag.
- If 'All' notetag variant is used, skill will be hidden until all skills
  are learned. Then, it would be shown.
- If 'Any' notetag variant is used, skill will be shown if any of the skills
  are learned. Otherwise, it would be hidden.

---

<Hide if learned Skill: x>

<Hide if learned All Skills: x,x,x>
<Hide if learned Any Skills: x,x,x>

<Hide if learned Skill: name>

<Hide if learned All Skills: name, name, name>
<Hide if learned Any Skills: name, name, name>

- Used for: Skill Notetags
- Determines the visibility of the skill based on skills learned.
- This does not apply to skills added by traits on actors, classes, any
  equipment, or states. These are not considered learned skills. They are
  considered temporary skills.
- Replace 'x' with the skill ID to determine the skill's visibility.
- If 'name' notetag viarant is used, replace 'name' with the skill's name to
  be checked for the notetag.
- If 'All' notetag variant is used, skill will be shown until all skills
  are learned. Then, it would be hidden.
- If 'Any' notetag variant is used, skill will be hidden if any of the
  skills are learned. Otherwise, it would be shown.

---

<Show if has Skill: x>

<Show if have All Skills: x,x,x>
<Show if have Any Skills: x,x,x>

<Show if has Skill: name>

<Show if have All Skills: name, name, name>
<Show if have Any Skills: name, name, name>

- Used for: Skill Notetags
- Determines the visibility of the skill based on skills available.
- This applies to both skills that have been learned and/or temporarily
  added through traits on actors, classes, equipment, or states.
- Replace 'x' with the skill ID to determine the skill's visibility.
- If 'name' notetag viarant is used, replace 'name' with the skill's name to
  be checked for the notetag.
- If 'All' notetag variant is used, skill will be hidden until all skills
  are learned. Then, it would be shown.
- If 'Any' notetag variant is used, skill will be shown if any of the skills
  are learned. Otherwise, it would be hidden.

---

<Hide if has Skill: x>

<Hide if have All Skills: x,x,x>
<Hide if have Any Skills: x,x,x>

<Hide if has Skill: name>

<Hide if have All Skills: name, name, name>
<Hide if have Any Skills: name, name, name>

- Used for: Skill Notetags
- Determines the visibility of the skill based on skills available.
- This applies to both skills that have been learned and/or temporarily
  added through traits on actors, classes, equipment, or states.
- Replace 'x' with the skill ID to determine the skill's visibility.
- If 'name' notetag viarant is used, replace 'name' with the skill's name to
  be checked for the notetag.
- If 'All' notetag variant is used, skill will be shown until all skills
  are learned. Then, it would be hidden.
- If 'Any' notetag variant is used, skill will be hidden if any of the
  skills are learned. Otherwise, it would be shown.

---

<Enable Switch: x>

<Enable All Switches: x,x,x>
<Enable Any Switches: x,x,x>

- Used for: Skill Notetags
- Determines the enabled status of the skill based on switches.
- Replace 'x' with the switch ID to determine the skill's enabled status.
- If 'All' notetag variant is used, skill will be disabled until all
  switches are ON. Then, it would be enabled.
- If 'Any' notetag variant is used, skill will be enabled if any of the
  switches are ON. Otherwise, it would be disabled.

---

<Disable Switch: x>

<Disable All Switches: x,x,x>
<Disable Any Switches: x,x,x>

- Used for: Skill Notetags
- Determines the enabled status of the skill based on switches.
- Replace 'x' with the switch ID to determine the skill's enabled status.
- If 'All' notetag variant is used, skill will be enabled until all switches
  are ON. Then, it would be disabled.
- If 'Any' notetag variant is used, skill will be disabled if any of the
  switches are ON. Otherwise, it would be enabled.

---

JavaScript Notetags: Skill Accessibility

The following are notetags made for users with JavaScript knowledge to determine if a skill can be accessible visibly or through usage.

---

<JS Skill Visible>
 code
 code
 visible = code;
</JS Skill Visible>

- Used for: Skill Notetags
- Determines the visibility of the skill based on JavaScript code.
- Replace 'code' to determine the type visibility of the skill.
- The 'visible' variable returns a boolean (true/false) to determine if the
  skill will be visible or not.
- The 'user' variable refers to the user with the skill.
- The 'skill' variable refers to the skill being checked.
- All other visibility conditions must be met for this code to count.

---

<JS Skill Enable>
 code
 code
 enabled = code;
</JS Skill Enable>

- Used for: Skill Notetags
- Determines the enabled status of the skill based on JavaScript code.
- Replace 'code' to determine the type enabled status of the skill.
- The 'enabled' variable returns a boolean (true/false) to determine if the
  skill will be enabled or not.
- The 'user' variable refers to the user with the skill.
- The 'skill' variable refers to the skill being checked.
- All other skill conditions must be met in order for this to code to count.

---

General State-Related Notetags

SkillsStatesCoreColors.png

The following notetags are centered around states, such as how their turn counts are displayed, items and skills that affect state turns, if the state can avoid removal by death state, etc.

---

<No Death Clear>

- Used for: State Notetags
- Prevents this state from being cleared upon death.

---

<No Recover All Clear>

- Used for: State Notetags
- Prevents this state from being cleared upon using the Recover All command.

---

<Group Defeat>

- Used for: State Notetags
- If an entire party is affected by states with the <Group Defeat> notetag,
  they are considered defeated.
- Usage for this includes party-wide petrification, frozen, etc.

---

<Reapply Rules: Ignore>
<Reapply Rules: Reset>
<Reapply Rules: Greater>
<Reapply Rules: Add>

- Used for: State Notetags
- Choose what kind of rules this state follows if the state is being applied
  to a target that already has the state. This affects turns specifically.
- 'Ignore' will bypass any turn changes.
- 'Reset' will recalculate the state's turns.
- 'Greater' will choose to either keep the current turn count if it's higher
  than the reset amount or reset it if the current turn count is lower.
- 'Add' will add the state's turn count to the applied amount.
- If this notetag isn't used, it will use the rules set in the States >
  Plugin Parameters.

---

<Positive State>
<Negative State>

- Used for: State Notetags
- Marks the state as a positive state or negative state, also altering the
  state's turn count color to match the Plugin Parameter settings.
- This also puts the state into either the 'Positive' category or
  'Negative' category.

---

<Category: name>
<Category: name, name, name>

- Used for: State Notetags
- Arranges states into certain/multiple categories.
- Replace 'name' with a category name to mark this state as.
- Insert multiples of this to mark the state with  multiple categories.

---

<Categories>
 name
 name
</Categories>

- Used for: State Notetags
- Arranges states into certain/multiple categories.
- Replace each 'name' with a category name to mark this state as.

---

<State x Category Remove: y>

<State x Category Remove: All>

- Used for: Skill, Item Notetags
- Allows the skill/item to remove 'y' states from specific category 'x'.
- Replace 'x' with a category name to remove from.
- Replace 'y' with the number of times to remove from that category.
- Use the 'All' variant to remove all of the states of that category.
- Insert multiples of this to remove different types of categories.

---

<Hide State Turns>

- Used for: State Notetags
- Hides the state turns from being shown at all.
- This will by pass any Plugin Parameter settings.

---

<Turn Color: x>
<Turn Color: #rrggbb>

- Used for: State Notetags
- Hides the state turns from being shown at all.
- Determines the color of the state's turn count.
- Replace 'x' with a number value depicting a window text color.
- Replace 'rrggbb' with a hex color code for a more custom color.

---

<State id Turns: +x>
<State id Turns: -x>

<Set State id Turns: x>

<State name Turns: +x>
<State name Turns: -x>

<Set State name Turns: x>

- Used for: Skill, Item Notetags
- If the target is affected by state 'id' or state 'name', change the state
  turn duration for target.
- For 'id' variant, replace 'id' with the ID of the state to modify.
- For 'name' variant, replace 'name' with the name of the state to modify.
- Replace 'x' with the value you wish to increase, decrease, or set to.
- Insert multiples of this notetag to affect multiple states at once.

---

<param Buff Turns: +x>
<param Buff Turns: -x>

<Set param Buff Turns: x>

- Used for: Skill, Item Notetags
- If the target is affected by a 'param' buff, change that buff's turn
  duration for target.
- Replace 'param' with 'MaxHP', 'MaxMP', 'ATK', 'DEF', 'MAT', 'MDF', 'AGI',
  or 'LUK' to determine which parameter buff to modify.
- Replace 'x' with the value you wish to increase, decrease, or set to.
- Insert multiples of this notetag to affect multiple parameters at once.

---

<param Debuff Turns: +x>
<param Debuff Turns: -x>

<Set param Debuff Turns: x>

- Used for: Skill, Item Notetags
- If the target is affected by a 'param' debuff, change that debuff's turn
  duration for target.
- Replace 'param' with 'MaxHP', 'MaxMP', 'ATK', 'DEF', 'MAT', 'MDF', 'AGI',
  or 'LUK' to determine which parameter debuff to modify.
- Replace 'x' with the value you wish to increase, decrease, or set to.
- Insert multiples of this notetag to affect multiple parameters at once.

---

JavaScript Notetags: On Add/Erase/Expire

Using JavaScript code, you can use create custom effects that occur when a state has bee added, erased, or expired.

---

<JS On Add State>
 code
 code
</JS On Add State>

- Used for: State Notetags
- When a state is added, run the code added by this notetag.
- The 'user' variable refers to the current active battler.
- The 'target' variable refers to the battler affected by this state.
- The 'origin' variable refers to the one who applied this state.
- The 'state' variable refers to the current state being affected.

---

<JS On Erase State>
 code
 code
</JS On Erase State>

- Used for: State Notetags
- When a state is erased, run the code added by this notetag.
- The 'user' variable refers to the current active battler.
- The 'target' variable refers to the battler affected by this state.
- The 'origin' variable refers to the one who applied this state.
- The 'state' variable refers to the current state being affected.

---

<JS On Expire State>
 code
 code
</JS On Expire State>

- Used for: State Notetags
- When a state has expired, run the code added by this notetag.
- The 'user' variable refers to the current active battler.
- The 'target' variable refers to the battler affected by this state.
- The 'origin' variable refers to the one who applied this state.
- The 'state' variable refers to the current state being affected.

---

JavaScript Notetags: Slip Damage/Healing

Slip Damage, in RPG Maker vocabulary, refers to damage over time. The following notetags allow you to perform custom slip damage/healing.

---

<JS type Slip Damage>
 code
 code
 damage = code;
</JS type Slip Damage>

- Used for: State Notetags
- Code used to determine how much slip damage is dealt to the affected unit
  during each regeneration phase.
- Replace 'type' with 'HP', 'MP', or 'TP'.
- Replace 'code' with the calculations on what to determine slip damage.
- The 'user' variable refers to the origin of the state.
- The 'target' variable refers to the affected unit receiving the damage.
- The 'state' variable refers to the current state being affected.
- The 'damage' variable is the finalized slip damage to be dealt.

---

<JS type Slip Heal>
 code
 code
 heal = code;
</JS type Slip Heal>

- Used for: State Notetags
- Code used to determine how much slip healing is dealt to the affected unit
  during each regeneration phase.
- Replace 'type' with 'HP', 'MP', or 'TP'.
- Replace 'code' with the calculations on what to determine slip healing.
- The 'user' variable refers to the origin of the state.
- The 'target' variable refers to the affected unit receiving the healing.
- The 'state' variable refers to the current state being affected.
- The 'heal' variable is the finalized slip healing to be recovered.

---

Passive State Notetags

SkillsStatesCorePassives.png

Passive States are states that are always applied to actors and enemies provided that their conditions have been met. These can be granted through database objects or through the Passive States Plugin Parameters.

---

For those using the code "a.isStateAffected(10)" to check if a target is affected by a state or not, this does NOT check passive states. This only checks for states that were directly applied to the target.

Instead, use "a.states().includes($dataStates[10])" to check for them. This code will search for both directly applied states and passive states alike.

---

<Passive State: x>
<Passive States: x,x,x>

<Passive State: name>
<Passive States: name, name, name>

- Used for: Actor, Class, Skill, Item, Weapon, Armor, Enemy Notetags
- Adds passive state(s) x to trait object, applying it to affected actor or
  enemy unit(s).
- Replace 'x' with a number to determine which state to add as a passive.
- If using 'name' notetag variant, replace 'name' with the name of the
  state(s) to add as a passive.
- Note: If you plan on applying a passive state through a skill, it must be
  through a skill that has been learned by the target and not a skill that
  is given through a trait.

---

<Passive Stackable>

- Used for: State Notetags
- Makes it possible for this passive state to be added multiple times.
- Otherwise, only one instance of the passive state can be available.

---

<Passive Condition Switch ON: x>

<Passive Condition All Switches ON: x,x,x>
<Passive Condition Any Switch ON: x,x,x>

- Used for: State Notetags
- Determines the passive condition of the passive state based on switches.
- Replace 'x' with the switch ID to determine the state's passive condition.
- If 'All' notetag variant is used, conditions will not be met until all
  switches are ON. Then, it would be met.
- If 'Any' notetag variant is used, conditions will be met if any of the
  switches are ON. Otherwise, it would not be met.

---

<Passive Condition Switch OFF: x>

<Passive Condition All Switches OFF: x,x,x>
<Passive Condition Any Switch OFF: x,x,x>

- Used for: State Notetags
- Determines the passive condition of the passive state based on switches.
- Replace 'x' with the switch ID to determine the state's passive condition.
- If 'All' notetag variant is used, conditions will not be met until all
  switches are OFF. Then, it would be met.
- If 'Any' notetag variant is used, conditions will be met if any of the
  switches are OFF. Otherwise, it would not be met.

---

JavaScript Notetags: Passive State

The following is a notetag made for users with JavaScript knowledge to determine if a passive state's condition can be met.

---

<JS Passive Condition>
 code
 code
 condition = code;
</JS Passive Condition>

- Used for: State Notetags
- Determines the passive condition of the state based on JavaScript code.
- Replace 'code' to determine if a passive state's condition has been met.
- The 'condition' variable returns a boolean (true/false) to determine if
  the passive state's condition is met or not.
- The 'user' variable refers to the user affected by the passive state.
- The 'state' variable refers to the passive state being checked.
- All other passive conditions must be met for this code to count.

---

Plugin Parameters

General Skill Settings

SkillsStatesCoreScreen.png

SkillsStatesCoreParams01.png

These Plugin Parameters adjust various aspects of the game regarding skills from the custom Skill Menu Layout to global custom effects made in code.

---

General

 Use Updated Layout:
 - Use the Updated Skill Menu Layout provided by this plugin?
 - This will automatically enable the Status Window.
 - This will override the Core Engine windows settings.
 Layout Style:
 - If using an updated layout, how do you want to style the menu scene?
   - Upper Help, Left Input
   - Upper Help, Right Input
   - Lower Help, Left Input
   - Lower Help, Right Input

---

Skill Type Window

 Style:
 - How do you wish to draw commands in the Skill Type Window?
 - Text Only: Display only the text.
 - Icon Only: Display only the icon.
 - Icon + Text: Display the icon first, then the text.
 - Auto: Determine which is better to use based on the size of the cell.
 Text Align:
 - Text alignment for the Skill Type Window.

---

List Window

 Columns:
 - Number of maximum columns.

---

Shop Status Window

 Show in Skill Menu?:
 - Show the Shop Status Window in the Skill Menu?
 - This is enabled if the Updated Layout is on.
 Adjust List Window?:
 - Automatically adjust the Skill List Window in the Skill Menu if using
   the Shop Status Window?
 JS: X, Y, W, H:
 - Code used to determine the dimensions for this Shop Status Window in the
   Skill Menu.

---

Skill Types

 Hidden Skill Types:
 - Insert the ID's of the Skill Types you want hidden from view ingame.
 Hidden During Battle:
 - Insert the ID's of the Skill Types you want hidden during battle only.
 Icon: Normal Type:
 - Icon used for normal skill types that aren't assigned any icons.
 - To assign icons to skill types, simply insert \I[x] into the
   skill type's name in the Database > Types tab.
 Icon: Magic Type:
 - Icon used for magic skill types that aren't assigned any icons.
 - To assign icons to skill types, simply insert \I[x] into the
   skill type's name in the Database > Types tab.

---

Global JS Effects

 JS: Skill Conditions:
 - JavaScript code for a global-wide skill condition check.

---

Skill Cost Types

SkillsStatesSkillCosts.png

SkillsStatesCoreParams02.png

Skill Cost Types are the resources that are used for your skills. These can range from the default MP and TP resources to the newly added HP, Gold, and Potion resources.

---

SkillsStatesCoreParams02a.png

Settings

 Name:
 - A name for this Skill Cost Type.
 Icon:
 - Icon used for this Skill Cost Type.
 - Use 0 for no icon.
 Font Color:
 - Text Color used to display this cost.
 - Use #rrggbb for a hex color.
 Font Size:
 - Font size used to display this cost.

---

Cost Processing

 JS: Cost Calculation:
 - Code on how to calculate this resource cost for the skill.
 JS: Can Pay Cost?:
 - Code on calculating whether or not the user is able to pay the cost.
 JS: Paying Cost:
 - Code for if met, this is the actual process of paying of the cost.

---

Window Display

 JS: Show Cost?:
 - Code for determining if the cost is shown or not.
 JS: Cost Text:
 - Code to determine the text (with Text Code support) used for the
   displayed cost.

---

Gauge Display

 JS: Maximum Value:
 - Code to determine the maximum value used for this Skill Cost resource
   for gauges.
 JS: Current Value:
 - Code to determine the current value used for this Skill Cost resource
   for gauges.
 JS: Draw Gauge:
 - Code to determine how to draw the Skill Cost resource for this
   gauge type.

---

General State Settings

SkillsStatesCoreColors.png

SkillsStatesCoreParams03.png

These are general settings regarding RPG Maker MZ's state-related aspects from how turns are reapplied to custom code that's ran whenever states are added, erased, or expired.

---

General

 Reapply Rules:
 - These are the rules when reapplying states.
 - Ignore: State doesn't get added.
 - Reset: Turns get reset.
 - Greater: Turns take greater value (current vs reset).
 - Add: Turns add upon existing turns.
 Maximum Turns:
 - Maximum number of turns to let states go up to.
 - This can be changed with the <Max Turns: x> notetag.

---

Turn Display

 Show Turns?:
 - Display state turns on top of window icons and sprites?
 Turn Font Size:
 - Font size used for displaying turns.
 Offset X:
 - Offset the X position of the turn display.
 Offset Y:
 - Offset the Y position of the turn display.
 Turn Font Size:
 - Font size used for displaying turns.
 Turn Color: Neutral:
 - Use #rrggbb for custom colors or regular numbers for text colors from
   the Window Skin.
 Turn Color: Positive:
 - Use #rrggbb for custom colors or regular numbers for text colors from
   the Window Skin.
 Turn Color: Negative:
 - Use #rrggbb for custom colors or regular numbers for text colors from
   the Window Skin.

---

Data Display

 Show Data?:
 - Display state data on top of window icons and sprites?
 Data Font Size:
 - Font size used for displaying state data.
 Offset X:
 - Offset the X position of the state data display.
 Offset Y:
 - Offset the Y position of the state data display.

---

Global JS Effects

 JS: On Add State:
 - JavaScript code for a global-wide custom effect whenever a state
   is added.
 JS: On Erase State:
 - JavaScript code for a global-wide custom effect whenever a state
   is erased.
 JS: On Expire State:
 - JavaScript code for a global-wide custom effect whenever a state
   has expired.

---

General Buff/Debuff Settings

SkillsStatesBuffDebuffs.png

SkillsStatesCoreParams04.png

Buffs and debuffs don't count as states by RPG Maker MZ's mechanics, but they do function close enough for them to be added to this plugin for adjusting. Change these settings to make buffs and debuffs work to your game's needs.

---

General

 Reapply Rules:
 - These are the rules when reapplying buffs/debuffs.
 - Ignore: Buff/Debuff doesn't get added.
 - Reset: Turns get reset.
 - Greater: Turns take greater value (current vs reset).
 - Add: Turns add upon existing turns.
 Maximum Turns:
 - Maximum number of turns to let buffs and debuffs go up to.

---

Stacking

 Max Stacks: Buff:
 - Maximum number of stacks for buffs.
 Max Stacks: Debuff:
 - Maximum number of stacks for debuffs.
 JS: Buff/Debuff Rate:
 - Code to determine how much buffs and debuffs affect parameters.

---

Turn Display

 Show Turns?:
 - Display buff and debuff turns on top of window icons and sprites?
 Turn Font Size:
 - Font size used for displaying turns.
 Offset X:
 - Offset the X position of the turn display.
 Offset Y:
 - Offset the Y position of the turn display.
 Turn Color: Buffs:
 - Use #rrggbb for custom colors or regular numbers for text colors from
   the Window Skin.
 Turn Color: Debuffs:
 - Use #rrggbb for custom colors or regular numbers for text colors from
   the Window Skin.

---

Rate Display

 Show Rate?:
 - Display buff and debuff rate on top of window icons and sprites?
 Rate Font Size:
 - Font size used for displaying rate.
 Offset X:
 - Offset the X position of the rate display.
 Offset Y:
 - Offset the Y position of the rate display.

---

Global JS Effects

 JS: On Add Buff:
 - JavaScript code for a global-wide custom effect whenever a
   buff is added.
 JS: On Add Debuff:
 - JavaScript code for a global-wide custom effect whenever a
   debuff is added.
 JS: On Erase Buff:
 - JavaScript code for a global-wide custom effect whenever a
   buff is added.
 JS: On Erase Debuff:
 - JavaScript code for a global-wide custom effect whenever a
   debuff is added.
 JS: On Expire Buff:
 - JavaScript code for a global-wide custom effect whenever a
   buff is added.
 JS: On Expire Debuff:
 - JavaScript code for a global-wide custom effect whenever a
   debuff is added.

---

Passive State Settings

SkillsStatesCorePassives.png

SkillsStatesCoreParams05.png

These Plugin Parameters adjust passive states that can affect all actors and enemies as well as have global conditions.

---

For those using the code "a.isStateAffected(10)" to check if a target is affected by a state or not, this does NOT check passive states. This only checks for states that were directly applied to the target.

Instead, use "a.states().includes($dataStates[10])" to check for them. This code will search for both directly applied states and passive states alike.

---

List

 Global Passives:
 - A list of passive states to affect actors and enemies.
 Actor-Only Passives:
 - A list of passive states to affect actors only.
 Enemy Passives:
 - A list of passive states to affect enemies only.

---

Global JS Effects

 JS: Condition Check:
 - JavaScript code for a global-wide passive condition check.

---


Terms of Use

1. These plugins may be used in free or commercial games provided that they have been acquired through legitimate means at VisuStella.com and/or any other official approved VisuStella sources. Exceptions and special circumstances that may prohibit usage will be listed on VisuStella.com.

2. All of the listed coders found in the Credits section of this plugin must be given credit in your games or credited as a collective under the name: "VisuStella".

3. You may edit the source code to suit your needs, so long as you do not claim the source code belongs to you. VisuStella also does not take responsibility for the plugin if any changes have been made to the plugin's code, nor does VisuStella take responsibility for user-provided custom code used for custom control effects including advanced JavaScript notetags and/or plugin parameters that allow custom JavaScript code.

4. You may NOT redistribute these plugins nor take code from this plugin to use as your own. These plugins and their code are only to be downloaded from VisuStella.com and other official/approved VisuStella sources. A list of official/approved sources can also be found on VisuStella.com.

5. VisuStella is not responsible for problems found in your game due to unintended usage, incompatibility problems with plugins outside of the VisuStella MZ library, plugin versions that aren't up to date, nor responsible for the proper working of compatibility patches made by any third parties. VisuStella is not responsible for errors caused by any user-provided custom code used for custom control effects including advanced JavaScript notetags and/or plugin parameters that allow JavaScript code.

6. If a compatibility patch needs to be made through a third party that is unaffiliated with VisuStella that involves using code from the VisuStella MZ library, contact must be made with a member from VisuStella and have it approved. The patch would be placed on VisuStella.com as a free download to the public. Such patches cannot be sold for monetary gain, including commissions, crowdfunding, and/or donations.

7. If this VisuStella MZ plugin is a paid product, all project team members must purchase their own individual copies of the paid product if they are to use it. Usage includes working on related game mechanics, managing related code, and/or using related Plugin Commands and features. Redistribution of the plugin and/or its code to other members of the team is NOT allowed unless they own the plugin itself as that conflicts with Article 4.

8. Any extensions and/or addendums made to this plugin's Terms of Use can be found on VisuStella.com and must be followed.

Terms of Use: Japanese


『VisuStella MZ』利用規約

1. これらのプラグインは、VisuStella.comおよび/または公式に承認されたVisuStellaのソースから合法的な手段で入手したものである限り、フリーゲームや商用ゲームに使用することができます。例外的に使用が禁止される場合については、VisuStella.comの記載をご確認ください。

2. 本プラグインの「クレジット」部分に記載されているすべてのコーダーの名前は、ゲーム内にクレジット表記を行うか、もしくは「VisuStella」という名前の下にまとめて表記する必要があります。

3. ソースコードを自分のものだと主張しない限りは、必要に応じて編集することが可能です。ただしプラグインのコードに変更が加えられた場合、VisuStellaはそのプラグインに対して一切の責任を負いません。高度なJavaScriptのノートタグやJavaScriptコードを許可するプラグインのパラメータを含む、カスタムコントロールエフェクトに使用される、ユーザー提供のカスタムコードについても、VisuStellaは一切の責任を負いません。

4. これらのプラグインやプラグイン内のコードを、「自分のもの」として再配布したり使用したりすることはできません。これらのプラグインとそのコードは、VisuStella.comおよび、その他の公式/承認済みVisuStellaソースからのみダウンロードすることができます。公式/承認済みのソースのリストは、VisuStella.comでご確認いただけます。

5. VisuStellaは、意図しない使用方法による問題、VisuStella MZライブラリ以外のプラグインとの非互換性の問題、プラグインのバージョンが最新でないことによる問題、第三者による互換性パッチが適切に動作していないことなどが原因でゲーム内で発生した問題については、一切の責任を負いません。VisuStellaは、高度なJavaScriptのノートタグやJavaScriptコードを許可するプラグインのパラメータを含む、カスタムコントロールエフェクトに使用される、ユーザー提供のカスタムコードに起因するエラーについても、一切の責任を負いません。

6. VisuStella MZライブラリのコードを使用した互換性パッチをVisuStellaとは関係のない第三者を通じて作成する必要がある場合は、まずVisuStellaのメンバーと連絡を取り、承認を得る必要があります。パッチはVisuStella.comに公開され、誰でも無料でダウンロードすることができるようになります。このようなパッチを、制作発注やクラウドファンディングの対象にしたり、寄付などの金銭的な利益を得るために販売することはできません。

7. このVisuStella MZプラグインが商用製品である場合、プロジェクトチームのすべてのメンバーは、それを使用するため、それぞれ製品を購入しなければなりません。使用方法には、関連するゲームメカニクスの作業、関連するコードの管理、および/または関連するプラグインコマンドや機能の使用、が含まれます。プラグインそのものやそのコードをチームの他のメンバーに再配布することは第4項に抵触するため、そのメンバーがプラグインそのものを所有していない限りは許可されません。

8. このプラグインの利用規約の追加項目や補足については、VisuStella.comに掲載されていますので、それを参照し従ってください。

Credits

If you are using this plugin, credit the following people in your game:

Team VisuStella

Changelog

Version 1.04: September 27, 2020

  • Documentation Update
    • "Use Updated Layout" plugin parameters now have the added clause: "This will override the Core Engine windows settings." to reduce confusion. Added by Irina.


Version 1.03: September 13, 2020

  • Bug Fixes!
    • <JS type Slip Damage> custom notetags now work for passive states. Fix made by Olivia.
    • Setting the Command Window style to "Text Only" will no longer add in the icon text codes. Bug fixed by Yanfly.


Version 1.02: August 30, 2020

  • Bug Fixes!
    • The JS Notetags for Add, Erase, and Expire states are now fixed. Fix made by Yanfly.
  • Documentation Update!
    • <Show if learned Skill: x> and <Hide if learned Skill: x> notetags have the following added to their descriptions:
      • This does not apply to skills added by traits on actors, classes, any equipment, or states. These are not considered learned skills. They are considered temporary skills.
  • New Features!
    • Notetags added by Yanfly:
      • <Show if has Skill: x>
      • <Show if have All Skills: x,x,x>
      • <Show if have Any Skills: x,x,x>
      • <Show if has Skill: name>
      • <Show if have All Skills: name, name, name>
      • <Show if have Any Skills: name, name, name>
      • <Hide if has Skill: x>
      • <Hide if have All Skills: x,x,x>
      • <Hide if have Any Skills: x,x,x>
      • <Hide if has Skill: name>
      • <Hide if have All Skills: name, name, name>
      • <Hide if have Any Skills: name, name, name>
      • These have been added to remove the confusion regarding learned skills as skills added through trait effects are not considered learned skills by RPG Maker MZ.


Version 1.01: August 23, 2020

  • Bug Fixes!
    • Passive states from Elements & Status Menu Core are now functional. Fix made by Olivia.
  • Compatibility Update
    • Extended functions to allow for better compatibility.
  • Updated documentation
    • Explains that passive states are not directly applied and are therefore not affected by code such as "a.isStateAffected(10)".
    • Instead, use "a.states().includes($dataStates[10])"
    • "Use #rrggbb for a hex color." lines now replaced with "For a hex color, use #rrggbb with VisuMZ_1_MessageCore"


Version 1.00: August 20, 2020

  • Finished Plugin!

End of File