X-Git-Url: https://git.realraum.at/?a=blobdiff_plain;f=dart%2FDart.pm;h=cb654bd3e11abe26f2b1860b0cc9f8156022d437;hb=1209e955f844c0a126702017629479046a0e3702;hp=634f149071e0be985e424428d77c3008cff0b940;hpb=75a44243194cb0c7ec800e4870c1c8a60a5cdc76;p=svn42.git diff --git a/dart/Dart.pm b/dart/Dart.pm index 634f149..cb654bd 100644 --- a/dart/Dart.pm +++ b/dart/Dart.pm @@ -81,6 +81,7 @@ sub run if ($mult =~/^\d$/) { die "Unexpected input" if not $number=~/^\d+$/; + next if not $self->{current_shoot_count} < $self->{max_shoots_per_player}; $self->shoot($mult,$number); } elsif ($mult eq 'btn') { $self->next_player(); @@ -90,6 +91,11 @@ sub run $self->callback('undo'); } elsif ($mult eq 'reset') { $self->reset_game(); + } elsif ($mult eq 'quit') { + return; + } else { + # shitty input + next; } push @history, Clone::clone($self); $self->callback('before_shoot'); @@ -186,6 +192,12 @@ sub get_next_active_player return ($current_player,$new_round); } +sub finish_player_round +{ + my $self=shift; + $self->{current_shoot_count} = $self->{max_shoots_per_player}; +} + sub next_round { my $self=shift; @@ -201,7 +213,8 @@ sub win if ($self->{active_player_count}==1) { $self->next_player(); - $self->lose(); + $self->shout('lose'); + $self->deactivate_current_player($self->{player_count}-$self->{active_player_count}+1); } } @@ -213,7 +226,8 @@ sub lose if ($self->{active_player_count}==1) { $self->next_player(); - $self->win(); + $self->shout('win'); + $self->deactivate_current_player($self->{active_player_count}); } }