Title:just_testing Sex: Female F Male F Trans F Require: chastity nochaste cancum restim rshock rlock buttplug candle crop dildo estim gag handcuffs humbler nippleclamps Limits: Pain-N Sissy Info Shaving Watersport assign:task1:'ball_busting_1;P;Pain-G;Getting the balls busted with a special device;' assign:task2:'Bondage_showcase;PBN;Bondage;Demonstrating ones bondage equipment;' assign:task3:'Bored;PBN;NotinChastity;Jennifer does some random things;' assign:task4:'Bow_to_your_owner;PN;NotinChastity,Humbler,Pain-G;Bowing to their Mistress;' assign:task5:'Brain_Train;P;;Stroking a dildo;' assign:task6:'competitive_spanking_1;PBN;Crop,Pain-N;Trying to spank harder than the previous slave;' assign:task7:'confession_1;PBN;;Confess something you did and get judged by the reviewer;' assign:task8:'CornerTimeA;PBN;;Standing in a corner;' assign:task9:'CornerTimeB;PBN;;Standing in a corner, but being able to trade time for pain;' assign:task10:'crawlF;PBN;Bondage;Crawling while being in bondage;' assign:task11:'crawlM;P;Bondage;Crawling while being in bondage;' assign:task12:'deepthroat_training_1;PBN;Dildo;Practicing to deep throat a dildo;' assign:task13:'detention;PBN;Crop,Pain-N;Being in detention with a strict teacher for some time;' assign:task14:'Difficult_choices;PBN;;Having to choose between hard choices, at least one of them pushes the limits;' assign:task15:'find_my_pussy_1;PBN;;Match girls to their pussies and get nipple pain for mistakes;' assign:task16:'game_1;PBN;Nippleclamps,Pain-N;A reachtion game with nipple pain for mistakes;' assign:task17:'hand_writing_lines_nipples_clamped;PBN;Nippleclamps,Pain-N;Hand writing lines while the nipples are clamped;' assign:task18:'housework;PBN;;Doing some cleaning or tidying up;' assign:task19:'ice_torture_1;PBN;Pain-G,Pain-N;Runa has some fun with ice cubes;' assign:task20:'interrogation_1;PBN;Nippleclamps,Pain-N;Interrogation with nipple clamps by Sister Evie;' assign:task21:'jumping_jacks_cbt;P;NotinChastity,Pain-G;Jumping jacks with a weight attached to the balls;' assign:task22:'karada;PBN;Bondage;Doing a karada bondage;' assign:task23:'know_your_mistress_1;P;Nippleclamps,Pain-N;Identifying JiCs dominants by theier feet;' assign:task24:'lines;PBN;;Hand writing lines;' assign:task25:'Measuring_up;PBN;NotinChastity;Measuring the slaves most interesting body parts;' assign:task26:'mercy_of_the_crowd_2;PBN;Online;Begging to get a task assigned by somebody;' assign:task27:'Nipple_clamp_torture;PBN;Nippleclamps,Pain-N;Cycles of attaching and removing nipple clamps;' assign:task28:'nipple_torture_1;PBN;Crop,Nippleclamps,Pain-N;Runa tortures the nipples in various ways;' assign:task29:'nipple_torture_2;PN;Nippleclamps,Pain-N;Spanking off nipple clamps with a towel;' assign:task30:'nipple_torture_3;PBN;Nippleclamps,Pain-N;Quickly attaching and removing nipple clamps;' assign:task31:'overstimulation_1;PBN;NotinChastity;Rubbing the cock head or clit until it gets unpleasant;' assign:task32:'pee_inside_or_outside;PBN;Watersport;Rubbing pee on the body with a chance of having to drink it;' assign:task33:'Position_Training;PBN;;Learning slave positions;' assign:task34:'questions_1;PBN;NotinChastity;Testing the JiC knowledge of the slave;' assign:task35:'quiz_1;PBN;;A trivia quiz with consequences;' assign:task36:'running_on_spot_nipples_clamped;PBN;Nippleclamps,Fitness,Pain-N;Running on the spot with clamped nipples;' assign:task37:'sissy_lessons_1;PBN;Sissy;Lessons to become a better sissy or slut;' assign:task38:'slaves_custom_task;PBN;;The slave defines and later maybe does a self defined task which is close to their limits;' assign:task39:'spanking_1;PBN;Crop,Pain-N;Runa has the slave spank a bodypart of Runas choice;' assign:task40:'stroke_for_feet;P;;Brainwashing into liking feet by having to stroke for them' assign:task41:'stroke_for_marked_feet;P;NotinChastity;Brainwashing into liking feet by having to look very closely at them' assign:task42:'stroke_for_cocks;PBN;;Brainwashing into liking cocks by having to stroke for them' assign:task43:'stroke_for_marked_cocks;PBN;;Brainwashing into liking cocks by having to look very closely at them' assign:task44:'submission;PBN;;Showing submission on knees and head on the floor;' assign:task45:'temp_exp_1;PBN;Online;Chance to get temp exposed;' assign:task46:'Tethered;PBN;Bondage;Being bound by the balls to something;' assign:task47:'Thirsty;PBN;Handcuffs,Bondage,Watersport;Drinking pee;' assign:task48:'video_viewing;PBN;;Watching porn very closely;' assign:task49:'virtual_pillory_1;PBN;;Define how another slave has to spend their time in a virtual pillory, or be in the pillory;' assign:task50:'wax_on_penis;P;NotinChastity,Candle,Pain-G;Runa has some fun with wax on the slaves genitals;' assign:task51:'waxnipples;PBN;Candle,Pain-N;Runa has some fun with wax on the slaves nipples;' assign:task52:'whipping_with_red_lines;PBN;Pain-N;Whipping the butt and having to generate visible red lines;' assign:task53:'workout_1;PBN;Fitness;Squats and optional nipple pain;' assign:task54:'worship_cocks;PBN;;Brainwashing into liking cocks by having to worship them;' assign:task55:'worship_feet;P;;Brainwashing into liking feet by having to worship them;' assign:maxTask:55 ; NOTE: If you want to add more tasks, those tasks need to include the gen library and call the init and the finish functions as follows: ; assign:taskName:'name_of_the_task' ; use:gen ; call:taskQueue2Init ; ... the actual task ... ; call:taskQueue2Finish ; ;================================================================ ;====================== defining variables ====================== ;================================================================ assign:taskName:'market_1' use:gen ; TODO: call:taskQueue2Init peerreview:false assign:pricePerTask:12 assign:minAllowedMood:$pricePerTask+20 assign:curMoodBalance:MOOD assign:globalSlaveListVarNeedsUpdate:false ;================================================================ ;====================== defining functions ====================== ;================================================================ ;---------------------------------------------------------------- function:welcomeScreen ;---------------------------------------------------------------- assign:welcomeText1:'Welcome to the JiC Slave Task Market. ' assign:else1:'' call:getAvailableSlaveNames label:startOfWelcomeScreenLabel image:taskimg/assistant_at_desk2.jpg if: $thisSlaveIsAvailable settemp1:'<b>Yes (up to $thisSlaveTasksLeft tasks left)</b>' else: settemp1:'<b>No</b>' fi: show:$welcomeText1What$else1 would you like to do?<p>Available on the market: TEMP1<br>Current mood balance: <b>$curMoodBalance</b><br>Price per task: <b>$pricePerTask</b> choice:Buy a task for a slave,Change my own availability,Help,Done assign:welcomeScreenChoice:LASTASK if: $welcomeScreenChoice == 1 call:showSlaveSelection fi: if: $welcomeScreenChoice == 2 call:changeOwnAvailability fi: if: $welcomeScreenChoice == 3 call:showHelpScreen fi: if: $welcomeScreenChoice != 4 assign:welcomeText1:'' assign:else1:' else' goto:startOfWelcomeScreenLabel fi: end: ;---------------------------------------------------------------- function:showHelpScreen ;---------------------------------------------------------------- show:On the <b>Slave Task Market</b> you can buy tasks for other slaves. I will message you, once I have informed them about the task (usually this happens when they run a random task). From that time on, they have 21 days to complete the task. I will message you again, once they ran it. If they don't complete the task in time, they will lose 5 mood. button:Ok end: ;---------------------------------------------------------------- function:changeOwnAvailability ;---------------------------------------------------------------- ; input: $thisSlaveIsAvailable, $thisSlaveLockedSettingsUntil ; output: $thisSlaveIsAvailable, $thisSlaveLockedSettingsUntil, $thisSlaveTasksLeft ;---------------------------------------------------------------- if: $thisSlaveIsAvailable && $thisSlaveLockedSettingsUntil != 0 assign:timeLeftString:'' settemp1:$thisSlaveLockedSettingsUntil assign:fullDaysLeft:Math.floor((TEMP1-TIMENOW)/(24*60*60*1000)) assign:fullHoursLeft:Math.ceil((TEMP1-TIMENOW)/(60*60*1000)) assign:fullHoursLeft:$fullHoursLeft - ($fullDaysLeft * 24) if: $fullHoursLeft == 24 assign:fullDaysLeft:$fullDaysLeft+1 assign:fullHoursLeft:0 fi: if: $fullDaysLeft == 1 assign:timeLeftString:'$fullDaysLeft day and ' fi: if: $fullDaysLeft > 1 assign:timeLeftString:'$fullDaysLeft days and ' fi: assign:timeLeftString:'$timeLeftString$fullHoursLeft hours' image:taskimg/assistant_at_desk4.jpg show:I'm sorry, this setting is still locked for $timeLeftString. button:Gulp goto:endOfChangeOwnAvailabilityLabel fi: ; ; if: $thisSlaveIsAvailable && $thisSlaveLockedSettingsUntil == 0 show:<b>You are currently available</b> on the Slave Task Market. What do you want to do? choice:I want to stay available,Please remove me if: LASTASK == 2 assign:thisSlaveIsAvailable:false assign:thisSlaveLockedSettingsUntil:0 assign:thisSlaveTasksLeft:0 call:updateThisSlaveInGlobalSlaveList image:taskimg/assistant_at_desk5.jpg show:Ok, I have removed you from the market. Keep in mind that you still have to do any outstanding tasks, if there are any. button:Thank you fi: goto:endOfChangeOwnAvailabilityLabel fi: ; ; if: !$thisSlaveIsAvailable show:<b>You are currently not available</b> on the Slave Task Market. What do you want to do? choice:Please make me available,I want to stay unavailable if: LASTASK == 1 assign:thisSlaveIsAvailable:true image:taskimg/assistant_at_desk5.jpg show:Ok, you are now available. How many tasks can be assigned to you at most while you are available? Remember, you have 21 days to complete each task after it is assigned. choice:5,10,15,20,25,30,35,40 assign:thisSlaveTasksLeft:5*LASTASK asknumber:For how many days do you want to lock your availability settings ('0' for no lock)? Note that once all $thisSlaveTasksLeft tasks have been bought, the lock will also be lifted. image:taskimg/assistant_at_desk2.jpg if: LASTASK == 0 show:No problem, I will not lock these settings. assign:thisSlaveLockedSettingsUntil:0 else: assign:chosenDays:LASTASK if: $chosenDays < 1 assign:chosenDays:1 fi: assign:thisSlaveLockedSettingsUntil:(TIMENOW+($chosenDays*(24*60*60*1000))) show:Ok, I have locked these settings for $chosenDays days. fi: button:Thank you call:updateThisSlaveInGlobalSlaveList fi: fi: label:endOfChangeOwnAvailabilityLabel end: ;---------------------------------------------------------------- function:showSlaveSelection ;---------------------------------------------------------------- if: $curMoodBalance < $minAllowedMood show:A task costs $pricePerTask mood, but you need to have at least $minAllowedMood mood to be able to buy tasks. button:Ok, I understand goto:endOfShowSlaveSelectionLabel fi: label:startOfShowSlaveSelectionLabel assign:inList:'$availableSlaveNames' call:getFormattedList assign:formattedAvailableSlaveNames:'$outList' asknumber:For which slave should it be? (Enter a number or 0 to abort)<p>$formattedAvailableSlaveNames assign:selectedNumber:LASTASK assign:selectedNumber:Math.floor(Math.abs(selectedNumber)) if: $selectedNumber == 0 goto:endOfShowSlaveSelectionLabel fi: if: $selectedNumber <= '$availableSlaveNames'.split(', ').length assign:selectedSlaveName:'$availableSlaveNames'.split(', ')[$selectedNumber-1] call:showTaskSelection else: show:<b>$selectedNumber</b> is not in the list. button:oh goto:startOfShowSlaveSelectionLabel fi: label:endOfShowSlaveSelectionLabel end: ;---------------------------------------------------------------- function:showTaskSelection ;---------------------------------------------------------------- call:getAvailableTasksList label:startOfShowTaskSelectionLabel assign:inList:'$availableTaskNames' call:getFormattedList assign:formattedAvailableTaskNames:'$outList' asknumber:Which task would you like me to force <b>$selectedSlaveName</b> to do? (Enter a number or 0 to abort)<p>$formattedAvailableTaskNames assign:selectedNumber:LASTASK assign:selectedNumber:Math.floor(Math.abs(selectedNumber)) if: $selectedNumber == 0 goto:endOfShowTaskSelectionLabel fi: if: $selectedNumber <= '$availableTaskNames'.split(', ').length assign:selectedTaskName:'$availableTaskNames'.split(', ')[$selectedNumber-1] call:buyTask else: show:<b>$selectedNumber</b> is not in the list. button:oh goto:startOfShowTaskSelectionLabel fi: label:endOfShowTaskSelectionLabel end: ;---------------------------------------------------------------- function:getFormattedList ;---------------------------------------------------------------- ; input: $inList ; output: $outList ;---------------------------------------------------------------- assign:outList:'' assign:noOfElements:'$inList'.split(', ').length if: $noOfElements == 0 goto:endOfGetFormattedListLabel fi: assign:counter:0 label:startOfGetFormattedListLabel assign:curElement:'$inList'.split(', ')[$counter] assign:counter:$counter+1 assign:outList:'$outList<br>$counter. $curElement' if: $counter < $noOfElements goto:startOfGetFormattedListLabel fi: ;assign:outList:'$outList'.slice(4) label:endOfGetFormattedListLabel end: ;---------------------------------------------------------------- function:getTaskDescription ;---------------------------------------------------------------- ; $input: $selectedTaskName ; $output: $taskDescription ;---------------------------------------------------------------- assign:curTaskNo:1 label:startOfGetTaskDescriptionLabel assign:curTaskId:'task$curTaskNo' settemp1:$curTaskId assign:curTaskName:'TEMP1'.split(';')[0] if: '$curTaskName' == '$selectedTaskName' assign:taskDescription:'TEMP1'.split(';')[3] fi: assign:curTaskNo:$curTaskNo+1 if:$curTaskNo <= $maxTask goto:startOfGetTaskDescriptionLabel fi: if: '$taskDescription' == '' assign:taskDescription:'No description available for this task' fi: end: ;---------------------------------------------------------------- function:buyTask ;---------------------------------------------------------------- call:getTaskDescription show:Do you really want me to force <b>$selectedSlaveName</b> to do the task <b>$selectedTaskName</b>? This would cost you $pricePerTask mood (you currently have $curMoodBalance mood)<p><b>Task description:</b> $taskDescription choice:Yes force them to do it,No I changed my mind if: LASTASK == 1 image:taskimg/assistant_at_desk5.jpg show:Alright, <b>$selectedSlaveName</b> will be forced to do the task <b>$selectedTaskName</b>. I will message you once I have informed them about the task (usually this happens when they run a random task). From that time on, they have 21 days to run the task. I will message you again, once they ran the task. ;TODO setmood:(MOOD-$pricePerTask) assign:curMoodBalance:$curMoodBalance-$pricePerTask assign:dTaskName:'$selectedTaskName' assign:dTaskToUser:'$selectedSlaveName' ; TODO: call:globalScheduleTask call:removeOneTaskFromSelectedSlaveInGlobalSlaveList else: show:No problem, I will not assign the task to them, and you don't have to pay for it. fi: button:Thank you end: ;---------------------------------------------------------------- function:getCurSlaveAttributes ;---------------------------------------------------------------- ; input: $curSlaveName, $completeSlaveList ; output: $curSlaveIsAvailable, e.g. true ; $curSlaveAvailableSince, e.g. 12324365324 ; $curSlaveLockedSettingsUntil, e.g. 12324365324 ; $curSlaveTasksLeft, e.g. 7 ; $curSlaveHas, e.g. 'Penis,Crop,Candle,Pain-N,Pain-G' ; $curSlaveBody, i.e. 'P' | 'B' | 'N' ;---------------------------------------------------------------- assign:curSlaveIsAvailable:false assign:curSlaveLockedSettingsUntil:0 assign:curSlaveAvailableSince:0 assign:curSlaveTasksLeft:0 assign:curSlaveHas:'' assign:curSlaveBody:'' assign:noOfExistingSlaves:'$completeSlaveList'.split(';').length-1 assign:curIndex:-1 label:startOfGetCurSlaveAttributesLabel assign:curIndex:$curIndex+1 if: $curIndex > $noOfExistingSlaves-1 goto:endOfGetCurSlaveAttributesLabel fi: settemp1:'$completeSlaveList'.split(';')[$curIndex].split('!')[0] if: 'TEMP1' == '$curSlaveName' assign:curSlaveIsAvailable:true assign:curSlaveTasksLeft:'$completeSlaveList'.split(';')[$curIndex].split('!')[1] assign:curSlaveAvailableSince:'$completeSlaveList'.split(';')[$curIndex].split('!')[2] assign:curSlaveLockedSettingsUntil:'$completeSlaveList'.split(';')[$curIndex].split('!')[3] assign:curSlaveBody:'$completeSlaveList'.split(';')[$curIndex].split('!')[4] assign:curSlaveHas:'$completeSlaveList'.split(';')[$curIndex].split('!')[5] goto:endOfGetCurSlaveAttributesLabel fi: goto:startOfGetCurSlaveAttributesLabel label:endOfGetCurSlaveAttributesLabel if: $curSlaveLockedSettingsUntil < TIMENOW assign:curSlaveLockedSettingsUntil:0 fi: if: $curSlaveTasksLeft == 0 assign:curSlaveIsAvailable:false assign:curSlaveLockedSettingsUntil:0 assign:curSlaveHas:'' assign:curSlaveBody:'' fi: end: ;---------------------------------------------------------------- function:getAvailableSlaveNames ;---------------------------------------------------------------- ; input: $completeSlaveList ; output: $availableSlaveNames, e.g. 'Thomas3, JohnF, Lisa' ; $thisSlaveIsAvailable, e.g. true ; $thisSlaveLockedSettingsUntil, e.g. 1751253234534 ; $thisSlaveAvailableSince, e.g. 1751253234534 ; $thisSlaveTasksLeft, e.g. 10 ;---------------------------------------------------------------- assign:availableSlaveNames:'' assign:thisSlaveIsAvailable:false assign:thisSlaveAvailableSince:TIMENOW assign:thisSlaveLockedSettingsUntil:0 assign:thisSlaveTasksLeft:0 assign:noOfExistingSlaves:'$completeSlaveList'.split(';').length-1 assign:curIndex:-1 label:startOfGetAvailableSlaveNamesLabel assign:curIndex:$curIndex+1 if: $curIndex > $noOfExistingSlaves-1 goto:endOfGetAvailableSlaveNamesLabel fi: assign:curSlaveName:'$completeSlaveList'.split(';')[$curIndex].split('!')[0] call:getCurSlaveAttributes if: '$curSlaveName' == 'SNAME' assign:thisSlaveIsAvailable:$curSlaveIsAvailable assign:thisSlaveLockedSettingsUntil:$curSlaveLockedSettingsUntil assign:thisSlaveAvailableSince:$curSlaveAvailableSince assign:thisSlaveTasksLeft:$curSlaveTasksLeft fi: if: '$curSlaveName' != 'SNAME' && $curSlaveIsAvailable assign:availableSlaveNames:'$availableSlaveNames, $curSlaveName' fi: goto:startOfGetAvailableSlaveNamesLabel label:endOfGetAvailableSlaveNamesLabel assign:availableSlaveNames:'$availableSlaveNames'.slice(2) end: ;---------------------------------------------------------------- function:getAvailableTasksList ;---------------------------------------------------------------- ; input: $curSlaveName ; output: $availableTaskNames, e.g. 'spanking_1, confession_1' ;---------------------------------------------------------------- assign:curSlaveName:'$selectedSlaveName' call:getCurSlaveAttributes assign:curTaskNo:1 assign:availableTaskNames:'' label:startOfGetAvailableTaslsListLabel assign:curTaskId:'task$curTaskNo' settemp1:$curTaskId assign:curTaskName:'TEMP1'.split(';')[0] assign:curTaskBody:'TEMP1'.split(';')[1] assign:curTaskRequires:'TEMP1'.split(';')[2] assign:requirementsSize:'$curTaskRequires'.split(',').length assign:curRequirementIndex:0 label:startOfAnalyzeCurTaskRequirements settemp1:'$curTaskRequires'.split(',')[$curRequirementIndex] assign:curRequirementName:'TEMP1' if:!'$curSlaveHas'.includes('$curRequirementName') goto:dontAddTaskLabel fi: assign:curRequirementIndex:$curRequirementIndex+1 if: $curRequirementIndex < $requirementsSize goto:startOfAnalyzeCurTaskRequirements fi: if: !'$curTaskBody'.includes('$curSlaveBody') goto:dontAddTaskLabel fi: assign:availableTaskNames:'$availableTaskNames, $curTaskName' label:dontAddTaskLabel assign:curTaskNo:$curTaskNo+1 if:$curTaskNo <= $maxTask goto:startOfGetAvailableTaslsListLabel fi: ; make the order a bit more random: Keep alphabethical order, but with a random start (e.g. X, Y, Z, A, B, C...) assign:cutAtPlace:Math.floor(Math.random() * '$availableTaskNames'.length) assign:cutAtPlace:'$availableTaskNames'.indexOf(', ',$cutAtPlace) if: $cutAtPlace != -1 assign:firstPart:'$availableTaskNames'.substring(0,$cutAtPlace) assign:secondPart:'$availableTaskNames'.substring($cutAtPlace) assign:availableTaskNames:'$secondPart$firstPart' fi: assign:availableTaskNames:'$availableTaskNames'.slice(2) end: ;---------------------------------------------------------------- function:removeOneTaskFromSelectedSlaveInGlobalSlaveList ;---------------------------------------------------------------- assign:indexOfStart:'$completeSlaveList'.indexOf('$selectedSlaveName!') assign:indexOfStart:$indexOfStart+'$selectedSlaveName'.length+1 assign:indexOfEnd:'$completeSlaveList'.indexOf('!',$indexOfStart) assign:curTasksLeftOld:'$completeSlaveList'.substring($indexOfStart,$indexOfEnd) assign:curTasksLeftNew:$curTasksLeftOld-1 assign:completeSlaveList:'$completeSlaveList'.replace('$selectedSlaveName!$curTasksLeftOld','$selectedSlaveName!$curTasksLeftNew') assign:globalSlaveListVarNeedsUpdate:true end: ;---------------------------------------------------------------- function:updateThisSlaveInGlobalSlaveList ;---------------------------------------------------------------- assign:indexOfStart:'$completeSlaveList'.indexOf('SNAME!') if: $indexOfStart != -1 assign:indexOfEnd:'$completeSlaveList'.indexOf(';',$indexOfStart) assign:substringBefore:'$completeSlaveList'.substring(0,$indexOfStart) assign:substringAfter:'$completeSlaveList'.substring($indexOfEnd+1,99999999) assign:completeSlaveList:'$substringBefore$substringAfter' fi: if: $thisSlaveIsAvailable assign:thisSlaveAvailableSince:TIMENOW call:readThisSlaveHas assign:completeSlaveList:'SNAME!$thisSlaveTasksLeft!$thisSlaveAvailableSince!$thisSlaveLockedSettingsUntil!$thisSlaveBody!$thisSlaveHas;$completeSlaveList' fi: assign:globalSlaveListVarNeedsUpdate:true end: ;---------------------------------------------------------------- function:loadCompleteSlaveList ;---------------------------------------------------------------- ; output: $completeSlaveList, e.g. 'Adam!4!1234!5678!P!Crop;TittyTwister!13!7654!2344!P!Crop,Candle,Pain-N,Pain-G;Thomas3!12!2345!7894!P!Crop,Pain-N,Pain-G;JohnF!4!1234!456!P!Crop,Pain-N,Pain-G,Nippleclamps;Lisa!99999!34544!68745!B!Crop,Candle,Pain-N,Pain-G;' ; format: 'SNAME!<$curSlaveTasksLeft>!<$curSlaveAvailableSince>!<$curSlaveLockedSettingsUntil>!<$curSlaveBody>!<$curSlaveHas>;...' ;---------------------------------------------------------------- loadgtemp1:SHOP_1_COMPLETE_SLAVE_LIST assign:completeSlaveList:'TEMP1' end: ;---------------------------------------------------------------- function:maybeSaveCompleteSlaveList ;---------------------------------------------------------------- if: $globalSlaveListVarNeedsUpdate settemp1:'$completeSlaveList' savegtemp1:SHOP_1_COMPLETE_SLAVE_LIST fi: end: ;---------------------------------------------------------------- function:readThisSlaveHas ;---------------------------------------------------------------- ; output: $thisSlaveHas, e.g. 'NotinChastity,Candle' ; $thisSlaveBody, i.e. 'P' | 'B' | 'N' ;---------------------------------------------------------------- assign:thisSlaveBody:'N' ; ------ Body: ------ if: HAS_PENIS assign:thisSlaveBody:'P' fi: if: HAS_BREASTS assign:thisSlaveBody:'B' fi: ; assign:thisSlaveHas:'' ; ------ Chastity/Denial: ------ if: INCHASTITY assign:thisSlaveHas:'$thisSlaveHas,InChastity' fi: if: !INCHASTITY assign:thisSlaveHas:'$thisSlaveHas,NotinChastity' fi: if: !DENIED assign:thisSlaveHas:'$thisSlaveHas,CanCum' fi: ; ------ Toys: ------ ;TODO: Remoteestim ;TODO: Remoteshock ;TODO: Remotelock if: T_BUTTPLUG assign:thisSlaveHas:'$thisSlaveHas,Buttplug' fi: if: T_CANDLE assign:thisSlaveHas:'$thisSlaveHas,Candle' fi: if: T_CROP assign:thisSlaveHas:'$thisSlaveHas,Crop' fi: if: T_DILDO assign:thisSlaveHas:'$thisSlaveHas,Dildo' fi: if: T_ESTIM assign:thisSlaveHas:'$thisSlaveHas,E-Stim' fi: if: T_GAG assign:thisSlaveHas:'$thisSlaveHas,Gag' fi: if: T_HANDCUFFS assign:thisSlaveHas:'$thisSlaveHas,Handcuffs' fi: if: T_HUMBLER assign:thisSlaveHas:'$thisSlaveHas,Humbler' fi: if: T_NIPPLECLAMPS assign:thisSlaveHas:'$thisSlaveHas,Nippleclamps' fi: ; ------ Limits: ------ if: L_ANAL > 1 assign:thisSlaveHas:'$thisSlaveHas,Anal' fi: if: L_ATM > 1 assign:thisSlaveHas:'$thisSlaveHas,ATM' fi: if: L_BONDAGE > 1 assign:thisSlaveHas:'$thisSlaveHas,Bondage' fi: if: L_CHASTITY > 1 assign:thisSlaveHas:'$thisSlaveHas,Chastity' fi: if: L_CUM > 1 assign:thisSlaveHas:'$thisSlaveHas,Cum' fi: if: L_FACE > 1 assign:thisSlaveHas:'$thisSlaveHas,Face' fi: if: L_FITNESS > 1 assign:thisSlaveHas:'$thisSlaveHas,Fitness' fi: if: L_FINDOM > 1 assign:thisSlaveHas:'$thisSlaveHas,Financial' fi: if: L_ONLINE > 1 assign:thisSlaveHas:'$thisSlaveHas,Online' fi: if: L_OUTDOOR > 1 assign:thisSlaveHas:'$thisSlaveHas,Outdoor' fi: if: L_EXHIB > 1 assign:thisSlaveHas:'$thisSlaveHas,Exhibitionism' fi: if: L_DENIAL > 1 assign:thisSlaveHas:'$thisSlaveHas,Orgasm' fi: if: L_PAIN_G > 1 assign:thisSlaveHas:'$thisSlaveHas,Pain-G' fi: if: L_PAIN_N > 1 assign:thisSlaveHas:'$thisSlaveHas,Pain-N' fi: if: L_INFO > 1 assign:thisSlaveHas:'$thisSlaveHas,PInfo' fi: if: L_SISSY > 1 assign:thisSlaveHas:'$thisSlaveHas,Sissy' fi: if: L_SHAVE > 1 assign:thisSlaveHas:'$thisSlaveHas,Shaving' fi: if: L_WATERSPORT > 1 assign:thisSlaveHas:'$thisSlaveHas,Watersport' fi: assign:thisSlaveHas:'$thisSlaveHas'.slice(1) end: ;================================================================ ;======================= start of the task ====================== ;================================================================ call:loadCompleteSlaveList call:welcomeScreen call:maybeSaveCompleteSlaveList ; TODO: call:taskQueue2Finish ;