Compare commits

...

10 Commits

Author SHA1 Message Date
fram3d 6ddb1a96be starting godot project 2024-06-09 17:02:10 +02:00
andonome b576587640 note how to use git lfs 2024-06-09 16:44:10 +02:00
saky 568f1ddeeb added less 2024-06-09 16:11:07 +02:00
andonome fa18e9d0d0 make show of all markdown files 2024-06-09 15:57:49 +02:00
andonome 63e1353e5f adjust files to allow more auto-generation 2024-06-09 15:28:45 +02:00
andonome 53772cb717 note godot problems with non-vulcan cards 2024-06-09 15:26:26 +02:00
andonome d399e2df9d outline how minds work 2024-06-05 23:58:15 +02:00
andonome 12c9936e19 outline stats 2024-06-05 23:56:45 +02:00
andonome 065186538a add make creature command 2024-06-05 01:21:02 +02:00
andonome bba6c6effa clarify ooze (he's still opaque) 2024-06-05 01:20:36 +02:00
51 changed files with 737 additions and 11 deletions
+3
View 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
+30 -2
View File
@@ -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
View 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
View 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
View 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
View 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? ]
+22 -1
View File
@@ -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"
```
Executable
+21
View 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
View 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"
@@ -0,0 +1,3 @@
source_md5="d452341a0992cf84787acc1df8149fa7"
dest_md5="7a8bde47de61359d339cd9ab39972258"
@@ -0,0 +1,3 @@
source_md5="5718adcd74e730a5786a66f5303d55d0"
dest_md5="bde353017c7147330bebe01b8e0b9081"
@@ -0,0 +1,3 @@
source_md5="47313fa4c47a9963fddd764e1ec6e4a8"
dest_md5="2ded9e7f9060e2b530aab678b135fc5b"
@@ -0,0 +1,3 @@
source_md5="11aa5994678b65327c09e0cf048cc960"
dest_md5="5a2ebb8d76a3fd626f8148b380c8452a"
@@ -0,0 +1,3 @@
source_md5="11aa5994678b65327c09e0cf048cc960"
dest_md5="5a2ebb8d76a3fd626f8148b380c8452a"
@@ -0,0 +1,3 @@
source_md5="5c49c03355dba6f69dd7db043dcf285e"
dest_md5="127a63ab2cee1694af5226e606fbefde"
@@ -0,0 +1,3 @@
source_md5="5c49c03355dba6f69dd7db043dcf285e"
dest_md5="127a63ab2cee1694af5226e606fbefde"
@@ -0,0 +1,3 @@
source_md5="ab47a8fed0ae7444d44586235a4d5fee"
dest_md5="9f637ed36157171de2c9855859ffb703"
@@ -0,0 +1,3 @@
source_md5="ab47a8fed0ae7444d44586235a4d5fee"
dest_md5="5ac92b9ef3914f94598597d4ab0792a0"
@@ -0,0 +1,3 @@
source_md5="2ccb885e506f1c1dc85ae533ed064e28"
dest_md5="bc6f3037a9e45f5a87a3ff64eff32a45"
+12
View 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
View 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
View File
Binary file not shown.
+34
View 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
View File
Binary file not shown.
+34
View 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
View 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
View File
Binary file not shown.
+34
View 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
View File
Binary file not shown.
+34
View 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
View File
Binary file not shown.
+34
View 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
View File
Binary file not shown.
+34
View 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
View 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
View 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
View File
Binary file not shown.
+34
View 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
View 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"
+18 -8
View File
@@ -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