EF2 Changelog

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

KeyText
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

FileChangeSizePreview
assets/ekkorr/UI_Ekkorr.png removed 5,106.4 KB → gone before
assets/ekkorr/UI_Ekkorr_unpacked_rgb_ETC1_RGB_face_0_layer_0000.png removed 3,062.2 KB → gone before

Code 89 changes in 51 classes

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

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}