Version 0.1.0
Fan game for Medium 5 layout
Inspired by @朦朦的卡比兽 【五维介质】主角成员们的能力设定
'Medium 5' 'Stardust' etc are Trademarks held by Beijing Photek S&T Development Co. Ltd.
Initial design see medium_5_design.cpp
五维介质同人游戏
受到 @朦朦的卡比兽 的专栏启发 【五维介质】主角成员们的能力设定
五维介质 星尘 等注册商标为 北京福托科技开发有限责任公司 所有
初稿设计见文件 medium_5_design.cpp
-
安装Lua5.3,以Ubuntu/Debian为例,
sudo apt install lua5.3
- 也可从Lua官网下载源码,自行编译
-
下载或clone本项目,进入项目目录
-
下载 lua_platform.so,并放在项目目录下
- 也可在项目目录下运行
make
自行编译库 lua_platform.so
- 也可在项目目录下运行
-
获取其他依赖库
- clone依赖库,运行
make
,将生成的库文件链接到本项目根目录下
- clone依赖库,运行
-
下载游戏资源,解包到项目根目录
-
./game.lua
启动游戏。需要给予 game.lua 执行权限- 也可手动指定lua路径。
$PATH_TO_LUA_5_3 game.lua
- 也可手动指定lua路径。
目前来不及研究Windows平台的编译。本项目及其所有依赖均是跨平台的,可自行尝试进行移植。
作为参考,前一个版本的Windows平台运行方式如下
- 下载或clone本项目
- 下载 lua5.3.exe 和 liblua.dll ,并放在项目目录下。此程序使用 Lua5.3官方源码 和 Windows SDK 10.0.22000.0 编译,以支持切换UTF-8编码,从而正确显示中文字符。
- 下载 lua_platform.dll,并放在项目目录下
- 也可在项目目录下使用 MinGW 运行
export PLAT=mingw; export LUALIB_PATH=<path-to-lua-headers>; make
自行编译库 lua_platform.dll
- 从 Windows应用商店 安装 Windows Terminal,以支持文本颜色。
- 在项目目录下启动 Windows Terminal ,输入
lua5.3.exe game.lua
启动游戏
其中包含了很多代码实现细节,主要用于帮助理解,不必深究。
六边形地图。地图坐标表示为(d, i),其中d代表与中心的距离(即层数),i代表当前层中的位置。
方向用数字1到6表示,其中方向1为i=0的地图格所在的方向。图中方向1指向右方,逆时针方向增加。
回合制游戏,游戏中包含多个队,影响大部分技能和效果造成的伤害或者影响。例如,大部分伤害技能不会伤害到同队的成员。队0为“自然”,代表自然环境或者带有友伤的效果。回合以队为单位进行,即队A回合开始,角色行动,回合结束后,队B的回合开始。
实体占据一个地图格,包含队编号、生命值、元素抗性等属性。一个地图格中至多只能有一个实体。部分实体可以按照一定规则向空的地图格移动
- 生命值:角色承受攻击的能力,到达0时实体将离开地图。一般情况下实体的生命值不会超过其最大生命值。
- 元素抗性:对不同元素攻击的抵挡能力。0代表该元素的攻击造成正常伤害,1代表完全免疫该元素攻击。负值代表该元素攻击会造成额外伤害。
角色是一种实体,还包含理智值、力量值、速度/精准值、能量槽、物品栏、技能列表等属性。玩家可以操控自己队的角色。
- 理智:角色的清醒程度,仍在开发中。
- 力量:角色的攻击强度,默认攻击伤害表示为该数值的百分比。力量较低时部分技能将无法使用。
- 速度:角色闪避攻击的能力。目前与角色一回合移动的格数没有关联。
- 精准:角色攻击命中的能力。与目标速度的差值决定了命中率。
- 能量槽:包含当前能量、能量上限、每回合能量产生。大部分技能需要消耗能量,角色默认能量上限1000,每回合能量产生100。
- 物品栏:包含角色的武器和其他物品。部分物品有冷却时间,部分物品有多个不同的模式。
层的概念类似于 图层,地图上有多个不同的层,记录不同元素的效果对处于其中的实体的影响:
- 光层包含多个能量源,星尘每回合获得的能量和自身到这些能量源的距离有关。星尘的终极技能会引爆能量源并造成连锁反应。
- 气层中的气流会将部分投掷物(如赤羽的羽毛)的施放目标向气流方向移动。苍穹的终极技能会在气层中形成风暴。
- 火层包含了地面上燃烧的火焰,处于火焰中的敌方角色会被点燃。赤羽的多个技能会在地上形成火焰。
- 水层包含了每个地图格的水深。实体处于水中时会附着潮湿,大部分实体在深水中会溺水。海伊不会溺水,站在水中时部分技能会得到加强,并可以消耗周围的水进行攻击。海伊的终极技能会在水层中形成暴雨。
- 目前暂时没有岩层
角色拥有多个技能。大部分技能存在冷却时间,部分技能需要消耗能量释放,部分技能还依赖于特定物品的状态。有些技能使用后本回合该角色就不能再行动,而另一些技能在使用后仅该技能在本回合无法再使用。 技能主要有以下几个类别。有一些技能在特定的条件下类别、威力、能量消耗等参数会发生变化。
- 路径:包含一个或多个方向,角色将依次按照指示的方向在地图上移动
- 目标:包含一个或多个坐标。依照技能不同,会在指定目标位置造成伤害、添加效果、或者将角色自身传送至目标位置
- 方向:包含一个方向,角色会向该方向释放技能。
- 切换:无参数,一般用于调整角色自身或者武器的模式
- 效果:无参数,依照技能不同,会改变角色的部分属性,或者以角色为中心释放技能
- 矢量:包含一个方向和一个距离,角色会向该方向移动指定距离,并对沿途造成影响
- 直线:包含一个坐标和一个方向。角色会从指定位置开始,向指定方向释放技能
效果附着在实体上,影响实体属性或者造成伤害,一般有持续时间。部分效果会相互影响。
- 击倒,实体被击倒时,速度与力量为0,抗性减半,回合内不产生能量,技能和物品冷却不减少,也不能行动。
- 阻碍,实体受到阻碍,力量值降低(与阻碍强度有关)。阻碍强度高时实体的速度和抗性也会降低
- 溺水,当无法飞行的实体处于水深大于1000的地图格时会溺水,每回合损失25%最大生命值
- 点燃,实体被点燃时每回合会受到火元素伤害,可被潮湿或气泡熄灭
- 潮湿,实体处于水中时附着,可熄灭点燃,部分角色的属性受潮湿影响
- 水泡,附着潮湿,用于熄灭点燃时水泡损失。水泡附着于队友时,免疫溺水伤害,并1:1消耗强度吸收50%伤害,可吸收效果伤害,不影响真实伤害;附着于敌方时施加阻碍,被引爆时造成100%水元素伤害。
属性 | 值 |
---|---|
元素 | 岩 |
生命值 | 700 |
力量 | 200 |
速度 | 3 |
精准 | 3 |
元素抗性 | 值 |
---|---|
物理 | 0.6 |
火 | 0.8 |
水 | 0.6 |
气 | 0.7 |
岩 | 0.9 |
光 | 0.5 |
- 诗岸无法被点燃
- 岩铠三号。诗岸的武器是巨盾,可变形为巨锤。
- 禁忌Apple。来自伊甸园的禁果,可以提高自身部分属性和能量产生,但会对精神造成影响。冷却时间5
- 移动(路径)。诗岸每次仅能移动1格,且移动后不能再行动。盾形态下移动有1回合的冷却,且能量消耗高于锤形态
- 重锤/尖石攻击(方向)。锤形态下诗岸朝指定方向砸下,对目标造成200%物理伤害(无法对空)并击倒目标,对半径1造成40%物理伤害。盾形态下诗岸向指定方向召唤地刺,在宽3长2范围内造成50%物理伤害并阻碍目标,无法对空。
- 形态切换(切换)。诗岸的武器在盾形态/锤形态之间切换。盾形态下诗岸自身和周围的队友会受到保护。盾消耗诗岸1能量吸收2攻击,不影响真实伤害和效果伤害。诗岸无能量时盾不起作用。
- 岩石加农炮(目标),射程5,仅锤形态下可用。诗岸将一块巨石锤飞,对目标造成200%物理伤害(空中目标为400%)并击倒目标,对半径1造成40%物理伤害。
- 禁忌Apple Dance(效果)。诗岸使用禁忌Apple,获得部分属性和能量产生的提升,同时持续受到精神伤害。
- 最后的守护(效果),终极技能。诗岸舍弃一切暂借神力,自身和全场队友受到保护,持续4回合。期间诗岸不再产生能量,也不能行动,自身和所有队友受到的伤害(除真实伤害)均被完全吸收。消耗诗岸1能量吸收2伤害,能量不足时吸收的伤害减半后转移到诗岸身上。诗岸在技能作用过程中即使生命值到达或者小于0也不会退场,技能作用结束后,若诗岸生命值到达或小于0则会立即退场。
属性 | 值 |
---|---|
元素 | 火 |
生命值 | 800 |
力量 | 120 |
速度 | 7 |
精准 | 8 |
元素抗性 | 值 |
---|---|
物理 | 0.2 |
火 | 0.7 |
水 | -0.2 |
气 | 0.3 |
岩 | 0 |
光 | 0 |
- 赤羽无法被点燃
- 业火余烬。赤羽的武器是长刀。赤羽使用武器攻击敌人时会积累热量,击杀敌人时能回复部分生命值(与敌人最大生命值有关)并获得额外热量。积累的热量能够增强赤羽的力量,但过高的热量会伤害赤羽的精神乃至生命值。赤羽每回合都能消散部分热量,处于风中或者身上潮湿时散热会加快。赤羽处于潮湿环境中时力量会降低到80%
- 菲尼克斯之羽。菲尼克斯的羽毛作为引火的材料,可以直接掷出引燃周围,也可在赤羽手中引燃,作为其终极技能的引信。冷却时间5
- 移动(路径)。赤羽每回合可以移动2格,移动后还可再行动。
- 流刃若火(方向)。赤羽使用长刀向指定方向斩击,造成100%物理伤害并点燃目标。
- 闪焰冲锋(矢量),最大距离5。赤羽向指定方向冲锋,在指定距离后停止。对沿途造成100%火元素伤害并点燃目标,停止后对背后一格再造成200%物理伤害并击倒目标。
- 焚尽之羽(目标),射程4。赤羽将菲尼克斯之羽掷出,点燃范围内目标并引燃半径1的地面。羽毛能被气流带向远方。
- 烈焰风暴(方向)。赤羽让长刀附着火焰并向指定方向挥击,在宽3长1范围内造成100%物理伤害,在宽3长2范围内造成100%火元素伤害并点燃目标。
- 涅槃(目标)。在赤羽生命值低于30%时,赤羽能够选择一个目标进行传送,并在原位置引燃半径1的地面。
- 火凤焚天(矢量),终极技能。赤羽在手中引燃菲尼克斯之羽,随后化为火凤,向指定方向飞行指定距离。对沿途造成200%火焰伤害并点燃目标,对沿途的左右两侧造成100%火焰伤害并点燃目标,停止后对背后一格再造成200%火焰伤害和200%物理伤害并击倒目标。引燃以上区域的地面。
属性 | 值 |
---|---|
元素 | 气 |
生命值 | 850 |
力量 | 100 |
速度 | 9 |
精准 | 9 |
元素抗性 | 值 |
---|---|
物理 | 0 |
火 | 0 |
水 | 0 |
气 | 0.2 |
岩 | 0 |
光 | 0 |
- 除非被击倒,苍穹一直处于飞行状态。
- 岚语。苍穹的武器是长弓。默认情况下,苍穹使用气元素制作箭矢。队友位于身边时,苍穹可以使用一名队友的元素制作箭矢。不同元素的箭矢具有不同的效果。
- 蝴蝶。苍穹可以放飞蝴蝶来探明一片区域,也可以让蝴蝶振动翅膀,引发自己的终极技能。冷却时间6
- 移动(路径)。苍穹每回合可以移动3格,移动后还可再行动。
- 驭灵风矢(目标)。苍穹使用长弓发射元素箭矢,每根箭矢都造成100%物理伤害。不同的元素有不同的额外效果。
- 气元素:可以同时发射两根箭矢(可相同目标),无额外效果。
- 火元素:造成60火元素伤害并点燃目标
- 岩元素:射程5,造成100%物理伤害
- 水元素:造成100水元素伤害并附着水泡
- 光元素:造成100光元素伤害(0%充能)并引爆充能
- 元素附魔(切换)。苍穹选择制作箭矢的元素。可用元素为气元素和回合开始时在身边的队友的元素
- 风暴之眼(目标)。苍穹放飞蝴蝶,探查目标区域。此技能还在开发中。
- 气流控制(直线),射程4。苍穹控制气元素,在指定位置向指定方向产生3格的气流,持续2回合。此技能同一回合可多次使用。
- 群青之空(效果)。苍穹向正上方发射箭矢,散射半径3的区域。不同的元素有不同的效果。
- 气元素:造成150气元素伤害。
- 火元素:造成100火元素伤害并引燃地面。
- 岩元素:造成200物理伤害。
- 水元素:造成100水元素伤害并附着水泡,回复队友20%或100生命值并附着水泡
- 光元素:造成100光元素伤害(100%充能)并引爆充能
- 自由之风的轻吟(效果),终极技能。苍穹让蝴蝶振动翅膀,自己轻吟诗歌,自身为中心半径4形成风暴,持续3回合。期间苍穹不能行动,自身速度减半,其他队友速度和精准增加,敌方精准降低并受到阻碍。风暴中友方投掷物作用范围覆盖整个风暴,敌方投掷物消失。风暴每回合对敌方单位造成50%气元素伤害,对飞行单位额外造成100%气元素伤害。
属性 | 值 |
---|---|
元素 | 光 |
生命值 | 800 |
力量 | 100 |
速度 | 6 |
精准 | 7 |
元素抗性 | 值 |
---|---|
物理 | 0.2 |
火 | 0.2 |
水 | 0.2 |
气 | 0.2 |
岩 | 0.2 |
光 | 0.9 |
- 星尘回合开始时获得的能量和光层中能量源的距离有关,星尘在回合结束时使用获得的能量依次对物品进行充能,多余的能量被舍弃,不带入下一回合。
- 星尘的部分攻击造成伤害的同时,若目标没有光充能,则在目标上产生伤害数值一定比例的光充能,光充能每回合消散100;当目标已经被光充能时,将对目标额外产生光元素伤害,数值为目标光充能值加上本次攻击本应该产生的光充能数值的一半,目标的光充能被清除。
- 星辰之矛。
- 星辰之矛。星尘身边显现的由光构成的矛,可以直接掷向目标,也可以掷向地面并引爆,触发星尘的终极技能。充能需要200
- 星光之镜。星尘头顶的圆镜,可以制造黑洞,也可以进行传送。充能需要800
- 星光四面体。星尘在星光四面体中积蓄能量,超过一半时就可以聚集光束并释放。充能需要2000
- 移动(路径)。星尘在地面上时每次可以移动1格,不需要消耗能量。星尘处于悬浮状态时每次可以移动3格,每格消耗10能量。移动后还可再行动。
- 星辰双矛(目标),射程5。星尘向目标掷出矛,造成100%物理伤害(100%充能)并引爆充能。矛掷出后需要消耗能量重新生成。此技能同一回合可多次使用。
- 引力漂浮(切换)。星尘可以在悬浮模式和地面模式间切换。悬浮时每回合消耗40能量,回合开始时扣除,能量不足时将回到地面模式。
- 空间跃迁(目标/效果)。星尘使用星光之镜创造虫洞进行传送。在悬浮模式下,星光之镜消耗一半充能,星尘一人进行传送,在下一回合星尘可以选择再次通过虫洞返回;在地面模式下,星光之镜消耗全部充能,星尘可以携带身边的队友一起传送,队友的相对位置不变,落脚点被阻挡的队友不会被传送。
- 终焉归零(目标),射程6。星尘掷出星光之镜,在目标形成半径1的黑洞,持续2回合。黑洞范围内敌方投掷物和较小的敌人被吞噬,其他敌人持续受到较低物理伤害并受到阻碍。效果结束后星光之镜剩余25%充能回到星尘身边。
- 终极棱镜(方向)。星尘使用星光四面体向指定方向发射光束,对沿途造成星光四面体充能值一半的光元素伤害(50%充能)并引爆充能。星光四面体充能高于50%便可使用该技能,使用时消耗全部充能。
- 恒星坠落之时(目标),终极技能,星尘将星辰之矛向地面掷出,回合结束时星辰之矛被引爆,在半径2造成400%光元素伤害(无充能),同时引爆范围内所有能量源,每个能量源进行上述过程后消失,可形成连锁反应。此攻击对自身和队友同样造成伤害。使用此技能后星尘将虚弱(击倒)一回合。
属性 | 值 |
---|---|
元素 | 水 |
生命值 | 900 |
力量 | 80 |
速度 | 5 |
精准 | 6 |
元素抗性 | 值 |
---|---|
物理 | 0.2 |
火 | 0.4 |
水 | 0.7 |
气 | 0.1 |
岩 | 0.2 |
光 | 0.3 |
- 海伊不会溺水,处于水中时力量变为2倍,部分技能会得到加强。
- 绀海之源。海伊的武器是法杖,可以消耗能量产生水。海伊的大部分技能需要用到水,释放技能时,海伊优先使用半径1内环境中的水,不足时再使用水母储存的水。
- 水母。可以大量储存水,蓄水上限800,回合开始时,当海伊所处的格内水深超过50时,水母会吸收25%或100水。
- 移动(路径/目标)。海伊没有接触水时,每次移动2格;海伊处于水中时,可以在同一水体中“传送”至多8步。移动后还可再行动。
- 水流冲击(目标)。海伊没有接触水时,射程3,对单个目标造成100%水元素伤害或100%治疗,并附着潮湿;当海伊处于水中时,射程6,可选择至多4个目标(不可相同目标),200%水元素伤害或治疗平均分配到每个目标,单个目标治疗上限为100%,每一个目标附着潮湿。可引爆水泡。
- 祈雨(效果)。海伊使用法杖,消耗80能量,产生50水并储存于水母中。
- 海之摇篮(目标)。海伊向目标发射水泡,水泡可被气流带向远方。海伊没有接触水时,射程2,每次产生1个水泡;海伊处于水中时,射程4,每次产生2个水泡(不可相同目标)。水泡具有100%强度,持续2回合。当目标处没有实体时,将产生一个水泡实体,具有100%生命值,水抗性0.4,火抗性-0.2,被击破或2回合后爆破,对1半径造成100%水元素伤害并附着潮湿。
- 复苏之触(方向/效果)。海伊使用法杖治愈队友,回复队友最大生命值的60%,可超过生命值上限。海伊没有接触水时,治愈身边的一名队友并附着水泡;海伊处于水中时,治愈同一水体中8步以内的一名队友并附着水泡。
- 泡影的咏叹调(效果),终极技能。海伊在半径4范围内创造暴雨,持续4回合,地面产生积水。技能作用时间内海伊仍然可以行动,始终处于水中,所有技能不消耗水。每回合对自身周围半径2造成50%水元素伤害或25%治疗,附着潮湿并引爆敌方水泡。处于暴雨中的实体每回合都会尝试附着水泡,敌方火元素投掷物会消失。