EF2 Changelog

Builds / 1.14.97

Update 1.14.97

Compared with 1.14.88 · published Mon, 28 Sep 2026 01:35:11 GMT · live channel

No summary yet.

Text changes 51

KeyText
DIALOGUE_TEXT_77 + The enemies are getting stronger. Use the [Gold] you've gathered to level up your Heroes!
DIALOGUE_TEXT_78 + Right. The Heroes need to get stronger to keep the Castle safe.
DIALOGUE_TEXT_79 + The enemies keep pushing closer to the walls. The Castle can't just sit still either.
DIALOGUE_TEXT_80 + Upgrade the Castle in the [Castle] tab to attack farther and faster.
DIALOGUE_TEXT_81 + My lord, even if the Castle falls, please don't worry too much.
DIALOGUE_TEXT_82 + It's fine if it falls?
DIALOGUE_TEXT_83 + With [Rebirth], you can rise again even stronger. Valkion has always been that way.
PRODUCT_NAME_298 + Legion Challenge Energy Pack 1
PRODUCT_NAME_299 + Legion Challenge Energy Pack 2
PRODUCT_NAME_300 + Legion Challenge Energy Pack 3
PRODUCT_DESC_72 + This product contains Legion Challenge Energy.
PRODUCT_DESC_73 + Used to enter the Legion Challenge event.
PRODUCT_DESC_74 + Contains Energy for the Legion Challenge event.
PRODUCT_DESC_75 + Energy is granted immediately upon purchase. Can be purchased up to 3 times per season.
GAME_1851 + My lord, this is the [Castle] we must protect.
GAME_1852 + Defend it to the end against the incoming enemies!
GAME_1853 + Shall we call the [Heroes] who will defend the Castle with us?
GAME_1854 + Heroes are waiting for battle in the [Barracks].
GAME_1855 + Tap [Deploy] to send a Hero to the battlefield!
GAME_1856 + Now close the window and watch your Heroes fight.
GAME_1857 + Press and drag a Hero to move them anywhere you like.
GAME_1858 + [Quests] earn [Gold] every time the gauge fills up.
GAME_1859 + Level up to earn more Gold each time.
GAME_1860 + When you have enough Gold, open a new Quest.
GAME_1861 + You'll earn much more Gold!
GAME_1862 + It's all right, my lord! You earn [Medals] for how far you made it.
GAME_1863 + Power gained with [Medals] stays even after Rebirth.
GAME_1864 + [Rebirth] and take on the challenge again, even stronger!
GAME_1865 + Shall we use your [Medals] to make the Castle stronger?
GAME_1866 + Use Medals in [Upgrade] to strengthen your Castle.
GAME_1867 + Tap it! This power stays even after Rebirth.
GAME_1868 + Great! Your Castle just got even sturdier.
GAME_1869 + From Floor 10, you can [Rebirth] anytime you like.
GAME_1870 + When it gets hard to climb, tap it to earn [Medals]!
GAME_1871 + Tap the screen to continue
GAME_1872 + Reach Lv.{1} in {0}
GAME_1873 + Unlock {0}
GAME_1874 + My lord, a new ally, the [Priest], has joined us!
GAME_1875 + When the Priest's [Divine Blessing] activates, game speed increases by +300% for 2 minutes.
GAME_1876 + The more Priests you deploy, the more often it activates.
GAME_1877 + This time, a [Fairy] has come to lend a hand!
GAME_1878 + When the Fairy's [Elven Arcane Art] activates, you skip a wave.
GAME_1879 + The more Fairies you deploy, the faster you can advance.
GAME_1880 + A [Dark Archer] has joined! A great ally especially when you Rebirth.
GAME_1881 + With Dark Archers deployed, you start from a higher floor after Rebirth.
GAME_1882 + Deploy 10 of them and Rebirth at Floor 1000, and you'll start again from Floor 500.
GAME_1883 + A [Secretary] has arrived at the Citadel. A reliable ally who helps you grow.
GAME_1884 + The Secretary gathers resources like Hero and Pet shards at regular intervals.
GAME_1885 + Hire a [Premium Secretary] to gather much more.
GAME_1886 + Legion Challenge Energy was added instantly. (+{0})
+

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

Assets 11

FileChangeSizePreview
assets/ekkorr/UI_Ekkorr.json changed 190.1 KB → 190.3 KB

New sprites: ui_energy

assets/ekkorr/UI_Ekkorr.ktx2 changed 2,082.8 KB → 2,066.5 KB
assets/images/Game.json changed 1,803.6 KB → 1,917.8 KB

New sprites: bones1, deadTree11, deadTree12, deadTree21, deadTree22, deadTree31, deadTree32, deadTree41, deadTree42, grave1, grave2

assets/images/Game.ktx2 changed 2,051.9 KB → 2,090.7 KB
assets/images/UI_MINI.json changed 12.4 KB → 12.7 KB

New sprites: relic_layer_buff_capacity

assets/images/UI_MINI.ktx2 changed 456.8 KB → 458.8 KB
assets/images/UI_MINI.png removed 855.3 KB → gone before
assets/images/bg/deadland/bg1.png added 583.6 KB after
assets/images/bg/deadland/bg2.png added 599.1 KB after
assets/images/bg/deadland/bg3.png added 631.8 KB after
assets/images/bg/deadland/bg4.png added 569.5 KB after

Code 261 changes in 108 classes

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

TopMenuLayer 2 hunks, 543 statements
- ),Xt(Noi,"DURATION_PER_DIALOGUE",300),Xt(Noi,"FADE_IN_FRAMES",10),Xt(Noi,"FADE_OUT_FRAMES",30);
+ ),Xt(sai,"DURATION_PER_DIALOGUE",300),Xt(sai,"FADE_IN_FRAMES",10),Xt(sai,"FADE_OUT_FRAMES",30),Xt(sai,"MESSAGE_STYLE",OL.DEFAULT_FONT_OPTION_16),Xt(sai,"MESSAGE_WIDTH",480);
+ let eai=sai;
+ const nai=class extends pS{
+ constructor(){
+ super()}
+ }
+ ;
+ qt(nai,"TopMenuLayer");
+ let hai=nai;
+ const rai=class extends pS{
+ constructor(){
+ super()}
+ }
+ ;
+ qt(rai,"GoldLayer");
+ let oai=rai;
+ const aai=class t extends pS{
+ constructor(){
+ super(),Xt(this,"spine",null),Xt(this,"isLoaded",!1),Xt(this,"loadingStarted",!1),Xt(this,"overlay"),Xt(this,"onCompleteCallback",null),Xt(this,"onEarlyCallback",null),Xt(this,"earlyFrameCount",0),Xt(this,"safetyTimer",null),Xt(this,"listener",{
+ complete:qt(()=>{
+ this.onAnimationComplete()}
+ ,"complete")}
+ ),this.overlay=new Ff,this.overlay.rect(0,-Xy.SAFE_AREA_TOP,640,Xy.stageHeight+Xy.SAFE_AREA_TOP),this.overlay.fill({
+ color:0,alpha:.7}
+ ),this.addChild(this.overlay),this.visible=!1,this.eventMode="static"}
+ preload(){
+ this.loadSpine()}
+ async loadSpine(){
+ if(!this.loadingStarted){
+ this.loadingStarted=!0;
+ try{
+ const t=`${
+ tS.getBase()}
+ assets/spines/Reincarnation.skel`,i=`${
+ tS.getBase()}
+ assets/spines/Reincarnation.atlas`;
+ if(ld.add({
+ alias:"reincarnationAtlas",src:i}
+ ),ld.add({
+ alias:"reincarnationSkel",src:t}
+ ),await ld.load(["reincarnationAtlas","reincarnationSkel"]),this.spine=nZ.from({
+ skeleton:"reincarnationSkel",atlas:"reincarnationAtlas"}
+ ),!this.spine)throw new Error("Failed to create Reincarnation Spine");
+ this.spine.x=320,this.spine.y=.5*Xy.stageHeight,this.spine.scale.set(1),this.spine.visible=!1,this.spine.autoUpdate=!1,this.addChild(this.spine),this.isLoaded=!0}
+ catch(t){
+ this.loadingStarted=!1}
+ }
+ }
+ async play(i,s){
+ this.safetyTimer&&(clearTimeout(this.safetyTimer),this.safetyTimer=null),this.onCompleteCallback=i,this.onEarlyCallback=s??null,this.earlyFrameCount=0,this.isLoaded||this.loadingStarted||await this.loadSpine();
+ let e=0;
+ for(;
+ !this.isLoaded&&this.loadingStarted&&e<100;
+ )await new Promise(t=>setTimeout(t,50)),e++;
+ if(!this.isLoaded||!this.spine)return null==s||s(),i(),this.onEarlyCallback=null,void(this.onCompleteCallback=null);
+ this.visible=!0,this.overlay.visible=!0,this.spine.visible=!0,this.spine.alpha=1,this.spine.autoUpdate=!1,this.spine.autoUpdate=!0,this.spine.state.removeListener(this.listener),this.spine.state.addListener(this.listener),this.spine.state.setAnimation(0,"Reincarnation",!1),this.onEarlyCallback&&(this.earlyFrameCount=0,FM.getInstance().add(this.onEarlyFrame,this)),this.safetyTimer=setTimeout(()=>this.forceFinish(),t.SAFETY_TIMEOUT_MS)}
+ onEarlyFrame(){
+ this.earlyFrameCount++,this.earlyFrameCount>=98&&(FM.getInstance().remove(this.onEarlyFrame,this),this.overlay.visible=!1,this.onEarlyCallback&&(this.onEarlyCallback(),this.onEarlyCallback=null))}
+ onAnimationComplete(){
+ this.spine&&(this.spine.state.removeListener(this.listener),this.spine.state.clearTracks(),this.spine.autoUpdate=!1,this.spine.visible=!1),this.visible=!1,this.onCompleteCallback&&(this.onCompleteCallback(),this.onCompleteCallback=null)}
+ forceFinish(){
+ this.safetyTimer=null;
+ const t=this.onEarlyCallback,i=this.onCompleteCallback;
+ (t||i)&&(FM.getInstance().remove(this.onEarlyFrame,this),this.spine&&(this.spine.state.removeListener(this.listener),this.spine.state.clearTracks(),this.spine.autoUpdate=!1,this.spine.visible=!1),this.overlay.visible=!1,this.visible=!1,t&&(this.onEarlyCallback=null,t()),i&&(this.onCompleteCallback=null,i()))}
+ }
+ ;
+ qt(aai,"ReviveLayer"),Xt(aai,"SAFETY_TIMEOUT_MS",8e3);
+ let cai=aai;
+ const lai=[{
+ event:"txt_01",text:"세계의 봉인을 지키는 마지막 요새.\n<발키온>",fadeOut:13.67,ox:3,oy:-216}
+ ,{
+ event:"txt_02",text:"심연의 군단과 끝없는 전쟁에서\n영웅들은 모두 쓰러졌고,\n발키온은 어둠속에 침묵했다.",fadeOut:13.67,ox:4,oy:127}
+ ,{
+ event:"txt_03",text:"그런데... 어느날..\n발키온의 심장이 다시 뛰기 시작했다.",fadeOut:13.67,ox:7,oy:485}
+ ,{
+ event:"txt_04",text:"깨어나셨군요.",fadeOut:25.67,ox:-178,oy:-448}
+ ,{
+ event:"txt_05",text:"그래...\n다시 환생 했어..",fadeOut:25.67,ox:121,oy:-126}
+ ,{
+ event:"txt_06",text:"영웅은 온 힘을 다해\n심연의 군단에 맞섰으나\n부족한 자신의 힘에 절망했다.",fadeOut:25.67,ox:0,oy:465}
+ ,{
+ event:"txt_07",text:"그때, 전투의 기억을 간직한\n영웅의 훈장이 빛을 뿜었고,",fadeOut:35.33,ox:0,oy:-216}
+ ,{
+ event:"txt_08",text:"영웅에게 다시 일어날\n강력한 힘을 부여했다.",fadeOut:35.33,ox:0,oy:140}
+ ,{
+ event:"txt_09",text:"받으세요.\n이 훈장에는 과거...\n당신의 전투기억이 담겨있습니다.",fadeOut:47.33,ox:0,oy:-92}
+ ,{
+ event:"txt_10",text:"그래.. 힘이 느껴져...\n이 힘이라면, 다시 싸울수 있을것 같아",fadeOut:47.33,ox:67,oy:487}
+ ,{
+ event:"txt_11",text:"영웅이여 !\n발키온에 잠든 진짜 힘이\n깨어날때까지....\n이 성을 수호하라 !",fadeOut:55.33,ox:0,oy:431}
+ ];
+ function uai(){
+ const t=OL.WHITE_OUTLINE_FONT_OPTION_22;
+ return t.align="center",t.lineHeight=30,t.wordWrap=!1,t}
+ qt(uai,"createIntroTextStyle");
+ const dai=class extends pS{
+ constructor(){
+ super(),Xt(this,"spine",null),Xt(this,"isLoaded",!1),Xt(this,"loadingStarted",!1),Xt(this,"overlay"),Xt(this,"onCompleteCallback",null),Xt(this,"activeTexts",[]),Xt(this,"textMap",new Map),Xt(this,"skipText",null),Xt(this,"introSound",null),Xt(this,"listener",{
+ event:qt((t,i)=>{
+ this.onSpineEvent(i.data.name)}
+ ,"event"),complete:qt(()=>{
+ this.onAnimationComplete()}
+ ,"complete")}
+ ),this.overlay=new Ff,this.overlay.rect(0,-Xy.SAFE_AREA_TOP,640,Xy.stageHeight+Xy.SAFE_AREA_TOP),this.overlay.fill({
+ color:0,alpha:1}
+ ),this.addChild(this.overlay);
+ for(const t of lai)this.textMap.set(t.event,t);
+ this.visible=!1,this.eventMode="static"}
+ preload(){
+ this.loadSpine()}
+ async loadSpine(){
+ if(!this.loadingStarted){
+ this.loadingStarted=!0;
+ try{
+ const t=`${
+ tS.getBase()}
+ assets/spines/scene.json`,i=`${
+ tS.getBase()}
+ assets/spines/scene.atlas`;
+ if(ld.add({
+ alias:"sceneAtlas",src:i}
+ ),ld.add({
+ alias:"sceneJson",src:t}
+ ),await ld.load(["sceneAtlas","sceneJson"]),this.spine=nZ.from({
+ skeleton:"sceneJson",atlas:"sceneAtlas"}
+ ),!this.spine)throw new Error("Failed to create Intro Spine");
+ this.spine.x=320,this.spine.y=.5*Xy.stageHeight,this.spine.scale.set(1),this.spine.visible=!1,this.spine.autoUpdate=!1,this.addChild(this.spine),this.isLoaded=!0}
+ catch(t){
+ }
+ }
+ }
+ async play(t){
+ this.onCompleteCallback=t,this.isLoaded||this.loadingStarted||await this.loadSpine();
+ let i=0;
+ for(;
+ !this.isLoaded&&this.loadingStarted&&i<100;
+ )await new Promise(t=>setTimeout(t,50)),i++;
+ this.isLoaded&&this.spine?(this.visible=!0,this.overlay.visible=!0,this.spine.visible=!0,this.spine.alpha=1,this.clearAllTexts(),this.spine.autoUpdate=!1,this.spine.autoUpdate=!0,this.spine.state.removeListener(this.listener),this.spine.state.addListener(this.listener),this.muteGameSounds(),this.playIntroSound(),this.spine.state.timeScale=1,this.spine.state.setAnimation(0,"scene",!1),FM.getInstance().add(this.onFrame,this),this.createSkipButton()):t()}
+ onSpineEvent(t){
+ var i,s;
+ const e=this.textMap.get(t);
+ if(!e)return;
+ null==(i=this.spine)||i.skeleton.updateWorldTransform(0);
+ const n=null==(s=this.spine)?void 0:s.skeleton.findBone(t);
+ let h,r;
+ n?(h=this.spine.x+n.worldX,r=this.spine.y+n.worldY):(h=320+e.ox,r=.5*Xy.stageHeight+e.oy),this.showText(e,h,r)}
+ showText(t,i,s){
+ const e=uai(),n=nB.getText(`INTRO_${
+ t.event}
+ `,t.text).split("\n"),h=new He;
+ h.x=i,h.y=s,this.addChild(h);
+ const r=e.lineHeight??30,o=-(n.length-1)*r/2;
+ n.forEach((t,i)=>{
+ const s=new jg({
+ text:t,style:e}
+ );
+ s.anchor.set(.5,.5),s.y=o+i*r,s.alpha=0,h.addChild(s),setTimeout(()=>{
+ s.parent&&this.fadeIn(s,.5)}
+ ,1e3+1e3*i)}
+ ),this.activeTexts.push({
+ container:h,fadeOut:t.fadeOut}
+ )}
+ fadeIn(t,i){
+ const s=performance.now(),e=qt(()=>{
+ const n=(performance.now()-s)/1e3,h=Math.min(1,n/i);
+ t.alpha=h,h<1&&requestAnimationFrame(e)}
+ ,"tick");
+ requestAnimationFrame(e)}
+ fadeOut(t,i,s){
+ const e=performance.now(),n=t.alpha,h=qt(()=>{
+ const r=(performance.now()-e)/1e3,o=Math.min(1,r/i);
+ t.alpha=n*(1-o),o<1?requestAnimationFrame(h):null==s||s()}
+ ,"tick");
+ requestAnimationFrame(h)}
+ onFrame(){
+ if(!this.spine)return;
+ const t=this.spine.state.getCurrent(0);
+ if(!t)return;
+ const i=t.trackTime;
+ for(let s=this.activeTexts.length-1;
+ s>=0;
+ s--){
+ const t=this.activeTexts[s];
+ i>=t.fadeOut-.67&&(this.fadeOut(t.container,.67,()=>{
+ t.container.destroy()}
+ ),this.activeTexts.splice(s,1))}
+ }
+ playIntroSound(){
+ const t=MG.getInstance();
+ t.initialized&&(t.isBgmOn||t.isSfxOn)&&(this.introSound&&(this.introSound.stop(),this.introSound.unload()),this.introSound=new aG.Howl({
+ src:[MG.SFX_INTRO],volume:1}
+ ),this.introSound.play())}
+ stopIntroSound(){
+ this.introSound&&(this.introSound.stop(),this.introSound.unload(),this.introSound=null)}
+ muteGameSounds(){
+ MG.getInstance().stopBGM()}
+ resumeGameSounds(){
+ const t=MG.getInstance();
+ t.isBgmOn&&t.playRandomBGM(.35)}
+ createSkipButton(){
+ this.skipText&&this.skipText.destroy(),this.skipText=new jg({
+ text:"SKIP >>",style:new Ig({
+ fontFamily:"Arial, sans-serif",fontSize:18,fill:11184810}
+ )}
+ ),this.skipText.anchor.set(1,0),this.skipText.x=620,this.skipText.y=16,this.skipText.eventMode="static",this.skipText.cursor="pointer",this.skipText.on("pointertap",()=>{
+ this.skip()}
+ ),this.addChild(this.skipText)}
+ skip(){
+ this.spine&&(this.spine.state.removeListener(this.listener),this.spine.state.clearTracks(),this.spine.autoUpdate=!1,this.spine.visible=!1),this.stopIntroSound(),this.clearAllTexts(),FM.getInstance().remove(this.onFrame,this),this.resumeGameSounds(),this.visible=!1,this.destroySpine(),this.onCompleteCallback&&(this.onCompleteCallback(),this.onCompleteCallback=null)}
+ onAnimationComplete(){
+ setTimeout(()=>{
+ this.skip()}
+ ,1e3)}
+ destroySpine(){
+ this.spine&&(this.removeChild(this.spine),this.spine.destroy(),this.spine=null),this.isLoaded=!1,this.loadingStarted=!1,ld.unload(["sceneAtlas","sceneJson"])}
+ clearAllTexts(){
+ for(const t of this.activeTexts)t.container.destroy();
+ this.activeTexts=[],this.skipText&&(this.skipText.destroy(),this.skipText=null)}
+ }
+ ;
+ qt(dai,"IntroLayer");
+ let fai=dai;
+ const pai=class extends pS{
+ constructor(){
+ super(),this.addChild(IU.getInstance()),this.addChild(tai.getInstance()),this.addChild($4t.getInstance()),this.addChild(oai.getInstance()),this.addChild(TF.getInstance()),this.addChild(zKt.getInstance()),this.addChild(hai.getInstance()),this.addChild(Poi.getInstance()),this.addChild(hG.getInstance()),this.addChild(AD.getInstance()),this.addChild(Fzt.getInstance()),this.addChild(cai.getInstance()),this.addChild(lP.getInstance()),this.addChild(fai.getInstance()),this.addChild(tU.getInstance()),this.updateLayout()}
+ updateLayout(){
+ const t=Xy.SAFE_AREA_TOP,i=this.children.length;
+ for(let s=0;
+ s<i;
+ ++s)this.children[s]!=tU.getInstance()&&(this.children[s].y=t);
+ $4t.getInstance().updateLayout()}
+ }
+ ;
+ qt(pai,"MainLayer");
+ let gai=pai;
+ const mai=class t extends He{
+ constructor(){
+ super(),Xt(this,"spot",new jKt(.6)),Xt(this,"fx",new He),Xt(this,"bubble",new WKt),Xt(this,"hand",null),this.alpha=0,this.eventMode="static",this.addChild(this.spot,this.fx,this.bubble)}
+ static get isActive(){
+ return null!==t.active}
+ static async run(i){
+ if(0===i.length||t.active)return;
+ await WKt.load();
+ const s=new t;
+ t.active=s,dqt.active=!0,gai.getInstance().addChild(s),zk.to(s,{
+ alpha:1,duration:.25}
+ );
+ try{
+ for(const t of i)await s.play(t)}
+ finally{
+ t.active=null,dqt.active=!1,await s.close()}
+ }
+ static isShown(i){
+ if(Array.isArray(i))return i.some(i=>t.isShown(i));
+ if(!i||i.destroyed)return!1;
+ for(let t=i;
+ ;
+ t=t.parent){
+ if(!t.visible||t.alpha<=0)return!1;
+ if(!t.parent)return t===Xy.stage}
+ }
+ get screen(){
+ return{
+ width:640,height:Xy.stageHeight||1136}
+ }
+ async play(t){
+ let i=null;
+ if(t.target){
+ const s=await this.findTarget(t);
+ if(!s)return;
+ const e=this.rectOf(s);
+ i="circle"===t.shape?jKt.circleHole(e,t.pad??8):jKt.rectHole(e,t.pad??8)}
+ const s="action"===t.mode&&null!==i;
+ this.spot.focus(i),this.bubble.show(t.text,t.face??"S_SMI",i?jKt.toRect(i):null,this.screen,!s),i&&t.onShow&&t.onShow(this,jKt.toRect(i)),s?(this.showHand(i),await this.waitPress(t),this.hideHand()):await this.waitTap()}
+ static getter(t){
+ const i=t.target;
+ return"function"==typeof i?i:()=>i}
+ async findTarget(i){
+ const s=t.getter(i),e=performance.now()+(i.waitMs??t.DEFAULT_WAIT_MS);
+ let n="";
+ for(;
+ ;
+ ){
+ const i=s();
+ if(t.isShown(i)){
+ const t=this.rectOf(i),s=`${
+ Math.round(t.x)}
+ ,${
+ Math.round(t.y)}
+ ,${
+ Math.round(t.width)}
+ ,${
+ Math.round(t.height)}
+ `;
+ if(s===n)return i;
+ n=s}
+ else n="";
+ if(performance.now()>e)return t.isShown(i)?i:null;
+ await new Promise(t=>requestAnimationFrame(t))}
+ }
+ rectOf(i){
+ const s=Array.isArray(i)?i.filter(i=>t.isShown(i)):[i];
+ let[e,n,h,r]=[1/0,1/0,-1/0,-1/0];
+ for(const t of s){
+ const i=t.getBounds(),s=this.toLocal(new _i(i.x,i.y)),o=this.toLocal(new _i(i.x+i.width,i.y+i.height));
+ e=Math.min(e,s.x),n=Math.min(n,s.y),h=Math.max(h,o.x),r=Math.max(r,o.y)}
+ return new Di(e,n,h-e,r-n)}
+ waitTap(){
+ this.hitArea=new Di(-5e3,-5e3,1e4,1e4);
+ const i=performance.now();
+ return new Promise(s=>{
+ const e=qt(()=>{
+ performance.now()-i<t.TAP_DELAY_MS||(this.off("pointertap",e),s())}
+ ,"onTap");
+ this.on("pointertap",e)}
+ )}
+ waitPress(i){
+ const s=this.spot;
+ this.hitArea={
+ contains:qt((t,i)=>!s.holeContains(t,i),"contains")}
+ ;
+ const e=t.getter(i),n=Xy.stage;
+ return new Promise(i=>{
+ let h=0;
+ const r=qt(()=>{
+ n.off("pointerup",o),zk.ticker.remove(a),i()}
+ ,"finish"),o=qt(t=>{
+ const i=this.toLocal(t.global);
+ s.holeContains(i.x,i.y)&&setTimeout(r,0)}
+ ,"onUp"),a=qt(()=>{
+ h=t.isShown(e())?0:h+1,h>30&&r()}
+ ,"watch");
+ n.on("pointerup",o),zk.ticker.add(a)}
+ )}
+ showHand(t){
+ if(!this.hand)try{
+ const t=eS.getTextures("ClickHand","ClickHand");
+ if(!t||0===t.length)return;
+ this.hand=new Kf(t),this.hand.animationSpeed=.65,this.hand.eventMode="none"}
+ catch{
+ return}
+ this.hand.position.set(t.x+t.w/2,t.y+t.h/2),this.addChildAt(this.hand,this.getChildIndex(this.bubble)),this.hand.play()}
+ hideHand(){
+ this.hand&&(this.hand.stop(),this.hand.removeFromParent())}
+ burst(t){
+ const i=t.x+t.width/2,s=t.y+t.height/2;
+ for(let e=0;
+ e<12;
+ e++){
+ const n=(new Ff).star(0,0,4,8,3).fill(16769674),h=2*Math.PI*e/12+.3*Math.random(),r=t.width/2+24+26*Math.random();
+ n.position.set(i,s),n.scale.set(.3),this.fx.addChild(n),zk.to(n.scale,{
+ x:1,y:1,duration:.25,ease:"back.out(2)"}
+ ),zk.to(n,{
+ x:i+Math.cos(h)*r,y:s+Math.sin(h)*r*.8,rotation:1.6,alpha:0,duration:.85,ease:"power2.out",onComplete:qt(()=>n.destroy(),"onComplete")}
+ )}
+ }
+ close(){
+ return this.hideHand(),this.bubble.hide(),new Promise(t=>{
+ zk.to(this,{
+ alpha:0,duration:.2,onComplete:qt(()=>{
+ zk.killTweensOf(this.fx.children),this.removeFromParent(),this.destroy({
+ children:!0}
+ ),t()}
+ ,"onComplete")}
+ )}
+ )}
+ }
+ ;
+ qt(mai,"CoachOverlay"),Xt(mai,"TAP_DELAY_MS",350),Xt(mai,"DEFAULT_WAIT_MS",800),Xt(mai,"active",null);
- const Tli=class extends pS{
- constructor(){
- super()}
- }
- ;
- qt(Tli,"TopMenuLayer");
- let Cli=Tli;
- const Ili=[{
- event:"txt_01",text:"세계의 봉인을 지키는 마지막 요새.\n<발키온>",fadeOut:13.67,ox:3,oy:-216}
- ,{
- event:"txt_02",text:"심연의 군단과 끝없는 전쟁에서\n영웅들은 모두 쓰러졌고,\n발키온은 어둠속에 침묵했다.",fadeOut:13.67,ox:4,oy:127}
- ,{
- event:"txt_03",text:"그런데... 어느날..\n발키온의 심장이 다시 뛰기 시작했다.",fadeOut:13.67,ox:7,oy:485}
- ,{
- event:"txt_04",text:"깨어나셨군요.",fadeOut:25.67,ox:-178,oy:-448}
- ,{
- event:"txt_05",text:"그래...\n다시 환생 했어..",fadeOut:25.67,ox:121,oy:-126}
- ,{
- event:"txt_06",text:"영웅은 온 힘을 다해\n심연의 군단에 맞섰으나\n부족한 자신의 힘에 절망했다.",fadeOut:25.67,ox:0,oy:465}
- ,{
- event:"txt_07",text:"그때, 전투의 기억을 간직한\n영웅의 훈장이 빛을 뿜었고,",fadeOut:35.33,ox:0,oy:-216}
- ,{
- event:"txt_08",text:"영웅에게 다시 일어날\n강력한 힘을 부여했다.",fadeOut:35.33,ox:0,oy:140}
- ,{
- event:"txt_09",text:"받으세요.\n이 훈장에는 과거...\n당신의 전투기억이 담겨있습니다.",fadeOut:47.33,ox:0,oy:-92}
- ,{
- event:"txt_10",text:"그래.. 힘이 느껴져...\n이 힘이라면, 다시 싸울수 있을것 같아",fadeOut:47.33,ox:67,oy:487}
- ,{
- event:"txt_11",text:"영웅이여 !\n발키온에 잠든 진짜 힘이\n깨어날때까지....\n이 성을 수호하라 !",fadeOut:55.33,ox:0,oy:431}
- ];
- function Oli(){
- const t=IL.WHITE_OUTLINE_FONT_OPTION_22;
- return t.align="center",t.lineHeight=30,t.wordWrap=!1,t}
- qt(Oli,"createIntroTextStyle");
- const kli=class extends pS{
- constructor(){
- super(),Xt(this,"spine",null),Xt(this,"isLoaded",!1),Xt(this,"loadingStarted",!1),Xt(this,"overlay"),Xt(this,"onCompleteCallback",null),Xt(this,"activeTexts",[]),Xt(this,"textMap",new Map),Xt(this,"skipText",null),Xt(this,"introSound",null),Xt(this,"listener",{
- event:qt((t,i)=>{
- this.onSpineEvent(i.data.name)}
- ,"event"),complete:qt(()=>{
- this.onAnimationComplete()}
- ,"complete")}
- ),this.overlay=new Ff,this.overlay.rect(0,-Xy.SAFE_AREA_TOP,640,Xy.stageHeight+Xy.SAFE_AREA_TOP),this.overlay.fill({
- color:0,alpha:1}
- ),this.addChild(this.overlay);
- for(const t of Ili)this.textMap.set(t.event,t);
- this.visible=!1,this.eventMode="static"}
- preload(){
- this.loadSpine()}
- async loadSpine(){
- if(!this.loadingStarted){
- this.loadingStarted=!0;
- try{
- const t=`${
- tS.getBase()}
- assets/spines/scene.json`,i=`${
- tS.getBase()}
- assets/spines/scene.atlas`;
- if(ld.add({
- alias:"sceneAtlas",src:i}
- ),ld.add({
- alias:"sceneJson",src:t}
- ),await ld.load(["sceneAtlas","sceneJson"]),this.spine=qQ.from({
- skeleton:"sceneJson",atlas:"sceneAtlas"}
- ),!this.spine)throw new Error("Failed to create Intro Spine");
- this.spine.x=320,this.spine.y=.5*Xy.stageHeight,this.spine.scale.set(1),this.spine.visible=!1,this.spine.autoUpdate=!1,this.addChild(this.spine),this.isLoaded=!0}
- catch(t){
- }
- }
- }
- async play(t){
- this.onCompleteCallback=t,this.isLoaded||this.loadingStarted||await this.loadSpine();
- let i=0;
- for(;
- !this.isLoaded&&this.loadingStarted&&i<100;
- )await new Promise(t=>setTimeout(t,50)),i++;
- this.isLoaded&&this.spine?(this.visible=!0,this.overlay.visible=!0,this.spine.visible=!0,this.spine.alpha=1,this.clearAllTexts(),this.spine.autoUpdate=!1,this.spine.autoUpdate=!0,this.spine.state.removeListener(this.listener),this.spine.state.addListener(this.listener),this.muteGameSounds(),this.playIntroSound(),this.spine.state.timeScale=1,this.spine.state.setAnimation(0,"scene",!1),FM.getInstance().add(this.onFrame,this),this.createSkipButton()):t()}
- onSpineEvent(t){
- var i,s;
- const e=this.textMap.get(t);
- if(!e)return;
- null==(i=this.spine)||i.skeleton.updateWorldTransform(0);
- const n=null==(s=this.spine)?void 0:s.skeleton.findBone(t);
- let h,r;
- n?(h=this.spine.x+n.worldX,r=this.spine.y+n.worldY):(h=320+e.ox,r=.5*Xy.stageHeight+e.oy),this.showText(e,h,r)}
- showText(t,i,s){
- const e=Oli(),n=sB.getText(`INTRO_${
- t.event}
- `,t.text).split("\n"),h=new He;
- h.x=i,h.y=s,this.addChild(h);
- const r=e.lineHeight??30,o=-(n.length-1)*r/2;
- n.forEach((t,i)=>{
- const s=new jg({
- text:t,style:e}
- );
- s.anchor.set(.5,.5),s.y=o+i*r,s.alpha=0,h.addChild(s),setTimeout(()=>{
- s.parent&&this.fadeIn(s,.5)}
- ,1e3+1e3*i)}
- ),this.activeTexts.push({
- container:h,fadeOut:t.fadeOut}
- )}
- fadeIn(t,i){
- const s=performance.now(),e=qt(()=>{
- const n=(performance.now()-s)/1e3,h=Math.min(1,n/i);
- t.alpha=h,h<1&&requestAnimationFrame(e)}
- ,"tick");
- requestAnimationFrame(e)}
- fadeOut(t,i,s){
- const e=performance.now(),n=t.alpha,h=qt(()=>{
- const r=(performance.now()-e)/1e3,o=Math.min(1,r/i);
- t.alpha=n*(1-o),o<1?requestAnimationFrame(h):null==s||s()}
- ,"tick");
- requestAnimationFrame(h)}
- onFrame(){
- if(!this.spine)return;
- const t=this.spine.state.getCurrent(0);
- if(!t)return;
- const i=t.trackTime;
- for(let s=this.activeTexts.length-1;
- s>=0;
- s--){
- const t=this.activeTexts[s];
- i>=t.fadeOut-.67&&(this.fadeOut(t.container,.67,()=>{
- t.container.destroy()}
- ),this.activeTexts.splice(s,1))}
- }
- playIntroSound(){
- const t=bG.getInstance();
- t.initialized&&(t.isBgmOn||t.isSfxOn)&&(this.introSound&&(this.introSound.stop(),this.introSound.unload()),this.introSound=new rG.Howl({
- src:[bG.SFX_INTRO],volume:1}
- ),this.introSound.play())}
- stopIntroSound(){
- this.introSound&&(this.introSound.stop(),this.introSound.unload(),this.introSound=null)}
- muteGameSounds(){
- bG.getInstance().stopBGM()}
- resumeGameSounds(){
- const t=bG.getInstance();
- t.isBgmOn&&t.playRandomBGM(.35)}
- createSkipButton(){
- this.skipText&&this.skipText.destroy(),this.skipText=new jg({
- text:"SKIP >>",style:new Ig({
- fontFamily:"Arial, sans-serif",fontSize:18,fill:11184810}
- )}
- ),this.skipText.anchor.set(1,0),this.skipText.x=620,this.skipText.y=16,this.skipText.eventMode="static",this.skipText.cursor="pointer",this.skipText.on("pointertap",()=>{
- this.skip()}
- ),this.addChild(this.skipText)}
- skip(){
- this.spine&&(this.spine.state.removeListener(this.listener),this.spine.state.clearTracks(),this.spine.autoUpdate=!1,this.spine.visible=!1),this.stopIntroSound(),this.clearAllTexts(),FM.getInstance().remove(this.onFrame,this),this.resumeGameSounds(),this.visible=!1,this.destroySpine(),this.onCompleteCallback&&(this.onCompleteCallback(),this.onCompleteCallback=null)}
- onAnimationComplete(){
- setTimeout(()=>{
- this.skip()}
- ,1e3)}
- destroySpine(){
- this.spine&&(this.removeChild(this.spine),this.spine.destroy(),this.spine=null),this.isLoaded=!1,this.loadingStarted=!1,ld.unload(["sceneAtlas","sceneJson"])}
- clearAllTexts(){
- for(const t of this.activeTexts)t.container.destroy();
- this.activeTexts=[],this.skipText&&(this.skipText.destroy(),this.skipText=null)}
- }
- ;
- qt(kli,"IntroLayer");
- let Rli=kli;
- const xli=class extends pS{
- constructor(){
- super(),this.addChild(_U.getInstance()),this.addChild(xoi.getInstance()),this.addChild(b4t.getInstance()),this.addChild(rli.getInstance()),this.addChild(wF.getInstance()),this.addChild(OKt.getInstance()),this.addChild(Cli.getInstance()),this.addChild(uoi.getInstance()),this.addChild(nG.getInstance()),this.addChild(MD.getInstance()),this.addChild(Azt.getInstance()),this.addChild(Eci.getInstance()),this.addChild(cP.getInstance()),this.addChild(Rli.getInstance()),this.addChild(XB.getInstance()),this.updateLayout()}
- updateLayout(){
- const t=Xy.SAFE_AREA_TOP,i=this.children.length;
- for(let s=0;
- s<i;
- ++s)this.children[s]!=XB.getInstance()&&(this.children[s].y=t);
- b4t.getInstance().updateLayout()}
- }
- ;
- qt(xli,"MainLayer");
- let Pli=xli;
DayNightFx 2 hunks, 210 statements
- )),vU=class t extends pS{
+ ));
+ var MU=(t=>(t[t.DAY=0]="DAY",t[t.DUSK=1]="DUSK",t[t.NIGHT=2]="NIGHT",t[t.DAWN=3]="DAWN",t))(MU||{
+ }
+ );
+ const AU=class t{
- super(),Xt(this,"titleBackground",null),Xt(this,"nightOverlay"),Xt(this,"colorFilter",new of),t._instance=this,window.gameFx={
+ Xt(this,"overlayRoot",new He),Xt(this,"airRoot",new He),Xt(this,"overlay"),Xt(this,"torch"),Xt(this,"fireflyRoot",new He),Xt(this,"soulRoot",new He),Xt(this,"fireflies",[]),Xt(this,"souls",[]),Xt(this,"ambientTicking",!1),Xt(this,"elapsed",0),Xt(this,"phase",0),Xt(this,"realm",xB.FOREST),Xt(this,"overlayRgb",{
+ r:255,g:255,b:255}
+ ),Xt(this,"unitRgb",{
+ r:255,g:255,b:255}
+ );
+ const i=t.FIELD,s=t.CENTER;
+ this.overlayRoot.eventMode="none",this.airRoot.eventMode="none",this.overlay=new je(t.buildNightTexture()),this.overlay.width=i,this.overlay.height=i,this.overlay.alpha=0,this.overlay.blendMode="multiply",this.overlayRoot.addChild(this.overlay),this.torch=new je(t.buildGlowTexture(128,"255,196,130")),this.torch.anchor.set(.5),this.torch.position.set(s,s),this.torch.width=this.torch.height=380,this.torch.alpha=0,this.torch.blendMode="add",this.overlayRoot.addChild(this.torch);
+ const e=t.buildGlowTexture(32,"220,255,140");
+ for(let h=0;
+ h<t.FIREFLY_COUNT;
+ h++){
+ const t=new je(e);
+ t.anchor.set(.5),t.blendMode="add";
+ const n=6+4*Math.random();
+ t.width=t.height=n;
+ const h=Math.random()*Math.PI*2,r=210+110*Math.random(),o=Math.max(20,Math.min(i-20,s+Math.cos(h)*r)),a=Math.max(20,Math.min(i-20,s+Math.sin(h)*r));
+ t.position.set(o,a),this.fireflyRoot.addChild(t),this.fireflies.push({
+ sprite:t,baseX:o,baseY:a,phase:Math.random()*Math.PI*2,speed:.4+.5*Math.random(),radius:12+20*Math.random()}
+ )}
+ const n=t.buildGlowTexture(32,"150,255,205");
+ for(let h=0;
+ h<t.SOUL_COUNT;
+ h++){
+ const i=new je(n);
+ i.anchor.set(.5),i.blendMode="add";
+ const s=5+5*Math.random();
+ i.width=s,i.height=1.5*s,this.soulRoot.addChild(i);
+ const e={
+ sprite:i,x:0,y:0,vy:0,age:0,life:1,phase:0}
+ ;
+ t.respawnSoul(e),e.age=Math.random()*e.life,this.souls.push(e)}
+ this.airRoot.addChild(this.fireflyRoot,this.soulRoot),this.airRoot.alpha=0,this.airRoot.visible=!1}
+ static phaseOf(t){
+ const i=(t-1)%10;
+ return i>=5?2:4===i?1:0===i&&t>1?3:0}
+ apply(i,s,e){
+ this.phase=i,this.realm=s;
+ const n=t.LOOKS[s][i],h=2===i,r=e?0:t.TRANSITION;
+ zk.killTweensOf(this.overlay),e?this.overlay.alpha=n.overlayAlpha:zk.to(this.overlay,{
+ alpha:n.overlayAlpha,duration:r,ease:"power2.inOut"}
+ ),t.tweenTint(this.overlayRgb,n.overlayTint,r,t=>this.overlay.tint=t);
+ const o=VB.getInstance();
+ t.tweenTint(this.unitRgb,n.unitTint,r,t=>o.tint=t),this.setTorch(h,e);
+ const a=s===xB.DEAD_LAND;
+ this.fireflyRoot.visible=!a,this.soulRoot.visible=a,this.setAmbient(a?h?1:.65:h?1:0,e)}
+ setTorch(i,s){
+ zk.killTweensOf(this.torch),zk.killTweensOf(this.torch.scale),i?s?(this.torch.alpha=.14,this.flickerTorch()):zk.to(this.torch,{
+ alpha:.14,duration:t.TRANSITION,ease:"power2.inOut",onComplete:qt(()=>this.flickerTorch(),"onComplete")}
+ ):s?this.torch.alpha=0:zk.to(this.torch,{
+ alpha:0,duration:t.TRANSITION,ease:"power2.inOut"}
+ )}
+ flickerTorch(){
+ if(2!==this.phase)return;
+ const t=.15+.35*Math.random(),i=2.96875*(.97+.06*Math.random());
+ zk.to(this.torch.scale,{
+ x:i,y:i,duration:t,ease:"sine.inOut"}
+ ),zk.to(this.torch,{
+ alpha:.1+.08*Math.random(),duration:t,ease:"sine.inOut",onComplete:qt(()=>this.flickerTorch(),"onComplete")}
+ )}
+ setAmbient(i,s){
+ zk.killTweensOf(this.airRoot),i>0?(this.airRoot.visible=!0,this.startAmbientTick(),s?this.airRoot.alpha=i:zk.to(this.airRoot,{
+ alpha:i,duration:t.TRANSITION}
+ )):s||!this.airRoot.visible?(this.airRoot.alpha=0,this.hideAmbient()):zk.to(this.airRoot,{
+ alpha:0,duration:t.TRANSITION,onComplete:qt(()=>this.hideAmbient(),"onComplete")}
+ )}
+ hideAmbient(){
+ this.airRoot.visible=!1,this.ambientTicking&&(gn.shared.remove(this.tickAmbient,this),this.ambientTicking=!1)}
+ startAmbientTick(){
+ this.ambientTicking||(gn.shared.add(this.tickAmbient,this),this.ambientTicking=!0)}
+ tickAmbient(t){
+ const i=t.deltaMS/1e3;
+ this.elapsed+=i,this.fireflyRoot.visible&&this.updateFireflies(),this.soulRoot.visible&&this.updateSouls(i)}
+ updateFireflies(){
+ const t=this.elapsed;
+ for(const i of this.fireflies){
+ const s=t*i.speed+i.phase;
+ i.sprite.x=i.baseX+Math.sin(s)*i.radius,i.sprite.y=i.baseY+Math.sin(1.7*s+1.3)*i.radius*.6;
+ const e=Math.sin(t*(1.2+i.speed)+3*i.phase);
+ i.sprite.alpha=.25+.75*Math.max(0,e)}
+ }
+ updateSouls(i){
+ for(const s of this.souls){
+ s.age+=i,s.age>=s.life&&t.respawnSoul(s);
+ const e=s.age/s.life;
+ s.y-=s.vy*i,s.sprite.x=s.x+5*Math.sin(1.6*s.age+s.phase),s.sprite.y=s.y,s.sprite.alpha=.9*Math.sin(Math.PI*e)}
+ }
+ static respawnSoul(i){
+ const s=t.CENTER,e=Math.random()*Math.PI*2,n=170+170*Math.random();
+ i.x=Math.max(12,Math.min(t.FIELD-12,s+Math.cos(e)*n)),i.y=Math.max(40,Math.min(t.FIELD-8,s+Math.sin(e)*n)),i.vy=10+14*Math.random(),i.age=0,i.life=2.5+3*Math.random(),i.phase=Math.random()*Math.PI*2}
+ static tweenTint(t,i,s,e){
+ zk.killTweensOf(t);
+ const n=i>>16&255,h=i>>8&255,r=255&i;
+ if(s<=0)return t.r=n,t.g=h,t.b=r,void e(i);
+ zk.to(t,{
+ r:n,g:h,b:r,duration:s,ease:"power2.inOut",onUpdate:qt(()=>e(Math.round(t.r)<<16|Math.round(t.g)<<8|Math.round(t.b)),"onUpdate")}
+ )}
+ static buildNightTexture(){
+ const t=256,i=document.createElement("canvas");
+ i.width=t,i.height=t;
+ const s=i.getContext("2d"),e=128,n=s.createRadialGradient(e,e,0,e,e,184.32);
+ return n.addColorStop(0,"rgb(214,190,150)"),n.addColorStop(.18,"rgb(150,150,170)"),n.addColorStop(.45,"rgb(72,88,138)"),n.addColorStop(.75,"rgb(26,36,78)"),n.addColorStop(1,"rgb(10,14,36)"),s.fillStyle=n,s.fillRect(0,0,t,t),hs.from(i)}
+ static buildGlowTexture(t,i){
+ const s=document.createElement("canvas");
+ s.width=t,s.height=t;
+ const e=s.getContext("2d"),n=t/2,h=e.createRadialGradient(n,n,0,n,n,n);
+ return h.addColorStop(0,`rgba(${
+ i}
+ ,1)`),h.addColorStop(.35,`rgba(${
+ i}
+ ,0.55)`),h.addColorStop(1,`rgba(${
+ i}
+ ,0)`),e.fillStyle=h,e.fillRect(0,0,t,t),hs.from(s)}
+ }
+ ;
+ qt(AU,"DayNightFx"),Xt(AU,"FIELD",640),Xt(AU,"CENTER",320),Xt(AU,"TRANSITION",2),Xt(AU,"FIREFLY_COUNT",16),Xt(AU,"SOUL_COUNT",18),Xt(AU,"LOOKS",{
+ [xB.FOREST]:{
+ 0:{
+ overlayAlpha:0,overlayTint:16777215,unitTint:16777215}
+ ,1:{
+ overlayAlpha:.62,overlayTint:16747088,unitTint:16763040}
+ ,2:{
+ overlayAlpha:1,overlayTint:16777215,unitTint:11582688}
+ ,3:{
+ overlayAlpha:.5,overlayTint:16754884,unitTint:16767196}
+ }
+ ,[xB.DEAD_LAND]:{
+ 0:{
+ overlayAlpha:.3,overlayTint:12891391,unitTint:15261942}
+ ,1:{
+ overlayAlpha:.6,overlayTint:16738922,unitTint:15910088}
+ ,2:{
+ overlayAlpha:1,overlayTint:12124120,unitTint:11060416}
+ ,3:{
+ overlayAlpha:.48,overlayTint:14199039,unitTint:15522036}
+ }
+ }
+ );
+ let yU=AU;
+ const SU=class t extends He{
+ constructor(){
+ super(),Xt(this,"cracks",new Ff),Xt(this,"ring",new Ff),Xt(this,"flash",new Ff),Xt(this,"crackPaths",[]),Xt(this,"playing",!1),this.eventMode="none",this.visible=!1,this.cracks.blendMode="add",this.ring.blendMode="add",this.ring.circle(0,0,100).stroke({
+ width:14,color:t.COLOR}
+ ),this.ring.position.set(t.CENTER,t.CENTER),this.flash.rect(0,0,t.FIELD,t.FIELD).fill(15269872),this.addChild(this.cracks,this.ring,this.flash)}
+ play(t){
+ if(this.playing)return void t();
+ this.playing=!0,this.visible=!0,this.buildCrackPaths(),this.cracks.alpha=1,this.flash.alpha=0,this.ring.alpha=0,this.ring.scale.set(.1);
+ const i={
+ t:0}
+ ,s=zk.timeline();
+ s.to(i,{
+ t:1,duration:.7,ease:"power2.in",onUpdate:qt(()=>this.drawCracks(i.t),"onUpdate")}
+ ),s.to(this.flash,{
+ alpha:1,duration:.3,ease:"power2.in"}
+ ),s.add(()=>{
+ Promise.resolve().then(t).catch(t=>{
+ }
+ ).finally(()=>{
+ this.cracks.alpha=0,this.ring.alpha=1,zk.to(this.ring.scale,{
+ x:4.5,y:4.5,duration:1,ease:"power2.out"}
+ ),zk.to(this.ring,{
+ alpha:0,duration:1,ease:"power2.in"}
+ ),zk.to(this.flash,{
+ alpha:0,duration:1.4,ease:"power2.out",onComplete:qt(()=>this.finish(),"onComplete")}
+ )}
+ )}
+ )}
+ finish(){
+ this.cracks.clear(),this.visible=!1,this.playing=!1}
+ buildCrackPaths(){
+ const i=t.CENTER;
+ this.crackPaths=[];
+ for(let t=0;
+ t<9;
+ t++){
+ let s=t/9*Math.PI*2+.4*Math.random(),e=i+30*Math.cos(s),n=i+30*Math.sin(s);
+ const h=[{
+ x:e,y:n}
+ ];
+ for(let t=30;
+ t<480;
+ t+=22+18*Math.random())s+=.5*(Math.random()-.5),e=i+Math.cos(s)*t,n=i+Math.sin(s)*t,h.push({
+ x:e,y:n}
+ );
+ this.crackPaths.push(h)}
+ }
+ drawCracks(i){
+ const s=this.cracks;
+ s.clear();
+ for(const e of this.crackPaths){
+ const n=Math.max(1,Math.floor(e.length*i));
+ s.moveTo(e[0].x,e[0].y);
+ for(let t=1;
+ t<=n&&t<e.length;
+ t++)s.lineTo(e[t].x,e[t].y);
+ s.stroke({
+ width:3+3*i,color:t.COLOR,alpha:.9}
+ )}
+ }
+ }
+ ;
+ qt(SU,"RealmTransitionFx"),Xt(SU,"FIELD",640),Xt(SU,"CENTER",320),Xt(SU,"COLOR",12124120);
+ let TU=SU;
+ const CU=class t extends pS{
+ constructor(){
+ super(),Xt(this,"titleBackground",null),Xt(this,"dayNight",new yU),Xt(this,"realmTransition",new TU),Xt(this,"colorFilter",new of),t._instance=this,window.gameFx={
GuideBubble 1 hunks, 196 statements
+ const GKt={
+ castleIntro1:["GAME_1851","성주님, 이곳이 우리가 지켜야 할 [성]이에요."],castleIntro2:["GAME_1852","몰려오는 적들로부터 성을 끝까지 지켜 주세요!"],heroTab:["GAME_1853","성을 함께 지킬 [영웅]을 불러 볼까요?"],heroRoster:["GAME_1854","[병영]에서 영웅들이 출전을 기다리고 있어요."],heroHire:["GAME_1855","[배치]를 누르면 영웅이 전장에 나가요!"],heroClose:["GAME_1856","이제 창을 닫고 영웅의 활약을 지켜봐요."],heroDrag:["GAME_1857","영웅을 꾹 눌러 끌면 원하는 자리로 옮길 수 있어요."],questGauge:["GAME_1858","[퀘스트]는 게이지가 찰 때마다 [골드]를 벌어 와요."],questLevel:["GAME_1859","레벨을 올리면 한 번에 버는 골드가 늘어나요."],questOpen1:["GAME_1860","골드가 모이면 새 퀘스트를 열어 보세요."],questOpen2:["GAME_1861","훨씬 많은 골드를 벌 수 있어요!"],reviveMedal1:["GAME_1862","괜찮아요, 성주님! 버틴 만큼 [훈장]을 받아요."],reviveMedal2:["GAME_1863","[훈장]으로 올린 힘은 환생해도 사라지지 않아요."],reviveButton:["GAME_1864","[환생]하고, 더 강해진 모습으로 다시 도전해요!"],medalTab:["GAME_1865","받은 [훈장]으로 성을 더 강하게 만들어 볼까요?"],medalShortcut:["GAME_1866","[강화]에서 훈장으로 성을 강하게 만들어요."],medalEnhance:["GAME_1867","눌러 보세요! 이 힘은 환생해도 그대로 남아요."],medalDone:["GAME_1868","좋아요! 성이 한층 더 튼튼해졌어요."],reviveAnytime1:["GAME_1869","10층부터는 언제든 직접 [환생]할 수 있어요."],reviveAnytime2:["GAME_1870","더 오르기 힘들 때 눌러서 [훈장]을 받아요!"],tapToContinue:["GAME_1871","화면을 터치해 계속"],missionQuestLevel:["GAME_1872","{
+ 0}
+  {
+ 1}
+ 레벨 달성"],missionQuestOpen:["GAME_1873","{
+ 0}
+  오픈"],priest1:["GAME_1874","성주님, 새 동료 [사제]가 합류했어요!"],priest2:["GAME_1875","사제의 [신의 축복]이 발동하면 2분 동안 게임 속도가 +300% 빨라져요."],priest3:["GAME_1876","사제를 많이 배치할수록 더 자주 발동한답니다."],fairy1:["GAME_1877","이번엔 [페어리]가 힘을 보태러 왔어요!"],fairy2:["GAME_1878","페어리의 [엘프의 비술]이 발동하면 웨이브를 하나 건너뛰어요."],fairy3:["GAME_1879","페어리를 많이 배치할수록 더 빠르게 전진할 수 있어요."],darkArcher1:["GAME_1880","[다크아처]가 합류했네요! 환생할 때 특히 든든한 동료예요."],darkArcher2:["GAME_1881","다크아처를 배치해 두면 환생한 뒤 더 높은 층에서 시작해요."],darkArcher3:["GAME_1882","10명을 배치하고 1000층에서 환생하면, 500층부터 다시 시작할 수 있답니다."],secretary1:["GAME_1883","성채에 [비서]가 왔어요. 성장을 도와줄 든든한 동료예요."],secretary2:["GAME_1884","비서는 일정 시간마다 영웅·펫 조각 같은 자원을 모아 와요."],secretary3:["GAME_1885","[고급 비서]를 고용하면 훨씬 많이 모아 온답니다."]}
+ ;
+ function BKt(...t){
+ return t.map(([t,i])=>nB.getText(t,i)).join("\n")}
+ function UKt(t,...i){
+ return i.reduce((t,i,s)=>t.split(`{
+ ${
+ s}
+ }
+ `).join(String(i)),BKt(t))}
+ qt(BKt,"guideText"),qt(UKt,"guideFormat");
+ const FKt={
+ hl:{
+ fill:16765786}
+ }
+ ;
+ function HKt(t,i,s){
+ let e="";
+ const n=[],h=/\[([^\]]+)\]/g;
+ let r=0;
+ for(let d=h.exec(t);
+ d;
+ d=h.exec(t)){
+ for(const i of t.slice(r,d.index))e+=i,n.push(!1);
+ for(const t of d[1])e+=t,n.push(!0);
+ r=d.index+d[0].length}
+ for(const d of t.slice(r))e+=d,n.push(!1);
+ const o=OL.wrapTextCJK(e,i,s),a=Array.from(e);
+ let c="",l=!1,u=0;
+ for(const d of o){
+ for(;
+ u<a.length&&d!==a[u]&&" "===a[u];
+ )u++;
+ if(u<a.length&&d===a[u])n[u]!==l&&(c+=l?"</hl>":"<hl>",l=n[u]),c+=d,u++;
+ else{
+ if("\n"!==d)return o;
+ c+=l?"</hl>\n<hl>":"\n"}
+ }
+ return l&&(c+="</hl>"),c}
+ qt(HKt,"highlightMarkup");
+ const $Kt=class t extends He{
+ constructor(){
+ super(),Xt(this,"box",new Ff),Xt(this,"portrait",new je),Xt(this,"lblName",new SD("",16768324,OL.DEFAULT_OUTLINE_FONT_OPTION_17)),Xt(this,"body",new jg({
+ text:"",style:{
+ ...t.BODY_STYLE,fill:16777215,tagStyles:FKt}
+ }
+ )),Xt(this,"hint",new He),Xt(this,"lblHint",new SD("",13350539,{
+ ...OL.DEFAULT_FONT_OPTION_18,fontSize:15,lineHeight:20}
+ )),Xt(this,"hintArrow",(new Ff).poly([0,0,12,0,6,8]).fill(16766826)),this.eventMode="none",this.portrait.anchor.set(.5,1),this.hint.addChild(this.lblHint,this.hintArrow),this.addChild(this.box,this.portrait,this.lblName,this.body,this.hint),this.visible=!1}
+ static load(){
+ if(!this.loading){
+ const i="ktx2";
+ this.loading=eS.generateTexture(t.SHEET,i,!1).then(()=>{
+ }
+ ).catch(()=>{
+ this.loading=null}
+ )}
+ return this.loading}
+ show(i,s,e,n,h){
+ const r=t.W,o=t.PAD,a=eS.hasSheet(t.SHEET)?eS.getTexture(t.SHEET,s):null;
+ this.portrait.visible=!!a;
+ let c=0,l=0;
+ if(a){
+ this.portrait.texture=a;
+ const i=t.PORTRAIT_H/a.height;
+ this.portrait.scale.set(i),c=a.width*i,l=t.PORTRAIT_H}
+ const u=a?10+c+6:o+4,d=r-u-o-4;
+ this.lblName.text=nB.getText("DIALOGUE_NPC_S","정령"),this.lblName.position.set(u,o-4),this.body.text=HKt(i,t.BODY_STYLE,d),this.body.position.set(u,this.lblName.y+this.lblName.height+2),this.hint.visible=h;
+ let f=0;
+ h&&(this.lblHint.text=BKt(GKt.tapToContinue),this.hintArrow.position.set(this.lblHint.width+6,(this.lblHint.height-8)/2+1),f=this.lblHint.height+2);
+ const p=Math.max(this.body.y+this.body.height+f+o-2,92);
+ this.hint.position.set(r-o-this.hint.width,p-o+2-this.lblHint.height),this.portrait.position.set(10+c/2,p-3);
+ const g=Math.max(0,l-(p-3));
+ let m=(n.width-r)/2,w=.42*n.height-p/2,v=null,_=0;
+ if(e){
+ const i=e.x+e.width/2;
+ m=Math.max(12,Math.min(n.width-12-r,i-r/2));
+ const s=e.y-22-p,h=e.y+e.height+22+g;
+ if(s-g>=t.TOP_LIMIT?(w=s,v="down"):h+p<=n.height-12&&(w=h,v="up"),v){
+ const t="up"===v&&a?u+10:30;
+ _=Math.max(t,Math.min(r-30,i-m))}
+ }
+ if(this.drawBox(r,p,v,_),this.position.set(Math.round(m),Math.round(w)),zk.killTweensOf(this),zk.killTweensOf(this.pivot),zk.killTweensOf(this.portrait.scale),zk.killTweensOf(this.hintArrow),this.visible=!0,zk.fromTo(this,{
+ alpha:0}
+ ,{
+ alpha:1,duration:.2,ease:"power1.out"}
+ ),zk.fromTo(this.pivot,{
+ y:-10}
+ ,{
+ y:0,duration:.3,ease:"back.out(2)"}
+ ),a){
+ const t=this.portrait.scale.x;
+ zk.fromTo(this.portrait.scale,{
+ x:.86*t,y:.86*t}
+ ,{
+ x:t,y:t,duration:.32,ease:"back.out(3)"}
+ )}
+ if(h){
+ const t=this.hintArrow.y;
+ zk.fromTo(this.hintArrow,{
+ y:t-2,alpha:1}
+ ,{
+ y:t+2,alpha:.35,duration:.5,ease:"sine.inOut",yoyo:!0,repeat:-1}
+ )}
+ }
+ hide(){
+ zk.killTweensOf(this),zk.killTweensOf(this.pivot),zk.killTweensOf(this.portrait.scale),zk.killTweensOf(this.hintArrow),this.visible=!1}
+ drawBox(i,s,e,n){
+ const h={
+ color:t.FILL,alpha:.97}
+ ,r={
+ color:t.EDGE,width:2.5}
+ ,o=this.box.clear();
+ o.roundRect(0,0,i,s,14).fill(h).stroke(r),o.roundRect(4,4,i-8,s-8,11).stroke({
+ color:16777215,width:1.5,alpha:.07}
+ ),"down"===e?(o.poly([n-13,s-2,n+13,s-2,n,s+14]).fill(h),o.moveTo(n-13,s).lineTo(n,s+14).lineTo(n+13,s).stroke(r)):"up"===e&&(o.poly([n-13,2,n+13,2,n,-14]).fill(h),o.moveTo(n-13,0).lineTo(n,-14).lineTo(n+13,0).stroke(r))}
+ }
+ ;
+ qt($Kt,"GuideBubble"),Xt($Kt,"SHEET","Dialogue"),Xt($Kt,"W",572),Xt($Kt,"PORTRAIT_H",108),Xt($Kt,"PAD",14),Xt($Kt,"FILL",2234900),Xt($Kt,"EDGE",13215068),Xt($Kt,"TOP_LIMIT",96),Xt($Kt,"BODY_STYLE",{
+ fontFamily:"Arial",fontSize:21,fontWeight:"bold",lineHeight:30}
+ ),Xt($Kt,"loading",null);
+ let WKt=$Kt;
+ const VKt=class t extends He{
+ constructor(t=.6){
+ super(),Xt(this,"dim",new Ff),Xt(this,"glow",new Ff),Xt(this,"current",null),Xt(this,"drawn",{
+ x:0,y:0,w:0,h:0,r:0}
+ ),this.dimAlpha=t,this.eventMode="none",this.addChild(this.dim,this.glow),this.draw(null),zk.fromTo(this.glow,{
+ alpha:1}
+ ,{
+ alpha:.4,duration:.75,ease:"sine.inOut",yoyo:!0,repeat:-1}
+ )}
+ static rectHole(t,i=8,s=12){
+ return{
+ x:t.x-i,y:t.y-i,w:t.width+2*i,h:t.height+2*i,r:s}
+ }
+ static circleHole(t,i=8){
+ const s=Math.max(t.width,t.height)/2+i;
+ return{
+ x:t.x+t.width/2-s,y:t.y+t.height/2-s,w:2*s,h:2*s,r:s}
+ }
+ static toRect(t){
+ return new Di(t.x,t.y,t.w,t.h)}
+ get hole(){
+ return this.current}
+ focus(t){
+ if(zk.killTweensOf(this.drawn),!t)return this.current=null,void this.draw(null);
+ const i=this.current?{
+ ...this.drawn}
+ :{
+ x:t.x-60,y:t.y-60,w:t.w+120,h:t.h+120,r:t.r+30}
+ ;
+ this.current=t,Object.assign(this.drawn,i),this.draw(this.drawn),zk.to(this.drawn,{
+ ...t,duration:.38,ease:"power2.out",onUpdate:qt(()=>this.draw(this.drawn),"onUpdate")}
+ )}
+ reset(){
+ zk.killTweensOf(this.drawn),this.current=null,this.draw(null)}
+ holeContains(t,i){
+ const s=this.current;
+ return!!s&&t>=s.x&&t<=s.x+s.w&&i>=s.y&&i<=s.y+s.h}
+ draw(i){
+ const s=t.COVER,e={
+ color:0,alpha:this.dimAlpha}
+ ,n=this.dim.clear();
+ if(this.glow.clear(),!i||i.w<=0||i.h<=0)return void n.rect(-s/2,-s/2,s,s).fill(e);
+ const h=Math.max(0,Math.min(i.r,i.w/2,i.h/2)),[r,o,a,c]=[i.x,i.y,i.x+i.w,i.y+i.h],[l,u,d,f]=[-s/2,-s/2,s/2,s/2];
+ if(n.rect(l,u,d-l,o-u).fill(e),n.rect(l,c,d-l,f-c).fill(e),n.rect(l,o,r-l,c-o).fill(e),n.rect(a,o,d-a,c-o).fill(e),h>0){
+ const t=qt((t,i,s,r,o)=>{
+ const a=[s,r];
+ for(let e=0;
+ e<=10;
+ e++){
+ const s=o+Math.PI/2*(e/10);
+ a.push(t+Math.cos(s)*h,i+Math.sin(s)*h)}
+ n.poly(a).fill(e)}
+ ,"corner");
+ t(r+h,o+h,r,o,Math.PI),t(a-h,o+h,a,o,1.5*Math.PI),t(a-h,c-h,a,c,0),t(r+h,c-h,r,c,.5*Math.PI)}
+ this.glow.roundRect(i.x-8,i.y-8,i.w+16,i.h+16,h+8).stroke({
+ color:t.GOLD,width:7,alpha:.12}
+ ),this.glow.roundRect(i.x-4,i.y-4,i.w+8,i.h+8,h+4).stroke({
+ color:t.GOLD,width:4,alpha:.3}
+ ),this.glow.roundRect(i.x,i.y,i.w,i.h,h).stroke({
+ color:16771760,width:2.5,alpha:1}
+ )}
+ destroy(t){
+ zk.killTweensOf(this.drawn),zk.killTweensOf(this.glow),super.destroy(t)}
+ }
+ ;
+ qt(VKt,"Spotlight"),Xt(VKt,"COVER",6e3),Xt(VKt,"GOLD",16766826);
+ let jKt=VKt;
TutorialController 16 hunks, 132 statements
- Xt(this,"isOpened",!0),Xt(this,"savedIndex",0),Xt(this,"tutorialIndex",0),Xt(this,"enableMissionGuide",!0),Xt(this,"bottomMenuUnlockList",[0,1,2,3,4,5]),Xt(this,"isHelpHeroPopupped",!1),Xt(this,"isHelpQuestPopupped",!1),Xt(this,"isHelpRevivePopupped",!1)}
+ Xt(this,"isOpened",!0),Xt(this,"savedIndex",0),Xt(this,"tutorialIndex",0),Xt(this,"enableMissionGuide",!0),Xt(this,"bottomMenuUnlockList",[0,1,2,3,4,5]),Xt(this,"isHelpHeroPopupped",!1),Xt(this,"isHelpQuestPopupped",!1),Xt(this,"isHelpRevivePopupped",!1),Xt(this,"isReviveAnytimeShown",!1)}
- this.bottomMenuUnlockList=[2],lci.getInstance().onMenuClickByIndex(2),lci.getInstance().hideLockIconsTo(this.bottomMenuUnlockList),koi.getInstance().opened=!1,TB.getInstance().stop(),PD.getInstance().stopUpdate(),Loi.getInstance().onCompleteHandler=this.onTurotial0Toast1Complete.bind(this);
- const t=sB.getText("DIALOGUE_TEXT_75","윽.. 머리야.. 여긴 어디지? 뭔가 익숙한데...");
- Loi.getInstance().show("L_FRO",t)}
+ this.bottomMenuUnlockList=[2],qci.getInstance().onMenuClickByIndex(2),qci.getInstance().hideLockIconsTo(this.bottomMenuUnlockList),Qoi.getInstance().opened=!1,IB.getInstance().stop(),ND.getInstance().stopUpdate(),nui.getInstance().markDialogueWaveShown(1);
+ const t=eai.getInstance();
+ t.onCompleteHandler=this.onTurotial0Toast1Complete.bind(this),t.tapToAdvance=!0,t.showDialogues(this.openingLines(),!0)}
+ openingLines(){
+ const t=ZKt.getInstance().list;
+ return[[75,"L_FRO",1,"윽.. 머리야.. 여긴 어디지? 뭔가 익숙한데..."],[1,"S_SMI",1,"드디어 눈을 뜨셨군요. 발키온의 정령이 당신을 맞이합니다."],[2,"L_SUR",2,"반가워. 그런데 이상해... 네가 이 말을 할 걸 이미 알고 있었던 것 같아."],[3,"S_NEU",1,"...성과 연결되는 과정에서 겪는 일시적인 현상일 뿐입니다. 안심하세요."]].map(([i,s,e,n])=>{
+ const h=t.find(t=>t.kindNum===i);
+ if(h)return h;
+ const r=new JKt;
+ return r.kindNum=i,r.code=s,r.position=e,r.text=n,r}
+ )}
- const t=BKt.getInstance().getMainList();
- t&&(oYt.getInstance().onHideHandler=this.onHelpCastlePopupHide.bind(this),oYt.getInstance().showWith(t[0].main,2,!0,!1))}
- onHelpCastlePopupHide(){
+ const t=nui.getInstance().getPlayer();
+ wai.run([{
+ target:t,shape:"circle",pad:30,face:"S_SMI",text:BKt(GKt.castleIntro1,GKt.castleIntro2)}
+ ]).then(()=>this.onCastleIntroDone())}
+ onCastleIntroDone(){
- Loi.getInstance().show("L_SUR",t)}
+ eai.getInstance().tapToAdvance=!0,eai.getInstance().show("L_SUR",t)}
- RKt.getInstance().show(i.x,i.y,t.width,t.height)}
+ qKt.getInstance().show(i.x,i.y,t.width,t.height),this.showCaptionAfterHand(BKt(GKt.heroTab))}
- this.isHelpHeroPopupped||this.tutorialIndex==t.TUTORIAL_INDEX_WAVE0&&(RKt.getInstance().hide(),setTimeout(()=>{
- const t=BKt.getInstance().getMainList();
- t&&(oYt.getInstance().onHideHandler=this.highlightHeroRosterButton.bind(this),oYt.getInstance().showWith(t[1].main,0,!0,!1),this.isHelpHeroPopupped=!0)}
- ,100))}
+ this.isHelpHeroPopupped||this.tutorialIndex==t.TUTORIAL_INDEX_WAVE0&&(qKt.getInstance().hide(),this.isHelpHeroPopupped=!0,setTimeout(()=>this.highlightHeroRosterButton(),100))}
+ this.showCaptionAfterHand(BKt(GKt.heroRoster));
+ this.showCaptionAfterHand(BKt(GKt.heroHire),"S_SHU");
+ this.showCaptionAfterHand(BKt(GKt.heroClose));
- RKt.getInstance().hide(),TB.getInstance().start()}
+ qKt.getInstance().hide(),IB.getInstance().start(),ED.getInstance().npcDialogue&&eai.getInstance().show("S_SMI",BKt(GKt.heroDrag))}
+ showCaptionAfterHand(t,i="S_SMI"){
+ requestAnimationFrame(()=>zKt.getInstance().setCaption(t,i))}
- this.isHelpQuestPopupped||setTimeout(()=>{
- const t=BKt.getInstance().getMainList();
- t&&(oYt.getInstance().onHideHandler=this.endTutorialWave3.bind(this),oYt.getInstance().showWith(t[2].main,0,!0,!1),this.isHelpQuestPopupped=!0)}
- ,100)}
+ this.isHelpQuestPopupped||(this.isHelpQuestPopupped=!0,setTimeout(()=>{
+ this.runQuestCoach()}
+ ,150))}
+ async runQuestCoach(){
+ var t,i;
+ const{
+ QuestSubView:s}
+ =await ti(async()=>{
+ const{
+ QuestSubView:t}
+ =await Promise.resolve().then(()=>Oci);
+ return{
+ QuestSubView:t}
+ }
+ ,void 0),e=s.getInstance().getItemRenderers(),n=null==(t=e[0])?void 0:t.tutorialTargets,h=null==(i=e[1])?void 0:i.tutorialTargets;
+ await wai.run([{
+ target:null==n?void 0:n.row,text:BKt(GKt.questGauge)}
+ ,{
+ target:null==n?void 0:n.button,text:BKt(GKt.questLevel)}
+ ,{
+ target:null==h?void 0:h.button,text:BKt(GKt.questOpen1,GKt.questOpen2),face:"S_SHU"}
+ ].filter(t=>t.target)),await this.endTutorialWave3()}
- if(0!=this.isOpened&&0==this.isHelpRevivePopupped){
- const t=BKt.getInstance().getMainList();
- t&&(oYt.getInstance().onHideHandler=this.endTutorialRevive.bind(this),oYt.getInstance().showWith(t[3].main,0,!0,!1),this.isHelpRevivePopupped=!0)}
+ if(0==this.isOpened)return;
+ if(this.isHelpRevivePopupped)return;
+ this.isHelpRevivePopupped=!0;
+ const{
+ GameOverPopup:t}
+ =await ti(async()=>{
+ const{
+ GameOverPopup:t}
+ =await Promise.resolve().then(()=>_li);
+ return{
+ GameOverPopup:t}
+ ,void 0),{
+ summary:i,rebirth:s,medal:e}
+ =t.getInstance().tutorialTargets;
+ await wai.run([{
+ target:i,pad:10,waitMs:1500,face:"S_SMI",text:BKt(GKt.reviveMedal1,GKt.reviveMedal2),onShow:qt(t=>t.burst(t.rectOf(e)),"onShow")}
+ ,{
+ target:s,mode:"action",face:"S_SHU",text:BKt(GKt.reviveButton)}
+ ]),await this.endTutorialRevive()}
+ async startMedalGuide(){
+ if(0==this.isOpened||wai.isActive)return;
+ const[{
+ CastleSubView:t}
+ ,{
+ CastleDetailPopup:i}
+ ,{
+ CastleDataManager:s}
+ ,{
+ HeroMedalEnhanceManager:e}
+ ]=await Promise.all([ti(()=>Promise.resolve().then(()=>Mci),void 0),ti(()=>Promise.resolve().then(()=>Lai),void 0),ti(()=>Promise.resolve().then(()=>kx),void 0),ti(()=>Promise.resolve().then(()=>oXt),void 0)]),n=s.getInstance().castleVO,h=e.getInstance().getCost(n.enhance+1);
+ if(h<=0||XD.medal<h)return;
+ const r=2===lzt.currentIndex,o=r?BKt(GKt.medalTab,GKt.medalShortcut):BKt(GKt.medalShortcut);
+ await wai.run([...r?[]:[{
+ target:qci.getInstance().getMenu(2),mode:"action",text:BKt(GKt.medalTab)}
+ ],{
+ target:qt(()=>t.getInstance().enhanceShortcut,"target"),mode:"action",waitMs:1500,text:o}
+ ,{
+ target:qt(()=>i.getInstance().tutorialTargets.enhance,"target"),mode:"action",waitMs:1500,face:"S_SHU",text:BKt(GKt.medalEnhance)}
+ ,{
+ target:qt(()=>i.getInstance().tutorialTargets.castle,"target"),waitMs:600,text:BKt(GKt.medalDone),onShow:qt((t,i)=>t.burst(i),"onShow")}
+ ])}
+ async showReviveAnytimeHint(){
+ if(0==this.isOpened||this.isReviveAnytimeShown)return;
+ if(1!=XD.numRevive||XD.wave<10)return;
+ const{
+ PopupLayer:t}
+ =await ti(async()=>{
+ const{
+ PopupLayer:t}
+ =await Promise.resolve().then(()=>rG);
+ return{
+ PopupLayer:t}
+ }
+ ,void 0);
+ if(wai.isActive||t.getInstance().hasPopup)return;
+ const{
+ TopMenu:i}
+ =await ti(async()=>{
+ const{
+ TopMenu:t}
+ =await Promise.resolve().then(()=>Pli);
+ return{
+ TopMenu:t}
+ }
+ ,void 0),s=i.getInstance().reviveButton;
+ wai.isShown(s)&&(this.isReviveAnytimeShown=!0,"Y"!==await zy.getReviveAnytimeHinted()&&(await zy.saveReviveAnytimeHinted("Y"),await wai.run([{
+ target:s,pad:4,text:BKt(GKt.reviveAnytime1,GKt.reviveAnytime2)}
+ ])))}
- if(t<5||t>7)return;
- const i=BKt.getInstance().getMainList();
- i&&(oYt.getInstance().onHideHandler=this.endTutorialWave3.bind(this),oYt.getInstance().showWith(i[t].main,0,!0,!1))}
+ const i={
+ 5:[[GKt.priest1,"S_SHU"],[GKt.priest2,"S_SMI"],[GKt.priest3,"S_NEU"]],6:[[GKt.fairy1,"S_SHU"],[GKt.fairy2,"S_SMI"],[GKt.fairy3,"S_NEU"]],7:[[GKt.darkArcher1,"S_SUR"],[GKt.darkArcher2,"S_SMI"],[GKt.darkArcher3,"S_NEU"]]}
+ ;
+ i[t]&&await this.playGuideDialogue(i[t],this.endTutorialWave3.bind(this))}
- if("Y"===await zy.getSecretaryHelpPopupped())return;
- const t=BKt.getInstance().getMainList();
- t&&t[8]&&(oYt.getInstance().showWith(t[8].main,0,!0,!1),await zy.saveSecretaryHelpPopupped("Y"))}
+ "Y"!==await zy.getSecretaryHelpPopupped()&&(await zy.saveSecretaryHelpPopupped("Y"),await this.playGuideDialogue([[GKt.secretary1,"S_SMI"],[GKt.secretary2,"S_NEU"],[GKt.secretary3,"S_SMI"]]))}
+ async playGuideDialogue(t,i){
+ const s=eai.getInstance();
+ if(!ED.getInstance().npcDialogue)return void(null==i||i());
+ const e=t.map(([t,i])=>{
+ const s=new JKt;
+ return s.code=i,s.text=BKt(t),s.position=1,s}
+ );
+ await s.showDialogues(e),i&&(s.onCompleteHandler=i)}
MiniAscentLobbyPopup 16 hunks, 129 statements
- ...IL.DEFAULT_FONT_OPTION_16,fontSize:24,lineHeight:32}
- )),Xt(this,"hint",new yD(Rvi("RESET"),Lvi.muted,IL.DEFAULT_FONT_OPTION_16)),Xt(this,"start",new QPi("")),Xt(this,"busy",!1),Xt(this,"selectedChapter",0),Xt(this,"lastPendingChapter",0),Xt(this,"rewardLabel",new yD(Rvi("CHAPTER_STAGE_REWARDS"),Lvi.accent,{
- ...IL.DEFAULT_FONT_OPTION_16,fontSize:18,lineHeight:24}
+ ...OL.DEFAULT_FONT_OPTION_16,fontSize:24,lineHeight:32}
+ )),Xt(this,"hint",new SD(o_i("RESET"),u_i.muted,OL.DEFAULT_FONT_OPTION_16)),Xt(this,"start",new INi("")),Xt(this,"sweep",new INi(nB.getText("COMMON_379","소탕"))),Xt(this,"busy",!1),Xt(this,"selectedChapter",0),Xt(this,"lastPendingChapter",0),Xt(this,"rewardLabel",new SD(o_i("CHAPTER_STAGE_REWARDS"),u_i.accent,{
+ ...OL.DEFAULT_FONT_OPTION_16,fontSize:18,lineHeight:24}
- ...IL.DEFAULT_FONT_OPTION_16,fontSize:42,lineHeight:50}
+ ...OL.DEFAULT_FONT_OPTION_16,fontSize:42,lineHeight:50}
- ...IL.DEFAULT_FONT_OPTION_16,fontSize:18,lineHeight:24}
- )),Xt(this,"previousChapter",new QPi("")),Xt(this,"nextChapter",new QPi("")),Xt(this,"hardMode",!1),Xt(this,"modeNormal",new BNi(Rvi("NORMAL_MODE"))),Xt(this,"modeHard",new BNi(Rvi("HARD_MODE"))),Xt(this,"energyIcon",new je(bvi.texture("ui_energy"))),Xt(this,"energyCost",new yD("",Lvi.text,IL.DEFAULT_FONT_OPTION_16)),this.canCloseShell=()=>!this.busy,this.status.setWrapWidth(540),this.status.align="center",this.hint.setWrapWidth(540),this.hint.align="center",this.start.width=280,this.start.height=54,this.start.onClick=()=>{
+ ...OL.DEFAULT_FONT_OPTION_16,fontSize:18,lineHeight:24}
+ )),Xt(this,"previousChapter",new INi("")),Xt(this,"nextChapter",new INi("")),Xt(this,"hardMode",!1),Xt(this,"modeSwitch",new QLi(o_i("NORMAL_MODE"),o_i("HARD_MODE"))),Xt(this,"energyIcon",new je(Xvi.texture("ui_energy"))),Xt(this,"energyCost",new SD("",u_i.text,OL.DEFAULT_FONT_OPTION_16)),Xt(this,"fx",new eDi),Xt(this,"devClear",new pLi("DEV 즉시 클리어")),Xt(this,"devEnergy",new pLi("DEV 에너지+120")),this.canCloseShell=()=>!this.busy,this.status.setWrapWidth(540),this.status.align="center",this.hint.setWrapWidth(540),this.hint.align="center",this.start.width=280,this.start.height=54,this.start.onClick=()=>{
+ ,this.sweep.width=220,this.sweep.height=54,this.sweep.onClick=()=>{
+ this.sweepChapter()}
- this.previousChapter.onClick=()=>this.changeChapter(-1),this.nextChapter.onClick=()=>this.changeChapter(1);
- for(const t of[this.modeNormal,this.modeHard])t.width=120,t.height=40;
- this.modeNormal.onClick=()=>this.setMode(!1),this.modeHard.onClick=()=>this.setMode(!0),this.contentContainer.addChild(this.chapterPanel,this.art,this.status,this.hint,this.start,this.chapterLabel,this.waveLabel,this.previousChapter,this.nextChapter,this.rewardLabel,this.rewards,this.modeNormal,this.modeHard,this.energyIcon,this.energyCost),this.energyCost.textSize=18,this.energyIcon.width=this.energyIcon.height=24,this.energyIcon.eventMode=this.energyCost.eventMode="none"}
+ this.previousChapter.onClick=()=>this.changeChapter(-1),this.nextChapter.onClick=()=>this.changeChapter(1),this.modeSwitch.onSelect=t=>this.setMode(t);
+ for(const t of[this.devClear,this.devEnergy])t.width=136,t.height=40,t.activatedTextColor=10474495;
+ this.devClear.onClick=()=>{
+ this.devClearChapter()}
+ ,this.devEnergy.onClick=()=>{
+ this.devGrantEnergy()}
+ ,this.contentContainer.addChild(this.chapterPanel,this.art,this.status,this.hint,this.start,this.chapterLabel,this.waveLabel,this.previousChapter,this.nextChapter,this.rewardLabel,this.rewards,this.modeSwitch,this.energyIcon,this.energyCost,this.sweep,this.devClear,this.devEnergy),this.energyCost.textSize=18,this.energyIcon.width=this.energyIcon.height=24,this.energyIcon.eventMode=this.energyCost.eventMode="none"}
- var t,i,s;
- const e=Zvi.getInstance(),n=this.height<760;
- this.hardMode=!1;
+ var t,i,s,e;
+ const n=O_i.getInstance(),h=this.height<760,r=null==(t=n.season)?void 0:t.hard;
+ r||(this.hardMode=!1);
- ))?void 0:i.main)??0;
- r&&r!==this.lastPendingChapter&&(this.selectedChapter=r),this.lastPendingChapter=r;
- const o=h.find(t=>t.main===this.selectedChapter),a=!e.run&&!!o;
- this.chapterLabel.visible=this.waveLabel.visible=this.previousChapter.visible=this.nextChapter.visible=a,this.chapterLabel.text=o?Rvi(this.hardMode?"HARD_CHAPTER_NAME":"CHAPTER_NAME",o.main):"",this.waveLabel.text=o?Rvi("CHAPTER_WAVES",o.waves):"";
+ ))?void 0:s.main)??0,c=n.takeLastClear();
+ if(c){
+ const t=c.hard===this.hardMode?o.find(t=>t.main===c.chapter+1):void 0;
+ t&&(this.selectedChapter=t.main)}
+ else a&&a!==this.lastPendingChapter&&(this.selectedChapter=a);
+ this.lastPendingChapter=a;
+ const l=o.find(t=>t.main===this.selectedChapter),u=!n.run&&!!l,d=n.run?!!n.run.hard:this.hardMode;
+ this.chapterLabel.textColor=d?15901582:u_i.accent,this.chapterLabel.visible=this.waveLabel.visible=this.previousChapter.visible=this.nextChapter.visible=u,this.chapterLabel.text=l?o_i(this.hardMode?"HARD_CHAPTER_NAME":"CHAPTER_NAME",l.main):"",this.waveLabel.text=l?o_i("CHAPTER_WAVES",l.waves):"";
- this.previousChapter.activated=!this.busy&&c>0,this.nextChapter.activated=!this.busy&&c>=0&&c<h.length-1,this.previousChapter.alpha=this.previousChapter.activated?1:.3,this.nextChapter.alpha=this.nextChapter.activated?1:.3,this.status.text=e.run?e.run.chapter?Rvi(e.run.hard?"HARD_CHAPTER_PROGRESS":"CHAPTER_PROGRESS",e.run.chapter,e.run.floor):Rvi("PROGRESS",e.run.floor):"",this.status.visible=!!this.status.text,this.status.position.set((this.width-this.status.width)/2,148);
+ this.previousChapter.activated=!this.busy&&f>0,this.nextChapter.activated=!this.busy&&f>=0&&f<o.length-1,this.previousChapter.alpha=this.previousChapter.activated?1:.3,this.nextChapter.alpha=this.nextChapter.activated?1:.3;
+ const p=qt(t=>{
+ var i;
+ return!!(null==(i=t.rewards)?void 0:i.some(t=>t.claimable))}
+ ,"claimable"),g=qt((t,i)=>i?t.showRedDot():t.hideRedDot(),"dot");
+ g(this.previousChapter,u&&o.some(t=>t.main<this.selectedChapter&&p(t))),g(this.nextChapter,u&&o.some(t=>t.main>this.selectedChapter&&p(t))),this.status.text=n.run?n.run.chapter?o_i(n.run.hard?"HARD_CHAPTER_PROGRESS":"CHAPTER_PROGRESS",n.run.chapter,n.run.floor):o_i("PROGRESS",n.run.floor):"",this.status.visible=!!this.status.text,this.status.position.set((this.width-this.status.width)/2,148);
- color:Lvi.border,width:1.5}
+ color:d?10506826:u_i.border,width:d?2:1.5}
- const d=!e.run&&!1;
- this.modeNormal.visible=this.modeHard.visible=d,this.chapterLabel.scale.set(n?.82:1),this.chapterLabel.position.set((this.width-this.chapterLabel.width)/2,l+(n?12:22)+0),this.waveLabel.position.set((this.width-this.waveLabel.width)/2,this.chapterLabel.y+this.chapterLabel.height+(n?4:8));
+ const v=!n.run&&!!r;
+ this.modeSwitch.visible=v,v&&(this.modeSwitch.update(this.hardMode,r.unlocked,!this.busy),this.modeSwitch.position.set((this.width-QLi.WIDTH)/2,m+10));
+ const _=v?h?48:54:0;
+ this.chapterLabel.scale.set(h?.82:1),this.chapterLabel.position.set((this.width-this.chapterLabel.width)/2,m+(h?12:22)+_),this.waveLabel.position.set((this.width-this.waveLabel.width)/2,this.chapterLabel.y+this.chapterLabel.height+(h?4:8));
- if(this.start.text=e.run?Rvi("CONTINUE"):Rvi("RESTART"),this.start.position.set((this.width-this.start.width)/2,this.height-(n?62:76)),this.energyIcon.visible=this.energyCost.visible=!!g,g){
+ this.start.text=n.run?o_i("CONTINUE"):o_i("RESTART");
+ const y=u&&!!(null==l?void 0:l.cleared)&&!!M,S=this.height-(h?62:76);
+ if(this.sweep.visible=y,y?(this.start.width=220,this.start.position.set(this.width/2-8-this.start.width,S),this.sweep.position.set(this.width/2+8,S),this.sweep.activated=n.eventActive&&!!n.season&&!this.busy&&!A):(this.start.width=280,this.start.position.set((this.width-this.start.width)/2,S)),this.energyIcon.visible=this.energyCost.visible=!!M,M){
- const w=m?Rvi("ENERGY_SHORT",g.perRun):"";
- this.hint.visible=!!w,w&&(this.hint.text=w,this.hint.scale.set(n?.85:1),this.hint.position.set((this.width-this.hint.width)/2,this.height-(n?118:142))),this.start.activated=e.eventActive&&!!e.season&&!this.busy&&!m,super.show()}
+ const T=A?o_i("ENERGY_SHORT",M.perRun):v&&!r.unlocked?o_i("HARD_LOCKED",r.unlockChapter):"";
+ this.hint.visible=!!T,T&&(this.hint.text=T,this.hint.scale.set(h?.85:1),this.hint.position.set((this.width-this.hint.width)/2,this.height-(h?118:142))),this.start.activated=n.eventActive&&!!n.season&&!this.busy&&!A;
+ const C=iG.getInstance().development&&!!n.season;
+ this.devClear.visible=C&&(!!n.run||u&&!(null==l?void 0:l.cleared)),this.devEnergy.visible=C&&!!M;
+ let I=this.artTop;
+ for(const O of[this.devClear,this.devEnergy])O.visible&&(O.position.set(this.width-40-O.width,I),O.activated=!this.busy,I+=O.height+6);
+ super.show()}
+ hideImmediately(){
+ this.fx.stop(),super.hideImmediately()}
+ fxRect(t){
+ const i=t.getBounds(),s=P_i.getInstance().fxLayer,e=s.toLocal(new _i(i.x,i.y)),n=s.toLocal(new _i(i.x+i.width,i.y+i.height));
+ return new Di(e.x,e.y,n.x-e.x,n.y-e.y)}
+ fxCenter(t){
+ const i=this.fxRect(t);
+ return new _i(i.x+i.width/2,i.y+i.height/2)}
+ fxCostRow(){
+ const t=this.fxRect(this.energyIcon),i=this.fxRect(this.energyCost);
+ return new _i((t.x+i.x+i.width)/2,t.y+t.height/2)}
- this.busy||this.hardMode===t||t||(this.hardMode=t,this.selectedChapter=0,this.show())}
+ var i;
+ if(this.busy||this.hardMode===t)return;
+ const s=null==(i=O_i.getInstance().season)?void 0:i.hard;
+ !t||(null==s?void 0:s.unlocked)?(this.hardMode=t,this.selectedChapter=0,this.show()):s&&AH.getInstance().showMessage(o_i("HARD_LOCKED",s.unlockChapter))}
- async startRun(){
- if(!this.busy){
- this.busy=!0,this.start.activated=!1;
+ async sweepChapter(){
+ var t,i,s,e,n,h,r;
+ if(this.busy)return;
+ const o=O_i.getInstance(),a=this.selectedChapter,c=this.hardMode;
+ if(o.run||!(null==(t=this.chapterList().find(t=>t.main===a))?void 0:t.cleared))return;
+ const l=P_i.getInstance(),u=null==(s=null==(i=o.season)?void 0:i.energy)?void 0:s.current;
+ l.holdHeader({
+ gold:(null==(e=o.season)?void 0:e.gold)??0,energy:u}
+ ),this.busy=!0,this.show();
- const t=Zvi.getInstance();
- t.run||await t.start(this.selectedChapter||void 0,this.hardMode||void 0),await v_i.openBattleTab()}
+ const{
+ goldGained:t,crystalReward:i}
+ =await o.sweep(a,c||void 0),s=null==(h=null==(n=o.season)?void 0:n.energy)?void 0:h.current;
+ await this.fx.playSweep({
+ cost:this.fxCostRow(),art:this.fxCenter(this.art),goldText:`${
+ nB.getText("COMMON_358","골드")}
+  +${
+ t}
+ `,goldTo:(null==(r=o.season)?void 0:r.gold)??0,energySpent:void 0!==u&&void 0!==s?u-s:0,energyTo:s}
+ ),(null==i?void 0:i.tickets)&&(o.crystals=null,AH.getInstance().showMessage(o_i("CRYSTAL_TICKETS_GRANTED",i.tickets)))}
+ catch(d){
+ AH.getInstance().showMessage(d.message),await o.fetchState().catch(()=>{
+ }
+ )}
+ finally{
+ l.releaseHeader(),this.busy=!1,this.parent&&this.show()}
+ }
+ async devClearChapter(){
+ if(this.busy)return;
+ const t=O_i.getInstance(),i=t.run?void 0:this.selectedChapter||void 0,s=t.run?void 0:this.hardMode||void 0;
+ this.busy=!0,this.show();
+ try{
+ const e=await t.devClearChapter(i,s);
+ AH.getInstance().showMessage(`[DEV] ${
+ e.hard?"하드 ":""}
+ 챕터 ${
+ e.chapter}
+  클리어`)}
+ catch(e){
+ AH.getInstance().showMessage(e.message)}
+ finally{
+ this.busy=!1,this.parent&&this.show()}
+ }
+ async devGrantEnergy(){
+ if(!this.busy){
+ this.busy=!0,this.show();
+ try{
+ await O_i.getInstance().devGrantEnergy(),AH.getInstance().showMessage("[DEV] 에너지 +120")}
+ async startRun(){
+ var t,i,s,e;
+ if(this.busy)return;
+ const n=O_i.getInstance(),h=P_i.getInstance(),r=!n.run,o=null==(i=null==(t=n.season)?void 0:t.energy)?void 0:i.current;
+ this.busy=!0,this.start.activated=!1,r&&h.holdHeader({
+ energy:o}
+ );
+ try{
+ if(r){
+ await n.start(this.selectedChapter||void 0,this.hardMode||void 0);
+ const t=null==(e=null==(s=n.season)?void 0:s.energy)?void 0:e.current;
+ await this.fx.playLaunch({
+ button:this.fxCenter(this.start),cost:this.fxCostRow(),energySpent:void 0!==o&&void 0!==t?o-t:0,energyTo:t}
+ )}
+ await Y_i.openBattleTab()}
+ catch(a){
+ AH.getInstance().showMessage(a.message)}
+ finally{
+ h.releaseHeader(),this.busy=!1,this.parent&&this.show()}
+ }
MiniAscentLobbyFx 1 hunks, 84 statements
+ const iDi=u_i.danger,sDi=class{
+ constructor(){
+ Xt(this,"root",new He),Xt(this,"ring",new Ff),Xt(this,"spend",new He),Xt(this,"spendIcon"),Xt(this,"spendLabel"),Xt(this,"amount"),Xt(this,"timeline",null),Xt(this,"settle",null),this.root.eventMode="none",this.ring.circle(0,0,40).stroke({
+ width:4,color:16777215}
+ ),this.ring.blendMode="add",this.spendIcon=new je(Xvi.texture("ui_energy")),this.spendIcon.anchor.set(0,.5),this.spendIcon.width=this.spendIcon.height=20,this.spendLabel=new SD("",iDi,OL.DEFAULT_OUTLINE_FONT_OPTION_16),this.spendLabel.textSize=20,this.spendLabel.textColor=iDi,this.spend.addChild(this.spendIcon,this.spendLabel),this.amount=new SD("",u_i.accent,OL.DEFAULT_OUTLINE_FONT_OPTION_16),this.amount.textSize=30,this.amount.textColor=u_i.accent,this.root.addChild(this.ring,this.spend,this.amount),this.hideAll()}
+ playSweep(t){
+ const i=P_i.getInstance(),s=this.begin(),e=this.spendEnergy(s,0,t.cost,t.energySpent,t.energyTo)?.3:0,n=e+.3;
+ return this.amount.text=t.goldText,this.showAmount(s,e,t.art,n+.8),s.call(()=>{
+ MG.getInstance().playSFX(MG.SFX_GOLD_GOBLIN),i.rollHeader("gold",t.goldTo,.8,16773572)}
+ ,[],n),s.call(()=>i.pulseHeader("gold"),[],n+.8),this.finish(s)}
+ playLaunch(t){
+ const i=this.begin();
+ this.spendEnergy(i,0,t.cost,t.energySpent,t.energyTo),i.call(()=>MG.getInstance().playSFX(MG.SFX_WAVE_CALL),[],.05);
+ const s=this.ring;
+ return i.set(s,{
+ visible:!0,alpha:.7,x:t.button.x,y:t.button.y,tint:u_i.accent}
+ ,.05),i.fromTo(s.scale,{
+ x:.8,y:.8}
+ ,{
+ x:2.1,y:2.1,duration:.4,ease:"power2.out"}
+ ,.05),i.to(s,{
+ alpha:0,duration:.4,ease:"power1.in",onComplete:qt(()=>{
+ s.visible=!1}
+ ,"onComplete")}
+ ,.05),this.finish(i,.4)}
+ stop(){
+ var t;
+ null==(t=this.timeline)||t.kill(),this.timeline=null,this.hideAll();
+ const i=this.settle;
+ this.settle=null,null==i||i()}
+ begin(){
+ this.stop();
+ const t=P_i.getInstance().fxLayer;
+ return this.root.parent!==t&&t.addChild(this.root),this.timeline=zk.timeline(),this.timeline}
+ finish(t,i){
+ return new Promise(s=>{
+ this.settle=s;
+ const e=qt(()=>{
+ this.settle===s&&(this.settle=null,s())}
+ ,"done");
+ void 0!==i&&t.call(e,[],i),t.eventCallback("onComplete",()=>{
+ this.timeline=null,this.hideAll(),e()}
+ )}
+ )}
+ spendEnergy(t,i,s,e,n){
+ if(e<=0||void 0===n)return!1;
+ t.call(()=>P_i.getInstance().rollHeader("energy",n,.35,iDi),[],i);
+ const h=this.spend,r=this.spendLabel;
+ r.text=`-${
+ e}
+ `,r.position.set(this.spendIcon.width+4,-r.height/2);
+ const o=this.spendIcon.width+4+r.width,a=s.y-26;
+ return t.set(h,{
+ visible:!0,alpha:0,x:s.x-o/2,y:a+6}
+ ,i),t.to(h,{
+ alpha:1,y:a,duration:.15,ease:"power2.out"}
+ ,i),t.to(h,{
+ y:a-10,duration:.6,ease:"power1.out"}
+ ,i+.15),t.to(h,{
+ alpha:0,duration:.3,ease:"power1.in",onComplete:qt(()=>{
+ h.visible=!1}
+ ,"onComplete")}
+ ,i+.45),!0}
+ showAmount(t,i,s,e){
+ const n=this.amount;
+ n.scale.set(1),n.pivot.set(n.width/2,n.height/2),t.set(n,{
+ visible:!0,alpha:0,x:s.x,y:s.y}
+ ,i),t.fromTo(n.scale,{
+ x:1.35,y:1.35}
+ ,{
+ x:1,y:1,duration:.22,ease:"back.out(2)"}
+ ,i),t.to(n,{
+ alpha:1,duration:.12}
+ ,i),t.to(n,{
+ alpha:0,y:s.y-12,duration:.3,ease:"power1.in",onComplete:qt(()=>{
+ n.visible=!1}
+ ,"onComplete")}
+ ,e)}
+ hideAll(){
+ for(const t of this.root.children)zk.killTweensOf(t),zk.killTweensOf(t.scale),t.visible=!1}
+ }
+ ;
+ qt(sDi,"MiniAscentLobbyFx");
+ let eDi=sDi;
HelpDataManager 2 hunks, 58 statements
- const DKt=[[1,1,1,"성","성은 우리가 지켜야하는 기지입니다","HELP_TITLE_1","HELP_1"],[2,1,2,"성","성이 파괴되면, 환생하여 다시 진행해야 합니다.","HELP_TITLE_1","HELP_2"],[3,1,3,"성","신전에서 생명의 비술을 연구하면, 성이 파괴되어도 이어할 수 있습니다.","HELP_TITLE_1","HELP_4"],[4,1,4,"성","성은 훈장을 사용하여 영구히 유지되는 강화를 진행할 수 있습니다.","HELP_TITLE_1","HELP_3"],[5,2,1,"영웅","영웅은 최전방에서 성을 보호하고 적을 물리치는 아군입니다.","HELP_TITLE_2","HELP_5"],[6,2,2,"영웅","병영에서 배치를 통해 출전시킨 영웅만 전투에 나서게 됩니다. 대기중인 영웅들을 지금 출전시켜 보세요!","HELP_TITLE_2","HELP_6"],[7,2,3,"영웅","배치한 영웅은 드래그를 통해 이동시킬 수 있습니다.","HELP_TITLE_2","HELP_27"],[8,3,1,"퀘스트","퀘스트를 통해 골드를 획득할 수 있습니다.","HELP_TITLE_3","HELP_7"],[9,3,2,"퀘스트","게이지가 찰때마다 골드를 획득합니다.","HELP_TITLE_3","HELP_8"],[10,3,3,"퀘스트","레벨업을 하면, 획득하는 골드가 늘어납니다.","HELP_TITLE_3","HELP_9"],[11,3,4,"퀘스트","다음 단계 퀘스트를 오픈하면, 더 많은 골드를 획득할 수 있습니다.","HELP_TITLE_3","HELP_10"],[12,4,1,"환생","성이 파괴되면, 환생을 해야합니다.","GAME_5","HELP_11"],[13,4,2,"환생","10 wave 이상에서는 언제든 환생을 할 수 있습니다.","HELP_TITLE_4","HELP_12"],[14,4,3,"환생","환생을 하면, ( 훈장 )을 얻게 됩니다.","HELP_TITLE_4","HELP_13"],[15,4,4,"환생","( 훈장 )은 게임에서 가장 중요한 재화로, 영웅과 성을 강화하는데 사용됩니다.","HELP_TITLE_4","HELP_14"],[16,4,5,"환생","높은 웨이브에서 환생할수록 (훈장)을 더 많이 획득할 수 있습니다.","HELP_TITLE_4","HELP_15"],[17,5,1,"기사단","기사단 레벨은 최고 도달 웨이브를 기준으로 산정됩니다. (100 웨이브당 1 레벨)","HELP_TITLE_5","HELP_16"],[18,5,2,"기사단","무한랭킹전/던전 등에서 영웅의 레벨은 기사단 레벨을 기준으로 결정됩니다.","HELP_TITLE_5","HELP_17"],[19,6,1,"영웅 - 사제","사제에게는 ( 신의 은총 )이라는 스킬이 있습니다.","HELP_TITLE_6","HELP_18"],[20,6,2,"영웅 - 사제","( 신의 은총 )은 확률적으로 발동하는데, 2분 동안 게임 속도를 300% 올려줍니다.","HELP_TITLE_6","HELP_19"],[21,6,3,"영웅 - 사제","사제를 여러명 가질수록, (신의 은총) 스킬이 발동할 확률이 높아집니다.","HELP_TITLE_6","HELP_20"],[22,7,1,"영웅 - 페어리","엘프의 비술은 확률적으로 웨이브를 1씩 건너뛰는 스킬을 가지고 있습니다.","HELP_TITLE_7","HELP_21"],[23,7,2,"영웅 - 페어리","페어리는 엘프의 비술 스킬을 가지고 있습니다.","HELP_TITLE_7","HELP_22"],[24,7,3,"영웅 - 페어리","페어리를 많이 보유할수록, 웨이브를 1씩 건너뛰어 빠르게 전진할 수 있습니다.","HELP_TITLE_7","HELP_23"],[25,8,1,"영웅 - 암흑 궁병","암흑 궁병은 환생시, 시작 웨이브를 올려주는 스킬을 가지고 있습니다.","HELP_TITLE_8","HELP_24"],[26,8,2,"영웅 - 암흑 궁병","암흑 궁병을 많이 보유할수록, 환생후 높은 웨이브에서 시작할 수 있습니다.","HELP_TITLE_8","HELP_25"],[27,8,3,"영웅 - 암흑 궁병","( 암흑궁병을 10명 배치하고, 1000층에서 환생하면, 500층에서 시작합니다. )","HELP_TITLE_8","HELP_26"],[28,9,1,"비서","성 - 성채에 위치한 비서는 성장에 도움을 주는 유용한 동료입니다.","GAME_857","HELP_28"],[29,9,2,"비서","비서는 일정 시간마다 영웅과 펫 조각 등 유용한 자원을 수집해옵니다.","GAME_857","HELP_29"],[30,9,3,"비서","고급 비서를 고용하면 수집 효율이 크게 상승합니다","GAME_857","HELP_30"]],GKt=class t{
- constructor(){
- Xt(this,"items"),this.items=DKt.map(([t,i,s,e,n,h,r])=>({
- kindNum:t,main:i,sub:s,title:sB.getText(h,e),desc:sB.getText(r,n)}
- ))}
- static getInstance(){
- return null==this.instance&&(this.instance=new t),this.instance}
- getMainList(){
- const t=new Set,i=[];
- for(const s of this.items)t.has(s.main)||(t.add(s.main),i.push(s));
- return i}
- getSubsByMain(t){
- return this.items.filter(i=>i.main===t).sort((t,i)=>t.sub-i.sub)}
- getIconName(t){
- return{
- 1:"Icon_Help_Castle",2:"Icon_Help_Hero",3:"Icon_Help_Quest",4:"Icon_Help_Revive",5:"Icon_Help_Knight",6:"Icon_Help_Prist",7:"Icon_Help_Pairy",8:"Icon_Help_DarkArche",9:"Icon_Help_Secretary"}
- [t]??`Help_${
- t}
- _1`}
- getImageName(t,i){
- return`Help_${
- t}
- _${
- i}
- `}
- }
- ;
- qt(GKt,"HelpDataManager"),Xt(GKt,"instance",null);
- let BKt=GKt;
+ const wYt=[[1,1,1,"성","성은 우리가 지켜야하는 기지입니다","HELP_TITLE_1","HELP_1"],[2,1,2,"성","성이 파괴되면, 환생하여 다시 진행해야 합니다.","HELP_TITLE_1","HELP_2"],[3,1,3,"성","신전에서 생명의 비술을 연구하면, 성이 파괴되어도 이어할 수 있습니다.","HELP_TITLE_1","HELP_4"],[4,1,4,"성","성은 훈장을 사용하여 영구히 유지되는 강화를 진행할 수 있습니다.","HELP_TITLE_1","HELP_3"],[5,2,1,"영웅","영웅은 최전방에서 성을 보호하고 적을 물리치는 아군입니다.","HELP_TITLE_2","HELP_5"],[6,2,2,"영웅","병영에서 배치를 통해 출전시킨 영웅만 전투에 나서게 됩니다. 대기중인 영웅들을 지금 출전시켜 보세요!","HELP_TITLE_2","HELP_6"],[7,2,3,"영웅","배치한 영웅은 드래그를 통해 이동시킬 수 있습니다.","HELP_TITLE_2","HELP_27"],[8,3,1,"퀘스트","퀘스트를 통해 골드를 획득할 수 있습니다.","HELP_TITLE_3","HELP_7"],[9,3,2,"퀘스트","게이지가 찰때마다 골드를 획득합니다.","HELP_TITLE_3","HELP_8"],[10,3,3,"퀘스트","레벨업을 하면, 획득하는 골드가 늘어납니다.","HELP_TITLE_3","HELP_9"],[11,3,4,"퀘스트","다음 단계 퀘스트를 오픈하면, 더 많은 골드를 획득할 수 있습니다.","HELP_TITLE_3","HELP_10"],[12,4,1,"환생","성이 파괴되면, 환생을 해야합니다.","GAME_5","HELP_11"],[13,4,2,"환생","10 wave 이상에서는 언제든 환생을 할 수 있습니다.","HELP_TITLE_4","HELP_12"],[14,4,3,"환생","환생을 하면, ( 훈장 )을 얻게 됩니다.","HELP_TITLE_4","HELP_13"],[15,4,4,"환생","( 훈장 )은 게임에서 가장 중요한 재화로, 영웅과 성을 강화하는데 사용됩니다.","HELP_TITLE_4","HELP_14"],[16,4,5,"환생","높은 웨이브에서 환생할수록 (훈장)을 더 많이 획득할 수 있습니다.","HELP_TITLE_4","HELP_15"],[17,5,1,"기사단","기사단 레벨은 최고 도달 웨이브를 기준으로 산정됩니다. (100 웨이브당 1 레벨)","HELP_TITLE_5","HELP_16"],[18,5,2,"기사단","무한랭킹전/던전 등에서 영웅의 레벨은 기사단 레벨을 기준으로 결정됩니다.","HELP_TITLE_5","HELP_17"],[19,6,1,"영웅 - 사제","사제에게는 ( 신의 은총 )이라는 스킬이 있습니다.","HELP_TITLE_6","HELP_18"],[20,6,2,"영웅 - 사제","( 신의 은총 )은 확률적으로 발동하는데, 2분 동안 게임 속도를 300% 올려줍니다.","HELP_TITLE_6","HELP_19"],[21,6,3,"영웅 - 사제","사제를 여러명 가질수록, (신의 은총) 스킬이 발동할 확률이 높아집니다.","HELP_TITLE_6","HELP_20"],[22,7,1,"영웅 - 페어리","엘프의 비술은 확률적으로 웨이브를 1씩 건너뛰는 스킬을 가지고 있습니다.","HELP_TITLE_7","HELP_21"],[23,7,2,"영웅 - 페어리","페어리는 엘프의 비술 스킬을 가지고 있습니다.","HELP_TITLE_7","HELP_22"],[24,7,3,"영웅 - 페어리","페어리를 많이 보유할수록, 웨이브를 1씩 건너뛰어 빠르게 전진할 수 있습니다.","HELP_TITLE_7","HELP_23"],[25,8,1,"영웅 - 암흑 궁병","암흑 궁병은 환생시, 시작 웨이브를 올려주는 스킬을 가지고 있습니다.","HELP_TITLE_8","HELP_24"],[26,8,2,"영웅 - 암흑 궁병","암흑 궁병을 많이 보유할수록, 환생후 높은 웨이브에서 시작할 수 있습니다.","HELP_TITLE_8","HELP_25"],[27,8,3,"영웅 - 암흑 궁병","( 암흑궁병을 10명 배치하고, 1000층에서 환생하면, 500층에서 시작합니다. )","HELP_TITLE_8","HELP_26"],[28,9,1,"비서","성 - 성채에 위치한 비서는 성장에 도움을 주는 유용한 동료입니다.","GAME_857","HELP_28"],[29,9,2,"비서","비서는 일정 시간마다 영웅과 펫 조각 등 유용한 자원을 수집해옵니다.","GAME_857","HELP_29"],[30,9,3,"비서","고급 비서를 고용하면 수집 효율이 크게 상승합니다","GAME_857","HELP_30"]],vYt=class t{
+ constructor(){
+ Xt(this,"items"),this.items=wYt.map(([t,i,s,e,n,h,r])=>({
+ kindNum:t,main:i,sub:s,title:nB.getText(h,e),desc:nB.getText(r,n)}
+ ))}
+ static getInstance(){
+ return null==this.instance&&(this.instance=new t),this.instance}
+ getMainList(){
+ const t=new Set,i=[];
+ for(const s of this.items)t.has(s.main)||(t.add(s.main),i.push(s));
+ return i}
+ getSubsByMain(t){
+ return this.items.filter(i=>i.main===t).sort((t,i)=>t.sub-i.sub)}
+ getIconName(t){
+ return{
+ 1:"Icon_Help_Castle",2:"Icon_Help_Hero",3:"Icon_Help_Quest",4:"Icon_Help_Revive",5:"Icon_Help_Knight",6:"Icon_Help_Prist",7:"Icon_Help_Pairy",8:"Icon_Help_DarkArche",9:"Icon_Help_Secretary"}
+ [t]??`Help_${
+ t}
+ _1`}
+ getImageName(t,i){
+ return`Help_${
+ t}
+ _${
+ i}
+ `}
+ }
+ ;
+ qt(vYt,"HelpDataManager"),Xt(vYt,"instance",null);
+ let _Yt=vYt;
ArrowButtonDouble 1 hunks, 53 statements
- )),bci=class t extends pS{
- constructor(){
- super(),Xt(this,"spine",null),Xt(this,"isLoaded",!1),Xt(this,"loadingStarted",!1),Xt(this,"overlay"),Xt(this,"onCompleteCallback",null),Xt(this,"onEarlyCallback",null),Xt(this,"earlyFrameCount",0),Xt(this,"safetyTimer",null),Xt(this,"listener",{
- complete:qt(()=>{
- this.onAnimationComplete()}
- ,"complete")}
- ),this.overlay=new Ff,this.overlay.rect(0,-Xy.SAFE_AREA_TOP,640,Xy.stageHeight+Xy.SAFE_AREA_TOP),this.overlay.fill({
- color:0,alpha:.7}
- ),this.addChild(this.overlay),this.visible=!1,this.eventMode="static"}
- preload(){
- this.loadSpine()}
- async loadSpine(){
- if(!this.loadingStarted){
- this.loadingStarted=!0;
- try{
- const t=`${
- tS.getBase()}
- assets/spines/Reincarnation.skel`,i=`${
- tS.getBase()}
- assets/spines/Reincarnation.atlas`;
- if(ld.add({
- alias:"reincarnationAtlas",src:i}
- ),ld.add({
- alias:"reincarnationSkel",src:t}
- ),await ld.load(["reincarnationAtlas","reincarnationSkel"]),this.spine=qQ.from({
- skeleton:"reincarnationSkel",atlas:"reincarnationAtlas"}
- ),!this.spine)throw new Error("Failed to create Reincarnation Spine");
- this.spine.x=320,this.spine.y=.5*Xy.stageHeight,this.spine.scale.set(1),this.spine.visible=!1,this.spine.autoUpdate=!1,this.addChild(this.spine),this.isLoaded=!0}
- catch(t){
- this.loadingStarted=!1}
- }
- }
- async play(i,s){
- this.safetyTimer&&(clearTimeout(this.safetyTimer),this.safetyTimer=null),this.onCompleteCallback=i,this.onEarlyCallback=s??null,this.earlyFrameCount=0,this.isLoaded||this.loadingStarted||await this.loadSpine();
- let e=0;
- for(;
- !this.isLoaded&&this.loadingStarted&&e<100;
- )await new Promise(t=>setTimeout(t,50)),e++;
- if(!this.isLoaded||!this.spine)return null==s||s(),i(),this.onEarlyCallback=null,void(this.onCompleteCallback=null);
- this.visible=!0,this.overlay.visible=!0,this.spine.visible=!0,this.spine.alpha=1,this.spine.autoUpdate=!1,this.spine.autoUpdate=!0,this.spine.state.removeListener(this.listener),this.spine.state.addListener(this.listener),this.spine.state.setAnimation(0,"Reincarnation",!1),this.onEarlyCallback&&(this.earlyFrameCount=0,FM.getInstance().add(this.onEarlyFrame,this)),this.safetyTimer=setTimeout(()=>this.forceFinish(),t.SAFETY_TIMEOUT_MS)}
- onEarlyFrame(){
- this.earlyFrameCount++,this.earlyFrameCount>=98&&(FM.getInstance().remove(this.onEarlyFrame,this),this.overlay.visible=!1,this.onEarlyCallback&&(this.onEarlyCallback(),this.onEarlyCallback=null))}
- onAnimationComplete(){
- this.spine&&(this.spine.state.removeListener(this.listener),this.spine.state.clearTracks(),this.spine.autoUpdate=!1,this.spine.visible=!1),this.visible=!1,this.onCompleteCallback&&(this.onCompleteCallback(),this.onCompleteCallback=null)}
- forceFinish(){
- this.safetyTimer=null;
- const t=this.onEarlyCallback,i=this.onCompleteCallback;
- (t||i)&&(FM.getInstance().remove(this.onEarlyFrame,this),this.spine&&(this.spine.state.removeListener(this.listener),this.spine.state.clearTracks(),this.spine.autoUpdate=!1,this.spine.visible=!1),this.overlay.visible=!1,this.visible=!1,t&&(this.onEarlyCallback=null,t()),i&&(this.onCompleteCallback=null,i()))}
- }
- ;
- qt(bci,"ReviveLayer"),Xt(bci,"SAFETY_TIMEOUT_MS",8e3);
- let Eci=bci;
- const Mci=class extends g6t{
+ )),hli=class extends G6t{
MiniAscentShell 8 hunks, 48 statements
- ...IL.DEFAULT_FONT_OPTION_16,fontSize:26,lineHeight:32}
+ ...OL.DEFAULT_FONT_OPTION_16,fontSize:26,lineHeight:32}
- ...IL.DEFAULT_FONT_OPTION_16,fontSize:14,lineHeight:18}
- )),Xt(this,"chrome",new Ff),Xt(this,"navigation",new He),Xt(this,"tabButtons",[]),Xt(this,"navigating",!1),Xt(this,"countdown",new eR(1e3)),Xt(this,"activePage",null),Xt(this,"onExit",null),Xt(this,"onNavigate",null),this.width=616,this.bg.visible=this.txtTitle.visible=this.btnClose.visible=!1,this.paper.tint=Lvi.paperTint,this.paper.eventMode="static",this.paper.mask=this.clip,this.pages.mask=this.contentClip,this.clip.eventMode=this.contentClip.eventMode=this.chrome.eventMode="none",this.addChild(this.paper,this.clip,this.pages,this.contentClip,this.chrome,this.header,this.coin,this.coinText,this.seal,this.sealText,this.energy,this.energyText,this.progress,this.remaining,this.navigation,this.closeControl);
+ ...OL.DEFAULT_FONT_OPTION_16,fontSize:14,lineHeight:18}
+ )),Xt(this,"chrome",new Ff),Xt(this,"navigation",new He),Xt(this,"tabButtons",[]),Xt(this,"navigating",!1),Xt(this,"countdown",new eR(1e3)),Xt(this,"fxLayer",new He),Xt(this,"shown",{
+ gold:null,energy:null}
+ ),Xt(this,"headerTweens",[]),Xt(this,"activePage",null),Xt(this,"onExit",null),Xt(this,"onNavigate",null),this.width=616,this.bg.visible=this.txtTitle.visible=this.btnClose.visible=!1,this.paper.tint=u_i.paperTint,this.paper.eventMode="static",this.paper.mask=this.clip,this.pages.mask=this.contentClip,this.clip.eventMode=this.contentClip.eventMode=this.chrome.eventMode="none",this.addChild(this.paper,this.clip,this.pages,this.contentClip,this.chrome,this.header,this.coin,this.coinText,this.seal,this.sealText,this.energy,this.energyText,this.progress,this.remaining,this.navigation,this.closeControl,this.fxLayer),this.fxLayer.eventMode="none",this.coin.anchor.set(.5),this.energy.anchor.set(.5);
- this.coinText.text=String(r.run&&!r.run.battleOnly&&(null==(t=this.activePage)?void 0:t.usesRunWallet)?r.run.wallet:(null==(i=r.season)?void 0:i.gold)??0),this.coinText.scale.set(1),this.coinText.scale.set(Math.min(1,48/Math.max(1,this.coinText.width))),this.coinText.position.set(62,78),this.sealText.text=String((null==(s=r.season)?void 0:s.coin)??0),this.sealText.scale.set(1),this.sealText.scale.set(Math.min(1,48/Math.max(1,this.sealText.width))),this.sealText.position.set(156,78),this.progress.text=r.run?Rvi("DEPTH",r.run.floor):Rvi("BEST",(null==(e=r.season)?void 0:e.bestFloor)??0),this.progress.scale.set(1),this.progress.scale.set(Math.min(1,130/Math.max(1,this.progress.width))),this.progress.position.set((this.width-this.progress.width)/2,78);
+ this.coinText.text=String(r.run&&!r.run.battleOnly&&(null==(t=this.activePage)?void 0:t.usesRunWallet)?r.run.wallet:this.shown.gold??(null==(i=r.season)?void 0:i.gold)??0),this.coinText.scale.set(1),this.coinText.scale.set(Math.min(1,48/Math.max(1,this.coinText.width))),this.coinText.position.set(62,78),this.sealText.text=String((null==(s=r.season)?void 0:s.coin)??0),this.sealText.scale.set(1),this.sealText.scale.set(Math.min(1,48/Math.max(1,this.sealText.width))),this.sealText.position.set(156,78),this.progress.text=r.run?o_i("DEPTH",r.run.floor):o_i("BEST",(null==(e=r.season)?void 0:e.bestFloor)??0),this.progress.scale.set(1),this.progress.scale.set(Math.min(1,130/Math.max(1,this.progress.width))),this.progress.position.set((this.width-this.progress.width)/2,78);
- o.current}
+ this.shown.energy??o.current}
- `,this.energyText.scale.set(1),this.energyText.scale.set(Math.min(1,72/Math.max(1,this.energyText.width))),this.energyText.position.set(this.width-28-this.energyText.width,78),this.energy.position.set(this.energyText.x-34,76)),this.remaining.text=t_i(null==(h=r.season)?void 0:h.endTime,cR.time>=0?cR.time:Date.now()),this.remaining.scale.set(1),this.remaining.scale.set(Math.min(1,120/Math.max(1,this.remaining.width))),this.remaining.position.set(28,29);
+ `,this.energyText.scale.set(1),this.energyText.scale.set(Math.min(1,72/Math.max(1,this.energyText.width))),this.energyText.position.set(this.width-28-this.energyText.width,78),this.energy.position.set(this.energyText.x-34+13,89)),this.remaining.text=k_i(null==(h=r.season)?void 0:h.endTime,cR.time>=0?cR.time:Date.now()),this.remaining.scale.set(1),this.remaining.scale.set(Math.min(1,120/Math.max(1,this.remaining.width))),this.remaining.position.set(28,29);
- this.closeControl.alpha=e?1:.35,this.pages.interactiveChildren=!this.navigating,this.coin.width=this.coin.height=26,this.coin.position.set(28,76),this.seal.width=this.seal.height=26,this.seal.position.set(122,76),this.energy.width=this.energy.height=26,this.chrome.clear().moveTo(24,112).lineTo(this.width-24,112).stroke({
+ this.closeControl.alpha=e?1:.35,this.pages.interactiveChildren=!this.navigating,this.coin.width=this.coin.height=26,this.coin.position.set(41,89),this.seal.width=this.seal.height=26,this.seal.position.set(122,76),this.energy.width=this.energy.height=26,this.chrome.clear().moveTo(24,112).lineTo(this.width-24,112).stroke({
+ holdHeader(t){
+ this.killHeaderTweens(),void 0!==t.gold&&(this.shown.gold=t.gold),void 0!==t.energy&&(this.shown.energy=t.energy),this.updateStatus()}
+ rollHeader(t,i,s,e){
+ const n={
+ v:this.shown[t]??i}
+ ,h="gold"===t?this.coinText:this.energyText;
+ void 0!==e&&(h.textColor=e);
+ const r=zk.to(n,{
+ v:i,duration:s,ease:"power1.out",onUpdate:qt(()=>{
+ this.shown[t]=Math.round(n.v),this.updateStatus()}
+ ,"onUpdate"),onComplete:qt(()=>{
+ this.shown[t]=null,this.resetHeaderColors(),this.updateStatus()}
+ ,"onComplete")}
+ );
+ this.headerTweens.push(r)}
+ resetHeaderColors(){
+ this.coinText.textColor=u_i.accent,this.energyText.textColor=u_i.text}
+ releaseHeader(){
+ this.killHeaderTweens(),this.shown={
+ gold:null,energy:null}
+ ,this.updateStatus()}
+ headerAnchor(t){
+ const i="gold"===t?this.coin:this.energy;
+ return new _i(i.x,i.y)}
+ pulseHeader(t){
+ const i="gold"===t?this.coin:this.energy;
+ i.width=i.height=26;
+ const s=i.scale.x,e=i.scale.y;
+ zk.killTweensOf(i.scale);
+ const n=zk.fromTo(i.scale,{
+ x:1.45*s,y:1.45*e}
+ ,{
+ x:s,y:e,duration:.28,ease:"back.out(3)"}
+ );
+ this.headerTweens.push(n)}
+ killHeaderTweens(){
+ for(const t of this.headerTweens)t.kill();
+ this.headerTweens=[],this.resetHeaderColors(),this.coin.width=this.coin.height=26,this.energy.width=this.energy.height=26}
- this.pages.removeChildren(),this.activePage=null,super.hideImmediately()}
+ this.releaseHeader(),this.pages.removeChildren(),this.activePage=null,super.hideImmediately()}
BaseMap 5 hunks, 39 statements
- Xt(this,"placements",[]),Xt(this,"objects",[]),Xt(this,"currentSeason",HB.SPRING)}
- load(t){
- this.clear(),this.placements=this.generatePlacements(),this.spawnObjects(),this.applySeason(t,!0)}
- applySeason(i,s=!1){
- if(this.currentSeason!==i||s){
- this.currentSeason=i,kB.getInstance().setSingleBackground(`images/bg/bg${
+ Xt(this,"placements",[]),Xt(this,"objects",[]),Xt(this,"currentSeason",kB.SPRING),Xt(this,"currentRealm",xB.FOREST),Xt(this,"requestedRealm",xB.FOREST)}
+ static preloadDeadLand(){
+ return t.deadBackgroundsLoaded?Promise.resolve():(t.deadLoading||(t.deadLoading=Promise.all(t.DEAD_SEASONS.map(i=>eS.getSingleTexture(`${
+ t.DEAD_DIR}
+ /bg${
+ i}
+ .png`))).then(()=>{
+ t.deadBackgroundsLoaded=!0}
+ ).catch(i=>{
+ throw t.deadLoading=null,i}
+ )),t.deadLoading)}
+ load(t,i=xB.FOREST){
+ this.clear(),this.placements=this.generatePlacements(),this.spawnObjects(),this.applySeason(t,!0,i)}
+ applySeason(i,s=!1,e=this.requestedRealm){
+ if(this.requestedRealm=e,this.currentSeason!==i||this.currentRealm!==e||s)return e!==xB.DEAD_LAND||t.deadBackgroundsLoaded?void this.applyLook(i,s,e):(this.applyLook(i,s,xB.FOREST),void t.preloadDeadLand().then(()=>{
+ this.requestedRealm===xB.DEAD_LAND&&this.applyLook(this.currentSeason,!0,xB.DEAD_LAND)}
+ ).catch(t=>{
+ }
+ ))}
+ applyLook(i,s,e){
+ this.currentSeason=i,this.currentRealm=e,DB.getInstance().setSingleBackground(e===xB.DEAD_LAND?`${
+ t.DEAD_DIR}
+ /bg${
+ i}
+ .png`:`images/bg/bg${
- const e=this.placements[s],n=this.getTextureName(e.type,i);
- this.objects[s].setTexture(t.GAME_SHEET,n)}
+ const s=this.placements[n];
+ e===xB.DEAD_LAND?this.objects[n].texture=this.getDeadTexture(s.type,n,i):this.objects[n].setTexture(t.GAME_SHEET,this.getTextureName(s.type,i))}
- }
+ getRealm(){
+ return this.requestedRealm}
+ getDeadTexture(i,s,e){
+ if(4===i)return eS.getTexture(t.GAME_SHEET,t.DEAD_SMALL[s%t.DEAD_SMALL.length]);
+ const n=(i+s)%2+1;
+ return eS.getTexture(t.GAME_SHEET,`deadTree${
+ e}
+ ${
+ n}
+ `)}
- qt(wli,"BaseMap"),Xt(wli,"GAME_SHEET","Game"),Xt(wli,"FIELD_SIZE",640),Xt(wli,"EDGE_MARGIN",100),Xt(wli,"SAFE_RADIUS",180),Xt(wli,"NIGHT_TINT",5070984),Xt(wli,"DAY_TINT",16777215);
+ qt(Zli,"BaseMap"),Xt(Zli,"GAME_SHEET","Game"),Xt(Zli,"FIELD_SIZE",640),Xt(Zli,"EDGE_MARGIN",100),Xt(Zli,"SAFE_RADIUS",180),Xt(Zli,"NIGHT_TINT",7373467),Xt(Zli,"DAY_TINT",16777215),Xt(Zli,"DEAD_DIR","images/bg/deadland"),Xt(Zli,"DEAD_SEASONS",[kB.SPRING,kB.SUMMER,kB.AUTUMN,kB.WINTER]),Xt(Zli,"DEAD_SMALL",["grave1","grave2","bones1"]),Xt(Zli,"deadBackgroundsLoaded",!1),Xt(Zli,"deadLoading",null);
MiniAscentModeSwitch 1 hunks, 37 statements
+ constructor(i,s){
+ super(),Xt(this,"bg",new Ff),Xt(this,"pill",new Ff),Xt(this,"segments",[]),Xt(this,"enabled",!0),Xt(this,"onSelect",null);
+ const e=t.WIDTH,n=t.HEIGHT,h=e/2;
+ this.bg.eventMode=this.pill.eventMode="none",this.addChild(this.bg,this.pill),[i,s].forEach((t,i)=>{
+ const s=new He,e=new SD(t,u_i.muted,{
+ ...OL.DEFAULT_FONT_OPTION_16,fontSize:19,lineHeight:24}
+ ),r=(new Ff).moveTo(3,8).arc(7,8,4,Math.PI,0).stroke({
+ color:16777215,width:2}
+ ).roundRect(0,7,14,10,2).fill(16777215);
+ e.eventMode=r.eventMode="none",s.addChild(e,r),s.x=i*h,s.eventMode="static",s.cursor="pointer",s.hitArea=new Di(0,0,h,n),s.on("pointertap",t=>{
+ var s;
+ t.stopPropagation(),this.enabled&&(MG.getInstance().playSFX(MG.SFX_NORMAL_CLICK),null==(s=this.onSelect)||s.call(this,1===i))}
+ ),this.addChild(s),this.segments.push({
+ root:s,label:e,lock:r}
+ )}
+ ),this.bg.roundRect(0,0,e,n,n/2).fill({
+ color:1775380,alpha:.9}
+ ).stroke({
+ color:u_i.border,width:1.5}
+ )}
+ update(i,s,e){
+ const n=t.WIDTH,h=t.HEIGHT,r=n/2;
+ this.enabled=e,this.alpha=e?1:.6,this.pill.clear().roundRect((i?r:0)+4,4,r-8,h-8,(h-8)/2).fill(i?7024166:u_i.surfaceSelected).stroke({
+ color:i?12609626:u_i.accent,width:1.5}
+ ),this.segments.forEach(({
+ label:t,lock:e}
+ ,n)=>{
+ const o=1===n===i,a=1===n&&!s;
+ t.textColor=o?1===n?16770010:u_i.accent:a?u_i.subtle:u_i.muted,e.visible=a,e.tint=u_i.subtle;
+ const c=a?20:0,l=(r-(c+t.width))/2;
+ e.position.set(l,(h-17)/2),t.position.set(l+c,(h-t.height)/2)}
+ )}
+ }
+ ;
+ qt(JLi,"MiniAscentModeSwitch"),Xt(JLi,"WIDTH",260),Xt(JLi,"HEIGHT",44);
+ let QLi=JLi;
+ const ZLi=class t extends He{
HelpDetailPopup 8 hunks, 29 statements
- super(),Xt(this,"paperContainer",new He),Xt(this,"paperTop"),Xt(this,"paperMiddle"),Xt(this,"paperBottom"),Xt(this,"imageSprite",new je),Xt(this,"lblDesc",new yD("",3811866,IL.DEFAULT_FONT_OPTION_18)),Xt(this,"btnPrev"),Xt(this,"btnNext"),Xt(this,"btnPrevBg"),Xt(this,"btnNextBg"),Xt(this,"btnPrevIcon"),Xt(this,"btnNextIcon"),Xt(this,"btnCloseCustom",new hYt),Xt(this,"subs",[]),Xt(this,"subIndex",0),Xt(this,"hideBtnClose",!1),Xt(this,"onHideHandler",null),this.width=t.POPUP_WIDTH,this.height=t.POPUP_HEIGHT,this.bg.visible=!1,this.top.visible=!1,this.bottom.visible=!1,this.buildPaperBackground(),this.addChild(this.paperContainer),this.imageSprite.anchor.set(.5,.5),this.addChild(this.imageSprite),this.lblDesc.wordWrap=!0,this.lblDesc.wordWrapWidth=t.DESC_WRAP_WIDTH,this.lblDesc.align="center",this.addChild(this.lblDesc),this.buildNavButtons(),this.addChild(this.btnPrev),this.addChild(this.btnNext),this.btnClose.visible=!1,this.btnCloseCustom.x=t.POPUP_WIDTH-this.btnCloseCustom.width-t.CLOSE_BTN_RIGHT_PAD,this.btnCloseCustom.y=t.CLOSE_BTN_TOP_PAD,this.btnCloseCustom.onClick=()=>this.hide(),this.addChild(this.btnCloseCustom),this.bringFrontFurniture(),this.outSideClickHide=!0}
+ super(),Xt(this,"paperContainer",new He),Xt(this,"paperTop"),Xt(this,"paperMiddle"),Xt(this,"paperBottom"),Xt(this,"imageSprite",new je),Xt(this,"lblTitle",new SD("",t.TEXT_COLOR,{
+ ...OL.DEFAULT_FONT_OPTION_18,fontSize:32,lineHeight:40}
+ )),Xt(this,"lblDesc",new SD("",t.TEXT_COLOR,{
+ ...OL.DEFAULT_FONT_OPTION_18,fontSize:24,lineHeight:34}
+ )),Xt(this,"dots",new Ff),Xt(this,"lblNextOk",new SD("",16777215,OL.WHITE_OUTLINE_FONT_OPTION_22)),Xt(this,"btnPrev"),Xt(this,"btnNext"),Xt(this,"btnPrevBg"),Xt(this,"btnNextBg"),Xt(this,"btnPrevIcon"),Xt(this,"btnNextIcon"),Xt(this,"btnCloseCustom",new SYt),Xt(this,"subs",[]),Xt(this,"subIndex",0),Xt(this,"hideBtnClose",!1),Xt(this,"onHideHandler",null),this.width=t.POPUP_WIDTH,this.height=t.POPUP_HEIGHT,this.bg.visible=!1,this.top.visible=!1,this.bottom.visible=!1,this.buildPaperBackground(),this.addChild(this.paperContainer),this.txtTitle.visible=!1,this.addChild(this.lblTitle),this.imageSprite.anchor.set(.5,.5),this.addChild(this.imageSprite),this.lblDesc.wordWrap=!0,this.lblDesc.wordWrapWidth=t.DESC_WRAP_WIDTH,this.lblDesc.align="center",this.addChild(this.lblDesc),this.addChild(this.dots),this.buildNavButtons(),this.addChild(this.btnPrev),this.addChild(this.btnNext),this.btnClose.visible=!1,this.btnCloseCustom.x=t.POPUP_WIDTH-this.btnCloseCustom.width-t.CLOSE_BTN_RIGHT_PAD,this.btnCloseCustom.y=t.CLOSE_BTN_TOP_PAD,this.btnCloseCustom.onClick=()=>this.hide(),this.addChild(this.btnCloseCustom),this.bringFrontFurniture(),this.outSideClickHide=!0}
- this.btnPrev=new He,this.btnPrevBg=new je(eS.getTexture("UI_HELP","Btn_Help_01_nor")),this.btnPrevIcon=new je(eS.getTexture("UI_HELP","Icon_Help_Left")),this.btnPrev.addChild(this.btnPrevBg),this.btnPrev.addChild(this.btnPrevIcon),this.btnPrevIcon.x=.5*(this.btnPrevBg.width-this.btnPrevIcon.width),this.btnPrevIcon.y=.5*(this.btnPrevBg.height-this.btnPrevIcon.height),this.btnPrev.eventMode="dynamic",this.btnPrev.cursor="pointer",this.btnPrev.on("pointertap",()=>this.onPrev()),this.btnNext=new He,this.btnNextBg=new je(eS.getTexture("UI_HELP","Btn_Help_01_nor")),this.btnNextIcon=new je(eS.getTexture("UI_HELP","Icon_Help_Right")),this.btnNext.addChild(this.btnNextBg),this.btnNext.addChild(this.btnNextIcon),this.btnNextIcon.x=.5*(this.btnNextBg.width-this.btnNextIcon.width),this.btnNextIcon.y=.5*(this.btnNextBg.height-this.btnNextIcon.height),this.btnNext.eventMode="dynamic",this.btnNext.cursor="pointer",this.btnNext.on("pointertap",()=>this.onNext())}
+ this.btnPrev=new He,this.btnPrevBg=new je(eS.getTexture("UI_HELP","Btn_Help_01_nor")),this.btnPrevIcon=new je(eS.getTexture("UI_HELP","Icon_Help_Left")),this.btnPrev.addChild(this.btnPrevBg),this.btnPrev.addChild(this.btnPrevIcon),this.btnPrevIcon.x=.5*(this.btnPrevBg.width-this.btnPrevIcon.width),this.btnPrevIcon.y=.5*(this.btnPrevBg.height-this.btnPrevIcon.height),this.btnPrev.eventMode="dynamic",this.btnPrev.cursor="pointer",this.btnPrev.on("pointertap",()=>this.onPrev()),this.btnNext=new He,this.btnNextBg=new je(eS.getTexture("UI_HELP","Btn_Help_01_nor")),this.btnNextIcon=new je(eS.getTexture("UI_HELP","Icon_Help_Right")),this.btnNext.addChild(this.btnNextBg),this.btnNext.addChild(this.btnNextIcon),this.lblNextOk.text=nB.getText("COMMON_1","확인"),this.lblNextOk.x=.5*(this.btnNextBg.width-this.lblNextOk.width),this.lblNextOk.y=.5*(this.btnNextBg.height-this.lblNextOk.height),this.lblNextOk.visible=!1,this.btnNext.addChild(this.lblNextOk),this.btnNextIcon.x=.5*(this.btnNextBg.width-this.btnNextIcon.width),this.btnNextIcon.y=.5*(this.btnNextBg.height-this.btnNextIcon.height),this.btnNext.eventMode="dynamic",this.btnNext.cursor="pointer",this.btnNext.on("pointertap",()=>this.onNext())}
- const t=[this.txtTitle,this.btnCloseCustom];
+ const t=[this.lblTitle,this.btnCloseCustom];
- this.subIndex<=0?this.hide():(this.subIndex--,this.applyCurrent())}
+ this.subIndex<=0||(this.subIndex--,this.applyCurrent())}
- this.txtTitle.text=i.title,this.txtTitle.x=.5*(t.POPUP_WIDTH-this.txtTitle.width),this.txtTitle.y=t.TITLE_Y;
+ this.lblTitle.text=i.title,this.lblTitle.x=.5*(t.POPUP_WIDTH-this.lblTitle.width),this.lblTitle.y=t.TITLE_LINE_Y-8-this.lblTitle.height;
- this.imageSprite.scale.set(c),this.imageSprite.x=.5*t.POPUP_WIDTH,this.imageSprite.y=n+.5*h,this.lblDesc.text=i.desc,this.lblDesc.x=.5*(t.POPUP_WIDTH-this.lblDesc.width),this.lblDesc.y=n+h+20;
+ this.imageSprite.scale.set(c),this.imageSprite.x=.5*t.POPUP_WIDTH,this.imageSprite.y=n+.5*h,this.lblDesc.text=i.desc,this.lblDesc.x=.5*(t.POPUP_WIDTH-this.lblDesc.width),this.lblDesc.y=n+h+18;
- this.btnPrev.x=80,this.btnPrev.y=l,this.btnNext.x=t.POPUP_WIDTH-80-this.btnNextBg.width,this.btnNext.y=l,this.btnPrev.alpha=0===this.subIndex?.4:1,this.btnNext.alpha=this.subIndex===this.subs.length-1?.4:1}
+ this.btnPrev.x=80,this.btnPrev.y=l,this.btnNext.x=t.POPUP_WIDTH-80-this.btnNextBg.width,this.btnNext.y=l;
+ const u=this.subIndex===this.subs.length-1;
+ this.btnPrev.alpha=0===this.subIndex?.4:1,this.btnNext.alpha=1,this.btnNextIcon.visible=!u,this.lblNextOk.visible=u,this.drawDots(l-24)}
+ drawDots(i){
+ this.dots.clear();
+ const s=this.subs.length;
+ if(s<2)return;
+ const e=.5*t.POPUP_WIDTH-20*(s-1)*.5;
+ for(let n=0;
+ n<s;
+ n++){
+ const s=e+20*n;
+ n===this.subIndex?this.dots.circle(s,i,6).fill({
+ color:t.TEXT_COLOR}
+ ):this.dots.circle(s,i,5).stroke({
+ width:2,color:t.TEXT_COLOR,alpha:.5}
+ )}
+ }
- qt(rYt,"HelpDetailPopup"),Xt(rYt,"instance",null),Xt(rYt,"POPUP_WIDTH",600),Xt(rYt,"POPUP_HEIGHT",720),Xt(rYt,"IMAGE_AREA_TOP",110),Xt(rYt,"IMAGE_AREA_HEIGHT",360),Xt(rYt,"DESC_WRAP_WIDTH",500),Xt(rYt,"NAV_BTN_BOTTOM_PAD",50),Xt(rYt,"TITLE_Y",40),Xt(rYt,"CLOSE_BTN_RIGHT_PAD",20),Xt(rYt,"CLOSE_BTN_TOP_PAD",18);
+ qt(TYt,"HelpDetailPopup"),Xt(TYt,"instance",null),Xt(TYt,"POPUP_WIDTH",600),Xt(TYt,"POPUP_HEIGHT",720),Xt(TYt,"IMAGE_AREA_TOP",118),Xt(TYt,"IMAGE_AREA_HEIGHT",330),Xt(TYt,"DESC_WRAP_WIDTH",500),Xt(TYt,"NAV_BTN_BOTTOM_PAD",50),Xt(TYt,"TITLE_LINE_Y",72),Xt(TYt,"TEXT_COLOR",3811866),Xt(TYt,"CLOSE_BTN_RIGHT_PAD",20),Xt(TYt,"CLOSE_BTN_TOP_PAD",18);
ShopGemSubView 2 hunks, 25 statements
+ function Oqt(t,i){
+ const s=nB.getText(t.getDescKey(),t.desc);
+ if(!i||"quest"!==i.type||"level"!==i.condType)return s;
+ const e=ND.getInstance().getDataByKindNum(i.targetNum);
+ if(!e)return s;
+ const n=nB.getText(e.getNameKey(),e.name);
+ return i.condValue<=1?UKt(GKt.missionQuestOpen,n):UKt(GKt.missionQuestLevel,n,i.condValue)}
+ function kqt(t){
+ const i=qt((t,i)=>[Math.min(Math.max(0,t),i),i],"clamp");
+ switch(t.type){
+ case"quest":{
+ if("level"!==t.condType||t.condValue<=1)return null;
+ const s=ND.getInstance().getDataByKindNum(t.targetNum);
+ return s?i(s.level,t.condValue):null}
+ case"hero":{
+ const s=TR.getInstance().list.filter(t=>!!t),e=qt(i=>"enhance"===t.condType?i.enhance:i.level,"value");
+ return t.targetNum<=1?i(Math.max(0,...s.map(e)),t.condValue):i(s.filter(i=>e(i)>=t.condValue).length,t.targetNum)}
+ case"castle":{
+ if("enhance"===t.condType)return i(Cx.getInstance().castleEnhance,t.condValue);
+ const s=Cx.getInstance().bookList[t.targetNum-1];
+ return s&&"level"===t.condType?i(s.level,t.condValue):null}
+ case"maxRevive":return i(XD.maxWave,t.targetNum);
+ default:return null}
+ }
- qt(lqt,"parseCondition"),qt(uqt,"checkCondition");
+ qt(Oqt,"missionDesc"),qt(kqt,"conditionProgress"),qt(Rqt,"parseCondition"),qt(xqt,"checkCondition");
MiniAscentService 1 hunks, 24 statements
+ async sweep(t,i){
+ return this.post(aP.MINI_ASCENT.SWEEP,{
+ chapter:t,...i?{
+ hard:!0}
+ :{
+ }
+ }
+ ,!0)}
+ async devClearChapter(t,i){
+ return this.post(aP.MINI_ASCENT.DEV_CLEAR_CHAPTER,{
+ ...t?{
+ chapter:t}
+ :{
+ }
+ ,...i?{
+ hard:!0}
+ :{
+ }
+ }
+ ,!0)}
+ async devGrantEnergy(){
+ return this.post(aP.MINI_ASCENT.DEV_GRANT_ENERGY,{
+ }
+ ,!0)}
NpcDialogueToast 6 hunks, 23 statements
- super(),Xt(this,"frameLeft"),Xt(this,"frameRight"),Xt(this,"npcIcon"),Xt(this,"lblName"),Xt(this,"lblMessage"),Xt(this,"bg"),Xt(this,"timeCount",0),Xt(this,"isFadingOut",!1),Xt(this,"currentPosition",1),Xt(this,"queue",[]),Xt(this,"textureLoaded",!1),Xt(this,"onCompleteHandler",null),this.eventMode="none",this.bg=new TD,this.bg.alpha=.6,this.bg.setIndex(7),this.addChild(this.bg),this.frameLeft=new je,this.addChild(this.frameLeft),this.npcIcon=new je,this.addChild(this.npcIcon),this.lblName=new yD("",16768324,IL.DEFAULT_OUTLINE_FONT_OPTION_17),this.addChild(this.lblName),this.lblMessage=new yD("",IL.COLOR_WHITE,IL.DEFAULT_FONT_OPTION_16),this.addChild(this.lblMessage),this.frameRight=new je,this.addChild(this.frameRight)}
+ super(),Xt(this,"frameLeft"),Xt(this,"frameRight"),Xt(this,"npcIcon"),Xt(this,"lblName"),Xt(this,"lblMessage"),Xt(this,"bg"),Xt(this,"timeCount",0),Xt(this,"isFadingOut",!1),Xt(this,"shownFrames",0),Xt(this,"lblHint"),Xt(this,"_tapToAdvance",!1),Xt(this,"currentPosition",1),Xt(this,"queue",[]),Xt(this,"textureLoaded",!1),Xt(this,"onCompleteHandler",null),this.eventMode="none",this.bg=new CD,this.bg.alpha=.6,this.bg.setIndex(7),this.addChild(this.bg),this.frameLeft=new je,this.addChild(this.frameLeft),this.npcIcon=new je,this.addChild(this.npcIcon),this.lblName=new SD("",16768324,OL.DEFAULT_OUTLINE_FONT_OPTION_17),this.addChild(this.lblName),this.lblMessage=new jg({
+ text:"",style:{
+ ...t.MESSAGE_STYLE,fill:OL.COLOR_WHITE,tagStyles:FKt}
+ }
+ ),this.addChild(this.lblMessage),this.frameRight=new je,this.addChild(this.frameRight),this.lblHint=new SD("",13350539,{
+ ...OL.DEFAULT_FONT_OPTION_18,fontSize:14,lineHeight:18}
+ ),this.lblHint.visible=!1,this.addChild(this.lblHint),this.on("pointertap",this.onTap,this)}
- async showDialogues(i){
- if(0!==i.length&&bD.getInstance().npcDialogue){
+ set tapToAdvance(t){
+ this._tapToAdvance=t,this.eventMode=t?"static":"none",this.hitArea=t?new Di(-3e3,-3e3,6e3,6e3):null,this.lblHint.visible=t,t&&(this.lblHint.text=BKt(GKt.tapToContinue)+" ▼"),this.parent&&this.relayout()}
+ onTap(){
+ !this._tapToAdvance||this.timeCount<=0||this.isFadingOut||this.shownFrames<12||(this.timeCount=Math.min(this.timeCount,6),this.isFadingOut=!0)}
+ async showDialogues(i,s=!1){
+ if(0!==i.length&&(s||ED.getInstance().npcDialogue)){
- this.npcIcon.scale.set(r),this.lblName.text=t.getNpcName(i),IL.setLabelWrapWidth(this.lblMessage,480),this.lblMessage.text=s,this.relayout(),this.alpha=0,this.timeCount=e,this.isFadingOut=!1,FM.getInstance().remove(this.onFrame,this),FM.getInstance().add(this.onFrame,this),xoi.getInstance().addChild(this)}
+ this.npcIcon.scale.set(r),this.lblName.text=t.getNpcName(i),this.lblMessage.text=HKt(s,t.MESSAGE_STYLE,t.MESSAGE_WIDTH),this.relayout(),this.alpha=0,this.timeCount=e,this.isFadingOut=!1,this.shownFrames=0,FM.getInstance().remove(this.onFrame,this),FM.getInstance().add(this.onFrame,this),tai.getInstance().addChild(this)}
- const i=t.PAD,s=2===this.currentPosition,e=520,n=this.lblMessage.height+2*i+16,h=this.npcIcon.scale.x,r=this.npcIcon.texture.width*h,o=this.npcIcon.texture.height*h;
+ const i=t.PAD,s=2===this.currentPosition,e=520,n=this.lblHint.visible?this.lblHint.height:0,h=this.lblMessage.height+2*i+16+n,r=this.npcIcon.scale.x,o=this.npcIcon.texture.width*r,a=this.npcIcon.texture.height*r;
- s?(this.npcIcon.scale.x=-Math.abs(h),this.npcIcon.x=e-i,this.npcIcon.y=a,this.lblName.x=this.npcIcon.x-r-this.lblName.width+6,this.lblName.y=-this.lblName.height-4,this.lblMessage.x=.5*(e-this.lblMessage.width),this.lblMessage.y=.5*(n-this.lblMessage.height)):(this.npcIcon.scale.x=Math.abs(h),this.npcIcon.x=i,this.npcIcon.y=a,this.lblName.x=this.npcIcon.x+r-6,this.lblName.y=-this.lblName.height-4,this.lblMessage.x=.5*(e-this.lblMessage.width),this.lblMessage.y=.5*(n-this.lblMessage.height)),this.x=.5*(Xy.stageWidth-e),this.y=460}
+ s?(this.npcIcon.scale.x=-Math.abs(r),this.npcIcon.x=e-i,this.npcIcon.y=c,this.lblName.x=this.npcIcon.x-o-this.lblName.width+6,this.lblName.y=-this.lblName.height-4,this.lblMessage.x=.5*(e-this.lblMessage.width),this.lblMessage.y=.5*(h-this.lblMessage.height)):(this.npcIcon.scale.x=Math.abs(r),this.npcIcon.x=i,this.npcIcon.y=c,this.lblName.x=this.npcIcon.x+o-6,this.lblName.y=-this.lblName.height-4,this.lblMessage.x=.5*(e-this.lblMessage.width),this.lblMessage.y=.5*(h-this.lblMessage.height)),this.lblHint.visible&&(this.lblMessage.y=.5*(h-n-this.lblMessage.height),this.lblHint.x=e-i-4-this.lblHint.width,this.lblHint.y=h-i-this.lblHint.height+2),this.x=.5*(Xy.stageWidth-e),this.y=460}
- nG.getInstance().hasPopup?this.visible=!1:(this.visible=!0,this.alpha<1&&!this.isFadingOut&&(this.alpha+=1/t.FADE_IN_FRAMES,this.alpha>1&&(this.alpha=1)),this.timeCount<=t.FADE_OUT_FRAMES&&!this.isFadingOut&&(this.isFadingOut=!0),this.isFadingOut&&(this.alpha-=1/t.FADE_OUT_FRAMES,this.alpha<0&&(this.alpha=0)),this.timeCount--,this.timeCount<=0&&(FM.getInstance().remove(this.onFrame,this),this.queue.length>0?this.playNext():(this.parent&&this.parent.removeChild(this),this.onCompleteHandler&&(this.onCompleteHandler(),this.onCompleteHandler=null))))}
+ if(hG.getInstance().hasPopup)this.visible=!1;
+ else if(this.visible=!0,this.shownFrames++,this.alpha<1&&!this.isFadingOut&&(this.alpha+=1/t.FADE_IN_FRAMES,this.alpha>1&&(this.alpha=1)),this.timeCount<=t.FADE_OUT_FRAMES&&!this.isFadingOut&&(this.isFadingOut=!0),this.isFadingOut&&(this.alpha-=1/t.FADE_OUT_FRAMES,this.alpha<0&&(this.alpha=0)),this.timeCount--,this.timeCount<=0)if(FM.getInstance().remove(this.onFrame,this),this.queue.length>0)this.playNext();
+ else{
+ this.parent&&this.parent.removeChild(this),this._tapToAdvance&&(this.tapToAdvance=!1);
+ const t=this.onCompleteHandler;
+ this.onCompleteHandler=null,t&&t()}
+ }
BackgroundLayer 6 hunks, 19 statements
+ var kB=(t=>(t[t.SPRING=1]="SPRING",t[t.SUMMER=2]="SUMMER",t[t.AUTUMN=3]="AUTUMN",t[t.WINTER=4]="WINTER",t))(kB||{
+ }
+ );
+ function RB(t){
+ const i=(t-1)%200;
+ return i<50?2:i<100?3:i<150?4:1}
+ qt(RB,"getSeasonForWave");
+ var xB=(t=>(t[t.FOREST=1]="FOREST",t[t.DEAD_LAND=2]="DEAD_LAND",t))(xB||{
+ }
+ );
+ function PB(t){
+ return t>=1e4?2:1}
+ qt(PB,"getRealmForWave");
- super(),Xt(this,"bg"),Xt(this,"fogOverlay",null),Xt(this,"fogFilter",null),this.eventMode="none",this.bg=new je(eS.getTexture("BG","BG1")),this.addChild(this.bg),this.bg.width=640,this.bg.height=640}
+ super(),Xt(this,"bg"),Xt(this,"backgroundRequestId",0),Xt(this,"fogOverlay",null),Xt(this,"fogFilter",null),this.eventMode="none",this.bg=new je(eS.getTexture("BG","BG1")),this.addChild(this.bg),this.bg.width=640,this.bg.height=640}
- this.bg.texture=eS.getTexture("BG",t),this.bg.width=640,this.bg.height=640,this.applyFogEffect("Highland"===t)}
+ this.backgroundRequestId++,this.bg.texture=eS.getTexture("BG",t),this.bg.width=640,this.bg.height=640,this.applyFogEffect("Highland"===t)}
+ this.backgroundRequestId++;
- const e=await eS.getSingleTexture(t);
- this.bg.texture=e,this.bg.width=i,this.bg.height=s,this.applyFogEffect(!1)}
+ const e=++this.backgroundRequestId,n=await eS.getSingleTexture(t);
+ e===this.backgroundRequestId&&(this.bg.texture=n,this.bg.width=i,this.bg.height=s,this.applyFogEffect(!1))}
- this.bg.texture=eS.getTexture("BG",`BG${
+ this.backgroundRequestId++,this.bg.texture=eS.getTexture("BG",`BG${
MiniAscentDeployPopup 7 hunks, 19 statements
- super(),Xt(this,"usesRunWallet",!0),Xt(this,"lblTitle"),Xt(this,"lblLevel"),Xt(this,"lblHint"),Xt(this,"field",new He),Xt(this,"map",new je),Xt(this,"mapMask",new Ff),Xt(this,"fieldChrome",new Ff),Xt(this,"versus",new je),Xt(this,"tacticLines",new Ff),Xt(this,"tacticLabels",[]),Xt(this,"tactics",[]),Xt(this,"chrome",new Ff),Xt(this,"tokenScale",1),Xt(this,"slotMarks",[]),Xt(this,"lblEmpty",[]),Xt(this,"allyTokens",[]),Xt(this,"enemyTokens",[]),Xt(this,"btnStart"),Xt(this,"btnGiveUp"),Xt(this,"btnBack"),Xt(this,"btnAuto"),Xt(this,"onAuto",null),Xt(this,"fieldW",0),Xt(this,"fieldH",0),Xt(this,"vertical",!0),Xt(this,"ally",[]),Xt(this,"formation",[]),Xt(this,"dragSlot",-1),Xt(this,"dragOffX",0),Xt(this,"dragOffY",0),Xt(this,"hoverSlot",-1),Xt(this,"busy",!1),Xt(this,"onStart",null),Xt(this,"onGiveUp",null),Xt(this,"onBack",null),Xt(this,"onFormationChange",null),this.canCloseShell=()=>!this.busy&&this.dragSlot<0,this.on("removed",()=>this.detachStage()),this.chrome.eventMode="none",this.contentContainer.addChild(this.chrome),this.lblTitle=new yD("",16767332,{
- ...IL.DEFAULT_FONT_OPTION_16,fontSize:24,lineHeight:30}
+ super(),Xt(this,"usesRunWallet",!0),Xt(this,"lblTitle"),Xt(this,"lblLevel"),Xt(this,"lblHint"),Xt(this,"field",new He),Xt(this,"map",new je),Xt(this,"mapMask",new Ff),Xt(this,"fieldChrome",new Ff),Xt(this,"versus",new je),Xt(this,"tacticLines",new Ff),Xt(this,"tacticLabels",[]),Xt(this,"tactics",[]),Xt(this,"chrome",new Ff),Xt(this,"tokenScale",1),Xt(this,"slotMarks",[]),Xt(this,"lblEmpty",[]),Xt(this,"allyTokens",[]),Xt(this,"enemyTokens",[]),Xt(this,"btnStart"),Xt(this,"btnGiveUp"),Xt(this,"btnBack"),Xt(this,"btnAuto"),Xt(this,"btnDevClear"),Xt(this,"onAuto",null),Xt(this,"fieldW",0),Xt(this,"fieldH",0),Xt(this,"vertical",!0),Xt(this,"ally",[]),Xt(this,"formation",[]),Xt(this,"dragSlot",-1),Xt(this,"dragOffX",0),Xt(this,"dragOffY",0),Xt(this,"hoverSlot",-1),Xt(this,"busy",!1),Xt(this,"onStart",null),Xt(this,"onGiveUp",null),Xt(this,"onDevClear",null),Xt(this,"onBack",null),Xt(this,"onFormationChange",null),this.canCloseShell=()=>!this.busy&&this.dragSlot<0,this.on("removed",()=>this.detachStage()),this.chrome.eventMode="none",this.contentContainer.addChild(this.chrome),this.lblTitle=new SD("",16767332,{
+ ...OL.DEFAULT_FONT_OPTION_16,fontSize:24,lineHeight:30}
- ,this.contentContainer.addChild(this.btnAuto)}
+ ,this.contentContainer.addChild(this.btnAuto),this.btnDevClear=new pLi("DEV 즉시 클리어"),this.btnDevClear.width=150,this.btnDevClear.height=40,this.btnDevClear.activatedTextColor=10474495,this.btnDevClear.onClick=()=>this.devClear(),this.contentContainer.addChild(this.btnDevClear)}
- ...IL.DEFAULT_FONT_OPTION_16,fontSize:16,lineHeight:20}
+ ...OL.DEFAULT_FONT_OPTION_16,fontSize:16,lineHeight:20}
- ...IL.DEFAULT_FONT_OPTION_15,fontSize:12,lineHeight:16}
+ ...OL.DEFAULT_FONT_OPTION_15,fontSize:12,lineHeight:16}
- this.lblTitle.x=(t-this.lblTitle.width)/2,this.lblTitle.y=24,this.lblLevel.x=(t-this.lblLevel.width)/2,this.lblLevel.visible=!1,this.chrome.clear();
+ this.lblTitle.x=(t-this.lblTitle.width)/2,this.lblTitle.y=24,this.btnDevClear.visible=iG.getInstance().development&&!!this.onDevClear,this.btnDevClear.position.set(t-24-this.btnDevClear.width,16),this.lblLevel.x=(t-this.lblLevel.width)/2,this.lblLevel.visible=!1,this.chrome.clear();
- for(const i of[this.btnStart,this.btnGiveUp,this.btnBack,this.btnAuto])i.activated=!t;
+ for(const i of[this.btnStart,this.btnGiveUp,this.btnBack,this.btnAuto,this.btnDevClear])i.activated=!t;
+ devClear(){
+ if(this.busy||this.dragSlot>=0||!this.onDevClear)return;
+ const t=this.onDevClear;
+ this.setBusy(!0),this.detachStage(),queueMicrotask(async()=>{
+ try{
+ await t()}
+ catch(i){
+ AH.getInstance().showMessage(i.message)}
+ finally{
+ this.setBusy(!1)}
+ }
+ )}
ClickAniLayer 4 hunks, 18 statements
- super(),Xt(this,"blocker"),Xt(this,"allowRect"),Xt(this,"highlightBorder"),Xt(this,"dimParts",[]),this.createUI()}
+ super(),Xt(this,"blocker"),Xt(this,"allowRect"),Xt(this,"spotlight",new jKt(.6)),Xt(this,"caption",new WKt),Xt(this,"captionSeq",0),this.createUI()}
- for(let t=0;
- t<4;
- t++){
- const t=new Ff;
- t.alpha=.5,t.rect(0,0,1,1).fill(0),this.dimParts.push(t),this.addChild(t)}
- this.blocker=new Ff,this.blocker.rect(0,0,640,Xy.stageHeight).fill(0),this.blocker.alpha=0,this.blocker.eventMode="static",this.addChild(this.blocker),this.highlightBorder=new Ff,this.addChild(this.highlightBorder),this.allowRect=new Di(0,0,0,0),this.setBlockerEnabled(!1)}
+ this.addChild(this.spotlight),this.blocker=new Ff,this.blocker.rect(0,0,640,Xy.stageHeight).fill(0),this.blocker.alpha=0,this.blocker.eventMode="static",this.addChild(this.blocker),this.addChild(this.caption),this.allowRect=new Di(0,0,0,0),this.setBlockerEnabled(!1)}
- this.allowRect=new Di(t,i,s,e),this.updateDim(),this.blocker.hitArea={
+ this.allowRect=new Di(t,i,s,e),this.spotlight.focus(jKt.rectHole(this.allowRect,6,12)),this.blocker.hitArea={
- this.blocker.eventMode=t?"static":"none";
- for(const i of this.dimParts)i.visible=t;
- this.highlightBorder.visible=t}
- updateDim(){
- const t=Xy.stageHeight,{
- x:i,y:s,width:e,height:n}
- =this.allowRect;
- this.dimParts[0].clear().rect(0,0,640,s).fill(0),this.dimParts[1].clear().rect(0,s,i,n).fill(0),this.dimParts[2].clear().rect(i+e,s,640-(i+e),n).fill(0),this.dimParts[3].clear().rect(0,s+n,640,t-(s+n)).fill(0),this.highlightBorder.clear().rect(i,s,e,n).stroke({
- color:16776960,width:3}
- )}
+ this.blocker.eventMode=t?"static":"none",this.spotlight.visible=t,t||(this.spotlight.reset(),this.captionSeq++,this.caption.hide())}
+ setCaption(t,i="S_SMI"){
+ const s=++this.captionSeq;
+ t?WKt.load().then(()=>{
+ if(s!==this.captionSeq||"none"===this.blocker.eventMode)return;
+ const e=this.spotlight.hole,n=e?jKt.toRect(e):this.allowRect;
+ this.caption.show(t,i,n,{
+ width:640,height:Xy.stageHeight}
+ ,!1),this.addChildAt(this.caption,this.getChildIndex(this.blocker)+1)}
+ ):this.caption.hide()}
MiniAscentDataManager 4 hunks, 16 statements
- Xt(this,"season",null),Xt(this,"run",null),Xt(this,"relics",null),Xt(this,"crystals",null),Xt(this,"lastDefeat",null),Xt(this,"eventActive",!1),Xt(this,"stateError",null),Xt(this,"viewRevision",0),Xt(this,"viewCache",new Map),Xt(this,"viewRequests",new Map)}
+ Xt(this,"season",null),Xt(this,"run",null),Xt(this,"relics",null),Xt(this,"crystals",null),Xt(this,"lastDefeat",null),Xt(this,"lastClear",null),Xt(this,"eventActive",!1),Xt(this,"stateError",null),Xt(this,"viewRevision",0),Xt(this,"viewCache",new Map),Xt(this,"viewRequests",new Map)}
+ takeLastClear(){
+ const t=this.lastClear;
+ return this.lastClear=null,t}
+ async sweep(t,i){
+ return this.requestUpdate(()=>i?this.api().sweep(t,!0):this.api().sweep(t))}
+ async devClearChapter(t,i){
+ const s=await this.requestUpdate(()=>this.api().devClearChapter(t,i));
+ return this.lastDefeat=null,this.lastClear={
+ chapter:s.chapter,hard:!!s.hard}
+ ,s}
+ async devGrantEnergy(){
+ await this.requestUpdate(()=>this.api().devGrantEnergy())}
- return await zy.removeData(zy.KEY_MINI_ASCENT_PENDING),"CLEAR"===t.result&&(this.lastDefeat=null),"LOSE"===t.result&&(this.lastDefeat={
+ return await zy.removeData(zy.KEY_MINI_ASCENT_PENDING),"CLEAR"===t.result&&(this.lastDefeat=null,this.lastClear={
+ chapter:t.chapter,hard:!!t.hard}
+ ),"LOSE"===t.result&&(this.lastDefeat={
MissionGuide 6 hunks, 15 statements
- super(),Xt(this,"onVisibilityChanged",null),Xt(this,"bg"),Xt(this,"icon"),Xt(this,"lblGem"),Xt(this,"lblDesc"),Xt(this,"lblTitle"),Xt(this,"gem"),Xt(this,"onClaim",null),this.bg=new kM({
+ super(),Xt(this,"onVisibilityChanged",null),Xt(this,"bg"),Xt(this,"icon"),Xt(this,"lblGem"),Xt(this,"lblDesc"),Xt(this,"lblTitle"),Xt(this,"lblProgress"),Xt(this,"gem"),Xt(this,"onClaim",null),Xt(this,"progressText",""),Xt(this,"isDone",!1),this.bg=new kM({
- ),this.bg.x=20,this.bg.width=380,this.bg.height=60,this.bg.alpha=.3,this.addChild(this.bg),this.icon=new je(eS.getTexture("UI_Ekkorr","UI_SKILL_BASE")),this.icon.x=0,this.icon.y=0,this.addChild(this.icon),this.gem=new je(eS.getTexture("UI_Ekkorr","UI_GEM")),this.gem.x=this.icon.x+.5*(this.icon.width-this.gem.width),this.gem.y=this.icon.y+.28*(this.icon.height-this.gem.height),this.addChild(this.gem),this.lblGem=new yD("10",52377,IL.DEFAULT_OUTLINE_FONT_OPTION_16),this.lblGem.textColor=IL.COLOR_DEEP_SKYBLUE,this.lblGem.x=.5*(this.icon.width-this.lblGem.width),this.lblGem.y=this.icon.height-this.lblGem.height-12,this.addChild(this.lblGem),this.lblTitle=new yD("[ 미션 - 1 ]",52377,IL.DEFAULT_OUTLINE_FONT_OPTION_16),this.lblTitle.textColor=IL.DEFAULT_COLOR,this.lblTitle.x=this.icon.x+this.icon.width,this.lblTitle.y=9,this.addChild(this.lblTitle),this.lblDesc=new yD("1번 퀘스트 레벨 5 달성",52377,IL.DEFAULT_OUTLINE_FONT_OPTION_16),this.lblDesc.textColor=IL.DEFAULT_COLOR,this.lblDesc.x=this.lblTitle.x,this.lblDesc.y=this.lblTitle.y+this.lblTitle.height+1,this.addChild(this.lblDesc),this.activated=!1,super.visible=!1,this.eventMode="static",this.cursor="pointer",this.on("pointertap",this.onClick,this)}
+ ),this.bg.x=20,this.bg.width=380,this.bg.height=60,this.bg.alpha=.3,this.addChild(this.bg),this.icon=new je(eS.getTexture("UI_Ekkorr","UI_SKILL_BASE")),this.icon.x=0,this.icon.y=0,this.addChild(this.icon),this.gem=new je(eS.getTexture("UI_Ekkorr","UI_GEM")),this.gem.anchor.set(.5),this.gem.x=this.icon.x+.5*this.icon.width,this.gem.y=this.icon.y+.28*(this.icon.height-this.gem.height)+.5*this.gem.height,this.addChild(this.gem),this.lblGem=new SD("10",52377,OL.DEFAULT_OUTLINE_FONT_OPTION_16),this.lblGem.textColor=OL.COLOR_DEEP_SKYBLUE,this.lblGem.x=.5*(this.icon.width-this.lblGem.width),this.lblGem.y=this.icon.height-this.lblGem.height-12,this.addChild(this.lblGem),this.lblTitle=new SD("[ 미션 - 1 ]",52377,OL.DEFAULT_OUTLINE_FONT_OPTION_16),this.lblTitle.textColor=OL.DEFAULT_COLOR,this.lblTitle.x=this.icon.x+this.icon.width,this.lblTitle.y=9,this.addChild(this.lblTitle),this.lblDesc=new SD("1번 퀘스트 레벨 5 달성",52377,OL.DEFAULT_OUTLINE_FONT_OPTION_16),this.lblDesc.textColor=OL.DEFAULT_COLOR,this.lblDesc.x=this.lblTitle.x,this.lblDesc.y=this.lblTitle.y+this.lblTitle.height+1,this.addChild(this.lblDesc),this.lblProgress=new SD("",16765786,OL.DEFAULT_OUTLINE_FONT_OPTION_16),this.lblProgress.y=this.lblTitle.y,this.addChild(this.lblProgress),this.activated=!1,super.visible=!1,this.eventMode="static",this.cursor="pointer",this.on("pointertap",this.onClick,this)}
- const t=this.gem.getGlobalPosition(),i=Xy.stage.toLocal(t),s=i.x+.5*this.gem.width-14,e=i.y+.5*this.gem.height-20;
+ const t=this.gem.getGlobalPosition(),i=Xy.stage.toLocal(t),s=i.x-14,e=i.y-20;
- setData(t){
+ setData(t,i){
-  ]`,this.lblDesc.text=sB.getText(t.getDescKey(),t.desc)}
+  ]`,this.lblDesc.text=i??nB.getText(t.getDescKey(),t.desc),this.lblProgress.x=this.lblTitle.x+this.lblTitle.width+8,this.progressText="",this.lblProgress.text=""}
+ setProgress(t){
+ const i=this.isDone?nB.getText("COMMON_319","완료")+"!":t?`${
+ t[0]}
+ /${
+ t[1]}
+ `:"";
+ i!==this.progressText&&(this.progressText=i,this.lblProgress.text=i,this.lblProgress.textColor=this.isDone?8257386:16765786)}
- 1==t?(this.bg.tint=16777215,this.icon.tint=16777215,this.gem.tint=16777215,this.lblGem.textColor=IL.COLOR_DEEP_SKYBLUE):(this.bg.tint=10066329,this.icon.tint=10066329,this.gem.tint=10066329,this.lblGem.textColor=10066329)}
+ this.isDone=t,zk.killTweensOf(this.gem.scale),this.gem.scale.set(1),t&&zk.to(this.gem.scale,{
+ x:1.18,y:1.18,duration:.45,ease:"sine.inOut",yoyo:!0,repeat:-1}
+ ),this.progressText="\0",this.setProgress(null),1==t?(this.bg.tint=16777215,this.icon.tint=16777215,this.gem.tint=16777215,this.lblGem.textColor=OL.COLOR_DEEP_SKYBLUE):(this.bg.tint=10066329,this.icon.tint=10066329,this.gem.tint=10066329,this.lblGem.textColor=10066329)}
BattleController 6 hunks, 15 statements
- this.isFirstWave=!0,this.initRandom(),g0.reset(),this.map.load($B(qD.wave)),QB.getInstance().updateSeason(this.map.getSeason(),!0),_U.getInstance().setTimeOfDay(qD.wave,!0),this.reviveGoldBuff=Math.max(1,Math.min(3,1+.2*qD.numRevive)),this.player=await H3.getInstance().getUnit(Cx.getInstance().castleVO.className),this.player.battleController=this,this.player.id=0,this.player.numShot=1,Cx.getInstance().castleVO.extraLevel=Ux.getCitadelOwnershipTotalWithAwakening(GR.CastleLevelUp),this.player.setData(Cx.getInstance().castleVO),this.player.numBlock=0;
+ this.isFirstWave=!0,this.initRandom(),y0.reset(),this.map.load(RB(XD.wave),PB(XD.wave)),sU.getInstance().updateSeason(this.map.getSeason(),!0),IU.getInstance().setTimeOfDay(XD.wave,!0),this.reviveGoldBuff=Math.max(1,Math.min(3,1+.2*XD.numRevive)),this.player=await X3.getInstance().getUnit(Cx.getInstance().castleVO.className),this.player.battleController=this,this.player.id=0,this.player.numShot=1,Cx.getInstance().castleVO.extraLevel=Fx.getCitadelOwnershipTotalWithAwakening(GR.CastleLevelUp),this.player.setData(Cx.getInstance().castleVO),this.player.numBlock=0;
+ markDialogueWaveShown(t){
+ this.shownDialogueWaves.add(t)}
- this.map.load($B(qD.wave)),QB.getInstance().updateSeason(this.map.getSeason(),!0),this.player=await H3.getInstance().getUnit(Cx.getInstance().castleVO.className),this.player.battleController=this,this.player.id=0,this.player.numShot=1,Cx.getInstance().castleVO.extraLevel=Ux.getCitadelOwnershipTotalWithAwakening(GR.CastleLevelUp),this.player.setData(Cx.getInstance().castleVO),this.player.numBlock=0,this.player.orgMaxHp=this.player.maxHp=this.player.baseMaxHp,this.player.hp=this.player.maxHp,this.player.x=this.player.xDefault=320,this.player.y=this.player.yDefault=320,this.player.initDelay=5,this.player.hasTextEffect=!1,this.friendList.push(this.player),this.player.enemyList=this.enemyList,this.player.allyList=this.friendList,BB.getInstance().addChild(this.player),Yci.getInstance().updateDay(0);
+ this.map.load(RB(XD.wave),PB(XD.wave)),sU.getInstance().updateSeason(this.map.getSeason(),!0),this.player=await X3.getInstance().getUnit(Cx.getInstance().castleVO.className),this.player.battleController=this,this.player.id=0,this.player.numShot=1,Cx.getInstance().castleVO.extraLevel=Fx.getCitadelOwnershipTotalWithAwakening(GR.CastleLevelUp),this.player.setData(Cx.getInstance().castleVO),this.player.numBlock=0,this.player.orgMaxHp=this.player.maxHp=this.player.baseMaxHp,this.player.hp=this.player.maxHp,this.player.x=this.player.xDefault=320,this.player.y=this.player.yDefault=320,this.player.initDelay=5,this.player.hasTextEffect=!1,this.friendList.push(this.player),this.player.enemyList=this.enemyList,this.player.allyList=this.friendList,VB.getInstance().addChild(this.player),xli.getInstance().updateDay(0);
- if(0==qD.numRevive&&Goi.getInstance().startTutorial(),qD.wave>=500)this.enemyHpRatio=1,this.enemyAtkRatio=1,this.enemyMoveSpdRatio=1;
+ if(0==XD.numRevive?_ai.getInstance().startTutorial():1==XD.numRevive&&XD.wave>=10&&_ai.getInstance().showReviveAnytimeHint(),XD.wave>=500)this.enemyHpRatio=1,this.enemyAtkRatio=1,this.enemyMoveSpdRatio=1;
- for(const i of this.skippedWaves)this.shownDialogueWaves.has(i)||(t.push(...LKt.getInstance().getByWave(i)),this.shownDialogueWaves.add(i));
- this.shownDialogueWaves.has(qD.wave)||(t.push(...LKt.getInstance().getByWave(qD.wave)),this.shownDialogueWaves.add(qD.wave)),t.length>0&&Loi.getInstance().showDialogues(t)}
+ for(const i of this.skippedWaves)this.shownDialogueWaves.has(i)||(t.push(...ZKt.getInstance().getByWave(i)),this.shownDialogueWaves.add(i));
+ this.shownDialogueWaves.has(XD.wave)||(t.push(...ZKt.getInstance().getByWave(XD.wave)),this.shownDialogueWaves.add(XD.wave)),t.length>0&&eai.getInstance().showDialogues(t)}
- const s=$B(qD.wave);
- this.map.applySeason(s),QB.getInstance().updateSeason(this.map.getSeason());
+ const s=RB(XD.wave),e=PB(XD.wave);
+ XD.wave>=9950&&tui.preloadDeadLand().catch(t=>{
+ }
+ ),e!==this.map.getRealm()?IU.getInstance().playRealmTransition(async()=>{
+ await tui.preloadDeadLand().catch(()=>{
+ }
+ ),this.map.applySeason(s,!0,e),IU.getInstance().setTimeOfDay(XD.wave,!0),sU.getInstance().updateSeason(this.map.getSeason(),!0)}
+ ):(this.map.applySeason(s),sU.getInstance().updateSeason(this.map.getSeason()));
MiniAscentFlow 1 hunks, 15 statements
+ ,o.onDevClear=async()=>{
+ var t;
+ if(!this.busy&&a&&(null==(t=n.run)?void 0:t.runId)===a){
+ this.busy=!0,this.stopAutoBattle();
+ try{
+ const t=await n.devClearChapter();
+ AH.getInstance().showMessage(`[DEV] ${
+ t.hard?"하드 ":""}
+ 챕터 ${
+ t.chapter}
+  클리어`),await this.backToLobby()}
+ finally{
+ this.busy=!1}
+ }
+ }
ShopDataManager 3 hunks, 12 statements
+ static miniAscentEnergyReward(t){
+ var i;
+ return null==(i=t.rewards)?void 0:i.find(t=>"instant"===t.type&&"miniAscentEnergy"===t.subType)}
- getRewardMessage(t){
+ getRewardMessage(i,s){
- return t.includes("buff:ads")&&i.push(sB.getText("GAME_348","광고 제거 상품이 적용되었습니다.")),t.includes("buff:speed")&&i.push(sB.getText("GAME_349","2배속 상품이 적용되었습니다.")),t.includes("buff:assistant")&&i.push(sB.getText("GAME_1242","전문비서가 고용되었습니다.")),t.includes("pass")&&i.push(sB.getText("GAME_350","WAVE 패스가 활성화되었습니다.")),t.includes("mail")&&i.push(sB.getText("GAME_351","상품이 메일로 전송되었습니다.")),0==i.length&&i.push(sB.getText("GAME_347","상품이 지급되었습니다.")),i.join("\n")}
+ if(i.includes("buff:ads")&&e.push(nB.getText("GAME_348","광고 제거 상품이 적용되었습니다.")),i.includes("buff:speed")&&e.push(nB.getText("GAME_349","2배속 상품이 적용되었습니다.")),i.includes("buff:assistant")&&e.push(nB.getText("GAME_1242","전문비서가 고용되었습니다.")),i.includes("pass")&&e.push(nB.getText("GAME_350","WAVE 패스가 활성화되었습니다.")),i.includes("instant:miniAscentEnergy")){
+ const i=void 0!==s?this.getByProductId(s):void 0,n=i?t.miniAscentEnergyReward(i):void 0;
+ e.push(n?nB.getText("GAME_1886","군단 도전 에너지가 바로 충전되었습니다. (+{
+ 0}
+ )").split("{
+ 0}
+ ").join(String(n.amount)):nB.getText("GAME_347","상품이 지급되었습니다."))}
+ return i.includes("mail")&&e.push(nB.getText("GAME_351","상품이 메일로 전송되었습니다.")),0==e.length&&e.push(nB.getText("GAME_347","상품이 지급되었습니다.")),e.join("\n")}
MiniAscentRelicsPage 11 hunks, 12 statements
- armyStartLevel:"RELIC_ARMY_START_LEVEL",armyAttackSpeed:"RELIC_ARMY_ATTACK_SPEED",armyMoveSpeed:"RELIC_ARMY_MOVE_SPEED",life:"RELIC_LIFE",soldierLevel:"RELIC_SOLDIER_LEVEL",heroLevel:"RELIC_HERO_LEVEL",startGold:"RELIC_START_GOLD",clearGold:"RELIC_CLEAR_GOLD",sealBonus:"RELIC_SEAL_BONUS",soldierCount:"RELIC_SOLDIER_COUNT",levelGain:"RELIC_LEVEL_GAIN",fifthLegion:"RELIC_FIFTH_LEGION",soldierChange:"RELIC_SOLDIER_CHANGE"}
+ armyStartLevel:"RELIC_ARMY_START_LEVEL",armyAttackSpeed:"RELIC_ARMY_ATTACK_SPEED",armyMoveSpeed:"RELIC_ARMY_MOVE_SPEED",life:"RELIC_LIFE",soldierLevel:"RELIC_SOLDIER_LEVEL",heroLevel:"RELIC_HERO_LEVEL",startGold:"RELIC_START_GOLD",clearGold:"RELIC_CLEAR_GOLD",sealBonus:"RELIC_SEAL_BONUS",soldierCount:"RELIC_SOLDIER_COUNT",levelGain:"RELIC_LEVEL_GAIN",fifthLegion:"RELIC_FIFTH_LEGION",soldierChange:"RELIC_SOLDIER_CHANGE",soldierCap:"CRYSTAL_CAPACITY"}
- ...IL.DEFAULT_FONT_OPTION_16,fontSize:e,lineHeight:e+5}
+ ...OL.DEFAULT_FONT_OPTION_16,fontSize:e,lineHeight:e+5}
- soldierLevel:0,soldierCount:1,heroLevel:2,armyStartLevel:3,armyAttackSpeed:4,armyMoveSpeed:5}
- ,h=[...s.items].sort((t,i)=>(n[t.effect]??6)-(n[i.effect]??6)||(t.corp??0)-(i.corp??0)),r=Math.ceil(h.length/5),o=e?188:204,a=this.height-182,c=Math.max(24,Math.floor(Math.min(96,(this.width-56-72)/5,(a-o-18*(r-1))/Math.max(1,r)))),l=r*c+18*Math.max(0,r-1),u=o+Math.max(0,(a-o-l)/2);
+ soldierLevel:0,soldierCount:1,soldierCap:2,heroLevel:3,armyStartLevel:4,armyAttackSpeed:5,armyMoveSpeed:6}
+ ,h=[...s.items].sort((t,i)=>(n[t.effect]??7)-(n[i.effect]??7)||(t.corp??0)-(i.corp??0)),r=Math.ceil(h.length/5),o=e?188:204,a=this.height-182,c=Math.max(24,Math.floor(Math.min(96,(this.width-56-72)/5,(a-o-18*(r-1))/Math.max(1,r)))),l=r*c+18*Math.max(0,r-1),u=o+Math.max(0,(a-o-l)/2);
- ...IL.DEFAULT_FONT_OPTION_16,fontSize:18}
+ ...OL.DEFAULT_FONT_OPTION_16,fontSize:18}
- ...IL.DEFAULT_FONT_OPTION_16,fontSize:20,lineHeight:22,fontWeight:"900",stroke:{
+ ...OL.DEFAULT_FONT_OPTION_16,fontSize:20,lineHeight:22,fontWeight:"900",stroke:{
- ...IL.DEFAULT_FONT_OPTION_16,fontSize:16,lineHeight:19,fontWeight:"900",stroke:{
+ ...OL.DEFAULT_FONT_OPTION_16,fontSize:16,lineHeight:19,fontWeight:"900",stroke:{
- ...IL.DEFAULT_FONT_OPTION_16,fontSize:17,lineHeight:20,fontWeight:"900",stroke:{
+ ...OL.DEFAULT_FONT_OPTION_16,fontSize:17,lineHeight:20,fontWeight:"900",stroke:{
- ...IL.DEFAULT_FONT_OPTION_16,fontSize:s,lineHeight:s+5}
+ ...OL.DEFAULT_FONT_OPTION_16,fontSize:s,lineHeight:s+5}
- ...IL.DEFAULT_FONT_OPTION_16,fontSize:23}
+ ...OL.DEFAULT_FONT_OPTION_16,fontSize:23}
- const s=["sealBonus","armyAttackSpeed","armyMoveSpeed"].includes(t.effect)?"%":"";
+ const s=["sealBonus","armyAttackSpeed","armyMoveSpeed"].includes(t.effect)?"%":"",e=t.stepChangeLevel??0,n=e<=0||i<e?i*t.step:(e-1)*t.step+(i-e+1)*(t.stepAfter??t.step);
- i*t.step}
+ Number.isInteger(n)?n:Math.ceil(n-1e-9)}
MenuState 2 hunks, 10 statements
+ }
+ ;
+ qt(czt,"MenuState"),Xt(czt,"currentIndex",0);
+ let lzt=czt;
+ const uzt=class{
- const DYt=class{
- }
- ;
- qt(DYt,"MenuState"),Xt(DYt,"currentIndex",0);
- let GYt=DYt;
GameLayer 3 hunks, 9 statements
- ,this.addChild(kB.getInstance()),this.addChild(DB.getInstance()),this.nightOverlay=(new Ff).rect(0,0,640,640).fill(858677),this.nightOverlay.alpha=0,this.nightOverlay.blendMode="multiply",this.nightOverlay.eventMode="none",this.addChild(this.nightOverlay),this.addChild(xB.getInstance()),this.addChild(BB.getInstance()),this.addChild(YB.getInstance()),this.addChild(NB.getInstance()),this.addChild(KB.getInstance()),this.addChild(mU.getInstance()),this.addChild(FB.getInstance())}
+ ,this.addChild(DB.getInstance()),this.addChild($B.getInstance()),this.addChild(this.dayNight.overlayRoot),this.addChild(BB.getInstance()),this.addChild(VB.getInstance()),this.addChild(QB.getInstance()),this.addChild(this.dayNight.airRoot),this.addChild(FB.getInstance()),this.addChild(XB.getInstance()),this.addChild(bU.getInstance()),this.addChild(KB.getInstance()),this.addChild(this.realmTransition)}
- zk.killTweensOf(this.nightOverlay),this.nightOverlay.alpha=0,QB.getInstance().updateTimeOfDay(!1)}
+ this.dayNight.apply(MU.DAY,xB.FOREST,!0),sU.getInstance().setRealm(xB.FOREST),sU.getInstance().updateTimeOfDay(!1)}
- const s=(t-1)%10;
- let e;
- this.nightOverlay.clear(),this.nightOverlay.rect(0,0,640,640),this.nightOverlay.fill(858677),this.nightOverlay.blendMode="multiply",e=s<5?0:.65;
- const n=e>0;
- QB.getInstance().updateTimeOfDay(n),zk.killTweensOf(this.nightOverlay),i?this.nightOverlay.alpha=e:zk.to(this.nightOverlay,{
- alpha:e,duration:2,ease:"power2.inOut"}
- )}
+ const s=yU.phaseOf(t),e=PB(t);
+ sU.getInstance().setRealm(e),sU.getInstance().updateTimeOfDay(s===MU.NIGHT,i),this.dayNight.apply(s,e,i)}
+ playRealmTransition(t){
+ this.realmTransition.play(t)}
WaveInfoLayer 2 hunks, 8 statements
- var HB=(t=>(t[t.SPRING=1]="SPRING",t[t.SUMMER=2]="SUMMER",t[t.AUTUMN=3]="AUTUMN",t[t.WINTER=4]="WINTER",t))(HB||{
- }
- );
- function $B(t){
- const i=(t-1)%200;
- return i<50?2:i<100?3:i<150?4:1}
- qt($B,"getSeasonForWave");
- const i=(t-1)%50==0;
+ const i=(t-1)%50==0&&PB(t)===xB.FOREST;
MiniAscentCardPickPopup 8 hunks, 8 statements
- ...IL.DEFAULT_FONT_OPTION_16,fontSize:32,lineHeight:38}
+ ...OL.DEFAULT_FONT_OPTION_16,fontSize:32,lineHeight:38}
- ...IL.DEFAULT_FONT_OPTION_15,fontSize:12,lineHeight:16}
+ ...OL.DEFAULT_FONT_OPTION_15,fontSize:12,lineHeight:16}
- ...IL.DEFAULT_FONT_OPTION_16,fontSize:18,lineHeight:24}
+ ...OL.DEFAULT_FONT_OPTION_16,fontSize:18,lineHeight:24}
- ...IL.DEFAULT_FONT_OPTION_16,fontSize:28,lineHeight:34}
+ ...OL.DEFAULT_FONT_OPTION_16,fontSize:28,lineHeight:34}
- ...IL.DEFAULT_FONT_OPTION_15,fontSize:13,lineHeight:18}
+ ...OL.DEFAULT_FONT_OPTION_15,fontSize:13,lineHeight:18}
- ...IL.DEFAULT_FONT_OPTION_15,fontSize:14}
+ ...OL.DEFAULT_FONT_OPTION_15,fontSize:14}
- ...IL.DEFAULT_FONT_OPTION_16,fontSize:20,lineHeight:22,fontWeight:"900",stroke:{
+ ...OL.DEFAULT_FONT_OPTION_16,fontSize:20,lineHeight:22,fontWeight:"900",stroke:{
- ...IL.DEFAULT_FONT_OPTION_15,fontSize:12,lineHeight:16}
+ ...OL.DEFAULT_FONT_OPTION_15,fontSize:12,lineHeight:16}
URLManager 1 hunks, 7 statements
- /minigame/ascent-pve/claimChapterReward`,RELICS:`${
+ /minigame/ascent-pve/claimChapterReward`,SWEEP:`${
+ t.baseURL}
+ /minigame/ascent-pve/sweep`,DEV_CLEAR_CHAPTER:`${
+ t.baseURL}
+ /minigame/ascent-pve/devClearChapter`,DEV_GRANT_ENERGY:`${
+ t.baseURL}
+ /minigame/ascent-pve/devGrantEnergy`,RELICS:`${
GameOverPopup 2 hunks, 7 statements
+ get tutorialTargets(){
+ return{
+ summary:[this.lblMessage1,this.lblMessage2,this.lblMedalReward],rebirth:this.btnRebirth,medal:this.lblMedalReward}
+ }
- Sci.getInstance().showResult(a,o),c&&c(),1===h?this.onRebirth=null:this.onRebirthBonus=null,ZKt.getInstance().getStatus(),this.notifyResearchLabIfNeeded(e),qYt.getInstance().checkEnable(),cqt.getInstance().onConditionChanged()}
+ ali.getInstance().showResult(a,o,0===i?()=>{
+ _ai.getInstance().startMedalGuide()}
+ :null),c&&c(),1===h?this.onRebirth=null:this.onRebirthBonus=null,mzt.getInstance().getStatus(),this.notifyResearchLabIfNeeded(e),pqt.getInstance().checkEnable(),Iqt.getInstance().onConditionChanged()}
GoldLayer 1 hunks, 7 statements
- super()}
- }
- ;
- qt(hli,"GoldLayer");
- let rli=hli;
- const oli=class extends He{
- constructor(){
OnboardingGate 1 hunks, 7 statements
+ const vui=class t{
+ static get showsBootPopups(){
+ return XD.numRevive>=1&&XD.maxWave>=t.BOOT_POPUP_MIN_MAX_WAVE}
+ }
+ ;
+ qt(vui,"OnboardingGate"),Xt(vui,"BOOT_POPUP_MIN_MAX_WAVE",50);
+ let _ui=vui;
SafeAreaTopContent 4 hunks, 6 statements
- super(),Xt(this,"bg"),Xt(this,"_width",640),Xt(this,"_height",100),Xt(this,"seasonDayColor",[2849323,1731354,8022824,5933738]),Xt(this,"seasonNightColor",[731664,533516,2103304,1323088]),Xt(this,"currentSeason",HB.SPRING),Xt(this,"isNight",!1),Xt(this,"_rgb",{
+ super(),Xt(this,"bg"),Xt(this,"_width",640),Xt(this,"_height",100),Xt(this,"seasonDayColor",[2849323,1731354,8022824,5933738]),Xt(this,"seasonNightColor",[731664,533516,2103304,1323088]),Xt(this,"currentSeason",kB.SPRING),Xt(this,"isNight",!1),Xt(this,"realm",xB.FOREST),Xt(this,"_rgb",{
+ setRealm(t){
+ this.realm=t}
- const i=(this.isNight?this.seasonNightColor:this.seasonDayColor)[this.currentSeason-1];
- t?(zk.killTweensOf(this._rgb),this.bg.tint=i,this._rgb.r=i>>16&255,this._rgb.g=i>>8&255,this._rgb.b=255&i):this.tweenToColor(i)}
+ let s;
+ s=this.realm===xB.DEAD_LAND?this.isNight?t.DEAD_LAND_NIGHT_COLOR:t.DEAD_LAND_DAY_COLOR:(this.isNight?this.seasonNightColor:this.seasonDayColor)[this.currentSeason-1],i?(zk.killTweensOf(this._rgb),this.bg.tint=s,this._rgb.r=s>>16&255,this._rgb.g=s>>8&255,this._rgb.b=255&s):this.tweenToColor(s)}
- qt(JB,"SafeAreaTopContent"),Xt(JB,"instance"),Xt(JB,"DUNGEON_COLORS",{
+ qt(iU,"SafeAreaTopContent"),Xt(iU,"instance"),Xt(iU,"DEAD_LAND_DAY_COLOR",3023936),Xt(iU,"DEAD_LAND_NIGHT_COLOR",1182748),Xt(iU,"DUNGEON_COLORS",{
GuildWarBattlePopupV3 6 hunks, 6 statements
- ...IL.DEFAULT_OUTLINE_FONT_OPTION_16,fontSize:13}
+ ...OL.DEFAULT_OUTLINE_FONT_OPTION_16,fontSize:13}
- ...IL.DEFAULT_OUTLINE_FONT_OPTION_16,fontSize:13}
+ ...OL.DEFAULT_OUTLINE_FONT_OPTION_16,fontSize:13}
- ...IL.DEFAULT_OUTLINE_FONT_OPTION_16,fontSize:13}
+ ...OL.DEFAULT_OUTLINE_FONT_OPTION_16,fontSize:13}
- ...IL.DEFAULT_OUTLINE_FONT_OPTION_16,fontSize:9}
+ ...OL.DEFAULT_OUTLINE_FONT_OPTION_16,fontSize:9}
- ...IL.DEFAULT_OUTLINE_FONT_OPTION_16,fontSize:11}
+ ...OL.DEFAULT_OUTLINE_FONT_OPTION_16,fontSize:11}
- ...IL.DEFAULT_OUTLINE_FONT_OPTION_16,fontSize:9}
+ ...OL.DEFAULT_OUTLINE_FONT_OPTION_16,fontSize:9}
PetDataManager 4 hunks, 5 statements
+ hasRaidResistPieceBonus(t){
+ return 2006===t}
- return this.list.filter(s=>s.grade>=5&&s.piece>=t&&s.kindNum!==i&&!this.isRaidResistPet(s.kindNum)).sort((t,i)=>i.piece-t.piece)}
+ return this.list.filter(s=>s.grade>=5&&s.piece>=t&&s.kindNum!==i&&!this.hasRaidResistPieceBonus(s.kindNum)).sort((t,i)=>i.piece-t.piece)}
- (null==(h=this.skillBookMap.get(u.skill1))?void 0:h.id)===a&&(c+=this.getSkill1Value(i.kindNum)*d),(null==(r=this.skillBookMap.get(u.skill2))?void 0:r.id)===a&&(c+=this.getSkill2Value(i.kindNum)*d),(null==(o=this.skillBookMap.get(u.masterSkill))?void 0:o.id)===a&&(c+=this.getSkill3Value(i.kindNum)*d);
+ if((null==(h=this.skillBookMap.get(u.skill1))?void 0:h.id)===a&&(c+=this.getSkill1Value(i.kindNum)*d),(null==(r=this.skillBookMap.get(u.skill2))?void 0:r.id)===a&&(c+=this.getSkill2Value(i.kindNum)*d),(null==(o=this.skillBookMap.get(u.masterSkill))?void 0:o.id)===a&&(c+=this.getSkill3Value(i.kindNum)*d),this.hasRaidResistPieceBonus(i.kindNum)){
+ }
CastleBuffSource 1 hunks, 5 statements
- const kx=class t{
+ const kx=Object.freeze(Object.defineProperty({
+ __proto__:null,CastleDataManager:Cx,CastleVO:Ox}
+ ,Symbol.toStringTag,{
+ value:"Module"}
+ )),Rx=class t{
SoundManager 1 hunks, 5 statements
+ const rG=Object.freeze(Object.defineProperty({
+ __proto__:null,PopupLayer:hG}
+ ,Symbol.toStringTag,{
+ value:"Module"}
+ ));
MissionGuideController 3 hunks, 5 statements
- zYt.getInstance().visible=!0,zYt.getInstance().setData(i),zYt.getInstance().activated=t.rewardPending,this.currentSteps=t.getCurrentSteps(),this.cachedCondition=lqt(i.condition),this.startFrameCheck(),this.updatePointing()}
+ this.currentSteps=t.getCurrentSteps(),this.cachedCondition=Rqt(i.condition),uqt.getInstance().visible=!0,uqt.getInstance().setData(i,Oqt(i,this.cachedCondition)),uqt.getInstance().activated=t.rewardPending,uqt.getInstance().setProgress(this.cachedCondition?kqt(this.cachedCondition):null),this.startFrameCheck(),this.updatePointing()}
- if(!i.rewardPending)return this.cachedCondition&&uqt(this.cachedCondition)?(i.rewardPending=!0,zYt.getInstance().activated=!0,void this.updatePointing()):void this.updatePointing();
+ if(i.rewardPending)this.updatePointing();
+ else{
+ if(this.cachedCondition&&uqt.getInstance().setProgress(kqt(this.cachedCondition)),this.cachedCondition&&xqt(this.cachedCondition))return i.rewardPending=!0,uqt.getInstance().activated=!0,void this.updatePointing();
+ }
TowerHeroSelectVO 1 hunks, 5 statements
- const Fqt={
+ const oXt=Object.freeze(Object.defineProperty({
+ __proto__:null,HeroMedalEnhanceManager:rXt}
+ ,Symbol.toStringTag,{
+ value:"Module"}
+ )),aXt={
HeartInfo 1 hunks, 5 statements
- const Zoi=class t extends He{
+ const Lai=Object.freeze(Object.defineProperty({
+ __proto__:null,CastleDetailPopup:Nai}
+ ,Symbol.toStringTag,{
+ value:"Module"}
+ )),Dai=class t extends He{
CastleSubView 1 hunks, 5 statements
+ get enhanceShortcut(){
+ for(const t of this.getListItems()){
+ const i=t.enhanceShortcut;
+ if(i)return i}
+ return null}
CastleView 1 hunks, 5 statements
- const Uai=class t extends wYt{
+ const Mci=Object.freeze(Object.defineProperty({
+ __proto__:null,CastleSubView:Eci}
+ ,Symbol.toStringTag,{
+ value:"Module"}
+ )),Aci=class t extends GYt{
QuestDetailPopup 1 hunks, 5 statements
- const jai=class t extends DG{
+ const Oci=Object.freeze(Object.defineProperty({
+ __proto__:null,QuestSubView:Ici}
+ ,Symbol.toStringTag,{
+ value:"Module"}
+ )),kci=class t extends BG{
GameSpeedPopup 1 hunks, 5 statements
- const Dci=class t extends DG{
+ const _li=Object.freeze(Object.defineProperty({
+ __proto__:null,GameOverPopup:mli}
+ ,Symbol.toStringTag,{
+ value:"Module"}
+ )),bli=class t extends BG{
MiniAscentAssets 5 hunks, 5 statements
- soldierLevel:["relic_layer_soldiers","relic_layer_buff_level_up"],soldierCount:["relic_layer_soldiers","relic_layer_buff_count_up"],heroLevel:["relic_layer_hero","relic_layer_buff_level_up"],armyStartLevel:["relic_layer_all_legions","relic_layer_buff_level_up"],armyAttackSpeed:["relic_layer_all_legions","relic_layer_buff_attack_speed"],armyMoveSpeed:["relic_layer_all_legions","relic_layer_buff_move_speed"]}
+ soldierLevel:["relic_layer_soldiers","relic_layer_buff_level_up"],soldierCount:["relic_layer_soldiers","relic_layer_buff_count_up"],heroLevel:["relic_layer_hero","relic_layer_buff_level_up"],armyStartLevel:["relic_layer_all_legions","relic_layer_buff_level_up"],armyAttackSpeed:["relic_layer_all_legions","relic_layer_buff_attack_speed"],armyMoveSpeed:["relic_layer_all_legions","relic_layer_buff_move_speed"],soldierCap:["relic_layer_soldiers","relic_layer_buff_capacity"]}
- return[cvi,...avi[t]??["ui_challenge_seal"],lvi]}
+ return[Uvi,...Bvi[t]??["ui_challenge_seal"],Fvi]}
- ,vvi=[pvi,"crystal_effect_plate",...gvi,...mvi,...Object.values(wvi)],_vi=class{
+ ,Yvi=[Vvi,"crystal_effect_plate",...jvi,...Kvi,...Object.values(zvi)],qvi=class{
- &atlas=20260926-chapter-art`,i=await fetch(tS.getAssetPath(`UI_MINI.json${
+ &atlas=20260928-relic-capacity`,i=await fetch(tS.getAssetPath(`UI_MINI.json${
- for(const h of["background_map","chapter_journey","encounter_battle","encounter_elite","encounter_boss","encounter_event","encounter_shop","encounter_gambling","ui_arrow_up","ui_button_lobby_blank","ui_close","ui_coin","ui_energy","ui_challenge_seal","ui_divider","UI_VS","UI_Check1","UI_Check2",...uvi,...vvi])if(!n.textures[h])throw new Error(`UI_MINI: missing ${
+ for(const h of["background_map","chapter_journey","encounter_battle","encounter_elite","encounter_boss","encounter_event","encounter_shop","encounter_gambling","ui_arrow_up","ui_button_lobby_blank","ui_close","ui_coin","ui_energy","ui_challenge_seal","ui_divider","UI_VS","UI_Check1","UI_Check2",...Hvi,...Yvi])if(!n.textures[h])throw new Error(`UI_MINI: missing ${
LocalDataManager 1 hunks, 4 statements
+ static async getReviveAnytimeHinted(){
+ return await this.getData(this.getKey("rAh"))}
+ static async saveReviveAnytimeHinted(t){
+ await this.saveData(this.getKey("rAh"),t)}
InAppPurchaseManager 3 hunks, 4 statements
- const n=t6.getInstance().getStoreProductIdByProductId(this._productId);
- await SL.getInstance().shop.paymentAttempt(this._productId,e,n);
+ const n=c6.getInstance().getStoreProductIdByProductId(this._productId),h=await TL.getInstance().shop.paymentAttempt(this._productId,e,n);
+ if(c6.miniAscentEnergyReward(i)&&!0!==(null==h?void 0:h.success))return this.onPaymentCancel(),void YG.getInstance().showError(h);
- const l=t6.getInstance().getRewardMessage(o.rewardTypes);
+ const u=c6.getInstance().getRewardMessage(a.rewardTypes,c);
- const o=t6.getInstance().getRewardMessage(null==(s=i.body)?void 0:s.rewardTypes);
+ const o=c6.getInstance().getRewardMessage(null==(s=i.body)?void 0:s.rewardTypes,n);
ClickHand 2 hunks, 4 statements
- const YYt=class t extends He{
+ const dqt={
+ active:!1}
+ ,fqt=class t extends He{
- t.textures&&(this.frameCount++,this.frame+=.6,this.frame>=t.textures.length&&(this.frame=0),this.sp.texture=t.textures[Math.floor(this.frame)])}
+ t.textures&&(this.sp.visible=!dqt.active,this.frameCount++,this.frame+=.6,this.frame>=t.textures.length&&(this.frame=0),this.sp.texture=t.textures[Math.floor(this.frame)])}
CastleDetailPopup 1 hunks, 4 statements
+ get tutorialTargets(){
+ return{
+ enhance:this.btnEnhance,castle:this.castleIcon}
+ }
QuestItemRenderer 1 hunks, 4 statements
+ get tutorialTargets(){
+ return{
+ row:this.bg,progress:this.progress,button:this.btnOpen}
+ }
Archery2GameScene 4 hunks, 4 statements
- ...IL.DEFAULT_OUTLINE_FONT_OPTION_16,fill:16777215}
+ ...OL.DEFAULT_OUTLINE_FONT_OPTION_16,fill:16777215}
- ...IL.DEFAULT_OUTLINE_FONT_OPTION_20,fill:16766720}
+ ...OL.DEFAULT_OUTLINE_FONT_OPTION_20,fill:16766720}
- ...IL.DEFAULT_OUTLINE_FONT_OPTION_16,fill:16737792}
+ ...OL.DEFAULT_OUTLINE_FONT_OPTION_16,fill:16737792}
- ...IL.DEFAULT_OUTLINE_FONT_OPTION_20,fill:16777215}
+ ...OL.DEFAULT_OUTLINE_FONT_OPTION_20,fill:16777215}
MiniAscentResultPopup 4 hunks, 4 statements
- ...IL.DEFAULT_FONT_OPTION_16,fontSize:24,lineHeight:30}
+ ...OL.DEFAULT_FONT_OPTION_16,fontSize:24,lineHeight:30}
- ...IL.DEFAULT_FONT_OPTION_16,fontSize:24,lineHeight:30}
+ ...OL.DEFAULT_FONT_OPTION_16,fontSize:24,lineHeight:30}
- ...IL.DEFAULT_FONT_OPTION_16,fontSize:32,lineHeight:38}
+ ...OL.DEFAULT_FONT_OPTION_16,fontSize:32,lineHeight:38}
- ...IL.DEFAULT_FONT_OPTION_16,fontSize:30,lineHeight:36}
+ ...OL.DEFAULT_FONT_OPTION_16,fontSize:30,lineHeight:36}
Or 3 hunks, 3 statements
- ,zst={
+ ,set={
- Object.defineProperty(zst,"__esModule",{
+ Object.defineProperty(set,"__esModule",{
- ),zst.polyval=zst.ghash=void 0,zst._toGHASHKey=tet;
+ ),set.polyval=set.ghash=void 0,set._toGHASHKey=cet;
SHA256 3 hunks, 3 statements
- ...Hgt,...Wgt,...jgt,...zgt,...Xgt,...rmt,...cmt,...dmt,...wmt}
+ ...Xgt,...Qgt,...tmt,...smt,...hmt,...gmt,...vmt,...Emt,...Tmt}
- ...twt,...swt}
+ ...cwt,...uwt}
- utf8:Pwt,"utf-8":Pwt,hex:Cwt.base16,latin1:Nwt,ascii:Nwt,binary:Nwt,...Cwt}
+ utf8:$wt,"utf-8":$wt,hex:Dwt.base16,latin1:Wwt,ascii:Wwt,binary:Wwt,...Dwt}
SuiProvider 3 hunks, 3 statements
- namespace:yTt.NameSpaceKeyAptos,addresses:s,methods:[...TTt.AptosMethods],extra:h}
+ namespace:PTt.NameSpaceKeyAptos,addresses:s,methods:[...LTt.AptosMethods],extra:h}
- namespace:PTt.NameSpaceKeyTON,addresses:o,methods:[...DTt.TONMethods],extra:a,data:{
+ namespace:$Tt.NameSpaceKeyTON,addresses:o,methods:[...jTt.TONMethods],extra:a,data:{
- namespace:FTt.NameSpaceKeySui,addresses:i,methods:[...WTt.SuiMethods],extra:s}
+ namespace:qTt.NameSpaceKeySui,addresses:i,methods:[...QTt.SuiMethods],extra:s}
WalletPopup 3 hunks, 3 statements
- ...IL.ERROR_POPUP_LABEL_OPTION,fontSize:24,fontWeight:"bold"}
+ ...OL.ERROR_POPUP_LABEL_OPTION,fontSize:24,fontWeight:"bold"}
- ...IL.ERROR_POPUP_LABEL_OPTION,fontSize:16}
+ ...OL.ERROR_POPUP_LABEL_OPTION,fontSize:16}
- ...IL.ERROR_POPUP_LABEL_OPTION,fontSize:16}
+ ...OL.ERROR_POPUP_LABEL_OPTION,fontSize:16}
CastleItemRenderer 1 hunks, 3 statements
+ get enhanceShortcut(){
+ const t=this.data;
+ return t&&1==t.kindNum&&this.btnEnhanceShortcut.visible?this.btnEnhanceShortcut:null}
RewardItem 2 hunks, 2 statements
- var n6=(t=>(t.gem="gem",t.redGem="redGem",t.gold="gold",t.medal="medal",t.honorCoin="honorCoin",t.guildPoint="guildPoint",t.guildCoin="guildCoin",t.raidCoin="raidCoin",t.runeTicket="runeTicket",t.hammer="hammer",t.hero="hero",t.instant="instant",t.ticket="ticket",t.trans="trans",t.pet="pet",t.petTicket="petTicket",t.petSelect="petSelect",t.heroGacha="heroGacha",t.heroSelect="heroSelect",t.heroTrans="heroTrans",t.treasure="treasure",t.treasureGacha="treasureGacha",t.treasureTrans="treasureTrans",t.ads="ads",t.speed="speed",t.assistant="assistant",t))(n6||{
+ var f6=(t=>(t.gem="gem",t.redGem="redGem",t.gold="gold",t.medal="medal",t.honorCoin="honorCoin",t.guildPoint="guildPoint",t.guildCoin="guildCoin",t.raidCoin="raidCoin",t.runeTicket="runeTicket",t.hammer="hammer",t.hero="hero",t.instant="instant",t.ticket="ticket",t.trans="trans",t.pet="pet",t.petTicket="petTicket",t.petSelect="petSelect",t.heroGacha="heroGacha",t.heroSelect="heroSelect",t.heroTrans="heroTrans",t.treasure="treasure",t.treasureGacha="treasureGacha",t.treasureTrans="treasureTrans",t.ads="ads",t.speed="speed",t.assistant="assistant",t.dungeonTicket="dungeonTicket",t.miniAscentEnergy="miniAscentEnergy",t))(f6||{
- t==n6.gem?(r="UI_SHOP_GEM",h=.85):t==n6.redGem?(r="UI_SHOP_RED_GEM",h=.83):t==n6.gold?(r="m_gold",h=.7):t==n6.honorCoin?(r="UI_COIN_Big",h=.8):t==n6.hammer?(r="Icon_Hammer",h=1.5):"dungeonTicket"==t?(r="DungeonTick",h=.8):t==n6.hero?(this.heroIcon.setDataWithKindNum(e),this.heroIcon.visible=!0):t==n6.ticket&&n==n6.heroGacha?r="Ticket_HeroGacha":t==n6.ticket&&n==n6.heroSelect?(r="Ticket_HeroSelect",h=.85):t==n6.trans&&n==n6.hero?r=9==this._grade?"Ticket_HeroTrans2":"Ticket_HeroTrans":t==n6.pet?(this.petIcon.setPet(e,1),this.petIcon.visible=!0):t==n6.petTicket||n==n6.petTicket||t==n6.ticket&&n==n6.pet?(r="PetTick",h=.9):t==n6.petSelect||n==n6.petSelect||t==n6.ticket&&n==n6.petSelect?(r="Ticket_PetSelect",h=.9):t==n6.ticket&&n==n6.treasureGacha?(r="Ticket_TreasureGacha",h=.95):t==n6.trans&&n==n6.treasure?r=7===this._grade?"Ticket_TreasureTrans7":"Ticket_TreasureTrans6":t==n6.ads?(r="AdsRemove",h=.7):t==n6.speed?(r="UI_SHOP_SPEED2",h=.8):t==n6.assistant?(r="Package_Secretary",h=.7):t==n6.guildCoin||t==n6.guildPoint?(r="GUILD_COIN",h=1.6):t==n6.raidCoin?(r="RaidCoin_on",h=1.5):t==n6.runeTicket&&(r="RuneTicket",h=1.2),r&&(this.img.scale=h,this.img.texture=eS.getTexture("UI_Ekkorr",r),this.img.visible=!0,this.bg.visible=!0),t==n6.ads||t==n6.speed||t==n6.assistant?this.lblNum.text=`${
+ t==f6.gem?(r="UI_SHOP_GEM",h=.85):t==f6.redGem?(r="UI_SHOP_RED_GEM",h=.83):t==f6.gold?(r="m_gold",h=.7):t==f6.honorCoin?(r="UI_COIN_Big",h=.8):t==f6.hammer?(r="Icon_Hammer",h=1.5):t==f6.dungeonTicket?(r="DungeonTick",h=.8):t==f6.miniAscentEnergy||n==f6.miniAscentEnergy?(r="ui_energy",h=56/30):t==f6.hero?(this.heroIcon.setDataWithKindNum(e),this.heroIcon.visible=!0):t==f6.ticket&&n==f6.heroGacha?r="Ticket_HeroGacha":t==f6.ticket&&n==f6.heroSelect?(r="Ticket_HeroSelect",h=.85):t==f6.trans&&n==f6.hero?r=9==this._grade?"Ticket_HeroTrans2":"Ticket_HeroTrans":t==f6.pet?(this.petIcon.setPet(e,1),this.petIcon.visible=!0):t==f6.petTicket||n==f6.petTicket||t==f6.ticket&&n==f6.pet?(r="PetTick",h=.9):t==f6.petSelect||n==f6.petSelect||t==f6.ticket&&n==f6.petSelect?(r="Ticket_PetSelect",h=.9):t==f6.ticket&&n==f6.treasureGacha?(r="Ticket_TreasureGacha",h=.95):t==f6.trans&&n==f6.treasure?r=7===this._grade?"Ticket_TreasureTrans7":"Ticket_TreasureTrans6":t==f6.ads?(r="AdsRemove",h=.7):t==f6.speed?(r="UI_SHOP_SPEED2",h=.8):t==f6.assistant?(r="Package_Secretary",h=.7):t==f6.guildCoin||t==f6.guildPoint?(r="GUILD_COIN",h=1.6):t==f6.raidCoin?(r="RaidCoin_on",h=1.5):t==f6.runeTicket&&(r="RuneTicket",h=1.2),r&&(this.img.scale=h,this.img.texture=eS.getTexture("UI_Ekkorr",r),this.img.visible=!0,this.bg.visible=!0),t==f6.ads||t==f6.speed||t==f6.assistant?this.lblNum.text=`${
Lr 1 hunks, 2 statements
- let set=iet;
- const eet=class extends set{
+ let det=uet;
+ const fet=class extends det{
Dr 2 hunks, 2 statements
- function het(t){
+ function get(t){
- qt(het,"Dr"),zst.ghash=het((t,i)=>new set(t,i)),zst.polyval=het((t,i)=>new net(t,i)),Object.defineProperty(Kst,"__esModule",{
+ qt(get,"Dr"),set.ghash=get((t,i)=>new det(t,i)),set.polyval=get((t,i)=>new pet(t,i)),Object.defineProperty(iet,"__esModule",{
ShopPayItemRenderer 1 hunks, 2 statements
- gem:0,honorCoin:1,hammer:2,dungeonTicket:3,hero:4,petTicket:5,ticket:6,pet:7,trans:8,runeTicket:9,ads:1e3,speed:1001,assistant:1002}
- ,h=(t.rewards??[]).map((t,i,s)=>"instant"!==t.type||"dungeonTicket"!==t.subType&&"petTicket"!==t.subType?"buff"===t.type&&s.length>1?{
+ miniAscentEnergy:-1,gem:0,honorCoin:1,hammer:2,dungeonTicket:3,hero:4,petTicket:5,ticket:6,pet:7,trans:8,runeTicket:9,ads:1e3,speed:1001,assistant:1002}
+ ,h=(t.rewards??[]).map((t,i,s)=>"instant"!==t.type||"dungeonTicket"!==t.subType&&"petTicket"!==t.subType&&"miniAscentEnergy"!==t.subType?"buff"===t.type&&s.length>1?{
QuestSubView 1 hunks, 2 statements
+ getItemRenderers(){
+ return this.list.getItemList()}
TopMenu 1 hunks, 2 statements
+ get reviveButton(){
+ return this.btnRevive}
GuildBarrackRowItemRenderer 2 hunks, 2 statements
- ...IL.DEFAULT_OUTLINE_FONT_OPTION_16,fontSize:14}
+ ...OL.DEFAULT_OUTLINE_FONT_OPTION_16,fontSize:14}
- ...IL.DEFAULT_OUTLINE_FONT_OPTION_16,fontSize:13}
+ ...OL.DEFAULT_OUTLINE_FONT_OPTION_16,fontSize:13}
GuildWarBattleReadyPopup 2 hunks, 2 statements
- ...IL.DEFAULT_OUTLINE_FONT_OPTION_16,fontSize:13}
+ ...OL.DEFAULT_OUTLINE_FONT_OPTION_16,fontSize:13}
- ...IL.DEFAULT_OUTLINE_FONT_OPTION_16,fontSize:i}
+ ...OL.DEFAULT_OUTLINE_FONT_OPTION_16,fontSize:i}
GuildWarSquadsPopup 2 hunks, 2 statements
- ...IL.DEFAULT_OUTLINE_FONT_OPTION_16,fontSize:14}
+ ...OL.DEFAULT_OUTLINE_FONT_OPTION_16,fontSize:14}
- ...IL.DEFAULT_OUTLINE_FONT_OPTION_16,fontSize:i}
+ ...OL.DEFAULT_OUTLINE_FONT_OPTION_16,fontSize:i}
GuildWarTierAssignPopup 2 hunks, 2 statements
- const i=[...JL.memberList??[]].sort((t,i)=>i.roleLevel!==t.roleLevel?i.roleLevel-t.roleLevel:(i.wave??0)-(t.wave??0));
+ const i=[...QL.memberList??[]].sort((t,i)=>i.roleLevel!==t.roleLevel?i.roleLevel-t.roleLevel:(i.wave??0)-(t.wave??0));
- ...IL.DEFAULT_OUTLINE_FONT_OPTION_16,fontSize:i}
+ ...OL.DEFAULT_OUTLINE_FONT_OPTION_16,fontSize:i}
CapacitorBridge 2 hunks, 2 statements
- l=this.isSubscriptionProduct(h)?await r.getInstance().subscription.confirmApple(n,c.receipt,1):await r.getInstance().shop.confirmApplePayment(n,c.transactionId,c.receipt,h,1),(null==l?void 0:l.success)&&(await mKt.finishTransaction(c.transactionId),"COMPLETED"===(null==(t=null==l?void 0:l.body)?void 0:t.status)&&((null==(s=null==(i=null==l?void 0:l.body)?void 0:i.rewardTypes)?void 0:s.length)??0)>0&&(e=!0,a.getInstance().trackPurchase(n,c.transactionId)))}
+ l=this.isSubscriptionProduct(h)?await r.getInstance().subscription.confirmApple(n,c.receipt,1):await r.getInstance().shop.confirmApplePayment(-1,c.transactionId,c.receipt,h,1),(null==l?void 0:l.success)&&(await SKt.finishTransaction(c.transactionId),"COMPLETED"===(null==(t=null==l?void 0:l.body)?void 0:t.status)&&((null==(s=null==(i=null==l?void 0:l.body)?void 0:i.rewardTypes)?void 0:s.length)??0)>0&&(e=!0,a.getInstance().trackPurchase(n,c.transactionId)))}
- l=this.isSubscriptionProduct(h)?await r.getInstance().subscription.confirmGoogle(n,h,c.purchaseToken,1):await r.getInstance().shop.confirmGooglePayment(n,c.purchaseToken,h,1),(null==l?void 0:l.success)&&"COMPLETED"===(null==(t=null==l?void 0:l.body)?void 0:t.status)&&((null==(s=null==(i=null==l?void 0:l.body)?void 0:i.rewardTypes)?void 0:s.length)??0)>0&&(e=!0,a.getInstance().trackPurchase(n,c.orderId))}
+ l=this.isSubscriptionProduct(h)?await r.getInstance().subscription.confirmGoogle(n,h,c.purchaseToken,1):await r.getInstance().shop.confirmGooglePayment(-1,c.purchaseToken,h,1),(null==l?void 0:l.success)&&"COMPLETED"===(null==(t=null==l?void 0:l.body)?void 0:t.status)&&((null==(s=null==(i=null==l?void 0:l.body)?void 0:i.rewardTypes)?void 0:s.length)??0)>0&&(e=!0,a.getInstance().trackPurchase(n,c.orderId))}
MiniAscentBattleController 2 hunks, 2 statements
- ...IL.DEFAULT_FONT_OPTION_16,fontSize:14,lineHeight:18}
+ ...OL.DEFAULT_FONT_OPTION_16,fontSize:14,lineHeight:18}
- ...IL.DEFAULT_FONT_OPTION_16,fontSize:14,lineHeight:18}
+ ...OL.DEFAULT_FONT_OPTION_16,fontSize:14,lineHeight:18}
MiniAscentCorpsPanel 2 hunks, 2 statements
- ...IL.DEFAULT_FONT_OPTION_16,fontSize:i,lineHeight:i+4}
+ ...OL.DEFAULT_FONT_OPTION_16,fontSize:i,lineHeight:i+4}
- ...IL.DEFAULT_OUTLINE_FONT_OPTION_16,fontSize:16,lineHeight:20}
+ ...OL.DEFAULT_OUTLINE_FONT_OPTION_16,fontSize:16,lineHeight:20}
MiniAscentCorpsPage 2 hunks, 2 statements
- ...IL.DEFAULT_FONT_OPTION_16,fontSize:22,lineHeight:28}
+ ...OL.DEFAULT_FONT_OPTION_16,fontSize:22,lineHeight:28}
- ...IL.DEFAULT_FONT_OPTION_16,fontSize:14,lineHeight:19}
+ ...OL.DEFAULT_FONT_OPTION_16,fontSize:14,lineHeight:19}
MiniAscentChapterRewardItem 2 hunks, 2 statements
- ...IL.DEFAULT_FONT_OPTION_16,fontSize:14}
+ ...OL.DEFAULT_FONT_OPTION_16,fontSize:14}
- ...IL.DEFAULT_FONT_OPTION_16,fontSize:15}
+ ...OL.DEFAULT_FONT_OPTION_16,fontSize:15}
VersionManager 1 hunks, 1 statements
- qt(Jy,"VersionManager"),Xt(Jy,"gameId","ef2"),Xt(Jy,"appVersion","1.14.88");
+ qt(Jy,"VersionManager"),Xt(Jy,"gameId","ef2"),Xt(Jy,"appVersion","1.14.97");
AutoTogglePill 1 hunks, 1 statements
- ...IL.DEFAULT_FONT_OPTION_15,fontSize:t.FONT_SIZE,lineHeight:t.PILL_H}
+ ...OL.DEFAULT_FONT_OPTION_15,fontSize:t.FONT_SIZE,lineHeight:t.PILL_H}
Sr 1 hunks, 1 statements
- ...t,...Pst(i)}
+ ...t,...$st(i)}
Fr 1 hunks, 1 statements
- const ret=R9,oet=zst,aet=k9,cet=16,uet=new Uint8Array(cet);
+ const met=F9,wet=set,vet=U9,_et=16,bet=new Uint8Array(_et);
Zr 1 hunks, 1 statements
- )(),get=pet.map((t,i)=>pet.indexOf(i)),met=qt(t=>t<<24|t>>>8,"Vr"),wet=qt(t=>t<<8|t>>>24,"Gr"),vet=qt(t=>t<<24&4278190080|t<<8&16711680|t>>>8&65280|t>>>24&255,"Yr");
+ )(),yet=Aet.map((t,i)=>Aet.indexOf(i)),Tet=qt(t=>t<<24|t>>>8,"Vr"),Cet=qt(t=>t<<8|t>>>24,"Gr"),Iet=qt(t=>t<<24&4278190080|t<<8&16711680|t>>>8&65280|t>>>24&255,"Yr");
Pi 1 hunks, 1 statements
- const bet=_et(pet,t=>fet(t,3)<<24|t<<16|t<<8|fet(t,2)),Eet=_et(get,t=>fet(t,11)<<24|fet(t,13)<<16|fet(t,9)<<8|fet(t,14)),Met=(()=>{
+ const ket=Oet(Aet,t=>Met(t,3)<<24|t<<16|t<<8|Met(t,2)),Ret=Oet(yet,t=>Met(t,11)<<24|Met(t,13)<<16|Met(t,9)<<8|Met(t,14)),xet=(()=>{
Ma 1 hunks, 1 statements
- ...Krt,coercer:qt((t,i)=>nrt(t,zrt)?Krt.coercer(Yrt(t,i),i):Krt.coercer(t,i),"coercer")}
+ ...iot,coercer:qt((t,i)=>frt(t,sot)?iot.coercer(eot(t,i),i):iot.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,...Ipt(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,...Gpt(381,0),44,0,0,0,0,...i,0,7],h=Math.floor(s.length/e);
SuiStandardProvider 1 hunks, 1 statements
- namespace:UMt.NameSpaceKeyEip155,addresses:i,methods:[...$Mt.Eip55Methods],extra:s}
+ namespace:YMt.NameSpaceKeyEip155,addresses:i,methods:[...JMt.Eip55Methods],extra:s}
AppReadyEvent 1 hunks, 1 statements
- return lyt||(lyt=[...nyt]),lyt}
+ return _yt||(_yt=[...fyt]),_yt}
SolProvider 1 hunks, 1 statements
- namespace:gTt.NameSpaceKeySOL,addresses:i,methods:[..._Tt.SOLANAMethods],extra:s}
+ namespace:yTt.NameSpaceKeySOL,addresses:i,methods:[...ITt.SOLANAMethods],extra:s}
OkxwalletInjectConnector 1 hunks, 1 statements
- namespace:zTt.NameSpaceKeyBtc,addresses:i,methods:[...qTt.BtcMethods],extra:s}
+ namespace:sCt.NameSpaceKeyBtc,addresses:i,methods:[...nCt.BtcMethods],extra:s}
TcRootElement 1 hunks, 1 statements
- return WGt()||(t.push(new hgt.OKXAppConnector),t.push(new hgt.OKXWalletAppConnector)),HGt()&&t.push(new hgt.OkxwalletInjectConnector),t.push(...jGt()),t}
+ return QGt()||(t.push(new pgt.OKXAppConnector),t.push(new pgt.OKXWalletAppConnector)),XGt()&&t.push(new pgt.OkxwalletInjectConnector),t.push(...tBt()),t}
WalletSelectPopup 1 hunks, 1 statements
- ...IL.ERROR_POPUP_LABEL_OPTION,fontSize:18}
+ ...OL.ERROR_POPUP_LABEL_OPTION,fontSize:18}
BaseShopProductPopup 1 hunks, 1 statements
- const h=t6.getInstance().getRewardMessage(null==(t=i.body)?void 0:t.rewardTypes);
+ const h=c6.getInstance().getRewardMessage(null==(t=i.body)?void 0:t.rewardTypes,s);
FavoritePetSubView 1 hunks, 1 statements
- const t=[...$D.getInstance().favoritePets].sort((t,i)=>{
+ const t=[...WD.getInstance().favoritePets].sort((t,i)=>{
GuildBarracksRaceView 1 hunks, 1 statements
- ...IL.DEFAULT_OUTLINE_FONT_OPTION_16,fontSize:i}
+ ...OL.DEFAULT_OUTLINE_FONT_OPTION_16,fontSize:i}
GuildMainSubView 1 hunks, 1 statements
- const i=[...JL.guildList].sort((t,i)=>{
+ const i=[...QL.guildList].sort((t,i)=>{
GuildRaidBattleReadyPopup 1 hunks, 1 statements
- ...IL.DEFAULT_OUTLINE_FONT_OPTION_16,fontSize:13}
+ ...OL.DEFAULT_OUTLINE_FONT_OPTION_16,fontSize:13}
GuildWarHistoryItemRenderer 1 hunks, 1 statements
- ...IL.DEFAULT_OUTLINE_FONT_OPTION_16,fontSize:i}
+ ...OL.DEFAULT_OUTLINE_FONT_OPTION_16,fontSize:i}
GuildWarTournamentRewardGuidePopup 1 hunks, 1 statements
- let e=[...JL.rewardBattleList.sort((t,i)=>i.kindNum-t.kindNum)].concat([...JL.rewardBattleLostList.sort((t,i)=>i.kindNum-t.kindNum)]);
+ let e=[...QL.rewardBattleList.sort((t,i)=>i.kindNum-t.kindNum)].concat([...QL.rewardBattleLostList.sort((t,i)=>i.kindNum-t.kindNum)]);
AttendanceAutoTrigger 1 hunks, 1 statements
+ if(!_ui.showsBootPopups)return void ddi();
GuildWarCombatLogItemRenderer 1 hunks, 1 statements
- ...IL.DEFAULT_FONT_OPTION_15,fontSize:14}
+ ...OL.DEFAULT_FONT_OPTION_15,fontSize:14}
GuildWarMemberStatusItemRenderer 1 hunks, 1 statements
- ...IL.DEFAULT_FONT_OPTION_15,fontSize:14}
+ ...OL.DEFAULT_FONT_OPTION_15,fontSize:14}
GuildWarTargetMarkerItemRenderer 1 hunks, 1 statements
- ...IL.DEFAULT_FONT_OPTION_15,fontSize:14}
+ ...OL.DEFAULT_FONT_OPTION_15,fontSize:14}
MiniAscentBattleProgress 1 hunks, 1 statements
- ...IL.DEFAULT_FONT_OPTION_16,fontSize:20,lineHeight:26,align:"center"}
+ ...OL.DEFAULT_FONT_OPTION_16,fontSize:20,lineHeight:26,align:"center"}
Delay 1 hunks, 1 statements
- ...Uyi(),[i]:s}
+ ...gSi(),[i]:s}
NetworkTimeout 1 hunks, 1 statements
- ...cSi,...i}
+ ...USi,...i}
RecaptchaVerifier 1 hunks, 1 statements
- ...VOi}
+ ...bki}
BrowserPopupRedirectResolver 1 hunks, 1 statements
- ...Yki,width:e.toString(),height:n.toString(),top:h,left:r}
+ ...yRi,width:e.toString(),height:n.toString(),top:h,left:r}
MiniAscentCardsPage 1 hunks, 1 statements
- ...IL.DEFAULT_FONT_OPTION_16,fontSize:s,lineHeight:s+6}
+ ...OL.DEFAULT_FONT_OPTION_16,fontSize:s,lineHeight:s+6}
MiniAscentCrystalRowRenderer 1 hunks, 1 statements
- ...IL.DEFAULT_FONT_OPTION_16,fontSize:20,fontWeight:"900"}
+ ...OL.DEFAULT_FONT_OPTION_16,fontSize:20,fontWeight:"900"}
MiniAscentCrystalsPage 1 hunks, 1 statements
- ...IL.DEFAULT_FONT_OPTION_16,fontSize:n,lineHeight:n+5,fontWeight:"bold"}
+ ...OL.DEFAULT_FONT_OPTION_16,fontSize:n,lineHeight:n+5,fontWeight:"bold"}
MiniAscentTextButton 1 hunks, 1 statements
- ...IL.DEFAULT_FONT_OPTION_16,fontSize:15,lineHeight:20}
+ ...OL.DEFAULT_FONT_OPTION_16,fontSize:15,lineHeight:20}
MiniAscentRoutePopup 1 hunks, 1 statements
- ...IL.DEFAULT_FONT_OPTION_16,fontSize:f,lineHeight:f+2}
+ ...OL.DEFAULT_FONT_OPTION_16,fontSize:f,lineHeight:f+2}
MiniAscentCrystalRewardPopup 1 hunks, 1 statements
- ...IL.DEFAULT_FONT_OPTION_16,fontSize:s,lineHeight:s+5}
+ ...OL.DEFAULT_FONT_OPTION_16,fontSize:s,lineHeight:s+5}