ChangeLog: v0.1.9
This commit is contained in:
parent
1c6304f0f7
commit
375147afa1
|
@ -65,7 +65,7 @@ jobs:
|
||||||
run: |
|
run: |
|
||||||
mkdir FreeKill-release
|
mkdir FreeKill-release
|
||||||
cp build/FreeKill.exe FreeKill-release
|
cp build/FreeKill.exe FreeKill-release
|
||||||
cp -r qml Fk FreeKill-release
|
cp -r Fk FreeKill-release
|
||||||
cd FreeKill-release
|
cd FreeKill-release
|
||||||
windeployqt FreeKill.exe
|
windeployqt FreeKill.exe
|
||||||
cp -r ../.git .
|
cp -r ../.git .
|
||||||
|
|
18
CHANGELOG.md
18
CHANGELOG.md
|
@ -1,4 +1,22 @@
|
||||||
# ChangeLog
|
# ChangeLog
|
||||||
|
|
||||||
|
___
|
||||||
|
|
||||||
|
## v0.1.9
|
||||||
|
|
||||||
|
1. 实现移动场上一张牌
|
||||||
|
2. 实现用作记录牌名并可查看的mark
|
||||||
|
3. 将askForChoice和interaction的文本解析方式改为prompt
|
||||||
|
4. 新增属性将牌移至牌堆指定索引位置
|
||||||
|
5. 修改时机“游戏开始时”至正确位置
|
||||||
|
6. 优化衍生牌逻辑
|
||||||
|
7. 新增“卡牌展示后”时机
|
||||||
|
8. 修改qml文件结构
|
||||||
|
9. 新增手气卡机制
|
||||||
|
10. 新增大厅表情功能
|
||||||
|
11. 新增选将时技能描述查看,以及查看卡牌描述的功能
|
||||||
|
12. 查看角色技能描述侧栏新增“送花”和“砸蛋”功能
|
||||||
|
|
||||||
___
|
___
|
||||||
|
|
||||||
## v0.1.8
|
## v0.1.8
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
|
|
||||||
cmake_minimum_required(VERSION 3.16)
|
cmake_minimum_required(VERSION 3.16)
|
||||||
|
|
||||||
project(FreeKill VERSION 0.1.8)
|
project(FreeKill VERSION 0.1.9)
|
||||||
add_definitions(-DFK_VERSION=\"${CMAKE_PROJECT_VERSION}\")
|
add_definitions(-DFK_VERSION=\"${CMAKE_PROJECT_VERSION}\")
|
||||||
|
|
||||||
find_package(Qt6 REQUIRED COMPONENTS
|
find_package(Qt6 REQUIRED COMPONENTS
|
||||||
|
|
|
@ -89,16 +89,18 @@ Item {
|
||||||
|
|
||||||
let special_value = '';
|
let special_value = '';
|
||||||
if (mark.startsWith('@$')) {
|
if (mark.startsWith('@$')) {
|
||||||
special_value = data.length;
|
special_value += data.length;
|
||||||
data = data.join(',');
|
data = data.join(',');
|
||||||
} else {
|
} else {
|
||||||
data = data instanceof Array ? data.map((markText) => Backend.translate(markText)).join(' ') : Backend.translate(data);
|
data = data instanceof Array ? data.map((markText) => Backend.translate(markText)).join(' ') : Backend.translate(data);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (modelItem)
|
if (modelItem) {
|
||||||
|
modelItem.special_value = special_value;
|
||||||
modelItem.mark_extra = data;
|
modelItem.mark_extra = data;
|
||||||
else
|
} else {
|
||||||
markList.append({ mark_name: mark, mark_extra: data, special_value });
|
markList.append({ mark_name: mark, mark_extra: data, special_value });
|
||||||
|
}
|
||||||
|
|
||||||
arrangeMarks();
|
arrangeMarks();
|
||||||
}
|
}
|
||||||
|
|
|
@ -3,8 +3,8 @@
|
||||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
package="org.notify.FreeKill"
|
package="org.notify.FreeKill"
|
||||||
android:installLocation="preferExternal"
|
android:installLocation="preferExternal"
|
||||||
android:versionCode="108"
|
android:versionCode="109"
|
||||||
android:versionName="0.1.8">
|
android:versionName="0.1.9">
|
||||||
<uses-permission android:name="android.permission.INTERNET" />
|
<uses-permission android:name="android.permission.INTERNET" />
|
||||||
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
|
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
|
||||||
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
|
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
|
||||||
|
|
|
@ -26,7 +26,6 @@ cp -r ../packages/maneuvering assets/res/packages
|
||||||
cp -r ../packages/test assets/res/packages
|
cp -r ../packages/test assets/res/packages
|
||||||
rm assets/res/packages/test/test.lua
|
rm assets/res/packages/test/test.lua
|
||||||
cp ../packages/init.sql assets/res/packages
|
cp ../packages/init.sql assets/res/packages
|
||||||
cp -r ../qml assets/res
|
|
||||||
cp -r ../Fk assets/res
|
cp -r ../Fk assets/res
|
||||||
mkdir assets/res/server
|
mkdir assets/res/server
|
||||||
cp ../server/init.sql assets/res/server
|
cp ../server/init.sql assets/res/server
|
||||||
|
|
|
@ -205,14 +205,18 @@ FreeKill使用的是libgit2的C API,与此同时使用Git完成拓展包的下
|
||||||
["Back To Lobby"] = "返回大厅",
|
["Back To Lobby"] = "返回大厅",
|
||||||
|
|
||||||
["Bulletin Info"] = "<h2>更新说明</h2>\
|
["Bulletin Info"] = "<h2>更新说明</h2>\
|
||||||
1. 实现禁将功能;(在武将一览中,点击查看武将并点击退出按钮下方的“禁将/解禁”进行操作);<br>\
|
1. 实现移动场上一张牌;<br>\
|
||||||
2. 实现转换技,新增发动转换技动画;<br>\
|
2. 实现用作记录牌名并可查看的mark;<br>\
|
||||||
3. 分离觉醒技的觉醒条件;<br>\
|
3. 将askForChoice和interaction的文本解析方式改为prompt;<br>\
|
||||||
4. 封装不同实例卡牌的花色、点数、颜色的比较,用于处理无花色等情况;<br>\
|
4. 新增属性将牌移至牌堆指定索引位置;<br>\
|
||||||
5. 新增mark_enum.lua用于注册通用标记名;<br>\
|
5. 修改时机“游戏开始时”至正确位置;<br>\
|
||||||
6. 实现将特定实现列表按结算顺序排序的函数;<br>\
|
6. 优化衍生牌逻辑;<br>\
|
||||||
7. 允许UI解析值为数组的标记;<br>\
|
7. 新增“卡牌展示后”时机;<br>\
|
||||||
8. 初步实现不加入牌堆中的衍生卡牌(待改进)。",
|
8. 修改qml文件结构;<br>\
|
||||||
|
9. 新增手气卡机制;<br>\
|
||||||
|
10. 新增大厅表情功能;<br>\
|
||||||
|
11. 新增选将时技能描述查看,以及查看卡牌描述的功能;<br>\
|
||||||
|
12. 查看角色技能描述侧栏新增“送花”和“砸蛋”功能。",
|
||||||
}
|
}
|
||||||
|
|
||||||
-- Game concepts
|
-- Game concepts
|
||||||
|
|
|
@ -1,2 +0,0 @@
|
||||||
test.lua
|
|
||||||
test-error.txt
|
|
|
@ -32,7 +32,7 @@ QString PackMan::getPackSummary() {
|
||||||
}
|
}
|
||||||
|
|
||||||
void PackMan::loadSummary(const QString &jsonData, bool useThread) {
|
void PackMan::loadSummary(const QString &jsonData, bool useThread) {
|
||||||
static const auto f = [=]() {
|
auto f = [=]() {
|
||||||
// First, disable all packages
|
// First, disable all packages
|
||||||
foreach (auto e, SelectFromDatabase(db, "SELECT name FROM packages;")) {
|
foreach (auto e, SelectFromDatabase(db, "SELECT name FROM packages;")) {
|
||||||
disablePack(e.toObject()["name"].toString());
|
disablePack(e.toObject()["name"].toString());
|
||||||
|
@ -50,6 +50,7 @@ void PackMan::loadSummary(const QString &jsonData, bool useThread) {
|
||||||
i++;
|
i++;
|
||||||
auto obj = e.toObject();
|
auto obj = e.toObject();
|
||||||
auto name = obj["name"].toString();
|
auto name = obj["name"].toString();
|
||||||
|
auto url = obj["url"].toString();
|
||||||
#ifndef FK_SERVER_ONLY
|
#ifndef FK_SERVER_ONLY
|
||||||
Backend->showToast(tr("[%1/%2] upgrading package '%3'").arg(i).arg(arr.count()).arg(name));
|
Backend->showToast(tr("[%1/%2] upgrading package '%3'").arg(i).arg(arr.count()).arg(name));
|
||||||
#endif
|
#endif
|
||||||
|
@ -57,7 +58,7 @@ void PackMan::loadSummary(const QString &jsonData, bool useThread) {
|
||||||
db,
|
db,
|
||||||
QString("SELECT name FROM packages WHERE name='%1';").arg(name))
|
QString("SELECT name FROM packages WHERE name='%1';").arg(name))
|
||||||
.isEmpty()) {
|
.isEmpty()) {
|
||||||
downloadNewPack(obj["url"].toString());
|
downloadNewPack(url);
|
||||||
}
|
}
|
||||||
ExecSQL(db, QString("UPDATE packages SET hash='%1' WHERE name='%2'")
|
ExecSQL(db, QString("UPDATE packages SET hash='%1' WHERE name='%2'")
|
||||||
.arg(obj["hash"].toString())
|
.arg(obj["hash"].toString())
|
||||||
|
@ -81,7 +82,7 @@ void PackMan::loadSummary(const QString &jsonData, bool useThread) {
|
||||||
}
|
}
|
||||||
|
|
||||||
void PackMan::downloadNewPack(const QString &url, bool useThread) {
|
void PackMan::downloadNewPack(const QString &url, bool useThread) {
|
||||||
static const auto threadFunc = [=]() {
|
auto threadFunc = [=]() {
|
||||||
int error = clone(url);
|
int error = clone(url);
|
||||||
if (error < 0)
|
if (error < 0)
|
||||||
return;
|
return;
|
||||||
|
|
|
@ -167,15 +167,7 @@ RSA *InitServerRSA() {
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
static void writeFileMD5(QFile &dest, const QString &fname) {
|
static void writeFileMD5(QFile &dest, const QString &fname) {
|
||||||
QString name = fname;
|
QFile f(fname);
|
||||||
// If the is a corresponding fkp file, check fkp's MD5 instead.
|
|
||||||
if (name.endsWith(".lua")) {
|
|
||||||
name.chop(4);
|
|
||||||
name = name + ".fkp";
|
|
||||||
if (!QFile::exists(name))
|
|
||||||
name = fname;
|
|
||||||
}
|
|
||||||
QFile f(name);
|
|
||||||
if (!f.open(QIODevice::ReadOnly)) {
|
if (!f.open(QIODevice::ReadOnly)) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -183,7 +175,7 @@ static void writeFileMD5(QFile &dest, const QString &fname) {
|
||||||
auto data = f.readAll();
|
auto data = f.readAll();
|
||||||
data.replace(QByteArray("\r\n"), QByteArray("\n"));
|
data.replace(QByteArray("\r\n"), QByteArray("\n"));
|
||||||
auto hash = QCryptographicHash::hash(data, QCryptographicHash::Md5).toHex();
|
auto hash = QCryptographicHash::hash(data, QCryptographicHash::Md5).toHex();
|
||||||
dest.write(name.toUtf8() + '=' + hash + ';');
|
dest.write(fname.toUtf8() + '=' + hash + ';');
|
||||||
}
|
}
|
||||||
|
|
||||||
static void writeDirMD5(QFile &dest, const QString &dir,
|
static void writeDirMD5(QFile &dest, const QString &dir,
|
||||||
|
@ -222,7 +214,7 @@ QString calcFileMD5() {
|
||||||
flist.close();
|
flist.close();
|
||||||
flist.open(QIODevice::ReadOnly);
|
flist.open(QIODevice::ReadOnly);
|
||||||
auto ret = QCryptographicHash::hash(flist.readAll(), QCryptographicHash::Md5);
|
auto ret = QCryptographicHash::hash(flist.readAll(), QCryptographicHash::Md5);
|
||||||
flist.remove(); // delete flist.txt
|
// flist.remove(); // delete flist.txt
|
||||||
flist.close();
|
flist.close();
|
||||||
return ret.toHex();
|
return ret.toHex();
|
||||||
}
|
}
|
||||||
|
|
|
@ -69,7 +69,7 @@ static void installFkAssets(const QString &src, const QString &dest) {
|
||||||
#ifdef Q_OS_ANDROID
|
#ifdef Q_OS_ANDROID
|
||||||
copyPath(src, dest);
|
copyPath(src, dest);
|
||||||
#elif defined(Q_OS_LINUX)
|
#elif defined(Q_OS_LINUX)
|
||||||
system(QString("cp -r %1 %2").arg(src).arg(dest).toUtf8());
|
system(QString("cp -r %1 %2/..").arg(src).arg(dest).toUtf8());
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue