Class MobSkill

java.lang.Object
server.life.MobSkill

public class MobSkill extends Object
怪物技能的執行時期資料模型,持有技能屬性並負責效果套用。

每個 MobSkill 實例以 (skillId, level) 組合識別,封裝從 wz_mobskilldata 讀取的冷卻時間、持續時間、消耗 MP、召喚清單、 攻擊矩形(lt/rb)、觸發機率(prop)等屬性。

主要職責:

  • checkCurrentBuff — 判斷怪物目前 buff 狀態是否應阻止重複施放。
  • applyEffect — 依 skillId 分派,對 MapleMonster 套用 MonsterStatus 增益/傳送異常狀態至 MapleCharacter, 或生成 MapleMist 迷霧效果。
  • 召喚系技能(skillId=200)在地圖上限(limit)內召喚子怪物。

MobSkillFactory 於啟動時建構並快取; 使用端為 MapleMonster 的 AI 邏輯與 server.maps.MapReactorManager

  • Constructor Details

    • MobSkill

      public MobSkill(int skillId, int level)
  • Method Details

    • setOnce

      public void setOnce(boolean o)
    • onlyOnce

      public boolean onlyOnce()
    • setMpCon

      public void setMpCon(int mpCon)
    • addSummons

      public void addSummons(List<Integer> toSummon)
    • setSpawnEffect

      public void setSpawnEffect(int spawnEffect)
    • setHp

      public void setHp(int hp)
    • setX

      public void setX(int x)
    • setY

      public void setY(int y)
    • setDuration

      public void setDuration(long duration)
    • setCoolTime

      public void setCoolTime(long cooltime)
    • setProp

      public void setProp(float prop)
    • setLtRb

      public void setLtRb(Point lt, Point rb)
    • setLimit

      public void setLimit(short limit)
    • checkCurrentBuff

      public boolean checkCurrentBuff(MapleCharacter player, MapleMonster monster)
    • applyEffect

      public void applyEffect(MapleCharacter player, MapleMonster monster, boolean skill)
    • getSkillId

      public int getSkillId()
    • getSkillLevel

      public int getSkillLevel()
    • getMpCon

      public int getMpCon()
    • getSummons

      public List<Integer> getSummons()
    • getSpawnEffect

      public int getSpawnEffect()
    • getHP

      public int getHP()
    • getX

      public int getX()
    • getY

      public int getY()
    • getDuration

      public long getDuration()
    • getCoolTime

      public long getCoolTime()
    • getLt

      public Point getLt()
    • getRb

      public Point getRb()
    • getLimit

      public int getLimit()
    • makeChanceResult

      public boolean makeChanceResult()