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