前言

理论上来说是去年的十一月份就想写的东西,开了个头之后愣是被我拖到了现在。
彼时想要表达的想法在时隔十个月之后未必能完美展现,但是对牌的印象想必不会有大的变化。
手机也换了新的,跟燕子哥的聊天记录都找不到了,还专门拜托燕子哥帮我转发过来,趁着这股表现欲,写下此文。
2025 年 9 月 21 日

真正的前言

杀戮尖塔是我接触的第一个卡牌构建类的游戏,此前热度较高的类似游戏,如炉石传说等,我都没有玩过。因此刚入坑时游戏理解相当差,迟迟打不过 d0,还去找了篇攻略。里面最重点的一句话是,摒弃流派化思维,铭记 端口化思维。起初难以理解,连着因为各种原因暴毙了几次之后,复盘暴毙原因,逐渐明白了何为端口化思维。最终醍醐灌顶,从 d0 一路打到 d20,中间只死了寥寥几次。如今也可以做到 sl 玩法 100 连胜了,来简单评价一下红裤衩战士哥的卡牌。

简单来说,杀戮尖塔的所有卡牌都可以视为对以下三种功能中的一种或多种的集成。分别为:
攻击:对敌人造成伤害,或以提高己方伤害为目的的牌
防御:为自己叠加护甲,或以降低敌方伤害为目的的牌
运转:抽牌、弃牌、烧牌、回复能量

其中 攻击防御 很好理解,哪怕是卡牌构建类游戏的小白也可以轻松理解这两个在几乎所有游戏里面都称得上最基础的概念。只要拿伤害除以消耗能量点数,就可以得到一张攻击牌或防御牌的 费效比 ,从而简单评估一张牌是否强力。在此基础上考虑卡牌之间的配合则是进阶技巧了,前期无需过多关注。

新手玩家往往对进攻端的卡牌最敏感,可以很好地判断出哪张牌的伤害更高。更进一步者才会考虑为自己配置优秀的防御端卡牌,从而规避道中不必要的血量损失,以及抵御 boss 的斩杀回合。与之相比,运转 功能相关的牌太容易被新手玩家忽略了。

新手玩家很难具备牌组的概念,比起画面演出中直观的攻击动画和防守动画,每回合的发牌和自然回费过于不起眼。每次击杀道中小怪时都有一次选牌机会,没有牌组概念的玩家更倾向于在三张卡牌之间做出局部最优的选择,从而忽略了哪个不起眼的“跳过”按钮,也忽略了这样的选择对于整个牌组来说可能不是全局最优。

事实上,在大多数情况下,抓取一张自己不需要的卡牌的收益比起什么都不选来说都是负的。因为更大的牌组意味着更难抽到自己想要抽到的牌,意味着可以相互配合的牌更难同时抽到手里,意味着在打出一次关键手牌后,要经过更长的时间才能第二次抽到它,更不要提达成无限了。也是因此,删牌在游戏里的优先级是最高的,显著高于敲牌和选牌。

在下面的正文中,会按照稀有度从高到低的降序,从夯到拉进行评价(要是去年写这篇文的话还蹭不到这个梗 hhh)。需要强调,最基础的打击吃敲后是 1 费 9 伤,最基础的防御吃敲后是 1 费 8 甲,高于这个费效比的数值才算及格。

正文

金卡:

恶魔之焰:费伤比极高,更有烧掉所有手牌的功能。吃敲后每张牌能打 10 伤,配合抽牌卡可以轻松 2 费打出 70-90 伤,斩杀线极高。缺点是核心牌可能也会被烧掉,但是一般可以通过调整出牌顺序来规避,综合评价为夯爆了。

死亡收割:往往需要配合加攻击的牌,否则 2 费 5 伤对单实在是吸不到多少血,没有斩掉的情况下还容易再掉回去。个人而言不喜欢抓,但是考虑到牌组里有成体系的加攻牌之后,可以保一路满血,综合评价给到人上人。

燔祭:2 费 28 伤对群,简单粗暴的数值美。代价是弃牌堆里放一张 灼伤,间接的用回转(一张抽位)和血量(延迟出伤)换来了极高的费效比和对群。抓了这张牌等于保送 boss,副作用在卡组成型后也不足为惧,综合评价为夯。

狂宴:1 费 12 伤,本身就是不错的攻击牌,但是伤害只是添头,它真正的价值是成长性,叠生命上限。一层遇到可以抓,后面没必要,个人不喜欢,综合评价给到人上人。

重锤:3 费 42 伤对单,费效比和 燔祭 一样,但是费用更高更难打出,对单也导致它打出的真实有效伤害往往更低。看起来力大砖飞,其实不实用,综合评价给到人上人。

双发:1 费,2 双发,价值取决于卡组里其他的攻击牌。实战中有一些局限性,跟高费牌一起用很容易卡手,大卡组也很难把双发和想打的攻击牌抽到一起。总的来说可以给到顶级。

发掘:0 费选 1 消耗掉的牌。手里有适用的牌例如 祭品 或者 岿然不动 之类的高价值消耗牌的时候才有价值,且如果先于这张高价值牌抽到也是对抽位的浪费,总的来说给到顶级。

岿然不动:2 费 40 甲,基本可以视作这回合免伤,甩出去之后剩下的费就可以随便花不用考虑掉血的事情了,如果有 全身撞击 搭配起来更是等于 2 费 40 甲 40 伤,总的来说给到夯。

祭品:前两张必抓,0 费 6 血换 2 能量 5 抽牌,运转神牌,赚麻了。抽数的价值先不说,两费可以打出 18+伤害或者叠出 16+的甲,加速启动的价值远大于掉的 6 血的价值,评价为夯爆了。

突破极限:这张牌搭配任意一张加攻牌或者加攻遗物药水,小卡组高回转里都可以在几轮之内把攻击叠到爆炸高,轻松一刀 999,这种快感无需多言,夯爆了。

势不可挡:如果卡组里防御端的浓度高,这张牌可以帮助你把防御端一定程度上转化为进攻端。缺点是 2 费能力牌启动很吃费,费不够就得卖血。总的来说依旧可以给到顶级。

壁垒:盾战必备,优先级远比 势不可挡 要高,搭配高浓度防御卡和 全身撞击 可以无伤通关。给到夯。

恶魔形态:每回合+3 攻击看起来很美好,实际上叠攻效率远没有 突破极限 的指数增长来的快,而且 3 费实在是太卡手了。能过的卡组没他也能过,不能过的卡组加上他也过不了,尬住了。但是只要能启动也不算弱,总的来说给到人上人。

残暴:0 费 1 血换一抽牌,说实话战士其实过牌手段不少,不缺过牌可以不抓,缺过牌抓了也没毛病,一场战斗多掉几滴血。总的来说给到人上人。

狂暴:1 回合易伤,0 费启动,每回合多一费,绝大多数情况下都是正提升,尤其是缺加费遗物的时候,一回合易伤也很容易规避,总的来说给到夯。

腐化:技能牌变 0 费且打出时消耗,适合技能牌浓度高的(往往是防御端)大牌组,强度是毋庸置疑的,但是大牌组的问题是更难第一回合抽到启动。不过防御端浓度高也可以慢慢抗到启动,不是大问题,总的来说给到夯。

总结:战士的金卡整体质量较高,不存在完全没用的卡,大部分可以对端口之一进行强力补充。

蓝卡:

上勾拳:2 费 13 伤,2 层易伤 2 层虚弱。样样不精,一般不抓,给到 NPC。

以血还血:配合耗血的卡用还行,理想情况下,损耗 3 血就可以变成 0 费 22 伤,配合高过牌可以作为终端输出,否则则较为鸡肋。总的来说给到人上人。

未完待续

卡牌悬浮展示效果实现

在本篇文章中,当鼠标光标悬浮在特定卡牌名称上时,会悬浮展示此名称对应的卡牌。这种功能的实现方法是,在CSS中定义卡牌样式,并在JS中实现光标精准跟踪。具体代码如下所示,其中CSS文件由自定义CSS文件引入,JS文件由主题配置文件引入。

CSS代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
.card-tooltip {
position: relative;
cursor: pointer;
color: #e74c3c;
font-weight: bold;
border-bottom: 1px dashed #e74c3c;
}

.card-tooltip::after {
content: '';
position: fixed;
width: 200px;
height: 280px;
background-size: contain;
background-repeat: no-repeat;
background-position: center;
opacity: 0;
visibility: hidden;
transition: opacity 0.3s;
z-index: 1000;
pointer-events: none;

/* 使用CSS变量动态定位 */
left: var(--mouse-x, -9999px);
top: var(--mouse-y, -9999px);

/* 微调偏移量,让图片出现在光标右下方 */
transform: translate(10px, 10px);
}

.card-tooltip:hover::after {
opacity: 1;
visibility: visible;
}

/* 定义卡牌图片 */
.card-tooltip[data-card="strike"]::after {
background-image: url('你的图床URL/打击.png');
}

JS代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
document.addEventListener('DOMContentLoaded', function() {
const cardTooltips = document.querySelectorAll('.card-tooltip');

cardTooltips.forEach(tooltip => {
tooltip.addEventListener('mousemove', function(e) {
const tooltipAfter = window.getComputedStyle(this, '::after');
const tooltipContent = this.getAttribute('data-card');

// 动态更新伪元素的位置
this.style.setProperty('--mouse-x', e.clientX + 'px');
this.style.setProperty('--mouse-y', e.clientY + 'px');
});
});
});

最终在文章内编辑markdown文件时,只需要用span标签包裹卡牌名,并添加对应的class和data-card属性即可。
例如,

1
这张 <span class="card-tooltip" data-card="defend">防御</span> 卡牌能提供5点格挡。