Compare commits
10 Commits
d6e1849956
...
6ddb1a96be
Author | SHA1 | Date | |
---|---|---|---|
6ddb1a96be | |||
b576587640 | |||
|
568f1ddeeb | ||
fa18e9d0d0 | |||
63e1353e5f | |||
53772cb717 | |||
d399e2df9d | |||
12c9936e19 | |||
065186538a | |||
bba6c6effa |
3
.gitattributes
vendored
Normal file
3
.gitattributes
vendored
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
*.jpg filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.png filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.jpeg filter=lfs diff=lfs merge=lfs -text
|
32
Makefile
32
Makefile
@ -1,19 +1,47 @@
|
|||||||
|
help:
|
||||||
|
@echo "Options:"
|
||||||
|
@echo "\tmake pdf"
|
||||||
|
@echo "\tmake creature"
|
||||||
|
@echo "\tmake show"
|
||||||
|
|
||||||
.PHONY: pdf
|
.PHONY: pdf
|
||||||
pdf: overview.pdf
|
pdf: overview.pdf
|
||||||
|
|
||||||
rubbish/:
|
rubbish/:
|
||||||
mkdir rubbish
|
mkdir rubbish
|
||||||
|
|
||||||
|
RANDOM != date +%s
|
||||||
|
TMP := /tmp/$(RANDOM).md
|
||||||
|
NAME := $(shell head -1 $(TMP) 2>/dev/null| tail -c+3)
|
||||||
|
|
||||||
|
.PHONY: creature
|
||||||
|
creature: stats/$(NAME).md
|
||||||
|
$(TMP):
|
||||||
|
cp stats/template.md $(TMP)
|
||||||
|
$$EDITOR $(TMP)
|
||||||
|
stats/$(NAME).md: $(TMP)
|
||||||
|
mv $(TMP) stats/$(NAME).md
|
||||||
|
|
||||||
overview.pdf:| rubbish/overview.pdf
|
overview.pdf:| rubbish/overview.pdf
|
||||||
ln rubbish/overview.pdf overview.pdf
|
ln rubbish/overview.pdf overview.pdf
|
||||||
rubbish/overview.pdf: overview.tex
|
rubbish/overview.pdf: overview.tex
|
||||||
|
|
||||||
overview.tex: overview.md | rubbish/
|
overview.tex: overview.md | rubbish/
|
||||||
lowdown -stlatex overview.md > overview.tex
|
lowdown -stlatex -m shiftheadinglevelby=1 overview.md > overview.tex
|
||||||
|
|
||||||
rubbish/overview.pdf: overview.tex
|
rubbish/overview.pdf: overview.tex
|
||||||
pdflatex -output-directory rubbish/ overview.tex
|
pdflatex -output-directory rubbish/ overview.tex
|
||||||
|
|
||||||
|
COLLECTION := /tmp/collection.md
|
||||||
|
.PHONY: show
|
||||||
|
show: $(COLLECTION)
|
||||||
|
$(COLLECTION): overview.md World
|
||||||
|
@./parse.sh overview.md > $(COLLECTION)
|
||||||
|
@./parse.sh World/Players_are_Entropy.md >> $(COLLECTION)
|
||||||
|
@./parse.sh Mechanics/Minds.md >> $(COLLECTION)
|
||||||
|
@./parse.sh Mechanics/Stats.md >> $(COLLECTION)
|
||||||
|
@lowdown -sTterm $(COLLECTION) | less -R
|
||||||
|
|
||||||
.PHONY: clean
|
.PHONY: clean
|
||||||
clean:
|
clean:
|
||||||
$(RM) -r rubbish overview.tex
|
$(RM) -r rubbish overview.tex $(COLLECTION)
|
||||||
|
38
Mechanics/Minds.md
Normal file
38
Mechanics/Minds.md
Normal file
@ -0,0 +1,38 @@
|
|||||||
|
Intelligence `-8`: The Ooze
|
||||||
|
===========================
|
||||||
|
|
||||||
|
The ooze has a very simple mind, and forms the basic of all minds.
|
||||||
|
|
||||||
|
.so flow-8.graph
|
||||||
|
|
||||||
|
If the ooze joins with smaller pieces of ooze, this works exactly like eating.
|
||||||
|
Which eats which does not matter to the ooze.
|
||||||
|
|
||||||
|
The question of whether two oozes come together through ingestion or mating is also irrelevant to the ooze.
|
||||||
|
|
||||||
|
It moves forward, and embraces the good in life, without any distinctions.
|
||||||
|
|
||||||
|
Intelligence `-7`: The Insect
|
||||||
|
===========================
|
||||||
|
|
||||||
|
The insect-brain acts like the ooze, but recognizes other creatures as friendly, and remembers spaces.
|
||||||
|
The insects literally have a smaller version of the main map in their head, but they have limited memory.
|
||||||
|
|
||||||
|
...they quite literally have a number of kilobytes each to remember a finite amount of space.
|
||||||
|
|
||||||
|
Intelligence `-6`: The Wolf
|
||||||
|
===========================
|
||||||
|
|
||||||
|
At this level of intelligence, the creature begins to think with others.
|
||||||
|
They do this by voting on a leader, then each of the creatures follows that leader.
|
||||||
|
|
||||||
|
.so flow-6.graph
|
||||||
|
|
||||||
|
Intelligence `-5`: The Goblin
|
||||||
|
=============================
|
||||||
|
|
||||||
|
This stage should probably be left until the previous intelligence levels have been dealt with.
|
||||||
|
Options include:
|
||||||
|
|
||||||
|
- Simulation: play out possible scenarios in the creature's head by simulating the segment of the map which it knows, at 10x normal speed.
|
||||||
|
- Skills: Just list off particular things, like 'fishing', or 'crafting spears', then deal with them individually.
|
38
Mechanics/Stats.md
Normal file
38
Mechanics/Stats.md
Normal file
@ -0,0 +1,38 @@
|
|||||||
|
Attribute + Skill
|
||||||
|
=================
|
||||||
|
|
||||||
|
Theory
|
||||||
|
------
|
||||||
|
|
||||||
|
Everything is two things: An attribute, plus a Skill.
|
||||||
|
They combine in different ways.
|
||||||
|
|
||||||
|
| Strength | Dexterity | Speed | Intelligence | Wits | Charisma |
|
||||||
|
|:--------:|:--------:|:--------:|:--------:|:--------:|:--------:|
|
||||||
|
| Academics | Orating to a massive crowd | Forgery | Courier Runs | Recalling facts | Resisting an enchantment spell | Storytelling |
|
||||||
|
| Athletics | Lifting heavy loads | Climbing | Sprinting | Finding the easiest route to climb | Identifying optimal climbing conditions | Stage acrobatics |
|
||||||
|
| Deceit | Intimidation | Feigning an injury | Spreading a rumour across an entire town | Crafting a plausible lie | Making a quick excuse | Implausible lies |
|
||||||
|
| Stealth | Hiding in a hay bail | Moving quietly | Escaping into a crowd | Identifying the best hiding spot | Quickly hiding | Slipping into a party uninvited |
|
||||||
|
|
||||||
|
|
||||||
|
None of this should ever be hard coded.
|
||||||
|
The programmer should - at any point - decide that a creature's `X + Y` will affect how the environment responds.
|
||||||
|
|
||||||
|
For the most part, this will be a simple comparison.
|
||||||
|
|
||||||
|
|
||||||
|
```pseudo code
|
||||||
|
if ( Strength + Wyldcrafting > 3 ) {
|
||||||
|
self.pickup(object)
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
Application
|
||||||
|
-----------
|
||||||
|
|
||||||
|
Within the game, the main combinations will probably be:
|
||||||
|
|
||||||
|
- **Running**: Speed + Athletics
|
||||||
|
- **Gathering**: Dexterity + Wyldcrafting
|
||||||
|
- **Swimming**: Speed + Seafaring
|
||||||
|
|
20
Mechanics/flow-6.graph
Normal file
20
Mechanics/flow-6.graph
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
[ START ] --> [ damage? ]
|
||||||
|
[ Anyone know where food is? ] <-- me! --> [ We go to food! ]
|
||||||
|
[ Anyone know where food is? ] -- someone? --> [ I follow them ]
|
||||||
|
[ Anyone know where food is? ] -- nobody... --> [ Do I see someone bigger than me? ]
|
||||||
|
[ Do I see someone bigger than me? ] -- No --> [ howl! ]
|
||||||
|
[ Do I see someone bigger than me? ] -- Yes --> [ silence ]
|
||||||
|
[ silence ], [ howl! ] --> [ listen ]
|
||||||
|
[ listen ] -- one howl --> [ we follow, you lead ]
|
||||||
|
[ listen ] -- some howls --> [ howlers fight (one punch only) ]
|
||||||
|
[ listen ] -- no howls --> [ (unreachable state) RUN AWAY! ]
|
||||||
|
[ howlers fight (one punch only) ] --> [ Do I see someone bigger than me? ]
|
||||||
|
[ damage? ] -- yes --> [ run opposite way! ]
|
||||||
|
[ damage? ] -- no --> [ am I alone? ]
|
||||||
|
[ am I alone? ] -- yes --> [ food? ]
|
||||||
|
[ am I alone? ] -- no --> [ Anyone know where food is? ]
|
||||||
|
[ food? ] -- here --> [ eat ]
|
||||||
|
[ eat ] -- X=1 --> [ food? ]
|
||||||
|
[ food? ] -- near --> [ move to food ]
|
||||||
|
[ food? ] -- no --> [ move X squares in random direction ]
|
||||||
|
[ move X squares in random direction ] -- increase-X --> [ food? ]
|
8
Mechanics/flow-8.graph
Normal file
8
Mechanics/flow-8.graph
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
[ START ] --> [ damage? ]
|
||||||
|
[ damage? ] -- yes --> [ run opposite way! ]
|
||||||
|
[ damage? ] -- no --> [ food? ]
|
||||||
|
[ food? ] -- here --> [ eat ]
|
||||||
|
[ eat ] -- X=1 --> [ food? ]
|
||||||
|
[ food? ] -- near --> [ move to food ]
|
||||||
|
[ food? ] -- no --> [ move X squares in random direction ]
|
||||||
|
[ move X squares in random direction ] -- increase-X --> [ food? ]
|
23
README.md
23
README.md
@ -10,7 +10,7 @@ Plan
|
|||||||
|
|
||||||
Read the overview.
|
Read the overview.
|
||||||
|
|
||||||
PDF Dependencies
|
Dependencies
|
||||||
============
|
============
|
||||||
|
|
||||||
- `texlive`
|
- `texlive`
|
||||||
@ -23,3 +23,24 @@ PDF Dependencies
|
|||||||
* `lmodern`
|
* `lmodern`
|
||||||
* `hyperref`
|
* `hyperref`
|
||||||
- `lowdown`
|
- `lowdown`
|
||||||
|
- `graph-easy`
|
||||||
|
|
||||||
|
Godot Note
|
||||||
|
===========
|
||||||
|
|
||||||
|
If your [graphics card does not support vulcan](https://github.com/godotengine/godot/issues/58927), you may need to start godot like this:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
godot --rendering-driver opengl3
|
||||||
|
```
|
||||||
|
|
||||||
|
Git Large File Server
|
||||||
|
=====================
|
||||||
|
|
||||||
|
Git's large-file-server (LFS) lets you track your fat binary files, without making the repository bloated and awful for everyone else in the future.
|
||||||
|
|
||||||
|
If you want to track 'jpg' files, you can track them like this:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
git lfs track "*jpg"
|
||||||
|
```
|
||||||
|
21
parse.sh
Executable file
21
parse.sh
Executable file
@ -0,0 +1,21 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
target="$1"
|
||||||
|
|
||||||
|
cd "$(dirname "$target")"
|
||||||
|
|
||||||
|
fileName="$(basename "$target")"
|
||||||
|
sectionName="$(basename -s .md "$target" | tr '_' ' ')"
|
||||||
|
|
||||||
|
printf "\n\n# $sectionName\n"
|
||||||
|
|
||||||
|
while read -r line; do
|
||||||
|
echo "$line" | grep -q '^.so ' && \
|
||||||
|
file="$(echo "$line" | grep '^.so ' | cut -d' ' -f2 )" && \
|
||||||
|
[ -e "$file" ] && \
|
||||||
|
echo '```graph' && \
|
||||||
|
cat "$file" | graph-easy --boxart && \
|
||||||
|
echo '```' || \
|
||||||
|
echo "$line"
|
||||||
|
done < "$fileName"
|
||||||
|
|
1
src/.gitattributes
vendored
Normal file
1
src/.gitattributes
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
*.jpeg filter=lfs diff=lfs merge=lfs -text
|
@ -0,0 +1,3 @@
|
|||||||
|
source_md5="9a4104dff00df852016292feb74c969d"
|
||||||
|
dest_md5="751dd545e5a5763328b952d739c01fd6"
|
||||||
|
|
@ -0,0 +1,3 @@
|
|||||||
|
source_md5="d452341a0992cf84787acc1df8149fa7"
|
||||||
|
dest_md5="5a05aa8c2f602d12f8dd18be7600637b"
|
||||||
|
|
BIN
src/.import/dirt.png-81db9f47be16674f640109976e043256.stex
Normal file
BIN
src/.import/dirt.png-81db9f47be16674f640109976e043256.stex
Normal file
Binary file not shown.
@ -0,0 +1,3 @@
|
|||||||
|
source_md5="d452341a0992cf84787acc1df8149fa7"
|
||||||
|
dest_md5="7a8bde47de61359d339cd9ab39972258"
|
||||||
|
|
BIN
src/.import/dirt.png-ff175a3e6b1e0d87d0f80d5ca7a3d29e.stex
Normal file
BIN
src/.import/dirt.png-ff175a3e6b1e0d87d0f80d5ca7a3d29e.stex
Normal file
Binary file not shown.
@ -0,0 +1,3 @@
|
|||||||
|
source_md5="5718adcd74e730a5786a66f5303d55d0"
|
||||||
|
dest_md5="bde353017c7147330bebe01b8e0b9081"
|
||||||
|
|
BIN
src/.import/goblin.png-555c4de3e7de7d249da453933b804842.stex
Normal file
BIN
src/.import/goblin.png-555c4de3e7de7d249da453933b804842.stex
Normal file
Binary file not shown.
@ -0,0 +1,3 @@
|
|||||||
|
source_md5="47313fa4c47a9963fddd764e1ec6e4a8"
|
||||||
|
dest_md5="2ded9e7f9060e2b530aab678b135fc5b"
|
||||||
|
|
BIN
src/.import/icon.png-487276ed1e3a0c39cad0279d744ee560.stex
Normal file
BIN
src/.import/icon.png-487276ed1e3a0c39cad0279d744ee560.stex
Normal file
Binary file not shown.
@ -0,0 +1,3 @@
|
|||||||
|
source_md5="11aa5994678b65327c09e0cf048cc960"
|
||||||
|
dest_md5="5a2ebb8d76a3fd626f8148b380c8452a"
|
||||||
|
|
@ -0,0 +1,3 @@
|
|||||||
|
source_md5="11aa5994678b65327c09e0cf048cc960"
|
||||||
|
dest_md5="5a2ebb8d76a3fd626f8148b380c8452a"
|
||||||
|
|
BIN
src/.import/moss.png-61d539c9df559a4b157329d26994cee7.stex
Normal file
BIN
src/.import/moss.png-61d539c9df559a4b157329d26994cee7.stex
Normal file
Binary file not shown.
@ -0,0 +1,3 @@
|
|||||||
|
source_md5="5c49c03355dba6f69dd7db043dcf285e"
|
||||||
|
dest_md5="127a63ab2cee1694af5226e606fbefde"
|
||||||
|
|
BIN
src/.import/ooze.png-0a3aed31cac3950abca695916d8e15ef.stex
Normal file
BIN
src/.import/ooze.png-0a3aed31cac3950abca695916d8e15ef.stex
Normal file
Binary file not shown.
@ -0,0 +1,3 @@
|
|||||||
|
source_md5="5c49c03355dba6f69dd7db043dcf285e"
|
||||||
|
dest_md5="127a63ab2cee1694af5226e606fbefde"
|
||||||
|
|
@ -0,0 +1,3 @@
|
|||||||
|
source_md5="ab47a8fed0ae7444d44586235a4d5fee"
|
||||||
|
dest_md5="9f637ed36157171de2c9855859ffb703"
|
||||||
|
|
BIN
src/.import/stone.png-083619ed9cb60da6213c6ca04d200509.stex
Normal file
BIN
src/.import/stone.png-083619ed9cb60da6213c6ca04d200509.stex
Normal file
Binary file not shown.
@ -0,0 +1,3 @@
|
|||||||
|
source_md5="ab47a8fed0ae7444d44586235a4d5fee"
|
||||||
|
dest_md5="5ac92b9ef3914f94598597d4ab0792a0"
|
||||||
|
|
BIN
src/.import/stone.png-4f7def60038ccb460a48436a729efec6.stex
Normal file
BIN
src/.import/stone.png-4f7def60038ccb460a48436a729efec6.stex
Normal file
Binary file not shown.
@ -0,0 +1,3 @@
|
|||||||
|
source_md5="2ccb885e506f1c1dc85ae533ed064e28"
|
||||||
|
dest_md5="bc6f3037a9e45f5a87a3ff64eff32a45"
|
||||||
|
|
BIN
src/.import/water.png-154297d676290e71bc3fa3868b532a65.stex
Normal file
BIN
src/.import/water.png-154297d676290e71bc3fa3868b532a65.stex
Normal file
Binary file not shown.
12
src/NPCs/Goblin.tscn
Normal file
12
src/NPCs/Goblin.tscn
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
[gd_scene load_steps=2 format=2]
|
||||||
|
|
||||||
|
[ext_resource path="res://NPCs/goblin.png" type="Texture" id=1]
|
||||||
|
|
||||||
|
[node name="Goblin" type="KinematicBody2D"]
|
||||||
|
|
||||||
|
[node name="goblin" type="Sprite" parent="."]
|
||||||
|
position = Vector2( 0.380203, -0.127379 )
|
||||||
|
texture = ExtResource( 1 )
|
||||||
|
|
||||||
|
[node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="."]
|
||||||
|
polygon = PoolVector2Array( -2.66919, -3.30936, -2.58081, 2.92202, 2.41314, 2.92202, 2.36894, -3.35355 )
|
12
src/NPCs/Ooze.tscn
Normal file
12
src/NPCs/Ooze.tscn
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
[gd_scene load_steps=2 format=2]
|
||||||
|
|
||||||
|
[ext_resource path="res://NPCs/ooze.png" type="Texture" id=1]
|
||||||
|
|
||||||
|
[node name="Ooze" type="KinematicBody2D"]
|
||||||
|
|
||||||
|
[node name="ooze" type="Sprite" parent="."]
|
||||||
|
position = Vector2( -0.061738, 0.18198 )
|
||||||
|
texture = ExtResource( 1 )
|
||||||
|
|
||||||
|
[node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="."]
|
||||||
|
polygon = PoolVector2Array( 4.09251, -4.06066, 4.04832, 4.15946, -4.1276, 4.02687, -4.1718, -4.06066 )
|
BIN
src/NPCs/goblin.png
(Stored with Git LFS)
Normal file
BIN
src/NPCs/goblin.png
(Stored with Git LFS)
Normal file
Binary file not shown.
34
src/NPCs/goblin.png.import
Normal file
34
src/NPCs/goblin.png.import
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="StreamTexture"
|
||||||
|
path="res://.import/goblin.png-555c4de3e7de7d249da453933b804842.stex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://NPCs/goblin.png"
|
||||||
|
dest_files=[ "res://.import/goblin.png-555c4de3e7de7d249da453933b804842.stex" ]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
compress/mode=0
|
||||||
|
compress/lossy_quality=0.7
|
||||||
|
compress/hdr_mode=0
|
||||||
|
compress/bptc_ldr=0
|
||||||
|
compress/normal_map=0
|
||||||
|
flags/repeat=0
|
||||||
|
flags/filter=false
|
||||||
|
flags/mipmaps=false
|
||||||
|
flags/anisotropic=false
|
||||||
|
flags/srgb=2
|
||||||
|
process/fix_alpha_border=true
|
||||||
|
process/premult_alpha=false
|
||||||
|
process/HDR_as_SRGB=false
|
||||||
|
process/invert_color=false
|
||||||
|
stream=false
|
||||||
|
size_limit=0
|
||||||
|
detect_3d=true
|
||||||
|
svg/scale=1.0
|
BIN
src/NPCs/moss.png
(Stored with Git LFS)
Normal file
BIN
src/NPCs/moss.png
(Stored with Git LFS)
Normal file
Binary file not shown.
34
src/NPCs/moss.png.import
Normal file
34
src/NPCs/moss.png.import
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="StreamTexture"
|
||||||
|
path="res://.import/moss.png-61d539c9df559a4b157329d26994cee7.stex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://NPCs/moss.png"
|
||||||
|
dest_files=[ "res://.import/moss.png-61d539c9df559a4b157329d26994cee7.stex" ]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
compress/mode=0
|
||||||
|
compress/lossy_quality=0.7
|
||||||
|
compress/hdr_mode=0
|
||||||
|
compress/bptc_ldr=0
|
||||||
|
compress/normal_map=0
|
||||||
|
flags/repeat=0
|
||||||
|
flags/filter=false
|
||||||
|
flags/mipmaps=false
|
||||||
|
flags/anisotropic=false
|
||||||
|
flags/srgb=2
|
||||||
|
process/fix_alpha_border=true
|
||||||
|
process/premult_alpha=false
|
||||||
|
process/HDR_as_SRGB=false
|
||||||
|
process/invert_color=false
|
||||||
|
stream=false
|
||||||
|
size_limit=0
|
||||||
|
detect_3d=true
|
||||||
|
svg/scale=1.0
|
12
src/NPCs/moss.tscn
Normal file
12
src/NPCs/moss.tscn
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
[gd_scene load_steps=2 format=2]
|
||||||
|
|
||||||
|
[ext_resource path="res://NPCs/moss.png" type="Texture" id=1]
|
||||||
|
|
||||||
|
[node name="Moss" type="StaticBody2D"]
|
||||||
|
|
||||||
|
[node name="moss" type="Sprite" parent="."]
|
||||||
|
position = Vector2( 0.110608, -0.127491 )
|
||||||
|
texture = ExtResource( 1 )
|
||||||
|
|
||||||
|
[node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="."]
|
||||||
|
polygon = PoolVector2Array( -3.90663, -4.01647, -3.77405, 3.8501, 4.04832, 3.8059, 4.09251, -4.01647 )
|
BIN
src/NPCs/ooze.png
(Stored with Git LFS)
Normal file
BIN
src/NPCs/ooze.png
(Stored with Git LFS)
Normal file
Binary file not shown.
34
src/NPCs/ooze.png.import
Normal file
34
src/NPCs/ooze.png.import
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="StreamTexture"
|
||||||
|
path="res://.import/ooze.png-0a3aed31cac3950abca695916d8e15ef.stex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://NPCs/ooze.png"
|
||||||
|
dest_files=[ "res://.import/ooze.png-0a3aed31cac3950abca695916d8e15ef.stex" ]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
compress/mode=0
|
||||||
|
compress/lossy_quality=0.7
|
||||||
|
compress/hdr_mode=0
|
||||||
|
compress/bptc_ldr=0
|
||||||
|
compress/normal_map=0
|
||||||
|
flags/repeat=0
|
||||||
|
flags/filter=false
|
||||||
|
flags/mipmaps=false
|
||||||
|
flags/anisotropic=false
|
||||||
|
flags/srgb=2
|
||||||
|
process/fix_alpha_border=true
|
||||||
|
process/premult_alpha=false
|
||||||
|
process/HDR_as_SRGB=false
|
||||||
|
process/invert_color=false
|
||||||
|
stream=false
|
||||||
|
size_limit=0
|
||||||
|
detect_3d=true
|
||||||
|
svg/scale=1.0
|
BIN
src/Tilesets/dirt.png
(Stored with Git LFS)
Normal file
BIN
src/Tilesets/dirt.png
(Stored with Git LFS)
Normal file
Binary file not shown.
34
src/Tilesets/dirt.png.import
Normal file
34
src/Tilesets/dirt.png.import
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="StreamTexture"
|
||||||
|
path="res://.import/dirt.png-ff175a3e6b1e0d87d0f80d5ca7a3d29e.stex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://Tilesets/dirt.png"
|
||||||
|
dest_files=[ "res://.import/dirt.png-ff175a3e6b1e0d87d0f80d5ca7a3d29e.stex" ]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
compress/mode=0
|
||||||
|
compress/lossy_quality=0.7
|
||||||
|
compress/hdr_mode=0
|
||||||
|
compress/bptc_ldr=0
|
||||||
|
compress/normal_map=0
|
||||||
|
flags/repeat=0
|
||||||
|
flags/filter=false
|
||||||
|
flags/mipmaps=false
|
||||||
|
flags/anisotropic=false
|
||||||
|
flags/srgb=2
|
||||||
|
process/fix_alpha_border=true
|
||||||
|
process/premult_alpha=false
|
||||||
|
process/HDR_as_SRGB=false
|
||||||
|
process/invert_color=false
|
||||||
|
stream=false
|
||||||
|
size_limit=0
|
||||||
|
detect_3d=true
|
||||||
|
svg/scale=1.0
|
BIN
src/Tilesets/stone.png
(Stored with Git LFS)
Normal file
BIN
src/Tilesets/stone.png
(Stored with Git LFS)
Normal file
Binary file not shown.
34
src/Tilesets/stone.png.import
Normal file
34
src/Tilesets/stone.png.import
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="StreamTexture"
|
||||||
|
path="res://.import/stone.png-4f7def60038ccb460a48436a729efec6.stex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://Tilesets/stone.png"
|
||||||
|
dest_files=[ "res://.import/stone.png-4f7def60038ccb460a48436a729efec6.stex" ]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
compress/mode=0
|
||||||
|
compress/lossy_quality=0.7
|
||||||
|
compress/hdr_mode=0
|
||||||
|
compress/bptc_ldr=0
|
||||||
|
compress/normal_map=0
|
||||||
|
flags/repeat=0
|
||||||
|
flags/filter=false
|
||||||
|
flags/mipmaps=false
|
||||||
|
flags/anisotropic=false
|
||||||
|
flags/srgb=2
|
||||||
|
process/fix_alpha_border=true
|
||||||
|
process/premult_alpha=false
|
||||||
|
process/HDR_as_SRGB=false
|
||||||
|
process/invert_color=false
|
||||||
|
stream=false
|
||||||
|
size_limit=0
|
||||||
|
detect_3d=true
|
||||||
|
svg/scale=1.0
|
BIN
src/Tilesets/water.png
(Stored with Git LFS)
Normal file
BIN
src/Tilesets/water.png
(Stored with Git LFS)
Normal file
Binary file not shown.
34
src/Tilesets/water.png.import
Normal file
34
src/Tilesets/water.png.import
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="StreamTexture"
|
||||||
|
path="res://.import/water.png-154297d676290e71bc3fa3868b532a65.stex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://Tilesets/water.png"
|
||||||
|
dest_files=[ "res://.import/water.png-154297d676290e71bc3fa3868b532a65.stex" ]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
compress/mode=0
|
||||||
|
compress/lossy_quality=0.7
|
||||||
|
compress/hdr_mode=0
|
||||||
|
compress/bptc_ldr=0
|
||||||
|
compress/normal_map=0
|
||||||
|
flags/repeat=0
|
||||||
|
flags/filter=false
|
||||||
|
flags/mipmaps=false
|
||||||
|
flags/anisotropic=false
|
||||||
|
flags/srgb=2
|
||||||
|
process/fix_alpha_border=true
|
||||||
|
process/premult_alpha=false
|
||||||
|
process/HDR_as_SRGB=false
|
||||||
|
process/invert_color=false
|
||||||
|
stream=false
|
||||||
|
size_limit=0
|
||||||
|
detect_3d=true
|
||||||
|
svg/scale=1.0
|
163
src/World.tscn
Normal file
163
src/World.tscn
Normal file
@ -0,0 +1,163 @@
|
|||||||
|
[gd_scene load_steps=14 format=2]
|
||||||
|
|
||||||
|
[ext_resource path="res://Tilesets/stone.png" type="Texture" id=1]
|
||||||
|
[ext_resource path="res://Tilesets/dirt.png" type="Texture" id=2]
|
||||||
|
[ext_resource path="res://Tilesets/water.png" type="Texture" id=3]
|
||||||
|
[ext_resource path="res://NPCs/Goblin.tscn" type="PackedScene" id=4]
|
||||||
|
[ext_resource path="res://NPCs/Ooze.tscn" type="PackedScene" id=5]
|
||||||
|
[ext_resource path="res://NPCs/moss.tscn" type="PackedScene" id=6]
|
||||||
|
|
||||||
|
[sub_resource type="ConvexPolygonShape2D" id=1]
|
||||||
|
points = PoolVector2Array( 0, 0, 8, 0, 8, 8, 0, 8 )
|
||||||
|
|
||||||
|
[sub_resource type="ConvexPolygonShape2D" id=2]
|
||||||
|
points = PoolVector2Array( 0, 0, 8, 0, 8, 8, 0, 8 )
|
||||||
|
|
||||||
|
[sub_resource type="ConvexPolygonShape2D" id=3]
|
||||||
|
points = PoolVector2Array( 0, 0, 8, 0, 8, 8, 0, 8 )
|
||||||
|
|
||||||
|
[sub_resource type="ConvexPolygonShape2D" id=4]
|
||||||
|
points = PoolVector2Array( 0, 0, 8, 0, 8, 8, 0, 8 )
|
||||||
|
|
||||||
|
[sub_resource type="ConvexPolygonShape2D" id=5]
|
||||||
|
points = PoolVector2Array( 0, 0, 8, 0, 8, 8, 0, 8 )
|
||||||
|
|
||||||
|
[sub_resource type="ConvexPolygonShape2D" id=6]
|
||||||
|
points = PoolVector2Array( 0, 0, 8, 0, 8, 8, 0, 8 )
|
||||||
|
|
||||||
|
[sub_resource type="TileSet" id=7]
|
||||||
|
0/name = "dirt.png 0"
|
||||||
|
0/texture = ExtResource( 2 )
|
||||||
|
0/tex_offset = Vector2( 0, 0 )
|
||||||
|
0/modulate = Color( 1, 1, 1, 1 )
|
||||||
|
0/region = Rect2( 0, 0, 24, 8 )
|
||||||
|
0/tile_mode = 1
|
||||||
|
0/autotile/bitmask_mode = 2
|
||||||
|
0/autotile/bitmask_flags = [ Vector2( 0, 0 ), 511, Vector2( 1, 0 ), 511, Vector2( 2, 0 ), 511 ]
|
||||||
|
0/autotile/icon_coordinate = Vector2( 0, 0 )
|
||||||
|
0/autotile/tile_size = Vector2( 8, 8 )
|
||||||
|
0/autotile/spacing = 0
|
||||||
|
0/autotile/occluder_map = [ ]
|
||||||
|
0/autotile/navpoly_map = [ ]
|
||||||
|
0/autotile/priority_map = [ ]
|
||||||
|
0/autotile/z_index_map = [ ]
|
||||||
|
0/occluder_offset = Vector2( 0, 0 )
|
||||||
|
0/navigation_offset = Vector2( 0, 0 )
|
||||||
|
0/shape_offset = Vector2( 0, 0 )
|
||||||
|
0/shape_transform = Transform2D( 1, 0, 0, 1, 0, 0 )
|
||||||
|
0/shape_one_way = false
|
||||||
|
0/shape_one_way_margin = 0.0
|
||||||
|
0/shapes = [ ]
|
||||||
|
0/z_index = 0
|
||||||
|
1/name = "stone.png 1"
|
||||||
|
1/texture = ExtResource( 1 )
|
||||||
|
1/tex_offset = Vector2( 0, 0 )
|
||||||
|
1/modulate = Color( 1, 1, 1, 1 )
|
||||||
|
1/region = Rect2( 0, 0, 24, 16 )
|
||||||
|
1/tile_mode = 1
|
||||||
|
1/autotile/bitmask_mode = 2
|
||||||
|
1/autotile/bitmask_flags = [ Vector2( 0, 0 ), 511, Vector2( 0, 1 ), 511, Vector2( 1, 0 ), 511, Vector2( 1, 1 ), 511, Vector2( 2, 0 ), 511, Vector2( 2, 1 ), 511 ]
|
||||||
|
1/autotile/icon_coordinate = Vector2( 0, 0 )
|
||||||
|
1/autotile/tile_size = Vector2( 8, 8 )
|
||||||
|
1/autotile/spacing = 0
|
||||||
|
1/autotile/occluder_map = [ ]
|
||||||
|
1/autotile/navpoly_map = [ ]
|
||||||
|
1/autotile/priority_map = [ ]
|
||||||
|
1/autotile/z_index_map = [ ]
|
||||||
|
1/occluder_offset = Vector2( 0, 0 )
|
||||||
|
1/navigation_offset = Vector2( 0, 0 )
|
||||||
|
1/shape_offset = Vector2( 0, 0 )
|
||||||
|
1/shape_transform = Transform2D( 1, 0, 0, 1, 0, 0 )
|
||||||
|
1/shape = SubResource( 1 )
|
||||||
|
1/shape_one_way = false
|
||||||
|
1/shape_one_way_margin = 1.0
|
||||||
|
1/shapes = [ {
|
||||||
|
"autotile_coord": Vector2( 0, 0 ),
|
||||||
|
"one_way": false,
|
||||||
|
"one_way_margin": 1.0,
|
||||||
|
"shape": SubResource( 1 ),
|
||||||
|
"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 )
|
||||||
|
}, {
|
||||||
|
"autotile_coord": Vector2( 1, 0 ),
|
||||||
|
"one_way": false,
|
||||||
|
"one_way_margin": 1.0,
|
||||||
|
"shape": SubResource( 2 ),
|
||||||
|
"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 )
|
||||||
|
}, {
|
||||||
|
"autotile_coord": Vector2( 2, 0 ),
|
||||||
|
"one_way": false,
|
||||||
|
"one_way_margin": 1.0,
|
||||||
|
"shape": SubResource( 3 ),
|
||||||
|
"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 )
|
||||||
|
}, {
|
||||||
|
"autotile_coord": Vector2( 0, 1 ),
|
||||||
|
"one_way": false,
|
||||||
|
"one_way_margin": 1.0,
|
||||||
|
"shape": SubResource( 4 ),
|
||||||
|
"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 )
|
||||||
|
}, {
|
||||||
|
"autotile_coord": Vector2( 1, 1 ),
|
||||||
|
"one_way": false,
|
||||||
|
"one_way_margin": 1.0,
|
||||||
|
"shape": SubResource( 5 ),
|
||||||
|
"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 )
|
||||||
|
}, {
|
||||||
|
"autotile_coord": Vector2( 2, 1 ),
|
||||||
|
"one_way": false,
|
||||||
|
"one_way_margin": 1.0,
|
||||||
|
"shape": SubResource( 6 ),
|
||||||
|
"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 )
|
||||||
|
} ]
|
||||||
|
1/z_index = 0
|
||||||
|
2/name = "water.png 2"
|
||||||
|
2/texture = ExtResource( 3 )
|
||||||
|
2/tex_offset = Vector2( 0, 0 )
|
||||||
|
2/modulate = Color( 1, 1, 1, 1 )
|
||||||
|
2/region = Rect2( 0, 0, 24, 24 )
|
||||||
|
2/tile_mode = 1
|
||||||
|
2/autotile/bitmask_mode = 2
|
||||||
|
2/autotile/bitmask_flags = [ Vector2( 0, 0 ), 432, Vector2( 0, 1 ), 438, Vector2( 0, 2 ), 54, Vector2( 1, 0 ), 504, Vector2( 1, 1 ), 511, Vector2( 1, 2 ), 63, Vector2( 2, 0 ), 216, Vector2( 2, 1 ), 219, Vector2( 2, 2 ), 27 ]
|
||||||
|
2/autotile/icon_coordinate = Vector2( 1, 1 )
|
||||||
|
2/autotile/tile_size = Vector2( 8, 8 )
|
||||||
|
2/autotile/spacing = 0
|
||||||
|
2/autotile/occluder_map = [ ]
|
||||||
|
2/autotile/navpoly_map = [ ]
|
||||||
|
2/autotile/priority_map = [ ]
|
||||||
|
2/autotile/z_index_map = [ ]
|
||||||
|
2/occluder_offset = Vector2( 0, 0 )
|
||||||
|
2/navigation_offset = Vector2( 0, 0 )
|
||||||
|
2/shape_offset = Vector2( 0, 0 )
|
||||||
|
2/shape_transform = Transform2D( 1, 0, 0, 1, 0, 0 )
|
||||||
|
2/shape_one_way = false
|
||||||
|
2/shape_one_way_margin = 0.0
|
||||||
|
2/shapes = [ ]
|
||||||
|
2/z_index = 0
|
||||||
|
|
||||||
|
[node name="World" type="Node2D"]
|
||||||
|
|
||||||
|
[node name="TileMap" type="TileMap" parent="."]
|
||||||
|
position = Vector2( 2, 0 )
|
||||||
|
tile_set = SubResource( 7 )
|
||||||
|
cell_size = Vector2( 8, 8 )
|
||||||
|
cell_quadrant_size = 8
|
||||||
|
cell_custom_transform = Transform2D( 8, 0, 0, 8, 0, 0 )
|
||||||
|
format = 1
|
||||||
|
tile_data = PoolIntArray( 0, 1, 0, 1, 1, 0, 2, 1, 0, 3, 1, 0, 4, 1, 0, 5, 1, 0, 6, 1, 0, 7, 1, 0, 8, 1, 0, 9, 1, 0, 65536, 1, 0, 65537, 0, 0, 65538, 0, 0, 65539, 0, 0, 65540, 2, 65537, 65541, 2, 65537, 65542, 2, 65537, 65543, 1, 0, 65544, 1, 0, 65545, 1, 0, 131072, 1, 0, 131073, 0, 0, 131074, 1, 0, 131075, 0, 0, 131076, 0, 0, 131077, 1, 0, 131078, 2, 65537, 131079, 1, 0, 131080, 1, 0, 131081, 1, 0, 196608, 1, 0, 196609, 0, 0, 196610, 1, 0, 196611, 0, 0, 196612, 0, 0, 196613, 0, 0, 196614, 2, 65537, 196615, 2, 65537, 196616, 2, 2, 196617, 1, 0, 262144, 1, 0, 262145, 0, 0, 262146, 1, 0, 262147, 0, 0, 262148, 0, 0, 262149, 1, 0, 262150, 2, 65536, 262151, 2, 65537, 262152, 2, 65538, 262153, 1, 0, 327680, 1, 0, 327681, 0, 0, 327682, 1, 0, 327683, 0, 0, 327684, 0, 0, 327685, 0, 0, 327686, 2, 65536, 327687, 2, 65537, 327688, 2, 65538, 327689, 1, 0, 393216, 1, 0, 393217, 0, 0, 393218, 0, 0, 393219, 0, 0, 393220, 0, 0, 393221, 0, 0, 393222, 2, 131072, 393223, 2, 131073, 393224, 2, 131074, 393225, 1, 0, 458752, 1, 0, 458753, 1, 0, 458754, 1, 0, 458755, 1, 0, 458756, 1, 0, 458757, 1, 0, 458758, 1, 0, 458759, 1, 0, 458760, 1, 0, 458761, 1, 0 )
|
||||||
|
|
||||||
|
[node name="Moss" parent="TileMap" instance=ExtResource( 6 )]
|
||||||
|
position = Vector2( 35.5938, 20.699 )
|
||||||
|
|
||||||
|
[node name="Moss2" parent="TileMap" instance=ExtResource( 6 )]
|
||||||
|
position = Vector2( 44.5283, 44.7697 )
|
||||||
|
|
||||||
|
[node name="Ooze" parent="TileMap" instance=ExtResource( 5 )]
|
||||||
|
position = Vector2( 27.8155, 44.3492 )
|
||||||
|
|
||||||
|
[node name="Goblin" parent="TileMap" instance=ExtResource( 4 )]
|
||||||
|
position = Vector2( 13.9407, 21.5399 )
|
||||||
|
|
||||||
|
[node name="Goblin2" parent="TileMap" instance=ExtResource( 4 )]
|
||||||
|
position = Vector2( 35.4887, 33.6278 )
|
||||||
|
|
||||||
|
[node name="Ooze2" parent="TileMap" instance=ExtResource( 5 )]
|
||||||
|
position = Vector2( 35.3835, 52.6531 )
|
7
src/default_env.tres
Normal file
7
src/default_env.tres
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
[gd_resource type="Environment" load_steps=2 format=2]
|
||||||
|
|
||||||
|
[sub_resource type="ProceduralSky" id=1]
|
||||||
|
|
||||||
|
[resource]
|
||||||
|
background_mode = 2
|
||||||
|
background_sky = SubResource( 1 )
|
BIN
src/icon.png
(Stored with Git LFS)
Normal file
BIN
src/icon.png
(Stored with Git LFS)
Normal file
Binary file not shown.
34
src/icon.png.import
Normal file
34
src/icon.png.import
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="StreamTexture"
|
||||||
|
path="res://.import/icon.png-487276ed1e3a0c39cad0279d744ee560.stex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://icon.png"
|
||||||
|
dest_files=[ "res://.import/icon.png-487276ed1e3a0c39cad0279d744ee560.stex" ]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
compress/mode=0
|
||||||
|
compress/lossy_quality=0.7
|
||||||
|
compress/hdr_mode=0
|
||||||
|
compress/bptc_ldr=0
|
||||||
|
compress/normal_map=0
|
||||||
|
flags/repeat=0
|
||||||
|
flags/filter=true
|
||||||
|
flags/mipmaps=false
|
||||||
|
flags/anisotropic=false
|
||||||
|
flags/srgb=2
|
||||||
|
process/fix_alpha_border=true
|
||||||
|
process/premult_alpha=false
|
||||||
|
process/HDR_as_SRGB=false
|
||||||
|
process/invert_color=false
|
||||||
|
stream=false
|
||||||
|
size_limit=0
|
||||||
|
detect_3d=true
|
||||||
|
svg/scale=1.0
|
37
src/project.godot
Normal file
37
src/project.godot
Normal file
@ -0,0 +1,37 @@
|
|||||||
|
; Engine configuration file.
|
||||||
|
; It's best edited using the editor UI and not directly,
|
||||||
|
; since the parameters that go here are not all obvious.
|
||||||
|
;
|
||||||
|
; Format:
|
||||||
|
; [section] ; section goes between []
|
||||||
|
; param=value ; assign values to parameters
|
||||||
|
|
||||||
|
config_version=4
|
||||||
|
|
||||||
|
_global_script_classes=[ ]
|
||||||
|
_global_script_class_icons={
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
[application]
|
||||||
|
|
||||||
|
config/name="Fishtank"
|
||||||
|
run/main_scene="res://World.tscn"
|
||||||
|
config/icon="res://icon.png"
|
||||||
|
|
||||||
|
[display]
|
||||||
|
|
||||||
|
window/size/width=80
|
||||||
|
window/size/height=64
|
||||||
|
window/size/resizable=false
|
||||||
|
window/size/fullscreen=true
|
||||||
|
window/size/test_width=1280
|
||||||
|
window/size/test_height=720
|
||||||
|
window/stretch/mode="2d"
|
||||||
|
|
||||||
|
[rendering]
|
||||||
|
|
||||||
|
quality/driver/driver_name="GLES2"
|
||||||
|
vram_compression/import_etc=true
|
||||||
|
vram_compression/import_etc2=false
|
||||||
|
environment/default_environment="res://default_env.tres"
|
@ -1,19 +1,29 @@
|
|||||||
# Blobs
|
# Blobs
|
||||||
|
|
||||||
- Abundant oozes will split into smaller pieces, which then go up to the exit, or down river.
|
- Abundant oozes will split into smaller pieces, which then go up to the exit, or down river.
|
||||||
- Death is final: the ooze leaves the environment. Other may enter later, from a river, or entrance.
|
- Death is final for that ooze: it leaves the environment. Other may enter later, from a river, or entrance.
|
||||||
|
|
||||||
## Numbers
|
## Numbers
|
||||||
|
|
||||||
- Metabolism 3
|
- Metabolism: 3
|
||||||
- Speed = `6- HP` (the weaker it becomes, the faster it runs).
|
- Strength: -2/6
|
||||||
|
- Dexterity: 0
|
||||||
|
- Speed: `6- HP`
|
||||||
|
* (the weaker it becomes, the faster it runs).
|
||||||
|
- Wits: -4
|
||||||
|
- Intelligence: -8
|
||||||
|
* (mindless)
|
||||||
|
|
||||||
### Special
|
### Special
|
||||||
|
|
||||||
Property Thief: this jelly steals the properties of everything it consumes.
|
**Property Thief:** this jelly steals the properties of everything it consumes.
|
||||||
It is acidic because it eats acidic moss.
|
|
||||||
If it ate glowing mushrooms, it would glow for a while.
|
- When eating acidic moss, it becomes acidic.
|
||||||
|
- When eating glowing mushrooms, it glows.
|
||||||
|
|
||||||
When it eats, it gains +1 HP, and puts one property in that 'HP slot'.
|
When it eats, it gains +1 HP, and puts one property in that 'HP slot'.
|
||||||
Once Damaged, it loses HP, and may lose a property if that HP slot had a property.
|
Once Damaged, it loses HP, and may lose a property if that HP slot had a property (first in, last out).
|
||||||
(first in, last out)
|
|
||||||
|
## Skills
|
||||||
|
|
||||||
|
Athletics 1
|
||||||
|
Loading…
Reference in New Issue
Block a user