working on graphics, gdd inspect menu
This commit is contained in:
+55
-59
@@ -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(['.','•','☆','★'])}}	<a href=/{{i[1]}}>{{i[0]}}</a></li>
|
<li class="latest">{{random.choice(['.','•','☆','★'])}}	<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(['.','•','☆','★'])}}	<span class=unusual>feature: export, embed</span> </li>
|
<li class="latest">{{random.choice(['.','•','☆','★'])}}	<span class=unusual>feature: export, embed</span> </li>
|
||||||
@@ -34,7 +34,7 @@
|
|||||||
<li class="latest">{{random.choice(['.','•','☆','★'])}}	<span class=unusual>containers</span> </li>
|
<li class="latest">{{random.choice(['.','•','☆','★'])}}	<span class=unusual>containers</span> </li>
|
||||||
<li class="latest">{{random.choice(['.','•','☆','★'])}}	<span class=unusual>travel between rooms</span> </li>
|
<li class="latest">{{random.choice(['.','•','☆','★'])}}	<span class=unusual>travel between rooms</span> </li>
|
||||||
<li class="latest">{{random.choice(['.','•','☆','★'])}}	<span class=unusual>drop items</span> </li>
|
<li class="latest">{{random.choice(['.','•','☆','★'])}}	<span class=unusual>drop items</span> </li>
|
||||||
<li class="latest">{{random.choice(['.','•','☆','★'])}}	<span class=unusual>inspect</span> </li>
|
<li class="latest">{{random.choice(['.','•','☆','★'])}}	<span class=rare>inspect</span> </li>
|
||||||
<li class="latest">{{random.choice(['.','•','☆','★'])}}	<span class=unusual>spawnpoints</span> </li>
|
<li class="latest">{{random.choice(['.','•','☆','★'])}}	<span class=unusual>spawnpoints</span> </li>
|
||||||
<li class="latest">{{random.choice(['.','•','☆','★'])}}	<span class=unusual>XP, levels</span> </li>
|
<li class="latest">{{random.choice(['.','•','☆','★'])}}	<span class=unusual>XP, levels</span> </li>
|
||||||
<li class="latest">{{random.choice(['.','•','☆','★'])}}	<span class=unusual>skillbar - drag & drop, enforces deckbuilding rules</span> </li>
|
<li class="latest">{{random.choice(['.','•','☆','★'])}}	<span class=unusual>skillbar - drag & drop, enforces deckbuilding rules</span> </li>
|
||||||
Reference in New Issue
Block a user