mirror of
https://github.com/unanmed/HumanBreak.git
synced 2025-10-15 17:32:58 +08:00
chore: 样板怪物属性定义
This commit is contained in:
parent
cd2de674e4
commit
fe46a7b397
@ -8,13 +8,6 @@ export interface SpecialDeclaration {
|
||||
color: string;
|
||||
}
|
||||
|
||||
const fromFunc = (
|
||||
func: string | ((enemy: UserEnemyInfo) => string),
|
||||
enemy: UserEnemyInfo
|
||||
) => {
|
||||
return typeof func === 'string' ? func : func(enemy);
|
||||
};
|
||||
|
||||
export const specials: SpecialDeclaration[] = [
|
||||
{
|
||||
code: 0,
|
||||
@ -25,64 +18,64 @@ export const specials: SpecialDeclaration[] = [
|
||||
{
|
||||
code: 1,
|
||||
name: '先攻',
|
||||
desc: `怪物首先攻击`,
|
||||
desc: `怪物首先攻击。`,
|
||||
color: '#fc3'
|
||||
},
|
||||
{
|
||||
code: 2,
|
||||
name: '魔攻',
|
||||
desc: '怪物攻击无视勇士的防御',
|
||||
desc: '怪物攻击无视勇士的防御。',
|
||||
color: '#bbb0ff'
|
||||
},
|
||||
{
|
||||
code: 3,
|
||||
name: '坚固',
|
||||
desc: '怪物防御不小于勇士攻击-1',
|
||||
desc: '怪物防御不小于勇士攻击-1。',
|
||||
color: '#c0b088'
|
||||
},
|
||||
{
|
||||
code: 4,
|
||||
name: '2连击',
|
||||
desc: '怪物每回合攻击2次',
|
||||
desc: '怪物每回合攻击2次。',
|
||||
color: '#fe7'
|
||||
},
|
||||
{
|
||||
code: 5,
|
||||
name: '3连击',
|
||||
desc: '怪物每回合攻击3次',
|
||||
desc: '怪物每回合攻击3次。',
|
||||
color: '#fe7'
|
||||
},
|
||||
{
|
||||
code: 6,
|
||||
name: enemy => `${enemy.n ?? 4}连击`,
|
||||
desc: enemy => `怪物每回合攻击${enemy.n}次`,
|
||||
desc: enemy => `怪物每回合攻击${enemy.n}次。`,
|
||||
color: '#fe7'
|
||||
},
|
||||
{
|
||||
code: 7,
|
||||
name: '破甲',
|
||||
desc: enemy =>
|
||||
`战斗前,附加角色防御的${enemy.breakArmor ?? core.values.breakArmor}%作为伤害`,
|
||||
`战斗前,附加角色防御的${enemy.breakArmor ?? core.values.breakArmor}%作为伤害。`,
|
||||
color: '#fe7'
|
||||
},
|
||||
{
|
||||
code: 8,
|
||||
name: '反击',
|
||||
desc: enemy =>
|
||||
`战斗时,怪物每回合附加角色攻击的${enemy.counterAttack ?? core.values.counterAttack}%作为伤害,无视角色防御`,
|
||||
`战斗时,怪物每回合附加角色攻击的${enemy.counterAttack ?? core.values.counterAttack}%作为伤害,无视角色防御。`,
|
||||
color: '#fa4'
|
||||
},
|
||||
{
|
||||
code: 9,
|
||||
name: '净化',
|
||||
desc: enemy =>
|
||||
`战斗前,怪物附加角色护盾的${enemy.purify ?? core.values.purify}倍作为伤害`,
|
||||
`战斗前,怪物附加角色护盾的${enemy.purify ?? core.values.purify}倍作为伤害。`,
|
||||
color: '#80eed6'
|
||||
},
|
||||
{
|
||||
code: 10,
|
||||
name: '模仿',
|
||||
desc: `怪物的攻防与勇士相同`,
|
||||
desc: `怪物的攻防与勇士相同。`,
|
||||
color: '#b0c0dd'
|
||||
},
|
||||
{
|
||||
@ -93,7 +86,7 @@ export const specials: SpecialDeclaration[] = [
|
||||
return (
|
||||
`战斗前,怪物首先吸取角色的${vampire}%生命` +
|
||||
`(约${Math.floor((vampire / 100) * getHeroStatusOn('hp'))}点)作为伤害` +
|
||||
(enemy.add ? `,并把伤害数值加到自身生命上` : ``)
|
||||
(enemy.add ? `,并把伤害数值加到自身生命上。` : `。`)
|
||||
);
|
||||
},
|
||||
color: '#ff00d2'
|
||||
@ -102,194 +95,128 @@ export const specials: SpecialDeclaration[] = [
|
||||
code: 12,
|
||||
name: '中毒',
|
||||
desc: () =>
|
||||
`战斗后,角色陷入中毒状态,每一步损失生命${core.values.poisonDamage}点`,
|
||||
`战斗后,角色陷入中毒状态,每一步损失生命${core.values.poisonDamage}点。`,
|
||||
color: '#9e8'
|
||||
},
|
||||
{
|
||||
code: 13,
|
||||
name: '衰弱',
|
||||
desc: '怪物攻击无视勇士的防御',
|
||||
desc: '怪物攻击无视勇士的防御。',
|
||||
color: '#f0bbcc'
|
||||
},
|
||||
{
|
||||
code: 14,
|
||||
name: '诅咒',
|
||||
desc: '战斗后,角色陷入诅咒状态,战斗无法获得金币和经验',
|
||||
desc: '战斗后,角色陷入诅咒状态,战斗无法获得金币和经验。',
|
||||
color: '#bbeef0'
|
||||
},
|
||||
{
|
||||
code: 15,
|
||||
name: '领域',
|
||||
desc: enemy =>
|
||||
`经过怪物周围${enemy.zoneSquare ? '九宫格' : '十字'}范围内${enemy.range}格时自动减生命${enemy.zone}点`,
|
||||
`经过怪物周围${enemy.zoneSquare ? '九宫格' : '十字'}范围内${enemy.range}格时自动减生命${enemy.zone}点。`,
|
||||
color: '#c677dd'
|
||||
},
|
||||
{
|
||||
code: 16,
|
||||
name: '空',
|
||||
desc: '空',
|
||||
color: '#fff'
|
||||
name: '夹击',
|
||||
desc: '经过两只相同的怪物中间,角色生命值变成一半。',
|
||||
color: '#b9e'
|
||||
},
|
||||
{
|
||||
code: 17,
|
||||
name: '先攻',
|
||||
desc: '战斗时,怪物首先攻击',
|
||||
name: '仇恨',
|
||||
desc: `战斗前,怪物附加之前积累的仇恨值作为伤害;战斗后,释放一半的仇恨值。(每杀死一个怪物获得${core.values.hatred}点仇恨值)。`,
|
||||
color: '#b0b666'
|
||||
},
|
||||
{
|
||||
code: 18,
|
||||
name: '阻击',
|
||||
desc: enemy =>
|
||||
`经过怪物十字范围内时怪物后退一格,同时对勇士造成${enemy.value}点伤害`,
|
||||
`经过怪物十字范围内时怪物后退一格,同时对勇士造成${enemy.repulse}点伤害。`,
|
||||
color: '#8888e6'
|
||||
},
|
||||
{
|
||||
code: 19,
|
||||
name: '电摇嘲讽',
|
||||
desc:
|
||||
'当勇士移动到怪物同行或同列时,勇士会直接冲向怪物,撞碎路上的所有地形和门,拾取路上的道具,与路上的怪物战斗' +
|
||||
',最后与该怪物战斗',
|
||||
name: '自爆',
|
||||
desc: '战斗后角色的生命值变成1。',
|
||||
color: '#ff6666'
|
||||
},
|
||||
{
|
||||
code: 20,
|
||||
name: '霜冻',
|
||||
desc: enemy =>
|
||||
`怪物寒冷的攻击使勇士动作变慢,勇士每回合对怪物造成的伤害减少${enemy.ice}%。装备杰克的衣服后可以免疫。`,
|
||||
color: 'cyan'
|
||||
name: '无敌',
|
||||
desc: `角色无法打败怪物,除非拥有十字架。`,
|
||||
color: '#aaa'
|
||||
},
|
||||
{
|
||||
code: 21,
|
||||
name: '冰封光环',
|
||||
name: '退化',
|
||||
desc: enemy =>
|
||||
`寒气逼人,使勇士对该怪物周围7*7范围内的怪物伤害减少${enemy.iceHalo}%(线性叠加)`,
|
||||
`战斗后角色永久下降${enemy.atkValue ?? 0}点攻击和${enemy.defValue ?? 0}点防御。`,
|
||||
color: 'cyan'
|
||||
},
|
||||
{
|
||||
code: 22,
|
||||
name: '永夜',
|
||||
name: '固伤',
|
||||
desc: enemy =>
|
||||
`战斗后,减少勇士${enemy.night}点攻防,增加本层所有怪物${enemy.night}点攻防,仅在本层有效`,
|
||||
color: '#d8a'
|
||||
`战斗前,怪物对角色造成${enemy.damage ?? 0}点固定伤害,未开启负伤时无视角色护盾。`,
|
||||
color: '#f97'
|
||||
},
|
||||
{
|
||||
code: 23,
|
||||
name: '极昼',
|
||||
desc: enemy =>
|
||||
`战斗后,减少本层所有怪物${enemy.day}点攻防,增加勇士${enemy.day}点攻防,仅在本层有效`,
|
||||
color: '#ffd'
|
||||
name: '重生',
|
||||
desc: `怪物被击败后,角色转换楼层则怪物将再次出现。`,
|
||||
color: '#dda0dd'
|
||||
},
|
||||
{
|
||||
code: 24,
|
||||
name: '射击',
|
||||
desc: function () {
|
||||
return '经过怪物同行或同列的可视范围内时受到一次普通攻击的伤害';
|
||||
},
|
||||
name: '激光',
|
||||
desc: enemy => `经过怪物同行或同列时自动减生命${enemy.laser ?? 0}点。`,
|
||||
color: '#dda0dd'
|
||||
},
|
||||
{
|
||||
code: 25,
|
||||
name: '融化',
|
||||
desc: enemy =>
|
||||
`战斗后该怪物会融化,在怪物位置产生一个3*3的范围光环,光环内怪物的攻防增加${enemy.melt}%`,
|
||||
name: '光环',
|
||||
desc: enemy => {
|
||||
let str = '';
|
||||
if (enemy.haloRange) {
|
||||
if (enemy.haloSquare) {
|
||||
str += '对于该怪物九宫格';
|
||||
} else {
|
||||
str += '对于该怪物十字';
|
||||
}
|
||||
str += `${enemy.haloRange ?? 1}格范围内所有怪物`;
|
||||
} else {
|
||||
str += `同楼层所有怪物`;
|
||||
}
|
||||
if (enemy.hpBuff) {
|
||||
str += `,生命提升${enemy.hpBuff}%`;
|
||||
}
|
||||
if (enemy.atkBuff) {
|
||||
str += `,攻击提升${enemy.hpBuff}%`;
|
||||
}
|
||||
if (enemy.defBuff) {
|
||||
str += `,防御提升${enemy.defBuff}%`;
|
||||
}
|
||||
if (enemy.haloAdd) {
|
||||
str += `,线性叠加。`;
|
||||
} else {
|
||||
str += `,不可叠加。`;
|
||||
}
|
||||
return str;
|
||||
},
|
||||
color: '#e6e099'
|
||||
},
|
||||
{
|
||||
code: 26,
|
||||
name: '冰封之核',
|
||||
desc: enemy =>
|
||||
`怪物拥有逼人的寒气,使周围5*5范围内的怪物防御增加${enemy.iceCore}%`,
|
||||
color: '#70ffd1'
|
||||
name: '支援',
|
||||
desc: `当周围一圈的怪物受到攻击时将上前支援,并组成小队战斗。`,
|
||||
color: '#77c0b6'
|
||||
},
|
||||
{
|
||||
code: 27,
|
||||
name: '火焰之核',
|
||||
desc: enemy =>
|
||||
`怪物拥有灼热的火焰,使周围5*5范围内的怪物攻击增加${enemy.fireCore}%`,
|
||||
name: '捕捉',
|
||||
desc: `当走到怪物十字范围内时会进行强制战斗。`,
|
||||
color: '#ff6f0a'
|
||||
},
|
||||
{
|
||||
code: 28,
|
||||
name: '苍蓝刻',
|
||||
desc: enemy =>
|
||||
`怪物使用苍蓝之灵的力量,使自身受到的伤害减少${enemy.paleShield}%`,
|
||||
color: '#ff6f0a'
|
||||
},
|
||||
{
|
||||
code: 29,
|
||||
name: '杀戮光环',
|
||||
desc: enemy => {
|
||||
let content = '';
|
||||
enemy.specialHalo?.forEach((v, i) => {
|
||||
content +=
|
||||
' '.repeat(8) +
|
||||
`${i + 1}. <span style="color: ${
|
||||
specials[v].color
|
||||
}">${fromFunc(specials[v].name, enemy)}</span>: ${fromFunc(
|
||||
specials[v].desc,
|
||||
enemy
|
||||
)}<br />`;
|
||||
});
|
||||
return (
|
||||
`怪物周围方形${enemy.haloRange}格范围内所有怪物获得以下特殊属性(包括自身),` +
|
||||
`特殊属性数值间为${
|
||||
enemy.specialMultiply ? '相乘' : '相加'
|
||||
}关系:<br />` +
|
||||
content
|
||||
);
|
||||
},
|
||||
color: '#F721F7'
|
||||
},
|
||||
{
|
||||
code: 30,
|
||||
name: '乾坤挪移',
|
||||
desc: enemy => {
|
||||
const [dx, dy] = enemy.translation!;
|
||||
let str = `此怪物在场时,所有光环`;
|
||||
if (dx !== 0) {
|
||||
str += `向${dx < 0 ? '左' : '右'}平移${Math.abs(dx)}格,`;
|
||||
}
|
||||
if (dy !== 0) {
|
||||
str += `向${dy < 0 ? '上' : '下'}平移${Math.abs(dy)}格,`;
|
||||
}
|
||||
str += `不同怪物间为加算叠加`;
|
||||
return str;
|
||||
},
|
||||
color: '#FDCD0B'
|
||||
},
|
||||
{
|
||||
code: 31,
|
||||
name: '再生光环',
|
||||
desc: enemy =>
|
||||
`怪物周围7*7范围内的所有怪物(包括自身)生命值提高${enemy.hpHalo}%`,
|
||||
color: '#85FF99'
|
||||
},
|
||||
{
|
||||
code: 32,
|
||||
name: '同化',
|
||||
desc: enemy =>
|
||||
`怪物会获得自身周围方形${enemy.assimilateRange}格范围内怪物的特殊属性(光环类属性除外),` +
|
||||
`特殊属性数值间为${enemy.specialMultiply ? '乘算' : '加算'}关系`,
|
||||
color: '#ffd366'
|
||||
},
|
||||
{
|
||||
code: 33,
|
||||
name: '战争号角',
|
||||
desc: enemy => {
|
||||
const [hp, atk, def] = enemy.horn ?? [];
|
||||
let str = '地图上每存在一个怪物(包括自身),自身';
|
||||
if (hp) str += `生命值增加${hp}%,`;
|
||||
if (atk) str += `攻击增加${atk}%,`;
|
||||
if (def) str += `防御增加${def}%,`;
|
||||
str += '线性叠加。该怪物会在右上角以黄色字体显示当前地图有多少怪物';
|
||||
return str;
|
||||
},
|
||||
color: '#fff866'
|
||||
},
|
||||
{
|
||||
code: 34,
|
||||
name: '赏金',
|
||||
desc: `怪物没有任何能力,也没有任何战利品,也无法让勇士恢复生命值,战斗伤害恒为0`,
|
||||
color: '#faff33'
|
||||
}
|
||||
];
|
||||
|
Loading…
Reference in New Issue
Block a user