Files
worms/docs/samenvatting part 3.md
2018-05-05 19:43:16 +02:00

159 lines
3.6 KiB
Markdown

# Worms-part3 #
## What's new
- projectiles
- worms zijn nu upgraded entities die programma's in een simpele domein-specifieke taal zijn geschreven
- program class/factory
specificatie
- worm: formeel en informeel
- food/projectile/team/helper: formeel
- execution of programs: niet
## Game world
- projectiles
- functies voor toevoegen/verwijderen toevoegen
- defensief
- checken of projectiel in world
- constant time
- mogen op impassable terrein
- mogen **NIET** langs impassable
- Ask world for all objects of given type T
## worms
- namen mogen nu ook underscores
## Food
- food kan vergiftigd worden door wizard _WTF???_
- Als food created altijd healthy
- spell van wizard kan eten vergiftigen/gezond maken
Als worm overlapt met 2 stukjes eten, random gekozen welk
- gezond: +10%
- vergiftigd: -20%
Eten kost 8 action points als niet genoeg -> niet eten
## 1.8 firing and projectiles
- initially rifle en bazooka
### fire() method
- random select rifle/bazooka
- create proper projectile add to game world
- loose action points afhankelijk van soort wapen
- nooit meer dan 30
- niet genoeg of niet in wereld -> niet vuren
- nominaal
- geen specificatie
#### shape
- spherical
- dichtheid: 7800 kg/m^3
- hitpoints bepalen impact op doelwit
- mogen gedeeltelijk of volledig op impassable
- **NIET** adjacent
- radius hangt van massa af
#### locatie
Locatie word afgeleid van worm
orientatie is gelijk aan worm
locatie is buiten de worm in de richting van orientatie zodat het naast de worm is
#### bewegen
Afgevuurd met een kracht F voor 0.5s
Fire method return alleen projectiel, moved alleen nadat de method jump opgeroepen wordt.
Projectiel beweegt totdat het een muur of worm raakt.
Projectielen mogen springen over kortere afstand dan hun radius tegengesteld tot worm
Als bij vertrek iets raakt, projectiel springt over 0.0m
#### hit
Als worm geraakt, dus gedeeltelijk overlapt, hitpoints afgetrokken van worm als meerdere raakt, bij
allemaal aftrekken.
Als projectiel impassable raakt, blijft op die plek.
Als worm vuurt en locatie overlapt met projectiel, de worm die vuurt zal geraakt worden door die projectiel
en projectiel wordt niet afgevuurd. method returned null.
Andere classes mogen NIET aangepast worden door projectiel als dat wel nodig is, eerst code herstructureren.
zie pagina 13
### rifle
projectiel massa 10g
kracht 1.5N
hit points: positief random even integer numbers <= 10
kost 10 action points
worm hit points - hit points projectiel
### bazooka
massa 300g
kracht 2.5 - 9.5N afh van action points worm
kracht = 2.5 + (action points) / 8
hit points: oneven random integer <= 7
worm hit points = hit points - round(projectiel * force)
kost 25 action points
## Teams
Worm toevoegen/verwijderen logaritmisch
alfabetische lijst lineair
## 1.10 Wizard
Kan 'spell' op object zetten
Word actief na command en cast 1 spell als het spel minstens 2 objecten heeft.
geen class
castSpell in world defensief
geen documentatie
modulair voor nieuwe objecten
Kies random 2 objecten:
- worm en worm zelfde team
- hit points = floor(som / 2)
- worm en worm niet zelfde team
- kleine worm +5 hit points van grotere worm
- Als grotere worm < 5 hit points dan alles naar klein worm
- Worm en food
- worm eet food maar food niet destroyed
- worm en projectiel
- worm hit door projectiel
- projectiel krijgt nieuw random hit points
- food en food
- verander van staat healthy <-> poisened
- food en projectiel
- beide vernietigd
- projectiel en projectiel
- hit points increased by 2 zonder over maximum te gaan
## 1.11 Programs