npc-aspect
Version:
Library for NPC aspect modelling.
3 lines (2 loc) • 10.2 kB
JavaScript
var e,i,t,r,n,o,a,s,p=require("role-methods");exports.AgeKind=void 0,(e=exports.AgeKind||(exports.AgeKind={}))[e.Kid=0]="Kid",e[e.Teenager=1]="Teenager",e[e.Young=2]="Young",e[e.Midage=3]="Midage",e[e.Old=4]="Old",exports.ComplexionKind=void 0,(i=exports.ComplexionKind||(exports.ComplexionKind={}))[i.Skinny=0]="Skinny",i[i.Thin=1]="Thin",i[i.Fat=2]="Fat",i[i.Athletic=3]="Athletic",i[i.Strongman=4]="Strongman",exports.EyeColor=void 0,(t=exports.EyeColor||(exports.EyeColor={}))[t.Black=0]="Black",t[t.Brown=1]="Brown",t[t.Blue=2]="Blue",t[t.Green=3]="Green",exports.HairColor=void 0,(r=exports.HairColor||(exports.HairColor={}))[r.White=0]="White",r[r.Black=1]="Black",r[r.Brown=2]="Brown",r[r.Red=3]="Red",r[r.Blond=4]="Blond",r[r.Blue=5]="Blue",exports.HaircutStyle=void 0,(n=exports.HaircutStyle||(exports.HaircutStyle={}))[n.Shaved=0]="Shaved",n[n.Short=1]="Short",n[n.StraightLong=2]="StraightLong",n[n.CurvyLong=3]="CurvyLong",n[n.Bald=4]="Bald",exports.OriginKind=void 0,(o=exports.OriginKind||(exports.OriginKind={}))[o.European=0]="European",o[o.African=1]="African",o[o.Asian=2]="Asian",o[o.American=3]="American",o[o.Arabic=4]="Arabic",o[o.Oceanic=5]="Oceanic",exports.SexKind=void 0,(a=exports.SexKind||(exports.SexKind={}))[a.Male=0]="Male",a[a.Female=1]="Female",a[a.Androgynous=2]="Androgynous",exports.SpecieKind=void 0,(s=exports.SpecieKind||(exports.SpecieKind={}))[s.Human=0]="Human",s[s.Dwarf=1]="Dwarf",s[s.Elf=2]="Elf",s[s.Goblin=3]="Goblin",s[s.Orc=4]="Orc",s[s.Troll=5]="Troll";var d=[exports.ComplexionKind.Athletic,exports.ComplexionKind.Fat,exports.ComplexionKind.Skinny,exports.ComplexionKind.Strongman,exports.ComplexionKind.Thin],c=[exports.EyeColor.Black,exports.EyeColor.Blue,exports.EyeColor.Brown,exports.EyeColor.Green],g=[exports.HairColor.Black,exports.HairColor.Blond,exports.HairColor.Blue,exports.HairColor.Brown,exports.HairColor.Red,exports.HairColor.White],h=[exports.HaircutStyle.Bald,exports.HaircutStyle.CurvyLong,exports.HaircutStyle.Shaved,exports.HaircutStyle.Short,exports.HaircutStyle.StraightLong],u=[exports.OriginKind.African,exports.OriginKind.American,exports.OriginKind.Arabic,exports.OriginKind.Asian,exports.OriginKind.European,exports.OriginKind.Oceanic],l=[exports.SexKind.Androgynous,exports.SexKind.Female,exports.SexKind.Male],x=[exports.SpecieKind.Dwarf,exports.SpecieKind.Elf,exports.SpecieKind.Goblin,exports.SpecieKind.Human,exports.SpecieKind.Orc,exports.SpecieKind.Troll],m=[exports.AgeKind.Kid,exports.AgeKind.Midage,exports.AgeKind.Old,exports.AgeKind.Teenager,exports.AgeKind.Young];function M(e){return e>=12&&e<=18?exports.AgeKind.Teenager:e>=19&&e<=35?exports.AgeKind.Young:e>=36&&e<=65?exports.AgeKind.Midage:e>=66?exports.AgeKind.Old:exports.AgeKind.Kid}function _(e,i){(null==i||i>e.length)&&(i=e.length);for(var t=0,r=new Array(i);t<i;t++)r[t]=e[t];return r}function y(e,i){var t="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(t)return(t=t.call(e)).next.bind(t);if(Array.isArray(e)||(t=function(e,i){if(e){if("string"==typeof e)return _(e,i);var t=Object.prototype.toString.call(e).slice(8,-1);return"Object"===t&&e.constructor&&(t=e.constructor.name),"Map"===t||"Set"===t?Array.from(e):"Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)?_(e,i):void 0}}(e))||i&&e&&"number"==typeof e.length){t&&(e=t);var r=0;return function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var A=/*#__PURE__*/function(){function e(e,i,t,r,n,o,a,s,p){void 0===e&&(e=exports.SexKind.Male),void 0===i&&(i=exports.OriginKind.European),void 0===t&&(t=exports.EyeColor.Black),void 0===r&&(r=exports.HairColor.Black),void 0===n&&(n=exports.HaircutStyle.Shaved),void 0===o&&(o=exports.ComplexionKind.Thin),void 0===a&&(a=exports.SpecieKind.Human),void 0===s&&(s=180),void 0===p&&(p=30),this._sex=void 0,this._origin=void 0,this._eye=void 0,this._hair=void 0,this._haircut=void 0,this._complexion=void 0,this._specie=void 0,this._height=void 0,this._age=void 0,this._sex=e,this._origin=i,this._eye=t,this._hair=r,this._haircut=n,this._complexion=o,this._height=s,this._age=p,this._specie=a}var i,t;return e.generateHuman=function(i,t,r,n,o,a,s,p){return new e(i,t,r,n,o,a,exports.SpecieKind.Human,s,p)},e.generateAgeKindHuman=function(e,i,t,r,n,o,a,s){return this.generateHuman(e,i,t,r,n,o,a,this.getRandomAgeByAgeKind(s))},e.generateRandomAgeKind=function(i){var t=p.randomFromList(x);return new e(p.randomFromList(l),p.randomFromList(u),p.randomFromList(c),p.randomFromList(g),p.randomFromList(h),p.randomFromList(d),t,this.getRandomHeightBySpecie(t),this.getRandomAgeByAgeKind(i))},e.generateOriginHuman=function(e){return this.generateOriginAndSexHuman(e,p.randomFromList(l))},e.generateRandomSpecie=function(e){return this.generateRandomSpecieAndSex(e,p.randomFromList(l))},e.generateOriginAndSexHuman=function(e,i){return this.generateOriginAgeAndSexHuman(e,p.randomFromList(m),i)},e.generateOriginAndAgeHuman=function(e,i){return this.generateOriginAgeAndSexHuman(e,i,p.randomFromList(l))},e.generateOriginAgeAndSexHuman=function(i,t,r){return new e(r,i,p.randomFromList(c),p.randomFromList(g),p.randomFromList(h),p.randomFromList(d),exports.SpecieKind.Human,this.getRandomHeightBySpecie(exports.SpecieKind.Human),this.getRandomAgeByAgeKind(t))},e.generateRandomSpecieAndSex=function(e,i){return this.generateRandomSpecieAgeAndSex(e,p.randomFromList(m),i)},e.generateRandomSpecieAndAge=function(e,i){return this.generateRandomSpecieAgeAndSex(e,i,p.randomFromList(l))},e.generateRandomSpecieAgeAndSex=function(i,t,r){return new e(r,p.randomFromList(u),p.randomFromList(c),p.randomFromList(g),p.randomFromList(h),p.randomFromList(d),i,this.getRandomHeightBySpecie(i),this.getRandomAgeByAgeKind(t))},e.prototype.copy=function(){return new e(this._sex,this._origin,this._eye,this._hair,this._haircut,this._complexion,this._specie,this._height,this._age)},e.getRandomAgeByAgeKind=function(e){switch(e){case exports.AgeKind.Kid:return 5+p.random(6);case exports.AgeKind.Teenager:return 12+p.random(6);case exports.AgeKind.Young:return 19+p.random(16);case exports.AgeKind.Midage:return 36+p.random(29);case exports.AgeKind.Old:return 66+p.random(34)}},e.getRandomHeightBySpecie=function(e){var i=150,t=51;return e!=exports.SpecieKind.Dwarf&&e!=exports.SpecieKind.Goblin||(i=100,t=61),i+p.random(t)},i=e,(t=[{key:"sex",get:function(){return this._sex}},{key:"origin",get:function(){return this._origin}},{key:"eye",get:function(){return this._eye}},{key:"hair",get:function(){return this._hair}},{key:"haircut",get:function(){return this._haircut}},{key:"complexion",get:function(){return this._complexion}},{key:"specie",get:function(){return this._specie}},{key:"height",get:function(){return this._height}},{key:"age",get:function(){return this._age}}])&&function(e,i){for(var t=0;t<i.length;t++){var r=i[t];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}(i.prototype,t),Object.defineProperty(i,"prototype",{writable:!1}),e}(),S=/*#__PURE__*/function(){function e(){this._sexMap=void 0,this._originMap=void 0,this._eyeColorMap=void 0,this._hairColorMap=void 0,this._hairCutMap=void 0,this._complexionMap=void 0,this._specieMap=void 0,this._ageMap=void 0,this._sexMap=new Map,this._originMap=new Map,this._eyeColorMap=new Map,this._hairColorMap=new Map,this._hairCutMap=new Map,this._complexionMap=new Map,this._specieMap=new Map,this._ageMap=new Map,this.initializeMaps()}e.likesSpecie=function(i){var t=new e;return this.minimizeAspectMap(t._specieMap),t._specieMap.set(i,100),t},e.likesSex=function(i){var t=new e;return this.minimizeAspectMap(t._sexMap),t._sexMap.set(i,100),t},e.likesSpecieAndSex=function(e,i){var t=this.likesSpecie(e);return this.minimizeAspectMap(t._sexMap),t._sexMap.set(i,100),t},e.likesConcreteHuman=function(e,i,t,r,n,o,a){return this.likesConcreteSpecie(exports.SpecieKind.Human,e,i,t,r,n,o,a)},e.likesConcreteSpecie=function(e,i,t,r,n,o,a,s){var p=this.likesSpecieAndSex(e,i);return p._originMap.set(t,100),p._eyeColorMap.set(r,100),p._hairColorMap.set(n,100),p._hairCutMap.set(o,100),p._complexionMap.set(a,100),p._ageMap.set(s,100),p},e.likesAspect=function(i){var t=new e;return t._specieMap.set(i.specie,100),t._sexMap.set(i.sex,100),t._originMap.set(i.origin,100),t._eyeColorMap.set(i.eye,100),t._hairColorMap.set(i.hair,100),t._hairCutMap.set(i.haircut,100),t._complexionMap.set(i.complexion,100),t._ageMap.set(M(i.age),100),t};var i=e.prototype;return i.Eval=function(e){var i=4*this._sexMap.get(e.sex);return i+=this._originMap.get(e.origin),i+=this._eyeColorMap.get(e.eye),i+=this._hairColorMap.get(e.hair),i+=this._hairCutMap.get(e.haircut),i+=this._complexionMap.get(e.complexion),i+=this._ageMap.get(M(e.age)),(i+=4*this._specieMap.get(e.specie))/14},i.initializeMaps=function(){this.initializeAspectMap(this._sexMap,l),this.initializeAspectMap(this._originMap,u),this.initializeAspectMap(this._eyeColorMap,c),this.initializeAspectMap(this._hairColorMap,g),this.initializeAspectMap(this._hairCutMap,h),this.initializeAspectMap(this._complexionMap,d),this.initializeAspectMap(this._specieMap,x),this.initializeAspectMap(this._ageMap,m)},i.initializeAspectMap=function(e,i){for(var t,r=y(i);!(t=r()).done;)e.set(t.value,p.random(100))},e.minimizeAspectMap=function(e){for(var i,t=y(e.keys());!(i=t()).done;)e.set(i.value,0)},i.copy=function(){var i=new e;return e.copyMap(this._sexMap,i._sexMap),e.copyMap(this._originMap,i._originMap),e.copyMap(this._eyeColorMap,i._eyeColorMap),e.copyMap(this._hairColorMap,i._hairColorMap),e.copyMap(this._hairCutMap,i._hairCutMap),e.copyMap(this._complexionMap,i._complexionMap),e.copyMap(this._specieMap,i._specieMap),e.copyMap(this._ageMap,i._ageMap),i},e.copyMap=function(e,i){for(var t,r=y(e.keys());!(t=r()).done;){var n=t.value;i.set(n,e.get(n))}},e}();exports.Ages=m,exports.Aspect=A,exports.Complexions=d,exports.Eyes=c,exports.HairColors=g,exports.HairCuts=h,exports.Likes=S,exports.Origins=u,exports.Sexes=l,exports.Species=x;
//# sourceMappingURL=index.js.map