feat: napi memorizalt varazslatok es varazslat mento NF

This commit is contained in:
2023-09-25 01:03:23 +02:00
parent b1accb61d1
commit dc1b733e16
4 changed files with 105 additions and 3 deletions
@@ -0,0 +1,24 @@
{
"varazslatok": [
[3,1],
[4,2],
[4,2,1],
[5,3,2],
[5,3,2,1],
[5,3,2,2],
[6,4,3,2,1],
[6,4,3,3,2],
[6,4,4,3,2,1],
[6,4,4,3,3,2],
[7,5,4,4,3,2],
[7,5,4,4,3,3],
[7,5,5,4,4,3],
[7,5,5,4,4,3],
[7,5,5,5,4,4],
[8,6,5,5,4,4],
[8,6,5,5,5,4],
[8,6,6,5,5,4],
[8,6,6,5,5,5],
[8,6,6,6,5,5]
]
}
@@ -0,0 +1,38 @@
import MemorizaltVarazslatTabla from "./memorizalt_varazslat_tabla.json";
import {KarakterInputs} from "./karakter";
import {Osztaly} from "./osztaly";
import {Modifier} from "./tulajdonsag";
function isSpellcaster(osztaly: Osztaly): boolean {
return osztaly === Osztaly.Pap || osztaly === Osztaly.Illuzionista || osztaly === Osztaly.Varazslo;
}
function getMagicAbilityModifier(karakter: Pick<KarakterInputs, 'osztaly' | 'tulajdonsagok'>) : number {
const magicAbility = karakter.osztaly === Osztaly.Pap ? karakter.tulajdonsagok.t_bol : karakter.tulajdonsagok.t_int
return Modifier(magicAbility)
}
export function NapiVarazslatok(karakter: Pick<KarakterInputs, 'szint' | 'osztaly' | 'tulajdonsagok'>) : number[] {
if (!isSpellcaster(karakter.osztaly)) {
return []
}
const magicAbilityModifier = getMagicAbilityModifier(karakter)
const response = [...MemorizaltVarazslatTabla.varazslatok[karakter.szint-1]]
for (let i = 1; i <= magicAbilityModifier && i < response.length; i++){
response[i] += 1
}
return response
}
export function CalculateVarazslatMentokNF(karakter: Pick<KarakterInputs, 'osztaly' | 'tulajdonsagok'>): number[] {
if (!isSpellcaster(karakter.osztaly)) {
return []
}
const magicAbilityModifier = getMagicAbilityModifier(karakter)
const response = []
for (let spellLevel = 0; spellLevel < 6; spellLevel++){
const NF = 10 + spellLevel + magicAbilityModifier
response.push(NF)
}
return response
}