Replies: 1 comment
-
Thanks for the large feedback on Rue! I'll send my thoughts here whenever I am ready.
Currently a large portion of the code is decoupled and abstracted heavily. Automated testing is possible (if not already possible) to achieve. However, I would suggest we wait on this because the main codebase is still constantly changing. Though, we can start looking into automating stuff that's already pretty much solidified.
Yes I agree, I've added stage information during Init, Start, and Stop in d8656a7 Otherwise, we could also simply log every pipeline registration; though the log level for that would have to be debug as there are a lot of pipeline registrations on startup.
This is not clearly stated anywhere in the codebase currently but the search command does allow for globbing. For example: !item "*sword*" would return with results with the word sword in it. See: https://github.com/dazinator/DotNet.Glob#patterns As for efficiency and speed, yep. The currently implementation runs on a O(N) time complexity for each search, so for templates with large number of records such as Items would iterate over 13k strings every single time. There are a few alternatives I can think of:
I'm not too quite sure what this one means. |
Beta Was this translation helpful? Give feedback.
-
This discussion tracks the progress on state of various undeveloped features/enhancements or present bugs as I slowly review the entire plugin.
My main perspective on the requirements presented is based on idea that Rue should provide 2 main points:
Easy of use for E2E testing, as currently were still lack proper fully automated means of E2E testing yet, Rue should be able to offer partial solution for some aspects of that and offer easy way to attain any configuration of client states easily. Give a way to emulate/simulate/bypass certain events as to test them without having to go thru everything manually ingame which may be even impossible for lets say GM events or complex party quests.
Show what is already doable with the current state of affairs of neatly written codebase @Kaioru provided us with which was written and rewritten many times to take things like ease of extendibility and modifiability into account. As such offers a platform to test out protocol or game/login server code without actually having to modify the original code at all. What I personally consider an attractive aspect of modularity/isolability being part of the design.
Generic issues
Lack of more descriptive logging of init and mainly start of plugins.
CommandManager
CommandManager
some kind of memory which would make a history of commands and would allow to move backwards/forwards in processing that history to undo/redo n command "steps".Conversations
ConversationTextFormatter
should generalize and unify approaches for generating text for conversation speakers. This implies using the client text formatting syntax to achieve things like positioning(left, right, middle, top, bottom), whitespace management(toBlock, toParagraph, insertEmptyLine(int count)), character formatting(coloring, italics, bold), hyperlinking(items, skills, characterName, mobs, quests), lists formatting(create, remove, fromText, reorder), progress reporting, pagination(offer ability to make book of pages... determine text length on each page, split into pages)ToChat
option requires to establish aConversationChatContext
.Implement better textual search handling
Record data storage, duplication, contextualization
IRecordSnapshot
->IStatRecordSnapshot
,ISkillRecordSnapshot
,IEquipRecordSnapshot
and implement on theseSetTo(IRecordSnapshot snapshot)
this gets you to wrappers/extensions likeSetToJob()
,SetToDefault()
,SetToQuestState()
, ultimately combining the snapshot interfaces into aICharacterBuildSnapshot
Login
Game
Help Command
Skill Command
ResetAll()
method merely sets all skill records to level 0, this doesn't imply the meaning of resetting to a default or previous state. This should be calledSetAllToZero()
as its common for an alt of a main chair to inherit some of skill levels in various blessings, for such char the default is not all records at 0 at all.Stat Command
Debug Command
ToChat
args should also implement selection menu and answer in chat window.Beta Was this translation helpful? Give feedback.
All reactions