Elin:Code Analysis/Basics: Difference between revisions
Jump to navigation
Jump to search
No edit summary |
(Add stamina calculation... but I'm still not sure what vBase is, can someone help?) |
||
Line 47: | Line 47: | ||
* This value is finally modified by the Lonelysoul feat if the character is PC. | * This value is finally modified by the Lonelysoul feat if the character is PC. | ||
==Maximum Stamina== | |||
<syntaxhighlight lang="c#" line="1"> | |||
public void CalculateMaxStamina() | |||
{ | |||
int num = base.END; | |||
int num2 = 0; | |||
foreach (Element value in elements.dict.Values) | |||
{ | |||
if (value.source.category == "skill") | |||
{ | |||
num = ((!IsPC) ? (num + Mathf.Max(value.ValueWithoutLink, 0)) : (num + Mathf.Max(value.vBase, 0))); | |||
} | |||
} | |||
num2 = EClass.curve(num, 30, 10, 60); | |||
if (num2 < 10) | |||
{ | |||
num2 = 10; | |||
} | |||
_maxStamina = num2 + 15; | |||
} | |||
.... | |||
public override int max => BaseStats.CC._maxStamina * BaseStats.CC.Evalue(62) / 100; | |||
</syntaxhighlight> | |||
The maximum stamina of chracters is determined by the following: | |||
* Each point of base endurance increase the base stamina number by 1. | |||
* ('''Need confirmation''') For each skill a chracter have, increase this base stamina number by the level of that skill. | |||
* The base stamina number go through a CURVE function with (base, 30, 10, 60). | |||
** This means, if the base stamina is less than 30, return that value. | |||
** For each point of additional base stamina, the return is diminished. | |||
** Base stamina 60, output is 44.8 | |||
** Base stamina 90, output is 53.36 | |||
** Base stamina 300, output is 77.9 | |||
* The output number is increased by 15, then modified by the vigor(Evalue(62))% of player. | |||
==Carryweight Limit== | ==Carryweight Limit== | ||
<syntaxhighlight lang="c#" line="1"> | <syntaxhighlight lang="c#" line="1"> |
Revision as of 10:04, 10 December 2024
This page does not contain information obtained through legitimate play, but rather through Elin's data analysis, debug mode, and internal file viewing. It may contain serious spoilers or information that may detract from the enjoyment of playing the game. please summarize the content in a way that is easy to understand for people who cannot read the code, rather than posting the code as it is. |
This page contains code analysis on the basic stats of characters (PC and non-PC). This page is updated to EA23.46
Maximum HP
public override int MaxHP => Mathf.Max(1, ((base.END * 2 + base.STR + base.WIL / 2) * Mathf.Min(base.LV, 25) / 25 + base.END + 10)
* Evalue(60) / 100 * ((IsPCFaction ? 100 : (100 + (int)base.rarity * 300)) + (IsPC ? (EClass.player.lastEmptyAlly * Evalue(1646)) : 0)) / 100);
The Maximum HP is determined by the following factors:
- Level-based HP: Until level 25, the HP Maximum will be modified by the base number of level. After level 25, this value becomes constant. (4% per level)
- For example, a character grow from lvl 1 to 2, its HP will increase by base of *2.
- This level-base will apply to (2 * END + 1 * STR + 0.5 * WIL) * (4% * level)
- Another 1 * END base HP and 10 HP will be awarded independent of level.
- This means, at the start of the game (lvl 1), Endurance is the biggest factor (1.04) of HP Maximum far greater than STR (0.04) and WIL (0.02).
- For character higher than level 25, Each point of END increase HP base by 3, STR by 1, and WIL by 0.5.
- The HP base is further modified by Character Life (Evalue(60) / 100
- Character Faction modifier:
- If character is in PC faction, the HP is modified by 100%
- If character is not in PC faction, HP is further amplified by the rarity of character.
- If normal, 100%; if superior, 400%; if legendary, 700%, if mythical, 1000%, if artifact, 1300%.
- The rarity of character is under investigation, but probably apply to boss monsters in nefias.
- This value is finally modified by the Lonelysoul feat if the character is PC.
Maximum MP
public override int max => Mathf.Max(1, ((BaseStats.CC.MAG * 2 + BaseStats.CC.WIL + BaseStats.CC.LER / 2) * Mathf.Min(BaseStats.CC.LV, 25) / 25 + BaseStats.CC.MAG + 10)
* BaseStats.CC.Evalue(61) / 100 * ((BaseStats.CC.IsPCFaction ? 100 : (100 + (int)BaseStats.CC.rarity * 250))
+ (BaseStats.CC.IsPC ? (EClass.player.lastEmptyAlly * BaseStats.CC.Evalue(1646)) : 0)) / 100);
The Maximum MP is determined by the following factors:
- Level-based HP: Until level 25, the MP Maximum will be modified by the base number of level. After level 25, this value becomes constant. (4% per level)
- For example, a character grow from lvl 1 to 2, its HP will increase by base of *2.
- This level-base will apply to (2 * MAG + 1 * WIL + 0.5 * LER) * (4% * level)
- Another 1 * MAG base MP and 10 MP will be awarded independent of level.
- This means, at the start of the game (lvl 1), Magic is the biggest factor (1.04) of HP Maximum far greater than WIL (0.04) and LER (0.02).
- For character higher than level 25, Each point of MAG increase MP base by 3, WIL by 1, and LER by 0.5.
- The MP base is further modified by Character Mana (Evalue(61) / 100
- If character is not in PC faction, HP is further amplified by the rarity of character.
- If normal, 100%; if superior, 350%; if legendary, 600%, if mythical, 850%, if artifact, 1100%.
- The rarity of character is under investigation, but probably apply to boss monsters in nefias.
- If character is not in PC faction, HP is further amplified by the rarity of character.
- This value is finally modified by the Lonelysoul feat if the character is PC.
Maximum Stamina
public void CalculateMaxStamina()
{
int num = base.END;
int num2 = 0;
foreach (Element value in elements.dict.Values)
{
if (value.source.category == "skill")
{
num = ((!IsPC) ? (num + Mathf.Max(value.ValueWithoutLink, 0)) : (num + Mathf.Max(value.vBase, 0)));
}
}
num2 = EClass.curve(num, 30, 10, 60);
if (num2 < 10)
{
num2 = 10;
}
_maxStamina = num2 + 15;
}
....
public override int max => BaseStats.CC._maxStamina * BaseStats.CC.Evalue(62) / 100;
The maximum stamina of chracters is determined by the following:
- Each point of base endurance increase the base stamina number by 1.
- (Need confirmation) For each skill a chracter have, increase this base stamina number by the level of that skill.
- The base stamina number go through a CURVE function with (base, 30, 10, 60).
- This means, if the base stamina is less than 30, return that value.
- For each point of additional base stamina, the return is diminished.
- Base stamina 60, output is 44.8
- Base stamina 90, output is 53.36
- Base stamina 300, output is 77.9
- The output number is increased by 15, then modified by the vigor(Evalue(62))% of player.
Carryweight Limit
public override int WeightLimit => (base.STR * 500 + base.END * 250 + Evalue(207) * 2000) * ((!HasElement(1411)) ? 1 : 5) + 45000;
The carryweight limit of characters is determined by the following factors:
- Base limit is 0.5 * STR + 0.25 * END + 2 * Weightlifting skill. (Each "s" in game is 1000 in code.)
- If the character is golden knight, then this is further modified by 500%.
- A 45s base carry weight is added to the final result.