level 3 maybe?

This commit is contained in:
2023-09-23 22:43:27 +02:00
parent a991521899
commit e53e193e7d
8 changed files with 47 additions and 38 deletions
@@ -27,18 +27,26 @@ function UjMento(props : {tipus: MentoTipus, ujMentok: Mentok, regiMentok: Mento
</div>; </div>;
} }
function Level2(props: { function BasicNewLevel(props: {
karakter: KarakterInputs karakter: KarakterInputs
rolledHP: number szint: number
changeRolledHP: (hp: number) => void, changeRolledHP: (hp: number) => void,
}) { }) {
const {karakter, changeRolledHP} = props const {karakter, szint, changeRolledHP} = props
const regiMentok = MentokTotal({...karakter, szint: karakter.szint - 1}) const regiMentok = MentokTotal({...karakter, szint: szint - 1})
const ujMentok = MentokTotal(karakter) const ujMentok = MentokTotal({...karakter, szint: szint})
const regiTB = TamadasBonusz(karakter.osztaly, szint-1)
const ujTB = TamadasBonusz(karakter.osztaly, szint)
if (regiTB.length < ujTB.length) {
regiTB.push(0)
}
const TBdiff = ujTB.map((x, i) => x - regiTB[i])
const isTBincreased = TBdiff.some(x => x > 0)
return <> return <>
<div className='row'> <div className='row'>
<h5 className='col align-self-center'>2. Szint</h5> <h5 className='col align-self-center'>{szint}. Szint</h5>
</div> </div>
<div className='row'> <div className='row'>
<div className='col-lg-6'> <div className='col-lg-6'>
@@ -49,16 +57,16 @@ function Level2(props: {
className='form-control' className='form-control'
maxLength={2} maxLength={2}
type='number' type='number'
value={karakter.HProlls[0]} 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))} />
</div> </div>
</div> </div>
<div className='row m-2'> { isTBincreased && <div className='row m-2'>
<label className='col-sm-6 col-8 col-form-label'>Támadás bónusz növekedés{' '}</label> <label className='col-sm-6 col-8 col-form-label'>Támadás bónusz növekedés{' '}</label>
<span className='col col-form-label'>+1</span> <span className='col col-form-label'>{TBdiff.map(SignedNumberToText).join(" / ")}</span>
</div> </div>}
<MentoNovekedes tipus={'kitartas'} ujMentok={ujMentok} regiMentok={regiMentok} /> <MentoNovekedes tipus={'kitartas'} ujMentok={ujMentok} regiMentok={regiMentok} />
<MentoNovekedes tipus={'reflex'} ujMentok={ujMentok} regiMentok={regiMentok} /> <MentoNovekedes tipus={'reflex'} ujMentok={ujMentok} regiMentok={regiMentok} />
<MentoNovekedes tipus={'akaratero'} ujMentok={ujMentok} regiMentok={regiMentok} /> <MentoNovekedes tipus={'akaratero'} ujMentok={ujMentok} regiMentok={regiMentok} />
@@ -66,12 +74,12 @@ function Level2(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)}</span> <span className='col col-form-label'>{HP({...karakter, HProlls: karakter.HProlls.slice(0, szint-1)})}</span>
</div> </div>
<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>
<span className='col col-form-label'>{TamadasBonusz(karakter.osztaly, karakter.szint).map(SignedNumberToText).join("/")}</span> <span className='col col-form-label'>{ujTB.map(SignedNumberToText).join(" / ")}</span>
</div> </div>}
<UjMento tipus={'kitartas'} ujMentok={ujMentok} regiMentok={regiMentok} /> <UjMento tipus={'kitartas'} ujMentok={ujMentok} regiMentok={regiMentok} />
<UjMento tipus={'reflex'} ujMentok={ujMentok} regiMentok={regiMentok} /> <UjMento tipus={'reflex'} ujMentok={ujMentok} regiMentok={regiMentok} />
<UjMento tipus={'akaratero'} ujMentok={ujMentok} regiMentok={regiMentok} /> <UjMento tipus={'akaratero'} ujMentok={ujMentok} regiMentok={regiMentok} />
@@ -80,4 +88,4 @@ function Level2(props: {
</> </>
} }
export default Level2 export default BasicNewLevel
+1 -9
View File
@@ -6,13 +6,8 @@ import {
KepzettsegId, KepzettsegId,
TolvajKepzettsegList, TolvajKepzettsegList,
} from "../domain-models/kepzettsegek"; } from "../domain-models/kepzettsegek";
import {arraySetN} from "../util";
function arraySetN<T>(array: T[], n: number, elem: T): T[] {
if (array.length < n || n < 0) {
return array
}
return [...array.slice(0, n), elem, ...array.slice(n+1)]
}
function InternalKepzettsegekSelector(props: { function InternalKepzettsegekSelector(props: {
title: string, title: string,
@@ -39,8 +34,6 @@ function InternalKepzettsegekSelector(props: {
}) })
} }
console.log(preCalculated)
return <> return <>
<div className='row'> <div className='row'>
<div className='col-lg-2 col-md-12'> <div className='col-lg-2 col-md-12'>
@@ -61,7 +54,6 @@ function InternalKepzettsegekSelector(props: {
} }
function KarakterKepzettsegek (props: { function KarakterKepzettsegek (props: {
availableKepzettsegList: Kepzettseg[], availableKepzettsegList: Kepzettseg[],
numberOfKepzettsegek: number numberOfKepzettsegek: number
+2 -1
View File
@@ -12,7 +12,8 @@ function MasodlagosErtekek(props: MasodlagosErtekekView) {
<strong>Hentelési Potenciál</strong> <strong>Hentelési Potenciál</strong>
</Tooltip> </Tooltip>
); );
//const mentok = karakter.MentokTulajdonsaggal(1)
console.log(Mentok)
return <> return <>
<div className='row'> <div className='row'>
+2 -2
View File
@@ -44,7 +44,7 @@ function OsztalySelector(props: {currentFaj: Faj, currentOsztaly: Osztaly, chang
</ul> </ul>
<div className='col'> <div className='col'>
{OsztalySpecialSkills(currentOsztaly).map(skill => {OsztalySpecialSkills(currentOsztaly).map(skill =>
<p key={skill.Id} > <div key={skill.Id} >
<strong className='d-inline'> <strong className='d-inline'>
{skill.Name} {skill.Name}
</strong> </strong>
@@ -56,7 +56,7 @@ function OsztalySelector(props: {currentFaj: Faj, currentOsztaly: Osztaly, chang
(<li key={skill.Id + '-' + i}>{ext}</li>))} (<li key={skill.Id + '-' + i}>{ext}</li>))}
</ul> </ul>
)} )}
</p> </div>
)} )}
</div> </div>
</div> </div>
+2 -2
View File
@@ -216,15 +216,15 @@ export function AvailableKezpettsegList(osztaly: Osztaly): Kepzettseg[] {
export function GetNumberOfKepzettsegek(t_int: number, faj: Faj, max: number) { export function GetNumberOfKepzettsegek(t_int: number, faj: Faj, max: number) {
let numberOfKepzettseg = 3 + Modifier(t_int) + (faj === Faj.Ember ? 1 : 0) let numberOfKepzettseg = 3 + Modifier(t_int) + (faj === Faj.Ember ? 1 : 0)
console.log('Raw Number of Kepzetsegek = ', numberOfKepzettseg)
if (numberOfKepzettseg < 1) { if (numberOfKepzettseg < 1) {
numberOfKepzettseg = 1 numberOfKepzettseg = 1
console.log('Adjusted Number of Kepzetsegek = ', numberOfKepzettseg)
} }
if (numberOfKepzettseg > max) { if (numberOfKepzettseg > max) {
numberOfKepzettseg = max numberOfKepzettseg = max
console.log('Adjusted Number of Kepzetsegek = ', numberOfKepzettseg)
} }
console.log('Adjusted Number of Kepzetsegek = ', numberOfKepzettseg)
return numberOfKepzettseg; return numberOfKepzettseg;
} }
+2 -1
View File
@@ -54,6 +54,7 @@ export function ElsodlegesMentok(osztaly: Osztaly) : MentoTipus[] {
export function MentokAlap(osztaly: Osztaly, szint: number = 1) { export function MentokAlap(osztaly: Osztaly, szint: number = 1) {
const elsodlegesek = ElsodlegesMentok(osztaly) const elsodlegesek = ElsodlegesMentok(osztaly)
console.log(elsodlegesek)
return { return {
kitartas: elsodlegesek.includes('kitartas') ? ElsodlegesMento(szint) : MasodlagosMento(szint), kitartas: elsodlegesek.includes('kitartas') ? ElsodlegesMento(szint) : MasodlagosMento(szint),
reflex: elsodlegesek.includes('reflex') ? ElsodlegesMento(szint) : MasodlagosMento(szint), reflex: elsodlegesek.includes('reflex') ? ElsodlegesMento(szint) : MasodlagosMento(szint),
@@ -74,7 +75,7 @@ export function MentokTotal(karakter: Pick<KarakterInputs, 'osztaly' | 'szint' |
const modositok = MentoModositok(TulajdonsagModosito(karakter.tulajdonsagok)) const modositok = MentoModositok(TulajdonsagModosito(karakter.tulajdonsagok))
return { return {
kitartas: alap.kitartas + modositok.kitartas, kitartas: alap.kitartas + modositok.kitartas,
reflex: alap.kitartas + modositok.kitartas, reflex: alap.reflex + modositok.reflex,
akaratero: alap.akaratero + modositok.akaratero, akaratero: alap.akaratero + modositok.akaratero,
} }
} }
+9 -8
View File
@@ -15,10 +15,11 @@ import {
} from "../domain-models/kepzettsegek"; } from "../domain-models/kepzettsegek";
import {CreatePDF} from "../pdf/character.pdf"; import {CreatePDF} from "../pdf/character.pdf";
import {KarakterDefaults} from "../domain-models/karakter"; import {KarakterDefaults} from "../domain-models/karakter";
import Level2 from "../components/Level2"; import BasicNewLevel from "../components/BasicNewLevel";
import {dAny} from "../domain-models/kockak"; import {dAny} from "../domain-models/kockak";
import {BaseHP, CalculateMasodlagosErtekek} from "../domain-models/masodlagos_ertekek"; import {BaseHP, CalculateMasodlagosErtekek} from "../domain-models/masodlagos_ertekek";
import {KarakterInputToPdfView} from "../pdf/karakter_pdf_view"; import {KarakterInputToPdfView} from "../pdf/karakter_pdf_view";
import {arraySetN} from "../util";
function CreateCharacterPage() { function CreateCharacterPage() {
@@ -44,13 +45,11 @@ function CreateCharacterPage() {
changeKarakter({...karakter, szint: karakter.szint - 1, HProlls: karakter.HProlls.slice(0, -1)}) changeKarakter({...karakter, szint: karakter.szint - 1, HProlls: karakter.HProlls.slice(0, -1)})
} }
function chageLevel2HProll(newHProll: number) { const changeHProllAtSzint = (szint: number) => (newHProll: number) => {
changeKarakter({...karakter, HProlls: [newHProll, ...karakter.HProlls.slice(1)]}) changeKarakter({...karakter, HProlls: arraySetN(karakter.HProlls, szint-2, newHProll)})
console.log(karakter) console.log(karakter)
} }
const masodlagosErtekek = CalculateMasodlagosErtekek({...karakter, szint: 1, HProlls: []})
return ( return (
<div> <div>
<div className='container-fluid p-5 bg-black text-white text-center'> <div className='container-fluid p-5 bg-black text-white text-center'>
@@ -116,12 +115,14 @@ function CreateCharacterPage() {
/> />
<hr /> <hr />
<MasodlagosErtekek {...masodlagosErtekek} /> <MasodlagosErtekek {...CalculateMasodlagosErtekek({...karakter, szint: 1, HProlls: []})} />
{karakter.szint > 1 && <Level2 karakter={{...karakter}} rolledHP={karakter.HProlls[0]} changeRolledHP={chageLevel2HProll} /> } {karakter.szint > 1 && <BasicNewLevel karakter={{...karakter}} szint={2} key='level-2' changeRolledHP={changeHProllAtSzint(2)} /> }
{karakter.szint > 2 && <BasicNewLevel karakter={{...karakter}} szint={3} key='level-3' changeRolledHP={changeHProllAtSzint(3)} /> }
<div className='d-grid gap-2 m-5'> <div className='d-grid gap-2 m-5'>
{karakter.szint < 2 && <button className='btn btn-dark btn-lg' type='button' onClick={levelUp}>Szintlépés! </button> } {karakter.szint < 3 && <button className='btn btn-dark btn-lg' type='button' onClick={levelUp}>Szintlépés! </button> }
{karakter.szint > 1 && <button className='btn btn-dark btn-lg' type='button' onClick={levelDown}>Visszalépés! </button> } {karakter.szint > 1 && <button className='btn btn-dark btn-lg' type='button' onClick={levelDown}>Visszalépés! </button> }
</div> </div>
+6
View File
@@ -0,0 +1,6 @@
export function arraySetN<T>(array: T[], n: number, elem: T): T[] {
if (array.length < n || n < 0) {
return array
}
return [...array.slice(0, n), elem, ...array.slice(n+1)]
}