This is the initial writeup for how the combat system will work in my game and is subject to suggestions and change.
----------------------------------------------------
Character Stats
----------------------------------------------------
Hit Points
Ability Points
Melee
Ranged
Magic
----------------------------------------------------
Levels
----------------------------------------------------
The level cap is unlimited
The character gains three skill points every level
The character gains one specialty point every 5 levels.
The equation for the next level is PrevLevel + CurrentLevel * 100
Experience is reset to 0 when you level.
Experience does not over flow into next level.
IE.
Bob has 99/100 xp. Bob gains 10 xp. Bob would level to lvl 2 and his XP would be set to 0 not 9.
-----------------------------------------------------
Combat
-----------------------------------------------------
Combat is turn based. The combat order is randomly decided at the beginning of combat. Each combatant is able to make one action per turn. Until all of the opposing combatants are dead.
-----------------------------------------------------
Character Death
-----------------------------------------------------
The character will loose 10% of current xp. The character can not level down.
-----------------------------------------------------
Specialties
-----------------------------------------------------
The way the character gains abilities beyond the basic attack ability is through specialties. It takes 1 point to unlock a specialty and 1 point to unlock additional skills under that specialty. Some specialties may have masteries that would let the character gain further skills once the Character has gained all the base skills under that specialty. Mastery skills cost 2 specialty points.
IE.
Specialty Holy Magic:
* Heal
* Cure
* Bless
* Smite
* Group Heal
Holy Magic Mastery Undead:
* Exorcism
* Holy Water Grenade
* Turn Undead
This is the sample lua script for setting up the specialties and masteries.
--------------------------------------------------------------------- An Example Data File for laying out Specialties and Masteries ------------------------------------------------------------------------------------------------------------------------------------------ Data Available to define abilities with----------------------------------------------------------------------- Specialty-- * LongName-- * Discription-- * MinLevel-- * Register()---- Mastery-- * Specialty-- * LongName-- * Description-- * MinLevel-- * MinRank-- * Register()---- Ability-- * Specialty-- * Mastery-- * Rank-- * LongName-- * Description-- * MinLevel-- * Use(Target,ActionType) IE. Targets could be Friendly, Hostile,-- Undead, Add AOE to the end of any -- Target to make the ability AOE.-- Action Types would be Damage, Heal,-- Buff, and RemoveBuff-- * RangeMin-- * RangeMax-- * Buff-- * BuffType-- * Register()---- Buff-- * LongName-- * Description-- * Stats-- * Turns-- * Duration-- * RangeMax-- * RangeMin-- * Type(Type) ------------------------------------------------------------------------------------------------------------------------------------------ Specialty Holy Magic:-- * Heal -- * Cleanse-- * Bless-- * Smite-- * Group Heal---------------------------------------------------------------------------------------------------------------------------------------- Set Up Holy Specialty -------------------------------------------------------------------------------------------------------------Holy = newSpecialty()Holy.MinLevel = 1Holy.Register()--------------------------------------------------------------------- Set up Heal Ability --------------------------------------------------------------------------------------------------------------Heal = newAbility()Heal.Specialty = "Holy"Heal.Rank = 1Heal.Use("Friendly","Heal")Heal.Use("Undead","Damage")Heal.RangeMin = 5Heal.RangeMax = 10Heal.Register()--------------------------------------------------------------------- Set up Cleanse Ability -----------------------------------------------------------------------------------------------------------Cleanse = newAbility()Cleanse.Specialty = "Holy"Cleanse.Rank = 2Cleanse.Use("Friendly","RemoveBuff")Cleanse.BuffType = "Bad"Cleanse.Register()--------------------------------------------------------------------- Set up Bless Ability --------------------------------------------------------------------------------------------------------------Bless = newAbility()Bless.Specialty = "Holy"Bless.Rank = 3Bless.Use("Friendly","Buff")Bless.Buff.Stats.Melee = 1Bless.Buff.Stats.Ranged = 1Bless.Buff.Stats.Magic = 1Bless.Buff.Duration = 5Bless.Buff.Type("Good")Bless.Buff.Type("Holy")Bless.Register()--------------------------------------------------------------------- Set up Smite Ability --------------------------------------------------------------------------------------------------------------Smite = newAbility()Smite.Specialty = "Holy"Smite.Rank = 4Smite.Use("Hostile","Damage")Smite.RangeMin = 5Smite.RangeMax = 10Smite.Register()--------------------------------------------------------------------- Set up Group Heal Ability ---------------------------------------------------------------------------------------------------------GroupHeal = newAbility()GroupHeal.Specialty = "Holy"GroupHeal.Rank = 5GroupHeal.Use("FriendlyAOE","Heal")GroupHeal.RangeMin = 5GroupHeal.RangeMax = 10GroupHeal.Register()--------------------------------------------------------------------- Mastery Undead:-- * Exorcism-- * Holy Water Grenade-- * Turn Undead---------------------------------------------------------------------------------------------------------------------------------------- Set up Undead Mastery -------------------------------------------------------------------------------------------------------------Undead = newMastery()Undead.MinRank = 5Undead.Specialty = "Holy"Undead.Register()--------------------------------------------------------------------- Set up Exorsism Ablility ----------------------------------------------------------------------------------------------------------Exorsism = newAbility()Exorsism.Mastery = "Undead"Exorsism.Rank = 1Exorsism.Use("Undead","Damage")Exorsism.RangeMin = 10Exorsism.RangeMax = 12Exorsism.Register()--------------------------------------------------------------------- Set up Holy Water Grenade ---------------------------------------------------------------------------------------------------------HolyWaterGrenade = newAbility()HolyWaterGrenade.Mastery = "Undead"HolyWaterGrenade.Rank = 2HolyWaterGrenade.Use("UndeadAOE","Damage")HolyWaterGrenade.RangeMin = 7HolyWaterGrenade.RangeMax = 10HolyWaterGrenade.Register()--------------------------------------------------------------------- Set up Turn Undead ----------------------------------------------------------------------------------------------------------------TurnUndead = newAbility()TurnUndead.Master = "Undead"TurnUndead.Rank = 3TurnUndead.Use("Undead","Buff")TurnUndead.Buff.Turns = -1TurnUndead.Register()