info={'css':'index','title':'chimchooree\'s dev space - blessfrey','year':find_year(),'news':list_headlines(sort_files(curate_files(gather_files(loc)))[0:10])}
info={'css':'index','title':'blessfrey ~ action rpg by chimchooree','year':find_year(),'news':list_headlines(sort_files(curate_files(gather_files(loc)))[0:10])}
% for i in [["art direction","blessfrey-art"],["characters","blessfrey-cast"],["credits","blessfrey-credits"],["game mechanics","blessfrey-mechanics"],["jobs","blessfrey-jobs"],["keywords","blessfrey-keywords"],["milestones","blessfrey-milestones"],["setting","blessfrey-setting"],["skills","blessfrey-skills"],["sound","blessfrey-sound"],["story","blessfrey-story"],["style guide","style-guide"],["terms","blessfrey-terms"],["tweaks","tweaks"],["vibe","blessfrey-vibe"]]
% for i in [["art direction","blessfrey-art"],["characters","blessfrey-cast"],["credits","blessfrey-credits"],["game mechanics","blessfrey-mechanics"],["IDs","blessfrey-ids"],["jobs","blessfrey-jobs"],["keywords","blessfrey-keywords"],["milestones","blessfrey-milestones"],["setting","blessfrey-setting"],["skills","blessfrey-skills"],["sound","blessfrey-sound"],["story","blessfrey-story"],["style guide","style-guide"],["terms","blessfrey-terms"],["tweaks","tweaks"],["vibe","blessfrey-vibe"]]
<p>Right-click on an tangible entity or inventory item to open a popup inspect menu with all relevant inspect options. Selecting one will execute a method. Examples are 'follow Chloe' (pathfind after Chloe wherever she moves until action is cancelled), 'pick up clover' (item pickup), and 'examine button' (write a descriptive line about her in Helia's thought bubble) <br></p>
<p>Right-click on an tangible entity or inventory item to open a popup inspect menu with all relevant inspect options. Selecting one will execute a method. Examples are 'follow Chloe' (pathfind after Chloe wherever she moves until action is cancelled), 'pick up clover' (item pickup), and 'examine button' (write a descriptive line about her in Helia's thought bubble) <br></p>
<br>
<br>
<h2>structure </h2>
<h2>structure </h2>
<p>Every tangible entity has an exported array of inspect_options. {'english_tr_key':'method','tr_pick up':'pickup','tr_examine':'examine_surprise'}. Every tangible has at least 'examine.' <br></p>
<p>Every tangible entity has an exported dictionary of inspect_options: {index:['tr_key','method']}. For example, {0:['tr_pick up','pickup'],1:['tr_extinguish','extinguish']}. Every tangible appends 'examine' at ready. <br></p>
<br>
<p>The Clickable has a _ready input event signal looking for "right-click." <br></p>
<br>
<p>The inspect menu ("res://UI/InspectMenu/InspectMenu.tscn") is instanced at declaration and added as a child at ready in the UI singleton. <br></p>
<br>
<br>
<h2>logic </h2>
<h2>logic </h2>
<p>When tangible entity is right-clicked, the inspect menu adds a UI option for each inspect option. <br></p>
<p>When tangible entity is right-clicked (@ $Body/Sprite/Clickable), the UI enters InspectMenu with its subject set. The "id_pressed" signal is reset for each subject. InspectMenu connects "about_to_show" the first time it's needed and keeps it forever. Before popup(), it resets, adds a label at an offset with the subject's display name, then adds a UI option for each inspect option. <br></p>
<br>When a selection is made,
<br>
<p>When a selection is made, the "id_pressed" signal calls "id_pressed" on the subject, which calls the method at its inspect_options[pressed_id][1]. So 'examine' calls 'examine,' which is in tangible.gd. Most related methods are on tangible.gd, though they may be at a more specific script. <br></p>
<br>
<h2>challenges/known issues </h2>
<p>It's not obvious how to get popupmenus to appear at specific coordinates. I get it to appear at the subject's current location by setting <code>rect_global_position = get_global_mouse_position()</code> the line immediately after <code>popup()</code>. <br></p>
<br>
<p>The inspect menu retains the largest ever size going forward. I reset the size to 20,20 when clearing previous options. <br></p>
<p>Legend: <span class=mundane>nothing at all</span>, <span class=common>designed</span>, <span class=unusual>basic implementation</span>, <span class=rare>intentionally designed, tested, documented</span>, <span class=unique>more or less finalized</span>
<p>Legend: <span class=mundane>nothing at all</span>, <span class=common>designed</span>, <span class=unusual>basic implementation</span>, <span class=rare>intentionally designed, documented, but with known issues</span>, <span class=unique>ironed out and polished</span>