wordfighters_single.js 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172
  1. WordFighter.notify_dual = function() {
  2. $.ajax({
  3. url: '/wordFighter/levelChoice',
  4. data: { level: WordFighter.level },
  5. success: function(data){
  6. $("#waitingGame").load('/wordFighter/ready', function() {
  7. console.log( "Current opponent : " + WordFighter.opponentLevel );
  8. console.log( data );
  9. $("#fighter1portrait").addClass( WordFighter.level );
  10. $("#fighter1portrait").css( "visibility", "visible");
  11. addFighter( WordFighter.get_fighter( WordFighter.level) );
  12. addScoreBoard();
  13. WordFighter.opponentLevel = WordFighter.get_random_fighter();
  14. setTimeout( function() {
  15. WordFighter.start_game();
  16. }, 3000 );
  17. WordFighter.set_opponent();
  18. });
  19. }
  20. });
  21. }
  22. WordFighter.new_word = function() {
  23. if( WordFighter.started ) {
  24. return false;
  25. }
  26. WordFighter.combo = 0;
  27. $.ajax({
  28. url: '/wordFighter/newEnigma',
  29. data: {level: WordFighter.level},
  30. success: function(data){
  31. console.log(data);
  32. WordFighter.letters = data.letters;
  33. for( i = 1; i < WordFighter.letters.length + 1; i++ )
  34. {
  35. WordFighter.setLetter( i, data.letters[ i - 1 ] )
  36. }
  37. WordFighter.answers = data.words;
  38. var rest = 0;
  39. var total = 0;
  40. for( var i = 3; i < 8; i++ ) {
  41. total += $( "#valid" + i).length;
  42. rest += $( "#valid" + i).find( ":empty" ).length;
  43. }
  44. console.log( data.remaining_time + " seconds" );
  45. COUNTDOWN.setTime( data.remaining_time);
  46. if( rest / total < 0.5 )
  47. fighter2.kick();
  48. else
  49. fighter2.punch();
  50. fighter1.ouch();
  51. WordFighter.change_score( data.score );
  52. for( i = data.minLength; i < data.maxLength +1; i++ )
  53. {
  54. $( "#valid" + i ).empty();
  55. var obj = data.words[i];
  56. var count = 0;
  57. if( obj != undefined )
  58. count = obj;
  59. for( j = 0; j < count; j++ )
  60. {
  61. $( "#valid" + i ).append( "<li id=\"valid" + i + "-" + j + "\" style=\"background-color:yellow\"></li>");
  62. }
  63. }
  64. WordFighter.started = true;
  65. if( WordFighter.first ) {
  66. WordFighter.startDate = new Date();
  67. COUNTDOWN.start();
  68. display_text( game_start );
  69. setTimeout( function() {
  70. hide_text();
  71. }, 1500);
  72. WordFighter.first = false;
  73. }
  74. }
  75. });
  76. }
  77. WordFighter.check_word = function() {
  78. $.ajax({
  79. type: "POST",
  80. url: '/wordFighter/check',
  81. data: {suggested: WordFighter.word },
  82. success: function(data){
  83. if( data.valid )
  84. {
  85. WordFighter.combo++;
  86. if( ( WordFighter.combo % 3 ) == 0 )
  87. fighter1.kick();
  88. else
  89. fighter1.punch();
  90. WordFighter.activeKeypress = true;
  91. $("#valid" + WordFighter.word.length + "-" + data.position).append( WordFighter.word );
  92. WordFighter.change_score( data.score );
  93. fighter1.punch();
  94. WordFighter.hit_opponent(WordFighter.word.length );
  95. while(WordFighter.erase());
  96. WordFighter.activeKeypress = false;
  97. WordFighter.check_validated();
  98. } else {
  99. WordFighter.combo = 0;
  100. WordFighter.activeKeypress = true;
  101. while(WordFighter.erase());
  102. WordFighter.activeKeypress = false;
  103. }
  104. if( data.remaining_time )
  105. COUNTDOWN.setTime( data.remaining_time );
  106. }
  107. });
  108. }
  109. WordFighter.game_over = function() {
  110. COUNTDOWN.stop();
  111. WordFighter.activeKeypress = true;
  112. var highscore = true;
  113. var win = WordFighter.score > 0;
  114. $.ajax({
  115. url: '/wordFighter/answers',
  116. data: {action: "answers"},
  117. success: function(data){
  118. console.log(data);
  119. $("#modalDialog").prepend(data.modal).modal({backdrop: false, show: true});
  120. $(".replayButton").bind( "click", function() {
  121. if( WordFighter.mode!=="dual")
  122. window.location.href = "/wordFighter/game";
  123. else
  124. window.location.href = "/wordFighter/invite/" + opponent;
  125. } );
  126. for( i = data.minLength; i < data.maxLength +1; i++ )
  127. {
  128. var words = data.answers[i];
  129. if( words != undefined )
  130. {
  131. for( j = 0; j < words.length; j++ )
  132. {
  133. var id = "#valid" + ( words[ j ].length ) + "-" + j;
  134. $( id ).empty();
  135. $( id ).append( words[ j ] );
  136. }
  137. }
  138. }
  139. WordFighter.answers = null;
  140. SCOREBOARD.set_score( data.score );
  141. }
  142. });
  143. WordFighter.started = false;
  144. }