Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- * State model
- */
- var model = (function(){
- // Incremental UUID generation for player id's
- var nextUUID = 1;
- // Turn number
- var gameState = {}
- var personlist = [];
- // TODO: slot model.. let's just use a simple grid for now.
- function startGame() {
- gameState = {
- move : 1,
- activePlayer : personlist[0]
- }
- console.log("Game started");
- console.log("Next player: " + gameState.activePlayer.name);
- }
- function generateUUID() {
- nextUUID++;
- return nextUUID;
- }
- function addPerson(name) {
- var person = {
- id : generateUUID(),
- name : name,
- x : 0,
- y : 0
- }
- personlist.push(person);
- }
- // Move number and whose turn is it
- function getState() {
- return gameState;
- }
- function playerAct(person, x, y) {
- var originVector = getOriginVector(person);
- // TODO: Validate action
- // Update person data
- person.x = x;
- person.y = y;
- // Update others
- var personId = person.id;
- for(var i=0; i<personlist.length; i++) {
- var person = personlist[i];
- // Skip self
- if(person.id == personId) {
- continue;
- }
- // Update person based on player action
- person.x += originVector.x;
- person.y += originVector.y;
- }
- // Update game state record
- gameState.move += 1;
- // Next person on the list
- gameState.activePlayer = playerlist(playerlist.indexOf(person)+1);
- return;
- }
- function getOriginVector(person) {
- return {
- x : person.x,
- y : person.y
- }
- }
- return {
- getState : getState,
- playerAct : playerAct,
- addPerson : addPerson,
- startGame : startGame
- };
- })();
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement