Advertisement
Guest User

Untitled

a guest
Jun 23rd, 2017
82
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. private function doLogCheck():void {
  2.             var log:Array = _gameStats.statsLog(true);
  3.             MonsterDebugger.trace(this, log);
  4.            
  5.             var totalLogScore       :int;
  6.            
  7.             for (var i:int = 0; i < log.length; i++) {
  8.                 var item:Object = log[i];
  9.                
  10.                 switch(item.stat_type) {
  11.                     case 'pizza_points':
  12.                         if (item.value > GameStats.HIT_POINTS)
  13.                             return invalidStatsException('INVALID PIZZA DELIVERY POINTS', i);
  14.                         totalLogScore += item.value;
  15.                         break;
  16.                     case 'combo_bonus':
  17.                         if (item.value / item.extra_type != GameStats.COMBO_BONUS) 
  18.                             return invalidStatsException('INVALID COMBO BONUS VALUE', i);
  19.                         totalLogScore += item.value;
  20.                         break;
  21.                     case 'bakeren_bonus':
  22.                         if ((item.extra_type == 'CopperToken'   && item.value != 100) ||
  23.                             (item.extra_type == 'SilverToken'   && item.value != 300) ||
  24.                             (item.extra_type == 'GoldToken'     && item.value != 500))
  25.                                 return invalidStatsException('INVALID TOKEN BONUS VALUE', i);
  26.                         totalLogScore += item.value;
  27.                         break;
  28.                     case 'bonus_time':
  29.                         if (item.value != GameStats.TIME_BONUS) return invalidStatsException('INVALID BONUS TIME VALUE', i);
  30.                         break;
  31.                     case 'blind_hit':
  32.                         if (item.value != GameStats.BLIND_HIT_BONUS) return invalidStatsException('INVALID BLIND HIT BONUS VALUE', i);
  33.                         totalLogScore += item.value;
  34.                         break;
  35.                     default:
  36.                         return  invalidStatsException('INVALID STATS TYPE ', i);
  37.                         break;
  38.                 }
  39.                
  40.                 var prevItem:Object = i > 0 ? log[i - 1] : null;
  41.                 if (item.time_stamp > 90000 || (prevItem && (item.time_stamp > prevItem.time_stamp && prevItem.stat_type != 'bonus_time'))) {
  42.                     return invalidStatsException('INVALID TIME GROWTH', i);
  43.                 }
  44.             }
  45.             var scoreIsValid:Boolean = totalLogScore == _gameStats.points;
  46.            
  47.             trace('score is VALID :', scoreIsValid);
  48.         }
  49.        
  50.         private function invalidStatsException(type:String, atIndex:int):void {
  51.             // за дебъг цели запазваме
  52.             // log      - във вид подаден в POST (string)
  53.             // type     - евентуална причина за несъответствието
  54.             // atIndex  - индекс на елемента в log масива при който е установено несъответствието
  55.            
  56.            
  57.             trace('invalid stats exception:', type, 'atIndex:', atIndex);
  58.         }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement