Compare commits
No commits in common. "509e121275595d17cb6f736087ef694bd37eec50" and "09148f5b13c335e055c7a2a57616122d2b6a3594" have entirely different histories.
509e121275
...
09148f5b13
|
|
@ -1,30 +1,21 @@
|
||||||
# instant: 不施加buff,瞬间生效
|
id, name, description
|
||||||
# temporary: 施加buff,下回合开始时失效
|
string, string, string
|
||||||
# lingering: 施加buff,下回合开始时失去1层
|
attack, 攻击, 对对手造成伤害
|
||||||
# permanent: 施加buff
|
defend, 防御, 抵消下次行动前受到的伤害
|
||||||
# posture: 施加buff,每受到1点伤害移除1层
|
spike, 尖刺, 对攻击者造成X点伤害
|
||||||
# card: 不施加buff,对玩家时在玩家弃牌堆创建同名卡牌,对敌人无效(敌人没有牌堆)
|
venom, 蛇毒, 弃掉超过1张蛇毒时受到6伤害
|
||||||
# cardDraw: 不施加buff,在抓牌堆洗入同名卡牌
|
curse, 诅咒, 受攻击时物品攻击-1,直到弃掉一张该物品的牌
|
||||||
# cardHand:不施加buff,在玩家手牌中创建同名卡牌
|
aim, 瞄准, 造成双倍伤害,受伤时失去等量瞄准
|
||||||
|
roll, 滚动, 攻击时每消耗10点滚动造成等量伤害
|
||||||
id, name, description, timing
|
rollDamage, 滚动攻击, 消耗滚动层数造成的伤害
|
||||||
string, string, string, 'instant'|'temporary'|'lingering'|'permanent'|'posture'|'card'|'cardDraw'|'cardHand'
|
vultureEye, 秃鹫之眼, 受到伤害时自动从手牌打出秃鹫的攻击
|
||||||
attack, 攻击, 对对手造成伤害, instant
|
tailSting, 尾刺, 回合结束时对玩家造成X点攻击
|
||||||
defend, 防御, 抵消下次行动前受到的伤害, posture
|
energyDrain, 能量吸取, 每回合首次受伤时玩家失去1能量
|
||||||
spike, 尖刺, 对攻击者造成X点伤害, lingering
|
molt, 脱皮, 达到生命上限时怪物逃跑
|
||||||
venom, 蛇毒, 弃掉超过1张蛇毒时受到6伤害, lingering
|
discard, 弃牌, 弃掉物品的牌
|
||||||
curse, 诅咒, 受攻击时物品攻击-1,直到弃掉一张该物品的牌, permanent
|
storm, 风暴, 攻击时给玩家塞入1张静电
|
||||||
aim, 瞄准, 造成双倍伤害,受伤时失去等量瞄准, lingering
|
static, 静电, 在手里时受电击伤害+1
|
||||||
roll, 滚动, 攻击时每消耗10点滚动造成等量伤害, permanent
|
charge, 冲锋, 受到或造成的伤害翻倍并消耗等量冲锋
|
||||||
rollDamage, 滚动攻击, 消耗滚动层数造成的伤害, instant
|
summonMummy, 召唤木乃伊, 召唤1个木乃伊
|
||||||
vultureEye, 秃鹫之眼, 受到伤害时自动从手牌打出秃鹫的攻击, permanent
|
summonSandwormLarva, 召唤幼沙虫, 召唤1个幼沙虫
|
||||||
tailSting, 尾刺, 回合结束时对玩家造成X点攻击, instant
|
reviveMummy, 复活木乃伊, 复活1个已死亡的木乃伊
|
||||||
energyDrain, 能量吸取, 每回合首次受伤时玩家失去1能量, permanent
|
|
||||||
molt, 脱皮, 达到生命上限时怪物逃跑, permanent
|
|
||||||
discard, 弃牌, 弃掉物品的牌, instant
|
|
||||||
storm, 风暴, 攻击时给玩家塞入1张静电, permanent
|
|
||||||
static, 静电, 在手里时受电击伤害+1, permanent
|
|
||||||
charge, 冲锋, 受到或造成的伤害翻倍并消耗等量冲锋, lingering
|
|
||||||
summonMummy, 召唤木乃伊, 召唤1个木乃伊, instant
|
|
||||||
summonSandwormLarva, 召唤幼沙虫, 召唤1个幼沙虫, instant
|
|
||||||
reviveMummy, 复活木乃伊, 复活1个已死亡的木乃伊, instant
|
|
||||||
|
|
|
||||||
|
|
|
@ -2,7 +2,6 @@ type EffectDesertTable = readonly {
|
||||||
readonly id: string;
|
readonly id: string;
|
||||||
readonly name: string;
|
readonly name: string;
|
||||||
readonly description: string;
|
readonly description: string;
|
||||||
readonly timing: "instant" | "temporary" | "lingering" | "permanent" | "posture" | "card" | "cardDraw" | "cardHand";
|
|
||||||
}[];
|
}[];
|
||||||
|
|
||||||
export type EffectDesert = EffectDesertTable[number];
|
export type EffectDesert = EffectDesertTable[number];
|
||||||
|
|
|
||||||
|
|
@ -6,8 +6,8 @@
|
||||||
# nextIntents: 下一个意图id, 多个意图则从中随机
|
# nextIntents: 下一个意图id, 多个意图则从中随机
|
||||||
# brokenIntent: 防御被打空后改变的意图id,多个意图则从中随机
|
# brokenIntent: 防御被打空后改变的意图id,多个意图则从中随机
|
||||||
# effects:技能效果,目标+buff/debuff/攻击/防御+数值/层数
|
# effects:技能效果,目标+buff/debuff/攻击/防御+数值/层数
|
||||||
enemy,id,nextIntents,brokenIntent,effects
|
enemy,intent,nextIntents,brokenIntent,effects
|
||||||
@enemyDesert,string,@enemyIntentDesert[],@enemyIntentDesert[],['self' | 'opponent';@effectDesert;number][]
|
@enemyDesert,string,string[],string[],['self' | 'opponent';@effectDesert;number][]
|
||||||
|
|
||||||
仙人掌怪,boost,boost;defend;defend,,[self;spike;1];[self;defend;4]
|
仙人掌怪,boost,boost;defend;defend,,[self;spike;1];[self;defend;4]
|
||||||
仙人掌怪,defend,attack,,[self;defend;8]
|
仙人掌怪,defend,attack,,[self;defend;8]
|
||||||
|
|
|
||||||
|
|
|
@ -3,9 +3,9 @@ import type { EffectDesert } from './effectDesert.csv';
|
||||||
|
|
||||||
type EnemyIntentDesertTable = readonly {
|
type EnemyIntentDesertTable = readonly {
|
||||||
readonly enemy: EnemyDesert;
|
readonly enemy: EnemyDesert;
|
||||||
readonly id: string;
|
readonly intent: string;
|
||||||
readonly nextIntents: readonly EnemyIntentDesert[];
|
readonly nextIntents: readonly string[];
|
||||||
readonly brokenIntent: readonly EnemyIntentDesert[];
|
readonly brokenIntent: readonly string[];
|
||||||
readonly effects: readonly ["self" | "opponent", EffectDesert, number];
|
readonly effects: readonly ["self" | "opponent", EffectDesert, number];
|
||||||
}[];
|
}[];
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -143,14 +143,6 @@ describe('effectDesert.csv import', () => {
|
||||||
expect(effect).toHaveProperty('id');
|
expect(effect).toHaveProperty('id');
|
||||||
expect(effect).toHaveProperty('name');
|
expect(effect).toHaveProperty('name');
|
||||||
expect(effect).toHaveProperty('description');
|
expect(effect).toHaveProperty('description');
|
||||||
expect(effect).toHaveProperty('timing');
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
it('should have valid timing values', () => {
|
|
||||||
const validTimings = ['instant', 'temporary', 'lingering', 'permanent', 'posture', 'card', 'cardDraw', 'cardHand'];
|
|
||||||
for (const effect of effectDesertData) {
|
|
||||||
expect(validTimings).toContain(effect.timing);
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
@ -217,7 +209,7 @@ describe('enemyIntentDesert.csv import', () => {
|
||||||
it('should have correct fields for each intent', () => {
|
it('should have correct fields for each intent', () => {
|
||||||
for (const intent of enemyIntentDesertData) {
|
for (const intent of enemyIntentDesertData) {
|
||||||
expect(intent).toHaveProperty('enemy');
|
expect(intent).toHaveProperty('enemy');
|
||||||
expect(intent).toHaveProperty('id');
|
expect(intent).toHaveProperty('intent');
|
||||||
expect(intent).toHaveProperty('nextIntents');
|
expect(intent).toHaveProperty('nextIntents');
|
||||||
expect(intent).toHaveProperty('brokenIntent');
|
expect(intent).toHaveProperty('brokenIntent');
|
||||||
expect(intent).toHaveProperty('effects');
|
expect(intent).toHaveProperty('effects');
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue