@opendnd/genetica
Version:
This is a tool for using a simplified genetics system to generate inheritable traits for DnD characters.
106 lines (105 loc) • 2.85 kB
TypeScript
import { DiceAndSex, DNA, Genders, ILinkRace, IRace } from "@opendnd/core";
import { IGeneticaDefaults } from "./defaults";
import "./extensions";
export interface IGeneticaOpts {
defaults?: IGeneticaDefaults;
race?: ILinkRace;
gender?: Genders;
mutation?: string;
}
declare class Genetica {
static load(filepath: any): any;
static loadSeed(filepath: any): any;
defaults: IGeneticaDefaults;
opts: IGeneticaOpts;
race: IRace;
gender: Genders;
constructor(opts?: IGeneticaOpts);
validateOpts(opts?: IGeneticaOpts): IGeneticaOpts;
resetOpts(): void;
mapChromosomesToOpts(chromosomes?: {}): {};
generateChildChromosomes(motherChromosomes?: {}, fatherChromosomes?: {}): {
1?: DiceAndSex;
2?: DiceAndSex;
3?: DiceAndSex;
4?: DiceAndSex;
5?: DiceAndSex;
6?: DiceAndSex;
7?: DiceAndSex;
8?: DiceAndSex;
9?: DiceAndSex;
10?: DiceAndSex;
11?: DiceAndSex;
12?: DiceAndSex;
13?: DiceAndSex;
14?: DiceAndSex;
15?: DiceAndSex;
16?: DiceAndSex;
17?: DiceAndSex;
18?: DiceAndSex;
19?: DiceAndSex;
20?: DiceAndSex;
21?: DiceAndSex;
22?: DiceAndSex;
23?: DiceAndSex;
24?: DiceAndSex;
25?: DiceAndSex;
26?: DiceAndSex;
27?: DiceAndSex;
28?: DiceAndSex;
29?: DiceAndSex;
30?: DiceAndSex;
31?: DiceAndSex;
32?: DiceAndSex;
};
generateParentChromosomes(childChromosomes?: {}): {
fatherChromosomes: {};
motherChromosomes: {};
};
generateChromosomes(): {
1?: DiceAndSex;
2?: DiceAndSex;
3?: DiceAndSex;
4?: DiceAndSex;
5?: DiceAndSex;
6?: DiceAndSex;
7?: DiceAndSex;
8?: DiceAndSex;
9?: DiceAndSex;
10?: DiceAndSex;
11?: DiceAndSex;
12?: DiceAndSex;
13?: DiceAndSex;
14?: DiceAndSex;
15?: DiceAndSex;
16?: DiceAndSex;
17?: DiceAndSex;
18?: DiceAndSex;
19?: DiceAndSex;
20?: DiceAndSex;
21?: DiceAndSex;
22?: DiceAndSex;
23?: DiceAndSex;
24?: DiceAndSex;
25?: DiceAndSex;
26?: DiceAndSex;
27?: DiceAndSex;
28?: DiceAndSex;
29?: DiceAndSex;
30?: DiceAndSex;
31?: DiceAndSex;
32?: DiceAndSex;
};
generateHeightAndWeight(race: IRace): {
height: any;
weight: number;
};
generateTraits(chromosomes?: {}): {};
generateChild(opts: IGeneticaOpts, motherDNA: DNA, fatherDNA: DNA): DNA;
generateParents(childDNA: DNA): {
fatherDNA: DNA;
motherDNA: DNA;
};
generate(opts?: IGeneticaOpts): DNA;
}
export default Genetica;