added shop rerolling and edition pricing for jokers
This commit is contained in:
@@ -17,6 +17,8 @@
|
|||||||
#define POLY_EDITION 3
|
#define POLY_EDITION 3
|
||||||
#define NEGATIVE_EDITION 4
|
#define NEGATIVE_EDITION 4
|
||||||
|
|
||||||
|
#define MAX_EDITIONS 5
|
||||||
|
|
||||||
#define COMMON_JOKER 0
|
#define COMMON_JOKER 0
|
||||||
#define UNCOMMON_JOKER 1
|
#define UNCOMMON_JOKER 1
|
||||||
#define RARE_JOKER 2
|
#define RARE_JOKER 2
|
||||||
|
|||||||
+19
-3
@@ -27,7 +27,7 @@ static uint timer = 0; // This might already exist in libtonc but idk so i'm jus
|
|||||||
static int game_speed = 1;
|
static int game_speed = 1;
|
||||||
static int background = 0;
|
static int background = 0;
|
||||||
|
|
||||||
static enum GameState game_state = GAME_BLIND_SELECT; // The current game state, this is used to determine what the game is doing at any given time
|
static enum GameState game_state = GAME_SHOP; // The current game state, this is used to determine what the game is doing at any given time
|
||||||
static enum HandState hand_state = HAND_DRAW;
|
static enum HandState hand_state = HAND_DRAW;
|
||||||
static enum PlayState play_state = PLAY_PLAYING;
|
static enum PlayState play_state = PLAY_PLAYING;
|
||||||
|
|
||||||
@@ -50,7 +50,7 @@ static int discards = 0;
|
|||||||
|
|
||||||
static int round = 0;
|
static int round = 0;
|
||||||
static int ante = 1;
|
static int ante = 1;
|
||||||
static int money = 4;
|
static int money = 10;
|
||||||
static int score = 0;
|
static int score = 0;
|
||||||
static int temp_score = 0; // This is the score that shows in the same spot as the hand type.
|
static int temp_score = 0; // This is the score that shows in the same spot as the hand type.
|
||||||
static FIXED lerped_score = 0;
|
static FIXED lerped_score = 0;
|
||||||
@@ -198,6 +198,7 @@ static const Rect ROUND_END_BLIND_REWARD_RECT = { 168, 96, UNDEFINED, UNDEF
|
|||||||
static const Rect ROUND_END_NUM_HANDS_RECT = {88, 116, UNDEFINED, UNDEFINED };
|
static const Rect ROUND_END_NUM_HANDS_RECT = {88, 116, UNDEFINED, UNDEFINED };
|
||||||
static const Rect HAND_REWARD_RECT = {168, UNDEFINED, UNDEFINED, UNDEFINED };
|
static const Rect HAND_REWARD_RECT = {168, UNDEFINED, UNDEFINED, UNDEFINED };
|
||||||
static const Rect CASHOUT_RECT = {88, 72, UNDEFINED, UNDEFINED };
|
static const Rect CASHOUT_RECT = {88, 72, UNDEFINED, UNDEFINED };
|
||||||
|
static const Rect SHOP_REROLL_RECT = {88, 96, UNDEFINED, UNDEFINED };
|
||||||
|
|
||||||
//TODO: Properly define and use
|
//TODO: Properly define and use
|
||||||
#define MENU_POP_OUT_ANIM_FRAMES 20
|
#define MENU_POP_OUT_ANIM_FRAMES 20
|
||||||
@@ -2082,6 +2083,9 @@ void game_shop()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const int reroll_base_cost = 5; // Base cost for rerolling the shop items
|
||||||
|
static int reroll_cost = reroll_base_cost;
|
||||||
|
|
||||||
// these are for controlling the shop menu
|
// these are for controlling the shop menu
|
||||||
static bool top_row = true;
|
static bool top_row = true;
|
||||||
static ushort selection_x = 0;
|
static ushort selection_x = 0;
|
||||||
@@ -2151,6 +2155,11 @@ void game_shop()
|
|||||||
}
|
}
|
||||||
case 1: // Shop menu input and selection
|
case 1: // Shop menu input and selection
|
||||||
{
|
{
|
||||||
|
if (timer == 1)
|
||||||
|
{
|
||||||
|
tte_printf("#{P:%d,%d; cx:0xF000}$%d", SHOP_REROLL_RECT.left, SHOP_REROLL_RECT.top, reroll_cost);
|
||||||
|
}
|
||||||
|
|
||||||
// Shop input logic
|
// Shop input logic
|
||||||
if (key_hit(KEY_UP))
|
if (key_hit(KEY_UP))
|
||||||
{
|
{
|
||||||
@@ -2216,9 +2225,15 @@ void game_shop()
|
|||||||
{
|
{
|
||||||
memset16(&pal_bg_mem[7], 0xFFFF, 1);
|
memset16(&pal_bg_mem[7], 0xFFFF, 1);
|
||||||
|
|
||||||
if (key_hit(KEY_A))
|
if (key_hit(KEY_A) && money >= reroll_cost)
|
||||||
{
|
{
|
||||||
|
money -= reroll_cost;
|
||||||
|
set_money(money); // Update the money display
|
||||||
|
|
||||||
game_shop_create_items(shop_jokers, false);
|
game_shop_create_items(shop_jokers, false);
|
||||||
|
|
||||||
|
reroll_cost++;
|
||||||
|
tte_printf("#{P:%d,%d; cx:0xF000}$%d", SHOP_REROLL_RECT.left, SHOP_REROLL_RECT.top, reroll_cost);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -2301,6 +2316,7 @@ void game_shop()
|
|||||||
}
|
}
|
||||||
default:
|
default:
|
||||||
state = 0; // Reset the state
|
state = 0; // Reset the state
|
||||||
|
reroll_cost = reroll_base_cost;
|
||||||
|
|
||||||
selection_x = 0; // Reset the selection
|
selection_x = 0; // Reset the selection
|
||||||
top_row = true; // Reset the top row selection
|
top_row = true; // Reset the top row selection
|
||||||
|
|||||||
+10
-1
@@ -14,6 +14,15 @@ const static u8 joker_data_lut[MAX_JOKERS][2] = // Rarity, Value
|
|||||||
{COMMON_JOKER, 5}, // Greedy Joker
|
{COMMON_JOKER, 5}, // Greedy Joker
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const static u8 edition_price_lut[MAX_EDITIONS] =
|
||||||
|
{
|
||||||
|
0, // BASE_EDITION
|
||||||
|
2, // FOIL_EDITION
|
||||||
|
3, // HOLO_EDITION
|
||||||
|
5, // POLY_EDITION
|
||||||
|
5, // NEGATIVE_EDITION
|
||||||
|
};
|
||||||
|
|
||||||
/* So for the card objects, I needed them to be properly sorted
|
/* So for the card objects, I needed them to be properly sorted
|
||||||
which is why they let you specify the layer index when creating a new card object.
|
which is why they let you specify the layer index when creating a new card object.
|
||||||
Since the cards would overlap a lot in your hand, If they weren't sorted properly, it would look like a mess.
|
Since the cards would overlap a lot in your hand, If they weren't sorted properly, it would look like a mess.
|
||||||
@@ -35,7 +44,7 @@ Joker *joker_new(u8 id)
|
|||||||
|
|
||||||
joker->id = id; // TODO: Make this random later
|
joker->id = id; // TODO: Make this random later
|
||||||
joker->modifier = BASE_EDITION; // TODO: Make this random later
|
joker->modifier = BASE_EDITION; // TODO: Make this random later
|
||||||
joker->value = joker_data_lut[id][1];
|
joker->value = joker_data_lut[id][1] + edition_price_lut[joker->modifier]; // Base value + edition price
|
||||||
joker->rarity = joker_data_lut[id][0];
|
joker->rarity = joker_data_lut[id][0];
|
||||||
joker->proccessed = false;
|
joker->proccessed = false;
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user