Skip to content

Instantly share code, notes, and snippets.

@schadocalex
Created June 27, 2022 17:59
Show Gist options
  • Save schadocalex/a38d93bfd84538ad4f9dba7a03e75baa to your computer and use it in GitHub Desktop.
Save schadocalex/a38d93bfd84538ad4f9dba7a03e75baa to your computer and use it in GitHub Desktop.
Botanist (PuzzleScript Script)
Play this game by pasting the script in http://www.puzzlescript.net/editor.html
title Botanist
author Damien
key_repeat_interval 1
verbose_logging
========
OBJECTS
========
starship
red white
.....
..1..
.000.
.111.
.0.0.
path
lightgray
NormalGround
LIGHTGREEN
Wall
darkgray
shallowwater
blue
deepwater
darkblue
muddyground
lightblue lightgreen
11111
10011
10001
10001
11111
PlayerWithoutShovel
black white blue
.....
.111.
.121.
.111.
.....
PlayerWithShovel
black white brown
.....
.111.
.121.
.111.
.....
hole
black
.....
.000.
.000.
.000.
.....
dirt
darkbrown
.....
.000.
.000.
.000.
.....
(tree plant)
treePot
brown lightgreen
.....
..0..
.010.
..0..
.....
newtree
green
.....
..0..
.000.
..0..
.....
TreePlant1
lightgreen green
..1..
.101.
10001
.101.
..1..
TreePlant2
green darkgreen
..1..
.101.
10001
.101.
..1..
(lilly plant)
lillypot
brown blue
.....
..0..
.010.
..0..
.....
lillyplant
lightgreen green
..1..
.101.
10001
.101.
..1..
(reed plant)
reedpot
brown yellow
.....
..0..
.010.
..0..
.....
reedplant
yellow
.0...
...0.
0....
..0..
0..0.
(mushroom plant)
mushroompot
brown red
.....
..0..
.010.
..0..
.....
mushroomplant
red green
..1..
.101.
10001
.101.
..1..
=======
LEGEND
=======
e = shallowwater
b = deepwater
+ = NormalGround
m = muddyground
: = path
# = Wall
P = PlayerWithoutShovel
S = starship
h = hole and NormalGround
d = dirt and NormalGround
water = shallowwater or deepwater
Player = PlayerWithShovel or PlayerWithoutShovel
w = PlayerWithoutShovel and path
y = starship and path
o = treePot and NormalGround
g = treepot and path
f = dirt and path
u = reedpot and NormalGround
i = TreePlant2 and NormalGround
j = reedplant and NormalGround
n = lillypot and NormalGround
a = lillypot and path
c = mushroompot and NormalGround
k = mushroomplant and NormalGround
PlantPlant = TreePlant1 or TreePlant2
PlantPot = treePot or reedpot or lillypot or mushroompot
PlantNew = newtree
Background = NormalGround or path or water or muddyground
dirt_dig_col = PlantPot or PlantNew or PlantPlant or starship or wall or dirt or reedplant
hole_dig_col = dirt_dig_col or hole or path
movable_col = dirt_dig_col
player_jump_col = PlantPot or PlantNew or PlantPlant or starship or wall or dirt or water
movable_jump_col = dirt_dig_col
ungrowable = path
movable = dirt or PlantPot
stuff = reedplant or mushroomplant or lillyplant
=======
SOUNDS
=======
================
COLLISIONLAYERS
================
Background
hole,
lillyplant, mushroomplant, reedplant
dirt,
Player, Wall, PlantPlant, PlantPot, PlantNew
starship
======
RULES
======
[action PlayerWithoutShovel] -> [PlayerWithShovel]
[action PlayerWithShovel] -> [PlayerWithoutShovel]
(digging for normal ground)
[hole | no hole_dig_col NormalGround| < PlayerWithShovel ] -> [dirt hole | hole NormalGround| PlayerWithoutShovel ]
[no dirt_dig_col | no hole_dig_col NormalGround | < PlayerWithShovel ] -> [dirt | hole NormalGround| PlayerWithoutShovel ]
(digging for muddy ground)
[hole | no hole_dig_col muddyground| < PlayerWithShovel ] -> [dirt hole | shallowwater | PlayerWithoutShovel ]
[no dirt_dig_col | no hole_dig_col muddyground | < PlayerWithShovel ] -> [dirt | shallowwater | PlayerWithoutShovel ]
(digging general last rule)
[ | < PlayerWithShovel ] -> [ | PlayerWithoutShovel]
(mushroom rule)
[> Player | movable mushroomplant ] -> [> Player | > movable mushroomplant]
[ > Player mushroomplant | | lillyplant no movable_jump_col] -> [ mushroomplant | | lillyplant Player]
[ > Player mushroomplant | | no player_jump_col] -> [ mushroomplant | | Player] (some feedback will be needed to tell the player when and why it's not possible, maybe make it happen but have some ne gative feedback happen)
[ > movable mushroomplant || no movable_jump_col] -> [mushroomplant || movable]
(where the player cannot walk)
[ > Player | hole ] -> [ Player | hole ]
[ > Player | water no lillyplant ] -> [ Player | water]
(pushing movables)
[> Player | movable] -> [> Player | > movable]
(where movable stuff cannot move)
[ > movable | movable_col no hole ] -> [ movable | movable_col ]
late [ Dirt hole treePot ] -> [ newtree ]
late [ Dirt hole mushroompot ] -> [ mushroomplant ]
late [ Dirt hole lillypot ] -> [ lillypot ]
late [ water lillypot no lillyplant ] -> [ water lillyplant ] (should we only be able to plant lilly on shallow water ?)
late [ Dirt hole reedpot ] -> [ reedplant ]
late [ Dirt hole ] -> []
late [ Dirt shallowwater no lillyplant ] -> [ muddyground ]
late [ Dirt deepwater no lillyplant ] -> [deepwater]
(tree growth)
late [TreePlant1 ] -> [TreePlant2]
late [newtree] -> [TreePlant1]
late [Player dirt ] -> [] cancel
==============
WINCONDITIONS
==============
no hole
no dirt
no PlantPot
=======
LEVELS
=======
message oh no this garden is full of holes
bbbbbbbbb
b+++:+++b
b+++:+h+b
b+hd:+d+b
b+++:dh+b
b+++w+++b
bbbbbbbbb
message but you can plant trees in holes
bbbbbbbbb
b+++:+++b
b+++:+d+b
b+++:+h+b
b+++:+o+b
b+++w+++b
bbbbbbbbb
message with lots of holes you can plant lots of trees
bbbbbbbbb
b+++:+++b
b+dh:od+b
b+d+:+d+b
booo:+++b
bhhhw+++b
bbbbbbbbb
message but did you know you can also dig holes by pressing X and movin ?
bbbbbbbbb
b+++:+++b
b+++:+++b
b+o+:+++b
b+++:+o+b
b+++w+++b
bbbbbbbbb
bbbbbbbbb
b+++:+++b
b+dh:od+b
b+dh:+d+b
bood:+++b
bhhhwo++b
bbbbbbbbb
bbbbbbbbbbb
b++hw+++++b
b++h:oo+d+b
b+dh:o++++b
b+dh:o+d++b
b++h:o++d+b
bbbbbbbbbbb
message time to learn about the water plants
bbbbbbbbb
beeeeeeeb
beeeeeeeb
beeaaaeeb
be:::::eb
be:###:eb
be:::::eb
be::w::eb
bbbbbbbbb
bbbbbbbbb
beeeeeeeb
beeeeeeeb
be:##eeeb
beaaee#eb
be:aa##eb
be::::eeb
be::w:eeb
bbbbbbbbb
bbbbbbbbbbbb
bee:::::::eb
b:eeee::::eb
b:e::eeeeeeb
b:e:aeaa#:eb
b:e::e::eaeb
beeeeeeee:eb
b:e:a:e:a:eb
b:e:::e:::eb
b:e:w:eeeeeb
bbbbbbbbbbbb
bbbbbbbbbbbb
bee:::::::eb
b:eee:a:::eb
b:e:aeeeeeeb
b:e:aeaa#:eb
b:e::e:eeaeb
beeeeee#e:eb
b:e:a:e:a:eb
b:e:::e:::eb
b:e:w:eeeeeb
bbbbbbbbbbbb
message make sure not to leave holes in the garden !
bbbbbbbbbbbb
b::::e:::::b
b::::e:gh::b
b::::e:a:f:b
beg:eeeeeeeb
be:ae:f::::b
beh:e:a:ee:b
beeeeeeee::b
be:a:f:e:f:b
be:::::e:h:b
be:hg:we:::b
bbbbbbbbbbbb
bbbbbbbbb
b+++:+++b
b+++:+++b
b++n:+++b
beeeeeeeb
b+++:+++b
b+o+:+++b
b+++w+++b
bbbbbbbbb
message look ! some reeds !
bbbbbbbbbb
b++jjeeeeb
b+++jee++b
b+:fh::+ub
b+f+uje+hb
b+:::eej+b
beee:eeeeb
bejjjjjeeb
bej+:+jeeb
bej+w+jeeb
bbbbbbbbbb
message and don't leave any dirt around please !
bbbbbbbb
bee+d+hb
beejjj+b
beemi++b
bej+n::b
bej++:+b
bej++w+b
bbbbbbbb
message those plants looks bumpy !
bbbbbbbb
b++++eeb
b+od+ejb
b+h++ejb
beeeeeeb
bjjhjjeb
b+dc+jeb
b++:+jeb
b++w+jeb
bbbbbbbb
bbbbbbbb
bjjjjjjb
beeeeeeb
bjh::g:b
bj+jjj:b
bjj+++:b
bejc:::b
bej+:d+b
bej+w++b
bbbbbbbb
(+++++++++
++eeeee++
+eeeeeee+
+++++++++
+++uoc+++
++n+++w++
+++++++++
+++++++++
+++++++++
+++++++++)
message Warm up
eee+w+eee
++e+++e++
+de+n+eh+
++e+o+e++
eee+++eee
message Two holes in a row
eeeee##:::##
eeeee##:#f##
ejwee##:::##
ej+ee##::f##
ej+ee##:::::
ejnee##e#f#:
ej++++hhj+#:
e+++++++++f:
eeeee#######
message Where are you lillyplant?
eee+w+eee
++e+++e++
+de+++eh+
++e+o+e++
eee+++eee
message Here comes reedplants!
eee+w+eee
jje+++e++
jde+++eh+
jje+o+e++
eee+++eee
message Hole on the way!
#########
#+weeeeh#
#+neeeeg#
#++++h+e#
##e####:#
#:a:f:f:#
#:::::::#
#########
message Two holes and a reed !
eeeee##:::##
eeeee##:#f##
ejwee##:::##
ej+ee##::f##
ej+ee##:j:::
ejnee##e#f#:
ej++++hhj+#:
e+++++++++f:
eeeee#######
message Round trip
#########
#:::::::#
#:#####:#
#:#:w:#e#
#:#+d+ee#
#g#####+#
+++++++++
jjjjjjjjj
message Badger badger badger, mushroom mushroom
###########
##+d+h+o++#
##+######+#
#kkkkkkkkk#
#kkkkkkkkk#
#kkkkkkkkk#
#kkkkkkkkk#
#kkkkkkkkk#
#####k#####
#:::#k#:::#
#:::+k+:::#
#::::w::::#
###########
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment