技能系统 - 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();
        // 自定义技能逻辑
    }
}