From bf191a6f96f19adc74879bc543da3a7027c498da Mon Sep 17 00:00:00 2001 From: El-BG-1970 Date: Wed, 27 Jul 2022 17:50:07 +0200 Subject: first commit --- src/commodities.lisp | 16 ++++++++++++++++ src/game.lisp | 19 +++++++++++++++++++ src/main.lisp | 17 +++++++++++++++++ src/player.lisp | 36 ++++++++++++++++++++++++++++++++++++ src/zone.lisp | 17 +++++++++++++++++ 5 files changed, 105 insertions(+) create mode 100644 src/commodities.lisp create mode 100644 src/game.lisp create mode 100644 src/main.lisp create mode 100644 src/player.lisp create mode 100644 src/zone.lisp (limited to 'src') diff --git a/src/commodities.lisp b/src/commodities.lisp new file mode 100644 index 0000000..2ce7cb7 --- /dev/null +++ b/src/commodities.lisp @@ -0,0 +1,16 @@ +(defpackage :commodities + (:use :cl) + (:export :new-commodity)) + +(in-package :commodities) + +(defclass commodity () + ((name :initarg :name + :reader name) + (price :initarg :price + :accessor price))) + +(defun new-commodity (name price) + (make-instance 'commodity + :name name + :price price)) diff --git a/src/game.lisp b/src/game.lisp new file mode 100644 index 0000000..7c2cbbb --- /dev/null +++ b/src/game.lisp @@ -0,0 +1,19 @@ +(defpackage game + (:use :cl) + (:export :new-game)) + +(in-package :game) + +(defclass game () + ((player :initarg player + :accessor player) + (zones :initarg zones + :accessor zones) + (curzone :initarg start-zone + :accessor cur-zone))) + +(defun new-game (player zones start-zone) + (make-instance 'game + :player player + :zones zones + :start-zone start-zone)) diff --git a/src/main.lisp b/src/main.lisp new file mode 100644 index 0000000..9c0ba32 --- /dev/null +++ b/src/main.lisp @@ -0,0 +1,17 @@ +(in-package :cl-user) +(defpackage transacc + (:use :cl) + (:export :main)) + +(in-package :transacc) + +(defun main () + (let ((player (player:init-player "Joze" 2000)) + (zones + (list + (zone:new-zone "Bronx" + (list (commodities:new-commodity "speed" 500) + (commodities:new-commodity "grass" 40)))))) + (assert (equal (zone:name (car zones)) "Bronx")) + (assert (equal (player:name player) "Joze")) + (format t "~a in the game" (player:name player)))) diff --git a/src/player.lisp b/src/player.lisp new file mode 100644 index 0000000..f6ee371 --- /dev/null +++ b/src/player.lisp @@ -0,0 +1,36 @@ +(defpackage player + (:use :cl) + (:export :init-player + :name)) + +(in-package :player) + +(defclass inventory () + ((size :initarg :size + :reader size) + (filled :initform 0 + :accessor filled) + (items :initform '() + :accessor items))) + +(defclass player () + ((name :initarg :name + :reader name) + (cash :initarg :cash + :accessor cash) + (debt :initarg :debt + :accessor debt) + (hp :initform 100 + :accessor hp) + (clout :initform 0 + :accessor clout) + (stash :initform 0 + :accessor stash) + (stock :initform (make-instance 'inventory :size 100) + :accessor stock))) + +(defun init-player (name &optional (cash 2000) (debt 5000)) + (make-instance 'player + :name name + :cash cash + :debt debt)) diff --git a/src/zone.lisp b/src/zone.lisp new file mode 100644 index 0000000..3121a5c --- /dev/null +++ b/src/zone.lisp @@ -0,0 +1,17 @@ +(defpackage zone + (:use :cl) + (:export :new-zone + :name)) + +(in-package :zone) + +(defclass zone () + ((name :initarg :name + :reader name) + (commodities :initarg :commodities + :accessor commodities))) + +(defun new-zone (name commodities) + (make-instance 'zone + :name name + :commodities commodities)) -- cgit v1.2.3