# Dusk Tactics

### Sidebar

#### Resources

Site is under construction and is subject to change sporadically.

Lou 03/25/2013 14:02

Some graphical resources seen are copyrighted by their respective owners, SquareEnix and others, and are temporary placeholders. They will not appear in any released version of the game.

Resources that will be used in the game are either created by myself or credited to their respective Artist.

Dusk Tactics, source code, and the ideas and information on this website are all copyright ©2014 Louis Agoglia

formula:start

The attributes for characters are subject to change as well as any formulas used to determine things like Attack Power, Critical Hit Chance, and more. — Lou 03/25/2013 23:16

# Formula

The core of any role playing game is an attribute system based on incremental character growth. These attributes vary from game to game, but they usually represent similar measurements of skill.

## Base Attributes

Earlier versions of the stat system had fewer base attributes. While having more may seem more complicated, as long as the formulas utilize them in a way that makes sense, it shouldn't be a problem.

### Level

A value that represents a unit's overall power and growth. So far the level cap is around 60, but this might be raised or lowered depending on development.

### Strength

Strength represents physical power. It is the main stat that determines Attack and a secondary stat that determines Defense. Having high Strength will make the unit very powerful physically, but it will have no impact whatsoever on magic-based offense or defense.

### Dexterity

Dexterity in this game measures the unit's expertise in combat. The ability to utilize the various weaponry, skillfully cast magick spells, or anything else that requires manual labor. It is mainly used in calculating Attack and has minor effects on Defense and Resist. Dexterity also increases Accuracy and the chance to score a Critical hit.

### Agility

Agility measures how quick and nimble the unit is. High Agility makes for a unit that is able to act often and evade enemy attacks. The unit's chance of getting a Critical hit as well as the unit's overall Speed is calculated using Agility. Agility effects both physical offense and magic-based offense, Attack and Magick respectively. While Agility has an effect on many different attributes, it is less effective offensively than Strength and Intellect.

### Vitality

Vitality is all about Health Points, or HP, and Defense. Vitality is the most important attribute for units whose class requires them to soak up damage and defend weaker units. Along with increasing HP when a unit levels, they also receive a bonus for the amount of Vitality they have.

static double HP_PER_VIT  = 2.75;

### Intellect

Intellect is a measure of a unit's mental acuity. All spells and magickal abilities are dependent on Intellect. Magick and Resist, the magickal offensive and defensive attributes, are based on Intellect. Intellect has no effect on Magick Points, which spells require in order to use.

### Wisdom

Widsom determines the breadth of arcane knowledge the unit is capable of understanding. Basically the limits of it's magickal abilities are determines by Wisdom. Wisdom is needed in order to increase the unit's amount of Magick Points beyond the default gained at level up.

static double MP_PER_WIS  = 2.75;

### Luck

Luck is the wildcard attribute. While it has no large influence in one area, it has various influences across a unit's statistics. As of right now Luck has very little effect, but this will change over time. Currently Luck increases your chance to land a Critical hit by a very small amount. Going forward this attribute could effect things like what types of items drop from killed enemies or found chests. It might also have effects on a unit's secondary skills, specifically ones that are based on chance.

static double CRIT_PER_LCK = 0.009;

## Resource Attributes

These include values such as Health Points, Magick Points, Action Points, and Experience Points. All of these values are represented as percentage quantities or pools of the given resource. In terms of the user interface they appear as bars which are filled at 100% and empty at 0%.

### Health Points

Health Points or HP is the staple of every role playing game. This value represents how much damage a unit can take before it is incapacitated. Many games in this genre keep HP between 1 and 1,000. Generally they tend to deal with 3 digit numbers even at the most powerful level. Other games such as Disgaea allow units to obtain millions upon millions of HP, while also having a level cap of 9,999.

While it's still early in the design phase, HP is something that will grow dynamically with the various classes. Some of the heavier damage-soaking units will have an abundance of HP in the 50,000 range while a glass cannon type magick unit might max out at 2,000 HP. Making this disparity in HP balanced will be the tricky part. Even if these levels aren't reached, the goal at this point is to have a more noticeable difference in resource attribute values for different classes.

### Magick Points

Magick Points or MP is a useable resource that classes use for certain abilities. Currently the plan is to have a battle start with MP at 0, with it regenerating based on the unit's stats as the battle moves forward. This is done in games such as Final Fantasy Tactics as it's effective at stopping units from instantly nuking their enemy at the start of the battle. Some magick using abilities are powerful enough to render enemy units dead in one hit, so starting with full MP could cause magick based classes to have an edge.

### Action Points

Action Points are the newest addition to the attribute system. In order to add an extra layer to the basic tactics game operations, Action Points or AP will be used as a way of enhancing a unit's turn. At this point in the development process the specifics haven't been finalized, but there are some ideas.

AP could determine how many actions a unit can take during an entire fight or more likely for one turn. An action being movement, attacking, using an item, using an ability or anything else that a unit can be instructed to do. This would allow for strategies where actions are used less frequent early on in order to give a unit the ability to attack twice in one turn later on (this could be expanded to create a combo system the likes of which seen in action rpgs). In this scenario the unit would regenerate at least 2 AP each turn, allowing them to at least have the chance to act normally(i.e. moving and using a command).

### Experience Points

The code snippet below shows an alpha allocation of the required experience points for each level. So far it shows up to 100 levels. The experience point system will be a reset to zero type where upon level gain your Current Experience Points is set to 0 and the xp required to level increases a little bit. Each level brings upon a larger obstacle to overcome in terms of total points required.

If you look at the revised experience chart you can see the numbers are low and grow at a steady rate up until around level 20 where the rate increases. These increases in rate continue all the way up to level 100.

/** Experience/Level **/
static int[] XP_TNL = {
/**Lv X0,    X1, Lv X2, Lv X3, Lv X4, Lv X5, Lv X6, Lv X7, Lv X8, Lv X9 */
/** 0X */     -1,     0,    50,    60,    70,    80,    90,   100,   110,   120,
/** 1X */    130,   140,   150,   160,   170,   180,   190,   200,   210,   220,
/** 2X */    240,   260,   280,   300,   320,   340,   360,   380,   400,   420,
/** 3X */    440,   460,   480,   500,   525,   550,   575,   600,   625,   650,
/** 4X */    675,   700,   725,   750,   775,   800,   825,   850,   875,   900,
/** 5X */    950,  1000,  1050,  1100,  1150,  1200,  1250,  1300,  1350,  1400,
/** 6X */   1500,  1600,  1700,  1800,  1900,  2000,  2100,  2200,  2300,  2400,
/** 7X */   2600,  2800,  3000,  3200,  3400,  3600,  3800,  4000,  4200,  4400,
/** 8X */   4600,  4800,  5000,  5500,  6000,  6500,  7000,  7500,  8000,  8500,
/** 9X */   9000,  9500, 10000, 11000, 12000, 13000, 14000, 15000, 16000, 17500,
/**10X */  19000  };

## Secondary Attributes

These stats are calculated from the base attributes and represent things like offensive and defensive power.

### Speed

A very important stat that determines how quickly a unit is able to move and act. Speed is normally increased by gaining Levels but it is increased further by Agility.

static double SPD_PER_AGI = 0.63;

### Accuracy

The percent chance for a unit's attacks and abilities to successfully land on it's target. This value has a ceiling of 99.99%. For now the starting point for each class, while different, is above 50%. Accuracy is increased upon level up as well as Dexterity.

static double ACCU_PER_DEX = 0.234;

### Critical

A percent chance for your attacks to do extra damage. Currently the damage increase of Critical hits isn't defined yet. If the bonus is static the value could be twice the normal damage. A dynamic value is more likely. This value would be based on one of the other attributes, or a combination of them.

Since this stat is in the form of a percentage it will always fall between 0% and 100%. So far the percentage is determined by a combination of Dexterity, Agility, and Luck.

static double CRIT_PER_DEX = 0.079;
static double CRIT_PER_AGI = 0.017;
static double CRIT_PER_LCK = 0.009;

### Attack

A value representing your current offensive attack power. Used to calculate physical damage.

$$Attack = {Strength + {Dexterity \over 2} + {Agility \over 3}}$$

//Attack modifier
static double ATK_MOD  = 0.69;

double atk_power = ATK_MOD  * (strength  + (dexterity * 0.5) + (agility * 0.33));

### Defense

A value determining your ability to resist damage from physical attacks.

$$Defense= {Vitality + {Strength \over 3} + {Dexterity \over 3}}$$

//Defense modifier
static double DEF_MOD  = 1.03;
//Defense formula
double phys_defense = DEF_MOD  * (vitality + (strength  * 0.33) + (dexterity * 0.33));

### Magick

A value representing your current offensive magick power. Used to calculate spell-based damage.

$$Magick = {Intellect + {Wisdom \over 2} + {Agility \over 3}}$$

//Magick modifier
static double MATK_MOD = 0.73;
//Magick formula
double mag_power = MATK_MOD * (intellect + (wisdom    * 0.5) + (agility * 0.33));

### Resist

A value determining your ability to resist damage from magick abilities. This will be the preliminary defense against magick. Not to be confused with Elemental Resistance which further reduces, or increases, magick damage. Elemental Resistance is dependent on the element of the attack.

$$Resist= {Wisdom + {(2 * Intellect)\over 5} + {Dexterity \over 4}}$$

//Resist modifier
static double MDEF_MOD = 1.19;
//Resist formula
double mag_defense  = MDEF_MOD * (wisdom   + (intellect * 0.40) + (dexterity * 0.25));

## Travel Attributes

Attributes that determine how a unit is able to navigate the terrain of a map.

### Move

A value that represents the distance the unit can move in one turn. Map tiles have various move costs depending on their type. The default for the tile cost value is 1 with harder to traverse tiles having as much as double the move cost. Paying attention to what tiles you step on is a very important part of the overall strategy as it not only effects how far you can move but it also has offensive, defensive, and elemental bonuses/penalties.

### Jump

Similar to the move stat except this determines the ability to traverse tiles that are either higher or lower than the one the unit is currently on. The value itself determines the maximum height difference a unit can traverse.

When moving to a higher location: $$Jump = |Jump|$$ When Moving to a lower location: $$Jump = |Jump + 1|$$