locations, items, controls, proxemics, setting

This commit is contained in:
chimchooree
2022-11-17 23:52:18 -06:00
parent 904ecb76da
commit 6367ad8696
19 changed files with 144 additions and 29 deletions
+2 -1
View File
@@ -3,7 +3,8 @@
<br>
<h2>list of default controls </h2>
<p><ul>
<li>I: open inventory app</li>
<li><b>left-click:</b> target entity</li>
<li><b>I:</b> open inventory app</li>
</ul></p>
<br>
<h2>challenges/known issues </h2>
+8 -3
View File
@@ -15,20 +15,25 @@
<h2>move to pick up item </h2>
<p>Items can only be picked up by the player. They can be picked up via item targeting or through selecting 'pick up' on the <a href="/blessfrey-gdd/inspect">inspect menu</a>. <br></p>
<br>
<p>Item pickup is triggered when a <a href="/blessfrey-gdd/floor-item">floor item</a> is targeted, that is, a 'target' (left-click) triggers a $Item/Body/Sprite/Sprite.gd/_on_input_event. If 'no_move_to_target' (shift) is held while targeting, the item will be targeted without initiating pickup. Otherwise, floor_item.gd/target_event(viewport,event,shape_idx) is called to set the target and handle the input before prompting the player to consider pickup. <br></p>
<p>Item pickup is triggered when a <a href="/blessfrey-gdd/floor-item">floor item</a> is targeted, that is, a <a href="/blessfrey-gdd/controls">'target' (left-click)</a> triggers a $Item/Body/Sprite/Sprite.gd/_on_input_event. If 'no_move_to_target' (shift) is held while targeting, the <a href="/blessfrey-gdd/floor-item">floor item</a> will be targeted without initiating pickup. Otherwise, floor_item.gd/target_event(viewport,event,shape_idx) is called to set the target and handle the input before prompting the player to consider pickup. <br></p>
<br>
<p>Item pickup is also an option on the <a href="/blessfrey-gdd/floor-item">floor items</a>' <a href="/blessfrey-gdd/inspect">inspect menu</a>. Choosing it triggers that <a href="/blessfrey-gdd/floor-item">floor item</a>'s id_pressed(id), which calls the associated method from its inspect_options dictionary: floor_item.gd/move_player_then_pickup(), prompting the player to consider pickup. <br></p>
<br>
<p>Character.gd/consider_pickup(item) passes to UserControl/pickup(item). The next branch depends on a distance check. <br></p>
<br>
<p>If the item is within the player's <a href="/blessfrey-gdd/proxemics">intimate distance</a>, the character will be prompted to pick up the item.
<p>If the <a href="/blessfrey-gdd/floor-item">floor item</a> is within the player's <a href="/blessfrey-gdd/proxemics">intimate distance</a>, the character will be prompted to pick up the <a href="/blessfrey-gdd/floor-item">floor item</a>. <br></p>
<br>
<p>Otherwise, <a href="/blessfrey-gdd/pathfinding">pathfinding</a> begins towards the <a href="/blessfrey-gdd/floor-item">floor item</a>. Upon arrival, it calls floor_item.pick_up().pick_up(). The <a href="/blessfrey-gdd/floor-item">floor item</a>'s pick_up removes itself from the room and returns the base item, then the <a href="/blessfrey-gdd/inventory">inventory system</a> takes care of the rest. <br></p>
<br>
<h2>drop item </h2>
<p>Items can be dropped from the <a href="/blessfrey-gdd/inventory">inventory</a> app when the player selects 'drop' on the <a href="/blessfrey-gdd/inspect">inspect menu</a>. <br></p>
<br>
<p>Choosing 'drop' triggers that <a href="/blessfrey-gdd/inventory-item">inventory item</a>'s id_pressed(id), which calls the associated method from its inspect_options dictionary: inventory_item.gd/drop. It, in turn, calls the drop method off its <a href="/blessfrey-gdd/base-item">base item</a>.<br></p>
<br>
<p>The <a href="/blessfrey-gdd/base-item">base item</a>'s drop() emits the 'dropped' signal, which triggers the inventory item to queue_free then the inventory app to be refreshed. (connected @ InvContainer.gd/make_inventory_items(base_item).
<br>
<h2>challenges/known issues </h2>
<p> <br></p>
<p>pick up in range puts a floor item in the programmatic inventory. out of range puts a proper base item. STOP at line 309 on character.gd. <br></p>
<br>
<h2>works for...</h2>
<ul>
+2 -2
View File
@@ -1,9 +1,9 @@
<p>Generally, proxemics refers to the study of the relationship between social beings and physical distance.
Since spatial distance in Blessfrey (and all games) varies wildly due to distortion of physical proportions and angles, I am addressing the mechanical distance, i.e. the reach of a weapon, the distance from which an item can be picked up, and earshot. Relative distances are modeled after <a href="https://en.wikipedia.org/wiki/Proxemics">Edward T. Hall's interpersonal distances of man</a>: public, social, personal, and intimate distance. <br></p>
<br>
<p>It's so unfortunate that proxemics became associated with the pandemic over anthropology. I kinda cringe when I hear "social distance" now tbh. I still like the implication of a generalized "personal bubble" instead of the solely combat-oriented "aggro bubble" of other RPGs. I don't really want to change, but the term just got sour. Whatever, I guess. <br></p>
<p>I like the implication of a generalized "personal bubble" instead of the solely combat-oriented "aggro bubble" of other RPGs. It's so unfortunate that the pandemic was everyone's introduction to proxemics. I don't really wanna change it, but I kinda cringe when I hear "social distance" now. Whatever, I guess. <br></p>
<img src="/static/img/gdd/personalbubble.svg" alt="(chart: concentric rings. From outer to inner, public space is 25-12', social space is 12-4', personal space is 4-1.5', and intimate space is 1.5' or less.)">
<p>(image was made by WebHamster for Wikipedia) <br></p>
<p>(image by WebHamster for Wikipedia) <br></p>
<br>
<p>Distances are declared in the mobile entity's mobile.gd. I...don't know what Godot units are supposed to be. I think they are pixels? Let's call them degrees(❥). I estimate 1❥ to equal ~2.5 social inches. <br></p>
<br>
+4 -12
View File
@@ -3,18 +3,10 @@
<div class="content-grid">
<h1><a href="/gdd">blessfrey gdd</a> - setting</h1>
<p>Blessfrey takes place in Lucrest, Nickajack, a small town unknowingly situated over an abyssal dungeon. <br></p>
</div>
% import random
% rebase('frame.tpl')
<div class="content-grid"><div class="center">
<h1>blessfrey setting </h1>
<p>Blessfrey's world starts in Lucrest, an economic boomtown in the rural South, and expands deep through the pockets and tunnels of the earth until another world is discovered. <br></p>
<br>
<ul>
% for i in [["csa","blessfrey-csa"],["castaway kingdom","blessfrey-castaway-kingdom"],["huntsville","blessfrey-huntsville"],["Lucrest","blessfrey-lucrest"],["usa","blessfrey-usa"]]:
<li class="latest">{{random.choice(['.','•','☆','★'])}}&#9;<a href=/{{i[1]}}>{{i[0]}}</a></li>
% end
% for i in ["CSA"],["castaway"],["huntsville"],["Lucrest"],["USA"]:
<li class="latest">{{random.choice(['.','•','☆','★'])}}&#9;<a href=/{{i}}>{{i}}</a></li>
% end
</ul>
</div></div>
</div>