jhylands

Untitled

Feb 19th, 2014
245
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. /**/
  2. var BuildingMain={BUILD_ERROR_REQ:1,BUILD_ERROR_POP:2,BUILD_ERROR_QUEUE:3,BUILD_ERROR_RES:4,BUILD_ERROR_QUEUE_RES:5,upgrade_building_link:'',downgrade_building_link:'',link_reduce_buildtime:'',link_cancel:'',confirm_queue:false,mode:0,request_id:0,last_request_id:0,buildings:null,order_count:0,init:function(){$('#building_wrapper').on('click','.btn-bcr',function(){var $this=$(this);if($this.hasClass('btn-bcr-disabled'))return false;
  3. BuildingMain.build_reduced($this.data('cost'),$this.attr('href'));
  4. return false});
  5. $(window.TribalWars).on('resource_change',function(){setTimeout(BuildingMain.updateBuildableState,1)})},updateBuildableState:function(){var order_count=$('#buildqueue_wrap').length==0?0:BuildingMain.order_count,new_timers=0;
  6. $.each(BuildingMain.buildings,function(building_id,building){var $build_options=$('#main_buildrow_'+building_id).find('.build_options'),previous_error=parseInt($build_options.data['error']),could_afford=$build_options.data('could-afford');
  7. if(!$build_options)return;
  8. var error_text,error_code,can_afford=Village.canAfford(building.wood,building.stone,building.iron);
  9. if(!building.can_build&&building.level){error_code=BuildingMain.BUILD_ERROR_REQ;
  10. error_text=building.error}else if(order_count>1&&!premium){if(can_afford.afford==Village.AFFORD_TYPE_NOW){error_code=BuildingMain.BUILD_ERROR_QUEUE;
  11. error_text='Queue is currently full'}else{error_code=BuildingMain.BUILD_ERROR_RES;
  12. error_text=can_afford.when}}else if(building.pop&&building.pop>parseInt(game_data.village.pop_max)-parseInt(game_data.village.pop)){error_code=BuildingMain.BUILD_ERROR_POP;
  13. error_text=building.error}else if(can_afford.afford!=Village.AFFORD_TYPE_NOW){error_code=BuildingMain.BUILD_ERROR_RES;
  14. error_text=can_afford.when};
  15. if(error_code==BuildingMain.BUILD_ERROR_RES&&building.hasOwnProperty('wood_cheap')){var can_afford_cheap=Village.canAfford(building.wood_cheap,building.stone_cheap,building.iron_cheap),$bcr_button=$build_options.find('.btn-bcr');
  16. if(can_afford_cheap.afford==Village.AFFORD_TYPE_NOW&&$bcr_button.hasClass('btn-bcr-disabled')){$bcr_button.removeClass('btn-bcr-disabled')}else if(can_afford_cheap.afford!=Village.AFFORD_TYPE_NOW&&!$bcr_button.hasClass('btn-bcr-disabled'))$bcr_button.addClass('btn-bcr-disabled')};
  17. if(typeof error_text=='undefined'&&building.hasOwnProperty('wood_queue_factor')){var can_afford_with_queue=Village.canAfford(building.wood_queue_factor,building.stone_queue_factor,building.iron_queue_factor);
  18. if(can_afford_with_queue.afford!=Village.AFFORD_TYPE_NOW){error_code=BuildingMain.BUILD_ERROR_QUEUE_RES;
  19. error_text='Not enough resources available to add assignment to building queue.'}};
  20. var $build_button=$build_options.find('.btn-build'),$build_error=$build_options.find('.inactive');
  21. if(typeof error_text!='undefined'){$build_button.hide();
  22. $build_error.show();
  23. if($build_error.html()!=error_text)$build_error.html(error_text)}else{$build_button.show();
  24. $build_error.hide()}})},init_buildqueue:function(url){$("#buildqueue").sortable({axis:'y',handle:'.bqhandle',helper:function(e,tr){var $originals=tr.children(),$helper=tr.clone();
  25. $helper.children().each(function(index){$(this).width($originals.eq(index).width())});
  26. return $helper},stop:function(event,ui){var el=ui.item;
  27. $.ajax({dataType:'json',type:'get',url:url,data:$("#buildqueue").sortable('serialize'),success:function(data){if(data.error){UI.InfoMessage(data.error,2000,true);
  28. $("#buildqueue").sortable('cancel');
  29. return};
  30. BuildingMain.init_buildqueue(url);
  31. BuildingMain.update_all(data)}})}});
  32. $("#buildqueue").sortable('option','items','.sortable_row')},init_mobilebuildqueue:function(url){MDS.orderableQueue.init($('#buildqueue_wrap').find('div').first(),url,function(data){BuildingMain.update_all(data)})},build:function(building_id,cheap){var updateBuildQueue=function(){var current_request_id=++BuildingMain.request_id,data={id:building_id,force:1,destroy:BuildingMain.mode,source:game_data.village.id};
  33. if(typeof cheap!="undefined")data.cheap=1;
  34. var url=BuildingMain.mode==0?BuildingMain.upgrade_building_link:BuildingMain.downgrade_building_link;
  35. TribalWars.post(url,{},data,function(data){if(current_request_id>BuildingMain.last_request_id){BuildingMain.last_request_id=current_request_id;
  36. BuildingMain.update_all(data);
  37. if(mobile)UI.SuccessMessage('The building order was successfully queued.')}})};
  38. if(BuildingMain.confirm_queue&&this.mode==0){var msg='Assignments added to the building queue will cost more. Do you still want to add this assignment?',buttons=[{text:"Confirm",callback:updateBuildQueue,confirm:true}];
  39. UI.ConfirmationBox(msg,buttons)}else updateBuildQueue();
  40. return false},destroy:function(building_id){return BuildingMain.build(building_id)},build_reduced:function(cost,link){Premium.check('BuildCostReduction',cost,function(){document.location.replace(link)});
  41. return false},cancel:function(order_id,spent_pp){var msg;
  42. if(spent_pp){msg='Are you sure you want to cancel the assignment? Cancelling the construction of this building will not refund any premium points spent on its construction.'}else msg='Are you sure you want to cancel the assignment?';
  43. var cancelBuildingCallback=function(){TribalWars.post(BuildingMain.link_cancel,null,{id:order_id,destroy:BuildingMain.mode},function(response){BuildingMain.update_all(response)})},buttons=[{text:'Confirm',callback:cancelBuildingCallback,confirm:true}];
  44. UI.ConfirmationBox(msg,buttons);
  45. return false},change_order:function(order_id,feature_id,cost){var confirmChangeOrderCallback=function(){$.ajax({dataType:'json',type:'get',url:BuildingMain.link_change_order,data:{id:order_id,destroy:BuildingMain.mode},success:function(data){if(data.hasOwnProperty('error')){UI.ErrorMessage(data.error)}else BuildingMain.update_all(data)}})};
  46. Premium.check(feature_id,cost,confirmChangeOrderCallback);
  47. return false},update_all:function(data){if(data.reload){document.location.reload();
  48. return};
  49. var queue_wrapper=$('#buildqueue_wrap');
  50. if(queue_wrapper.length==1){if(data.building_orders){queue_wrapper.replaceWith(data.building_orders)}else queue_wrapper.remove()}else $('#building_wrapper').before(data.building_orders);
  51. if(data.next_buildings){$('#building_wrapper').replaceWith(data.next_buildings);
  52. $('.inactive img').fadeTo(0,.5)};
  53. if(typeof data.confirm_queue!='undefined')BuildingMain.confirm_queue=data.confirm_queue;
  54. if(typeof data.population!='undefined')$('#pop_current_label').html(data.population);
  55. startTimer();
  56. if(typeof QuestArrows!='undefined')QuestArrows.init();
  57. UI.ToolTip('.tooltip')}}
Advertisement
Add Comment
Please, Sign In to add comment