koishi-plugin-toram 0.6.2-test.4 → 0.6.3

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.
@@ -3428,7 +3428,7 @@
3428
3428
  167,
3429
3429
  "通地塔·关内",
3430
3430
  21073,
3431
- "",
3431
+ "",
3432
3432
  "野王"
3433
3433
  ],
3434
3434
  [
@@ -301,7 +301,7 @@
301
301
  37,
302
302
  "白山长下",
303
303
  "鲑鱼饭团",
304
- 9,
304
+ 10,
305
305
  "灵巧"
306
306
  ],
307
307
  [
@@ -362,8 +362,8 @@
362
362
  ],
363
363
  [
364
364
  46,
365
- "为君故",
366
- "鲑鱼饭团",
365
+ "暂无",
366
+ "暂无",
367
367
  7,
368
368
  "灵巧"
369
369
  ],
@@ -742,7 +742,7 @@
742
742
  100,
743
743
  "林荏苒",
744
744
  "烩炒饭",
745
- 9,
745
+ 10,
746
746
  "魔法值上限"
747
747
  ],
748
748
  [
@@ -761,8 +761,8 @@
761
761
  ],
762
762
  [
763
763
  103,
764
- "光阴荏苒【?】",
765
- "烩炒饭",
764
+ "暂无",
765
+ "暂无",
766
766
  10,
767
767
  "魔法值上限"
768
768
  ],
@@ -1153,8 +1153,8 @@
1153
1153
  ],
1154
1154
  [
1155
1155
  159,
1156
- "光阴荏苒【?】",
1157
- "黄金炒饭",
1156
+ "暂无",
1157
+ "暂无",
1158
1158
  10,
1159
1159
  "体力值上限"
1160
1160
  ],
@@ -2133,8 +2133,8 @@
2133
2133
  ],
2134
2134
  [
2135
2135
  299,
2136
- "下坠ing",
2137
- "奶油炖菜",
2136
+ "暂无",
2137
+ "暂无",
2138
2138
  9,
2139
2139
  "仇恨值减少"
2140
2140
  ],
@@ -2434,8 +2434,8 @@
2434
2434
  ],
2435
2435
  [
2436
2436
  342,
2437
- "沐汐墨染",
2438
- "日式炒面",
2437
+ "暂无",
2438
+ "暂无",
2439
2439
  10,
2440
2440
  "攻击魔法回复"
2441
2441
  ],
@@ -2541,7 +2541,7 @@
2541
2541
  357,
2542
2542
  "默馨",
2543
2543
  "日式炒面",
2544
- 9,
2544
+ 10,
2545
2545
  "攻击魔法回复"
2546
2546
  ],
2547
2547
  [
@@ -2646,7 +2646,7 @@
2646
2646
  372,
2647
2647
  "洛塔罗塔",
2648
2648
  "日式炒面",
2649
- 9,
2649
+ 10,
2650
2650
  "攻击魔法回复"
2651
2651
  ],
2652
2652
  [
@@ -2828,7 +2828,7 @@
2828
2828
  398,
2829
2829
  "葛沽",
2830
2830
  "日式炒面",
2831
- 9,
2831
+ 10,
2832
2832
  "攻击魔法回复"
2833
2833
  ],
2834
2834
  [
@@ -2840,8 +2840,8 @@
2840
2840
  ],
2841
2841
  [
2842
2842
  400,
2843
- "沐汐玲蝶",
2844
- "日式炒面",
2843
+ "暂无",
2844
+ "暂无",
2845
2845
  10,
2846
2846
  "攻击魔法回复"
2847
2847
  ],
@@ -3253,8 +3253,8 @@
3253
3253
  ],
3254
3254
  [
3255
3255
  459,
3256
- "o艾歌o",
3257
- "鱼排汉堡",
3256
+ "暂无",
3257
+ "暂无",
3258
3258
  9,
3259
3259
  "魔法抗性"
3260
3260
  ],
@@ -3304,7 +3304,7 @@
3304
3304
  466,
3305
3305
  "秋恬",
3306
3306
  "墨鱼意大利面",
3307
- 6,
3307
+ 8,
3308
3308
  "对暗属性伤害"
3309
3309
  ],
3310
3310
  [
@@ -3435,7 +3435,7 @@
3435
3435
  ],
3436
3436
  [
3437
3437
  485,
3438
- "大剑坦不坦",
3438
+ "没有感情的剑萌新",
3439
3439
  "日式炒面",
3440
3440
  10,
3441
3441
  "攻击魔法回复"
@@ -3593,6 +3593,83 @@
3593
3593
  "鲣鱼饭团",
3594
3594
  10,
3595
3595
  "力量"
3596
+ ],
3597
+ [
3598
+ 508,
3599
+ "泠雨潋",
3600
+ "牛肉汉堡",
3601
+ 10,
3602
+ "物理抗性"
3603
+ ],
3604
+ [
3605
+ 509,
3606
+ "泠雨澜",
3607
+ "烩炒饭",
3608
+ 10,
3609
+ "魔法值上限"
3610
+ ],
3611
+ [
3612
+ 510,
3613
+ "幽森的黑巫女",
3614
+ "梅干饭团",
3615
+ 9,
3616
+ "智力"
3617
+ ],
3618
+ [
3619
+ 511,
3620
+ "南海十三郎",
3621
+ "鲣鱼饭团",
3622
+ 9,
3623
+ "力量"
3624
+ ],
3625
+ [
3626
+ 512,
3627
+ "晦朔之行",
3628
+ "鲑鱼饭团",
3629
+ 9,
3630
+ "灵巧"
3631
+ ],
3632
+ [
3633
+ 513,
3634
+ "RAS",
3635
+ "烩炒饭",
3636
+ 9,
3637
+ "魔法值上限"
3638
+ ],
3639
+ [
3640
+ 514,
3641
+ "苍雷破八荒",
3642
+ "鱼排汉堡",
3643
+ 9,
3644
+ "魔法抗性"
3645
+ ],
3646
+ [
3647
+ 515,
3648
+ "零末",
3649
+ "烩炒饭",
3650
+ 9,
3651
+ "魔法值上限"
3652
+ ],
3653
+ [
3654
+ 516,
3655
+ "您您您的墨弟",
3656
+ "日式炒饭",
3657
+ 10,
3658
+ "攻击魔法回复"
3659
+ ],
3660
+ [
3661
+ 517,
3662
+ "阿斯托尔福LV",
3663
+ "鱼排汉堡",
3664
+ 9,
3665
+ "魔法抗性"
3666
+ ],
3667
+ [
3668
+ 518,
3669
+ "孤狼拉普兰德",
3670
+ "章鱼烧",
3671
+ 9,
3672
+ "暴击率"
3596
3673
  ]
3597
3674
  ]
3598
3675
  }
@@ -33,33 +33,68 @@
33
33
  "rows": [
34
34
  [
35
35
  1,
36
- 1689318000000,
37
- "7周年活动开启,持续6周至8月25日。"
36
+ 1689325200000,
37
+ "7周年活动开启,持续6周至8月25日。②免费洗点活动,持续1周至7月21日。"
38
38
  ],
39
39
  [
40
40
  2,
41
- 1689922800000,
42
- "7周年活动追加特殊竞技场与兑换所,兑换所会在7周年活动结束后转移至夏活地图并额外持续2周至9月8日。"
41
+ 1689930000000,
42
+ "7周年活动追加特殊竞技场与兑换所。"
43
43
  ],
44
44
  [
45
45
  3,
46
- 1690527600000,
47
- "夏日活动开启,持续6周至9月8日,配方与兑换所额外持续1周至915日。"
46
+ 1690534800000,
47
+ "①夏日活动开启,持续6周至9月8日。②高难讨伐活动结束,配方额外持续2周至810日。"
48
48
  ],
49
49
  [
50
50
  4,
51
- 1691650800000,
52
- "夏日活动追加章鱼阿健讨伐。"
51
+ 1691658000000,
52
+ "①夏日活动追加章鱼阿健讨伐。②调整盛夏贝壳Ⅱ、Ⅲ的掉落率【未确认时间】。③撤除高难讨伐活动的配方。"
53
53
  ],
54
54
  [
55
55
  5,
56
- 1692342000000,
56
+ 1692349200000,
57
57
  "7周年活动追加马奇史东挑战。"
58
58
  ],
59
59
  [
60
60
  6,
61
- 1692946800000,
62
- "新剧情任务\/地图\/配方。"
61
+ 1692954000000,
62
+ "①新剧情任务\/地图\/配方(12章:相克的龙与龙人)。②七周年活动结束,配方额外持续2周至9月8日,兑换所转移至夏活地图并额外持续2周至9月8日。"
63
+ ],
64
+ [
65
+ 7,
66
+ 1694163600000,
67
+ "①赏月活动开启,持续3周至9月29日。②撤除7周年活动配方与交换所。③夏日活动结束,限定地图、配方与兑换所额外持续1周至9月15日。"
68
+ ],
69
+ [
70
+ 8,
71
+ 1694768400000,
72
+ "①秋季美食活动开启,持续3周至10月6日。②撤除夏日活动限定地图、配方与兑换所。"
73
+ ],
74
+ [
75
+ 9,
76
+ 1695373200000,
77
+ "秋季美食活动追加怪物银色苹果【可能提前至21日】。"
78
+ ],
79
+ [
80
+ 10,
81
+ 1695978000000,
82
+ "赏月活动结束,配方额外持续1周至10月6日。"
83
+ ],
84
+ [
85
+ 11,
86
+ 1696582800000,
87
+ "①新剧情任务\/地图\/配方(12章:带孩子的龙人夫妻),等级上限提升至255。②万圣节活动开启,持续5周至11月10日。③秋季美食活动结束,配方额外持续1周至10月13日。④撤除赏月活动配方。"
88
+ ],
89
+ [
90
+ 12,
91
+ 1697187600000,
92
+ "①史东迪的实验开放210级难度。②撤除秋季美食活动的配方。"
93
+ ],
94
+ [
95
+ 13,
96
+ 1697792400000,
97
+ "万圣节活动追加第7章。"
63
98
  ]
64
99
  ]
65
100
  }
package/lib/index.js CHANGED
@@ -4,7 +4,7 @@ exports.apply = exports.Config = exports.name = void 0;
4
4
  const koishi_1 = require("koishi");
5
5
  exports.name = 'toram';
6
6
  exports.Config = koishi_1.Schema.object({
7
- 机器人qq: koishi_1.Schema.string().default('机器人使用的QQ号').description('请在此处填写机器人使用的QQ号'),
7
+ 机器人qq: koishi_1.Schema.string().description('请在此处填写机器人使用的QQ号'),
8
8
  版本等级: koishi_1.Schema.number().default(250).description('当前游戏等级版本'),
9
9
  升级_定点王数量: koishi_1.Schema.number().default(6).description('使用升级指令时返回的定点王数量'),
10
10
  升级_野王数量: koishi_1.Schema.number().default(4).description('使用升级指令时返回的野王数量'),
@@ -85,20 +85,23 @@ async function apply(ctx, config) {
85
85
  ];
86
86
  // 玩家等级差经验倍率
87
87
  const PlayerExpRate = [11, 11, 11, 11, 11, 10, 9, 7, 3];
88
- // 玩家料理信息数据库
88
+ // 数字转化
89
89
  const NumberReplace = { '一': '1', '二': '2', '三': '3', '四': '4', '五': '5', '六': '6', '七': '7', '八': '8', '九': '9', '十': '10' };
90
90
  // 随手用到的变量
91
- var n, x, text;
91
+ var n, x, y, a, b, c, d, e, f, g, text, aa;
92
+ var arr1 = [], arr2 = [], arr3 = [];
93
+ // 附魔无参数或参数不对回复
94
+ const EnchantReply = '输入"武器附魔 附魔正属 初始潜力(可选)"进行附魔推演,附魔正属间用"/"进行分割,额外输入"-a"表示允许退mp自然恢复。\n如:"武器附魔 火属/20%对地/10%ma/20暴伤/25暴击 107潜 -a"\n因为青灯没有搞明白附魔就来乱写,所以魔导书有时候会计算出错,才不是因为魔导书笨蛋哦!';
92
95
  // 查不到玩家料理信息回复
93
96
  const DishesPlayerNotFind = [
94
97
  '魔导书里还没有这个人的料理记录哦?去找青灯让她加一下吧~',
95
98
  '如果你确定输入了正确的玩家昵称,那大概是还没有收录这个人的料理吧【缩缩】',
96
- '【翻翻】嗯……已查阅507条料理记录,找到符合的记录0条【合上书本】'
99
+ '【翻翻】嗯……已查阅518条料理记录,找到符合的记录0条【合上书本】'
97
100
  ];
98
101
  // 查不到某种料理信息回复
99
102
  const DishesNotFind = [
100
103
  '居然!青灯现在还没发现有人做这个料理!怎么回事呢~',
101
- '【翻翻】嗯……已查阅507条料理记录,找到符合的记录0条【合上书本】',
104
+ '【翻翻】嗯……已查阅518条料理记录,找到符合的记录0条【合上书本】',
102
105
  '好像还没有人做这种料理呢……你要不要考虑一下?w'
103
106
  ];
104
107
  // 查询料理的指定等级参数错误回复
@@ -109,7 +112,7 @@ async function apply(ctx, config) {
109
112
  ];
110
113
  // 查不到指定等级某种料理信息回复
111
114
  const DishesLevelNotFind = [
112
- '【翻翻】嗯……已查阅507条料理记录,找到符合的记录0条【合上书本】',
115
+ '【翻翻】嗯……已查阅518条料理记录,找到符合的记录0条【合上书本】',
113
116
  '冷门料理或者等级较低的热门料理是不太会主动收录的哦?想加的话要去找青灯呢~',
114
117
  '魔导书还没有记录有这个等级的这种料理呢——'
115
118
  ];
@@ -146,6 +149,258 @@ async function apply(ctx, config) {
146
149
  '蜂蜜吐司': '光属性抗性', '布丁吐司': '土属性抗性', '香草吐司': '无属性抗性', '香蒜吐司': '暗属性抗性', '鲔鱼吐司': '水属性抗性', '煎蛋吐司': '火属性抗性', '起司吐司': '风属性抗性',
147
150
  '奶油培根意大利面': '对光属性伤害', '青酱意大利面': '对地属性伤害', '香蒜辣椒意大利面': '对无属性伤害', '墨鱼意大利面': '对暗属性伤害', '蛤蜊意大利面': '对水属性伤害', '肉酱意大利面': '对火属性伤害', '那不勒斯意大利面': '对风属性伤害'
148
151
  };
152
+ // 能力简称对应能力列表
153
+ const AbilityType = {
154
+ 's': '力量', 'S': '力量', 'str': '力量', 'STR': '力量', '力': '力量', '力量': '力量',
155
+ 's%': '力量%', 'S%': '力量%', 'str%': '力量%', 'STR%': '力量%', '力%': '力量%', '力量%': '力量%', '%s': '力量%', '%S': '力量%', '%str': '力量%', '%STR': '力量%', '%力': '力量%', '%力量': '力量%',
156
+ 'd': '灵巧', 'D': '灵巧', 'dex': '灵巧', 'DEX': '灵巧', '灵': '灵巧', '灵巧': '灵巧', 'd%': '灵巧%', 'D%': '灵巧%', 'dex%': '灵巧%', 'DEX%': '灵巧%', '灵%': '灵巧%', '灵巧%': '灵巧%',
157
+ '%d': '灵巧%', '%D': '灵巧%', '%dex': '灵巧%', '%DEX': '灵巧%', '%灵': '灵巧%', '%灵巧': '灵巧%',
158
+ 'i': '智力', 'I': '智力', 'int': '智力', 'INT': '智力', '智': '智力', '智力': '智力', 'i%': '智力%', 'I%': '智力%', 'int%': '智力%', 'INT%': '智力%', '智%': '智力%', '智力%': '智力%',
159
+ '%i': '智力%', '%I': '智力%', '%int': '智力%', '%INT': '智力%', '%智': '智力%', '%智力': '智力%',
160
+ 'ag': '敏捷', 'AG': '敏捷', 'agi': '敏捷', 'AGI': '敏捷', '敏': '敏捷', '敏捷': '敏捷',
161
+ 'ag%': '敏捷%', 'AG%': '敏捷%', 'agi%': '敏捷%', 'AGI%': '敏捷%', '敏%': '敏捷%', '敏捷%': '敏捷%', '%ag': '敏捷%', '%AG': '敏捷%', '%agi': '敏捷%', '%AGI': '敏捷%', '%敏': '敏捷%', '%敏捷': '敏捷%',
162
+ 'v': '耐力', 'V': '耐力', 'vit': '耐力', 'VIT': '耐力', '耐': '耐力', '耐力': '耐力',
163
+ 'v%': '耐力%', 'V%': '耐力%', 'vit%': '耐力%', 'VIT%': '耐力%', '耐%': '耐力%', '耐力%': '耐力%', '%v': '耐力%', '%V': '耐力%', '%vit': '耐力%', '%VIT': '耐力%', '%耐': '耐力%', '%耐力': '耐力%',
164
+ 'a%': '物理攻击%', 'A%': '物理攻击%', 'atk%': '物理攻击%', 'ATK%': '物理攻击%', '物攻%': '物理攻击%', '物理攻击%': '物理攻击%', '%a': '物理攻击%', '%A': '物理攻击%', '%atk': '物理攻击%', '%ATK': '物理攻击%', '%物攻': '物理攻击%', '%物理攻击': '物理攻击%',
165
+ 'ma%': '魔法攻击%', 'MA%': '魔法攻击%', 'matk%': '魔法攻击%', 'MATK%': '魔法攻击%', '魔攻%': '魔法攻击%', '魔法攻击%': '魔法攻击%', '%ma': '魔法攻击%', '%MA': '魔法攻击%', '%matk': '魔法攻击%', '%MATK': '魔法攻击%', '%魔攻': '魔法攻击%', '%魔法攻击': '魔法攻击%',
166
+ 'cd': '暴击伤害', 'CD': '暴击伤害', '暴伤': '暴击伤害', '暴击伤害': '暴击伤害',
167
+ 'cd%': '暴击伤害%', 'CD%': '暴击伤害%', '暴伤%': '暴击伤害%', '暴击伤害%': '暴击伤害%', '%cd': '暴击伤害%', '%CD': '暴击伤害%', '%暴伤': '暴击伤害%', '%暴击伤害': '暴击伤害%',
168
+ 'c': '暴击率', 'C': '暴击率', 'ctr': '暴击率', 'CTR': '暴击率', '暴击': '暴击率', '暴击率': '暴击率',
169
+ '对火': '对火属性伤害%', '%对火': '对火属性伤害%', '对火%': '对火属性伤害%', '对水': '对水属性伤害%', '%对水': '对水属性伤害%', '对水%': '对水属性伤害%', '对风': '对风属性伤害%', '%对风': '对风属性伤害%', '对风%': '对风属性伤害%', '对地': '对地属性伤害%', '%对地': '对地属性伤害%', '对地%': '对地属性伤害%', '对光': '对光属性伤害%', '%对光': '对光属性伤害%', '对光%': '对光属性伤害%', '对暗': '对暗属性伤害%', '%对暗': '对暗属性伤害%', '对暗%': '对暗属性伤害%',
170
+ '火属': '火属性', '火属性': '火属性', '火原属': '火原属', '水属': '水属性', '水属性': '水属性', '水原属': '水原属', '风属': '风属性', '风属性': '风属性', '风原属': '风原属', '地属': '地属性', '地属性': '地属性', '地原属': '地原属', '光属': '光属性', '光属性': '光属性', '光原属': '光原属', '暗属': '暗属性', '暗属性': '暗属性', '暗原属': '暗原属'
171
+ };
172
+ // 附魔能力列表
173
+ const EnchantAbilityEffect = {
174
+ '力量': { "name": "力量", "type": "PlayerAbility", "min": -25, "max": 25, "ExValue": 20, "ExBefore": 1, "ExAfter": 1, "PotentialUse": 5, "double": null, "MaterialUse": null, "MaterialType": null },
175
+ '力量%': { "name": "力量%", "type": "PlayerAbility", "min": -10, "max": 10, "ExValue": 10, "ExBefore": 1, "ExAfter": 1, "PotentialUse": 10, "double": null, "MaterialUse": null, "MaterialType": null },
176
+ '灵巧': { "name": "灵巧", "type": "PlayerAbility", "min": -25, "max": 25, "ExValue": 20, "ExBefore": 1, "ExAfter": 1, "PotentialUse": 5, "double": null, "MaterialUse": null, "MaterialType": null },
177
+ '灵巧%': { "name": "灵巧%", "type": "PlayerAbility", "min": -10, "max": 10, "ExValue": 10, "ExBefore": 1, "ExAfter": 1, "PotentialUse": 10, "double": null, "MaterialUse": null, "MaterialType": null },
178
+ '智力': { "name": "智力", "type": "PlayerAbility", "min": -25, "max": 25, "ExValue": 20, "ExBefore": 1, "ExAfter": 1, "PotentialUse": 5, "double": null, "MaterialUse": null, "MaterialType": null },
179
+ '智力%': { "name": "智力%", "type": "PlayerAbility", "min": -10, "max": 10, "ExValue": 10, "ExBefore": 1, "ExAfter": 1, "PotentialUse": 10, "double": null, "MaterialUse": null, "MaterialType": null },
180
+ '敏捷': { "name": "敏捷", "type": "PlayerAbility", "min": -25, "max": 25, "ExValue": 20, "ExBefore": 1, "ExAfter": 1, "PotentialUse": 5, "double": null, "MaterialUse": null, "MaterialType": null },
181
+ '敏捷%': { "name": "敏捷%", "type": "PlayerAbility", "min": -10, "max": 10, "ExValue": 10, "ExBefore": 1, "ExAfter": 1, "PotentialUse": 10, "double": null, "MaterialUse": null, "MaterialType": null },
182
+ '耐力': { "name": "耐力", "type": "PlayerAbility", "min": -25, "max": 25, "ExValue": 20, "ExBefore": 1, "ExAfter": 1, "PotentialUse": 5, "double": null, "MaterialUse": null, "MaterialType": null },
183
+ '耐力%': { "name": "耐力%", "type": "PlayerAbility", "min": -10, "max": 10, "ExValue": 10, "ExBefore": 1, "ExAfter": 1, "PotentialUse": 10, "double": null, "MaterialUse": null, "MaterialType": null },
184
+ 'hp自然恢复': { "name": "hp自然恢复", "type": "hpmp", "min": -25, "max": 25, "ExValue": 20, "ExBefore": 1, "ExAfter": 1, "PotentialUse": 5, "double": "武器", "MaterialUse": null, "MaterialType": null },
185
+ 'hp自然恢复%': { "name": "hp自然恢复%", "type": "hpmp", "min": -10, "max": 10, "ExValue": 10, "ExBefore": 1, "ExAfter": 1, "PotentialUse": 10, "double": "武器", "MaterialUse": null, "MaterialType": null },
186
+ 'mp自然恢复': { "name": "mp自然恢复", "type": "hpmp", "min": -12, "max": 12, "ExValue": 10, "ExBefore": 1, "ExAfter": 1, "PotentialUse": 10, "double": "武器", "MaterialUse": null, "MaterialType": null },
187
+ 'mp自然恢复%': { "name": "mp自然恢复%", "type": "hpmp", "min": -5, "max": 5, "ExValue": 5, "ExBefore": 1, "ExAfter": 1, "PotentialUse": 20, "double": "武器", "MaterialUse": null, "MaterialType": null },
188
+ '物理攻击%': { "name": "物理攻击%", "type": "atk", "min": -12, "max": 12, "ExValue": 10, "ExBefore": 1, "ExAfter": 1, "PotentialUse": 10, "double": "防具", "MaterialUse": null, "MaterialType": null },
189
+ '魔法攻击%': { "name": "魔法攻击%", "type": "atk", "min": -12, "max": 12, "ExValue": 10, "ExBefore": 1, "ExAfter": 1, "PotentialUse": 10, "double": "防具", "MaterialUse": null, "MaterialType": null },
190
+ '物理防御%': { "name": "物理防御%", "type": "def", "min": -11, "max": 11, "ExValue": 10, "ExBefore": 1, "ExAfter": 1, "PotentialUse": 10, "double": "武器", "MaterialUse": null, "MaterialType": null },
191
+ '魔法防御%': { "name": "魔法防御%", "type": "def", "min": -11, "max": 11, "ExValue": 10, "ExBefore": 1, "ExAfter": 1, "PotentialUse": 10, "double": "武器", "MaterialUse": null, "MaterialType": null },
192
+ '回避': { "name": "回避", "type": "flee", "min": -16, "max": 16, "ExValue": 10, "ExBefore": 1, "ExAfter": 2, "PotentialUse": 10, "double": "武器", "MaterialUse": null, "MaterialType": null },
193
+ '回避%': { "name": "回避%", "type": "flee", "min": -5, "max": 5, "ExValue": 5, "ExBefore": 1, "ExAfter": 1, "PotentialUse": 20, "double": "武器", "MaterialUse": null, "MaterialType": null },
194
+ '暴击率': { "name": "暴击率", "type": "ctr", "min": -20, "max": 25, "ExValue": 20, "ExBefore": 1, "ExAfter": 1, "PotentialUse": 1, "double": null, "MaterialUse": null, "MaterialType": null },
195
+ '暴击伤害': { "name": "暴击伤害", "type": "ctr", "min": -20, "max": 21, "ExValue": 20, "ExBefore": 1, "ExAfter": 1, "PotentialUse": 3, "double": null, "MaterialUse": null, "MaterialType": null },
196
+ '暴击伤害%': { "name": "暴击伤害%", "type": "ctr", "min": -10, "max": 10, "ExValue": 10, "ExBefore": 1, "ExAfter": 1, "PotentialUse": 10, "double": null, "MaterialUse": null, "MaterialType": null },
197
+ '对火属性伤害%': { "name": "对火属性伤害%", "type": "to", "min": -21, "max": 21, "ExValue": 20, "ExBefore": 1, "ExAfter": 1, "PotentialUse": 5, "double": "防具", "MaterialUse": null, "MaterialType": null },
198
+ '对水属性伤害%': { "name": "对水属性伤害%", "type": "to", "min": -21, "max": 21, "ExValue": 20, "ExBefore": 1, "ExAfter": 1, "PotentialUse": 5, "double": "防具", "MaterialUse": null, "MaterialType": null },
199
+ '对风属性伤害%': { "name": "对风属性伤害%", "type": "to", "min": -21, "max": 21, "ExValue": 20, "ExBefore": 1, "ExAfter": 1, "PotentialUse": 5, "double": "防具", "MaterialUse": null, "MaterialType": null },
200
+ '对地属性伤害%': { "name": "对地属性伤害%", "type": "to", "min": -21, "max": 21, "ExValue": 20, "ExBefore": 1, "ExAfter": 1, "PotentialUse": 5, "double": "防具", "MaterialUse": null, "MaterialType": null },
201
+ '对光属性伤害%': { "name": "对光属性伤害%", "type": "to", "min": -21, "max": 21, "ExValue": 20, "ExBefore": 1, "ExAfter": 1, "PotentialUse": 5, "double": "防具", "MaterialUse": null, "MaterialType": null },
202
+ '对暗属性伤害%': { "name": "对暗属性伤害%", "type": "to", "min": -21, "max": 21, "ExValue": 20, "ExBefore": 1, "ExAfter": 1, "PotentialUse": 5, "double": "防具", "MaterialUse": null, "MaterialType": null },
203
+ '火属性': { "name": "火属性", "type": "element", "min": 0, "max": 1, "ExValue": 1, "ExBefore": 1, "ExAfter": 1, "PotentialUse": 100, "double": null, "MaterialUse": null, "MaterialType": null },
204
+ '水属性': { "name": "水属性", "type": "element", "min": 0, "max": 1, "ExValue": 1, "ExBefore": 1, "ExAfter": 1, "PotentialUse": 100, "double": null, "MaterialUse": null, "MaterialType": null },
205
+ '风属性': { "name": "风属性", "type": "element", "min": 0, "max": 1, "ExValue": 1, "ExBefore": 1, "ExAfter": 1, "PotentialUse": 100, "double": null, "MaterialUse": null, "MaterialType": null },
206
+ '地属性': { "name": "地属性", "type": "element", "min": 0, "max": 1, "ExValue": 1, "ExBefore": 1, "ExAfter": 1, "PotentialUse": 100, "double": null, "MaterialUse": null, "MaterialType": null },
207
+ '光属性': { "name": "光属性", "type": "element", "min": 0, "max": 1, "ExValue": 1, "ExBefore": 1, "ExAfter": 1, "PotentialUse": 100, "double": null, "MaterialUse": null, "MaterialType": null },
208
+ '暗属性': { "name": "暗属性", "type": "element", "min": 0, "max": 1, "ExValue": 1, "ExBefore": 1, "ExAfter": 1, "PotentialUse": 100, "double": null, "MaterialUse": null, "MaterialType": null },
209
+ '火原属': { "name": "火原属", "type": "element", "min": 0, "max": 1, "ExValue": 1, "ExBefore": 1, "ExAfter": 1, "PotentialUse": 10, "double": null, "MaterialUse": null, "MaterialType": null },
210
+ '水原属': { "name": "水原属", "type": "element", "min": 0, "max": 1, "ExValue": 1, "ExBefore": 1, "ExAfter": 1, "PotentialUse": 10, "double": null, "MaterialUse": null, "MaterialType": null },
211
+ '风原属': { "name": "风原属", "type": "element", "min": 0, "max": 1, "ExValue": 1, "ExBefore": 1, "ExAfter": 1, "PotentialUse": 10, "double": null, "MaterialUse": null, "MaterialType": null },
212
+ '地原属': { "name": "地原属", "type": "element", "min": 0, "max": 1, "ExValue": 1, "ExBefore": 1, "ExAfter": 1, "PotentialUse": 10, "double": null, "MaterialUse": null, "MaterialType": null },
213
+ '光原属': { "name": "光原属", "type": "element", "min": 0, "max": 1, "ExValue": 1, "ExBefore": 1, "ExAfter": 1, "PotentialUse": 10, "double": null, "MaterialUse": null, "MaterialType": null },
214
+ '暗原属': { "name": "暗原属", "type": "element", "min": 0, "max": 1, "ExValue": 1, "ExBefore": 1, "ExAfter": 1, "PotentialUse": 10, "double": null, "MaterialUse": null, "MaterialType": null },
215
+ };
216
+ // 返回给定长度的组合
217
+ function combinationsL(elements, k) {
218
+ const result = [];
219
+ function combine(start, currentCombination) {
220
+ if (currentCombination.length === k) {
221
+ result.push([...currentCombination]);
222
+ return;
223
+ }
224
+ for (let i = start; i < elements.length; i++) {
225
+ currentCombination.push(elements[i]);
226
+ combine(i + 1, currentCombination);
227
+ currentCombination.pop();
228
+ }
229
+ }
230
+ combine(0, []);
231
+ return result;
232
+ }
233
+ // 返回不指定长度的组合
234
+ function combinations(arr) {
235
+ const result = [];
236
+ function generateCombinations(current, remaining) {
237
+ if (remaining.length === 0) {
238
+ result.push(current.slice()); // 将当前组合添加到结果数组中
239
+ return;
240
+ }
241
+ const [first, ...rest] = remaining;
242
+ // 包含第一个元素的情况
243
+ generateCombinations([...current, first], rest);
244
+ // 不包含第一个元素的情况
245
+ generateCombinations(current, rest);
246
+ }
247
+ generateCombinations([], arr);
248
+ return result;
249
+ }
250
+ // 模拟一个对象 {NowEnchant:[{type,value},...],potential,type} 进行附魔 [{type,value},...] 返回附魔后的对象
251
+ function EnchantSimulate(CurrentStatus, AddEnchant) {
252
+ var NewStatus = CopyObject(CurrentStatus);
253
+ var NewRatio = Ratio(CurrentStatus, AddEnchant);
254
+ var AllUse = 0;
255
+ for (var ES_i1 = 0; ES_i1 < AddEnchant.length; ES_i1++) {
256
+ var CellBaseUse = EnchantAbilityEffect[AddEnchant[ES_i1].type].PotentialUse;
257
+ var CellExValue = EnchantAbilityEffect[AddEnchant[ES_i1].type].ExValue;
258
+ var CellNowValue, had = -1;
259
+ for (var ES_i2 = 0; ES_i2 < NewStatus.NowEnchant.length; ES_i2++) {
260
+ if (NewStatus.NowEnchant[ES_i2].type == AddEnchant[ES_i1].type) {
261
+ had = ES_i2;
262
+ CellNowValue = NewStatus.NowEnchant[ES_i2].value;
263
+ }
264
+ }
265
+ if (had == -1) {
266
+ CellNowValue = 0;
267
+ }
268
+ var CellExBeforeValue, CellExAfterValue, direction, power1, power2;
269
+ if (AddEnchant[ES_i1].value >= 0) {
270
+ direction = 1;
271
+ }
272
+ else {
273
+ direction = -1;
274
+ }
275
+ if (Math.abs(CellNowValue) >= CellExValue) {
276
+ CellExBeforeValue = 0;
277
+ CellExAfterValue = AddEnchant[ES_i1].value;
278
+ }
279
+ else {
280
+ if (Math.abs(CellNowValue + AddEnchant[ES_i1].value) > CellExValue) {
281
+ CellExBeforeValue = direction * CellExValue - CellNowValue;
282
+ CellExAfterValue = CellNowValue + AddEnchant[ES_i1].value - direction * CellExValue;
283
+ }
284
+ else {
285
+ CellExBeforeValue = AddEnchant[ES_i1].value;
286
+ CellExAfterValue = 0;
287
+ }
288
+ }
289
+ var CellExBefore = EnchantAbilityEffect[AddEnchant[ES_i1].type].ExBefore;
290
+ var CellExAfter = EnchantAbilityEffect[AddEnchant[ES_i1].type].ExAfter;
291
+ if (direction > 0) {
292
+ power1 = 1;
293
+ power2 = 2;
294
+ }
295
+ else {
296
+ power1 = 0.305;
297
+ power2 = 0.5;
298
+ }
299
+ var CellUse = (CellExBeforeValue / CellExBefore + CellExAfterValue / CellExAfter * power2) * CellBaseUse * power1;
300
+ if (EnchantAbilityEffect[AddEnchant[ES_i1].type].double == CurrentStatus.type) {
301
+ CellUse = CellUse * 2;
302
+ }
303
+ CellUse = Math.floor(Math.abs(CellUse)) * direction;
304
+ AllUse += CellUse;
305
+ if (had == -1) {
306
+ NewStatus.NowEnchant.push({ "type": AddEnchant[ES_i1].type, "value": CellNowValue + AddEnchant[ES_i1].value });
307
+ }
308
+ else {
309
+ NewStatus.NowEnchant[had].value += AddEnchant[ES_i1].value;
310
+ }
311
+ }
312
+ AllUse = Math.floor(Math.abs(NewRatio * AllUse)) * direction;
313
+ NewStatus.potential -= AllUse;
314
+ return NewStatus;
315
+ }
316
+ // 计算一个对象 {NowEnchant:[{type,value},...],potential,type} 进行附魔 [{type,value},...] 后的倍率
317
+ function Ratio(CurrentStatus, AddEnchant) {
318
+ var ThisRatioList = RatioList(CurrentStatus, AddEnchant);
319
+ var ThisRatio = 0;
320
+ var ThisRatioCountListKeys = Object.keys(ThisRatioList);
321
+ for (var R_i = 0; R_i < ThisRatioCountListKeys.length; R_i++) {
322
+ if (ThisRatioList[ThisRatioCountListKeys[R_i]] > 1) {
323
+ ThisRatio += ThisRatioList[ThisRatioCountListKeys[R_i]] ** 2;
324
+ }
325
+ }
326
+ ThisRatio = 1 + 0.05 * ThisRatio;
327
+ return ThisRatio;
328
+ }
329
+ // 统计一个对象 {NowEnchant:[{type,value},...],potential,type} 进行附魔 [{type,value},...] 后的倍率项数组
330
+ function RatioList(CurrentStatus, AddEnchant) {
331
+ var ThisRatioList = { "PlayerAbility": 0, "hpmp": 0, "atk": 0, "def": 0, "flee": 0, "ctr": 0, "to": 0 };
332
+ for (const cell of CurrentStatus.NowEnchant) {
333
+ ThisRatioList[EnchantAbilityEffect[cell.type].type] += 1;
334
+ }
335
+ for (var RL_i = 0; RL_i < AddEnchant.length; RL_i++) {
336
+ var RatioList_had = -1;
337
+ for (const cell of CurrentStatus.NowEnchant) {
338
+ if (cell.type == AddEnchant[RL_i].type) {
339
+ RatioList_had = 1;
340
+ }
341
+ }
342
+ if (RatioList_had == -1) {
343
+ ThisRatioList[EnchantAbilityEffect[AddEnchant[RL_i].type].type] += 1;
344
+ }
345
+ }
346
+ return ThisRatioList;
347
+ }
348
+ // 将一个对象 {NowEnchant:[{type,value},...],potential,type} 赋值给新对象
349
+ function CopyObject(CurrentStatus) {
350
+ var CE_json = JSON.stringify(CurrentStatus);
351
+ var NewObject = JSON.parse(CE_json);
352
+ return NewObject;
353
+ }
354
+ // 尝试计算第一步拉潜力数组
355
+ function MakeFirst(UsePotentialList, CanUse) {
356
+ var FirstStepList = [], MF_use1, MF_max1, MF_val1, MF_use2;
357
+ for (var MF_i = 0; MF_i < UsePotentialList.length; MF_i++) {
358
+ MF_use1 = UsePotentialList[MF_i].PotentialUse;
359
+ if (MF_use1 == 0) {
360
+ MF_val1 = 0;
361
+ }
362
+ else {
363
+ MF_max1 = UsePotentialList[MF_i].max;
364
+ MF_val1 = Math.min(MF_max1, Math.floor(CanUse / MF_use1));
365
+ }
366
+ CanUse -= MF_val1 * MF_use1;
367
+ FirstStepList.push(MF_val1);
368
+ }
369
+ if (CanUse != 0) {
370
+ var SwitchList1 = [], MF_index = 0, MF_Q, MF_mod;
371
+ for (var MF_i1 = 0; MF_i1 < UsePotentialList.length; MF_i1++) {
372
+ MF_use1 = UsePotentialList[MF_i1].PotentialUse;
373
+ for (var MF_i2 = 0; MF_i2 < UsePotentialList.length; MF_i2++) {
374
+ if (MF_i1 != MF_i2) {
375
+ MF_use2 = UsePotentialList[MF_i2].PotentialUse;
376
+ if (MF_use1 != 0 && MF_use2 != 0) {
377
+ MF_Q = Math.floor(MF_use1 / MF_use2);
378
+ MF_mod = MF_use1 % MF_use2;
379
+ SwitchList1.push({ "index": MF_index, "from": MF_i1, "to": MF_i2, "Q": MF_Q, "mod": MF_mod });
380
+ MF_index += 1;
381
+ }
382
+ }
383
+ }
384
+ }
385
+ var MF_ok = -1;
386
+ for (var MF_i1 = 0; MF_i1 < SwitchList1.length; MF_i1++) {
387
+ if (SwitchList1[MF_i1].mod + CanUse == UsePotentialList[SwitchList1[MF_i1].to].PotentialUse && FirstStepList[SwitchList1[MF_i1].from] > 0) {
388
+ MF_ok = SwitchList1[MF_i1].index;
389
+ }
390
+ }
391
+ if (MF_ok == -1) {
392
+ for (var MF_i = 0; MF_i < FirstStepList.length; MF_i++) {
393
+ FirstStepList[MF_i] = 0;
394
+ }
395
+ return FirstStepList;
396
+ }
397
+ else {
398
+ FirstStepList[SwitchList1[MF_ok].from] -= 1;
399
+ FirstStepList[SwitchList1[MF_ok].to] += SwitchList1[MF_ok].Q + 1;
400
+ return FirstStepList;
401
+ }
402
+ }
403
+ }
149
404
  // 更新数据库指令
150
405
  ctx.command('数据文件写入').action(async ({ session }, ...args) => {
151
406
  try {
@@ -192,6 +447,7 @@ async function apply(ctx, config) {
192
447
  ]);
193
448
  break;
194
449
  default:
450
+ ;
195
451
  break;
196
452
  }
197
453
  }
@@ -220,7 +476,7 @@ async function apply(ctx, config) {
220
476
  for (const element of elements) {
221
477
  if (element.type == "at") {
222
478
  if (element.attrs.id == config.机器人qq) {
223
- return '魔导书现有功能:\n①升级 等级:查询该等级升级头目\n②天气预报:查看本次大更新的覆盖内容\n③料理 料理名称 [料理等级]:查询高级料理名单(结果通常用拼音排序)\n④料理 玩家名称:查询该玩家的料理信息\n⑤游戏术语 [术语名称]:查询游戏术语';
479
+ return '魔导书现有功能:\n①升级 等级:查询该等级升级头目\n②天气预报:查看接下来' + config.天气预报_更新数量 + '次更新的内容\n③料理 料理名称 料理等级(可选):查询高级料理名单(结果通常用拼音排序)\n④料理 玩家名称:查询该玩家的料理信息\n⑤游戏术语 术语名称:查询游戏术语';
224
480
  }
225
481
  }
226
482
  }
@@ -447,10 +703,662 @@ async function apply(ctx, config) {
447
703
  const Update_Date = new Date(Update.time);
448
704
  DateString = `${Update_Date.getMonth() + 1}月${Update_Date.getDate()}日`;
449
705
  return `${DateString}更新:${Update?.content}`;
450
- }).join('\n');
706
+ }).join('\n\n');
451
707
  return Updates;
452
708
  }
453
709
  return NextUpdateNotFind[Math.floor(Math.random() * NextUpdateNotFind.length)];
454
710
  });
711
+ // 武器附魔指令
712
+ ctx.command('武器附魔 <附魔正属> <潜力值>')
713
+ .option('AllowMinusMPRevert', '-a')
714
+ .action(async ({ options, session }, ...args) => {
715
+ let Enchantments = args[0], potential = args[1];
716
+ // 参数缺失,返回可输入属性列表
717
+ if (Enchantments == undefined || potential == undefined) {
718
+ return EnchantReply;
719
+ }
720
+ // 参数齐全,尝试解析附魔
721
+ const EnchantmentsArr = Enchantments.split("/");
722
+ x = 0;
723
+ let EnchantAbilityList = [];
724
+ for (const enchant of EnchantmentsArr) {
725
+ x += 1;
726
+ // 附魔的数值不是数字时
727
+ var EnchantNum = parseFloat(enchant);
728
+ if (isNaN(EnchantNum)) {
729
+ if (EnchantAbilityEffect[AbilityType[enchant]]?.type == "element") {
730
+ EnchantNum = 1;
731
+ }
732
+ else {
733
+ return "你这是在附什么奇怪的东西啊!";
734
+ }
735
+ }
736
+ // 附魔的潜力不是整数时
737
+ if (/潜力$/.test(potential) == true) {
738
+ potential = potential.replace(/潜力/g, "");
739
+ }
740
+ if (/潜$/.test(potential) == true) {
741
+ potential = potential.replace(/潜/g, "");
742
+ }
743
+ if (/^\+?(0|[1-9]\d*)$/.test(potential) != true) {
744
+ return "你要不要看一眼你的潜力?";
745
+ }
746
+ var EnchantName = enchant.replace(EnchantNum, "");
747
+ // 附魔不在简称列表内
748
+ var EnchantType = AbilityType[EnchantName] ?? null;
749
+ if (EnchantType == null) {
750
+ return "书还不支持这种附魔的计算哦~";
751
+ }
752
+ // 写进列表
753
+ var EnchantAbility = { "id": x, "type": EnchantType, "value": EnchantNum, "PotentialUse": EnchantAbilityEffect[EnchantType].PotentialUse };
754
+ EnchantAbilityList.push(EnchantAbility);
755
+ }
756
+ // 附魔项过多
757
+ if (x > 8) {
758
+ return "什么?锻造6阶出了吗?怎么附这么多?";
759
+ }
760
+ n = 0;
761
+ c = 0;
762
+ g = 0;
763
+ for (const EnchantAbility of EnchantAbilityList) {
764
+ x = EnchantAbility.id;
765
+ aa = EnchantAbility.type;
766
+ a = EnchantAbility.value;
767
+ // 检查是否存在重复项
768
+ if (EnchantAbilityEffect[aa].type == "element") {
769
+ n += 1;
770
+ }
771
+ if (aa == "暴击率") {
772
+ c = Math.min(a - 1, 19);
773
+ g += 1;
774
+ }
775
+ if (aa == "暴击伤害") {
776
+ g += 3;
777
+ }
778
+ if (aa == "暴击伤害%") {
779
+ g += 10;
780
+ }
781
+ for (const another of EnchantAbilityList) {
782
+ if (x != another.id && aa == another.type) {
783
+ return "你为什么不附一件8个词条都是25暴击的200暴武器呢?";
784
+ }
785
+ }
786
+ }
787
+ if (n > 1) {
788
+ return "快进到全属性觉醒!";
789
+ }
790
+ n = 0;
791
+ let RatioList1 = { 'PlayerAbility': 0, 'hpmp': 0, 'atk': 0, 'def': 0, 'flee': 0, 'ctr': 0, 'to': 0, 'element': 0 };
792
+ for (const EnchantAbility of EnchantAbilityList) {
793
+ aa = EnchantAbility.type;
794
+ RatioList1[EnchantAbilityEffect[aa].type] += 1;
795
+ x = EnchantAbility.value;
796
+ // 检查附魔数值范围
797
+ var ThisAbilityMin = EnchantAbilityEffect[aa].min;
798
+ var ThisAbilityMax = EnchantAbilityEffect[aa].max;
799
+ if (x < ThisAbilityMin || x > ThisAbilityMax) {
800
+ return "嗯...好像有点超出现在的版本了呢?";
801
+ }
802
+ // 检查附魔数值合法并计算正属总耗潜
803
+ var ThisAbilityExValue = EnchantAbilityEffect[aa].ExValue;
804
+ var ThisAbilityExAfter = EnchantAbilityEffect[aa].ExAfter;
805
+ var ThisAbilityExBefore = EnchantAbilityEffect[aa].ExBefore;
806
+ if (x > ThisAbilityExValue) {
807
+ a = x - ThisAbilityExValue;
808
+ b = ThisAbilityExAfter;
809
+ }
810
+ else {
811
+ a = x;
812
+ b = ThisAbilityExBefore;
813
+ }
814
+ a = a / b;
815
+ if (a != Math.floor(a)) {
816
+ return "附不到这个数字吧!";
817
+ }
818
+ var ThisAbilityPotentialUse = EnchantAbilityEffect[aa].PotentialUse;
819
+ if (x > ThisAbilityExValue) {
820
+ n += (ThisAbilityExValue / ThisAbilityExBefore + (x - ThisAbilityExValue) / ThisAbilityExAfter * 2) * ThisAbilityPotentialUse;
821
+ }
822
+ else {
823
+ n += x / ThisAbilityExBefore * ThisAbilityPotentialUse;
824
+ }
825
+ }
826
+ // 计算退潜列表
827
+ let ReturnPotentialList = [];
828
+ for (let ability in EnchantAbilityEffect) {
829
+ a = 1;
830
+ for (const EnchantAbility of EnchantAbilityList) {
831
+ if (EnchantAbilityEffect[ability].name == EnchantAbility.type || EnchantAbilityEffect[ability].type == "element") {
832
+ a = 0;
833
+ }
834
+ }
835
+ if (EnchantAbilityEffect[ability].name == "mp自然恢复" && options.AllowMinusMPRevert != true) {
836
+ a = 0;
837
+ }
838
+ if (a == 1) {
839
+ a = EnchantAbilityEffect[ability].min;
840
+ b = EnchantAbilityEffect[ability].ExValue;
841
+ d = EnchantAbilityEffect[ability].ExAfter;
842
+ e = EnchantAbilityEffect[ability].ExBefore;
843
+ f = EnchantAbilityEffect[ability].PotentialUse;
844
+ x = ((Math.abs(a) - b) / d * 0.5 + b / e) * f * 0.305;
845
+ if (EnchantAbilityEffect[ability].double == "武器") {
846
+ x = x * 2;
847
+ }
848
+ x = Math.floor(x);
849
+ var ReturnPotent = { "name": EnchantAbilityEffect[ability].name, "type": EnchantAbilityEffect[ability].type, "value": x };
850
+ ReturnPotentialList.push(ReturnPotent);
851
+ }
852
+ }
853
+ // 遍历退潜方法
854
+ let ReturnPotentialSelect1 = ReturnPotentialList
855
+ .sort(function (a, b) {
856
+ let aRP = a.value;
857
+ let bRP = b.value;
858
+ return bRP - aRP;
859
+ })
860
+ .slice(0, 8);
861
+ a = 8 - EnchantAbilityList.length;
862
+ const ReturnPotentialSelect2 = combinationsL(ReturnPotentialSelect1, a);
863
+ // 计算每种退潜方法的倍率
864
+ let RatioList2 = [];
865
+ ReturnPotentialSelect2.forEach(function (Select, index) {
866
+ let RatioCountList = { "PlayerAbility": 0, "hpmp": 0, "atk": 0, "def": 0, "flee": 0, "ctr": 0, "to": 0 };
867
+ x = 0;
868
+ for (const Return of Select) {
869
+ RatioCountList[Return.type] += 1;
870
+ x += Return.value;
871
+ }
872
+ var RatioCountListKeys = Object.keys(RatioCountList);
873
+ y = 0;
874
+ for (var i = 0; i < RatioCountListKeys.length; i++) {
875
+ if (RatioCountList[RatioCountListKeys[i]] > 1) {
876
+ y += RatioCountList[RatioCountListKeys[i]] ** 2;
877
+ }
878
+ }
879
+ y *= 0.05;
880
+ RatioList2.push({ "Ratio": y, "value": x, "index": index });
881
+ });
882
+ // 获取每种倍率下最高的退潜方法
883
+ RatioList2 = RatioList2.sort(function (a, b) {
884
+ let aRP = a.value;
885
+ let bRP = b.value;
886
+ return bRP - aRP;
887
+ });
888
+ let RatioList3 = [];
889
+ let RatioList4 = [];
890
+ for (const ReturnMethod of RatioList2) {
891
+ if (RatioList4.indexOf(ReturnMethod.Ratio) == -1) {
892
+ RatioList4.push(ReturnMethod.Ratio);
893
+ RatioList3.push(ReturnMethod);
894
+ }
895
+ }
896
+ // 对每种退潜方法计算成功率
897
+ let SuccessRateList = [];
898
+ x = 0;
899
+ var RatioList1Keys = Object.keys(RatioList1);
900
+ for (var i = 0; i < RatioList1Keys.length; i++) {
901
+ if (RatioList1[RatioList1Keys[i]] > 1) {
902
+ x += RatioList1[RatioList1Keys[i]] ** 2;
903
+ }
904
+ }
905
+ x = 1 + 0.05 * x;
906
+ for (let i = 0; i < RatioList3.length; i++) {
907
+ let ReturnMethod = RatioList3[i];
908
+ b = ReturnMethod.value * (x + ReturnMethod.Ratio) - c + 1;
909
+ a = 160 + 230 / b * (b - (n - potential - c + 1) * (x + ReturnMethod.Ratio));
910
+ SuccessRateList.push({ "index": ReturnMethod.index, "rate": a, "type": 1, "Ratio": x + ReturnMethod.Ratio });
911
+ b = potential - g + ReturnMethod.value * (x + ReturnMethod.Ratio);
912
+ a = 160 + 230 / b * (b - (n - g) * (x + ReturnMethod.Ratio));
913
+ SuccessRateList.push({ "index": ReturnMethod.index, "rate": a, "type": 2, "Ratio": x + ReturnMethod.Ratio });
914
+ }
915
+ // 获取最高成功率的方法并解析
916
+ SuccessRateList = SuccessRateList.sort(function (a, b) {
917
+ let aRT = a.rate;
918
+ let bRT = b.rate;
919
+ return bRT - aRT;
920
+ });
921
+ a = SuccessRateList[0].index;
922
+ y = SuccessRateList[0].Ratio;
923
+ arr1 = [];
924
+ const ChoiceMethod = ReturnPotentialSelect2[a];
925
+ for (let i = 0; i < ChoiceMethod.length; i++) {
926
+ arr1.push({ "type": ChoiceMethod[i].name, "value": EnchantAbilityEffect[ChoiceMethod[i].name].min });
927
+ }
928
+ // 尝试还原附魔步骤
929
+ var Equipment = { "NowEnchant": [], "potential": potential, "type": "武器" };
930
+ let TextList = [], FirstList = [];
931
+ var RatioCountList = {}, RatioCountList2 = [], RatioCountList3 = [];
932
+ let EquipmentBefore, EquipmentAfter;
933
+ switch (SuccessRateList[0].type) {
934
+ // 分步附
935
+ case 1:
936
+ // 计算可用潜力
937
+ EnchantAbilityList = EnchantAbilityList.sort(function (a, b) {
938
+ let aPU = a.PotentialUse;
939
+ let bPU = b.PotentialUse;
940
+ return bPU - aPU;
941
+ });
942
+ RatioCountList = RatioList(Equipment, EnchantAbilityList);
943
+ for (const Enchant of EnchantAbilityList) {
944
+ aa = EnchantAbilityEffect[Enchant.type].type;
945
+ if (RatioCountList[aa] > 1) {
946
+ RatioCountList2.push({ "type": Enchant.type, "value": Enchant.value, "PotentialUse": Enchant.PotentialUse, "MainType": aa });
947
+ }
948
+ }
949
+ RatioCountList3 = [];
950
+ for (const Enchant of RatioCountList2) {
951
+ RatioCountList3.push({ "type": Enchant.type, "value": 1, "PotentialUse": Enchant.PotentialUse });
952
+ }
953
+ EquipmentBefore = CopyObject(Equipment);
954
+ for (var i = 0; i < RatioCountList3.length - 1; i++) {
955
+ var step = [];
956
+ step.push(RatioCountList3[i]);
957
+ EquipmentAfter = EnchantSimulate(EquipmentBefore, step);
958
+ EquipmentBefore = CopyObject(EquipmentAfter);
959
+ }
960
+ EquipmentAfter = EnchantSimulate(EquipmentBefore, [RatioCountList3[RatioCountList3.length - 1]]);
961
+ var CanUse1 = EquipmentBefore.potential - 1;
962
+ var CanUse2 = EquipmentAfter.potential - 1;
963
+ // 判断倍率项数
964
+ x = 0;
965
+ for (const Enchant of EnchantAbilityList) {
966
+ aa = EnchantAbilityEffect[Enchant.type].type;
967
+ if (RatioCountList[aa] > 1) {
968
+ x += 1;
969
+ }
970
+ }
971
+ // 计算第一步消耗潜力方法
972
+ var GiveLists = [], GiveList = [];
973
+ EquipmentBefore = CopyObject(Equipment);
974
+ // 计算仅用无损的倍率项能否消耗完毕
975
+ a = 0;
976
+ if (x != 0) {
977
+ for (const EnchantAbility of EnchantAbilityList) {
978
+ b = 0;
979
+ if (RatioCountList[EnchantAbilityEffect[EnchantAbility.type].type] > 1 && EnchantAbilityEffect[EnchantAbility.type].PotentialUse != 1) {
980
+ var step = [];
981
+ step.push({ "type": EnchantAbility.type, "value": 1, "PotentialUse": EnchantAbility.PotentialUse });
982
+ EquipmentAfter = EnchantSimulate(EquipmentBefore, step);
983
+ if (EquipmentBefore.potential - EquipmentAfter.potential == EnchantAbilityEffect[EnchantAbility.type].PotentialUse) {
984
+ GiveList.push({ "index": a, "type": EnchantAbility.type, "PotentialUse": EnchantAbilityEffect[EnchantAbility.type].PotentialUse, "max": EnchantAbilityEffect[EnchantAbility.type].max });
985
+ EquipmentBefore = CopyObject(EquipmentAfter);
986
+ b = 1;
987
+ }
988
+ }
989
+ if (b == 0) {
990
+ GiveList.push({ "index": a, "type": EnchantAbility.type, "PotentialUse": 0, "max": EnchantAbilityEffect[EnchantAbility.type].max });
991
+ }
992
+ a += 1;
993
+ }
994
+ }
995
+ var ReturnFirst1 = [], ReturnFirst2 = [], FirstListNum = [], FirstLists = [];
996
+ if (GiveList.length != 0) {
997
+ GiveLists.push(GiveList);
998
+ for (const PotentialUseList of GiveLists) {
999
+ ReturnFirst1 = MakeFirst(PotentialUseList, CanUse1);
1000
+ ReturnFirst2 = MakeFirst(PotentialUseList, CanUse2);
1001
+ FirstLists.push(ReturnFirst1);
1002
+ FirstLists.push(ReturnFirst2);
1003
+ }
1004
+ a = 0;
1005
+ for (const ReturnList of FirstLists) {
1006
+ for (var i = 0; i < ReturnList.length; i++) {
1007
+ if (ReturnList[i] != 0) {
1008
+ a = 1;
1009
+ FirstListNum = ReturnList;
1010
+ break;
1011
+ }
1012
+ }
1013
+ if (a == 1) {
1014
+ break;
1015
+ }
1016
+ }
1017
+ for (var i = 0; i < FirstListNum.length; i++) {
1018
+ if (FirstListNum[i] != 0) {
1019
+ FirstList.push({ "type": EnchantAbilityList[i].type, "value": FirstListNum[i] + 1 });
1020
+ }
1021
+ }
1022
+ }
1023
+ // 若仅用无损倍率无法消耗完毕
1024
+ if (FirstList.length == 0) {
1025
+ FirstLists = [], GiveLists = [];
1026
+ var NewGiveList = CopyObject(GiveList);
1027
+ var EnchantList = [];
1028
+ for (const EnchantAbility of EnchantAbilityList) {
1029
+ if (RatioCountList[EnchantAbilityEffect[EnchantAbility.type].type] < 2) {
1030
+ EnchantList.push(EnchantAbility);
1031
+ }
1032
+ }
1033
+ var APEnchantLists = combinations(EnchantList);
1034
+ APEnchantLists.sort(function (a, b) {
1035
+ let aL = a.length;
1036
+ let bL = b.length;
1037
+ return aL - bL;
1038
+ });
1039
+ for (const APEnchantList of APEnchantLists) {
1040
+ var NewGiveList = CopyObject(GiveList);
1041
+ if (APEnchantList.length != 0) {
1042
+ for (const APEnchant of APEnchantList) {
1043
+ NewGiveList.push(APEnchant);
1044
+ }
1045
+ }
1046
+ NewGiveList.sort(function (a, b) {
1047
+ let aPU = EnchantAbilityEffect[a.type].PotentialUse;
1048
+ let bPU = EnchantAbilityEffect[b.type].PotentialUse;
1049
+ return bPU - aPU;
1050
+ });
1051
+ for (const PotentialUseList of NewGiveList) {
1052
+ ReturnFirst1 = MakeFirst(PotentialUseList, CanUse1);
1053
+ ReturnFirst2 = MakeFirst(PotentialUseList, CanUse2);
1054
+ FirstLists.push(ReturnFirst1);
1055
+ FirstLists.push(ReturnFirst2);
1056
+ }
1057
+ b = 0;
1058
+ for (const ReturnList of FirstLists) {
1059
+ for (var i = 0; i < ReturnList.length; i++) {
1060
+ if (ReturnList[i] != 0) {
1061
+ b = 1;
1062
+ FirstListNum = ReturnList;
1063
+ break;
1064
+ }
1065
+ }
1066
+ if (b == 1) {
1067
+ break;
1068
+ }
1069
+ }
1070
+ for (var i = 0; i < FirstListNum.length; i++) {
1071
+ if (FirstListNum[i] != 0) {
1072
+ FirstList.push({ "type": EnchantAbilityList[i].type, "value": FirstListNum[i] + 1 });
1073
+ }
1074
+ }
1075
+ if (FirstList.length != 0) {
1076
+ break;
1077
+ }
1078
+ }
1079
+ }
1080
+ // 第一步消耗潜力
1081
+ EquipmentBefore = CopyObject(Equipment);
1082
+ if (a == 1) {
1083
+ for (var i = 0; i < FirstList.length; i++) {
1084
+ if (i == 0) {
1085
+ var step = [];
1086
+ step.push(FirstList[i]);
1087
+ EquipmentAfter = EnchantSimulate(EquipmentBefore, step);
1088
+ text = "附" + FirstList[i].value + FirstList[i].type + ",剩余" + EquipmentAfter.potential + "潜力;\n";
1089
+ EquipmentBefore = CopyObject(EquipmentAfter);
1090
+ TextList.push(text);
1091
+ }
1092
+ else {
1093
+ var step = [];
1094
+ step.push({ "type": FirstList[i].type, "value": 1 });
1095
+ for (var j = 0; j < FirstList[i].value; j++) {
1096
+ EquipmentAfter = EnchantSimulate(EquipmentBefore, step);
1097
+ EquipmentBefore = CopyObject(EquipmentAfter);
1098
+ }
1099
+ text = "分" + FirstList[i].value + "次附,每次附1" + FirstList[i].type + "直到" + FirstList[i].value + FirstList[i].type + ",剩余" + EquipmentAfter.potential + "潜力;\n";
1100
+ TextList.push(text);
1101
+ }
1102
+ }
1103
+ for (const Enchant of EnchantAbilityList) {
1104
+ if (EnchantAbilityEffect[Enchant.type].type == aa && EnchantAbilityEffect[Enchant.type].PotentialUse == 1) {
1105
+ var step = [];
1106
+ step.push({ "type": Enchant.type, "value": 1 });
1107
+ EquipmentAfter = EnchantSimulate(EquipmentBefore, step);
1108
+ if (EquipmentAfter.potential != 0) {
1109
+ EquipmentBefore = CopyObject(EquipmentAfter);
1110
+ text = "附1" + Enchant.type + ",剩余" + EquipmentAfter.potential + "潜力;\n";
1111
+ TextList.push(text);
1112
+ }
1113
+ else {
1114
+ aa = Enchant.type;
1115
+ }
1116
+ }
1117
+ }
1118
+ }
1119
+ else {
1120
+ text = "附";
1121
+ EquipmentAfter = EnchantSimulate(EquipmentBefore, FirstList);
1122
+ EquipmentBefore = CopyObject(EquipmentAfter);
1123
+ for (const Enchant of FirstList) {
1124
+ text += Enchant.value + Enchant.type + "、";
1125
+ }
1126
+ text = text.substring(0, text.length - 1) + ",剩余" + EquipmentAfter.potential + "潜力;\n";
1127
+ TextList.push(text);
1128
+ }
1129
+ // 第二步拉倍率
1130
+ if (a == 0) {
1131
+ for (var i = 0; i < RatioCountList3.length - 1; i++) {
1132
+ var step = [];
1133
+ step.push(RatioCountList3[i]);
1134
+ EquipmentAfter = EnchantSimulate(EquipmentBefore, step);
1135
+ text = "附" + step[0].value + step[0].type + ",剩余" + EquipmentAfter.potential + "潜力;\n";
1136
+ TextList.push(text);
1137
+ EquipmentBefore = CopyObject(EquipmentAfter);
1138
+ }
1139
+ EquipmentAfter = EnchantSimulate(EquipmentBefore, [RatioCountList3[RatioCountList3.length - 1]]);
1140
+ if (EquipmentAfter.potential != 0) {
1141
+ text = "附" + RatioCountList3[RatioCountList3.length - 1].value + RatioCountList3[RatioCountList3.length - 1].type + ",剩余" + EquipmentAfter.potential + "潜力;\n";
1142
+ TextList.push(text);
1143
+ EquipmentBefore = CopyObject(EquipmentAfter);
1144
+ }
1145
+ else {
1146
+ aa = RatioCountList3[RatioCountList3.length - 1].type;
1147
+ }
1148
+ }
1149
+ // 第三步退潜
1150
+ if (EquipmentAfter.potential == 0) {
1151
+ arr1.unshift({ "type": aa, "value": 1 });
1152
+ }
1153
+ EquipmentAfter = EnchantSimulate(EquipmentBefore, arr1);
1154
+ text = "附";
1155
+ for (i = 0; i < arr1.length; i++) {
1156
+ text += arr1[i].value + arr1[i].type + "、";
1157
+ }
1158
+ text = text.substring(0, text.length - 1) + ",剩余" + EquipmentAfter.potential + "潜力;\n";
1159
+ TextList.push(text);
1160
+ EquipmentBefore = CopyObject(EquipmentAfter);
1161
+ // 第四步尝试判断暴击等项目
1162
+ arr1 = [], arr2 = [];
1163
+ for (const EnchantAbility of EnchantAbilityList) {
1164
+ var had = -1;
1165
+ for (i = 0; i < EquipmentBefore.NowEnchant.length; i++) {
1166
+ if (EquipmentBefore.NowEnchant[i].type == EnchantAbility.type) {
1167
+ had = i;
1168
+ c = EquipmentBefore.NowEnchant[i].value;
1169
+ }
1170
+ }
1171
+ if (had == -1) {
1172
+ c = 0;
1173
+ }
1174
+ if (c < EnchantAbility.value) {
1175
+ arr1.push({ "type": EnchantAbility.type, "value": EnchantAbility.value - c, "now": c });
1176
+ }
1177
+ }
1178
+ var EquipmentAfter1 = EnchantSimulate(EquipmentBefore, arr1);
1179
+ x = Math.max(0, Math.min(100, Math.floor(160 + 230 / EquipmentBefore.potential * EquipmentAfter1.potential)));
1180
+ arr2.push({ "value": 0, "rate": x });
1181
+ // 若倍率满足
1182
+ if (y > 1 && y < 2) {
1183
+ var i = 0;
1184
+ var StepList = [];
1185
+ arr3 = CopyObject(arr1);
1186
+ for (const Enchant of arr1) {
1187
+ a = EnchantAbilityEffect[Enchant.type].PotentialUse;
1188
+ if (a == 1) {
1189
+ c = Enchant.value;
1190
+ var index = 0;
1191
+ do {
1192
+ i += 1;
1193
+ index += 1;
1194
+ EquipmentAfter1 = EnchantSimulate(EquipmentBefore, [{ "type": Enchant.type, "value": 1 }]);
1195
+ for (const EnchantAbility of arr3) {
1196
+ if (EnchantAbility.type == Enchant.type) {
1197
+ EnchantAbility.value -= 1;
1198
+ EnchantAbility.now += 1;
1199
+ }
1200
+ }
1201
+ var EquipmentAfter2 = EnchantSimulate(EquipmentAfter1, arr3);
1202
+ x = Math.max(0, Math.min(100, Math.floor(160 + 230 / EquipmentAfter1.potential * EquipmentAfter2.potential)));
1203
+ arr2.push({ "value": i, "rate": x });
1204
+ EquipmentBefore = CopyObject(EquipmentAfter1);
1205
+ } while (index < c);
1206
+ }
1207
+ }
1208
+ EquipmentBefore = CopyObject(EquipmentAfter);
1209
+ arr2 = arr2.sort(function (a, b) {
1210
+ var aRT = a.rate;
1211
+ var bRT = b.rate;
1212
+ return bRT - aRT;
1213
+ });
1214
+ if (arr2[0].value != 0) {
1215
+ b = 0, d = 0;
1216
+ for (const Enchant of arr1) {
1217
+ a = EnchantAbilityEffect[Enchant.type].PotentialUse;
1218
+ if (a == 1) {
1219
+ c = Enchant.value;
1220
+ b += c;
1221
+ if (arr2[0].value <= b) {
1222
+ d = 1;
1223
+ StepList.push({ "type": Enchant.type, "value": arr2[0].value });
1224
+ }
1225
+ else {
1226
+ arr2[0].value -= b;
1227
+ StepList.push({ "type": Enchant.type, "value": b });
1228
+ }
1229
+ }
1230
+ if (d == 1) {
1231
+ break;
1232
+ }
1233
+ }
1234
+ for (const Enchant of StepList) {
1235
+ arr3 = [{ "type": Enchant.type, "value": 1 }];
1236
+ for (i = 0; i < Enchant.value; i++) {
1237
+ EquipmentAfter = EnchantSimulate(EquipmentBefore, arr3);
1238
+ EquipmentBefore = CopyObject(EquipmentAfter);
1239
+ }
1240
+ for (const EnchantAbility of arr1) {
1241
+ if (EnchantAbility.type == Enchant.type) {
1242
+ EnchantAbility.value -= Enchant.value;
1243
+ EnchantAbility.now += Enchant.value;
1244
+ }
1245
+ }
1246
+ for (const EnchantAbility of EquipmentAfter.NowEnchant) {
1247
+ if (EnchantAbility.type == Enchant.type) {
1248
+ a = EnchantAbility.value;
1249
+ }
1250
+ }
1251
+ text = "分" + Enchant.value + "次附,每次附1" + Enchant.type + "直到" + a + Enchant.type + ",剩余" + EquipmentAfter.potential + "潜力;\n";
1252
+ TextList.push(text);
1253
+ }
1254
+ }
1255
+ }
1256
+ // 第五步拉满
1257
+ text = "附";
1258
+ EquipmentAfter = EnchantSimulate(EquipmentBefore, arr1);
1259
+ for (i = 0; i < arr1.length; i++) {
1260
+ text += (arr1[i].now + arr1[i].value) + arr1[i].type + "、";
1261
+ }
1262
+ x = Math.max(0, Math.min(100, Math.floor(160 + 230 / EquipmentBefore.potential * EquipmentAfter.potential)));
1263
+ y = Math.round((0.01 * x) ** EnchantAbilityList.length * 10000) / 100;
1264
+ text = text.substring(0, text.length - 1) + ",剩余" + EquipmentAfter.potential + "潜力。\n单项成功率" + x + "%,总成功率" + y + "%\n";
1265
+ TextList.push(text);
1266
+ break;
1267
+ case 2:
1268
+ // 第一步拉倍率
1269
+ // 获取倍率项
1270
+ var EnchantRatioList = RatioList(Equipment, EnchantAbilityList);
1271
+ for (const Enchant of EnchantAbilityList) {
1272
+ aa = Enchant.type;
1273
+ text = EnchantAbilityEffect[aa].type;
1274
+ if (EnchantRatioList[text] > 1) {
1275
+ FirstList.push({ "type": aa, "PotentialUse": EnchantAbilityEffect[aa].PotentialUse, "value": 1 });
1276
+ }
1277
+ }
1278
+ FirstList = FirstList.sort(function (a, b) {
1279
+ let aPU = a.PotentialUse;
1280
+ let bPU = b.PotentialUse;
1281
+ return bPU - aPU;
1282
+ });
1283
+ // 对每个倍率项进行附魔
1284
+ EquipmentBefore = CopyObject(Equipment);
1285
+ for (const Enchant of FirstList) {
1286
+ var step = [];
1287
+ step.push(Enchant);
1288
+ EquipmentAfter = EnchantSimulate(EquipmentBefore, step);
1289
+ text = "附1" + Enchant.type + ",剩余" + EquipmentAfter.potential + "潜力;\n";
1290
+ EquipmentBefore = CopyObject(EquipmentAfter);
1291
+ TextList.push(text);
1292
+ }
1293
+ // 退潜
1294
+ EquipmentAfter = EnchantSimulate(EquipmentBefore, arr1);
1295
+ text = "附";
1296
+ for (i = 0; i < arr1.length; i++) {
1297
+ text += arr1[i].value + arr1[i].type + "、";
1298
+ }
1299
+ text = text.substring(0, text.length - 1) + ",剩余" + EquipmentAfter.potential + "潜力;\n";
1300
+ TextList.push(text);
1301
+ // 拉满
1302
+ arr1 = [];
1303
+ text = "附";
1304
+ EquipmentBefore = CopyObject(EquipmentAfter);
1305
+ for (const EnchantAbility of EnchantAbilityList) {
1306
+ var had = -1;
1307
+ for (i = 0; i < EquipmentBefore.NowEnchant.length; i++) {
1308
+ if (EquipmentBefore.NowEnchant[i].type == EnchantAbility.type) {
1309
+ had = i;
1310
+ c = EquipmentBefore.NowEnchant[i].value;
1311
+ }
1312
+ }
1313
+ if (had == -1) {
1314
+ c = 0;
1315
+ }
1316
+ if (c < EnchantAbility.value) {
1317
+ arr1.push({ "type": EnchantAbility.type, "value": EnchantAbility.value - c, "now": c });
1318
+ }
1319
+ }
1320
+ EquipmentAfter = EnchantSimulate(EquipmentBefore, arr1);
1321
+ for (i = 0; i < arr1.length; i++) {
1322
+ text += (arr1[i].now + arr1[i].value) + arr1[i].type + "、";
1323
+ }
1324
+ x = Math.max(0, Math.min(100, Math.floor(160 + 230 / EquipmentBefore.potential * EquipmentAfter.potential)));
1325
+ y = Math.round((0.01 * x) ** EnchantAbilityList.length * 10000) / 100;
1326
+ text = text.substring(0, text.length - 1) + ",剩余" + EquipmentAfter.potential + "潜力。\n单项成功率" + x + "%,总成功率" + y + "%\n";
1327
+ TextList.push(text);
1328
+ }
1329
+ text = "";
1330
+ a = 0;
1331
+ for (i = 0; i < TextList.length; i++) {
1332
+ if (TextList[i] != "") {
1333
+ a += 1;
1334
+ text += " " + a + ". " + TextList[i];
1335
+ }
1336
+ }
1337
+ text = "附魔步骤如下:\n" + text;
1338
+ switch (true) {
1339
+ case y >= 100:
1340
+ text += "稳附呀!";
1341
+ break;
1342
+ case 100 > y && y >= 80:
1343
+ text += "小炸呢~";
1344
+ break;
1345
+ case 80 > y && y >= 50:
1346
+ text += "有可能失败哦?";
1347
+ break;
1348
+ case 50 > y && y >= 20:
1349
+ text += "也许运气好可以成...";
1350
+ break;
1351
+ case 20 > y && y >= 10:
1352
+ text += "要失败很多次才能成一件吧——";
1353
+ break;
1354
+ case 10 > y && y >= 1:
1355
+ text += "你的素材在哭泣啊!!";
1356
+ break;
1357
+ case y < 1:
1358
+ text += "书的建议是去搞负炸正【】";
1359
+ break;
1360
+ }
1361
+ return text;
1362
+ });
455
1363
  }
456
1364
  exports.apply = apply;
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "koishi-plugin-toram",
3
3
  "description": "托拉姆物语小工具",
4
- "version": "0.6.2-test.4",
4
+ "version": "0.6.3",
5
5
  "contributors": [
6
6
  "青灯 <1874053520@qq.com>"
7
7
  ],