Builds / 1.14.68
Update 1.14.68
Compared with 1.14.67 · published Tue, 22 Sep 2026 00:05:03 GMT · live channel
No summary yet.
Text changes 16
| Key | Text | |
|---|---|---|
| UNIT_NATK_105 | + | Throws a fireball to attack an enemy. On hit, the fireball splits into several smaller fireballs that each attack nearby enemies before returning. |
| UNIT_NATK_106 | + | Throws a spear to deal damage to an enemy. |
| UNIT_NATK_107 | + | Fires bullets continuously to deal damage to an enemy. |
| UNIT_NATK_108 | + | Fires freezing arrows at multiple enemies, briefly freezing them and creating ice pillars where the arrows hit. Enemies near the pillars have reduced Movement Speed and Attack Speed. Also fires additional arrows in untargeted directions to set up ice pillars in advance. |
| UNIT_NATK_109 | + | Throws a fireball to attack an enemy. On hit, the fireball splits into several smaller fireballs that each attack nearby enemies before returning. |
| UNIT_NATK_110 | + | Throws a spear to deal damage to an enemy. |
| UNIT_NATK_111 | + | Fires bullets continuously to deal damage to an enemy. |
| UNIT_NATK_112 | + | Fires freezing arrows at multiple enemies, briefly freezing them and creating ice pillars where the arrows hit. Enemies near the pillars have reduced Movement Speed and Attack Speed. Also fires additional arrows in untargeted directions to set up ice pillars in advance. |
| UNIT_SATK_105 | + | Scatters multiple exploding fireballs in all directions, dealing damage over a wide area. |
| UNIT_SATK_106 | + | Fires multiple homing feathers. They deal damage when they hit enemies and restore HP proportional to Max HP when they hit allies. |
| UNIT_SATK_107 | + | Splits into multiple illusions that scatter in all directions, then unleashes a barrage of bullets in every direction. |
| UNIT_SATK_108 | + | Detonates the ice pillars placed on the battlefield one after another, freezing nearby enemies and dealing damage. |
| UNIT_SATK_109 | + | Scatters multiple exploding fireballs in all directions, dealing damage over a wide area. |
| UNIT_SATK_110 | + | Fires multiple homing feathers. They deal damage when they hit enemies and restore HP proportional to Max HP when they hit allies. |
| UNIT_SATK_111 | + | Splits into multiple illusions that scatter in all directions, then unleashes a barrage of bullets in every direction. |
| UNIT_SATK_112 | + | Detonates the ice pillars placed on the battlefield one after another, freezing nearby enemies and dealing damage. |
Translations touched: de (16), es (16), fr (16), id (16), it (16), ja (16), ko (16), pt (16), ru (16), th (16), tr (16), vi (16), zh-CN (16), zh-TW (16)
Assets 2
| File | Change | Size | Preview |
|---|---|---|---|
assets/ekkorr/UI_Ekkorr.png |
removed | 5,106.4 KB → gone |
|
assets/ekkorr/UI_Ekkorr_unpacked_rgb_ETC1_RGB_face_0_layer_0000.png |
removed | 3,062.2 KB → gone |
|
Code 89 changes in 51 classes
Minified client code with short names blanked for diffing. Class names are real.
- ServerRejected 772
- MiniAscentDeployPopup 273
- StampMark 84
- MiniAscentService 45
- Timer 28
- URLManager 24
- RightBottomMenus 16
- Pi 13
- GuildWarBattlePopupV3 6
- Fr 4
- Archery2GameScene 4
- SHA256 3
- SuiProvider 3
- WalletPopup 3
- Zr 2
- GuildWarBattleController 2
- BattleController 2
- GuildBarrackRowItemRenderer 2
- GuildWarBattleReadyPopup 2
- GuildWarSquadsPopup 2
- GuildWarTierAssignPopup 2
- LocalDataManager 1
- VersionManager 1
- ArrayUtil 1
- TreasureBuffAccessor 1
- DataManager 1
- AutoTogglePill 1
- Sr 1
- Ma 1
- Yp 1
- SuiStandardProvider 1
- AppReadyEvent 1
- SolProvider 1
- OkxwalletInjectConnector 1
- TcRootElement 1
- WalletSelectPopup 1
- BuffStatusPopup 1
- FavoritePetSubView 1
- TreasureSubView 1
- GuildBarracksRaceView 1
- GuildMainSubView 1
- GuildRaidBattleReadyPopup 1
- GuildWarHistoryItemRenderer 1
- GuildWarTournamentRewardGuidePopup 1
- GuildWarCombatLogItemRenderer 1
- GuildWarMemberStatusItemRenderer 1
- GuildWarTargetMarkerItemRenderer 1
- Delay 1
- NetworkTimeout 1
- RecaptchaVerifier 1
- BrowserPopupRedirectResolver 1
ServerRejected 1 hunks, 772 statements
+ )); + function Kwi(t){ + return Array.from({ + length:5} + ,(i,s)=>t[s]??null)} + function zwi(t){ + const i=Kwi(t.ally),s=Kwi(t.enemy),e=Xt(t=>t?t.soldierTiers.map(t=>({ + ...t} + )):[],"tiers"); + return{ + allyHeroes:i.map(t=>(null==t?void 0:t.heroKindNum)??0),allyHeroTrans:i.map(t=>(null==t?void 0:t.heroTrans)??0),allyCorpSoldierTiers:i.map(e),allyKnightLevel:t.allyLevel,allyHeroLevelBonus:0,allyTransPoints:null,allyPetBuffs:null,enemyHeroes:s.map(t=>(null==t?void 0:t.heroKindNum)??0),enemyHeroTrans:s.map(t=>(null==t?void 0:t.heroTrans)??0),enemyCorpSoldierTiers:s.map(e),enemyKnightLevel:t.enemyLevel,enemyHeroLevelBonus:0,enemyTransPoints:null,enemyPetBuffs:null} + } + function qwi(t,i){ + if("newHero"===t.type)return t.heroKind??0; + const s=i[t.corp]; + return s?"heroUp"===t.type?s.heroKind:s.soldierKind||t.soldierKind||0:0} + function Xwi(t){ + return t.counts.reduce((t,i)=>t+i,0)} + function Ywi(t,i){ + return t.soldierKind<=0?[]:t.counts.flatMap((s,e)=>s>0?[{ + kindNum:0===e||i<=0?t.soldierKind:i,trans:Math.max(0,e-1),count:s} + ]:[])} + function Jwi(t){ + return(Math.max(1,t)-1)%4+1} + function Qwi(t){ + return 2===t||3===t} + function Zwi(t){ + return Array.from({ + length:5} + ,(i,s)=>s<t?s:-1)} + function tvi(t,i){ + if(!Array.isArray(t)||5!==t.length)return Zwi(i); + const s=new Set,e=t.map(t=>{ + const e=Number.isInteger(t)&&t>=0&&t<i&&!s.has(t); + return e&&s.add(t),e?t:-1} + ); + for(let n=0; + n<i; + n++){ + if(s.has(n))continue; + const t=e.indexOf(-1); + if(t<0)return Zwi(i); + e[t]=n,s.add(n)} + return e} + function ivi(t,i,s){ + const e=[...t]; + return[e[i],e[s]]=[e[s],e[i]],e} + function svi(t,i){ + return i.map(i=>i>=0?t[i]??null:null)} + function evi(t,i){ + const s="ally"===i; + if(t){ + const t=[170,330,490].map(t=>t/640),i=[220,430].map(t=>t/640),e=s?.7:.3,n=s?.88:.12; + return[{ + x:t[0],y:e} + ,{ + x:t[1],y:e} + ,{ + x:t[2],y:e} + ,{ + x:i[0],y:n} + ,{ + x:i[1],y:n} + ]} + const e=s?.32:.68,n=s?.12:.88; + return[0,2,4,1,3].map((t,i)=>({ + x:i<3?e:n,y:.17+.16*t} + ))} + Xt(Kwi,"pad"),Xt(zwi,"toSetTeamsParams"),Xt(qwi,"cardIconKind"),Xt(Xwi,"totalSoldiers"),Xt(Ywi,"soldierDisplayTiers"),Xt(Jwi,"mapIndexForFloor"),Xt(Qwi,"isVerticalMap"),Xt(Zwi,"defaultFormation"),Xt(tvi,"normalizeFormation"),Xt(ivi,"swapSlots"),Xt(svi,"applyFormation"),Xt(evi,"slotLayout"); + const nvi=class extends Error{ + } + ; + Xt(nvi,"ServerRejected"); + let hvi=nvi; + const rvi=class t{ + constructor(){ + Yt(this,"season",null),Yt(this,"run",null),Yt(this,"lastDefeat",null),Yt(this,"eventActive",!1),Yt(this,"stateError",null)} + static getInstance(){ + return this._instance||(this._instance=new t),this._instance} + unwrap(t){ + if(!t)throw new Error("network"); + if(!1===t.success)throw new hvi(t.errorMessageFromServer??t.errorMessage??"rejected"); + return t.body??t} + apply(t){ + var i; + t&&(t.season&&((null==(i=this.season)?void 0:i.seasonId)!==t.season.seasonId&&(this.lastDefeat=null),this.season=t.season),void 0!==t.run&&(this.run=t.run,this.run&&(this.lastDefeat=null)))} + api(){ + return SL.getInstance().miniAscent} + async fetchState(){ + try{ + const t=this.unwrap(await this.api().state()); + return this.eventActive=!0,this.stateError=null,this.apply(t),t} + catch(Wnt){ + throw Wnt instanceof hvi?(this.eventActive=!1,this.season=null,this.run=null,this.lastDefeat=null,this.stateError="rejected"):this.stateError="network",Wnt} + } + async start(){ + const t=this.unwrap(await this.api().start()); + return this.apply(t),await zA.removeData(zA.KEY_MINI_ASCENT_FORMATION),this.run} + async prepare(){ + return this.unwrap(await this.api().prepare())} + async loadFormation(t){ + const i=await zA.getData(zA.KEY_MINI_ASCENT_FORMATION); + return tvi(i&&this.season&&i.seasonId===this.season.seasonId?i.slots:null,t)} + async saveFormation(t){ + var i; + await zA.saveData(zA.KEY_MINI_ASCENT_FORMATION,{ + seasonId:(null==(i=this.season)?void 0:i.seasonId)??0,slots:t} + )} + async battleStart(){ + const t=this.unwrap(await this.api().battleStart()); + return this.run&&(this.run={ + ...this.run,battlePending:!0} + ),t} + async battleEnd(i,s){ + await zA.saveData(zA.KEY_MINI_ASCENT_PENDING,{ + battleId:i,result:s} + ); + let e=null; + for(let n=0; + n<t.RETRY; + n++)try{ + const t=this.unwrap(await this.api().battleEnd(i,s)); + return await zA.removeData(zA.KEY_MINI_ASCENT_PENDING),this.apply(t),"LOSE"===t.result&&(this.run=null,this.lastDefeat={ + ...t.summary} + ),t} + catch(Wnt){ + if(e=Wnt,Wnt instanceof hvi){ + await zA.removeData(zA.KEY_MINI_ASCENT_PENDING); + break} + await new Promise(i=>setTimeout(i,t.RETRY_DELAY_MS))} + throw e} + async flushPendingResult(){ + const t=await zA.getData(zA.KEY_MINI_ASCENT_PENDING); + if(!(null==t?void 0:t.battleId))return null; + try{ + return await this.battleEnd(t.battleId,t.result)} + catch{ + return null} + } + async pickCard(t){ + const i=this.unwrap(await this.api().pickCard(t)); + return this.apply(i),this.run} + async fetchShop(){ + const t=this.unwrap(await this.api().shop()); + return this.apply(t),t} + async shopBuy(t){ + const i=this.unwrap(await this.api().shopBuy(t)); + return this.apply(i),i} + async shopRefresh(t){ + const i=this.unwrap(await this.api().shopRefresh(t)); + return this.apply(i),i} + async giveUp(){ + const t=this.unwrap(await this.api().giveUp()); + return this.apply(t),this.run=null,t.summary} + } + ; + Xt(rvi,"MiniAscentDataManager"),Yt(rvi,"_instance"),Yt(rvi,"RETRY",3),Yt(rvi,"RETRY_DELAY_MS",1e3); + let ovi=rvi; + const avi=class t extends VQt{ + constructor(){ + super(),Yt(this,"buffContext",$R.MiniGame),Yt(this,"onFinish",null)} + static getInstance(){ + return t.miniInstance||(t.miniInstance=new t),t.miniInstance} + onVictoryCallback(){ + this.finish("WIN")} + onDefeatCallback(){ + this.finish("LOSE")} + finish(i){ + const s=this.onFinish; + this.onFinish=null,setTimeout(()=>{ + TB.getInstance().remove(this.execute,this),s&&s(i)} + ,t.RESULT_DELAY_MS)} + } + ; + Xt(avi,"MiniAscentBattleController"),Yt(avi,"miniInstance"),Yt(avi,"RESULT_DELAY_MS",1500); + let cvi=avi; + const lvi=class t{ + static async openDeploy(i){ + const s=ovi.getInstance(); + let e; + try{ + e=await s.prepare()} + catch(Wnt){ + return lH.getInstance().showMessage(Wnt.message),void(i&&await t.backToLobby())} + const n=await s.loadFormation(e.ally.length),{ + MiniAscentDeployPopup:h} + =await ti(async()=>{ + const{ + MiniAscentDeployPopup:t} + =await Promise.resolve().then(()=>lPi); + return{ + MiniAscentDeployPopup:t} + } + ,void 0),r=h.getInstance(); + if(r.setData(e,n,Jwi(e.floor)),r.onStart=i=>{ + s.saveFormation(i),t.startFloor(i)} + ,!i){ + const{ + MiniAscentLobbyPopup:t} + =await ti(async()=>{ + const{ + MiniAscentLobbyPopup:t} + =await Promise.resolve().then(()=>Uvi); + return{ + MiniAscentLobbyPopup:t} + } + ,void 0); + t.getInstance().hideImmediately()} + r.onBack=()=>{ + i?t.backToLobby():t.showLobby()} + ,r.show()} + static async startFloor(i){ + if(!t.busy){ + t.busy=!0; + try{ + const s=await ovi.getInstance().battleStart(),e=cvi.getInstance(); + e.setMapIndex(Jwi(s.floor)),e.setTeams(zwi({ + ...s,ally:svi(s.ally,i)} + )),e.onFinish=i=>{ + t.onFinish(s.battleId,s.floor,i)} + ,await e.startBattle()} + catch(Wnt){ + lH.getInstance().showMessage(`${ + sB.getText("","전투 시작 실패")} + : ${ + Wnt.message} + `),await t.backToLobby()} + finally{ + t.busy=!1} + } + } + static async onFinish(i,s,e){ + const n=ovi.getInstance(); + let h; + try{ + h=await n.battleEnd(i,e)} + catch(Wnt){ + return lH.getInstance().showMessage(sB.getText("","결과 전송 실패 — 로비에서 다시 전송합니다")),void(await t.backToLobby())} + if("WIN"===h.result)return void(await t.showCardPick(h,s,!0)); + const{ + MiniAscentResultPopup:r} + =await ti(async()=>{ + const{ + MiniAscentResultPopup:t} + =await Promise.resolve().then(()=>xvi); + return{ + MiniAscentResultPopup:t} + } + ,void 0),o=r.getInstance(); + o.setData(h.summary),o.onExit=()=>{ + t.backToLobby()} + ,o.show()} + static async openCardPick(){ + const i=ovi.getInstance().run; + (null==i?void 0:i.offer)&&await t.showCardPick({ + coinGained:0,rewards:[],offer:i.offer,run:i} + ,null,!1)} + static async showCardPick(i,s,e){ + const{ + MiniAscentCardPickPopup:n} + =await ti(async()=>{ + const{ + MiniAscentCardPickPopup:t} + =await Promise.resolve().then(()=>fPi); + return{ + MiniAscentCardPickPopup:t} + } + ,void 0),h=n.getInstance(); + h.setData({ + clearedFloor:s,coinGained:i.coinGained,rewards:i.rewards,offer:i.offer,corps:i.run.corps} + ),h.onDone=(i,s)=>{ + t.afterPick(i,s,e)} + ,h.show()} + static async afterPick(i,s,e){ + if(null!==i)try{ + await ovi.getInstance().pickCard(i)} + catch(Wnt){ + return lH.getInstance().showMessage(Wnt.message),void(await t.backToLobby())} + s?await t.openDeploy(e):e?await t.backToLobby():await t.showLobby()} + static async backToLobby(){ + const i=ici.getInstance(); + i.isIdleBattleActive()||i.returnToIdleBattle(),await t.showLobby()} + static async showLobby(){ + const{ + MiniAscentLobbyPopup:t} + =await ti(async()=>{ + const{ + MiniAscentLobbyPopup:t} + =await Promise.resolve().then(()=>Uvi); + return{ + MiniAscentLobbyPopup:t} + } + ,void 0); + t.getInstance().show()} + } + ; + Xt(lvi,"MiniAscentFlow"),Yt(lvi,"busy",!1); + let uvi=lvi; + const dvi=class extends DG{ + constructor(){ + super(),Yt(this,"panel",new Ff),Yt(this,"closeControl",new Ff),this.width=616,this.bg.visible=!1,this.txtTitle.visible=!1,this.btnClose.visible=!1,this.panel.eventMode="static",this.addChildAt(this.panel,0),this.closeControl.roundRect(0,0,40,40,10).fill(3353894).moveTo(14,14).lineTo(26,26).moveTo(26,14).lineTo(14,26).stroke({ + color:14207928,width:2.5} + ),this.closeControl.eventMode="static",this.closeControl.cursor="pointer",this.closeControl.on("pointertap",t=>{ + t.stopPropagation(),this.onCloseBtnClick()} + ),this.addChild(this.closeControl)} + drawPanel(){ + this.closeControl.position.set(this.width-56,16),this.panel.clear().roundRect(0,6,this.width,this.height,20).fill({ + color:0,alpha:.3} + ).roundRect(0,0,this.width,this.height,20).fill(2170136).stroke({ + width:1.5,color:7034942} + ).moveTo(24,66).lineTo(this.width-24,66).stroke({ + width:1,color:4799790} + )} + getDefaultPositionY(){ + return YA.safeHeight/2} + show(){ + this.drawPanel(),this.parent||(this.resetPostionY(),super.show())} + onBackButton(){ + return this.onCloseBtnClick(),!0} + } + ; + Xt(dvi,"MiniAscentModalPopup"); + let fvi=dvi; + function pvi(t,i){ + if(!t)return""; + const s=Date.parse(t); + if(!Number.isFinite(s)||!Number.isFinite(i))return""; + const e=Math.max(0,Math.floor((s-i)/6e4)),n=Xt(t=>String(t).padStart(2,"0"),"pad"); + return`${ + n(Math.floor(e/1440))} + D ${ + n(Math.floor(e/60)%24)} + H ${ + n(e%60)} + M`} + Xt(pvi,"formatAscentRemaining"); + const gvi=class t extends He{ + constructor(i=24){ + super(); + const s=new Ff; + s.circle(0,0,i).stroke({ + width:3,color:t.COLOR_INK,alpha:.92} + ),s.circle(0,0,i-4).stroke({ + width:1.5,color:t.COLOR_INK,alpha:.6} + ),s.eventMode="none",this.addChild(s); + const e=new Ff; + e.moveTo(.42*-i,.05*i).lineTo(.1*-i,.36*i).lineTo(.46*i,.32*-i).stroke({ + width:Math.max(3,.16*i),color:t.COLOR_INK,alpha:.92,cap:"round",join:"round"} + ),e.eventMode="none",this.addChild(e),this.eventMode="none"} + setDayRotation(t){ + this.rotation=(37*t%13-6)*(Math.PI/180)} + playPop(){ + zk.killTweensOf(this.scale),zk.fromTo(this.scale,{ + x:2.4,y:2.4} + ,{ + x:1,y:1,duration:.38,ease:"back.out(1.8)"} + ),zk.fromTo(this,{ + alpha:0} + ,{ + alpha:1,duration:.16} + )} + } + ; + Xt(gvi,"StampMark"),Yt(gvi,"COLOR_INK",12597547); + let mvi=gvi; + const wvi=class t extends He{ + constructor(){ + super(),Yt(this,"bg"),Yt(this,"lblDay"),Yt(this,"reward"),Yt(this,"lblAmount"),Yt(this,"redDot"),Yt(this,"stamp"),Yt(this,"onTap",null),Yt(this,"data",null); + const i=t.WIDTH,s=t.HEIGHT; + this.bg=new Ff,this.bg.roundRect(0,0,i,s,t.BG_RADIUS).fill({ + color:t.BG_COLOR} + ),this.bg.tint=16777215,this.bg.eventMode="none",this.addChild(this.bg),this.lblDay=new AD("",16777215,IL.DEFAULT_FONT_OPTION_16),this.lblDay.textColor=t.COLOR_DAY,this.lblDay.textSize=12,this.lblDay.x=8,this.lblDay.y=4,this.lblDay.eventMode="none",this.addChild(this.lblDay),this.reward=new J3,this.reward.scale=t.ICON_SCALE,this.reward.hideAmount(),this.reward.eventMode="none",this.addChild(this.reward),this.lblAmount=new AD("",16777215,IL.DEFAULT_OUTLINE_FONT_OPTION_18),this.lblAmount.textColor=t.COLOR_AMOUNT,this.lblAmount.textSize=13,this.lblAmount.eventMode="none",this.addChild(this.lblAmount),this.redDot=new Ve(eS.getTexture("UI_Ekkorr","Icon_RedDot_Red")),this.redDot.visible=!1,this.redDot.eventMode="none",this.addChild(this.redDot),this.stamp=new mvi(24),this.stamp.x=.5*i,this.stamp.y=.5*s,this.stamp.visible=!1,this.addChild(this.stamp),this.eventMode="static",this.cursor="pointer",this.hitArea=new Di(0,0,i,s),this.on("pointerup",()=>{ + this.data&&this.onTap&&this.onTap(this.data)} + )} + get width(){ + return t.WIDTH} + get height(){ + return t.HEIGHT} + update(i){ + this.data=i; + const s=t.WIDTH,e=t.HEIGHT,n="claimed"===i.state,h="claimable"===i.state,r=1===i.milestone; + this.bg.tint=n?t.CLAIMED_TINT:h?t.CLAIMABLE_TINT:r?t.MILESTONE_TINT:16777215,this.lblDay.text=String(i.day),this.lblDay.textColor=h||r?t.COLOR_GOLD:t.COLOR_DAY,t.applyReward(this.reward,i.rewardType,i.num),this.reward.hideAmount(),this.reward.x=.5*(s-this.reward.width*t.ICON_SCALE),this.reward.y=10,this.lblAmount.text="gem"===i.rewardType?String(i.num):`x${ + i.num} + `,this.lblAmount.x=.5*(s-this.lblAmount.width),this.lblAmount.y=e-this.lblAmount.height-3,this.redDot.visible=h,this.redDot.x=s-this.redDot.width-2,this.redDot.y=-2,this.reward.alpha=n?.45:1,this.lblAmount.alpha=n?.45:1,this.stamp.visible=n,n&&this.stamp.setDayRotation(i.day)} + playStampPop(){ + this.stamp.playPop()} + static getRewardName(t){ + switch(t){ + case"gem":return sB.getText("COMMON_350","보석"); + case"heroGacha":return sB.getText("GAME_217","영웅 뽑기권"); + case"heroSelect":return sB.getText("GAME_769","영웅 선택권"); + case"petGacha":return sB.getText("GAME_772","정령의 고원 입장권"); + case"treasureGacha":return sB.getText("GAME_218","유물 뽑기권"); + case"runeTicket":return sB.getText("GAME_1500","크리스탈 뽑기권"); + case"honorCoin":return sB.getText("GAME_88","명예코인"); + case"heroTrans":return sB.getText("GAME_1223","영웅 초월권"); + default:return t} + } + static applyReward(t,i,s){ + switch(i){ + case"gem":default:t.setData(X3.gem,s); + break; + case"heroGacha":t.setData(X3.ticket,s,5,-1,X3.heroGacha); + break; + case"heroSelect":t.setData(X3.ticket,s,-1,1,X3.heroSelect); + break; + case"petGacha":t.setData(X3.ticket,s,1,-1,X3.pet); + break; + case"treasureGacha":t.setData(X3.ticket,s,-1,-1,X3.treasureGacha); + break; + case"runeTicket":t.setData(X3.runeTicket,s); + break; + case"honorCoin":t.setData(X3.honorCoin,s); + break; + case"heroTrans":t.setData(X3.trans,s,5,-1,X3.hero)} + } + } + ; + Xt(wvi,"StampDayCell"),Yt(wvi,"WIDTH",114),Yt(wvi,"HEIGHT",72),Yt(wvi,"ICON_SCALE",.6),Yt(wvi,"COLOR_DAY",10325880),Yt(wvi,"COLOR_GOLD",16767354),Yt(wvi,"COLOR_AMOUNT",16777215),Yt(wvi,"CLAIMED_TINT",9211020),Yt(wvi,"MILESTONE_TINT",16771512),Yt(wvi,"CLAIMABLE_TINT",16774095),Yt(wvi,"BG_COLOR",6904901),Yt(wvi,"BG_RADIUS",10); + let vvi=wvi; + function _vi(t){ + const i=Tx.getInstance().getBookVO(t); + return sB.getText(`UNIT_NAME_${ + t} + `,(null==i?void 0:i.name)??String(t))} + function bvi(t){ + if(0===t.heroStage)return t.heroKind; + const i=Tx.getInstance().getBookVO(t.heroKind); + return i&&i.evolKindNum>0?i.evolKindNum:t.heroKind} + function Mvi(t){ + return[sB.getText("","5성"),sB.getText("","6성"),sB.getText("","6성 1초"),sB.getText("","6성 2초"),sB.getText("","6성 3초")][t]??""} + function yvi(t){ + return[sB.getText("","일반"),sB.getText("","진화"),sB.getText("","1초"),sB.getText("","2초"),sB.getText("","3초")][t]??""} + function Evi(t){ + return sB.getText("","##층").replace(/##/g,String(t))} + function Avi(t,i){ + const s=i[t.corp]; + switch(t.type){ + case"heroUp":return sB.getText("","## 강화").replace(/##/g,_vi(s.heroKind)); + case"soldierAdd":return sB.getText("","+##명 추가").replace(/##/g,String(t.amount??3)); + case"soldierUp":return sB.getText("","##명 강화").replace(/##/g,String(t.amount??3)); + case"newHero":return sB.getText("","## 합류").replace(/##/g,_vi(t.heroKind??0))} + } + function Svi(t,i){ + const s=i[t.corp]; + switch(t.type){ + case"heroUp":return`${ + Mvi(s.heroStage)} + → ${ + Mvi(s.heroStage+1)} + `; + case"soldierAdd":return sB.getText("","##군단 병사 추가").replace(/##/g,String(t.corp+1)); + case"soldierUp":return sB.getText("","##군단 병사 강화").replace(/##/g,String(t.corp+1)); + case"newHero":return sB.getText("","5번째 군단 생성")} + } + function Tvi(t){ + return t.map(t=>`${ + vvi.getRewardName(t.type)} + ${ + t.amount} + `).join(", ")} + Xt(_vi,"unitName"),Xt(bvi,"heroIconKind"),Xt(Mvi,"heroStageLabel"),Xt(yvi,"soldierStageLabel"),Xt(Evi,"floorText"),Xt(Avi,"cardTitle"),Xt(Svi,"cardDesc"),Xt(Tvi,"rewardsText"); + const Cvi=class t extends He{ + constructor(){ + super(),Yt(this,"rows",[]),this.eventMode="none"; + for(let i=0; + i<5; + i++){ + const s=new He; + s.y=i*(t.ROW_H+t.GAP),s.addChild((new Ff).roundRect(0,0,t.WIDTH,t.ROW_H,12).fill(1512465).stroke({ + color:5588789,width:1} + ).moveTo(118,14).lineTo(118,74).stroke({ + color:4076584,width:1} + )); + const e=new F3; + e.scale.set(.8),s.addChild(e); + const n=[]; + for(let i=0; + i<5; + i++){ + const e=new He; + e.x=128+i*(t.SOLDIER_W+8); + const h=new F3; + h.scale.set(.56); + const r=new AD("",16777215,IL.DEFAULT_FONT_OPTION_16); + e.addChild(h,r),s.addChild(e),n.push({ + root:e,icon:h,count:r} + )} + const h=new He,r=new AD("+",7891798,IL.DEFAULT_FONT_OPTION_18); + r.textSize=32,r.position.set(50-r.width/2,22); + const o=new AD(sB.getText("","빈 군단"),10128246,IL.DEFAULT_FONT_OPTION_15); + o.position.set(144,34),h.addChild(r,o),s.addChild(h); + const a=new AD("×0",10128246,IL.DEFAULT_FONT_OPTION_16); + a.position.set(152,34),s.addChild(a),this.addChild(s),this.rows.push({ + hero:e,soldiers:n,empty:h,noSoldiers:a} + )} + this.setData(null)} + setData(i){ + this.rows.forEach((s,e)=>{ + var n; + const h=null==i?void 0:i[e]; + s.hero.visible=!!h,s.empty.visible=!h,s.noSoldiers.visible=!1; + for(const t of s.soldiers)t.root.visible=!1; + if(!h)return; + s.hero.setDataWithKindNum(bvi(h),Math.max(0,h.heroStage-1)),s.hero.position.set((118-s.hero.width)/2,(t.ROW_H-s.hero.height)/2); + const r=Ywi(h,(null==(n=Tx.getInstance().getBookVO(h.soldierKind))?void 0:n.evolKindNum)??0); + s.noSoldiers.visible=0===r.length,r.forEach((i,e)=>{ + const n=s.soldiers[e]; + n.root.visible=!0,n.icon.setDataWithKindNum(i.kindNum,i.trans),n.icon.position.set((t.SOLDIER_W-n.icon.width)/2,10),n.count.text=`×${ + i.count} + `,n.count.position.set((t.SOLDIER_W-n.count.width)/2,60)} + )} + )} + get panelHeight(){ + return 5*t.ROW_H+4*t.GAP} + } + ; + Xt(Cvi,"MiniAscentCorpsPanel"),Yt(Cvi,"WIDTH",568),Yt(Cvi,"ROW_H",88),Yt(Cvi,"GAP",8),Yt(Cvi,"SOLDIER_W",76); + let Ivi=Cvi; + const Ovi=class t extends DG{ + constructor(){ + super(),Yt(this,"lblHeader"),Yt(this,"lblCleared"),Yt(this,"lblCoin"),Yt(this,"btnExit"),Yt(this,"onExit",null),this.btnClose.visible=!1,this.title=sB.getText("","도전 결과"),this.lblHeader=new AD("",14708828,IL.DEFAULT_OUTLINE_FONT_OPTION_24),this.lblHeader.textColor=14708828,this.contentContainer.addChild(this.lblHeader),this.lblCleared=new AD("",16767332,IL.DEFAULT_OUTLINE_FONT_OPTION_32),this.lblCleared.textColor=16767332,this.contentContainer.addChild(this.lblCleared),this.lblCoin=new AD("",IL.DEFAULT_COLOR,IL.DEFAULT_FONT_OPTION_16),this.contentContainer.addChild(this.lblCoin),this.btnExit=new TG(sB.getText("COMMON_1","확인")),this.btnExit.onClick=this.onExitClick.bind(this),this.contentContainer.addChild(this.btnExit)} + static getInstance(){ + return this._instance||(this._instance=new t),this._instance} + setData(t){ + const i=this.width; + let s=80; + this.lblHeader.text=sB.getText("","##에서 패배했습니다.").replace(/##/g,Evi(t.floor)),this.lblHeader.x=.5*(i-this.lblHeader.width),this.lblHeader.y=s,s+=50,this.lblCleared.text=sB.getText("","## 클리어").replace(/##/g,Evi(t.cleared)),this.lblCleared.x=.5*(i-this.lblCleared.width),this.lblCleared.y=s,s+=56,this.lblCoin.text=sB.getText("","획득 코인 : ##").replace(/##/g,String(t.runCoin)),this.lblCoin.x=.5*(i-this.lblCoin.width),this.lblCoin.y=s,s+=50,this.btnExit.width=240,this.btnExit.x=.5*(i-this.btnExit.width),this.btnExit.y=s,s+=this.btnExit.height+30,this.height=s} + onExitClick(){ + const t=this.onExit; + this.onExit=null,this.hide(),queueMicrotask(()=>{ + t&&t()} + )} + onBackButton(){ + return this.onExitClick(),!0} + } + ; + Xt(Ovi,"MiniAscentResultPopup"),Yt(Ovi,"_instance"); + let kvi=Ovi; + const xvi=Object.freeze(Object.defineProperty({ + __proto__:null,MiniAscentResultPopup:kvi} + ,Symbol.toStringTag,{ + value:"Module"} + )),Rvi=class t extends DG{ + constructor(){ + super(),Yt(this,"rows",[]),Yt(this,"lblEmpty"),this.title=sB.getText("","층 보상"); + for(let i=0; + i<t.MAX_ROWS; + i++){ + const t=new AD("",IL.DEFAULT_COLOR,IL.DEFAULT_FONT_OPTION_16); + t.visible=!1,this.contentContainer.addChild(t),this.rows.push(t)} + this.lblEmpty=new AD(sB.getText("","이번 시즌 층 보상이 없습니다"),IL.DEFAULT_COLOR,IL.DEFAULT_FONT_OPTION_16),this.contentContainer.addChild(this.lblEmpty)} + static getInstance(){ + return this._instance||(this._instance=new t),this._instance} + refresh(){ + var i; + const s=(null==(i=ovi.getInstance().season)?void 0:i.floorRewards)??[],e=this.width; + let n=76; + this.lblEmpty.visible=0===s.length,this.lblEmpty.x=.5*(e-this.lblEmpty.width),this.lblEmpty.y=n,0===s.length&&(n+=40); + for(let h=0; + h<this.rows.length; + h++){ + const i=this.rows[h],e=s[h]; + if(i.visible=!!e,!e)continue; + const r=e.claimed?sB.getText("","받음"):""; + i.text=`${ + Evi(e.floor)} + — ${ + Tvi(e.rewards)} + ${ + r} + `,i.textColor=e.claimed?9425295:16777215,i.x=40,i.y=n,n+=t.ROW_H} + this.height=n+30} + } + ; + Xt(Rvi,"MiniAscentRewardsPopup"),Yt(Rvi,"_instance"),Yt(Rvi,"MAX_ROWS",20),Yt(Rvi,"ROW_H",34); + let Pvi=Rvi; + const Nvi=Xt(t=>sB.getText("",t),"text"),Lvi=class t extends fvi{ + constructor(){ + super(),Yt(this,"body",new He),Yt(this,"shop",null),Yt(this,"busy",!1),Yt(this,"loaded",!1),Yt(this,"failed",!1),this.height=746,this.contentContainer.addChild(this.body)} + static getInstance(){ + return this._instance||(this._instance=new t),this._instance} + show(){ + this.parent||(this.shop=null,this.loaded=!1,this.failed=!1,this.refresh(),super.show(),this.load())} + addLabel(t,i,s,e=16,n=13878960,h){ + const r=new AD(t,n,IL.DEFAULT_FONT_OPTION_16); + return r.textSize=e,h&&r.setWrapWidth(h),r.position.set(i,s),this.body.addChild(r),r} + centered(t,i,s=16,e=13878960){ + const n=this.addLabel(t,0,i,s,e); + n.x=(this.width-n.width)/2} + itemText(t){ + const i=Nvi("##군단 · ").replace(/##/g,String((t.targetCorp??0)+1)); + switch(t.type){ + case"startSoldierAdd":return{ + title:i+Nvi("시작 병사 +3명"),badge:"+3",desc:Nvi("다음 도전부터 해당 군단 병사 +3명"),rare:!1} + ; + case"startSoldierUp":return{ + title:i+Nvi("시작 병사 3명 강화"),badge:"↑3",desc:Nvi("다음 도전부터 시작 병사 3명 강화"),rare:!1} + ; + case"startHeroUp":return{ + title:i+Nvi("시작 영웅 강화"),badge:"↑1",desc:Nvi("다음 도전부터 시작 영웅 1단계 강화"),rare:!1} + ; + case"soldierAddChance":return{ + title:Nvi("+4명 추가 카드"),badge:"+4",desc:Nvi("등장 확률 +10%p · 이후 성장 카드부터"),rare:!0} + ; + case"soldierUpChance":return{ + title:Nvi("4명 강화 카드"),badge:"↑4",desc:Nvi("등장 확률 +10%p · 이후 성장 카드부터"),rare:!0} + } + } + refresh(){ + var t,i,s; + for(const o of this.body.removeChildren())o.destroy({ + children:!0} + ); + const e=ovi.getInstance(); + this.centered(Nvi("등반 상점"),22,24,16767332),this.body.addChild((new Ff).roundRect(24,82,568,50,12).fill(3156255)),this.addLabel(Nvi("보유 코인"),42,97,16); + const n=this.addLabel(String((null==(t=e.season)?void 0:t.coin)??0),0,92,24,16767332); + if(n.x=this.width-44-n.width,this.centered(Nvi("시즌 누적 · 시작 상품은 다음 도전부터 적용"),147,15,10331309),!this.loaded||!this.shop){ + if(this.centered(Nvi(this.failed?"상점을 불러오지 못했습니다":this.loaded?"상점 정보가 없습니다":"상품을 불러오는 중…"),310,18),this.failed){ + const t=new TG(Nvi("다시 불러오기")); + t.width=300,t.position.set(158,550),t.activated=!this.busy,t.onClick=()=>{ + this.load()} + ,this.body.addChild(t)} + return void this.drawPanel()} + this.shop.offers.forEach((t,i)=>{ + var s,n; + const h=174+100*i,r=this.itemText(t); + this.body.addChild((new Ff).roundRect(24,h,568,88,12).fill(1512465).stroke({ + color:r.rare?7758143:5062963,width:1} + )),this.body.addChild((new Ff).roundRect(38,h+10,68,68,12).fill(r.rare?4536610:3156515)); + const o=this.addLabel(r.badge,0,h+26,28,r.rare?16767332:14988422); + o.x=72-o.width/2,this.addLabel(r.title,120,h+12,17,t.sold?9275262:16777215,290),this.addLabel(r.desc,120,h+41,14,11379345,290); + const a=new TG(t.sold?Nvi("구매 완료"):t.available?Nvi("## 코인").replace(/##/g,String(t.price)):Nvi("최대 강화")); + a.width=142,a.height=50,a.position.set(432,h+19),a.activated=!this.busy&&!(null==(s=e.run)?void 0:s.battlePending)&&t.available&&((null==(n=e.season)?void 0:n.coin)??0)>=t.price,a.onClick=()=>{ + this.act(()=>e.shopBuy(t.id))} + ,this.body.addChild(a)} + ),0===this.shop.offers.length&&this.centered(Nvi("모든 상점 강화를 완료했습니다"),315,18),this.centered(Nvi("+4명 카드 등장 확률 · 추가 ##% / 강화 @@%").replace(/##/g,String(this.shop.soldierAddChance)).replace(/@@/g,String(this.shop.soldierUpChance)),484,15,14988422),this.shop.startingBonuses.forEach((t,i)=>{ + const s=24+144*i; + this.body.addChild((new Ff).roundRect(s,516,136,100,10).fill(3156255)),this.addLabel(Nvi("##군단 시작").replace(/##/g,String(i+1)),s+10,524,15,14988422),this.addLabel(Mvi(t.heroStage),s+10,547,14,16777215); + const e=t.counts.flatMap((t,i)=>t>0?[`${ + yvi(i)} + ×${ + t} + `]:[]); + this.addLabel(e.join(" · "),s+10,568,11,12432291,116)} + ); + const h=new TG(Nvi("새로고침 · ## 코인").replace(/##/g,String(this.shop.refreshPrice))); + h.color=TG.BROWN,h.width=568,h.height=54,h.position.set(24,634),h.activated=!this.busy&&!(null==(i=e.run)?void 0:i.battlePending)&&this.shop.canRefresh&&((null==(s=e.season)?void 0:s.coin)??0)>=this.shop.refreshPrice; + const r=this.shop.revision; + h.onClick=()=>{ + this.act(()=>e.shopRefresh(r))} + ,this.body.addChild(h),this.centered(Nvi("상품을 모두 구매하면 무료로 새로고침됩니다"),708,14,10331309),this.drawPanel()} + async load(){ + if(!this.busy){ + this.busy=!0,this.failed=!1,this.refresh(); + try{ + this.shop=(await ovi.getInstance().fetchShop()).shop,this.loaded=!0} + catch(t){ + this.failed=!0,lH.getInstance().showMessage(t.message)} + finally{ + this.busy=!1,this.refresh()} + } + } + async act(t){ + if(!this.busy){ + this.busy=!0,this.refresh(); + try{ + const i=await t(); + this.shop=i.shop; + const s=null!=i.targetCorp?Nvi("##군단 시작 강화 누적 · 다음 도전부터 적용").replace(/##/g,String(i.targetCorp+1)):void 0!==i.autoRefreshed?Nvi("4명 카드 등장 확률이 올랐습니다"):Nvi("상점이 갱신되었습니다"); + lH.getInstance().showMessage(s+(i.autoRefreshed?"\n"+Nvi("모두 구매하여 무료로 새로고침했습니다"):""))} + catch(i){ + lH.getInstance().showMessage(i.message); + try{ + this.shop=(await ovi.getInstance().fetchShop()).shop} + catch{ + this.shop=null,this.loaded=!1,this.failed=!0} + } + finally{ + this.busy=!1,this.refresh()} + } + } + } + ; + Xt(Lvi,"MiniAscentShopPopup"),Yt(Lvi,"_instance"); + let Dvi=Lvi; + const Gvi=class t extends fvi{ + constructor(){ + super(),Yt(this,"countdownTimer",new ex(1e3)),Yt(this,"lblTitle"),Yt(this,"lblInfo"),Yt(this,"lblPeriod"),Yt(this,"lblRun"),Yt(this,"corps"),Yt(this,"btnMain"),Yt(this,"btnShop"),Yt(this,"btnRewards"),Yt(this,"btnGiveUp"),Yt(this,"busy",!1),this.lblTitle=new AD(sB.getText("","미니게임 등반"),16767332,IL.DEFAULT_OUTLINE_FONT_OPTION_24),this.lblTitle.textColor=16767332,this.contentContainer.addChild(this.lblTitle),this.lblInfo=new AD("",IL.DEFAULT_COLOR,IL.DEFAULT_FONT_OPTION_16),this.contentContainer.addChild(this.lblInfo),this.lblPeriod=new AD("",10134450,IL.DEFAULT_FONT_OPTION_15),this.lblPeriod.textColor=10134450,this.contentContainer.addChild(this.lblPeriod),this.lblRun=new AD("",16777215,IL.DEFAULT_OUTLINE_FONT_OPTION_18),this.lblRun.textColor=16777215,this.contentContainer.addChild(this.lblRun),this.corps=new Ivi,this.contentContainer.addChild(this.corps),this.btnMain=new TG(""),this.btnMain.width=Ivi.WIDTH,this.btnMain.height=56,this.btnMain.onClick=this.onMainClick.bind(this),this.contentContainer.addChild(this.btnMain),this.btnShop=new TG(sB.getText("","상점")),this.btnShop.color=TG.BROWN,this.btnShop.onClick=this.onShopClick.bind(this),this.contentContainer.addChild(this.btnShop),this.btnRewards=new TG(sB.getText("","층 보상")),this.btnRewards.color=TG.BROWN,this.btnRewards.onClick=this.onRewardsClick.bind(this),this.contentContainer.addChild(this.btnRewards),this.btnGiveUp=new TG(sB.getText("","포기")),this.btnGiveUp.color=TG.GRAY,this.btnGiveUp.onClick=this.onGiveUpClick.bind(this),this.contentContainer.addChild(this.btnGiveUp); + for(const t of[this.lblInfo,this.lblPeriod,this.lblRun])t.align="center",t.setWrapWidth(Ivi.WIDTH-24); + this.lblPeriod.textSize=14,this.countdownTimer.addEventListener("timer",()=>{ + this.updatePeriod()&&this.updateLayout()} + ),this.on("added",()=>this.countdownTimer.start()),this.on("removed",()=>this.countdownTimer.stop()),this.updateLayout()} + static getInstance(){ + return this._instance||(this._instance=new t),this._instance} + show(){ + this.render(),super.show(),this.refresh()} + async refresh(){ + const t=ovi.getInstance(); + await t.flushPendingResult(); + try{ + (await t.fetchState()).lostPending&&lH.getInstance().showMessage(sB.getText("","전투 도중 나가서 패배 처리되었습니다"))} + catch(Wnt){ + lH.getInstance().showMessage("rejected"===t.stateError?sB.getText("","진행 중인 이벤트가 없습니다"):`${ + sB.getText("","정보 조회 실패")} + : ${ + Wnt.message} + `)} + this.render()} + render(){ + const t=ovi.getInstance(),i=t.season,s=t.run,e=t.eventActive&&!!i; + this.lblInfo.text=i?sB.getText("","코인 ##1 최고 ##2 레벨 ##3").replace(/##1/g,String(i.coin)).replace(/##2/g,Evi(i.bestFloor)).replace(/##3/g,String(i.allyLevel)):"",this.updatePeriod(),this.lblRun.text=s?sB.getText("","진행 중 — ## 도전 차례").replace(/##/g,Evi(s.floor)):t.lastDefeat?`${ + sB.getText("","##층에서 패배했습니다.").replace(/##/g,String(t.lastDefeat.floor))} + \n${ + sB.getText("","획득 코인 : ##").replace(/##/g,String(t.lastDefeat.runCoin))} + `:sB.getText("","새 도전을 시작하세요"),this.corps.setData((null==s?void 0:s.corps)??null),this.corps.visible=!!s||!t.lastDefeat,s?s.offer?this.btnMain.text=sB.getText("","성장 카드 선택"):this.btnMain.text=sB.getText("","## 도전").replace(/##/g,Evi(s.floor)):this.btnMain.text=sB.getText("","도전 시작"),this.btnMain.activated=e,this.btnShop.activated=e,this.btnRewards.activated=e,this.btnGiveUp.visible=!!s,this.updateLayout()} + updatePeriod(){ + var t; + const i=pvi(null==(t=ovi.getInstance().season)?void 0:t.endTime,cx.time>=0?cx.time:Date.now()),s=i?sB.getText("","남은 시간 ##").replace(/##/g,i):""; + return this.lblPeriod.text!==s&&(this.lblPeriod.text=s,!0)} + updateLayout(){ + const t=this.width; + this.lblTitle.position.set((t-this.lblTitle.width)/2,24); + let i=80; + this.lblInfo.position.set((t-this.lblInfo.width)/2,i),i+=this.lblInfo.height+10,this.lblPeriod.position.set((t-this.lblPeriod.width)/2,i),i+=this.lblPeriod.height+30,this.lblRun.position.set((t-this.lblRun.width)/2,i),i+=this.lblRun.height+20; + const s=24+this.btnMain.height+12+48+24,e=Math.min(1,Math.max(.5,(YA.safeHeight-48-i-s)/this.corps.panelHeight)); + this.corps.scale.set(e),this.corps.position.set((t-Ivi.WIDTH*e)/2,i),this.corps.visible&&(i+=this.corps.panelHeight*e),i+=24,this.btnMain.x=.5*(t-this.btnMain.width),this.btnMain.y=i,i+=this.btnMain.height+12; + const n=this.btnGiveUp.visible?[this.btnShop,this.btnRewards,this.btnGiveUp]:[this.btnShop,this.btnRewards],h=Ivi.WIDTH,r=(h-12*(n.length-1))/n.length; + let o=.5*(t-h); + for(const a of n)a.width=r,a.height=48,a.x=o,a.y=i,o+=a.width+12; + this.height=i+48+24,this.drawPanel()} + async onMainClick(){ + if(this.busy)return; + const t=ovi.getInstance(); + if(t.eventActive){ + this.busy=!0; + try{ + if(!t.run)return await t.start(),void this.render(); + if(t.run.offer)return void(await uvi.openCardPick()); + await uvi.openDeploy(!1)} + catch(Wnt){ + lH.getInstance().showMessage(Wnt.message),this.render()} + finally{ + this.busy=!1} + } + } + onShopClick(){ + const t=Dvi.getInstance(); + t.refresh(),t.hideHandler=()=>this.render(),t.show()} + onRewardsClick(){ + const t=Pvi.getInstance(); + t.refresh(),t.show()} + async onGiveUpClick(){ + if(!this.busy){ + this.busy=!0; + try{ + const t=await ovi.getInstance().giveUp(),i=kvi.getInstance(); + i.setData(t),i.onExit=()=>this.render(),i.show()} + catch(Wnt){ + lH.getInstance().showMessage(Wnt.message)} + finally{ + this.busy=!1,this.render()} + } + } + } + ; + Xt(Gvi,"MiniAscentLobbyPopup"),Yt(Gvi,"_instance"); + let Bvi=Gvi; + const Uvi=Object.freeze(Object.defineProperty({ + __proto__:null,MiniAscentLobbyPopup:Bvi} + ,Symbol.toStringTag,{ + value:"Module"}
MiniAscentDeployPopup 1 hunks, 273 statements
+ )),aPi=class t extends fvi{ + constructor(){ + super(),Yt(this,"lblTitle"),Yt(this,"lblLevel"),Yt(this,"lblHint"),Yt(this,"field",new He),Yt(this,"map",new Ve),Yt(this,"mapMask",new Ff),Yt(this,"fieldChrome",new Ff),Yt(this,"chrome",new Ff),Yt(this,"tokenScale",1),Yt(this,"slotMarks",[]),Yt(this,"lblEmpty",[]),Yt(this,"allyTokens",[]),Yt(this,"enemyTokens",[]),Yt(this,"btnStart"),Yt(this,"btnBack"),Yt(this,"fieldW",0),Yt(this,"fieldH",0),Yt(this,"vertical",!0),Yt(this,"ally",[]),Yt(this,"formation",[]),Yt(this,"dragSlot",-1),Yt(this,"dragOffX",0),Yt(this,"dragOffY",0),Yt(this,"hoverSlot",-1),Yt(this,"busy",!1),Yt(this,"onStart",null),Yt(this,"onBack",null),this.on("removed",()=>this.detachStage()),this.chrome.eventMode="none",this.contentContainer.addChild(this.chrome),this.lblTitle=new AD("",16767332,IL.DEFAULT_OUTLINE_FONT_OPTION_24),this.lblTitle.textColor=16767332,this.contentContainer.addChild(this.lblTitle),this.lblLevel=new AD("",IL.DEFAULT_COLOR,IL.DEFAULT_FONT_OPTION_16),this.contentContainer.addChild(this.lblLevel),this.lblHint=new AD(sB.getText("","아군 군단을 끌어서 자리를 바꾸세요"),10134450,IL.DEFAULT_FONT_OPTION_15),this.lblHint.textColor=10134450,this.contentContainer.addChild(this.lblHint),this.contentContainer.addChild(this.field),this.map.eventMode="none",this.field.addChild(this.map),this.mapMask.eventMode="none",this.fieldChrome.eventMode="none",this.field.addChild(this.mapMask,this.fieldChrome),this.map.mask=this.mapMask; + for(let t=0; + t<5; + t++){ + const t=new Ff; + t.eventMode="none",this.field.addChild(t),this.slotMarks.push(t); + const i=new AD(sB.getText("","빈 칸"),16777215,IL.DEFAULT_FONT_OPTION_15); + i.textColor=16777215,i.eventMode="none",this.field.addChild(i),this.lblEmpty.push(i)} + for(let t=0; + t<5; + t++)this.enemyTokens.push(this.makeToken(!1)); + for(let t=0; + t<5; + t++){ + const i=this.makeToken(!0),s=t; + i.root.on("pointerdown",t=>this.onDown(s,t)),this.allyTokens.push(i)} + this.btnStart=new TG(sB.getText("","전투 시작")),this.btnStart.width=368,this.btnStart.onClick=()=>this.finish(!0),this.contentContainer.addChild(this.btnStart),this.btnBack=new TG(sB.getText("","로비로")),this.btnBack.width=184,this.btnBack.color=TG.BROWN,this.btnBack.onClick=()=>this.finish(!1),this.contentContainer.addChild(this.btnBack)} + static getInstance(){ + return this._instance||(this._instance=new t),this._instance} + makeToken(i){ + const s=new He,e=new Ff; + e.eventMode="none",s.addChild(e); + const n=new F3; + n.eventMode="none",n.scale.set(.6),s.addChild(n); + const h=new F3; + h.eventMode="none",h.scale.set(.45),s.addChild(h); + const r=new AD("",16777215,IL.DEFAULT_OUTLINE_FONT_OPTION_16); + r.textColor=16777215,r.eventMode="none",s.addChild(r); + const o=t.TILE_SIZE; + return e.roundRect(-o/2,-o/2,o,o,10).fill({ + color:2104857,alpha:.96} + ).stroke({ + width:2,color:i?10276486:14060672} + ).roundRect(-o/2+12,-o/2,o-24,3,1.5).fill(i?10276486:14060672),i?(s.eventMode="static",s.cursor="grab",s.hitArea=new Di(-o/2,-o/2,o,o)):s.eventMode="none",this.field.addChild(s),{ + root:s,frame:e,hero:n,soldier:h,lblCount:r} + } + onCloseBtnClick(){ + this.finish(!1)} + setData(i,s,e){ + this.detachStage(),this.ally=i.ally,this.formation=[...s],this.vertical=Qwi(e),this.busy=!1,this.dragSlot=-1,this.hoverSlot=-1,this.lblTitle.text=sB.getText("","## 배치").replace(/##/g,Evi(i.floor)),this.lblLevel.text=sB.getText("","아군 Lv.##1 적 Lv.##2").replace(/##1/g,String(i.allyLevel)).replace(/##2/g,String(i.enemyLevel)),this.height=Math.min(900,YA.safeHeight-48),this.fieldW=this.width-48,this.fieldH=Math.max(160,this.height-t.FIELD_TOP-t.BOTTOM_RESERVE),this.field.position.set((this.width-this.fieldW)/2,t.FIELD_TOP),this.map.texture=eS.getTexture("GW_BG2",`gwbg${ + e} + `); + const n=Math.max(this.fieldW/this.map.texture.width,this.fieldH/this.map.texture.height); + this.map.scale.set(n),this.map.position.set((this.fieldW-this.map.width)/2,(this.fieldH-this.map.height)/2),this.mapMask.clear().roundRect(0,0,this.fieldW,this.fieldH,16).fill(16777215),this.fieldChrome.clear().roundRect(0,0,this.fieldW,this.fieldH,16).fill({ + color:1513744,alpha:.18} + ).stroke({ + width:2,color:7692356} + ),this.tokenScale=Math.min(1,.16*this.fieldH/(t.TILE_SIZE+14)); + for(const t of[...this.allyTokens,...this.enemyTokens])t.root.scale.set(this.tokenScale); + const h=evi(this.vertical,"enemy"); + for(let t=0; + t<5; + t++){ + const s=this.enemyTokens[t],e=i.enemy[t]; + s.root.visible=!!e,e&&(this.fillToken(s,e),s.root.x=h[t].x*this.fieldW,s.root.y=h[t].y*this.fieldH)} + this.layoutAlly(),this.layoutChrome(),this.drawPanel()} + fillToken(t,i){ + t.hero.setDataWithKindNum(i.heroKindNum,i.heroTrans); + const s=i.soldierTiers[0]; + t.soldier.visible=!!s,s&&t.soldier.setDataWithKindNum(s.kindNum); + const e=i.soldierTiers.reduce((t,i)=>t+i.count,0); + t.lblCount.text=`×${ + e} + `,t.hero.x=-t.hero.width/2,t.hero.y=-42; + const n=(s?t.soldier.width+5:0)+t.lblCount.width; + t.soldier.x=-n/2,t.soldier.y=10,t.lblCount.x=s?t.soldier.x+t.soldier.width+5:-t.lblCount.width/2,t.lblCount.y=10+(Math.max(t.soldier.height,t.lblCount.height)-t.lblCount.height)/2} + layoutAlly(){ + const i=evi(this.vertical,"ally"),s=t.TILE_SIZE*this.tokenScale; + for(let t=0; + t<5; + t++){ + const e=i[t].x*this.fieldW,n=i[t].y*this.fieldH,h=t===this.hoverSlot&&this.dragSlot>=0&&t!==this.dragSlot; + this.slotMarks[t].clear().roundRect(e-s/2-4,n-s/2-4,s+8,s+8,12).fill({ + color:h?16767332:1318933,alpha:h?.4:.55} + ).stroke({ + width:h?3:1,color:h?16767332:12767656,alpha:h?1:.6} + ); + const r=this.formation[t],o=r>=0?this.ally[r]:void 0; + this.lblEmpty[t].visible=!o,this.lblEmpty[t].scale.set(this.tokenScale),this.lblEmpty[t].x=e-this.lblEmpty[t].width/2,this.lblEmpty[t].y=n-this.lblEmpty[t].height/2; + const a=this.allyTokens[t]; + a.root.visible=!!o,o&&(this.fillToken(a,o),t!==this.dragSlot&&(a.root.x=e,a.root.y=n,a.root.alpha=1))} + } + layoutChrome(){ + const t=this.width; + this.lblTitle.x=(t-this.lblTitle.width)/2,this.lblTitle.y=24,this.lblLevel.x=(t-this.lblLevel.width)/2,this.lblLevel.y=86,this.chrome.clear().roundRect(24,78,this.fieldW,36,10).fill(3156514); + const i=this.field.y+this.fieldH; + this.lblHint.x=(t-this.lblHint.width)/2,this.lblHint.y=i+14,this.btnBack.position.set(24,i+48),this.btnStart.position.set(224,i+48)} + onDown(t,i){ + if(this.busy||this.dragSlot>=0)return; + const s=this.allyTokens[t]; + if(!s.root.visible)return; + i.stopPropagation(),this.dragSlot=t; + const e=this.field.toLocal(i.global); + this.dragOffX=s.root.x-e.x,this.dragOffY=s.root.y-e.y,s.root.alpha=.9,s.root.cursor="grabbing",this.field.addChild(s.root); + const n=YA.stage; + n&&(n.on("globalpointermove",this.onMove,this),n.on("pointerup",this.onUp,this),n.on("pointerupoutside",this.onUp,this))} + onMove(t){ + if(this.dragSlot<0)return; + const i=this.field.toLocal(t.global),s=this.allyTokens[this.dragSlot]; + s.root.x=i.x+this.dragOffX,s.root.y=i.y+this.dragOffY; + const e=this.nearestSlot(s.root.x,s.root.y); + e!==this.hoverSlot&&(this.hoverSlot=e,this.layoutAlly())} + onUp(t){ + if(this.dragSlot<0)return; + const i=this.dragSlot,s=this.allyTokens[i],e=this.nearestSlot(s.root.x,s.root.y); + this.detachStage(),s.root.cursor="grab",this.dragSlot=-1,this.hoverSlot=-1,e>=0&&e!==i&&(this.formation=ivi(this.formation,i,e)),this.layoutAlly()} + nearestSlot(i,s){ + const e=evi(this.vertical,"ally"); + let n=-1,h=t.DROP_R*this.tokenScale; + for(let t=0; + t<5; + t++){ + const r=Math.hypot(e[t].x*this.fieldW-i,e[t].y*this.fieldH-s); + r<h&&(h=r,n=t)} + return n} + detachStage(){ + const t=YA.stage; + t&&(t.off("globalpointermove",this.onMove,this),t.off("pointerup",this.onUp,this),t.off("pointerupoutside",this.onUp,this))} + finish(t){ + if(this.busy)return; + this.busy=!0,this.detachStage(),this.dragSlot=-1; + const i=t?this.onStart:this.onBack,s=[...this.formation]; + this.hide(),queueMicrotask(()=>{ + t?null==i||i(s):null==i||i()} + )} + hide(){ + this.detachStage(),super.hide()} + hideImmediately(){ + this.detachStage(),super.hideImmediately()} + onBackButton(){ + return this.finish(!1),!0} + } + ; + Xt(aPi,"MiniAscentDeployPopup"),Yt(aPi,"_instance"),Yt(aPi,"FIELD_TOP",128),Yt(aPi,"BOTTOM_RESERVE",116),Yt(aPi,"TILE_SIZE",100),Yt(aPi,"DROP_R",80); + let cPi=aPi; + const lPi=Object.freeze(Object.defineProperty({ + __proto__:null,MiniAscentDeployPopup:cPi} + ,Symbol.toStringTag,{ + value:"Module"} + )),uPi=class t extends DG{ + constructor(){ + super(),Yt(this,"lblHeader"),Yt(this,"lblReward"),Yt(this,"lblHint"),Yt(this,"rewardBg",new Ff),Yt(this,"backdrop",new Ff),Yt(this,"contentHeight",0),Yt(this,"cardHeight",t.CARD_H),Yt(this,"cards",[]),Yt(this,"btnNext"),Yt(this,"btnLobby"),Yt(this,"offer",null),Yt(this,"selected",-1),Yt(this,"busy",!1),Yt(this,"onDone",null),this.btnClose.visible=!1,this.bg.visible=!1,this.txtTitle.visible=!1,this.width=640,this.backdrop.eventMode="static",this.addChildAt(this.backdrop,0),this.lblHeader=new AD("",16767332,IL.DEFAULT_OUTLINE_FONT_OPTION_32),this.lblHeader.textColor=16767332,this.contentContainer.addChild(this.lblHeader),this.contentContainer.addChild(this.rewardBg),this.lblHint=new AD(sB.getText("","카드를 하나 선택하세요"),13154981,IL.DEFAULT_FONT_OPTION_15),this.contentContainer.addChild(this.lblHint),this.lblReward=new AD("",IL.DEFAULT_COLOR,IL.DEFAULT_FONT_OPTION_15),this.lblReward.align="center",this.lblReward.setWrapWidth(488),this.contentContainer.addChild(this.lblReward); + for(let i=0; + i<3; + i++){ + const s=new He; + s.eventMode="static",s.cursor="pointer",s.hitArea=new Di(0,0,t.CARD_W,t.CARD_H); + const e=new Ff; + e.eventMode="none",s.addChild(e); + const n=new F3; + n.eventMode="none",s.addChild(n); + const h=new AD("",IL.DEFAULT_COLOR,IL.DEFAULT_FONT_OPTION_16); + h.eventMode="none",h.textColor=16777215,h.align="center",h.setWrapWidth(156),s.addChild(h); + const r=new AD("",IL.DEFAULT_COLOR,IL.DEFAULT_FONT_OPTION_15); + r.eventMode="none",r.textColor=13352358,r.textSize=14,r.align="center",r.setWrapWidth(152),s.addChild(r); + const o=new He; + o.eventMode="none",o.visible=!1,s.addChild(o); + const a=new F3; + a.eventMode="none",a.scale.set(.528); + const c=new F3; + c.scale.set(.48); + const l=new AD("",16777215,IL.DEFAULT_FONT_OPTION_16); + o.addChild(a,c,l); + const u=new AD("",14204295,IL.DEFAULT_FONT_OPTION_15); + u.eventMode="none",u.y=14,s.addChild(u); + const d=i; + s.on("pointertap",()=>this.select(d)),this.contentContainer.addChild(s),this.cards.push({ + root:s,bg:e,icon:n,targetSummary:o,targetHero:a,targetSoldier:c,targetCount:l,lblTitle:h,lblDesc:r,badge:u,baseY:0} + )} + this.btnNext=new TG(sB.getText("","다음 층")),this.btnNext.onClick=()=>this.done(!0),this.contentContainer.addChild(this.btnNext),this.btnLobby=new TG(sB.getText("","로비로")),this.btnLobby.color=TG.BROWN,this.btnLobby.onClick=()=>this.done(!1),this.contentContainer.addChild(this.btnLobby)} + static getInstance(){ + return this._instance||(this._instance=new t),this._instance} + setData(i){ + var s,e,n; + this.offer=i.offer,this.selected=-1,this.busy=!1; + const h=this.width; + this.lblHeader.text=null!=i.clearedFloor?sB.getText("","## 클리어!").replace(/##/g,Evi(i.clearedFloor)):sB.getText("","성장 카드"),this.lblHeader.x=(h-this.lblHeader.width)/2,this.lblHeader.y=0; + const r=[]; + i.coinGained>0&&r.push(sB.getText("","코인 +##").replace(/##/g,String(i.coinGained))),i.rewards.length>0&&r.push(sB.getText("","우편 보상: ##").replace(/##/g,Tvi(i.rewards))),this.lblReward.visible=r.length>0,this.lblReward.text=r.join(" · "),this.lblReward.x=(h-this.lblReward.width)/2,this.lblReward.y=59,this.rewardBg.clear(),this.lblReward.visible&&this.rewardBg.roundRect(this.lblReward.x-16,51,this.lblReward.width+32,this.lblReward.height+16,12).fill(3353633); + let o=this.lblReward.visible?91+this.lblReward.height:72; + this.lblHint.visible=!!(null==(s=i.offer)?void 0:s.length),this.lblHint.x=(h-this.lblHint.width)/2,this.lblHint.y=o,this.lblHint.visible&&(o+=this.lblHint.height+32); + const a=Math.min((null==(e=i.offer)?void 0:e.length)??0,this.cards.length),c=t.CARD_W,l=(h-(a*c+16*Math.max(0,a-1)))/2; + this.cardHeight=t.CARD_H; + const u={ + heroUp:sB.getText("","영웅 강화"),soldierAdd:sB.getText("","병사 추가"),soldierUp:sB.getText("","병사 강화"),newHero:sB.getText("","새 영웅")} + ; + for(let d=0; + d<this.cards.length; + d++){ + const s=this.cards[d],e=null==(n=i.offer)?void 0:n[d]; + if(s.root.visible=!!e,!e)continue; + const h=i.corps[e.corp],r="heroUp"===e.type?h:void 0,a=r?bvi(r):qwi(e,i.corps); + s.icon.visible=a>0,a>0&&s.icon.setDataWithKindNum(a,r?Math.max(0,r.heroStage-1):0),s.icon.scale.set(1),s.icon.scale.set(Math.min(1,(c-24-2*t.ICON_PADDING)/s.icon.width,(t.ICON_H-2*t.ICON_PADDING)/s.icon.height)),s.icon.x=(c-s.icon.width)/2,s.icon.y=t.ICON_TOP+(t.ICON_H-s.icon.height)/2,s.badge.text=u[e.type],s.badge.x=(c-s.badge.width)/2,s.lblTitle.text=Avi(e,i.corps),s.lblTitle.x=(c-s.lblTitle.width)/2,s.lblTitle.y=t.ICON_TOP+t.ICON_H+16,s.lblDesc.text=Svi(e,i.corps),s.lblDesc.x=(c-s.lblDesc.width)/2,s.lblDesc.y=s.lblTitle.y+s.lblTitle.height+16,this.setTargetSummary(s,"newHero"===e.type?void 0:h),this.cardHeight=Math.max(this.cardHeight,s.lblDesc.y+s.lblDesc.height+(s.targetSummary.visible?s.targetSummary.height+40:28)),s.baseY=o,s.root.position.set(l+d*(c+16),o)} + for(const t of this.cards)t.root.visible&&t.targetSummary.visible&&t.targetSummary.position.set((c-t.targetSummary.width)/2,this.cardHeight-t.targetSummary.height-24); + this.drawCards(),a&&(o+=this.cardHeight+40),this.btnLobby.width=184,this.btnNext.width=368,this.btnLobby.position.set(36,o),this.btnNext.position.set(236,o),this.btnNext.activated=!a,this.contentHeight=o+this.btnNext.height,this.layoutScreen()} + setTargetSummary(i,s){ + if(i.targetSummary.visible=!!s,!s)return; + i.targetHero.setDataWithKindNum(bvi(s),Math.max(0,s.heroStage-1)),i.targetSoldier.setDataWithKindNum(s.soldierKind),i.targetCount.text=`×${ + Xwi(s)} + `; + const e=[i.targetHero,i.targetSoldier,i.targetCount],n=Math.max(...e.map(t=>t.height)); + let h=0; + for(const t of e)t.position.set(h,n-t.height),h+=t.width+4; + i.targetSummary.scale.set(Math.min(1,(t.CARD_W-28)/(h-4)))} + layoutScreen(){ + this.height=YA.safeHeight,this.pivot.set(0),this.position.set(0); + const t=Math.min(1,(YA.safeHeight-64)/this.contentHeight); + this.contentContainer.scale.set(t),this.contentContainer.x=(640-640*t)/2,this.contentContainer.y=Math.max(32,.43*(YA.safeHeight-this.contentHeight*t)); + const i=Math.max(640,YA.stageWidth),s=Math.max(YA.safeHeight,YA.stageHeight); + this.backdrop.clear().rect(-i,-s,3*i,3*s).fill({ + color:921613,alpha:.78} + )} + show(){ + zk.killTweensOf(this),this.alpha=1,this.scale.set(1),this.eventMode="auto",this.interactiveChildren=!0,this.layoutScreen(),nG.getInstance().addPopup(this),this.cards.forEach((t,i)=>{ + zk.killTweensOf(t.root); + const s=t.baseY-(i===this.selected?10:0); + zk.fromTo(t.root,{ + y:s+24,alpha:0} + ,{ + y:s,alpha:1,duration:.24,delay:.06*i,ease:"power2.out"} + )} + )} + hide(){ + this.parent&&(this.eventMode="none",this.interactiveChildren=!1,zk.killTweensOf(this),zk.to(this,{ + alpha:0,duration:.15,onComplete:Xt(()=>this.hideImmediately(),"onComplete")} + ))} + hideImmediately(){ + zk.killTweensOf(this); + for(const t of this.cards)zk.killTweensOf(t.root); + super.hideImmediately()} + drawCards(){ + const i=t.CARD_W; + for(let s=0; + s<this.cards.length; + s++){ + const e=s===this.selected,n=this.cards[s]; + n.root.hitArea=new Di(0,0,i,this.cardHeight),n.bg.clear().roundRect(0,4,i,this.cardHeight,12).fill({ + color:0,alpha:.3} + ).roundRect(0,0,i,this.cardHeight,12).fill(e?4011300:2630944).stroke({ + width:e?3:1.5,color:e?16767332:6640445} + ).roundRect(12,t.ICON_TOP,i-24,t.ICON_H,8).fill({ + color:1052171,alpha:.35} + ).roundRect(i/2-16,this.cardHeight-12,32,3,1.5).fill(e?16767332:6640445),e&&n.bg.circle(i-13,13,10).fill(16767332).moveTo(i-18,13).lineTo(i-14,17).lineTo(i-8,9).stroke({ + width:2,color:3155993} + )} + } + select(t){ + this.busy||(this.selected=t,this.btnNext.activated=!0,this.cards.forEach((i,s)=>{ + zk.killTweensOf(i.root),i.root.alpha=1,zk.to(i.root,{ + y:i.baseY-(s===t?10:0),duration:.16,ease:"power2.out"} + )} + ),this.drawCards())} + done(t){ + if(this.busy)return; + const i=!!this.offer&&this.offer.length>0; + if(i&&this.selected<0)return void lH.getInstance().showMessage(sB.getText("","카드를 하나 선택하세요")); + this.busy=!0; + const s=this.onDone,e=i?this.selected:null; + this.hide(),queueMicrotask(()=>{ + s&&s(e,t)} + )} + onBackButton(){ + return!0} + } + ; + Xt(uPi,"MiniAscentCardPickPopup"),Yt(uPi,"_instance"),Yt(uPi,"CARD_W",184),Yt(uPi,"CARD_H",292),Yt(uPi,"ICON_TOP",44),Yt(uPi,"ICON_H",104),Yt(uPi,"ICON_PADDING",12); + let dPi=uPi; + const fPi=Object.freeze(Object.defineProperty({ + __proto__:null,MiniAscentCardPickPopup:dPi} + ,Symbol.toStringTag,{ + value:"Module"}
StampMark 1 hunks, 84 statements
- constructor(i=24){ - super(); - const s=new Ff; - s.circle(0,0,i).stroke({ - width:3,color:t.COLOR_INK,alpha:.92} - ),s.circle(0,0,i-4).stroke({ - width:1.5,color:t.COLOR_INK,alpha:.6} - ),s.eventMode="none",this.addChild(s); - const e=new Ff; - e.moveTo(.42*-i,.05*i).lineTo(.1*-i,.36*i).lineTo(.46*i,.32*-i).stroke({ - width:Math.max(3,.16*i),color:t.COLOR_INK,alpha:.92,cap:"round",join:"round"} - ),e.eventMode="none",this.addChild(e),this.eventMode="none"} - setDayRotation(t){ - this.rotation=(37*t%13-6)*(Math.PI/180)} - playPop(){ - zk.killTweensOf(this.scale),zk.fromTo(this.scale,{ - x:2.4,y:2.4} - ,{ - x:1,y:1,duration:.38,ease:"back.out(1.8)"} - ),zk.fromTo(this,{ - alpha:0} - ,{ - alpha:1,duration:.16} - )} - } - ; - Xt(M_i,"StampMark"),Yt(M_i,"COLOR_INK",12597547); - let y_i=M_i; - const E_i=class t extends He{ - constructor(){ - super(),Yt(this,"bg"),Yt(this,"lblDay"),Yt(this,"reward"),Yt(this,"lblAmount"),Yt(this,"redDot"),Yt(this,"stamp"),Yt(this,"onTap",null),Yt(this,"data",null); - const i=t.WIDTH,s=t.HEIGHT; - this.bg=new Ff,this.bg.roundRect(0,0,i,s,t.BG_RADIUS).fill({ - color:t.BG_COLOR} - ),this.bg.tint=16777215,this.bg.eventMode="none",this.addChild(this.bg),this.lblDay=new bD("",16777215,AL.DEFAULT_FONT_OPTION_16),this.lblDay.textColor=t.COLOR_DAY,this.lblDay.textSize=12,this.lblDay.x=8,this.lblDay.y=4,this.lblDay.eventMode="none",this.addChild(this.lblDay),this.reward=new z3,this.reward.scale=t.ICON_SCALE,this.reward.hideAmount(),this.reward.eventMode="none",this.addChild(this.reward),this.lblAmount=new bD("",16777215,AL.DEFAULT_OUTLINE_FONT_OPTION_18),this.lblAmount.textColor=t.COLOR_AMOUNT,this.lblAmount.textSize=13,this.lblAmount.eventMode="none",this.addChild(this.lblAmount),this.redDot=new Ve(eS.getTexture("UI_Ekkorr","Icon_RedDot_Red")),this.redDot.visible=!1,this.redDot.eventMode="none",this.addChild(this.redDot),this.stamp=new y_i(24),this.stamp.x=.5*i,this.stamp.y=.5*s,this.stamp.visible=!1,this.addChild(this.stamp),this.eventMode="static",this.cursor="pointer",this.hitArea=new Di(0,0,i,s),this.on("pointerup",()=>{ - this.data&&this.onTap&&this.onTap(this.data)} - )} - get width(){ - return t.WIDTH} - get height(){ - return t.HEIGHT} - update(i){ - this.data=i; - const s=t.WIDTH,e=t.HEIGHT,n="claimed"===i.state,h="claimable"===i.state,r=1===i.milestone; - this.bg.tint=n?t.CLAIMED_TINT:h?t.CLAIMABLE_TINT:r?t.MILESTONE_TINT:16777215,this.lblDay.text=String(i.day),this.lblDay.textColor=h||r?t.COLOR_GOLD:t.COLOR_DAY,t.applyReward(this.reward,i.rewardType,i.num),this.reward.hideAmount(),this.reward.x=.5*(s-this.reward.width*t.ICON_SCALE),this.reward.y=10,this.lblAmount.text="gem"===i.rewardType?String(i.num):`x${ - i.num} - `,this.lblAmount.x=.5*(s-this.lblAmount.width),this.lblAmount.y=e-this.lblAmount.height-3,this.redDot.visible=h,this.redDot.x=s-this.redDot.width-2,this.redDot.y=-2,this.reward.alpha=n?.45:1,this.lblAmount.alpha=n?.45:1,this.stamp.visible=n,n&&this.stamp.setDayRotation(i.day)} - playStampPop(){ - this.stamp.playPop()} - static getRewardName(t){ - switch(t){ - case"gem":return QG.getText("COMMON_350","보석"); - case"heroGacha":return QG.getText("GAME_217","영웅 뽑기권"); - case"heroSelect":return QG.getText("GAME_769","영웅 선택권"); - case"petGacha":return QG.getText("GAME_772","정령의 고원 입장권"); - case"treasureGacha":return QG.getText("GAME_218","유물 뽑기권"); - case"runeTicket":return QG.getText("GAME_1500","크리스탈 뽑기권"); - case"honorCoin":return QG.getText("GAME_88","명예코인"); - case"heroTrans":return QG.getText("GAME_1223","영웅 초월권"); - default:return t} - } - static applyReward(t,i,s){ - switch(i){ - case"gem":default:t.setData(V3.gem,s); - break; - case"heroGacha":t.setData(V3.ticket,s,5,-1,V3.heroGacha); - break; - case"heroSelect":t.setData(V3.ticket,s,-1,1,V3.heroSelect); - break; - case"petGacha":t.setData(V3.ticket,s,1,-1,V3.pet); - break; - case"treasureGacha":t.setData(V3.ticket,s,-1,-1,V3.treasureGacha); - break; - case"runeTicket":t.setData(V3.runeTicket,s); - break; - case"honorCoin":t.setData(V3.honorCoin,s); - break; - case"heroTrans":t.setData(V3.trans,s,5,-1,V3.hero)} - } - } - ; - Xt(E_i,"StampDayCell"),Yt(E_i,"WIDTH",114),Yt(E_i,"HEIGHT",72),Yt(E_i,"ICON_SCALE",.6),Yt(E_i,"COLOR_DAY",10325880),Yt(E_i,"COLOR_GOLD",16767354),Yt(E_i,"COLOR_AMOUNT",16777215),Yt(E_i,"CLAIMED_TINT",9211020),Yt(E_i,"MILESTONE_TINT",16771512),Yt(E_i,"CLAIMABLE_TINT",16774095),Yt(E_i,"BG_COLOR",6904901),Yt(E_i,"BG_RADIUS",10); - let A_i=E_i; - const S_i=class t extends RG{
MiniAscentService 1 hunks, 45 statements
+ const yL=class extends OP{ + async state(t=!0){ + return this.post(oP.MINI_ASCENT.STATE,{ + } + ,t)} + async start(t=!0){ + return this.post(oP.MINI_ASCENT.START,{ + } + ,t)} + async prepare(t=!0){ + return this.post(oP.MINI_ASCENT.PREPARE,{ + } + ,t)} + async battleStart(t=!0){ + return this.post(oP.MINI_ASCENT.BATTLE_START,{ + } + ,t)} + async battleEnd(t,i,s=!0){ + return this.post(oP.MINI_ASCENT.BATTLE_END,{ + battleId:t,result:i} + ,s)} + async pickCard(t,i=!0){ + return this.post(oP.MINI_ASCENT.PICK_CARD,{ + index:t} + ,i)} + async shop(t=!0){ + return this.post(oP.MINI_ASCENT.SHOP,{ + } + ,t)} + async shopRefresh(t,i=!0){ + return this.post(oP.MINI_ASCENT.SHOP_REFRESH,{ + revision:t} + ,i)} + async shopBuy(t,i=!0){ + return this.post(oP.MINI_ASCENT.SHOP_BUY,{ + item:t} + ,i)} + async giveUp(t=!0){ + return this.post(oP.MINI_ASCENT.GIVE_UP,{ + } + ,t)} + } + ; + Xt(yL,"MiniAscentService"); + let EL=yL;
Timer 1 hunks, 28 statements
+ const sx=class extends EventTarget{ + constructor(t,i=-1){ + super(),Yt(this,"_currentCount",0),Yt(this,"timerEvent"),Yt(this,"_running",!1),Yt(this,"_prevTime",0),Yt(this,"delay"),Yt(this,"repeatCount"),Yt(this,"data"),this.delay=t,this.repeatCount=i,this.timerEvent=new Event("timer")} + start(){ + this._running||(this._currentCount=0,this._prevTime=performance.now(),this._running=!0,Fy.getInstance().add(this.update,this))} + update(){ + if(!this._running)return; + const t=performance.now(); + if(t-this._prevTime>=this.delay){ + if(this._currentCount++,this.dispatchEvent(this.timerEvent),this.repeatCount>0&&this._currentCount>=this.repeatCount)return void this.stop(); + this._prevTime=t} + } + stop(){ + this._running&&(this._running=!1,Fy.getInstance().remove(this.update,this))} + reset(){ + this.stop(),this.start()} + get currentCount(){ + return this._currentCount} + get running(){ + return this._running} + addEventListener(t,i,s){ + super.addEventListener(t,i,s)} + removeEventListener(t,i,s){ + super.removeEventListener(t,i,s)} + } + ; + Xt(sx,"Timer"); + let ex=sx;
URLManager 1 hunks, 24 statements
+ static get MINI_ASCENT(){ + return{ + STATE:`${ + t.baseURL} + /minigame/ascent/state`,START:`${ + t.baseURL} + /minigame/ascent/start`,PREPARE:`${ + t.baseURL} + /minigame/ascent/prepare`,BATTLE_START:`${ + t.baseURL} + /minigame/ascent/battleStart`,BATTLE_END:`${ + t.baseURL} + /minigame/ascent/battleEnd`,PICK_CARD:`${ + t.baseURL} + /minigame/ascent/pickCard`,SHOP:`${ + t.baseURL} + /minigame/ascent/shop`,SHOP_REFRESH:`${ + t.baseURL} + /minigame/ascent/shopRefresh`,SHOP_BUY:`${ + t.baseURL} + /minigame/ascent/shopBuy`,GIVE_UP:`${ + t.baseURL} + /minigame/ascent/giveUp`} + }
RightBottomMenus 4 hunks, 16 statements
- super(),Yt(this,"btnDungeon",new YB("UI_Ekkorr","HeroGrade6")),Yt(this,"btnIdle",new YB("UI_Ekkorr","HeroGrade4")),Yt(this,"btnMap3",new YB("UI_Ekkorr","HeroGrade2")),Yt(this,"btnMap4",new YB("UI_Ekkorr","HeroGrade16")),Yt(this,"btnRaidBosses",[]),Yt(this,"btnBuff",new YB("UI_Ekkorr","HeroGrade10")),Yt(this,"btnMine",new YB("UI_Ekkorr","HeroGrade12")),Yt(this,"btnCardEvent",new YB("UI_Ekkorr","HeroGrade14")),Yt(this,"btnConquest",new YB("UI_Ekkorr","HeroGrade8")),Yt(this,"btnPowerSave",new YB("UI_Ekkorr","PowerOff")),Yt(this,"healthOrb",c1t.getInstance()),Yt(this,"waveCallInfo",g1t.getInstance()),Yt(this,"timeShiftGauge",new f1t),Yt(this,"btnWaveSetting",new YB("UI_Ekkorr","smallSetting")),Yt(this,"btnAllPreset",new YB("UI_Ekkorr","AllPreset")),Yt(this,"waveSettingFrameCnt",0),Yt(this,"onReviveBind"),this.healthOrb.x=640-.5*this.healthOrb.width-3,this.healthOrb.y=13,this.addChild(this.healthOrb),this.waveCallInfo.x=10,this.waveCallInfo.y=t.WAVE_CALL_BASE_Y,this.addChild(this.waveCallInfo),this.waveCallInfo.eventMode="static",this.waveCallInfo.on("pointerup",this.getNextWave,this),this.waveCallInfo.start(),this.timeShiftGauge.x=this.waveCallInfo.x+62,this.timeShiftGauge.y=this.waveCallInfo.y,this.addChild(this.timeShiftGauge),this.btnWaveSetting.x=this.timeShiftGauge.x+48+12,this.btnWaveSetting.y=this.waveCallInfo.y+.5*(40-this.btnWaveSetting.height),this.addChild(this.btnWaveSetting),this.btnWaveSetting.on("pointerup",this.onWaveSetting,this),this.btnWaveSetting.visible=!1,Fy.getInstance().add(this.onWaveSettingFrame,this),Nqt.getInstance().x=0,Nqt.getInstance().y=-13,this.addChild(Nqt.getInstance()),Nqt.getInstance().onVisibilityChanged=t=>{ + super(),Yt(this,"btnDungeon",new tU("UI_Ekkorr","HeroGrade6")),Yt(this,"btnIdle",new tU("UI_Ekkorr","HeroGrade4")),Yt(this,"btnMap3",new tU("UI_Ekkorr","HeroGrade2")),Yt(this,"btnMap4",new tU("UI_Ekkorr","HeroGrade16")),Yt(this,"btnRaidBosses",[]),Yt(this,"btnBuff",new tU("UI_Ekkorr","HeroGrade10")),Yt(this,"btnMine",new tU("UI_Ekkorr","HeroGrade12")),Yt(this,"btnCardEvent",new tU("UI_Ekkorr","HeroGrade14")),Yt(this,"btnConquest",new tU("UI_Ekkorr","HeroGrade8")),Yt(this,"btnMiniAscent",new tU("UI_Ekkorr","HeroGrade10")),Yt(this,"btnPowerSave",new tU("UI_Ekkorr","PowerOff")),Yt(this,"healthOrb",f1t.getInstance()),Yt(this,"waveCallInfo",_1t.getInstance()),Yt(this,"timeShiftGauge",new w1t),Yt(this,"btnWaveSetting",new tU("UI_Ekkorr","smallSetting")),Yt(this,"btnAllPreset",new tU("UI_Ekkorr","AllPreset")),Yt(this,"waveSettingFrameCnt",0),Yt(this,"onReviveBind"),this.healthOrb.x=640-.5*this.healthOrb.width-3,this.healthOrb.y=13,this.addChild(this.healthOrb),this.waveCallInfo.x=10,this.waveCallInfo.y=t.WAVE_CALL_BASE_Y,this.addChild(this.waveCallInfo),this.waveCallInfo.eventMode="static",this.waveCallInfo.on("pointerup",this.getNextWave,this),this.waveCallInfo.start(),this.timeShiftGauge.x=this.waveCallInfo.x+62,this.timeShiftGauge.y=this.waveCallInfo.y,this.addChild(this.timeShiftGauge),this.btnWaveSetting.x=this.timeShiftGauge.x+48+12,this.btnWaveSetting.y=this.waveCallInfo.y+.5*(40-this.btnWaveSetting.height),this.addChild(this.btnWaveSetting),this.btnWaveSetting.on("pointerup",this.onWaveSetting,this),this.btnWaveSetting.visible=!1,Fy.getInstance().add(this.onWaveSettingFrame,this),Bqt.getInstance().x=0,Bqt.getInstance().y=-13,this.addChild(Bqt.getInstance()),Bqt.getInstance().onVisibilityChanged=t=>{
- ),this.btnBuff.x=s.x-this.btnBuff.width-i,this.btnBuff.y=s.y,this.addChild(this.btnBuff),this.btnBuff.on("pointerup",this.onBuff,this),this.btnMine.x=this.btnBuff.x-this.btnMine.width-i,this.btnMine.y=this.btnBuff.y,this.addChild(this.btnMine),this.btnMine.on("pointerup",this.onMine,this),this.btnCardEvent.x=this.btnMine.x-this.btnCardEvent.width-i,this.btnCardEvent.y=this.btnMine.y,this.addChild(this.btnCardEvent),this.btnCardEvent.on("pointerup",this.onCardEvent,this),this.btnConquest.x=this.btnCardEvent.x-this.btnConquest.width-i,this.btnConquest.y=this.btnCardEvent.y,this.addChild(this.btnConquest),this.btnConquest.on("pointerup",this.onConquest,this); + ),this.btnBuff.x=s.x-this.btnBuff.width-i,this.btnBuff.y=s.y,this.addChild(this.btnBuff),this.btnBuff.on("pointerup",this.onBuff,this),this.btnMine.x=this.btnBuff.x-this.btnMine.width-i,this.btnMine.y=this.btnBuff.y,this.addChild(this.btnMine),this.btnMine.on("pointerup",this.onMine,this),this.btnCardEvent.x=this.btnMine.x-this.btnCardEvent.width-i,this.btnCardEvent.y=this.btnMine.y,this.addChild(this.btnCardEvent),this.btnCardEvent.on("pointerup",this.onCardEvent,this),this.btnConquest.x=this.btnCardEvent.x-this.btnConquest.width-i,this.btnConquest.y=this.btnCardEvent.y,this.addChild(this.btnConquest),this.btnConquest.on("pointerup",this.onConquest,this),this.btnMiniAscent.x=this.btnConquest.x-this.btnMiniAscent.width-i,this.btnMiniAscent.y=this.btnConquest.y,this.addChild(this.btnMiniAscent),this.btnMiniAscent.on("pointerup",this.onMiniAscent,this);
- this.btnBuff.visible=e,this.btnMine.visible=e,this.btnCardEvent.visible=e&&n1t.EVENT_OPEN,this.btnConquest.visible=YD.getInstance().development,this.btnPowerSave.x=this.healthOrb.x-.9*this.btnPowerSave.width-45,this.btnPowerSave.y=this.healthOrb.y-15,this.btnPowerSave.eventMode="static",this.btnPowerSave.cursor="pointer",this.btnPowerSave.on("pointerup",this.onPowerSave,this),this.updatePowerSaveButton(!Nqt.getInstance().visible),this.btnAllPreset.onClick=this.onAllPresetBtnClick.bind(this),this.setRevive(!0)} + this.btnBuff.visible=e,this.btnMine.visible=e,this.btnCardEvent.visible=e&&a1t.EVENT_OPEN,this.btnConquest.visible=tG.getInstance().development,this.btnMiniAscent.visible=tG.getInstance().development,this.btnPowerSave.x=this.healthOrb.x-.9*this.btnPowerSave.width-45,this.btnPowerSave.y=this.healthOrb.y-15,this.btnPowerSave.eventMode="static",this.btnPowerSave.cursor="pointer",this.btnPowerSave.on("pointerup",this.onPowerSave,this),this.updatePowerSaveButton(!Bqt.getInstance().visible),this.btnAllPreset.onClick=this.onAllPresetBtnClick.bind(this),this.setRevive(!0)}
+ async onMiniAscent(){ + mG(); + const{ + MiniAscentLobbyPopup:t} + =await ti(async()=>{ + const{ + MiniAscentLobbyPopup:t} + =await Promise.resolve().then(()=>Uvi); + return{ + MiniAscentLobbyPopup:t} + } + ,void 0); + t.getInstance().show()}
Pi 13 hunks, 13 statements
- i++,s=Qst(s))t[i]=s; + i++,s=set(s))t[i]=s;
- a%h==0?t=r(set(t))^aet[a/h-1]:h>6&&a%h==4&&(t=r(t)),o[a]=o[a-h]^t} + a%h==0?t=r(ret(t))^fet[a/h-1]:h>6&&a%h==4&&(t=r(t)),o[a]=o[a-h]^t}
- function uet(t){ + function get(t){
- function get(t,i,s,e,n){ + function _et(t,i,s,e,n){
- Xt(cet,"ei"),Xt(uet,"ti"),Xt(det,"ni"),Xt(fet,"ri"),Xt(pet,"ii"),Xt(get,"oi"),Xt(met,"si"),Xt(wet,"ai"),Xt(vet,"ci"),Xt(_et,"li"),Xt(bet,"di"),Xt(Met,"ui"),Xt(yet,"hi"),Xt(Eet,"fi"),Pst.ctr=(0,Xst.wrapCipher)({ + Xt(pet,"ei"),Xt(get,"ti"),Xt(met,"ni"),Xt(wet,"ri"),Xt(vet,"ii"),Xt(_et,"oi"),Xt(bet,"si"),Xt(Met,"ai"),Xt(yet,"ci"),Xt(Eet,"li"),Xt(Aet,"di"),Xt(Tet,"ui"),Xt(Cet,"hi"),Xt(Iet,"fi"),Gst.ctr=(0,Zst.wrapCipher)({
- const n=uet(t),h=met(i.length,e),r=[n]; + const n=get(t),h=bet(i.length,e),r=[n];
- =get(n,o[t+0],o[t+1],o[t+2],o[t+3]); + =_et(n,o[t+0],o[t+1],o[t+2],o[t+3]);
- const h=uet(t); + const h=get(t);
- =get(h,d,f,p,g); + =_et(h,d,f,p,g);
- =get(t,s[0],s[1],s[2],s[3]); + =_et(t,s[0],s[1],s[2],s[3]);
- const s=uet(t),e=i.length/8-1; + const s=get(t),e=i.length/8-1;
- =get(s,n,h,t[o],t[o+1]); + =_et(s,n,h,t[o],t[o+1]);
- expandKeyLE:cet,expandKeyDecLE:uet,encrypt:pet,decrypt:get,encryptBlock:Cet,decryptBlock:Iet,ctrCounter:wet,ctr32:vet} + expandKeyLE:pet,expandKeyDecLE:get,encrypt:vet,decrypt:_et,encryptBlock:xet,decryptBlock:Ret,ctrCounter:Met,ctr32:yet}
GuildWarBattlePopupV3 6 hunks, 6 statements
- ...AL.DEFAULT_OUTLINE_FONT_OPTION_16,fontSize:13} + ...IL.DEFAULT_OUTLINE_FONT_OPTION_16,fontSize:13}
- ...AL.DEFAULT_OUTLINE_FONT_OPTION_16,fontSize:13} + ...IL.DEFAULT_OUTLINE_FONT_OPTION_16,fontSize:13}
- ...AL.DEFAULT_OUTLINE_FONT_OPTION_16,fontSize:13} + ...IL.DEFAULT_OUTLINE_FONT_OPTION_16,fontSize:13}
- ...AL.DEFAULT_OUTLINE_FONT_OPTION_16,fontSize:9} + ...IL.DEFAULT_OUTLINE_FONT_OPTION_16,fontSize:9}
- ...AL.DEFAULT_OUTLINE_FONT_OPTION_16,fontSize:11} + ...IL.DEFAULT_OUTLINE_FONT_OPTION_16,fontSize:11}
- ...AL.DEFAULT_OUTLINE_FONT_OPTION_16,fontSize:9} + ...IL.DEFAULT_OUTLINE_FONT_OPTION_16,fontSize:9}
Fr 4 hunks, 4 statements
- ),Pst.unsafe=Pst.aeskwp=Pst.aeskw=Pst.siv=Pst.gcm=Pst.cfb=Pst.cbc=Pst.ecb=Pst.ctr=void 0,Pst.expandKeyLE=cet,Pst.expandKeyDecLE=uet; + ),Gst.unsafe=Gst.aeskwp=Gst.aeskw=Gst.siv=Gst.gcm=Gst.cfb=Gst.cbc=Gst.ecb=Gst.ctr=void 0,Gst.expandKeyLE=pet,Gst.expandKeyDecLE=get;
- function Qst(t){ + function set(t){
- i>>=1)s^=t&-(1&i),t=Qst(t); + i>>=1)s^=t&-(1&i),t=set(t);
- Xt(Qst,"Fr"),Xt(Zst,"zr"); + Xt(set,"Fr"),Xt(eet,"zr");
Archery2GameScene 4 hunks, 4 statements
- ...AL.DEFAULT_OUTLINE_FONT_OPTION_16,fill:16777215} + ...IL.DEFAULT_OUTLINE_FONT_OPTION_16,fill:16777215}
- ...AL.DEFAULT_OUTLINE_FONT_OPTION_20,fill:16766720} + ...IL.DEFAULT_OUTLINE_FONT_OPTION_20,fill:16766720}
- ...AL.DEFAULT_OUTLINE_FONT_OPTION_16,fill:16737792} + ...IL.DEFAULT_OUTLINE_FONT_OPTION_16,fill:16737792}
- ...AL.DEFAULT_OUTLINE_FONT_OPTION_20,fill:16777215} + ...IL.DEFAULT_OUTLINE_FONT_OPTION_20,fill:16777215}
SHA256 3 hunks, 3 statements
- ...Igt,...kgt,...Rgt,...Ngt,...Ggt,...zgt,...Ygt,...Zgt,...nmt} + ...Rgt,...Ngt,...Dgt,...Bgt,...Hgt,...Jgt,...tmt,...emt,...amt}
- ...Hmt,...Wmt} + ...Vmt,...zmt}
- utf8:bwt,"utf-8":bwt,hex:pwt.base16,latin1:Mwt,ascii:Mwt,binary:Mwt,...pwt} + utf8:Awt,"utf-8":Awt,hex:vwt.base16,latin1:Swt,ascii:Swt,binary:Swt,...vwt}
SuiProvider 3 hunks, 3 statements
- namespace:uTt.NameSpaceKeyAptos,addresses:s,methods:[...fTt.AptosMethods],extra:h} + namespace:gTt.NameSpaceKeyAptos,addresses:s,methods:[...wTt.AptosMethods],extra:h}
- namespace:bTt.NameSpaceKeyTON,addresses:o,methods:[...ETt.TONMethods],extra:a,data:{ + namespace:ATt.NameSpaceKeyTON,addresses:o,methods:[...CTt.TONMethods],extra:a,data:{
- namespace:CTt.NameSpaceKeySui,addresses:i,methods:[...kTt.SuiMethods],extra:s} + namespace:xTt.NameSpaceKeySui,addresses:i,methods:[...NTt.SuiMethods],extra:s}
WalletPopup 3 hunks, 3 statements
- ...AL.ERROR_POPUP_LABEL_OPTION,fontSize:24,fontWeight:"bold"} + ...IL.ERROR_POPUP_LABEL_OPTION,fontSize:24,fontWeight:"bold"}
- ...AL.ERROR_POPUP_LABEL_OPTION,fontSize:16} + ...IL.ERROR_POPUP_LABEL_OPTION,fontSize:16}
- ...AL.ERROR_POPUP_LABEL_OPTION,fontSize:16} + ...IL.ERROR_POPUP_LABEL_OPTION,fontSize:16}
Zr 2 hunks, 2 statements
- s++,e^=Qst(e))t[s]=e; + s++,e^=set(e))t[s]=e;
- )(),iet=tet.map((t,i)=>tet.indexOf(i)),set=Xt(t=>t<<24|t>>>8,"Vr"),eet=Xt(t=>t<<8|t>>>24,"Gr"),net=Xt(t=>t<<24&4278190080|t<<8&16711680|t>>>8&65280|t>>>24&255,"Yr"); + )(),het=net.map((t,i)=>net.indexOf(i)),ret=Xt(t=>t<<24|t>>>8,"Vr"),oet=Xt(t=>t<<8|t>>>24,"Gr"),aet=Xt(t=>t<<24&4278190080|t<<8&16711680|t>>>8&65280|t>>>24&255,"Yr");
GuildWarBattleController 2 hunks, 2 statements
- ),Yt(this,"spawnedVOs",[]),Yt(this,"allyHeroes",[]),Yt(this,"enemyHeroes",[]),Yt(this,"initialAllyCount",0),Yt(this,"initialEnemyCount",0),Yt(this,"terrainOverlay",null),Yt(this,"allyFlowField",null),Yt(this,"enemyFlowField",null),Yt(this,"aliveCounter",null),Yt(this,"hudAllyText",null),Yt(this,"hudEnemyText",null),Yt(this,"hudTimerText",null),Yt(this,"hudAllyFill",null),Yt(this,"hudEnemyFill",null),Yt(this,"hudBarDivider",null),Yt(this,"hudBarInnerX",0),Yt(this,"hudBarInnerY",0),Yt(this,"hudBarInnerW",0),Yt(this,"hudBarInnerH",0),Yt(this,"damageMeterRaised",!1),Yt(this,"meterToggleBtnArrow",null),Yt(this,"damageMeter",null),Yt(this,"meterEntries",[]),Yt(this,"separationGrid",new Map),Yt(this,"separationFlatList",[]),Yt(this,"antijamTimer",0),Yt(this,"numBlockReleased",!1),Yt(this,"btnSpeed",null),Yt(this,"btnSpeedLabel",null)} + ),Yt(this,"spawnedVOs",[]),Yt(this,"allyHeroes",[]),Yt(this,"enemyHeroes",[]),Yt(this,"initialAllyCount",0),Yt(this,"initialEnemyCount",0),Yt(this,"terrainOverlay",null),Yt(this,"allyFlowField",null),Yt(this,"enemyFlowField",null),Yt(this,"aliveCounter",null),Yt(this,"hudAllyText",null),Yt(this,"hudEnemyText",null),Yt(this,"hudTimerText",null),Yt(this,"hudAllyFill",null),Yt(this,"hudEnemyFill",null),Yt(this,"hudBarDivider",null),Yt(this,"hudBarInnerX",0),Yt(this,"hudBarInnerY",0),Yt(this,"hudBarInnerW",0),Yt(this,"hudBarInnerH",0),Yt(this,"damageMeterRaised",!1),Yt(this,"meterToggleBtnArrow",null),Yt(this,"damageMeter",null),Yt(this,"meterEntries",[]),Yt(this,"buffContext",$R.GuildPvp),Yt(this,"separationGrid",new Map),Yt(this,"separationFlatList",[]),Yt(this,"antijamTimer",0),Yt(this,"numBlockReleased",!1),Yt(this,"btnSpeed",null),Yt(this,"btnSpeedLabel",null)}
- ,tP.getInstance().setBattleContext(FR.GuildPvp),this.initRandom(),gU.getInstance().setDay(); + ,sP.getInstance().setBattleContext(this.buffContext),this.initRandom(),_U.getInstance().setDay();
BattleController 1 hunks, 2 statements
- for(const i of this.skippedWaves)this.shownDialogueWaves.has(i)||(t.push(...yKt.getInstance().getByWave(i)),this.shownDialogueWaves.add(i)); - this.shownDialogueWaves.has(VD.wave)||(t.push(...yKt.getInstance().getByWave(VD.wave)),this.shownDialogueWaves.add(VD.wave)),t.length>0&&poi.getInstance().showDialogues(t)} + for(const i of this.skippedWaves)this.shownDialogueWaves.has(i)||(t.push(...TKt.getInstance().getByWave(i)),this.shownDialogueWaves.add(i)); + this.shownDialogueWaves.has(XD.wave)||(t.push(...TKt.getInstance().getByWave(XD.wave)),this.shownDialogueWaves.add(XD.wave)),t.length>0&&voi.getInstance().showDialogues(t)}
GuildBarrackRowItemRenderer 2 hunks, 2 statements
- ...AL.DEFAULT_OUTLINE_FONT_OPTION_16,fontSize:14} + ...IL.DEFAULT_OUTLINE_FONT_OPTION_16,fontSize:14}
- ...AL.DEFAULT_OUTLINE_FONT_OPTION_16,fontSize:13} + ...IL.DEFAULT_OUTLINE_FONT_OPTION_16,fontSize:13}
GuildWarBattleReadyPopup 2 hunks, 2 statements
- ...AL.DEFAULT_OUTLINE_FONT_OPTION_16,fontSize:13} + ...IL.DEFAULT_OUTLINE_FONT_OPTION_16,fontSize:13}
- ...AL.DEFAULT_OUTLINE_FONT_OPTION_16,fontSize:i} + ...IL.DEFAULT_OUTLINE_FONT_OPTION_16,fontSize:i}
GuildWarSquadsPopup 2 hunks, 2 statements
- ...AL.DEFAULT_OUTLINE_FONT_OPTION_16,fontSize:14} + ...IL.DEFAULT_OUTLINE_FONT_OPTION_16,fontSize:14}
- ...AL.DEFAULT_OUTLINE_FONT_OPTION_16,fontSize:i} + ...IL.DEFAULT_OUTLINE_FONT_OPTION_16,fontSize:i}
GuildWarTierAssignPopup 2 hunks, 2 statements
- const i=[...zL.memberList??[]].sort((t,i)=>i.roleLevel!==t.roleLevel?i.roleLevel-t.roleLevel:(i.wave??0)-(t.wave??0)); + const i=[...JL.memberList??[]].sort((t,i)=>i.roleLevel!==t.roleLevel?i.roleLevel-t.roleLevel:(i.wave??0)-(t.wave??0));
- ...AL.DEFAULT_OUTLINE_FONT_OPTION_16,fontSize:i} + ...IL.DEFAULT_OUTLINE_FONT_OPTION_16,fontSize:i}
LocalDataManager 1 hunks, 1 statements
- Xt(KA,"LocalDataManager"),Yt(KA,"encryptionKey",null),Yt(KA,"BASE_KEY","EF2_DEFAULT_KEY_2025"),Yt(KA,"CREDS_LF_KEY",KA.getKey("aC")),Yt(KA,"CREDS_LS_KEY","EF2_ACB"),Yt(KA,"CREDS_NATIVE_KEY","ef2_account_creds"),Yt(KA,"KEY_GAME_OVER",KA.getKey("gO")),Yt(KA,"KEY_RALLY_POINTS",KA.getKey("rP")),Yt(KA,"KEY_DIALOGUE_COUNT",KA.getKey("dC")),Yt(KA,"KEY_AUTO_POWER_SAVE",KA.getKey("aPS")),Yt(KA,"BASE","EF2_STORAGE_"),Yt(KA,"SALT","e1z7sf2h"),Yt(KA,"KEYS",{ + Xt(KA,"LocalDataManager"),Yt(KA,"encryptionKey",null),Yt(KA,"BASE_KEY","EF2_DEFAULT_KEY_2025"),Yt(KA,"CREDS_LF_KEY",KA.getKey("aC")),Yt(KA,"CREDS_LS_KEY","EF2_ACB"),Yt(KA,"CREDS_NATIVE_KEY","ef2_account_creds"),Yt(KA,"KEY_GAME_OVER",KA.getKey("gO")),Yt(KA,"KEY_RALLY_POINTS",KA.getKey("rP")),Yt(KA,"KEY_DIALOGUE_COUNT",KA.getKey("dC")),Yt(KA,"KEY_MINI_ASCENT_PENDING",KA.getKey("mAp")),Yt(KA,"KEY_MINI_ASCENT_FORMATION",KA.getKey("mAf")),Yt(KA,"KEY_AUTO_POWER_SAVE",KA.getKey("aPS")),Yt(KA,"BASE","EF2_STORAGE_"),Yt(KA,"SALT","e1z7sf2h"),Yt(KA,"KEYS",{
VersionManager 1 hunks, 1 statements
- Xt(JA,"VersionManager"),Yt(JA,"gameId","ef2"),Yt(JA,"appVersion","1.14.67"); + Xt(JA,"VersionManager"),Yt(JA,"gameId","ef2"),Yt(JA,"appVersion","1.14.68");
ArrayUtil 1 hunks, 1 statements
- __proto__:null,BackgroundStage:hS,BaseFrameController:By,BaseLayer:pS,BaseListItem:ix,BaseShape:Xk,Box:Jk,EkkorrGame:uS,EventDispatcher:mS,List:Zk,StageManager:YA,UIFrameController:Fy} + __proto__:null,BackgroundStage:hS,BaseFrameController:By,BaseLayer:pS,BaseListItem:ix,BaseShape:Xk,Box:Jk,EkkorrGame:uS,EventDispatcher:mS,List:Zk,StageManager:YA,Timer:ex,UIFrameController:Fy}
TreasureBuffAccessor 1 hunks, 1 statements
- ),FR=(t=>(t.Normal="normal",t.Sprite="sprite",t.Dungeon="dungeon",t.GuildPvp="guildpvp",t.Pvp="pvp",t.Tower="tower",t.Raid="raid",t))(FR||{ + ),$R=(t=>(t.Normal="normal",t.Sprite="sprite",t.Dungeon="dungeon",t.GuildPvp="guildpvp",t.Pvp="pvp",t.Tower="tower",t.Raid="raid",t.MiniGame="minigame",t))($R||{
DataManager 1 hunks, 1 statements
- Yt(this,"system"),Yt(this,"account"),Yt(this,"user"),Yt(this,"mail"),Yt(this,"book"),Yt(this,"castle"),Yt(this,"hero"),Yt(this,"quest"),Yt(this,"waveCall"),Yt(this,"timeShift"),Yt(this,"referral"),Yt(this,"dailyRanking"),Yt(this,"payback"),Yt(this,"pvp"),Yt(this,"dungeon"),Yt(this,"treasure"),Yt(this,"achievement"),Yt(this,"shop"),Yt(this,"ads"),Yt(this,"notice"),Yt(this,"notice2"),Yt(this,"attendance"),Yt(this,"stampCalendar"),Yt(this,"pass"),Yt(this,"tower"),Yt(this,"missionGuide"),Yt(this,"promotion"),Yt(this,"guild"),Yt(this,"guildWar"),Yt(this,"guildRaid"),Yt(this,"rune"),Yt(this,"guildDefense"),Yt(this,"guildBarracks"),Yt(this,"battle"),Yt(this,"pet"),Yt(this,"petShop"),Yt(this,"spirit"),Yt(this,"heroPresent"),Yt(this,"vip"),Yt(this,"miniGame"),Yt(this,"assistant"),Yt(this,"subscription"),Yt(this,"soulRest"),Yt(this,"translate"),Yt(this,"dailyQuest"),Yt(this,"lineNext"),Yt(this,"mine"),Yt(this,"cardEvent"),this.system=new VN,this.account=new OP,this.user=new JN,this.mail=new EN,this.book=new JP,this.castle=new ZP,this.hero=new MN,this.quest=new UN,this.waveCall=new uL,this.timeShift=new fL,this.dailyRanking=new iN,this.referral=new HN,this.payback=new PN,this.pvp=new GN,this.dungeon=new eN,this.treasure=new XN,this.achievement=new xP,this.shop=new WN,this.ads=new PP,this.notice=new CN,this.notice2=new ON,this.attendance=new VP,this.stampCalendar=new zP,this.pass=new xN,this.tower=new zN,this.missionGuide=new SN,this.promotion=new LN,this.guild=new hN,this.guildWar=new uN,this.guildRaid=new fN,this.rune=new gN,this.guildDefense=new wN,this.guildBarracks=new _N,this.battle=new XP,this.pet=new iL,this.petShop=new eL,this.spirit=new oL,this.heroPresent=new ZN,this.vip=new cL,this.miniGame=new hL,this.assistant=new LP,this.subscription=new WP,this.soulRest=new GP,this.translate=new UP,this.dailyQuest=new HP,this.lineNext=new gL,this.mine=new wL,this.cardEvent=new _L} + Yt(this,"system"),Yt(this,"account"),Yt(this,"user"),Yt(this,"mail"),Yt(this,"book"),Yt(this,"castle"),Yt(this,"hero"),Yt(this,"quest"),Yt(this,"waveCall"),Yt(this,"timeShift"),Yt(this,"referral"),Yt(this,"dailyRanking"),Yt(this,"payback"),Yt(this,"pvp"),Yt(this,"dungeon"),Yt(this,"treasure"),Yt(this,"achievement"),Yt(this,"shop"),Yt(this,"ads"),Yt(this,"notice"),Yt(this,"notice2"),Yt(this,"attendance"),Yt(this,"stampCalendar"),Yt(this,"pass"),Yt(this,"tower"),Yt(this,"missionGuide"),Yt(this,"promotion"),Yt(this,"guild"),Yt(this,"guildWar"),Yt(this,"guildRaid"),Yt(this,"rune"),Yt(this,"guildDefense"),Yt(this,"guildBarracks"),Yt(this,"battle"),Yt(this,"pet"),Yt(this,"petShop"),Yt(this,"spirit"),Yt(this,"heroPresent"),Yt(this,"vip"),Yt(this,"miniGame"),Yt(this,"assistant"),Yt(this,"subscription"),Yt(this,"soulRest"),Yt(this,"translate"),Yt(this,"dailyQuest"),Yt(this,"lineNext"),Yt(this,"mine"),Yt(this,"cardEvent"),Yt(this,"miniAscent"),this.system=new zN,this.account=new xP,this.user=new ZN,this.mail=new SN,this.book=new ZP,this.castle=new iN,this.hero=new EN,this.quest=new HN,this.waveCall=new fL,this.timeShift=new gL,this.dailyRanking=new eN,this.referral=new WN,this.payback=new LN,this.pvp=new UN,this.dungeon=new hN,this.treasure=new JN,this.achievement=new PP,this.shop=new VN,this.ads=new LP,this.notice=new ON,this.notice2=new xN,this.attendance=new zP,this.stampCalendar=new XP,this.pass=new PN,this.tower=new XN,this.missionGuide=new CN,this.promotion=new GN,this.guild=new oN,this.guildWar=new fN,this.guildRaid=new gN,this.rune=new wN,this.guildDefense=new _N,this.guildBarracks=new MN,this.battle=new JP,this.pet=new eL,this.petShop=new hL,this.spirit=new cL,this.heroPresent=new iL,this.vip=new uL,this.miniGame=new oL,this.assistant=new GP,this.subscription=new VP,this.soulRest=new UP,this.translate=new HP,this.dailyQuest=new WP,this.lineNext=new wL,this.mine=new _L,this.cardEvent=new ML,this.miniAscent=new EL}
AutoTogglePill 1 hunks, 1 statements
- ...AL.DEFAULT_FONT_OPTION_15,fontSize:t.FONT_SIZE,lineHeight:t.PILL_H} + ...IL.DEFAULT_FONT_OPTION_15,fontSize:t.FONT_SIZE,lineHeight:t.PILL_H}
Sr 1 hunks, 1 statements
- ...t,...bst(i)} + ...t,...Ast(i)}
Ma 1 hunks, 1 statements
- ...Prt,coercer:Xt((t,i)=>Vht(t,Nrt)?Prt.coercer(Lrt(t,i),i):Prt.coercer(t,i),"coercer")} + ...Grt,coercer:Xt((t,i)=>Xht(t,Brt)?Grt.coercer(Urt(t,i),i):Grt.coercer(t,i),"coercer")}
Yp 1 hunks, 1 statements
- const e=126,n=[71,73,70,56,55,97,...i,246,0,0,255,255,255,...gpt(381,0),44,0,0,0,0,...i,0,7],h=Math.floor(s.length/e); + const e=126,n=[71,73,70,56,55,97,...i,246,0,0,255,255,255,..._pt(381,0),44,0,0,0,0,...i,0,7],h=Math.floor(s.length/e);
SuiStandardProvider 1 hunks, 1 statements
- namespace:Tyt.NameSpaceKeyEip155,addresses:i,methods:[...Oyt.Eip55Methods],extra:s} + namespace:kyt.NameSpaceKeyEip155,addresses:i,methods:[...Pyt.Eip55Methods],extra:s}
AppReadyEvent 1 hunks, 1 statements
- return JEt||(JEt=[...VEt]),JEt} + return iAt||(iAt=[...XEt]),iAt}
SolProvider 1 hunks, 1 statements
- namespace:sTt.NameSpaceKeySOL,addresses:i,methods:[...rTt.SOLANAMethods],extra:s} + namespace:rTt.NameSpaceKeySOL,addresses:i,methods:[...lTt.SOLANAMethods],extra:s}
OkxwalletInjectConnector 1 hunks, 1 statements
- namespace:NTt.NameSpaceKeyBtc,addresses:i,methods:[...DTt.BtcMethods],extra:s} + namespace:BTt.NameSpaceKeyBtc,addresses:i,methods:[...FTt.BtcMethods],extra:s}
TcRootElement 1 hunks, 1 statements
- return kGt()||(t.push(new Kpt.OKXAppConnector),t.push(new Kpt.OKXWalletAppConnector)),IGt()&&t.push(new Kpt.OkxwalletInjectConnector),t.push(...RGt()),t} + return NGt()||(t.push(new Ypt.OKXAppConnector),t.push(new Ypt.OKXWalletAppConnector)),RGt()&&t.push(new Ypt.OkxwalletInjectConnector),t.push(...DGt()),t}
WalletSelectPopup 1 hunks, 1 statements
- ...AL.ERROR_POPUP_LABEL_OPTION,fontSize:18} + ...IL.ERROR_POPUP_LABEL_OPTION,fontSize:18}
BuffStatusPopup 1 hunks, 1 statements
- if(n)if(t=[...Gx.getInstance().getContributors(o)],o===Lx.GodBless){ + if(n)if(t=[...Ux.getInstance().getContributors(o)],o===Gx.GodBless){
FavoritePetSubView 1 hunks, 1 statements
- const t=[...BD.getInstance().favoritePets].sort((t,i)=>{ + const t=[...$D.getInstance().favoritePets].sort((t,i)=>{
TreasureSubView 1 hunks, 1 statements
- const t=[...Xx.getInstance().equipedList]; + const t=[...Jx.getInstance().equipedList];
GuildBarracksRaceView 1 hunks, 1 statements
- ...AL.DEFAULT_OUTLINE_FONT_OPTION_16,fontSize:i} + ...IL.DEFAULT_OUTLINE_FONT_OPTION_16,fontSize:i}
GuildMainSubView 1 hunks, 1 statements
- const i=[...zL.guildList].sort((t,i)=>{ + const i=[...JL.guildList].sort((t,i)=>{
GuildRaidBattleReadyPopup 1 hunks, 1 statements
- ...AL.DEFAULT_OUTLINE_FONT_OPTION_16,fontSize:13} + ...IL.DEFAULT_OUTLINE_FONT_OPTION_16,fontSize:13}
GuildWarHistoryItemRenderer 1 hunks, 1 statements
- ...AL.DEFAULT_OUTLINE_FONT_OPTION_16,fontSize:i} + ...IL.DEFAULT_OUTLINE_FONT_OPTION_16,fontSize:i}
GuildWarTournamentRewardGuidePopup 1 hunks, 1 statements
- let e=[...zL.rewardBattleList.sort((t,i)=>i.kindNum-t.kindNum)].concat([...zL.rewardBattleLostList.sort((t,i)=>i.kindNum-t.kindNum)]); + let e=[...JL.rewardBattleList.sort((t,i)=>i.kindNum-t.kindNum)].concat([...JL.rewardBattleLostList.sort((t,i)=>i.kindNum-t.kindNum)]);
GuildWarCombatLogItemRenderer 1 hunks, 1 statements
- ...AL.DEFAULT_FONT_OPTION_15,fontSize:14} + ...IL.DEFAULT_FONT_OPTION_15,fontSize:14}
GuildWarMemberStatusItemRenderer 1 hunks, 1 statements
- ...AL.DEFAULT_FONT_OPTION_15,fontSize:14} + ...IL.DEFAULT_FONT_OPTION_15,fontSize:14}
GuildWarTargetMarkerItemRenderer 1 hunks, 1 statements
- ...AL.DEFAULT_FONT_OPTION_15,fontSize:14} + ...IL.DEFAULT_FONT_OPTION_15,fontSize:14}
Delay 1 hunks, 1 statements
- ...nEi(),[i]:s} + ...QEi(),[i]:s}
NetworkTimeout 1 hunks, 1 statements
- ...IEi,...i} + ...yAi,...i}
RecaptchaVerifier 1 hunks, 1 statements
- ...cIi} + ...eOi}
BrowserPopupRedirectResolver 1 hunks, 1 statements
- ...fOi,width:e.toString(),height:n.toString(),top:h,left:r} + ...oki,width:e.toString(),height:n.toString(),top:h,left:r}

