/*
 * /d/Genesis/gems/gem.h
 */

#ifndef GEM_DEFINITIONS
#define GEM_DEFINITIONS

/*
 * GEM_DIR - Glowny katalog z plikami odnoszacymi sie do kamieni szlachetnych
 */
#define GEM_DIR  ("/d/Standard/gems/")

/*
 * GEM_OBJ_DIR - Katalog z poszczegolnymi kamieniami szlachetnymi
 */
#define GEM_OBJ_DIR (GEM_DIR + "obj/")

/*
 * GEM_FILE - Standart kamieni szlachetnych
 */
#define GEM_FILE (GEM_DIR + "gem")

/*
 * GEM_MANAGER - Plik obslugujacy kamienie (cos innego niz standart)
 */
#define GEM_MANAGER (GEM_DIR + "gem_manager")

/*
 * GEM_SHOP_FILE - Standart sklepu z kamieniami
 */
#define GEM_SHOP_FILE (GEM_DIR + "gem_shop")

/*
 * RANDOM_GEM - Wybiera losowy kamien ze standartu. Jesli rzadkosc >= 0,
 *              kamienie z rzadkoscia wieksza niz ta wartosc beda wykluczone.
 *              To makro zwraca sklonowanie tego kamienia.
 */
#define RANDOM_GEM(rzadkosc) (object)GEM_MANAGER->random_gem(rzadkosc);

/*
 * RANDOM_GEM_BY_RARITY - Wybiera losowy kamien i wrzuca jego rzadkosc
 *                        do zmiennej: rzadsze kamienie i te kamienie
 *                        maja mniejsza szanse na wybranie niz bardziej
 *                        pospolite. Jesli rzadkosc >= 0, kamienie z
 *                        rzadkoscia wieksza od tej wartosci beda wykluczone.
 *                        To makro zwraca sklonowanie kamienia.
 */
#define RANDOM_GEM_BY_RARITY(rzadkosc) \
    (object)GEM_MANAGER->random_gem_by_rarity(rzadkosc);

/*
 * Wartosci rzadkosci kamieni szlachetnych
 */
#define NIESPOTYKANY            1
#define PRAWIE_NIESPOTYKANY     2
#define EXTREMALNIE_RZADKI      4
#define BARDZO_RZADKI           8
#define RZADKI                 16
#define BARDZO_NIEPOPULARNY    32
#define NIEPOPULARNY           64
#define POPULARNY             128
#define BARDZO_POPULARNY      256
#define EXTREMALNIE_POPULARNY 512

#endif
