Show More
@@ -1,6 +1,7 b'' | |||
|
1 | 1 | |
|
2 | 2 | # start |
|
3 | 3 | USEHTML=1 |
|
4 | BCOLOR = RGB(255, 255, 255) | |
|
4 | 5 | '<center><font size="20" color="#FF0000" face="Times New Roman"><b>Текстовый квест</b></font></center><br>' |
|
5 | 6 | ' <b>Ваша цель</b> - зарабатывать <i>деньги</i>, покупать на них <i>подарки</i> и дарить своим <i>близким</i>.' |
|
6 | 7 | ACT '<b>Начать игру</b>':GOTO 'Дом' |
@@ -130,3 +130,7 b'' | |||
|
130 | 130 | pointer-events: none; |
|
131 | 131 | cursor: default; |
|
132 | 132 | } |
|
133 | ||
|
134 | .qsp-objs li.qsp-obj-selected { | |
|
135 | background-color: blue; | |
|
136 | } |
@@ -18,7 +18,7 b'' | |||
|
18 | 18 | `(+ "javascript:" (inline-call ,func ,@args))) |
|
19 | 19 | |
|
20 | 20 | (defpsmacro inline-call (func &rest args) |
|
21 | `(+ ,func | |
|
21 | `(+ ',func | |
|
22 | 22 | "(\"" |
|
23 | 23 | ,(first args) |
|
24 | 24 | ,@(loop :for arg :in (cdr args) |
@@ -35,11 +35,9 b'' | |||
|
35 | 35 | (resolve))))) |
|
36 | 36 | ,@body)))) |
|
37 | 37 | |
|
38 | (defvar serv-vars (create)) | |
|
39 | ||
|
40 | 38 | (defpsmacro define-serv-var (name (slot value &optional index) &body body) |
|
41 | 39 | (setf name (string-upcase (symbol-name name))) |
|
42 | `(setf (getprop serv-vars name) | |
|
40 | `(setf (getprop serv-vars ,name) | |
|
43 | 41 | (create :name ,name |
|
44 | 42 | :slot ,slot |
|
45 | 43 | :body (lambda (,value ,@(when index (list index))) |
@@ -21,11 +21,10 b'' | |||
|
21 | 21 | "</a>")) |
|
22 | 22 | |
|
23 | 23 | (defun make-obj (title img selected) |
|
24 | (+ "<li>" | |
|
25 | "<a href='" (href-call select-obj title img) "'" | |
|
26 | "class='qsp-obj" (if selected " qsp-obj-selected" "") "'>" | |
|
24 | (+ "<li onclick='" (inline-call select-obj title img) "'>" | |
|
25 | "<a class='qsp-obj" (if selected " qsp-obj-selected" "") "'>" | |
|
27 | 26 | (if img (+ "<img src='" img "'>") "") |
|
28 | obj | |
|
27 | title | |
|
29 | 28 | "</a>")) |
|
30 | 29 | |
|
31 | 30 | (defun make-menu-delimiter () |
@@ -55,6 +54,7 b'' | |||
|
55 | 54 | ;; Close image on click |
|
56 | 55 | (setf (@ (by-id "qsp-image-container") onclick) |
|
57 | 56 | show-image) |
|
57 | ;; Enter in input field | |
|
58 | 58 | (setf (@ (get-frame :input) onkeyup) |
|
59 | 59 | on-input-key) |
|
60 | 60 | ;; Close the dropdown on any click |
@@ -196,7 +196,7 b'' | |||
|
196 | 196 | |
|
197 | 197 | (defun select-act (title) |
|
198 | 198 | (loop :for (k v) :of (root acts) |
|
199 |
|
|
|
199 | :do (setf (getprop v :selected) nil)) | |
|
200 | 200 | (setf (getprop (root acts) title :selected) t) |
|
201 | 201 | (call-serv-loc "ONACTSEL")) |
|
202 | 202 | |
@@ -290,7 +290,7 b'' | |||
|
290 | 290 | (chain (ensure-var name) (set index slot value)) |
|
291 | 291 | (let ((serv-var (getprop serv-vars name))) |
|
292 | 292 | (when serv-var |
|
293 |
(funcall (@ serv-var : |
|
|
293 | (funcall (@ serv-var :body) | |
|
294 | 294 | (get-var name index (@ serv-var :slot)) |
|
295 | 295 | index))) |
|
296 | 296 | (void)) |
@@ -339,16 +339,16 b'' | |||
|
339 | 339 | |
|
340 | 340 | (defun select-obj (title img) |
|
341 | 341 | (loop :for (k v) :of (root objs) |
|
342 |
|
|
|
342 | :do (setf (getprop v :selected) nil)) | |
|
343 | 343 | (setf (getprop (root objs) title :selected) t) |
|
344 | 344 | (call-serv-loc "ONOBJSEL" title img)) |
|
345 | 345 | |
|
346 | 346 | (defun update-objs () |
|
347 | 347 | (let ((elt (by-id "qsp-objs"))) |
|
348 | 348 | (setf (inner-html elt) "<ul>") |
|
349 |
(loop :for |
|
|
349 | (loop :for (name obj) :of (root objs) | |
|
350 | 350 | :do (incf (inner-html elt) |
|
351 | (make-obj obj))) | |
|
351 | (make-obj name (@ obj :img) (@ obj :selected)))) | |
|
352 | 352 | (incf (inner-html elt) "</ul>"))) |
|
353 | 353 | |
|
354 | 354 | ;;; Menu |
@@ -412,9 +412,9 b'' | |||
|
412 | 412 | (setf (@ img style display) "hidden"))))) |
|
413 | 413 | |
|
414 | 414 | (defun rgb-string (rgb) |
|
415 |
(let ((red (rgb |
|
|
416 |
(green ( |
|
|
417 |
(blue ( |
|
|
415 | (let ((red (ps::>> rgb 16)) | |
|
416 | (green (logand (ps::>> rgb 8) 255)) | |
|
417 | (blue (logand rgb 255))) | |
|
418 | 418 | (flet ((rgb-to-hex (comp) |
|
419 | 419 | (let ((hex (chain (*number comp) (to-string 16)))) |
|
420 | 420 | (if (< (length hex) 2) |
@@ -514,6 +514,8 b'' | |||
|
514 | 514 | |
|
515 | 515 | ;;; Special variables |
|
516 | 516 | |
|
517 | (defvar serv-vars (create)) | |
|
518 | ||
|
517 | 519 | (define-serv-var backimage (:str path) |
|
518 | 520 | (setf (@ (get-frame :main) style background-image) path)) |
|
519 | 521 | |
@@ -526,3 +528,9 b'' | |||
|
526 | 528 | (define-serv-var lcolor (:num color) |
|
527 | 529 | (setf (@ (get-frame :style) inner-text) |
|
528 | 530 | (+ "a { color: " (rgb-string color) ";}"))) |
|
531 | ||
|
532 | (define-serv-var fsize (:num size) | |
|
533 | (setf (@ (get-frame :all) style font-size) size)) | |
|
534 | ||
|
535 | (define-serv-var fname (:str font-name) | |
|
536 | (setf (@ (get-frame :all) style font-family) (+ font-name ",serif"))) |
@@ -17,10 +17,10 b'' | |||
|
17 | 17 | ;;; 3expr |
|
18 | 18 | |
|
19 | 19 | (defpsmacro obj (name) |
|
20 | `(funcall (root objs includes) ,name)) | |
|
20 | `(in ,name (root objs))) | |
|
21 | 21 | |
|
22 | 22 | (defpsmacro loc (name) |
|
23 | `(funcall (root locs includes) ,name)) | |
|
23 | `(in ,name (root locs))) | |
|
24 | 24 | |
|
25 | 25 | (defpsmacro no (arg) |
|
26 | 26 | `(- -1 ,arg)) |
General Comments 0
You need to be logged in to leave comments.
Login now