refactor: update doc and .d.ts
This commit is contained in:
parent
693c279e0f
commit
a010a0bca6
|
|
@ -1,4 +1,4 @@
|
|||
# slay the spire + backpack heroes
|
||||
# 杀戮尖塔 + 背包英雄
|
||||
|
||||
玩家有4x6的背包
|
||||
|
||||
|
|
@ -6,68 +6,113 @@
|
|||
|
||||
战斗时玩杀戮尖塔
|
||||
|
||||
## Roguelike structure
|
||||
## 肉鸽结构
|
||||
|
||||
Zone based Point Crawl:
|
||||
- 分4个区域,每个区域有独立的随机遭遇池
|
||||
- 遭遇分为随机遭遇、战斗、服务
|
||||
- 随机遭遇使用d6双阶段结构
|
||||
- 战斗遭遇分简单和困难,困难可以绕
|
||||
- 服务遭遇分商店(恢复/卖装备/附魔)篝火(恢复/补充药水/下次战斗buff)奇遇(随机奖励/风险事件)
|
||||
区域点到点地图
|
||||
|
||||
- 分4个区域,每个区域有独立的随机遭遇池,目前先考虑第一个区域
|
||||
- 每区域10层,26个遭遇节点
|
||||
- 荒野层6层×3节点(小怪50%/精英25%/事件25%)
|
||||
- 聚落层2层×4节点(≥1篝火/≥1商店/≥1奇遇,第4随机)
|
||||
- 起点→终点,终点为boss战
|
||||
- 分支1-3-3-4-3-3-4-3-3-1
|
||||
- 荒野层6层×3节点(小怪50%/精英25%/事件25%)
|
||||
- 聚落层2层×4节点(≥1篝火/≥1商店/≥1奇遇,第4随机)
|
||||
- 起点→终点,终点为boss战
|
||||
|
||||
## 战斗
|
||||
## 战斗(小怪、精英、boss)
|
||||
|
||||
典中典5手牌3费,每个格子1张牌,同一装备牌逻辑相同,但根据邻接吃到的牌buff不同
|
||||
基本流程
|
||||
- 怪物战斗开始效应
|
||||
- 玩家战斗开始效应
|
||||
- 重复直至一方不剩下存活角色
|
||||
- 玩家回合
|
||||
- 怪物回合
|
||||
|
||||
3种牌(攻击/防御/强化)攻击克强化克防御克攻击,强化比sts强化窄但效果更大
|
||||
怪物战斗开始
|
||||
- 获得初始buff、初始血量、初始意图
|
||||
|
||||
洗牌堆时洗入两张《疲劳》(1费/消耗)
|
||||
玩家战斗开始
|
||||
- 获得3点能量,抓5张手牌
|
||||
|
||||
背包物品可能会引用相邻的物品、同一行的物品、同一列的物品等
|
||||
玩家回合
|
||||
- buff更新阶段:临时buff消失、延时buff-1层
|
||||
- 回合开始:触发回合开始效果
|
||||
- 行动:玩家可以自由出牌直至结束回合
|
||||
- 回合结束:触发回合结束效果
|
||||
- 重置:恢复到3点能量,弃掉剩余手牌,抓5张手牌
|
||||
- 洗回牌堆:每当牌堆为空需要抓牌或与牌堆顶交互,则将弃牌堆与2张《疲劳》(没有效果,不能打出)洗回牌堆,然后再继续。
|
||||
|
||||
部分物品带使用次数限制,药瓶喝完可以在篝火补
|
||||
怪物回合
|
||||
- buff更新阶段:每个怪物临时buff消失、延时buff-1层
|
||||
- 回合开始:触发每个怪物的回合开始效果
|
||||
- 行动:怪物的意图生效,然后更新意图
|
||||
- 回合结束:触发每个怪物的回合结束效果
|
||||
|
||||
## 费用
|
||||
## 篝火
|
||||
|
||||
60%牌1费,20%牌2费,20%牌0费
|
||||
在篝火处可进行3次行动,每次行动可以:
|
||||
- 恢复20%最大生命
|
||||
- 恢复1次所有药品的使用次数
|
||||
- 合成一个物品(暂未设计)
|
||||
|
||||
怪物强化平均节奏较sts更快
|
||||
## 商店
|
||||
|
||||
## 关键词
|
||||
在商店可以买/卖物品
|
||||
- 有5个随机的不同物品可以买,价格为原价50%-150%随机
|
||||
- 购买之后不会补充
|
||||
- 可以以原价25%的价格卖出背包内的任意物品
|
||||
|
||||
行动关键词:以【攻击4】表示。分为指向行动或非指向行动。随机打出指向行动时,指向随机目标。
|
||||
## 奇遇
|
||||
|
||||
buff/debuff:以【防御3】表示。分为不衰减(持续整场战斗)、回合衰减(每次更新层数-1)、临时(下次更新清空)和姿态(受伤害时扣除层数)四种。
|
||||
奇遇为Yarn Spinner驱动的分支对话遭遇
|
||||
|
||||
物品的构筑配合按邻接性设计,临场动态策略配合按buff考虑
|
||||
对玩家产生的影响根据Yarn Spinner的命令结算
|
||||
|
||||
## Buff / Debuff
|
||||
在对话结束后奇遇结算结束
|
||||
|
||||
玩家buff主要按照“有默认功能的货币”考虑
|
||||
## 战斗内Effect
|
||||
|
||||
debuff暂时只考虑“条件回合覆盖”类debuff,有时可以当货币用
|
||||
Effect分以下类型:
|
||||
- 瞬间:立即生效,直接改变状态
|
||||
- Buff:作为状态叠加到角色身上
|
||||
- 持久Buff:持续整场战斗
|
||||
- 临时Buff:持续到下次Buff更新
|
||||
- 延时Buff:每次Buff更新-1层,持续到归零
|
||||
- 姿态Buff:受到伤害时,移除同等数量的层数
|
||||
- 卡牌:作为状态卡牌加入
|
||||
- 弃牌:加入弃牌堆
|
||||
- 手牌:加入手牌
|
||||
- 牌堆:加入抓牌堆
|
||||
- 物品:作为物品状态叠加到物品上,通常是效应来源卡牌对应的物品周围的物品,若没有上下文物品则可能无效或对玩家的随机物品生效
|
||||
- 临时:持续到下次Buff更新
|
||||
- 持久:持续整场战斗
|
||||
- 永久:持续整个冒险
|
||||
- 直到打出:持续到下次打出该物品的卡牌
|
||||
- 直到弃掉:持续到下次弃掉该物品的卡牌
|
||||
|
||||
敌人buff和debuff与玩家对称设计
|
||||
## 时机
|
||||
|
||||
## 遗物与药水
|
||||
产生Effect的时机包括:
|
||||
- 打出卡牌/抓到卡牌/弃掉卡牌
|
||||
- 敌人意图生效
|
||||
- Effect侦听器需要的特定侦听事件
|
||||
|
||||
药水在sts里属于不稳定容错,比较鸡肋
|
||||
## 卡牌属性
|
||||
|
||||
这里药水作为物品携带,0费消耗次数使用,随篝火补充,功能较难溢出且稳定性更强
|
||||
- 费用:能量费用或物品使用次数费用,如果不能支付则无法打出
|
||||
- 抓牌效果/打出效果/弃掉效果:包括目标(自身、选择目标、全体),效果类型,和层数,可能有复数条
|
||||
|
||||
纯触发奖励性遗物用以调节节奏,还是要有的,但是分池发
|
||||
能量费用以3费为准,希望大约60%牌1费,20%牌2费,20%牌0费
|
||||
|
||||
## 区域设计
|
||||
## 遗物
|
||||
|
||||
每区域10小怪,4精英,2商店,2篝火,8奇遇,1事件
|
||||
遗物不需要放在背包格里,且仅提供正面触发效果,暂未设计
|
||||
|
||||
## 设计量
|
||||
## 区域设计量
|
||||
|
||||
每区域10小怪,4精英,8奇遇,1 boss(暂未设计)
|
||||
目前仅考虑沙漠一个区域
|
||||
|
||||
## 角色设计量
|
||||
|
||||
~24 物品 每角色(4种各6个)
|
||||
-10 小怪 4 精英 1 boss 每区域
|
||||
-3+ 遗物 每角色
|
||||
-8 遗物 每角色
|
||||
|
||||
在扩展更多区域后需添加更多内容随区域/奇遇解锁
|
||||
|
|
@ -1,5 +1,7 @@
|
|||
# Fighter
|
||||
|
||||
战士角色:默认的角色。
|
||||
|
||||
## 物品
|
||||
|
||||
4种物品各6个:武器、防具、耗材、工具。
|
||||
|
|
@ -8,7 +10,7 @@
|
|||
|
||||
每种物品每格提供一张牌加入玩家牌堆。
|
||||
|
||||
使用武器、防具、工具的卡牌花费能量,每回合3点。耗材使用不计入费用,消耗本身的使用次数。使用次数在篝火处会完全恢复。
|
||||
使用武器、防具、工具的卡牌花费能量。每回合有3点能量。耗材使用不计入费用,但消耗本身的使用次数。使用次数在篝火处可以恢复。
|
||||
|
||||
### 初始装备
|
||||
|
||||
|
|
@ -29,7 +31,9 @@
|
|||
|
||||
防具可以检查周围物品,每个匹配的给奖励。
|
||||
|
||||
盾 2x2/1费:【防御3】
|
||||
物品被动:每个防具的周围每种不同防具+1最大生命。
|
||||
|
||||
盾 2x2/1费:【防御3】。
|
||||
斗笠 4格T型/2费:【防御8】
|
||||
披风 3格L型/1费:【防御2】,下回合【防御2】
|
||||
护腕 1格/0费:【防御1】,抓1张牌
|
||||
|
|
|
|||
|
|
@ -6,31 +6,31 @@
|
|||
|
||||
概念:防+强化
|
||||
|
||||
【尖刺X】:对攻击者造成X点伤害
|
||||
【尖刺X】:对自己施加的持续buff,对攻击者造成X点伤害
|
||||
|
||||
### 蛇
|
||||
|
||||
概念:攻+强化
|
||||
|
||||
蛇毒/1费:消耗。一回合弃掉超过1张蛇毒时,受到6伤害。
|
||||
【蛇毒X】:对玩家施加的手牌状态(同名状态牌/1费:打出时移除此牌。弃掉时受到3点伤害。)
|
||||
|
||||
### 木乃伊
|
||||
|
||||
概念:攻+防
|
||||
|
||||
【诅咒】:受攻击时物品【攻击】-1,直到弃掉一张该物品的牌
|
||||
【诅咒】:对自己施加的延时buff。受玩家卡牌攻击时,卡牌对应物品【攻击】-1,直到玩家弃掉一张该物品的牌
|
||||
|
||||
### 枪手
|
||||
|
||||
概念:单回高攻
|
||||
|
||||
【瞄准X】:造成双倍伤害。受伤时失去等量【瞄准】。
|
||||
【瞄准X】:对自己施加的姿态buff。造成双倍伤害。
|
||||
|
||||
### 风卷草
|
||||
|
||||
概念:防+强化
|
||||
|
||||
【滚动X】:攻击时,每消耗10点【滚动】,造成等量伤害。
|
||||
【滚动X】:对自己施加的姿态buff。攻击时,若有至少10层滚动,则消耗10层滚动让攻击+10。
|
||||
|
||||
### 秃鹫
|
||||
|
||||
|
|
@ -38,49 +38,49 @@
|
|||
|
||||
若造成伤害,玩家获得秃鹫之眼。
|
||||
|
||||
秃鹫之眼/0费:受到秃鹫的攻击。当你受到伤害时,自动从手牌打出。
|
||||
秃鹫之眼:对玩家施加的抓牌堆状态卡牌(同名状态牌/0费:打出时移除。抓到时获得3层【暴露】(临时debuff,受到的伤害+1/每层))
|
||||
|
||||
### 沙蝎
|
||||
|
||||
概念:攻+强化
|
||||
|
||||
【尾刺X】:玩家回合结束时受到沙蝎的X点攻击。受伤时失去等量【尾刺】。
|
||||
【尾刺X】:对自己施加的姿态buff。攻击时,伤害提升X。
|
||||
|
||||
### 幼沙虫
|
||||
|
||||
防+强化
|
||||
|
||||
每回合第一次受伤时,玩家失去1点能量。
|
||||
【能量吸取】:对自己施加的延时buff。受伤时,玩家失去X点能量。
|
||||
|
||||
### 蜥蜴
|
||||
|
||||
概念:攻+防+逃跑
|
||||
|
||||
【脱皮】:若脱皮达到生命上限,则怪物逃跑,玩家不能获得战斗奖励。
|
||||
【脱皮】:对自己施加的姿态buff。若脱皮达到生命上限,则怪物逃跑,玩家不能获得战斗奖励。
|
||||
|
||||
### 沙匪
|
||||
|
||||
概念:攻特化
|
||||
概念:弱化玩家
|
||||
|
||||
洗牌时,将一个随机物品的牌全部弃掉。
|
||||
【劫掠】:对玩家施加的延时debuff。回合开始时,随机弃掉一张手牌。
|
||||
|
||||
## 精英 - 4种
|
||||
|
||||
### 风暴之灵
|
||||
|
||||
静电/0费:抓一张牌。在手里时,受到【电击】伤害+1。
|
||||
静电:对玩家施加的弃牌堆状态卡牌/0费:打出时自己获得1层【暴露】并抓一张牌。(临时debuff,受到的伤害+1/每层)
|
||||
|
||||
【风暴X】:攻击时,玩家获得1张静电。受伤时失去等量【风暴】。
|
||||
【风暴X】:对自己施加的姿态buff。攻击时,玩家获得1张静电。
|
||||
|
||||
### 骑马枪手
|
||||
|
||||
【冲锋X】:受到或造成的伤害翻倍并消耗等量的冲锋。
|
||||
【冲锋X】:对自己施加的姿态buff,受到或造成的伤害翻倍并消耗等量的冲锋。(额外伤害不会消耗姿态)
|
||||
|
||||
### 沙虫王
|
||||
|
||||
召唤幼体沙虫
|
||||
|
||||
每当玩家弃掉一张牌,恢复1生命
|
||||
玩家弃掉疲劳时,恢复10生命
|
||||
|
||||
### 沙漠守卫
|
||||
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@ type EncounterDesertTable = readonly {
|
|||
readonly type: "minion" | "elite" | "event" | "shop" | "camp" | "curio";
|
||||
readonly name: string;
|
||||
readonly description: string;
|
||||
readonly enemies: readonly [readonly enemy: EnemyDesert, readonly bonusHp: number];
|
||||
readonly enemies: readonly (readonly [enemy: EnemyDesert, bonusHp: number])[];
|
||||
readonly dialogue: string;
|
||||
}[];
|
||||
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@ import type { EffectDesert } from './effectDesert.csv';
|
|||
type EnemyDesertTable = readonly {
|
||||
readonly id: string;
|
||||
readonly initHp: number;
|
||||
readonly initBuffs: readonly [readonly effect: EffectDesert, readonly stacks: number];
|
||||
readonly initBuffs: readonly (readonly [effect: EffectDesert, stacks: number])[];
|
||||
readonly initialIntent: string;
|
||||
}[];
|
||||
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@ type EnemyIntentDesertTable = readonly {
|
|||
readonly id: string;
|
||||
readonly nextIntents: readonly EnemyIntentDesert[];
|
||||
readonly brokenIntent: readonly EnemyIntentDesert[];
|
||||
readonly effects: readonly ["self" | "player" | "team", EffectDesert, number];
|
||||
readonly effects: readonly (readonly [target: "self" | "player" | "team", effect: EffectDesert, value: number])[];
|
||||
}[];
|
||||
|
||||
export type EnemyIntentDesert = EnemyIntentDesertTable[number];
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@ type HeroItemFighter1Table = readonly {
|
|||
readonly targetType: "single" | "none";
|
||||
readonly price: number;
|
||||
readonly desc: string;
|
||||
readonly effects: readonly ["self" | "target" | "all" | "random", EffectDesert, number];
|
||||
readonly effects: readonly (readonly [target: "self" | "target" | "all" | "random", effect: EffectDesert, value: number])[];
|
||||
}[];
|
||||
|
||||
export type HeroItemFighter1 = HeroItemFighter1Table[number];
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@ type StatusCardDesertTable = readonly {
|
|||
readonly name: string;
|
||||
readonly desc: string;
|
||||
readonly unplayable: boolean;
|
||||
readonly effects: readonly ["self", EffectDesert, number];
|
||||
readonly effects: readonly (readonly [target: "self", effect: EffectDesert, value: number])[];
|
||||
}[];
|
||||
|
||||
export type StatusCardDesert = StatusCardDesertTable[number];
|
||||
|
|
|
|||
Loading…
Reference in New Issue