User Tools

Site Tools


tasks:chastity_or_denial_gambling
Title:chastity_or_denial_gambling
Sex: Female T Male T Trans T
Require:
Limits:
use:chastity
use:gen
;Task to gamble chastity or denial time
;
;; Variable table -
; TEMP1 == working variable
; TEMP2 == working variable
;
; ********** Initialize task *****************************************************
call:initializeChastityClub
loadtemp1:chastityStartTimeP
if:(('TEMP1' == '')||('TEMP1' == 'undefined'))
  assign:inChastity:false
else:
  assign:inChastity:true
fi:
assign:improveOdds:0
image2:taskimg/chastity/simply endure.png
;
; *********** Introduce
show:Slave, we will test your luck today. But before we do that, get undressed
button:naked
show:Lets take a picture
button:Picture in 5 seconds
wait:5
cam:
;
; *********** Determine whether slave can add denial or chastity
if: !inChastity && (L_CHASTITY < 3)
  assign:slaveType:'denial'
else:
  assign:slaveType:'chastity'
fi:
show: Slave, you will be gambling for $slaveType time
button:Great DTITLE
;
; ********** Determine losing and winning times
assign:randomFactor:((Math.random() * 8) + 2)
if: '$slaveType' == 'chastity'
  loadtemp1:chastityAllTimeMax
  if:(('TEMP1' == '') || ('TEMP1' == 'undefined'))
    settemp1:10
  fi:
  ;limit maximum chastity penalty by constraining to limits setting
  if:(TEMP1 > L_CH_MAX)
    settemp1:L_CH_MAX
  fi:
  show:Slave I have looked into your file and your settings. Based on that I think I can add a maximum of TEMP1 hours of chastity if you loose. It may not be as much though, maybe half or a third. Or i really add that many hours. Haha
  button:Please DTITLE
  settemp1:(Math.floor(TEMP1 * $randomFactor / 10))
  assign:losingTime:TEMP1
  assign:winningTime:(Math.floor(TEMP1 / 2))
  if: $inChastity
    if:($winningTime > (CH_END / 3600))
      assign:winningTime:(Math.floor(CH_END / 3600))
    fi:
  else:
    assign:winningTime:0
  fi:
else:
  settemp1:L_DENIAL
  if:(TEMP1 <1)
    settemp1:1
  fi:
  assign:losingTime:TEMP1
  assign:winningTime:0
fi:
show:Slave, I have determined how much $slaveType time i will add or reduce. Do you want to know? Be aware! If you say YES, I will tell you, but it will be a bit more likely that you loose this gamble
choice:yes, no
if:(LASTASK == 1)
  if: '$slaveType' == 'chastity'
    show:Fine. If you loose i will add $losingTime hours of chastity. If you win I will remove $winningTime hours. And now its become more likely that you loose, haha.
  else:
    show:Fine. If you loose i will add $losingTime days of denial. If you win I will give you 2 mood. And now its become more likely that you loose, haha.
  fi:
  assign:improveOdds:($improveOdds -1)
  button: Thank you DTITLE
fi:
;
; ********** Determine whether slave wins or looses
settemp2:(L_CH_FLEX * 5)
if:(TEMP2 < 5)
  settemp2:5
fi:
show:We will be gambling for $slaveType time. You can improve your odds of winning by TEMP2 % if I put you in hardcore mode for 2 weeks and you have to do some tasks each week.<br><br>Think carefully about this, without chosing this option your chance of winning may be very low.<br><br> Do you want this?
choice:yes, no
if: LASTASK == 1
  settemp1:(Math.floor((Math.random() * 4) + 1))
  show:You chose the careful option. I will add TEMP1 tasks per week, and lock your limits for the next two weeks.
  button:Yes DTITLE
  ;    hardcore:14 days
  ;    addwtasks:TEMP1
  ;    locklimits:14
  log:adding TEMP1 weekly tasks, and locking limits for 2 weeks
  assign:improveOdds:($improveOdds + (TEMP2 / 10))
else:
  show:Chicken. Its likely that you will loose the gample
  button:Shudder
fi:
assign:winning:false
if: '$slaveType' == 'chastity'
  settemp1:(Math.floor(Math.random() * 100))
  settemp2:((L_CH_FLEX + 4 - $improveOdds) * 10)
  if:(TEMP1 > TEMP2)
    assign:winning:true
  fi:
else:
  if:((Math.random() * 10) > 5 - $improveOdds)
    assign:winning:true
  fi:
fi:
;
; ********** Inform slave of result and adjust times
show:Ok, let me think
wait:5
show:Hmm, where are my dice?
wait:5
show:Aaah, here we go
wait:5
show:Throwing dice
wait:5
show:And the result is
if: '$slaveType' == 'chastity'
  if:$winning
    if: $inChastity
      show:You have won. I will reduce your chastity time by some hours
      button:This is great
      log:Slave has won. Reducing chastity time by §winningTime hours
      settemp1:(CH_END / 3600) - $winningTime
      ;            setchastity:TEMP1 hours
    else:
      show:You have won, but you are not locked up. Why did you play at all? There is nothing I can do for you, but thanks for trying
      button: Yes DTITLE
    fi:
  else:
    show:Oh dear, you have lost. I will add a lot of chastity time
    button:Oh no
    log:Slave has lost. Adding $losingTime hours of chastity time
    ;        addchastity:$losingTime hours
  fi:
else:
  if:$winning
    show:you have won. I will add a few mood points
    button:This is great
    log:Slave has won. Adding 2 mood points
    ;        setmood:(MOOD-2)
  else:
    show:Oh dear, you have lost. I will add a lot of denial time
    button:Oh no
    log:Slave has lost. Adding $losingTime days of denial time
    ;        adddenial:$losingTime days
  fi:
fi:
show:That was fun. Hope to see you playing again soon
button:Yes DTITLE
;
; update to-do list with task run and validate if there are overdue tasks
assign:logTaskName:'chastity_or_denial_gambling'
call:validateToDoTasks
call:saveToDoTasks
;
tasks/chastity_or_denial_gambling.txt · Last modified: 2024/02/11 13:20 (external edit)