summaryrefslogtreecommitdiff
path: root/design.md
blob: fad240fdab0fe998ef029d2f4b0c75db03a158b1 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
# terrorhedron, but
- conway polyhedral notation leading to different enemy/turret design and balance
- editable voxel map
- deterministic multiplayer

## enemies are shapes:
- [x] generate a table with all shapes generated from T (tetrahedron)
with at most 5 operators 
between s (snub), k (kis), a (ambo), d (dual)
in canonical form.
provide the vertex number, time needed 
to see if it's viable to generate them on the fly.

-> it's not viable to generate on the fly any shape using the topological operators.
they act only on the topology, which leaves some degrees of freedom.

- [x] evaluate pregenerated options
    - use the 5 platonic, 13 archimedean and their dual the 13 catalans -> 31 shapes.
    - precalc all variations of "skad" up to depth n=3: 84, n=4: 340, n=5: 1364.

-> i'll stick to the 31 for now

## reference of the 31=(13+13+5) shapes.
T, kT, dkT, 
aT, kaT, dkaT, aaT, daaT, kdaaT, dkdaaT, aaaT, daaaT, daT, kdaT, dkdaT, saT, dsaT
sT, ksT, dksT, asT, dasT, kdasT, dkdasT, aasT, daasT, dsT, kdsT, dkdsT, ssT, dssT

### properties of all available shapes up to depth n
contain duplicates, dddT = ddT = dT = T or saT = sdaT
contain canonicalization artifacts

- [ ] shape shader
    - used to indicate both the topology and a variant
    - used only to indicate the topology

shader variants: striped, dotted, translucient, negative, burning, wireframe

## enemies
### operator effects

they stack multiplicativly.

- T: no effect
- k: +20% speed
- a: +3 life, 2x damage
- d: -2 life, duplicates on death (only when losing the d)
- s: multiplies life by 3, speed -20%