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)