技能系统 - Junye-666/RideBattleLib_NeoForge_1.21.1 GitHub Wiki
RideBattleLib 的技能系统负责技能注册、冷却、轮转与事件分发。真正的技能逻辑写在 SkillEvent.Post 中。
注册技能
推荐在 FormBuilder 中直接声明:
.skill(SKILL_ID, 20)
原生注册:
SkillSystem.registerSkill(
ResourceLocation.fromNamespaceAndPath(RideBattleLib.MODID, "test_skill"),
Component.literal("MAN"),
20
);
然后绑定到形态:
FormConfig form = FormBuilder.create(FORM_ID)
.skill(SKILL_ID)
.build();
触发类型
public enum SkillTriggerType {
SYSTEM,
WEAPON,
ITEM,
OTHER
}
手动触发:
RideBattleAPI.triggerSkill(player, skillId);
RideBattleAPI.triggerSkill(player, skillId, SkillEvent.SkillTriggerType.OTHER);
RideBattleAPI.triggerSkill(player, formId, skillId);
RideBattleAPI.triggerSkill(player, formId, skillId, SkillEvent.SkillTriggerType.ITEM);
游戏内操作
- 变身状态下按
R释放当前技能。 - 当技能数量大于 1 时,蹲下 +
R轮转技能。 - 技能冷却在服务端管理。
技能逻辑
@SubscribeEvent
public static void onSkillPost(SkillEvent.Post event) {
if (event.getSkillId().equals(MySkills.RIDER_KICK)) {
Player player = event.getPlayer();
// 自定义技能逻辑
}
}