OSDN Git Service

9e233208756fd0c5a08fff05c6c88a01e3760b25
[nazghul-jp/nazghul-jp.git] / worlds / haxima-1.002 / scrolls.scm
1 ;; ============================================================================
2 ;; scrolls.scm -- useable scrolls
3 ;; ============================================================================
4
5 (kern-mk-sprite-set 'ss_scrolls 32 32 3 4 0 0 "scrolls.png")
6
7 (kern-mk-sprite 's_an_tym_scroll          ss_scrolls 1 0 #f 0) ;; stop time
8 (kern-mk-sprite 's_in_mani_corp_scroll    ss_scrolls 1 1 #f 0) ;; resurrect
9 (kern-mk-sprite 's_vas_rel_por_scroll     ss_scrolls 1 2 #f 0) ;; gate travel
10 (kern-mk-sprite 's_xen_corp_scroll        ss_scrolls 1 3 #f 0) ;; kill
11
12 (kern-mk-sprite 's_sanct_lor_scroll       ss_scrolls 1 4 #f 0) ;; invisibility
13 (kern-mk-sprite 's_in_quas_xen_scroll     ss_scrolls 1 5 #f 0) ;; clone
14 (kern-mk-sprite 's_in_vas_por_ylem_scroll ss_scrolls 1 6 #f 0) ;; tremor
15 (kern-mk-sprite 's_an_xen_ex_scroll       ss_scrolls 1 7 #f 0) ;; charm
16
17 (kern-mk-sprite 's_in_an_scroll           ss_scrolls 1 8 #f 0) ;; negate
18 (kern-mk-sprite 's_in_ex_por_scroll       ss_scrolls 1 9 #f 0) ;; unlock magic
19 (kern-mk-sprite 's_vas_mani_scroll        ss_scrolls 1 10 #f 0) ;; great heal
20 (kern-mk-sprite 's_wis_quas_scroll        ss_scrolls 1 11 #f 0) ;; reveal
21
22 (kern-mk-sprite 's_wis_an_ylem_scroll     ss_scrolls 1 13 #f 0) ;; xray
23
24 (kern-mk-sprite 's_rel_xen_quas_scroll    ss_scrolls 1 14 #f 0) ;; monster alignment
25
26 (define (mk-scroll tag name sprite spell)
27   (mk-usable-item tag name sprite norm 
28                   (lambda (kscrolltype kuser)
29                     (apply spell (list kuser)))))
30
31 (define (in-wilderness? caster)
32         (let ((place (loc-place (kern-obj-get-location caster))))
33         (and 
34                 (kern-place-is-wilderness? place)
35                 (not (kern-place-is-combat-map? place))
36         )))
37
38 ;;-----------------------------------------------------------------------------------------
39 ;; Scroll Functions
40 ;;-----------------------------------------------------------------------------------------
41
42 (define (scroll-xen-corp caster)
43         (if (in-wilderness? caster)
44                 result-not-here
45                 (user-cast-ranged-targeted-spell caster 4 cast-kill-proc)
46         ))
47                 
48 (define (scroll-in-quas-xen caster)
49         (if (in-wilderness? caster)
50                 result-not-here
51                 (cast-ui-basic-ranged-spell powers-clone
52                         caster 
53                         (powers-clone-range 12)
54                         12)
55         ))
56
57 (define (scroll-in-vas-por-ylem caster)
58         (if (in-wilderness? caster)
59                 result-not-here
60                 (powers-tremor caster caster 12)
61         ))
62
63 (define (scroll-an-xen-ex caster)
64         (if (in-wilderness? caster)
65                 result-not-here
66                 (cast-ui-basic-ranged-spell powers-charm
67                         caster 
68                         (powers-charm-range 12)
69                         12)
70         ))
71                 
72 (define (scroll-rel-xen-quas caster)
73   (if (in-wilderness? caster)
74       result-not-here
75       (rel-xen-quas caster))
76   )
77
78 (define (scroll-rel-xen-quas caster)
79   (if (in-wilderness? caster)
80       result-not-here
81       (rel-xen-quas caster))
82   )
83
84 (define (scroll-paralyze caster)
85   (paralyze caster)
86   )
87
88 ;;-----------------------------------------------------------------------------------------
89 ;; Scroll List
90 ;;-----------------------------------------------------------------------------------------
91
92 (mk-scroll 't_an_tym_scroll "An Tym (Time Stop) scroll" s_an_tym_scroll an-tym) ;; context-any
93 (mk-scroll 't_in_mani_corp_scroll "In Mani Corp (Resurrection) scroll" s_in_mani_corp_scroll in-mani-corp)  ;; context-any
94 (mk-scroll 't_vas_rel_por_scroll "Vas Rel Por (Gate) scroll" s_vas_rel_por_scroll vas-rel-por)  ;; context-any
95 (mk-scroll 't_xen_corp_scroll "Xen Corp (Death Bolt) scroll" s_xen_corp_scroll scroll-xen-corp) 
96 (mk-scroll 't_sanct_lor_scroll "Sanct Lor (Invisibility) scroll" s_sanct_lor_scroll sanct-lor) ;; context-any
97 (mk-scroll 't_in_quas_xen_scroll "In Quas Xen (Clone) scroll" s_in_quas_xen_scroll scroll-in-quas-xen)
98 (mk-scroll 't_in_vas_por_ylem_scroll "In Vas Por Ylem (Tremor) scroll" s_in_vas_por_ylem_scroll scroll-in-vas-por-ylem) 
99 (mk-scroll 't_an_xen_ex_scroll "An Xen Ex (Charm) scroll" s_an_xen_ex_scroll scroll-an-xen-ex)
100 (mk-scroll 't_in_an_scroll "In An (Negate Magic) scroll" s_in_an_scroll in-an) ;; context-any
101 (mk-scroll 't_in_ex_por_scroll "In Ex Por (Magic Unlock) scroll" s_in_ex_por_scroll in-ex-por)  ;; context-any??
102 (mk-scroll 't_vas_mani_scroll "Vas Mani (Great Heal) scroll" s_vas_mani_scroll vas-mani) ;; context-any
103 (mk-scroll 't_wis_quas_scroll "Wis Quas (Reveal) scroll" s_wis_quas_scroll wis-quas) ;; context-any
104 (mk-scroll 't_wis_an_ylem_scroll "Wis An Ylem (X-Ray Vision) scroll" s_wis_an_ylem_scroll wis-an-ylem) ;; context-any
105 (mk-scroll 't_rel_xen_quas_scroll "Rel Xen Quas (Illusion of Beastliness) scroll" s_rel_xen_quas_scroll rel-xen-quas)
106 (mk-scroll 't_test_paralyze_scroll "Paralyze Me!" s_an_tym_scroll scroll-paralyze)