代码拉取完成,页面将自动刷新
基于Web Component
技术构建的 Noita 游戏UI元素工具库
目前法术数据已经跟进至beta版[^1]
<script src="noitaLib.js"></script>
"use strict";
后加上export
// ES6 module
import noitaLib from "noitaLib.js";
需要预先安装node环境, 在vscode调试中运行build即可
也可以手动执行build.js
在out
目录会生成index.js
和index.mjs
(es6模块)
html
中使用<noita-spell
spell.id="法术ID"
spell.name="法术名(伟大汉化)"
spell.expression="法术查询表达式"
display="显示模式"
><noita-spell/>
id/name
指定单个法术<noita-spell spell.id="BOMB" display="icon"></noita-spell>
expression
指定多个法术<noita-spell spell.expression="#type_passive" display="icon"></noita-spell>
id/name
指定单个法术<noita-spell spell.id="BOMB" display="panel"></noita-spell>
expression
指定多个法术<noita-spell spell.expression="#type_passive" display="panel"></noita-spell>
<noita-wand
wand.name="法杖名"
wand.shuffle="乱序(true/false)"
wand.draw="抽取数"
wand.fire-rate-wait="施放延迟"
wand.reload-time="充能时间"
wand.capacity="容量"
wand.mana-max="法力上限"
wand.mana-charge-speed="法力恢复速度"
wand.spread-degrees="散射"
wand.speed-multiplier="投射速度倍数"
wand.static-spells="始终施放法术(法术序列表达式)"
wand.dynamic-spells="填充法术(法术序列表达式)"
display="显示模式"
><noita-wand/>
<noita-wand
display="panel"
wand.name="幽魂闪光"
wand.capacity="26"
wand.draw="1"
wand.fire-rate-wait="15"
wand.reload-time="0"
wand.shuffle="false"
wand.spread-degrees="0"
wand.speed-multiplier="1"
wand.mana-charge-speed="600"
wand.mana-max="1600"
wand.static-spells="MANA_REDUCE:-1"
wand.dynamic-spells="
BLOOD_MAGIC:2
BURST_X
ADD_DEATH_TRIGGER
CURSE_WITHER_PROJECTILE
[DIGGER|POWERDIGGER|CHAINSAW]
NOLLA SPIRAL_SHOT
LIGHT_BULLET SUMMON_PORTAL:-1
[
DIGGER|
POWERDIGGER|
MATERIAL_WATER|
MATERIAL_OIL|
MATERIAL_BLOOD|
MATERIAL_ACID|
MATERIAL_CEMENT
]:13
CHAINSAW
RESET
"
></noita-wand>
javascript
中使用入口常量: noitaLib
noitaLib.entity.HTMLElement // HTMLElement 构造器 <noita-entity>
noitaLib.entity.queryById("BOMB") //DB.entity {id: 'BOMB', name: '炸弹'... }
noitaLib.spell.HTMLElement // HTMLElement 构造器 <noita-spell>
noitaLib.spell.queryByName("炸弹") //DB.spell {id: "BOMB", name: "炸弹",
noitaLib.spell.queryById("BOMB") //DB.spell {id: "BOMB", name: "炸弹", description: "召唤一枚对地形破坏力极大的炸弹" ...}
noitaLib.wand.HTMLElement // HTMLElement 构造器 <noita-wand>
noitaLib.perk.HTMLElement // HTMLElement 构造器 <noita-perk>
noitaLib.perk.queryByName("暴击率 +") // DB.perk {id: 'CRITICAL_HIT', name: '暴击率 +', description: '提高你所有法术的暴击率' ...}
noitaLib.perk.queryById("CRITICAL_HIT") // DB.perk {id: 'CRITICAL_HIT', name: '暴击率 +', description: '提高你所有法术的暴击率' ...}
noitaLib.cursor.add() // 添加游戏风格十字光标
noitaLib.cursor.remove() // 移除游戏风格十字光标
[A-Z_]+[0-9A-Z_]*
法术id ::=
<大写字母|_>(大写字母|数字|_)*
#[0-9A-Za-z_]*
法术标签 ::=
#(大写字母|小写字母|数字|_)*
&
, |
, !
(
, )
法术ID
与 法术标签
均表示法术集合 法术ID
为单个法术构成的法术集合集合运算符
表示集合之间的运算法术ID
与 法术标签
之前使用逻辑运算符进行连接优先级运算符
来控制优先级法术查询表达式 ::=
集合运算表达式
优先集合运算表达式 ::=
"("集合运算表达式")"
集合运算表达式 ::=
(基本法术集合|集合运算表达式|优先集合运算表达式)(<集合运算符>(基本法术集合|集合运算表达式|优先集合运算表达式))*
基本法术集合 ::=
法术ID|法术标签
集合运算符 ::=
"&"|"|"|"!"
noitaLib.spell.queryByExpression(法术查询表达式)
#type_projectile|RESET
所有投射物法术加魔杖刷新
#type_modifier&#mana_0
所有蓝耗为0的修正法术
DIGGER|POWERDIGGER|CHAINSAW
挖掘魔弹
、挖掘爆破
和 链锯
可替换法术 ::= "["[法术查询表达式]"]"
:[0-9]+(~[0-9]+)?
:~[0-9]+
重复次数 ::= :(<数字>{数字}[~<数字>{数字}] | ~<数字>{数字})
\^[0-9]+
剩余次数 ::= ^<数字>{数字}
[]
包裹法术查询表达式
构成 表示此处有多个可替换的法术(表现为轮播)^
拼接数量
表示该法术的剩余次数 默认为无限:
拼接数量
表示该法术在序列中向右重复的次数 默认为1 使用拼接~
和一个数值用于表示最小重复次数和最大重复次数 最小重复次数为0允许省略 即:~3
可替换法术
和固定法术
及其附加信息构成法术序列表达式 ::= {基本法术单元}
基本法术单元 ::= (法术ID|可替换法术)([重复次数][剩余次数] | [剩余次数][重复次数])
<noita-wand wand.dynamic-spells="法术序列表达式"></noita-wand>
BURST_2 LIGHT_BULLET CHAINSAW
tips: 链锯在施法块最后预载可以将施法块释放延迟归零
RESET [ #type_passive]:3
tips: 一般情况下将被动法术置于魔杖刷新
之后将免于耗蓝
LIGHT_BULLET_TRIGGER [HOMING_SHORT|HOMING]:~1 [LASER_EMITTER|LASER_EMITTER_FOUR|LASER_EMITTER_CUTTER]
tips: 使用电浆
可以有效快速的击杀独眼
使用触发弹
施放它可以免于电浆
对自己造成伤害 使用追踪
修正以保证电浆命中的稳定性(当然这不是必须的)
未完待续... [^1]: master build-Aug 29 2023.
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。