Vojtěch Gadurek 2023
Toto je prototyp celotáborové hry na těžení ropy. Projekt je rozdělen na dvě části první, tato se věnuje implementaci uživatelského rozhraní a druhá [https://github.com/vojtechgadurek/CorpGameLibrary] je knihovnou. Následujicí rozdělení jsem zvolil, aby se nemíchala logika hry a uživatelské rozhraní. Hra je myšlena jako táborová, tedy předpokládá malý počet hráčů, kteří nemají v úmyslu jí rozbít, dále hesla jsou ukládána v plaintextu, uživatelé by měli být o tomto informováni. (PASSWORDS ARE STORED IN PLAINTEXT)
Poskytuje umožnuje komponentám se přihlásit k odběru změn a případně provést nějakou akci při jejich publikaci. Dále umožnuje komponentám publikovat změnu.
@inject EventAgregator<Foo?> EventAgregator
@code{
//Subcribes to the event agregator
protected override void OnInitialized()
{
EventAgregator.Subscribe(this,(Foo? foo) => { StateHasChanged(); });
}
//Publishes eventual change, if this method is called
void Publish(Foo foo){EventAgregator.Publish(foo)
}
Udržuje stav přihlášení hráče, ukládá posledního přidaného hráče do prohlížeče skrze protected storage. V případě odhlášení dané uživatelské jméno smaže.
Reprezentuje data uložená v prohlížeči nyní jenom uživatelské jméno.
Je to více méně, EventAgregator, který umožňuje propagovat změnu přes všechna sessions. Například Spotmarket toho využívý pro propagovaní změny při přidání nové SpotMarketTradeOffer.
- Rád doplnil nějaký logging systém, případně upravil navratové hodnoty, tak aby šlo lépe rozpoznat, proč daná funkce nefungovala z binárního ano/ne.
- V budoucnu bych rád upravil zamykání surovin/blokovaní kapacity, tak aby více omezovalo, kdo ji může provést - čátečně hotovo
- Dále bych rád opustil třidu GameController, která velmi omezuje výhody, které plynou z Blazoru a services, (a je otázkou zda vyhody, které přináší za to stojí) a vychází z návrhu, který více odstinoval webovou část od samotné hry
- Dále bych rád přepsal Resources, tak aby byly více staticky kontrolovatelné při kompilaci - done :D
Do hry je prvně potřeba se zaregistrovat a zvolit unikátní přezdívku a heslo. Pak je možné si půjčit více pěnez Dále je možné v záložce spotmarket vidět nabízené obchody V záložce oilfields je možné si koupit nějaké nové ropné pole a na něj umístit těžbní jednotku (rig)