{"version":3,"file":"index.mjs","sources":["../src/enumerations.ts","../src/aspect.ts","../src/likes.ts"],"sourcesContent":["export enum AgeKind\r\n{\r\n    Kid,\r\n    Teenager,\r\n    Young,\r\n    Midage,\r\n    Old\r\n}\r\n\r\nexport enum ComplexionKind\r\n{\r\n    Skinny,\r\n    Thin,\r\n    Fat,\r\n    Athletic,\r\n    Strongman\r\n}\r\n\r\nexport enum EyeColor\r\n{\r\n    Black,\r\n    Brown,\r\n    Blue,\r\n    Green\r\n}\r\n\r\nexport enum HairColor\r\n{\r\n    White,\r\n    Black,\r\n    Brown,\r\n    Red,\r\n    Blond,\r\n    Blue\r\n}\r\n\r\nexport enum HaircutStyle\r\n{\r\n    Shaved,\r\n    Short,\r\n    StraightLong,\r\n    CurvyLong,\r\n    Bald\r\n}\r\n\r\nexport enum OriginKind\r\n{\r\n    European,\r\n    African,\r\n    Asian,\r\n    American,\r\n    Arabic,\r\n    Oceanic\r\n}\r\n\r\nexport enum SexKind\r\n{\r\n    Male,\r\n    Female,\r\n    Androgynous\r\n}\r\n\r\nexport enum SpecieKind\r\n{\r\n    Human,\r\n    Dwarf,\r\n    Elf,\r\n    Goblin,\r\n    Orc,\r\n    Troll\r\n}\r\n\r\nexport const Complexions: ComplexionKind[] = [\r\n    ComplexionKind.Athletic,\r\n    ComplexionKind.Fat,\r\n    ComplexionKind.Skinny,\r\n    ComplexionKind.Strongman,\r\n    ComplexionKind.Thin\r\n];\r\n\r\nexport const Eyes: EyeColor[] = [\r\n    EyeColor.Black,\r\n    EyeColor.Blue,\r\n    EyeColor.Brown,\r\n    EyeColor.Green\r\n];\r\n\r\nexport const HairColors: HairColor[] = [\r\n    HairColor.Black,\r\n    HairColor.Blond,\r\n    HairColor.Blue,\r\n    HairColor.Brown,\r\n    HairColor.Red,\r\n    HairColor.White\r\n];\r\n\r\nexport const HairCuts: HaircutStyle[] = [\r\n    HaircutStyle.Bald,\r\n    HaircutStyle.CurvyLong,\r\n    HaircutStyle.Shaved,\r\n    HaircutStyle.Short,\r\n    HaircutStyle.StraightLong\r\n];\r\n\r\nexport const Origins: OriginKind[] = [\r\n    OriginKind.African,\r\n    OriginKind.American,\r\n    OriginKind.Arabic,\r\n    OriginKind.Asian,\r\n    OriginKind.European,\r\n    OriginKind.Oceanic\r\n];\r\n\r\nexport const Sexes: SexKind[] = [\r\n    SexKind.Androgynous,\r\n    SexKind.Female,\r\n    SexKind.Male\r\n];\r\n\r\nexport const Species: SpecieKind[] = [\r\n    SpecieKind.Dwarf,\r\n    SpecieKind.Elf,\r\n    SpecieKind.Goblin,\r\n    SpecieKind.Human,\r\n    SpecieKind.Orc,\r\n    SpecieKind.Troll\r\n];\r\n\r\nexport const GoodSpecies: SpecieKind[] = [\r\n    SpecieKind.Dwarf,\r\n    SpecieKind.Elf,\r\n    SpecieKind.Human\r\n];\r\n\r\nexport const BadSpecies: SpecieKind[] = [\r\n    SpecieKind.Human,\r\n    SpecieKind.Goblin,\r\n    SpecieKind.Orc,\r\n    SpecieKind.Troll\r\n];\r\n\r\nexport const Ages: AgeKind[] = [\r\n    AgeKind.Kid,\r\n    AgeKind.Midage,\r\n    AgeKind.Old,\r\n    AgeKind.Teenager,\r\n    AgeKind.Young\r\n];\r\n\r\nexport function getAgeKind(age: number): AgeKind{\r\n    if(age >= 12 && age <= 18) return AgeKind.Teenager;\r\n    else if(age >= 19 && age <= 35) return AgeKind.Young;\r\n    else if(age >= 36 && age <= 65) return AgeKind.Midage;\r\n    else if(age >= 66) return AgeKind.Old;\r\n    else return AgeKind.Kid;\r\n}","import {\r\n    AgeKind, \r\n    EyeColor, \r\n    ComplexionKind, \r\n    HairColor, \r\n    HaircutStyle, \r\n    OriginKind, \r\n    SexKind, \r\n    SpecieKind,\r\n    Sexes,\r\n    Origins,\r\n    Eyes,\r\n    HairColors,\r\n    HairCuts,\r\n    Complexions,\r\n    Species,\r\n    Ages\r\n} from \"./enumerations\";\r\nimport { random, randomFromList } from \"role-methods\";\r\n\r\nexport class Aspect{\r\n    private _sex: SexKind;\r\n    private _origin: OriginKind;\r\n    private _eye: EyeColor;\r\n    private _hair: HairColor;\r\n    private _haircut: HaircutStyle;\r\n    private _complexion: ComplexionKind;\r\n    private _specie: SpecieKind;\r\n    private _height: number;\r\n    private _age: number;\r\n\r\n    constructor(\r\n        sex: SexKind = SexKind.Male,\r\n        origin: OriginKind = OriginKind.European,\r\n        eye: EyeColor = EyeColor.Black,\r\n        hair: HairColor = HairColor.Black,\r\n        haircut: HaircutStyle = HaircutStyle.Shaved,\r\n        complexion: ComplexionKind = ComplexionKind.Thin,\r\n        specie: SpecieKind = SpecieKind.Human,\r\n        height: number = 180,\r\n        age: number = 30)\r\n    {\r\n        this._sex = sex;\r\n        this._origin = origin;\r\n        this._eye = eye;\r\n        this._hair = hair;\r\n        this._haircut = haircut;\r\n        this._complexion = complexion;\r\n        this._height = height;\r\n        this._age = age;\r\n        this._specie = specie;\r\n    }\r\n\r\n    get sex(){\r\n        return this._sex;\r\n    }\r\n\r\n    get origin(){\r\n        return this._origin;\r\n    }\r\n\r\n    get eye(){\r\n        return this._eye;\r\n    }\r\n\r\n    get hair(){\r\n        return this._hair;\r\n    }\r\n\r\n    get haircut(){\r\n        return this._haircut;\r\n    }\r\n\r\n    get complexion(){\r\n        return this._complexion;\r\n    }\r\n\r\n    get specie(){\r\n        return this._specie;\r\n    }\r\n\r\n    get height(){\r\n        return this._height;\r\n    }\r\n\r\n    get age(){\r\n        return this._age;\r\n    }\r\n\r\n    static generateHuman(\r\n        sex: SexKind,\r\n        origin: OriginKind,\r\n        eye: EyeColor,\r\n        hair: HairColor,\r\n        haircut: HaircutStyle,\r\n        complexion: ComplexionKind,\r\n        height: number,\r\n        age: number): Aspect{\r\n        \r\n        return new Aspect(\r\n            sex,\r\n            origin,\r\n            eye,\r\n            hair,\r\n            haircut,\r\n            complexion,\r\n            SpecieKind.Human,\r\n            height,\r\n            age\r\n        );\r\n    }\r\n\r\n    static generateAgeKindHuman(\r\n        sex: SexKind,\r\n        origin: OriginKind,\r\n        eye: EyeColor,\r\n        hair: HairColor,\r\n        haircut: HaircutStyle,\r\n        complexion: ComplexionKind,\r\n        height: number,\r\n        ageKind: AgeKind): Aspect{\r\n        \r\n        return this.generateHuman(\r\n            sex,\r\n            origin,\r\n            eye,\r\n            hair,\r\n            haircut,\r\n            complexion,\r\n            height,\r\n            this.getRandomAgeByAgeKind(ageKind)\r\n        );\r\n    }\r\n\r\n    static generateRandomAgeKind(ageKind: AgeKind): Aspect{\r\n        \r\n        let selectedSpecie = randomFromList(Species);\r\n        return new Aspect(\r\n            randomFromList(Sexes),\r\n            randomFromList(Origins),\r\n            randomFromList(Eyes),\r\n            randomFromList(HairColors),\r\n            randomFromList(HairCuts),\r\n            randomFromList(Complexions),\r\n            selectedSpecie,\r\n            this.getRandomHeightBySpecie(selectedSpecie),\r\n            this.getRandomAgeByAgeKind(ageKind));\r\n    }\r\n\r\n    static generateOriginHuman(origin: OriginKind): Aspect{\r\n        return this.generateOriginAndSexHuman(\r\n            origin,\r\n            randomFromList(Sexes));\r\n    }\r\n\r\n    static generateRandomSpecie(specie: SpecieKind): Aspect{\r\n        return this.generateRandomSpecieAndSex(\r\n            specie, \r\n            randomFromList(Sexes));\r\n    }\r\n\r\n    static generateOriginAndSexHuman(origin: OriginKind, sex: SexKind): Aspect{\r\n        return this.generateOriginAgeAndSexHuman(\r\n            origin, \r\n            randomFromList(Ages), \r\n            sex);\r\n    }\r\n\r\n    static generateOriginAndAgeHuman(origin: OriginKind, age: AgeKind): Aspect{\r\n        return this.generateOriginAgeAndSexHuman(\r\n            origin, \r\n            age, \r\n            randomFromList(Sexes));\r\n    }\r\n\r\n    static generateOriginAgeAndSexHuman(origin: OriginKind, age: AgeKind, sex: SexKind): Aspect{\r\n        return new Aspect(\r\n            sex,\r\n            origin,\r\n            randomFromList(Eyes),\r\n            randomFromList(HairColors),\r\n            randomFromList(HairCuts),\r\n            randomFromList(Complexions),\r\n            SpecieKind.Human,\r\n            this.getRandomHeightBySpecie(SpecieKind.Human),\r\n            this.getRandomAgeByAgeKind(age));\r\n    }\r\n\r\n    static generateRandomSpecieAndSex(specie: SpecieKind, sex: SexKind): Aspect{\r\n        return this.generateRandomSpecieAgeAndSex(\r\n            specie, \r\n            randomFromList(Ages), \r\n            sex);\r\n    }\r\n\r\n    static generateRandomSpecieAndAge(specie: SpecieKind, age: AgeKind): Aspect{\r\n        return this.generateRandomSpecieAgeAndSex(\r\n            specie, \r\n            age, \r\n            randomFromList(Sexes));\r\n    }\r\n\r\n    static generateRandomSpecieAgeAndSex(specie: SpecieKind, age: AgeKind, sex: SexKind): Aspect{\r\n        return new Aspect(\r\n            sex,\r\n            randomFromList(Origins),\r\n            randomFromList(Eyes),\r\n            randomFromList(HairColors),\r\n            randomFromList(HairCuts),\r\n            randomFromList(Complexions),\r\n            specie,\r\n            this.getRandomHeightBySpecie(specie),\r\n            this.getRandomAgeByAgeKind(age));\r\n    }\r\n\r\n    copy(): Aspect{\r\n        return new Aspect(\r\n            this._sex, \r\n            this._origin, \r\n            this._eye, this._hair, \r\n            this._haircut, \r\n            this._complexion, \r\n            this._specie, \r\n            this._height, \r\n            this._age);\r\n    }\r\n\r\n    private static getRandomAgeByAgeKind(age: AgeKind): number{\r\n        switch(age){\r\n            case AgeKind.Kid:\r\n                return 5 + random(6);\r\n            case AgeKind.Teenager:\r\n                return 12 + random(6);\r\n            case AgeKind.Young:\r\n                return 19 + random(16);\r\n            case AgeKind.Midage:\r\n                return 36 + random(29);\r\n            case AgeKind.Old:\r\n                return 66 + random(34);\r\n        }\r\n    }\r\n\r\n    private static getRandomHeightBySpecie(specie: SpecieKind): number\r\n    {\r\n        let baseHeight = 150;\r\n        let increase = 51; \r\n        \r\n        if(specie == SpecieKind.Dwarf || specie == SpecieKind.Goblin)\r\n        {\r\n            baseHeight = 100;\r\n            increase = 61;\r\n        }\r\n        \r\n        return baseHeight + random(increase);\r\n    }\r\n}","import { random } from \"role-methods\";\r\nimport { Aspect } from \"./aspect\";\r\nimport { \r\n    SexKind, \r\n    OriginKind, \r\n    EyeColor, \r\n    HairColor, \r\n    HaircutStyle, \r\n    ComplexionKind, \r\n    SpecieKind, \r\n    AgeKind, \r\n    Sexes, \r\n    Ages, \r\n    Complexions, \r\n    Eyes, \r\n    HairColors, \r\n    HairCuts, \r\n    Origins, \r\n    Species,\r\n    getAgeKind\r\n} from \"./enumerations\";\r\n\r\nconst MaxLike = 100;\r\nconst MinLike = 0;\r\n\r\nexport class Likes{\r\n    private _sexMap: Map<SexKind, number>;\r\n    private _originMap: Map<OriginKind, number>;\r\n    private _eyeColorMap: Map<EyeColor, number>;\r\n    private _hairColorMap: Map<HairColor, number>;\r\n    private _hairCutMap: Map<HaircutStyle, number>;\r\n    private _complexionMap: Map<ComplexionKind, number>;\r\n    private _specieMap: Map<SpecieKind, number>;\r\n    private _ageMap: Map<AgeKind, number>;\r\n\r\n    constructor(){\r\n        this._sexMap = new Map<SexKind, number>();\r\n        this._originMap = new Map<OriginKind, number>();\r\n        this._eyeColorMap = new Map<EyeColor, number>();\r\n        this._hairColorMap = new Map<HairColor, number>();\r\n        this._hairCutMap = new Map<HaircutStyle, number>();\r\n        this._complexionMap = new Map<ComplexionKind, number>();\r\n        this._specieMap = new Map<SpecieKind, number>();\r\n        this._ageMap = new Map<AgeKind, number>();\r\n\r\n        this.initializeMaps();\r\n    }\r\n\r\n    static likesSpecie(specie: SpecieKind): Likes{\r\n        let likes = new Likes();\r\n        \r\n        this.minimizeAspectMap(likes._specieMap);\r\n        likes._specieMap.set(specie, MaxLike);\r\n        \r\n        return likes;\r\n    }\r\n\r\n    static likesSex(sex: SexKind): Likes{\r\n        let likes = new Likes();\r\n        \r\n        this.minimizeAspectMap(likes._sexMap);\r\n        likes._sexMap.set(sex, MaxLike);\r\n        \r\n        return likes;\r\n    }\r\n\r\n    static likesSpecieAndSex(specie: SpecieKind, sex: SexKind): Likes{\r\n        let likes = this.likesSpecie(specie);\r\n        \r\n        this.minimizeAspectMap(likes._sexMap);\r\n        likes._sexMap.set(sex, MaxLike);\r\n        \r\n        return likes;\r\n    }\r\n\r\n    static likesConcreteHuman(\r\n        sex: SexKind,\r\n        preferredOrigin: OriginKind, \r\n        preferredEye: EyeColor, \r\n        preferredHair: HairColor, \r\n        preferredHaircut: HaircutStyle,\r\n        preferredComplexion: ComplexionKind,\r\n        preferredAge: AgeKind): Likes{\r\n        \r\n        return this.likesConcreteSpecie(\r\n            SpecieKind.Human,\r\n            sex,\r\n            preferredOrigin,\r\n            preferredEye,\r\n            preferredHair,\r\n            preferredHaircut,\r\n            preferredComplexion,\r\n            preferredAge);\r\n    }\r\n\r\n    static likesConcreteSpecie(\r\n        specie: SpecieKind,\r\n        sex: SexKind,\r\n        preferredOrigin: OriginKind, \r\n        preferredEye: EyeColor, \r\n        preferredHair: HairColor, \r\n        preferredHaircut: HaircutStyle,\r\n        preferredComplexion: ComplexionKind,\r\n        preferredAge: AgeKind): Likes{\r\n        let likes = this.likesSpecieAndSex(specie, sex);\r\n        \r\n        likes._originMap.set(preferredOrigin, MaxLike);\r\n        likes._eyeColorMap.set(preferredEye, MaxLike);\r\n        likes._hairColorMap.set(preferredHair, MaxLike);\r\n        likes._hairCutMap.set(preferredHaircut, MaxLike);\r\n        likes._complexionMap.set(preferredComplexion, MaxLike);\r\n        likes._ageMap.set(preferredAge, MaxLike);\r\n\r\n        return likes;\r\n    }\r\n\r\n    static likesAspect(aspect: Aspect){\r\n        let likes = new Likes();\r\n\r\n        likes._specieMap.set(aspect.specie, MaxLike);\r\n        likes._sexMap.set(aspect.sex, MaxLike);\r\n        likes._originMap.set(aspect.origin, MaxLike);\r\n        likes._eyeColorMap.set(aspect.eye, MaxLike);\r\n        likes._hairColorMap.set(aspect.hair, MaxLike);\r\n        likes._hairCutMap.set(aspect.haircut, MaxLike);\r\n        likes._complexionMap.set(aspect.complexion, MaxLike);\r\n        likes._ageMap.set(getAgeKind(aspect.age), MaxLike);\r\n        \r\n        return likes;\r\n    }\r\n\r\n    Eval(aspect: Aspect): number{\r\n        let sum = this._sexMap.get(aspect.sex) * 4;\r\n        sum += this._originMap.get(aspect.origin);\r\n        sum += this._eyeColorMap.get(aspect.eye);\r\n        sum += this._hairColorMap.get(aspect.hair);\r\n        sum += this._hairCutMap.get(aspect.haircut);\r\n        sum += this._complexionMap.get(aspect.complexion);\r\n        sum += this._ageMap.get(getAgeKind(aspect.age));\r\n        sum += this._specieMap.get(aspect.specie) * 4;\r\n        \r\n        return sum / 14;\r\n    }\r\n\r\n    private initializeMaps(): void{\r\n        this.initializeAspectMap(this._sexMap, Sexes);\r\n        this.initializeAspectMap(this._originMap, Origins);\r\n        this.initializeAspectMap(this._eyeColorMap, Eyes);\r\n        this.initializeAspectMap(this._hairColorMap, HairColors);\r\n        this.initializeAspectMap(this._hairCutMap, HairCuts);\r\n        this.initializeAspectMap(this._complexionMap, Complexions);\r\n        this.initializeAspectMap(this._specieMap, Species);\r\n        this.initializeAspectMap(this._ageMap, Ages);\r\n    }\r\n\r\n    private initializeAspectMap<T>(map: Map<T, number>, values: T[]): void {\r\n        for(let value of values){\r\n            map.set(value, random(MaxLike));\r\n        }\r\n    }\r\n\r\n    private static minimizeAspectMap<T>(map: Map<T, number>): void {\r\n        for(let key of map.keys()){\r\n            map.set(key, MinLike);\r\n        }\r\n    }\r\n\r\n    copy(): Likes{\r\n        let copy = new Likes();\r\n\r\n        Likes.copyMap(this._sexMap, copy._sexMap);\r\n        Likes.copyMap(this._originMap, copy._originMap);\r\n        Likes.copyMap(this._eyeColorMap, copy._eyeColorMap);\r\n        Likes.copyMap(this._hairColorMap, copy._hairColorMap);\r\n        Likes.copyMap(this._hairCutMap, copy._hairCutMap);\r\n        Likes.copyMap(this._complexionMap, copy._complexionMap);\r\n        Likes.copyMap(this._specieMap, copy._specieMap);\r\n        Likes.copyMap(this._ageMap, copy._ageMap);\r\n\r\n        return copy;\r\n    }\r\n\r\n    private static copyMap<T>(origin: Map<T, number>, destiny: Map<T, number>): void{\r\n        for(let key of origin.keys()){\r\n            destiny.set(key, origin.get(key));\r\n        }\r\n    }\r\n}\r\n"],"names":["AgeKind","ComplexionKind","EyeColor","HairColor","HaircutStyle","OriginKind","SexKind","SpecieKind","Complexions","Athletic","Fat","Skinny","Strongman","Thin","Eyes","Black","Blue","Brown","Green","HairColors","Blond","Red","White","HairCuts","Bald","CurvyLong","Shaved","Short","StraightLong","Origins","African","American","Arabic","Asian","European","Oceanic","Sexes","Androgynous","Female","Male","Species","Dwarf","Elf","Goblin","Human","Orc","Troll","Ages","Kid","Midage","Old","Teenager","Young","getAgeKind","age","Aspect","sex","origin","eye","hair","haircut","complexion","specie","height","_sex","_origin","_eye","_hair","_haircut","_complexion","_specie","_height","_age","this","generateHuman","generateAgeKindHuman","ageKind","getRandomAgeByAgeKind","generateRandomAgeKind","selectedSpecie","randomFromList","getRandomHeightBySpecie","generateOriginHuman","generateOriginAndSexHuman","generateRandomSpecie","generateRandomSpecieAndSex","generateOriginAgeAndSexHuman","generateOriginAndAgeHuman","generateRandomSpecieAgeAndSex","generateRandomSpecieAndAge","copy","random","baseHeight","increase","Likes","_sexMap","_originMap","_eyeColorMap","_hairColorMap","_hairCutMap","_complexionMap","_specieMap","_ageMap","Map","initializeMaps","likesSpecie","likes","minimizeAspectMap","set","likesSex","likesSpecieAndSex","likesConcreteHuman","preferredOrigin","preferredEye","preferredHair","preferredHaircut","preferredComplexion","preferredAge","likesConcreteSpecie","likesAspect","aspect","Eval","sum","get","initializeAspectMap","map","values","keys","copyMap","destiny","key"],"mappings":"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"}