diff --git a/_server/config.json b/_server/config.json index deb3842..7104606 100644 --- a/_server/config.json +++ b/_server/config.json @@ -1 +1 @@ -{"viewportLoc":[0,0],"lastUsed":[{"idnum":562,"id":"Magnifier","images":"items","y":142,"recent":1757751128625,"frequent":1},{"idnum":142,"id":"autotile8","images":"autotile","y":0,"recent":1757043302803,"frequent":204},{"idnum":85,"id":"specialDoor","images":"animates","y":8,"recent":1757043296731,"frequent":14},{"idnum":396,"id":"Mimi","images":"animates","y":36,"recent":1756907433393,"frequent":1},{"idnum":999,"id":"npc7","images":"npc48","y":7,"recent":1756907414830,"frequent":2},{"idnum":1001,"id":"Hako","images":"animates","y":35,"recent":1756907362344,"frequent":1},{"idnum":81,"id":"yellowDoor","images":"animates","y":4,"recent":1756385647302,"frequent":46},{"idnum":481,"id":"Mamushi","images":"enemys","y":90,"recent":1756306842755,"frequent":1},{"idnum":480,"id":"Souri","images":"enemys","y":89,"recent":1756306840851,"frequent":1},{"idnum":207,"id":"redBat","images":"enemys","y":6,"recent":1756306582961,"frequent":16},{"idnum":32,"id":"bluePotion","images":"items","y":21,"recent":1756306568867,"frequent":22},{"idnum":460,"id":"EbiBro","images":"enemys","y":88,"recent":1756306564395,"frequent":8},{"idnum":228,"id":"darkKnight","images":"enemys","y":27,"recent":1756306559509,"frequent":11},{"idnum":82,"id":"blueDoor","images":"animates","y":5,"recent":1756306507081,"frequent":15},{"idnum":414,"id":"blueGem4","images":"items","y":102,"recent":1756306492166,"frequent":10},{"idnum":21,"id":"yellowKey","images":"items","y":0,"recent":1756306490296,"frequent":21},{"idnum":204,"id":"slimelord","images":"enemys","y":3,"recent":1756306485881,"frequent":15},{"idnum":31,"id":"redPotion","images":"items","y":20,"recent":1756306471762,"frequent":29},{"idnum":404,"id":"redGem4","images":"items","y":99,"recent":1756306470124,"frequent":10},{"idnum":219,"id":"brownWizard","images":"enemys","y":18,"recent":1756306464268,"frequent":9},{"idnum":83,"id":"redDoor","images":"animates","y":6,"recent":1756306171778,"frequent":4},{"idnum":220,"id":"redWizard","images":"enemys","y":19,"recent":1756306162359,"frequent":22},{"idnum":63,"id":"battletoken","images":"items","y":46,"recent":1756306135249,"frequent":3},{"idnum":420,"id":"KaniBro","images":"enemys","y":84,"recent":1756306092722,"frequent":3},{"idnum":22,"id":"blueKey","images":"items","y":1,"recent":1756305863075,"frequent":5},{"idnum":247,"id":"blackMagician","images":"enemys","y":46,"recent":1756305840533,"frequent":2},{"idnum":421,"id":"cardbag","images":"items","y":132,"recent":1756305644387,"frequent":3},{"idnum":91,"id":"upPortal","images":"animates","y":26,"recent":1756305432080,"frequent":5},{"idnum":23,"id":"redKey","images":"items","y":2,"recent":1756305265628,"frequent":1},{"idnum":246,"id":"whiteKing","images":"enemys","y":45,"recent":1756305197643,"frequent":10},{"idnum":92,"id":"leftPortal","images":"animates","y":24,"recent":1756305084224,"frequent":3},{"idnum":93,"id":"downPortal","images":"animates","y":23,"recent":1756305017710,"frequent":5},{"idnum":94,"id":"rightPortal","images":"animates","y":25,"recent":1756305015864,"frequent":3},{"idnum":400,"id":"Thief","images":"enemys","y":82,"recent":1756304829917,"frequent":1},{"idnum":223,"id":"redGuard","images":"enemys","y":22,"recent":1756303424681,"frequent":2}],"editor_multi.fontSize":14,"editorLastFloorId":"MT4","disableBlocklyReplace":true,"foldPerCol":50,"folded":false} \ No newline at end of file +{"viewportLoc":[0,0],"lastUsed":[],"editor_multi.fontSize":14,"editorLastFloorId":"SC32_5","disableBlocklyReplace":true,"foldPerCol":50,"folded":false} \ No newline at end of file diff --git a/libs/ui.js b/libs/ui.js index 0fe2055..481bf0f 100644 --- a/libs/ui.js +++ b/libs/ui.js @@ -654,6 +654,19 @@ ui.prototype._uievent_drawIcon = function (data) { this.drawIcon('uievent', id, core.calValue(data.x), core.calValue(data.y), core.calValue(data.width), core.calValue(data.height), data.frame || 0); } +// 绘制灰阶图标 +ui.prototype.drawGrayIcon = function (id) { + const photo = document.createElement("canvas") + const photoctx = photo.getContext("2d") + photo.width = 96 + photo.height = 96 + photoctx.filter = "grayscale(1)" + core.drawIcon(photoctx, id, 0, 0, 96, 96) + photoctx.globalCompositeOperation = "source-atop" + core.fillRect(photoctx, 0, 0, 96, 96, "rgba(0,0,0,0.7)") + return photo + } + ///////////////// UI绘制 ////// 结束一切事件和绘制,关闭UI窗口,返回游戏进程 ////// diff --git a/project/events.js b/project/events.js index 32085df..0e02227 100644 --- a/project/events.js +++ b/project/events.js @@ -1163,37 +1163,82 @@ var events_c12a15a8_c380_4b28_8144_256cba95f760 = "condition": "true", "data": [ { - "type": "choices", - "text": "\t[抽取事件卡,Magnifier]花费${flags.Magnifier*flags.ratio}星币抽取一张事件卡", - "choices": [ + "type": "if", + "condition": "(flags.MapStatus.Map===\"魔法学院\")", + "true": [ { - "text": "抽!", - "need": "status:money>=flags.Magnifier*flags.ratio", - "action": [ + "type": "choices", + "text": "\t[抽取事件卡,Magnifier]花费${10*(flags.Magnifier*flags.ratio)**2}星币抽取一张事件卡", + "choices": [ { - "type": "setValue", - "name": "status:money", - "operator": "-=", - "value": "flags.Magnifier*flags.ratio" + "text": "抽!", + "need": "status:money>=10*(flags.Magnifier*flags.ratio)**2", + "action": [ + { + "type": "setValue", + "name": "status:money", + "operator": "-=", + "value": "10*(flags.Magnifier*flags.ratio)**2" + }, + { + "type": "setValue", + "name": "flag:Magnifier", + "operator": "+=", + "value": "1" + }, + { + "type": "function", + "async": true, + "function": "function(){\nconst rand = core.plugin.event.eventList[core.randevent()]\ncore.plugin.event.doEvent(rand, true, core.doAction)\n}" + } + ] }, { - "type": "setValue", - "name": "flag:Magnifier", - "operator": "+=", - "value": "10" - }, - { - "type": "function", - "async": true, - "function": "function(){\nconst rand = core.plugin.event.eventList[core.randevent()]\ncore.plugin.event.doEvent(rand, true, core.doAction)\n}" + "text": "离开", + "action": [ + { + "type": "exit" + } + ] } ] - }, + } + ], + "false": [ { - "text": "离开", - "action": [ + "type": "choices", + "text": "\t[抽取事件卡,Magnifier]花费${10*flags.Magnifier**2}星币抽取一张事件卡", + "choices": [ { - "type": "exit" + "text": "抽!", + "need": "status:money>=10*flags.Magnifier**2", + "action": [ + { + "type": "setValue", + "name": "status:money", + "operator": "-=", + "value": "10*flags.Magnifier**2" + }, + { + "type": "setValue", + "name": "flag:Magnifier", + "operator": "+=", + "value": "1" + }, + { + "type": "function", + "async": true, + "function": "function(){\nconst rand = core.plugin.event.eventList[core.randevent()]\ncore.plugin.event.doEvent(rand, true, core.doAction)\n}" + } + ] + }, + { + "text": "离开", + "action": [ + { + "type": "exit" + } + ] } ] } diff --git a/project/floors/DP8.js b/project/floors/DP8.js index 23e6568..ecb1658 100644 --- a/project/floors/DP8.js +++ b/project/floors/DP8.js @@ -14,7 +14,12 @@ main.floors.DP8= "ratio": 1, "defaultGround": "magicground2", "bgm": "maps5A.mp3", - "firstArrive": [], + "firstArrive": [ + { + "type": "function", + "function": "function(){\nif (flags.SandwichCookieT) hero.hp = Math.floor(hero.hp * 7 / 5)\nif (flags.SandwichCookieD) hero.hp *= 2\n}" + } + ], "eachArrive": [], "parallelDo": "", "events": {}, diff --git a/project/floors/MAL50.js b/project/floors/MAL50.js index 0e97f73..100fb74 100644 --- a/project/floors/MAL50.js +++ b/project/floors/MAL50.js @@ -27,7 +27,12 @@ main.floors.MAL50= "ratio": 5, "defaultGround": "magicground", "bgm": "battle.mp3", - "firstArrive": null, + "firstArrive": [ + { + "type": "function", + "function": "function(){\nif (flags.SandwichCookieT) hero.hp = Math.floor(hero.hp * 49 / 25)\nif (flags.SandwichCookieD) hero.hp *= 4\n}" + } + ], "eachArrive": [], "parallelDo": "", "events": { diff --git a/project/floors/MT50.js b/project/floors/MT50.js index b05361e..c6af86c 100644 --- a/project/floors/MT50.js +++ b/project/floors/MT50.js @@ -27,7 +27,12 @@ main.floors.MT50= "ratio": 5, "defaultGround": "ground", "bgm": "battle.mp3", - "firstArrive": null, + "firstArrive": [ + { + "type": "function", + "function": "function(){\nif (flags.SandwichCookieT) hero.hp = Math.floor(hero.hp * 7 / 5)\nif (flags.SandwichCookieD) hero.hp *= 2\n}" + } + ], "eachArrive": [], "parallelDo": "", "events": { diff --git a/project/floors/SC50.js b/project/floors/SC50.js index 6170e81..5945a0b 100644 --- a/project/floors/SC50.js +++ b/project/floors/SC50.js @@ -27,7 +27,12 @@ main.floors.SC50= "ratio": 5, "defaultGround": "ground", "bgm": "battle.mp3", - "firstArrive": null, + "firstArrive": [ + { + "type": "function", + "function": "function(){\nif (flags.SandwichCookieT) hero.hp = Math.floor(hero.hp * 7 / 5)\nif (flags.SandwichCookieD) hero.hp *= 2\n}" + } + ], "eachArrive": [], "parallelDo": "", "events": { diff --git a/project/floors/SX5_3.js b/project/floors/SX5_3.js index eee0f5f..0937547 100644 --- a/project/floors/SX5_3.js +++ b/project/floors/SX5_3.js @@ -13,6 +13,10 @@ main.floors.SX5_3= "defaultGround": "ground7", "bgm": "maps3.mp3", "firstArrive": [ + { + "type": "function", + "function": "function(){\nif (flags.SandwichCookieT) hero.hp = Math.floor(hero.hp * 7 / 5)\nif (flags.SandwichCookieD) hero.hp *= 2\n}" + }, "\t[redKing]来了吗", "\t[hero]来了", "\t[redKing]话不多说 速战速决", diff --git a/project/functions.js b/project/functions.js index 63df430..4daca93 100644 --- a/project/functions.js +++ b/project/functions.js @@ -417,9 +417,9 @@ var functions_d6ad677b_427a_4623_b50f_a445a3b0ef8a = var turn = damageInfo.turn; if (core.hasItem("DreamlinerModel")) { // 梦想号模型 flags.DreamlinerModel += turn - if (flags.DreamlinerModel >= 30) { - let round = Math.floor(flags.DreamlinerModel / 30) - flags.DreamlinerModel -= 30 * round + if (flags.DreamlinerModel >= 15) { + let round = Math.floor(flags.DreamlinerModel / 15) + flags.DreamlinerModel -= 15 * round if (hero.ActiveCD > 0) hero.ActiveCD = Math.max(hero.ActiveCD - round, 0) } } @@ -502,10 +502,10 @@ var functions_d6ad677b_427a_4623_b50f_a445a3b0ef8a = } if (hero.cost === hero.costmax) hero.costCD = 10 - const hero_money_down = Math.min(core.status.hero.money, 75 * flags.ratio) + const hero_money_down = Math.min(core.status.hero.money, 100 * flags.ratio) // 获得金币 var money = core.getEnemyInfo(enemy, void 0, x, y).money; - if (core.hasItem("StarCoinHammer2") && flags.star.level > 34) core.status.hero.money -= hero_money_down * (flags.MapStatus?.Map === "魔法学院" ? 4 : 1); //星币锤扣除金币 + if (core.hasItem("StarCoinHammer2") && flags.StarCoinHammer) core.status.hero.money -= hero_money_down * (flags.MapStatus?.Map === "魔法学院" ? 3 : 1); //星币锤扣除金币 if (core.hasItem('BankcardU2')) money *= 2; // 银行卡-用不完 if (core.hasItem('coin')) money *= 2; // 幸运金币 core.status.hero.money += money; @@ -1013,7 +1013,9 @@ var functions_d6ad677b_427a_4623_b50f_a445a3b0ef8a = // } // 也可以按需增加各种自定义内容 - if (core.hasItem("PiercingGun")) mon_def = Math.trunc(mon_def * (flags.MapStatus?.Map === "魔法学院" ? 1 : 0) / 4) + + // 贯穿之铳 + if (core.hasItem("PiercingGun")) mon_def = Math.trunc(mon_def * (flags.MapStatus?.Map === "魔法学院" ? 2 : 1) / 4) return { 'id': mon_id, @@ -1072,9 +1074,9 @@ var functions_d6ad677b_427a_4623_b50f_a445a3b0ef8a = hero_def += flags.cardDEF + flags.Trident * 5 if (core.hasItem("AdrenalineR") && hero_hp <= 125 * flags.ratio) hero_atk += 30 * flags.ratio //肾上腺素-一般 if (core.hasItem("AdrenalineH") && hero_hp <= 125 * flags.ratio) hero_atk += 80 * flags.ratio //肾上腺素-高效 - if (core.hasItem("StarCoinHammer2") && flags.star.level > 34) hero_atk += Math.min(Math.floor(hero_money * flags.ratio / (flags.MapStatus?.Map === "魔法学院" ? 1000 : 100)), 1000 * flags.ratio) //星币锤 - if (core.hasItem("UtilityKnifeB2") && hero_hp >= 1000 * flags.ratio) hero_atk += Math.sqrt(flags.health.count*flags.ratio**0.5) //美工刀A - if (core.hasItem("UtilityKnifeS2") && hero_hp >= 800 * flags.ratio) hero_atk += Math.sqrt(flags.health.count*flags.ratio**0.5) //美工刀B + if (core.hasItem("StarCoinHammer2") && flags.StarCoinHammer) hero_atk += Math.min(Math.floor(hero_money * flags.ratio / (flags.MapStatus?.Map === "魔法学院" ? 1000 : 100)), 1000 * flags.ratio) //星币锤 + if (core.hasItem("UtilityKnifeB2") && hero_hp >= 1000 * flags.ratio) hero_atk += Math.floor(flags.health.count * Math.sqrt(flags.ratio)) //美工刀A + if (core.hasItem("UtilityKnifeS2") && hero_hp >= 800 * flags.ratio) hero_atk += Math.floor(flags.health.count * Math.sqrt(flags.ratio)) //美工刀B if (core.hasItem("FlashlightS2")) hero_atk += Math.floor(flags.star.level * Math.sqrt(flags.ratio)) //手电筒-爆闪 if (core.hasItem("NormalSight") && (!core.hasSpecial(mon_special, 30))) { mon_mark += 2 @@ -1086,7 +1088,7 @@ var functions_d6ad677b_427a_4623_b50f_a445a3b0ef8a = } //鹰眼瞄具 if (core.status.hero.name === "帕帕拉") hero_atk += Math.floor(hero_hp / 300) //帕帕拉被动技能 else if (core.status.hero.name === "娜蒂斯") hero_atk += core.status.hero.myCard.length * flags.ratio //娜蒂斯被动技能 - else if (core.status.hero.name === "璐璐")hero_atk += Math.sqrt(flags.health.count*flags.star**0.5) //璐璐被动技能 + else if (core.status.hero.name === "璐璐") hero_atk += Math.floor(flags.health.count * Math.sqrt(flags.ratio)) //璐璐被动技能 if (flags.KingsPower) hero_atk += 15 * flags.ratio //王之力 if (flags.Immovable) hero_def += 15 * flags.ratio //岿然不动 if (core.hasItem("BufferShieldR2")) hero_mdef += Math.floor(core.getRealStatusOrDefault(hero, 'def') * (flags.health.count + 1) / (15 * flags.ratio)) //缓冲盾牌-一般 diff --git a/project/images/BoxingGlovesB.webp b/project/images/BoxingGlovesB.webp index 86f3464..9bcf596 100644 Binary files a/project/images/BoxingGlovesB.webp and b/project/images/BoxingGlovesB.webp differ diff --git a/project/images/BoxingGlovesE.webp b/project/images/BoxingGlovesE.webp index 7e979bf..ada2d67 100644 Binary files a/project/images/BoxingGlovesE.webp and b/project/images/BoxingGlovesE.webp differ diff --git a/project/images/BoxingGlovesG.webp b/project/images/BoxingGlovesG.webp index 42f45aa..5e1ef68 100644 Binary files a/project/images/BoxingGlovesG.webp and b/project/images/BoxingGlovesG.webp differ diff --git a/project/images/Candy.webp b/project/images/Candy.webp index 875bb64..2ad6725 100644 Binary files a/project/images/Candy.webp and b/project/images/Candy.webp differ diff --git a/project/images/DreamlinerModel.webp b/project/images/DreamlinerModel.webp index 9db2609..fa52065 100644 Binary files a/project/images/DreamlinerModel.webp and b/project/images/DreamlinerModel.webp differ diff --git a/project/images/FoxMask.webp b/project/images/FoxMask.webp index d1d685d..6b767c6 100644 Binary files a/project/images/FoxMask.webp and b/project/images/FoxMask.webp differ diff --git a/project/images/MotorcycleHelmetB.webp b/project/images/MotorcycleHelmetB.webp index 96bc262..ed139e8 100644 Binary files a/project/images/MotorcycleHelmetB.webp and b/project/images/MotorcycleHelmetB.webp differ diff --git a/project/images/MotorcycleHelmetE.webp b/project/images/MotorcycleHelmetE.webp index 06b392b..972c6d0 100644 Binary files a/project/images/MotorcycleHelmetE.webp and b/project/images/MotorcycleHelmetE.webp differ diff --git a/project/images/MotorcycleHelmetG.webp b/project/images/MotorcycleHelmetG.webp index 7d1e36d..c7135cb 100644 Binary files a/project/images/MotorcycleHelmetG.webp and b/project/images/MotorcycleHelmetG.webp differ diff --git a/project/images/PiercingGun.webp b/project/images/PiercingGun.webp index f19cf96..aa34d1e 100644 Binary files a/project/images/PiercingGun.webp and b/project/images/PiercingGun.webp differ diff --git a/project/images/SandwichCookieD.webp b/project/images/SandwichCookieD.webp index e785f22..c2d1081 100644 Binary files a/project/images/SandwichCookieD.webp and b/project/images/SandwichCookieD.webp differ diff --git a/project/images/SandwichCookieT.webp b/project/images/SandwichCookieT.webp index d589a62..1e8a221 100644 Binary files a/project/images/SandwichCookieT.webp and b/project/images/SandwichCookieT.webp differ diff --git a/project/images/StarCoinHammer.webp b/project/images/StarCoinHammer.webp index 2c4b2b5..7d3ad3a 100644 Binary files a/project/images/StarCoinHammer.webp and b/project/images/StarCoinHammer.webp differ diff --git a/project/images/UtilityKnifeB.webp b/project/images/UtilityKnifeB.webp index 92b1f46..6ac3c01 100644 Binary files a/project/images/UtilityKnifeB.webp and b/project/images/UtilityKnifeB.webp differ diff --git a/project/images/UtilityKnifeS.webp b/project/images/UtilityKnifeS.webp index 2a9f864..b9998aa 100644 Binary files a/project/images/UtilityKnifeS.webp and b/project/images/UtilityKnifeS.webp differ diff --git a/project/items.js b/project/items.js index 0396a07..78ced7c 100644 --- a/project/items.js +++ b/project/items.js @@ -591,49 +591,49 @@ var items_296f5d02_12fd_4166_a7c1_b5e830c9ee3a = "BoxingGlovesB": { "cls": "items", "name": "拳击手套-初级", - "text": "\\i[atk]+10(魔法学院翻倍)", + "text": "\\i[atk]+10×\\i[stars]的算术平方根(魔法学院翻倍)", "equip": null, - "itemEffect": "core.status.hero.atk += 10;\nif (flags.MapStatus?.Map === \"魔法学院\") core.status.hero.atk += 10;", + "itemEffect": "core.status.hero.atk += Math.floor(10 * Math.sqrt(flags.ratio));\nif (flags.MapStatus?.Map === \"魔法学院\") core.status.hero.atk += Math.floor(10 * Math.sqrt(flags.ratio));", "itemEffectTip": null }, "BoxingGlovesE": { "cls": "items", "name": "拳击手套-高级", - "text": "\\i[atk]+50(魔法学院翻倍)", + "text": "\\i[atk]+50×\\i[stars]的算术平方根(魔法学院翻倍)", "equip": null, - "itemEffect": "core.status.hero.atk += 50;\nif (flags.MapStatus?.Map === \"魔法学院\") core.status.hero.atk += 50;", + "itemEffect": "core.status.hero.atk += Math.floor(50 * Math.sqrt(flags.ratio));\nif (flags.MapStatus?.Map === \"魔法学院\") core.status.hero.atk += Math.floor(50 * Math.sqrt(flags.ratio));", "itemEffectTip": null }, "MotorcycleHelmetG": { "cls": "items", "name": "摩托头盔-中级", - "text": "\\i[def]+40(魔法学院翻倍)", + "text": "\\i[def]+40×\\i[stars]的算术平方根(魔法学院翻倍)", "equip": null, - "itemEffect": "core.status.hero.def += 40;\nif (flags.MapStatus?.Map === \"魔法学院\") core.status.hero.def += 40;", + "itemEffect": "core.status.hero.def += Math.floor(40 * Math.sqrt(flags.ratio));\nif (flags.MapStatus?.Map === \"魔法学院\") core.status.hero.def += Math.floor(40 * Math.sqrt(flags.ratio));", "itemEffectTip": null }, "MotorcycleHelmetE": { "cls": "items", "name": "摩托头盔-高级", - "text": "\\i[def]+80(魔法学院翻倍)", + "text": "\\i[def]+80×\\i[stars]的算术平方根(魔法学院翻倍)", "equip": null, - "itemEffect": "core.status.hero.def += 80;\nif (flags.MapStatus?.Map === \"魔法学院\") core.status.hero.def += 80;", + "itemEffect": "core.status.hero.def += Math.floor(80 * Math.sqrt(flags.ratio));\nif (flags.MapStatus?.Map === \"魔法学院\") core.status.hero.def += Math.floor(80 * Math.sqrt(flags.ratio));", "itemEffectTip": null }, "MotorcycleHelmetB": { "cls": "items", "name": "摩托头盔-一般", - "text": "\\i[def]+20(魔法学院翻倍)", + "text": "\\i[def]+20×\\i[stars]的算术平方根(魔法学院翻倍)", "equip": null, - "itemEffect": "core.status.hero.def += 20;\nif (flags.MapStatus?.Map === \"魔法学院\") core.status.hero.def += 20;", + "itemEffect": "core.status.hero.def += Math.floor(20 * Math.sqrt(flags.ratio));\nif (flags.MapStatus?.Map === \"魔法学院\") core.status.hero.def += Math.floor(20 * Math.sqrt(flags.ratio));", "itemEffectTip": null }, "BoxingGlovesG": { "cls": "items", "name": "拳击手套-中级", - "text": "\\i[atk]+20(魔法学院翻倍)", + "text": "\\i[atk]+30×\\i[stars]的算术平方根(魔法学院翻倍)", "equip": null, - "itemEffect": "core.status.hero.atk += 20;\nif (flags.MapStatus?.Map === \"魔法学院\") core.status.hero.atk += 20;", + "itemEffect": "core.status.hero.atk += Math.floor(30 * Math.sqrt(flags.ratio));\nif (flags.MapStatus?.Map === \"魔法学院\") core.status.hero.atk += Math.floor(30 * Math.sqrt(flags.ratio));", "itemEffectTip": null }, "MedicalKitE": { @@ -697,7 +697,7 @@ var items_296f5d02_12fd_4166_a7c1_b5e830c9ee3a = "name": "美工刀-锋利", "canUseItemEffect": "true", "itemEffect": "core.status.hero.atk += 35;\ncore.addItem(\"UtilityKnifeS2\")", - "text": "\\i[atk]+35,若\\i[hp]>=800×\\i[stars],伤害计算时获得\\i[BuffHealth]数量的\\i[atk]" + "text": "\\i[atk]+35,若\\i[hp]>=800×\\i[stars],伤害计算时\\i[atk]提升\\i[BuffHealth]×\\i[stars]的算术平方根" }, "UtilityKnifeS2": { "cls": "constants", @@ -710,7 +710,7 @@ var items_296f5d02_12fd_4166_a7c1_b5e830c9ee3a = "name": "美工刀-一般", "canUseItemEffect": "true", "itemEffect": "core.status.hero.atk += 15;\ncore.addItem(\"UtilityKnifeB2\")", - "text": "\\i[atk]+15,若\\i[hp]>=1000×\\i[stars],伤害计算时获得\\i[BuffHealth]数量的\\i[atk]" + "text": "\\i[atk]+15,若\\i[hp]>=1000×\\i[stars],伤害计算时\\i[atk]提升\\i[BuffHealth]×\\i[stars]的算术平方根" }, "UtilityKnifeB2": { "cls": "constants", @@ -753,14 +753,15 @@ var items_296f5d02_12fd_4166_a7c1_b5e830c9ee3a = "cls": "items", "name": "星币锤", "canUseItemEffect": "true", - "itemEffect": "flags.star.level += 7;\ncore.addItem(\"StarCoinHammer2\")", - "text": "\\i[BuffStarlight]+7,若\\i[BuffStarlight]>=35,则每次战斗额外消耗75×\\i[stars]的\\i[money](魔法学院消耗X4),伤害计算时获得\\i[money]×\\i[stars]%(魔法学院效果-90%)的\\i[atk](上限1000×\\i[stars])" + "itemEffect": "flags.star.level += 7;\ncore.addItem(\"StarCoinHammer2\")\nflags.StarCoinHammer = false", + "text": "\\i[BuffStarlight]+7,可消耗100×\\i[stars]的\\i[money](魔法学院消耗X3),伤害计算时获得\\i[money]×\\i[stars]%(魔法学院效果-90%)的\\i[atk](上限1000×\\i[stars])\\n开启/关闭需消耗1\\i[BuffStarlight]" }, "StarCoinHammer2": { "cls": "constants", "name": "星币锤", - "canUseItemEffect": "false", - "hideInToolbox": true + "canUseItemEffect": "true", + "hideInToolbox": true, + "useItemEffect": "if (flags.star.level > 0) {\n\tflags.star.level--\n\tflags.StarCoinHammer = !flags.StarCoinHammer\n} else core.drawTip(\"当前暂无星光\")" }, "FlashlightS": { "cls": "items", @@ -794,15 +795,15 @@ var items_296f5d02_12fd_4166_a7c1_b5e830c9ee3a = "cls": "items", "name": "夹心饼干-美味", "canUseItemEffect": "true", - "itemEffect": "hero.hp = hero.hp * 2 + 10000\nif (flags.MapStatus?.Map === \"魔法学院\") hero.hp = hero.hp * 2 + 10000", - "text": "\\i[hp]×2+10000(魔法学院再生效一次)" + "itemEffect": "hero.hp += 10000\nif (flags.MapStatus?.Map === \"魔法学院\") hero.hp += 10000\nflags.SandwichCookieD = true", + "text": "\\i[hp]+10000,进入最终楼层时\\i[hp]×2(魔法学院再生效一次)" }, "SandwichCookieT": { "cls": "items", "name": "夹心饼干-可口", "canUseItemEffect": "true", - "itemEffect": "hero.hp = Math.floor(hero.hp * 7 / 5 + 3000)\nif (flags.MapStatus?.Map === \"魔法学院\") hero.hp = Math.floor(hero.hp * 7 / 5 + 3000)", - "text": "\\i[hp]×1.4+3000(魔法学院再生效一次)" + "itemEffect": "hero.hp += 3000\nif (flags.MapStatus?.Map === \"魔法学院\") hero.hp += 3000\nflags.SandwichCookieT = true", + "text": "\\i[hp]+3000,进入最终楼层时\\i[hp]×1.4(魔法学院再生效一次)" }, "SandwichCookieR": { "cls": "items", @@ -844,7 +845,7 @@ var items_296f5d02_12fd_4166_a7c1_b5e830c9ee3a = "cls": "constants", "name": "贯穿之铳", "canUseItemEffect": "false", - "text": "怪物防御减少100%(魔法学院改为75%)", + "text": "怪物防御减少75%(魔法学院改为50%)", "hideInToolbox": true }, "SprayCanR": { @@ -953,7 +954,7 @@ var items_296f5d02_12fd_4166_a7c1_b5e830c9ee3a = "name": "可口糖果", "canUseItemEffect": "false", "hideInToolbox": true, - "text": "出牌后\\i[BuffHealth]+10。如果\\i[BuffHealth]>=100,失去100\\i[BuffHealth]并回复1点\\i[cost]" + "text": "出牌后\\i[BuffHealth]+10。如果\\i[BuffHealth]>=100且\\i[hp]<=1000倍\\i[stars],失去100\\i[BuffHealth]并回复200倍\\i[stars]的\\i[hp]" }, "GourmetStew": { "cls": "constants", @@ -1108,7 +1109,7 @@ var items_296f5d02_12fd_4166_a7c1_b5e830c9ee3a = "cls": "constants", "name": "梦想号模型", "canUseItemEffect": "false", - "text": "每累计战斗30回合,技能冷却-1", + "text": "每累计战斗15回合,技能冷却-1", "hideInToolbox": true, "hideInReplay": true }, @@ -1133,6 +1134,6 @@ var items_296f5d02_12fd_4166_a7c1_b5e830c9ee3a = "cls": "constants", "name": "狐狸面具", "canUseItemEffect": "true", - "text": "若出牌后消耗\\i[cost]>=2,\\i[atk]和\\i[def]提升\\i[stars]的一半" + "text": "若出牌后消耗\\i[cost]>=2,\\i[atk]和\\i[def]提升\\i[stars]数值" } } \ No newline at end of file diff --git a/project/plugins.js b/project/plugins.js index 9b11cfe..5d633dd 100644 --- a/project/plugins.js +++ b/project/plugins.js @@ -3013,12 +3013,12 @@ var plugins_bb40132b_638b_4a9f_b028_d3fe47acc8d1 = //空位用‘none’填充,当前ui至多3列3行 ["book", "fly", "bomb"], ["downFly", "centerFly", "upFly"], - ["earthquake", "superPotion", "pickaxe"], + ["earthquake", "StarCoinHammer2", "pickaxe"], ]; this.itemMx3 = [ ["book", "fly", "bomb"], ["jumpShoes", "bigKey", "superPotion"], - ["none", "townMap", "none"], + ["none", "StarCoinHammer2", "none"], ] this.once = ['book', 'fly', 'wand', 'I385'] //单次点击即可使用的道具列表 @@ -3106,13 +3106,13 @@ var plugins_bb40132b_638b_4a9f_b028_d3fe47acc8d1 = if (core.hasItem("AdrenalineR")) ATK += 30 * flags.ratio if (core.hasItem("AdrenalineH")) ATK += 80 * flags.ratio } - if (core.hasItem("StarCoinHammer2") && flags.star.level > 34) ATK += Math.min(Math.floor(hero.money * flags.ratio / (flags.MapStatus?.Map === "魔法学院" ? 1000 : 100)), 1000 * flags.ratio) - if (core.hasItem("UtilityKnifeB2") && hero.hp >= 1000 * flags.ratio) ATK += Math.sqrt(flags.health.count*flags.ratio**0.5) - if (core.hasItem("UtilityKnifeS2") && hero.hp >= 800 * flags.ratio) ATK += Math.sqrt(flags.health.count*flags.ratio**0.5) + if (core.hasItem("StarCoinHammer2") && flags.StarCoinHammer) ATK += Math.min(Math.floor(hero.money * flags.ratio / (flags.MapStatus?.Map === "魔法学院" ? 1000 : 100)), 1000 * flags.ratio) + if (core.hasItem("UtilityKnifeB2") && hero.hp >= 1000 * flags.ratio) ATK += Math.sqrt(flags.health.count * flags.ratio ** 0.5) + if (core.hasItem("UtilityKnifeS2") && hero.hp >= 800 * flags.ratio) ATK += Math.sqrt(flags.health.count * flags.ratio ** 0.5) if (core.hasItem("FlashlightS2")) ATK += Math.floor(flags.star.level * Math.sqrt(flags.ratio)) if (core.status.hero.name === "帕帕拉") ATK += Math.floor(core.getRealStatus("hp") / 300) else if (core.status.hero.name === "娜蒂斯") ATK += core.status.hero.myCard.length * flags.ratio - else if (core.status.hero.name === "璐璐") ATK += Math.sqrt(flags.health.count*flags.ratio**0.5) + else if (core.status.hero.name === "璐璐") ATK += Math.floor(flags.health.count * Math.sqrt(flags.ratio)) if (flags.KingsPower) ATK += 15 * flags.ratio ATKbet += flags.cardFATK + flags.Trident * 3 if (core.hasItem("RevengeHalberd")) ATKbet += Math.floor(hero.statistics.battleDamage / 1000) @@ -3211,20 +3211,9 @@ var plugins_bb40132b_638b_4a9f_b028_d3fe47acc8d1 = if (core.domStyle.isVertical) { const drawItem = (item, posx, posy) => { - const icon = core.material.icons.items[item], - image = core.material.images.items; - core.drawImage( - "outerUI", - image, - 0, - 32 * icon, - 32, - 32, - posx, - posy, - 36, - 36 - ); + if (item === "StarCoinHammer2" && flags.StarCoinHammer === false) uictx.drawImage(core.drawGrayIcon("StarCoinHammer2"), posx, posy, 36, 36) + else core.drawIcon("outerUI", item, posx, posy, 36, 36) + const cnt = core.itemCount(item); if ( (core.items.items[item].cls === "tools" && cnt > 1) || @@ -3250,20 +3239,9 @@ var plugins_bb40132b_638b_4a9f_b028_d3fe47acc8d1 = }); } else { const drawItem = (item, posx, posy) => { - const icon = core.material.icons.items[item], - image = core.material.images.items; - core.drawImage( - "outerUI", - image, - 0, - 32 * icon, - 32, - 32, - posx, - posy, - 32, - 32 - ); + if (item === "StarCoinHammer2" && flags.StarCoinHammer === false) uictx.drawImage(core.drawGrayIcon("StarCoinHammer2"), posx, posy, 32, 32) + else core.drawIcon("outerUI", item, posx, posy, 32, 32) + const cnt = core.itemCount(item); if ( (core.items.items[item].cls === "tools" && cnt > 1) || @@ -14362,8 +14340,8 @@ var plugins_bb40132b_638b_4a9f_b028_d3fe47acc8d1 = } if (hero.name === "照" && c >= 2) flags.Teru.RankUP++ if (core.hasItem("FoxMask") && c >= 2) { - hero.atk += Math.floor(flags.ratio) - hero.def += Math.floor(flags.ratio) + hero.atk += flags.ratio + hero.def += flags.ratio } } drawcard() { //绘制手牌界面 @@ -14434,9 +14412,9 @@ var plugins_bb40132b_638b_4a9f_b028_d3fe47acc8d1 = //可口糖果 if (core.hasItem("Candy")) { flags.health.count += 10 - if (flags.health.count >= 100) { + if (flags.health.count >= 100 && hero.hp <= 1000 * flags.ratio) { flags.health.count -= 100 - if (hero.cost < hero.costmax) hero.cost++ + hero.hp += 200 * flags.ratio } } //角色技能处理 @@ -15339,12 +15317,12 @@ var plugins_bb40132b_638b_4a9f_b028_d3fe47acc8d1 = } drawtoken() { const tokentext = { - "BoxingGlovesB": `\\i[atk]+${flags.MapStatus?.Map === "魔法学院"?20:10}`, - "BoxingGlovesG": `\\i[atk]+${flags.MapStatus?.Map === "魔法学院"?40:20}`, - "BoxingGlovesE": `\\i[atk]+${flags.MapStatus?.Map === "魔法学院"?100:50}`, - "MotorcycleHelmetB": `\\i[def]+${flags.MapStatus?.Map === "魔法学院"?40:20}`, - "MotorcycleHelmetG": `\\i[def]+${flags.MapStatus?.Map === "魔法学院"?80:40}`, - "MotorcycleHelmetE": `\\i[def]+${flags.MapStatus?.Map === "魔法学院"?160:80}`, + "BoxingGlovesB": `\\i[atk]+${flags.MapStatus?.Map === "魔法学院"?20:10}×\\i[stars]的算术平方根`, + "BoxingGlovesG": `\\i[atk]+${flags.MapStatus?.Map === "魔法学院"?60:30}×\\i[stars]的算术平方根`, + "BoxingGlovesE": `\\i[atk]+${flags.MapStatus?.Map === "魔法学院"?100:50}×\\i[stars]的算术平方根`, + "MotorcycleHelmetB": `\\i[def]+${flags.MapStatus?.Map === "魔法学院"?40:20}×\\i[stars]的算术平方根`, + "MotorcycleHelmetG": `\\i[def]+${flags.MapStatus?.Map === "魔法学院"?80:40}×\\i[stars]的算术平方根`, + "MotorcycleHelmetE": `\\i[def]+${flags.MapStatus?.Map === "魔法学院"?160:80}×\\i[stars]的算术平方根`, "BankcardL": `\\i[BuffStarlight]+15`, "BankcardH": `\\i[BuffStarlight]+25`, "BankcardU": `\\i[BuffStarlight]+8,怪物掉落\\i[money]翻倍(可与\\i[coin]叠加至4倍)`, @@ -15352,7 +15330,7 @@ var plugins_bb40132b_638b_4a9f_b028_d3fe47acc8d1 = "CursedSword": `每进行10次战斗,\\i[atk]+\\i[stars](${flags.ratio}),\\i[def]-1\n如果受到的战斗伤害大于125×\\i[stars](${flags.ratio * 125}),视为进行了10次战斗并重置次数。\n\r[#66FFCC]还需${10 - flags.Cursed}次战斗`, "BufferShieldR": `\\i[def]+15。受到的战斗伤害减少\\i[def]×(\\i[BuffHealth]+1)÷(\\i[stars]×15)\n\n\r[#66FFCC]当前伤害减少:${Math.floor(hero.def * (flags.health.count + 1) / (15 * flags.ratio))}`, "BufferShieldP": `\\i[def]+35。受到的战斗伤害减少\\i[def]×\\i[BuffHealth]÷(\\i[stars]×75)%(百分比减伤加算,上限75%)\n\n\r[#66FFCC]当前伤害减免:${Math.min(Math.floor(hero.def * flags.health.count / (75 * flags.ratio)), 75)}%`, - "StarCoinHammer": `\\i[BuffStarlight]+7。若\\i[BuffStarlight]≥35,则每次战斗额外消耗${flags.MapStatus?.Map==="魔法学院"?300:75}×\\i[stars]的\\i[money](${flags.ratio*(flags.MapStatus?.Map==="魔法学院"?300:75)}),伤害计算时获得\\i[money]×\\i[stars]${flags.MapStatus?.Map==="魔法学院"?"‰":"%"}的\\i[atk](上限1000×\\i[stars])`, + "StarCoinHammer": `\\i[BuffStarlight]+7。可消耗${flags.MapStatus?.Map==="魔法学院"?300:100}×\\i[stars]的\\i[money](${flags.ratio*(flags.MapStatus?.Map==="魔法学院"?300:100)}),伤害计算时获得\\i[money]×\\i[stars]${flags.MapStatus?.Map==="魔法学院"?"‰":"%"}的\\i[atk](上限1000×\\i[stars])\n道具栏会显示星币锤是否开启,每次开关需消耗1\\i[BuffStarlight]`, "AdrenalineR": `若当前\\i[hp]<=125×\\i[stars](${flags.ratio * 125}),伤害计算时\\i[atk]+30倍\\i[stars](${flags.ratio * 30})`, "AdrenalineH": `若当前\\i[hp]<=125×\\i[stars](${flags.ratio * 125}),伤害计算时\\i[atk]+80倍\\i[stars](${flags.ratio * 80})`, "PiggyBank": `在\\i[shop]购物后,获得一次星光奖励的\\i[money]`, @@ -15363,10 +15341,10 @@ var plugins_bb40132b_638b_4a9f_b028_d3fe47acc8d1 = "MembershipLetterB": `\\i[shop]价格-20%`, "MembershipLetterV": `\\i[shop]效果翻倍但价格+20%`, "RollerSkates": `获得二连击`, - "UtilityKnifeS": `\\i[atk]+35,若\\i[hp]>=800×\\i[stars](${800 * flags.ratio}),伤害计算时获得\\i[BuffHealth]数量的\\i[atk]`, - "UtilityKnifeB": `\\i[atk]+15,若\\i[hp]>=1000×\\i[stars](${1000 * flags.ratio}),伤害计算时获得\\i[BuffHealth]数量的\\i[atk]`, - "SandwichCookieD": `\\i[hp]×${flags.MapStatus?.Map === "魔法学院"?"4+30000":"2+10000"}`, - "SandwichCookieT": `\\i[hp]×${flags.MapStatus?.Map === "魔法学院"?"1.96+7200":"1.4+3000"}`, + "UtilityKnifeS": `\\i[atk]+35,若\\i[hp]>=800×\\i[stars](${800 * flags.ratio}),伤害计算时\\i[atk]提升\\i[BuffHealth]×\\i[stars]的算术平方根(${Math.floor(flags.health.count*Math.sqrt(flags.ratio))}`, + "UtilityKnifeB": `\\i[atk]+15,若\\i[hp]>=1000×\\i[stars](${1000 * flags.ratio}),伤害计算时\\i[atk]提升\\i[BuffHealth]×\\i[stars]的算术平方根(${Math.floor(flags.health.count*Math.sqrt(flags.ratio))}`, + "SandwichCookieD": `\\i[hp]+${flags.MapStatus?.Map === "魔法学院"?20000:10000},进入最终楼层时\\i[hp]×${flags.MapStatus?.Map === "魔法学院"?4:2}`, + "SandwichCookieT": `\\i[hp]×${flags.MapStatus?.Map === "魔法学院"?6000:3000},进入最终楼层时\\i[hp]×${flags.MapStatus?.Map === "魔法学院"?1.96:1.4}`, "SandwichCookieR": `\\i[hp]+${flags.MapStatus?.Map === "魔法学院"?3000:1500}`, "FriendshipBadge": `与\\i[woman]交易前可消耗\\i[BuffStarlight]进行一次额外交易,每个\\i[woman]限一次`, "VitaminPills": `在\\i[shop]购物时,\\i[BuffHealth]+10,\\i[BuffHealth]的保留效果提升至75%`, @@ -15377,26 +15355,26 @@ var plugins_bb40132b_638b_4a9f_b028_d3fe47acc8d1 = "SprayCanN": `除\\i[N397]\\i[N398]\\i[redKing]和\\i[Gawu]家族外,所有怪物附加40\\i[BuffMark]`, "NormalSight": `与怪物战斗时,先附加2\\i[BuffMark],伤害计算时获得2×\\i[BuffMark]的\\i[def]`, "EagleEyeSight": `与怪物战斗时,先附加3\\i[BuffMark],伤害计算时获得2×\\i[stars]×\\i[BuffMark]的\\i[def]`, - "PiercingGun": `怪物防御减少${flags.MapStatus?.Map === "魔法学院"?75:100}%`, + "PiercingGun": `怪物防御减少${flags.MapStatus?.Map === "魔法学院"?50:75}%`, "ATM": `获得1~3个随机\\i[battletoken]`, "MagicTome": `每5场战斗后,给予一张无消耗高升炮\n还剩${5-flags.Tome}场战斗`, "ExtraBatteryR": `技能冷却-10`, "ExtraBatteryC": `战后技能冷却额外-1`, "TeaCake": `\\i[redPotion]\\i[bluePotion]\\i[yellowPotion]\\i[greenPotion]+50%`, - "Candy": `出牌后\\i[BuffHealth]+10。如果\\i[BuffHealth]>=100,失去100\\i[BuffHealth],\\i[cost]+1`, + "Candy": `出牌后\\i[BuffHealth]+10。如果\\i[BuffHealth]>=100且\\i[hp]<=1000倍\\i[stars](${flags.ratio*1000}),消耗100\\i[BuffHealth]回复200倍\\i[stars](${flags.ratio*200})的\\i[hp]`, "GourmetStew": `到达新楼层时战后获得的\\i[BuffHealth]+1`, "HandheldFanS": `使用技能后\\i[cost]+3`, "HandheldFanL": `使用技能后\\i[cost]回满,\\i[card]+3`, - "MagicQuiver": `对带有\\i[BuffMark]的怪物使用卡牌后\\i[card]+1`, + "MagicQuiver": `对\\i[BuffMark]>=8的怪物使用卡牌后\\i[card]+1`, "NinjaThrowingDarts": `出牌后,除\\i[N397]\\i[N398]和\\i[Gawu]家族外,所有怪物附加1层\\i[BuffMark]`, "RevengeHalberd": `本局每累计受到1000战斗伤害,最终\\i[atk]+1%\n可在数据统计查看已受到的战斗伤害`, "Smartwatch": `战后若手牌<5张\\i[card]+1`, "AncientStaff": `\\i[cost]上限+1,出牌\\i[cost]消耗-1(不会为负消耗)`, "PremiumSwordShield": `\\i[atk]\\i[def]+20。每拥有1个\\i[battletoken],最终\\i[atk]+2%,最终\\i[def]+5%\n(\\i[atk]+${2 * flags.hasChip.length}%,\\i[def]+${5 * flags.hasChip.length}%)`, "Trident": `发动技能后,本局游戏最终\\i[atk]+3%,最终\\i[def]+5%\n(\\i[atk]+${3 * flags.Trident}%,\\i[def]+${5 * flags.Trident}%)`, - "DreamlinerModel": `每累计战斗30回合,技能冷却-1\n\r[#66FFCC]累计回合数:${flags.DreamlinerModel}`, + "DreamlinerModel": `每累计战斗15回合,技能冷却-1\n\r[#66FFCC]累计回合数:${flags.DreamlinerModel}`, "Magnifier": `快捷商店激活事件卡商店`, - "FoxMask": `若出牌消耗费用>=2,\\i[atk]和\\i[def]提升\\i[stars]的一半(${Math.floor(flags.ratio/2)})`, + "FoxMask": `若出牌消耗费用>=2,\\i[atk]和\\i[def]提升\\i[stars]数值`, } let ctx = core.getContextByName("gallery") this.initdraw() @@ -20086,7 +20064,7 @@ var plugins_bb40132b_638b_4a9f_b028_d3fe47acc8d1 = main.dom.boss5 = boss5; const { sleep } = core.plugin.animate; - const ExCard = ["DefendM", "DefendL", "DefendG", "AttackM", "AttackL", "AttackG", "GaWuCut", "Charge", "PowerfulAttack"]; // 特殊战允许的卡牌 + const ExCard = ["DefendM", "DefendL", "DefendG", "AttackM", "AttackL", "AttackG", "GaWuCut", "Charge", "SmartDice", "ChocolateCake", "Hamburger", "PowerfulAttack"]; // 特殊战允许的卡牌 // 点击区域判断 @@ -20185,6 +20163,7 @@ var plugins_bb40132b_638b_4a9f_b028_d3fe47acc8d1 = this.randATK = 0; this.randDEF = 0; this.全力攻击 = false; + this.遥控骰子 = false; // 战斗变量 this.ATKbet = 0; @@ -20213,70 +20192,78 @@ var plugins_bb40132b_638b_4a9f_b028_d3fe47acc8d1 = cost: 1, effect: () => { this.minATK++; - this.maxATK += 10 + this.maxATK += 4 } }, AttackL: { cost: 2, effect: () => { this.minATK++; - this.maxATK += 20 + this.maxATK += 8 } }, AttackG: { cost: 3, effect: () => { this.minATK++; - this.maxATK += 50 + this.maxATK += 15 } }, GaWuCut: { cost: 4, effect: () => { this.minATK++; - this.maxATK += 120 + this.maxATK += 30 } }, Charge: { cost: 5, effect: () => { - this.minATK += 20 - this.maxATK += 20 + this.hero_atk += 50 this.cards.push("PowerfulAttack") } }, PowerfulAttack: { cost: 3, effect: () => { - if (this.全力攻击) { - this.minATK += 6; - this.maxATK += 6; - } else { - this.minATK += 150; - this.maxATK += 150; - this.全力攻击 = true - } + this.hero_atk += 150 + this.全力攻击 = true } }, DefendM: { cost: 1, effect: () => { this.minDEF++; - this.maxDEF += 20 + this.maxDEF += 8 } }, DefendL: { cost: 2, effect: () => { this.minDEF++; - this.maxDEF += 50 + this.maxDEF += 16 } }, DefendG: { cost: 3, effect: () => { this.minDEF++; - this.maxDEF += 110 + this.maxDEF += 30 + } + }, + SmartDice: { + cost: 2, + effect: () => this.遥控骰子 = true + }, + ChocolateCake: { + cost: 1, + effect: () => flags.health.upbuff += 10 + }, + Hamburger: { + cost: 2, + effect: () => { + flags.health.upbuff += 25 + this.hero_hp += 20 * flags.health.count } }, } @@ -20378,10 +20365,10 @@ var plugins_bb40132b_638b_4a9f_b028_d3fe47acc8d1 = if (core.hasItem("AdrenalineH") && this.hero_hp <= 125 * flags.ratio) this.hero_atk_status += 80 * flags.ratio; if (core.hasItem("UtilityKnifeB2") && this.hero_hp >= 1000 * flags.ratio) - this.hero_atk_status += flags.health.count; + this.hero_atk_status += Math.floor(flags.health.count * Math.sqrt(flags.ratio)); if (core.hasItem("UtilityKnifeS2") && this.hero_hp >= 800 * flags.ratio) - this.hero_atk_status += flags.health.count; - if (core.hasItem("StarCoinHammer2") && flags.star.level > 24) + this.hero_atk_status += Math.floor(flags.health.count * Math.sqrt(flags.ratio)); + if (core.hasItem("StarCoinHammer2")) this.hero_atk_status += Math.min( Math.floor(this.hero_money * flags.ratio / (flags.MapStatus?.Map === "魔法学院" ? 1000 : 100)), 1000 * flags.ratio @@ -20393,6 +20380,8 @@ var plugins_bb40132b_638b_4a9f_b028_d3fe47acc8d1 = if (core.status.hero.name === "帕帕拉") this.hero_atk_status += Math.floor(this.hero_hp / 300); + else if (core.status.hero.name === "璐璐") + this.hero_atk_status += Math.floor(flags.health.count * Math.sqrt(flags.ratio)); this.update() @@ -20562,19 +20551,15 @@ var plugins_bb40132b_638b_4a9f_b028_d3fe47acc8d1 = if (core.hasItem("EagleEyeSight")) this.mon_mark_status += 3; // 出牌调整 - this.randATK = core.rand(this.maxATK - this.minATK + 1) + this.minATK + if (this.遥控骰子) this.randATK = this.maxATK * 50 + else this.randATK = (core.rand(this.maxATK - this.minATK + 1) + this.minATK) * 50 // 计算基础伤害 - let mondamage = Math.max( - Math.floor((this.hero_atk + this.hero_atk_status) * (100 + this.ATKbet + this.randATK) / 100) - this.mon_def_status, - 0 - ) * this.k + this.mon_mark_status; + let mondamage = Math.max(Math.floor((this.hero_atk + this.hero_atk_status + this.randATK) * ((this.全力攻击 ? 150 : 100) + this.ATKbet) / 100) - this.mon_def_status, 0) * this.k + this.mon_mark_status; // 特殊效果 if (core.status.hero.name === "梅加斯") mondamage += Math.floor(core.getRealStatus('atk') * Math.sqrt(flags.ratio) / 5); - if (core.hasItem("StarCoinHammer2") && flags.star.level > 24 && flags.StarCoinHammer) - this.hero_money = Math.max(this.hero_money - 75 * flags.ratio, 0); if (this.turn % 5 === 3 && this.enemyId === "Mamushi") { mondamage = Math.max(mondamage - Math.floor(this.mon_hp_status / 37.5), 0); @@ -20598,7 +20583,8 @@ var plugins_bb40132b_638b_4a9f_b028_d3fe47acc8d1 = this.鼠鼠 = false; // 出牌调整 - this.randDEF = core.rand(this.maxDEF - this.minDEF + 1) + this.minDEF + if (this.遥控骰子) this.randDEF = this.maxDEF * 50 + else this.randDEF = (core.rand(this.maxDEF - this.minDEF + 1) + this.minDEF) * 50 switch (this.enemyId) { case "Masao": @@ -20687,11 +20673,11 @@ var plugins_bb40132b_638b_4a9f_b028_d3fe47acc8d1 = flags.health.count += flags.health.upbuff; this.hero_hp += flags.health.count; this.minATK = this.minDEF = this.maxATK = this.maxDEF = this.hero_atk_status = this.hero_def_status = this.oneTurnDamage = 0; - this.全力攻击 = false; + this.全力攻击 = this.遥控骰子 = false; // 星光锤战斗扣除 money 结算 - if (core.hasItem("StarCoinHammer")) + if (core.hasItem("StarCoinHammer")) this.hero_money = Math.max(this.hero_money - (flags.MapStatus?.Map === "魔法学院" ? 300 : 100) * flags.ratio, 0); // FlashlightB 星光数增加结算 if (core.hasItem("FlashlightB") && this.turn > 1 && this.turn % 3 === 1) { @@ -20861,9 +20847,10 @@ var plugins_bb40132b_638b_4a9f_b028_d3fe47acc8d1 = } if (core.domStyle.isVertical) { if (this.enemyId === "LionGawu") { - core.drawTextContent(ctx1, `\\i[BuffHealth]${flags.health.count} + core.drawTextContent(ctx1, `\\i[BuffStarlight]${flags.star.level} +\\i[BuffHealth]${flags.health.count} \\i[hp]${this.hero_hp} -\\i[atk]${Math.floor((this.hero_atk + this.hero_atk_status) * (100 + this.ATKbet + this.minATK) / 100)}~${Math.floor((this.hero_atk + this.hero_atk_status) * (100 + this.ATKbet + this.maxATK) / 100)} +\\i[atk]${Math.floor((this.hero_atk + this.hero_atk_status + this.minATK*50) * ((this.全力攻击 ? 150 : 100) + this.ATKbet) / 100)}~${Math.floor((this.hero_atk + this.hero_atk_status + this.maxATK*50) * ((this.全力攻击 ? 150 : 100) + this.ATKbet) / 100)} }`, { left: 0, top: 7, @@ -20874,10 +20861,11 @@ var plugins_bb40132b_638b_4a9f_b028_d3fe47acc8d1 = font: "cjk" }) } else { - core.drawTextContent(ctx1, `\\i[BuffHealth]${flags.health.count} + core.drawTextContent(ctx1, `\\i[BuffStarlight]${flags.star.level} +\\i[BuffHealth]${flags.health.count} \\i[hp]${this.hero_hp} -\\i[atk]${Math.floor((this.hero_atk + this.hero_atk_status) * (100 + this.ATKbet + this.minATK) / 100)}~${Math.floor((this.hero_atk + this.hero_atk_status) * (100 + this.ATKbet + this.maxATK) / 100)} -\\i[def]${Math.floor((this.hero_def_status + this.hero_def) * (100 + this.DEFbet + this.minDEF) / 100)}~${Math.floor((this.hero_def_status + this.hero_def) * (100 + this.DEFbet + this.maxDEF) / 100)}`, { +\\i[atk]${Math.floor((this.hero_atk + this.hero_atk_status + this.minATK*50) * ((this.全力攻击 ? 150 : 100) + this.ATKbet) / 100)}~${Math.floor((this.hero_atk + this.hero_atk_status + this.maxATK*50) * ((this.全力攻击 ? 150 : 100) + this.ATKbet) / 100)} +\\i[def]${Math.floor((this.hero_def_status + this.hero_def + this.minDEF * 50) * (100 + this.DEFbet) / 100)}~${Math.floor((this.hero_def_status + this.hero_def + this.maxDEF * 50) * (100 + this.DEFbet) / 100)}`, { left: 0, top: 7, color: "#FFFFFF", @@ -20919,9 +20907,10 @@ ${this.mon_def_status}\\i[def]`, { core.fillBoldText(ctx1, "回合 " + this.turn, 208, 23, C16, "#000", 2, "24px STHUPO") } else { if (this.enemyId === "LionGawu") { - core.drawTextContent(ctx1, `\\i[BuffHealth]${flags.health.count} + core.drawTextContent(ctx1, `\\i[BuffStarlight]${flags.star.level} +\\i[BuffHealth]${flags.health.count} \\i[hp]${this.hero_hp} -\\i[atk]${Math.floor((this.hero_atk + this.hero_atk_status) * (100 + this.ATKbet + this.minATK) / 100)}~${Math.floor((this.hero_atk + this.hero_atk_status) * (100 + this.ATKbet + this.maxATK) / 100)} +\\i[atk]${Math.floor((this.hero_atk + this.hero_atk_status + this.minATK*50) * ((this.全力攻击 ? 150 : 100) + this.ATKbet) / 100)}~${Math.floor((this.hero_atk + this.hero_atk_status + this.maxATK*50) * ((this.全力攻击 ? 150 : 100) + this.ATKbet) / 100)} `, { left: 0, top: 30, @@ -20932,10 +20921,11 @@ ${this.mon_def_status}\\i[def]`, { font: "cjk" }) } else { - core.drawTextContent(ctx1, `\\i[BuffHealth]${flags.health.count} + core.drawTextContent(ctx1, `\\i[BuffStarlight]${flags.star.level} +\\i[BuffHealth]${flags.health.count} \\i[hp]${this.hero_hp} -\\i[atk]${Math.floor((this.hero_atk + this.hero_atk_status) * (100 + this.ATKbet + this.minATK) / 100)}~${Math.floor((this.hero_atk + this.hero_atk_status) * (100 + this.ATKbet + this.maxATK) / 100)} -\\i[def]${Math.floor((this.hero_def_status + this.hero_def) * (100 + this.DEFbet + this.minDEF) / 100)}~${Math.floor((this.hero_def_status + this.hero_def) * (100 + this.DEFbet + this.maxDEF) / 100)}`, { +\\i[atk]${Math.floor((this.hero_atk + this.hero_atk_status + this.minATK*50) * ((this.全力攻击 ? 150 : 100) + this.ATKbet) / 100)}~${Math.floor((this.hero_atk + this.hero_atk_status + this.maxATK*50) * ((this.全力攻击 ? 150 : 100) + this.ATKbet) / 100)} +\\i[def]${Math.floor((this.hero_def_status + this.hero_def + this.minDEF * 50) * (100 + this.DEFbet) / 100)}~${Math.floor((this.hero_def_status + this.hero_def + this.maxDEF * 50) * (100 + this.DEFbet) / 100)}`, { left: 0, top: 30, color: "#FFFFFF", @@ -20982,7 +20972,7 @@ ${this.mon_def_status}\\i[def] drawHero() { core.clearMap(ctx2); if (core.domStyle.isVertical) { - core.drawImage(ctx2, core.plugin.Character[core.status.hero.name].Sprite, 5, 93, 108, 108); + core.drawImage(ctx2, core.plugin.Character[core.status.hero.name].Sprite, 5, 110, 108, 108); } else { core.drawImage(ctx2, core.plugin.Character[core.status.hero.name].Sprite, 100, 10, 108, 108); } @@ -20991,7 +20981,7 @@ ${this.mon_def_status}\\i[def] drawEnemy() { core.clearMap(ctx3); if (core.domStyle.isVertical) { - core.drawImage(ctx3, this.enemyId + "_Sprite.png", 311, 93, 108, 108); + core.drawImage(ctx3, this.enemyId + "_Sprite.png", 311, 110, 108, 108); } else { core.drawImage(ctx3, this.enemyId + "_Sprite.png", 468, 10, 108, 108); }