Jump to content
DarkMatters Celebrates
20 Years of Wyntertyde in Ancaria

From the Sacred 2 Christmas Island Soundtrack
Click to Open Player!

chattius

How is Sacred 2 Weapon Damage Calculated

Recommended Posts

Posted (edited)

I've been looking at how combat art regeneration times work. There is already a lot of information in the forums and in the wiki, but there are some misconceptions about how it is calculated. I'll try to explain it from scratch.

First of all, the "Regeneration Time Xs" and the "Regeneration Time of All Combat Arts +X%" (buff penalty) are calculated in completely different ways.

Regarding "Regeneration Time Xs", the base regeneration time is calculated as:

BaseRegenerationTime = (cost_base + Runes * cost_level + SumCABonus * cost_level * 0.5) * 0.01

Where:
- cost_base - from the combat art definition in spells.txt.
- cost_level - from the combat art definition in spells.txt.
- Runes - the number of runes used.
- SumCABonus - sum of all bonuses to the combat art level (from item modifiers).

This BaseRegenerationTime is what we apply all other multipliers to. These multipliers are:
- StaminaMultiplier - calculated based on the character level and total stamina.
- SkillMultiplier - calculated based on the aspect focus and concentration skills.
- ExpertTouchMultiplier - based on whether Expert Touch is enabled or not.
- CombatDisciplineMultiplier - based on whether Combat Discipline is taken and the combat art is placed in a combo.
- EquipmentMultiplier - sum of all Regeneration Time -X% bonuses from item modifiers (this includes equipment, concentration potions and buff bonuses).
- BuffPenaltyMultiplier - sum of all buff penalties and probably the mount penalty.
- ArmorMultiplier - calculated based on the armor regeneration bonus/penalty, but I haven't looked into it yet.

StaminaMultiplier:

StaminaMultiplier = 1 / (0.735 + CharacterLevel * 0.015 + Stamina * 0.01)

SkillMultiplier:

SumValueOfBonus = FocusValueOfBonus + ConcentrationValueOfBonus
DiminishedValue = 1000 * SumValueOfBonus / (1000 + SumValueOfBonus)
SkillMultiplier = 1 - DiminishedValue * 0.001

Where:
- FocusValueOfBonus - This is basically the SkillValue of the Aspect Focus skill and needs to be calculated manually. There is no way to see what it is in-game. Edit: The value can be found in the table at the bottom of this page https://www.sacredwiki.org/index.php/Sacred_2:Aspect_Focus_-_formulas_and_tables.
- ConcentrationValueOfBonus - This is basically the SkillValue of the Concentration skill and needs to be calculated manually. There is no way to see what it is in-game. Edit: The value can be found in the table at the bottom of this page https://www.sacredwiki.org/index.php/Sacred_2:Concentration_-_formulas_and_tables.

ExpertTouchMultiplier:

If Expert Touch is disabled, then it is equal to 1.
If Expert Touch is enabled, then it is equal to 1000 / AddOn_RegenFactor.

Where:
- AddOn_RegenFactor - from balance.txt. Default value is 1500.

CombatDisciplineMultiplier:

If Combat Discipline is not taken (or the combat art is not in a combo), then it is 1.
If Combat Discipline is taken, but not mastered, then it is 0.9.
If Combat Discipline is taken and mastered, then it is 0.8.

EquipmentMultiplier:

DiminishedValue = 1000 * SumValueOfBonus / (1000 + SumValueOfBonus)
EquipmentMultiplier = 1 - DiminishedValue * 0.001

Where:
- SumValueOfBonus - add together the ValueOfBonus of all item modifiers. This includes equipment, concentration potions and buff bonuses. Unfortunately, each ValueOfBonus needs to be calculated manually (or guessed).

For example: A Concentration Elixir gives Regeneration Time -60.0%. The ValueOfBonus in this case is 1500.

Spoiler

ValueOfBonus = 1500

DiminishedValue = 1000 * ValueOfBonus / (1000 + ValueOfBonus)
DiminishedValue = 1000 * 1500 / (1000 + 1500)
DiminishedValue = 1500000 / 2500
DiminishedValue = 600

TooltipValue = -0.1 * DiminishedValue
TooltipValue = -0.1 * 600
TooltipValue = -60

BuffPenaltyMultiplier:

BuffPenaltyMultiplier = 1 + SumBuffPenalties / 100

Where:
- SumBuffPenalties - add together the penalties of all active buffs (and probably the mount). Note that the tooltip only shows one digit after the decimal point, but the real value has quite a long decimal part. To get a precise result, you will need to calculate the buff penalty manually.

ArmorMultiplier:

TODO

 

And finally, multiply the BaseRegenerationTime with all of these multipliers to get the final regeneration time.

FinalRegenerationTime = BaseRegenerationTime * StaminaMultiplier * SkillMultiplier * ExpertTouchMultiplier * CombatDisciplineMultiplier * EquipmentMultiplier * BuffPenaltyMultiplier * ArmorMultiplier

Do not round down at any step of the calculations.

If the combat art has a cooldown time, then this cooldown time also needs to be added to the FinalRegenerationTime. But I haven't done any tests regarding cooldown times yet.

Edit: I forgot about Chance to halve regeneration time. I assume that it is an additional multiplier.

 

Edit: Pelting Strikes has a modification, called Focus, that reduces the regeneration time.

Quote

entry6 = {"et_cost_thisSpell", 250, 0, 3, 4 },

This entry acts as an item modifier Regeneration Time -X% with ValueOfBonus = 250, but it is applied only to this combat art. It is part of the EquipmentMultiplier.

 

Battle Stance has a modification, called Drill, that reduces the regeneration time penalty.

Quote

entry6 = {"et_regThisBuff", 500, 10, 3, 8 },

This entry acts as an item modifier Regeneration Penalty from Buffs -X% with the appropriate ValueOfBonus, but it is applied only to this combat art. It is part of the EquipmentMultiplier.

Edited by Maneus
  • Respect! 1
Posted (edited)

How to calculate the "Regeneration Time of All Combat Arts +X%" (buff penalty).

Ratio = FinalCombatArtLevel / (Runes + SumCABonus)

BasePenalty = (cost_level + (Runes * Ratio - 1) * cost_level * 0.5 + SumCABonus * Ratio * cost_level * 0.25) * 0.1

Where:
- Runes - the number of runes used.
- SumCABonus - sum of all bonuses to the combat art level (from item modifiers).
- FinalCombatArtLevel - the combat art level after penalty. It is important to use the full decimal part.
- cost_level - from the combat art definition in spells.txt.

Then the following multipliers are applied:
- StaminaMultiplier - same as above.
- SkillMultiplier - same as above.
- EquipmentMultiplier - sum of all Regeneration Penalty from Buffs -X% bonuses from item modifiers.

FinalPenalty = BasePenalty * StaminaMultiplier * SkillMultiplier * EquipmentMultiplier

Notes:
- cost_base is not used.
- Expert Touch does not affect buff penalties.
- The Regeneration Time -X% bonus from Combat Discipline affects only combat arts that are in a combo, so buffs cannot benefit.
- The regeneration bonus/penalty from armor doesn't appear to affect buffs.
 

I am currently working on a calculator app, but it will take a while.

 

Example:

Spoiler

CharacterLevel = 1
Stamina = 25
Runes = 2
SumCABonus = 1
FinalCombatArtLevel = 2.4 (HCALWP = 2)
cost_level = 10000

Ratio = FinalCombatArtLevel / (Runes + SumCABonus)
Ratio = 2.4 / (2 + 1)
Ratio = 2.4 / 3
Ratio = 0.8

BasePenalty = (cost_level + (Runes * Ratio - 1) * cost_level * 0.5 + SumCABonus * Ratio * cost_level * 0.25) * 0.1
BasePenalty = (10000 + (2 * 0.8 - 1) * 10000 * 0.5 + 1 * 0.8 * 10000 * 0.25) * 0.1
BasePenalty = (10000 + (1.6 - 1) * 5000 + 2000) * 0.1
BasePenalty = (10000 + 0.6 * 5000 + 2000) * 0.1
BasePenalty = (10000 + 3000 + 2000) * 0.1
BasePenalty = 15000 * 0.1
BasePenalty = 1500

StaminaMultiplier = 1 / (0.735 + CharacterLevel * 0.015 + Stamina * 0.01)
StaminaMultiplier = 1 / (0.735 + 1 * 0.015 + 25 * 0.01)
StaminaMultiplier = 1 / (0.735 + 0.015 + 0.25)
StaminaMultiplier = 1 / 1
StaminaMultiplier = 1

SkillMultiplier = 1 (No skills)
EquipmentMultiplier = 1 (No item modifiers)

FinalPenalty = BasePenalty * StaminaMultiplier * SkillMultiplier * EquipmentMultiplier
FinalPenalty = 1500 * 1 * 1 * 1
FinalPenalty = 1500 (Reference value is 1500.0%)

 

Edited by Maneus
  • Thanks! 1
Posted (edited)

Regarding the regeneration time penalty from mounts, there are two parameters in balance.txt:

Quote

Mount_Regenburden_Warhorse = 500,
Mount_Regenburden_Ridehorse = 300,

The second one appears to represent the regeneration time penalty for the common horses. 300 means 30%.

The first one, from what I understand, is for special types of horses that can only be bought from a specific vendor. But I've never played with mounts, so I don't know.

And for the class-specific mounts - I don't have one yet, but judging from the pictures in the wiki, they appear to use the second parameter (30%).

These parameters form the BaseMountPenalty.

 

The Riding skill has a hidden bonus, that reduces the regeneration time penalty. It is calculated as follows:

ValueOfBonus = SkillValue
DiminishedValue = 1000 * ValueOfBonus / (1000 + ValueOfBonus)

The Riding skill at level 75 has a SkillValue of 2260.

DiminishedValue = 1000 * ValueOfBonus / (1000 + ValueOfBonus)
DiminishedValue = 1000 * 2260 / (1000 + 2260)
DiminishedValue = 2260000 / 3260
DiminishedValue = 693.2515337423313

If this bonus was visible in the tooltip, then the value would be -69.3%.

FinalMountPenalty = 0.1 * FLOOR(BaseMountPenalty * (1 - DiminishedValue / 1000))
FinalMountPenalty = 0.1 * FLOOR(300 * (1 - 693.2515337423313 / 1000))
FinalMountPenalty = 0.1 * FLOOR(300 * (1 - 0.6932515337423313))
FinalMountPenalty = 0.1 * FLOOR(300 * 0.3067484662576687)
FinalMountPenalty = 0.1 * FLOOR(92.02453987730061)
FinalMountPenalty = 0.1 * 92
FinalMountPenalty = 9.2 (Reference value is 9.1%)

The reference value is lower by 0.1% because of precision loss from 32-bit floats. But the regeneration time penalty is actually 9.2%.

 

I don't know yet if any other parameters affect the mount penalty.

Edited by Maneus
  • Appreciation 1
Posted

Regarding the skill Armor Lore, the bonus "Regeneration Time Penalty from Armor -X%" is calculated in the following way:

ValueOfBonus = 1000 * (1 - (1 / (1 + MasteryMultiplier * SkillLevel * (1 / CharacterLevel))))

Where:
- MasteryMultiplier - equal to 1 if the skill is not mastered, or 1.5 if the skill is mastered.
- SkillLevel - total skill points in the skill.

TooltipValue = -0.1 * ValueOfBonus

Notes:
- The SkillValue is not used in this formula. The parameters mean_value and advanced_mean_value don't change anything.

Examples:

Spoiler

CharacterLevel = 200
SkillLevel = 75
MasteryMultiplier = 1.5 (The skill is mastered)

ValueOfBonus = 1000 * (1 - (1 / (1 + MasteryMultiplier * SkillLevel * (1 / CharacterLevel))))
ValueOfBonus = 1000 * (1 - (1 / (1 + 1.5 * 75 * (1 / 200))))
ValueOfBonus = 1000 * (1 - (1 / (1 + 0.5625)))
ValueOfBonus = 1000 * (1 - (1 / 1.5625))
ValueOfBonus = 1000 * (1 - 0.64)
ValueOfBonus = 1000 * 0.36
ValueOfBonus = 360

TooltipValue = -0.1 * ValueOfBonus
TooltipValue = -0.1 * 360
TooltipValue = -36 (Reference value is -36.0%)

Spoiler

CharacterLevel = 200
SkillLevel = 200
MasteryMultiplier = 1.5 (The skill is mastered)

ValueOfBonus = 1000 * (1 - (1 / (1 + MasteryMultiplier * SkillLevel * (1 / CharacterLevel))))
ValueOfBonus = 1000 * (1 - (1 / (1 + 1.5 * 200 * (1 / 200))))
ValueOfBonus = 1000 * (1 - (1 / (1 + 1.5)))
ValueOfBonus = 1000 * (1 - (1 / 2.5))
ValueOfBonus = 1000 * (1 - 0.4)
ValueOfBonus = 1000 * 0.6
ValueOfBonus = 600

TooltipValue = -0.1 * ValueOfBonus
TooltipValue = -0.1 * 600
TooltipValue = -60 (Reference value is -60.0%)

Spoiler

CharacterLevel = 1
SkillLevel = 4
MasteryMultiplier = 1 (The skill is NOT mastered)

ValueOfBonus = 1000 * (1 - (1 / (1 + MasteryMultiplier * SkillLevel * (1 / CharacterLevel))))
ValueOfBonus = 1000 * (1 - (1 / (1 + 1 * 4 * (1 / 1))))
ValueOfBonus = 1000 * (1 - (1 / (1 + 4)))
ValueOfBonus = 1000 * (1 - (1 / 5))
ValueOfBonus = 1000 * (1 - 0.2)
ValueOfBonus = 1000 * 0.8
ValueOfBonus = 800

TooltipValue = -0.1 * ValueOfBonus
TooltipValue = -0.1 * 800
TooltipValue = -80 (Reference value is -80.0%)

 

  • Appreciation 1
Posted (edited)

Regarding the maximum usable item level. If we assume that the table here https://www.sacredwiki.org/index.php/Sacred_2:Items/Usable_Item_Levels is trustworthy, which seems to be the case, then the formula is:

MaximumUsableItemLevel = 2 + FLOOR(CharacterLevel * 1.25)

 

Armor Lore, Shield Lore and the various Weapon Lore skills raise the "Item Level without Penalty" up to a maximum. But this "maximum item level without penalty" is different from the "maximum usable item level".

The formula for the "maximum item level without penalty" appears to be:

MaximumItemLevelWithoutPenalty = FLOOR(CharacterLevel * 1.25)

For example:

At character level 200, the maximum usable item level is 252. If we have Armor Lore at level 200, then the "Item Level without Penalty" will be 250.

At character level 1, the maximum usable item level is 3. If we have Armor Lore at level 200, then the "Item Level without Penalty" will be 1.

So the MaximumItemLevelWithoutPenalty is always lower than the MaximumUsableItemLevel by 2.

 

How the above-mentioned skills raise the "Item Level without Penalty" and how the penalty is calculated - I'll look into that later.

Edited by Maneus
  • Like! 1
Posted (edited)
1 hour ago, Maneus said:

For example:
We have 10000 fire damage.
At skill level 75, the tooltip states Additional Damage/Duration of Secondary Effects +235.6%.
The initial hit does 10000 damage.
The damage instances are 4739, 4790, 4781, 4774, 4476.
The total DOT damage is 23560.

The added percentage appears to be wrong. If it is +235.6%, then the total DOT damage should be 33560. It is actually just +135.6%, which is simply the SkillValue divided by 10.

Edited by Maneus
  • Thanks! 1
Posted

Regarding the regeneration penalty from armor, I haven't been able to figure out how it works.

Without any armor, the ArmorMultiplier (from my previous post) appears to be determined in the following way:

ArmorMultiplier = 1000 / (RegenerationFactorArmorBase + RegenerationFactorSkin / (RegenerationFactorArmorScaling * 0.001))

Where:
- RegenerationFactorArmorBase - from balance.txt. Default value is 360.
- RegenerationFactorSkin - from balance.txt. Default value is 800.
- RegenerationFactorArmorScaling - from balance.txt. Default value is 1250.

By using the default values, we can calculate that the ArmorMultiplier is equal to 1.

Spoiler

ArmorMultiplier = 1000 / (RegenerationFactorArmorBase + RegenerationFactorSkin / (RegenerationFactorArmorScaling * 0.001))
ArmorMultiplier = 1000 / (360 + 800 / (1250 * 0.001))
ArmorMultiplier = 1000 / (360 + 800 / 1.25)
ArmorMultiplier = 1000 / (360 + 640)
ArmorMultiplier = 1000 / 1000
ArmorMultiplier = 1

 

Some observations:

The regeneration penalty from a piece of armor is determined by the "modfocus" values in typification.txt and material.txt. The lower the values, the higher the penalty. So the maximum penalty is achieved when both modfocus values are 0.

The different types of armor have different weights on how much they impact the regeneration penalty. For example:
Chest +32.5%
Head +19%
Arms +5%
Legs +5%
Feet +5%
Gloves +5%
Waist +3.7%
Shoulders (Unknown)
Wings (Unknown)

The above values are from a High Elf with both modfocus values set to 0 for all pieces of armor.

The first piece of armor you equip will change the regeneration time of the combat arts by slightly more than the stated percentage. For example, the tooltip states that the Regeneration Penalty is 5%, but the regeneration times increase from 1000s to 1051.7s.

Each additional piece of armor will increase the regeneration time further, but by more than expected. For example, equipping another piece with 5% penalty increases the regeneration time from 1051.7s to 1109.2s. This doesn't seem to be simply 1000 * 1.052 * 1.052 = 1106.704. The penalty became larger than that. Equipping all pieces on the High Elf increases the regeneration time from 1000s to 2777.7s.

This limit of 2777.7s seems to be the result of dividing 1000 by RegenerationFactorArmorBase. But this might be just a coincidence.

If a piece has high modfocus values, then the regeneration penalty will become negative and it will actually decrease the regeneration time (becoming a bonus).

Armor Lore reduces the regeneration time penalty. We know the formula for the tooltip values, but not how it is applied to the regeneration penalty of the armor pieces. It can bring armor pieces with a positive regeneration penalty down to a negative regeneration penalty. And if a piece already has a negative regeneration penalty, it can become even lower. So Armor Lore is always beneficial in that regard.

  • Like! 1
Posted (edited)

It turns out that @SLD is right, again! He told me in a PM.

The regeneration time penalty from mounts also depends on ratio of the mount's level to the character's level.

The formula is:

FinalMountPenalty = 0.1 * FLOOR(BaseMountPenalty * (MountLevel / CharacterLevel) * (1 - DiminishedValue / 1000))

See also my previous post about the regeneration penalty.

 

According to the tooltip, the Riding skill also gives this bonus: Maximum Horse Level +X. But it does not take part in the formula.

Edited by Maneus
Posted

I made a breaktrough regarding the attack speed penalty of higher level weapons.

The formula for the penalty is:

EffectiveCharacterLevel = CharacterLevel + WeaponLore * 0.5

AttackSpeedMultiplier = MIN(1, ((EffectiveCharacterLevel + 18) * EffectiveCharacterLevel + 81) / ((WeaponLevel + 18) * WeaponLevel + 81))

AttackSpeedPenalty = -0.1 * FLOOR(1000 * (1 - AttackSpeedMultiplier))

This AttackSpeedPenalty is what you see on the weapon tooltip. But it is subject to precision loss from 32-bit floats. It is rather inaccurate regarding how much it affects the attack speed.

The AttackSpeedMultiplier is what is actually used to change the character's attack speed. There are some odd roundings and/or precision loss here. Haven't found out what exactly.

As you can see, the "item level without penalty" and "usable item level" take no part in this formula. The penalty is completely independent. While "item level without penalty" and "usable item level" reach a maximum, the penalty of higher level weapons will keep going down as you increase the respective weapon lore skill. But you need to equip a weapon of the same type in order to see the penalty go down.

Example:

Spoiler

CharacterLevel = 1
WeaponLore = 16
WeaponLevel = 21
BaseAttackSpeed = 10000.0%

EffectiveCharacterLevel = CharacterLevel + WeaponLore * 0.5
EffectiveCharacterLevel = 1 + 16 * 0.5
EffectiveCharacterLevel = 1 + 8
EffectiveCharacterLevel = 9

AttackSpeedMultiplier = MIN(1, ((EffectiveCharacterLevel + 18) * EffectiveCharacterLevel + 81) / ((WeaponLevel + 18) * WeaponLevel + 81))
AttackSpeedMultiplier = MIN(1, ((9 + 18) * 9 + 81) / ((21 + 18) * 21 + 81))
AttackSpeedMultiplier = MIN(1, (27 * 9 + 81) / (39 * 21 + 81))
AttackSpeedMultiplier = MIN(1, (243 + 81) / (819 + 81))
AttackSpeedMultiplier = MIN(1, 324 / 900)
AttackSpeedMultiplier = MIN(1, 0.36)
AttackSpeedMultiplier = MIN(1, 0.36)
AttackSpeedMultiplier = 0.36

AttackSpeedPenalty = -0.1 * FLOOR(1000 * (1 - AttackSpeedMultiplier))
AttackSpeedPenalty = -0.1 * FLOOR(1000 * (1 - 0.36))
AttackSpeedPenalty = -0.1 * FLOOR(1000 * 0.64)
AttackSpeedPenalty = -0.1 * FLOOR(640)
AttackSpeedPenalty = -0.1 * 640
AttackSpeedPenalty = -64 (Reference value is -64.0%)

FinalAttackSpeed = BaseAttackSpeed * AttackSpeedMultiplier
FinalAttackSpeed = 10000.0 * 0.36
FinalAttackSpeed = 3600.0 (Reference value is 3600.0%)

 

 

Some additional notes:

 

These parameters from balance.txt:

Quote

SpeedMin = 500,
SpeedMax = 1500,

They affect the cap (min and max) on attack speed. At least, this is true for the player's character. So the attack speed cannot go below 50% and it cannot go above 150%.

For my testing I changed SpeedMax from 1500 to 15000000 and then gave my character Attack Speed +999900%. The total attack speed became 1000000.0%. But the tooltip cuts off the first digit, so only 000000.0% is visible.

 

The BeeEffGee weapon is capped to level 200. But there is a way to work around the cap by manipulating the "lvljump" parameter in the blueprint. It is possible to get the weapon up to level 249. At 250, it will instead jump backward.

It is also possible to get the weapon at level 0, which is interesting. Might help other areas of research.

 

It is possible that these same formulas are used for the movement speed penalty of armor.

  • Like! 1
Posted
22 hours ago, Maneus said:

It is possible that these same formulas are used for the movement speed penalty of armor.

I can confirm that this is the case.

Shields give a penalty to attack speed instead of movement speed.

When you equip multiple items with a penalty (of the same type), only one of the penalties will be applied - the highest penalty among the items.

Example 1: As a level 1 character, you equip every possible piece of armor, but all of it is level 2, each one having a penalty of -17.2%. The penalty to the movement speed will be applied only once. The multiplier is 0.826446280991735, so your movement speed will decrease from 100.0% to 82.6%.

Example 2: As a level 1 character, you equip level 2 gloves with a penalty of -17.2% and level 3 boots with a penalty of -30.5%. Only the highest penalty is applied, so in this case the multiplier of the highest penalty is 0.694444444444444 and the movement speed decreases from 100.0% to 69.4%.

Posted (edited)

We've already established that Attack Speed +X% affects only left-click attacks, while Casting Speed +X% affects the execution speed of all combat arts. I think the Weapon Lore skills provide both Attack Speed +X% and Casting Speed: Aspect +X%, while the Aspect Lore skills provide only Casting Speed: Aspect +X%.

Now, the attack speed penalty from above appears to also affect the execution speed of weapon based combat arts, but at half effectiveness. So if the penalty is 75%, the execution speed is decreased by 37.5%. Spells and hybrid combat arts are not affected.

This penalty from items stacks additively with the other penalty from exceeding the HCALWP.

For example:
Our character is level 1. HCALWP is 2.
We have used 3 runes on a weapon based combat art. The CA level after penalty is 2.4.
The execution speed is decreased from 100.0% to 94.0% because we exceeded the HCALWP.
Summoning the BeeEffGee at item level 11 gives an attack speed penalty of 75%.
Our left-click attack speed decreases from 100.0% to 25.0%. Note: This is below the lower limit of 50%.
Our CA execution speed decreases from 94.0% to 56.5%.

 

I haven't looked at how this other penalty for exceeding the HCALWP works yet. There is some info here https://www.sacredwiki.org/index.php/Sacred_2:Highest_Combat_Art_Level_Without_Penalty, but my initial tests suggest that it is more complicated than that.

 

Edit: The parameters SpeedMin and SpeedMax are used to set limits on all types of speed. That means attack speed, movement speed and execution speed of combat arts.

Edited by Maneus
  • Like! 1

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now



×
  • Create New...