koishi-plugin-ggcevo-game 1.6.56 → 1.6.58
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 +16 -17
- package/package.json +1 -1
package/lib/index.js
CHANGED
|
@@ -688,7 +688,7 @@ var SyndicatedItems = {
|
|
|
688
688
|
price: 0,
|
|
689
689
|
redCrystalCost: 0,
|
|
690
690
|
condition: "无法对空中目标使用",
|
|
691
|
-
effects: "对目标造成100伤害;对建筑目标造成3
|
|
691
|
+
effects: "对目标造成100伤害;对建筑目标造成3倍伤害(目标血量最多降低至1点)"
|
|
692
692
|
}
|
|
693
693
|
};
|
|
694
694
|
var initDefaultItems = {
|
|
@@ -5929,30 +5929,26 @@ async function applyItemEffect(ctx, session, handle, itemConfig2, target) {
|
|
|
5929
5929
|
isDefeated: false
|
|
5930
5930
|
};
|
|
5931
5931
|
}
|
|
5932
|
+
if (targetBoss.HP === 1) {
|
|
5933
|
+
return {
|
|
5934
|
+
success: false,
|
|
5935
|
+
message: `目标「${target}」血量已是1点,无法使用${itemName}。`,
|
|
5936
|
+
isDefeated: false
|
|
5937
|
+
};
|
|
5938
|
+
}
|
|
5932
5939
|
let baseDamage = 100;
|
|
5933
5940
|
if (playerCareer === "破坏者") {
|
|
5934
5941
|
baseDamage = Math.floor(baseDamage * 1.5);
|
|
5935
5942
|
}
|
|
5936
5943
|
const isBuilding = targetBoss.tags?.includes("建筑");
|
|
5937
5944
|
const damage = isBuilding ? baseDamage * 3 : baseDamage;
|
|
5938
|
-
const actualDamage = Math.min(damage, targetBoss.HP);
|
|
5945
|
+
const actualDamage = Math.min(damage, targetBoss.HP - 1);
|
|
5939
5946
|
const newHP = targetBoss.HP - actualDamage;
|
|
5940
|
-
const isDefeated = newHP <= 0;
|
|
5941
5947
|
await ctx.database.set(
|
|
5942
5948
|
"ggcevo_boss",
|
|
5943
5949
|
{ name: target },
|
|
5944
|
-
{
|
|
5945
|
-
HP: Math.max(newHP, 0),
|
|
5946
|
-
isActive: !isDefeated
|
|
5947
|
-
}
|
|
5950
|
+
{ HP: newHP }
|
|
5948
5951
|
);
|
|
5949
|
-
const [damageRecords] = await ctx.database.get("ggcevo_boss_damage", { handle });
|
|
5950
|
-
if (!damageRecords)
|
|
5951
|
-
return {
|
|
5952
|
-
success: false,
|
|
5953
|
-
message: "🚫 无法获取伤害记录,请先攻击一次。",
|
|
5954
|
-
isDefeated: false
|
|
5955
|
-
};
|
|
5956
5952
|
if (actualDamage > 0) {
|
|
5957
5953
|
await ctx.database.withTransaction(async () => {
|
|
5958
5954
|
const signRecords = await ctx.database.get("ggcevo_sign", { handle });
|
|
@@ -5960,6 +5956,7 @@ async function applyItemEffect(ctx, session, handle, itemConfig2, target) {
|
|
|
5960
5956
|
handle,
|
|
5961
5957
|
totalRewards: (signRecords[0]?.totalRewards || 0) + damage
|
|
5962
5958
|
}], ["handle"]);
|
|
5959
|
+
const [damageRecords] = await ctx.database.get("ggcevo_boss_damage", { handle });
|
|
5963
5960
|
await ctx.database.upsert("ggcevo_boss_damage", [{
|
|
5964
5961
|
handle,
|
|
5965
5962
|
playerName: session.username,
|
|
@@ -5968,10 +5965,12 @@ async function applyItemEffect(ctx, session, handle, itemConfig2, target) {
|
|
|
5968
5965
|
});
|
|
5969
5966
|
}
|
|
5970
5967
|
const careerBonusMsg = playerCareer === "破坏者" ? `(破坏者使用爆破物的效果提高50%)` : "";
|
|
5968
|
+
const lowHpMsg = newHP === 1 ? ",目标血量已降至1点" : "";
|
|
5971
5969
|
return {
|
|
5972
5970
|
success: true,
|
|
5973
|
-
message: `成功使用${itemName},对${isBuilding ? "建筑目标" : "目标"}「${target}」造成${
|
|
5974
|
-
isDefeated
|
|
5971
|
+
message: `成功使用${itemName},对${isBuilding ? "建筑目标" : "目标"}「${target}」造成${actualDamage}点伤害${lowHpMsg}${careerBonusMsg}`,
|
|
5972
|
+
isDefeated: false
|
|
5973
|
+
// 永远不会消灭目标
|
|
5975
5974
|
};
|
|
5976
5975
|
}
|
|
5977
5976
|
return {
|
|
@@ -10758,7 +10757,7 @@ ${testResult.passiveMessages.map((m) => `▸ ${m}`).join("\n")}`
|
|
|
10758
10757
|
await ctx.broadcast(groupId, kfcMsg);
|
|
10759
10758
|
break;
|
|
10760
10759
|
case "夜市赠礼":
|
|
10761
|
-
const [backpack] = await ctx.database.get("ggcevo_backpack", { handle, itemId:
|
|
10760
|
+
const [backpack] = await ctx.database.get("ggcevo_backpack", { handle, itemId: 8 });
|
|
10762
10761
|
await ctx.database.upsert("ggcevo_backpack", [{
|
|
10763
10762
|
handle,
|
|
10764
10763
|
itemId: 8,
|