diff --git a/idea.md b/idea.md index c11d01c..74a1bbf 100644 --- a/idea.md +++ b/idea.md @@ -22,7 +22,7 @@ ### 机制 [] 苍蓝之殿 1: 红蓝黄门转换 -[] 苍蓝之殿 2: 乾坤挪移、杀戮光环、同化 +[] 苍蓝之殿 2: 乾坤挪移、杀戮光环、同化、光环范围扩大等 [] 苍蓝之殿 3: 传送门 [] 苍蓝之殿 4: [] 苍蓝之殿中: 让我们把这些东西结合起来... diff --git a/public/project/enemys.js b/public/project/enemys.js index 6ee107a..124b8fa 100644 --- a/public/project/enemys.js +++ b/public/project/enemys.js @@ -29,7 +29,7 @@ var enemys_fcae963b_31c9_42b4_b48c_bb48d09f3f80 = "skeletonPriest": {"name":"智慧骷髅","hp":4000,"atk":1200,"def":900,"money":1,"exp":75,"point":0,"special":[1,13],"value":20,"crit":500,"description":"人们说智慧可以做到任何事情,而这只骷髅却将可以变为了很容易。“我挥一挥法杖,智慧便会如泉般涌来。”,他说。"}, "skeletonKing": {"name":"骷髅王","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":[]}, "evilHero": {"name":"迷失勇者","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":[]}, - "demonPriest": {"name":"魔神法师","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":[]}, + "demonPriest": {"name":"苍蓝法师","hp":10000,"atk":4000,"def":4000,"money":4,"exp":250,"point":0,"special":[13]}, "goldHornSlime": {"name":"尖角怪","hp":1500,"atk":366,"def":166,"money":1,"exp":35,"point":0,"special":[],"description":"一个奇怪的物种,长着两只角就了不起了吗?或许还真是!"}, "silverSlime": {"name":"银头怪","hp":250,"atk":50,"def":20,"money":0,"exp":11,"point":0,"special":[2]}, "whiteHornSlime": {"name":"恐怖尖角怪","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":[]}, @@ -54,13 +54,13 @@ var enemys_fcae963b_31c9_42b4_b48c_bb48d09f3f80 = "devilWarrior": {"name":"魔神武士","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":[]}, "fairyEnemy": {"name":"仙子","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":[]}, "dragon": {"name":"魔龙","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":[]}, - "skeletonKnight": {"name":"骷髅武士","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":[]}, + "skeletonKnight": {"name":"骷髅骑士","hp":15000,"atk":4000,"def":5000,"money":5,"exp":450,"point":0,"special":[1,29],"crit":300,"value":5000,"specialHalo":[4],"haloRange":2}, "skeletonPresbyter": {"name":"骷髅巫师","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":[],"description":"法杖,人们总觉得这种东西只应该出现在虚拟的世界中。可是,智慧却成功将这件事变为了现实,而产物便是这只骷髅巫师。"}, "ironRock": {"name":"山间巨石","hp":750,"atk":150,"def":0,"money":0,"exp":20,"point":0,"special":[3],"description":"恐怖的东西,除了那只蝙蝠,还有...这个巨石。"}, "grayRock": {"name":"林间巨石","hp":100,"atk":60,"def":0,"money":0,"exp":12,"point":0,"special":[3],"description":"貌似比山洞里面的那些家伙硬了一些?哼,那又能有什么用呢?"}, "yellowPriest": {"name":"中级法师","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":[]}, "evilPrincess": {"name":"痛苦魔女","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":[]}, - "blademaster": {"name":"苍蓝之剑","hp":5000,"atk":10000,"def":5000,"money":0,"exp":0,"point":0,"special":[1,5],"courage":null,"crit":250}, + "blademaster": {"name":"苍蓝之剑","hp":5000,"atk":10000,"def":5000,"money":5,"exp":500,"point":0,"special":[1,5],"courage":null,"crit":250}, "evilFairy": {"name":"黑暗仙子","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":[]}, "blueRock": {"name":"勇气之石","hp":2000,"atk":450,"def":230,"money":1,"exp":30,"point":0,"special":[],"description":"巨石,这本身是一种不可怕的怪物。而可怕的是,当这些巨石拥有了勇气,或许就很少有人敢于直面他们了。"}, "skeletonLite": {"name":"骷髅精英","hp":2000,"atk":275,"def":240,"money":1,"exp":35,"point":0,"special":[9],"description":"骷髅们总是说,没有防御力,让我怎么去攻击别人?呵,这防御力不就来了吗?可是,这又有何用呢?"}, @@ -125,7 +125,7 @@ var enemys_fcae963b_31c9_42b4_b48c_bb48d09f3f80 = "E557": {"name":"智慧之神","hp":10000,"atk":2000,"def":800,"money":10,"exp":500,"point":0,"special":[]}, "E561": {"name":"新敌人","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":[]}, "E562": {"name":"嘲讽剑客","hp":5000,"atk":1600,"def":500,"money":1,"exp":60,"point":0,"special":[19]}, - "E563": {"name":"嘲讽剑圣","hp":15000,"atk":6000,"def":3000,"money":0,"exp":0,"point":0,"special":[19]}, + "E563": {"name":"嘲讽剑圣","hp":15000,"atk":6000,"def":3000,"money":4,"exp":250,"point":0,"special":[19]}, "E564": {"name":"新敌人","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":[]}, "E566": {"name":"智慧史莱姆","hp":6000,"atk":1200,"def":600,"money":1,"exp":50,"point":0,"special":[8],"together":25}, "E567": {"name":"精明史莱姆","hp":5000,"atk":1200,"def":550,"money":0,"exp":0,"point":0,"special":[8],"together":30}, @@ -137,20 +137,20 @@ var enemys_fcae963b_31c9_42b4_b48c_bb48d09f3f80 = "E573": {"name":"新敌人","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":[]}, "E576": {"name":"智慧守卫","hp":7500,"atk":2500,"def":1250,"money":10,"exp":500,"point":0,"special":[1],"crit":250}, "E577": {"name":"智慧守护者","hp":15000,"atk":2500,"def":1200,"money":50,"exp":2500,"point":0,"special":[1],"crit":1000}, - "E578": {"name":"新敌人","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":[]}, + "E578": {"name":"苍蓝守卫","hp":25000,"atk":8000,"def":4000,"money":5,"exp":600,"point":0,"special":[]}, "E579": {"name":"新敌人","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":[]}, "E590": {"name":"冰封史莱姆","hp":7500,"atk":1750,"def":1000,"money":2,"exp":75,"point":0,"special":[20],"ice":25}, "E591": {"name":"新敌人","hp":10000,"atk":2000,"def":1000,"money":0,"exp":0,"point":0,"special":[]}, "E592": {"name":"冰封巨兽","hp":10000,"atk":2000,"def":1000,"money":2,"exp":85,"point":0,"special":[20,21],"iceHalo":20,"ice":50}, "E593": {"name":"新敌人","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":[]}, - "E594": {"name":"苍蓝骑士","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":[]}, + "E594": {"name":"苍蓝骑士","hp":10000,"atk":5000,"def":3000,"money":4,"exp":300,"point":0,"special":[29],"charge":500,"specialHalo":[11],"haloRange":3}, "E595": {"name":"寒冰兽人","hp":12500,"atk":1800,"def":800,"money":2,"exp":100,"point":0,"special":[7],"hungry":25}, - "E596": {"name":"苍蓝兽人","hp":20000,"atk":5000,"def":3000,"money":4,"exp":250,"point":0,"special":[1,28],"paleShield":30,"specialHalo":[],"iceHalo":20,"haloRange":2,"value":1000,"melt":50,"together":20,"fireCore":20,"crit":500}, + "E596": {"name":"苍蓝兽人","hp":20000,"atk":5000,"def":3000,"money":4,"exp":400,"point":0,"special":[1,28],"paleShield":30,"specialHalo":[],"iceHalo":20,"haloRange":2,"value":1000,"melt":50,"together":20,"fireCore":20,"crit":500}, "E597": {"name":"新敌人","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":[]}, "E598": {"name":"新敌人","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":[]}, "E599": {"name":"新敌人","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":[]}, "E600": {"name":"寒冰巨石","hp":3000,"atk":2500,"def":0,"money":2,"exp":100,"point":0,"special":[3]}, - "E601": {"name":"新敌人","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":[]}, + "E601": {"name":"苍蓝巨石","hp":5000,"atk":6000,"def":0,"money":5,"exp":400,"point":0,"special":[3]}, "E602": {"name":"永夜蝙","hp":6000,"atk":2000,"def":800,"money":1,"exp":65,"point":0,"special":[22],"night":100}, "E603": {"name":"极昼蝠","hp":8000,"atk":1750,"def":1000,"money":1,"exp":65,"point":0,"special":[23],"day":100}, "E605": {"name":"新敌人","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":[]}, @@ -166,13 +166,13 @@ var enemys_fcae963b_31c9_42b4_b48c_bb48d09f3f80 = "E615": {"name":"新敌人","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":[]}, "E616": {"name":"新敌人","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":[]}, "E617": {"name":"冰封雕像","hp":12500,"atk":2750,"def":2000,"money":2,"exp":150,"point":0,"special":[]}, - "E618": {"name":"新敌人","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":[]}, + "E618": {"name":"圣殿守卫","hp":30000,"atk":12500,"def":7500,"money":10,"exp":1000,"point":0,"special":[]}, "E643": {"name":"苍蓝史莱姆","hp":17500,"atk":2800,"def":2000,"money":3,"exp":175,"point":0,"special":[28],"paleShield":30}, "E644": {"name":"新敌人","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":[]}, "E645": {"name":"新敌人","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":[]}, "E646": {"name":"新敌人","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":[]}, "E647": {"name":"苍蓝之灵-虚","hp":30000,"atk":5000,"def":3000,"money":10,"exp":2500,"point":0,"special":[28],"paleShield":10}, - "E656": {"name":"触手史莱姆","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":[8]}, + "E656": {"name":"触手史莱姆","hp":12500,"atk":5000,"def":2500,"money":4,"exp":200,"point":0,"special":[8],"together":25}, "E657": {"name":"新敌人","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":[]}, "E658": {"name":"新敌人","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":[]}, "E659": {"name":"新敌人","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":[]} diff --git a/public/project/floors/MT50.js b/public/project/floors/MT50.js index a187c8e..b11d50f 100644 --- a/public/project/floors/MT50.js +++ b/public/project/floors/MT50.js @@ -28,7 +28,8 @@ main.floors.MT50= } ], "5,13": [ - "欢迎来到苍蓝之殿,这是本塔第二章里面最大的一个区,也是最复杂的一个区。整个苍蓝之殿分为四个部分:左下角、右下角、左上角、右上角,每个部分都有不一样的玩法,多多动脑哦。" + "欢迎来到苍蓝之殿,这是本塔第二章里面最大的一个区,也是最复杂的一个区。整个苍蓝之殿分为无个部分:左下角、右下角、左上角、右上角和中心,每个部分都有不一样的玩法,多多动脑哦。", + "本地图往上走会有一个商店,记得查看" ], "9,13": [ "在你刚进入苍蓝之殿时,你只能先前往左下角部分(本地图的左面),右下角暂时不能前往。" @@ -60,9 +61,9 @@ main.floors.MT50= "map": [ [648,648,648,648,648,648,648, 91,648,648,648,648,648,648,648], [648, 0, 0, 0, 0,129, 0, 0, 0,129, 0, 0, 0, 0,648], - [648, 0, 0, 0, 0,648,596,563,249,648, 0, 0, 0, 0,648], - [648, 0, 0, 0, 0,648, 0, 0, 0,648, 0, 0, 0, 0,648], - [648, 0, 0, 0,103,648, 0, 0, 0,648,103, 0, 0, 0,648], + [648, 0,594, 0, 0,648,596,563,249,648, 0, 0, 0, 0,648], + [648, 0, 0, 0, 0,648,656,601,243,648, 0,240, 0, 0,648], + [648, 0, 0, 0,103,648,618, 0,578,648,103, 0, 0, 0,648], [648, 85,648,648,648,648, 0, 0, 0,648,648,648,648, 85,648], [648, 0, 0, 0, 0, 0,484, 0,484, 0, 0, 0, 0, 0,648], [ 92, 0, 0, 0, 0, 0, 0, 23, 0, 0, 0, 0, 0, 0, 94], diff --git a/src/game/enemy/damage.ts b/src/game/enemy/damage.ts index 8b42259..663c85c 100644 --- a/src/game/enemy/damage.ts +++ b/src/game/enemy/damage.ts @@ -801,7 +801,7 @@ export class DamageEnemy { res.push({ damage: dam, atkDelta: Math.ceil(v - hero.atk!), - delta: dam - ori + delta: -(dam - origin.damage) }); start = v; @@ -863,7 +863,7 @@ export class DamageEnemy { return { damage: damage.damage, info: damage, - delta: finite ? damage.damage - origin.damage : Infinity + delta: -(finite ? damage.damage - origin.damage : Infinity) }; } @@ -947,7 +947,7 @@ export function calDamageWith( // 饥渴 if (special.includes(7)) { - const delta = Math.floor((atk * enemy.hungry!) / 100); + const delta = Math.floor((atk * info.hungry!) / 100); atk -= delta; monAtk += delta; } @@ -970,7 +970,7 @@ export function calDamageWith( // 霜冻 if (special.includes(20) && !core.hasEquip('I589')) { - heroPerDamage *= 1 - enemy.ice! / 100; + heroPerDamage *= 1 - info.ice! / 100; } heroPerDamage *= 1 - info.damageDecline / 100; @@ -997,7 +997,7 @@ export function calDamageWith( // 苍蓝刻 if (special.includes(28)) { - heroPerDamage *= 1 - enemy.paleShield! / 100; + heroPerDamage *= 1 - info.paleShield! / 100; } let turn = Math.ceil(monHp / heroPerDamage); @@ -1005,17 +1005,17 @@ export function calDamageWith( // 致命一击 if (special.includes(1)) { const times = Math.floor(turn / 5); - damage += ((times * (enemy.crit! - 100)) / 100) * enemyPerDamage; + damage += ((times * (info.crit! - 100)) / 100) * enemyPerDamage; } // 勇气之刃 if (turn > 1 && special.includes(10)) { - damage += (enemy.courage! / 100 - 1) * enemyPerDamage; + damage += (info.courage! / 100 - 1) * enemyPerDamage; } // 勇气冲锋 if (special.includes(11)) { - damage += (enemy.charge! / 100) * enemyPerDamage; + damage += (info.charge! / 100) * enemyPerDamage; turn += 5; } diff --git a/src/game/enemy/special.ts b/src/game/enemy/special.ts index 5f794e7..67b9f7d 100644 --- a/src/game/enemy/special.ts +++ b/src/game/enemy/special.ts @@ -225,7 +225,7 @@ export const specials: SpecialDeclaration[] = [ )}
`; }); return ( - `怪物周围九宫格${enemy.haloRange}格范围内所有怪物获得以下特殊属性(包括自身),` + + `怪物周围方形${enemy.haloRange}格范围内所有怪物获得以下特殊属性(包括自身),` + `特殊属性数值间为${ enemy.specialMultiply ? '相乘' : '相加' }关系:
` + diff --git a/src/plugin/ui/fixed.ts b/src/plugin/ui/fixed.ts index f7d84d3..1bb60ea 100644 --- a/src/plugin/ui/fixed.ts +++ b/src/plugin/ui/fixed.ts @@ -18,8 +18,8 @@ export function getDetailedEnemy( const dam = enemy.calDamage().damage; const cri = enemy.calCritical(1)[0]; const critical = core.formatBigNumber(cri?.atkDelta); - const criticalDam = core.formatBigNumber(-cri?.delta); - const defDam = core.formatBigNumber(-enemy.calDefDamage(ratio).delta); + const criticalDam = core.formatBigNumber(cri?.delta); + const defDam = core.formatBigNumber(enemy.calDefDamage(ratio).delta); const damage = core.formatBigNumber(dam); const fromFunc = ( diff --git a/src/ui/book.vue b/src/ui/book.vue index e14fdc4..15d51eb 100644 --- a/src/ui/book.vue +++ b/src/ui/book.vue @@ -71,6 +71,7 @@ const scroll = ref(0); const drag = ref(false); const detail = ref(false); const selected = ref(0); +let detailClosing = false; const settingScale = mainSetting.getValue('ui.bookScale', 100) / 100; const scale = isMobile @@ -100,8 +101,6 @@ function select(enemy: ToShowEnemy, index: number) { */ async function hide() { const div = document.getElementById('book') as HTMLDivElement; - div.style.opacity = '0'; - await sleep(600); div.style.display = 'none'; } @@ -110,7 +109,6 @@ async function hide() { */ async function closeDetail() { show(); - await sleep(600); detail.value = false; } @@ -120,8 +118,6 @@ async function closeDetail() { async function show() { const div = document.getElementById('book') as HTMLDivElement; div.style.display = 'flex'; - await sleep(50); - div.style.opacity = '1'; } /** @@ -203,7 +199,6 @@ onUnmounted(() => { width: 80%; height: 100%; overflow: hidden; - transition: opacity 0.6s linear; display: flex; flex-direction: column; justify-content: space-between; diff --git a/src/ui/bookDetail.vue b/src/ui/bookDetail.vue index 2ff6620..91f92c5 100644 --- a/src/ui/bookDetail.vue +++ b/src/ui/bookDetail.vue @@ -132,8 +132,6 @@ onMounted(async () => { let moved = false; let pos = [0, 0]; - await sleep(600); - useDrag( detail, (x, y) => { @@ -178,7 +176,6 @@ onUnmounted(() => { align-items: center; width: 72%; height: 100%; - transition: all 0.6s ease; user-select: none; } diff --git a/src/ui/fixed.vue b/src/ui/fixed.vue index 340c009..887a80c 100644 --- a/src/ui/fixed.vue +++ b/src/ui/fixed.vue @@ -32,7 +32,7 @@ import { onMounted, onUpdated, ref, watch } from 'vue'; import Box from '../components/box.vue'; import { GameUi } from '@/core/main/custom/ui'; -import type { DamageEnemy } from '@/game/enemy/damage'; +import type { DamageEnemy, EnemyInfo } from '@/game/enemy/damage'; import { nextFrame } from '@/plugin/utils'; const props = defineProps<{ @@ -68,23 +68,23 @@ const detail = ((): [number, string, string][] => { [enemy.enemy.money, '金币', 'lightyellow'], [enemy.enemy.exp, '经验', 'lawgreen'], [data?.atkDelta ?? 0, '临界', 'lightsalmon'], - [-data?.delta ?? 0, '临界减伤', 'lightpink'], - [-enemy.calDefDamage(ratio).delta, `${ratio}防`, 'cyan'] + [data?.delta ?? 0, '临界减伤', 'lightpink'], + [enemy.calDefDamage(ratio).delta, `${ratio}防`, 'cyan'] ]; })(); const special = (() => { const s = enemy.info.special; const fromFunc = ( - func: string | ((enemy: Enemy) => string), - enemy: Enemy + func: string | ((enemy: EnemyInfo) => string), + enemy: EnemyInfo ) => { return typeof func === 'string' ? func : func(enemy); }; const show = s.slice(0, 2).map(v => { const s = Mota.require('var', 'enemySpecials')[v]; - return [fromFunc(s.name, enemy.enemy), s.color]; + return [fromFunc(s.name, enemy.info), s.color]; }); if (s.length > 2) show.push(['...', 'white']); return show;