diff --git a/docs/samenvatting part 3.md b/docs/samenvatting part 3.md new file mode 100644 index 0000000..d4193f1 --- /dev/null +++ b/docs/samenvatting part 3.md @@ -0,0 +1,157 @@ +# 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 + + +#### 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 + + + + + + + + + +