Categorygithub.com/Catizard/lampghost
modulepackage
0.0.0-20240829140843-9da684032e2f
Repository: https://github.com/catizard/lampghost.git
Documentation: pkg.go.dev

# README

LampGhost: The ghost system for BMS lamp tracker

[!CAUTION] Do not directly copy LampGhost to your oraja/LR2 directory, this might ruin your own save file. Copy them altogether to antother directory is recommanded.

[!CAUTION] This project is still in heavy development. Any change to database related code would destroy your current database. You have to delete .lampghost directory at your home directory to give a fresh start.

Main Goals

  • Diff yours and other players' lamp status at some point in the past
  • Support lr2 score import
  • Full docs support

LampGhost aims at diff with previous status, which means you can "revert" other players' play record after some point (e.g only using the record before the rival reaches ★4)

This project so called "lampghost" is because it's like the "ghost record" in car racing game.

Quick start

Build this project

$ go build

Initialize

Before you doing anything, you need to call init command to setup LampGhost's database.

$ ./lampghost init

[!NOTE] LampGhost's data is stored in home directory by default, which is $HOME/.lampghost on linux/osx and %USERPROFILE%\.lampghost\ on windows.

[!WARNING] Calling ./lampghost init the second time won't delete any data file expect lampghost.db. In other words, init command doesn't really init everything, all data files expect lampghost.db still locate at your home directory. I haven't make a decision on init behaviour, so in the current situation, if you do believe there is a mistake, you can delete the .lampghost directory direclty at your home directory.

Import difficulty table

$ ./lampghost table add --alias insane "http://zris.work/bmstable/insane/insane_header.json"
$ ./lampghost table add --alias insane2 "http://zris.work/bmstable/insane2/insane_header.json"

[!NOTE] By calling a command with no argument provide or with --help would print help message for a command.

[!WARNING] Just like setting up your oraja steps, you have to import "NEW GENERATION INSANE" table to get courses data. The insane table doesn't contain it!

Copy database file

Take me(Catizard) and my rival(Red) as an example. Make a new directory and put scorelog.db and songdata.db file into it.
After this step done, your directory may look like:

.
├── Catizard
│   ├── scorelog.db
│   └── songdata.db
├── Red
│   ├── red_scorelog.db
│   └── songdata.db
└── lampghost

[!NOTE] This is not a strictly form you must to keep, you can put them all in one directory. It's only a recommand way as an example.

Import rivals

Register Catizard and Red into LampGhost

$ ./lampghost rival add "Catizard" --scorelog ./Catizard/scorelog.db --songdata ./Catizard/songdata.db
$ ./lampghost rival add "Red" --scorelog ./Red/red_scorelog.db --songdata ./Red/songdata.db

If you are LR2 user:

$ ./lampghost rival add "Catizard" --user ./Catizard/Catizard.db

[!NOTE] You can configure a rival with oraja database file and LR2 database file both exists.

Build tags(Optional)

Tags are similar to milestone. This step is to generate some tags by lampghost (e.g first clear of ★5 course)

$ ./lampghost rival build tags --rival "Red"

Start race

$ ./lampghost ghost Catizard Red --tags

Hint: use H/J/K/L or arrow keys to move, enter to select, esc to back

[!NOTE] If you haven't generate any tags, remove '--tag' flag.

Further

  • I'm new to go language, need some help for managing packages (especially service part)
  • Better frustation (need advice & help)
  • Add configuration file support
  • Support "shrink" mode: only one songdata.db file is used across everywhere, only scorelog.db need be loaded. One songdata.db file would be around 60MB~150MB which is too large for collecting
  • Form of LampGhost is not good: you need ask your friend to give you the scorelog.db and songdata.db file. Website is a better choice. like cinnamon.
  • Draw charts of your (or others) progression
  • Remove CGO dependency
  • Full tui support?

# Packages

Copyright © 2024 Catizard <[email protected]> */.