Package server.life


package server.life
場景生命實體子系統:怪物與 NPC 的資料模型、生成資料、怪物資訊工廠與生命工廠。

所有可載入的場景生命體共同繼承 AbstractLoadedMapleLife(再上溯至 server.maps.AnimatedMapleMapObject):戰鬥用的 MapleMonster、對話用的 MapleNPC 與玩家化身 PlayerNPC。怪物的靜態屬性由 MapleMonsterStats 描述,並可在執行期以 ChangeableStatsOverrideMonsterStats 覆寫; 放逐效果由 BanishInfo 承載,屬性相剋則以 ElementElementalEffectiveness 表示。

怪物技能與攻擊資訊為 MobSkillMobAttackInfo,由 MobSkillFactory 從 WZ 資料載入。掉落表以 MonsterDropEntryMonsterGlobalDropEntry 表示, 怪物死亡回呼介面為 MonsterListener。場景刷怪由抽象 Spawns 及其實作 SpawnPointSpawnPointAreaBoss 驅動。

MapleLifeFactory 是建立 MapleMonster/MapleNPC 實例的入口, MapleMonsterInformationProvider 則提供掉落表與怪物名稱等查詢;兩者皆讀取 provider 的 WZ 資料。本 package 與 MapleMap 場景系統、 怪物擊殺/掉落流程(server.maps.MapleMonsterKillManager)緊密協作。

  • Class
    Description
    地圖上所有「已從 WZ 載入」生物(怪物與 NPC)的抽象基底類別。
    怪物擊殺後強制傳送(放逐)玩家的目的地資訊值物件。
    依場景規則動態計算後的怪物可變數值,繼承 OverrideMonsterStats 以複寫基礎 HP/MP/EXP。
    楓之谷中的元素屬性列舉,用於描述技能與怪物的元素類型。
    怪物對特定元素屬性的相剋效果列舉,以傷害倍率表達。
    從 WZ 資料建立怪物與 NPC 實例的靜態工廠,是 server.life 套件的主要入口。
    地圖上「活的」怪物實體,封裝其執行期狀態、傷害結算與死亡處理。
    怪物掉寶資訊的單例提供者,負責從資料庫載入並快取每隻怪物的掉落表。
    從 WZ 資料解析後的怪物靜態數值快取,描述一種怪物的完整設定。
    地圖上的 NPC 實體,繼承 AbstractLoadedMapleLife 並實作地圖物件生命週期介面。
    怪物單次攻擊行為的詳細設定值物件,對應 WZ attack[N]/info 節點。
    怪物技能的執行時期資料模型,持有技能屬性並負責效果套用。
    怪物技能的單例工廠,負責從資料庫載入並快取所有 MobSkill 實例。
    單一怪物掉落項目的資料持有類別,記錄特定怪物掉落表的一筆設定。
    跨怪物全域掉落項目的資料持有類別,代表適用於所有(或特定大陸)怪物的掉落設定。
    怪物生命週期事件的監聽器介面,供出怪點追蹤怪物死亡並安排下次重生。
    怪物數值覆寫容器,允許在特定情境下取代 WZ 原始 HP、MP 與 EXP 設定。
    以玩家外觀呈現的特殊 NPC,將角色的髮型、臉型、膚色、裝備與寵物鏡像到遊戲地圖上。
    一般怪物出怪點,持有位置、重生計時與嘉年華設定,並負責實際生成 MapleMonster
    區域 Boss 的出怪點,在三個候選位置之一隨機生成 Boss,並以 AtomicBoolean 確保同時只有一隻存活。
    出怪點的抽象基底類別,定義所有出怪邏輯必須實作的合約。