1(kern-mk-sprite-set 'ss_food 32 32 2 2 0 0 "food.png") 2 3(kern-mk-sprite 's_food ss_food 1 0 #f 0) 4(kern-mk-sprite 's_beer ss_food 1 1 #f 0) 5(kern-mk-sprite 's_wine ss_food 1 2 #f 0) 6 7;; caloric values 8(define food-value 1) 9(define alcohol-value 1) 10 11(define food-ifc 12 (ifc '() 13 (method 'get (lambda (kobj getter) 14 (kern-obj-inc-ref kobj) 15 (kern-obj-remove kobj) 16 (kern-obj-add-food getter (* food-value 17 (kern-obj-get-count kobj))) 18 (kern-obj-dec-ref kobj))) 19 (method 'buy (lambda (kbuyer q) 20 (kern-obj-add-food kbuyer (* food-value q)) 21 )) 22 )) 23 24(define alcohol-ifc 25 (ifc '() 26 (method 'get (lambda (kobj getter) 27 (kern-obj-inc-ref kobj) 28 (kern-obj-remove kobj) 29 (kern-obj-add-food getter (* alcohol-value 30 (kern-obj-get-count kobj))) 31 (kern-obj-add-effect getter ef_drunk nil) 32 (kern-obj-dec-ref kobj))) 33 (method 'buy (lambda (kbuyer q) 34 (display "buy")(newline) 35 (kern-obj-add-effect kbuyer ef_drunk nil) 36 (kern-obj-add-food kbuyer (* alcohol-value q)))) 37 )) 38 39 40(mk-obj-type 't_food (list "food" "food") s_food layer-item food-ifc) 41(mk-obj-type 't_beer "beer" s_beer layer-item alcohol-ifc) 42(mk-obj-type 't_wine (list "wine" "wine") s_wine layer-item alcohol-ifc) 43