fix: 怪物手册

This commit is contained in:
unanmed 2024-04-26 22:13:44 +08:00
parent 32f57cafec
commit 8cea9ba7f4
9 changed files with 34 additions and 41 deletions

View File

@ -22,7 +22,7 @@
### 机制
[] 苍蓝之殿 1: 红蓝黄门转换
[] 苍蓝之殿 2: 乾坤挪移、杀戮光环、同化
[] 苍蓝之殿 2: 乾坤挪移、杀戮光环、同化、光环范围扩大等
[] 苍蓝之殿 3: 传送门
[] 苍蓝之殿 4:
[] 苍蓝之殿中: 让我们把这些东西结合起来...

View File

@ -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":[]}

View File

@ -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],

View File

@ -801,7 +801,7 @@ export class DamageEnemy<T extends EnemyIds = EnemyIds> {
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<T extends EnemyIds = EnemyIds> {
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;
}

View File

@ -225,7 +225,7 @@ export const specials: SpecialDeclaration[] = [
)}<br />`;
});
return (
`怪物周围九宫格${enemy.haloRange}格范围内所有怪物获得以下特殊属性(包括自身),` +
`怪物周围方形${enemy.haloRange}格范围内所有怪物获得以下特殊属性(包括自身),` +
`特殊属性数值间为${
enemy.specialMultiply ? '相乘' : '相加'
}:<br />` +

View File

@ -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 = (

View File

@ -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;

View File

@ -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;
}

View File

@ -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;