-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
## Description <!-- Describe your changes in detail --> <!-- Does this fix a bug, implement a new feature, etc? --> ### Related Issue(s) - Removes .d.ts file in favor of defining types alongside their main usage - refactors code due to typescript warnings / errors <!-- Reference the issue this PR relates to --> <!-- Use keywords if possible (ex. Closes #10 ) --> <!-- https://docs.github.com/en/get-started/writing-on-github/working-with-advanced-formatting/using-keywords-in-issues-and-pull-requests --> ## Screenshots <!-- (if applicable) -->
- Loading branch information
Showing
10 changed files
with
212 additions
and
215 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,26 +1,60 @@ | ||
import traitsData from './data/traits.json' | ||
import { Randomization } from '../dice' | ||
|
||
export type Noun = | ||
| 'physique' | ||
| 'face' | ||
| 'skin' | ||
| 'hair' | ||
| 'clothing' | ||
| 'virtue' | ||
| 'vice' | ||
| 'speech' | ||
| 'background' | ||
| 'misfortune' | ||
|
||
export type Traits = Record<Noun, string> | ||
|
||
class Description { | ||
public traits | ||
public traits: Traits | ||
|
||
constructor() { | ||
this.traits = this.generateRandomTraits() | ||
} | ||
|
||
private generateRandomTraits() { | ||
const nouns: string[] = Object.keys(traitsData) | ||
private generateRandomTraits = () => { | ||
const defaultTraits: Traits = { | ||
physique: '', | ||
face: '', | ||
skin: '', | ||
hair: '', | ||
clothing: '', | ||
virtue: '', | ||
vice: '', | ||
speech: '', | ||
background: '', | ||
misfortune: '', | ||
} | ||
|
||
const parsedTraitData = this.getTraitData() | ||
|
||
const randomTraits: Record<INoun, string> = nouns.reduce( | ||
(acc: Record<string, string>, curr: string) => { | ||
acc[curr] = Randomization.getRandomItem(traitsData[curr as INoun]) | ||
return acc | ||
}, | ||
{}, | ||
) | ||
const nouns = Object.keys(parsedTraitData) | ||
|
||
const randomTraits = nouns.reduce((acc, curr) => { | ||
const currentTrait = curr as Noun | ||
const randomTraitValue = Randomization.getRandomItem( | ||
parsedTraitData[currentTrait], | ||
) | ||
acc[currentTrait] = randomTraitValue | ||
return acc | ||
}, defaultTraits) | ||
|
||
return randomTraits | ||
} | ||
|
||
private getTraitData = () => { | ||
return traitsData satisfies Record<Noun, string[]> | ||
} | ||
} | ||
|
||
export default Description |
Oops, something went wrong.