java.lang.Object
com.realtime.crossfire.jxclient.stats.Stats

public class Stats extends Object
This is the representation of all the statistics of a player, like its speed or its experience.

Constants named C_STAT_xxx are client-sided; * constants named CS_STAT_xxx are stats as sent by the server.

  • Field Details

    • CS_STAT_HP

      public static final int CS_STAT_HP
      The Hit Points stat.
      See Also:
    • CS_STAT_MAXHP

      public static final int CS_STAT_MAXHP
      The Maximum Hit Points stat.
      See Also:
    • CS_STAT_SP

      public static final int CS_STAT_SP
      The Spell Points stat.
      See Also:
    • CS_STAT_MAXSP

      public static final int CS_STAT_MAXSP
      The Maximum Spell Points stat.
      See Also:
    • CS_STAT_STR

      public static final int CS_STAT_STR
      The Strength Primary stat.
      See Also:
    • CS_STAT_INT

      public static final int CS_STAT_INT
      The Intelligence Primary stat.
      See Also:
    • CS_STAT_WIS

      public static final int CS_STAT_WIS
      The Wisdom Primary stat.
      See Also:
    • CS_STAT_DEX

      public static final int CS_STAT_DEX
      The Dexterity Primary stat.
      See Also:
    • CS_STAT_CON

      public static final int CS_STAT_CON
      The Constitution Primary stat.
      See Also:
    • CS_STAT_CHA

      public static final int CS_STAT_CHA
      The Charisma Primary stat.
      See Also:
    • CS_STAT_EXP

      public static final int CS_STAT_EXP
      The Global Experience (32bit encoding) stat.
      See Also:
    • C_STAT_EXP_NEXT_LEVEL

      public static final int C_STAT_EXP_NEXT_LEVEL
      The global experience needed to reach next level stat.
      See Also:
    • CS_STAT_LEVEL

      public static final int CS_STAT_LEVEL
      The Global Level stat.
      See Also:
    • CS_STAT_WC

      public static final int CS_STAT_WC
      The Weapon Class stat.
      See Also:
    • CS_STAT_AC

      public static final int CS_STAT_AC
      The Armor Class stat.
      See Also:
    • CS_STAT_DAM

      public static final int CS_STAT_DAM
      The Damage stat.
      See Also:
    • CS_STAT_ARMOUR

      public static final int CS_STAT_ARMOUR
      The Armour stat.
      See Also:
    • CS_STAT_SPEED

      public static final int CS_STAT_SPEED
      The Speed stat.
      See Also:
    • CS_STAT_FOOD

      public static final int CS_STAT_FOOD
      The Food stat.
      See Also:
    • C_STAT_LOWFOOD

      public static final int C_STAT_LOWFOOD
      The Low Food indicator. It ranges from 0 (ok) to 1 (low food).
      See Also:
    • CS_STAT_WEAP_SP

      public static final int CS_STAT_WEAP_SP
      The Weapon Speed stat.
      See Also:
    • CS_STAT_RANGE

      public static final int CS_STAT_RANGE
      The Range stat - this is what is currently readied by the player to fire.
      See Also:
    • CS_STAT_TITLE

      public static final int CS_STAT_TITLE
      The Title stat.
      See Also:
    • CS_STAT_POW

      public static final int CS_STAT_POW
      The Power Primary stat.
      See Also:
    • CS_STAT_GRACE

      public static final int CS_STAT_GRACE
      The Grace stat.
      See Also:
    • CS_STAT_MAXGRACE

      public static final int CS_STAT_MAXGRACE
      The Maximum Grace stat.
      See Also:
    • CS_STAT_FLAGS

      public static final int CS_STAT_FLAGS
      The various flags used in stats.
      See Also:
    • CS_STAT_WEIGHT_LIM

      public static final int CS_STAT_WEIGHT_LIM
      The Weight Limit stat.
      See Also:
    • C_STAT_WEIGHT

      public static final int C_STAT_WEIGHT
      The character's weight.
      See Also:
    • CS_STAT_EXP64

      public static final int CS_STAT_EXP64
      The Global Experience (64bit encoding) stat.
      See Also:
    • CS_STAT_SPELL_ATTUNE

      public static final int CS_STAT_SPELL_ATTUNE
      Attuned spell paths of a spell.
      See Also:
    • CS_STAT_SPELL_REPEL

      public static final int CS_STAT_SPELL_REPEL
      Repelled spell paths of a spell.
      See Also:
    • CS_STAT_SPELL_DENY

      public static final int CS_STAT_SPELL_DENY
      Denied spell paths of a spell.
      See Also:
    • CS_STAT_RACE_STR

      public static final int CS_STAT_RACE_STR
      The race's maximum strength primary stat.
      See Also:
    • CS_STAT_RACE_INT

      public static final int CS_STAT_RACE_INT
      The race's maximum intelligence primary stat.
      See Also:
    • CS_STAT_RACE_WIS

      public static final int CS_STAT_RACE_WIS
      The race's maximum wisdom primary stat.
      See Also:
    • CS_STAT_RACE_DEX

      public static final int CS_STAT_RACE_DEX
      The race's maximum dexterity primary stat.
      See Also:
    • CS_STAT_RACE_CON

      public static final int CS_STAT_RACE_CON
      The race's maximum constitution primary stat.
      See Also:
    • CS_STAT_RACE_CHA

      public static final int CS_STAT_RACE_CHA
      The race's maximum charisma primary stat.
      See Also:
    • CS_STAT_RACE_POW

      public static final int CS_STAT_RACE_POW
      The race's maximum power primary stat.
      See Also:
    • CS_STAT_BASE_STR

      public static final int CS_STAT_BASE_STR
      The strength primary stat without boosts or depletions.
      See Also:
    • CS_STAT_BASE_INT

      public static final int CS_STAT_BASE_INT
      The integer primary stat without boosts or depletions.
      See Also:
    • CS_STAT_BASE_WIS

      public static final int CS_STAT_BASE_WIS
      The wisdom primary stat without boosts or depletions.
      See Also:
    • CS_STAT_BASE_DEX

      public static final int CS_STAT_BASE_DEX
      The dexterity primary stat without boosts or depletions.
      See Also:
    • CS_STAT_BASE_CON

      public static final int CS_STAT_BASE_CON
      The constitution primary stat without boosts or depletions.
      See Also:
    • CS_STAT_BASE_CHA

      public static final int CS_STAT_BASE_CHA
      The charisma primary stat without boosts or depletions.
      See Also:
    • CS_STAT_BASE_POW

      public static final int CS_STAT_BASE_POW
      The power primary stat without boosts or depletions.
      See Also:
    • CS_STAT_APPLIED_STR

      public static final int CS_STAT_APPLIED_STR
      The strength primary stat changes due to gear or skills.
      See Also:
    • CS_STAT_APPLIED_INT

      public static final int CS_STAT_APPLIED_INT
      The integer primary stat changes due to gear or skills.
      See Also:
    • CS_STAT_APPLIED_WIS

      public static final int CS_STAT_APPLIED_WIS
      The wisdom primary stat changes due to gear or skills.
      See Also:
    • CS_STAT_APPLIED_DEX

      public static final int CS_STAT_APPLIED_DEX
      The dexterity primary stat changes due to gear or skills.
      See Also:
    • CS_STAT_APPLIED_CON

      public static final int CS_STAT_APPLIED_CON
      The constitution primary stat changes due to gear or skills.
      See Also:
    • CS_STAT_APPLIED_CHA

      public static final int CS_STAT_APPLIED_CHA
      The charisma primary stat changes due to gear or skills.
      See Also:
    • CS_STAT_APPLIED_POW

      public static final int CS_STAT_APPLIED_POW
      The power primary stat changes due to gear or skills.
      See Also:
    • CS_STAT_GOLEM_HP

      public static final int CS_STAT_GOLEM_HP
      The golem's hitpoints, 0 if no golem.
      See Also:
    • CS_STAT_GOLEM_MAXHP

      public static final int CS_STAT_GOLEM_MAXHP
      The golem's maximum hitpoints, 0 if no golem.
      See Also:
    • CS_STAT_CHARACTER_FLAGS

      public static final int CS_STAT_CHARACTER_FLAGS
      Flags the character's current state.
      See Also:
    • CS_STAT_GOD_NAME

      public static final int CS_STAT_GOD_NAME
      The character's god or NO_GOD_NAME if he has none.
      See Also:
    • CS_STAT_OVERLOAD

      public static final int CS_STAT_OVERLOAD
      Indicates how much the character is overloaded: 0=not overloaded, 1=overloaded.
      See Also:
    • CS_STAT_ITEM_POWER

      public static final int CS_STAT_ITEM_POWER
      The maximum item power the character can handle.
      See Also:
    • CS_STAT_RESIST_START

      public static final int CS_STAT_RESIST_START
      Beginning index of the resistances.
      See Also:
    • CS_STAT_RESIST_END

      public static final int CS_STAT_RESIST_END
      End index of the resistances.
      See Also:
    • CS_STAT_RES_PHYS

      public static final int CS_STAT_RES_PHYS
      Resistance to physical attacks.
      See Also:
    • CS_STAT_RES_MAG

      public static final int CS_STAT_RES_MAG
      Resistance to magical attacks.
      See Also:
    • CS_STAT_RES_FIRE

      public static final int CS_STAT_RES_FIRE
      Resistance to fire.
      See Also:
    • CS_STAT_RES_ELEC

      public static final int CS_STAT_RES_ELEC
      Resistance to electricity.
      See Also:
    • CS_STAT_RES_COLD

      public static final int CS_STAT_RES_COLD
      Resistance to cold.
      See Also:
    • CS_STAT_RES_CONF

      public static final int CS_STAT_RES_CONF
      Resistance to confusion.
      See Also:
    • CS_STAT_RES_ACID

      public static final int CS_STAT_RES_ACID
      Resistance to acid.
      See Also:
    • CS_STAT_RES_DRAIN

      public static final int CS_STAT_RES_DRAIN
      Resistance to drain life.
      See Also:
    • CS_STAT_RES_GHOSTHIT

      public static final int CS_STAT_RES_GHOSTHIT
      Resistance to ghost hit.
      See Also:
    • CS_STAT_RES_POISON

      public static final int CS_STAT_RES_POISON
      Resistance to poison.
      See Also:
    • CS_STAT_RES_SLOW

      public static final int CS_STAT_RES_SLOW
      Resistance to slowness.
      See Also:
    • CS_STAT_RES_PARA

      public static final int CS_STAT_RES_PARA
      Resistance to paralysis.
      See Also:
    • CS_STAT_RES_TURN_UNDEAD

      public static final int CS_STAT_RES_TURN_UNDEAD
      Resistance to turn undead.
      See Also:
    • CS_STAT_RES_FEAR

      public static final int CS_STAT_RES_FEAR
      Resistance to fear.
      See Also:
    • CS_STAT_RES_DEPLETE

      public static final int CS_STAT_RES_DEPLETE
      Resistance to depletion.
      See Also:
    • CS_STAT_RES_DEATH

      public static final int CS_STAT_RES_DEATH
      Resistance to death.
      See Also:
    • CS_STAT_RES_HOLYWORD

      public static final int CS_STAT_RES_HOLYWORD
      Resistance to holy word.
      See Also:
    • CS_STAT_RES_BLIND

      public static final int CS_STAT_RES_BLIND
      Resistance to blindness.
      See Also:
    • FLOAT_MULTI

      public static final int FLOAT_MULTI
      Factor used to convert float to int values.
      See Also:
    • RESIST_TYPES

      public static final int RESIST_TYPES
      The total number of resistances.
      See Also:
    • C_STAT_POISONED

      public static final int C_STAT_POISONED
      The "is poisoned" indicator. It ranges from 0 (not poisoned) to 1 (poisoned).
      See Also:
    • C_STAT_STARVING

      public static final int C_STAT_STARVING
      The "is starving" indicator. It ranges from 0 (not starving) to 1 (starving).
      See Also:
    • CS_NUM_SKILLS

      public static final int CS_NUM_SKILLS
      CS_NUM_SKILLS does not match how many skills there really are - instead, it is used as a range of values so that the client can have some idea how many skill categories there may be.
      See Also:
    • C_STAT_CONFUSED

      public static final int C_STAT_CONFUSED
      The "is confused" indicator. It ranges from 0 (not confused) to 1 (confused).
      See Also:
    • C_STAT_BLIND

      public static final int C_STAT_BLIND
      The "is blind" indicator. It ranges from 0 (not blind) to 1 (blind).
      See Also:
    • C_STAT_XRAY

      public static final int C_STAT_XRAY
      The "has xray vision" indicator. It ranges from 0 (no xray vision) to 1 (xray vision).
      See Also:
    • C_STAT_DISEASED

      public static final int C_STAT_DISEASED
      The "is diseased" indicator. It ranges from 0 (not diseased) to 1 (diseased).
      See Also:
    • C_STAT_NOT_PERFECT

      public static final int C_STAT_NOT_PERFECT
      The "is not perfect" indicator. It ranges from 0 (perfect) to 1 (not perfect).
      See Also:
    • C_STAT_HOSTILE

      public static final int C_STAT_HOSTILE
      The "is hostile" indicator. It ranges from 0 (not hostile) to 1 (hostile).
      See Also:
    • C_STAT_STEALTHY

      public static final int C_STAT_STEALTHY
      The "is stealthy" indicator. It ranges from 0 (not stealthy) to 1 (is stealthy).
      See Also:
    • C_STAT_PARALYZED

      public static final int C_STAT_PARALYZED
      The "is paralyzed" indicator. It ranges from 0 (not paralyzed) to 1 (paralyzed).
      See Also:
    • C_STAT_WIZARD

      public static final int C_STAT_WIZARD
      The "is DM" indicator. It ranges from 0 (no DM) to 1 (DM).
      See Also:
    • C_STAT_CURRENT_SKILL

      public static final int C_STAT_CURRENT_SKILL
      The name of the current skill.
      See Also:
    • CS_STAT_SKILLINFO

      public static final int CS_STAT_SKILLINFO
      CS_STAT_SKILLINFO is used as the starting index point. Skill number->name map is generated dynamically for the client, so a bunch of entries will be used here.
      See Also:
    • CF_CONFUSED

      public static final int CF_CONFUSED
      The CS_STAT_CHARACTER_FLAGS bit for a confused character.
      See Also:
    • CF_POISONED

      public static final int CF_POISONED
      The CS_STAT_CHARACTER_FLAGS bit for a poisoned character.
      See Also:
    • CF_BLIND

      public static final int CF_BLIND
      The CS_STAT_CHARACTER_FLAGS bit for a lind character.
      See Also:
    • CF_XRAY

      public static final int CF_XRAY
      The CS_STAT_CHARACTER_FLAGS bit for a character having x-ray vision.
      See Also:
    • CF_DISEASED

      public static final int CF_DISEASED
      The CS_STAT_CHARACTER_FLAGS bit for a character having a disease.
      See Also:
    • CF_NOT_PERFECT

      public static final int CF_NOT_PERFECT
      The CS_STAT_CHARACTER_FLAGS bit for a character that needs to drink an improvement potion.
      See Also:
    • CF_HOSTILE

      public static final int CF_HOSTILE
      The CS_STAT_CHARACTER_FLAGS bit for a character that has hostile mode enabled.
      See Also:
    • CF_STEALTHY

      public static final int CF_STEALTHY
      The CS_STAT_CHARACTER_FLAGS bit for a character that is stealthy.
      See Also:
    • CF_PARALYZED

      public static final int CF_PARALYZED
      The CS_STAT_CHARACTER_FLAGS bit for a character that is paralyzed.
      See Also:
    • CF_WIZARD

      public static final int CF_WIZARD
      The CS_STAT_CHARACTER_FLAGS bit for a character that is a DM.
      See Also:
    • NO_GOD_NAME

      @NotNull public static final @NotNull String NO_GOD_NAME
      The value of CS_STAT_GOD_NAME or godName when the character has no god.
      See Also:
  • Constructor Details

    • Stats

      public Stats(@NotNull @NotNull ExperienceTable experienceTable, @NotNull @NotNull SkillSet skillSet, @NotNull @NotNull GuiStateManager guiStateManager)
      Creates a new instance.
      Parameters:
      experienceTable - the experience table instance to use
      skillSet - the skill set instance to use
      guiStateManager - the gui state manager to watch
  • Method Details

    • setSimpleWeaponSpeed

      public void setSimpleWeaponSpeed(boolean simpleWeaponSpeed)
      Sets whether the CS_STAT_WEAP_SP value contains the weapon speed directly.
      Parameters:
      simpleWeaponSpeed - whether CS_STAT_WEAP_SP is the weapon speed value
    • getStat

      public int getStat(int statNo)
      Returns the numerical value of the given statistic.
      Parameters:
      statNo - the stat identifier; see the CS_STAT constants
      Returns:
      the statistic value (or "score")
    • getFloatStat

      public double getFloatStat(int statNo)
      Returns the numerical value of the given statistic.
      Parameters:
      statNo - the stat identifier; see the CS_STAT constants
      Returns:
      the statistic value
    • setStat

      public void setStat(int statNo, int value)
      Sets the given statistic numerical value.
      Parameters:
      statNo - the stat identifier; see the CS_STAT constants
      value - the value to assign to the chosen statistic
    • getTitle

      @NotNull public @NotNull String getTitle()
      Returns the current title.
      Returns:
      a string representation of the title
    • getRange

      @NotNull public @NotNull String getRange()
      Returns the current content of the range stat. This is basically the current active skill for the player.
      Returns:
      a string representation of the range
    • getActiveSkill

      @NotNull public @NotNull String getActiveSkill()
      Returns the active skill name.
      Returns:
      the active skill name
    • setActiveSkill

      public void setActiveSkill(@NotNull @NotNull String activeSkill)
      Sets the active skill name.
      Parameters:
      activeSkill - the active skill name
    • getExperience

      public long getExperience()
      Returns the amount of global experience.
      Returns:
      the amount of global experience
    • getExperienceNextLevel

      public long getExperienceNextLevel()
      Returns the experience needed to reach the next level.
      Returns:
      the experience needed
    • addCrossfireStatsListener

      public void addCrossfireStatsListener(@NotNull @NotNull StatsListener statsListener)
      Adds a StatsListener to be notified about stat changes.
      Parameters:
      statsListener - the listener to add
    • removeCrossfireStatsListener

      public void removeCrossfireStatsListener(@NotNull @NotNull StatsListener statsListener)
      Removes a StatsListener to be notified about stat changes.
      Parameters:
      statsListener - the listener to remove
    • getWeaponSpeed

      public double getWeaponSpeed()
      Returns the weapon speed stat.
      Returns:
      the weapon speed stat
    • setStatInt2

      public void setStatInt2(int stat, short param)
      Updates a stat value with a two-byte int value.
      Parameters:
      stat - the stat
      param - the stat value
    • setStatInt4

      public void setStatInt4(int stat, int param)
      Updates a stat value with a four-byte int value.
      Parameters:
      stat - the stat
      param - the stat value
    • setStatInt8

      public void setStatInt8(int stat, long param)
      Updates a stat value with an eight-byte int value.
      Parameters:
      stat - the stat
      param - the stat value
    • setStatString

      public void setStatString(int stat, @NotNull @NotNull String param)
      Updates a stat value with a string value.
      Parameters:
      stat - the stat
      param - the stat value
    • setStatSkill

      public void setStatSkill(int stat, int level, long experience)
      Updates a stat value with a skill value.
      Parameters:
      stat - the stat
      level - the stat value
      experience - the stat value