159 lines
3.6 KiB
Markdown
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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|