koishi-plugin-xxck-1 0.2.26 → 0.2.28
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/index.js +36 -9
- package/package.json +1 -1
package/lib/index.js
CHANGED
|
@@ -1928,10 +1928,12 @@ async function doBattleAgree(ctx, session) {
|
|
|
1928
1928
|
return {
|
|
1929
1929
|
cardId: "test",
|
|
1930
1930
|
name: "测试卡",
|
|
1931
|
-
element: "
|
|
1932
|
-
hp:
|
|
1933
|
-
|
|
1934
|
-
|
|
1931
|
+
element: "fire",
|
|
1932
|
+
hp: 700,
|
|
1933
|
+
// 血量上调
|
|
1934
|
+
maxHp: 700,
|
|
1935
|
+
atk: 180,
|
|
1936
|
+
// 攻击下调
|
|
1935
1937
|
def: 200,
|
|
1936
1938
|
spd: 80,
|
|
1937
1939
|
critRate: 0.1,
|
|
@@ -1940,7 +1942,7 @@ async function doBattleAgree(ctx, session) {
|
|
|
1940
1942
|
dmgIncrease: 0,
|
|
1941
1943
|
dmgReduce: 0,
|
|
1942
1944
|
skillCost: 999,
|
|
1943
|
-
energy:
|
|
1945
|
+
energy: 0,
|
|
1944
1946
|
isAlive: true,
|
|
1945
1947
|
hasActed: false,
|
|
1946
1948
|
buffs: [],
|
|
@@ -1972,7 +1974,7 @@ async function doBattleAgree(ctx, session) {
|
|
|
1972
1974
|
dmgIncrease: b.dmg_increase,
|
|
1973
1975
|
dmgReduce: b.dmg_reduce,
|
|
1974
1976
|
skillCost: b.skill_cost,
|
|
1975
|
-
energy:
|
|
1977
|
+
energy: 0,
|
|
1976
1978
|
isAlive: true,
|
|
1977
1979
|
hasActed: false,
|
|
1978
1980
|
buffs: [],
|
|
@@ -2014,14 +2016,27 @@ async function doBattleAgree(ctx, session) {
|
|
|
2014
2016
|
const isEnd = /* @__PURE__ */ __name(() => !teamA.some((c) => c.isAlive) || !teamB.some((c) => c.isAlive), "isEnd");
|
|
2015
2017
|
async function act(card) {
|
|
2016
2018
|
card.hasActed = true;
|
|
2019
|
+
const isTeamA = teamA.includes(card);
|
|
2020
|
+
const targetQQ = isTeamA ? p1 : p2;
|
|
2021
|
+
const sideGroup = session.guildId;
|
|
2022
|
+
let nick = targetQQ;
|
|
2023
|
+
if (sideGroup) {
|
|
2024
|
+
const member = await ctx.database.get("gacha_group_member", {
|
|
2025
|
+
group_id: sideGroup,
|
|
2026
|
+
qq: targetQQ
|
|
2027
|
+
});
|
|
2028
|
+
if (member.length) {
|
|
2029
|
+
nick = member[0].group_nickname || targetQQ;
|
|
2030
|
+
}
|
|
2031
|
+
}
|
|
2017
2032
|
const tip = card.energy >= card.skillCost ? "【技能就绪】" : "【普攻】";
|
|
2018
2033
|
await session.send(build_msg(
|
|
2019
2034
|
session,
|
|
2020
|
-
`⚔️【${card.name}
|
|
2035
|
+
`⚔️【${nick}】的 ${card.name}|血量:${card.hp}/${card.maxHp}|能量:${card.energy}/5|速度:${card.spd} ${tip}`
|
|
2021
2036
|
));
|
|
2022
2037
|
await sleep(500);
|
|
2023
|
-
const team =
|
|
2024
|
-
const enemy =
|
|
2038
|
+
const team = isTeamA ? teamA : teamB;
|
|
2039
|
+
const enemy = isTeamA ? teamB : teamA;
|
|
2025
2040
|
const skill = skillBook[card.cardId];
|
|
2026
2041
|
if (skill?.wugui) await skill.wugui(card, team, enemy, session);
|
|
2027
2042
|
if (skill && card.energy >= card.skillCost) {
|
|
@@ -2031,6 +2046,16 @@ async function doBattleAgree(ctx, session) {
|
|
|
2031
2046
|
}
|
|
2032
2047
|
await sleep(500);
|
|
2033
2048
|
card.energy = Math.min(5, card.energy + 1);
|
|
2049
|
+
if (!card.isAlive) {
|
|
2050
|
+
await session.send(build_msg(
|
|
2051
|
+
session,
|
|
2052
|
+
`💀【${nick}】的 ${card.name} 已阵亡!`
|
|
2053
|
+
));
|
|
2054
|
+
if (skill?.onDeath) {
|
|
2055
|
+
skill.onDeath(card, team);
|
|
2056
|
+
}
|
|
2057
|
+
await sleep(500);
|
|
2058
|
+
}
|
|
2034
2059
|
}
|
|
2035
2060
|
__name(act, "act");
|
|
2036
2061
|
let turn = 0;
|
|
@@ -2038,6 +2063,8 @@ async function doBattleAgree(ctx, session) {
|
|
|
2038
2063
|
turn++;
|
|
2039
2064
|
teamA.forEach((c) => c.hasActed = false);
|
|
2040
2065
|
teamB.forEach((c) => c.hasActed = false);
|
|
2066
|
+
teamA.filter((c) => c.isAlive).forEach((c) => c.energy = Math.min(5, c.energy + 2));
|
|
2067
|
+
teamB.filter((c) => c.isAlive).forEach((c) => c.energy = Math.min(5, c.energy + 2));
|
|
2041
2068
|
await session.send(`=== 第 ${turn} 回合 ==`);
|
|
2042
2069
|
while (true) {
|
|
2043
2070
|
const q = rebuildQueue();
|