hedra-engine
是一个 RPG 回合制自动战斗引擎,具有一套易扩展、高可定制的插件系统,适用于 idle game、自动执行战斗过程的游戏等。
目前仍处于开发阶段,API 随时可能发生变化,请不要用于生产环境。
⭐ Star 此项目来支持我的开发!
import * as Hedra from 'hedra-engine'
const store: Hedra.Store<number> = {
async createData<T extends { id?: number }>(data: T) {
return createGameData(omit(data, 'id')) as T & { id: number }
},
async setData(key, data) {
gameDataMap[key] = omit(data, 'id')
},
async getData<T extends { id: number }>(key: number) {
const data = gameDataMap[key]
return data ? (data as T) : null
},
...
}
const engine = new Hedra.Engine(store, [achievementPlugin])
const character = await engine.createCharacter(
{ name: 'test' },
async stage => stage.createNewPlayerEntity('test'),
)
const player = await engine.mainStage.getEntity(character.entityId)
const enemy1 = engine.mainStage.createRandomEnemyByPlayerLevel(player)
const enemy2 = engine.mainStage.createRandomEnemyByPlayerLevel(player)
engine.mainStage.beginCombat(player, [enemy1, enemy2])
点击查看格式化后的战斗过程
# 开始战斗,队伍信息:
## 1 号队伍成员:
### WhiteMind:
[LV.1] 普通攻击(物理): 对单体目标造成 1 _ atk 的伤害,可附加攻击特效
[LV.1] 全神贯注: 下 3 次攻击伤害提升 100%
[LV.1] 群体火球术: 对 2 个目标造成 1 _ atk 的伤害
[LV.2] 快速连击: 对单体目标造成 2 ~ 6 次的 0.8 \* atk 的伤害,可附加攻击特效
[LV.2] 体质强化: 提升 20% 的体质
[LV.1] 灵魂收割者: 每击杀一个怪物,提升 1 点最大生命值,当前提升:10
====== 木剑 ======
等级需求:1
攻击 +1
====== 布甲 ======
等级需求:1
体质 +5
最大生命值 +10%
计算后的攻击值: 3
计算后的生命值: 121
## 2 号队伍成员:
### 🐻️:
[LV.1] 普通攻击(物理): 对单体目标造成 1 \* atk 的伤害,可附加攻击特效
计算后的攻击值: 2
计算后的生命值: 40
### 🐒️:
[LV.1] 普通攻击(物理): 对单体目标造成 1 _ atk 的伤害,可附加攻击特效
[LV.1] 快速连击: 对单体目标造成 2 ~ 5 次的 0.8 _ atk 的伤害,可附加攻击特效
计算后的攻击值: 2
计算后的生命值: 20
[WhiteMind] 对 [🐻️] 释放 [快速连击],造成 2、2、2、2、2 伤害,剩余 hp 30
[🐻️] 对 [WhiteMind] 释放 [普通攻击(物理)],造成 2 伤害,剩余 hp 119
[🐒️] 对 [WhiteMind] 释放 [普通攻击(物理)],造成 2 伤害,剩余 hp 117
[WhiteMind] 对 [🐻️、🐒️] 释放 [群体火球术],造成 3、3 伤害
[🐻️] 对 [WhiteMind] 释放 [普通攻击(物理)],造成 2 伤害,剩余 hp 115
[🐒️] 对 [WhiteMind] 释放 [快速连击],造成 1、1、1、1、1 伤害,剩余 hp 110
[WhiteMind] 对 [🐻️] 释放 [快速连击],造成 2、2 伤害,剩余 hp 23
[🐻️] 对 [WhiteMind] 释放 [普通攻击(物理)],造成 2 伤害,剩余 hp 108
[🐒️] 对 [WhiteMind] 释放 [快速连击],造成 1、1 伤害,剩余 hp 106
[WhiteMind] 对 [🐻️] 释放 [普通攻击(物理)],造成 3 伤害,剩余 hp 20
[🐻️] 对 [WhiteMind] 释放 [普通攻击(物理)],造成 2 伤害,剩余 hp 104
[🐒️] 对 [WhiteMind] 释放 [普通攻击(物理)],造成 2 伤害,剩余 hp 102
[WhiteMind] 释放 [全神贯注]
[🐻️] 对 [WhiteMind] 释放 [普通攻击(物理)],造成 2 伤害,剩余 hp 100
[🐒️] 对 [WhiteMind] 释放 [快速连击],造成 1、1、1、1 伤害,剩余 hp 96
[WhiteMind] 对 [🐻️、🐒️] 释放 [群体火球术],造成 6、6 伤害
[🐻️] 对 [WhiteMind] 释放 [普通攻击(物理)],造成 2 伤害,剩余 hp 94
[🐒️] 对 [WhiteMind] 释放 [快速连击],造成 1、1 伤害,剩余 hp 92
[WhiteMind] 对 [🐻️] 释放 [普通攻击(物理)],造成 6 伤害,剩余 hp 8
[🐻️] 对 [WhiteMind] 释放 [普通攻击(物理)],造成 2 伤害,剩余 hp 90
[🐒️] 对 [WhiteMind] 释放 [普通攻击(物理)],造成 2 伤害,剩余 hp 88
[WhiteMind] 击杀了 [🐻️],战利品: [{…}]
[WhiteMind] 对 [🐻️] 释放 [快速连击],造成 2、2、2、2、2 伤害,剩余 hp 0
[🐒️] 对 [WhiteMind] 释放 [快速连击],造成 1、1、1、1、1 伤害,剩余 hp 83
[WhiteMind] 击杀了 [🐒️],战利品: [{…}]
[WhiteMind] 对 [🐒️] 释放 [快速连击],造成 2、2、2、2、2、2 伤害,剩余 hp -1
战斗胜利,战利品: (2) [{…}, {…}]
[WhiteMind] 升级至 LV.2
试炼之塔是该仓库的一个子项目,该项目用于对 Hedra Engine 的开发示范,是一个通过文本展示战斗过程的放置类回合战斗 RPG 游戏。
由于目前的主要重点在 hedra-engine 上,所以该子项目的 server 和 web 部分前期会先糊着写,以后再精修。
只需运行以下命令
yarn start
https://github.com/users/WhiteMinds/projects/1/views/1
访问 open issues 来了解拟议功能以及已知问题的完整列表。
Bilibili: @WhiteMind
E-mail: [email protected]
Copyright © 2023 WhiteMinds.
This project is MIT licensed.