Skip to content

Commit

Permalink
Several new implementations and bugfixes
Browse files Browse the repository at this point in the history
  • Loading branch information
Raibaz committed Dec 27, 2011
1 parent b8a72c7 commit c33a1c9
Show file tree
Hide file tree
Showing 4 changed files with 55 additions and 21 deletions.
25 changes: 22 additions & 3 deletions src/com/raibaz/lupus/game/GameEngine.java
Original file line number Diff line number Diff line change
Expand Up @@ -88,6 +88,13 @@ public void assignRoles() {
dao.ofy().put(nextPlayer);
nextPlayer = getRandomAvailablePlayer();
}
//Paranoia check
for(Player p : g.getPlayers(true)) {
if(p.getRole() == null) {
p.setRole(PlayerRole.CITIZEN);
dao.ofy().put(nextPlayer);
}
}
g.refreshPlayers();
}

Expand Down Expand Up @@ -181,7 +188,12 @@ public Player determineNextVoterInNight(Player lastVoter) {
return p;
}
}
return g.getPlayerByRole(PlayerRole.SEER);
if(computeDeadPlayerInNight() != null) {
return g.getPlayerByRole(PlayerRole.SEER);
} else {
resetVotes();
return g.getPlayerByRole(PlayerRole.WOLF);
}
} else if(lastVoter.getRole() == PlayerRole.SEER) {
return g.getPlayerByRole(PlayerRole.MEDIUM);
} else if(lastVoter.getRole() == PlayerRole.MEDIUM) {
Expand Down Expand Up @@ -249,8 +261,15 @@ public Player computeDeadPlayerInRound2() {
}

public Player computeDeadPlayerInNight() {
Player dead = computeDeadPlayerInRound2();
if(dead.isBodyguarded()) {
int requiredVotes = g.getConfiguration().getHowManyWolves();
Player dead = null;
List<Player> players = g.getPlayers(true);
for(Player p : players) {
if(p.getVotes() == requiredVotes) {
dead = p;
}
}
if(dead != null && dead.isBodyguarded()) {
return null;
} else {
return dead;
Expand Down
Binary file modified war/WEB-INF/classes/com/raibaz/lupus/game/GameEngine.class
Binary file not shown.
43 changes: 25 additions & 18 deletions war/play.jsp
Original file line number Diff line number Diff line change
@@ -1,12 +1,14 @@
<%@ page import="java.util.Date"%>

<html>
<head>
<script type="text/javascript" src="https://www.google.com/jsapi?key=ABQIAAAArc-aBcMtas27GxefyJyUHhRL-CQUxo4cyKjOW-vmsVYovkcPkxQE2hJN1nGerTi9FsBBBwotb0LXSQ"></script>
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js"></script>
<script type="text/javascript" src="js/jquery.blockUI.js"></script>
<script type="text/javascript" src="/_ah/channel/jsapi"></script>
<script type="text/javascript" src="js/util.js?ver=1"></script>
<script type="text/javascript" src="js/play.js?ver=3"></script>
<link href="/style.css?ver=1" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="js/play.js?ver=<%=new Date()%>"></script>
<link href="/style.css?ver=<%=new Date()%>" rel="stylesheet" type="text/css"/>
</head>
<body>
<div id="play-main">
Expand Down Expand Up @@ -42,9 +44,9 @@
}
}
$('.player-item').click(function() {
$('#players').block();
if(current_state === 'VOTING_1') {
$('.player-item').click(function() {
if(current_state !== 'DEBATE') {
$('#players').block();
$.post('/vote', {"target_id": this.id, "game_id": "<%=request.getParameter("game_id")%>", "voter_id":"<%=request.getParameter("player_id")%>"});
}
});
Expand All @@ -56,12 +58,12 @@
if("<%=request.getParameter("player_id")%>" === resp.owner.fbId) {
$('#stop-debate').show();
$('#stop-debate').click(function() {
$.post('/change-state', {"game_id":"<%=request.getParameter("game_id")%>","state":"VOTING_1"});
$('#stop-debate').hide();
});
}
$('#stop-debate').click(function() {
$.post('/change-state', {"game_id":"<%=request.getParameter("game_id")%>","state":"VOTING_1"});
});
$('#chat-text').click(function() {
$('#chat-text').val("");
});
Expand Down Expand Up @@ -89,50 +91,55 @@
console.info(url);
location.replace(url);
} else if(data.type == "GAMESTATE") {
if(data.msg === "VOTING_1") {
current_state = data.msg;
current_state = data.msg;
if(data.msg === "VOTING_1") {
chat('', "Inizia il primo round di nomination, il primo a votare è " + data.target.name);
if(<%=request.getParameter("player_id")%> == data.target.fbId) {
$('#players').unblock();
blockUnavailablePlayers();
} else {
$('#players').block();
}
} else if(data.msg == "VOTING_2") {
} else if(data.msg == "VOTING_2") {
$('#players').unblock();
var splitted = data.msg.split("|");
for(i in players) {
$('#' + i).block();
}
resetVotes();
chat('', "E' finito il primo giro di nomination");
for(i in data.nominated) {
players[data.nominated[i].fbId].nominated = true;
chat('', data.nominated[i].name + " è stato nominato");
}
chat('', "Inizia il secondo round di nomination, il primo a votare è " + data.target.name);
if(<%=request.getParameter("player_id")%> == data.target.fbId) {
$('#players').unblock();
$('#players').unblock();
blockUnavailablePlayers();
} else {
$('#players').block();
}
} else if(data.msg == "NIGHT") {
chat('', data.target.name + " è morto.");
players[data.target.fbId].alive = false;
$('#' + data.target.fbId).addClass('dead-player');
resetVotes();
resetNominees();
chat('', "è notte");
chat('', "I lupi aprono gli occhi.");
$('#players').block();
} else if(data.msg == "DEBATE") {
chat('', "E' giorno, e " + data.target.name + " è morto.");
$('#' + data.target.fbId).addClass('dead-player');
players[data.target.fbId].alive = false;
$('#players').unblock();
if("<%=request.getParameter("player_id")%>" === resp.owner.fbId) {
$('#stop-debate').show();
}
} else if(data.msg == "ENDED") {
$('#players').block();
chat('', "Il gioco è finito.");
} else if(data.msg == "SEER") {
chat('', "I lupi chiudono gli occhi.");
chat('', "Il veggente apre gli occhi e indica un giocatore");
resetVotes();
$('#players').block();
} else if(data.msg == "MEDIUM") {
chat('', "Il veggente chiude gli occhi.");
Expand All @@ -142,7 +149,7 @@
} else if(data.type == "VOTE") {
chat(data.player.name, "ha votato per <b>" + data.target.name + "</b>");
players[data.target.fbId].votes++;
$('#' + data.target.fbId + " .votes").html(players[data.target.fbId].votes);
$('#' + data.target.fbId + " .votes").html(players[data.target.fbId].votes).show();
if(data.next) {
chat('', "Ora è il turno di " + data.next.name);
if(<%=request.getParameter("player_id")%> == data.next.fbId) {
Expand Down
8 changes: 8 additions & 0 deletions war/style.css
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,14 @@
list-style-type: none;
}

#players-list .player-item .votes {
color: red;
}

#players-list .dead-player {
text-decoration: line-through;
}

#play-main {
width: 100%;
height: 90%;
Expand Down

0 comments on commit c33a1c9

Please sign in to comment.