typedef struct
{
// Detailed Values
int nExperience;
// Base Values
int nLevel;
int nStrength;
int nAgility;
int nVitality;
int nDexterity;
int nFocus;
int nSpirit;
int nMind;
int nMovement;
int nJumpHeight;
// Computed Values (base values)
int nMaxWeight; //(Maximum amount of weight the character can carry)
int nCurWeight; //(computed from equipment and items carried)
float nDamageRatioDefend; //Damage ratio used when defending
float nDamageRatioNormal; //Damage ratio used when normal
float nDamageRatioDash; //Damage ratio used when dashing
float nDamageRatioSkill; //Damage ratio used when performing a skill
// Computed Values (equipment and stance)
int nAttackSlash; //(mostly bladed weapons, Dex.5, Str1)
int nAttackStab; //(mostly pointed weapons, Dex.5, Str1)
int nAttackStrike; //(mostly blunt weapons, Dex.5, Str1)
int nAttackFire; //(elemental property weapons, Focus.5, Mind1)
int nAttackIce; //(elemental property weapons, Focus.5, Mind1)
int nAttackLighting; //(elemental property weapons, Focus.5, Mind1)
int nAttackMagic; //(raw magic attack power before elemental property, Focus1, Mind.5, Spirit.5)
int nEvade; //(evades magic and physical, agility, weight)
int nDefence; //(defence points from armor and stance modification)
int nHit; //(Accuracy based off dexterity mostly)
int nResistanceFire; //(Mind, Focus, Vitality)
int nResistanceIce; //(Mind, Focus, Vitality)
int nResistanceLighting; //(Mind, Focus, Vitality)
int nCriticalRate; //(Dex, Agility, Focus)
} CharacterStats;
// Should hold information that is changing
// and can be broadcasted to other client applications
// Should try to keep this information minimal to
// keep bandwidth usage down
typedef struct
{
int nMaxHealth;
int nCurHealth;
int nMaxEnergy;
int nCurEnergy;
} CharacterDetails;