home *** CD-ROM | disk | FTP | other *** search
/ VIPER Paradice / VIPER.ISO / pc / ITA / SCRIPTS / VPSYS.VSC < prev    next >
Encoding:
Text File  |  2002-06-26  |  20.5 KB  |  679 lines

  1. ;;;
  2. ;;; vpsys.vsc
  3. ;;;
  4.  
  5. (load "se.vsc")
  6.  
  7. (load "system.vsc")
  8. (load "xselement.vsc")
  9.  
  10. (load "spell.vsc")
  11. (load "roulette.vsc")
  12.  
  13. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  14. ;; run-action-phase
  15. (define (run-action-phase session)
  16.   (let* ((player    (current-player session))
  17.          (character (current-character player)))
  18.     ;; âëâbâLü[âQâCâô
  19.     (if (< 0 (character-luckygain-get character))
  20.         (begin
  21.           (call-caption "<p>GOKURAKU!!</p>")
  22.           (call-prompt "<p>E' uscito il numero fortunato!</p>")
  23.           (while
  24.            (< 0 (character-luckygain-get character))
  25.            (let* ((card        (call-generate-spell-card (random 2)))
  26.                   (spell    (call-pull-spell card))
  27.                   (desc        (spell-description-get spell))
  28.                   )
  29.              (call-gain-spell-card character card)
  30.              (if (not (string=? (spell-reaction-get spell) ""))
  31.                  (call-react character (spell-reaction-get spell)))
  32.              (call-show-spell-card card)
  33.              (call-prompt "<p>"
  34.              "<br/>Ti sei impossessato di una card!</p>")
  35.              
  36.              (call-hide-spell-card player)
  37.              )
  38.            (character-luckygain-apply character (lambda (x) (- x 1)))
  39.            )
  40.           )
  41.         )
  42.  
  43.     ;; òαé¡
  44.     (cond
  45.      ((character-skipaction-get character) #f)
  46.      ((= (character-walk-get character) 0)
  47.       (run-event session
  48.                  (node-flowstop-get (character-location-get character))))
  49.      (#t
  50.       (let loop
  51.           ((walk         #f)
  52.            (location    #f))
  53.         (begin
  54.           (set! walk        (character-walk-get character))        ; int
  55.           (set! location    (character-location-get character))    ; Nodeî^
  56.           
  57.           ;; walkò¬òαé¡
  58.           (walk-forward session walk location)
  59.           
  60.             ;; âCâxâôâgé╠ÅIù╣îπì─é╤walké¬É▌ÆΦé│éΩé─éóé╜éτîJéΦò╘é╡üB
  61.           (if (< 0 (character-walk-get character)) (loop #f #f))
  62.           )))
  63.      )
  64.     )
  65.   )
  66.  
  67. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  68. ;; run-fool-phase
  69. (define (run-fool-phase session)
  70.   (let* ((character    (session-fool-get session))
  71.          (location    (character-location-get character))
  72.          (walk        (character-walk-get character))
  73.          (next        #f)
  74.          (n            #f))
  75.     (call-play-se =foolwalk= #t)
  76.     (while (< 0 walk)
  77.            ;; âïü[âgé╠æIæ≡
  78.            (set! n (random (node-links-length location)))
  79.            (set! next (node-links-get location n))
  80.            (character-location-set character next)
  81.            (call-walk character next)
  82.            (set! location next)
  83.            (set! walk (- walk 1))
  84.            )
  85.     (call-stop-se =foolwalk=)
  86.     (call-wait-a-moment 90)
  87.     )
  88.   )
  89.  
  90. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  91. ;; run-meet-fool-phase
  92. (define (run-meet-fool-phase session)
  93.   (let* ((character    (session-fool-get session))
  94.          (location    (character-location-get character)))
  95.     (call-caption "<p>Dunball man</p>")
  96.     (call-prompt "<p>Ehi, che coincidenza. Ma forse non e' una<br/>semplice coincidenza.<br/>"
  97.                  "Ti faccio girare la gorgeos-roulette.</p>")
  98.     (event-gorgeous-roulette session)
  99.     (call-wait-a-moment 90)
  100.     )
  101.   )
  102.  
  103. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  104. ;; walk-forward
  105. (define (walk-forward session walk location)
  106.   (let* ((player    (current-player session))
  107.          (character (current-character player))
  108.          (route #f))
  109.     (call-ghost-begin character location)
  110.     
  111.     ;; âLâââôâZâïé═òsë┬
  112.     (while (not route)
  113.            (set! route (walk-forward-route session walk location #f)))
  114.     
  115.     ;; âïü[âgæIæ≡é¬è«ù╣é╡é╜éτâCâxâôâgé╠Ä└ìs
  116.     ;;üié│é┴é½é▄é┼éóé╜â}âXé╠Æ╩ë▀âCâxâôâgé═ö≥é╬é╖üjüB
  117.     (trace-route session (cdr route))
  118.     )
  119.   )
  120.  
  121. ;; ê°Éö  : session ê┌ô«ù═ î╗ì▌Æn
  122. ;; û▀éΦÆl: îoÿHÅεò± (node ...)
  123. (define (walk-forward-route session walk location query)
  124.   (let* ((player    (current-player session))
  125.          (character (current-character player)))
  126.     (call-ghost-walk character location walk)
  127.     (cond
  128.      ((or (= 0 walk)
  129.           (= 0 (node-links-length location))
  130.           (and (not (eqv? (character-location-get character) location))
  131.                (node-forcebreak-get location)))
  132.       (if (= 0 walk)
  133.           (call-caption "<p>Fine degli spostamenti.</p>")
  134.           (call-caption "<p>Arresto forzato!</p>"))
  135.       (walk-forward-route-stop session walk location query))
  136.      (else
  137.       (walk-forward-route-aux session walk location query)))
  138.     )
  139.   )
  140.  
  141. (define (walk-forward-route-stop session walk location query)
  142.   (let* ((player    (current-player session))
  143.          (character (current-character player)))
  144.     (call-message "<p>Vuoi fermarti qui ?</p>")
  145.     (if (or (not query)
  146.             (call-query-yesno))
  147.         ;; ÅIù╣
  148.         (begin
  149.           (character-walk-set character (- walk)) ; ï¡ÉºÆΓÄ~é≡ö╗ò╩é┼é½éΘéµéñé╔
  150.           (list location)
  151.           )
  152.         ;; é│éαé╚é¡é╬âLâââôâZâï
  153.         #f)
  154.     )
  155.   )
  156.  
  157. (define (walk-forward-route-aux session walk location query)
  158.   (let* ((player    (current-player session))
  159.          (character (current-character player))
  160.          (choises    (node-links-list location)))
  161.     (let loop ((course #f))
  162.       (begin
  163.         (call-caption "<p>Seleziona un percorso</p>")
  164.         (if (= 1 (length choises))
  165.             (set! course (car choises))
  166.             (begin
  167.               (set! course (call-query-course location choises walk #t))
  168.               (set! query #t)))
  169.         (if (not course)
  170.             ;; âLâââôâZâïé╚é╠é┼éPÄΦû▀éΘ
  171.             #f
  172.             ;; âLâââôâZâïé┼é╚éóÅΩìçê┌ô«
  173.             (begin
  174.               (let* ((route (walk-forward-route session (- walk 1)
  175.                                                 course query)))
  176.                 (if route
  177.                     ;; ÅIù╣é╡é╜ÅΩìç
  178.                     (cons location route)
  179.                     ;; âLâââôâZâïé│éΩé╜ÅΩìç
  180.                     (begin
  181.                       (call-ghost-walk character location walk)
  182.                       (if (< 1 (length choises))
  183.                           ;; é▒é╠âmü[âhé╔òíÉöé╠æIæ≡Äêé¬éáé┴é╜ÅΩìçé═
  184.                           ;; æIæ≡é╠éΓéΦé╚é¿é╡
  185.                           (loop #f)
  186.                           ;; é│éαé╚é¡é╬âLâââôâZâï
  187.                           #f)))))))))
  188.   )
  189.  
  190. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  191. ;; trace-route
  192. ;; ê°Éö  : session îoÿHÅεò± (node ...)
  193. ;; û▀éΦÆl ô┴é╔é╚é╡
  194. (define (trace-route session route)
  195.   (let* ((player    (current-player session))
  196.          (character (current-character player))
  197.          (bonus        (character-walkbonus-get character))
  198.          (last        #f))
  199.     ;; Æ╩ë▀âCâxâôâg
  200.     (call-play-se =walk= #t)
  201.     (for-each
  202.      (lambda (x)
  203.        (character-location-set character x)
  204.        (character-walk-set character
  205.                            (- (character-walk-get character) 1))
  206.        (call-walk character x)
  207.        (if (< 0 bonus)
  208.            (begin
  209.              (character-money-apply character (lambda (x) (+ x bonus)))
  210.              (call-show-float-income bonus x)
  211.              (call-play-se =coin= #f)))
  212.        (character-walkcount-apply character (lambda (x) (+ x 1)))
  213.        (if (not (string=? (node-flowpass-get x) ""))
  214.            (begin
  215.              (call-stop-se =walk=)
  216.              (run-event session (node-flowpass-get x))
  217.              (call-play-se =walk= #t)
  218.              ))
  219.        (set! last x)
  220.        )
  221.      route)
  222.     
  223.     (call-stop-se =walk=)
  224.     (call-ghost-end character)
  225.  
  226.     (if (node-forcebreak-get (character-location-get character))
  227.         (call-react character "surprise"))
  228.     
  229.     ;; ÆΓÄ~âCâxâôâg
  230.     (if last (run-event session (node-flowstop-get last)))    
  231.     )
  232.   )
  233.  
  234. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  235. ;; run-event
  236. (define (run-event session event)
  237.   (if (not (string=? "" event))
  238.       (let* ((player    (current-player session))
  239.              (character (current-character player))
  240.              (type        (substring event 0 1))
  241.              (value        (substring event 1 (string-length event)))
  242.              (symbol    (string->symbol event))
  243.              (node        (character-location-get character))
  244.              (group        (node-group-get node))
  245.              )
  246.         (cond
  247.          ;;((= 0 (random 3))    (event-trade-spell session))
  248.          ;;;(#t            (event-lap session))
  249.          ;;((= 0 (random 10))        (event-lap session))
  250.          ;;((string=? (node-group-get node) "field")
  251.          ;;(event-enter-dungeon session))
  252.          ;;((string=? (node-group-get node) "dungeon")
  253.          ;;(event-exit-dungeon session))
  254.          ;;(#t                        (event-trade-hands session (random 4)))
  255.          ;;(#t                        (event-gain-movie-card session))
  256.          ;;(#t                        (event-chest session))
  257.          ;;(#t    (event-trade-movie session))
  258.          ;;(#t    (event-roulette session))
  259.          ;;(#t    (event-trade-with-collector session))
  260.          ((string=? event "û│ë±ô]âpâlâï")    (event-not-rotater session))
  261.          ((string=? event "ë±ô]âpâlâï")        (event-rotater session))
  262.          ((string=? event "ô┴ÄΩâJü[âh")        (event-gain-spell-card session))
  263.          ((string=? event "âÇü[ârü[âJü[âh") (event-gain-movie-card session))
  264.          ((string=? event "â_âôâWâçâôin")    (event-enter-dungeon session))
  265.          ((string=? event "â_âôâWâçâôÆEÅo")    (event-exit-dungeon session))
  266.          ((string=? event "ïαîöâVâçâbâv")    (event-trade-spell session))
  267.          ((string=? event "âJü[âhâVâçâbâv")    (event-trade-spell session))
  268.          ((string=? event "âÇü[ârü[âVâçâbâv")    (event-trade-movie session))
  269.          ((string=? event "âWâââôâv")        (event-jump session))
  270.          ((string=? event "êΩÄⁿ")            (event-lap session))
  271.          ((string=? event "ò≤öá")            (event-chest session))
  272.          ((string=? event "âïü[âîâbâgâpâlâï")    (event-roulette session))
  273.          ((string=? event "ö╝Äⁿ")
  274.           (event-trade-with-collector session))
  275.          ((string=? type "p")
  276.           (event-trade-hands session
  277.                              (- (string->number (substring event 1 2)) 1)))
  278.          ((string=? type  "*")
  279.           (event-door session value))
  280.          ((string=? type "+")
  281.           (event-plus session (cdr (assq symbol *plus-events*))))
  282.          ((string=? type "-")
  283.           (event-minus session (cdr (assq symbol *minus-events*))))
  284.          )
  285.         )
  286.       )
  287.   )
  288.  
  289. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  290. ;; event-gain-spell-card
  291. (define (event-gain-spell-card session)
  292.   (call-caption "<p>Speciale card mas</p>")
  293.   (call-message "<p>Segli la carta che vuoi</p>")
  294.  
  295.   (let* ((player    (current-player session))
  296.          (character (current-character player))
  297.          (extra        (call-generate-spell-card 0))
  298.          (teleca    (call-generate-spell-card 1))
  299.          (category    (call-query-drawing extra teleca))
  300.          (card        (if (= category 0) extra teleca))
  301.          (spell        (call-pull-spell card))
  302.          (desc        (spell-description-get spell))
  303.          )
  304.     (call-gain-spell-card character card)
  305.     (if (not (string=? (spell-reaction-get spell) ""))
  306.         (call-react character (spell-reaction-get spell)))
  307.     (call-show-spell-card card)
  308.     (call-prompt "<p>"
  309.                  (call-get-spell-priced-text #f spell)
  310.                  "<br/>Ti sei impossessato della card!</p>")
  311.     (call-prompt desc)
  312.     (call-hide-spell-card player)
  313.     )
  314.   )
  315.  
  316. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  317. ;; event-gain-movie-card
  318. (define (event-gain-movie-card session)
  319.   (let* ((player    (current-player session))
  320.          (character (current-character player))
  321.          (card        (call-generate-movie-card #f))
  322.          (gold        (car card))
  323.          (silver    (cdr card))
  324.          (count        (movie-gaincount-get
  325.                      (character-moviecards-get character
  326.                                                (+ (* gold 5) silver))))
  327.          (first?    (= 0 count))
  328.          )
  329.     (call-increment-bingo-item character gold silver)
  330.     (call-caption "<p>Movie card mas</p>")
  331.     (call-react character "happy")
  332.     (call-show-movie-card gold silver)
  333.     (call-play-se =gainsilver= #f)
  334.     (call-prompt "<p>"
  335.                  (call-get-movie-priced-text #f gold silver)
  336.                  "<br/>Adesso questa card e' tua!</p>")
  337.     (call-hide-movie-card)
  338.     (call-play-movie gold silver first?)
  339.     )
  340.   )
  341.  
  342. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  343. ;; event-plus
  344. (define (event-plus session xs-element)
  345.   (let* ((player    (current-player session))
  346.          (character (current-character player))
  347.          (sum        (extract-sum xs-element))
  348.          (min        (string->number (cdr (assq 'min (cdr sum)))))
  349.          (max        (string->number (cdr (assq 'max (cdr sum)))))
  350.          (earn        (get-salary character min max))
  351.          (currency-unit (session-currencyunit-get session))
  352.          (replacement    (string-append "<c1>"
  353.                                        (number->string earn)
  354.                                        currency-unit
  355.                                        "</c1>"))
  356.          )
  357.     (call-dance character "happy")
  358.     (character-money-apply character (lambda (x) (+ x earn)))
  359.     (call-caption "<p>Plus event</p>")
  360.     (call-message (xs-element->xml (replace-sum xs-element replacement)))
  361.     (call-dance character "stop")
  362.     (call-show-income earn)
  363.     )
  364.   )
  365.  
  366. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  367. ;; event-minus
  368. (define (event-minus session xs-element)
  369.   (let* ((player    (current-player session))
  370.          (character (current-character player))
  371.          (sum        (extract-sum xs-element))
  372.          (min        (string->number (cdr (assq 'min (cdr sum)))))
  373.          (max        (string->number (cdr (assq 'max (cdr sum)))))
  374.          (earn        (get-salary character min max))
  375.          (currency-unit (session-currencyunit-get session))
  376.          (replacement    (string-append "<c1>"
  377.                                        (number->string earn)
  378.                                        currency-unit
  379.                                        "</c1>"))
  380.          )
  381.     (call-dance character "sad")
  382.     (character-money-apply character (lambda (x) (- x earn)))
  383.     (call-caption "<p>Minus event</p>")
  384.     (call-message (xs-element->xml (replace-sum xs-element replacement)))
  385.     (call-dance character "stop")
  386.     (call-show-income (- earn))
  387.     )
  388.   )
  389.  
  390. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  391. ;; run-spell-event
  392. (define (run-spell-event session event-name card)
  393.   (let* ((player    (current-player session))
  394.          (character (current-character player)))
  395.     (apply
  396.      (cdr
  397.       (assq
  398.        (string->symbol (string-append "spell-event-" event-name))
  399.        *spell-events*))
  400.      (list session card))
  401.     )
  402.   )
  403.  
  404.  
  405. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  406. ;; event-trade-spell
  407. (define (event-trade-spell session)
  408.   (let* ((player    (current-player session))
  409.          (character (current-character player)))
  410.     (call-react character "stand")
  411.     (call-trade-spell character)
  412.     )
  413.   )
  414.  
  415. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  416. ;; event-trade-movie
  417. (define (event-trade-movie session)
  418.   (let* ((player    (current-player session))
  419.          (character (current-character player)))
  420.     (call-react character "stand")
  421.     (call-trade-movie character)
  422.     )
  423.   )
  424.  
  425. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  426. ;; event-trade-hands
  427. (define (event-trade-hands session shop-index)
  428.   (let* ((player    (current-player session))
  429.          (character (current-character player))
  430.          (unit        (session-currencyunit-get session))
  431.          (movies    (movie-list character))
  432.          (count        0)
  433.          (price        0))
  434.     (call-caption "<p>Private shop</p>")
  435.     (cond
  436.      ;; Ä⌐ò¬é╠ôX
  437.      ((= shop-index (session-currentplayerindex-get session))
  438.       (if (pair? movies)
  439.           (begin
  440.             (set! count (length movies))
  441.             (set! price (* 5000 count))
  442.             (character-money-apply character (lambda (x) (+ x price)))
  443.             (call-react character "happy")
  444.             (call-prompt "<p>Avendo proiettato i movie raccolti hai"
  445.                          (number->string (length movies))
  446.                          " clienti.<br/>"
  447.                          (number->string price)
  448.                          unit
  449.                          " Guadagni provvisori</p>")
  450.             )
  451.           (call-prompt "<p>Ti sei fermato nel tuo negozio"
  452.                        " ma non possedendo movie, non hai potuto aprire la sala proiezioni."
  453.                        " Nessun guadagno provvisorio.</p>"))
  454.       )
  455.      ;; æ╝Élé╠ôX
  456.      ((< shop-index (session-order-length session))
  457.       (let* ((master (player-characters-get
  458.                       (session-order-get session shop-index) 0)))
  459.         (cond
  460.          ((<= 0 (character-ranking-get master))
  461.           (call-prompt "<p>Pero' il negozio privato di "
  462.                        (character-name-get master)
  463.                        " era gia' chiuso......"
  464.                        "</p>"))
  465.          ((pair? (movie-list master))
  466.           (begin
  467.             (call-react character "surprise")
  468.             (call-trade-hands character master)
  469.             ))
  470.          (#t
  471.           (call-prompt "<p>"
  472.                        (character-name-get master)
  473.                        ". Il suo negozio era ancora in fase di allestimento......</p>"))
  474.          )
  475.         )
  476.       )
  477.      ;; ï≤é½ë╞üiÄQë┴é╡é─éóé╚éóâvâîâCâäüj
  478.      (#t (call-prompt "<p>Il negozio privato era una casa abbandonata......</p>")))
  479.     )
  480.   )
  481.  
  482. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  483. ;; event-trade-with-collector
  484. (define (event-trade-with-collector session)
  485.   (let* ((player    (current-player session))
  486.          (character (current-character player))
  487.          (unit        (session-currencyunit-get session))
  488.          (movies    (movie-list character))
  489.          (count        (length movies))
  490.          (price        (* 5000 count)))
  491.  
  492.     (call-caption "<p>Casa di Ogawa</p>")
  493.  
  494.     (call-trade-with-collector character)
  495.     
  496.     (call-caption "<p>Bonus mezzo giro</p>")
  497.  
  498.     (if (< 0 count)
  499.         (begin
  500.           (character-money-apply character (lambda (x) (+ x price)))
  501.           (call-react character "happy")
  502.           (call-prompt "<p>Avendo fatto vedere i movies ad Ogawa ti ha dato "
  503.                        (number->string price)
  504.                        unit
  505.                        "!</p>")
  506.           )
  507.         )
  508.     )
  509.   )
  510.  
  511. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  512. ;; event-jump
  513. (define (event-jump session)
  514.   (let* ((player    (current-player session))
  515.          (character (current-character player)))
  516.     (call-prompt "<p>Ti se fermato al Jump mas!</p>")
  517.     (jump session (vector-ref '#(1 1 1 1 1 1 2 2 2 3) (random 10)))
  518.     (run-event session (node-flowstop-get
  519.                         (character-location-get character)))
  520.     )
  521.   )
  522.  
  523. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  524. ;; event-lap
  525. (define (event-lap session)
  526.   (let* ((player    (current-player session))
  527.          (character (current-character player)))
  528.  
  529.     (call-trade-with-collector session)
  530.  
  531.     (call-caption "<p>Un giro completato</p>")
  532.     (character-lap-apply character (lambda (x) (+ x 1)))
  533.  
  534.     ;; âVü[âNâîâbâgâÇü[ârü[âJü[âhé╠Ä»ò╩
  535.     (identify-secret-cards session)
  536.  
  537.     ;; âSü[âïâ`âFâbâN
  538.     (if (call-check-finished character)
  539.         ;; âSü[âï
  540.         (begin
  541.           (call-react character "happy")
  542.           (call-finish character)
  543.           )
  544.         ;; î╗ì▌é╠é¿é¿é┤é┴é╧é╚Åçê╩
  545.         (begin
  546.           ;; â{ü[âiâX
  547.           (earn-lap-bonus session character)
  548.           (call-prompt "<p>Yatta!!! </p>")
  549.           )
  550.         )
  551.     )
  552.   )
  553.  
  554. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  555. ;; event-enter-dungeon
  556. (define (event-enter-dungeon session)
  557.   (let* ((player    (current-player session))
  558.          (character (current-character player)))
  559.     (call-react character "surprise")
  560.     (call-prompt "<p>Jump verso il cratere dell' isola!</p>")
  561.     (call-enter-dungeon character)
  562.     (call-prompt "<p>Sei arrivato al dungeon dell' isola!</p>")
  563.     )
  564.   )
  565.  
  566. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  567. ;; event-exit-dungeon
  568. (define (event-exit-dungeon session)
  569.   (let* ((player    (current-player session))
  570.          (character (current-character player)))
  571.     (call-prompt "<p>Esci dal dungeon!</p>")
  572.     (call-exit-dungeon character)
  573.     (call-prompt "<p>Sei uscito dal dungeon!</p>")
  574.     )
  575.   )
  576.  
  577. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  578. ;; event-chest
  579. (define (event-chest session)
  580.   (let* ((player    (current-player session))
  581.          (character (current-character player)))
  582.     (call-caption "<p>Scatola del tesoro segreta del dungeon!</p>")
  583.     (call-message "<p>Hai trovato la scatola del tesoro! Scegli una card!</p>")
  584.     (call-chest character 0)
  585.     )
  586.   )
  587.  
  588. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  589. ;; event-door
  590. (define (event-door session number)
  591.   (let* ((player    (current-player session))
  592.          (character (current-character player)))
  593.     (call-warp player (find-node session (string-append "öα" number)))
  594.     (call-caption "<p>Indicazione</p>")
  595.     (call-prompt "<p>Ti sei fermato sulla freccia! Puoi prendere la scorciatoia.</p>")
  596.     )
  597.   )
  598.  
  599.  
  600. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  601. ;; event-roulette
  602. (define (event-roulette session)
  603.   (let* ((player    (current-player session))
  604.          (character (current-character player))
  605.          (n            #f))
  606.     (call-caption "<p>Prisma roulette</p>")
  607.     (call-message "<p>Ferma la roulette.</p>")
  608.     (set! n (call-roulette character))
  609.     (case n
  610.       ((0)    ;; â{ü[âiâXâ|âCâôâg
  611.        (event-roulette-0 session)
  612.        )
  613.       ((1)    ;; âJü[âhâvâîâ[âôâgüiâ~â~âbâNé╚é╡ò≤öáüj
  614.        (event-roulette-1 session)
  615.        )
  616.       ((2)    ;; Å¼É∞îNé┐é▄é┼âWâââôâv
  617.        (event-roulette-2 session)
  618.        )
  619.       ((3)  ;; â}âCâiâXâ|âCâôâg
  620.        (event-roulette-3 session)
  621.        )
  622.       ((4)    ;; ò≤öá
  623.        (event-roulette-4 session)
  624.        )
  625.       ((5)    ;; é═é╕éΩ
  626.        (event-roulette-5 session)
  627.        )
  628.       ((6)    ;; üiïαâÇü[ârü[é╠é▌é╠ò≤öáüj
  629.        (event-roulette-6 session)
  630.        )
  631.       ((7)    ;; êΩë±ïxé▌
  632.        (event-roulette-7 session)
  633.        )
  634.       ((8)    ;; âÇü[ârü[âJü[âhêΩûçûvÄ√
  635.        (event-roulette-8 session)
  636.        )
  637.       ((9)    ;; é═é╕éΩ
  638.        (event-roulette-9 session)
  639.        )
  640.       )
  641.     )
  642.   )
  643.  
  644. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  645. ;; event-gorgeous-roulette
  646. (define (event-gorgeous-roulette session)
  647.   (let* ((player    (current-player session))
  648.          (character (current-character player))
  649.          (n            #f))
  650.     (call-caption "<p>Gorgeos roulette</p>")
  651.     (call-message "<p>Ferma la roulette.</p>")
  652.     (set! n (call-roulette character))
  653.     (case n
  654.       ((0)       (event-roulette-10 session)       )
  655.       ((1)       (event-roulette-11 session)       )
  656.       ((2)       (event-roulette-12 session)       )
  657.       ((3)       (event-roulette-13 session)       )
  658.       ((4)       (event-roulette-14 session)       )
  659.       ((5)       (event-roulette-15 session)       )
  660.       ((6)       (event-roulette-16 session)       )
  661.       ((7)       (event-roulette-17 session)       )
  662.       ((8)       (event-roulette-18 session)       )
  663.       ((9)       (event-roulette-19 session)       )
  664.       )
  665.     )
  666.   )
  667.  
  668. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  669. ;; event-not-rotater
  670. (define (event-not-rotater session)
  671.   (call-run-rotater)
  672.   (call-run-rotater)
  673.   )
  674.  
  675. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  676. ;; event-rotater
  677. (define (event-rotater session)
  678.   (call-run-rotater)
  679.   )