InventoryLight – Waluty

Witam w kolejnym wpisie poświęconym mojemu projektowi na konkurs dajsiepoznac.pl, czyli mojej wtyczce ułatwiającej tworzenie ekwipunków do gier w Unity3d.

W poprzedniej części zakończyłem serię poświęconą wytwarzaniu przedmiotów, tym razem chce powoli zacząć handel i mam nadzieję, że uda mi się go zrobić zanim zakończy się termin konkursu.

Jeśli ma być handel, to musi istnieć jakaś waluta konieczna do określenia wartości danego przedmiotu. Zastanawiam się, czy warto modyfikować klasę Item w taki sposób by można było w bazie edytować wartość tej waluty i uważam, że skoro w tylu grach jest podobne rozwiązanie to koniecznym będzie zrobić to samo.

Utworzyłem prostą klasę o nazwie Currency (z języka angielskiego: „waluta”), która przechowuje swoją nazwę określaną później w oknie edytora, oraz posiada listę obiektów klasy o nazwie CurrencyDependency (właściwość waluty). Nie wiedziałem jaka nazwa pasowałaby bardziej, ale pojedynczy obiekt tej klasy będzie przechowywał 4 wartości:

string FirstCurrency – nazwa pierwszej waluty.

string SecondCurrency – nazwa drugiej waluty.

int FirstCurrencyCount – liczba waluty, której nazwa jest w zmiennej FirstCurrency.

int SecondCurrencyCount – liczba waluty, której nazwa jest w zmiennej SecondCurrency.

[Serializable]
public class Currency
{
public string Name;
public List<CurrencyDependency> Dependencies;
}

[Serializable]
public class CurrencyDependency
{
public string FirstCurrency;
public string SecondCurrency;

public int FirstCurrencyCount;
public int SecondCurrencyCount;
}

Myślę, że już wiadomo co dokładnie ta klasa będzie robić. Przechowuje ona po prostu odpowiednie wartości z dwóch walut, i przyrównuje je do siebie.

Przykładowo przywołując 3 podstawowe waluty z gry World of Warcraft – miedziane monety, srebrne monety i złote monety.

100 miedzianych monet mają wartość 1 srebrnej monety, a 100 srebrnych monet ma wartość jednej złotej monety.

To znaczy, że gdybym w Edytorze stworzył te 3 waluty to waluta o nazwie „Silver Coin” miałaby uwzględnioną liczbę odpowiadającą 100 miedzianym monetom i liczbę odpowiadającą 1 złotej monecie. Jest to koniecznie przy późniejszej wymianie tych monet, albo jak właśnie w Warcrafcie, przy konwertowaniu nadliczbowego srebra i miedzi w walute o wyższej wartości, do czego później będzie służył jakiś skrypt monitorujący zdarzenia związane z pieniędzmi, bądź wzywany za każdym razem gdy zostanie podjęta czynność płatnicza.

W tym wpisie to by było na tyle, jeszcze w tym tygodniu postaram się rozwinąć pod kątem walut mój edytor.

 

Reklamy

Skomentuj

Wprowadź swoje dane lub kliknij jedną z tych ikon, aby się zalogować:

Logo WordPress.com

Komentujesz korzystając z konta WordPress.com. Wyloguj / Zmień )

Zdjęcie z Twittera

Komentujesz korzystając z konta Twitter. Wyloguj / Zmień )

Zdjęcie na Facebooku

Komentujesz korzystając z konta Facebook. Wyloguj / Zmień )

Zdjęcie na Google+

Komentujesz korzystając z konta Google+. Wyloguj / Zmień )

Connecting to %s