Elin:Code Analysis/Combat: Difference between revisions

From Ylvapedia
Jump to navigation Jump to search
No edit summary
No edit summary
Line 217: Line 217:
Penetration is '''Character Penetration''' + '''Weapon Penetration'''
Penetration is '''Character Penetration''' + '''Weapon Penetration'''
==Spellcasting/Damaging Spells==
==Spellcasting/Damaging Spells==
The player cast spells causing various effects
 
{| class="wikitable"
{| class="wikitable"
|+Damaging Spells
|+
|Type
|Type
|Dice Number
|Dice Number
Line 274: Line 274:
Deal double max dice damage to enemies with Gravity debuff
Deal double max dice damage to enemies with Gravity debuff
Deal half damage to enemies with floating effect
Deal half damage to enemies with floating effect
|-
|Shatter Hex
|1+Spellpower/160+Attribute/30
|8+Spellpower/12
|Spellpower/25
|Removes all hexes on target and damages surrounding enemies.
Requires at least one hex on target to work.
|}
== Spellcasting/Healing Spells ==
{| class="wikitable"
|+
|Type
|Dice Number
|Dice Sides
|Healing Bonus
|Notes
|-
|Cure Minor Wounds
|1+Spellpower/50+e/30
|5+Spellpower/40
|Spellpower/30
|
|-
|Cure Heavy Wounds
|2+Spellpower/40+e/25
|6+Spellpower/30
|Spellpower/25
|
|-
|Cure Critical Wounds
|3+Spellpower/35+e/20
|7+Spellpower/25
|Spellpower/20
|
|-
|Healing
|4+Spellpower/30+e/15
|8+Spellpower/20
|Spellpower/15
|
|-
|Healing of 《Eris》
|5+Spellpower/25+e/10
|9+Spellpower/15
|Spellpower/10
|
|-
|Healing of 《Odina》
|6+Spellpower/20+e/5
|10+Spellpower/10
|Spellpower/5
|
|-
|Healing of 《Jure》
|8+Spellpower/10+e
|15+Spellpower/5
|Spellpower
|
|-
|SpHOT?
|1+Spellpower/125
|4+Spellpower/75
|
|See this in source code
Dunno what this is
|}
|}
[[Category:EN]]
[[Category:EN]]
[[Category:Elin Spoiler]]
[[Category:Elin Spoiler]]

Revision as of 08:35, 17 November 2024

Evalue List

Value# Element Notes
(92) Penetration
(108) Throwing
(132) Tactics
(133) Marksman
(305) Magic Device
(482) Force Weapon
(1400) Feat: Weapon Mastery 1, 2
(1404) Feat: Ranged Mastery 1, 2

Martial Arts

else if (this.IsMartial || this.IsMartialWeapon)
{
    this.weaponSkill = this.CC.elements.GetOrCreateElement(100);
    this.attackType = (this.CC.race.meleeStyle.IsEmpty() ? ((EClass.rnd(2) == 0) ? AttackType.Kick : AttackType.Punch) : this.CC.race.meleeStyle.ToEnum(true));
    this.dBonus = this.CC.DMG + this.CC.encLV + (int)Mathf.Sqrt((float)(this.CC.STR / 5 + this.weaponSkill.Value / 4));
    this.dNum = 2 + Mathf.Min(this.weaponSkill.Value / 10, 4);
    this.dDim = 5 + (int)Mathf.Sqrt((float)(this.weaponSkill.Value / 3));
    this.dMulti = 0.6f + (float)(this.CC.STR / 2 + this.weaponSkill.Value / 2 + this.CC.Evalue(132) / 2) / 50f;
    this.dMulti += 0.05f * (float)this.CC.Evalue(1400);
    this.toHitBase = EClass.curve(this.CC.DEX / 3 + this.CC.STR / 3 + this.weaponSkill.Value, 50, 25, 75) + 50;
    this.toHitFix = this.CC.HIT;
    if (this.attackStyle == AttackStyle.Shield)
    {
        this.toHitBase = this.toHitBase * 75 / 100;
    }
    this.penetration = Mathf.Clamp(this.weaponSkill.Value / 10 + 5, 5, 20) + this.CC.Evalue(92);
    if (this.IsMartialWeapon)
    {
        this.dBonus += this.weapon.DMG;
        this.dNum += this.weapon.source.offense[0];
        this.dDim = Mathf.Max(this.dDim / 2 + this.weapon.c_diceDim, 1);
        this.toHitFix += this.weapon.HIT;
        this.penetration += this.weapon.Penetration;
        if (!this.weapon.source.attackType.IsEmpty())
        {
            this.attackType = this.weapon.source.attackType.ToEnum(true);
        }
    }
}

The player kicks or punches using the Martial Arts skill. The player will kick or punch based on melee style or character specifications.

Damage is determined by Martial Arts, Strength, Dexterity, Enchantment Value

Damage dice is 2+(Martial Arts / 10), to a maximum of d6.

The damage value of the dice is 5+√(Martial Arts / 3).

Damage multiplier is 0.6 + ((Strength / 2 + Martial Arts / 2 + Evalue(132) / 2) / 50.0).

If the player has the Weapon Mastery feat, additional damage is provided at a rate of 0.05x(Weapon Mastery Rank). (Effectively, +0.05 or +0.10)

Accuracy is ((Strength /3 + Dexterity /3 + Martial Arts)+50)), with a minimum value of 25+50 and a maximum of 75+50. If the player is wielding a Shield, there is a -25% downward adjustment.

Penetration is calculated at (Martial Arts/10)+5, with a minimum of 5% and a maximum of 20%+Evalue(92).

If weilding Martial Art Weapon:

Damage Bonus is your empty hand Damage Bonus + Weapon's Damage Bonus

Dice Number is your empty hand Dice Number + Weapon's Dice Number

Dice Face is your empty hand Dice Face / 2 + Weapon's Dice Face

Dice Number is your empty hand Dice Number + Weapon's Dice Number

To Hit Bonus is your empty hand To Hit Bonus + Weapon's To Hit Bonus

Penetration is your empty hand Penetration + Weapon's Penetration

Throwing

if (this.isThrow)
{
    bool flag = this.weapon.HasTag(CTAG.throwWeapon) || this.weapon.HasTag(CTAG.throwWeaponEnemy);
    int num2 = (int)Mathf.Clamp(Mathf.Sqrt((float)(this.weapon.SelfWeight + this.weapon.ChildrenWeight)) * 3f + 25f + (float)(flag ? 75 : 0), 10f, 400f + Mathf.Sqrt((float)this.CC.STR) * 50f);
    int num3 = Mathf.Clamp(this.weapon.material.hardness, flag ? 40 : 20, 200);
    this.weaponSkill = this.CC.elements.GetOrCreateElement(108);
    this.attackType = AttackType.Blunt;
    this.dBonus = (this.CC.IsPCParty ? 3 : 7);
    this.dNum = 2;
    this.dDim = ((this.CC.IsPCParty ? 0 : this.CC.LV) + this.CC.STR + this.CC.Evalue(108)) * num2 * num3 / 10000 / 2;
    this.dMulti = 1f;
    this.toHitBase = EClass.curve(this.CC.DEX / 4 + this.CC.STR / 2 + this.weaponSkill.Value, 50, 25, 75) + (this.CC.IsPC ? 75 : 250);
    this.toHitFix = this.CC.HIT + this.weapon.HIT;
    this.penetration = 25;
}

The player throw the item from hand returning or not using the Throwing skill.

Attack Type is always Blunt

Weight Value is √Throwing Item Weight x 3 + if is Throwing Weapon: 75 else 0, with floor of 10 to ceiling of 400 + √(Strength x 50)

Material Value is Material Hardness, with floor of if is Throwing Weapon: 40 else 0 to ceiling of 200

Dice Number is always 2

Dice Face is (if isn't Player Character: Character Level + Strength + Throwing ) x Weight Value x Material Value / 10000 / 2

Accuracy is (Dexterity / 4 + Strength / 2 + Throwing) with a minimum value of 25+50 and a maximum of 75+50 + (if is Player Character: 75 else 250 )

To Hit bonus is Character To Hit Bonus + Weapon's To Hit Bonus

Damage bonus is if is Player Character: 3 else 7

Damage Multiplier is always 1

Penetration is always 25

Melee/Ranged

else
{
    if (this.IsRanged)
    {
        this.weaponSkill = this.CC.elements.GetOrCreateElement(this.toolRange.WeaponSkill);
    }
    else
    {
        this.weaponSkill = this.CC.elements.GetOrCreateElement(this.weapon.category.skill);
    }
    if (!this.weapon.source.attackType.IsEmpty())
    {
        this.attackType = this.weapon.source.attackType.ToEnum(true);
    }
    bool flag2 = this.IsCane || this.weapon.Evalue(482) > 0;
    if (flag2)
    {
        this.weaponSkill = this.CC.elements.GetOrCreateElement(305);
    }
    this.dBonus = this.CC.DMG + this.CC.encLV + this.weapon.DMG;
    this.dNum = this.weapon.source.offense[0];
    this.dDim = this.weapon.c_diceDim;
    this.dMulti = 0.6f + (float)(this.weaponSkill.GetParent(this.CC).Value + this.weaponSkill.Value / 2 + this.CC.Evalue(flag2 ? 304 : (this.IsRanged ? 133 : 132))) / 50f;
    this.dMulti += 0.05f * (float)this.CC.Evalue(this.IsRanged ? 1404 : 1400);
    this.toHitBase = EClass.curve((this.IsCane ? this.CC.WIL : this.CC.DEX) / 4 + this.weaponSkill.GetParent(this.CC).Value / 3 + this.weaponSkill.Value, 50, 25, 75) + 50;
    this.toHitFix = this.CC.HIT + this.weapon.HIT;
    this.penetration = this.weapon.Penetration + this.CC.Evalue(92);
    if (this.IsCane)
    {
        this.toHitBase += 50;
    }
}
if (this.ammo != null)
{
    this.dNumAmmo = ((this.ammo.source.offense.Length != 0) ? this.ammo.source.offense[0] : 0);
    this.dDimAmmo = this.ammo.c_diceDim;
    this.dBonusAmmo = this.ammo.DMG;
    if (this.dNumAmmo < 1)
    {
        this.dNumAmmo = 1;
    }
    if (this.dDimAmmo < 1)
    {
        this.dDimAmmo = 1;
    }
    this.dBonus += this.ammo.DMG;
    this.toHitFix += this.ammo.HIT;
}
else
{
    this.dNumAmmo = 0;
    this.dDimAmmo = 0;
}

The player swing thier melee weapon using the Tactics skill or shoot ranged weapon using the Marksman skill

If the weapon is Cane or it has Force Weapon enchantment it uses Magic Device skill instead of Tactics or Marksman skill

Damage Bonus is Player Character Damage Bonus + Weapon Mod Tool Damage Bonus + Weapon Damage Bonus

Damage Multiplier is 0.6 + (Weapon Main Stat + Weapon Skill / 2 + (If Melee Weapon Tactics, if Ranged Weapon Marksman, if Cane or Force Weapon Magic Device)) / 50

If the player has the Weapon/Ranged Mastery feat, additional damage is provided at a rate of 0.05 x (Weapon/Ranged Mastery Rank). (Effectively, +0.05 or +0.10)

Accuracy is (Dexterty or if Cane or Force Weapon Will) / 4 + Weapon Skill / 3 + (If Melee Weapon Tactics, if Ranged Weapon Marksman, if Cane or Force Weapon Magic Device) with a minimum value of 25+50 and a maximum of 75+50

If it's Cane accuracy addtional + 50

To Hit Bonus is Character To Hit Bonus + Weapon To Hit Bonus + Ammo To Hit Bonus (if load with ammo)

Damage Bonus is Character Damage Bonus + Weapon Damage Bonus + Ammo Damage Bonus (if load with ammo)

Penetration is Character Penetration + Weapon Penetration

Spellcasting/Damaging Spells

Type Dice Number Dice Sides Damage Bonus Notes
Touch 1+Spellpower/100+Attribute/10 3+Spellpower/50 Melee range
Arrow 1+Spellpower/160+Attribute/30 8+Spellpower/12 Spellpower/25 Single target
Bolt 1+Spellpower/120+Attribute/20 4+Spellpower/20 Damage all targets in a 10 tiles long straight line
Ball 1+Spellpower/70+Attribute/20 2+Spellpower/35 Damage all targets in a 5 tiles radius ball from the caster

Damage = Damage x 100 / (90 + affected range x 10)

Miasma 2+Spellpower/150 5+Spellpower/80 Damage once per turn
Meteor 1+Spellpower/150 4+Attribute*3 Always Fire element

Damage all targets in a 10 tiles radius ball from the caster Can be blocked by walls Also damage the caster

Earthquake 5+Spellpower/30 10+Attribute/3 Always Imapct element

Damage all targets in a 12 tiles radius ball from the caster Deal double max dice damage to enemies with Gravity debuff Deal half damage to enemies with floating effect

Shatter Hex 1+Spellpower/160+Attribute/30 8+Spellpower/12 Spellpower/25 Removes all hexes on target and damages surrounding enemies.

Requires at least one hex on target to work.

Spellcasting/Healing Spells

Type Dice Number Dice Sides Healing Bonus Notes
Cure Minor Wounds 1+Spellpower/50+e/30 5+Spellpower/40 Spellpower/30
Cure Heavy Wounds 2+Spellpower/40+e/25 6+Spellpower/30 Spellpower/25
Cure Critical Wounds 3+Spellpower/35+e/20 7+Spellpower/25 Spellpower/20
Healing 4+Spellpower/30+e/15 8+Spellpower/20 Spellpower/15
Healing of 《Eris》 5+Spellpower/25+e/10 9+Spellpower/15 Spellpower/10
Healing of 《Odina》 6+Spellpower/20+e/5 10+Spellpower/10 Spellpower/5
Healing of 《Jure》 8+Spellpower/10+e 15+Spellpower/5 Spellpower
SpHOT? 1+Spellpower/125 4+Spellpower/75 See this in source code

Dunno what this is