forked from sent/waves
1 line
11 KiB
JavaScript
1 line
11 KiB
JavaScript
var PlayLayer=cc.Layer.extend({pps_value:0,picks_value:0,soil:null,pick:null,btn_menu:null,label_picks:null,label_pps:null,boxSoilsGroup:null,rubiesGroup:null,flyDamageGroup:null,shopWindow:null,achievWindow:null,btn_sound:null,res_hub:null,helpers_hub:null,achievChecker:null,topLabel:null,tutorial:null,chestBoomGroup:null,rubiesData:[],framesBoomChest:[],string_picks:"",base_critical_chance:5,helpersCount:0,hitCount:0,hitCountOnFire:0,levelUp:0,onFireValue:80,onFireEnable:!1,ctor:function(){this._super(),this.init()},init:function(){this._super(),this.soil=new Soil(this,this.onSoilDestroy),this.boxSoilsGroup=new BoxSoilsGroup(10,this),this.rubiesGroup=new BoxSoilsGroup(10,this),this.pick=new Pick(this,this.onHit);var e=new cc.Sprite("#gui_mainscreen_back_top");e.anchorX=0,e.anchorY=1,e.y=cc.winSize.height;var t=new cc.Sprite("#gui_mainscreen_back_bottom");t.anchorX=0,t.anchorY=0,this.addChild(e),this.addChild(t);var s=new cc.Sprite("#btn_shop");s.setScale(.94);var i=new cc.MenuItemSprite(new cc.Sprite("#btn_shop"),s,new cc.Sprite("#btn_shop"),this.onShop,this);i.setScale(.7),i.setPosition(85,80),(s=new cc.Sprite("#btn_achievement")).setScale(.94);var a=new cc.MenuItemSprite(new cc.Sprite("#btn_achievement"),s,new cc.Sprite("#btn_achievement"),this.onAchievement,this);a.setScale(.7),a.setPosition(cc.winSize.width-85,80),(s=new cc.Sprite("#btn_sfx_on")).setScale(.9),this.btn_sound=new cc.MenuItemSprite(new cc.Sprite("#btn_sfx_on"),s,new cc.Sprite("#btn_sfx_on"),this.onSound,this),this.btn_sound.setPosition(cc.winSize.width-60,cc.winSize.height-57),(s=new cc.Sprite("#btn_moregames")).setScale(.9),new cc.MenuItemSprite(new cc.Sprite("#btn_moregames"),s,new cc.Sprite("#btn_moregames"),buttonMoreGamesOnClick,this).setPosition(60,cc.winSize.height-57),this.btn_menu=new cc.Menu(i,a,this.btn_sound),this.btn_menu.setPosition(0,0),this.addChild(this.btn_menu);var h=cc.loader.getRes(res.strings);this.string_picks=h.picks,this.label_picks=new cc.LabelTTF(playerData.picks.toString(),"Press Start 2P",32),this.label_picks.setPosition(.5*cc.winSize.width,cc.winSize.height-60),this.addChild(this.label_picks);var r=new cc.LabelTTF(h.pps,"Press Start 2P",32);for(var o in r.setPosition(.5*cc.winSize.width,110),this.addChild(r),this.label_pps=new cc.LabelTTF(playerData.pps.toString(),"Press Start 2P",32),this.label_pps.setPosition(.5*cc.winSize.width,60),this.addChild(this.label_pps),this.flyDamageGroup=new FlyDamageGroup(10,this),this.helpersCount=0,setHelpers){for(var n=0;n<playerData.helpers[o];n++)setHelpers[o].cost=Math.floor(1.4*setHelpers[o].cost);setHelpers[o].soilCost+=5*playerData.helpers[o],setHelpers[o].ruby1Type>-1&&(setHelpers[o].ruby1Cost+=5*playerData.helpers[o]),setHelpers[o].ruby2Type>-1&&(setHelpers[o].ruby2Cost+=5*playerData.helpers[o]),this.helpersCount+=playerData.helpers[o]}for(o=0;o<2;o++)for(n=0;n<playerData.chestCount[o];n++)setChest[o]=Math.floor(1.5*setChest[o]);this.res_hub=new ResHub(this),this.helpers_hub=new HelperHub(this),this.shopWindow=new ShopWindow(this,this.onCloseShop),this.shopWindow.show(!1),this.chestBoomGroup=new BoxSoilsGroup(8,this),this.chestBoomGroup.prepareForChest(),this.achievWindow=new AchievWindow(this,this.onCloseShop),this.achievWindow.show(!1),this.achievChecker=new AchievChecker(this.onGetAchiev,this),this.topLabel=new cc.LabelTTF("","Press Start 2P",28),this.topLabel.setColor(cc.color(30,240,30)),this.topLabel.setPosition(.5*cc.winSize.width,.5*cc.winSize.height),this.topLabel.enableStroke(cc.color(0,0,0),3),this.topLabel.setHorizontalAlignment(cc.TEXT_ALIGNMENT_CENTER),this.topLabel.setVerticalAlignment(cc.VERTICAL_TEXT_ALIGNMENT_CENTER),this.topLabel.setVisible(!1),this.addChild(this.topLabel),this.pps_value=playerData.pps,this.picks_value=playerData.picks,this.base_critical_chance=5+3*playerData.helpers[9],this.flyDamageGroup.setValue(this.pick.data.damage,!1),playerData.isTutorial?(this.tutorial=new Tutorial(this.topLabel),this.btn_menu.setEnabled(!1)):this.tutorial=null,this.rubiesData=[0,0,0,0,0],this.framesBoomChest=["","","","","","","",""],cc.eventManager.addListener({event:cc.EventListener.TOUCH_ONE_BY_ONE,onTouchBegan:this.onTouchBegan},this),this.scheduleUpdate(),this.schedule(this.updateSch,.1),this.schedule(this.saveData,10);const l=document.getElementById("loading");l.parentNode.removeChild(l)},onEnter:function(){this._super(),this.pick.onFireEnabled(!1)},onCloseShop:function(){this.btn_menu.setEnabled(!0)},onShop:function(){this.shopWindow.show(!0),this.btn_menu.setEnabled(!1)},onAchievement:function(){this.achievWindow.show(!0),this.btn_menu.setEnabled(!1)},onSound:function(){mute=!mute,audioAllowed=webAudio&&!mute;var e=mute?"btn_sfx_off":"btn_sfx_on";this.btn_sound.normalImage.setSpriteFrame(e),this.btn_sound.selectedImage.setSpriteFrame(e),this.btn_sound.disabledImage.setSpriteFrame(e)},onTouchBegan:function(e,t){var s=t.getCurrentTarget();return s.tutorial?(s.tutorial.next()&&(s.tutorial=null,playerData.isTutorial=!1,s.btn_menu.setEnabled(!0)),!1):(s.shopWindow.isOpen()?s.shopWindow.onTouchBegan(e):s.achievWindow.isOpen()?s.achievWindow.onTouchBegan(e):(s.pick.hit(),audioAllowed&&cc.audioEngine.playEffect(res.sfx_swing)),!0)},onHit:function(){var e=this.pick.data.damage;this.onFireEnable&&(e+=e);var t=100-(this.pick.data.critical_chance+this.base_critical_chance);rnd.integerInRange(0,100)>t&&(e+=e,this.flyDamageGroup.go()),this.picks_value+=e,playerData.collect_picks+=e,this.soil.setDamage(e),this.flyDamageGroup.go(),audioAllowed&&cc.audioEngine.playEffect(res.sfx_pick_hit),++this.hitCountOnFire==this.onFireValue&&(this.onFireEnable=!this.onFireEnable,this.pick.onFireEnabled(this.onFireEnable),this.hitCountOnFire=0,this.flyDamageGroup.setValue(this.pick.data.damage,this.onFireEnable),this.onFireValue=this.onFireEnable?20:80),300==++this.hitCount&&(this.hitCount=0,this.levelUp+=1)},onSoilDestroy:function(e){var t=rnd.integerInRange(2,5)+playerData.helpers[e];this.boxSoilsGroup.boom(t,e),playerData.res[e]+=t,this.res_hub.updateRes(e);for(var s=setSoil[e].rubiesChance,i=0;i<5;++i)this.rubiesData[i]=0,rnd.realInRange(0,99)<s[i]&&(this.rubiesData[i]=1),rnd.realInRange(0,99)<s[i]&&++this.rubiesData[i],this.rubiesData[i]&&(playerData.rubies[i]+=this.rubiesData[i],this.res_hub.updateResRubies(i));this.rubiesGroup.boomRubies(this.rubiesData),0==playerData.achiev[e+4]&&(playerData.collect_res[e]+=t)>=1e3&&(this.onGetAchiev(e+4),playerData.achiev[e+4]=1),audioAllowed&&cc.audioEngine.playEffect(res.sfx_got_soil)},update:function(e){this.pick.currentStateUpdate(e);var t=this.pps_value*e;this.picks_value+=t,playerData.collect_picks+=t,this.boxSoilsGroup.update(e),this.rubiesGroup.update(e),this.flyDamageGroup.update(e)},updateSch:function(e){playerData.picks=this.picks_value,this.label_picks.setString(Math.floor(this.picks_value).toString()),this.shopWindow.isOpen()&&this.shopWindow.refreshCurrentList(),0==playerData.achiev[3]&&this.achievChecker.check_picks()},tryPickBuy:function(){var e=setPicks[playerData.currentPick+1];if(void 0!==e&&!(e.cost_picks>this.picks_value)){for(var t=0;t<e.res_cost.length;++t)if(e.res_cost[t]>playerData.res[t+3])return;if(!(e.rubyCost>playerData.rubies[e.rubyType])){for(this.picks_value=playerData.picks-=e.cost_picks,t=0;t<e.res_cost.length;++t)e.res_cost[t]&&(playerData.res[t+3]-=e.res_cost[t],this.res_hub.updateRes(t+3));playerData.rubies[e.rubyType]-=e.rubyCost,this.res_hub.updateResRubies(e.rubyType),playerData.currentPick+=1,this.pick.updateData(),this.flyDamageGroup.setValue(this.pick.data.damage,this.onFireEnable),this.shopWindow.refreshPickList(),audioAllowed&&cc.audioEngine.playEffect(res.sfx_buy)}}},tryHelperBuy:function(e){var t=e.idb;playerData.helpers[t]>9||setHelpers[t].cost>playerData.picks||setHelpers[t].soilCost>playerData.res[t]||setHelpers[t].ruby1Type>-1&&setHelpers[t].ruby1Cost>playerData.rubies[setHelpers[t].ruby1Type]||setHelpers[t].ruby2Type>-1&&setHelpers[t].ruby2Cost>playerData.rubies[setHelpers[t].ruby2Type]||(this.picks_value=playerData.picks-=setHelpers[t].cost,t<9&&(playerData.res[t]-=setHelpers[t].soilCost),setHelpers[t].ruby1Type>-1&&(playerData.rubies[setHelpers[t].ruby1Type]-=setHelpers[t].ruby1Cost,this.res_hub.updateResRubies(setHelpers[t].ruby1Type)),setHelpers[t].ruby2Type>-1&&(playerData.rubies[setHelpers[t].ruby2Type]-=setHelpers[t].ruby2Cost,this.res_hub.updateResRubies(setHelpers[t].ruby2Type)),playerData.helpers[t]+=1,9==t?this.base_critical_chance=5+3*playerData.helpers[9]:(playerData.pps=this.pps_value+=setHelpers[t].pps,this.label_pps.setString(this.pps_value.toString())),this.res_hub.updateRes(t),this.helpers_hub.addHelper(t),setHelpers[t].cost=Math.floor(1.4*setHelpers[t].cost),setHelpers[t].soilCost+=5,setHelpers[t].ruby1Cost+=5,setHelpers[t].ruby2Cost+=5,this.shopWindow.refreshHelperCost(t),this.helpersCount<100&&this.achievChecker.check_helpers(++this.helpersCount),audioAllowed&&cc.audioEngine.playEffect(res.sfx_buy))},trySoilBuy:function(){var e=playerData.soilsAllowed-1;500>playerData.res[e]||(playerData.res[e]-=500,this.res_hub.updateRes(e),playerData.soilsAllowed+=1,this.shopWindow.refreshSoilList(),audioAllowed&&cc.audioEngine.playEffect(res.sfx_buy))},tryChestBuy:function(e){var t=e.idb;if(!(setChest[t]>this.picks_value)){this.picks_value=playerData.picks-=setChest[t],++playerData.chestCount[t],setChest[t]=Math.floor(1.5*setChest[t]),this.shopWindow.refreshChestLabels(t),this.shopWindow.openChest(t);var s=630;if(0==t){this.unschedule(this.closeChest1),this.scheduleOnce(this.closeChest1,1);for(var i=0;i<8;++i){var a=rnd.integerInRange(0,8);++playerData.res[a],this.res_hub.updateRes(a),this.framesBoomChest[i]="box_soil_0"+(a+1).toString()}}else{for(this.unschedule(this.closeChest2),this.scheduleOnce(this.closeChest2,1),i=0;i<8;++i){var h=rnd.integerInRange(0,4);++playerData.rubies[h],this.res_hub.updateResRubies(h),this.framesBoomChest[i]="rubies_"+h.toString()}s=480}this.chestBoomGroup.boom2(this.framesBoomChest,160,s),this.unschedule(this.updateChestBoom),this.schedule(this.updateChestBoom,.033),audioAllowed&&cc.audioEngine.playEffect(res.sfx_buy)}},onGetAchiev:function(e){this.unschedule(this.fadeOutAchievText),this.unschedule(this.startFadeOutAchievText),this.topLabel.setString(cc.loader.getRes(res.strings).achiev_cap[e]),this.topLabel.opacity=255,this.topLabel.setVisible(!0),this.scheduleOnce(this.startFadeOutAchievText,5),this.achievWindow.setGetLabel(e),audioAllowed&&cc.audioEngine.playEffect(res.sfx_achievement)},startFadeOutAchievText:function(e){this.schedule(this.fadeOutAchievText,.033)},fadeOutAchievText:function(e){this.topLabel.opacity-=250*e,this.topLabel.opacity<=0&&(this.unschedule(this.fadeOutAchievText),this.topLabel.setVisible(!1))},closeChest1:function(e){this.shopWindow.closeChests(0)},closeChest2:function(e){this.shopWindow.closeChests(1)},updateChestBoom:function(e){this.chestBoomGroup.update2(e)&&this.unschedule(this.updateChestBoom)},saveData:function(e){cc.sys.localStorage&&localStorage.setItem("pickcraftsavegame",JSON.stringify(playerData))}}),PlayScene=cc.Scene.extend({onEnter:function(){this._super(),this.addChild(new PlayLayer)}}); |