bugfix: effective faji tulajdonsag modositok
This commit is contained in:
@@ -57,7 +57,7 @@ function BasicNewLevel(props: {
|
|||||||
className='form-control'
|
className='form-control'
|
||||||
maxLength={2}
|
maxLength={2}
|
||||||
type='number'
|
type='number'
|
||||||
value={karakter.HProlls[szint-2] || 1}
|
value={karakter.hpRolls[szint-2] || 1}
|
||||||
min={1}
|
min={1}
|
||||||
max={12}
|
max={12}
|
||||||
onChange={e => changeRolledHP(Number(e.target.value))} />
|
onChange={e => changeRolledHP(Number(e.target.value))} />
|
||||||
@@ -74,7 +74,7 @@ function BasicNewLevel(props: {
|
|||||||
<div className='col-lg-6'>
|
<div className='col-lg-6'>
|
||||||
<div className='row m-2'>
|
<div className='row m-2'>
|
||||||
<label className='col-sm-6 col-8 col-form-label'>Új HP{' '}</label>
|
<label className='col-sm-6 col-8 col-form-label'>Új HP{' '}</label>
|
||||||
<span className='col col-form-label'>{HP({...karakter, HProlls: karakter.HProlls.slice(0, szint-1)})}</span>
|
<span className='col col-form-label'>{HP({...karakter, hpRolls: karakter.hpRolls.slice(0, szint-1)})}</span>
|
||||||
</div>
|
</div>
|
||||||
{isTBincreased && <div className='row m-2'>
|
{isTBincreased && <div className='row m-2'>
|
||||||
<label className='col-sm-6 col-8 col-form-label'>Új Támadás bónusz{' '}</label>
|
<label className='col-sm-6 col-8 col-form-label'>Új Támadás bónusz{' '}</label>
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
import {Faj} from "./faj";
|
import {Faj} from "./faj";
|
||||||
import {Osztaly} from "./osztaly";
|
import {Osztaly} from "./osztaly";
|
||||||
import {KarakterTulajdonsagok, TulajdonsagDefaults} from "./tulajdonsag";
|
import {KarakterTulajdonsagok, Tulajdonsag, TulajdonsagDefaults} from "./tulajdonsag";
|
||||||
import {KepzettsegId} from "./kepzettsegek";
|
import {KepzettsegId} from "./kepzettsegek";
|
||||||
|
|
||||||
export interface KarakterInputs {
|
export interface KarakterInputs {
|
||||||
@@ -14,7 +14,8 @@ export interface KarakterInputs {
|
|||||||
kepzettsegek: KepzettsegId[],
|
kepzettsegek: KepzettsegId[],
|
||||||
tolvajKepzettsegek?: KepzettsegId[]
|
tolvajKepzettsegek?: KepzettsegId[]
|
||||||
szint: number
|
szint: number
|
||||||
HProlls: number[],
|
hpRolls: number[],
|
||||||
|
tulajdonsagNovekedes: Tulajdonsag[],
|
||||||
}
|
}
|
||||||
|
|
||||||
export const KarakterDefaults: KarakterInputs = {
|
export const KarakterDefaults: KarakterInputs = {
|
||||||
@@ -25,6 +26,7 @@ export const KarakterDefaults: KarakterInputs = {
|
|||||||
osztaly: Osztaly.Harcos,
|
osztaly: Osztaly.Harcos,
|
||||||
kepzettsegek: [],
|
kepzettsegek: [],
|
||||||
szint: 1,
|
szint: 1,
|
||||||
HProlls: [],
|
hpRolls: [],
|
||||||
|
tulajdonsagNovekedes: []
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -12,7 +12,7 @@ export interface MasodlagosErtekekView {
|
|||||||
Mentok: Mentok
|
Mentok: Mentok
|
||||||
}
|
}
|
||||||
|
|
||||||
export type KarakterpickForMasodlagosErtekek = Pick<KarakterInputs, 'osztaly' | 'HProlls' | 'tulajdonsagok' | 'szint'>
|
export type KarakterpickForMasodlagosErtekek = Pick<KarakterInputs, 'osztaly' | 'hpRolls' | 'tulajdonsagok' | 'szint'>
|
||||||
|
|
||||||
export function BaseHP(osztaly: Osztaly) {
|
export function BaseHP(osztaly: Osztaly) {
|
||||||
let base = 4;
|
let base = 4;
|
||||||
@@ -40,9 +40,9 @@ export function BaseHP(osztaly: Osztaly) {
|
|||||||
return base
|
return base
|
||||||
}
|
}
|
||||||
|
|
||||||
export function HP(karakter: Pick<KarakterInputs, 'osztaly' | 'tulajdonsagok' | 'HProlls'>): number {
|
export function HP(karakter: Pick<KarakterInputs, 'osztaly' | 'tulajdonsagok' | 'hpRolls'>): number {
|
||||||
const egeszsegModifier = Modifier(karakter.tulajdonsagok.t_egs)
|
const egeszsegModifier = Modifier(karakter.tulajdonsagok.t_egs)
|
||||||
return BaseHP(karakter.osztaly) + egeszsegModifier + karakter.HProlls
|
return BaseHP(karakter.osztaly) + egeszsegModifier + karakter.hpRolls
|
||||||
// https://lfg.hu/forum/topic/15079-kard-es-magia/page/219/#comment-2218333
|
// https://lfg.hu/forum/topic/15079-kard-es-magia/page/219/#comment-2218333
|
||||||
.map(hp => Math.max(1, hp + egeszsegModifier))
|
.map(hp => Math.max(1, hp + egeszsegModifier))
|
||||||
.reduce((sum, val) => sum + val, 0)
|
.reduce((sum, val) => sum + val, 0)
|
||||||
|
|||||||
@@ -131,6 +131,24 @@ export function TulajdonsagModositokFajokra(tul: Tulajdonsag) {
|
|||||||
return (faj: Faj) => tulajdonsagModositokPerFaj(tul, faj);
|
return (faj: Faj) => tulajdonsagModositokPerFaj(tul, faj);
|
||||||
}
|
}
|
||||||
|
|
||||||
export function FajiTulajdonsagModositok(faj: Faj) {
|
export function FajiTulajdonsagModositok(faj: Faj) : KarakterTulajdonsagok {
|
||||||
return (tul: Tulajdonsag) => tulajdonsagModositokPerFaj(tul, faj)
|
return {
|
||||||
|
[Tulajdonsag.Ero]: tulajdonsagModositokPerFaj(Tulajdonsag.Ero, faj),
|
||||||
|
[Tulajdonsag.Ugyesseg]: tulajdonsagModositokPerFaj(Tulajdonsag.Ugyesseg, faj),
|
||||||
|
[Tulajdonsag.Egeszseg]: tulajdonsagModositokPerFaj(Tulajdonsag.Egeszseg, faj),
|
||||||
|
[Tulajdonsag.Intelligencia]: tulajdonsagModositokPerFaj(Tulajdonsag.Intelligencia, faj),
|
||||||
|
[Tulajdonsag.Bolcsesseg]: tulajdonsagModositokPerFaj(Tulajdonsag.Bolcsesseg, faj),
|
||||||
|
[Tulajdonsag.Karizma]: tulajdonsagModositokPerFaj(Tulajdonsag.Karizma, faj),
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
export function TulajdonsagokFajjal(tulajdonsagok: KarakterTulajdonsagok, faj: Faj): KarakterTulajdonsagok {
|
||||||
|
return {
|
||||||
|
[Tulajdonsag.Ero]: tulajdonsagok.t_ero + tulajdonsagModositokPerFaj(Tulajdonsag.Ero, faj),
|
||||||
|
[Tulajdonsag.Ugyesseg]: tulajdonsagok.t_ugy + tulajdonsagModositokPerFaj(Tulajdonsag.Ugyesseg, faj),
|
||||||
|
[Tulajdonsag.Egeszseg]: tulajdonsagok.t_egs + tulajdonsagModositokPerFaj(Tulajdonsag.Egeszseg, faj),
|
||||||
|
[Tulajdonsag.Intelligencia]: tulajdonsagok.t_int + tulajdonsagModositokPerFaj(Tulajdonsag.Intelligencia, faj),
|
||||||
|
[Tulajdonsag.Bolcsesseg]: tulajdonsagok.t_bol + tulajdonsagModositokPerFaj(Tulajdonsag.Bolcsesseg, faj),
|
||||||
|
[Tulajdonsag.Karizma]: tulajdonsagok.t_kar + tulajdonsagModositokPerFaj(Tulajdonsag.Karizma, faj),
|
||||||
|
}
|
||||||
}
|
}
|
||||||
@@ -6,7 +6,7 @@ import FajSelector from "../components/FajSelector";
|
|||||||
import Tulajdonsagok from "../components/Tulajdonsagok";
|
import Tulajdonsagok from "../components/Tulajdonsagok";
|
||||||
import OsztalySelector from "../components/OsztalySelector";
|
import OsztalySelector from "../components/OsztalySelector";
|
||||||
import KarakterKepzettsegek from "../components/KarakterKepzettsegek";
|
import KarakterKepzettsegek from "../components/KarakterKepzettsegek";
|
||||||
import {KarakterTulajdonsagok} from "../domain-models/tulajdonsag";
|
import {KarakterTulajdonsagok, TulajdonsagokFajjal} from "../domain-models/tulajdonsag";
|
||||||
import MasodlagosErtekek from "../components/MasodlagosErtekek";
|
import MasodlagosErtekek from "../components/MasodlagosErtekek";
|
||||||
import {
|
import {
|
||||||
AvailableKezpettsegList,
|
AvailableKezpettsegList,
|
||||||
@@ -25,12 +25,12 @@ function CreateCharacterPage() {
|
|||||||
|
|
||||||
let [karakter, changeKarakter] = useState(KarakterDefaults)
|
let [karakter, changeKarakter] = useState(KarakterDefaults)
|
||||||
|
|
||||||
|
const tulajdonsagokTotal = TulajdonsagokFajjal(karakter.tulajdonsagok, karakter.faj)
|
||||||
|
|
||||||
const changeKepzettseg = (k: KepzettsegId[]) => changeKarakter({...karakter, kepzettsegek: k})
|
const changeKepzettseg = (k: KepzettsegId[]) => changeKarakter({...karakter, kepzettsegek: k})
|
||||||
const changeTolvajKepzettseg = (tk?: KepzettsegId[]) => changeKarakter({...karakter, tolvajKepzettsegek: tk})
|
const changeTolvajKepzettseg = (tk?: KepzettsegId[]) => changeKarakter({...karakter, tolvajKepzettsegek: tk})
|
||||||
|
|
||||||
SetDefaultTolvajKepzettsegek(karakter, changeTolvajKepzettseg)
|
SetDefaultTolvajKepzettsegek(karakter, changeTolvajKepzettseg)
|
||||||
SetDefaultKepzettsegek(karakter, changeKepzettseg)
|
SetDefaultKepzettsegek({...karakter, tulajdonsagok: tulajdonsagokTotal}, changeKepzettseg)
|
||||||
|
|
||||||
const availableKepzettsegList = AvailableKezpettsegList(karakter.osztaly)
|
const availableKepzettsegList = AvailableKezpettsegList(karakter.osztaly)
|
||||||
|
|
||||||
function levelUp() {
|
function levelUp() {
|
||||||
@@ -38,15 +38,15 @@ function CreateCharacterPage() {
|
|||||||
const dice = BaseHP(karakter.osztaly)
|
const dice = BaseHP(karakter.osztaly)
|
||||||
const roll = dAny(dice)
|
const roll = dAny(dice)
|
||||||
console.log(`Level ${szint} HP roll on d${dice} is: ${roll}`)
|
console.log(`Level ${szint} HP roll on d${dice} is: ${roll}`)
|
||||||
changeKarakter({...karakter, szint: szint, HProlls: [...karakter.HProlls, roll]})
|
changeKarakter({...karakter, szint: szint, hpRolls: [...karakter.hpRolls, roll]})
|
||||||
}
|
}
|
||||||
|
|
||||||
function levelDown() {
|
function levelDown() {
|
||||||
changeKarakter({...karakter, szint: karakter.szint - 1, HProlls: karakter.HProlls.slice(0, -1)})
|
changeKarakter({...karakter, szint: karakter.szint - 1, hpRolls: karakter.hpRolls.slice(0, -1)})
|
||||||
}
|
}
|
||||||
|
|
||||||
const changeHProllAtSzint = (szint: number) => (newHProll: number) => {
|
const changeHProllAtSzint = (szint: number) => (newHProll: number) => {
|
||||||
changeKarakter({...karakter, HProlls: arraySetN(karakter.HProlls, szint-2, newHProll)})
|
changeKarakter({...karakter, hpRolls: arraySetN(karakter.hpRolls, szint-2, newHProll)})
|
||||||
console.log(karakter)
|
console.log(karakter)
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -107,7 +107,7 @@ function CreateCharacterPage() {
|
|||||||
/>
|
/>
|
||||||
<KarakterKepzettsegek
|
<KarakterKepzettsegek
|
||||||
availableKepzettsegList={availableKepzettsegList}
|
availableKepzettsegList={availableKepzettsegList}
|
||||||
numberOfKepzettsegek={GetNumberOfKepzettsegek(karakter.tulajdonsagok.t_int, karakter.faj, availableKepzettsegList.length)}
|
numberOfKepzettsegek={GetNumberOfKepzettsegek(tulajdonsagokTotal.t_int, karakter.faj, availableKepzettsegList.length)}
|
||||||
kepzettsegek={karakter.kepzettsegek}
|
kepzettsegek={karakter.kepzettsegek}
|
||||||
changeKepzettsegek={changeKepzettseg}
|
changeKepzettsegek={changeKepzettseg}
|
||||||
tolvajKepzettsegek={karakter.tolvajKepzettsegek || []}
|
tolvajKepzettsegek={karakter.tolvajKepzettsegek || []}
|
||||||
@@ -115,10 +115,10 @@ function CreateCharacterPage() {
|
|||||||
/>
|
/>
|
||||||
|
|
||||||
<hr />
|
<hr />
|
||||||
<MasodlagosErtekek {...CalculateMasodlagosErtekek({...karakter, szint: 1, HProlls: []})} />
|
<MasodlagosErtekek {...CalculateMasodlagosErtekek({...karakter, tulajdonsagok: tulajdonsagokTotal, szint: 1, hpRolls: []})} />
|
||||||
|
|
||||||
{karakter.HProlls.map((_, i) => (
|
{karakter.hpRolls.map((_, i) => i+2).map(szint => (
|
||||||
<BasicNewLevel karakter={{...karakter}} szint={i + 2} key={'level-'+(i+2)} changeRolledHP={changeHProllAtSzint(i+2)} />)
|
<BasicNewLevel karakter={{...karakter}} szint={szint + 2} key={'level-'+(szint+2)} changeRolledHP={changeHProllAtSzint(szint+2)} />)
|
||||||
)}
|
)}
|
||||||
|
|
||||||
<div className='d-grid gap-2 m-5'>
|
<div className='d-grid gap-2 m-5'>
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
import {KarakterTulajdonsagok, TulajdonsagModosito} from "../domain-models/tulajdonsag";
|
import {KarakterTulajdonsagok, TulajdonsagModosito, TulajdonsagokFajjal} from "../domain-models/tulajdonsag";
|
||||||
import {Mentok, MentokAlap, MentoModositok} from "../domain-models/mentok";
|
import {Mentok, MentokAlap, MentoModositok} from "../domain-models/mentok";
|
||||||
import {Kepzettseg, Kepzettsegek} from "../domain-models/kepzettsegek";
|
import {Kepzettseg, Kepzettsegek} from "../domain-models/kepzettsegek";
|
||||||
import {CalculateMasodlagosErtekek} from "../domain-models/masodlagos_ertekek";
|
import {CalculateMasodlagosErtekek} from "../domain-models/masodlagos_ertekek";
|
||||||
@@ -31,8 +31,10 @@ export interface KarakterPdfView {
|
|||||||
}
|
}
|
||||||
|
|
||||||
export function KarakterInputToPdfView(karakter: KarakterInputs): KarakterPdfView {
|
export function KarakterInputToPdfView(karakter: KarakterInputs): KarakterPdfView {
|
||||||
|
const tulajdonsagok = TulajdonsagokFajjal(karakter.tulajdonsagok, karakter.faj)
|
||||||
|
karakter = {...karakter, tulajdonsagok}
|
||||||
|
const tulajdonsagModositok = TulajdonsagModosito(tulajdonsagok)
|
||||||
const masodlagosErtekek = CalculateMasodlagosErtekek(karakter)
|
const masodlagosErtekek = CalculateMasodlagosErtekek(karakter)
|
||||||
const tulajdonsagModositok = TulajdonsagModosito(karakter.tulajdonsagok)
|
|
||||||
const mozgas = karakter.faj === Faj.Torpe ? 20 : 30
|
const mozgas = karakter.faj === Faj.Torpe ? 20 : 30
|
||||||
const kezdemenyezes = tulajdonsagModositok.t_ugy + (karakter.osztaly === Osztaly.Tolvaj ? 4 : 0)
|
const kezdemenyezes = tulajdonsagModositok.t_ugy + (karakter.osztaly === Osztaly.Tolvaj ? 4 : 0)
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user