All pastes #483323 Raw Edit

Someone

public text v1 · immutable
·published 2007-05-11 17:43 UTC
rendered paste body
menu * {
  Squash!:{
    window -pdk0 @Squash 0 0 400 400
    set %sqc 0
    drawtext @Squash 05 10 10 Score: %sqc
  }
}
menu @Squash {
  mouse:{
    drawreplace @Squash 02 00
    drawline @Squash 02 10 $calc($mouse.x - 30) 330 $calc($mouse.x + 30) 330
    if (!%sqd) { drawreplace @Squash 04 00 | drawdot @Squash 04 6 $mouse.x 321 }
  }
  sclick:{ if (!%sqd) {
      set %sqc 0
      set %sqd $rand(1,2)
      set %sqs 5
      set %sqp $mouse.x 321
      .timerSquash -m 0 025 mball
      drawreplace @Squash 06 00
    }
  }
}
on *:CLOSE:*:{ if (($target == @Squash) && (%sqd)) { unset %sq* | .timerSquash off } }
alias mball {
  if (%sqd) {
    drawreplace @Squash 06 00
    drawreplace @Squash 05 00
    drawtext @Squash 05 10 10 Score: %sqc
    drawreplace @Squash 04 00
    if (%sqd isnum 1) set %sqp $calc($gettok(%sqp,1,32) - %sqs) $calc($gettok(%sqp,2,32) - %sqs)
    elseif (%sqd isnum 2) set %sqp $calc($gettok(%sqp,1,32) + %sqs) $calc($gettok(%sqp,2,32) - %sqs)
    elseif (%sqd isnum 3) set %sqp $calc($gettok(%sqp,1,32) + %sqs) $calc($gettok(%sqp,2,32) + %sqs)
    elseif (%sqd isnum 4) set %sqp $calc($gettok(%sqp,1,32) - %sqs) $calc($gettok(%sqp,2,32) + %sqs)
    drawdot @Squash 04 6 %sqp
    if ($gettok(%sqp,1,32) <= 0) {
      if (%sqd isnum 1) set %sqd 2
      elseif (%sqd isnum 4) set %sqd 3
      inc %sqc
      if ($right(%sqc,1) == 0) inc %sqs
    }
    if ($gettok(%sqp,1,32) >= 390) {
      if (%sqd isnum 3) set %sqd 4
      elseif (%sqd isnum 2) set %sqd 1
      inc %sqc
      if ($right(%sqc,1) == 0) inc %sqs
    }
    elseif ($gettok(%sqp,2,32) <= 0) {
      if (%sqd isnum 1) set %sqd 4
      elseif (%sqd isnum 2) set %sqd 3
      inc %sqc
      if ($right(%sqc,1) == 0) inc %sqs
    }
    elseif ((!%b) && ($gettok(%sqp,2,32) isnum 323-338) && ($mouse.x isnum $+($calc($gettok(%sqp,1,32) - 30),-,$calc($gettok(%sqp,1,32) + 30)))) {
      set %b yes | .timer 1 1 unset %b
      if (%sqd isnum 3) set %sqd 2
      elseif (%sqd isnum 4) set %sqd 1
      inc %sqc
      if ($right(%sqc,1) == 0) inc %sqs
    }
    elseif ($gettok(%sqp,2,32) >= 350) {
      .timerSquash off | unset %sqd
      drawtext @Squash 06 130 100 You lost! Score: %sqc
      drawreplace @Squash 05 00
      set %sqc 0
      drawtext @Squash 05 10 10 Score: %sqc
    }
  }
}