{"id":1420,"date":"2025-05-11T16:04:13","date_gmt":"2025-05-11T16:04:13","guid":{"rendered":"https:\/\/sites.wsagames.com\/et4g23\/?p=1420"},"modified":"2025-05-11T16:54:21","modified_gmt":"2025-05-11T16:54:21","slug":"skill-tree-pt-4","status":"publish","type":"post","link":"https:\/\/sites.wsagames.com\/et4g23\/2025\/05\/11\/skill-tree-pt-4\/","title":{"rendered":"Skill Tree &#8211; Pt 4"},"content":{"rendered":"\n<p class=\"has-text-align-center has-background wp-block-paragraph\" style=\"background-color:#dfdfdf\">Now that the player is able to buy skills in the skill tree that actually effect the player character, I needed to implement a way for the player to interact with the Tree of Sorrow from within the Hub scene.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img fetchpriority=\"high\" decoding=\"async\" width=\"1024\" height=\"432\" src=\"https:\/\/sites.wsagames.com\/et4g23\/wp-content\/uploads\/sites\/27\/2025\/05\/image-114-1024x432.png\" alt=\"\" class=\"wp-image-1422\" srcset=\"https:\/\/sites.wsagames.com\/et4g23\/wp-content\/uploads\/sites\/27\/2025\/05\/image-114-1024x432.png 1024w, https:\/\/sites.wsagames.com\/et4g23\/wp-content\/uploads\/sites\/27\/2025\/05\/image-114-300x127.png 300w, https:\/\/sites.wsagames.com\/et4g23\/wp-content\/uploads\/sites\/27\/2025\/05\/image-114-768x324.png 768w, https:\/\/sites.wsagames.com\/et4g23\/wp-content\/uploads\/sites\/27\/2025\/05\/image-114-850x359.png 850w, https:\/\/sites.wsagames.com\/et4g23\/wp-content\/uploads\/sites\/27\/2025\/05\/image-114.png 1251w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-8f761849 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<p class=\"wp-block-paragraph\">To create a way for the player to interact with the Tree of Sorrow, I gave it a childobject with a <strong><em>PolygonCollider2D<\/em><\/strong> component and set it to <strong>trigger<\/strong>. Then, I created a new C# script and called it <strong><em>SkillTreeZone<\/em><\/strong>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">This script constantly checks for any other colliders that trigger its collider component. If the player collides with it, a <em><strong>playerInside bool <\/strong><\/em>is set to <em><strong>true<\/strong><\/em>. If this is the case and the player presses &#8216;E&#8217; then the Skill Tree UI is set to active and an<em><strong> isOpen bool<\/strong><\/em> is set to be active, along with the active status of the Skill Tree UI.<\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" width=\"505\" height=\"481\" src=\"https:\/\/sites.wsagames.com\/et4g23\/wp-content\/uploads\/sites\/27\/2025\/05\/image-115.png\" alt=\"\" class=\"wp-image-1423\" srcset=\"https:\/\/sites.wsagames.com\/et4g23\/wp-content\/uploads\/sites\/27\/2025\/05\/image-115.png 505w, https:\/\/sites.wsagames.com\/et4g23\/wp-content\/uploads\/sites\/27\/2025\/05\/image-115-300x286.png 300w\" sizes=\"(max-width: 505px) 100vw, 505px\" \/><\/figure>\n<\/div>\n<\/div>\n\n\n\n<p class=\"wp-block-paragraph\">This <em><strong>isOpen bool<\/strong><\/em> then determines whether the player&#8217;s <strong>AttackNew <\/strong>and <strong>PlayerControllerNew script <\/strong>is enabled, disabling them if the Skill Tree UI is enabled. Furthermore, this <em><strong>isOpen bool<\/strong><\/em> controls whether the cursor is visible on screen, enabling it if the Skill Tree UI is enabled and disabling it otherwise.<br>Then, if the player presses &#8216;E&#8217; while the Skill Tree UI is enabled, it gets toggled off, allowing the player to move and attack again.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img decoding=\"async\" width=\"1024\" height=\"686\" src=\"https:\/\/sites.wsagames.com\/et4g23\/wp-content\/uploads\/sites\/27\/2025\/05\/image-116-1024x686.png\" alt=\"\" class=\"wp-image-1424\" srcset=\"https:\/\/sites.wsagames.com\/et4g23\/wp-content\/uploads\/sites\/27\/2025\/05\/image-116-1024x686.png 1024w, https:\/\/sites.wsagames.com\/et4g23\/wp-content\/uploads\/sites\/27\/2025\/05\/image-116-300x201.png 300w, https:\/\/sites.wsagames.com\/et4g23\/wp-content\/uploads\/sites\/27\/2025\/05\/image-116-768x514.png 768w, https:\/\/sites.wsagames.com\/et4g23\/wp-content\/uploads\/sites\/27\/2025\/05\/image-116-850x569.png 850w, https:\/\/sites.wsagames.com\/et4g23\/wp-content\/uploads\/sites\/27\/2025\/05\/image-116.png 1266w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n<\/div>\n\n\n<h2 class=\"wp-block-heading\">Saving the player&#8217;s  Tree of Sorrow progress<\/h2>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"374\" src=\"https:\/\/sites.wsagames.com\/et4g23\/wp-content\/uploads\/sites\/27\/2025\/05\/image-117-1024x374.png\" alt=\"\" class=\"wp-image-1429\" srcset=\"https:\/\/sites.wsagames.com\/et4g23\/wp-content\/uploads\/sites\/27\/2025\/05\/image-117-1024x374.png 1024w, https:\/\/sites.wsagames.com\/et4g23\/wp-content\/uploads\/sites\/27\/2025\/05\/image-117-300x109.png 300w, https:\/\/sites.wsagames.com\/et4g23\/wp-content\/uploads\/sites\/27\/2025\/05\/image-117-768x280.png 768w, https:\/\/sites.wsagames.com\/et4g23\/wp-content\/uploads\/sites\/27\/2025\/05\/image-117-850x310.png 850w, https:\/\/sites.wsagames.com\/et4g23\/wp-content\/uploads\/sites\/27\/2025\/05\/image-117.png 1077w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">An extremely big issue with the current Skill Tree, is that if the player dies in the dungeon after unlocking skills at the skill tree. When they respawn at the skill tree, all of their progress is erased, despite still having the effects from the skills on the player character.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">However, this was essentially the same issue I had with the player character not being able to keep the effects from their skills when going to another scene in the game &#8211; an issue I had already fixed by using the <em><strong>PlayerStatsManager singleton<\/strong><\/em>. However, this was a much more complex version as with the skills effecting the player, I only had to change  and store certain ints in the <em><strong>PlayerStatsManager<\/strong><\/em>. But in this case, I had to store data about: Which skills were unlocked; what skills should stay locked and what skills were already maxed out.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">After unsuccessfully trying to fix this issue, I explained the situation to Ross and asked for his help:<\/p>\n\n\n\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;6ac88a896ecd0&quot;}\" data-wp-interactive=\"core\/image\" data-wp-key=\"6ac88a896ecd0\" class=\"wp-block-image size-large wp-lightbox-container\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"785\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on--pointerdown=\"actions.preloadImage\" data-wp-on--pointerenter=\"actions.preloadImageWithDelay\" data-wp-on--pointerleave=\"actions.cancelPreload\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/sites.wsagames.com\/et4g23\/wp-content\/uploads\/sites\/27\/2025\/05\/image-121-1024x785.png\" alt=\"\" class=\"wp-image-1435\" srcset=\"https:\/\/sites.wsagames.com\/et4g23\/wp-content\/uploads\/sites\/27\/2025\/05\/image-121-1024x785.png 1024w, https:\/\/sites.wsagames.com\/et4g23\/wp-content\/uploads\/sites\/27\/2025\/05\/image-121-300x230.png 300w, https:\/\/sites.wsagames.com\/et4g23\/wp-content\/uploads\/sites\/27\/2025\/05\/image-121-768x589.png 768w, https:\/\/sites.wsagames.com\/et4g23\/wp-content\/uploads\/sites\/27\/2025\/05\/image-121-850x651.png 850w, https:\/\/sites.wsagames.com\/et4g23\/wp-content\/uploads\/sites\/27\/2025\/05\/image-121.png 1164w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><button\n\t\t\tclass=\"lightbox-trigger\"\n\t\t\ttype=\"button\"\n\t\t\taria-haspopup=\"dialog\"\n\t\t\tdata-wp-bind--aria-label=\"state.thisImage.triggerButtonAriaLabel\"\n\t\t\tdata-wp-init=\"callbacks.initTriggerButton\"\n\t\t\tdata-wp-on--click=\"actions.showLightbox\"\n\t\t\tdata-wp-style--right=\"state.thisImage.buttonRight\"\n\t\t\tdata-wp-style--top=\"state.thisImage.buttonTop\"\n\t\t>\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewBox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" \/>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Essentially, what Ross had done to fix this issue was adding a Dictionary&lt;&gt; (A Dictionary is is a <strong>collection that stores key-value pairs<\/strong>, like a real-world dictionary where you look up a word (key) to get its definition (value) &#8211; <a href=\"https:\/\/learn.microsoft.com\/en-us\/dotnet\/api\/system.collections.generic.dictionary-2?view=net-9.0\">Microsoft Documentation<\/a>) to the <em><strong>PlayerStatsManager<\/strong><\/em>, this Dictionary would track each <strong>SkillSO <\/strong>on every <strong>SkillButton&#8217;s SkillSlot<\/strong> script and would store its <em><strong>currentLevel int<\/strong><\/em> and then runs the <em><strong>UpdateUI() <\/strong><\/em>method every time a <strong>SkillSlot <\/strong>was enabled. As this dictionary is stored in a singleton, this data is never destroyed even when loading a new scene in the game.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"827\" height=\"822\" src=\"https:\/\/sites.wsagames.com\/et4g23\/wp-content\/uploads\/sites\/27\/2025\/05\/image-122.png\" alt=\"\" class=\"wp-image-1438\" style=\"width:840px;height:auto\" srcset=\"https:\/\/sites.wsagames.com\/et4g23\/wp-content\/uploads\/sites\/27\/2025\/05\/image-122.png 827w, https:\/\/sites.wsagames.com\/et4g23\/wp-content\/uploads\/sites\/27\/2025\/05\/image-122-300x298.png 300w, https:\/\/sites.wsagames.com\/et4g23\/wp-content\/uploads\/sites\/27\/2025\/05\/image-122-150x150.png 150w, https:\/\/sites.wsagames.com\/et4g23\/wp-content\/uploads\/sites\/27\/2025\/05\/image-122-768x763.png 768w\" sizes=\"(max-width: 827px) 100vw, 827px\" \/><figcaption class=\"wp-element-caption\">Additions to the PlayerStatsManger script<\/figcaption><\/figure>\n<\/div>\n\n\n<p class=\"wp-block-paragraph\">On the SkillSlot script, every time that the a Skill Button with the SkillSlot script was enabled, it would check if the skill was not locked. If it was locked, it calls the <em><strong>IsSkillUnlocked() <\/strong><\/em>and <em><strong>GetSkillLevel()<\/strong><\/em> methods from the <em><strong>PlayerStatsManager <\/strong><\/em>script.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"843\" height=\"525\" src=\"https:\/\/sites.wsagames.com\/et4g23\/wp-content\/uploads\/sites\/27\/2025\/05\/image-123.png\" alt=\"\" class=\"wp-image-1439\" srcset=\"https:\/\/sites.wsagames.com\/et4g23\/wp-content\/uploads\/sites\/27\/2025\/05\/image-123.png 843w, https:\/\/sites.wsagames.com\/et4g23\/wp-content\/uploads\/sites\/27\/2025\/05\/image-123-300x187.png 300w, https:\/\/sites.wsagames.com\/et4g23\/wp-content\/uploads\/sites\/27\/2025\/05\/image-123-768x478.png 768w\" sizes=\"(max-width: 843px) 100vw, 843px\" \/><figcaption class=\"wp-element-caption\">Additions to the SkillSlot script<\/figcaption><\/figure>\n<\/div>\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Now that the player is able to buy skills in the skill tree that actually effect the player character, I needed to implement a way for the player to interact with the Tree of Sorrow from within the Hub scene. To create a way for the player to interact with the Tree of Sorrow, I&#8230;<\/p>\n","protected":false},"author":28,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-1420","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.6 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Skill Tree - Pt 4 - E-Jay Tripoli (Year 2 Archive)<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/sites.wsagames.com\/et4g23\/2025\/05\/11\/skill-tree-pt-4\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Skill Tree - Pt 4 - E-Jay Tripoli (Year 2 Archive)\" \/>\n<meta property=\"og:description\" content=\"Now that the player is able to buy skills in the skill tree that actually effect the player character, I needed to implement a way for the player to interact with the Tree of Sorrow from within the Hub scene. To create a way for the player to interact with the Tree of Sorrow, I...\" \/>\n<meta property=\"og:url\" content=\"https:\/\/sites.wsagames.com\/et4g23\/2025\/05\/11\/skill-tree-pt-4\/\" \/>\n<meta property=\"og:site_name\" content=\"E-Jay Tripoli (Year 2 Archive)\" \/>\n<meta property=\"article:published_time\" content=\"2025-05-11T16:04:13+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-05-11T16:54:21+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/sites.wsagames.com\/et4g23\/wp-content\/uploads\/sites\/27\/2025\/05\/image-114-1024x432.png\" \/>\n<meta name=\"author\" content=\"et4g23\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"et4g23\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/sites.wsagames.com\\\/et4g23\\\/2025\\\/05\\\/11\\\/skill-tree-pt-4\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/sites.wsagames.com\\\/et4g23\\\/2025\\\/05\\\/11\\\/skill-tree-pt-4\\\/\"},\"author\":{\"name\":\"et4g23\",\"@id\":\"https:\\\/\\\/sites.wsagames.com\\\/et4g23\\\/#\\\/schema\\\/person\\\/56387a1dc0de878bb33ce4c478f22963\"},\"headline\":\"Skill Tree &#8211; Pt 4\",\"datePublished\":\"2025-05-11T16:04:13+00:00\",\"dateModified\":\"2025-05-11T16:54:21+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/sites.wsagames.com\\\/et4g23\\\/2025\\\/05\\\/11\\\/skill-tree-pt-4\\\/\"},\"wordCount\":544,\"commentCount\":0,\"image\":{\"@id\":\"https:\\\/\\\/sites.wsagames.com\\\/et4g23\\\/2025\\\/05\\\/11\\\/skill-tree-pt-4\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/sites.wsagames.com\\\/et4g23\\\/wp-content\\\/uploads\\\/sites\\\/27\\\/2025\\\/05\\\/image-114-1024x432.png\",\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/sites.wsagames.com\\\/et4g23\\\/2025\\\/05\\\/11\\\/skill-tree-pt-4\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/sites.wsagames.com\\\/et4g23\\\/2025\\\/05\\\/11\\\/skill-tree-pt-4\\\/\",\"url\":\"https:\\\/\\\/sites.wsagames.com\\\/et4g23\\\/2025\\\/05\\\/11\\\/skill-tree-pt-4\\\/\",\"name\":\"Skill Tree - Pt 4 - E-Jay Tripoli (Year 2 Archive)\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/sites.wsagames.com\\\/et4g23\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/sites.wsagames.com\\\/et4g23\\\/2025\\\/05\\\/11\\\/skill-tree-pt-4\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/sites.wsagames.com\\\/et4g23\\\/2025\\\/05\\\/11\\\/skill-tree-pt-4\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/sites.wsagames.com\\\/et4g23\\\/wp-content\\\/uploads\\\/sites\\\/27\\\/2025\\\/05\\\/image-114-1024x432.png\",\"datePublished\":\"2025-05-11T16:04:13+00:00\",\"dateModified\":\"2025-05-11T16:54:21+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/sites.wsagames.com\\\/et4g23\\\/#\\\/schema\\\/person\\\/56387a1dc0de878bb33ce4c478f22963\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/sites.wsagames.com\\\/et4g23\\\/2025\\\/05\\\/11\\\/skill-tree-pt-4\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/sites.wsagames.com\\\/et4g23\\\/2025\\\/05\\\/11\\\/skill-tree-pt-4\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/sites.wsagames.com\\\/et4g23\\\/2025\\\/05\\\/11\\\/skill-tree-pt-4\\\/#primaryimage\",\"url\":\"https:\\\/\\\/sites.wsagames.com\\\/et4g23\\\/wp-content\\\/uploads\\\/sites\\\/27\\\/2025\\\/05\\\/image-114.png\",\"contentUrl\":\"https:\\\/\\\/sites.wsagames.com\\\/et4g23\\\/wp-content\\\/uploads\\\/sites\\\/27\\\/2025\\\/05\\\/image-114.png\",\"width\":1251,\"height\":528},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/sites.wsagames.com\\\/et4g23\\\/2025\\\/05\\\/11\\\/skill-tree-pt-4\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/sites.wsagames.com\\\/et4g23\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Skill Tree &#8211; Pt 4\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/sites.wsagames.com\\\/et4g23\\\/#website\",\"url\":\"https:\\\/\\\/sites.wsagames.com\\\/et4g23\\\/\",\"name\":\"E-Jay Tripoli (Year 2 Archive)\",\"description\":\"A documentation of my work for Year 2 - Studying Games Design and Art at the University of Southampton\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/sites.wsagames.com\\\/et4g23\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/sites.wsagames.com\\\/et4g23\\\/#\\\/schema\\\/person\\\/56387a1dc0de878bb33ce4c478f22963\",\"name\":\"et4g23\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/477d521b3b86e4ef27181bf784cd1a145a38c7d6a0154a478d3c858d26298bec?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/477d521b3b86e4ef27181bf784cd1a145a38c7d6a0154a478d3c858d26298bec?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/477d521b3b86e4ef27181bf784cd1a145a38c7d6a0154a478d3c858d26298bec?s=96&d=mm&r=g\",\"caption\":\"et4g23\"},\"url\":\"https:\\\/\\\/sites.wsagames.com\\\/et4g23\\\/author\\\/et4g23\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Skill Tree - Pt 4 - E-Jay Tripoli (Year 2 Archive)","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/sites.wsagames.com\/et4g23\/2025\/05\/11\/skill-tree-pt-4\/","og_locale":"en_US","og_type":"article","og_title":"Skill Tree - Pt 4 - E-Jay Tripoli (Year 2 Archive)","og_description":"Now that the player is able to buy skills in the skill tree that actually effect the player character, I needed to implement a way for the player to interact with the Tree of Sorrow from within the Hub scene. To create a way for the player to interact with the Tree of Sorrow, I...","og_url":"https:\/\/sites.wsagames.com\/et4g23\/2025\/05\/11\/skill-tree-pt-4\/","og_site_name":"E-Jay Tripoli (Year 2 Archive)","article_published_time":"2025-05-11T16:04:13+00:00","article_modified_time":"2025-05-11T16:54:21+00:00","og_image":[{"url":"https:\/\/sites.wsagames.com\/et4g23\/wp-content\/uploads\/sites\/27\/2025\/05\/image-114-1024x432.png","type":"","width":"","height":""}],"author":"et4g23","twitter_card":"summary_large_image","twitter_misc":{"Written by":"et4g23","Est. reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/sites.wsagames.com\/et4g23\/2025\/05\/11\/skill-tree-pt-4\/#article","isPartOf":{"@id":"https:\/\/sites.wsagames.com\/et4g23\/2025\/05\/11\/skill-tree-pt-4\/"},"author":{"name":"et4g23","@id":"https:\/\/sites.wsagames.com\/et4g23\/#\/schema\/person\/56387a1dc0de878bb33ce4c478f22963"},"headline":"Skill Tree &#8211; Pt 4","datePublished":"2025-05-11T16:04:13+00:00","dateModified":"2025-05-11T16:54:21+00:00","mainEntityOfPage":{"@id":"https:\/\/sites.wsagames.com\/et4g23\/2025\/05\/11\/skill-tree-pt-4\/"},"wordCount":544,"commentCount":0,"image":{"@id":"https:\/\/sites.wsagames.com\/et4g23\/2025\/05\/11\/skill-tree-pt-4\/#primaryimage"},"thumbnailUrl":"https:\/\/sites.wsagames.com\/et4g23\/wp-content\/uploads\/sites\/27\/2025\/05\/image-114-1024x432.png","inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/sites.wsagames.com\/et4g23\/2025\/05\/11\/skill-tree-pt-4\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/sites.wsagames.com\/et4g23\/2025\/05\/11\/skill-tree-pt-4\/","url":"https:\/\/sites.wsagames.com\/et4g23\/2025\/05\/11\/skill-tree-pt-4\/","name":"Skill Tree - Pt 4 - E-Jay Tripoli (Year 2 Archive)","isPartOf":{"@id":"https:\/\/sites.wsagames.com\/et4g23\/#website"},"primaryImageOfPage":{"@id":"https:\/\/sites.wsagames.com\/et4g23\/2025\/05\/11\/skill-tree-pt-4\/#primaryimage"},"image":{"@id":"https:\/\/sites.wsagames.com\/et4g23\/2025\/05\/11\/skill-tree-pt-4\/#primaryimage"},"thumbnailUrl":"https:\/\/sites.wsagames.com\/et4g23\/wp-content\/uploads\/sites\/27\/2025\/05\/image-114-1024x432.png","datePublished":"2025-05-11T16:04:13+00:00","dateModified":"2025-05-11T16:54:21+00:00","author":{"@id":"https:\/\/sites.wsagames.com\/et4g23\/#\/schema\/person\/56387a1dc0de878bb33ce4c478f22963"},"breadcrumb":{"@id":"https:\/\/sites.wsagames.com\/et4g23\/2025\/05\/11\/skill-tree-pt-4\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/sites.wsagames.com\/et4g23\/2025\/05\/11\/skill-tree-pt-4\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/sites.wsagames.com\/et4g23\/2025\/05\/11\/skill-tree-pt-4\/#primaryimage","url":"https:\/\/sites.wsagames.com\/et4g23\/wp-content\/uploads\/sites\/27\/2025\/05\/image-114.png","contentUrl":"https:\/\/sites.wsagames.com\/et4g23\/wp-content\/uploads\/sites\/27\/2025\/05\/image-114.png","width":1251,"height":528},{"@type":"BreadcrumbList","@id":"https:\/\/sites.wsagames.com\/et4g23\/2025\/05\/11\/skill-tree-pt-4\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/sites.wsagames.com\/et4g23\/"},{"@type":"ListItem","position":2,"name":"Skill Tree &#8211; Pt 4"}]},{"@type":"WebSite","@id":"https:\/\/sites.wsagames.com\/et4g23\/#website","url":"https:\/\/sites.wsagames.com\/et4g23\/","name":"E-Jay Tripoli (Year 2 Archive)","description":"A documentation of my work for Year 2 - Studying Games Design and Art at the University of Southampton","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/sites.wsagames.com\/et4g23\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/sites.wsagames.com\/et4g23\/#\/schema\/person\/56387a1dc0de878bb33ce4c478f22963","name":"et4g23","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/477d521b3b86e4ef27181bf784cd1a145a38c7d6a0154a478d3c858d26298bec?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/477d521b3b86e4ef27181bf784cd1a145a38c7d6a0154a478d3c858d26298bec?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/477d521b3b86e4ef27181bf784cd1a145a38c7d6a0154a478d3c858d26298bec?s=96&d=mm&r=g","caption":"et4g23"},"url":"https:\/\/sites.wsagames.com\/et4g23\/author\/et4g23\/"}]}},"_links":{"self":[{"href":"https:\/\/sites.wsagames.com\/et4g23\/wp-json\/wp\/v2\/posts\/1420","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/sites.wsagames.com\/et4g23\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/sites.wsagames.com\/et4g23\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/sites.wsagames.com\/et4g23\/wp-json\/wp\/v2\/users\/28"}],"replies":[{"embeddable":true,"href":"https:\/\/sites.wsagames.com\/et4g23\/wp-json\/wp\/v2\/comments?post=1420"}],"version-history":[{"count":5,"href":"https:\/\/sites.wsagames.com\/et4g23\/wp-json\/wp\/v2\/posts\/1420\/revisions"}],"predecessor-version":[{"id":1443,"href":"https:\/\/sites.wsagames.com\/et4g23\/wp-json\/wp\/v2\/posts\/1420\/revisions\/1443"}],"wp:attachment":[{"href":"https:\/\/sites.wsagames.com\/et4g23\/wp-json\/wp\/v2\/media?parent=1420"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/sites.wsagames.com\/et4g23\/wp-json\/wp\/v2\/categories?post=1420"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/sites.wsagames.com\/et4g23\/wp-json\/wp\/v2\/tags?post=1420"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}