Zdravím,
po delší době sem si chtěl trošku oživit C# tak jsem si vymyslel menší projekt (základní systém tahového rpg), všechno se zatím vyvyjí kladně, ale až na jednu věc. Tou jsou vrstvy (layers) na postavě (hlava, hrud, ruce, nohy). Jako první mě napadlo to udělat jednoduše, normální pole/list objektu (IDLayeru, Item) s tím, že každá část je předem definovaná. Tam jsem problém ještě neviděl, fungovalo to jak mělo až do chvíle, kdy jsem chtěl udělat Item, který musel mít i předem definovaný na jaký layer jde nasadit (což u hlavy, těla a nohou nevadí), ale problém nastal tehdy, když to měla být zbraň, která se dá nasadit do rukou. Jelikož jsem musel při vytváření definovat kam ten item pujde nasadit tak jsem měl navýběr pravá nebo levá ruka (napevno) a nemohl si člověk vybírat do jaké ruky to dá.
Tak jsem to předělal (do aktuální podoby), že Layers je objekt který drží objekty Torso, Head, Legs a Hands (Hands je rozšířen o Hand(Left/Right) a Hand má v sobě objekty Ring, Bracelet, Hand).
Což ve výsledku funguje přesně jak potřebuju, ale to nastavování a práci s těmi objekty mě příjde strašně krkolomná až otřesná. Přes switch/case rozlišuju podle LayerTypu jaký objekt mám naplnit/přepsat/vymazat, což se mi zdá nepraktické, když do rukou můžu nasadit typ Weapon či Armory (štít) a další rozšíření o šperky a další věci co by mohli být na layeru v rukách).
Tím bych se rád zeptat jaké zkušenosti máte Vy, jak vyřešit tento problém, či jestli neuchyluju náhodou špatným směrem.
PS. Kdyby náhodou byl zájem vidět aktuální kod, dodatečně dodám.
Děkuji za pomoc :)