# _⚔️_ OO - Introduktion till Objektorientering

-

author: krm created: 2021-07-22 status: alpha *

En introduktion till objektorientering genom att skapa innehåll till ett
rollspel. Du ska skapa en karaktär och eventuellt även en typ som en karaktär
kan ha i spelet mimer-adventures.

# Innehåll

Läs igenom planeringen för detta moment. Läs också igenom källkoden koden för
projektet. Tänk på att “typ” i själva spelet är något helt annat än typer som vi
diskuterar i programmeringskoden. En liten olycklig namngivning. Det är viktigt
att du tittar på kod som redan är skriven för att du ska förstå vad hur du ska
skriva. Gå igenom länkarna nedan:

- 📂 [Git arkiv med programmet](https://gitlab.com/krmit/mimer-adventures-2023)
- 📄
  [Kompletterande beskrivning av datorspelet](https://docs.google.com/document/d/1qWVlmTZ1sqLRHlqhFNbRJItL_SJnzho4D90Rt1xPSJA/edit?usp=sharing)
- 📄 [Utveckla ett projekt](../t/start-development.html)
- 📄 [Testa och köra mimer-adventures](../t/testing-mimer-adventures.sv.html)

# Tänk på

- Uppgiften är inte svårt, men kan uppfattas som komplex om du inte följer
  instruktionerna.
- Följ instruktionerna noggrant, i första hand genom att lyssna på lektionerna
  och i andra hand genom att läsa beskrivningar och guider.
- Du behöver klara av alla punkter på en nivå för att bli godkänd på den nivån
  och då kunna bli godkänd på nästa.
- Det är inte säkert att det är bästa att göra alla punkter eller nivåer i den
  ordning som visas nedan.

# Genomförande

## Nivå E

- Bestäm dig för vilken typ av varelse du vill skapa. Skriv det i en kort
  beskrivning.
- Se till att allt som karaktären säger stämmer överens med beskrivningen.
- Se till att varelsen har åtminstone en unik attack.
- Glöm inte att uppdatera din _selection_ metod och filen _world.ts_ så din
  varelse blir en del av spelet.
- Testa din varelse med _meg calculation_, så den fungerar att spela med.
- Om du vill skriv en _copyright.md_ fil där du skriver ditt namn och förklara
  att du vill att din kod ska vara en del av projektet i framtiden. OBS! Det är
  ingen garanti att det kommer vara det.
- Lägg alla filer du har gjort ändringar på, inklusive dokumentations filerna i
  en mapp. Inga andra filer ska finnas där.
- Komprimera hela ditt projekt till en zip fil.
- Lämna in på inlämningslänken.

## Nivå C

- Beskriv en typ för en humanoid varelse.
- Implementera denna typ i enlighet med din beskrivning.
- Testa din varelse med _meg calculation_, så den är balanserad utifrån sin
  kostnad.
- Testa din varelse med din typ, så den är balanserad utifrån sin kostnad.
- All din kod ska vara väl strukturerad.
- Skriv en “sugestion.md” fil med förslag på förbättringar av spelet så att din
  figur fungerar som det är tänkt.

## Nivå A

- Gör en undergrupp till “humanoid”, se till att åtminstone en varelse ärver
  ifrån denna undergrupp. Se “dwarf” som ett exempel.
- En av dina varelser och/eller type ska ha en unik funktionalitet som inte
  finns i någon varelse som redan är implementerade.
- Din varelser och typ ska utgöra en fungerande helhet.
- Koden ska vara av god kvalité och lagom kommenterad.
