working on graphics, gdd inspect menu

small-nav
chimchooree 2 years ago
parent 3cc979ea3b
commit 4b3d770985

@ -481,13 +481,6 @@ def demo():
info = {'css': 'demo', 'title': 'blessfrey demo', 'year': find_year()} info = {'css': 'demo', 'title': 'blessfrey demo', 'year': find_year()}
return template('demo.tpl', info) return template('demo.tpl', info)
# Blessfrey Presskit Page
@route('/blessfrey-gdd')
def gdd():
"""Game Design Document"""
info = {'css': 'gdd', 'title': 'blessfrey gdd', 'year': find_year()}
return template('bf-gdd.tpl', info)
# Diary Page # Diary Page
@route('/diary') # Start on first Diary page if no page given @route('/diary') # Start on first Diary page if no page given
def diary2(): def diary2():
@ -524,18 +517,64 @@ def fashion():
return template('fashion.tpl', info) return template('fashion.tpl', info)
# Blessfrey Game Design Document Page # Blessfrey Game Design Document Page
@route('/blessfrey-gdd')
def gddbf():
"""Game Design Document"""
info = {'css': 'gdd', 'title': 'blessfrey gdd', 'year': find_year()}
return template('bf-gdd.tpl', info)
@route('/gdd') @route('/gdd')
def gdd(): def gdd():
"""game design document""" return gddbf()
info = {'css': 'doc', 'title': 'blessfrey game design document', 'year': find_year()} # Blessfrey Mechanics
return template('bf-gdd.tpl', info) @route('/mechanics')
def mech():
"""mechanics"""
info = {'css': 'doc', 'title': 'blessfrey gdd - game mechanics', 'year': find_year()}
return template('bf-mechanics.tpl', info)
@route('/inspect')
def mech1():
"""inspect"""
info = {'css': 'doc', 'title': 'blessfrey gdd - game mechanics', 'year': find_year()}
return template('bf-mech-inspect.tpl', info)
# Species Page
@route('/race/') # if no species given
def spec4():
return species("human")
@route('/race/<species_name:path>')
def spec3(species_name):
return species(species_name)
@route('/species/') # if no species given
def spec2():
return species("human")
@route('/species/<species_name:path>')
def spec(species_name):
"""species page"""
loc = 'species/'
info = {'css': 'char', 'title': 'blessfrey - species | meet ' + species_name, 'year': find_year(), 'ocs': ["human","giant","serpent"], 'name': species_name, 'profile': prepare_profile(loc, species_name), 'gallery': find_gallery(species_name)}
abs_app_dir_path = os.path.dirname(os.path.realpath(__file__))
abs_views_path = os.path.join(abs_app_dir_path, 'views')
TEMPLATE_PATH.insert(0, abs_views_path )
return template(os.path.join(abs_views_path,'char.tpl'), info)
# Blessfrey Style Guide Page
@route('/style')
def style():
"""style guide"""
info = {'css': 'doc', 'title': 'blessfrey style guide', 'year': find_year()}
return template('style-guide.tpl', info)
# GDD Pages
@route('/vibe')
def vibe():
"""GDD Page"""
info = {'css': 'doc', 'title': 'blessfrey gdd - vibe', 'year': find_year()}
return template('bf-vibe.tpl', info)
# Home Page - Index Template # Home Page - Index Template
@route('/') @route('/')
def home(): def home():
"""home""" """home"""
loc = 'diary/entries/' loc = 'diary/entries/'
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])}
return template('index.tpl', info) return template('index.tpl', info)
# Location Page # Location Page
@ -559,25 +598,12 @@ def me():
info = {'css': 'me', 'title': 'about me', 'year': find_year()} info = {'css': 'me', 'title': 'about me', 'year': find_year()}
return template('me.tpl', info) return template('me.tpl', info)
# Blessfrey Mechanics # Blessfrey - Feature Requirements Page
@route('/mechanics')
def mech():
"""mechanics"""
info = {'css': 'doc', 'title': 'blessfrey gdd - game mechanics', 'year': find_year()}
return template('bf-mechanics.tpl', info)
@route('/inspect')
def mech1():
"""inspect"""
info = {'css': 'doc', 'title': 'blessfrey gdd - game mechanics', 'year': find_year()}
return template('bf-mech-inspect.tpl', info)
# Blessfrey Feature Requirements Page
@route('/milestones') @route('/milestones')
def milestones(): def milestones():
"""feature requirements""" """feature requirements"""
info = {'css': 'doc', 'title': 'blessfrey milestones', 'year': find_year()} info = {'css': 'doc', 'title': 'blessfrey milestones', 'year': find_year()}
return template('requirements.tpl', info) return template('milestones.tpl', info)
# Planner Page # Planner Page
@route('/planner') @route('/planner')
@ -593,33 +619,6 @@ def presskit():
info = {'css': 'doc', 'title': 'blessfrey presskit', 'year': find_year()} info = {'css': 'doc', 'title': 'blessfrey presskit', 'year': find_year()}
return template('blessfrey-presskit.tpl', info) return template('blessfrey-presskit.tpl', info)
# Species Page
@route('/race/') # if no species given
def spec4():
return species("human")
@route('/race/<species_name:path>')
def spec3(species_name):
return species(species_name)
@route('/species/') # if no species given
def spec2():
return species("human")
@route('/species/<species_name:path>')
def spec(species_name):
"""species page"""
loc = 'species/'
info = {'css': 'char', 'title': 'blessfrey - species | meet ' + species_name, 'year': find_year(), 'ocs': ["human","giant","serpent"], 'name': species_name, 'profile': prepare_profile(loc, species_name), 'gallery': find_gallery(species_name)}
abs_app_dir_path = os.path.dirname(os.path.realpath(__file__))
abs_views_path = os.path.join(abs_app_dir_path, 'views')
TEMPLATE_PATH.insert(0, abs_views_path )
return template(os.path.join(abs_views_path,'char.tpl'), info)
# Blessfrey Style Guide Page
@route('/style')
def style():
"""style guide"""
info = {'css': 'doc', 'title': 'blessfrey style guide', 'year': find_year()}
return template('style-guide.tpl', info)
# Search Diary by Tag # Search Diary by Tag
@route('/diary/tag/<tagin>') # Start on first Diary tag page if no page given @route('/diary/tag/<tagin>') # Start on first Diary tag page if no page given
def tag2(tagin): def tag2(tagin):
@ -633,12 +632,9 @@ def tag(tagin, page):
info = {'css': 'diary', 'title': 'blessfrey developer diary', 'year': find_year(), 'snippets': list_snippets(pull_tag(gather_and_sort(loc), tagin)), 'latest': list_headlines(gather_and_sort(loc)[0:5]), 'tags': fill_word_cloud(curate_files(gather_files(loc))), 'total': len(curate_files(gather_files(loc))), 'limit': 8, 'cluster': 3, 'page': page} info = {'css': 'diary', 'title': 'blessfrey developer diary', 'year': find_year(), 'snippets': list_snippets(pull_tag(gather_and_sort(loc), tagin)), 'latest': list_headlines(gather_and_sort(loc)[0:5]), 'tags': fill_word_cloud(curate_files(gather_files(loc))), 'total': len(curate_files(gather_files(loc))), 'limit': 8, 'cluster': 3, 'page': page}
return template('diary.tpl', info) return template('diary.tpl', info)
# GDD Pages # BlessFREY
@route('/vibe') # play about diary dev
def vibe(): # play system character story info date
"""GDD Page"""
info = {'css': 'doc', 'title': 'blessfrey gdd - vibe', 'year': find_year()}
return template('vibe.tpl', info)
## Main ## ## Main ##

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 MiB

@ -5,7 +5,7 @@
<p>The vision for Blessfrey <br></p> <p>The vision for Blessfrey <br></p>
<br> <br>
<ul> <ul>
% 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"]]
<li class="latest">{{random.choice(['.','•','☆','★'])}}&#9;<a href=/{{i[1]}}>{{i[0]}}</a></li> <li class="latest">{{random.choice(['.','•','☆','★'])}}&#9;<a href=/{{i[1]}}>{{i[0]}}</a></li>
% end % end
</ul> </ul>

@ -5,10 +5,19 @@
<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>
</div> </div>

@ -83,5 +83,12 @@ license: Public Domain<br>
font: pixel sparrow<br> font: pixel sparrow<br>
chimchooree<br> chimchooree<br>
license: Public Domain<br> license: Public Domain<br>
<br>
<h2>website </h3>
business card texture (dev page) <br>
photo: Free Texture Image <br>
Pawel Czerwinski <br>
https://unsplash.com/photos/dgJT71cXlC4 <br>
license : https://unsplash.com/license <br>
</div> </div>
</div> </div>

@ -6,7 +6,7 @@
<br> <br>
<p>Focus and finish the game! <br></p> <p>Focus and finish the game! <br></p>
<br> <br>
<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>
<h2><span class=unique>0.0 - first</span> </h2> <h2><span class=unique>0.0 - first</span> </h2>
<ul> <ul>
<li class="latest">{{random.choice(['.','•','☆','★'])}}&#9;<span class=unusual>feature: export, embed</span> </li> <li class="latest">{{random.choice(['.','•','☆','★'])}}&#9;<span class=unusual>feature: export, embed</span> </li>
@ -34,7 +34,7 @@
<li class="latest">{{random.choice(['.','•','☆','★'])}}&#9;<span class=unusual>containers</span> </li> <li class="latest">{{random.choice(['.','•','☆','★'])}}&#9;<span class=unusual>containers</span> </li>
<li class="latest">{{random.choice(['.','•','☆','★'])}}&#9;<span class=unusual>travel between rooms</span> </li> <li class="latest">{{random.choice(['.','•','☆','★'])}}&#9;<span class=unusual>travel between rooms</span> </li>
<li class="latest">{{random.choice(['.','•','☆','★'])}}&#9;<span class=unusual>drop items</span> </li> <li class="latest">{{random.choice(['.','•','☆','★'])}}&#9;<span class=unusual>drop items</span> </li>
<li class="latest">{{random.choice(['.','•','☆','★'])}}&#9;<span class=unusual>inspect</span> </li> <li class="latest">{{random.choice(['.','•','☆','★'])}}&#9;<span class=rare>inspect</span> </li>
<li class="latest">{{random.choice(['.','•','☆','★'])}}&#9;<span class=unusual>spawnpoints</span> </li> <li class="latest">{{random.choice(['.','•','☆','★'])}}&#9;<span class=unusual>spawnpoints</span> </li>
<li class="latest">{{random.choice(['.','•','☆','★'])}}&#9;<span class=unusual>XP, levels</span> </li> <li class="latest">{{random.choice(['.','•','☆','★'])}}&#9;<span class=unusual>XP, levels</span> </li>
<li class="latest">{{random.choice(['.','•','☆','★'])}}&#9;<span class=unusual>skillbar - drag & drop, enforces deckbuilding rules</span> </li> <li class="latest">{{random.choice(['.','•','☆','★'])}}&#9;<span class=unusual>skillbar - drag & drop, enforces deckbuilding rules</span> </li>
Loading…
Cancel
Save