public class CombatBehavior extends Behavior
Modifier and Type | Class and Description |
---|---|
class |
CombatBehavior.AbilityGroup
Definition of the ability conditions
|
class |
CombatBehavior.BehaviorCondition |
class |
CombatBehavior.BehaviorLogicTask
Sheduler
|
class |
CombatBehavior.BehaviorSelector |
class |
CombatBehavior.CombatBehaviorEntry
Combat Behaviors Definitions with conditions
|
class |
CombatBehavior.EffectBehaviorCondition |
class |
CombatBehavior.EventBehaviorCondition |
class |
CombatBehavior.GroupBehaviorConditions
Definition of group of behaviors conditions
Conditions in one group treat as AND separators and between groups of conditions treat as OR separator
|
class |
CombatBehavior.MoveDestinationCheckTask |
class |
CombatBehavior.NumberOfTargetsStateBehaviorCondition |
class |
CombatBehavior.StatBehaviorCondition |
class |
CombatBehavior.TargetCombatStateBehaviorCondition |
class |
CombatBehavior.TargetDeathStateBehaviorCondition |
Behavior.CommandMessage, Behavior.EventMessage, Behavior.LinkedAggroMessage
Modifier and Type | Field and Description |
---|---|
protected boolean |
activated |
int |
behaviorId |
java.util.List<CombatBehavior.CombatBehaviorEntry> |
behaviors |
protected Point |
centerLoc |
Point |
combatStartLoc |
protected Point |
combatStartTargetLoc |
protected OID |
currentTarget |
protected java.lang.Float |
defaultSpeed |
boolean |
evade |
boolean |
goreturn |
boolean |
isDead |
protected OID |
lastDamage |
long |
lastUseAbility |
int |
lastUsedAbility |
protected java.lang.Integer |
reactionRadius |
CombatBehavior.CombatBehaviorEntry |
selectedBehavior |
protected float |
speed |
protected OID |
tagOwner |
LINKED_AGGRO_GET, LINKED_AGGRO_RADIUS, LINKED_AGGRO_SEND, LINKED_CHASING_DISTANCE, lock, MSG_TYPE_COMMAND, MSG_TYPE_EVENT, MSG_TYPE_LINKED_AGGRO, obj
NO_FLAGS, RESPONSE_EXPECTED
Constructor and Description |
---|
CombatBehavior() |
CombatBehavior(SpawnData data) |
Modifier and Type | Method and Description |
---|---|
void |
activate()
Called when a mob respawns, clear all behaviour variables here or they will carry over to new spawns
|
void |
addDamageToMap(OID targetOid,
int amount)
storage value of damage received from the attacker
|
protected void |
addTargetToThreatMap(OID targetOid,
int threatAmount)
Add the amount of threat for the given oid to the threatMap.
|
void |
alertMobDeathStateChange(OID targetOid,
boolean dead) |
void |
alertMobOfDespawn(OID targetOid) |
protected void |
attackTarget(OID targetOid) |
protected void |
BehaviorLogicTaskSchedule(long delay)
Function to schedule
|
void |
behaviorSheduler() |
long |
calculateCastingTime(long time)
Calculating casting time using casting modify statistic and thresholds
|
void |
deactivate() |
int |
getAggroRange() |
float |
getAttackDistance() |
Point |
getCenterLoc() |
int |
getchaseDistance() |
float |
getHitBoxRange() |
boolean |
getInCombat() |
int |
getLinkedAggroRadius() |
float |
getMovementSpeed() |
int |
getReactionRadius() |
boolean |
getReciveLinkedAggro() |
boolean |
getSendLinkedAggro() |
java.util.List<java.lang.Integer> |
getTags() |
protected void |
handleDeath(OID killer)
Handles the dead of the mob.
|
void |
handleMessage(Message msg,
int flags)
Handle message.
|
void |
initialize() |
protected boolean |
removeTargetFromThreatMap(OID targetOid)
Removes the target from the threatMap, then runs the threatUpdated() function again.
|
void |
setAggroRange(int radius) |
void |
setAttackDistance(float radius) |
void |
setCenterLoc(Point loc) |
void |
setchaseDistance(int distance) |
void |
setDeactivateOutOfCombat(boolean deactivate) |
void |
setDefaultMovementSpeed(float speed) |
void |
setHitBoxRange(float radius) |
void |
setLinkedAggroRadius(int radius) |
void |
setLootTables(java.util.HashMap<java.lang.Integer,MobLootTable> lootTables) |
void |
setMovementSpeed(float speed) |
void |
setReactionRadius(int radius) |
void |
setReciveLinkedAggro(boolean value) |
void |
setSendLinkedAggro(boolean value) |
void |
setTags(java.lang.String t) |
protected void |
setTarget(OID targetOid)
Sets the current target for the mob.
|
void |
setTargetThreat(OID targetOid,
int amount)
Use when a player has died to set threat to -1.
|
protected void |
subscribeForTarget(OID oid) |
protected void |
unsubscribeForTarget(OID oid) |
getObjectStub, SendCommand, SendLinkedAggro, setObjectStub
protected float speed
protected java.lang.Float defaultSpeed
protected java.lang.Integer reactionRadius
protected Point centerLoc
public Point combatStartLoc
protected Point combatStartTargetLoc
public boolean evade
public boolean isDead
public boolean goreturn
protected volatile OID currentTarget
protected OID lastDamage
protected OID tagOwner
protected boolean activated
public java.util.List<CombatBehavior.CombatBehaviorEntry> behaviors
public CombatBehavior.CombatBehaviorEntry selectedBehavior
public int behaviorId
public long lastUseAbility
public int lastUsedAbility
public CombatBehavior()
public CombatBehavior(SpawnData data)
public void initialize()
initialize
in class Behavior
protected void subscribeForTarget(OID oid)
protected void unsubscribeForTarget(OID oid)
public void activate()
public void behaviorSheduler()
public void deactivate()
deactivate
in class Behavior
public void handleMessage(Message msg, int flags)
MessageCallback
handleMessage
in interface MessageCallback
handleMessage
in class Behavior
msg
- Message sent from other agent.flags
- Bitwise OR of MessageCallback.NO_FLAGS
, MessageCallback.RESPONSE_EXPECTED
.protected void attackTarget(OID targetOid)
public long calculateCastingTime(long time)
time
- protected void setTarget(OID targetOid)
targetOid
- protected void handleDeath(OID killer)
killer
- public void alertMobDeathStateChange(OID targetOid, boolean dead)
public void alertMobOfDespawn(OID targetOid)
public void setMovementSpeed(float speed)
public float getMovementSpeed()
public void setDefaultMovementSpeed(float speed)
public void setReactionRadius(int radius)
public int getReactionRadius()
public void setCenterLoc(Point loc)
public Point getCenterLoc()
public void setchaseDistance(int distance)
public int getchaseDistance()
public void setAggroRange(int radius)
public int getAggroRange()
public void setHitBoxRange(float radius)
public float getHitBoxRange()
public void setAttackDistance(float radius)
public float getAttackDistance()
public void setSendLinkedAggro(boolean value)
public boolean getSendLinkedAggro()
public void setReciveLinkedAggro(boolean value)
public boolean getReciveLinkedAggro()
public void setLinkedAggroRadius(int radius)
public int getLinkedAggroRadius()
protected void addTargetToThreatMap(OID targetOid, int threatAmount)
targetOid
- threatAmount
- protected boolean removeTargetFromThreatMap(OID targetOid)
targetOid
- public void setTargetThreat(OID targetOid, int amount)
targetOid
- amount
- public void addDamageToMap(OID targetOid, int amount)
targetOid
- (attacker)amount
- of damagepublic boolean getInCombat()
public void setDeactivateOutOfCombat(boolean deactivate)
public void setLootTables(java.util.HashMap<java.lang.Integer,MobLootTable> lootTables)
public void setTags(java.lang.String t)
public java.util.List<java.lang.Integer> getTags()
protected void BehaviorLogicTaskSchedule(long delay)
delay
-