kasper573 / racp Goto Github PK
View Code? Open in Web Editor NEWrAthena Control Panel
rAthena Control Panel
Implement for item, map and monster search.
After the move to tRPC in #72, redux is no longer used widely. The few uses can be replaced with regular react state. This will reduce the bundle size significantly.
A board that displays which MVPs are alive and dead
Primarily for item info, but potentially for other things too, so make it generic.
Use typesafe cli arguments that default to env variables of the same name
Remember to add a new e2e test entry in the CI.
Update createRpcMiddleware to allow payload size limit control per entry.
Likely off by one error in pagination. Try searching for oridecon. On a large screen, the item is listed. On a small screen, it's on the second page, but only 1 page is shown.
This should be done after a full test suite is finished (#52)
Try out https://github.com/aiden/rpc_ts
A new implementation of https://github.com/ksandin/ragnarok-boss-tracker
Generate a matcher based on generic interface but produce concrete set of types for all desired permutations. The reason this is necessary is because the filter runtime doesn't handle intersecting types. The current matcher already avoids this by explicitly defining concrete types. Refactoring should produce some code that does this automatically so the developer doesn't have to think about this.
By generic meta service I mean a service that provides system wide meta data by reducing all item and monster data into the various meta data we need. This service will likely handle more entities in the future.
This new service will allow us to expose the monster meta data we need to be able to add all desired filters to the monster search page, ie. monster level ranges, monster sizes, etc. (Meaning this issue is a prerequisite to #6 )
All rathena data e2e tests are currently based on the data that currently exist in the base rathena installation. This is flaky, since rathena could change their data.
Things to try:
rAthena supports custom imports for all data. So utilizing this would make our tests also confirm that RACP handles imported files. It also allows us to rely on our own fixture data instead of assuming what the data looks like in the rathena instance, which is the primary goal of this issue. But what's best is that it allows us to also keep sanity testing the rathena data, but without relying on it. If rAthena releases updates that breaks RACP, we will know.
This is almost as good as 1, but less graceful. It allows us to rely on our own fixture data while we keep sanity testing rAthena, but it will not be confirming that we support the rAthena import flow.
This solves the primary goal of this issue, but it would make us blind to rAthena changes. They could release breaking changes and we would not be able to automatically know.
Post processing is currently done per item * per request. This should not be necessary. The only thing that should happen per request is filtering.
Is currently ~50%. Should be 90-100%.
Basic password reset flow is missing. Needs to be implemented.
Add as new tab
Make it possible to browse all npc shops from the game (Not to be confused with vendors, user based shops).
ie. restart server or run in-game admin commands from the browser. Research possibilities before starting this task.
A tool that allows you to put together builds. A build consists of equipment and items of the users choice. For each build the tool can automatically generate an optimal farming guide: Which maps to go to, estimates on how many kills are required for the desired amount of drops.
Utilize rAthena user groups. Must update express middleware and rpc mechanism to support roles.
TSC yields error "Type instantiation is excessively deep and possibly infinite" if not using assertion in the following code:
const ItemGrid = DataGrid.define<Item, ItemFilter, Item["Id"]>({
// Without assertion typescript yields possibly infinite error
query: useSearchItemsQuery as unknown as DataGridQueryFn<Item, ItemFilter>,
id: (item) => item.Id,
link: (id) => router.item().view({ id }),
columns: {
Name: "Name",
Buy: "Buy",
Sell: "Sell",
Weight: "Weight",
Attack: "Atk",
MagicAttack: "MAtk",
Defense: "Def",
EquipLevelMin: "Min Level",
EquipLevelMax: "Max Level",
Slots: "Slots",
},
});
Task is done when webpack production build no longer produces a warning.
Things to try:
This is to enable filtering in items affecting element, status, race, etc.
All entities should be editable. Make generic system. Should seamlessly edit all data sources, ie. itemInfo.lua and item_db.yml, etc. Admin menu should also expose a download function for any uploaded/changed files.
Monster and item images are currently duplicated for all entities sharing a sprite. This is bad for several reasons:
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.