Advertisement
Guest User

dRaC

a guest
Jul 22nd, 2019
86
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
YAML 126.33 KB | None | 0 0
  1. # - COMMANDS
  2. command_Race:
  3.     type: command
  4.     name: race
  5.     usage: /race
  6.     script:
  7.        - define arg1:<context.args.[1]||null>
  8.        - define arg2:<context.args.[2]||null>
  9.        - define arg3:<context.args.[3]||!>
  10.         - if <yaml[race_config].list_keys[].contains[<[arg1].to_titlecase>]>:
  11.            - narrate " "
  12.             - narrate "<&8>-------------------"
  13.             - narrate "<&a><&l>    - <[arg1].to_titlecase> -"
  14.             - narrate "<&8>-------------------"
  15.             - foreach <yaml[race_config].list_keys[<[arg1].to_titlecase>.buffs]> as:buff:
  16.                - define val:<yaml[race_config].read[<[arg1].to_titlecase>.buffs.<[buff]>]>
  17.                 - choose <[buff]>:
  18.                     - case Health:
  19.                        - narrate "<&e>Increases health by up to <[val].*[40]>"
  20.                     - case Mana:
  21.                        - narrate "<&e>Increases mana by up to <[val].*[40]>"
  22.                     - case Armor:
  23.                        - narrate "<&e>Increases armor by up to <[val].*[40]>"
  24.                     - case Damage:
  25.                        - narrate "<&e>Increases damage by up to <[val].*[40]>%"
  26.                     - case MagicDamage:
  27.                        - narrate "<&e>Increases magic damage by up to <[val].*[40]>%"
  28.                     - case SwordDamage:
  29.                        - narrate "<&e>Increases sword damage by up to <[val].*[40]>%"
  30.                     - case AxeDamage:
  31.                        - narrate "<&e>Increases axe damage by up to <[val].*[40]>%"
  32.                     - case BowDamage:
  33.                        - narrate "<&e>Increases bow damage by up to <[val].*[40]>%"
  34.                     - case LongRangeDamage:
  35.                        - narrate "<&e>Increases long range damage by up to <[val].*[40]>%"
  36.                     - case Critical:
  37.                        - narrate "<&e>Increases critical chance by up to <[val].*[40]>%"
  38.                     - case Poison:
  39.                        - narrate "<&e>Increases chance to poison by up to <[val].*[40]>%"
  40.                     - case Bleed:
  41.                        - narrate "<&e>Increases chance to bleed by up to <[val].*[40]>%"
  42.                     - case Backstab:
  43.                        - narrate "<&e>Increases backstab damage by up to <[val].*[40]>%"
  44.                     - case Speed:
  45.                        - narrate "<&e>Increases speed by up to <[val].*[40]>"
  46.                     - case Dodge:
  47.                        - narrate "<&e>Increases dodge by up to <[val].*[40]>%"
  48.                     - case Parry:
  49.                        - narrate "<&e>Increases parry by up to <[val].*[40]>%"
  50.                     - case Lifesteal
  51.                         - narrate "<&e>Increases lifesteal by up to <[val].*[40]>%"
  52.                     - case Luck
  53.                         - narrate "<&e>Increases luck by up to <[val].*[40]>"
  54.                     - case Regen:
  55.                        - narrate "<&e>Increases regen by up to <[val].*[40]>%"
  56.                     - case HpRegen:
  57.                        - narrate "<&e>Increases health regen by up to <[val].*[40]>%"
  58.                     - case ManaRegen:
  59.                        - narrate "<&e>Increases mana regen by up to <[val].*[40]>%"
  60.                     - case RegenAura:
  61.                        - narrate "<&e>Increases regen of allies by up to <[val].*[40]>%"
  62.                     - case HpRegenAura:
  63.                        - narrate "<&e>Increases health regen of allies by up to <[val].*[40]>%"
  64.                     - case ManaRegenAura:
  65.                        - narrate "<&e>Increases mana regen of allies by up to <[val].*[40]>%"
  66.                     - case Hover:
  67.                        - narrate "<&e>Allows you to hover"
  68.                     - case UnderwaterBreathing:
  69.                        - narrate "<&e>Allows you to breathe underwater"
  70.             - narrate "<&a>----Sub-Races----"
  71.             - foreach <yaml[race_config].list_keys[<[arg1].to_titlecase>.subraces]> as:subrace:
  72.                - narrate "<&6><[subrace]>"
  73.             - narrate "<&8>-------------------"
  74.             - narrate "<&e>Type /race (subracename) to view more info on a subrace"
  75.             - stop
  76.         - else:
  77.             - foreach <yaml[race_config].list_keys[]> as:race:
  78.                 - if <yaml[race_config].list_keys[<[race]>.subraces].contains[<[arg1].to_titlecase>]||false>:
  79.                    - narrate " "
  80.                     - narrate "<&8>-------------------"
  81.                     - narrate "<&a><&l>    - <[arg1].to_titlecase> -"
  82.                     - narrate "<&8>-------------------"
  83.                     - foreach <yaml[race_config].list_keys[<[race]>.subraces.<[arg1].to_titlecase>.buffs]> as:buff:
  84.                        - define val:<yaml[race_config].read[<[race]>.subraces.<[arg1].to_titlecase>.buffs.<[buff]>]>
  85.                         - choose <[buff]>:
  86.                             - case Health:
  87.                                - narrate "<&e>Increases health by up to <[val].*[40]>"
  88.                             - case Mana:
  89.                                - narrate "<&e>Increases mana by up to <[val].*[40]>"
  90.                             - case Armor:
  91.                                - narrate "<&e>Increases armor by up to <[val].*[40]>"
  92.                             - case Damage:
  93.                                - narrate "<&e>Increases damage by up to <[val].*[40]>%"
  94.                             - case MagicDamage:
  95.                                - narrate "<&e>Increases magic damage by up to <[val].*[40]>%"
  96.                             - case SwordDamage:
  97.                                - narrate "<&e>Increases sword damage by up to <[val].*[40]>%"
  98.                             - case AxeDamage:
  99.                                - narrate "<&e>Increases axe damage by up to <[val].*[40]>%"
  100.                             - case BowDamage:
  101.                                - narrate "<&e>Increases bow damage by up to <[val].*[40]>%"
  102.                             - case LongRangeDamage:
  103.                                - narrate "<&e>Increases long range damage by up to <[val].*[40]>%"
  104.                             - case Critical:
  105.                                - narrate "<&e>Increases critical chance by up to <[val].*[40]>%"
  106.                             - case Poison:
  107.                                - narrate "<&e>Increases chance to poison by up to <[val].*[40]>%"
  108.                             - case Bleed:
  109.                                - narrate "<&e>Increases chance to bleed by up to <[val].*[40]>%"
  110.                             - case Backstab:
  111.                                - narrate "<&e>Increases backstab damage by up to <[val].*[40]>%"
  112.                             - case Speed:
  113.                                - narrate "<&e>Increases speed by up to <[val].*[40]>"
  114.                             - case Dodge:
  115.                                - narrate "<&e>Increases dodge by up to <[val].*[40]>%"
  116.                             - case Parry:
  117.                                - narrate "<&e>Increases parry by up to <[val].*[40]>%"
  118.                             - case Lifesteal
  119.                                 - narrate "<&e>Increases lifesteal by up to <[val].*[40]>%"
  120.                             - case Luck
  121.                                 - narrate "<&e>Increases luck by up to <[val].*[40]>"
  122.                             - case Regen:
  123.                                - narrate "<&e>Increases regen by up to <[val].*[40]>%"
  124.                             - case HpRegen:
  125.                                - narrate "<&e>Increases health regen by up to <[val].*[40]>%"
  126.                             - case ManaRegen:
  127.                                - narrate "<&e>Increases mana regen by up to <[val].*[40]>%"
  128.                             - case RegenAura:
  129.                                - narrate "<&e>Increases regen of allies by up to <[val].*[40]>%"
  130.                             - case HpRegenAura:
  131.                                - narrate "<&e>Increases health regen of allies by up to <[val].*[40]>%"
  132.                             - case ManaRegenAura:
  133.                                - narrate "<&e>Increases mana regen of allies by up to <[val].*[40]>%"
  134.                             - case Hover:
  135.                                - narrate "<&e>Allows you to hover"
  136.                             - case UnderwaterBreathing:
  137.                                - narrate "<&e>Allows you to breathe underwater"
  138.                     - narrate "<&8>-------------------"
  139.                     - stop
  140.         - choose <[arg1]>:
  141.             - case null:
  142.                - narrate " "
  143.                 - narrate "<&8>-------------------"
  144.                 - narrate "<&a><&l>- Race Commands -"
  145.                 - narrate "<&8>-------------------"
  146.                 - narrate "<&e>/race<&8>- <&7>Race commands"
  147.                 - narrate "<&e>/race help<&8>- <&7>Explains races"
  148.                 - narrate "<&e>/race list <&8>- <&7>Displays a list of races"
  149.                 - narrate "<&e>/race (name) <&8>- <&7>Gives info on a race"
  150.                 - narrate "<&e>/race change (name) <&8>- <&7>Changes race"
  151.                 - narrate "<&e>/race info <&8>- <&7>Gives info on your current race"
  152.                 - narrate "<&e>/race stats <&8>- <&7>Displays stats"
  153.                 - narrate "<&e>/stats <&8>- <&7>Displays all stats"
  154.                 - narrate "<&e>/subrace <&8>- <&7>Subrace commands"
  155.                 - narrate "<&8>-------------------"
  156.                 - stop
  157.             - case help:
  158.                - narrate " "
  159.                 - narrate "<&e>- Races give you stats that increase as you level"
  160.                 - narrate "<&e>- Gain experience from mob kills and"
  161.                 - narrate "<&e>  played time"
  162.                 - stop
  163.             - case list:
  164.                - narrate " "
  165.                 - narrate "<&8>-------------------"
  166.                 - narrate "<&a><&l>   - Races -"
  167.                 - narrate "<&8>-------------------"
  168.                 - foreach <yaml[race_config].list_keys[]> as:race_name:
  169.                    - narrate "<&6><&l><[race_name]>"
  170.                 - narrate "<&8>-------------------"
  171.                 - narrate "<&e>/race (name) to view more info on a race"
  172.                 - stop
  173.             - case info:
  174.                - narrate " "
  175.                 - narrate "<&8>-------------------"
  176.                 - narrate "<&a><&l>  - Race Info -"
  177.                 - narrate "<&8>-------------------"
  178.                 - narrate "<&6><&l>Race:   <&e><yaml[<player.uuid>].read[races.race]>"
  179.                - narrate "<&6><&l>Level:  <&e><yaml[<player.uuid>].read[races.level]>"
  180.                - narrate "<&6><&l>Xp:     <&e><yaml[<player.uuid>].read[races.xp]>/<el@10000.*[<yaml[<player.uuid>].read[races.level]>]>"
  181.                - narrate "<&8>---------"
  182.                - narrate "<&6><&l>SubRace: <&e><yaml[<player.uuid>].read[races.subrace]>"
  183.                - narrate "<&6><&l>Level:  <&e><yaml[<player.uuid>].read[races.sublevel]>"
  184.                - narrate "<&6><&l>Xp:     <&e><yaml[<player.uuid>].read[races.subxp]>/<el@10000.*[<yaml[<player.uuid>].read[races.sublevel]>]>"
  185.                - narrate "<&8>-------------------"
  186.                - stop
  187.            - case stats:
  188.                - define race:<yaml[<player.uuid>].read[races.race]>
  189.                - define level:<yaml[<player.uuid>].read[races.level]>
  190.                - if <[race]> == Default:
  191.                    - narrate "<&c>You have no race"
  192.                    - stop
  193.                - narrate " "
  194.                - narrate "<&8>-------------------"
  195.                - narrate "<&a><&l>  - Race Stats -"
  196.                - narrate "<&8>-------------------"
  197.                - foreach <yaml[race_config].list_keys[<[race]>.buffs]||null> as:stat:
  198.                    - define val:<yaml[race_config].read[<[race]>.buffs.<[stat]>].*[<[level]>]>
  199.                    - choose <[stat]>:
  200.                        - case Health:
  201.                            - narrate "<&e>Increased <&6>health<&e> - <[val]>"
  202.                        - case Mana:
  203.                            - narrate "<&e>Increased <&6>mana<&e> - <[val]>"
  204.                        - case Armor:
  205.                            - narrate "<&e>Increased <&6>armor<&e> - <[val]>"
  206.                        - case Damage:
  207.                            - narrate "<&e>Increased <&6>damage<&e> - <[val]>%"
  208.                         - case MagicDamage:
  209.                            - narrate "<&e>Increased <&6>magic damage<&e> - <[val]>%"
  210.                         - case SwordDamage:
  211.                            - narrate "<&e>Increased <&6>sword damage<&e> - <[val]>%"
  212.                         - case AxeDamage:
  213.                            - narrate "<&e>Increased <&6>axe damage<&e> - <[val]>%"
  214.                         - case BowDamage:
  215.                            - narrate "<&e>Increased <&6>bow damage<&e> - <[val]>%"
  216.                         - case LongRangeDamage:
  217.                            - narrate "<&e>Increased <&6>long range damage<&e> - <[val]>%"
  218.                         - case Critical:
  219.                            - narrate "<&e>Increased <&6>critical<&e> chance - <[val]>%"
  220.                         - case Poison:
  221.                            - narrate "<&e>Increased <&6>chance to poison<&e> - <[val]>%"
  222.                         - case Bleed:
  223.                            - narrate "<&e>Increased <&6>chance to bleed<&e> - <[val]>%"
  224.                         - case Backstab:
  225.                            - narrate "<&e>Increased <&6>backstab damage<&e> - <[val]>%"
  226.                         - case Speed:
  227.                            - narrate "<&e>Increased <&6>speed<&e> - <[val]>"
  228.                         - case Dodge:
  229.                            - narrate "<&e>Increased <&6>dodge<&e> - <[val]>%"
  230.                         - case Parry:
  231.                            - narrate "<&e>Increased <&6>parry<&e> - <[val]>%"
  232.                         - case Lifesteal
  233.                             - narrate "<&e>Increased <&6>lifesteal<&e> - <[val]>%"
  234.                         - case Luck
  235.                             - narrate "<&e>Increased <&6>luck<&e> - <[val]>"
  236.                         - case Regen:
  237.                            - narrate "<&e>Increased <&6>regen<&e> - <[val]>%"
  238.                         - case HpRegen:
  239.                            - narrate "<&e>Increased <&6>health regen<&e> - <[val]>%"
  240.                         - case ManaRegen:
  241.                            - narrate "<&e>Increased <&6>mana regen<&e> - <[val]>%"
  242.                         - case RegenAura:
  243.                            - narrate "<&e>Increased <&6>regen<&e> of allies - <[val]>%"
  244.                         - case HpRegenAura:
  245.                            - narrate "<&e>Increased <&6>health regen<&e> of allies - <[val]>%"
  246.                         - case ManaRegenAura:
  247.                            - narrate "<&e>Increases <&6>mana regen<&e> of allies - <[val]>%"
  248.                         - case Hover:
  249.                            - narrate "<&e>Can hover"
  250.                         - case UnderwaterBreathing:
  251.                            - narrate "<&e>Can breathe underwater"
  252.                 - narrate "<&8>-------------------"
  253.                 - stop
  254.             - case change:
  255.                 - if <yaml[race_config].list_keys[].contains[<[arg2].to_titlecase>]> && <yaml[<player.uuid>].read[races.race]> != <[arg2].to_titlecase>:
  256.                    - narrate "<&e>You change to <[arg2].to_titlecase>"
  257.                     - if <yaml[<player.uuid>].read[races.subrace]> != Default:
  258.                        - run instantly function_ClearSubraceBuffs
  259.                         - define subrace:Default
  260.                         - define last_subrace:<yaml[<player.uuid>].read[races.subrace]>
  261.                        - define sublevel:1
  262.                         - define last_sublevel:<yaml[<player.uuid>].read[races.sublevel]||1>
  263.                        - define subxp:0
  264.                         - define last_subxp:<yaml[<player.uuid>].read[races.subxp]||0>
  265.                        - yaml id:<player.uuid> set races.subrace:<[subrace]>
  266.                        - yaml id:<player.uuid> set races.last_subrace:<[last_subrace]>
  267.                        - yaml id:<player.uuid> set races.sublevel:<[sublevel]>
  268.                        - yaml id:<player.uuid> set races.last_sublevel:<[last_sublevel]>
  269.                        - yaml id:<player.uuid> set races.subxp:<[subxp]>
  270.                        - yaml id:<player.uuid> set races.last_subxp:<[last_subxp]>
  271.                        - yaml id:<player.uuid> set races.<[last_subrace]>_level:<[last_sublevel]>
  272.                        - yaml id:<player.uuid> set races.<[last_subrace]>_xp:<[last_subxp]>
  273.                     - if <yaml[<player.uuid>].read[races.race]> != default
  274.                         - run instantly function_ClearRaceBuffs
  275.                     - define race:<[arg2].to_titlecase>
  276.                    - define last_race:<yaml[<player.uuid>].read[races.race]>
  277.                    - define level:<yaml[<player.uuid>].read[races.<[race]>_level]||1>
  278.                    - define last_level:<yaml[<player.uuid>].read[races.level]||1>
  279.                    - define xp:<yaml[<player.uuid>].read[races.<[race]>_xp]||0>
  280.                    - define last_xp:<yaml[<player.uuid>].read[races.xp]||0>
  281.                    - define race_buffs:<yaml[race_config].list_keys[<[race]>.buffs]>
  282.                    - define last_race_buffs:<yaml[race_config].list_keys[<[last_race]>.buffs]||null>
  283.                    - yaml id:<player.uuid> set races.race:<[race]>
  284.                    - yaml id:<player.uuid> set races.last_race:<[last_race]>
  285.                    - yaml id:<player.uuid> set races.level:<[level]>
  286.                    - yaml id:<player.uuid> set races.last_level:<[last_level]>
  287.                    - yaml id:<player.uuid> set races.xp:<[xp]>
  288.                    - yaml id:<player.uuid> set races.last_xp:<[last_xp]>
  289.                    - yaml id:<player.uuid> set races.<[last_race]>_level:<[last_level]>
  290.                    - yaml id:<player.uuid> set races.<[last_race]>_xp:<[last_xp]>
  291.                    - run instantly function_UpdateRaceBuffs
  292.                     - yaml id:<player.uuid> savefile:../dData/players/<player.uuid>.yml
  293.                     - stop
  294.                
  295.                 - else if <yaml[race_config].list_keys[<yaml[<player.uuid>].read[races.race]>.subraces].contains[<[arg2].to_titlecase>]||false> && <yaml[<player.uuid>].read[races.subrace]> != <[arg2].to_titlecase>:
  296.                    - narrate "<&e>You change to <[arg2].to_titlecase>"
  297.                     - if <yaml[<player.uuid>].read[races.subrace]> != Default:
  298.                        - run instantly function_ClearSubraceBuffs
  299.                     - define race:<yaml[<player.uuid>].read[races.race]>
  300.                    - define subrace:<[arg2].to_titlecase>
  301.                    - define last_subrace:<yaml[<player.uuid>].read[races.subrace]>
  302.                    - define sublevel:<yaml[<player.uuid>].read[races.<[subrace]>_level]||1>
  303.                    - define last_sublevel:<yaml[<player.uuid>].read[races.sublevel]||1>
  304.                    - define subxp:<yaml[<player.uuid>].read[races.<[subrace]>_xp]||0>
  305.                    - define last_subxp:<yaml[<player.uuid>].read[races.subxp]||0>
  306.                    - define subrace_buffs:<yaml[race_config].list_keys[<[race]>.subraces.<[subrace]>.buffs]>
  307.                    - yaml id:<player.uuid> set races.subrace:<[subrace]>
  308.                    - yaml id:<player.uuid> set races.last_subrace:<[last_subrace]>
  309.                    - yaml id:<player.uuid> set races.sublevel:<[sublevel]>
  310.                    - yaml id:<player.uuid> set races.last_sublevel:<[last_sublevel]>
  311.                    - yaml id:<player.uuid> set races.subxp:<[subxp]>
  312.                    - yaml id:<player.uuid> set races.last_subxp:<[last_subxp]>
  313.                    - yaml id:<player.uuid> set races.<[last_subrace]>_level:<[last_subrace]>
  314.                    - yaml id:<player.uuid> set races.<[last_subrace]>_xp:<[last_subxp]>
  315.                    - run instantly function_UpdateSubraceBuffs
  316.                     - yaml id:<player.uuid> savefile:../dData/players/<player.uuid>.yml
  317.                     - stop
  318.                 - narrate "<&c>You cannot change race to <[arg2].to_titlecase>"
  319.                 - stop
  320.         - narrate "<&c>Invalid race command"
  321.  
  322. command_Subrace:
  323.     type: command
  324.     name: subrace
  325.     usage: /subrace
  326.     script:
  327.        - define arg1:<context.args.[1]||null>
  328.        - define arg2:<context.args.[2]||null>
  329.         - foreach <yaml[race_config].list_keys[]> as:race:
  330.             - if <yaml[race_config].list_keys[<[race]>.subraces].contains[<[arg1].to_titlecase>]||false>:
  331.                - narrate " "
  332.                 - narrate "<&8>-------------------"
  333.                 - narrate "<&a><&l>    - <[arg1].to_titlecase> -"
  334.                 - narrate "<&8>-------------------"
  335.                 - foreach <yaml[race_config].list_keys[<[race]>.subraces.<[arg1].to_titlecase>.buffs]> as:buff:
  336.                    - define val:<yaml[race_config].read[<[race]>.subraces.<[arg1].to_titlecase>.buffs.<[buff]>]>
  337.                     - choose <[buff]>:
  338.                         - case Health:
  339.                            - narrate "<&e>Increases health by up to <[val].*[40]>"
  340.                         - case Mana:
  341.                            - narrate "<&e>Increases mana by up to <[val].*[40]>"
  342.                         - case Armor:
  343.                            - narrate "<&e>Increases armor by up to <[val].*[40]>"
  344.                         - case Damage:
  345.                            - narrate "<&e>Increases damage by up to <[val].*[40]>%"
  346.                         - case MagicDamage:
  347.                            - narrate "<&e>Increases magic damage by up to <[val].*[40]>%"
  348.                         - case SwordDamage:
  349.                            - narrate "<&e>Increases sword damage by up to <[val].*[40]>%"
  350.                         - case AxeDamage:
  351.                            - narrate "<&e>Increases axe damage by up to <[val].*[40]>%"
  352.                         - case BowDamage:
  353.                            - narrate "<&e>Increases bow damage by up to <[val].*[40]>%"
  354.                         - case LongRangeDamage:
  355.                            - narrate "<&e>Increases long range damage by up to <[val].*[40]>%"
  356.                         - case Critical:
  357.                            - narrate "<&e>Increases critical chance by up to <[val].*[40]>%"
  358.                         - case Poison:
  359.                            - narrate "<&e>Increases chance to poison by up to <[val].*[40]>%"
  360.                         - case Bleed:
  361.                            - narrate "<&e>Increases chance to bleed by up to <[val].*[40]>%"
  362.                         - case Backstab:
  363.                            - narrate "<&e>Increases backstab damage by up to <[val].*[40]>%"
  364.                         - case Speed:
  365.                            - narrate "<&e>Increases speed by up to <[val].*[40]>"
  366.                         - case Dodge:
  367.                            - narrate "<&e>Increases dodge by up to <[val].*[40]>%"
  368.                         - case Parry:
  369.                            - narrate "<&e>Increases parry by up to <[val].*[40]>%"
  370.                         - case Lifesteal
  371.                             - narrate "<&e>Increases lifesteal by up to <[val].*[40]>%"
  372.                         - case Luck
  373.                             - narrate "<&e>Increases luck by up to <[val].*[40]>"
  374.                         - case Regen:
  375.                            - narrate "<&e>Increases regen by up to <[val].*[40]>%"
  376.                         - case HpRegen:
  377.                            - narrate "<&e>Increases health regen by up to <[val].*[40]>%"
  378.                         - case ManaRegen:
  379.                            - narrate "<&e>Increases mana regen by up to <[val].*[40]>%"
  380.                         - case RegenAura:
  381.                            - narrate "<&e>Increases regen of allies by up to <[val].*[40]>%"
  382.                         - case HpRegenAura:
  383.                            - narrate "<&e>Increases health regen of allies by up to <[val].*[40]>%"
  384.                         - case ManaRegenAura:
  385.                            - narrate "<&e>Increases mana regen of allies by up to <[val].*[40]>%"
  386.                         - case Hover:
  387.                            - narrate "<&e>Allows you to hover"
  388.                         - case UnderwaterBreathing:
  389.                            - narrate "<&e>Allows you to breathe underwater"
  390.                 - narrate "<&8>-------------------"
  391.                 - stop
  392.         - choose <[arg1]>:
  393.             - case null:
  394.                - narrate " "
  395.                 - narrate "<&8>-------------------"
  396.                 - narrate "<&a><&l>- Subrace Commands -"
  397.                 - narrate "<&8>-------------------"
  398.                 - narrate "<&e>/subrace<&8>- <&7>Subrace commands"
  399.                 - narrate "<&e>/subrace help<&8>- <&7>Explains subraces"
  400.                 - narrate "<&e>/subrace list <&8>- <&7>Displays a list of subraces"
  401.                 - narrate "<&e>/subrace (name) <&8>- <&7>Gives info on a subrace"
  402.                 - narrate "<&e>/subrace change (name) <&8>- <&7>Changes subrace"
  403.                 - narrate "<&e>/subrace info <&8>- <&7>Gives info on your current subrace"
  404.                 - narrate "<&e>/subrace stats <&8>- <&7>Displays subrace stats"
  405.                 - narrate "<&e>/stats <&8>- <&7>Displays all stats"
  406.                 - narrate "<&8>-------------------"
  407.                 - stop
  408.             - case help:
  409.                - narrate " "
  410.                 - narrate "<&e>- Subraces give you stats that increase as you level"
  411.                 - narrate "<&e>- Gain experience from mob kills and"
  412.                 - narrate "<&e>  played time"
  413.                 - stop
  414.             - case list:
  415.                - narrate " "
  416.                 - narrate "<&8>-------------------"
  417.                 - narrate "<&a><&l>  - Subaces -"
  418.                 - narrate "<&8>-------------------"
  419.                 - foreach <yaml[race_config].list_keys[]> as:race:
  420.                    - narrate "<&a><&l><[race]>"
  421.                     - foreach <yaml[race_config].list_keys[<[race]>.subraces]> as:subrace:
  422.                        - narrate "  <&6><[subrace]>"
  423.                 - narrate "<&8>-------------------"
  424.                 - narrate "<&e>Type /race (name) to view more info on a race"
  425.                 - narrate "<&e>Type /subrace (name) to view more info on a subrace"
  426.                 - stop
  427.             - case info:
  428.                - narrate " "
  429.                 - narrate "<&8>-------------------"
  430.                 - narrate "<&a><&l>  - Race Info -"
  431.                 - narrate "<&8>-------------------"
  432.                 - narrate "<&6><&l>Race: <&e><yaml[<player.uuid>].read[races.race]>"
  433.                - narrate "<&6><&l>Level: <&e><yaml[<player.uuid>].read[races.level]>"
  434.                - narrate "<&6><&l>Xp:   <&e><yaml[<player.uuid>].read[races.xp]>/<el@10000.*[<yaml[<player.uuid>].read[races.level]>]>"
  435.                - narrate "<&8>---------"
  436.                - narrate "<&6><&l>SubRace: <&e><yaml[<player.uuid>].read[races.subrace]>"
  437.                - narrate "<&6><&l>Level:  <&e><yaml[<player.uuid>].read[races.sublevel]>"
  438.                - narrate "<&6><&l>Xp:     <&e><yaml[<player.uuid>].read[races.subxp]>/<el@10000.*[<yaml[<player.uuid>].read[races.sublevel]>]>"
  439.                - narrate "<&8>-------------------"
  440.                - stop
  441.            - case stats:
  442.                - define race:<yaml[<player.uuid>].read[races.race]>
  443.                - define subrace:<yaml[<player.uuid>].read[races.subrace]>
  444.                - define sublevel:<yaml[<player.uuid>].read[races.sublevel]>
  445.                - if <[subrace]> == Default:
  446.                    - narrate "<&c>You have no subrace"
  447.                    - stop
  448.                - narrate " "
  449.                - narrate "<&8>-------------------"
  450.                - narrate "<&a><&l> - Subrace Stats -"
  451.                - narrate "<&8>-------------------"
  452.                - foreach <yaml[race_config].list_keys[<[race]>.subraces.<[subrace]>.buffs]> as:stat:
  453.                    - define val:<yaml[race_config].read[<[race]>.subraces.<[subrace]>.buffs.<[stat]>].*[<[sublevel]>]>
  454.                    - choose <[stat]>:
  455.                        - case Health:
  456.                            - narrate "<&e>Increased <&6>health<&e> - <[val]>"
  457.                        - case Mana:
  458.                            - narrate "<&e>Increased <&6>mana<&e> - <[val]>"
  459.                        - case Armor:
  460.                            - narrate "<&e>Increased <&6>armor<&e> - <[val]>"
  461.                        - case Damage:
  462.                            - narrate "<&e>Increased <&6>damage<&e> - <[val]>%"
  463.                         - case MagicDamage:
  464.                            - narrate "<&e>Increased <&6>magic damage<&e> - <[val]>%"
  465.                         - case SwordDamage:
  466.                            - narrate "<&e>Increased <&6>sword damage<&e> - <[val]>%"
  467.                         - case AxeDamage:
  468.                            - narrate "<&e>Increased <&6>axe damage<&e> - <[val]>%"
  469.                         - case BowDamage:
  470.                            - narrate "<&e>Increased <&6>bow damage<&e> - <[val]>%"
  471.                         - case LongRangeDamage:
  472.                            - narrate "<&e>Increased <&6>long range damage<&e> - <[val]>%"
  473.                         - case Critical:
  474.                            - narrate "<&e>Increased <&6>critical<&e> chance - <[val]>%"
  475.                         - case Poison:
  476.                            - narrate "<&e>Increased <&6>chance to poison<&e> - <[val]>%"
  477.                         - case Bleed:
  478.                            - narrate "<&e>Increased <&6>chance to bleed<&e> - <[val]>%"
  479.                         - case Backstab:
  480.                            - narrate "<&e>Increased <&6>backstab damage<&e> - <[val]>%"
  481.                         - case Speed:
  482.                            - narrate "<&e>Increased <&6>speed<&e> - <[val]>"
  483.                         - case Dodge:
  484.                            - narrate "<&e>Increased <&6>dodge<&e> - <[val]>%"
  485.                         - case Parry:
  486.                            - narrate "<&e>Increased <&6>parry<&e> - <[val]>%"
  487.                         - case Lifesteal
  488.                             - narrate "<&e>Increased <&6>lifesteal<&e> - <[val]>%"
  489.                         - case Luck
  490.                             - narrate "<&e>Increased <&6>luck<&e> - <[val]>"
  491.                         - case Regen:
  492.                            - narrate "<&e>Increased <&6>regen<&e> - <[val]>%"
  493.                         - case HpRegen:
  494.                            - narrate "<&e>Increased <&6>health regen<&e> - <[val]>%"
  495.                         - case ManaRegen:
  496.                            - narrate "<&e>Increased <&6>mana regen<&e> - <[val]>%"
  497.                         - case RegenAura:
  498.                            - narrate "<&e>Increased <&6>regen<&e> of allies - <[val]>%"
  499.                         - case HpRegenAura:
  500.                            - narrate "<&e>Increased <&6>health regen<&e> of allies - <[val]>%"
  501.                         - case ManaRegenAura:
  502.                            - narrate "<&e>Increases <&6>mana regen<&e> of allies - <[val]>%"
  503.                         - case Hover:
  504.                            - narrate "<&e>Can hover"
  505.                         - case UnderwaterBreathing:
  506.                            - narrate "<&e>Can breathe underwater"
  507.                 - narrate "<&8>-------------------"
  508.                 - stop
  509.             - case change:
  510.                 - if <yaml[race_config].list_keys[<yaml[<player.uuid>].read[races.race]>.subraces].contains[<[arg2].to_titlecase>]||false> && <yaml[<player.uuid>].read[races.subrace]> != <[arg2].to_titlecase>:
  511.                    - narrate "<&e>You change to <[arg2].to_titlecase>"
  512.                     - if <yaml[<player.uuid>].read[races.subrace]> != Default:
  513.                        - run instantly function_ClearSubraceBuffs
  514.                     - define race:<yaml[<player.uuid>].read[races.race]>
  515.                    - define subrace:<[arg2].to_titlecase>
  516.                    - define last_subrace:<yaml[<player.uuid>].read[races.subrace]>
  517.                    - define sublevel:<yaml[<player.uuid>].read[races.<[subrace]>_level]||1>
  518.                    - define last_sublevel:<yaml[<player.uuid>].read[races.sublevel]||1>
  519.                    - define subxp:<yaml[<player.uuid>].read[races.<[subrace]>_xp]||0>
  520.                    - define last_subxp:<yaml[<player.uuid>].read[races.subxp]||0>
  521.                    - define subrace_buffs:<yaml[race_config].list_keys[<[race]>.subraces.<[subrace]>.buffs]>
  522.                    #- define last_subrace_buffs:<yaml[race_config].list_keys[<[race]>.subraces.<[last_subrace]>.buffs]||null>
  523.                     - yaml id:<player.uuid> set races.subrace:<[subrace]>
  524.                    - yaml id:<player.uuid> set races.last_subrace:<[last_subrace]>
  525.                    - yaml id:<player.uuid> set races.sublevel:<[sublevel]>
  526.                    - yaml id:<player.uuid> set races.last_sublevel:<[last_sublevel]>
  527.                    - yaml id:<player.uuid> set races.subxp:<[subxp]>
  528.                    - yaml id:<player.uuid> set races.last_subxp:<[last_subxp]>
  529.                    - yaml id:<player.uuid> set races.<[last_subrace]>_level:<[last_sublevel]>
  530.                    - yaml id:<player.uuid> set races.<[last_subrace]>_xp:<[last_subxp]>
  531.                    - run instantly function_UpdateSubraceBuffs
  532.                     - yaml id:<player.uuid> savefile:../dData/players/<player.uuid>.yml
  533.                     - stop
  534.                 - narrate "<&c>You cannot change subrace to <[arg2].to_titlecase>"
  535.                 - stop
  536.         - narrate "<&c>Invalid subrace command"
  537.  
  538. command_Class:
  539.     type: command
  540.     name: class
  541.     usage: /class
  542.     script:
  543.        - define arg1:<context.args.[1]||null>
  544.        - define arg2:<context.args.[2]||null>
  545.        - define arg3:<context.args.[3]||null>
  546.         - if <yaml[class_config].list_keys[].contains[<[arg1].to_titlecase>]>:
  547.            - narrate " "
  548.             - narrate "<&8>-------------------"
  549.             - narrate "<&a><&l>    - <[arg1].to_titlecase> -"
  550.             - narrate "<&8>-------------------"
  551.             - foreach <yaml[class_config].list_keys[<[arg1].to_titlecase>.buffs]> as:buff:
  552.                - define val:<yaml[class_config].read[<[arg1].to_titlecase>.buffs.<[buff]>]>
  553.                 - choose <[buff]>:
  554.                     - case Health:
  555.                        - narrate "<&e>Increases health by up to <[val].*[40]>"
  556.                     - case Mana:
  557.                        - narrate "<&e>Increases mana by up to <[val].*[40]>"
  558.                     - case Armor:
  559.                        - narrate "<&e>Increases armor by up to <[val].*[40]>"
  560.                     - case Damage:
  561.                        - narrate "<&e>Increases damage by up to <[val].*[40]>%"
  562.                     - case MagicDamage:
  563.                        - narrate "<&e>Increases magic damage by up to <[val].*[40]>%"
  564.                     - case SwordDamage:
  565.                        - narrate "<&e>Increases sword damage by up to <[val].*[40]>%"
  566.                     - case AxeDamage:
  567.                        - narrate "<&e>Increases axe damage by up to <[val].*[40]>%"
  568.                     - case BowDamage:
  569.                        - narrate "<&e>Increases bow damage by up to <[val].*[40]>%"
  570.                     - case LongRangeDamage:
  571.                        - narrate "<&e>Increases long range damage by up to <[val].*[40]>%"
  572.                     - case Critical:
  573.                        - narrate "<&e>Increases critical chance by up to <[val].*[40]>%"
  574.                     - case Poison:
  575.                        - narrate "<&e>Increases chance to poison by up to <[val].*[40]>%"
  576.                     - case Bleed:
  577.                        - narrate "<&e>Increases chance to bleed by up to <[val].*[40]>%"
  578.                     - case Backstab:
  579.                        - narrate "<&e>Increases backstab damage by up to <[val].*[40]>%"
  580.                     - case Speed:
  581.                        - narrate "<&e>Increases speed by up to <[val].*[40]>"
  582.                     - case Dodge:
  583.                        - narrate "<&e>Increases dodge by up to <[val].*[40]>%"
  584.                     - case Parry:
  585.                        - narrate "<&e>Increases parry by up to <[val].*[40]>%"
  586.                     - case Lifesteal
  587.                         - narrate "<&e>Increases lifesteal by up to <[val].*[40]>%"
  588.                     - case Luck
  589.                         - narrate "<&e>Increases luck by up to <[val].*[40]>"
  590.                     - case Regen:
  591.                        - narrate "<&e>Increases regen by up to <[val].*[40]>%"
  592.                     - case HpRegen:
  593.                        - narrate "<&e>Increases health regen by up to <[val].*[40]>%"
  594.                     - case ManaRegen:
  595.                        - narrate "<&e>Increases mana regen by up to <[val].*[40]>%"
  596.                     - case RegenAura:
  597.                        - narrate "<&e>Increases regen of allies by up to <[val].*[40]>%"
  598.                     - case HpRegenAura:
  599.                        - narrate "<&e>Increases health regen of allies by up to <[val].*[40]>%"
  600.                     - case ManaRegenAura:
  601.                        - narrate "<&e>Increases mana regen of allies by up to <[val].*[40]>%"
  602.                     - case Hover:
  603.                        - narrate "<&e>Allows you to hover"
  604.                     - case UnderwaterBreathing:
  605.                        - narrate "<&e>Allows you to breathe underwater"
  606.             - narrate "<&8>----<&a>Sub-Classes<&8>----"
  607.             - foreach <yaml[class_config].list_keys[<[arg1].to_titlecase>.subclasses]> as:subclass:
  608.                - narrate "<&6><[subclass]>"
  609.             - narrate "<&8>-------------------"
  610.             - narrate "<&e>Type /subclass (name) to view more info on a subclass"
  611.             - stop
  612.         - else:
  613.             - foreach <yaml[class_config].list_keys[]> as:class:
  614.                 - if <yaml[class_config].list_keys[<[class]>.subclasses].contains[<[arg1].to_titlecase>]>:
  615.                    - narrate " "
  616.                     - narrate "<&8>-------------------"
  617.                     - narrate "<&a><&l>    - <[arg1].to_titlecase> -"
  618.                     - narrate "<&8>-------------------"
  619.                     - foreach <yaml[class_config].list_keys[<[class]>.subclasses.<[arg1].to_titlecase>.buffs]> as:buff:
  620.                        - define val:<yaml[class_config].read[<[class]>.subclasses.<[arg1].to_titlecase>.buffs.<[buff]>]>
  621.                         - choose <[buff]>:
  622.                             - case Health:
  623.                                - narrate "<&e>Increases health by up to <[val].*[40]>"
  624.                             - case Mana:
  625.                                - narrate "<&e>Increases mana by up to <[val].*[40]>"
  626.                             - case Armor:
  627.                                - narrate "<&e>Increases armor by up to <[val].*[40]>"
  628.                             - case Damage:
  629.                                - narrate "<&e>Increases damage by up to <[val].*[40]>%"
  630.                             - case MagicDamage:
  631.                                - narrate "<&e>Increases magic damage by up to <[val].*[40]>%"
  632.                             - case SwordDamage:
  633.                                - narrate "<&e>Increases sword damage by up to <[val].*[40]>%"
  634.                             - case AxeDamage:
  635.                                - narrate "<&e>Increases axe damage by up to <[val].*[40]>%"
  636.                             - case BowDamage:
  637.                                - narrate "<&e>Increases bow damage by up to <[val].*[40]>%"
  638.                             - case LongRangeDamage:
  639.                                - narrate "<&e>Increases long range damage by up to <[val].*[40]>%"
  640.                             - case Critical:
  641.                                - narrate "<&e>Increases critical chance by up to <[val].*[40]>%"
  642.                             - case Poison:
  643.                                - narrate "<&e>Increases chance to poison by up to <[val].*[40]>%"
  644.                             - case Bleed:
  645.                                - narrate "<&e>Increases chance to bleed by up to <[val].*[40]>%"
  646.                             - case Backstab:
  647.                                - narrate "<&e>Increases backstab damage by up to <[val].*[40]>%"
  648.                             - case Speed:
  649.                                - narrate "<&e>Increases speed by up to <[val].*[40]>"
  650.                             - case Dodge:
  651.                                - narrate "<&e>Increases dodge by up to <[val].*[40]>%"
  652.                             - case Parry:
  653.                                - narrate "<&e>Increases parry by up to <[val].*[40]>%"
  654.                             - case Lifesteal
  655.                                 - narrate "<&e>Increases lifesteal by up to <[val].*[40]>%"
  656.                             - case Luck
  657.                                 - narrate "<&e>Increases luck by up to <[val].*[40]>"
  658.                             - case Regen:
  659.                                - narrate "<&e>Increases regen by up to <[val].*[40]>%"
  660.                             - case HpRegen:
  661.                                - narrate "<&e>Increases health regen by up to <[val].*[40]>%"
  662.                             - case ManaRegen:
  663.                                - narrate "<&e>Increases mana regen by up to <[val].*[40]>%"
  664.                             - case RegenAura:
  665.                                - narrate "<&e>Increases regen of allies by up to <[val].*[40]>%"
  666.                             - case HpRegenAura:
  667.                                - narrate "<&e>Increases health regen of allies by up to <[val].*[40]>%"
  668.                             - case ManaRegenAura:
  669.                                - narrate "<&e>Increases mana regen of allies by up to <[val].*[40]>%"
  670.                             - case Hover:
  671.                                - narrate "<&e>Allows you to hover"
  672.                             - case UnderwaterBreathing:
  673.                                - narrate "<&e>Allows you to breathe underwater"
  674.                     #- narrate "<&8>------<&a>Abilities<&8>-------"
  675.                     #- foreach <yaml[class_config].list_keys[<[class]>.subclasses.<[arg1].to_titlecase>.abilities]||<yaml[class_config].read[<[class]>.subclasses.<[arg1].to_titlecase>.abilities]>> as:ability:
  676.                     #    - narrate "<&6><[ability]>"
  677.                     #- narrate "<&8>-------------------"
  678.                     #- narrate "<&e>Use /ability (name) for more info"
  679.                     - stop
  680.         - choose <[arg1]>:
  681.             - case null:
  682.                - narrate " "
  683.                 - narrate "<&8>-------------------"
  684.                 - narrate "<&a><&l>- Class Commands -"
  685.                 - narrate "<&8>-------------------"
  686.                 - narrate "<&e>/class<&8>- <&7>Class commands"
  687.                 - narrate "<&e>/class help<&8>- <&7>Explains classes"
  688.                 - narrate "<&e>/class list <&8>- <&7>Displays a list of classes"
  689.                 - narrate "<&e>/class (name) <&8>- <&7>Gives info on a class"
  690.                 - narrate "<&e>/class change (name) <&8>- <&7>Changes class"
  691.                 - narrate "<&e>/class info <&8>- <&7>Displays info on your current classes"
  692.                 - narrate "<&e>/class stats <&8>- <&7>Displays class stats"
  693.                 - narrate "<&e>/subclass <&8>- <&7>Subclass commands"
  694.                 - narrate "<&8>-------------------"
  695.                 - stop
  696.             - case help:
  697.                - narrate " "
  698.                 - narrate "<&e>- Classes give you stats that increase as you level"
  699.                 - narrate "<&e>- Gain experience from mob kills"
  700.                 - stop
  701.             - case list:
  702.                - narrate " "
  703.                 - narrate "<&8>-------------------"
  704.                 - narrate "<&a><&l>   - Classes -"
  705.                 - narrate "<&8>-------------------"
  706.                 - foreach <yaml[class_config].list_keys[]> as:class_name:
  707.                    - narrate "<&6><&l><[class_name]>"
  708.                 - narrate "<&8>-------------------"
  709.                 - narrate "<&e>Type /class (name) to view more info on a class"
  710.                 - stop
  711.             - case info:
  712.                - narrate " "
  713.                 - narrate "<&8>-------------------"
  714.                 - narrate "<&a><&l>  - Class Info -"
  715.                 - narrate "<&8>-------------------"
  716.                 - narrate "<&6><&l>Class:   <&e><yaml[<player.uuid>].read[classes.class]>"
  717.                - narrate "<&6><&l>Level:   <&e><yaml[<player.uuid>].read[classes.level]>"
  718.                - narrate "<&6><&l>Xp:      <&e><yaml[<player.uuid>].read[classes.xp]>/<el@10000.*[<yaml[<player.uuid>].read[classes.level]>]>"
  719.                - narrate "<&8>---------"
  720.                - narrate "<&6><&l>Subclass: <&e><yaml[<player.uuid>].read[classes.subclass]>"
  721.                - narrate "<&6><&l>Level:    <&e><yaml[<player.uuid>].read[classes.sublevel]>"
  722.                - narrate "<&6><&l>Xp:       <&e><yaml[<player.uuid>].read[classes.subxp]>/<el@10000.*[<yaml[<player.uuid>].read[classes.sublevel]>]>"
  723.                - narrate "<&8>-------------------"
  724.                - stop
  725.            - case stats:
  726.                - define class:<yaml[<player.uuid>].read[classes.class]>
  727.                - define level:<yaml[<player.uuid>].read[classes.level]>
  728.                - if <[class]> == Default:
  729.                    - narrate "<&c>You have no class"
  730.                    - stop
  731.                - narrate " "
  732.                - narrate "<&8>-------------------"
  733.                - narrate "<&a><&l>  - Class Stats -"
  734.                - narrate "<&8>-------------------"
  735.                - foreach <yaml[class_config].list_keys[<[class]>.buffs]||null> as:stat:
  736.                    - define val:<yaml[class_config].read[<[class]>.buffs.<[stat]>].*[<[level]>]>
  737.                    - choose <[stat]>:
  738.                        - case Health:
  739.                            - narrate "<&e>Increased <&6>health<&e> - <[val]>"
  740.                        - case Mana:
  741.                            - narrate "<&e>Increased <&6>mana<&e> - <[val]>"
  742.                        - case Armor:
  743.                            - narrate "<&e>Increased <&6>armor<&e> - <[val]>"
  744.                        - case Damage:
  745.                            - narrate "<&e>Increased <&6>damage<&e> - <[val]>%"
  746.                         - case MagicDamage:
  747.                            - narrate "<&e>Increased <&6>magic damage<&e> - <[val]>%"
  748.                         - case SwordDamage:
  749.                            - narrate "<&e>Increased <&6>sword damage<&e> - <[val]>%"
  750.                         - case AxeDamage:
  751.                            - narrate "<&e>Increased <&6>axe damage<&e> - <[val]>%"
  752.                         - case BowDamage:
  753.                            - narrate "<&e>Increased <&6>bow damage<&e> - <[val]>%"
  754.                         - case LongRangeDamage:
  755.                            - narrate "<&e>Increased <&6>long range damage<&e> - <[val]>%"
  756.                         - case Critical:
  757.                            - narrate "<&e>Increased <&6>critical<&e> chance - <[val]>%"
  758.                         - case Poison:
  759.                            - narrate "<&e>Increased <&6>chance to poison<&e> - <[val]>%"
  760.                         - case Bleed:
  761.                            - narrate "<&e>Increased <&6>chance to bleed<&e> - <[val]>%"
  762.                         - case Backstab:
  763.                            - narrate "<&e>Increased <&6>backstab damage<&e> - <[val]>%"
  764.                         - case Speed:
  765.                            - narrate "<&e>Increased <&6>speed<&e> - <[val]>"
  766.                         - case Dodge:
  767.                            - narrate "<&e>Increased <&6>dodge<&e> - <[val]>%"
  768.                         - case Parry:
  769.                            - narrate "<&e>Increased <&6>parry<&e> - <[val]>%"
  770.                         - case Lifesteal
  771.                             - narrate "<&e>Increased <&6>lifesteal<&e> - <[val]>%"
  772.                         - case Luck
  773.                             - narrate "<&e>Increased <&6>luck<&e> - <[val]>"
  774.                         - case Regen:
  775.                            - narrate "<&e>Increased <&6>regen<&e> - <[val]>%"
  776.                         - case HpRegen:
  777.                            - narrate "<&e>Increased <&6>health regen<&e> - <[val]>%"
  778.                         - case ManaRegen:
  779.                            - narrate "<&e>Increased <&6>mana regen<&e> - <[val]>%"
  780.                         - case RegenAura:
  781.                            - narrate "<&e>Increased <&6>regen<&e> of allies - <[val]>%"
  782.                         - case HpRegenAura:
  783.                            - narrate "<&e>Increased <&6>health regen<&e> of allies - <[val]>%"
  784.                         - case ManaRegenAura:
  785.                            - narrate "<&e>Increases <&6>mana regen<&e> of allies - <[val]>%"
  786.                         - case Hover:
  787.                            - narrate "<&e>Can hover"
  788.                         - case UnderwaterBreathing:
  789.                            - narrate "<&e>Can breathe underwater"
  790.                 - narrate "<&8>-------------------"
  791.                 - stop
  792.             - case change:
  793.                 - if <yaml[class_config].list_keys[].contains[<[arg2].to_titlecase>]> && <yaml[<player.uuid>].read[classes.class]> != <[arg2].to_titlecase>:
  794.                    - narrate "<&e>You change to <[arg2].to_titlecase>"
  795.                     - if <yaml[<player.uuid>].read[classes.subclass]> != Default:
  796.                        - run instantly function_ClearSubclassBuffs
  797.                         - define subclass:Default
  798.                         - define last_subclass:<yaml[<player.uuid>].read[classes.subclass]>
  799.                        - define sublevel:1
  800.                         - define last_sublevel:<yaml[<player.uuid>].read[classes.sublevel]||1>
  801.                        - define subxp:<yaml[<player.uuid>].read[classes.<[subclass]>_xp]||0>
  802.                        - define last_subxp:<yaml[<player.uuid>].read[classes.<[last_subclass]>_xp]||0>
  803.                        - yaml id:<player.uuid> set classes.subclass:<[subclass]>
  804.                        - yaml id:<player.uuid> set classes.last_subclass:<[last_subclass]>
  805.                        - yaml id:<player.uuid> set classes.sublevel:<[sublevel]>
  806.                        - yaml id:<player.uuid> set classes.last_sublevel:<[last_sublevel]>
  807.                        - yaml id:<player.uuid> set classes.subxp:<[subxp]>
  808.                        - yaml id:<player.uuid> set classes.last_subxp:<[last_subxp]>
  809.                        - yaml id:<player.uuid> set classes.<[last_subclass]>_level:<[last_sublevel]>
  810.                        - yaml id:<player.uuid> set classes.<[last_subclass]>_xp:<[last_subxp]>
  811.                     - if <yaml[<player.uuid>].read[classes.class]> != default
  812.                         - run instantly function_ClearClassBuffs
  813.                     - define class:<[arg2].to_titlecase>
  814.                    - define last_class:<yaml[<player.uuid>].read[classes.class]>
  815.                    - define level:<yaml[<player.uuid>].read[classes.<[class]>_level]||1>
  816.                    - define last_level:<yaml[<player.uuid>].read[classes.level]||1>
  817.                    - define xp:<yaml[<player.uuid>].read[classes.<[class]>_xp]||0>
  818.                    - define last_xp:<yaml[<player.uuid>].read[classes.<[last_class]>_xp]||0>
  819.                    - define class_buffs:<yaml[class_config].list_keys[<[class]>.buffs]>
  820.                    - yaml id:<player.uuid> set classes.class:<[class]>
  821.                    - yaml id:<player.uuid> set classes.last_class:<[last_class]>
  822.                    - yaml id:<player.uuid> set classes.level:<[level]>
  823.                    - yaml id:<player.uuid> set classes.last_level:<[last_level]>
  824.                    - yaml id:<player.uuid> set classes.xp:<[xp]>
  825.                    - yaml id:<player.uuid> set classes.last_xp:<[last_xp]>
  826.                    - yaml id:<player.uuid> set classes.<[last_class]>_level:<[last_level]>
  827.                    - yaml id:<player.uuid> set classes.<[last_class]>_xp:<[last_xp]>
  828.                    - run instantly function_updateclassbuffs
  829.                     - yaml id:<player.uuid> savefile:../dData/players/<player.uuid>.yml
  830.                     - stop
  831.  
  832.                 - else if <yaml[class_config].list_keys[<yaml[<player.uuid>].read[classes.class]>.subclasses].contains[<[arg2].to_titlecase>]||false> && <yaml[<player.uuid>].read[classes.subclass]> != <[arg2].to_titlecase>:
  833.                    - narrate "<&e>You change to <[arg2].to_titlecase>"
  834.                     - if <yaml[<player.uuid>].read[classes.subclass]> != Default:
  835.                        - run instantly function_ClearSubclassBuffs
  836.                         - yaml id:<player.uuid> set classes.abilities:!
  837.                     - define class:<yaml[<player.uuid>].read[classes.class]>
  838.                    - define subclass:<[arg2].to_titlecase>
  839.                    - define last_subclass:<yaml[<player.uuid>].read[classes.subclass]>
  840.                    - define sublevel:<yaml[<player.uuid>].read[classes.<[subclass]>_level]||1>
  841.                    - define last_sublevel:<yaml[<player.uuid>].read[classes.sublevel]||1>
  842.                    - define subxp:<yaml[<player.uuid>].read[classes.<[subclass]>_xp]||0>
  843.                    - define last_subxp:<yaml[<player.uuid>].read[classes.<[last_subclass]>_xp]||0>
  844.                    - define subclass_buffs:<yaml[class_config].list_keys[<[class]>.subclasses.<[subclass]>.buffs]>
  845.                    - flag player ability:0
  846.                     - yaml id:<player.uuid> set classes.subclass:<[subclass]>
  847.                    - yaml id:<player.uuid> set classes.last_subclass:<[last_subclass]>
  848.                    - yaml id:<player.uuid> set classes.sublevel:<[sublevel]>
  849.                    - yaml id:<player.uuid> set classes.last_sublevel:<[last_sublevel]>
  850.                    - yaml id:<player.uuid> set classes.subxp:<[subxp]>
  851.                    - yaml id:<player.uuid> set classes.last_subxp:<[last_subxp]>
  852.                    - yaml id:<player.uuid> set classes.<[last_subclass]>_level:<[last_sublevel]>
  853.                    - yaml id:<player.uuid> set classes.<[last_subclass]>_xp:<[last_subxp]>
  854.                    #- yaml id:<player.uuid> set classes.abilities:<yaml[class_config].read[<[class]>.subclasses.<[subclass]>.abilities]>
  855.                     - run instantly function_UpdateSubclassBuffs
  856.                     - yaml id:<player.uuid> savefile:../dData/players/<player.uuid>.yml
  857.                     - stop
  858.                 - narrate "<&c>You cannot change class to <[arg2].to_titlecase>"
  859.         - narrate "<&c>Invalid class command"
  860.  
  861. command_Subclass:
  862.     type: command
  863.     name: subclass
  864.     usage: /subclass
  865.     script:
  866.        - define arg1:<context.args.[1]||null>
  867.        - define arg2:<context.args.[2]||null>
  868.         - foreach <yaml[class_config].list_keys[]> as:class:
  869.             - if <yaml[class_config].list_keys[<[class]>.subclasses].contains[<[arg1].to_titlecase>]||false>:
  870.                - narrate " "
  871.                 - narrate "<&8>-------------------"
  872.                 - narrate "<&a><&l>    - <[arg1].to_titlecase> -"
  873.                 - narrate "<&8>-------------------"
  874.                 - foreach <yaml[class_config].list_keys[<[class]>.subclasses.<[arg1].to_titlecase>.buffs]> as:buff:
  875.                    - define val:<yaml[class_config].read[<[class]>.subclasses.<[arg1].to_titlecase>.buffs.<[buff]>]>
  876.                     - choose <[buff]>:
  877.                         - case Health:
  878.                            - narrate "<&e>Increases health by up to <[val].*[40]>"
  879.                         - case Mana:
  880.                            - narrate "<&e>Increases mana by up to <[val].*[40]>"
  881.                         - case Armor:
  882.                            - narrate "<&e>Increases armor by up to <[val].*[40]>"
  883.                         - case Damage:
  884.                            - narrate "<&e>Increases damage by up to <[val].*[40]>%"
  885.                         - case MagicDamage:
  886.                            - narrate "<&e>Increases magic damage by up to <[val].*[40]>%"
  887.                         - case SwordDamage:
  888.                            - narrate "<&e>Increases sword damage by up to <[val].*[40]>%"
  889.                         - case AxeDamage:
  890.                            - narrate "<&e>Increases axe damage by up to <[val].*[40]>%"
  891.                         - case BowDamage:
  892.                            - narrate "<&e>Increases bow damage by up to <[val].*[40]>%"
  893.                         - case LongRangeDamage:
  894.                            - narrate "<&e>Increases long range damage by up to <[val].*[40]>%"
  895.                         - case Critical:
  896.                            - narrate "<&e>Increases critical chance by up to <[val].*[40]>%"
  897.                         - case Poison:
  898.                            - narrate "<&e>Increases chance to poison by up to <[val].*[40]>%"
  899.                         - case Bleed:
  900.                            - narrate "<&e>Increases chance to bleed by up to <[val].*[40]>%"
  901.                         - case Backstab:
  902.                            - narrate "<&e>Increases backstab damage by up to <[val].*[40]>%"
  903.                         - case Speed:
  904.                            - narrate "<&e>Increases speed by up to <[val].*[40]>"
  905.                         - case Dodge:
  906.                            - narrate "<&e>Increases dodge by up to <[val].*[40]>%"
  907.                         - case Parry:
  908.                            - narrate "<&e>Increases parry by up to <[val].*[40]>%"
  909.                         - case Lifesteal
  910.                             - narrate "<&e>Increases lifesteal by up to <[val].*[40]>%"
  911.                         - case Luck
  912.                             - narrate "<&e>Increases luck by up to <[val].*[40]>"
  913.                         - case Regen:
  914.                            - narrate "<&e>Increases regen by up to <[val].*[40]>%"
  915.                         - case HpRegen:
  916.                            - narrate "<&e>Increases health regen by up to <[val].*[40]>%"
  917.                         - case ManaRegen:
  918.                            - narrate "<&e>Increases mana regen by up to <[val].*[40]>%"
  919.                         - case RegenAura:
  920.                            - narrate "<&e>Increases regen of allies by up to <[val].*[40]>%"
  921.                         - case HpRegenAura:
  922.                            - narrate "<&e>Increases health regen of allies by up to <[val].*[40]>%"
  923.                         - case ManaRegenAura:
  924.                            - narrate "<&e>Increases mana regen of allies by up to <[val].*[40]>%"
  925.                         - case Hover:
  926.                            - narrate "<&e>Allows you to hover"
  927.                         - case UnderwaterBreathing:
  928.                            - narrate "<&e>Allows you to breathe underwater"
  929.                 #- narrate "<&8>------<&a>Abilities<&8>-------"
  930.                 #- foreach <yaml[class_config].list_keys[<[class]>.subclasses.<[arg1].to_titlecase>.abilities]||<yaml[class_config].read[<[class]>.subclasses.<[arg1].to_titlecase>.abilities]>> as:ability:
  931.                 #    - narrate "<&6><[ability]>"
  932.                 #    - narrate "<&8>-------------------"
  933.                 #    - narrate "<&e>Use /ability (name) for more info"
  934.                 - stop
  935.         - choose <[arg1]>:
  936.             - case null:
  937.                - narrate " "
  938.                 - narrate "<&8>-------------------"
  939.                 - narrate "<&a><&l>- Subclass Commands -"
  940.                 - narrate "<&8>-------------------"
  941.                 - narrate "<&e>/subclass<&8>- <&7>Subclass commands"
  942.                 - narrate "<&e>/subclass help<&8>- <&7>Explains subclasses"
  943.                 - narrate "<&e>/subclass list <&8>- <&7>Displays a list of subclasses"
  944.                 - narrate "<&e>/subclass (name) <&8>- <&7>Gives info on a subclass"
  945.                 - narrate "<&e>/subclass change (name) <&8>- <&7>Changes subclass"
  946.                 - narrate "<&e>/subclass info <&8>- <&7>Gives info on your current subclass"
  947.                 - narrate "<&e>/subclass stats <&8>- <&7>Displays subclass stats"
  948.                 - narrate "<&e>/stats <&8>- <&7>Displays all stats"
  949.                 - narrate "<&8>-------------------"
  950.                 - stop
  951.             - case help:
  952.                - narrate " "
  953.                 - narrate "<&e>- Subclasses give you stats that increase as you level"
  954.                 - narrate "<&e>- Gain experience from mob kills"
  955.                 - stop
  956.             - case list:
  957.                - narrate " "
  958.                 - narrate "<&8>-------------------"
  959.                 - narrate "<&a><&l>  - Subclasses -"
  960.                 - narrate "<&8>-------------------"
  961.                 - foreach <yaml[class_config].list_keys[]> as:class:
  962.                    - narrate "<&a><&l><[class]>"
  963.                     - foreach <yaml[class_config].list_keys[<[class]>.subclasses]> as:subclass:
  964.                        - narrate "  <&6><[subclass]>"
  965.                 - narrate "<&8>-------------------"
  966.                 - narrate "<&e>Type /class (name) to view more info on a class"
  967.                 - narrate "<&e>Type /subclass (name) to view more info on a subclass"
  968.                 - stop
  969.             - case info:
  970.                - narrate " "
  971.                 - narrate "<&8>-------------------"
  972.                 - narrate "<&a><&l>  - Class Info -"
  973.                 - narrate "<&8>-------------------"
  974.                 - narrate "<&6><&l>class: <&e><yaml[<player.uuid>].read[classes.class]>"
  975.                - narrate "<&6><&l>Level: <&e><yaml[<player.uuid>].read[classes.level]>"
  976.                - narrate "<&6><&l>Xp:   <&e><yaml[<player.uuid>].read[classes.xp]>/<el@10000.*[<yaml[<player.uuid>].read[classes.level]>]>"
  977.                - narrate "<&8>---------"
  978.                - narrate "<&6><&l>Subclass: <&e><yaml[<player.uuid>].read[classes.subclass]>"
  979.                - narrate "<&6><&l>Level:  <&e><yaml[<player.uuid>].read[classes.sublevel]>"
  980.                - narrate "<&6><&l>Xp:     <&e><yaml[<player.uuid>].read[classes.subxp]>/<el@10000.*[<yaml[<player.uuid>].read[classes.sublevel]>]>"
  981.                - narrate "<&8>-------------------"
  982.                - stop
  983.            - case stats:
  984.                - define class:<yaml[<player.uuid>].read[classes.class]>
  985.                - define subclass:<yaml[<player.uuid>].read[classes.subclass]>
  986.                - define sublevel:<yaml[<player.uuid>].read[classes.sublevel]>
  987.                - if <[subclass]> == Default:
  988.                    - narrate "<&c>You have no subclass"
  989.                    - stop
  990.                - narrate " "
  991.                - narrate "<&8>-------------------"
  992.                - narrate "<&a><&l> - Subclass Stats -"
  993.                - narrate "<&8>-------------------"
  994.                - foreach <yaml[class_config].list_keys[<[class]>.subclasses.<[subclass]>.buffs]> as:stat:
  995.                    - define val:<yaml[class_config].read[<[class]>.subclasses.<[subclass]>.buffs.<[stat]>].*[<[sublevel]>]>
  996.                    - choose <[stat]>:
  997.                        - case Health:
  998.                            - narrate "<&e>Increased <&6>health<&e> - <[val]>"
  999.                        - case Mana:
  1000.                            - narrate "<&e>Increased <&6>mana<&e> - <[val]>"
  1001.                        - case Armor:
  1002.                            - narrate "<&e>Increased <&6>armor<&e> - <[val]>"
  1003.                        - case Damage:
  1004.                            - narrate "<&e>Increased <&6>damage<&e> - <[val]>%"
  1005.                         - case MagicDamage:
  1006.                            - narrate "<&e>Increased <&6>magic damage<&e> - <[val]>%"
  1007.                         - case SwordDamage:
  1008.                            - narrate "<&e>Increased <&6>sword damage<&e> - <[val]>%"
  1009.                         - case AxeDamage:
  1010.                            - narrate "<&e>Increased <&6>axe damage<&e> - <[val]>%"
  1011.                         - case BowDamage:
  1012.                            - narrate "<&e>Increased <&6>bow damage<&e> - <[val]>%"
  1013.                         - case LongRangeDamage:
  1014.                            - narrate "<&e>Increased <&6>long range damage<&e> - <[val]>%"
  1015.                         - case Critical:
  1016.                            - narrate "<&e>Increased <&6>critical<&e> chance - <[val]>%"
  1017.                         - case Poison:
  1018.                            - narrate "<&e>Increased <&6>chance to poison<&e> - <[val]>%"
  1019.                         - case Bleed:
  1020.                            - narrate "<&e>Increased <&6>chance to bleed<&e> - <[val]>%"
  1021.                         - case Backstab:
  1022.                            - narrate "<&e>Increased <&6>backstab damage<&e> - <[val]>%"
  1023.                         - case Speed:
  1024.                            - narrate "<&e>Increased <&6>speed<&e> - <[val]>"
  1025.                         - case Dodge:
  1026.                            - narrate "<&e>Increased <&6>dodge<&e> - <[val]>%"
  1027.                         - case Parry:
  1028.                            - narrate "<&e>Increased <&6>parry<&e> - <[val]>%"
  1029.                         - case Lifesteal
  1030.                             - narrate "<&e>Increased <&6>lifesteal<&e> - <[val]>%"
  1031.                         - case Luck
  1032.                             - narrate "<&e>Increased <&6>luck<&e> - <[val]>"
  1033.                         - case Regen:
  1034.                            - narrate "<&e>Increased <&6>regen<&e> - <[val]>%"
  1035.                         - case HpRegen:
  1036.                            - narrate "<&e>Increased <&6>health regen<&e> - <[val]>%"
  1037.                         - case ManaRegen:
  1038.                            - narrate "<&e>Increased <&6>mana regen<&e> - <[val]>%"
  1039.                         - case RegenAura:
  1040.                            - narrate "<&e>Increased <&6>regen<&e> of allies - <[val]>%"
  1041.                         - case HpRegenAura:
  1042.                            - narrate "<&e>Increased <&6>health regen<&e> of allies - <[val]>%"
  1043.                         - case ManaRegenAura:
  1044.                            - narrate "<&e>Increases <&6>mana regen<&e> of allies - <[val]>%"
  1045.                         - case Hover:
  1046.                            - narrate "<&e>Can hover"
  1047.                         - case UnderwaterBreathing:
  1048.                            - narrate "<&e>Can breathe underwater"
  1049.                 - narrate "<&8>-------------------"
  1050.                 - stop
  1051.             - case change:
  1052.                 - if <yaml[class_config].list_keys[<yaml[<player.uuid>].read[classes.class]>.subclasses].contains[<[arg2].to_titlecase>]||false> && <yaml[<player.uuid>].read[classes.subclass]> != <[arg2].to_titlecase>:
  1053.                    - narrate "<&e>You change to <[arg2].to_titlecase>"
  1054.                     - if <yaml[<player.uuid>].read[classes.subclass]> != Default:
  1055.                        - run instantly function_ClearSubclassBuffs
  1056.                     - define class:<yaml[<player.uuid>].read[classes.class]>
  1057.                    - define subclass:<[arg2].to_titlecase>
  1058.                    - define last_subclass:<yaml[<player.uuid>].read[classes.subclass]>
  1059.                    - define sublevel:<yaml[<player.uuid>].read[classes.<[subclass]>_level]||1>
  1060.                    - define last_sublevel:<yaml[<player.uuid>].read[classes.sublevel]||1>
  1061.                    - define subxp:<yaml[<player.uuid>].read[classes.<[subclass]>_xp]||0>
  1062.                    - define last_subxp:<yaml[<player.uuid>].read[classes.<[last_subclass]>_xp]||0>
  1063.                    - define subclass_buffs:<yaml[class_config].list_keys[<[class]>.subclasses.<[subclass]>.buffs]>
  1064.                    - flag player ability:0
  1065.                     - yaml id:<player.uuid> set classes.subclass:<[subclass]>
  1066.                    - yaml id:<player.uuid> set classes.last_subclass:<[last_subclass]>
  1067.                    - yaml id:<player.uuid> set classes.sublevel:<[sublevel]>
  1068.                    - yaml id:<player.uuid> set classes.last_sublevel:<[last_sublevel]>
  1069.                    - yaml id:<player.uuid> set classes.subxp:<[subxp]>
  1070.                    - yaml id:<player.uuid> set classes.last_subxp:<[last_subxp]>
  1071.                    - yaml id:<player.uuid> set classes.<[last_subclass]>_level:<[last_sublevel]>
  1072.                    - yaml id:<player.uuid> set classes.<[last_subclass]>_xp:<[last_subxp]>
  1073.                    #- yaml id:<player.uuid> set classes.abilities:<yaml[class_config].read[<[class]>.subclasses.<[subclass]>.abilities]>
  1074.                     - run instantly function_UpdateSubclassBuffs
  1075.                     - yaml id:<player.uuid> savefile:../dData/players/<player.uuid>.yml
  1076.                     - stop
  1077.                 - narrate "<&c>You cannot change subclass to <[arg2].to_titlecase>"
  1078.                 - stop
  1079.         - narrate "<&c>Invalid subclass command"
  1080.  
  1081. command_Stats:
  1082.     type: command
  1083.     name: stats
  1084.     usage: /stats (name/help)
  1085.     script:
  1086.        - define stats:<yaml[<player.uuid>].list_keys[buffs]||null>
  1087.         - choose <context.args.[1]||null>:
  1088.             - case help:
  1089.                - narrate " "
  1090.                 - narrate "<&8>-------------------"
  1091.                 - narrate "<&a><&l>  - Stats Help -"
  1092.                 - narrate "<&8>-------------------"
  1093.                 - narrate "<&e>- Stats increase attributes of your character or give you unique abilities"
  1094.                 - narrate "<&e>/stats help<&8>- <&7>Explains stats"
  1095.                 - narrate "<&e>/stats<&8> - <&7>Displays info on your current stats"
  1096.                 - narrate "<&e>/stats (name) <&8>- <&7>Displays info on a stat"
  1097.                 - stop
  1098.  
  1099.             - case null:
  1100.                 - if <[stats]> == null:
  1101.                    - narrate "<&c>You have no stats"
  1102.                     - stop
  1103.  
  1104.                 - narrate " "
  1105.                 - narrate "<&8>-------------------"
  1106.                 - narrate "<&a><&l>  - Stats -"
  1107.                 - narrate "<&8>-------------------"
  1108.                 - foreach <[stats]> as:stat:
  1109.                    - define val:<yaml[<player.uuid>].read[buffs.<[stat]>]>
  1110.                     - choose <[stat]>:
  1111.                         - case Health:
  1112.                            - narrate "<&e>Increased <&6>health<&e> - <[val]>"
  1113.                         - case Mana:
  1114.                            - narrate "<&e>Increased <&6>mana<&e> - <[val]>"
  1115.                         - case Armor:
  1116.                            - narrate "<&e>Increased <&6>armor<&e> - <[val]>"
  1117.                         - case Damage:
  1118.                            - narrate "<&e>Increased <&6>damage<&e> - <[val]>%"
  1119.                         - case MagicDamage:
  1120.                            - narrate "<&e>Increased <&6>magic damage<&e> - <[val]>%"
  1121.                         - case SwordDamage:
  1122.                            - narrate "<&e>Increased <&6>sword damage<&e> - <[val]>%"
  1123.                         - case AxeDamage:
  1124.                            - narrate "<&e>Increased <&6>axe damage<&e> - <[val]>%"
  1125.                         - case BowDamage:
  1126.                            - narrate "<&e>Increased <&6>bow damage<&e> - <[val]>%"
  1127.                         - case LongRangeDamage:
  1128.                            - narrate "<&e>Increased <&6>long range damage<&e> - <[val]>%"
  1129.                         - case Critical:
  1130.                            - narrate "<&e>Increased <&6>critical<&e> chance - <[val]>%"
  1131.                         - case Poison:
  1132.                            - narrate "<&e>Increased <&6>chance to poison<&e> - <[val]>%"
  1133.                         - case Bleed:
  1134.                            - narrate "<&e>Increased <&6>chance to bleed<&e> - <[val]>%"
  1135.                         - case Backstab:
  1136.                            - narrate "<&e>Increased <&6>backstab damage<&e> - <[val]>%"
  1137.                         - case Speed:
  1138.                            - narrate "<&e>Increased <&6>speed<&e> - <[val]>"
  1139.                         - case Dodge:
  1140.                            - narrate "<&e>Increased <&6>dodge<&e> - <[val]>%"
  1141.                         - case Parry:
  1142.                            - narrate "<&e>Increased <&6>parry<&e> - <[val]>%"
  1143.                         - case Lifesteal
  1144.                             - narrate "<&e>Increased <&6>lifesteal<&e> - <[val]>%"
  1145.                         - case Luck
  1146.                             - narrate "<&e>Increased <&6>luck<&e> - <[val]>"
  1147.                         - case Regen:
  1148.                            - narrate "<&e>Increased <&6>regen<&e> - <[val]>%"
  1149.                         - case HpRegen:
  1150.                            - narrate "<&e>Increased <&6>health regen<&e> - <[val]>%"
  1151.                         - case ManaRegen:
  1152.                            - narrate "<&e>Increased <&6>mana regen<&e> - <[val]>%"
  1153.                         - case RegenAura:
  1154.                            - narrate "<&e>Increased <&6>regen<&e> of allies - <[val]>%"
  1155.                         - case HpRegenAura:
  1156.                            - narrate "<&e>Increased <&6>health regen<&e> of allies - <[val]>%"
  1157.                         - case ManaRegenAura:
  1158.                            - narrate "<&e>Increases <&6>mana regen<&e> of allies - <[val]>%"
  1159.                         - case Hover:
  1160.                            - narrate "<&e>Can hover by sneaking"
  1161.                         - case UnderwaterBreathing:
  1162.                            - narrate "<&e>Can breathe underwater"
  1163.                 - stop
  1164.  
  1165.         - choose <context.args.[1]>:
  1166.             - case Health:
  1167.                - narrate "<&e>Increases health"
  1168.             - case Mana:
  1169.                - narrate "<&e>Increases mana"
  1170.             - case Armor:
  1171.                - narrate "<&e>Increases armor"
  1172.             - case Damage:
  1173.                - narrate "<&e>Increases damage by a percentage"
  1174.             - case MagicDamage:
  1175.                - narrate "Increases magic damage by a percentage"
  1176.             - case SwordDamage:
  1177.                - narrate "<&e>Increases sword damage by a percentage"
  1178.             - case AxeDamage:
  1179.                - narrate "<&e>Increases axe damage by a percentage"
  1180.             - case BowDamage:
  1181.                - narrate "<&e>Increases bow damage by a percentage"
  1182.             - case LongRangeDamage:
  1183.                - narrate "<&e>Increases long range damage by a percentage"
  1184.             - case Critical:
  1185.                - narrate "<&e>Increases critical chance"
  1186.             - case Poison:
  1187.                - narrate "<&e>Increases chance to poison"
  1188.             - case Bleed:
  1189.                - narrate "<&e>Increases chance to bleed"
  1190.             - case Backstab:
  1191.                - narrate "<&e>Increases backstab damage by a percentage"
  1192.             - case Speed:
  1193.                - narrate "<&e>Increases speed"
  1194.             - case Dodge:
  1195.                - narrate "<&e>Increases dodge chance"
  1196.             - case Parry:
  1197.                - narrate "<&e>Increases parry chance"
  1198.             - case Lifesteal
  1199.                 - narrate "<&e>Increases lifesteal by a percentage"
  1200.             - case Luck
  1201.                 - narrate "<&e>Increases luck"
  1202.             - case Regen:
  1203.                - narrate "<&e>Increases regen by a percentage"
  1204.             - case HpRegen:
  1205.                - narrate "<&e>Increases health regen by a percentage"
  1206.             - case ManaRegen:
  1207.                - narrate "<&e>Increases mana regen by a percentage"
  1208.             - case RegenAura:
  1209.                - narrate "<&e>Increases regen of allies by a percentage"
  1210.             - case HpRegenAura:
  1211.                - narrate "<&e>Increases health regen of allies by a percentage"
  1212.             - case ManaRegenAura:
  1213.                - narrate "<&e>Increases mana regen of allies by a percentage"
  1214.             - case Hover:
  1215.                - narrate "<&e>Allows you to hover"
  1216.             - case UnderwaterBreathing:
  1217.                - narrate "<&e>Allows you to breathe underwater"
  1218.         #- stop
  1219.         - narrate "<&c>Invalid stat command"
  1220.  
  1221.  
  1222. command_Ability:
  1223.     type: command
  1224.     name: ability
  1225.     usage: /ability (name/help)
  1226.     script:
  1227.         - if <context.args.[1]||help> == help:
  1228.            - narrate "<&e>- Left click with a melee weapon to switch melee ability"
  1229.             - narrate "<&e>- Left click with a magic weapon to switch magic ability"
  1230.             - narrate "<&e>- Right click with a bow to to switch ranged ability"
  1231.             - narrate "<&e>- Opposite click to use selected ability"
  1232.             - narrate "<&e>/ability (name) to view ability info"
  1233.             - stop
  1234.  
  1235.         - define "ability:<context.raw_args.replace[ ].with[]>"
  1236.         - define name:<script[data_<[ability]>].yaml_key[name]||null>
  1237.        - define description:<script[data_<[ability]>].yaml_key[description]||null>
  1238.        - define cooldown:<script[data_<[ability]>].yaml_key[cooldown]||null>
  1239.        - define duration:<script[data_<[ability]>].yaml_key[duration]||null>
  1240.        - define mana:<script[data_<[ability]>].yaml_key[mana]||null>
  1241.         - if <[name]> != null:
  1242.            - narrate " "
  1243.             - narrate "<&8>-------------------"
  1244.             - narrate "<&a><&l>   - <[name]> -"
  1245.             - narrate "<&8>-------------------"
  1246.             - if <[cooldown]> != null:
  1247.                 - narrate "<&e>Cooldown: <[cooldown]>"
  1248.            - if <[duration]> != null:
  1249.                - narrate "<&e>Duration: <[duration]>"
  1250.            - if <[mana]> != null:
  1251.                - narrate "<&e>Mana: <[mana]>"
  1252.            - narrate "<&6>- <[description]>"
  1253.            - stop
  1254.        - narrate "<&c>Invalid ability"
  1255.  
  1256. command_Mana:
  1257.    type: command
  1258.    name: mana
  1259.    usage: /mana
  1260.    script:
  1261.        - narrate "<&1><&l><yaml[<player.uuid>].read[buffs.Mana]||0>"
  1262.        #- narrate <queue.time_ran>
  1263.  
  1264. # - HANDLERS
  1265. handler_init:
  1266.    type: world
  1267.    events:
  1268.        on server start:
  1269.        - if !<server.has_file[../dConfig/races/races.yml]>:
  1270.            - yaml id:race_config create
  1271.            - yaml id:race_config loadtext:<s@race_config.to_text>
  1272.            - yaml id:race_config "savefile:../dConfig/races/races.yml"
  1273.        - else:
  1274.            - yaml id:race_config load:../dConfig/races/races.yml
  1275.        - if !<server.has_file[../dConfig/classes/classes.yml]>:
  1276.            - yaml id:class_config create
  1277.            - yaml id:class_config loadtext:<s@class_config.to_text>
  1278.            - yaml id:class_config "savefile:../dConfig/classes/classes.yml"
  1279.        - else:
  1280.            - yaml id:class_config load:../dConfig/classes/classes.yml
  1281.  
  1282.        on player joins:
  1283.        - if !<server.has_file[../dData/players/<player.uuid>.yml]>:
  1284.            - yaml id:<player.uuid> create
  1285.            - yaml id:<player.uuid> loadtext:<s@player_data.to_text>
  1286.            - narrate "<&e>Use /race to pick a race!"
  1287.            - narrate "<&e>Use /class to pick a class!"
  1288.        - else:
  1289.            - yaml id:<player.uuid> "load:../dData/players/<player.uuid>.yml"
  1290.            - if <yaml[<player.uuid>].read[races.race]||Default> == Default:
  1291.                - narrate "<&e>Use /race to pick a race!"
  1292.            - if <yaml[<player.uuid>].read[classes.class]||Default> == Default:
  1293.                - narrate "<&e>Use /class to pick a class!"
  1294.            - if <yaml[<player.uuid>].list_keys[buffs]||null> != null:
  1295.                - run instantly function_resetplayer
  1296.        #- narrate <queue.time_ran>
  1297.  
  1298.        on player quits:
  1299.        - flag player ability:!
  1300.        - yaml id:<player.uuid> "savefile:../dData/players/<player.uuid>.yml"
  1301.        - yaml id:<player.uuid> unload
  1302.  
  1303.  
  1304. handler_buffs:
  1305.    type: world
  1306.    debug: true
  1307.    events:
  1308.        on entity damaged by player:
  1309.        - define buffs:<yaml[<player.uuid>].list_keys[buffs]||null>
  1310.        - if <[buffs]> == null:
  1311.            - determine <context.final_damage>
  1312.        - define modifier:0
  1313.        - define modifier:+:<yaml[<player.uuid>].read[buffs.Damage]||0>
  1314.        - if <player.item_in_hand.material.contains[sword]>:
  1315.            - define modifier:+:<yaml[<player.uuid>].read[buffs.SwordDamage]||0>
  1316.        - if <player.item_in_hand.material.contains[axe]>:
  1317.            - define modifier:+:<yaml[<player.uuid>].read[buffs.AxeDamage]||0>
  1318.        - if <player.item_in_hand.material.contains[bow]>:
  1319.            - define modifier:+:<yaml[<player.uuid>].read[buffs.BowDamage]||0>
  1320.            - if <player.location.distance[<context.entity.location>]> >= 50:
  1321.                - define modifier:+:<yaml[<player.uuid>].read[buffs.LongRangeDamage]||0>
  1322.        - if <[buffs].contains[AimedShot]>:
  1323.            - define modifier:+:<yaml[<player.uuid>].read[buffs.AimedShot]||0>
  1324.            - yaml id:<player.uuid> set buffs.AimedShot:!
  1325.        - if <[buffs].contains[Backstab]> && !<player.target.location.facing[<player>].degrees[120]>:
  1326.            - narrate "<&e>*Backstab*"
  1327.            - define modifier:+:1.5
  1328.        - if <[buffs].contains[AoE]>:
  1329.            - foreach <player.location.find.living_entities.within[4]>:
  1330.                - hurt <context.final_damage> <[value]> cause:<player>
  1331.        - if <[buffs].contains[Poison]>:
  1332.            - cast POISON duration:200 power:3 <context.entity>
  1333.        - if <[buffs].contains[Critical]>:
  1334.            - if <util.random.int[1].to[100]> <= <yaml[<player.uuid>].read[buffs.Critical]>:
  1335.                - narrate "<&e>*Critical*"
  1336.                - define modifier:*:1.5
  1337.        - if <[buffs].contains[Lifesteal]>:
  1338.            - heal <context.final_damage./[100].*[<yaml[<player.uuid>].read[buffs.Lifesteal]>]> <player>
  1339.        #- narrate <queue.time_ran>
  1340.        - determine <context.final_damage.+[<context.final_damage./[100].*[<[modifier]>]>]>
  1341.  
  1342.        on player damaged by entity:
  1343.        - define buffs:<yaml[<player.uuid>].read[buffs]||null>
  1344.        - if <[buffs]> == null:
  1345.            - determine <context.final_damage>
  1346.        - if <player.has_flag[hovering]>:
  1347.            - adjust <player> gravity:true
  1348.        - if <[buffs].contains[Parry]>:
  1349.            - if <util.random.int[1].to[100]> <= <yaml[<player.uuid>].read[buffs.Parry]||0>:
  1350.                - narrate "<&e>*Parried*"
  1351.                - determine cancelled
  1352.        - if <[buffs].contains[Dodge]>:
  1353.            - if <util.random.int[1].to[100]> <= <yaml[<player.uuid>].read[buffs.Dodge]||0>:
  1354.                - narrate "<&e>*Dodged*"
  1355.                - determine cancelled
  1356.        - if <[buffs].contains[Absorb]>:
  1357.            - narrate "<&e>*Absorbed*"
  1358.            - if <context.final_damage> >= <yaml[<player.uuid>].read[buffs.Absorb]||0>:
  1359.                - playeffect effect:end_rod at:<player.location> q:20
  1360.                - yaml id:<player.uuid> set "buffs.Absorb:!"
  1361.                - determine <context.final_damage.-[<yaml[<player.uuid>].read[buffs.Absorb]||0>]>
  1362.            - determine <context.final_damage.-[<context.final_damage./[100].*[<yaml[<player.uuid>].read[buffs.Absorb]>]||0>]>
  1363.        - if <[buffs].contains[BlockReflect]>:
  1364.            - if <player.is_blocking>:
  1365.                - hurt <context.damager> <context.final_damage./[100].*[<yaml[<player.uuid>].read[<[classes.sublevel]>]||0>]>
  1366.        - if <[buffs].contains[BladeMaster]>:
  1367.            - narrate "<&e>*Parried*"
  1368.            - determine cancelled
  1369.        #- narrate <queue.time_ran>
  1370.  
  1371.        on player starts sneaking:
  1372.        - if <yaml[<player.uuid>].list_keys[buffs].contains[Hover]||false>:
  1373.            - if <player.has_flag[hovering]>:
  1374.                - flag player no_fall_damage
  1375.                - flag player hovering:!
  1376.                - adjust <player> gravity:true
  1377.            - else:
  1378.                - flag player hovering
  1379.                - adjust <player> gravity:false
  1380.            #- narrate <queue.time_ran>
  1381.  
  1382.        on player damaged by fall:
  1383.        - if <player.has_flag[no_fall_damage]>:
  1384.            - flag player no_fall_damage:!
  1385.            - determine cancelled
  1386.            #- narrate <queue.time_ran>
  1387.  
  1388.        on player damaged by drowning:
  1389.        - if <yaml[<player.uuid>].list_keys[buffs].contains[UnderwaterBreathing]>:
  1390.            #- narrate <queue.time_ran>
  1391.            - determine cancelled
  1392.  
  1393.        on delta time secondly every:10:
  1394.        - foreach <server.list_online_players_flagged[Regen]> as:player:
  1395.            - heal <[player].health.max./[100].*[<[player].flag[Regen]>]> <[player]>
  1396.            #- if <yaml[<[player].uuid>].read[buffs].contains[Mana]>:
  1397.            #    - yaml id:<[player].uuid> set "buffs.Mana:+:<yaml[<[player].uuid>].read[buffs.mana]./[100].*[<[player].flag[Regen]>]>"
  1398.  
  1399.        - foreach <server.list_online_players_flagged[HpRegen]> as:player:
  1400.            - heal <[player].health.max./[100].*[<[player].flag[HpRegen]>]> <[player]>
  1401.  
  1402.        #- foreach <server.list_online_players_flagged[ManaRegen]> as:player:
  1403.        #    - if <yaml[<[player].uuid>].read[buffs].contains[mana]>:
  1404.        #        - yaml set "buffs.Mana:+:<yaml[<[player].uuid>].read[buffs.mana]./[100].*[<[player].flag[ManaRegen]>]>"
  1405.  
  1406.        - foreach <server.list_online_players_flagged[RegenAura]> as:player:
  1407.            - foreach <[player].location.find.players.within[10]> as:target:
  1408.                - heal <[target].health.max./[100].*[<[player].flag[Regen]>]> <[target]>
  1409.                #- if <yaml[<[target].uuid>].read[buffs].contains[Mana]>:
  1410.                #    - yaml id:<[target].uuid> set "buffs.Mana:+:<yaml[<[target].uuid>].read[buffs.mana]./[100].*[<[player].flag[Regen]>]>"
  1411.  
  1412.        - foreach <server.list_online_players_flagged[HpRegenAura]> as:player:
  1413.            - foreach <[player].location.find.players.within[10]> as:target:
  1414.                - heal <[target].health.max./[100].*[<[player].flag[Regen]>]> <[target]>
  1415.  
  1416.        - foreach <server.list_online_players_flagged[ManaRegenAura]> as:player:
  1417.            - define mod:<[player].flag[ManaRegen]>
  1418.            - foreach <[player].location.find.players.within[10]> as:target:
  1419.                #- if <yaml[<[target].uuid>].read[buffs].contains[mana]>:
  1420.                #    - yaml set "buffs.Mana:+:<yaml[<[target].uuid>].read[buffs.mana]./[100].*[<[mod]>]>"
  1421.        #- narrate <queue.time_ran>
  1422.  
  1423.        on player kills entity:
  1424.        - if !<yaml[spawned_entities].list_keys[].contains[<context.entity>]>:
  1425.            - define class:<yaml[<player.uuid>].read[classes.class]>
  1426.            - define subclass:<yaml[<player.uuid>].read[classes.subclass]>
  1427.            - define race:<yaml[<player.uuid>].read[races.race]>
  1428.            - define subrace:<yaml[<player.uuid>].read[races.subrace]>
  1429.  
  1430.            - if <[class]> != Default:
  1431.                - yaml id:<player.uuid> set classes.xp:+:<element[10].+[<yaml[<player.uuid>].read[classes.level]>]>
  1432.                - if <yaml[<player.uuid>].read[classes.xp]> >= <element[10000].*[<yaml[<player.uuid>].read[classes.level]>]>:
  1433.                    - run instantly function_ClassLevel
  1434.                    - yaml id:<player.uuid> savefile:../dData/players/<player.uuid>.yml
  1435.            - if <[subclass]> != Default:
  1436.                - yaml id:<player.uuid> set classes.subxp:+:<element[5].+[<yaml[<player.uuid>].read[classes.level]>]>
  1437.                - if <yaml[<player.uuid>].read[classes.subxp]> >= <element[10000].*[<yaml[<player.uuid>].read[classes.sublevel]>]>:
  1438.                    - run instantly function_SubclassLevel
  1439.                    - yaml id:<player.uuid> savefile:../dData/players/<player.uuid>.yml
  1440.            - if <[race]> != Default:
  1441.                - yaml id:<player.uuid> set races.xp:+:<element[10].+[<yaml[<player.uuid>].read[races.level]>]>
  1442.                - if <yaml[<player.uuid>].read[races.xp]> >= <element[10000].*[<yaml[<player.uuid>].read[races.level]>]>:
  1443.                    - run instantly function_RaceLevel
  1444.                    - yaml id:<player.uuid> savefile:../dData/players/<player.uuid>.yml
  1445.            - if <[subrace]> != Default:
  1446.                - yaml id:<player.uuid> set races.subxp:+:<element[5].+[<yaml[<player.uuid>].read[races.level]>]>
  1447.                - if <yaml[<player.uuid>].read[races.subxp]> >= <element[10000].*[<yaml[<player.uuid>].read[races.sublevel]>]>:
  1448.                    - run instantly function_SubraceLevel
  1449.                    - yaml id:<player.uuid> savefile:../dData/players/<player.uuid>.yml
  1450.        #- narrate "<queue.time_ran>"
  1451.        
  1452.  
  1453. handler_Saving:
  1454.    type: world
  1455.    events:
  1456.        on delta time secondly every:300:
  1457.        - foreach <server.list_online_players> as:player:
  1458.            - define location:<[player].location>
  1459.            - define last_location:<[player].flag[last_location]||<[location]>>
  1460.            - flag <[player]> last_location:<[location]>
  1461.            - if <yaml[<[player].uuid>].read[races.race]> != Default && <yaml[<[player].uuid>].read[races.subrace]> != Default:
  1462.                - if <[location].distance_squared[<[last_location]>]> >= 400:
  1463.                    - yaml id:<[player].uuid> set races.xp:+:<element[50].+[<yaml[<[player].uuid>].read[races.level]>]>
  1464.                    - if <yaml[<[player].uuid>].read[races.xp]> >= <element[10000].*[<yaml[<[player].uuid>].read[races.level]>]>:
  1465.                        - run instantly function_RaceLevel player:<[player]>
  1466.                    - yaml id:<[player].uuid> set races.subxp:+:<element[25].+[<yaml[<[player].uuid>].read[races.level]>]>
  1467.                    - if <yaml[<[player].uuid>].read[races.subxp]> >= <element[10000].*[<yaml[<[player].uuid>].read[races.sublevel]>]>:
  1468.                        - run instantly function_SubraceLevel player:<[player]>
  1469.            - yaml id:<[player].uuid> savefile:../dData/players/<[player].uuid>.yml
  1470.  
  1471.  
  1472. handler_Entities:
  1473.    type: world
  1474.    events:
  1475.        on server start:
  1476.        - yaml id:spawned_entities create
  1477.  
  1478.        on spawner spawns entity:
  1479.        - yaml id:spawned_entities set <context.entity>:true
  1480.  
  1481.        on entity death priority:-1:
  1482.        - if <yaml[spawned_entities].list_keys[].contains[<context.entity>]||false>:
  1483.            - yaml id:spawned_entities set <context.entity>:!
  1484.  
  1485.        on delta time secondly every:60:
  1486.        - foreach <yaml[spawned_entities].list_keys[]||null> as:entity:
  1487.            - if !<server.entity_is_spawned[<[entity]>]>:
  1488.                - yaml id:spawned_entities set <[entity]>:!
  1489. #handler_abilities:
  1490. #   type: world
  1491. #   events:
  1492. #       on player right clicks block:
  1493. #       - define target:<player.target>
  1494. #       - define is_spawned:<player.target.mcmmo.is_spawned_mob>
  1495. #        
  1496. #        - if <yaml[<player.uuid>].read[classes.subclass]||Default> != Default:
  1497. #            - if li@sword|axe contains <player.item_in_hand.material.name.after_last[_]>:
  1498. #                - define abilities:<yaml[<player.uuid>].read[classes.abilities]>
  1499. #                - flag player ability:++
  1500. #                - if <player.flag[ability]> > 1:
  1501. #                    - flag player ability:0
  1502. #                - define curr_ability <[abilities].get[<player.flag[ability]>]>
  1503. #                - if "<player.has_flag[cooldown_<yaml[<player.uuid>].read[classes.abilities].as_list.get[<player.flag[ability]>].replace[ ].with[]>]>":
  1504. #                    - actionbar "<&e><&l>-= <&c><&l><[curr_ability]> <&e><&l>=-"
  1505. #                - else:
  1506. #                    - actionbar "<&e><&l>-= <&a><&l><[curr_ability]> <&e><&l>=-"
  1507.  
  1508. #            - if <player.flag[ability]> > 0 && <yaml[<player.uuid>].read[classes.class]> == Archer && "!<player.has_flag[cooldown_<yaml[<player.uuid>].read[classes.abilities].as_list.get[<player.flag[ability]>].replace[ ].with[]>]>":
  1509. #                    - run instantly "ability_<yaml[<player.uuid>].read[classes.abilities].as_list.get[<player.flag[ability]>].replace[ ].with[]>"
  1510. #                    #- yaml set "classes.subxp:+:<element[5].*[<player.flag[ability]>]>" id:<player.uuid>
  1511. #                    - flag player ability:0
  1512.  
  1513. #        on player left clicks block:
  1514. #        - if <yaml[<player.uuid>].read[classes.subclass]||Default> != Default:
  1515. #            - if <player.item_in_hand.material.name> == bow && <yaml[<player.uuid>].read[classes.class]> == archer:
  1516. #                - define abilities:<yaml[<player.uuid>].read[classes.abilities]>
  1517. #                - flag player ability:++
  1518. #                - if <player.flag[ability]> > 1:
  1519. #                    - flag player ability:0
  1520. #                - define curr_ability <[abilities].get[<player.flag[ability]>]>
  1521. #                - if "<player.has_flag[cooldown_<yaml[<player.uuid>].read[classes.abilities].as_list.get[<player.flag[ability]>].replace[ ].with[]>]>":
  1522. #                    - actionbar "<&e><&l>-= <&c><&l><[curr_ability]> <&e><&l>=-"
  1523. #                - else:
  1524. #                    - actionbar "<&e><&l>-= <&a><&l><[curr_ability]> <&e><&l>=-"
  1525.            #- if <yaml[<player.uuid>].read[subclass_xp]> >= <el@10000.*[<yaml[<player.uuid>].read[class_level]>]>:
  1526.                #- run classes_SubLevel
  1527.  
  1528. #            - if <player.flag[ability]> > 0 && <yaml[<player.uuid>].read[classes.class]> != archer:
  1529. #                - define "curr_ability:<yaml[<player.uuid>].read[classes.abilities].as_list.get[<player.flag[ability]>].replace[ ].with[]>"
  1530. #                - if <yaml[<player.uuid>].read[buffs.Mana]||null> != null && <yaml[<player.uuid>].read[buffs.Mana]||0> >= <yaml[<[curr_ability]>].read[mana]||1>:
  1531. #                    - run instantly "ability_<yaml[<player.uuid>].read[classes.abilities].as_list.get[<player.flag[ability]>].replace[ ].with[]>"
  1532. #                - else if "!<player.has_flag[cooldown_<yaml[<player.uuid>].read[classes.abilities].as_list.get[<player.flag[ability]>].replace[ ].with[]>]>":
  1533. #                    - run instantly "ability_<yaml[<player.uuid>].read[classes.abilities].as_list.get[<player.flag[ability]>].replace[ ].with[]>"
  1534. #                #- yaml set "classes.subxp:+:<element[5].*[<player.flag[ability]>]>" id:<player.uuid>
  1535. #                - flag player ability:0
  1536.  
  1537.  
  1538. # - FUNCTIONS
  1539. function_ResetPlayer:
  1540.    type: task
  1541.    script:
  1542.        - foreach <yaml[<player.uuid>].list_keys[buffs]||null> as:buff:
  1543.            - define player_val:<yaml[<player.uuid>].read[buffs.<[buff]>]||0>
  1544.            - choose <[buff]>:
  1545.                - case Health:
  1546.                    - adjust <player> max_health:<player.health.max.-[<[player_val]>]>
  1547.                - case Armor:
  1548.                    - adjust <player> armor_bonus:<player.armor_bonus.-[<[player_val]>]>
  1549.                - case Speed:
  1550.                    - adjust <player> walk_speed:<player.walk_speed.-[<[player_val]>]>
  1551.                - case Hover:
  1552.                    - flag player Hover:!
  1553.                - case Regen:
  1554.                    - flag player Regen:!
  1555.                - case HpRegen:
  1556.                    - flag player HpRegen:!
  1557.                - case ManaRegen:
  1558.                    - flag player ManaRegen:!
  1559.                - case RegenAura:
  1560.                    - flag player RegenAura:!
  1561.                - case HpRegenAura:
  1562.                    - flag player HpRegenAura:!
  1563.                - case ManaRegenAura:
  1564.                    - flag player ManaRegenAura:!
  1565.        - yaml id:<player.uuid> set buffs:!
  1566.        - if <yaml[<player.uuid>].read[races.race]> != Default:
  1567.            - run instantly function_UpdateRaceBuffs
  1568.        - if <yaml[<player.uuid>].read[races.subrace]> != Default:
  1569.            - run instantly function_UpdateSubraceBuffs
  1570.        - if <yaml[<player.uuid>].read[classes.class]> != Default:
  1571.            - run instantly function_UpdateClassBuffs
  1572.        - if <yaml[<player.uuid>].read[classes.subclass]> != Default:
  1573.            - run instantly function_UpdateSubclassBuffs
  1574.  
  1575. function_ResetRace:
  1576.    type: task
  1577.    script:
  1578.        - if <yaml[<player.uuid>].read[races.race]> != Default:
  1579.            - run instantly function_ClearRaceBuffs
  1580.            - run instantly function_UpdateRaceBuffs
  1581.        - if <yaml[<player.uuid>].read[races.subrace]> != Default:
  1582.            - run instantly function_ClearSubraceBuffs
  1583.            - run instantly function_UpdateSubraceBuffs
  1584.        
  1585.  
  1586. function_ResetClass:
  1587.    type: task
  1588.    script:
  1589.        - if <yaml[<player.uuid>].read[classes.class]> != Default:
  1590.            - run instantly function_ClearClassBuffs
  1591.            - run instantly function_UpdateClassBuffs
  1592.        - if <yaml[<player.uuid>].read[classes.subclass]> != Default:
  1593.            - run instantly function_ClearSubclassBuffs
  1594.            - run instantly function_UpdateSubclassBuffs
  1595.  
  1596. function_ClearRaceBuffs:
  1597.    type: task
  1598.    script:
  1599.        - define race:<yaml[<player.uuid>].read[races.race]>
  1600.        - define level:<yaml[<player.uuid>].read[races.level]||1>
  1601.        - define race_buffs:<yaml[race_config].list_keys[<[race]>.buffs]>
  1602.        - foreach <[race_buffs]> as:buff:
  1603.            - define player_val:<yaml[<player.uuid>].read[buffs.<[buff]>]||0>
  1604.            - define config_val:<yaml[race_config].read[<[race]>.buffs.<[buff]>]>
  1605.            - choose <[buff]>:
  1606.                - case Health:
  1607.                    - adjust <player> max_health:<player.health.max.-[<[config_val].*[<[level]>]>]>
  1608.                - case Armor:
  1609.                    - adjust <player> armor_bonus:<player.armor_bonus.-[<[config_val].*[<[level]>]>]>
  1610.                - case Speed:
  1611.                    - adjust <player> walk_speed:<player.walk_speed.-[<[config_val].*[<[level]>]>]>
  1612.                - case Hover:
  1613.                    - flag player Hover:!
  1614.                - case UnderwaterBreathing:
  1615.                    - flag player UnderwaterBreathing:!
  1616.                - case Regen:
  1617.                    - if <[buff]> == 0:
  1618.                        - flag player Regen:!
  1619.                    - else:
  1620.                        - flag player Regen:<[player_val].-[<[config_val].*[<[level]>]>]>
  1621.                - case HpRegen:
  1622.                    - if <[buff]> == 0:
  1623.                        - flag player HpRegen:!
  1624.                    - else:
  1625.                        - flag player HpRegen:<[player_val].-[<[config_val].*[<[level]>]>]>
  1626.                - case ManaRegen:
  1627.                    - if <[buff]> == 0:
  1628.                        - flag player ManaRegen:!
  1629.                    - else:
  1630.                        - flag player ManaRegen:<[player_val].-[<[config_val].*[<[level]>]>]>
  1631.                - case RegenAura:
  1632.                    - if <[buff]> == 0:
  1633.                        - flag player RegenAura:!
  1634.                    - else:
  1635.                        - flag player RegenAura:<[player_val].-[<[config_val].*[<[level]>]>]>
  1636.                - case HpRegenAura:
  1637.                    - if <[buff]> == 0:
  1638.                        - flag player HpRegenAura:!
  1639.                    - else:
  1640.                        - flag player HpRegenAura:<[player_val].-[<[config_val].*[<[level]>]>]>
  1641.                - case ManaRegenAura:
  1642.                    - if <[buff]> == 0:
  1643.                        - flag player ManaRegenAura:!
  1644.                    - else:
  1645.                        - flag player ManaRegenAura:<[player_val].-[<[config_val].*[<[level]>]>]>
  1646.            - if <[player_val].-[<[config_val].*[<[level]>]>]> == 0:
  1647.                - yaml id:<player.uuid> set buffs.<[buff]>:!
  1648.            - else:
  1649.                - yaml id:<player.uuid> set buffs.<[buff]>:<[player_val].-[<[config_val].*[<[level]>]>]>
  1650.  
  1651. function_ClearSubraceBuffs:
  1652.    type: task
  1653.    script:
  1654.        - define race:<yaml[<player.uuid>].read[races.race]>
  1655.        - define subrace:<yaml[<player.uuid>].read[races.subrace]>
  1656.        - define sublevel:<yaml[<player.uuid>].read[races.sublevel]||1>
  1657.        - define subrace_buffs:<yaml[race_config].list_keys[<[race]>.subraces.<[subrace]>.buffs]>
  1658.        - foreach <[subrace_buffs]> as:buff:
  1659.            - define player_val:<yaml[<player.uuid>].read[buffs.<[buff]>]||0>
  1660.            - define config_val:<yaml[race_config].read[<[race]>.subraces.<[subrace]>.buffs.<[buff]>]>
  1661.            - choose <[buff]>:
  1662.                - case Health:
  1663.                    - adjust <player> max_health:<player.health.max.-[<[config_val].*[<[sublevel]>]>]>
  1664.                - case Armor:
  1665.                    - adjust <player> armor_bonus:<player.armor_bonus.-[<[config_val].*[<[sublevel]>]>]>
  1666.                - case Speed:
  1667.                    - adjust <player> walk_speed:<player.walk_speed.-[<[config_val].*[<[sublevel]>]>]>
  1668.                - case Hover:
  1669.                    - flag player Hover:!
  1670.                - case UnderwaterBreathing:
  1671.                    - flag player UnderwaterBreathing:!
  1672.                - case Regen:
  1673.                    - if <[buff]> == 0:
  1674.                        - flag player Regen:!
  1675.                    - else:
  1676.                        - flag player Regen:<[player_val].-[<[config_val].*[<[sublevel]>]>]>
  1677.                - case HpRegen:
  1678.                    - if <[buff]> == 0:
  1679.                        - flag player HpRegen:!
  1680.                    - else:
  1681.                        - flag player HpRegen:<[player_val].-[<[config_val].*[<[sublevel]>]>]>
  1682.                - case ManaRegen:
  1683.                    - if <[buff]> == 0:
  1684.                        - flag player ManaRegen:!
  1685.                    - else:
  1686.                        - flag player ManaRegen:<[player_val].-[<[config_val].*[<[sublevel]>]>]>
  1687.                - case RegenAura:
  1688.                    - if <[buff]> == 0:
  1689.                        - flag player RegenAura:!
  1690.                    - else:
  1691.                        - flag player RegenAura:<[player_val].-[<[config_val].*[<[sublevel]>]>]>
  1692.                - case HpRegenAura:
  1693.                    - if <[buff]> == 0:
  1694.                        - flag player HpRegenAura:!
  1695.                    - else:
  1696.                        - flag player HpRegenAura:<[player_val].-[<[config_val].*[<[sublevel]>]>]>
  1697.                - case ManaRegenAura:
  1698.                    - if <[buff]> == 0:
  1699.                        - flag player ManaRegenAura:!
  1700.                    - else:
  1701.                        - flag player ManaRegenAura:<[player_val].-[<[config_val].*[<[sublevel]>]>]>
  1702.            - if <[player_val].-[<[config_val].*[<[sublevel]>]>]> == 0:
  1703.                - yaml id:<player.uuid> set buffs.<[buff]>:!
  1704.            - else:
  1705.                - yaml id:<player.uuid> set buffs.<[buff]>:<[player_val].-[<[config_val].*[<[sublevel]>]>]>
  1706.  
  1707. function_UpdateRaceBuffs:
  1708.    type: task
  1709.    script:
  1710.        - define race:<yaml[<player.uuid>].read[races.race]>
  1711.        - define level:<yaml[<player.uuid>].read[races.level]||1>
  1712.        - define race_buffs:<yaml[race_config].list_keys[<[race]>.buffs]>
  1713.        - foreach <[race_buffs]> as:buff:
  1714.            - define player_val:<yaml[<player.uuid>].read[buffs.<[buff]>]||0>
  1715.            - define config_val:<yaml[race_config].read[<[race]>.buffs.<[buff]>]>
  1716.            - choose <[buff]>:
  1717.                - case Health:
  1718.                    - adjust <player> max_health:<player.health.max.+[<[config_val].*[<[level]>]>]>
  1719.                - case Armor:
  1720.                    - adjust <player> armor_bonus:<player.armor_bonus.+[<[config_val].*[<[level]>]>]>
  1721.                - case Speed:
  1722.                    - adjust <player> walk_speed:<player.walk_speed.+[<[config_val].*[<[level]>]>]>
  1723.                - case Hover:
  1724.                    - flag player Hover:1
  1725.                - case UnderwaterBreathing:
  1726.                    - flag player UnderwaterBreathing:1
  1727.                - case Regen:
  1728.                    - flag player Regen:<[player_val].+[<[config_val].*[<[level]>]>]>
  1729.                - case HpRegen:
  1730.                    - flag player HpRegen:<[player_val].+[<[config_val].*[<[level]>]>]>
  1731.                - case ManaRegen:
  1732.                    - flag player ManaRegen:<[player_val].+[<[config_val].*[<[level]>]>]>
  1733.                - case RegenAura:
  1734.                    - flag player RegenAura:<[player_val].+[<[config_val].*[<[level]>]>]>
  1735.                - case HpRegenAura:
  1736.                    - flag player HpRegenAura:<[player_val].+[<[config_val].*[<[level]>]>]>
  1737.                - case ManaRegenAura:
  1738.                    - flag player ManaRegenAura:<[player_val].+[<[config_val].*[<[level]>]>]>
  1739.            - yaml id:<player.uuid> set buffs.<[buff]>:<[player_val].+[<[config_val].*[<[level]>]>]>
  1740.  
  1741. function_UpdateSubraceBuffs:
  1742.    type: task
  1743.    script:
  1744.        - define race:<yaml[<player.uuid>].read[races.race]>
  1745.        - define subrace:<yaml[<player.uuid>].read[races.subrace]>
  1746.        - define sublevel:<yaml[<player.uuid>].read[races.sublevel]||1>
  1747.        - define subrace_buffs:<yaml[race_config].list_keys[<[race]>.subraces.<[subrace]>.buffs]>
  1748.        - foreach <[subrace_buffs]> as:buff:
  1749.            - define player_val:<yaml[<player.uuid>].read[buffs.<[buff]>]||0>
  1750.            - define config_val:<yaml[race_config].read[<[race]>.subraces.<[subrace]>.buffs.<[buff]>]>
  1751.            - choose <[buff]>:
  1752.                - case Health:
  1753.                    - adjust <player> max_health:<player.health.max.+[<[config_val].*[<[sublevel]>]>]>
  1754.                - case Armor:
  1755.                    - adjust <player> armor_bonus:<player.armor_bonus.+[<[config_val].*[<[sublevel]>]>]>
  1756.                - case Speed:
  1757.                    - adjust <player> walk_speed:<player.walk_speed.+[<[config_val].*[<[sublevel]>]>]>
  1758.                - case Hover:
  1759.                    - flag player Hover:1
  1760.                - case UnderwaterBreathing:
  1761.                    - flag player UnderwaterBreathing:1
  1762.                - case Regen:
  1763.                    - flag player Regen:<[player_val].+[<[config_val].*[<[sublevel]>]>]>
  1764.                - case HpRegen:
  1765.                    - flag player HpRegen:<[player_val].+[<[config_val].*[<[sublevel]>]>]>
  1766.                - case ManaRegen:
  1767.                    - flag player ManaRegen:<[player_val].+[<[config_val].*[<[sublevel]>]>]>
  1768.                - case RegenAura:
  1769.                    - flag player RegenAura:<[player_val].+[<[config_val].*[<[sublevel]>]>]>
  1770.                - case HpRegenAura:
  1771.                    - flag player HpRegenAura:<[player_val].+[<[config_val].*[<[sublevel]>]>]>
  1772.                - case ManaRegenAura:
  1773.                    - flag player ManaRegenAura:<[player_val].+[<[config_val].*[<[sublevel]>]>]>
  1774.            - yaml id:<player.uuid> set buffs.<[buff]>:<[player_val].+[<[config_val].*[<[sublevel]>]>]>
  1775.  
  1776. function_ClearClassBuffs:
  1777.    type: task
  1778.    script:
  1779.        - define class:<yaml[<player.uuid>].read[classes.class]>
  1780.        - define level:<yaml[<player.uuid>].read[classes.level]||1>
  1781.        - define class_buffs:<yaml[class_config].list_keys[<[class]>.buffs]>
  1782.        - foreach <[class_buffs]> as:buff:
  1783.            - define player_val:<yaml[<player.uuid>].read[buffs.<[buff]>]||0>
  1784.            - define config_val:<yaml[class_config].read[<[class]>.buffs.<[buff]>]>
  1785.            - choose <[buff]>:
  1786.                - case Health:
  1787.                    - adjust <player> max_health:<player.health.max.-[<[config_val].*[<[level]>]>]>
  1788.                - case Armor:
  1789.                    - adjust <player> armor_bonus:<player.armor_bonus.-[<[config_val].*[<[level]>]>]>
  1790.                - case Speed:
  1791.                    - adjust <player> walk_speed:<player.walk_speed.-[<[config_val].*[<[level]>]>]>
  1792.                - case Hover:
  1793.                    - flag player Hover:!
  1794.                - case UnderwaterBreathing:
  1795.                    - flag player UnderwaterBreathing:!
  1796.                - case Regen:
  1797.                    - if <[buff]> == 0:
  1798.                        - flag player Regen:!
  1799.                    - else:
  1800.                        - flag player Regen:<[player_val].-[<[config_val].*[<[level]>]>]>
  1801.                - case HpRegen:
  1802.                    - if <[buff]> == 0:
  1803.                        - flag player HpRegen:!
  1804.                    - else:
  1805.                        - flag player HpRegen:<[player_val].-[<[config_val].*[<[level]>]>]>
  1806.                - case ManaRegen:
  1807.                    - if <[buff]> == 0:
  1808.                        - flag player ManaRegen:!
  1809.                    - else:
  1810.                        - flag player ManaRegen:<[player_val].-[<[config_val].*[<[level]>]>]>
  1811.                - case RegenAura:
  1812.                    - if <[buff]> == 0:
  1813.                        - flag player RegenAura:!
  1814.                    - else:
  1815.                        - flag player RegenAura:<[player_val].-[<[config_val].*[<[level]>]>]>
  1816.                - case HpRegenAura:
  1817.                    - if <[buff]> == 0:
  1818.                        - flag player HpRegenAura:!
  1819.                    - else:
  1820.                        - flag player HpRegenAura:<[player_val].-[<[config_val].*[<[level]>]>]>
  1821.                - case ManaRegenAura:
  1822.                    - if <[buff]> == 0:
  1823.                        - flag player ManaRegenAura:!
  1824.                    - else:
  1825.                        - flag player ManaRegenAura:<[player_val].-[<[config_val].*[<[level]>]>]>
  1826.            - if <[player_val].-[<[config_val].*[<[level]>]>]> == 0:
  1827.                - yaml id:<player.uuid> set buffs.<[buff]>:!
  1828.            - else:
  1829.                - yaml id:<player.uuid> set buffs.<[buff]>:<[player_val].-[<[config_val].*[<[level]>]>]>
  1830.  
  1831. function_ClearSubclassBuffs:
  1832.    type: task
  1833.    script:
  1834.        - define class:<yaml[<player.uuid>].read[classes.class]>
  1835.        - define subclass:<yaml[<player.uuid>].read[classes.subclass]>
  1836.        - define sublevel:<yaml[<player.uuid>].read[classes.sublevel]||1>
  1837.        - define subclass_buffs:<yaml[class_config].list_keys[<[class]>.subclasses.<[subclass]>.buffs]>
  1838.        - foreach <[subclass_buffs]> as:buff:
  1839.            - define player_val:<yaml[<player.uuid>].read[buffs.<[buff]>]||0>
  1840.            - define config_val:<yaml[class_config].read[<[class]>.subclasses.<[subclass]>.buffs.<[buff]>]>
  1841.            - choose <[buff]>:
  1842.                - case Health:
  1843.                    - adjust <player> max_health:<player.health.max.-[<[config_val].*[<[sublevel]>]>]>
  1844.                - case Armor:
  1845.                    - adjust <player> armor_bonus:<player.armor_bonus.-[<[config_val].*[<[sublevel]>]>]>
  1846.                - case Speed:
  1847.                    - adjust <player> walk_speed:<player.walk_speed.-[<[config_val].*[<[sublevel]>]>]>
  1848.                - case Hover:
  1849.                    - flag player Hover:!
  1850.                - case UnderwaterBreathing:
  1851.                    - flag player UnderwaterBreathing:!
  1852.                - case Regen:
  1853.                    - if <[buff]> == 0:
  1854.                        - flag player Regen:!
  1855.                    - else:
  1856.                        - flag player Regen:<[player_val].-[<[config_val].*[<[sublevel]>]>]>
  1857.                - case HpRegen:
  1858.                    - if <[buff]> == 0:
  1859.                        - flag player HpRegen:!
  1860.                    - else:
  1861.                        - flag player HpRegen:<[player_val].-[<[config_val].*[<[sublevel]>]>]>
  1862.                - case ManaRegen:
  1863.                    - if <[buff]> == 0:
  1864.                        - flag player ManaRegen:!
  1865.                    - else:
  1866.                        - flag player ManaRegen:<[player_val].-[<[config_val].*[<[sublevel]>]>]>
  1867.                - case RegenAura:
  1868.                    - if <[buff]> == 0:
  1869.                        - flag player RegenAura:!
  1870.                    - else:
  1871.                        - flag player RegenAura:<[player_val].-[<[config_val].*[<[sublevel]>]>]>
  1872.                - case HpRegenAura:
  1873.                    - if <[buff]> == 0:
  1874.                        - flag player HpRegenAura:!
  1875.                    - else:
  1876.                        - flag player HpRegenAura:<[player_val].-[<[config_val].*[<[sublevel]>]>]>
  1877.                - case ManaRegenAura:
  1878.                    - if <[buff]> == 0:
  1879.                        - flag player ManaRegenAura:!
  1880.                    - else:
  1881.                        - flag player ManaRegenAura:<[player_val].-[<[config_val].*[<[sublevel]>]>]>
  1882.            - if <[player_val].-[<[config_val].*[<[sublevel]>]>]> == 0:
  1883.                - yaml id:<player.uuid> set buffs.<[buff]>:!
  1884.            - else:
  1885.                - yaml id:<player.uuid> set buffs.<[buff]>:<[player_val].-[<[config_val].*[<[sublevel]>]>]>
  1886.  
  1887. function_UpdateClassBuffs:
  1888.    type: task
  1889.    script:
  1890.        - define class:<yaml[<player.uuid>].read[classes.class]>
  1891.        - define level:<yaml[<player.uuid>].read[classes.level]||1>
  1892.        - define class_buffs:<yaml[class_config].list_keys[<[class]>.buffs]>
  1893.        - foreach <[class_buffs]> as:buff:
  1894.            - define player_val:<yaml[<player.uuid>].read[buffs.<[buff]>]||0>
  1895.            - define config_val:<yaml[class_config].read[<[class]>.buffs.<[buff]>]>
  1896.            - choose <[buff]>:
  1897.                - case Health:
  1898.                    - adjust <player> max_health:<player.health.max.+[<[config_val].*[<[level]>]>]>
  1899.                - case Armor:
  1900.                    - adjust <player> armor_bonus:<player.armor_bonus.+[<[config_val].*[<[level]>]>]>
  1901.                - case Speed:
  1902.                    - adjust <player> walk_speed:<player.walk_speed.+[<[config_val].*[<[level]>]>]>
  1903.                - case Hover:
  1904.                    - flag player Hover:1
  1905.                - case UnderwaterBreathing:
  1906.                    - flag player UnderwaterBreathing:1
  1907.                - case Regen:
  1908.                    - flag player Regen:<[player_val].+[<[config_val].*[<[level]>]>]>
  1909.                - case HpRegen:
  1910.                    - flag player HpRegen:<[player_val].+[<[config_val].*[<[level]>]>]>
  1911.                - case ManaRegen:
  1912.                    - flag player ManaRegen:<[player_val].+[<[config_val].*[<[level]>]>]>
  1913.                - case RegenAura:
  1914.                    - flag player RegenAura:<[player_val].+[<[config_val].*[<[level]>]>]>
  1915.                - case HpRegenAura:
  1916.                    - flag player HpRegenAura:<[player_val].+[<[config_val].*[<[level]>]>]>
  1917.                - case ManaRegenAura:
  1918.                    - flag player ManaRegenAura:<[player_val].+[<[config_val].*[<[level]>]>]>
  1919.            - yaml id:<player.uuid> set buffs.<[buff]>:<[player_val].+[<[config_val].*[<[level]>]>]>
  1920.  
  1921. function_UpdateSubclassBuffs:
  1922.    type: task
  1923.    script:
  1924.        - define class:<yaml[<player.uuid>].read[classes.class]>
  1925.        - define subclass:<yaml[<player.uuid>].read[classes.subclass]>
  1926.        - define sublevel:<yaml[<player.uuid>].read[classes.sublevel]||1>
  1927.        - define subclass_buffs:<yaml[class_config].list_keys[<[class]>.subclasses.<[subclass]>.buffs]>
  1928.        - foreach <[subclass_buffs]> as:buff:
  1929.            - define player_val:<yaml[<player.uuid>].read[buffs.<[buff]>]||0>
  1930.            - define config_val:<yaml[class_config].read[<[class]>.subclasses.<[subclass]>.buffs.<[buff]>]>
  1931.            - choose <[buff]>:
  1932.                - case Health:
  1933.                    - adjust <player> max_health:<player.health.max.+[<[config_val].*[<[sublevel]>]>]>
  1934.                - case Armor:
  1935.                    - adjust <player> armor_bonus:<player.armor_bonus.+[<[config_val].*[<[sublevel]>]>]>
  1936.                - case Speed:
  1937.                    - adjust <player> walk_speed:<player.walk_speed.+[<[config_val].*[<[sublevel]>]>]>
  1938.                - case Hover:
  1939.                    - flag player Hover:1
  1940.                - case UnderwaterBreathing:
  1941.                    - flag player UnderwaterBreathing:1
  1942.                - case Regen:
  1943.                    - flag player Regen:<[player_val].+[<[config_val].*[<[sublevel]>]>]>
  1944.                - case HpRegen:
  1945.                    - flag player HpRegen:<[player_val].+[<[config_val].*[<[sublevel]>]>]>
  1946.                - case ManaRegen:
  1947.                    - flag player ManaRegen:<[player_val].+[<[config_val].*[<[sublevel]>]>]>
  1948.                - case RegenAura:
  1949.                    - flag player RegenAura:<[player_val].+[<[config_val].*[<[sublevel]>]>]>
  1950.                - case HpRegenAura:
  1951.                    - flag player HpRegenAura:<[player_val].+[<[config_val].*[<[sublevel]>]>]>
  1952.                - case ManaRegenAura:
  1953.                    - flag player ManaRegenAura:<[player_val].+[<[config_val].*[<[sublevel]>]>]>
  1954.            - yaml id:<player.uuid> set buffs.<[buff]>:<[player_val].+[<[config_val].*[<[sublevel]>]>]>
  1955.  
  1956. function_RaceLevel:
  1957.    type: task
  1958.    script:
  1959.        - define race:<yaml[<player.uuid>].read[races.race]>
  1960.        - define level:<yaml[<player.uuid>].read[races.level].+[1]||1>
  1961.        - define race_buffs:<yaml[race_config].list_keys[<[race]>.buffs]>
  1962.        - foreach <[race_buffs]> as:buff:
  1963.            - define player_val:<yaml[<player.uuid>].read[buffs.<[buff]>]||0>
  1964.            - define config_val:<yaml[race_config].read[<[race]>.buffs.<[buff]>]>
  1965.            - choose <[buff]>:
  1966.                - case Health:
  1967.                    - adjust <player> max_health:<player.health.max.+[<[config_val]>]>
  1968.                - case Armor:
  1969.                    - adjust <player> armor_bonus:<player.armor_bonus.+[<[config_val]>]>
  1970.                - case Speed:
  1971.                    - adjust <player> walk_speed:<player.walk_speed.+[<[config_val]>]>
  1972.                - case Hover:
  1973.                    - flag player Hover:1
  1974.                - case UnderwaterBreathing:
  1975.                    - flag player UnderwaterBreathing:1
  1976.                - case Regen:
  1977.                    - flag player Regen:<[player_val].+[<[config_val].*[<[sublevel]>]>]>
  1978.                - case HpRegen:
  1979.                    - flag player HpRegen:<[player_val].+[<[config_val].*[<[sublevel]>]>]>
  1980.                - case ManaRegen:
  1981.                    - flag player ManaRegen:<[player_val].+[<[config_val].*[<[sublevel]>]>]>
  1982.                - case RegenAura:
  1983.                    - flag player RegenAura:<[player_val].+[<[config_val].*[<[sublevel]>]>]>
  1984.                - case HpRegenAura:
  1985.                    - flag player HpRegenAura:<[player_val].+[<[config_val].*[<[sublevel]>]>]>
  1986.                - case ManaRegenAura:
  1987.                    - flag player ManaRegenAura:<[player_val].+[<[config_val].*[<[sublevel]>]>]>
  1988.            - yaml id:<player.uuid> set buffs.<[buff]>:<[player_val].+[<[config_val]>]>
  1989.            - yaml id:<player.uuid> set races.level:<[level]>
  1990.  
  1991. function_SubraceLevel:
  1992.    type: task
  1993.    script:
  1994.        - define race:<yaml[<player.uuid>].read[races.race]>
  1995.        - define subrace:<yaml[<player.uuid>].read[races.subrace]>
  1996.        - define sublevel:<yaml[<player.uuid>].read[races.sublevel].+[1]||1>
  1997.        - define race_buffs:<yaml[race_config].list_keys[<[race]>.subraces.<[subrace]>.buffs]>
  1998.        - foreach <[race_buffs]> as:buff:
  1999.            - define player_val:<yaml[<player.uuid>].read[buffs.<[buff]>]||0>
  2000.            - define config_val:<yaml[race_config].read[<[race]>.subraces.<[subrace]>.buffs.<[buff]>]>
  2001.            - choose <[buff]>:
  2002.                - case Health:
  2003.                    - adjust <player> max_health:<player.health.max.+[<[config_val]>]>
  2004.                - case Armor:
  2005.                    - adjust <player> armor_bonus:<player.armor_bonus.+[<[config_val]>]>
  2006.                - case Speed:
  2007.                    - adjust <player> walk_speed:<player.walk_speed.+[<[config_val]>]>
  2008.                - case Hover:
  2009.                    - flag player Hover:1
  2010.                - case UnderwaterBreathing:
  2011.                    - flag player UnderwaterBreathing:1
  2012.                - case Regen:
  2013.                    - flag player Regen:<[player_val].+[<[config_val].*[<[sublevel]>]>]>
  2014.                - case HpRegen:
  2015.                    - flag player HpRegen:<[player_val].+[<[config_val].*[<[sublevel]>]>]>
  2016.                - case ManaRegen:
  2017.                    - flag player ManaRegen:<[player_val].+[<[config_val].*[<[sublevel]>]>]>
  2018.                - case RegenAura:
  2019.                    - flag player RegenAura:<[player_val].+[<[config_val].*[<[sublevel]>]>]>
  2020.                - case HpRegenAura:
  2021.                    - flag player HpRegenAura:<[player_val].+[<[config_val].*[<[sublevel]>]>]>
  2022.                - case ManaRegenAura:
  2023.                    - flag player ManaRegenAura:<[player_val].+[<[config_val].*[<[sublevel]>]>]>
  2024.            - yaml id:<player.uuid> set buffs.<[buff]>:<[player_val].+[<[config_val]>]>
  2025.            - yaml id:<player.uuid> set races.sublevel:<[sublevel]>
  2026.  
  2027. function_ClassLevel:
  2028.    type: task
  2029.    script:
  2030.        - define class:<yaml[<player.uuid>].read[classes.class]>
  2031.        - define level:<yaml[<player.uuid>].read[classes.level].+[1]||1>
  2032.        - define class_buffs:<yaml[class_config].list_keys[<[class]>.buffs]>
  2033.        - foreach <[class_buffs]> as:buff:
  2034.            - define player_val:<yaml[<player.uuid>].read[buffs.<[buff]>]||0>
  2035.            - define config_val:<yaml[class_config].read[<[class]>.buffs.<[buff]>]>
  2036.            - choose <[buff]>:
  2037.                - case Health:
  2038.                    - adjust <player> max_health:<player.health.max.+[<[config_val]>]>
  2039.                - case Armor:
  2040.                    - adjust <player> armor_bonus:<player.armor_bonus.+[<[config_val]>]>
  2041.                - case Speed:
  2042.                    - adjust <player> walk_speed:<player.walk_speed.+[<[config_val]>]>
  2043.            - yaml id:<player.uuid> set buffs.<[buff]>:<[player_val].+[<[config_val]>]>
  2044.            - yaml id:<player.uuid> set classes.level:<[level]>
  2045.  
  2046. function_SubclassLevel:
  2047.    type: task
  2048.    script:
  2049.        - define class:<yaml[<player.uuid>].read[classes.class]>
  2050.        - define subclass:<yaml[<player.uuid>].read[classes.subclass]>
  2051.        - define sublevel:<yaml[<player.uuid>].read[classes.sublevel].+[1]||1>
  2052.        - define class_buffs:<yaml[class_config].list_keys[<[class]>.subclasses.<[subclass]>.buffs]>
  2053.        - foreach <[class_buffs]> as:buff:
  2054.            - define player_val:<yaml[<player.uuid>].read[buffs.<[buff]>]||0>
  2055.            - define config_val:<yaml[class_config].read[<[class]>.subclasses.<[subclass]>.buffs.<[buff]>]>
  2056.            - choose <[buff]>:
  2057.                - case Health:
  2058.                    - adjust <player> max_health:<player.health.max.+[<[config_val]>]>
  2059.                - case Armor:
  2060.                    - adjust <player> armor_bonus:<player.armor_bonus.+[<[config_val]>]>
  2061.                - case Speed:
  2062.                    - adjust <player> walk_speed:<player.walk_speed.+[<[config_val]>]>
  2063.            - yaml id:<player.uuid> set buffs.<[buff]>:<[player_val].+[<[config_val]>]>
  2064.            - yaml id:<player.uuid> set classes.sublevel:<[sublevel]>
  2065.  
  2066.  
  2067. # - DATA
  2068. player_data:
  2069.    type: yaml data
  2070.    races:
  2071.        race: Default
  2072.        subrace: Default
  2073.        last_race: Defaultt
  2074.        last_subrace: Default
  2075.        level: 1
  2076.        sublevel: 1
  2077.        xp: 0
  2078.        subxp: 0
  2079.    classes:
  2080.        class: Default
  2081.        subclass: Default
  2082.        last_class: Default
  2083.        last_subclass: Default
  2084.        level: 1
  2085.        sublevel: 1
  2086.        xp: 0
  2087.        subxp: 0
  2088.    buffs:
  2089.        None: 0
  2090.  
  2091.  
  2092. # - CONFIG
  2093. race_config:
  2094.    type: yaml data
  2095.    Human:
  2096.        buffs:
  2097.            Health: 0.125
  2098.            Damage: 0.125
  2099.        subraces:
  2100.            Man:
  2101.                buffs:
  2102.                    Health: 0.125
  2103.                    Damage: 0.125
  2104.            Dwarf:
  2105.                buffs:
  2106.                    Health: 0.125
  2107.                    Armor: 0.125
  2108.            Undead:
  2109.                buffs:
  2110.                    MagicDamage: 0.25
  2111.                    UnderwaterBreathing: 1
  2112.    Orc:
  2113.        buffs:
  2114.            AxeDamage: 0.125
  2115.            Armor: 0.125
  2116.        subraces:
  2117.            Warorc:
  2118.                buffs:
  2119.                    AxeDamage: 0.125
  2120.                    Health: 0.125
  2121.            Goblin:
  2122.                buffs:
  2123.                    Backstab: 1
  2124.                    Critical: 0.25
  2125.            Ogre:
  2126.                buffs:
  2127.                    Health: 0.125
  2128.                    Armor: 0.125
  2129.    Elf:
  2130.        buffs:
  2131.            SwordDamage: 0.25
  2132.            Dodge: 0.125
  2133.        subraces:
  2134.            Highelf:
  2135.                buffs:
  2136.                    MagicDamage: 0.25
  2137.                    Regen: 0.125
  2138.            Surfaceelf:
  2139.                buffs:
  2140.                    BowDamage: 0.5
  2141.                    Speed: 0.0025
  2142.            Darkelf:
  2143.                buffs:
  2144.                    SwordDamage: 0.125
  2145.                    Dodge: 0.25
  2146.    Beast:
  2147.        buffs:
  2148.            Damage: 0.125
  2149.            Speed: 0.0025
  2150.        subraces:
  2151.            Centaur:
  2152.                buffs:
  2153.                    BowDamage: 0.125
  2154.                    Speed: 0.0025
  2155.            Harpy:
  2156.                buffs:
  2157.                    Hover: 1
  2158.                    Speed: 0.0025
  2159.            Gorgon:
  2160.                buffs:
  2161.                    Armor: 0.125
  2162.                    Damage: 0.125
  2163.  
  2164.  
  2165. class_config:
  2166.    type: yaml data
  2167.    Warrior:
  2168.        buffs:
  2169.            AxeDamage: 0.125
  2170.            Armor: 0.125
  2171.        subclasses:
  2172.            Protector:
  2173.                buffs:
  2174.                    Health: 0.125
  2175.                    Damage: 0.125
  2176.                abilities:
  2177.                    - Saviour
  2178.            Paladin:
  2179.                buffs:
  2180.                    Regen: 0.125
  2181.                    RegenAura: 0.125
  2182.                abilities:
  2183.                    - Righteousness
  2184.            Champion:
  2185.                buffs:
  2186.                    AxeDamage: 0.125
  2187.                    Parry: 0.375
  2188.                abilities:
  2189.                    - Whirlwind
  2190.    Healer:
  2191.        buffs:
  2192.            HpRegen: 0.125
  2193.            Mana: 1.25
  2194.        subclasses:
  2195.            Priest:
  2196.                buffs:
  2197.                    ManaRegen: 0.125
  2198.                    Mana: 1.25
  2199.                abilities:
  2200.                    - Divine Protection
  2201.            Cleric:
  2202.                buffs:
  2203.                    HpRegen: 0.125
  2204.                    Mana: 1.25
  2205.                abilities:
  2206.                    - Prayer
  2207.            Necromancer:
  2208.                buffs:
  2209.                    Health: 0.125
  2210.                    Lifesteal: 0.0125
  2211.                abilities:
  2212.                    - Hunger for Darkness
  2213.    Rogue:
  2214.        buffs:
  2215.            SwordDamage: 0.25
  2216.            Dodge: 0.125
  2217.        subclasses:
  2218.            Thief:
  2219.                buffs:
  2220.                    Speed: 0.0025
  2221.                    Dodge: 0.25
  2222.                abilities:
  2223.                    - Sprint
  2224.            Cutthroat:
  2225.                buffs:
  2226.                    SwordDamage: 0.25
  2227.                    Parry: 0.25
  2228.                abilities:
  2229.                    - Blade Flurry
  2230.            Assassin:
  2231.                buffs:
  2232.                    Critical: 0.25
  2233.                    Backstab: 0.075
  2234.                abilities:
  2235.                    - Shade Step
  2236.    Archer:
  2237.        buffs:
  2238.            BowDamage: 0.5
  2239.            Speed: 0.0025
  2240.        subclasses:
  2241.            Marksman:
  2242.                buffs:
  2243.                    LongRangeDamage: 0.75
  2244.                    Speed: 0.0025
  2245.                abilities:
  2246.                    - Aimed Shot
  2247.            Trickster:
  2248.                buffs:
  2249.                    BowDamage: 0.5
  2250.                    Speed: 0.0025
  2251.                abilities:
  2252.                    - Ephemereal Arrow
  2253.            Hunter:
  2254.                buffs:
  2255.                    BowDamage: 0.5
  2256.                    Speed: 0.0025
  2257.                abilities:
  2258.                    - Call Pack
  2259.    Sorcerer:
  2260.        buffs:
  2261.            MagicDamage: 0.25
  2262.            Mana: 1.25
  2263.        subclasses:
  2264.            Mage:
  2265.                buffs:
  2266.                    MagicDamage: 0.25
  2267.                    Mana: 1.25
  2268.                abilities:
  2269.                    - Fireball
  2270.            Alchemist:
  2271.                buffs:
  2272.                    MagicDamage: 0.25
  2273.                    Speed: 0.0025
  2274.                abilities:
  2275.                    - Poison Cloud
  2276.            Spellsword:
  2277.                buffs:
  2278.                    SwordDamage: 0.25
  2279.                    Mana: 1.25
  2280.                abilities:
  2281.                    - Enchanted Armor
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement