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 exceptionFullInventoryException
(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)
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ť.