|
@@ -0,0 +1,289 @@
|
|
|
|
+// This code ensures that outfititems will be added to the wardrobe and removed from there.
|
|
|
|
+for(const[type, variableArray] of Object.entries(setup.wardrobeItemVars)){
|
|
|
|
+ for(const variable of variableArray){
|
|
|
|
+ let outfitIdVariable = variable;
|
|
|
|
+ if(outfitIdVariable.endsWith('shoe'))
|
|
|
|
+ outfitIdVariable += 's';
|
|
|
|
+ else if(outfitIdVariable.endsWith('bras'))
|
|
|
|
+ outfitIdVariable = variable.slice(0,-1);
|
|
|
|
+ else if(outfitIdVariable == "gm_school")
|
|
|
|
+ outfitIdVariable = 'school';
|
|
|
|
+ setup.Overwrite.varRegister(
|
|
|
|
+ variable,
|
|
|
|
+ (index:number)=>State.variables.wardrobe.ownsItem(`${outfitIdVariable}_${index}`) ? 1 : 0,
|
|
|
|
+ (index:number, v: number)=>{
|
|
|
|
+ const itemId = `${outfitIdVariable}_${index}`;
|
|
|
|
+ if(v)
|
|
|
|
+ State.variables.wardrobe.add(itemId);
|
|
|
|
+ else
|
|
|
|
+ State.variables.wardrobe.delete(itemId);
|
|
|
|
+ },
|
|
|
|
+ );
|
|
|
|
+ }
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+for(const passage of ['bras','coats','clothing','panties','shoes']){
|
|
|
|
+ setup.Overwrite.gsRegister(passage,(args)=>{
|
|
|
|
+ if(args[0] == 'wear'){
|
|
|
|
+ const type:string = args[1];
|
|
|
|
+ const index:number= args[2];
|
|
|
|
+ const outfitItemId = `${type}_${index}`;
|
|
|
|
+ try{
|
|
|
|
+ variables().wardrobe.wear(outfitItemId);
|
|
|
|
+ }
|
|
|
|
+ catch(e){
|
|
|
|
+ console.error(e);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ return 'empty';
|
|
|
|
+ }
|
|
|
|
+ return undefined;
|
|
|
|
+ })
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+// All wardrobes will be ignore except for opening it.
|
|
|
|
+setup.Overwrite.gsRegister('wardrobe',(args)=>{
|
|
|
|
+ if(!args[0] || args[0] == 'start')
|
|
|
|
+ return undefined;
|
|
|
|
+ return 'empty';
|
|
|
|
+})
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+// Clothing overwrites
|
|
|
|
+
|
|
|
|
+setup.Overwrite.varRegister('$clothingworntype',
|
|
|
|
+ ()=>{
|
|
|
|
+ const item = variables().wardrobe.wornAtSlot('clothes');
|
|
|
|
+ if(!item)
|
|
|
|
+ return '';
|
|
|
|
+ return (item.id.split('_').slice(0,-1).join('_'));
|
|
|
|
+ },
|
|
|
|
+ undefined
|
|
|
|
+);
|
|
|
|
+
|
|
|
|
+setup.Overwrite.varRegister('clothingwornnumber',
|
|
|
|
+ ()=>{
|
|
|
|
+ const item = variables().wardrobe.wornAtSlot('clothes');
|
|
|
|
+ if(!item)
|
|
|
|
+ return 0;
|
|
|
|
+ return (Number(item.id.split('_').last()));
|
|
|
|
+ },
|
|
|
|
+ undefined
|
|
|
|
+);
|
|
|
|
+
|
|
|
|
+setup.Overwrite.varRegister('PCloQuality',
|
|
|
|
+ ()=>{
|
|
|
|
+ const item = variables().wardrobe.wornAtSlot('clothes');
|
|
|
|
+ if(!item)
|
|
|
|
+ return 0;
|
|
|
|
+ return item.quality;
|
|
|
|
+ },
|
|
|
|
+ undefined
|
|
|
|
+);
|
|
|
|
+
|
|
|
|
+setup.Overwrite.varRegister('PCloThinness',
|
|
|
|
+ ()=>{
|
|
|
|
+ const item = variables().wardrobe.wornAtSlot('clothes');
|
|
|
|
+ if(!item)
|
|
|
|
+ return 0;
|
|
|
|
+ return item.thinness;
|
|
|
|
+ },
|
|
|
|
+ undefined
|
|
|
|
+);
|
|
|
|
+
|
|
|
|
+setup.Overwrite.varRegister('PXCloThinness',
|
|
|
|
+ ()=>{
|
|
|
|
+ const item = variables().wardrobe.wornAtSlot('clothes');
|
|
|
|
+ if(!item)
|
|
|
|
+ return 0;
|
|
|
|
+ return item.thinnessExposure;
|
|
|
|
+ },
|
|
|
|
+ undefined
|
|
|
|
+);
|
|
|
|
+
|
|
|
|
+setup.Overwrite.varRegister('PCloTopCut',
|
|
|
|
+ ()=>{
|
|
|
|
+ const item = variables().wardrobe.wornAtSlot('clothes');
|
|
|
|
+ if(!item)
|
|
|
|
+ return 0;
|
|
|
|
+ return item.topCut;
|
|
|
|
+ },
|
|
|
|
+ undefined
|
|
|
|
+);
|
|
|
|
+
|
|
|
|
+setup.Overwrite.varRegister('PCloBra',
|
|
|
|
+ ()=>{
|
|
|
|
+ const item = variables().wardrobe.wornAtSlot('clothes');
|
|
|
|
+ if(!item)
|
|
|
|
+ return 0;
|
|
|
|
+ return item.includesBra ? 1 : 0;
|
|
|
|
+ },
|
|
|
|
+ undefined
|
|
|
|
+);
|
|
|
|
+
|
|
|
|
+setup.Overwrite.varRegister('PCloOnePiece',
|
|
|
|
+ ()=>{
|
|
|
|
+ const item = variables().wardrobe.wornAtSlot('clothes');
|
|
|
|
+ if(!item)
|
|
|
|
+ return 0;
|
|
|
|
+ return item.isOnePiece ? 1 : 0;
|
|
|
|
+ },
|
|
|
|
+ undefined
|
|
|
|
+);
|
|
|
|
+
|
|
|
|
+setup.Overwrite.varRegister('PCloPants',
|
|
|
|
+ ()=>{
|
|
|
|
+ const item = variables().wardrobe.wornAtSlot('clothes');
|
|
|
|
+ if(!item)
|
|
|
|
+ return 0;
|
|
|
|
+ return item.pantsShortness;
|
|
|
|
+ },
|
|
|
|
+ undefined
|
|
|
|
+);
|
|
|
|
+
|
|
|
|
+setup.Overwrite.varRegister('PCloSkirt',
|
|
|
|
+ ()=>{
|
|
|
|
+ const item = variables().wardrobe.wornAtSlot('clothes');
|
|
|
|
+ if(!item)
|
|
|
|
+ return 0;
|
|
|
|
+ return item.skirtShortness;
|
|
|
|
+ },
|
|
|
|
+ undefined
|
|
|
|
+);
|
|
|
|
+
|
|
|
|
+setup.Overwrite.varRegister('PCloPanties',
|
|
|
|
+ ()=>{
|
|
|
|
+ const item = variables().wardrobe.wornAtSlot('clothes');
|
|
|
|
+ if(!item)
|
|
|
|
+ return 0;
|
|
|
|
+ return item.includesPanties ? 1 : 0;
|
|
|
|
+ },
|
|
|
|
+ undefined
|
|
|
|
+);
|
|
|
|
+
|
|
|
|
+setup.Overwrite.varRegister('PCloDress',
|
|
|
|
+ ()=>{
|
|
|
|
+ const item = variables().wardrobe.wornAtSlot('clothes');
|
|
|
|
+ if(!item)
|
|
|
|
+ return 0;
|
|
|
|
+ return item.isDress ? 1 : 0;
|
|
|
|
+ },
|
|
|
|
+ undefined
|
|
|
|
+);
|
|
|
|
+
|
|
|
|
+setup.Overwrite.varRegister('PCloStyle',
|
|
|
|
+ ()=>{
|
|
|
|
+ const item = variables().wardrobe.wornAtSlot('clothes');
|
|
|
|
+ if(!item)
|
|
|
|
+ return 0;
|
|
|
|
+ return item.style1;
|
|
|
|
+ },
|
|
|
|
+ undefined
|
|
|
|
+);
|
|
|
|
+
|
|
|
|
+setup.Overwrite.varRegister('PCloStyle2',
|
|
|
|
+ ()=>{
|
|
|
|
+ const item = variables().wardrobe.wornAtSlot('clothes');
|
|
|
|
+ if(!item)
|
|
|
|
+ return 0;
|
|
|
|
+ return item.style2;
|
|
|
|
+ },
|
|
|
|
+ undefined
|
|
|
|
+);
|
|
|
|
+
|
|
|
|
+setup.Overwrite.varRegister('PCloStyle3',
|
|
|
|
+ ()=>{
|
|
|
|
+ const item = variables().wardrobe.wornAtSlot('clothes');
|
|
|
|
+ if(!item)
|
|
|
|
+ return 0;
|
|
|
|
+ return item.style3;
|
|
|
|
+ },
|
|
|
|
+ undefined
|
|
|
|
+);
|
|
|
|
+
|
|
|
|
+setup.Overwrite.varRegister('PCloInhibit',
|
|
|
|
+ ()=>{
|
|
|
|
+ const item = variables().wardrobe.wornAtSlot('clothes');
|
|
|
|
+ if(!item)
|
|
|
|
+ return 0;
|
|
|
|
+ return item.inhibition;
|
|
|
|
+ },
|
|
|
|
+ undefined
|
|
|
|
+);
|
|
|
|
+
|
|
|
|
+setup.Overwrite.varRegister('PCloBimbo',
|
|
|
|
+ ()=>{
|
|
|
|
+ const item = variables().wardrobe.wornAtSlot('clothes');
|
|
|
|
+ if(!item)
|
|
|
|
+ return 0;
|
|
|
|
+ return item.isBimbo ? 1 : 0;
|
|
|
|
+ },
|
|
|
|
+ undefined
|
|
|
|
+);
|
|
|
|
+
|
|
|
|
+setup.Overwrite.varRegister('PXCloTopCut',
|
|
|
|
+ ()=>{
|
|
|
|
+ const item = variables().wardrobe.wornAtSlot('clothes');
|
|
|
|
+ if(!item)
|
|
|
|
+ return 0;
|
|
|
|
+ return item.topExposure;
|
|
|
|
+ },
|
|
|
|
+ undefined
|
|
|
|
+);
|
|
|
|
+
|
|
|
|
+/*
|
|
|
|
+ <<run setup.qsp_dynamic(QSP.$ARGS[1] + '_w['+(QSP.ARGS[2])+'] = 1')>>
|
|
|
|
+ <<gs `['clothing_attributes' , QSP.$ARGS[1] , QSP.ARGS[2]]`>>
|
|
|
|
+ <<run setup.qsp_dynamic(''+(QSP.$ARGS[1])+'_s['+(QSP.ARGS[2])+'] = 0')>>
|
|
|
|
+
|
|
|
|
+ <<set QSP.PCloGoth[0] = QSP.CloGoth[0]>>
|
|
|
|
+ <<set QSP.PCloPunk[0] = QSP.CloPunk[0]>>
|
|
|
|
+ <<set QSP.PCloCoverTop[0] = QSP.CloCoverTop[0]>>
|
|
|
|
+ <<set QSP.PCloCoverBack[0] = QSP.CloCoverBack[0]>>
|
|
|
|
+ <<set QSP.PCloCoverFront[0] = QSP.CloCoverFront[0]>>
|
|
|
|
+ <<gs `['outfit' , 'set_tags']`>>
|
|
|
|
+ <<if setup.qsp_strpos(QSP.$clothingworntype[0] , 'swimsuit') > 0 || setup.qsp_strpos(QSP.$clothingworntype[0] , 'bikinis') > 0>><<set QSP.PCloSwimwear[0] = 1>><</if>>
|
|
|
|
+ <<gs `['outfit' , 'exposure_calc']`>>
|
|
|
|
+ <!-- !Calculationsforclothingbeauty,multipliedbynaturalbeauty -->
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ <<if QSP.PCloSkirt[0] > 0>>
|
|
|
|
+ <<if QSP.PCloSkirt[0] == 1>>
|
|
|
|
+ <<set QSP.PXCloBottomShortness[0] = 100>>
|
|
|
|
+ <<elseif (QSP.PCloSkirt[0] == 2) != 0>>
|
|
|
|
+ <<set QSP.PXCloBottomShortness[0] = 150>>
|
|
|
|
+ <<elseif (QSP.PCloSkirt[0] == 3) != 0>>
|
|
|
|
+ <<set QSP.PXCloBottomShortness[0] = 200>>
|
|
|
|
+ <<elseif (QSP.PCloSkirt[0] == 4) != 0>>
|
|
|
|
+ <<set QSP.PXCloBottomShortness[0] = 250>>
|
|
|
|
+ <<elseif (QSP.PCloSkirt[0] == 5) != 0>>
|
|
|
|
+ <<set QSP.PXCloBottomShortness[0] = 300>>
|
|
|
|
+ <<elseif (QSP.PCloSkirt[0] == 6) != 0>>
|
|
|
|
+ <<set QSP.PXCloBottomShortness[0] = 350>>
|
|
|
|
+ <<elseif (QSP.PCloSkirt[0] >= 7) != 0>>
|
|
|
|
+ <<set QSP.PXCloBottomShortness[0] = 400>>
|
|
|
|
+ <</if>>
|
|
|
|
+
|
|
|
|
+ <</if>>
|
|
|
|
+
|
|
|
|
+ <<if QSP.PCloPants[0] > 0>>
|
|
|
|
+ <<if QSP.PCloPants[0] == 1>>
|
|
|
|
+ <<set QSP.PXCloBottomShortness[0] = 100>>
|
|
|
|
+ <<elseif (QSP.PCloPants[0] == 2) != 0>>
|
|
|
|
+ <<set QSP.PXCloBottomShortness[0] = 150>>
|
|
|
|
+ <<elseif (QSP.PCloPants[0] == 3) != 0>>
|
|
|
|
+ <<set QSP.PXCloBottomShortness[0] = 200>>
|
|
|
|
+ <<elseif (QSP.PCloPants[0] == 4) != 0>>
|
|
|
|
+ <<set QSP.PXCloBottomShortness[0] = 250>>
|
|
|
|
+ <<elseif (QSP.PCloPants[0] == 5) != 0>>
|
|
|
|
+ <<set QSP.PXCloBottomShortness[0] = 300>>
|
|
|
|
+ <<elseif (QSP.PCloPants[0] == 6) != 0>>
|
|
|
|
+ <<set QSP.PXCloBottomShortness[0] = 350>>
|
|
|
|
+ <<elseif (QSP.PCloPants[0] >= 7) != 0>>
|
|
|
|
+ <<set QSP.PXCloBottomShortness[0] = 400>>
|
|
|
|
+ <</if>>
|
|
|
|
+
|
|
|
|
+ <</if>>
|
|
|
|
+
|
|
|
|
+ <<if QSP.PCloPanties[0] == 1>><<set QSP.PXCloBottomShortness[0] = 400>><</if>>
|
|
|
|
+ */
|