Skip to content

GitLab

  • Projects
  • Groups
  • Snippets
  • Help
    • Loading...
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in
P PVJCs20
  • Project overview
    • Project overview
    • Details
    • Activity
    • Releases
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 0
    • Issues 0
    • List
    • Boards
    • Labels
    • Service Desk
    • Milestones
  • Merge requests 0
    • Merge requests 0
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Operations
    • Operations
    • Incidents
    • Environments
  • Packages & Registries
    • Packages & Registries
    • Container Registry
  • Analytics
    • Analytics
    • CI/CD
    • Repository
    • Value Stream
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Members
    • Members
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • Ing. Lukáš Hruška
  • PVJCs20
  • Wiki
  • cv9

cv9 · Changes

Page history
Create cv9 authored Nov 16, 2020 by Ing. Lukáš Hruška's avatar Ing. Lukáš Hruška
Hide whitespace changes
Inline Side-by-side
Showing with 39 additions and 0 deletions
+39 -0
  • cv9.md cv9.md +39 -0
  • No files found.
cv9.md 0 → 100644
View page @ ffc1eb7b
# Cvičenie 9
_poznámka k cvičeniu 8: ak priamo v `SpellDirector` voláte `SpellDataProvider.GetInstance()` zmeňte implementáciu tak, aby referenciu dostal SpellDirector priamo v konštruktore. Tiež tam pošlite referenciu na wizarda.
## 9.1 [Minor Healing Potion]
Vytvorte si namespace `Actors.Items` a v ňom triedu `HealingPotion`, ktorá implementuje rozhrania `IItem` a `IUsable`. Zabezpečte, aby sa elixír dal použiť iba raz a doplnil pužívateľovi X (číslo si zvoľte) života (nezabudnite, že fľaška sa tým pádom vyprázdni, takže nezabudnite zmeniť animáciu pre prípad, že sa nezmaže z inventára).
## 9.2 [Small Red Pouch]
Vytvorte si triedu `Backpack` (implementuje `IInventory`). Bude sa jednať o našu vlastnú kolekciu. Prepokladajte nasledovné:
- `Backpack` bude mať v sebe uchované veci. Jeho veľkosť je konečná, dostane ju v konštruktore. Ak by bola pridaná vec do plného batohu, vyvolajte exception `FullInventoryException` (je nutné si ju vytvoriť) - pridanie do plného invenára __nesmie__ zhodiť program!
- veci majte uložené v poli (array)
- vždy vieme pristupovať len k prvému (alebo poslednému, vyberte si) prvku a nová vec je pridaná na koniec.
- je dostupný iterátor (`IEnumerator<Item>`)
- `ShiftRight/Left` posunie prvky. Nezabudnite preniesť prvok medzi koncom a začiatkom
_na implementáciu iterátora použite_ [`yield return` (MSDN documentation)](https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/keywords/yield)
__Pozor__ pole má v sebe stále X prvkov, aj keď sú null, `yield return` by ich vrátil, zabezpečte, aby sa cyklus ukončil, keď sa nájde null.
na zobrazenie hráčovho inventára použite `World.ShowInventory(IInventory)`
## 9.3 Finishing touches
Pridajte si chýbajúce animácie.
`Skeleton` a `Player` by mali byť schopní útočiť, pridajte im túto možnosť.
Schovajte konzolu:
- Windows: `Project -> Properties -> Application -> Output type: Windows Application`
- Linux / Mac: v .csproj súbore si upravte: `<OutputType>Exe</OutputType>`
Logout.
---
Ak by ste chceli nejakú funkcionalitu doplniť do engine, dajte mi vedieť.
Clone repository
  • assignment2
  • cv2
  • cv3
  • cv4
  • cv5
  • cv6
  • cv7
  • cv8
  • cv9
  • exams
    • 1.md
    • 2.md
    • 3.md
    • 3b.md
    • 4.md
    • 5.md
View All Pages