/
keys.lisp
99 lines (73 loc) · 3.04 KB
/
keys.lisp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
(in-package #:org.shirakumo.fraf.ld45)
(define-action editor-command ())
(define-action toggle-editor (editor-command)
(key-press (one-of key :section)))
(define-action select-entity (editor-command)
(key-press (one-of key :tab)))
(define-action delete-entity (editor-command)
(key-press (one-of key :delete)))
(define-action place (editor-command)
(key-press (one-of key :f5)))
(define-action loop-guard-path (editor-command)
(key-press (one-of key :l)))
(define-action reverse-guard-path (editor-command)
(key-press (one-of key :r)))
(define-action finish-guard-path (editor-command)
(key-press (one-of key :enter)))
(define-action save-world (editor-command)
(key-press (one-of key :f1)))
(define-action load-world (editor-command)
(key-press (one-of key :f2)))
(define-action player-action ())
(define-action start-left (player-action)
(key-press (one-of key :a :left))
(gamepad-move (one-of axis :dpad-h) (< pos -0.4 old-pos)))
(define-action start-right (player-action)
(key-press (one-of key :d :right))
(gamepad-move (one-of axis :dpad-h) (< old-pos 0.4 pos)))
(define-action start-up (player-action)
(key-press (one-of key :w :up))
(gamepad-move (one-of axis :dpad-v) (< pos -0.4 old-pos)))
(define-action start-down (player-action)
(key-press (one-of key :s :down))
(gamepad-move (one-of axis :dpad-v) (< old-pos 0.8 pos)))
(define-action end-left (player-action)
(key-release (one-of key :a :left))
(gamepad-move (one-of axis :dpad-h) (< old-pos -0.4 pos)))
(define-action end-right (player-action)
(key-release (one-of key :d :right))
(gamepad-move (one-of axis :dpad-h) (< pos 0.4 old-pos)))
(define-action end-up (player-action)
(key-release (one-of key :w :up))
(gamepad-move (one-of axis :dpad-v) (< old-pos -0.4 pos)))
(define-action end-down (player-action)
(key-release (one-of key :s :down))
(gamepad-move (one-of axis :dpad-v) (< pos 0.8 old-pos)))
(define-retention movement (ev)
(typecase ev
(start-left (setf (retained 'movement :left) T))
(start-right (setf (retained 'movement :right) T))
(start-up (setf (retained 'movement :up) T))
(start-down (setf (retained 'movement :down) T))
(end-left (setf (retained 'movement :left) NIL))
(end-right (setf (retained 'movement :right) NIL))
(end-up (setf (retained 'movement :up) NIL))
(end-down (setf (retained 'movement :down) NIL))))
(define-action attempt-takedown (player-action)
(key-press (one-of key :f :q))
(gamepad-press (one-of button :y)))
(define-action toggle-dragging (player-action)
(key-press (one-of key :e))
(gamepad-press (one-of button :x)))
(define-action aim (player-action)
(key-press (one-of key :space :v))
(gamepad-press (one-of button :a)))
(define-action shoot (player-action)
(key-release (one-of key :space :v))
(gamepad-release (one-of button :a)))
(define-action continue-game (player-action)
(key-press (one-of key :enter))
(gamepad-press (one-of button :start)))
(define-action interact (player-action)
(key-press (one-of key :space :enter :e))
(gamepad-press (one-of button :a)))