EF2 Changelog

Builds / 1.13.89

Update 1.13.89

Compared with 1.13.84 · published Wed, 19 Aug 2026 06:32:35 GMT · live channel

No summary yet.

Text changes 2

KeyText
GAME_1597 ~ Closes daily at 23:50 (UTC) · Opens at 00:00 (UTC)Opens at 00:00 (UTC) (if there is no raid in progress)
GAME_1605 ~ # Opened Raids close at 23:50 (UTC) on the same day.# Open raids will close after 72 hours.

Translations touched: de (2), es (2), fr (2), id (2), it (2), ja (2), ko (2), pt (2), ru (2), th (2), tr (2), vi (2), zh-CN (2), zh-TW (2)

Code 35 changes in 13 classes

Minified client code with short names blanked for diffing. Class names are real.

TowerClearDeckItemRenderer 2 hunks, 43 statements
- super(),qt(this,"btnTabRecent"),qt(this,"btnTabBest"),qt(this,"lblEmpty"),qt(this,"rows",[]),qt(this,"currentTab","recent"),qt(this,"recentList",[]),qt(this,"bestList",[]),qt(this,"applyCallback",null),this.outSideClickHide=!0,this.width=640,this.height=640,this.title=LG.getText("GAME_1622","클리어덱");
- const i=this.width-50;
- this.btnTabRecent=new oG(LG.getText("GAME_1623","최근")),this.btnTabRecent.color=oG.BLUE,this.btnTabRecent.width=110,this.btnTabRecent.height=34,this.btnTabRecent.x=25,this.btnTabRecent.y=70,this.btnTabRecent.onClick=()=>this.setTab("recent"),this.contentContainer.addChild(this.btnTabRecent),this.btnTabBest=new oG(LG.getText("GAME_1624","추천")),this.btnTabBest.color=oG.BLUE,this.btnTabBest.width=110,this.btnTabBest.height=34,this.btnTabBest.x=143,this.btnTabBest.y=70,this.btnTabBest.onClick=()=>this.setTab("best"),this.contentContainer.addChild(this.btnTabBest);
- const s=this.btnTabRecent.y+this.btnTabRecent.height+12;
- for(let e=0;
- e<t.ROW_COUNT;
- e++){
- const n=new Ue;
- n.x=25,n.y=s+98*e,this.contentContainer.addChild(n);
- const h=new DB;
- h.setIndex(2),h.width=i,h.height=92,n.addChild(h);
- const r=new hD("",16777215,wL.DEFAULT_OUTLINE_FONT_OPTION_16);
- r.textColor=16777215,r.x=12,r.y=8,n.addChild(r);
- const o=new oG(LG.getText("GAME_1626","적용"));
- o.color=oG.GREEN,o.width=86,o.height=28,o.x=i-o.width-10,o.y=5,o.onClick=()=>this.onClickApply(e),n.addChild(o);
- const a=new oG(t.likeText(0));
- a.color=oG.BROWN,a.width=110,a.height=28,a.x=o.x-a.width-8,a.y=5,a.onClick=()=>this.onClickLike(e),n.addChild(a);
- const c=[];
+ super(),qt(this,"bg"),qt(this,"lblName"),qt(this,"icons",[]),qt(this,"likeBox",new Ue),qt(this,"likeIcon"),qt(this,"lblLike"),qt(this,"btnApply"),qt(this,"vo",null),this.bg=new DB,this.bg.setIndex(2),this.bg.x=5,this.bg.width=t.ROW_W,this.bg.height=t.ROW_H,this.addChild(this.bg),this.lblName=new hD("",16777215,wL.DEFAULT_OUTLINE_FONT_OPTION_16),this.lblName.textColor=16777215,this.lblName.eventMode="none",this.lblName.x=this.bg.x+12,this.lblName.y=8,this.addChild(this.lblName),this.btnApply=new tzt(LG.getText("GAME_1626","적용"),86),this.btnApply.autoResize=!1,this.btnApply.lbl.textSize=15,this.btnApply.width=86,this.btnApply.height=28,this.btnApply.x=this.bg.x+this.bg.width-this.btnApply.width-10,this.btnApply.y=5,this.btnApply.onClick=()=>{
+ this.vo&&t.onApplyClick&&t.onApplyClick(this.vo)}
+ ,this.addChild(this.btnApply),this.likeIcon=new $e(tS.getTexture("UI_Ekkorr",t.LIKE_ICON)),this.likeIcon.scale.set(.6),this.likeIcon.eventMode="none",this.likeBox.addChild(this.likeIcon),this.lblLike=new hD("0",16777215,wL.DEFAULT_OUTLINE_FONT_OPTION_16),this.lblLike.textColor=16777215,this.lblLike.eventMode="none",this.lblLike.x=this.likeIcon.width+4,this.lblLike.y=.5*(this.likeIcon.height-this.lblLike.height),this.likeBox.addChild(this.lblLike),this.likeBox.eventMode="static",this.likeBox.cursor="pointer",this.likeBox.on("pointertap",()=>{
+ this.vo&&t.onLikeClick&&t.onLikeClick(this.vo)}
+ ),this.likeBox.y=5+.5*(this.btnApply.height-this.likeIcon.height),this.addChild(this.likeBox);
- t.scale=.42,t.x=10+47.5*i,t.y=40,n.addChild(t),c.push(t)}
- this.rows.push({
- root:n,lblName:r,btnLike:a,btnApply:o,icons:c}
- )}
- this.lblEmpty=new hD(LG.getText("GAME_1627","아직 클리어한 유저가 없습니다."),16777215,wL.DEFAULT_OUTLINE_FONT_OPTION_18),this.lblEmpty.textColor=13421772,this.lblEmpty.y=s+180,this.lblEmpty.visible=!1,this.contentContainer.addChild(this.lblEmpty)}
+ t.scale=.42,t.x=this.bg.x+10+47.5*i,t.y=40,this.addChild(t),this.icons.push(t)}
+ }
+ setData(i){
+ const s=i;
+ this.vo=s,this.lblName.text=`${
+ s.name}
+  ( Lv. ${
+ s.knightLevel}
+  )`,this.lblLike.text=String(s.likeCount),this.lblLike.x=this.likeIcon.width+4,this.likeBox.alpha=s.liked||s.mine?.5:1,this.likeBox.x=this.btnApply.x-8-(this.likeIcon.width+4+this.lblLike.width);
+ const e=String(s.deck||"").split("|");
+ for(let n=0;
+ n<t.SLOT_COUNT;
+ n++){
+ const t=this.icons[n],i=(e[n]||"0_0").split("_"),s=parseInt(i[0],10)||0,h=parseInt(i[1],10)||0;
+ s>0?(t.visible=!0,t.setDataWithKindNum(s,h)):t.visible=!1}
+ }
+ }
+ ;
+ zt(Y0t,"TowerClearDeckItemRenderer"),qt(Y0t,"onLikeClick",null),qt(Y0t,"onApplyClick",null),qt(Y0t,"LIKE_ICON","Icon_Heart2"),qt(Y0t,"SLOT_COUNT",12),qt(Y0t,"ROW_W",610),qt(Y0t,"ROW_H",92);
+ let X0t=Y0t;
+ const J0t=class t extends wG{
+ constructor(){
+ super(),qt(this,"btnTabRecent"),qt(this,"btnTabBest"),qt(this,"list"),qt(this,"lblEmpty"),qt(this,"currentTab","recent"),qt(this,"recentList",[]),qt(this,"bestList",[]),qt(this,"applyCallback",null),this.outSideClickHide=!0,this.width=640,this.height=640,this.title=LG.getText("GAME_1622","클리어덱"),this.btnTabRecent=new tzt(LG.getText("GAME_1623","최근"),130,40),this.btnTabRecent.height=40,this.btnTabRecent.setCompactStyle(16,40),this.btnTabRecent.x=25,this.btnTabRecent.y=66,this.btnTabRecent.onClick=()=>this.setTab("recent"),this.contentContainer.addChild(this.btnTabRecent),this.btnTabBest=new tzt(LG.getText("GAME_1624","추천"),130,40),this.btnTabBest.height=40,this.btnTabBest.setCompactStyle(16,40),this.btnTabBest.x=this.btnTabRecent.x+this.btnTabRecent.width+6,this.btnTabBest.y=this.btnTabRecent.y,this.btnTabBest.onClick=()=>this.setTab("best"),this.contentContainer.addChild(this.btnTabBest);
+ const t=this.btnTabRecent.y+this.btnTabRecent.height+10,i=this.height-t-20;
+ this.list=new U5(X0t,640,i),this.list.x=10,this.list.y=t,this.contentContainer.addChild(this.list),this.lblEmpty=new hD(LG.getText("GAME_1627","아직 클리어한 유저가 없습니다."),16777215,wL.DEFAULT_OUTLINE_FONT_OPTION_18),this.lblEmpty.textColor=13421772,this.lblEmpty.y=t+180,this.lblEmpty.visible=!1,this.contentContainer.addChild(this.lblEmpty)}
TowerClearDeckPopup 7 hunks, 32 statements
- static likeText(t){
- return LG.getValueReplace("GAME_1625","##",t,`좋아요 ${
- t}
- `)}
- F`,this.setTab("recent"),this.show()):SG.getInstance().showError(s)}
+ F`,X0t.onLikeClick=this.onClickLike.bind(this),X0t.onApplyClick=this.onClickApply.bind(this),this.setTab("recent"),this.show()):SG.getInstance().showError(s)}
- this.currentTab=t,this.btnTabRecent.alpha="recent"===t?1:.5,this.btnTabBest.alpha="best"===t?1:.5,this.renderList()}
+ this.currentTab=t,this.btnTabRecent.selected="recent"===t,this.btnTabBest.selected="best"===t,this.renderList()}
- this.lblEmpty.visible=0===i.length,this.lblEmpty.visible&&(this.lblEmpty.x=.5*(this.width-this.lblEmpty.width));
- for(let s=0;
- s<this.rows.length;
- s++){
- const e=this.rows[s],n=i[s];
- if(!n){
- e.root.visible=!1;
- continue}
- e.root.visible=!0,e.lblName.text=`${
- n.name}
-  ( Lv. ${
- n.knightLevel}
-  )`,e.btnLike.text=t.likeText(n.likeCount),e.btnLike.alpha=n.liked||n.mine?.5:1;
- const h=String(n.deck||"").split("|");
- for(let i=0;
- i<t.SLOT_COUNT;
- i++){
- const t=e.icons[i],s=(h[i]||"0_0").split("_"),n=parseInt(s[0],10)||0,r=parseInt(s[1],10)||0;
- n>0?(t.visible=!0,t.setDataWithKindNum(n,r)):t.visible=!1}
- }
- }
+ this.lblEmpty.visible=0===t.length,this.lblEmpty.visible&&(this.lblEmpty.x=.5*(this.width-this.lblEmpty.width)),this.list.dataProvider=[...t]}
- const i=this.getCurrentList()[t];
- if(!i)return;
- const i=this.getCurrentList()[t];
- i&&this.applyCallback&&(this.applyCallback(i.deck),this.hide())}
+ this.applyCallback&&(this.applyCallback(t.deck,t.id),this.hide())}
- zt(Y0t,"TowerClearDeckPopup"),qt(Y0t,"_instance"),qt(Y0t,"SLOT_COUNT",12),qt(Y0t,"ROW_COUNT",5);
+ zt(J0t,"TowerClearDeckPopup"),qt(J0t,"_instance");
TowerReadyPopup 10 hunks, 27 statements
- super(),qt(this,"vsImage",new $e(tS.getTexture("UI_Ekkorr","UI_VS"))),qt(this,"lblTitle",new hD("",16777215,wL.DEFAULT_OUTLINE_FONT_OPTION_17)),qt(this,"allyBtns",[]),qt(this,"enemyBtns",[]),qt(this,"battleContainer",new Ue),qt(this,"btnStart",new oG("시작")),qt(this,"btnClearAll"),qt(this,"btnClearDecks"),qt(this,"lblCapacity",new hD("",16777215,wL.DEFAULT_OUTLINE_FONT_OPTION_16)),qt(this,"lblEntryText",new hD("",16768358,wL.DEFAULT_OUTLINE_FONT_OPTION_16)),qt(this,"heroList"),qt(this,"selectedSlot",-1),qt(this,"teamKindNums",[]),qt(this,"teamTrans",[]),qt(this,"heroVOs",[]),qt(this,"floorVO",null),qt(this,"enemyOverlays",[]),qt(this,"maxAllies",12);
+ super(),qt(this,"vsImage",new $e(tS.getTexture("UI_Ekkorr","UI_VS"))),qt(this,"lblTitle",new hD("",16777215,wL.DEFAULT_OUTLINE_FONT_OPTION_17)),qt(this,"allyBtns",[]),qt(this,"enemyBtns",[]),qt(this,"battleContainer",new Ue),qt(this,"btnStart",new oG("시작")),qt(this,"btnClearAll"),qt(this,"btnClearDecks"),qt(this,"lblCapacity",new hD("",16777215,wL.DEFAULT_OUTLINE_FONT_OPTION_16)),qt(this,"lblEntryText",new hD("",16768358,wL.DEFAULT_OUTLINE_FONT_OPTION_16)),qt(this,"entryFullText",""),qt(this,"heroList"),qt(this,"selectedSlot",-1),qt(this,"teamKindNums",[]),qt(this,"teamTrans",[]),qt(this,"heroVOs",[]),qt(this,"floorVO",null),qt(this,"appliedDeckId",0),qt(this,"appliedDeckFloor",0),qt(this,"appliedDeckSnapshot",""),qt(this,"enemyOverlays",[]),qt(this,"maxAllies",12);
- this.recenterBattleContainer(),this.lblCapacity.y=this.lblTitle.y,this.addChild(this.lblCapacity),this.updateCapacityPosition();
+ this.recenterBattleContainer();
+ const h=120;
+ this.btnClearAll=new tzt(LG.getText("GAME_1620","모두 비우기"),h),this.btnClearAll.autoResize=!1,this.btnClearAll.lbl.textSize=15,this.btnClearAll.width=h,this.btnClearAll.height=30,this.btnClearAll.x=this.bg.width-this.btnClearAll.width-15,this.btnClearAll.y=this.lblTitle.y+.5*(this.lblTitle.height-this.btnClearAll.height),this.btnClearAll.onClick=()=>this.onClearAllClick(),this.addChild(this.btnClearAll),this.btnClearDecks=new tzt(LG.getText("GAME_1622","클리어덱"),h),this.btnClearDecks.autoResize=!1,this.btnClearDecks.lbl.textSize=15,this.btnClearDecks.width=h,this.btnClearDecks.height=30,this.btnClearDecks.x=this.btnClearAll.x-this.btnClearDecks.width-4,this.btnClearDecks.y=this.btnClearAll.y,this.btnClearDecks.onClick=()=>this.onClickClearDecks(),this.btnClearDecks.visible=t.SHOW_CLEAR_DECKS,this.addChild(this.btnClearDecks);
- this.lblEntryText.x=15,this.lblEntryText.y=h,this.addChild(this.lblEntryText),this.btnClearAll=new oG(LG.getText("GAME_1620","모두 비우기")),this.btnClearAll.color=oG.BROWN,this.btnClearAll.width=120,this.btnClearAll.height=30,this.btnClearAll.x=this.bg.width-this.btnClearAll.width-15,this.btnClearAll.y=h-5,this.btnClearAll.onClick=()=>this.onClearAllClick(),this.addChild(this.btnClearAll),this.btnClearDecks=new oG(LG.getText("GAME_1622","클리어덱")),this.btnClearDecks.color=oG.BLUE,this.btnClearDecks.width=120,this.btnClearDecks.height=30,this.btnClearDecks.x=this.btnClearAll.x-this.btnClearDecks.width-8,this.btnClearDecks.y=this.btnClearAll.y,this.btnClearDecks.onClick=()=>this.onClickClearDecks(),this.btnClearDecks.visible=t.SHOW_CLEAR_DECKS,this.addChild(this.btnClearDecks);
+ this.lblEntryText.x=15,this.lblEntryText.y=r,this.addChild(this.lblEntryText),this.lblCapacity.y=r,this.addChild(this.lblCapacity),this.updateCapacityPosition();
- this.lblCapacity.x=this.bg.width-this.lblCapacity.width-15}
+ this.lblCapacity.x=this.bg.width-this.lblCapacity.width-15,this.fitEntryText()}
+ fitEntryText(){
+ const i=this.lblCapacity.x-this.lblEntryText.x-10;
+ if(i<=0)return;
+ let s=t.ENTRY_FONT_MAX;
+ for(this.lblEntryText.textSize=s,this.lblEntryText.text=this.entryFullText;
+ this.lblEntryText.width>i&&s>t.ENTRY_FONT_MIN;
+ )s--,this.lblEntryText.textSize=s;
+ if(this.lblEntryText.width<=i)return;
+ let e=this.entryFullText;
+ for(;
+ e.length>1&&this.lblEntryText.width>i;
+ )e=e.slice(0,-1),this.lblEntryText.text=`${
+ e.trimEnd()}
+ …`}
- this.lblEntryText.text=`${
+ this.entryFullText=`${
- `,this.maxAllies=Math.max(1,Math.min(12,(null==(i=t.battleVO)?void 0:i.star1)||12));
+ `,this.fitEntryText(),this.maxAllies=Math.max(1,Math.min(12,(null==(i=t.battleVO)?void 0:i.star1)||12));
- applyRecommendedDeck(t){
+ applyRecommendedDeck(t,i){
+ var s;
- this.selectedSlot=-1,this.pruneInvalidTeamEntries(),this.clampTeamToMax(),this.updateAllyButtons(),this.updateHeroList(),this.saveTeamToLocal(),WF.getInstance().showMessage(LG.getText("GAME_1630","덱을 적용했습니다.\n보유하지 않았거나 입장 조건에 맞지 않는 영웅은 제외됩니다."))}
+ this.selectedSlot=-1,this.pruneInvalidTeamEntries(),this.clampTeamToMax(),this.updateAllyButtons(),this.updateHeroList(),this.saveTeamToLocal(),this.appliedDeckId=i>0?i:0,this.appliedDeckFloor=(null==(s=this.floorVO)?void 0:s.floor)??0,this.appliedDeckSnapshot=this.buildDeckString(),WF.getInstance().showMessage(LG.getText("GAME_1630","덱을 적용했습니다.\n보유하지 않았거나 입장 조건에 맞지 않는 영웅은 제외됩니다."))}
- const t=await pL.getInstance().tower.enter(this.floorVO.floor,this.buildDeckString(),!0);
+ const t=this.buildDeckString(),i=this.appliedDeckId>0&&this.appliedDeckFloor===this.floorVO.floor&&this.appliedDeckSnapshot===t?this.appliedDeckId:void 0,s=await pL.getInstance().tower.enter(this.floorVO.floor,t,i,!0);
- zt(J0t,"TowerReadyPopup"),qt(J0t,"_instance"),qt(J0t,"SHOW_CLEAR_DECKS",!1);
+ zt(Z0t,"TowerReadyPopup"),qt(Z0t,"_instance"),qt(Z0t,"SHOW_CLEAR_DECKS",!0),qt(Z0t,"ENTRY_FONT_MAX",16),qt(Z0t,"ENTRY_FONT_MIN",12);
BattleController 3 hunks, 10 statements
+ if(zR.getInstance().battleContext===NR.Normal){
+ }
- i.battleController=this,i.setData(t),zR.getInstance().applyToHero(i),i.hp=i.maxHp,i.healthBar.setHealthColor(!0),i.kindNum=t.kindNum,i.id=t.id;
+ i.battleController=this;
+ const s=zR.getInstance(),e=s.battleContext;
+ e!==NR.Normal&&s.setBattleContext(NR.Normal);
+ try{
+ i.setData(t),s.applyToHero(i)}
+ finally{
+ e!==NR.Normal&&s.setBattleContext(e)}
+ i.hp=i.maxHp,i.healthBar.setHealthColor(!0),i.kindNum=t.kindNum,i.id=t.id;
TowerService 2 hunks, 6 statements
- async enter(t,i,s=!1){
- return this.post(QR.TOWER.ENTER,i?{
- floor:t,deck:i}
- :{
+ async enter(t,i,s,e=!1){
+ const n={
- ,s)}
+ ;
+ return i&&(n.deck=i),s&&s>0&&(n.appliedDeckId=s),this.post(QR.TOWER.ENTER,n,e)}
ConfigManager 3 hunks, 5 statements
- (s||e>this.wave)&&bD.setTrusted(e),this.wave<=0&&bD.setTrusted(1),this.maxWave=t.safeNum(i.maxWave,this.maxWave),this.maxTeamSlots=t.safeNum(i.maxTeamSlots,this.maxTeamSlots),t.applyNumRevive(i.numRevive),this.numRevive30=Number(i.numRevive30)||0,this.heart=Number(i.heart)||0,this.lastReviveTime=i.lastReviveTime?new Date(i.lastReviveTime).getTime():0,this.updateReviveBuffs(),this.tribe=Number(i.tribe)||0,this.adsEndTime=i.adsEndTime?new Date(i.adsEndTime).getTime():0,this.assistantEndTime=i.assistantEndTime?new Date(i.assistantEndTime).getTime():0,this.assistantPassEndTime=i.assistantPassEndTime?new Date(i.assistantPassEndTime).getTime():0,this.soulRestStartAt=i.soulRestStartAt?new Date(i.soulRestStartAt).getTime():0,this.soulRestEndAt=i.soulRestEndAt?new Date(i.soulRestEndAt).getTime():0,this.bestMedalPerMin=Number(i.bestMedalPerMin)||0,this.bestMedalPerMinAt=i.bestMedalPerMinAt?new Date(i.bestMedalPerMinAt).getTime():0,this.soulRestNextStartAt=i.soulRestNextStartAt?new Date(i.soulRestNextStartAt).getTime():0,this.soulRestSkipCount=Number(i.soulRestSkipCount)||0,void 0!==i.speed15EndTime&&null!==i.speed15EndTime&&(this.speed15EndTime=new Date(i.speed15EndTime).getTime()),void 0!==i.speed20EndTime&&null!==i.speed20EndTime&&(this.speed20EndTime=new Date(i.speed20EndTime).getTime()),this.medalBuffLevel=i.medalBuffLevel,this.goldBuffLevel=i.goldBuffLevel,this.daySkipLevel=i.daySkipLevel,i.activeSkills&&(this.activeSkills=i.activeSkills.split("|").map(Number)),RL.myGuildId=i.guildId}
+ (s||e>this.wave&&!t.isPreReviveSnapshot(i))&&bD.setTrusted(e),this.wave<=0&&bD.setTrusted(1),this.maxWave=t.safeNum(i.maxWave,this.maxWave),this.maxTeamSlots=t.safeNum(i.maxTeamSlots,this.maxTeamSlots),t.applyNumRevive(i.numRevive),this.numRevive30=Number(i.numRevive30)||0,this.heart=Number(i.heart)||0,this.lastReviveTime=i.lastReviveTime?new Date(i.lastReviveTime).getTime():0,this.updateReviveBuffs(),this.tribe=Number(i.tribe)||0,this.adsEndTime=i.adsEndTime?new Date(i.adsEndTime).getTime():0,this.assistantEndTime=i.assistantEndTime?new Date(i.assistantEndTime).getTime():0,this.assistantPassEndTime=i.assistantPassEndTime?new Date(i.assistantPassEndTime).getTime():0,this.soulRestStartAt=i.soulRestStartAt?new Date(i.soulRestStartAt).getTime():0,this.soulRestEndAt=i.soulRestEndAt?new Date(i.soulRestEndAt).getTime():0,this.bestMedalPerMin=Number(i.bestMedalPerMin)||0,this.bestMedalPerMinAt=i.bestMedalPerMinAt?new Date(i.bestMedalPerMinAt).getTime():0,this.soulRestNextStartAt=i.soulRestNextStartAt?new Date(i.soulRestNextStartAt).getTime():0,this.soulRestSkipCount=Number(i.soulRestSkipCount)||0,void 0!==i.speed15EndTime&&null!==i.speed15EndTime&&(this.speed15EndTime=new Date(i.speed15EndTime).getTime()),void 0!==i.speed20EndTime&&null!==i.speed20EndTime&&(this.speed20EndTime=new Date(i.speed20EndTime).getTime()),this.medalBuffLevel=i.medalBuffLevel,this.goldBuffLevel=i.goldBuffLevel,this.daySkipLevel=i.daySkipLevel,i.activeSkills&&(this.activeSkills=i.activeSkills.split("|").map(Number)),RL.myGuildId=i.guildId}
+ static isPreReviveSnapshot(i){
+ const s=t.safeNum(null==i?void 0:i.numRevive,-1);
+ return!(s<0)&&s<Math.max(this.numRevive,this.pendingNumRevive)}
- (s||n>this.wave)&&bD.setTrusted(n),this.wave<=0&&bD.setTrusted(1),this.maxWave=t.safeNum(e.maxWave,this.maxWave),this.accuMedal=t.safeNum(e.accuMedal,this.accuMedal),this.accuWave=t.safeNum(e.accuWave,this.accuWave),this.medalBuyCount=t.safeNum(e.medalBuyCount,this.medalBuyCount),this.needRevive=Boolean(e.needRevive),this.speed15EndTime=new Date(e.speed15EndTime).getTime(),this.speed20EndTime=new Date(e.speed20EndTime).getTime(),this.medalBuffLevel=t.safeNum(e.medalBuffLevel,this.medalBuffLevel),this.goldBuffLevel=t.safeNum(e.goldBuffLevel,this.goldBuffLevel),this.daySkipLevel=t.safeNum(e.daySkipLevel,this.daySkipLevel),this.lastReviveTime=e.lastReviveTime?new Date(e.lastReviveTime).getTime():0,t.applyNumRevive(e.numRevive),this.numRevive30=t.safeNum(e.numRevive30,this.numRevive30),this.heart=t.safeNum(e.heart,this.heart),this.tribe=t.safeNum(e.tribe,this.tribe),this.adsEndTime=e.adsEndTime?new Date(e.adsEndTime).getTime():0,this.assistantEndTime=e.assistantEndTime?new Date(e.assistantEndTime).getTime():0,this.assistantPassEndTime=e.assistantPassEndTime?new Date(e.assistantPassEndTime).getTime():0,this.soulRestStartAt=e.soulRestStartAt?new Date(e.soulRestStartAt).getTime():0,this.soulRestEndAt=e.soulRestEndAt?new Date(e.soulRestEndAt).getTime():0,this.bestMedalPerMin=Number(e.bestMedalPerMin)||0,this.bestMedalPerMinAt=e.bestMedalPerMinAt?new Date(e.bestMedalPerMinAt).getTime():0,this.soulRestNextStartAt=e.soulRestNextStartAt?new Date(e.soulRestNextStartAt).getTime():0,this.soulRestSkipCount=Number(e.soulRestSkipCount)||0,this.maxTeamSlots=t.safeNum(e.maxTeamSlots,this.maxTeamSlots),this.updateReviveBuffs(),e.activeSkills&&(this.activeSkills=e.activeSkills.split("|").map(Number)),"honorCoin"in e&&(this.honorCoin=Number(e.honorCoin))}
+ (s||n>this.wave&&!t.isPreReviveSnapshot(e))&&bD.setTrusted(n),this.wave<=0&&bD.setTrusted(1),this.maxWave=t.safeNum(e.maxWave,this.maxWave),this.accuMedal=t.safeNum(e.accuMedal,this.accuMedal),this.accuWave=t.safeNum(e.accuWave,this.accuWave),this.medalBuyCount=t.safeNum(e.medalBuyCount,this.medalBuyCount),this.needRevive=Boolean(e.needRevive),this.speed15EndTime=new Date(e.speed15EndTime).getTime(),this.speed20EndTime=new Date(e.speed20EndTime).getTime(),this.medalBuffLevel=t.safeNum(e.medalBuffLevel,this.medalBuffLevel),this.goldBuffLevel=t.safeNum(e.goldBuffLevel,this.goldBuffLevel),this.daySkipLevel=t.safeNum(e.daySkipLevel,this.daySkipLevel),this.lastReviveTime=e.lastReviveTime?new Date(e.lastReviveTime).getTime():0,t.applyNumRevive(e.numRevive),this.numRevive30=t.safeNum(e.numRevive30,this.numRevive30),this.heart=t.safeNum(e.heart,this.heart),this.tribe=t.safeNum(e.tribe,this.tribe),this.adsEndTime=e.adsEndTime?new Date(e.adsEndTime).getTime():0,this.assistantEndTime=e.assistantEndTime?new Date(e.assistantEndTime).getTime():0,this.assistantPassEndTime=e.assistantPassEndTime?new Date(e.assistantPassEndTime).getTime():0,this.soulRestStartAt=e.soulRestStartAt?new Date(e.soulRestStartAt).getTime():0,this.soulRestEndAt=e.soulRestEndAt?new Date(e.soulRestEndAt).getTime():0,this.bestMedalPerMin=Number(e.bestMedalPerMin)||0,this.bestMedalPerMinAt=e.bestMedalPerMinAt?new Date(e.bestMedalPerMinAt).getTime():0,this.soulRestNextStartAt=e.soulRestNextStartAt?new Date(e.soulRestNextStartAt).getTime():0,this.soulRestSkipCount=Number(e.soulRestSkipCount)||0,this.maxTeamSlots=t.safeNum(e.maxTeamSlots,this.maxTeamSlots),this.updateReviveBuffs(),e.activeSkills&&(this.activeSkills=e.activeSkills.split("|").map(Number)),"honorCoin"in e&&(this.honorCoin=Number(e.honorCoin))}
GameOverPopup 2 hunks, 4 statements
- tYt.cancel(),OD.setUserInfo(t.body,!0),OD.maxWave>e&&uS.getInstance().dispatchCustomEvent("PassStatus"),tH.getInstance().updateAll(),Hhi.getInstance().update(),LU.getInstance().update(),Roi.getInstance().updateProfileLayout(),Roi.getInstance().loadHeroPresent(),VA.removeData(VA.KEY_GAME_OVER),Cri.getInstance().setData(),Hri.getInstance().setData(),Cri.getInstance().scrollToTop(),t.body.medalEvent&&HG.updateCurrentMedalEvent(t.body.medalEvent);
+ tYt.cancel(),OD.setUserInfo(t.body,!0);
+ const r=OD.wave;
+ OD.maxWave>e&&uS.getInstance().dispatchCustomEvent("PassStatus"),tH.getInstance().updateAll(),$hi.getInstance().update(),LU.getInstance().update(),Poi.getInstance().updateProfileLayout(),Poi.getInstance().loadHeroPresent(),VA.removeData(VA.KEY_GAME_OVER),kri.getInstance().setData(),$ri.getInstance().setData(),kri.getInstance().scrollToTop(),t.body.medalEvent&&HG.updateCurrentMedalEvent(t.body.medalEvent);
- nB.getInstance().start(),hai.getInstance().restartFromWave1(),hai.getInstance().udpateHero(vR.getInstance().castleVO)}
+ OD.wave!==r&&(OD.setWaveTrusted(r),OD.wave),nB.getInstance().start(),oai.getInstance().restartFromWave1(),oai.getInstance().udpateHero(vR.getInstance().castleVO)}
VersionManager 1 hunks, 1 statements
- zt(qA,"VersionManager"),qt(qA,"gameId","ef2"),qt(qA,"appVersion","1.13.84");
+ zt(qA,"VersionManager"),qt(qA,"gameId","ef2"),qt(qA,"appVersion","1.13.89");
TowerSimulationPopup 1 hunks, 1 statements
- const i=this.floorVO.floor,s=this.floorVO,e=await pL.getInstance().tower.enter(i,void 0,!0);
+ const i=this.floorVO.floor,s=this.floorVO,e=await pL.getInstance().tower.enter(i,void 0,void 0,!0);
Delay 1 hunks, 1 statements
- ...Mbi(),[i]:s}
+ ...Abi(),[i]:s}
NetworkTimeout 1 hunks, 1 statements
- ...Kbi,...i}
+ ...qbi,...i}
RecaptchaVerifier 1 hunks, 1 statements
- ...CSi}
+ ...kSi}
BrowserPopupRedirectResolver 1 hunks, 1 statements
- ...xTi,width:e.toString(),height:n.toString(),top:h,left:r}
+ ...NTi,width:e.toString(),height:n.toString(),top:h,left:r}