Update README

This commit is contained in:
2026-03-08 12:06:47 +01:00
parent d5fcc47bce
commit 4be4d1cbb6

View File

@@ -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 bossmodifierad skada) - Strider mellan spelare och fiender (med bossmodifierad skada)
- Enkelt lootsystem (t.ex. *gold*, *dragon_scale*) - Enkelt lootsystem (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 bossmodifiering av skada. - `BattleService.cs` Metoder för spelar och fiendeattacker, inklusive bossmodifiering av skada.
- `Player.cs` Spelarens HP, basskada, inventarie (t.ex. `potion`, `sword`), helning och damageberäkning. - `Player.cs` Spelarens HP, basskada, inventarie (t.ex. `potion`, `sword`), helning och damageberä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.
- **Inventariepå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 maxHP och skydd mot negativa värden.
- Mer avancerat loot och statuseffektsystem.
---
## 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/GitHubanvändare*