Title:nipple_torture_1
Sex: Female T Male T Trans T
Require: crop nippleclamps
Limits:
;nipple_torture_1

; TODO: before release (activate setmood.. and dtask..)

;================================================================
;====================== defining variables ======================
;================================================================

assign:camDelay:0

assign:she1:'she'
if: 'DNAME' == 'James'
  assign:she1:'he'
fi:

;================================================================
;====================== defining functions ======================
;================================================================

;----------------------------------------------------------------
function:takePictureWithCamDelay
; parameter: $camDelay delay in seconds
;----------------------------------------------------------------
  if: $camDelay == 0
    assign:camDelay:4
  fi:
  button:Take photo ($camDelay sec delay)
  while: $camDelay >= 0
    show:$camDelay...
    if: $camDelay != 0
      wait:1
	fi:
    assign:camDelay:$camDelay-1
  endwhile:
  show:0!
  cam:
  wait:1
  sound:bell.wav
  assign:camDelay:0
end:

;----------------------------------------------------------------
function:spankNipples
;----------------------------------------------------------------
  image:taskimg/sets/runa/runa_blue_bikini17.jpg
  show:We'll start with a thorough spanking! Get a spanking implement, e.g. a ruler, or a doubled over cable, and show it to me. You can also get several implements. Impress me!
  call:takePictureWithCamDelay
  image:taskimg/sets/runa/runa_blue_bikini25.jpg
  show:Now spank your nipples until they are noticeably red.
  button:Nipples are red
  image:taskimg/sets/runa/runa_blue_bikini24.jpg
  show:Take a close-up photo of your nipples to prove that you did it properly. If they are not <strong>noticeably</strong> red, you have failed the task. I don't want to tease you, I want to torture you. So now is your last chance to continue the spanking until they are really red. Take a photo when that is the case.
  if: L_PAIN_N == 5
    log:nipples after spanking. This slave has a non genital pain level of 5, so the nipples should be noticeably red. (next pic)
  else:
    log:nipples after spanking. They should be noticeably red. (next pic)
  fi:  
  call:takePictureWithCamDelay
end:

;----------------------------------------------------------------
function:noClothesPinsAvailable
;----------------------------------------------------------------
  loadtemp1:nipple_torture_1_was_run_before
  if:'TEMP1' == ''
    image:taskimg/connected_clothes_pins_runa_mirrored.jpg
    show:That's a shame, I was really looking forward to torturing you. But I can wait. I've scheduled this task for you to run it again within the next 14 days. Be sure to have two clothes pins available, before you run it! And this was the last time, that I let this slip. From now on, I will always expect you to have two clothes pins available.
    ;dtask:0:Jennifer:nipple_torture_1:336
    button:Yes, Runa
    log:Since, the slave claims to not have any clothes pins available, the task has ended with no mood change, but it has been triggered to be done again within 14 days. Please rate as 6.
    peerreview:false
    ; don't give any mood in this case
    log:Current Mood = MOOD
    ;setmood:MOOD-2
    settemp1:'TRUE'
    savetemp1:nipple_torture_1_was_run_before
    goto:endoftask
  else:
    call:failedTheTask
  fi:
end:

; ---------------------------------------------------------------
function:failedTheTask
; ---------------------------------------------------------------
  peerreview:false
  assign:delayedMessageText:'I am very disappointed, SNAME. You have embarrassed me in front of Runa. If I lend you out to somebody, you will follow their orders like they were given by me. I have scheduled a punishment for you!'  
  if:('DNAME'=='Jennifer')
    dmsg:0:Jennifer:$delayedMessageText
    ;dtask:0:Jennifer:Punishment_for_failing_a_task:672
  fi:
  if:('DNAME'=='Natasha')
    dmsg:0:Natasha:$delayedMessageText
    ;dtask:0:Natasha:Punishment_for_failing_a_task:672
  fi:
  if:('DNAME'=='James')
    dmsg:0:James:$delayedMessageText
    ;dtask:0:James:Punishment_for_failing_a_task:672
  fi:
  ;
  image:taskimg/connected_clothes_pins_runa_mirrored.jpg
  show:I ordered you to always have two clothes pins available, and yet you don't have them? This is very disrespectful of you, SNAME. I will have to report this to your DTITLE, let's see how $she1 feels about this.
  button:I'm sorry, Runa
  log:The slave had 14 days to get clothes pins, but didn't get them. Thus a punishment for failing a task was automatically added to the tasks in TODO for this slave. Since the slave will already be punished, DON'T give a low rating because of this.
  goto:endoftask
end:

;----------------------------------------------------------------
function:pullClampsOff
;----------------------------------------------------------------
  image:taskimg/connected_clothes_pins_runa_mirrored.jpg
  show:For the next torture, you'll need 2 clothes pins, which you'll connect via a thread, like in this picture. I want you to use actual clothes pins, not any other kind of clamps.
  choice:Clothes pins are connected,I don't have any clothes pins
  if: LASTASK == 1
    call:pullOffWithClothesPinsAvailable
  else:
    call:noClothesPinsAvailable
  fi:
end:

;----------------------------------------------------------------
function:pullOffWithClothesPinsAvailable
;----------------------------------------------------------------
  image:taskimg/sets/runa/runa_blue_bikini25.jpg
  show:Attach them to your nipples, and pull slightly on the connecting thread. Don't pull them off, there should just be some tension on the thread. Make sure that your nipples and at least a part of the thread are visible on camera. Then wait for my command. When I tell you to, you have 5 seconds to rip them off, by pulling on the thread. You may not directly touch the clothes pins. If you take longer than the 5 seconds, after I gave the command, you fail the task.
  button:Ready
  show:Stay like that and wait for my command.
  wait:10
  show:Wait a little bit.
  wait:25
  show:Wait some more. The longer the clothes pins stay on, the more painful it will be when you rip them off.
  wait:25
  show:Wait for my command.
  log:Clothes pins on the nipples (next pic)
  wait:1
  cam:
  wait:9
  log:Pulling of the pins via a thread, not directly touching the pins (next pics)
  show:<h1>NOW 5!</h1>
  speakjen:Rip them off!
  wait:1
  show:<h1>NOW 4!</h1>
  wait:1
  show:<h1>NOW 3!</h1>
  wait:1
  show:<h1>NOW 2!</h1>
  cam:
  wait:1
  show:<h1>NOW 1!</h1>
  wait:1
  show:<h1>NOW 0!</h1>
  cam:
  image:taskimg/sets/runa/runa_blue_bikini40.jpg
  sound:bell.wav
  show:Oh this is fun. Let's see what else we can do to your nipples. We won't need the connecting thread anymore. You can remove it or cut it.
  button:Yes, Runa
  log:The previous picture has the show the unclamped nippls. If not, rate the task as failed.
end:

;----------------------------------------------------------------
function:layOnNipples
;----------------------------------------------------------------
  image:taskimg/sets/runa/runa_red_lingerie_b59.jpg
  show:You must be in pain, so I'll grant you a short break. Thank me, then I'll tell you how you'll spend your break.
  button:Thank you, Runa
  image:taskimg/sets/runa/runa_red_lingerie_a39.jpg
  show:Put a clamp on each nipple and lay on the ground like I do. But for you it will be a little bit harder. Your clamped tits have to touch the ground. I want to see some of your body weight resting on your nipples the whole time! You will either hold your ankles with your hands, or if you can't do that, put your arms on your back. When I ring the bell, you have 20 seconds to get into position. You will stay there until I ring the bell again.
  button:Getting into position
  sound:bell.wav
  speakjen:Get into position!
  wait:20
  speakjen:Your break has started. Stay like that.
  settemp1:(5*L_PAIN_N)+15
  wait:TEMP1
  speakjen:Stay on the ground.
  wait:TEMP1
  speakjen:Make sure there is some pressure on your tits.
  wait:TEMP1
  speakjen:I hope you enjoy your break.
  log:Slave should lay on the ground, the clamped tits have to touch the ground, the hands may not touch the ground (next pic)
  wait:TEMP1
  speakjen:Stay in position.
  cam:
  wait:TEMP1
  image:taskimg/sets/runa/runa_red_lingerie_a17.jpg
  show:Get up and take off the clamps. I hope you've enjoyed your little break?
  sound:bell.wav
  speakjen:Get up and take off the clamps.
  button:Yes, thank you Runa.
end:

;----------------------------------------------------------------
function:twistClamps
;----------------------------------------------------------------
  image:taskimg/sets/runa/runa_blue_bikini59.jpg
  show:I really want you to focus on the pain. So we will torture each nipple individually. But you can already put a clamp on each nipple. We'll evetually need both of them. Put them on horizontally, i.e. clamping the skin from above and from below.
  button:Clamps attached
  image:taskimg/sets/runa/runa_blue_bikini58.jpg
  assign:side:'right'
  show:Let's start with your $side nipple.
  call:twistOneClamp
  assign:side:'left'
  show:Let's continue with your $side nipple, we don't want it to feel neglected.
  button:Yes, Runa
  call:twistOneClamp
  show:That was fun, take the clamps off, rub your nipples for some time and let's continue with the next torture.
  button:Yes, Runa
end:

;----------------------------------------------------------------
function:twistOneClamp
; parameters: $side
;----------------------------------------------------------------
  settemp1:'$side'
  settemp2:'$side'
  show:I'll order you to twist the pin on your TEMP1 nipple either to the left or to the right. Twist it by at least 90° (measured from the initial horizontal position) and hold it there. Keep the nipple in close-up of the camera. Tell me when you're ready. 
  button:Ready to twist TEMP1 pin
  show:Twist it to the <strong>left</strong> and hold it.
  speakjen:left
  wait:10
  show:Twist it to the <strong>right</strong> and hold it.
  speakjen:right
  wait:10
  show:Twist it to the <strong>left</strong> and hold it.
  speakjen:left
  wait:10
  show:Twist it to the <strong>right</strong> and hold it.
  speakjen:right
  log:clamp twisted by at least 90° (next pic)
  wait:10
  cam:
  wait:5
  wait:10
  show:Twist it to the <strong>left</strong> and hold it.
  speakjen:left
  wait:10
  show:Twist it to the <strong>right</strong> and hold it.
  speakjen:right
  wait:10
  show:Twist it to the <strong>left</strong> and hold it.
  speakjen:left
  log:clamp twisted by at least 90° to the other side than in the previous picture (next pic)
  wait:10
  cam:
  wait:5
  show:Twist it to the <strong>right</strong> and hold it.
  speakjen:right
  wait:10
  sound:bell.wav
end:

;----------------------------------------------------------------
function:doubleStrength
;----------------------------------------------------------------
  image:taskimg/sets/runa/runa_blue_bikini59.jpg
  show:I liked torturing each nipple individually, but I have the feeling that the last torture was too soft. Let's try something a little bit more painful, shall we? In fact, beg me for it!
  button:Please, make it more painful!
  image:taskimg/sets/runa/runa_blue_bikini62.jpg
  assign:side:'right'
  show:Oh, you are such a dear! I really like it, that you want it to be more painful. Then let's start with your $side nipple.
  button:Yes, Runa
  call:oneSideDoubleStrength
  assign:side:'left'
  show:Let's do it again with the $side nipple. I think you should ask me nicely to do it!
  button:Please, also torture my $side nipple!
  call:oneSideDoubleStrength
end:

;----------------------------------------------------------------
function:oneSideDoubleStrength
; parameters: $side
;----------------------------------------------------------------
  image:taskimg/sets/runa/runa_blue_bikini55.jpg
  settemp1:'$side'
  settemp2:'$side'
  if: '$calledBeforeOneSideDoubleStrength' == 'TRUE'
    show:Ok, sure! Then put one clothes pin on your TEMP1 nipple. And again put the second clothes pin on top of it. Pin the first pin with the second one close to the nipple, so that it effectively doubles the strengh.
  else:
    show:Put one clothes pin on your TEMP1 nipple. And since you wanted it to be more painful, you will put the second clothes pin on top of it. Pin the first pin with the second one close to the nipple, so that it effectively doubles the strengh! Make sure that your TEMP2 nipple is well visible on camera the whole time. Don't worry, I know that this is painful, so I won't let it on your nipple for too long. I'm not a monster.
    assign:calledBeforeOneSideDoubleStrength:'TRUE'
  fi:
  button:The $side nipple is double clamped
  show:Stay like that, and wait until I allow you to remove it.
  log:One nipple with 2 clamps on it. The clamps should be on top of each other, making the grip stronger (next pic)
  wait:7
  settemp1:(10*L_PAIN_N)+3
  settemp2:Math.floor((Math.random() * TEMP1))
  wait:TEMP2
  cam:1
  settemp3:TEMP1-TEMP2
  wait:TEMP3
  sound:bell.wav
  show:That's enough, take both clamps off and rub the nipple for a short while.
  button:Thank you, Runa
end:

;----------------------------------------------------------------
function:clampsOnNippleTip
;----------------------------------------------------------------
  image:taskimg/sets/runa/runa_blue_bikini71.jpg
  assign:phrase:'Please Runa make it more painful'
  asktextp:We are running out of time. So let's do a short last torture. But since it will be short, we will make it a little bit more painful. Beg me for it! Tell me '$phrase'
  assign:wrongAnswers:0
  assign:maxWrongAnswers:5
  while: ('LASTASK'!='$phrase' && $wrongAnswers<$maxWrongAnswers)
    assign:wrongAnswers:$wrongAnswers+1
    asktextp:No that was not correct, tell me '$phrase'
  endwhile:
  if: $wrongAnswers == $maxWrongAnswers
    call:addDelayedPunishmentForNotFollowingAnOrder
	image:taskimg/sets/runa/runa_blue_bikini56.jpg
    show:I've ordered you to ask me to make it more painful, and yet you didn't do it. I will report this to your DTITLE, lets see how $she1 feels about slaves who are not following orders. And also I will punish you, so now I will make it really painful.
	button:Thank you, Runa
  else:
    image:taskimg/sets/runa/runa_blue_bikini56.jpg
    show:Ok, if you want it so much, I will make it more painful!
	button:Thank you, Runa
  fi:
  call:doClampsOnNippleTip
end:

;----------------------------------------------------------------
function:doClampsOnNippleTip
;----------------------------------------------------------------
  image:taskimg/sets/runa/runa_blue_bikini57.jpg
  show:Put one clothes pin on the very tip of each nipple. The pressure should be focussed on a small area. When I give the command, you have 3 seconds to remove the pins. If the photo doesn't show that the very tips of your nipples are flattened afterwards, you've cheated and failed the task. Now attach the pins and get ready to remove them on my command! 
  button:Nipple tips are clamped
  speakjen:Keep your nipples in close-up on camera, and wait for my command!
  show:Keep your nipples in close-up on camera, and wait for my command!
  log:The clamps should be on the very tip of the nipples, pinching as little skin as possible (next pic)
  wait:3
  settemp1:(6*L_PAIN_N)+5
  settemp2:Math.floor((Math.random() * TEMP1))
  wait:TEMP2
  cam:1
  settemp3:TEMP1-TEMP2
  wait:TEMP3
  wait:3
  log:The clamps should be removed and the very tips of the nipples should still look flattened from the pins (next pic)
  speakjen:remove them
  show:<h1>NOW 3!</h1>
  wait:1
  show:<h1>NOW 2!</h1>
  wait:1
  show:<h1>NOW 1!</h1>
  wait:1
  show:<h1>NOW 0!</h1>
  cam:
  sound:bell.wav
end:

;----------------------------------------------------------------
function:addDelayedPunishmentForNotFollowingAnOrder
;----------------------------------------------------------------
  assign:delayedMessageText:'I am very disappointed, SNAME. You have embarrassed me in front of Runa. If I lend you out to somebody, you have to follow all of their commands like they were given by myself. I have scheduled a punishment for your you!'  
  if:('DNAME'=='Jennifer')
    dmsg:0:Jennifer:$delayedMessageText
    ;dtask:0:Jennifer:punishment_for_not_following_an_order:672
  fi:
  if:('DNAME'=='Natasha')
    dmsg:0:Natasha:$delayedMessageText
    ;dtask:0:Natasha:punishment_for_not_following_an_order:672
  fi:
  if:('DNAME'=='James')
    dmsg:0:James:$delayedMessageText
    ;dtask:0:James:punishment_for_not_following_an_order:672
  fi:
end:

;================================================================
;====================== start of the task =======================
;================================================================
image:taskimg/sets/runa/runa_blue_bikini15.jpg
show:Hey SNAME, it's me, Runa! Your DTITLE allowed me to play with you for some time. So it's torture time! Beg me to be tortured by me!
button:Please Runa, torture me!
image:taskimg/sets/runa/runa_blue_bikini13.jpg
show:Ok, if you like it so much I will torture you. Let's torture your nipples! I want to see how they look like before the torture. Take a photo showing both of them in close-up!
log:nipples before the torture (next pic)
call:takePictureWithCamDelay

call:spankNipples
call:pullClampsOff
call:layOnNipples
call:twistClamps
if: (L_PAIN_N > 3) || ((HARDCORE) && (L_PAIN_N > 1))
  call:doubleStrength
fi:
call:clampsOnNippleTip

image:taskimg/sets/runa/runa_red_lingerie_a16.jpg
show:This was so much fun! I will ask your DTITLE to let me torture you again soon! See you soon, SNAME!
button:See you soon, Runa!
label:endoftask