Class MapleMonster
java.lang.Object
server.maps.MapleMapObject
server.maps.AnimatedMapleMapObject
server.life.AbstractLoadedMapleLife
server.life.MapleMonster
地圖上「活的」怪物實體,封裝其執行期狀態、傷害結算與死亡處理。
承襲 AbstractLoadedMapleLife,以唯讀的 MapleMonsterStats 為模板,另持有可變執行期狀態:
現時 hp/mp、所屬 MapleMap、控制者 MapleCharacter
(controller,弱參照)、攻擊者帳本(attackers)、異常狀態(stati)與中毒
(poisons,受 poisonsLock 保護)等。
關鍵職責:
damage(MapleCharacter, long, boolean)結算受擊、累計attackers傷害;isAlive()判定存活。killBy(MapleCharacter, int)處理死亡——在此計算並分配 EXP 給擊殺隊伍(EXP 分配邏輯位於本類別,而非MapleMap),其後由MapleMonsterKillManager觸發掉落。applyStatus(MapleCharacter, MonsterStatusEffect, boolean, long, boolean, MapleStatEffect)對怪物施加MonsterStatusEffect;狀態變動經MobPacket廣播給附近玩家。
-
Constructor Summary
ConstructorsConstructorDescriptionMapleMonster(int id, MapleMonsterStats stats) MapleMonster(MapleMonster monster) -
Method Summary
Modifier and TypeMethodDescriptionvoidaddEmpty()final voidaddListener(MonsterListener listener) final voidapplyMonsterBuff(Map<MonsterStatus, Integer> effect, int skillId, long duration, MobSkill skill, List<Integer> reflection) final voidapplyStatus(MapleCharacter from, MonsterStatusEffect status, boolean poison, long duration, boolean checkboss, MapleStatEffect eff) voidapplyStatus(MonsterStatusEffect status) final voidfinal voidfinal voidcancelStatus(MonsterStatus stat) final voidchangeLevel(int newLevel) final voidchangeLevel(int newLevel, boolean pqMob) final voidchangeLevelmod(int newLevel) final voiddamage(MapleCharacter from, long damage, boolean updateAttackTime) final voiddamage(MapleCharacter from, long damage, boolean updateAttackTime, int lastSkill) final voidfinal voiddispelSkill(MobSkill skillId) voiddoDropItem(long now) final voiddoPoison(MonsterStatusEffect status, WeakReference<MapleCharacter> weakChr) final booleanfinal ArrayList<MonsterStatusEffect> final ArrayList<server.life.MapleMonster.AttackerEntry> final MonsterStatusEffectgetBuff(MonsterStatus status) final intfinal bytefinal ChangeableStatsfinal MapleCharacterfinal ElementalEffectivenessfinal EventInstanceManagerfinal longgetHp()intfinal intfinal longgetLastSkillUsed(int skillId) intintfinal MapleMapgetMap()final intfinal longfinal intfinal intgetMp()byte[]final bytefinal MapleMonstergetStati()final intfinal MapleMonsterStatsgetStats()final intgetStatusSourceID(MonsterStatus status) final intfinal MapleMapObjectTypegetType()final voidfinal booleanhasSkill(int skillId, int level) final voidheal(int hp, int mp, boolean broadcast) final booleanisAlive()final booleanisBuffed(MonsterStatus status) final booleanfinal booleanisFake()final booleanfinal intkillBy(MapleCharacter killer, int lastSkill) final voidkilled()voidregisterKill(long next) final voidsendDestroyData(MapleClient client) final voidsendSpawnData(MapleClient client) final voidsendStatus(MapleClient client) final voidsetCarnivalTeam(byte team) final voidsetController(MapleCharacter controller) final voidsetControllerHasAggro(boolean controllerHasAggro) final voidsetEventInstance(EventInstanceManager eventInstance) final voidsetFake(boolean fake) final voidsetHp(long hp) final voidsetLastNode(int lastNode) final voidsetLastSkillUsed(int skillId, long now, long cooltime) voidsetLinkCID(int lc) voidsetLinkOid(int lo) final voidfinal voidsetMp(int mp) voidsetNodePacket(byte[] np) final voidsetOverrideStats(OverrideMonsterStats ostats) final voidsetSponge(MapleMonster mob) final voidsetStolen(int s) final voidsetTempEffectiveness(Element e, long milli) booleanshouldDrop(long now) booleanshouldKill(long now) final voidspawnRevives(MapleMap map) final voidfinal voidswitchController(MapleCharacter newController, boolean immediateAggro) final StringtoString()Methods inherited from class AbstractLoadedMapleLife
getCType, getCy, getF, getFh, getId, getMTime, getRx0, getRx1, isHidden, originFh, setCType, setCy, setF, setFh, setHide, setMTime, setRx0, setRx1Methods inherited from class AnimatedMapleMapObject
getFacingDirection, getStance, isFacingLeft, setStanceMethods inherited from class MapleMapObject
getObjectId, getPosition, getRange, getTruePosition, setObjectId, setPosition
-
Constructor Details
-
MapleMonster
-
MapleMonster
-
-
Method Details
-
changeLevelmod
public final void changeLevelmod(int newLevel) -
getAttackers
-
getStats
-
disableDrops
public final void disableDrops() -
dropsDisabled
public final boolean dropsDisabled() -
setSponge
-
setMap
-
getHp
public final long getHp() -
setHp
public final void setHp(long hp) -
getChangedStats
-
getMobMaxHp
public final long getMobMaxHp() -
getMp
public final int getMp() -
setMp
public final void setMp(int mp) -
getMobMaxMp
public final int getMobMaxMp() -
getMobExp
public final int getMobExp() -
setOverrideStats
-
changeLevel
public final void changeLevel(int newLevel) -
changeLevel
public final void changeLevel(int newLevel, boolean pqMob) -
getSponge
-
damage
-
damage
-
getHPPercent
public int getHPPercent() -
heal
public final void heal(int hp, int mp, boolean broadcast) -
killed
public final void killed() -
killBy
-
spawnRevives
-
isAlive
public final boolean isAlive() -
setCarnivalTeam
public final void setCarnivalTeam(byte team) -
getCarnivalTeam
public final byte getCarnivalTeam() -
getController
-
setController
-
switchController
-
addListener
-
isControllerHasAggro
public final boolean isControllerHasAggro() -
setControllerHasAggro
public final void setControllerHasAggro(boolean controllerHasAggro) -
sendStatus
-
sendSpawnData
- Specified by:
sendSpawnDatain classMapleMapObject
-
sendDestroyData
- Specified by:
sendDestroyDatain classMapleMapObject
-
toString
-
getType
- Specified by:
getTypein classMapleMapObject
-
getEventInstance
-
setEventInstance
-
getStatusSourceID
-
getEffectiveness
-
applyStatus
public final void applyStatus(MapleCharacter from, MonsterStatusEffect status, boolean poison, long duration, boolean checkboss, MapleStatEffect eff) -
applyStatus
-
dispelSkill
-
applyMonsterBuff
-
setTempEffectiveness
-
isBuffed
-
getBuff
-
getStatiSize
public final int getStatiSize() -
getAllBuffs
-
setFake
public final void setFake(boolean fake) -
isFake
public final boolean isFake() -
getMap
-
getSkills
-
hasSkill
public final boolean hasSkill(int skillId, int level) -
getLastSkillUsed
public final long getLastSkillUsed(int skillId) -
setLastSkillUsed
public final void setLastSkillUsed(int skillId, long now, long cooltime) -
getNoSkills
public final byte getNoSkills() -
isFirstAttack
public final boolean isFirstAttack() -
getBuffToGive
public final int getBuffToGive() -
doPoison
-
getLinkOid
public int getLinkOid() -
setLinkOid
public void setLinkOid(int lo) -
getStati
-
addEmpty
public void addEmpty() -
getStolen
public final int getStolen() -
setStolen
public final void setStolen(int s) -
handleSteal
-
setLastNode
public final void setLastNode(int lastNode) -
getLastNode
public final int getLastNode() -
cancelStatus
-
cancelSingleStatus
-
cancelDropItem
public final void cancelDropItem() -
startDropItemSchedule
public final void startDropItemSchedule() -
shouldDrop
public boolean shouldDrop(long now) -
doDropItem
public void doDropItem(long now) -
getNodePacket
public byte[] getNodePacket() -
setNodePacket
public void setNodePacket(byte[] np) -
registerKill
public void registerKill(long next) -
shouldKill
public boolean shouldKill(long now) -
getLinkCID
public int getLinkCID() -
setLinkCID
public void setLinkCID(int lc)
-