[{"data":1,"prerenderedAt":8},["ShallowReactive",2],{"docs:wiki\u002FSkills\u002FSkillTrees":3},{"html":4,"title":-1,"frontmatter":5},"\u003Cp>SkillTrees are an implicit feature of Mythic and, while they cannot be directly invoked like \u003Ca href=\"\u002Fdocs\u002Fwiki\u002FSkills\u002FMetaskills\">Metaskills\u003C\u002Fa> or other features, play just as important a role.\u003C\u002Fp>\n\u003Cp>SkillTrees are \u003Cstrong>created each time a mechanic is fired by a trigger\u003C\u002Fstrong>, and it is the place where skill scoped \u003Ca href=\"\u002Fdocs\u002Fwiki\u002FSkills\u002FVariables\">variables\u003C\u002Fa> are stored and inside which \u003Ca href=\"\u002Fdocs\u002Fwiki\u002FSkills\u002FMetaskills\">metaskills\u003C\u002Fa> exist\u003C\u002Fp>\n\u003Chr>\n\u003Ch1>SkillTree Structure\u003C\u002Fh1>\n\u003Cpre>\u003Ccode class=\"language-mermaid\">stateDiagram-v2\n    state SkillTree {\n        SkillScopedVariables\n        EventData\n        state MetaSkills {\n            state MetaSkill {\n                MetaSkillInfo: MetaSkill Info\n                state MetaSkillInfo {\n                    Caster\n                    Targets\n                    Trigger\n                    Origin\n                    SkillParameters\n                }\n                state Mechanics {\n                    Mechanic1 Mechanic2 Mechanic3\n                }\n            }\n            \n        }\n    }\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Ch2>Skill Scoped Variables\u003C\u002Fh2>\n\u003Cp>Since they exist in the skilltree itself, skill-scoped variables can be accessed and modified by any \u003Ca href=\"\u002Fdocs\u002Fwiki\u002FSkills\u002FMetaskills\">metaskill\u003C\u002Fa> in the skilltree from the moment they are created, regardless of which \u003Ca href=\"\u002Fdocs\u002Fwiki\u002FSkills\u002FMetaskills\">metaskill\u003C\u002Fa> created them\u003C\u002Fp>\n\u003Ch2>Event Data\u003C\u002Fh2>\n\u003Cp>The skilltree always knows which event triggered it, and allows the \u003Ca href=\"\u002Fmechanics\u002Fcancelevent\">cancelevent\u003C\u002Fa> mechanic to be used in any of the metaskill it calls in order to cancel it, as long as this occurs in a synched manner\u003C\u002Fp>\n\u003Ch2>MetaSkills\u003C\u002Fh2>\n\u003Cp>Each \u003Ca href=\"\u002Fdocs\u002Fwiki\u002FSkills\u002FMetaskills\">Metaskill\u003C\u002Fa> that is being called in the SkillTree has its own set of data regarding different elements.\nNormally, the value of those elements is copied over from the calling metaskill unless overridden.\u003Cbr>\nThose elements are:\u003C\u002Fp>\n\u003Ch3>\u003Ccode>Caster\u003C\u002Fcode>\u003C\u002Fh3>\n\u003Cp>The entity casting the metaskill.\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Can be changed via the use of the \u003Ca href=\"\u002Fmechanics\u002Fsudoskill\">sudoskill\u003C\u002Fa> mechanic\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>\u003Ccode>Target\u003C\u002Fcode>\u003C\u002Fh3>\n\u003Cp>It is the \u003Ca href=\"\u002Fdocs\u002Fwiki\u002FSkills\u002FMetaskills#inheritance\">Inherited Target\u003C\u002Fa> of the metaskill\u003C\u002Fp>\n\u003Ch3>\u003Ccode>Trigger\u003C\u002Fcode>\u003C\u002Fh3>\n\u003Cp>Is first set as the entity that triggered the SkillTree initially, and one can fetch this entity via the \u003Ca href=\"\u002Ftargeters\u002Ftrigger\">@trigger\u003C\u002Fa> targeter or other similar targeters. Depending on the \u003Ca href=\"\u002Fdocs\u002Fwiki\u002FSkills\u002FTriggers\">~Trigger\u003C\u002Fa> used, a \u003Ca href=\"\u002Ftargeters\u002Ftrigger\">@trigger\u003C\u002Fa> may not exist.\u003C\u002Fp>\n\u003Cul>\n\u003Cli>The \u003Ccode>Trigger\u003C\u002Fcode> can be changed via the use of the \u003Ca href=\"\u002Fmechanics\u002Fsudoskill\">sudoskill\u003C\u002Fa> mechanic’s \u003Ccode>casterastrigger\u003C\u002Fcode> attribute, which will make the called metaskill have, as the  \u003Ccode>Trigger\u003C\u002Fcode>, the \u003Ccode>Caster\u003C\u002Fcode> of the original metaskill\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>\u003Ccode>Origin\u003C\u002Fcode>\u003C\u002Fh3>\n\u003Cp>It’s the \u003Ca href=\"\u002Ftargeters\u002Forigin\">@origin\u003C\u002Fa> of the metaskill. By default, it is the position of the \u003Ccode>Caster\u003C\u002Fcode>.\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Can be set via the \u003Ccode>origin\u003C\u002Fcode> \u003Ca href=\"\u002Fdocs\u002Fwiki\u002FSkills\u002FMechanics#universal-attributes\">universal attribute\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>It is automatically set in mechanics such as \u003Ca href=\"\u002Fmechanics\u002Fprojectile\">projectile\u003C\u002Fa>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>\u003Ccode>Skill Parameters\u003C\u002Fcode>\u003C\u002Fh3>\n\u003Cp>The \u003Ca href=\"\u002Fdocs\u002Fwiki\u002FSkills\u002FMetaskills#skill-parameters-premium-feature\">Skill Parameters\u003C\u002Fa> of the metaskill. Please note that, contrary to \u003Ca href=\"#skill-scoped-variables\">Skill Scoped Variables\u003C\u002Fa>, they do not exist on the skilltree itself.\u003C\u002Fp>\n\u003C!-- LINKS -->\n",{"category":6,"order":7},"Technical","110",1779063024196]