Update README
This commit is contained in:
48
README.md
48
README.md
@@ -1,16 +1,14 @@
|
|||||||
|
# Clean Code Demo (C# Console)
|
||||||
# TextRPG Demo (C# Console)
|
|
||||||
|
|
||||||
En liten, självständig C#‑konsolapplikation som demonstrerar ett turordningsbaserat stridssystem mellan en **Player** och olika **Enemy**‑typer. Fokus ligger på enkla domänobjekt, gränssnitt och en tjänst som orkestrerar striden.
|
En liten, självständig C#‑konsolapplikation som demonstrerar ett turordningsbaserat stridssystem mellan en **Player** och olika **Enemy**‑typer. Fokus ligger på enkla domänobjekt, gränssnitt och en tjänst som orkestrerar striden.
|
||||||
|
|
||||||
> **Byt gärna rubriken** till ditt projektnamn.
|
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## Innehåll
|
## Innehåll
|
||||||
|
|
||||||
- Strider mellan spelare och fiender (med boss‑modifierad skada)
|
- Strider mellan spelare och fiender (med boss‑modifierad skada)
|
||||||
- Enkelt loot‑system (t.ex. *gold*, *dragon_scale*)
|
- Enkelt loot‑system (t.ex. _gold_, _dragon_scale_)
|
||||||
- Inventarie som påverkar skada (*sword*) och helning (*potion*)
|
- Inventarie som påverkar skada (_sword_) och helning (_potion_)
|
||||||
- Klara, separata ansvarsområden via gränssnitt (`IAttackable`, `IDescribable`)
|
- Klara, separata ansvarsområden via gränssnitt (`IAttackable`, `IDescribable`)
|
||||||
|
|
||||||
---
|
---
|
||||||
@@ -76,6 +74,7 @@ GameRunner --> BattleService
|
|||||||
```
|
```
|
||||||
|
|
||||||
**Kort om filerna**
|
**Kort om filerna**
|
||||||
|
|
||||||
- `GameRunner.cs` – Programstart; sätter upp spelare/fiender och kör exempelstrider.
|
- `GameRunner.cs` – Programstart; sätter upp spelare/fiender och kör exempelstrider.
|
||||||
- `BattleService.cs` – Metoder för spelar‑ och fiendeattacker, inklusive boss‑modifiering av skada.
|
- `BattleService.cs` – Metoder för spelar‑ och fiendeattacker, inklusive boss‑modifiering av skada.
|
||||||
- `Player.cs` – Spelarens HP, bas‑skada, inventarie (t.ex. `potion`, `sword`), helning och damage‑beräkning.
|
- `Player.cs` – Spelarens HP, bas‑skada, inventarie (t.ex. `potion`, `sword`), helning och damage‑beräkning.
|
||||||
@@ -89,9 +88,11 @@ GameRunner --> BattleService
|
|||||||
## Kom igång
|
## Kom igång
|
||||||
|
|
||||||
### Förutsättningar
|
### Förutsättningar
|
||||||
|
|
||||||
- **.NET SDK 6.0+** (fungerar fint även på nyare versioner).
|
- **.NET SDK 6.0+** (fungerar fint även på nyare versioner).
|
||||||
|
|
||||||
### Klona och kör
|
### Klona och kör
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
# Klona repo
|
# Klona repo
|
||||||
git clone <din-repo-url>
|
git clone <din-repo-url>
|
||||||
@@ -102,22 +103,12 @@ dotnet build
|
|||||||
dotnet run
|
dotnet run
|
||||||
```
|
```
|
||||||
|
|
||||||
> **Saknas .csproj?** Skapa ett nytt konsolprojekt och lägg in filerna:
|
|
||||||
```bash
|
|
||||||
# Skapa nytt projekt
|
|
||||||
mkdir TextRpgDemo && cd TextRpgDemo
|
|
||||||
dotnet new console -n TextRpgDemo
|
|
||||||
# Flytta in källfilerna i projektmappen (TextRpgDemo/)
|
|
||||||
# … och kör sedan
|
|
||||||
cd TextRpgDemo
|
|
||||||
dotnet run
|
|
||||||
```
|
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## Exempel: flöde och utdata
|
## Exempel: flöde och utdata
|
||||||
|
|
||||||
Körningen i `GameRunner` gör ungefär detta:
|
Körningen i `GameRunner` gör ungefär detta:
|
||||||
|
|
||||||
1. Skapa `Player("Hero", 100, 15)` och lägg till `potion` och `sword` i inventariet.
|
1. Skapa `Player("Hero", 100, 15)` och lägg till `potion` och `sword` i inventariet.
|
||||||
2. Skapa `Enemy("Goblin", 40, 8, Normal)` och `Enemy("Dragon", 120, 25, Boss)`.
|
2. Skapa `Enemy("Goblin", 40, 8, Normal)` och `Enemy("Dragon", 120, 25, Boss)`.
|
||||||
3. Spelaren och goblinen slåss tills goblinen dör och droppar `gold`.
|
3. Spelaren och goblinen slåss tills goblinen dör och droppar `gold`.
|
||||||
@@ -166,26 +157,3 @@ HP: 48
|
|||||||
Base DMG: 15
|
Base DMG: 15
|
||||||
Inventory: sword, gold
|
Inventory: sword, gold
|
||||||
```
|
```
|
||||||
|
|
||||||
> Notera stavningen `attackts` i loggraden – det speglar koden och kan enkelt rättas i `BattleService` om du vill.
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## Designval och utbyggnad
|
|
||||||
- **Enkla gränssnitt** gör det lätt att lägga till fler typer av entiteter som kan delta i strid.
|
|
||||||
- **Inventarie‑påverkan** visar hur utrustning och konsumtionsobjekt kan förändra beteende (skada/helning).
|
|
||||||
- **Tjänstlager (`BattleService`)** samlar stridsreglerna och gör dem testbara.
|
|
||||||
|
|
||||||
**Möjliga förbättringar**
|
|
||||||
- Enhetstester för `BattleService`, `Player` och `Enemy`.
|
|
||||||
- Bättre utskrift/loggning och lokalisering.
|
|
||||||
- Gränser för max‑HP och skydd mot negativa värden.
|
|
||||||
- Mer avancerat loot‑ och status‑effektsystem.
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## Licens
|
|
||||||
Ange licens här (t.ex. MIT). Lägg gärna till en `LICENSE`‑fil i repo.
|
|
||||||
|
|
||||||
## Kontakt
|
|
||||||
Ägare/underhållare: *ersätt med ditt namn/GitHub‑användare*
|
|
||||||
|
|||||||
Reference in New Issue
Block a user