aboutsummaryrefslogtreecommitdiff
path: root/special_actions.c
diff options
context:
space:
mode:
Diffstat (limited to 'special_actions.c')
-rw-r--r--special_actions.c14
1 files changed, 12 insertions, 2 deletions
diff --git a/special_actions.c b/special_actions.c
index 6680434..925fe42 100644
--- a/special_actions.c
+++ b/special_actions.c
@@ -28,6 +28,10 @@ void Halicarnassus(int player)
int bottom = 0;
while(discards[numcards++] != -1 && numcards < 50);
numcards /= 2;
+ if(numcards == 0) {
+ postmessage("No cards in the discard pile. Sucks to suck.");
+ return;
+ }
while(1) {
view_refresh(focus, cursor, player, 1);
switch(io_getkey()) {
@@ -70,16 +74,22 @@ void Halicarnassus(int player)
}
}
+static int hal = 0;
+static int oly = 0;
+
void special_action(int player, int wonder, int stage)
{
if(wonder == 8) { //Halicarnassus
- if(stage == 2 || stage == 4 || stage == 5 || stage == 6)
+ if(stage == 2 && hal == 0 || stage == 4 && hal == 0 || stage == 5 && hal == 1 || stage == 6 && hal == 2) {
if(data_isai(player));
else Halicarnassus(player);
+ hal++;
+ }
}
if(wonder == 7) { //Olympia
- if(stage == 2) {
+ if(stage == 2 && ! oly) {
data_setfreebuild(player);
+ oly = 1;
}
}
}
bgstack15