-Househunting has been unexpectedly time-consuming, but I'll share my work in progress towards the attack-movement loop. Hopefully now that an offer was accepted, I'll find more time to iron out the design.
+Househunting has been unexpectedly time-consuming, but I'll share the tentative design for the attack-movement loop. Hopefully now that an offer was accepted, I'll find some time to iron out the design before packing and moving begins.
-Currently, I'm working on the attack loop, so that the character maintains attack range while attacking. The flow is complicated to follow, but this is how it works for now:
+The attack-movement loop needs to allow the character maintain attack range while attacking. The flow is complicated to follow, but this is how it works for now:
-The code is color-coded by object.
+The code is color-coded by object. Warm gray is input, orange is the character's action module, yellow is the character, yellow-green is the character's equipment module, blue-green is the attack handler, blue is the AI's attack module, purple is the AI's movement module, pink is the AI, brown is the KnowledgeBase's MessageBus, and cool gray is the character's kinematic body.
the loop explained
Upon attack input, the character sets up for attacking and creates an attack timer. On timeout, the character's weapon swings. If the character is out of range, the "out_of_range" signal is emitted. Otherwise, the weapon successfully swings, either emitting "target_dead" or "hit."
@@ -28,6 +28,8 @@ Then the AI receives the "arrived_at_attack_target" signal and prompts the chara
in-game
It works in-game, too, but it's pretty janky, especially without animations. If the slime is slow enough, the player character attacks until it gets too far away, moves back in range, and continues attacking. If it's too fast, though, she never gets to attack and jitters constantly after the slime.
+
+Too fast:
- Blessfrey is a 2D action RPG developed for PC in Godot Engine.
-
-Edit your skillbar from hundreds of skills to fight enemies, solve puzzles, + explore.
-
-Inspired by Guild Wars 1 and Magic: The Gathering.
-
- Blessfrey.me is not using sponsored posts or affiliate links.
-
- Blessfrey.me is not collecting personal information + has no cookies.
-
- Thank you for following the development of Blessfrey.
+
+ disclosure
+
-
diff --git a/src/views/diary-boxes_original.tpl b/src/views/diary-boxes_original.tpl
new file mode 100644
index 0000000..4289beb
--- /dev/null
+++ b/src/views/diary-boxes_original.tpl
@@ -0,0 +1,45 @@
+
+
+
+
about
+ Blessfrey is a 2D action RPG developed for PC in Godot Engine.
+
+Edit your skillbar from hundreds of skills to fight enemies, solve puzzles, + explore.
+
+Inspired by Guild Wars 1 and Magic: The Gathering.
+
+ Blessfrey.me is not using sponsored posts or affiliate links.
+
+ Blessfrey.me is not collecting personal information + has no cookies.
+
+ Thank you for following the development of Blessfrey.
+
+
diff --git a/src/views/diary-original.tpl b/src/views/diary-original.tpl
new file mode 100644
index 0000000..308f874
--- /dev/null
+++ b/src/views/diary-original.tpl
@@ -0,0 +1,232 @@
+% rebase('frame.tpl')
+% import re
+
+
+
+ % max_pages = int((total - 1) / limit)
+<%
+ # page never below 0
+ if page <= 0:
+ page = 0
+ end
+ # page never over maximum
+ if page > max_pages:
+ page = max_pages
+ end
+%>
+
+ % # << is always active link pointing to 0
+ % #<<
+
+
+
+
+ % # < points to 0 if page 0 or below
+ % if page <= 0:
+ % #<
+
+
+
+ % # < points to previous page otherwise
+ % else:
+ % #<
+
+
+
+ % end
+
+
+
+
+ % # fill out number cluster to the left when page is high
+ % if max_pages > cluster and page > max_pages - cluster:
+ % for j in range(cluster - max_pages + page):
+
+ % end
+ % end
+
+ % # form cluster of number links around page
+ % for i in range(max(0,page - cluster), min(max_pages + 1,page + cluster + 1)):
+ % # bold current page number
+ % if i == page:
+
+ {{i}}
+
+ % # form neighboring numbers into links
+ % else:
+
+ % end
+ % end
+
+ % # fill out number cluster to the right when page is low
+ % if page <= cluster - 1 and max_pages > page + cluster:
+ % for j in range(cluster - page):
+
+
+ % # > points to max if page is at or above maximum
+ % if page >= max_pages:
+ % #>
+
+
+
+ % # > point to next page otherwise
+ % else:
+ % #>
+
+
+
+ % end
+
+ % # >> is always active link to maximum page
+ % #>>
+
+
+
+
+
+
+
+
+
+
+ % for s in snippets[page * limit:page * limit + limit]:
+
+ % max_pages = int((total - 1) / limit)
+<%
+ # page never below 0
+ if page <= 0:
+ page = 0
+ end
+ # page never over maximum
+ if page > max_pages:
+ page = max_pages
+ end
+%>
+
+ % # << is always active link pointing to 0
+ % #<<
+
+
+
+
+ % # < points to 0 if page 0 or below
+ % if page <= 0:
+ % #<
+
+
+
+ % # < points to previous page otherwise
+ % else:
+ % #<
+
+
+
+ % end
+
+
+
+
+ % # fill out number cluster to the left when page is high
+ % if max_pages > cluster and page > max_pages - cluster:
+ % for j in range(cluster - max_pages + page):
+
+ % end
+ % end
+
+ % # form cluster of number links around page
+ % for i in range(max(0,page - cluster), min(max_pages + 1,page + cluster + 1)):
+ % # bold current page number
+ % if i == page:
+
+ {{i}}
+
+ % # form neighboring numbers into links
+ % else:
+
+ % end
+ % end
+
+ % # fill out number cluster to the right when page is low
+ % if page <= cluster - 1 and max_pages > page + cluster:
+ % for j in range(cluster - page):
+
+
+ % # > points to max if page is at or above maximum
+ % if page >= max_pages:
+ % #>
+
+
+
+ % # > point to next page otherwise
+ % else:
+ % #>
+
+
+
+ % end
+
+ % # >> is always active link to maximum page
+ % #>>
+
+
+
+
+
+
+% include diary-boxes.tpl
diff --git a/src/views/diary.tpl b/src/views/diary.tpl
index a33af3d..1f6f865 100644
--- a/src/views/diary.tpl
+++ b/src/views/diary.tpl
@@ -1,234 +1,13 @@
% rebase('frame.tpl')
-% import re
-
-
-
- % max_pages = int((total - 1) / limit)
-<%
- # page never below 0
- if page <= 0:
- page = 0
- end
- # page never over maximum
- if page > max_pages:
- page = max_pages
- end
-%>
-
- % # << is always active link pointing to 0
- % #<<
-
-
-
-
- % # < points to 0 if page 0 or below
- % if page <= 0:
- % #<
-
-
-
- % # < points to previous page otherwise
- % else:
- % #<
-
-
-
- % end
-
+
+
+ <<
-
-
- % # fill out number cluster to the left when page is high
- % if max_pages > cluster and page > max_pages - cluster:
- % for j in range(cluster - max_pages + page):
-
- % end
- % end
-
- % # form cluster of number links around page
- % for i in range(max(0,page - cluster), min(max_pages + 1,page + cluster + 1)):
- % # bold current page number
- % if i == page:
-
- {{i}}
-
- % # form neighboring numbers into links
- % else:
-
- % end
- % end
-
- % # fill out number cluster to the right when page is low
- % if page <= cluster - 1 and max_pages > page + cluster:
- % for j in range(cluster - page):
-
-
- % # > points to max if page is at or above maximum
- % if page >= max_pages:
- % #>
-
-
-
- % # > point to next page otherwise
- % else:
- % #>
-
-
-
- % end
-
- % # >> is always active link to maximum page
- % #>>
-
-
-
-
-
-
-
-
-
-
- % for s in snippets[page * limit:page * limit + limit]:
-
- % max_pages = int((total - 1) / limit)
-<%
- # page never below 0
- if page <= 0:
- page = 0
- end
- # page never over maximum
- if page > max_pages:
- page = max_pages
- end
-%>
-
- % # << is always active link pointing to 0
- % #<<
-
-
-
-
- % # < points to 0 if page 0 or below
- % if page <= 0:
- % #<
-
-
-
- % # < points to previous page otherwise
- % else:
- % #<
-
-
-
- % end
-
-
-
-
- % # fill out number cluster to the left when page is high
- % if max_pages > cluster and page > max_pages - cluster:
- % for j in range(cluster - max_pages + page):
-
- % end
- % end
-
- % # form cluster of number links around page
- % for i in range(max(0,page - cluster), min(max_pages + 1,page + cluster + 1)):
- % # bold current page number
- % if i == page:
-
- {{i}}
-
- % # form neighboring numbers into links
- % else:
-
- % end
- % end
-
- % # fill out number cluster to the right when page is low
- % if page <= cluster - 1 and max_pages > page + cluster:
- % for j in range(cluster - page):
-
-
- % # > points to max if page is at or above maximum
- % if page >= max_pages:
- % #>
-
-
-
- % # > point to next page otherwise
- % else:
- % #>
-
-
-
- % end
-
- % # >> is always active link to maximum page
- % #>>
-
-
-
+% include diary-boxes.tpl
+