games: add: goal table
This commit is contained in:
parent
4d2d4dfb98
commit
4c3116c51f
@ -14,7 +14,7 @@ class MyPlayer extends Player
|
|||||||
*/
|
*/
|
||||||
constructor(client, game, rail, nb_goal, position)
|
constructor(client, game, rail, nb_goal, position)
|
||||||
{
|
{
|
||||||
super(game, client.me.id, rail, nb_goal, position, true);
|
super(game, client.me.id, client.me.username, rail, nb_goal, position, true);
|
||||||
/**
|
/**
|
||||||
* @type {Client}
|
* @type {Client}
|
||||||
*/
|
*/
|
||||||
|
@ -7,12 +7,13 @@ class Player
|
|||||||
/**
|
/**
|
||||||
* @param {Number} id
|
* @param {Number} id
|
||||||
* @param {Game} game
|
* @param {Game} game
|
||||||
* @param {Segment} rail
|
* @param {Segment} rail
|
||||||
* @param {Number} nb_goal
|
* @param {Number} nb_goal
|
||||||
* @param {Number} position
|
* @param {Number} position
|
||||||
* @param {Boolean} is_connected
|
* @param {Boolean} is_connected
|
||||||
|
* @param {String} username
|
||||||
*/
|
*/
|
||||||
constructor(game, id, rail, nb_goal, position, is_connected)
|
constructor(game, id, username, rail, nb_goal, position, is_connected)
|
||||||
{
|
{
|
||||||
/**
|
/**
|
||||||
* @type {Game}
|
* @type {Game}
|
||||||
@ -43,6 +44,11 @@ class Player
|
|||||||
* @type {Segment}
|
* @type {Segment}
|
||||||
*/
|
*/
|
||||||
this.rail = rail === undefined ? new Segment() : rail;
|
this.rail = rail === undefined ? new Segment() : rail;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @type {String}
|
||||||
|
*/
|
||||||
|
this.username = username;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -90,30 +96,12 @@ class Player
|
|||||||
|
|
||||||
from_json(data)
|
from_json(data)
|
||||||
{
|
{
|
||||||
/**
|
|
||||||
* @type {Boolean}
|
|
||||||
*/
|
|
||||||
|
|
||||||
this.is_connected = data.is_connected;
|
this.is_connected = data.is_connected;
|
||||||
/**
|
|
||||||
* @type {Number}
|
|
||||||
*/
|
|
||||||
this.id = data.user_id;
|
this.id = data.user_id;
|
||||||
|
|
||||||
/**
|
|
||||||
* @type {Number}
|
|
||||||
*/
|
|
||||||
this.position = data.position.position ;
|
this.position = data.position.position ;
|
||||||
|
|
||||||
/**
|
|
||||||
* @type {Number}
|
|
||||||
*/
|
|
||||||
this.nb_goal = data.nb_goal;
|
this.nb_goal = data.nb_goal;
|
||||||
|
|
||||||
/**
|
|
||||||
* @type {Segment}
|
|
||||||
*/
|
|
||||||
this.rail = this.rail.from_json(data.rail);
|
this.rail = this.rail.from_json(data.rail);
|
||||||
|
this.username = data.username;
|
||||||
|
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
@ -35,5 +35,7 @@
|
|||||||
"profileDenyRequest": "Refuser le cramptéman",
|
"profileDenyRequest": "Refuser le cramptéman",
|
||||||
"profileAcceptRequest": "Accepter le cramptéman",
|
"profileAcceptRequest": "Accepter le cramptéman",
|
||||||
"profileUnblock": "Quoicoudebloquer",
|
"profileUnblock": "Quoicoudebloquer",
|
||||||
"profileBlock": "Quoicoubloquer"
|
"profileBlock": "Quoicoubloquer",
|
||||||
|
"gameGoalTaken": "Tu es quoicoucringe",
|
||||||
|
"gamePlayersListName": "Crampteurs"
|
||||||
}
|
}
|
||||||
|
@ -35,5 +35,7 @@
|
|||||||
"profileDenyRequest": "Decline Friend",
|
"profileDenyRequest": "Decline Friend",
|
||||||
"profileAcceptRequest": "Accept Friend",
|
"profileAcceptRequest": "Accept Friend",
|
||||||
"profileUnblock": "Unblock",
|
"profileUnblock": "Unblock",
|
||||||
"profileBlock": "Block"
|
"profileBlock": "Block",
|
||||||
|
"gameGoalTaken": "Goal Taken",
|
||||||
|
"gamePlayersListName": "Players"
|
||||||
}
|
}
|
||||||
|
@ -35,5 +35,7 @@
|
|||||||
"profileDenyRequest": "Refuser l'ami",
|
"profileDenyRequest": "Refuser l'ami",
|
||||||
"profileAcceptRequest": "Accepter l'ami",
|
"profileAcceptRequest": "Accepter l'ami",
|
||||||
"profileUnblock": "Débloquer",
|
"profileUnblock": "Débloquer",
|
||||||
"profileBlock": "Bloquer"
|
"profileBlock": "Bloquer",
|
||||||
|
"gameGoalTaken": "But pris",
|
||||||
|
"gamePlayersListName": "Joueurs"
|
||||||
}
|
}
|
||||||
|
@ -2,6 +2,7 @@ import { client } from "../index.js";
|
|||||||
import { Game } from "../api/game/Game.js";
|
import { Game } from "../api/game/Game.js";
|
||||||
import AbstractView from "./abstracts/AbstractView.js";
|
import AbstractView from "./abstracts/AbstractView.js";
|
||||||
import { MyPlayer } from "../api/game/MyPlayer.js";
|
import { MyPlayer } from "../api/game/MyPlayer.js";
|
||||||
|
import { lang } from "../index.js"
|
||||||
|
|
||||||
export default class extends AbstractView
|
export default class extends AbstractView
|
||||||
{
|
{
|
||||||
@ -94,7 +95,7 @@ export default class extends AbstractView
|
|||||||
this.my_player = new MyPlayer(client,
|
this.my_player = new MyPlayer(client,
|
||||||
this.game,
|
this.game,
|
||||||
my_player.rail,
|
my_player.rail,
|
||||||
my_player.nb_gool,
|
my_player.nb_goal,
|
||||||
my_player.position,
|
my_player.position,
|
||||||
);
|
);
|
||||||
this.game.players[index] = this.my_player;
|
this.game.players[index] = this.my_player;
|
||||||
@ -113,6 +114,26 @@ export default class extends AbstractView
|
|||||||
await this.join_game();
|
await this.join_game();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
display_players_list()
|
||||||
|
{
|
||||||
|
let players_list = document.getElementById("players_list");
|
||||||
|
|
||||||
|
this.game.players.forEach(player => {
|
||||||
|
console.log(player);
|
||||||
|
let tr = document.createElement("tr");
|
||||||
|
let name = document.createElement("td");
|
||||||
|
let goal = document.createElement("td");
|
||||||
|
|
||||||
|
name.innerText = player.username;
|
||||||
|
goal.innerText = player.nb_goal;
|
||||||
|
|
||||||
|
tr.appendChild(name);
|
||||||
|
tr.appendChild(goal);
|
||||||
|
|
||||||
|
players_list.appendChild(tr);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
async postInit()
|
async postInit()
|
||||||
{
|
{
|
||||||
let error_code = await this.game.init();
|
let error_code = await this.game.init();
|
||||||
@ -121,6 +142,7 @@ export default class extends AbstractView
|
|||||||
return error_code;
|
return error_code;
|
||||||
|
|
||||||
await this.update_game_state();
|
await this.update_game_state();
|
||||||
|
this.display_players_list();
|
||||||
}
|
}
|
||||||
|
|
||||||
async leavePage()
|
async leavePage()
|
||||||
@ -138,7 +160,17 @@ export default class extends AbstractView
|
|||||||
return /* HTML */ `
|
return /* HTML */ `
|
||||||
<link rel="stylesheet" href="/static/css/game.css">
|
<link rel="stylesheet" href="/static/css/game.css">
|
||||||
<h2 id="game-state"></h2>
|
<h2 id="game-state"></h2>
|
||||||
<div id="player_list"></div>
|
|
||||||
|
<table>
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<th scope="col">${lang.get("gamePlayersListName")}</th>
|
||||||
|
<th scope="col">${lang.get("gameGoalTaken")}</th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody id="players_list">
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
`;
|
`;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -4,6 +4,8 @@ from .. import config
|
|||||||
|
|
||||||
from channels.generic.websocket import WebsocketConsumer
|
from channels.generic.websocket import WebsocketConsumer
|
||||||
|
|
||||||
|
from django.contrib.auth.models import User
|
||||||
|
|
||||||
from .Position import Position
|
from .Position import Position
|
||||||
from .Spectator import Spectator
|
from .Spectator import Spectator
|
||||||
from .Point import Point
|
from .Point import Point
|
||||||
@ -27,6 +29,8 @@ class Player(Spectator):
|
|||||||
|
|
||||||
self.rail: Segment = rail
|
self.rail: Segment = rail
|
||||||
|
|
||||||
|
self.username: str = User.objects.get(pk = self.user_id).username
|
||||||
|
|
||||||
def receive(self, data: dict):
|
def receive(self, data: dict):
|
||||||
|
|
||||||
detail: str = data.get("detail")
|
detail: str = data.get("detail")
|
||||||
@ -111,6 +115,7 @@ class Player(Spectator):
|
|||||||
def to_dict(self) -> dict:
|
def to_dict(self) -> dict:
|
||||||
|
|
||||||
data = {
|
data = {
|
||||||
|
"username": self.username,
|
||||||
"user_id": self.user_id,
|
"user_id": self.user_id,
|
||||||
"position": self.position.to_dict(),
|
"position": self.position.to_dict(),
|
||||||
"nb_goal": self.nb_goal,
|
"nb_goal": self.nb_goal,
|
||||||
|
Loading…
Reference in New Issue
Block a user