diff --git a/README.md b/README.md index 4f7c0c5..fcf3e34 100644 --- a/README.md +++ b/README.md @@ -1,11 +1,11 @@ -#Naledi ya Africa +# Naledi ya Africa **Naledi ya Africa** (*Star of Africa* in seTswana) is a survival game set in Africa. It offers networked multiplayer with an ncurses user interface. --- -##Running +## Running To compile Naledi ya Africa, you need a Common Lisp implementation (SBCL is recommended), [Quicklisp](http://beta.quicklisp.org) and the ncurses C library. @@ -17,7 +17,7 @@ Once Naledi ya Africa is ready for release, a pre-compiled binary will be supplied. -##Playing +## Playing Refer to the game manual (MANUAL file in the source code, or type `h` in-game). *TODO* diff --git a/README.md b/README.md index 4f7c0c5..fcf3e34 100644 --- a/README.md +++ b/README.md @@ -1,11 +1,11 @@ -#Naledi ya Africa +# Naledi ya Africa **Naledi ya Africa** (*Star of Africa* in seTswana) is a survival game set in Africa. It offers networked multiplayer with an ncurses user interface. --- -##Running +## Running To compile Naledi ya Africa, you need a Common Lisp implementation (SBCL is recommended), [Quicklisp](http://beta.quicklisp.org) and the ncurses C library. @@ -17,7 +17,7 @@ Once Naledi ya Africa is ready for release, a pre-compiled binary will be supplied. -##Playing +## Playing Refer to the game manual (MANUAL file in the source code, or type `h` in-game). *TODO* diff --git a/TODO b/TODO index a332dd6..0932d37 100644 --- a/TODO +++ b/TODO @@ -3,8 +3,6 @@ DOCUMENTATION -* write README - * write game instructions and keyboard shortcuts reference diff --git a/README.md b/README.md index 4f7c0c5..fcf3e34 100644 --- a/README.md +++ b/README.md @@ -1,11 +1,11 @@ -#Naledi ya Africa +# Naledi ya Africa **Naledi ya Africa** (*Star of Africa* in seTswana) is a survival game set in Africa. It offers networked multiplayer with an ncurses user interface. --- -##Running +## Running To compile Naledi ya Africa, you need a Common Lisp implementation (SBCL is recommended), [Quicklisp](http://beta.quicklisp.org) and the ncurses C library. @@ -17,7 +17,7 @@ Once Naledi ya Africa is ready for release, a pre-compiled binary will be supplied. -##Playing +## Playing Refer to the game manual (MANUAL file in the source code, or type `h` in-game). *TODO* diff --git a/TODO b/TODO index a332dd6..0932d37 100644 --- a/TODO +++ b/TODO @@ -3,8 +3,6 @@ DOCUMENTATION -* write README - * write game instructions and keyboard shortcuts reference diff --git a/alt_logo.txt b/alt_logo.txt deleted file mode 100644 index 6f37fcd..0000000 --- a/alt_logo.txt +++ /dev/null @@ -1,19 +0,0 @@ - - ___ ___ _ _ _ - /###| /##/ |#| |#| (#) - /####| /##/ ____ _ |#| _____ ____ |#| _ - /##|##| /##/ /####\|#| |#| /#####\ /####\|#| |#| - /##/|##|/##/ |#/ \# #| |#| |#####| |#/ \# #| |#| - /##/ |#####/ |#\__/# #| |#|_ \#\____ |#\__/# #| |#| - /##/ |####/ \####/|#| \##) \####/ \####/|#| |#| - - - ____ ____ _ - / \ / __) (_) - _ _ ____ _ / /\ \ | (_ _ __ _ _____ ___ _ - | | | | / __ \| | / /__\ \ | __) | |/ \ | | / ____) / _ \| | - | | | | | / \ | / ______ \ | | | _/\/ | | | / __ | / \ | - \ \__/ | | \__/ | / / \ \ | | | | | | | \__/ / | \_/ | - \___ | \____/|_| /__/ \__\ |_| |_| |_| \____/ \___/|_| - ____| | - (______/ diff --git a/README.md b/README.md index 4f7c0c5..fcf3e34 100644 --- a/README.md +++ b/README.md @@ -1,11 +1,11 @@ -#Naledi ya Africa +# Naledi ya Africa **Naledi ya Africa** (*Star of Africa* in seTswana) is a survival game set in Africa. It offers networked multiplayer with an ncurses user interface. --- -##Running +## Running To compile Naledi ya Africa, you need a Common Lisp implementation (SBCL is recommended), [Quicklisp](http://beta.quicklisp.org) and the ncurses C library. @@ -17,7 +17,7 @@ Once Naledi ya Africa is ready for release, a pre-compiled binary will be supplied. -##Playing +## Playing Refer to the game manual (MANUAL file in the source code, or type `h` in-game). *TODO* diff --git a/TODO b/TODO index a332dd6..0932d37 100644 --- a/TODO +++ b/TODO @@ -3,8 +3,6 @@ DOCUMENTATION -* write README - * write game instructions and keyboard shortcuts reference diff --git a/alt_logo.txt b/alt_logo.txt deleted file mode 100644 index 6f37fcd..0000000 --- a/alt_logo.txt +++ /dev/null @@ -1,19 +0,0 @@ - - ___ ___ _ _ _ - /###| /##/ |#| |#| (#) - /####| /##/ ____ _ |#| _____ ____ |#| _ - /##|##| /##/ /####\|#| |#| /#####\ /####\|#| |#| - /##/|##|/##/ |#/ \# #| |#| |#####| |#/ \# #| |#| - /##/ |#####/ |#\__/# #| |#|_ \#\____ |#\__/# #| |#| - /##/ |####/ \####/|#| \##) \####/ \####/|#| |#| - - - ____ ____ _ - / \ / __) (_) - _ _ ____ _ / /\ \ | (_ _ __ _ _____ ___ _ - | | | | / __ \| | / /__\ \ | __) | |/ \ | | / ____) / _ \| | - | | | | | / \ | / ______ \ | | | _/\/ | | | / __ | / \ | - \ \__/ | | \__/ | / / \ \ | | | | | | | \__/ / | \_/ | - \___ | \____/|_| /__/ \__\ |_| |_| |_| \____/ \___/|_| - ____| | - (______/ diff --git a/animals.lisp b/animals.lisp index d567f8c..3e0cabd 100644 --- a/animals.lisp +++ b/animals.lisp @@ -8,29 +8,62 @@ ;;;; (c) 2018 Daniel Vedder, MIT license ;;;; -;;TODO Change to African species ;;XXX bird species? +;;XXX water species? +;;XXX small mammals -> hills -(new-species deer - :strength 3 :max-health 10 :aggression 0 - :group-size 10 +(new-item species impala + :strength 3 :max-health 10 + :aggression 0 :group-size 15 :habitat '(forest grassland) + :char #\a :color :yellow :drops NIL) ;TODO -(new-species boar - :strength 7 :max-health 15 :aggression 5 - :group-size 5 - :habitat '(forest) +(new-item species warthog + :strength 5 :max-health 10 + :aggression 2 :group-size 5 + :habitat '(forest grassland swamp hill) + :char #\p :color :magenta :drops NIL) ;TODO -(new-species wolf - :strength 10 :max-health 20 :aggression 20 - :group-size 6 +(new-item species lion + :strength 18 :max-health 25 + :aggression 20 :group-size 6 + :habitat '(grassland swamp desert) + :char #\C :color :red + :drops NIL) ;TODO + +(new-item species leopard + :strength 20 :max-health 30 + :aggression 20 :group-size 1 + :habitat '(forest grassland hill) + :char #\C :color :magenta + :drops NIL) ;TODO + +(new-item species cheetah + :strength 15 :max-health 20 + :aggression 10 :group-size 1 :habitat '(grassland) + :char #\C :color :yellow :drops NIL) ;TODO -(new-species bear - :strength 20 :max-health 30 :aggression 20 - :group-size 1 - :habitat '(forest) +(new-item species elephant + :strength 40 :max-health 50 + :aggression 5 :group-size 4 + :habitat '(forest grassland) + :char #\E :color :cyan + :drops NIL) ;TODO + +(new-item species buffalo + :strength 15 :max-health 20 + :aggression 5 :group-size 10 + :habitat '(swamp grassland) + :char #\B :color :magenta + :drops NIL) ;TODO + +(new-item species oryx + :strength 8 :max-health 12 + :aggression 0 :group-size 2 + :habitat '(desert grassland) + :char #\a :color :blue :drops NIL) ;TODO diff --git a/README.md b/README.md index 4f7c0c5..fcf3e34 100644 --- a/README.md +++ b/README.md @@ -1,11 +1,11 @@ -#Naledi ya Africa +# Naledi ya Africa **Naledi ya Africa** (*Star of Africa* in seTswana) is a survival game set in Africa. It offers networked multiplayer with an ncurses user interface. --- -##Running +## Running To compile Naledi ya Africa, you need a Common Lisp implementation (SBCL is recommended), [Quicklisp](http://beta.quicklisp.org) and the ncurses C library. @@ -17,7 +17,7 @@ Once Naledi ya Africa is ready for release, a pre-compiled binary will be supplied. -##Playing +## Playing Refer to the game manual (MANUAL file in the source code, or type `h` in-game). *TODO* diff --git a/TODO b/TODO index a332dd6..0932d37 100644 --- a/TODO +++ b/TODO @@ -3,8 +3,6 @@ DOCUMENTATION -* write README - * write game instructions and keyboard shortcuts reference diff --git a/alt_logo.txt b/alt_logo.txt deleted file mode 100644 index 6f37fcd..0000000 --- a/alt_logo.txt +++ /dev/null @@ -1,19 +0,0 @@ - - ___ ___ _ _ _ - /###| /##/ |#| |#| (#) - /####| /##/ ____ _ |#| _____ ____ |#| _ - /##|##| /##/ /####\|#| |#| /#####\ /####\|#| |#| - /##/|##|/##/ |#/ \# #| |#| |#####| |#/ \# #| |#| - /##/ |#####/ |#\__/# #| |#|_ \#\____ |#\__/# #| |#| - /##/ |####/ \####/|#| \##) \####/ \####/|#| |#| - - - ____ ____ _ - / \ / __) (_) - _ _ ____ _ / /\ \ | (_ _ __ _ _____ ___ _ - | | | | / __ \| | / /__\ \ | __) | |/ \ | | / ____) / _ \| | - | | | | | / \ | / ______ \ | | | _/\/ | | | / __ | / \ | - \ \__/ | | \__/ | / / \ \ | | | | | | | \__/ / | \_/ | - \___ | \____/|_| /__/ \__\ |_| |_| |_| \____/ \___/|_| - ____| | - (______/ diff --git a/animals.lisp b/animals.lisp index d567f8c..3e0cabd 100644 --- a/animals.lisp +++ b/animals.lisp @@ -8,29 +8,62 @@ ;;;; (c) 2018 Daniel Vedder, MIT license ;;;; -;;TODO Change to African species ;;XXX bird species? +;;XXX water species? +;;XXX small mammals -> hills -(new-species deer - :strength 3 :max-health 10 :aggression 0 - :group-size 10 +(new-item species impala + :strength 3 :max-health 10 + :aggression 0 :group-size 15 :habitat '(forest grassland) + :char #\a :color :yellow :drops NIL) ;TODO -(new-species boar - :strength 7 :max-health 15 :aggression 5 - :group-size 5 - :habitat '(forest) +(new-item species warthog + :strength 5 :max-health 10 + :aggression 2 :group-size 5 + :habitat '(forest grassland swamp hill) + :char #\p :color :magenta :drops NIL) ;TODO -(new-species wolf - :strength 10 :max-health 20 :aggression 20 - :group-size 6 +(new-item species lion + :strength 18 :max-health 25 + :aggression 20 :group-size 6 + :habitat '(grassland swamp desert) + :char #\C :color :red + :drops NIL) ;TODO + +(new-item species leopard + :strength 20 :max-health 30 + :aggression 20 :group-size 1 + :habitat '(forest grassland hill) + :char #\C :color :magenta + :drops NIL) ;TODO + +(new-item species cheetah + :strength 15 :max-health 20 + :aggression 10 :group-size 1 :habitat '(grassland) + :char #\C :color :yellow :drops NIL) ;TODO -(new-species bear - :strength 20 :max-health 30 :aggression 20 - :group-size 1 - :habitat '(forest) +(new-item species elephant + :strength 40 :max-health 50 + :aggression 5 :group-size 4 + :habitat '(forest grassland) + :char #\E :color :cyan + :drops NIL) ;TODO + +(new-item species buffalo + :strength 15 :max-health 20 + :aggression 5 :group-size 10 + :habitat '(swamp grassland) + :char #\B :color :magenta + :drops NIL) ;TODO + +(new-item species oryx + :strength 8 :max-health 12 + :aggression 0 :group-size 2 + :habitat '(desert grassland) + :char #\a :color :blue :drops NIL) ;TODO diff --git a/biomes.lisp b/biomes.lisp index 09dbfde..491bf48 100644 --- a/biomes.lisp +++ b/biomes.lisp @@ -8,15 +8,24 @@ ;;;; (c) 2018 Daniel Vedder, MIT license ;;;; +;;XXX lake? +;;TODO optimise frequency numbers + (new-biome grassland :ground "tall elephant grass" :char #\; :col ':yellow - :features '((acacia 40) (boulder 150))) ;TODO + :features '((acacia 100) (boulder 200) + (impala 500) (warthog 600) + (lion 2400) (leopard 3000) + (cheetah 2400) (elephant 800) + (buffalo 1000))) ;TODO (new-biome forest :ground "leaf litter and small shrubs" :char #\. :col ':green - :features '((miombo 10) (acacia 15))) ;TODO + :features '((miombo 10) (acacia 15) + (warthog 400) (impala 800) + (elephant 1000) (leopard 3200))) ;TODO (new-biome stream :ground "shallow flowing water" @@ -26,16 +35,16 @@ (new-biome swamp :ground "short sedge grass growing on boggy black soil" :char #\w :col ':green - :features '()) ;TODO + :features '((warthog 500) (buffalo 400) (lion 3000))) ;TODO (new-biome hill :ground "hard, stony soil" - :char #\m :col ':cyan ;XXX white might be better - :features '((boulder 10) (miombo 80))) ;TODO + :char #\m :col ':cyan ;XXX very bright - hurts the eyes... + :features '((boulder 20) (miombo 80) + (warthog 600) (leopard 3200))) ;TODO (new-biome desert :ground "deep, drifting sand" :char #\^ :col ':white ;XXX yellow would be better, but shows up brown - :features '((cactus 100) (boulder 200))) - -;;TODO desert + :features '((cactus 100) (boulder 200) + (oryx 800) (lion 3600))) ;TODO diff --git a/README.md b/README.md index 4f7c0c5..fcf3e34 100644 --- a/README.md +++ b/README.md @@ -1,11 +1,11 @@ -#Naledi ya Africa +# Naledi ya Africa **Naledi ya Africa** (*Star of Africa* in seTswana) is a survival game set in Africa. It offers networked multiplayer with an ncurses user interface. --- -##Running +## Running To compile Naledi ya Africa, you need a Common Lisp implementation (SBCL is recommended), [Quicklisp](http://beta.quicklisp.org) and the ncurses C library. @@ -17,7 +17,7 @@ Once Naledi ya Africa is ready for release, a pre-compiled binary will be supplied. -##Playing +## Playing Refer to the game manual (MANUAL file in the source code, or type `h` in-game). *TODO* diff --git a/TODO b/TODO index a332dd6..0932d37 100644 --- a/TODO +++ b/TODO @@ -3,8 +3,6 @@ DOCUMENTATION -* write README - * write game instructions and keyboard shortcuts reference diff --git a/alt_logo.txt b/alt_logo.txt deleted file mode 100644 index 6f37fcd..0000000 --- a/alt_logo.txt +++ /dev/null @@ -1,19 +0,0 @@ - - ___ ___ _ _ _ - /###| /##/ |#| |#| (#) - /####| /##/ ____ _ |#| _____ ____ |#| _ - /##|##| /##/ /####\|#| |#| /#####\ /####\|#| |#| - /##/|##|/##/ |#/ \# #| |#| |#####| |#/ \# #| |#| - /##/ |#####/ |#\__/# #| |#|_ \#\____ |#\__/# #| |#| - /##/ |####/ \####/|#| \##) \####/ \####/|#| |#| - - - ____ ____ _ - / \ / __) (_) - _ _ ____ _ / /\ \ | (_ _ __ _ _____ ___ _ - | | | | / __ \| | / /__\ \ | __) | |/ \ | | / ____) / _ \| | - | | | | | / \ | / ______ \ | | | _/\/ | | | / __ | / \ | - \ \__/ | | \__/ | / / \ \ | | | | | | | \__/ / | \_/ | - \___ | \____/|_| /__/ \__\ |_| |_| |_| \____/ \___/|_| - ____| | - (______/ diff --git a/animals.lisp b/animals.lisp index d567f8c..3e0cabd 100644 --- a/animals.lisp +++ b/animals.lisp @@ -8,29 +8,62 @@ ;;;; (c) 2018 Daniel Vedder, MIT license ;;;; -;;TODO Change to African species ;;XXX bird species? +;;XXX water species? +;;XXX small mammals -> hills -(new-species deer - :strength 3 :max-health 10 :aggression 0 - :group-size 10 +(new-item species impala + :strength 3 :max-health 10 + :aggression 0 :group-size 15 :habitat '(forest grassland) + :char #\a :color :yellow :drops NIL) ;TODO -(new-species boar - :strength 7 :max-health 15 :aggression 5 - :group-size 5 - :habitat '(forest) +(new-item species warthog + :strength 5 :max-health 10 + :aggression 2 :group-size 5 + :habitat '(forest grassland swamp hill) + :char #\p :color :magenta :drops NIL) ;TODO -(new-species wolf - :strength 10 :max-health 20 :aggression 20 - :group-size 6 +(new-item species lion + :strength 18 :max-health 25 + :aggression 20 :group-size 6 + :habitat '(grassland swamp desert) + :char #\C :color :red + :drops NIL) ;TODO + +(new-item species leopard + :strength 20 :max-health 30 + :aggression 20 :group-size 1 + :habitat '(forest grassland hill) + :char #\C :color :magenta + :drops NIL) ;TODO + +(new-item species cheetah + :strength 15 :max-health 20 + :aggression 10 :group-size 1 :habitat '(grassland) + :char #\C :color :yellow :drops NIL) ;TODO -(new-species bear - :strength 20 :max-health 30 :aggression 20 - :group-size 1 - :habitat '(forest) +(new-item species elephant + :strength 40 :max-health 50 + :aggression 5 :group-size 4 + :habitat '(forest grassland) + :char #\E :color :cyan + :drops NIL) ;TODO + +(new-item species buffalo + :strength 15 :max-health 20 + :aggression 5 :group-size 10 + :habitat '(swamp grassland) + :char #\B :color :magenta + :drops NIL) ;TODO + +(new-item species oryx + :strength 8 :max-health 12 + :aggression 0 :group-size 2 + :habitat '(desert grassland) + :char #\a :color :blue :drops NIL) ;TODO diff --git a/biomes.lisp b/biomes.lisp index 09dbfde..491bf48 100644 --- a/biomes.lisp +++ b/biomes.lisp @@ -8,15 +8,24 @@ ;;;; (c) 2018 Daniel Vedder, MIT license ;;;; +;;XXX lake? +;;TODO optimise frequency numbers + (new-biome grassland :ground "tall elephant grass" :char #\; :col ':yellow - :features '((acacia 40) (boulder 150))) ;TODO + :features '((acacia 100) (boulder 200) + (impala 500) (warthog 600) + (lion 2400) (leopard 3000) + (cheetah 2400) (elephant 800) + (buffalo 1000))) ;TODO (new-biome forest :ground "leaf litter and small shrubs" :char #\. :col ':green - :features '((miombo 10) (acacia 15))) ;TODO + :features '((miombo 10) (acacia 15) + (warthog 400) (impala 800) + (elephant 1000) (leopard 3200))) ;TODO (new-biome stream :ground "shallow flowing water" @@ -26,16 +35,16 @@ (new-biome swamp :ground "short sedge grass growing on boggy black soil" :char #\w :col ':green - :features '()) ;TODO + :features '((warthog 500) (buffalo 400) (lion 3000))) ;TODO (new-biome hill :ground "hard, stony soil" - :char #\m :col ':cyan ;XXX white might be better - :features '((boulder 10) (miombo 80))) ;TODO + :char #\m :col ':cyan ;XXX very bright - hurts the eyes... + :features '((boulder 20) (miombo 80) + (warthog 600) (leopard 3200))) ;TODO (new-biome desert :ground "deep, drifting sand" :char #\^ :col ':white ;XXX yellow would be better, but shows up brown - :features '((cactus 100) (boulder 200))) - -;;TODO desert + :features '((cactus 100) (boulder 200) + (oryx 800) (lion 3600))) ;TODO diff --git a/classes.lisp b/classes.lisp index 1c926db..2a694eb 100644 --- a/classes.lisp +++ b/classes.lisp @@ -53,7 +53,7 @@ (max-weight :reader .max-weight :initarg :max-weight :initform -1) (capacity :reader .capacity :initarg :capacity :initform 0))) -(defclass species (feature) ;XXX inherit from `feature' or `destructable'? +(defclass species (feature) ;; An animal species ((strength :accessor .strength :initarg :strength :initform 1) (max-health :accessor .max-health :initarg :max-health :initform 1) diff --git a/README.md b/README.md index 4f7c0c5..fcf3e34 100644 --- a/README.md +++ b/README.md @@ -1,11 +1,11 @@ -#Naledi ya Africa +# Naledi ya Africa **Naledi ya Africa** (*Star of Africa* in seTswana) is a survival game set in Africa. It offers networked multiplayer with an ncurses user interface. --- -##Running +## Running To compile Naledi ya Africa, you need a Common Lisp implementation (SBCL is recommended), [Quicklisp](http://beta.quicklisp.org) and the ncurses C library. @@ -17,7 +17,7 @@ Once Naledi ya Africa is ready for release, a pre-compiled binary will be supplied. -##Playing +## Playing Refer to the game manual (MANUAL file in the source code, or type `h` in-game). *TODO* diff --git a/TODO b/TODO index a332dd6..0932d37 100644 --- a/TODO +++ b/TODO @@ -3,8 +3,6 @@ DOCUMENTATION -* write README - * write game instructions and keyboard shortcuts reference diff --git a/alt_logo.txt b/alt_logo.txt deleted file mode 100644 index 6f37fcd..0000000 --- a/alt_logo.txt +++ /dev/null @@ -1,19 +0,0 @@ - - ___ ___ _ _ _ - /###| /##/ |#| |#| (#) - /####| /##/ ____ _ |#| _____ ____ |#| _ - /##|##| /##/ /####\|#| |#| /#####\ /####\|#| |#| - /##/|##|/##/ |#/ \# #| |#| |#####| |#/ \# #| |#| - /##/ |#####/ |#\__/# #| |#|_ \#\____ |#\__/# #| |#| - /##/ |####/ \####/|#| \##) \####/ \####/|#| |#| - - - ____ ____ _ - / \ / __) (_) - _ _ ____ _ / /\ \ | (_ _ __ _ _____ ___ _ - | | | | / __ \| | / /__\ \ | __) | |/ \ | | / ____) / _ \| | - | | | | | / \ | / ______ \ | | | _/\/ | | | / __ | / \ | - \ \__/ | | \__/ | / / \ \ | | | | | | | \__/ / | \_/ | - \___ | \____/|_| /__/ \__\ |_| |_| |_| \____/ \___/|_| - ____| | - (______/ diff --git a/animals.lisp b/animals.lisp index d567f8c..3e0cabd 100644 --- a/animals.lisp +++ b/animals.lisp @@ -8,29 +8,62 @@ ;;;; (c) 2018 Daniel Vedder, MIT license ;;;; -;;TODO Change to African species ;;XXX bird species? +;;XXX water species? +;;XXX small mammals -> hills -(new-species deer - :strength 3 :max-health 10 :aggression 0 - :group-size 10 +(new-item species impala + :strength 3 :max-health 10 + :aggression 0 :group-size 15 :habitat '(forest grassland) + :char #\a :color :yellow :drops NIL) ;TODO -(new-species boar - :strength 7 :max-health 15 :aggression 5 - :group-size 5 - :habitat '(forest) +(new-item species warthog + :strength 5 :max-health 10 + :aggression 2 :group-size 5 + :habitat '(forest grassland swamp hill) + :char #\p :color :magenta :drops NIL) ;TODO -(new-species wolf - :strength 10 :max-health 20 :aggression 20 - :group-size 6 +(new-item species lion + :strength 18 :max-health 25 + :aggression 20 :group-size 6 + :habitat '(grassland swamp desert) + :char #\C :color :red + :drops NIL) ;TODO + +(new-item species leopard + :strength 20 :max-health 30 + :aggression 20 :group-size 1 + :habitat '(forest grassland hill) + :char #\C :color :magenta + :drops NIL) ;TODO + +(new-item species cheetah + :strength 15 :max-health 20 + :aggression 10 :group-size 1 :habitat '(grassland) + :char #\C :color :yellow :drops NIL) ;TODO -(new-species bear - :strength 20 :max-health 30 :aggression 20 - :group-size 1 - :habitat '(forest) +(new-item species elephant + :strength 40 :max-health 50 + :aggression 5 :group-size 4 + :habitat '(forest grassland) + :char #\E :color :cyan + :drops NIL) ;TODO + +(new-item species buffalo + :strength 15 :max-health 20 + :aggression 5 :group-size 10 + :habitat '(swamp grassland) + :char #\B :color :magenta + :drops NIL) ;TODO + +(new-item species oryx + :strength 8 :max-health 12 + :aggression 0 :group-size 2 + :habitat '(desert grassland) + :char #\a :color :blue :drops NIL) ;TODO diff --git a/biomes.lisp b/biomes.lisp index 09dbfde..491bf48 100644 --- a/biomes.lisp +++ b/biomes.lisp @@ -8,15 +8,24 @@ ;;;; (c) 2018 Daniel Vedder, MIT license ;;;; +;;XXX lake? +;;TODO optimise frequency numbers + (new-biome grassland :ground "tall elephant grass" :char #\; :col ':yellow - :features '((acacia 40) (boulder 150))) ;TODO + :features '((acacia 100) (boulder 200) + (impala 500) (warthog 600) + (lion 2400) (leopard 3000) + (cheetah 2400) (elephant 800) + (buffalo 1000))) ;TODO (new-biome forest :ground "leaf litter and small shrubs" :char #\. :col ':green - :features '((miombo 10) (acacia 15))) ;TODO + :features '((miombo 10) (acacia 15) + (warthog 400) (impala 800) + (elephant 1000) (leopard 3200))) ;TODO (new-biome stream :ground "shallow flowing water" @@ -26,16 +35,16 @@ (new-biome swamp :ground "short sedge grass growing on boggy black soil" :char #\w :col ':green - :features '()) ;TODO + :features '((warthog 500) (buffalo 400) (lion 3000))) ;TODO (new-biome hill :ground "hard, stony soil" - :char #\m :col ':cyan ;XXX white might be better - :features '((boulder 10) (miombo 80))) ;TODO + :char #\m :col ':cyan ;XXX very bright - hurts the eyes... + :features '((boulder 20) (miombo 80) + (warthog 600) (leopard 3200))) ;TODO (new-biome desert :ground "deep, drifting sand" :char #\^ :col ':white ;XXX yellow would be better, but shows up brown - :features '((cactus 100) (boulder 200))) - -;;TODO desert + :features '((cactus 100) (boulder 200) + (oryx 800) (lion 3600))) ;TODO diff --git a/classes.lisp b/classes.lisp index 1c926db..2a694eb 100644 --- a/classes.lisp +++ b/classes.lisp @@ -53,7 +53,7 @@ (max-weight :reader .max-weight :initarg :max-weight :initform -1) (capacity :reader .capacity :initarg :capacity :initform 0))) -(defclass species (feature) ;XXX inherit from `feature' or `destructable'? +(defclass species (feature) ;; An animal species ((strength :accessor .strength :initarg :strength :initform 1) (max-health :accessor .max-health :initarg :max-health :initform 1) diff --git a/data.lisp b/data.lisp index d21fe45..3cb2630 100644 --- a/data.lisp +++ b/data.lisp @@ -70,24 +70,10 @@ ;;; ANIMALS & SPECIES -(let ((species-list NIL)) - (defun register-species (symbol-name species-object) - (setf species-list - (cons (list symbol-name species-object) species-list))) - - (defun get-species (symbol-name) - (cassoc symbol-name species-list))) - -(defmacro new-species (name &body body) - `(register-species ',name - (make-instance 'species - :name ,(symbol-to-string name) - ,@body))) - (let ((max-id 0) (animals NIL)) (defun add-animal (species position) "Create a new animal of the given species" - (let ((a (make-animal :id max-id + (let ((a (make-instance 'animal :id max-id :pos position :species species :health (.max-health species)))) (incf max-id) diff --git a/README.md b/README.md index 4f7c0c5..fcf3e34 100644 --- a/README.md +++ b/README.md @@ -1,11 +1,11 @@ -#Naledi ya Africa +# Naledi ya Africa **Naledi ya Africa** (*Star of Africa* in seTswana) is a survival game set in Africa. It offers networked multiplayer with an ncurses user interface. --- -##Running +## Running To compile Naledi ya Africa, you need a Common Lisp implementation (SBCL is recommended), [Quicklisp](http://beta.quicklisp.org) and the ncurses C library. @@ -17,7 +17,7 @@ Once Naledi ya Africa is ready for release, a pre-compiled binary will be supplied. -##Playing +## Playing Refer to the game manual (MANUAL file in the source code, or type `h` in-game). *TODO* diff --git a/TODO b/TODO index a332dd6..0932d37 100644 --- a/TODO +++ b/TODO @@ -3,8 +3,6 @@ DOCUMENTATION -* write README - * write game instructions and keyboard shortcuts reference diff --git a/alt_logo.txt b/alt_logo.txt deleted file mode 100644 index 6f37fcd..0000000 --- a/alt_logo.txt +++ /dev/null @@ -1,19 +0,0 @@ - - ___ ___ _ _ _ - /###| /##/ |#| |#| (#) - /####| /##/ ____ _ |#| _____ ____ |#| _ - /##|##| /##/ /####\|#| |#| /#####\ /####\|#| |#| - /##/|##|/##/ |#/ \# #| |#| |#####| |#/ \# #| |#| - /##/ |#####/ |#\__/# #| |#|_ \#\____ |#\__/# #| |#| - /##/ |####/ \####/|#| \##) \####/ \####/|#| |#| - - - ____ ____ _ - / \ / __) (_) - _ _ ____ _ / /\ \ | (_ _ __ _ _____ ___ _ - | | | | / __ \| | / /__\ \ | __) | |/ \ | | / ____) / _ \| | - | | | | | / \ | / ______ \ | | | _/\/ | | | / __ | / \ | - \ \__/ | | \__/ | / / \ \ | | | | | | | \__/ / | \_/ | - \___ | \____/|_| /__/ \__\ |_| |_| |_| \____/ \___/|_| - ____| | - (______/ diff --git a/animals.lisp b/animals.lisp index d567f8c..3e0cabd 100644 --- a/animals.lisp +++ b/animals.lisp @@ -8,29 +8,62 @@ ;;;; (c) 2018 Daniel Vedder, MIT license ;;;; -;;TODO Change to African species ;;XXX bird species? +;;XXX water species? +;;XXX small mammals -> hills -(new-species deer - :strength 3 :max-health 10 :aggression 0 - :group-size 10 +(new-item species impala + :strength 3 :max-health 10 + :aggression 0 :group-size 15 :habitat '(forest grassland) + :char #\a :color :yellow :drops NIL) ;TODO -(new-species boar - :strength 7 :max-health 15 :aggression 5 - :group-size 5 - :habitat '(forest) +(new-item species warthog + :strength 5 :max-health 10 + :aggression 2 :group-size 5 + :habitat '(forest grassland swamp hill) + :char #\p :color :magenta :drops NIL) ;TODO -(new-species wolf - :strength 10 :max-health 20 :aggression 20 - :group-size 6 +(new-item species lion + :strength 18 :max-health 25 + :aggression 20 :group-size 6 + :habitat '(grassland swamp desert) + :char #\C :color :red + :drops NIL) ;TODO + +(new-item species leopard + :strength 20 :max-health 30 + :aggression 20 :group-size 1 + :habitat '(forest grassland hill) + :char #\C :color :magenta + :drops NIL) ;TODO + +(new-item species cheetah + :strength 15 :max-health 20 + :aggression 10 :group-size 1 :habitat '(grassland) + :char #\C :color :yellow :drops NIL) ;TODO -(new-species bear - :strength 20 :max-health 30 :aggression 20 - :group-size 1 - :habitat '(forest) +(new-item species elephant + :strength 40 :max-health 50 + :aggression 5 :group-size 4 + :habitat '(forest grassland) + :char #\E :color :cyan + :drops NIL) ;TODO + +(new-item species buffalo + :strength 15 :max-health 20 + :aggression 5 :group-size 10 + :habitat '(swamp grassland) + :char #\B :color :magenta + :drops NIL) ;TODO + +(new-item species oryx + :strength 8 :max-health 12 + :aggression 0 :group-size 2 + :habitat '(desert grassland) + :char #\a :color :blue :drops NIL) ;TODO diff --git a/biomes.lisp b/biomes.lisp index 09dbfde..491bf48 100644 --- a/biomes.lisp +++ b/biomes.lisp @@ -8,15 +8,24 @@ ;;;; (c) 2018 Daniel Vedder, MIT license ;;;; +;;XXX lake? +;;TODO optimise frequency numbers + (new-biome grassland :ground "tall elephant grass" :char #\; :col ':yellow - :features '((acacia 40) (boulder 150))) ;TODO + :features '((acacia 100) (boulder 200) + (impala 500) (warthog 600) + (lion 2400) (leopard 3000) + (cheetah 2400) (elephant 800) + (buffalo 1000))) ;TODO (new-biome forest :ground "leaf litter and small shrubs" :char #\. :col ':green - :features '((miombo 10) (acacia 15))) ;TODO + :features '((miombo 10) (acacia 15) + (warthog 400) (impala 800) + (elephant 1000) (leopard 3200))) ;TODO (new-biome stream :ground "shallow flowing water" @@ -26,16 +35,16 @@ (new-biome swamp :ground "short sedge grass growing on boggy black soil" :char #\w :col ':green - :features '()) ;TODO + :features '((warthog 500) (buffalo 400) (lion 3000))) ;TODO (new-biome hill :ground "hard, stony soil" - :char #\m :col ':cyan ;XXX white might be better - :features '((boulder 10) (miombo 80))) ;TODO + :char #\m :col ':cyan ;XXX very bright - hurts the eyes... + :features '((boulder 20) (miombo 80) + (warthog 600) (leopard 3200))) ;TODO (new-biome desert :ground "deep, drifting sand" :char #\^ :col ':white ;XXX yellow would be better, but shows up brown - :features '((cactus 100) (boulder 200))) - -;;TODO desert + :features '((cactus 100) (boulder 200) + (oryx 800) (lion 3600))) ;TODO diff --git a/classes.lisp b/classes.lisp index 1c926db..2a694eb 100644 --- a/classes.lisp +++ b/classes.lisp @@ -53,7 +53,7 @@ (max-weight :reader .max-weight :initarg :max-weight :initform -1) (capacity :reader .capacity :initarg :capacity :initform 0))) -(defclass species (feature) ;XXX inherit from `feature' or `destructable'? +(defclass species (feature) ;; An animal species ((strength :accessor .strength :initarg :strength :initform 1) (max-health :accessor .max-health :initarg :max-health :initform 1) diff --git a/data.lisp b/data.lisp index d21fe45..3cb2630 100644 --- a/data.lisp +++ b/data.lisp @@ -70,24 +70,10 @@ ;;; ANIMALS & SPECIES -(let ((species-list NIL)) - (defun register-species (symbol-name species-object) - (setf species-list - (cons (list symbol-name species-object) species-list))) - - (defun get-species (symbol-name) - (cassoc symbol-name species-list))) - -(defmacro new-species (name &body body) - `(register-species ',name - (make-instance 'species - :name ,(symbol-to-string name) - ,@body))) - (let ((max-id 0) (animals NIL)) (defun add-animal (species position) "Create a new animal of the given species" - (let ((a (make-animal :id max-id + (let ((a (make-instance 'animal :id max-id :pos position :species species :health (.max-health species)))) (incf max-id) diff --git a/naledi.lisp b/naledi.lisp index 8375a2b..d5e5977 100644 --- a/naledi.lisp +++ b/naledi.lisp @@ -179,5 +179,5 @@ ;; Initialize the random state (which would otherwise not be very random...) (setf *random-state* (make-random-state t)) -(create-world 100) +(create-world 200) (start-game) diff --git a/README.md b/README.md index 4f7c0c5..fcf3e34 100644 --- a/README.md +++ b/README.md @@ -1,11 +1,11 @@ -#Naledi ya Africa +# Naledi ya Africa **Naledi ya Africa** (*Star of Africa* in seTswana) is a survival game set in Africa. It offers networked multiplayer with an ncurses user interface. --- -##Running +## Running To compile Naledi ya Africa, you need a Common Lisp implementation (SBCL is recommended), [Quicklisp](http://beta.quicklisp.org) and the ncurses C library. @@ -17,7 +17,7 @@ Once Naledi ya Africa is ready for release, a pre-compiled binary will be supplied. -##Playing +## Playing Refer to the game manual (MANUAL file in the source code, or type `h` in-game). *TODO* diff --git a/TODO b/TODO index a332dd6..0932d37 100644 --- a/TODO +++ b/TODO @@ -3,8 +3,6 @@ DOCUMENTATION -* write README - * write game instructions and keyboard shortcuts reference diff --git a/alt_logo.txt b/alt_logo.txt deleted file mode 100644 index 6f37fcd..0000000 --- a/alt_logo.txt +++ /dev/null @@ -1,19 +0,0 @@ - - ___ ___ _ _ _ - /###| /##/ |#| |#| (#) - /####| /##/ ____ _ |#| _____ ____ |#| _ - /##|##| /##/ /####\|#| |#| /#####\ /####\|#| |#| - /##/|##|/##/ |#/ \# #| |#| |#####| |#/ \# #| |#| - /##/ |#####/ |#\__/# #| |#|_ \#\____ |#\__/# #| |#| - /##/ |####/ \####/|#| \##) \####/ \####/|#| |#| - - - ____ ____ _ - / \ / __) (_) - _ _ ____ _ / /\ \ | (_ _ __ _ _____ ___ _ - | | | | / __ \| | / /__\ \ | __) | |/ \ | | / ____) / _ \| | - | | | | | / \ | / ______ \ | | | _/\/ | | | / __ | / \ | - \ \__/ | | \__/ | / / \ \ | | | | | | | \__/ / | \_/ | - \___ | \____/|_| /__/ \__\ |_| |_| |_| \____/ \___/|_| - ____| | - (______/ diff --git a/animals.lisp b/animals.lisp index d567f8c..3e0cabd 100644 --- a/animals.lisp +++ b/animals.lisp @@ -8,29 +8,62 @@ ;;;; (c) 2018 Daniel Vedder, MIT license ;;;; -;;TODO Change to African species ;;XXX bird species? +;;XXX water species? +;;XXX small mammals -> hills -(new-species deer - :strength 3 :max-health 10 :aggression 0 - :group-size 10 +(new-item species impala + :strength 3 :max-health 10 + :aggression 0 :group-size 15 :habitat '(forest grassland) + :char #\a :color :yellow :drops NIL) ;TODO -(new-species boar - :strength 7 :max-health 15 :aggression 5 - :group-size 5 - :habitat '(forest) +(new-item species warthog + :strength 5 :max-health 10 + :aggression 2 :group-size 5 + :habitat '(forest grassland swamp hill) + :char #\p :color :magenta :drops NIL) ;TODO -(new-species wolf - :strength 10 :max-health 20 :aggression 20 - :group-size 6 +(new-item species lion + :strength 18 :max-health 25 + :aggression 20 :group-size 6 + :habitat '(grassland swamp desert) + :char #\C :color :red + :drops NIL) ;TODO + +(new-item species leopard + :strength 20 :max-health 30 + :aggression 20 :group-size 1 + :habitat '(forest grassland hill) + :char #\C :color :magenta + :drops NIL) ;TODO + +(new-item species cheetah + :strength 15 :max-health 20 + :aggression 10 :group-size 1 :habitat '(grassland) + :char #\C :color :yellow :drops NIL) ;TODO -(new-species bear - :strength 20 :max-health 30 :aggression 20 - :group-size 1 - :habitat '(forest) +(new-item species elephant + :strength 40 :max-health 50 + :aggression 5 :group-size 4 + :habitat '(forest grassland) + :char #\E :color :cyan + :drops NIL) ;TODO + +(new-item species buffalo + :strength 15 :max-health 20 + :aggression 5 :group-size 10 + :habitat '(swamp grassland) + :char #\B :color :magenta + :drops NIL) ;TODO + +(new-item species oryx + :strength 8 :max-health 12 + :aggression 0 :group-size 2 + :habitat '(desert grassland) + :char #\a :color :blue :drops NIL) ;TODO diff --git a/biomes.lisp b/biomes.lisp index 09dbfde..491bf48 100644 --- a/biomes.lisp +++ b/biomes.lisp @@ -8,15 +8,24 @@ ;;;; (c) 2018 Daniel Vedder, MIT license ;;;; +;;XXX lake? +;;TODO optimise frequency numbers + (new-biome grassland :ground "tall elephant grass" :char #\; :col ':yellow - :features '((acacia 40) (boulder 150))) ;TODO + :features '((acacia 100) (boulder 200) + (impala 500) (warthog 600) + (lion 2400) (leopard 3000) + (cheetah 2400) (elephant 800) + (buffalo 1000))) ;TODO (new-biome forest :ground "leaf litter and small shrubs" :char #\. :col ':green - :features '((miombo 10) (acacia 15))) ;TODO + :features '((miombo 10) (acacia 15) + (warthog 400) (impala 800) + (elephant 1000) (leopard 3200))) ;TODO (new-biome stream :ground "shallow flowing water" @@ -26,16 +35,16 @@ (new-biome swamp :ground "short sedge grass growing on boggy black soil" :char #\w :col ':green - :features '()) ;TODO + :features '((warthog 500) (buffalo 400) (lion 3000))) ;TODO (new-biome hill :ground "hard, stony soil" - :char #\m :col ':cyan ;XXX white might be better - :features '((boulder 10) (miombo 80))) ;TODO + :char #\m :col ':cyan ;XXX very bright - hurts the eyes... + :features '((boulder 20) (miombo 80) + (warthog 600) (leopard 3200))) ;TODO (new-biome desert :ground "deep, drifting sand" :char #\^ :col ':white ;XXX yellow would be better, but shows up brown - :features '((cactus 100) (boulder 200))) - -;;TODO desert + :features '((cactus 100) (boulder 200) + (oryx 800) (lion 3600))) ;TODO diff --git a/classes.lisp b/classes.lisp index 1c926db..2a694eb 100644 --- a/classes.lisp +++ b/classes.lisp @@ -53,7 +53,7 @@ (max-weight :reader .max-weight :initarg :max-weight :initform -1) (capacity :reader .capacity :initarg :capacity :initform 0))) -(defclass species (feature) ;XXX inherit from `feature' or `destructable'? +(defclass species (feature) ;; An animal species ((strength :accessor .strength :initarg :strength :initform 1) (max-health :accessor .max-health :initarg :max-health :initform 1) diff --git a/data.lisp b/data.lisp index d21fe45..3cb2630 100644 --- a/data.lisp +++ b/data.lisp @@ -70,24 +70,10 @@ ;;; ANIMALS & SPECIES -(let ((species-list NIL)) - (defun register-species (symbol-name species-object) - (setf species-list - (cons (list symbol-name species-object) species-list))) - - (defun get-species (symbol-name) - (cassoc symbol-name species-list))) - -(defmacro new-species (name &body body) - `(register-species ',name - (make-instance 'species - :name ,(symbol-to-string name) - ,@body))) - (let ((max-id 0) (animals NIL)) (defun add-animal (species position) "Create a new animal of the given species" - (let ((a (make-animal :id max-id + (let ((a (make-instance 'animal :id max-id :pos position :species species :health (.max-health species)))) (incf max-id) diff --git a/naledi.lisp b/naledi.lisp index 8375a2b..d5e5977 100644 --- a/naledi.lisp +++ b/naledi.lisp @@ -179,5 +179,5 @@ ;; Initialize the random state (which would otherwise not be very random...) (setf *random-state* (make-random-state t)) -(create-world 100) +(create-world 200) (start-game) diff --git a/world.lisp b/world.lisp index efecfae..1a7dae9 100644 --- a/world.lisp +++ b/world.lisp @@ -152,10 +152,6 @@ (setf (patch-biome patch) (get-biome 'stream)) (setf (patch-occupant patch) NIL))) -(defun generate-herds (biome-seeds) - ;;TODO - ) - (defun create-world (size) (set-world (init-matrix size)) ;;XXX magic numbers