36 lines
1,022 B
Text
36 lines
1,022 B
Text
|
; Handles game-play stateful information
|
||
|
(local pi math.pi)
|
||
|
|
||
|
; The Player table holds all the player stuff
|
||
|
; The Inventory table holds the player's inventory
|
||
|
; [x y] coordinates, [d]irection, [f]ield-of-view
|
||
|
; [o]xygen and [p]ower
|
||
|
(var player {:x 3.5 :y 3.5 :d 0 :f (/ pi 3)
|
||
|
:o 100 :p 45})
|
||
|
(var inventory [])
|
||
|
|
||
|
; The Map table holds the map
|
||
|
(var map [])
|
||
|
|
||
|
{:getPlayer (fn getPlayer [] player)
|
||
|
:getX (fn getX [] player.x)
|
||
|
:setX (fn setX [x] (set player.x x))
|
||
|
:getY (fn getY [] player.y)
|
||
|
:setY (fn setY [y] (set player.y y))
|
||
|
:getD (fn getD [] player.d)
|
||
|
:setD (fn setD [d] (set player.d d))
|
||
|
:getX (fn getX [] player.x)
|
||
|
:getO (fn getO [] player.o)
|
||
|
:setO (fn setO [x] (set player.o x))
|
||
|
:modO (fn modO [x]
|
||
|
(if (< (+ player.o x) 0)
|
||
|
(set player.o 0)
|
||
|
(set player.o (+ player.o x))))
|
||
|
:getP (fn getP [] player.p)
|
||
|
:setP (fn setP [x] (set player.p x))
|
||
|
:modP (fn modP [x]
|
||
|
(if (< (+ player.p x) 0)
|
||
|
(set player.p 0)
|
||
|
(set player.p (+ player.p x))))
|
||
|
}
|