Atavism Version 2018.1AGIS API

atavism.agis.plugins
Class CombatPlugin

java.lang.Object
  extended by atavism.server.engine.EnginePlugin
      extended by atavism.agis.plugins.CombatPlugin
All Implemented Interfaces:
MessageCallback, StatusMapCallback

public class CombatPlugin
extends EnginePlugin


Nested Class Summary
 class CombatPlugin.testmsgTimer
           
 
Nested classes/interfaces inherited from class atavism.server.engine.EnginePlugin
EnginePlugin.DeleteHook, EnginePlugin.DeleteSubObjHook, EnginePlugin.GenerateSubObjectHook, EnginePlugin.GetPropertyMessage, EnginePlugin.GetPropertyNamesMessage, EnginePlugin.LoadHook, EnginePlugin.LoadSubObjHook, EnginePlugin.PluginActivateHook, EnginePlugin.PluginStateMessage, EnginePlugin.SaveHook, EnginePlugin.SaveSubObjHook, EnginePlugin.SetPropertyMessage, EnginePlugin.SubObjData, EnginePlugin.TransferFilter, EnginePlugin.TransferObjectMessage, EnginePlugin.UnloadHook, EnginePlugin.UnloadSubObjHook
 
Field Summary
static int ATTACK_ABILITY
           
static java.lang.String ATTACK_SPEED_STAT
           
protected static java.util.Map<OID,java.util.Set<OID>> autoAttackReverseMap
           
protected static java.util.Set<AgisStatDef> baseStats
           
static java.lang.String COMBAT_PLUGIN_NAME
           
static long COMBAT_TIMEOUT
           
static java.lang.String DAMAGE_DEALT_MODIFIER
           
static int DAMAGE_HITROLL_MODIFIER
           
static java.lang.String DAMAGE_TAKEN_MODIFIER
           
static java.util.HashMap<java.lang.String,java.lang.String> DAMAGE_TYPES
           
static int DEFAULT_MOVEMENT_SPEED
           
static boolean EXP_BASED_ON_DAMAGE_DEALT
           
static int EXP_LOST_FROM_MOB_DEATH
           
static java.lang.String FALL_DAMAGE_STAT
           
static float FALL_DEATH_HEIGHT
           
static float FALL_SAFE_HEIGHT
           
static boolean FLAT_ARMOR_DAMAGE_CALCULATIONS
           
static int FLATRESIST_BASE
           
static int HEALTH_BASE
           
static java.lang.String IMMOBILIZE_RESISTANCE_STAT
           
protected static java.util.Map<OID,OID> lastAttackerMap
           
static java.lang.String LEVEL_STAT
           
protected static java.util.concurrent.locks.Lock lock
           
protected static Logger log
           
static java.lang.String MAGICAL_ACCURACY_STAT
           
static boolean MAGICAL_ATTACKS_USE_WEAPON_DAMAGE
           
static java.lang.String MAGICAL_CRITIC_STAT
           
static java.lang.String MAGICAL_EVASION_STAT
           
static java.lang.String MAGICAL_POWER_STAT
           
static int MANA_BASE
           
static boolean MOBS_STOP_TO_ATTACK
           
static java.lang.String PARRY_STAT
           
static int PERCENTRESIST_BASE
           
static java.lang.String PHYSICAL_ACCURACY_STAT
           
static java.lang.String PHYSICAL_CRITIC_STAT
           
static java.lang.String PHYSICAL_EVASION_STAT
           
static java.lang.String PHYSICAL_POWER_STAT
           
static int PLAYER_ATTACK_ABILITY
           
static int PREMIUM_BONUS_EXP
           
static int PREMIUM_EXP_LOST_FROM_MOB_DEATH
           
static java.lang.String PROP_HITBOX
           
static java.util.Set<java.lang.String> publicStats
           
static boolean RANGE_CHECK_VERTICAL
           
static boolean RELEASE_ON_LOGIN
           
static int RESISTANCE_STAT_MAX
           
static boolean RESPAWN_IN_DUNGEON
           
static java.lang.String SLEEP_RESISTANCE_STAT
           
static java.lang.String SLOWDOWN_RESISTANCE_STAT
           
static int SPIRIT_EFFECT
           
static int STAT_BASE
           
static java.util.LinkedList<java.lang.String> STAT_LIST
           
protected static java.util.Map<java.lang.String,AgisStatDef> statDefMap
           
static java.lang.String STUN_RESISTANCE_STAT
           
static boolean USE_PLAYER_SET_RESPAWN_LOCATIONS
           
static boolean WEAPON_REQ_USES_SHARED_TYPES
           
static java.lang.String WEIGHT_STAT
           
 
Fields inherited from class atavism.server.engine.EnginePlugin
deleteSubObjectSubscription, dumpAllThreadSubscription, dumpAllThreadSubscriptionLock, loadSubObjectSubscription, MSG_TYPE_DUMP_ALL_THREAD_STACKS, MSG_TYPE_GET_PROPERTY, MSG_TYPE_GET_PROPERTY_NAMES, MSG_TYPE_PLUGIN_STATE, MSG_TYPE_SET_PROPERTY, MSG_TYPE_SET_PROPERTY_NONBLOCK, MSG_TYPE_TRANSFER_OBJECT, pluginStateSubscription, propertySubscription, saveSubObjectSubscription, selectionFilter, selectionSubscription, setSubObjectPersistenceSubscription, subObjectSubscription, unloadSubObjectSubscription
 
Fields inherited from interface atavism.msgsys.MessageCallback
NO_FLAGS, RESPONSE_EXPECTED
 
Constructor Summary
CombatPlugin()
           
 
Method Summary
static void addAttacker(OID target, OID attacker)
           
 void applySkillTraining(OID playerOid, int skill)
           
static void clearAttackers(OID target)
           
protected  void createNewSkillInfo(CombatInfo info, OID mobOid, java.util.ArrayList<java.lang.Integer> skills)
          Creates the skillInfo object for the CombatInfo object based on the skill templates loaded in from the database.
static java.util.Set<OID> getAttackers(OID target)
           
static AgisStatDef getBaseStatDef(java.lang.String name)
           
static CombatInfo getCombatInfo(OID oid)
           
static java.util.LinkedList<Cooldown> getCooldowns(OID characterOID)
           
 java.util.HashMap<java.lang.String,AgisStat> getStartingStats(int level, boolean isMob, java.util.HashMap<java.lang.String,java.lang.Integer> statOverrides)
          Sets up the starting stats for players and mobs.
static void handleDeath(CombatInfo obj)
          This will handle the death of a player or mob.
static boolean isPlayerAlive(OID playerOid)
           
 void loadCombatDataFromDatabase()
           
static AgisStatDef lookupStatDef(java.lang.String name)
           
 void onActivate()
          for developers extending the EnginePlugin object, it may be easier to use the onActivate() method which gets called when the plugin is being activated by the Engine.
static void registerCombatInfo(CombatInfo cinfo)
           
protected  void registerHooks()
           
static void registerStat(AgisStatDef stat)
           
static void registerStat(AgisStatDef stat, boolean isPublic)
           
static void registerStat(AgisStatDef stat, boolean isPublic, java.lang.String... dependencies)
           
static void removeAttacker(OID target, OID attacker)
           
static void resolveAutoAttack(CombatInfo info)
           
static void saveCooldowns(OID characterOID, java.util.LinkedList<Cooldown> cooldownList)
           
static void sendAbilityUpdate(CombatInfo info)
           
static void setDeathStatValues(CombatInfo info)
           
static void setReleaseStatValues(CombatInfo info)
           
 
Methods inherited from class atavism.server.engine.EnginePlugin
activate, createMBeanInstance, createSubscription, getHookManager, getMessageHandler, getName, getObjectLockManager, getObjectProperties, getObjectProperties, getObjectProperty, getObjectPropertyNames, getPercentCPULoad, getPluginAvailable, getPluginInfo, getPluginNamespaces, getPluginState, getPluginStatus, getPluginType, getPropertyImpl, getPropertyNamesImpl, getStatusMap, handleMessage, handleMessageImpl, logDepsOutstanding, processKeysAndValues, registerActivateHook, registerDeleteHook, registerLoadHook, registerPluginNamespace, registerPluginNamespaces, registerPluginNamespaces, registerPluginNamespaces, registerSaveHook, registerTransferHook, registerUnloadHook, sendSubObjectResponse, sendSubObjectResponse, sendSubObjectResponse, setMessageHandler, setName, setObjectProperties, setObjectProperties, setObjectProperties, setObjectPropertiesNoResponse, setObjectPropertiesNoResponse, setObjectPropertiesNoResponse, setObjectProperty, setObjectPropertyNoResponse, setPercentCPULoad, setPluginAvailable, setPluginInfo, setPluginType, setPropertyImpl, transferObject
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

COMBAT_PLUGIN_NAME

public static java.lang.String COMBAT_PLUGIN_NAME

log

protected static final Logger log

lock

protected static java.util.concurrent.locks.Lock lock

autoAttackReverseMap

protected static java.util.Map<OID,java.util.Set<OID>> autoAttackReverseMap

lastAttackerMap

protected static java.util.Map<OID,OID> lastAttackerMap

statDefMap

protected static java.util.Map<java.lang.String,AgisStatDef> statDefMap

baseStats

protected static java.util.Set<AgisStatDef> baseStats

publicStats

public static java.util.Set<java.lang.String> publicStats

STAT_BASE

public static final int STAT_BASE
See Also:
Constant Field Values

HEALTH_BASE

public static final int HEALTH_BASE
See Also:
Constant Field Values

MANA_BASE

public static final int MANA_BASE
See Also:
Constant Field Values

FLATRESIST_BASE

public static final int FLATRESIST_BASE
See Also:
Constant Field Values

PERCENTRESIST_BASE

public static final int PERCENTRESIST_BASE
See Also:
Constant Field Values

RESISTANCE_STAT_MAX

public static int RESISTANCE_STAT_MAX

DAMAGE_HITROLL_MODIFIER

public static int DAMAGE_HITROLL_MODIFIER

DAMAGE_DEALT_MODIFIER

public static java.lang.String DAMAGE_DEALT_MODIFIER

DAMAGE_TAKEN_MODIFIER

public static java.lang.String DAMAGE_TAKEN_MODIFIER

ATTACK_SPEED_STAT

public static java.lang.String ATTACK_SPEED_STAT

PHYSICAL_POWER_STAT

public static java.lang.String PHYSICAL_POWER_STAT

MAGICAL_POWER_STAT

public static java.lang.String MAGICAL_POWER_STAT

PHYSICAL_ACCURACY_STAT

public static java.lang.String PHYSICAL_ACCURACY_STAT

MAGICAL_ACCURACY_STAT

public static java.lang.String MAGICAL_ACCURACY_STAT

PHYSICAL_CRITIC_STAT

public static java.lang.String PHYSICAL_CRITIC_STAT

MAGICAL_CRITIC_STAT

public static java.lang.String MAGICAL_CRITIC_STAT

PHYSICAL_EVASION_STAT

public static java.lang.String PHYSICAL_EVASION_STAT

MAGICAL_EVASION_STAT

public static java.lang.String MAGICAL_EVASION_STAT

PARRY_STAT

public static java.lang.String PARRY_STAT

SLEEP_RESISTANCE_STAT

public static java.lang.String SLEEP_RESISTANCE_STAT

STUN_RESISTANCE_STAT

public static java.lang.String STUN_RESISTANCE_STAT

SLOWDOWN_RESISTANCE_STAT

public static java.lang.String SLOWDOWN_RESISTANCE_STAT

IMMOBILIZE_RESISTANCE_STAT

public static java.lang.String IMMOBILIZE_RESISTANCE_STAT

WEIGHT_STAT

public static java.lang.String WEIGHT_STAT

LEVEL_STAT

public static java.lang.String LEVEL_STAT

DAMAGE_TYPES

public static java.util.HashMap<java.lang.String,java.lang.String> DAMAGE_TYPES

STAT_LIST

public static java.util.LinkedList<java.lang.String> STAT_LIST

PROP_HITBOX

public static final java.lang.String PROP_HITBOX
See Also:
Constant Field Values

RANGE_CHECK_VERTICAL

public static boolean RANGE_CHECK_VERTICAL

MOBS_STOP_TO_ATTACK

public static boolean MOBS_STOP_TO_ATTACK

SPIRIT_EFFECT

public static int SPIRIT_EFFECT

RELEASE_ON_LOGIN

public static boolean RELEASE_ON_LOGIN

MAGICAL_ATTACKS_USE_WEAPON_DAMAGE

public static boolean MAGICAL_ATTACKS_USE_WEAPON_DAMAGE

EXP_BASED_ON_DAMAGE_DEALT

public static boolean EXP_BASED_ON_DAMAGE_DEALT

WEAPON_REQ_USES_SHARED_TYPES

public static boolean WEAPON_REQ_USES_SHARED_TYPES

COMBAT_TIMEOUT

public static long COMBAT_TIMEOUT

USE_PLAYER_SET_RESPAWN_LOCATIONS

public static boolean USE_PLAYER_SET_RESPAWN_LOCATIONS

RESPAWN_IN_DUNGEON

public static boolean RESPAWN_IN_DUNGEON

FLAT_ARMOR_DAMAGE_CALCULATIONS

public static boolean FLAT_ARMOR_DAMAGE_CALCULATIONS

FALL_SAFE_HEIGHT

public static float FALL_SAFE_HEIGHT

FALL_DEATH_HEIGHT

public static float FALL_DEATH_HEIGHT

FALL_DAMAGE_STAT

public static java.lang.String FALL_DAMAGE_STAT

EXP_LOST_FROM_MOB_DEATH

public static int EXP_LOST_FROM_MOB_DEATH

PREMIUM_EXP_LOST_FROM_MOB_DEATH

public static int PREMIUM_EXP_LOST_FROM_MOB_DEATH

PREMIUM_BONUS_EXP

public static int PREMIUM_BONUS_EXP

ATTACK_ABILITY

public static final int ATTACK_ABILITY
See Also:
Constant Field Values

PLAYER_ATTACK_ABILITY

public static final int PLAYER_ATTACK_ABILITY
See Also:
Constant Field Values

DEFAULT_MOVEMENT_SPEED

public static final int DEFAULT_MOVEMENT_SPEED
See Also:
Constant Field Values
Constructor Detail

CombatPlugin

public CombatPlugin()
Method Detail

onActivate

public void onActivate()
Description copied from class: EnginePlugin
for developers extending the EnginePlugin object, it may be easier to use the onActivate() method which gets called when the plugin is being activated by the Engine. this is an alternative to calling registerActivateHook()

Overrides:
onActivate in class EnginePlugin

loadCombatDataFromDatabase

public void loadCombatDataFromDatabase()

registerHooks

protected void registerHooks()

getCooldowns

public static java.util.LinkedList<Cooldown> getCooldowns(OID characterOID)

saveCooldowns

public static void saveCooldowns(OID characterOID,
                                 java.util.LinkedList<Cooldown> cooldownList)

resolveAutoAttack

public static void resolveAutoAttack(CombatInfo info)

sendAbilityUpdate

public static void sendAbilityUpdate(CombatInfo info)

getCombatInfo

public static CombatInfo getCombatInfo(OID oid)

registerCombatInfo

public static void registerCombatInfo(CombatInfo cinfo)

createNewSkillInfo

protected void createNewSkillInfo(CombatInfo info,
                                  OID mobOid,
                                  java.util.ArrayList<java.lang.Integer> skills)
Creates the skillInfo object for the CombatInfo object based on the skill templates loaded in from the database.

Parameters:
info -
mobOid -
race -

setReleaseStatValues

public static void setReleaseStatValues(CombatInfo info)

setDeathStatValues

public static void setDeathStatValues(CombatInfo info)

handleDeath

public static void handleDeath(CombatInfo obj)
This will handle the death of a player or mob. It may try to activate any after-death effects and it will also send out messages for other death-related events.

Parameters:
obj - : the combatInfo object for the player or mob that died

addAttacker

public static void addAttacker(OID target,
                               OID attacker)

removeAttacker

public static void removeAttacker(OID target,
                                  OID attacker)

getAttackers

public static java.util.Set<OID> getAttackers(OID target)

clearAttackers

public static void clearAttackers(OID target)

registerStat

public static void registerStat(AgisStatDef stat)

registerStat

public static void registerStat(AgisStatDef stat,
                                boolean isPublic)

registerStat

public static void registerStat(AgisStatDef stat,
                                boolean isPublic,
                                java.lang.String... dependencies)

lookupStatDef

public static AgisStatDef lookupStatDef(java.lang.String name)

applySkillTraining

public void applySkillTraining(OID playerOid,
                               int skill)

getBaseStatDef

public static AgisStatDef getBaseStatDef(java.lang.String name)

getStartingStats

public java.util.HashMap<java.lang.String,AgisStat> getStartingStats(int level,
                                                                     boolean isMob,
                                                                     java.util.HashMap<java.lang.String,java.lang.Integer> statOverrides)
Sets up the starting stats for players and mobs. I'm not totally happy with this setup.

Parameters:
level -
isMob -
baseHealth -
healthMod -
baseMana -
manaMod -
Returns:

isPlayerAlive

public static boolean isPlayerAlive(OID playerOid)


Copyright © 2018 Dragonsan Studios Sp. z o.o.