Jump to content
Search In
  • More options...
Find results that contain...
Find results in...

New Combat Formulas


jcsnider
 Share

Recommended Posts

![](http://www.eclipseorigins.com/resources/logo.png)

**4.0.4 Combat Formulas**

I am not too sure how many of you all are familiar with the default combat formulas found in Eclipse Origins 2.0 on but they are lacking to say the least. So as of 4.0.4 we have added new combat formulas that make a little bit more sense. Now, we understand that your game is important to you. For anyone who has already been using the standard formulas (Robins) you can continue to do so but turning off the new combat formulas via the Admin Panel -> Game Options button.

Anyways here are what the new formulas look like. Special thanks goes to our own Agoraphobic for working on balancing issues along with trying to make each stat important for every class. 

**Agility**

The gracefulness of a person. 

Critical Hit Chance %

Formula: Agility / 3

Random (1-100)  to determine if successful.

255 Attribute Max: 85% Critical Hit Chance

Dodge %

Formula: Agility / 4

Random (1-100) to determine if successful.

255 Attribute Max: 63% Dodge Rating

Parry % 

Formula: Agility / 6

Random (1-100) to determine if successful.

255 Attribute Max: 42% Parry

**Endurance**

The physical condition and sturdiness of a person. 

Max Health Points

Formula: (Endurance * 10) + (Level * 4) + 150

255 Attribute Max: 5,000 Health Points

Health Point Regeneration Per Second

Formula: Endurance/2

255 Attribute Max: 122 HP per second

Block % (Shield Only)

Formula: Strength / 3

Random (1-100) to determine if successful.

255 Attribute Max: 85% Block

**Intelligence**

The person's knowledge of controlling the ebb and flow of magic.

Max Magic Points

Formula: (Intelligence* 10) + (Level * 4) + 150

255 Attribute Max: 5,000 Magic Points

Magic Point Regen Per Second

Formula: Intelligence/2

255 Attribute Max: 122 MP per second

**Strength**

Your character's strength of body and mind.

Physical Damage

Formula: (Strength * 2 ) + (Weapon Damage * 2) + (Level * 3) + Random (1-20)

Spell Damage

Formula: (Strength * 2 ) + (Spell Damage * 2) + (Level * 3) + Random (1-20)

Critical Hit Damage

Formula: (Damage X 1.5)

**Willpower**

Your character's sheer willpower that helps the person ignore damage.

Armor is your accumulative armor from shields, armor,etc.

Physical Damage Reduction

Formula: (Willpower * 2) + (Level * 3) + Armor 

Magical Damage Reduction

Formula: (Willpower* 2) + (Level * 3)

Trap Damage Reduction (Tile Attribute)

Formula: Willpower

These will need to be revised a little but overall they give each class type a reason to build each stat.
Link to comment
Share on other sites

  • 3 weeks later...
Your stat determines what % you have to crit,dodge,etc. So  if you put the points into that stat, you yield results. The RNG is just like rolling percentile dice in a roleplay game to see if you succeed on the roll.

Instead of RNG, using straight formulas without a RNG it turns into a min/max game even more so. (Look at WoW)

Just curious, how would you have it determined?
Link to comment
Share on other sites

It's fine for actual RNG stats, but there's no point in adding random numbers to the physical and spell damage formulas.

> (Strength * 2 ) + (Weapon Damage * 2) + (Level * 3) + **Random (1-20)**
> (Strength * 2 ) + (Spell Damage * 2) + (Level * 3) + **Random (1-20)**

Also that's terrible for scaling. 20 damage could be huge in the early levels then completely meaningless later.
Link to comment
Share on other sites

It would be strange for the damage to be constant over and over again;  20 damage, 20, damage, 20 damage, 20 damage, etc.

The RNG for the damage formulas was made to add a little fluctuation to each hit (to show if it's a glancing blow or a more severe hit)

It wasn't made to substitute equipment, stats or crits.
Link to comment
Share on other sites

There's still a better way to add fluctuation; not making it rely on a random variable but actually your stats. I don't know about you, but when I play a game and get stronger I like that to actually be reflected. You could do something like you deal somewhere between 75 - 100% of your physical or spell damage, instead of tossing in a random variable you have no control over. At least with that kind of fluctuation as you level up and get better items your damage will reflect it.
Link to comment
Share on other sites

> There's still a better way to add fluctuation; not making it rely on a random variable but actually your stats. I don't know about you, but when I play a game and get stronger I like that to actually be reflected. You could do something like you deal somewhere between 75 - 100% of your physical or spell damage, instead of tossing in a random variable you have no control over. At least with that kind of fluctuation as you level up and get better items your damage will reflect it.

hence the reason it's a formula with level and strength in it. otherwise it wouldn't be worth using at all
Link to comment
Share on other sites

  • 4 months later...
I understand that this is an old topic, but this has to be asked:

> Spell Damage
> Formula: (Strength * 2 ) + (Spell Damage * 2) + (Level * 3) + Random (1-20)

Why on Earth is spell damage _handled_by _**STRENGTH**_, especially considering that _**INTELLIGENCE**exists_ as a stat?

Surely that makes most magic based classes extremely underwhelming when you consider that the typical mage archetype has low strength and high magic/intelligence?
Link to comment
Share on other sites

> Having most of your formulas rely on random numbers is terrible for combat and is what made EO's and those before its combat terrible.

You know, if it isn't a balanced RandomNum then sure, it is just dumb (I don't care for the (1-100) but oh-well). Here's what i made in QB64 and I think it would work well and from what I see it does work well.

>! CLS
>! GOSUB A100.Inputs
>! Reloop:
>! GOSUB Clear.DATA
>! GOSUB B100.Calculations
>! GOSUB C100.Amounts
>! GOTO Reloop
>! A100.Inputs:
>! INPUT "Please Enter Critical Strength => ", CritStrength
>! INPUT "Please Enter Strength ==========> ", Strength
>! INPUT "Please Enter Luck ==============> ", Luck
>! Luck.Percent = ((Luck / 100) + 1)
>! Control$ = "No"
>! RETURN
>! Clear.DATA:
>! RandomCritical = 0
>! RanNumber = 0
>! RETURN
>! B100.Calculations:
>! GOSUB B200.Random
>! IF RandomCritical = 0 THEN
>! GOSUB B210.Critical.Damage
>! ELSE
>! GOSUB B220.Normal.Damage
>! END IF
>! IF Attack <= Strength THEN Attack = Strength
>! IF Attack > (Strength * 3) THEN Attack = (Strength * 3)
>! IF Attack < (Strength / 3) THEN Attack = (Strength / 3)
>! IF Attack < 1 THEN Attack = 1
>! RETURN
>! B200.Random:
>! DO UNTIL RandomCritical >= 1 AND RandomCritical <= 100
>! RandomCritical = INT(RND * 10) * Luck.Percent ' This Works!!! Top of 18 Low of 1
>! LOOP
>! RETURN
>! B210.Critical.Damage:
>! RanNumber = INT(RND * 10)
>! DO UNTIL RanNumber >= 1
>! RanNumber = INT(RND * 10)
>! LOOP
>! RanDamage = RanNumber
>! Attack = Strength + (CritStrength * ((RandomCritical / 100) + 1))
>! RETURN
>! B220.Normal.Damage:
>! Attack = Strength + ((RND / RND) * Luck.Percent)
>! RETURN
>! C100.Amounts:
>! IF Control$ = "No" GOTO First.Time ELSE
>! Attack = INT(Attack * 100) / 100
>! PRINT "Attack Equals"; Attack
>! ' IF Top < Attack THEN Top = Attack
>! ' IF Attack = Top THEN Amount = Amount + 1
>! ' PRINT Top
>! ' PRINT Amount
>! SLEEP
>! RETURN
>! First.Time:
>! CLS
>! Control$ = "Yes"
>! PRINT "Press Enter When Ready for a New Amount…"
>! SLEEP
>! CLS
>! GOTO C100.Amounts

Please don't use this unless you credit me, Thanks.
Link to comment
Share on other sites

A random number isn't too bad as long as it doesn't control the base of the combat formula.

>! ```
'Your base would be something like bah, example:
Damage = (((Strength * 2) + Weapon) + PlayerLevel)

'Of course after subtracting opponents defense like bah, example:
FinalDamage = (FinalDamage - Defense)

'Then you can use a randomizer to fluctuate the value, which is cool because you don't want to see the same damn number:
RandomDamage = Rand(1, 5)
MathRandom = Rand(1, 6)
Select Case MathRandom
Case 1, 2, 3
FinalDamage = FinalDamage + RandomDamage

Case 4, 5, 6
If (FinalDamage - RandomDamage) <= 0 Then
FinalDamage = 0
Exit Sub
Else
FinalDamage = FinalDamage - RandomDamage
End If
End Select
>! ```
Link to comment
Share on other sites

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
 Share

×
×
  • Create New...