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

3.6 KiB

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