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