Skip to content

GitLab

  • Projects
  • Groups
  • Snippets
  • Help
    • Loading...
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in
P PVJCs2021
  • 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
    • Package Registry
    • 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
  • PVJCs2021
  • Wiki
  • cv10

cv10 · Changes

Page history
Create cv10 authored Nov 21, 2021 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
  • cv10.md cv10.md +39 -0
  • No files found.
cv10.md 0 → 100644
View page @ 73a88c19
# 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á rozširuje `AbstractActor` a 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ť.
\ No newline at end of file
Clone repository
  • assignment 1
  • assignment 2
  • cv10
  • cv2
  • cv3
  • cv4
  • cv5
  • cv7
  • cv8
  • cv9
  • exam 0
  • exam 1
  • exam 2
  • exam 3
  • exam 4
View All Pages