Advertisement
Guest User

Untitled

a guest
May 22nd, 2015
218
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.99 KB | None | 0 0
  1. /*
  2. * State model
  3. */
  4.  
  5. var model = (function(){
  6.  
  7. // Incremental UUID generation for player id's
  8. var nextUUID = 1;
  9.  
  10. // Turn number
  11. var gameState = {}
  12.  
  13. var personlist = [];
  14. // TODO: slot model.. let's just use a simple grid for now.
  15.  
  16. function startGame() {
  17. gameState = {
  18. move : 1,
  19. activePlayer : personlist[0]
  20. }
  21.  
  22. console.log("Game started");
  23. console.log("Next player: " + gameState.activePlayer.name);
  24. }
  25.  
  26. function generateUUID() {
  27. nextUUID++;
  28. return nextUUID;
  29. }
  30.  
  31.  
  32. function addPerson(name) {
  33. var person = {
  34. id : generateUUID(),
  35. name : name,
  36. x : 0,
  37. y : 0
  38. }
  39.  
  40. personlist.push(person);
  41. }
  42.  
  43. // Move number and whose turn is it
  44. function getState() {
  45. return gameState;
  46. }
  47.  
  48. function playerAct(person, x, y) {
  49.  
  50. var originVector = getOriginVector(person);
  51.  
  52. // TODO: Validate action
  53.  
  54. // Update person data
  55. person.x = x;
  56. person.y = y;
  57.  
  58. // Update others
  59. var personId = person.id;
  60. for(var i=0; i<personlist.length; i++) {
  61. var person = personlist[i];
  62.  
  63. // Skip self
  64. if(person.id == personId) {
  65. continue;
  66. }
  67.  
  68. // Update person based on player action
  69. person.x += originVector.x;
  70. person.y += originVector.y;
  71. }
  72.  
  73. // Update game state record
  74. gameState.move += 1;
  75.  
  76. // Next person on the list
  77. gameState.activePlayer = playerlist(playerlist.indexOf(person)+1);
  78.  
  79. return;
  80. }
  81.  
  82. function getOriginVector(person) {
  83. return {
  84. x : person.x,
  85. y : person.y
  86. }
  87. }
  88.  
  89. return {
  90. getState : getState,
  91. playerAct : playerAct,
  92. addPerson : addPerson,
  93. startGame : startGame
  94. };
  95.  
  96. })();
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement