* rotate general name when it becomes too long
* remember x and y pos of window
* config.language, and can change translations according to language
* standard i18n (WIP)
* client translation (WIP)
* translation for standard cards
* translate skill name and adjust UI
* android: dont copy RSA key and test.lua(generated by fkp)
* remove debug code
* ai think
* fixbug: 100% cpu per thread
* init ai
* fix bug, next step is to remove all feasible
* remame vscode -> lsp
* add some lsp comment
* rewrite feasible
* Random AI
* fixbug: chooseplayer
* liuli
* move checkNoHuman to waitForAiReply
* prototype for cardLimitation skill
* add Exppattern:Parse to static.lua
* remove unnecessary static
* todo
* todo.md
* doc for move cards
* weapons excluding qinggang
* equip sound and emotion
* remove silence on the starting of using skill
* add audio skill for TMD equip
* fixbug: running and observing
* when PreUseCard is broken, jump to move cards to discardPile
* doc for diy
* addToPile
* viewPile (WIP)
* fix git bug
* auto update packages when md5 fail
* use thread when updating pack
* correct status() handling
* update fkp
* remove PKGBUILD since it's presented in AUR repo
* fix fkp md5 bug
* extensible qml
* set bigAnim's z to 999
* nioh sheild
* lijian
* now mod can return nil
* if dmg.nature == nil then = normal
* disable notifyUI when qWarning
* fix lijian and gender problem
* add translation for askforguanxing
* fix bug: observer will kill room that not take action
* fix bug: observe and reconnect
* fix bug: notifyCardMove
* fix bug: hegmony nullification
* fix bug: never show test generals in normal askforgeneral
* if game doesn't start, marshal() will only send simple information