All pastes #483279 Raw Edit

Miscellany

public text v1 · immutable
·published 2007-05-11 17:23 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 $active 02 00
    drawline $active 02 10 $calc($mouse.x - 30) 330 $calc($mouse.x + 30) 330
    if (!%sqd) { drawreplace $active 04 00 | drawdot $active 04 6 $mouse.x 321 }
  }
  sclick:{ if (!%sqd) { drawreplace $active 06 00 | set %sqc 0 | set %sqd $rand(1,2) | set %sqp $mouse.x 321 | .timerSquash -m 0 025 mball } }
}
on *:CLOSE:*:{ if (($target == @Squash) && (%sqd)) { unset %sq* | .timerSquash off } }
alias mball {
  if (%sqd) {
    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) - 5) $calc($gettok(%sqp,2,32) - 5)
    elseif (%sqd isnum 2) set %sqp $calc($gettok(%sqp,1,32) + 5) $calc($gettok(%sqp,2,32) - 5)
    elseif (%sqd isnum 3) set %sqp $calc($gettok(%sqp,1,32) + 5) $calc($gettok(%sqp,2,32) + 5)
    elseif (%sqd isnum 4) set %sqp $calc($gettok(%sqp,1,32) - 5) $calc($gettok(%sqp,2,32) + 5)
    drawdot $active 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 ($gettok(%sqp,1,32) >= 390) {
      if (%sqd isnum 3) set %sqd 4
      elseif (%sqd isnum 2) set %sqd 1
      inc %sqc
    }
    elseif ($gettok(%sqp,2,32) <= 0) {
      if (%sqd isnum 1) set %sqd 4
      elseif (%sqd isnum 2) set %sqd 3
      inc %sqc
    }
    elseif ((!%b) && ($gettok(%sqp,2,32) isnum 325-335) && ($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
    }
    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
    }
  }
}