Builds / 1.14.80
Update 1.14.80
Compared with 1.14.72 · published Sat, 26 Sep 2026 01:52:33 GMT · live channel
No summary yet.
Text changes 132
| Key | Text | |
|---|---|---|
| PET_NAME_1014 | + | Dew |
| GAME_1713 | + | Crystals |
| GAME_1714 | + | Legions |
| GAME_1715 | + | Best: Stage ## |
| GAME_1716 | + | Legion Challenge |
| GAME_1717 | + | Could not load minigame images. Please try again. |
| GAME_1718 | + | Chapter ## |
| GAME_1719 | + | Chapter ## · Wave @@ |
| GAME_1720 | + | First-clear stage rewards |
| GAME_1721 | + | Rewards claimed. Check your mailbox for main-game rewards. |
| GAME_1722 | + | Continue |
| GAME_1723 | + | Legions reset after defeat. Gold and seals are kept. |
| GAME_1724 | + | New run |
| GAME_1725 | + | Stage ## |
| GAME_1726 | + | Give up |
| GAME_1727 | + | Give up this battle?\nThis will end the current run. |
| GAME_1728 | + | Chapter ## cleared! |
| GAME_1729 | + | Seals earned +## |
| GAME_1730 | + | Challenge result |
| GAME_1731 | + | Defeated at stage ##. |
| GAME_1732 | + | Stages cleared: ## · Coins earned: @@ |
| GAME_1733 | + | Legion level up |
| GAME_1734 | + | All legions level up |
| GAME_1735 | + | Hero ## |
| GAME_1736 | + | Soldier ## |
| GAME_1737 | + | Auto-select in ##s |
| GAME_1738 | + | All legions |
| GAME_1739 | + | Attack range |
| GAME_1740 | + | All heroes and soldiers |
| GAME_1741 | + | All current soldiers in this legion advance one stage. |
| GAME_1742 | + | Rare |
| GAME_1743 | + | Current card reward |
| GAME_1744 | + | Wave ## reward |
| GAME_1745 | + | Receive to reveal the current cards. Choose one before receiving the next reward. |
| GAME_1746 | + | All card rewards have been chosen. |
| GAME_1747 | + | Choose one card per cleared wave. Effects apply when chosen. Unclaimed cards expire when this run ends. |
| GAME_1748 | + | No cards yet. Win a battle to earn cards. |
| GAME_1749 | + | Choose a card |
| GAME_1750 | + | Apply card |
| GAME_1751 | + | Add soldiers |
| GAME_1752 | + | New legion |
| GAME_1753 | + | ## soldiers |
| GAME_1754 | + | Legion ## |
| GAME_1755 | + | Start a run in the Battle tab to form your legions. |
| GAME_1756 | + | ##◆ |
| GAME_1757 | + | My legions |
| GAME_1758 | + | All legions: hero and soldier level |
| GAME_1759 | + | All legions: attack speed |
| GAME_1760 | + | All legions: movement speed |
| GAME_1761 | + | Summon relic |
| GAME_1762 | + | Summon relic (×10) |
| GAME_1763 | + | Relic summon results |
| GAME_1764 | + | ##: @@ |
| GAME_1765 | + | Copies owned: ## |
| GAME_1766 | + | Copies needed for next level: ## |
| GAME_1767 | + | Loading relics… |
| GAME_1768 | + | Could not load relics |
| GAME_1769 | + | Reload |
| GAME_1770 | + | ## +1 · Lv.@@ |
| GAME_1771 | + | Legion ##: soldier level |
| GAME_1772 | + | Legion ##: hero level |
| GAME_1773 | + | Legion ##: soldiers |
| GAME_1774 | + | Not owned |
| GAME_1775 | + | Unlocked |
| GAME_1776 | + | Tap a relic to view its details. |
| GAME_1777 | + | Increases ## by @@%. |
| GAME_1778 | + | Increases the soldier recruitment cap by ## (up to 40). |
| GAME_1779 | + | While equipped, increases evolution/ascension by ## stage(s). |
| GAME_1780 | + | ## hits have a @@% chance to stun the enemy for %% seconds. |
| GAME_1781 | + | ## hits have a @@% chance to freeze the enemy for %% seconds, stopping movement and attacks. |
| GAME_1782 | + | ## hits have a @@% chance to reduce enemy attack speed by 30% for %% seconds. |
| GAME_1783 | + | ## hits have a @@% chance to poison the enemy for %% seconds, dealing 25% of attack as damage each second. |
| GAME_1784 | + | Random Secondary (##★) |
| GAME_1785 | + | Secondary (##★) |
| GAME_1786 | + | Primary (##★) |
| GAME_1787 | + | Promotion |
| GAME_1788 | + | Soldier capacity |
| GAME_1789 | + | Crystal Summon Tickets · ## |
| GAME_1790 | + | ×5 |
| GAME_1791 | + | Vitality |
| GAME_1792 | + | Reach |
| GAME_1793 | + | Shock |
| GAME_1794 | + | Freeze |
| GAME_1795 | + | Change equipment after the battle ends. |
| GAME_1796 | + | Your collection changed. Review it and try again. |
| GAME_1797 | + | Equipped crystals cannot be merged. |
| GAME_1798 | + | 4 crystals for the same legion and rarity → 1 higher rarity |
| GAME_1799 | + | 4 slots per legion · No duplicate target/primary option |
| GAME_1800 | + | Could not complete the action. Reload and try again. |
| GAME_1801 | + | Could not load crystals. |
| GAME_1802 | + | Loading crystals… |
| GAME_1803 | + | Collection · ## |
| GAME_1804 | + | No crystals for this legion yet.\nDefeat bosses to earn crystals. |
| GAME_1805 | + | ×1 |
| GAME_1806 | + | Slot ## |
| GAME_1807 | + | Replace selected slot |
| GAME_1808 | + | Consume these four crystals?\nReceive one higher-rarity crystal for this legion. |
| GAME_1809 | + | Crystals acquired |
| GAME_1810 | + | Boss rewards |
| GAME_1811 | + | First-clear reward · Crystal Summon Tickets ×## |
| GAME_1812 | + | Exchange seals for main-game rewards. Purchases are sent to your mailbox. |
| GAME_1813 | + | No products are currently available. |
| GAME_1814 | + | ( ## / @@ ) |
| GAME_1815 | + | Rewards sent to your mailbox. |
| GAME_1816 | + | Drag your legions to swap positions |
| GAME_1817 | + | Empty |
| GAME_1818 | + | Start battle |
| GAME_1819 | + | Deploy ## |
| GAME_1820 | + | Failed to start the battle |
| GAME_1821 | + | Choose one card |
| GAME_1822 | + | ## cleared! |
| GAME_1823 | + | Growth card |
| GAME_1824 | + | Mail reward: ## |
| GAME_1825 | + | 5★ |
| GAME_1826 | + | 6★ |
| GAME_1827 | + | 6★ 1◆ |
| GAME_1828 | + | 6★ 2◆ |
| GAME_1829 | + | 6★ 3◆ |
| GAME_1830 | + | 1◆ |
| GAME_1831 | + | 2◆ |
| GAME_1832 | + | 3◆ |
| GAME_1833 | + | No soldiers |
| GAME_1834 | + | Normal |
| GAME_1835 | + | Hard |
| GAME_1836 | + | Hard Chapter ## |
| GAME_1837 | + | Clear Chapter ## to unlock Hard |
| GAME_1838 | + | Hard Chapter ## · Wave @@ |
| GAME_1841 | + | Not enough Energy (## required) |
| GAME_1843 | + | Crystal Summon Tickets ×## have been granted. |
| GAME_1844 | + | Event |
| GAME_1205 | ~ |
|
| GAME_1209 | ~ |
|
Translations touched: de (132), es (132), fr (132), id (132), it (132), ja (132), ko (132), pl (4493), pt (132), ru (132), th (132), tr (132), vi (132), zh-CN (132), zh-TW (132)
Game data tables
- added:
MINI_ASCENT_CONFIG - added:
MINI_ASCENT_RELIC - added:
MINI_ASCENT_ROUTE - added:
MINI_ASCENT_STAGE
Assets 9
Code 286 changes in 93 classes
Minified client code with short names blanked for diffing. Class names are real.
- MiniAscentCorpsPanel 1270
- MiniAscentFlow 740
- MiniAscentCardPickPopup 208
- MiniAscentChapterRewardItem 170
- MiniAscentBattleProgress 130
- MiniAscentAssets 123
- MiniAscentDeployPopup 123
- MiniAscentShell 109
- MiniAscentDataManager 101
- StampMark 84
- EventHubPopup 83
- AttackEffectManager 78
- MiniAscentService 74
- MiniAscentModalPopup 51
- StampCalendarStatusVO 50
- MiniAscentCrystalRewardPopup 50
- MiniAscentCardsPage 46
- BaseUnit 40
- RightBottomMenus 40
- URLManager 35
- GuildWarBattleController 26
- Pi 24
- ServerRejected 21
- RightMenu 20
- MiniAscentResultPopup 17
- BaseWeapon 16
- DungeonResultPopup 12
- BookManager 9
- RewardItem 8
- EventDataManager 6
- PresetSelectButton 5
- GpuGraphicsContext 4
- PetIcon 4
- Zr 4
- BaseBattleController 4
- FireOrb1 3
- AladinCoin1 3
- SHA256 3
- SuiProvider 3
- ShortcutManager 3
- WorkerManagerClass 2
- BomberBigBomb1 2
- WyvernRiderThrowingKnifeS1 2
- FireTornado1 2
- Lr 2
- BattleController 2
- BitmapFontManagerClass 1
- WebGLRenderer 1
- WebGPURenderer 1
- CanvasNineSliceSpritePipe 1
- LocalDataManager 1
- VersionManager 1
- UnitVO 1
- EventVO 1
- Twist 1
- FireMagicBall1 1
- FireMageBird1 1
- PilotMissile1 1
- AntRock1 1
- SuccubusWeapon 1
- DruidTangle1 1
- DruidDrill1 1
- HippogriffMissile1 1
- SteamFire1 1
- SteamMissile1 1
- SylphidTornado1 1
- BladeWave1 1
- SpinBlade 1
- CrowKnightBullet1 1
- CrowCompanion1 1
- CrowGuidedBall1 1
- CrowFeatherShot1 1
- ScorpionPoisonBullet 1
- AladinGenieBoomerang 1
- Err 1
- Sr 1
- Dr 1
- Fr 1
- Ma 1
- Yp 1
- SuiStandardProvider 1
- AppReadyEvent 1
- SolProvider 1
- OkxwalletInjectConnector 1
- TcRootElement 1
- BuffStatusPopup 1
- TreasureSubView 1
- TopMenu 1
- ConquestDataManager 1
- Delay 1
- NetworkTimeout 1
- RecaptchaVerifier 1
- BrowserPopupRedirectResolver 1
MiniAscentCorpsPanel 1 hunks, 1270 statements
- __proto__:null,MiniAscentOpponentPopup:cPi} + __proto__:null,MiniAscentCardsPage:tNi} + ,Symbol.toStringTag,{ + value:"Module"} + )); + function sNi(t){ + const i=TR.getInstance().getBookVO(t); + return sB.getText(`UNIT_NAME_${ + t} + `,(null==i?void 0:i.name)??String(t))} + function eNi(t){ + if(0===t.heroStage)return t.heroKind; + const i=TR.getInstance().getBookVO(t.heroKind); + return i&&i.evolKindNum>0?i.evolKindNum:t.heroKind} + function nNi(t){ + return[sB.getText("GAME_1825","5성"),sB.getText("GAME_1826","6성"),sB.getText("GAME_1827","6성 1◆"),sB.getText("GAME_1828","6성 2◆"),sB.getText("GAME_1829","6성 3◆")][t]??""} + function hNi(t){ + return[sB.getText("EmblemGradeName1","일반"),sB.getText("GAME_67","진화"),sB.getText("GAME_1830","1◆"),sB.getText("GAME_1831","2◆"),sB.getText("GAME_1832","3◆")][t]??""} + function rNi(t){ + return Rvi("DEPTH",t)} + function oNi(t){ + return Rvi("epic"===t.rarity?"CARD_EPIC":"rare"===t.rarity?"CARD_RARE":"CARD_NORMAL")} + function aNi(t,i){ + if(!i)return[]; + if("heroUp"===t.type)return i.heroStage<4?[i.heroStage]:[]; + if("soldierUp"!==t.type&&"soldierAllUp"!==t.type)return[]; + let s="soldierAllUp"===t.type?1/0:t.amount??3; + const e=[]; + for(let n=0; + n<4&&s>0; + n++){ + const t=Math.min(s,i.counts[n]); + t<=0||(e.push(n),s-=t)} + return e} + function cNi(t,i){ + return aNi(t,i).map(t=>0===t?sB.getText("GAME_67","진화"):Rvi("CARD_TRANSCEND",t)).join(" · ")} + function lNi(t,i){ + if(!i)return""; + const s=TR.getInstance(),e=s.getBookVO("heroUp"===t.type?i.heroKind:i.soldierKind),n=e&&e.evolKindNum>0?s.getBookVO(e.evolKindNum):void 0,h=qt(t=>{ + const i=0===t?null==e?void 0:e.grade:null==n?void 0:n.grade,s=void 0!==i?`${ + i} + ★`:""; + return t>1?[s,Rvi("CARD_TRANSCEND",t-1)].filter(Boolean).join(" "):s||hNi(t)} + ,"stageLabel"); + return aNi(t,i).map(t=>`${ + h(t)} + → ${ + h(t+1)} + `).join("\n")} + function uNi(t,i){ + const s=cNi(t,i[t.corp]); + return{ + armyLevel:Rvi("CARD_ARMY_LEVEL_UP"),armyBuff:dNi(t),soldierAllUp:Rvi("CARD_SOLDIER_UPGRADE",s),soldierChange:Rvi("CARD_SOLDIER_CHANGE"),soldierAdd:Rvi("CARD_SOLDIER_ADD"),dualSoldier:Rvi("CARD_SOLDIER_ADD"),legionLevel:Rvi("CARD_LEGION_LEVEL_UP"),dualLevel:Rvi("CARD_LEGION_LEVEL_UP"),heroLevel:Rvi("CARD_HERO_LEVEL_UP"),soldierLevel:Rvi("CARD_SOLDIER_LEVEL_UP"),heroUp:Rvi("CARD_HERO_UPGRADE",s),soldierUp:Rvi("CARD_SOLDIER_UPGRADE",s),newHero:Rvi("CARD_RECRUIT"),tactic:`${ + Rvi("assault"===t.tactic?"ASSAULT":"GUARD")} + ${ + t.tacticLevel??1} + `} + [t.type]} + function dNi(t){ + return Rvi({ + attackSpeedPct:"ARMY_ATK_SPEED",moveSpeedPct:"ARMY_MOVE_SPEED",attackRangePct:"ARMY_RANGE",attackPct:"ARMY_ATTACK",hpPct:"ARMY_HP"} + [t.buffStat??"attackPct"])} + function fNi(t){ + return"armyLevel"===t.type||"armyBuff"===t.type?[Rvi("ARMY_ALL")]:[..."heroLevel"===t.type||"heroUp"===t.type?[Rvi("HERO")]:"soldierLevel"===t.type||"soldierUp"===t.type||"soldierAllUp"===t.type?[Rvi("SOLDIERS")]:[],...[t.corp,...void 0!==t.partner?[t.partner]:[]].map(t=>Rvi("LEGION",t+1))]} + function pNi(t,i){ + var s; + switch(t.type){ + case"soldierChange":return`${ + sNi((null==(s=i[t.corp])?void 0:s.soldierKind)??0)} + → ${ + sNi(t.soldierKind??0)} + `; + case"armyLevel":return`+${ + t.amount} + Lv`; + case"armyBuff":return`+${ + t.amount} + %`; + case"soldierAllUp":case"heroUp":case"soldierUp":return lNi(t,i[t.corp]); + case"dualLevel":case"legionLevel":return`+${ + t.amount??0} + Lv`; + case"dualSoldier":return`+${ + t.amount??0} + `; + case"tactic":return`${ + "assault"===t.tactic?"+":"−"} + ${ + t.tacticMaxPercent??0} + %`; + case"heroLevel":case"soldierLevel":return`+${ + t.amount??6} + Lv`; + case"newHero":return"+1"; + case"soldierAdd":return`+${ + t.amount??3} + `} + } + function gNi(t,i){ + const s=i[t.corp],e=`${ + Rvi("HERO")} + · ${ + Rvi("SOLDIERS")} + `; + switch(t.type){ + case"soldierChange":return Rvi("CARD_SOLDIER_CHANGE_KEEP"); + case"armyLevel":case"legionLevel":return e; + case"armyBuff":return Rvi("ARMY_BUFF_RULES"); + case"soldierAllUp":return Rvi("CARD_ALL_SOLDIERS_UP"); + case"dualLevel":return`${ + e} + \n${ + Rvi("CARD_EACH")} + `; + case"dualSoldier":return Rvi("CARD_EACH"); + case"tactic":return["assault"===t.tactic?sB.getText("GAME_19","공격력"):Rvi("CARD_DAMAGE_TAKEN"),Rvi("DUAL_LEVEL",t.amount)].join("\n"); + case"heroLevel":case"soldierLevel":case"soldierAdd":case"heroUp":return""; + case"soldierUp":return Rvi("CARD_SOLDIER_COUNT",Math.min(t.amount??3,s.counts.slice(0,4).reduce((t,i)=>t+i,0))); + case"newHero":return[sNi(t.heroKind??0),...(t.soldierKind??0)>0&&(t.amount??0)>0?[`${ + sNi(t.soldierKind)} + ×${ + t.amount} + `]:[]].join("\n")} + } + function mNi(t){ + return"tactic"!==t.type?"":Rvi("TACTIC_REQUIRE_BODY",(t.tacticSoldierStep??5)*(t.tacticLevel??1),(t.tacticLevelStep??5)*(t.tacticLevel??1))} + function wNi(t){ + return t.map(t=>`${ + hEi.getRewardName(t.type)} + ${ + t.amount} + `).join(", ")} + qt(sNi,"unitName"),qt(eNi,"heroIconKind"),qt(nNi,"heroStageLabel"),qt(hNi,"soldierStageLabel"),qt(rNi,"floorText"),qt(oNi,"cardRarityLabel"),qt(aNi,"cardUpgradeStages"),qt(cNi,"cardUpgradeHeading"),qt(lNi,"cardUpgradeTransition"),qt(uNi,"cardHeading"),qt(dNi,"armyBuffName"),qt(fNi,"cardTags"),qt(pNi,"cardTitle"),qt(gNi,"cardDesc"),qt(mNi,"cardRequirements"),qt(wNi,"rewardsText"); + const vNi=class t extends He{ + constructor(){ + super(),Xt(this,"dividers",new Ff),Xt(this,"rows",[]),Xt(this,"visibleRows",4),this.eventMode="none",this.addChild(this.dividers),[Rvi("HERO"),Rvi("TIER_NORMAL"),Rvi("TIER_EVOLVED"),...[1,2,3].map(t=>Rvi("TIER_TRANS",t))].forEach((i,s)=>{ + const e=this.makeLabel(i,13,Lvi.text),n=0===s?t.HERO_W:t.SOLDIER_W,h=0===s?t.HERO_X:this.soldierX(s-1); + e.scale.set(Math.min(1,(n-2)/e.width)),e.position.set(h+(n-e.width)/2,12),this.addChild(e)} + ); + for(let i=0; + i<5; + i++){ + const s=new He; + s.y=t.HEADER_H+i*t.ROW_H; + const e=this.makeLabel(Rvi("LEGION",i+1),15,Lvi.text); + e.scale.set(Math.min(1,64/e.width)),e.position.set((64-e.width)/2,(t.ROW_H-e.height)/2),s.addChild(e); + const n=this.unitView(); + n.root.position.set(t.HERO_X,6),s.addChild(n.root); + const h=Array.from({ + length:5} + ,()=>this.unitView()); + for(const t of h)s.addChild(t.root); + const r=this.makeLabel("—",18,Lvi.subtle); + r.position.set(102,38),s.addChild(r),this.addChild(s),this.rows.push({ + root:s,hero:n,soldiers:h,empty:r} + )} + this.setData(null)} + soldierX(i){ + return t.SOLDIER_X+i*(t.SOLDIER_W+t.COLUMN_GAP)} + makeLabel(t,i,s){ + return new yD(t,s,{ + ...IL.DEFAULT_FONT_OPTION_16,fontSize:i,lineHeight:i+4} + )} + unitView(){ + const t=new He,i=new q3,s=this.makeLabel("",14,Lvi.text),e=new yD("",16777215,{ + ...IL.DEFAULT_OUTLINE_FONT_OPTION_16,fontSize:16,lineHeight:20} + ); + return t.addChild(i,e,s),{ + root:t,icon:i,count:e,level:s} + } + setUnit(t,i,s,e,n,h){ + t.root.visible=!0; + const r=0===h; + t.icon.active=!r,t.level.alpha=r?.45:1,t.count.textColor=r?Lvi.subtle:16777215,t.icon.scale.set(1),t.icon.setDataWithKindNum(i,s),t.icon.scale.set(Math.min(n/t.icon.width,54/t.icon.height)),t.icon.position.set((n-t.icon.width)/2,54-t.icon.height),t.level.text=`Lv.${ + e} + `,t.level.textSize=n<68?12:14,t.level.scale.set(1),t.level.scale.set(Math.min(1,n/t.level.width)),t.level.position.set((n-t.level.width)/2-(void 0!==h?8:7),56),t.count.visible=void 0!==h,void 0!==h&&(t.count.text=`×${ + h} + `,t.count.scale.set(1),t.count.position.set(n-t.count.width-16,54-t.count.height-1))} + setData(i){ + this.visibleRows=Math.min(5,Math.max(4,(null==i?void 0:i.length)??4)),this.dividers.clear(); + for(let s=1; + s<this.visibleRows; + s++){ + const i=t.HEADER_H+s*t.ROW_H; + this.dividers.moveTo(16,i).lineTo(t.WIDTH-16,i).stroke({ + color:Lvi.border,alpha:.32,width:1} + )} + this.rows.forEach((s,e)=>{ + var n; + const h=null==i?void 0:i[e]; + s.root.visible=e<this.visibleRows,s.hero.root.visible=!!h,s.empty.visible=!h; + for(const t of s.soldiers)t.root.visible=!1; + if(!h)return; + this.setUnit(s.hero,eNi(h),Math.max(0,h.heroStage-1),h.heroLevel??10,t.HERO_W); + const r=(null==(n=TR.getInstance().getBookVO(h.soldierKind))?void 0:n.evolKindNum)??0; + Wvi(h,r).forEach((i,e)=>{ + const n=s.soldiers[e]; + n.root.position.set(this.soldierX(e),6),this.setUnit(n,i.kindNum,i.trans,h.soldierLevel??10,t.SOLDIER_W,i.count)} + )} + )} + get panelHeight(){ + return t.HEADER_H+this.visibleRows*t.ROW_H+6} + } + ; + qt(vNi,"MiniAscentCorpsPanel"),Xt(vNi,"WIDTH",552),Xt(vNi,"ROW_H",92),Xt(vNi,"HEADER_H",34),Xt(vNi,"HERO_X",72),Xt(vNi,"HERO_W",76),Xt(vNi,"SOLDIER_X",176),Xt(vNi,"SOLDIER_W",68),Xt(vNi,"COLUMN_GAP",6); + let _Ni=vNi; + const bNi=class t extends XPi{ + constructor(){ + super(),Xt(this,"tabId","corps"),Xt(this,"corps",new _Ni),Xt(this,"heading",new yD(Rvi("MY_CORPS"),Lvi.accent,{ + ...IL.DEFAULT_FONT_OPTION_16,fontSize:22,lineHeight:28} + )),Xt(this,"empty",new yD(Rvi("EMPTY_CORPS"),Lvi.muted,IL.DEFAULT_FONT_OPTION_16)),Xt(this,"buffs",new yD("",Lvi.accent,{ + ...IL.DEFAULT_FONT_OPTION_16,fontSize:14,lineHeight:19} + )),this.empty.setWrapWidth(500),this.empty.align="center",this.contentContainer.addChild(this.heading,this.corps,this.empty,this.buffs)} + static getInstance(){ + return this.instance??(this.instance=new t)} + show(){ + this.height=876,this.render(),super.show()} + render(){ + const t=Zvi.getInstance().run; + this.heading.position.set((this.width-this.heading.width)/2,138),this.corps.setData((null==t?void 0:t.corps)??null),this.corps.visible=!!t,this.buffs.text=["attackSpeedPct","moveSpeedPct","attackRangePct","attackPct","hpPct"].filter(i=>{ + var s; + return((null==(s=null==t?void 0:t.shopBuffs)?void 0:s[i])??0)>0} + ).map(i=>`${ + dNi({ + buffStat:i} + )} + +${ + t.shopBuffs[i]} + %`).join(" · "),this.buffs.setWrapWidth(536),this.buffs.align="center",this.buffs.visible=!!this.buffs.text&&!!t; + const i=this.buffs.visible?this.buffs.height+16:0,s=Math.min(1,(this.height-284-i)/this.corps.panelHeight); + this.corps.scale.set(s),this.corps.position.set((this.width-_Ni.WIDTH*s)/2,208),this.buffs.position.set((this.width-this.buffs.width)/2,this.corps.y+this.corps.panelHeight*s+12),this.empty.visible=!t,this.empty.position.set((this.width-this.empty.width)/2,280),this.drawPanel()} + } + ; + qt(bNi,"MiniAscentCorpsPage"),Xt(bNi,"instance"); + let ENi=bNi; + const MNi=Object.freeze(Object.defineProperty({ + __proto__:null,MiniAscentCorpsPage:ENi} + ,Symbol.toStringTag,{ + value:"Module"} + )); + function ANi(t,i,s,e,n=96,h,r){ + const o=new He; + o.eventMode="none"; + const a=qt((t,i=100,s=0,e=0)=>{ + const n=new je(bvi.texture(t)); + return n.width=n.height=i,n.position.set(s,e),o.addChild(n),n} + ,"layer"),c=Math.max(0,Math.min(4,s-1)); + a(gvi[c]); + const l=new je(t); + l.anchor.set(.5),l.width=l.height=82,l.position.set(50,43),l.tint=a_i[i],o.addChild(l),a("relic_layer_legion_tag"); + const u=new yD(String(i+1),3151104,{ + ...IL.DEFAULT_FONT_OPTION_16,fontSize:20,fontWeight:"900"} + ); + u.position.set(82-u.width/2,1),o.addChild(u); + const d=qt((t,i,s,e)=>{ + a("crystal_effect_plate",i,s,e),a(wvi[t],i,s,e).tint="hero"===h?16764755:6670847} + ,"buff"); + return e&&d(e,28.8,3,3),r&&d(r,22.4,3,42),a(mvi[c],100,-4,-1),o.scale.set(n/100),o} + qt(ANi,"crystalIcon"); + const yNi={ + attackPct:"CRYSTAL_ATTACK",hpPct:"CRYSTAL_HEALTH",attackSpeedPct:"CRYSTAL_HASTE",moveSpeedPct:"CRYSTAL_MOVE",attackRangePct:"CRYSTAL_RANGE",soldierCap:"CRYSTAL_CAPACITY",promotion:"CRYSTAL_PROMOTION",stun:"CRYSTAL_STUN",poison:"CRYSTAL_POISON",paralysis:"CRYSTAL_PARALYSIS",freeze:"CRYSTAL_CHILL"} + ,SNi=qt(t=>Rvi(yNi[t.effect]),"crystalName"),TNi=qt(t=>`${ + t} + ★`,"crystalGradeName"),CNi=qt(t=>Rvi("hero"===t.target?"HERO":"SOLDIERS"),"crystalTargetName"),INi=qt(t=>`${ + CNi(t)} + · ${ + SNi(t)} + `,"crystalTitle"); + function ONi(t,i){ + const s=t.values[i-1]; + if("promotion"===t.effect)return Rvi("CRYSTAL_DESC_PROMOTION",s); + if("soldierCap"===t.effect)return Rvi("CRYSTAL_DESC_CAPACITY",s); + if(!t.seconds)return Rvi("CRYSTAL_DESC_STAT",SNi(t),s); + const e={ + stun:"CRYSTAL_DESC_STUN",freeze:"CRYSTAL_DESC_FREEZE",poison:"CRYSTAL_DESC_POISON",paralysis:"CRYSTAL_DESC_SHOCK"} + [t.effect],n=qt((i,s)=>Rvi(e,Rvi("normal"===i?"CRYSTAL_TRIGGER_NORMAL":"CRYSTAL_TRIGGER_SKILL"),s,t.seconds),"sentence"),h=n("skill",t.skillValues[i-1]); + return"hero"===t.target?n("normal",s)+"\n"+h:h} + function kNi(t,i,s){ + const e=r_i(i.grade),n=ONi(t,i.grade); + if(!e)return n; + const h=s.find(t=>t.kind===i.secondaryKind); + return Rvi("CRYSTAL_PRIMARY",i.grade)+"\n"+n+"\n\n"+(h?Rvi("CRYSTAL_SECONDARY",e)+"\n"+ONi(h,e):Rvi("CRYSTAL_RANDOM_SECONDARY",e))} + function RNi(t){ + var i; + const s=t instanceof Error?t.message:String(t); + return Rvi((null==(i=[["in_battle","CRYSTAL_IN_BATTLE"],["stale","CRYSTAL_REFRESHED"],["no_tickets","CRYSTAL_NO_TICKETS"],["protected_material","CRYSTAL_PROTECTED"],["merge_four","CRYSTAL_MERGE_RULE"],["merge_mismatch","CRYSTAL_MERGE_RULE"],["invalid_equipment","CRYSTAL_DUPLICATE"]].find(([t])=>s.includes(`crystal:${ + t} + `)))?void 0:i[1])??"CRYSTAL_ERROR")} + qt(ONi,"crystalDescription"),qt(kNi,"crystalItemDescription"),qt(RNi,"crystalErrorText"); + const xNi=class t extends XPi{ + constructor(){ + super(),Xt(this,"tabId","crystals"),Xt(this,"body",new He),Xt(this,"art",null),Xt(this,"busy",!1),Xt(this,"failed",!1),Xt(this,"corp",0),Xt(this,"page",0),Xt(this,"selected",null),Xt(this,"selectedSlot",null),Xt(this,"merging",null),Xt(this,"result",null),Xt(this,"confirmingMerge",!1),this.contentContainer.addChild(this.body),this.canCloseShell=()=>!this.busy} + static getInstance(){ + return this.instance??(this.instance=new t)} + get data(){ + return Zvi.getInstance().crystals} + show(){ + this.height=876,this.selected=null,this.merging=null,this.result=null,this.confirmingMerge=!1,this.render(),super.show(),this.load()} + addLabel(t,i,s,e,n=16,h=Lvi.text,r=0,o=!1){ + const a=new yD(i,h,{ + ...IL.DEFAULT_FONT_OPTION_16,fontSize:n,lineHeight:n+5,fontWeight:"bold"} + ); + return r&&(a.setWrapWidth(r),o&&(a.align="center")),a.position.set(o?s+(r-a.width)/2:s,e),t.addChild(a),a} + button(t,i,s,e,n,h,r=!0,o=!1,a=36){ + const c=new He; + c.position.set(s,e),c.addChild((new Ff).roundRect(0,0,n,a,8).fill(o?Lvi.surfaceSelected:Lvi.surfaceRaised).stroke({ + color:o?Lvi.accent:Lvi.border,width:o?2:1} + )); + const l=this.addLabel(c,i,0,0,15,o?Lvi.accent:Lvi.text); + return l.scale.set(Math.min(1,(n-16)/Math.max(1,l.width),(a-12)/Math.max(1,l.height))),l.position.set((n-l.width)/2,(a-l.height)/2),c.alpha=r?1:.4,c.hitArea=new Di(0,0,n,a),c.eventMode="static",c.cursor=r?"pointer":"default",c.on("pointertap",t=>{ + t.stopPropagation(),r&&!this.busy&&h()} + ),t.addChild(c),c} + primary(t,i,s,e,n,h,r=!0){ + const o=new QPi(i); + o.width=n,o.height=57,o.position.set(s,e),o.lbl.scale.set(Math.min(1,(n-44)/Math.max(1,o.lbl.width),33/Math.max(1,o.lbl.height))),o.lbl.position.set(-o.lbl.width/2,-o.lbl.height/2),o.activated=r&&!this.busy,o.onClick=()=>{ + !this.busy&&r&&h()} + ,t.addChild(o)} + definition(t){ + return this.data.catalog.find(i=>i.kind===t.kind)} + itemIcon(t,i){ + const s=this.definition(t),e=t.grade>=4?this.data.catalog.find(i=>i.kind===t.secondaryKind):void 0,n=ANi(this.art,s.corp,t.grade,s.effect,i,s.target,null==e?void 0:e.effect); + if(this.data.slots.some(i=>i.includes(t.id))){ + const t=new je(bvi.texture("UI_Check2")); + t.label="crystal-equipped",t.eventMode="none",t.anchor.set(0,.5),t.width=t.height=14,t.position.set(12,83),n.addChild(t)} + return n} + render(){ + var t; + for(const E of this.body.removeChildren())E.destroy({ + children:!0} + ); + const i=this.data,s=this.height<800; + if(this.addLabel(this.body,Rvi("TAB_CRYSTALS"),24,130,24,Lvi.accent,this.width-48,!0),!i||!this.art||this.failed)return this.addLabel(this.body,Rvi(this.failed?"CRYSTAL_LOAD_FAILED":"CRYSTAL_LOADING"),32,300,18,Lvi.text,this.width-64,!0),this.failed&&this.button(this.body,Rvi("RELIC_RELOAD"),218,356,180,()=>{ + this.load()} + ),void this.drawPanel(); + const e=s?184:200,n=this.width-28-412,h=this.addLabel(this.body,Rvi("LEGION",this.corp+1),28,e,20,Lvi.accent); + h.label="crystal-legion-name",h.scale.set(Math.min(1,(n-48)/Math.max(1,h.width))),h.y=e+(36-h.height)/2; + for(let E=0; + E<5; + E++){ + const h=n+84*E; + this.button(this.body,String(E+1),h,e,76,()=>{ + this.corp=E,this.page=0,this.selectedSlot=null,this.merging=null,this.render()} + ,!0,E===this.corp).label=`crystal-legion:${ + E} + `; + const r=(null==(t=i.slots[E])?void 0:t.length)??0; + this.addLabel(this.body,`${ + r} + /4`,h,s?224:240,12,r?a_i[E]:Lvi.subtle,76,!0)} + const r=s?253:286,o=s?64:90,a=4*o+96; + this.body.addChild((new Ff).roundRect(26,r-12,this.width-52,o+24,12).fill({ + color:Lvi.surface,alpha:.92} + ).stroke({ + color:Lvi.border,width:1} + )); + for(let E=0; + E<4; + E++){ + const t=i.items.find(t=>{ + var s; + return t.id===(null==(s=i.slots[this.corp])?void 0:s[E])} + ),s=(this.width-a)/2+E*(o+32),e=t?this.itemIcon(t,o):new He; + t||(e.addChild((new Ff).roundRect(0,0,o,o,10).fill(2367774).stroke({ + color:Lvi.border,width:1.5} + )),this.addLabel(e,"+",0,o/2-20,30,Lvi.border,o,!0)),e.position.set(s,r),e.eventMode="static",e.cursor="pointer",e.hitArea=new Di(0,0,t?100:o,t?100:o),e.label=`crystal-slot:${ + E} + `,e.on("pointertap",i=>{ + i.stopPropagation(),this.busy||(this.selectedSlot=E,t?this.selected=t:this.page=0,this.render())} + ),this.body.addChild(e)} + const c=r+o+(s?25:36),l=i.items.filter(t=>c_i(t.kind)===this.corp); + this.addLabel(this.body,Rvi("CRYSTAL_COLLECTION",l.length),30,c+6,17,Lvi.accent),this.button(this.body,Rvi(this.merging?"CRYSTAL_CANCEL":"CRYSTAL_MERGE"),this.width-104,c,76,()=>{ + this.merging=this.merging?null:[],this.page=0,this.render()} + ,!0,!!this.merging),this.merging&&this.addLabel(this.body,`${ + this.merging.length} + /4`,this.width-178,c+8,16,Lvi.accent,64,!0); + const u=c+(s?49:45),d=this.height-(s?151:140),f=s?72:84,p=s?24:10,g=f+12,m=(this.width-(6*f+5*p))/2,w=6*Math.max(1,Math.floor((d-u-44)/g)),v=new Set(i.slots.flat()),_=[...l].sort((t,i)=>Number(v.has(i.id))-Number(v.has(t.id))||i.grade-t.grade||t.kind-i.kind||t.id.localeCompare(i.id)),b=Math.max(1,Math.ceil(_.length/w)); + if(this.page=Math.min(this.page,b-1),_.slice(this.page*w,(this.page+1)*w).forEach((t,s)=>{ + const e=m+s%6*(f+p),n=u+Math.floor(s/6)*g,h=this.itemIcon(t,f); + if(h.position.set(e,n),h.eventMode="static",h.cursor="pointer",h.hitArea=new Di(0,0,100,100),h.label=`crystal-item:${ + t.id} + `,this.merging){ + const s=i.items.find(t=>t.id===this.merging[0]),e=!v.has(t.id)&&t.grade<i.maxGrade&&(!s||s.grade===t.grade); + h.alpha=e?1:.35,this.merging.includes(t.id)&&h.addChild((new Ff).roundRect(0,0,100,100,12).stroke({ + color:Lvi.accent,width:4} + )),h.on("pointertap",i=>{ + i.stopPropagation(),!this.busy&&e&&(this.merging.includes(t.id)?this.merging=this.merging.filter(i=>i!==t.id):this.merging.length<4&&this.merging.push(t.id),this.render())} + )} + else h.on("pointertap",i=>{ + i.stopPropagation(),this.busy||(this.selected=t,this.render())} + ); + this.body.addChild(h)} + ),_.length||this.addLabel(this.body,Rvi("CRYSTAL_EMPTY"),42,u+6,16,Lvi.muted,this.width-84,!0),b>1){ + const t=d-40; + this.button(this.body,"‹",188,t,48,()=>{ + this.page--,this.render()} + ,this.page>0),this.addLabel(this.body,`${ + this.page+1} + / ${ + b} + `,248,t+6,15,Lvi.muted,120,!0),this.button(this.body,"›",380,t,48,()=>{ + this.page++,this.render()} + ,this.page<b-1)} + this.body.addChild((new Ff).moveTo(28,d-8).lineTo(this.width-28,d-8).stroke({ + color:Lvi.border,width:1} + )),this.merging?(this.addLabel(this.body,Rvi("CRYSTAL_MERGE_RULE"),32,d+6,14,Lvi.muted,this.width-64,!0),this.primary(this.body,Rvi("CRYSTAL_MERGE"),138,d+54,340,()=>{ + this.confirmingMerge=!0,this.render()} + ,4===this.merging.length)):this.drawTickets(d),i.battlePending&&this.addLabel(this.body,Rvi("CRYSTAL_IN_BATTLE"),32,this.height-23,12,Lvi.danger,this.width-64,!0),this.selected&&this.drawDetail(this.selected),this.confirmingMerge&&this.drawMergeConfirmation(),this.result&&this.drawResult(),this.body.interactiveChildren=!this.busy,this.drawPanel()} + drawTickets(t){ + const i=Object.values(this.data.tickets).reduce((t,i)=>t+i,0); + this.addLabel(this.body,Rvi("CRYSTAL_SUMMON_TICKETS",i),32,t+8,18,Lvi.accent,this.width-64,!0); + const s=qt(t=>{ + this.action("draw",{ + count:t} + )} + ,"draw"); + this.primary(this.body,Rvi("CRYSTAL_DRAW_ONE"),58,t+58,240,()=>s(1),i>=1),this.primary(this.body,Rvi("CRYSTAL_DRAW_FIVE"),318,t+58,240,()=>s(5),i>=5)} + overlay(t,i){ + const s=new He,e=(new Ff).rect(12,120,this.width-24,this.height-125).fill({ + color:0,alpha:.75} + ); + e.eventMode="static",e.on("pointertap",t=>{ + t.stopPropagation(),this.busy||i()} + ),s.addChild(e); + const n=new He; + n.addChild((new Ff).roundRect(0,0,500,t,16).fill(Lvi.surface).stroke({ + color:Lvi.border,width:2} + )),n.eventMode="static",n.on("pointertap",t=>t.stopPropagation()); + const h=Math.min(1,(this.height-156)/t); + return n.scale.set(h),n.position.set((this.width-500*h)/2,130+(this.height-150-t*h)/2),this.button(n,"×",454,10,34,i),s.addChild(n),this.body.addChild(s),n} + drawDetail(t){ + var i; + const s=this.data,e=this.definition(t),n=null==(i=s.slots[this.corp])?void 0:i.includes(t.id),h=qt(()=>{ + this.selected=null,this.render()} + ,"close"),r=[...s.slots[this.corp]],o=!n&&r.length>=4,a=new He,c=this.addLabel(a,kNi(e,t,s.catalog),0,0,20,Lvi.text,428,!0),l=o?63:0,u=Math.min(this.height-156,Math.max(380,222+c.height+28+l+57+28)),d=this.overlay(u,h); + d.label="crystal-detail",this.addLabel(d,INi(e),30,25,24,Lvi.accent,440,!0); + const f=this.itemIcon(t,122); + f.position.set(189,75),d.addChild(f); + const p=u-28-57; + if(this.addDescription(d,a,36,222,428,p-l-28-222),n)this.primary(d,Rvi("CRYSTAL_UNEQUIP"),70,p,360,()=>{ + this.action("equip",{ + corp:this.corp,ids:r.filter(i=>i!==t.id)} + )} + ,!s.battlePending); + else{ + const i=r.findIndex(i=>{ + var e; + return(null==(e=s.items.find(t=>t.id===i))?void 0:e.kind)===t.kind} + ),e=o||i>=0,n=i>=0?i:this.selectedSlot??-1; + if(o)for(let t=0; + t<4; + t++)this.button(d,Rvi("CRYSTAL_SLOT",t+1),32+111*t,p-l,103,()=>{ + this.selectedSlot=t,this.render()} + ,i<0||i===t,n===t,51); + const h=l_i(s,t,this.corp,n)&&(!e||n>=0&&n<4); + this.primary(d,Rvi(e?"CRYSTAL_REPLACE":"CRYSTAL_EQUIP"),70,p,360,()=>{ + e?r[n]=t.id:r.push(t.id),this.action("equip",{ + corp:this.corp,ids:r} + )} + ,h)} + } + addDescription(t,i,s,e,n,h){ + const r=i.height,o=new He,a=(new Ff).rect(0,0,n,h).fill(16777215); + o.position.set(s,e),o.addChild(i,a),i.mask=a,o.label="crystal-description",t.addChild(o); + const c=Math.max(0,r-h); + if(!c)return; + o.eventMode="static",o.hitArea=new Di(0,0,n,h); + const l=new Ff; + l.eventMode="none",l.x=n+8,o.addChild(l); + const u=Math.max(20,h*h/r); + let d=0,f=null,p=0; + const g=qt(t=>{ + d=Math.max(0,Math.min(c,t)),i.y=-d,l.clear().roundRect(0,0,3,h,1.5).fill(Lvi.surfaceRaised).roundRect(0,d/c*(h-u),3,u,1.5).fill(Lvi.border)} + ,"scroll"); + o.on("wheel",t=>{ + t.stopPropagation(),t.preventDefault(),g(d+t.deltaY)} + ),o.on("pointerdown",t=>{ + t.stopPropagation(),f=o.toLocal(t.global).y,p=d} + ),o.on("globalpointermove",t=>{ + null!==f&&g(p+f-o.toLocal(t.global).y)} + ),o.on("pointerup",()=>{ + f=null} + ),o.on("pointerupoutside",()=>{ + f=null} + ),g(0)} + drawMergeConfirmation(){ + var t; + if(4!==(null==(t=this.merging)?void 0:t.length))return; + const i=this.overlay(382,()=>{ + this.confirmingMerge=!1,this.render()} + ); + this.addLabel(i,Rvi("CRYSTAL_MERGE"),30,28,23,Lvi.accent,440,!0),this.merging.forEach((t,s)=>{ + const e=this.data.items.find(i=>i.id===t),n=this.itemIcon(e,86); + n.position.set(48+106*s,88),i.addChild(n)} + ),this.addLabel(i,Rvi("CRYSTAL_MERGE_CONFIRM"),36,205,17,Lvi.text,428,!0),this.primary(i,Rvi("CRYSTAL_MERGE"),70,307,360,()=>{ + this.confirmingMerge=!1,this.action("merge",{ + ids:[...this.merging]} + )} + )} + drawResult(){ + const t=this.result,i=this.overlay(300,()=>{ + this.result=null,this.render()} + ); + this.addLabel(i,Rvi("CRYSTAL_RECEIVED"),24,26,23,Lvi.accent,452,!0); + const s=t.length>4?78:t.length>3?90:110,e=t.length*s+14*(t.length-1); + t.forEach((t,n)=>{ + const h=this.itemIcon(t,s); + h.position.set((500-e)/2+n*(s+14),91),i.addChild(h)} + ),this.primary(i,Rvi("CRYSTAL_CONFIRM"),130,230,240,()=>{ + this.result=null,this.render()} + )} + async load(){ + if(!this.busy){ + this.busy=!0,this.failed=!1,this.render(); + try{ + const[t,i]=await Promise.all([Zvi.getInstance().fetchCrystals(!0),bvi.loadCrystalArt()]); + this.art=i} + catch{ + this.failed=!0} + finally{ + this.busy=!1,this.render()} + } + } + async action(t,i){ + var s; + if(this.busy||!this.data)return; + const e=Zvi.getInstance(),n=this.data.revision,h=e.season.seasonId,r=JSON.stringify([t,i]); + this.busy=!0,this.render(); + try{ + const h=await e.crystalAction(n,t,i); + this.finishAction((null==(s=h.crystals.lastAction)?void 0:s.items)??[])} + catch(o){ + try{ + const t=await e.fetchCrystals(!0),i=t.crystals.lastAction; + t.season.seasonId===h&&(null==i?void 0:i.revision)===n&&i.key===r?this.finishAction(i.items):(this.finishAction([]),this.confirmingMerge=!1,pH.getInstance().showMessage(RNi(o)))} + catch{ + this.failed=!0,pH.getInstance().showMessage(Rvi("CRYSTAL_ERROR"))} + } + finally{ + this.busy=!1,this.render()} + } + finishAction(t){ + this.selected=null,this.selectedSlot=null,this.merging=null,this.page=0,this.result=t.length?t:null} + } + ; + qt(xNi,"MiniAscentCrystalsPage"),Xt(xNi,"instance"); + let PNi=xNi; + const NNi=Object.freeze(Object.defineProperty({ + __proto__:null,MiniAscentCrystalsPage:PNi} + ,Symbol.toStringTag,{ + value:"Module"} + )),LNi=class extends TG{ + constructor(t){ + super(t),this.bg.visible=!1,this.lbl.setStyle({ + ...IL.DEFAULT_FONT_OPTION_16,fontSize:15,lineHeight:20} + ),this.activatedTextColor=Lvi.muted,this.width=160,this.height=44} + fitLabel(){ + this.lbl.scale.set(1),this.lbl.scale.set(Math.min(1,(this.width-16)/Math.max(1,this.lbl.width))),this.lbl.position.set(-this.lbl.width/2,-this.lbl.height/2)} + set text(t){ + super.text=t,this.fitLabel()} + get text(){ + return super.text} + set width(t){ + super.width=t,this.fitLabel()} + get width(){ + return super.width} + } + ; + qt(LNi,"MiniAscentTextButton"); + let DNi=LNi; + const GNi={ + 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"} + ,BNi=qt(t=>Rvi(GNi[t.effect],(t.corp??0)+1),"title"),UNi=class t extends XPi{ + constructor(){ + super(),Xt(this,"tabId","relics"),Xt(this,"body",new He),Xt(this,"unownedFilter",(()=>{ + const t=new of({ + resolution:"inherit"} + ); + return t.desaturate(),t} + )()),Xt(this,"busy",!1),Xt(this,"loaded",!1),Xt(this,"failed",!1),Xt(this,"selectedId",null),Xt(this,"result",""),Xt(this,"drawResults",null),this.canCloseShell=()=>!this.busy,this.contentContainer.addChild(this.body)} + static getInstance(){ + return this.instance??(this.instance=new t)} + show(){ + this.render(),super.show(),this.load()} + addLabel(t,i,s,e=16,n=Lvi.text,h=0){ + const r=new yD(t,n,{ + ...IL.DEFAULT_FONT_OPTION_16,fontSize:e,lineHeight:e+5} + ); + return h&&r.setWrapWidth(h),r.position.set(i,s),this.body.addChild(r),r} + center(t,i,s=16,e=Lvi.text){ + const n=this.addLabel(t,0,i,s,e,556); + return n.align="center",n.x=(this.width-n.width)/2,n} + button(t,i,s,e,n,h=!0,r=!1,o=42){ + const a=r?new DNi(t):new QPi(t); + return a.width=e,a.height=o,a.position.set(i,s),a.lbl.scale.set(Math.min(1,(e-40)/Math.max(1,a.lbl.width))),a.lbl.position.set(-a.lbl.width/2,-a.lbl.height/2),a.activated=h&&!this.busy,a.onClick=()=>{ + !this.busy&&h&&n()} + ,this.body.addChild(a),a} + render(){ + var t; + for(const g of this.body.removeChildren())g.destroy({ + children:!0} + ); + const i=Zvi.getInstance(),s=i.relics,e=this.height<800; + if(this.center(Rvi("TAB_RELICS"),e?144:152,23,Lvi.accent),!this.loaded||!s)return this.center(Rvi(this.failed?"RELIC_LOAD_FAILED":"RELIC_LOADING"),280,17),this.failed&&this.button(Rvi("RELIC_RELOAD"),188,340,240,()=>{ + this.load()} + ),void this.drawPanel(); + const n={ + 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); + h.forEach((t,i)=>{ + const s=Math.floor(i/5),e=i%5,n=Math.min(5,h.length-5*s),r=n*c+18*(n-1),o=this.thumbnail(t,c); + o.position.set((this.width-r)/2+e*(c+18),u+s*(c+18)),o.label=`relic:${ + t.id} + `,o.eventMode="static",o.cursor="pointer",o.hitArea=new Di(0,0,c,c),o.on("pointertap",i=>{ + i.stopPropagation(),this.busy||(this.selectedId=t.id,this.render())} + ),this.body.addChild(o)} + ),this.center(this.result||Rvi("RELIC_GRID_HINT"),this.height-161,13,this.result?Lvi.success:Lvi.muted); + const d=s.items.length>0&&s.items.every(t=>t.maxLevel>0&&t.level>=t.maxLevel),f=(this.width-88)/2; + for(const[g,m]of[1,10].entries()){ + const e=32+g*(f+24),n=s.drawCost*m,h=s.canDraw&&!d&&((null==(t=i.season)?void 0:t.gold)??0)>=n,r=new He,o=new je(bvi.texture("ui_coin")); + o.width=o.height=26; + const a=new yD(String(n),Lvi.accent,{ + ...IL.DEFAULT_FONT_OPTION_16,fontSize:18} + ); + a.position.set(34,(26-a.height)/2),r.addChild(o,a),r.position.set(e+(f-r.width)/2,this.height-124),r.label=`relic-price:${ + m} + `,this.body.addChild(r),this.button(Rvi(1===m?"RELIC_SUMMON":"RELIC_SUMMON_TEN"),e,this.height-86,f,()=>{ + this.draw(m)} + ,h,!1,56).label=`relic-summon:${ + m} + `} + const p=s.items.find(t=>t.id===this.selectedId); + this.drawResults?this.renderDrawResults(this.drawResults):p?this.renderDetail(p):this.selectedId=null,this.drawPanel()} + thumbnail(t,i){ + const s=new He,e=new He; + e.scale.set(i/100),s.addChild(e); + const n=t.level>0; + n||(e.filters=[this.unownedFilter]); + for(const a of fvi(t.effect)){ + const t=new je(bvi.texture(a)); + t.width=t.height=100,a.startsWith("relic_layer_buff_")&&t.position.set(3,-3),e.addChild(t)} + const h=void 0===t.corp,r=new yD(h?"A":String(t.corp+1),3151104,{ + ...IL.DEFAULT_FONT_OPTION_16,fontSize:20,lineHeight:22,fontWeight:"900",stroke:{ + color:3151104,width:.6,join:"round"} + } + ); + if(r.scale.set(Math.min(1,22/Math.max(1,r.width),22/Math.max(1,r.height))),r.position.set(72+(22-r.width)/2,2+(22-r.height)/2),e.addChild(r),n){ + const i=t.requiredCopies??Math.ceil((t.level+1)/2),s=new yD(`${ + t.copies??0} + /${ + i} + `,Lvi.text,{ + ...IL.DEFAULT_FONT_OPTION_16,fontSize:16,lineHeight:19,fontWeight:"900",stroke:{ + color:0,width:4,join:"round"} + } + ); + s.scale.set(Math.min(1,58/Math.max(1,s.width))),s.position.set(7,6),e.addChild(s)} + const o=new yD(`Lv.${ + t.level} + `,n?Lvi.text:Lvi.muted,{ + ...IL.DEFAULT_FONT_OPTION_16,fontSize:17,lineHeight:20,fontWeight:"900",stroke:{ + color:0,width:4,join:"round"} + } + ); + return o.scale.set(Math.min(1,63/Math.max(1,o.width))),o.position.set(94-o.width,97-o.height),e.addChild(o),s.eventMode="none",s} + renderDetail(t){ + const i=new He; + i.label="relic-detail"; + const s=(new Ff).rect(12,120,this.width-24,this.height-128).fill({ + color:0,alpha:.64} + ); + s.eventMode="static"; + const e=qt(()=>{ + this.selectedId=null,this.render()} + ,"close"); + s.on("pointertap",t=>{ + t.stopPropagation(),e()} + ),i.addChild(s); + const n=new He,h=new He,r=qt((t,i,s,e)=>{ + const n=new yD(t,e,{ + ...IL.DEFAULT_FONT_OPTION_16,fontSize:s,lineHeight:s+5} + ); + return n.setWrapWidth(436),n.align="center",n.position.set((500-n.width)/2,i),h.addChild(n),n} + ,"label"); + let o=28; + const a=this.thumbnail(t,112); + a.position.set(194,o),h.addChild(a),o+=136; + const c=["sealBonus","armyAttackSpeed","armyMoveSpeed"].includes(t.effect)?"%":"",l=t.level*t.step,u="fifthLegion"===t.effect||"soldierChange"===t.effect?Rvi(t.level?"RELIC_UNLOCKED":"RELIC_LOCKED"):`+${ + l} + ${ + c} + `; + o+=r(Rvi("RELIC_EFFECT_SUMMARY",BNi(t),u),o,21,Lvi.accent).height+18,o+=r(Rvi("RELIC_OWNED_COPIES",t.copies??0),o,18,Lvi.text).height+10,o+=r(Rvi("RELIC_REQUIRED_COPIES",t.requiredCopies??Math.ceil((t.level+1)/2)),o,18,Lvi.text).height+28,n.addChild((new Ff).roundRect(0,0,500,o,16).fill(Lvi.surface).stroke({ + color:Lvi.border,width:2} + ),h),n.eventMode="static",n.on("pointertap",t=>t.stopPropagation()); + const d=new He,f=new je(bvi.texture("ui_close")); + f.width=f.height=32,d.addChild(f),d.position.set(476,-12),d.hitArea=new Di(-6,-6,44,44),d.eventMode="static",d.cursor="pointer",d.on("pointertap",t=>{ + t.stopPropagation(),e()} + ),n.addChild(d); + const p=this.height-152,g=Math.min(1,p/o); + n.scale.set(g),n.position.set((this.width-500*g)/2,130+(p-o*g)/2),i.addChild(n),this.body.addChild(i)} + renderDrawResults(t){ + const i=new He,s=new He,e=552,n=178+116*Math.ceil(t.length/5); + i.label="relic-draw-results"; + const h=qt(()=>{ + this.drawResults=null,this.render()} + ,"close"),r=(new Ff).rect(12,120,this.width-24,this.height-128).fill({ + color:0,alpha:.64} + ); + r.eventMode="static",r.on("pointertap",t=>{ + t.stopPropagation(),h()} + ),i.addChild(r),s.addChild((new Ff).roundRect(0,0,e,n,16).fill(Lvi.surface).stroke({ + color:Lvi.border,width:2} + )),s.eventMode="static",s.on("pointertap",t=>t.stopPropagation()); + const o=new yD(Rvi("RELIC_SUMMON_RESULT"),Lvi.accent,{ + ...IL.DEFAULT_FONT_OPTION_16,fontSize:23} + ); + o.setWrapWidth(488),o.align="center",o.position.set((e-o.width)/2,26),s.addChild(o),t.forEach((i,n)=>{ + var h; + const r=null==(h=Zvi.getInstance().relics)?void 0:h.items.find(t=>t.id===i.id); + if(!r)return; + const o=this.thumbnail({ + ...r,...i} + ,84),a=n%5,c=Math.floor(n/5),l=Math.min(5,t.length-5*c),u=84*l+16*(l-1); + o.position.set((e-u)/2+100*a,82+116*c),o.label=`relic-drawn:${ + n} + `,s.addChild(o); + const d=new yD("+1",Lvi.accent,IL.DEFAULT_FONT_OPTION_16); + d.position.set(o.x+(84-d.width)/2,o.y+84+4),s.addChild(d)} + ); + const a=new QPi(Rvi("CRYSTAL_CONFIRM")); + a.width=240,a.height=56,a.position.set((e-a.width)/2,n-76),a.onClick=h,s.addChild(a); + const c=new je(bvi.texture("ui_close")); + c.width=c.height=32,c.position.set(528,-12),c.eventMode="static",c.cursor="pointer",c.on("pointertap",t=>{ + t.stopPropagation(),h()} + ),s.addChild(c); + const l=this.height-152,u=Math.min(1,l/n); + s.scale.set(u),s.position.set((this.width-e*u)/2,130+(l-n*u)/2),i.addChild(s),this.body.addChild(i)} + async load(){ + if(!this.busy){ + this.busy=!0,this.failed=!1,this.loaded=!1,this.render(); + try{ + await Zvi.getInstance().fetchRelics(),this.loaded=!0} + catch{ + this.failed=!0} + finally{ + this.busy=!1,this.render()} + } + } + showDraw(t){ + var i,s; + if(null==(i=null==t?void 0:t.results)?void 0:i.length)return this.drawResults=t.results,this.selectedId=null,void(this.result=""); + const e=null==(s=Zvi.getInstance().relics)?void 0:s.items.find(i=>i.id===(null==t?void 0:t.id)); + e&&t&&(this.result=Rvi("RELIC_DRAW_RESULT",BNi(e),t.level),t.leveledUp&&(this.result+=" ↑"),this.selectedId=e.id,pH.getInstance().showMessage(this.result))} + async draw(t){ + var i,s; + const e=Zvi.getInstance(); + if(this.busy||!(null==(i=e.relics)?void 0:i.canDraw)||!e.season||(e.season.gold??0)<e.relics.drawCost*t)return; + const n=e.season.seasonId,h=e.relics.revision; + this.busy=!0,this.result="",this.drawResults=null,this.render(); + try{ + this.showDraw((await e.drawRelic(n,h,t)).drawn)} + catch(r){ + try{ + const i=await e.fetchRelics(!0); + i.season.seasonId===n&&(null==(s=i.relics.lastDraw)?void 0:s.revision)===h&&(i.relics.lastDraw.count??1)===t?this.showDraw(i.relics.lastDraw):pH.getInstance().showMessage(r.message)} + catch{ + this.loaded=!1,this.failed=!0} + } + finally{ + this.busy=!1,this.render()} + } + } + ; + qt(UNi,"MiniAscentRelicsPage"),Xt(UNi,"instance"); + let FNi=UNi; + const HNi=Object.freeze(Object.defineProperty({ + __proto__:null,MiniAscentRelicsPage:FNi} + ,Symbol.toStringTag,{ + value:"Module"} + )); + function $Ni(t){ + const i=qt((t,i)=>sB.getText(t,i),"text"); + switch(t.type){ + case"gem":return i("COMMON_350","보석"); + case"honorCoin":return i("GAME_88","명예코인"); + case"runeTicket":return i("GAME_1500","크리스탈 뽑기권"); + case"pet":return`${ + i(`PET_NAME_${ + t.kindNum} + `,"")} + ${ + i("GAME_736","조각")} + `.trim(); + case"trans":return"treasure"===t.subType?i("GAME_1224","유물 초월권"):i("GAME_1223","영웅 초월권"); + case"ticket":return"heroGacha"===t.subType?i("GAME_764","5성 영웅 확정권"):"heroSelect"===t.subType?i("GAME_769","영웅 선택권"):"pet"===t.subType?i("GAME_772","정령의 고원 입장권"):t.subType??t.type; + default:return t.type} + } + qt($Ni,"shopProductName"); + const WNi=class t extends iR{ + constructor(){ + super(),Xt(this,"reward",new r6),Xt(this,"productName",new yD("",Lvi.text,IL.DEFAULT_FONT_OPTION_16)),Xt(this,"limit",new yD("",Lvi.muted,IL.DEFAULT_FONT_OPTION_16)),Xt(this,"sealIcon",new je(bvi.texture("ui_challenge_seal"))),Xt(this,"price",new yD("",Lvi.text,IL.DEFAULT_FONT_OPTION_16)),Xt(this,"buy",new QPi(Rvi("EVENT_SHOP_BUY"))); + const{ + W:i,H:s,BUTTON_W:e,BUTTON_H:n,TEXT_X:h} + =t,r=(new Ff).roundRect(1,1,i-2,s-2,12).fill(Lvi.surface).stroke({ + color:Lvi.border,width:1} + ); + r.eventMode="none",this.reward.scale.set(1.2),this.productName.textSize=18,this.productName.position.set(h,20),this.limit.textSize=18,this.limit.position.set(h,20),this.sealIcon.width=this.sealIcon.height=22,this.sealIcon.position.set(h+2,54),this.price.textSize=18,this.price.position.set(h+32,52),this.buy.width=e,this.buy.height=n,this.buy.position.set(i-e-16,(s-n)/2),this.buy.onClick=()=>{ + const t=this.data; + t&&this.buy.activated&&t.onBuy(t.item)} + ,this.addChild(r,this.reward,this.productName,this.limit,this.sealIcon,this.price,this.buy)} + get width(){ + return t.W} + get height(){ + return t.H} + setData(i){ + const s=i; + if(!s)return; + this.data=s,this.reward.setDataFrom(s.item.reward); + const e=this.reward.frameBounds,n=this.reward.scale; + this.reward.position.set(16+(64*n.x-e.width*n.x)/2-e.x*n.x,(t.H-e.height*n.y)/2-e.y*n.y),this.limit.text=Rvi("EVENT_SHOP_LIMIT",s.item.purchased,s.item.limit),this.productName.text=$Ni(s.item.reward); + const h=t.TEXT_W-this.limit.width-8; + this.productName.scale.set(1),this.productName.scale.set(Math.min(1,h/Math.max(1,this.productName.width))),this.limit.x=this.productName.x+this.productName.width+8,this.price.text=String(s.item.price),this.buy.activated=!s.busy&&s.item.purchased<s.item.limit&&s.seals>=s.item.price} + } + ; + qt(WNi,"MiniAscentShopItemRenderer"),Xt(WNi,"W",552),Xt(WNi,"H",96),Xt(WNi,"BUTTON_W",140),Xt(WNi,"BUTTON_H",58),Xt(WNi,"TEXT_X",116),Xt(WNi,"TEXT_W",WNi.W-WNi.BUTTON_W-32-WNi.TEXT_X); + let VNi=WNi; + const jNi=class t extends XPi{ + constructor(){ + super(),Xt(this,"tabId","shop"),Xt(this,"heading",new yD(Rvi("SHOP"),Lvi.text,IL.DEFAULT_FONT_OPTION_16)),Xt(this,"hint",new yD(Rvi("EVENT_SHOP_HINT"),Lvi.text,IL.DEFAULT_FONT_OPTION_16)),Xt(this,"message",new yD("",Lvi.text,IL.DEFAULT_FONT_OPTION_16)),Xt(this,"reload",new QPi(Rvi("RELIC_RELOAD"))),Xt(this,"list",new Zk(VNi,VNi.W,VNi.H,t.ROW_GAP)),Xt(this,"rows",[]),Xt(this,"data",null),Xt(this,"busy",!1),this.canCloseShell=()=>!this.busy,this.heading.textSize=26,this.hint.setWrapWidth(536),this.message.setWrapWidth(496),this.reload.width=260,this.reload.height=46,this.reload.onClick=()=>{ + this.busy||this.load(!0)} + ,this.list.x=t.LIST_X,this.contentContainer.addChild(this.heading,this.hint,this.message,this.reload,this.list)} + static getInstance(){ + return this.instance??(this.instance=new t)} + show(){ + this.height=876,this.layout(),this.render(),super.show(),this.load()} + layout(){ + this.heading.position.set((this.width-this.heading.width)/2,140),this.hint.position.set(40,188); + const t=this.hint.y+this.hint.height+24; + this.list.y=t,this.list.setListHeight(Math.max(VNi.H,this.height-t-12),!1),this.message.position.set(60,t+55),this.reload.position.set((this.width-this.reload.width)/2,t+150)} + setBusy(t){ + this.busy=t,this.render(),this.parent&&e_i.getInstance().refresh()} + async load(t=!1){ + this.setBusy(!0); + try{ + this.data=await Zvi.getInstance().fetchEventShop(t)} + catch(Qnt){ + pH.getInstance().showMessage(Qnt.message)} + finally{ + this.setBusy(!1)} + } + render(){ + var t; + const i=(null==(t=this.data)?void 0:t.eventShop.items)??[],s=!i.length; + if(this.message.visible=this.reload.visible=s,this.list.visible=!s,s)return this.message.text=Rvi(this.data?"EVENT_SHOP_EMPTY":"RELIC_LOADING"),void(this.reload.activated=!this.busy); + const e=this.data.season.seals??this.data.season.coin; + this.rows.length===i.length&&this.rows.every((t,s)=>t.item.kindNum===i[s].kindNum)?(this.rows.forEach((t,s)=>{ + t.item=i[s],t.seals=e,t.busy=this.busy} + ),this.list.updateItemData()):(this.rows=i.map(t=>({ + item:t,seals:e,busy:this.busy,onBuy:qt(t=>{ + this.buy(t)} + ,"onBuy")} + )),this.list.dataProvider=this.rows,this.list.showTopItem())} + async buy(t){ + if(!this.busy&&this.data){ + this.setBusy(!0); + try{ + this.data=await Zvi.getInstance().buyEventShop(this.data.eventShop.revision,t),pH.getInstance().showMessage(Rvi("EVENT_SHOP_DELIVERED"))} + catch(Qnt){ + pH.getInstance().showMessage(Qnt.message); + try{ + this.data=await Zvi.getInstance().fetchEventShop(!0)} + catch{ + } + } + finally{ + this.setBusy(!1)} + } + } + } + ; + qt(jNi,"MiniAscentEventShopPage"),Xt(jNi,"instance"),Xt(jNi,"LIST_X",32),Xt(jNi,"ROW_GAP",6); + let KNi=jNi; + const zNi=Object.freeze(Object.defineProperty({ + __proto__:null,MiniAscentEventShopPage:KNi} + ,Symbol.toStringTag,{ + value:"Module"} + )),YNi={ + battle:"encounter_battle",elite:"encounter_elite",boss:"encounter_boss",shop:"encounter_shop",event:"encounter_event"} + ; + let qNi,XNi; + function JNi(t){ + return t?XNi??(XNi=new mZt({ + distance:10,outerStrength:4,innerStrength:0,color:16759844,quality:.2} + )):qNi??(qNi=new mZt({ + distance:8,outerStrength:3,innerStrength:0,color:16763446,quality:.2} + ))} + function QNi(t,i,s,e=!1){ + const n=new He,h=new je(bvi.texture(e?"encounter_gambling":YNi[t])); + return h.anchor.set(.5),h.scale.set(Math.min(140/h.texture.width,136/h.texture.height)),(i||s)&&(h.filters=[JNi(s)]),n.addChild(h),n.eventMode="none",n} + qt(JNi,"glow"),qt(QNi,"routeIsland"); + const ZNi=class t extends XPi{ + constructor(){ + super(),Xt(this,"usesRunWallet",!0),Xt(this,"body",new He),Xt(this,"unreachableFilter",(()=>{ + const t=new of; + return t.desaturate(),t} + )()),Xt(this,"onSelect",null),Xt(this,"onEvent",null),Xt(this,"onAuto",null),Xt(this,"onBack",null),Xt(this,"busy",!1),this.canCloseShell=()=>!this.busy,this.height=690,this.contentContainer.addChild(this.body)} + static getInstance(){ + return this.instance??(this.instance=new t)} + addLabel(t,i,s,e=16,n=Lvi.text,h){ + const r=new yD(t,n,IL.DEFAULT_FONT_OPTION_16); + return r.textSize=e,h&&r.setWrapWidth(h),r.position.set(i,s),this.body.addChild(r),r} + center(t,i,s=16,e=Lvi.text){ + const n=this.addLabel(t,0,i,s,e); + n.width>this.width-48&&(n.textSize=s*(this.width-48)/n.width),n.x=(this.width-n.width)/2} + button(t,i,s,e,n,h=!0){ + const r=new QPi(t); + return r.width=e,r.height=48,r.position.set(i,s),r.onClick=async()=>{ + if(!this.busy&&h){ + this.busy=!0,r.activated=!1; + try{ + await n()} + finally{ + this.busy=!1,r.destroyed||(r.activated=!0)} + } + } + ,r.activated=h,this.body.addChild(r),r} + setData(t){ + var i,s,e; + for(const r of this.body.removeChildren())r.destroy({ + children:!0} + ); + const n="event"===(null==(i=t.currentNode)?void 0:i.kind); + this.height=n?690:Math.min(960,Xy.safeHeight-28); + const h=t.currentNode; + if("event"===(null==h?void 0:h.kind))if("wager"===h.eventKind&&h.wager){ + const{ + stake:i,winChance:e,payout:n,stakes:r,roundsPlayed:o,maxRounds:a} + =h.wager; + this.center(Rvi("WAGER"),130,24,Lvi.accent),this.eventIcon("encounter_gambling",64,176,90),this.addLabel(Rvi("WAGER_ODDS",e),178,180,22,Lvi.accent,380),this.addLabel(Rvi("WAGER_ROUNDS",o,a),178,225,18,Lvi.text,380); + const c=(null==(s=t.eventResult)?void 0:s.nodeId)===h.id&&"wager"===t.eventResult.kind?t.eventResult:void 0; + c?this.center(`${ + Rvi(c.won?"RESULT_WIN":"RESULT_LOSS")} + ${ + c.amount>=0?"+":""} + ${ + c.amount} + `,276,22,c.won?Lvi.success:Lvi.danger):this.center(Rvi(r.some(i=>i<=t.run.wallet)?"WAGER_LOSS_RULE":"NO_COINS"),276,16,Lvi.muted); + const l=Math.min(334,this.height-252); + this.center(Rvi("WAGER_RETURN"),l-25,14,Lvi.muted),r.forEach((s,e)=>{ + const r=l+64*e; + this.body.addChild((new Ff).roundRect(40,r,536,56,10).fill(Lvi.surfaceRaised).stroke({ + color:Lvi.border,width:1} + )),this.eventIcon("ui_coin",58,r+14,28),this.addLabel(`${ + s} + → ${ + Math.round(n*s/i)} + `,100,r+13,22,Lvi.accent),this.button(Rvi("WAGER_BET",s),342,r+4,216,async()=>{ + var t; + await(null==(t=this.onEvent)?void 0:t.call(this,h.id,`bet:${ + o+1} + :${ + s} + `))} + ,o<a&&t.run.wallet>=s)} + ),this.button(Rvi(o?"NEXT":"WAGER_SKIP"),58,this.height-60,500,async()=>{ + var t; + await(null==(t=this.onEvent)?void 0:t.call(this,h.id,"skip"))} + ).color=TG.BROWN} + else this.center(Rvi("EVENT_HINT"),132,18,12179631),null==(e=h.eventChoices)||e.forEach((i,s)=>{ + const e=185+176*s; + this.body.addChild((new Ff).roundRect(28,e,560,158,14).fill(Lvi.surface).stroke({ + color:Lvi.border,width:1} + )); + const n="coins"===i.kind,r=t.run.corps[i.corp??0]; + if(n)this.eventIcon("ui_coin",52,e+24,64); + else if(r){ + const t=new q3; + t.setDataWithKindNum(eNi(r),Math.max(0,r.heroStage-1)),t.scale.set(Math.min(76/t.width,60/t.height)),t.position.set(48,e+28),this.body.addChild(t)} + const o=n?Rvi("SUPPLY_COINS"):Rvi("legionLevel"===i.kind?"LEGION_TRAIN":"heroLevel"===i.kind?"HERO_TRAIN":"SOLDIER_TRAIN",(i.corp??0)+1,i.amount); + this.addLabel(o,144,e+17,18,15982508,420); + const a=r?("heroLevel"===i.kind?r.heroLevel:r.soldierLevel)??10:10; + this.addLabel(n?Rvi("COINS",i.amount):"legionLevel"===i.kind&&r?`Lv.${ + r.heroLevel??1} + / ${ + r.soldierLevel??1} + → ${ + (r.heroLevel??1)+i.amount} + / ${ + (r.soldierLevel??1)+i.amount} + `:`Lv.${ + a} + → Lv.${ + a+i.amount} + `,144,e+58,22,n?16767332:11590560,416),this.button(Rvi("TAKE_REWARD"),144,e+101,414,async()=>{ + var t; + await(null==(t=this.onEvent)?void 0:t.call(this,h.id,i.id))} + )} + ),this.center(Rvi("SUPPLY_DESC"),563,14); + else{ + const i=182,s=(this.height-80-i)/5,e=Math.min(1.05,(s-30)/140),n=qt(t=>Mvi(t)+54+20,"choiceX"),r=yvi(t),o=null==r.lane?this.width/2:Mvi(r.lane)+54,a=qt(t=>i+s*(4-t+.43),"rowY"),c=this.height-40-Math.max(25,66*e+3),l=qt((t,i,s)=>{ + const e=this.addLabel(String(t).padStart(2,"0"),0,0,s?22:20); + e.width>34&&e.scale.set(34/e.width),e.position.set(27-e.width/2,i-e.height/2),e.textColor=s?Lvi.accent:Lvi.muted} + ,"stageLabel"); + l(r.depth,c,!0); + const u=new Ff; + u.eventMode="none"; + for(const h of t.rows[0]??[]){ + if(!Svi(t,h))continue; + const i=n(h.lane),s=h.lane===r.lane?0:Math.sign(i-o),l=o+s*(r.node?44*e:18),d=c-(s?8:55*e),f=a(1)+66*e+Math.max(12,16*e)+13,p=Math.atan2(f-d,i-l); + u.moveTo(l,d).lineTo(i,f).stroke({ + color:Lvi.accent,width:2.5,alpha:.9} + ),u.moveTo(i,f).lineTo(i-9*Math.cos(p-.5),f-9*Math.sin(p-.5)).lineTo(i-9*Math.cos(p+.5),f-9*Math.sin(p+.5)).closePath().fill(Lvi.accent)} + if(this.body.addChild(u),r.node){ + const t=QNi(r.node.kind,!1,!1,"wager"===r.node.eventKind); + t.position.set(o,c),t.scale.set(e),this.body.addChild(t); + const i=(new Ff).circle(0,0,10).fill(4481847).moveTo(-5,0).lineTo(-1,4).lineTo(6,-4).stroke({ + color:16773834,width:2.5} + ); + i.position.set(o+40*e,c-38*e),this.body.addChild(i)} + else{ + const t=(new Ff).moveTo(0,23).lineTo(-13,4).lineTo(13,4).closePath().fill(8672033).circle(0,-5,18).fill(8672033).circle(0,-5,10).fill(16768118); + t.position.set(o,c),this.body.addChild(t)} + const d=this.addLabel(Rvi(0===r.depth?"START":"CURRENT_POSITION"),0,c+(r.node?66*e+3:25),14); + d.x=o-d.width/2,t.rows.slice(0,4).forEach((i,s)=>{ + const r=a(s+1); + l(i[0].depth,r,0===s),i.forEach(i=>{ + const o=n(i.lane),a=(null==h?void 0:h.id)===i.id,c=Svi(t,i),l=QNi(i.kind,c,a,"wager"===i.eventKind),u=new He; + u.position.set(o,r); + const d=0===s&&!c; + u.alpha=d?.6:s>0?.85:1,d&&(l.filters=[this.unreachableFilter]),this.body.addChild(u),l.scale.set(e),u.addChild(l); + const f=Math.max(12,16*e),p=new yD("wager"===i.eventKind?Rvi("WAGER"):Pvi(i.kind),Lvi.text,{ + ...IL.DEFAULT_FONT_OPTION_16,fontSize:f,lineHeight:f+2} + ); + p.setWrapWidth(118),p.position.set(-p.width/2,66*e+3),d&&(p.textColor=Lvi.muted),u.addChild(p); + const g=(new Ff).roundRect(-61,-58*e,122,124*e+3+p.height,16).fill({ + color:16777215,alpha:.001} + ); + g.eventMode=c?"static":"none",g.cursor=c?"pointer":"default",g.on("pointertap",async()=>{ + var t; + if(!this.busy&&c){ + this.busy=!0; + try{ + await(null==(t=this.onSelect)?void 0:t.call(this,i.id))} + finally{ + this.busy=!1} + } + } + ),u.addChild(g)} + )} + )} + this.drawPanel()} + eventIcon(t,i,s,e){ + const n=bvi.texture(t); + if(!n)return; + const h=new je(n); + h.scale.set(Math.min(e/n.width,e/n.height)),h.position.set(i+(e-h.width)/2,s+(e-h.height)/2),this.body.addChild(h)} + showEventResult(t){ + var i; + const s=t.eventResult; + if("wager"===(null==s?void 0:s.kind)&&(null==(i=t.currentNode)?void 0:i.id)===s.nodeId)return void this.setData(t); + if(!s||"skip"===s.kind)return void this.setData(t); + for(const n of this.body.removeChildren())n.destroy({ + children:!0} + ); + this.height=690; + const e="wager"===s.kind; + this.center(Rvi(e?s.won?"RESULT_WIN":"RESULT_LOSS":"RESULT_DONE"),138,26,16768133),this.eventIcon(e?"encounter_gambling":"ui_coin",266,186,84),null!=s.level?(this.center(Rvi("legionLevel"===s.kind?"LEGION_TRAIN":"heroLevel"===s.kind?"HERO_TRAIN":"SOLDIER_TRAIN",(s.corp??0)+1,s.amount),280,20),this.center("legionLevel"===s.kind?`Lv.${ + s.previousLevel} + / ${ + s.previousSoldierLevel} + → ${ + s.level} + / ${ + s.soldierLevel} + `:`Lv.${ + s.previousLevel} + → Lv.${ + s.level} + `,326,30,10868123)):(this.center(`${ + s.amount>=0?"+":""} + ${ + s.amount} + `,285,46,s.amount>=0?16767332:15049619),e&&this.center(Rvi(s.won?"WAGER_WIN":"WAGER_LOSS",s.won?s.payout:s.stake,s.amount),355,17)),this.center(Rvi("RECORD",s.wallet,t.season.bestFloor),430,17),this.button(Rvi("NEXT"),58,555,500,async()=>{ + this.setData(t)} + ),this.drawPanel()} + onCloseBtnClick(){ + this.busy||super.onCloseBtnClick()} + } + ; + qt(ZNi,"MiniAscentRoutePopup"),Xt(ZNi,"instance"); + let tLi=ZNi; + const iLi=Object.freeze(Object.defineProperty({ + __proto__:null,MiniAscentRoutePopup:tLi} + ,Symbol.toStringTag,{ + value:"Module"} + )),sLi=qt(t=>sB.getText("",t),"text"),eLi=class t extends XPi{ + constructor(){ + super(),Xt(this,"usesRunWallet",!0),Xt(this,"tabId","battle"),Xt(this,"locked",!0),Xt(this,"onLeave",null),Xt(this,"onReturn",null),Xt(this,"body",new He),Xt(this,"shop",null),Xt(this,"busy",!1),Xt(this,"loaded",!1),Xt(this,"failed",!1),this.canCloseShell=()=>!this.busy,this.height=672,this.contentContainer.addChild(this.body)} + static getInstance(){ + return this._instance||(this._instance=new t),this._instance} + show(){ + if(this.parent)return; + const t=Zvi.getInstance().run; + this.locked=!t||"shop"!==t.nodeKind||t.battlePending,this.shop=null,this.loaded=!1,this.failed=!1,this.refresh(),super.show(),this.locked||this.load()} + addLabel(t,i,s,e=16,n=Lvi.text,h,r=this.body){ + const o=new yD(t,n,IL.DEFAULT_FONT_OPTION_16); + return o.textSize=e,h&&o.setWrapWidth(h),o.position.set(i,s),r.addChild(o),o} + centered(t,i,s=16,e=Lvi.text){ + const n=this.addLabel(t,0,i,s,e); + n.x=(this.width-n.width)/2} + itemText(t){ + var i; + const s=t.targetCorp<0?Rvi("SHOP_ALL"):Rvi("LEGION",t.targetCorp+1),e=null==(i=Zvi.getInstance().run)?void 0:i.corps[t.targetCorp],n=t.amount??("soldierUp"===t.type?3:1); + let h="",r=""; + switch(t.type){ + case"heroReplace":h=Rvi("SHOP_REPLACE"),r=Rvi("SAME_RACE")+(t.bonus?"\n"+("soldierAdd"===t.bonus?Rvi("FOCUS_SOLDIERS",n):`${ + Rvi("HERO")} + +${ + n} + Lv`):""); + break; + case"heroUp":h=Rvi("SHOP_HERO_UP"),r=e?`${ + nNi(e.heroStage)} + → ${ + nNi(Math.min(4,e.heroStage+1))} + `:""; + break; + case"soldierUp":h=Rvi("SHOP_SOLDIER_UP",n),r=Rvi("SHOP_UPGRADE_DESC",n); + break; + case"legionLevel":case"allLevel":h=`${ + sB.getText("COMMON_41","Level up")} + +${ + n} + Lv`,r=`${ + Rvi("HERO")} + · ${ + Rvi("SOLDIERS")} + `; + break; + case"soldierAdd":case"allSoldier":h=Rvi("FOCUS_SOLDIERS",n),r="allSoldier"===t.type?Rvi("SHOP_ADD_LIMIT"):Rvi("SHOP_RUN_ONLY"); + break; + case"attackSpeed":h=`${ + sB.getText("GAME_21","Attack speed")} + +${ + n} + %`,r=Rvi("SHOP_RUN_BUFF"); + break; + case"moveSpeed":h=`${ + sB.getText("GAME_22","Movement speed")} + +${ + n} + %`,r=Rvi("SHOP_RUN_BUFF"); + break; + case"manaRegen":h=sB.getText("EmblemDesc15","Mana recovery speed +{ + v} + %").replace(/\{ + v\} + /g,String(n)),r=Rvi("SHOP_RUN_BUFF")} + return{ + title:`${ + s} + · ${ + h} + `,desc:r} + } + refresh(){ + var t,i; + for(const c of this.body.removeChildren())c.destroy({ + children:!0} + ); + const s=Zvi.getInstance(); + if(this.locked){ + this.centered(Rvi("TAB_SHOP"),168,24,Lvi.accent); + const t=this.addLabel(Rvi("SHOP_LOCKED"),0,260,17,Lvi.muted,500); + return t.align="center",t.x=(this.width-t.width)/2,void this.drawPanel()} + if(this.centered(Rvi("SHOP_HINT"),147,15,Lvi.muted),!this.loaded||!this.shop){ + if(this.centered(sLi(this.failed?"상점을 불러오지 못했습니다":this.loaded?"상점 정보가 없습니다":"상품을 불러오는 중…"),310,18),this.failed){ + const t=new QPi(sLi("다시 불러오기")); + t.width=300,t.position.set(158,550),t.activated=!this.busy,t.onClick=()=>{ + this.load()} + ,this.body.addChild(t)} + return void this.drawPanel()} + const e=new He; + e.y=174,this.body.addChild(e); + let n=0; + this.shop.offers.forEach(t=>{ + var i,h,r,o; + const a=new He; + a.y=n,e.addChild(a); + const c=this.itemText(t),l=this.addLabel(c.title,160,14,18,t.sold?Lvi.subtle:Lvi.text,408,a),u=this.addLabel(c.desc,160,l.y+l.height+10,15,Lvi.muted,256,a),d=Math.max(132,u.y+u.height+18),f=(new Ff).roundRect(24,0,568,d,12).fill(Lvi.surface).stroke({ + color:Lvi.border,width:1} + ); + a.addChildAt(f,0),a.addChildAt((new Ff).roundRect(38,(d-112)/2,108,112,12).fill(Lvi.surfaceRaised),1); + const p=null==(i=s.run)?void 0:i.corps[t.targetCorp],g={ + allLevel:"UI_LEVELUP",allSoldier:"ICON_UNIT",attackSpeed:"UI_ATTACK_SPEED",moveSpeed:"UI_MOVE_SPEED",manaRegen:"UI_MAGIC_WAND"} + [t.type]; + if(g){ + const t=new je(eS.getTexture("UI_Ekkorr",g)); + t.scale.set(Math.min(92/t.width,96/t.height)),t.position.set(92-t.width/2,(d-t.height)/2),a.addChild(t)} + else if(p){ + const i="heroReplace"===t.type,s=i||"legionLevel"===t.type,e=i&&p.heroStage>0?null==(h=TR.getInstance().getBookVO(t.heroKind))?void 0:h.evolKindNum:t.heroKind; + (i?[eNi(p),e||t.heroKind]:"legionLevel"===t.type?[eNi(p),p.soldierKind]:["heroUp"===t.type?eNi(p):p.soldierKind]).forEach((i,e)=>{ + if(!i)return; + const n=new q3,h="soldierUp"===t.type||"soldierAdd"===t.type||"legionLevel"===t.type&&1===e; + n.setDataWithKindNum(i,h?0:Math.max(0,p.heroStage-1)),n.scale.set(Math.min((s?70:94)/n.width,(s?44:94)/n.height)),n.position.set(92-n.width/2,s?(d-108)/2+66*e+(42-n.height)/2:(d-n.height)/2),a.addChild(n)} + ),i&&this.addLabel("↓",85,d/2-14,20,Lvi.text,void 0,a)} + const m=new QPi(t.sold?sLi("구매 완료"):t.available?sLi("## 코인").replace(/##/g,String(t.price)):sLi("구매 불가")); + m.width=142,m.height=50,m.position.set(432,d-64),m.activated=!this.busy&&!(null==(r=s.run)?void 0:r.battlePending)&&t.available&&((null==(o=s.run)?void 0:o.wallet)??0)>=t.price,m.onClick=()=>{ + this.act(()=>s.shopBuy(t.id))} + ,a.addChild(m),n+=d+12} + ); + const h=Math.min(1,Math.max(1,this.height-166-e.y)/Math.max(1,n-12)); + e.scale.set(h),e.x=(this.width-this.width*h)/2,0===this.shop.offers.length&&this.centered(sLi("모든 상점 강화를 완료했습니다"),315,18); + const r=new QPi(sLi("새로고침 · ## 코인").replace(/##/g,String(this.shop.refreshPrice))); + r.color=TG.BROWN,r.width=280,r.height=54,r.position.set((this.width-r.width)/2,this.height-150),r.activated=!this.busy&&!(null==(t=s.run)?void 0:t.battlePending)&&this.shop.canRefresh&&((null==(i=s.run)?void 0:i.wallet)??0)>=this.shop.refreshPrice; + const o=this.shop.revision; + r.onClick=()=>{ + this.act(()=>s.shopRefresh(o))} + ,this.body.addChild(r),this.centered(sLi("상품을 모두 구매하면 무료로 새로고침됩니다"),this.height-90,14,Lvi.muted); + const a=new QPi(Rvi("NEXT")); + a.width=280,a.height=48,a.position.set((this.width-a.width)/2,this.height-62),a.activated=!this.busy,a.onClick=async()=>{ + var t; + if(!this.busy){ + this.busy=!0,a.activated=!1; + try{ + await(null==(t=this.onLeave)?void 0:t.call(this))} + catch(Qnt){ + pH.getInstance().showMessage(Qnt.message)} + finally{ + this.busy=!1,this.parent&&this.refresh()} + } + } + ,this.body.addChild(a),this.drawPanel()} + onCloseBtnClick(){ + this.busy||super.onCloseBtnClick()} + async load(){ + if(!this.busy){ + this.busy=!0,this.failed=!1,this.refresh(); + try{ + this.shop=(await Zvi.getInstance().fetchShop()).shop,this.loaded=!0} + catch(t){ + this.failed=!0,pH.getInstance().showMessage(t.message)} + finally{ + this.busy=!1,this.refresh()} + } + } + async act(t){ + if(!this.busy){ + this.busy=!0,this.refresh(); + try{ + const i=await t(); + this.shop=i.shop; + const s=null!=i.targetCorp?sLi("##군단에 적용했습니다").replace(/##/g,String(i.targetCorp+1)):void 0!==i.autoRefreshed?sLi("상품을 구매했습니다"):sLi("상점이 갱신되었습니다"); + pH.getInstance().showMessage(s+(i.autoRefreshed?"\n"+sLi("모두 구매하여 무료로 새로고침했습니다"):""))} + catch(i){ + pH.getInstance().showMessage(i.message); + try{ + this.shop=(await Zvi.getInstance().fetchShop(!0)).shop} + catch{ + this.shop=null,this.loaded=!1,this.failed=!0} + } + finally{ + this.busy=!1,this.refresh()} + } + } + } + ; + qt(eLi,"MiniAscentShopPopup"),Xt(eLi,"_instance"); + let nLi=eLi; + const hLi=Object.freeze(Object.defineProperty({ + __proto__:null,MiniAscentShopPopup:nLi}
MiniAscentFlow 26 hunks, 740 statements
- static async openDeploy(i){ - const s=uvi.getInstance(); - let e; - try{ - e=await s.prepare()} - catch(qnt){ - return lH.getInstance().showMessage(qnt.message),void(i&&await t.backToLobby())} - const{ - MiniAscentOpponentPopup:n} - =await ti(async()=>{ - const{ - MiniAscentOpponentPopup:t} - =await Promise.resolve().then(()=>lPi); - return{ - MiniAscentOpponentPopup:t} + static async openAutoBattle(){ + this.busy} + static async startAutoBattle(t){ + const i=Zvi.getInstance().run; + if(!this.busy&&!this.auto){ + if(!i||i.battlePending||!Cvi(i,t.targetFloor)||!["battle","elite"].includes(t.priority))throw new Error(Rvi("AUTO_UNAVAILABLE")); + this.auto={ + ...t,runId:i.runId} + ,"undefined"!=typeof document&&document.addEventListener("visibilitychange",this.onVisibility),await this.continueAutoBattle()}
- ,void 0),h=n.getInstance(); - if(h.setData(e),h.onSelect=s=>{ - t.showDeploy({ - ...e,enemy:s.enemy,opponentId:s.id} - ,i)} - ,h.onBack=()=>{ - i?t.backToLobby():t.showLobby()} - ,!i){ + static stopAutoBattle(){ + this.auto=null,"undefined"!=typeof document&&document.removeEventListener("visibilitychange",this.onVisibility)} + static async continueAutoBattle(){ + var t,i; + const s=this.auto; + if(!s)return; + const e=Zvi.getInstance(); + try{ + if(!e.run||e.run.runId!==s.runId)return this.stopAutoBattle(),void(await this.openBattleTab()); + if((null==(t=e.run.cardRewards)?void 0:t.current)&&!e.run.battlePending)return void(await this.openCards()); + if(e.run.floor>s.targetFloor)return this.stopAutoBattle(),void(await this.openCards()); + const n=await e.fetchRoute(!1,!1); + if(this.auto!==s)return void(await this.openBattleTab()); + if(n.run.runId!==s.runId||n.run.floor>s.targetFloor)return this.stopAutoBattle(),void(await this.openCards()); + const h=Tvi(n,s.priority); + if(!h)return this.stopAutoBattle(),pH.getInstance().showMessage(Rvi("AUTO_NO_BATTLE")),void(await this.openBattleTab()); + (null==(i=n.currentNode)?void 0:i.id)!==h.id&&await e.selectNode(h.id,!1); + const r=await e.loadFormation(e.run.corps.length); + if(this.auto!==s)return void(await this.openBattleTab()); + await this.startFloor(r,h.id)} + catch(n){ + this.stopAutoBattle(),pH.getInstance().showMessage(n.message),await this.openBattleTab()} + } + static async openCards(){ + var t; + this.configureShell(); + const i=Zvi.getInstance().run; + if(!(null==(t=null==i?void 0:i.cardRewards)?void 0:t.current)||i.battlePending)return void(await this.openBattleTab()); + const s=this.navigationRevision; + try{ + await this.openCardPick()} + catch(e){ + if(s!==this.navigationRevision)return; + this.stopAutoBattle(),pH.getInstance().showMessage(e.message);
- MiniAscentLobbyPopup:t} + MiniAscentCardsPage:t}
- MiniAscentLobbyPopup:t} + MiniAscentCardsPage:t}
- MiniAscentLobbyPopup:t} + MiniAscentCardsPage:t}
- t.getInstance().hideImmediately()} - h.show()} + t.getInstance().show()} + } + static async enter(){ + this.navigationRevision++,this.stopAutoBattle(),await bvi.ensure(),this.configureShell(); + const t=Zvi.getInstance(); + await t.flushPendingResult(),await t.fetchState(),await this.openBattleTab()} + static configureShell(){ + e_i.getInstance().onNavigate=t=>this.openTab(t),e_i.getInstance().onExit=()=>{ + this.navigationRevision++,this.stopAutoBattle(); + const t=vci.getInstance(); + t.isIdleBattleActive()||t.returnToIdleBattle()} + } + static async openTab(t){ + if(this.navigationRevision++,this.stopAutoBattle(),"battle"===t)return this.openBattleTab(); + if("corps"===t){ + const{ + MiniAscentCorpsPage:t} + =await ti(async()=>{ + const{ + MiniAscentCorpsPage:t} + =await Promise.resolve().then(()=>MNi); + return{ + MiniAscentCorpsPage:t} + } + ,void 0); + t.getInstance().show()} + else if("crystals"===t){ + const{ + MiniAscentCrystalsPage:t} + =await ti(async()=>{ + const{ + MiniAscentCrystalsPage:t} + =await Promise.resolve().then(()=>NNi); + return{ + MiniAscentCrystalsPage:t} + } + ,void 0); + t.getInstance().show()} + else if("relics"===t){ + const{ + MiniAscentRelicsPage:t} + =await ti(async()=>{ + const{ + MiniAscentRelicsPage:t} + =await Promise.resolve().then(()=>HNi); + return{ + MiniAscentRelicsPage:t} + } + ,void 0); + t.getInstance().show()} + else{ + const{ + MiniAscentEventShopPage:t} + =await ti(async()=>{ + const{ + MiniAscentEventShopPage:t} + =await Promise.resolve().then(()=>zNi); + return{ + MiniAscentEventShopPage:t} + } + ,void 0); + t.getInstance().show()} + } + static async openBattleTab(){ + var t,i; + this.configureShell(); + const s=Zvi.getInstance(); + if(!s.run)return this.showLobby(); + if((null==(t=s.run.cardRewards)?void 0:t.current)&&!s.run.battlePending)return this.openCards(); + const e=await s.fetchRoute(); + if((null==(i=e.run.cardRewards)?void 0:i.current)&&!e.run.battlePending)return this.openCards(); + const n=!vci.getInstance().isIdleBattleActive(); + e.currentNode&&"event"!==e.currentNode.kind&&"shop"!==e.currentNode.kind?await this.enterNode(e,n):await this.showRoute(e,n)} + static async openDeploy(t){ + var i,s; + const e=Zvi.getInstance(); + if((null==(s=null==(i=e.run)?void 0:i.cardRewards)?void 0:s.current)&&!e.run.battlePending)return this.openCards(); + try{ + const i=await e.fetchRoute(); + i.run.battleOnly?await this.enterNode(i,t):await this.showRoute(i,t)} + catch(Qnt){ + pH.getInstance().showMessage(Qnt.message),await this.backToLobby()} + } + static async showRoute(t,i){ + await bvi.ensure(),this.configureShell(); + const{ + MiniAscentRoutePopup:s} + =await ti(async()=>{ + const{ + MiniAscentRoutePopup:t} + =await Promise.resolve().then(()=>iLi); + return{ + MiniAscentRoutePopup:t} + } + ,void 0),e=s.getInstance(); + e.setData(t),e.onSelect=async t=>{ + if(!this.busy){ + this.busy=!0; + try{ + const s=await Zvi.getInstance().selectNode(t); + await this.enterNode(s,i)} + catch(Qnt){ + pH.getInstance().showMessage(Qnt.message)} + finally{ + this.busy=!1} + } + } + ,e.onEvent=async(t,i)=>{ + if(!this.busy){ + this.busy=!0; + try{ + const s=await Zvi.getInstance().completeNode(t,i); + e.showEventResult(s)} + catch(Qnt){ + pH.getInstance().showMessage(Qnt.message)} + finally{ + this.busy=!1} + } + } + ,e.onAuto=()=>this.openAutoBattle(),e.onBack=()=>{ + this.backToLobby()} + ,e.show()} + static async enterNode(t,i){ + const s=t.currentNode; + if(s)if("event"!==s.kind){ + if("shop"===s.kind){ + const{ + MiniAscentShopPopup:t} + =await ti(async()=>{ + const{ + MiniAscentShopPopup:t} + =await Promise.resolve().then(()=>hLi); + return{ + MiniAscentShopPopup:t} + } + ,void 0),e=t.getInstance(); + return e.onLeave=async()=>{ + const t=await Zvi.getInstance().completeNode(s.id); + await this.showRoute(t,i)} + ,e.onReturn=()=>{ + this.openDeploy(i)} + ,void e.show()} + await this.showDeploy(await Zvi.getInstance().prepare(),i)} + else await this.showRoute(t,i); + else await this.showRoute(t,i)}
+ var e;
- r.setData(i,n,svi(i.floor)),r.onStart=s=>{ - e.saveFormation(s),t.startFloor(s,i.opponentId)} - ,r.onBack=()=>{ - t.openDeploy(s)} - ,r.show()} - static async startFloor(i,s){ - if(!t.busy){ - t.busy=!0; + o.setData(i,h,Vvi(i.floor)),o.onFormationChange=t=>{ + n.saveFormation(t).catch(console.warn)} + ,o.onAuto=()=>this.openAutoBattle(),o.onStart=s=>t.startFloor(s,i.opponentId); + const a=null==(e=n.run)?void 0:e.runId; + o.onGiveUp=async()=>{ + var t; + if(!this.busy&&a&&(null==(t=n.run)?void 0:t.runId)===a){ + this.busy=!0,this.stopAutoBattle();
- const e=await uvi.getInstance().battleStart(s,i),n=fvi.getInstance(); + await n.giveUp(),await this.backToLobby()} + finally{ + this.busy=!1} + } + } + ,o.onBack=()=>t.openDeploy(s),o.show()} + static async startFloor(i,s){ + var e,n; + if(t.busy)return; + const h=Zvi.getInstance().run; + if((null==(e=null==h?void 0:h.cardRewards)?void 0:e.current)&&!h.battlePending)return void(await this.openCards()); + t.busy=!0; + const r=!!this.auto; + this.autoBattleInFlight=r; + try{ + const e=await Zvi.getInstance().battleStart(s,i,!r),h=m_i.getInstance();
- ,await n.startBattle()} + ,e_i.getInstance().hideImmediately(),await h.startBattle(),r&&h.showAutoBattleStatus(this.auto?(null==(n=Zvi.getInstance().run)?void 0:n.battleOnly)?Rvi("AUTO_TARGET",this.auto.targetFloor):Rvi("AUTO_STATUS",this.auto.targetFloor,Rvi("battle"===this.auto.priority?"AUTO_NORMAL":"AUTO_ELITE")):Rvi("AUTO_STOPPING"),()=>this.stopAutoBattle())}
- lH.getInstance().showMessage(`${ - sB.getText("","전투 시작 실패")} + this.stopAutoBattle(),this.autoBattleInFlight=!1,pH.getInstance().showMessage(`${ + sB.getText("GAME_1820","전투 시작 실패")}
- }
- const n=uvi.getInstance(); + var n; + const h=Zvi.getInstance(),r=this.autoBattleInFlight||!!(null==(n=h.run)?void 0:n.battleOnly);
+ this.autoBattleInFlight=!1;
- h=await n.battleEnd(i,e)} + r&&h_i.getInstance().show(Rvi("AUTO_SAVING")),o=await h.battleEnd(i,e,!r)}
- if("WIN"===h.result)return void(await t.showCardPick(h,s,!0)); + finally{ + r&&h_i.getInstance().hide()} + if(("WIN"===o.result||"CLEAR"===o.result)&&o.crystalReward)if(vci.getInstance().isIdleBattleActive()||vci.getInstance().returnToIdleBattle(),o.crystalReward.items.length){ + const{ + MiniAscentCrystalRewardPopup:t} + =await ti(async()=>{ + const{ + MiniAscentCrystalRewardPopup:t} + =await Promise.resolve().then(()=>uLi); + return{ + MiniAscentCrystalRewardPopup:t} + } + ,void 0); + await t.getInstance().presentReward(o.crystalReward)} + else o.crystalReward.tickets&&(Zvi.getInstance().crystals=null,pH.getInstance().showMessage(Rvi("CRYSTAL_TICKETS_GRANTED",o.crystalReward.tickets))); + if("WIN"===o.result)return void(await this.openCards()); + if(this.stopAutoBattle(),"RETRY"===o.result){ + const{ + pveText:i} + =await ti(async()=>{ + const{ + pveText:t} + =await Promise.resolve().then(()=>Nvi); + return{ + pveText:t} + } + ,void 0); + return pH.getInstance().showMessage(i("RELIC_RETRY_LIFE",o.run.lives??1)),void(await t.openBattleTab())}
- o.setData(h.summary),o.onExit=()=>{ + c.setData(o.summary,"CLEAR"===o.result?o.chapter:void 0),c.onExit=()=>{
- static async openCardPick(){ - const i=uvi.getInstance().run; - (null==i?void 0:i.offer)&&await t.showCardPick({ - coinGained:0,rewards:[],offer:i.offer,run:i} - ,null,!1)} - static async showCardPick(i,s,e){ - const{ + static async openCardPick(t){ + var i,s,e,n; + const h=Zvi.getInstance(); + let r=h.run,o=null==(i=null==r?void 0:r.cardRewards)?void 0:i.current; + if(!r||!o||r.battlePending||void 0!==t&&o.id!==t)return; + const a=vci.getInstance(); + a.isIdleBattleActive()||a.returnToIdleBattle(); + const c=this.navigationRevision,l=r.runId; + o.revealed||(r=await h.revealCard(o.id),o=null==(s=r.cardRewards)?void 0:s.current),c===this.navigationRevision&&(null==(e=h.run)?void 0:e.runId)===l&&(null==o?void 0:o.revealed)&&(null==(n=o.cards)?void 0:n.length)&&await this.showCardPick({ + coinGained:o.coinGained??0,rewards:[],offer:o.cards,run:r} + ,o.floor,!vci.getInstance().isIdleBattleActive(),o.id,{ + index:r.cardRewards.claimed+1,total:r.cardRewards.total} + )} + static async showCardPick(i,s,e,n,h){ + const r=this.navigationRevision,{
- ,void 0),h=n.getInstance(); + ,void 0); + if(r!==this.navigationRevision)return; + const a=o.getInstance(),c=this.auto;
- clearedFloor:s,coinGained:i.coinGained,rewards:i.rewards,offer:i.offer,corps:i.run.corps} - ),h.onDone=(i,s)=>{ - t.afterPick(i,s,e)} + autoSelect:qt(()=>{ + var t; + return null!==c&&this.auto===c&&(null==(t=Zvi.getInstance().run)?void 0:t.runId)===c.runId} + ,"autoSelect"),rewardProgress:h,offerId:n,clearedFloor:s,coinGained:i.coinGained,rewards:i.rewards,offer:i.offer,corps:i.run.corps} + ),a.onDone=(s,h,r)=>{ + var o; + return t.afterPick(s,h,e,r,n,null===s?void 0:JSON.stringify(null==(o=i.offer)?void 0:o[s]))}
- static async afterPick(i,s,e){ + static async afterPick(i,s,e,n,h,r){ + var o,a,c,l;
- await uvi.getInstance().pickCard(i)} + const s=await Zvi.getInstance().pickCard(i,n,h,r),c=null==(o=s.cardRewards)?void 0:o.current; + if((null==c?void 0:c.id)===h&&(null==c?void 0:c.revealed)&&(null==(a=c.cards)?void 0:a.length))return void(await t.showCardPick({ + coinGained:0,rewards:[],offer:c.cards,run:s} + ,c.floor,e,h,{ + index:s.cardRewards.claimed+1,total:s.cardRewards.total} + ))}
- return lH.getInstance().showMessage(qnt.message),void(await t.backToLobby())} - s?await t.openDeploy(e):e?await t.backToLobby():await t.showLobby()} + throw this.stopAutoBattle(),Qnt} + (null==(l=null==(c=Zvi.getInstance().run)?void 0:c.cardRewards)?void 0:l.current)?await this.openCards():this.auto?await this.continueAutoBattle():s?await t.openDeploy(e):e?await t.backToLobby():await t.showLobby()}
+ this.stopAutoBattle();
+ await bvi.ensure(),this.configureShell();
- Xt(pvi,"MiniAscentFlow"),Yt(pvi,"busy",!1); - let gvi=pvi; - const mvi=class extends DG{ - constructor(){ - super(),Yt(this,"panel",new Ff),Yt(this,"closeControl",new Ff),this.width=616,this.bg.visible=!1,this.txtTitle.visible=!1,this.btnClose.visible=!1,this.panel.eventMode="static",this.addChildAt(this.panel,0),this.closeControl.roundRect(0,0,40,40,10).fill(3353894).moveTo(14,14).lineTo(26,26).moveTo(26,14).lineTo(14,26).stroke({ - color:14207928,width:2.5} - ),this.closeControl.eventMode="static",this.closeControl.cursor="pointer",this.closeControl.on("pointertap",t=>{ - t.stopPropagation(),this.onCloseBtnClick()} - ),this.addChild(this.closeControl)} - drawPanel(){ - this.closeControl.position.set(this.width-56,16),this.panel.clear().roundRect(0,6,this.width,this.height,20).fill({ - color:0,alpha:.3} - ).roundRect(0,0,this.width,this.height,20).fill(2170136).stroke({ - width:1.5,color:7034942} - ).moveTo(24,66).lineTo(this.width-24,66).stroke({ - width:1,color:4799790} - )} - getDefaultPositionY(){ - return YA.safeHeight/2} - show(){ - this.drawPanel(),this.parent||(this.resetPostionY(),super.show())} - onBackButton(){ - return this.onCloseBtnClick(),!0} - } - ; - Xt(mvi,"MiniAscentModalPopup"); - let wvi=mvi; - function vvi(t,i){ - if(!t)return""; - const s=Date.parse(t); - if(!Number.isFinite(s)||!Number.isFinite(i))return""; - const e=Math.max(0,Math.floor((s-i)/6e4)),n=Xt(t=>String(t).padStart(2,"0"),"pad"); - return`${ - n(Math.floor(e/1440))} - D ${ - n(Math.floor(e/60)%24)} - H ${ - n(e%60)} - M`} - Xt(vvi,"formatAscentRemaining"); - const _vi=class t extends He{ - constructor(i=24){ - super(); - const s=new Ff; - s.circle(0,0,i).stroke({ - width:3,color:t.COLOR_INK,alpha:.92} - ),s.circle(0,0,i-4).stroke({ - width:1.5,color:t.COLOR_INK,alpha:.6} - ),s.eventMode="none",this.addChild(s); - const e=new Ff; - e.moveTo(.42*-i,.05*i).lineTo(.1*-i,.36*i).lineTo(.46*i,.32*-i).stroke({ - width:Math.max(3,.16*i),color:t.COLOR_INK,alpha:.92,cap:"round",join:"round"} - ),e.eventMode="none",this.addChild(e),this.eventMode="none"} - setDayRotation(t){ - this.rotation=(37*t%13-6)*(Math.PI/180)} - playPop(){ - zk.killTweensOf(this.scale),zk.fromTo(this.scale,{ - x:2.4,y:2.4} - ,{ - x:1,y:1,duration:.38,ease:"back.out(1.8)"} - ),zk.fromTo(this,{ - alpha:0} - ,{ - alpha:1,duration:.16} - )} - } - ; - Xt(_vi,"StampMark"),Yt(_vi,"COLOR_INK",12597547); - let bvi=_vi; - const Mvi=class t extends He{ - constructor(){ - super(),Yt(this,"bg"),Yt(this,"lblDay"),Yt(this,"reward"),Yt(this,"lblAmount"),Yt(this,"redDot"),Yt(this,"stamp"),Yt(this,"onTap",null),Yt(this,"data",null); - const i=t.WIDTH,s=t.HEIGHT; - this.bg=new Ff,this.bg.roundRect(0,0,i,s,t.BG_RADIUS).fill({ - color:t.BG_COLOR} - ),this.bg.tint=16777215,this.bg.eventMode="none",this.addChild(this.bg),this.lblDay=new AD("",16777215,IL.DEFAULT_FONT_OPTION_16),this.lblDay.textColor=t.COLOR_DAY,this.lblDay.textSize=12,this.lblDay.x=8,this.lblDay.y=4,this.lblDay.eventMode="none",this.addChild(this.lblDay),this.reward=new s6,this.reward.scale=t.ICON_SCALE,this.reward.hideAmount(),this.reward.eventMode="none",this.addChild(this.reward),this.lblAmount=new AD("",16777215,IL.DEFAULT_OUTLINE_FONT_OPTION_18),this.lblAmount.textColor=t.COLOR_AMOUNT,this.lblAmount.textSize=13,this.lblAmount.eventMode="none",this.addChild(this.lblAmount),this.redDot=new Ve(eS.getTexture("UI_Ekkorr","Icon_RedDot_Red")),this.redDot.visible=!1,this.redDot.eventMode="none",this.addChild(this.redDot),this.stamp=new bvi(24),this.stamp.x=.5*i,this.stamp.y=.5*s,this.stamp.visible=!1,this.addChild(this.stamp),this.eventMode="static",this.cursor="pointer",this.hitArea=new Di(0,0,i,s),this.on("pointerup",()=>{ - this.data&&this.onTap&&this.onTap(this.data)} - )} - get width(){ - return t.WIDTH} - get height(){ - return t.HEIGHT} - update(i){ - this.data=i; - const s=t.WIDTH,e=t.HEIGHT,n="claimed"===i.state,h="claimable"===i.state,r=1===i.milestone; - this.bg.tint=n?t.CLAIMED_TINT:h?t.CLAIMABLE_TINT:r?t.MILESTONE_TINT:16777215,this.lblDay.text=String(i.day),this.lblDay.textColor=h||r?t.COLOR_GOLD:t.COLOR_DAY,t.applyReward(this.reward,i.rewardType,i.num),this.reward.hideAmount(),this.reward.x=.5*(s-this.reward.width*t.ICON_SCALE),this.reward.y=10,this.lblAmount.text="gem"===i.rewardType?String(i.num):`x${ - i.num} - `,this.lblAmount.x=.5*(s-this.lblAmount.width),this.lblAmount.y=e-this.lblAmount.height-3,this.redDot.visible=h,this.redDot.x=s-this.redDot.width-2,this.redDot.y=-2,this.reward.alpha=n?.45:1,this.lblAmount.alpha=n?.45:1,this.stamp.visible=n,n&&this.stamp.setDayRotation(i.day)} - playStampPop(){ - this.stamp.playPop()} - static getRewardName(t){ - switch(t){ - case"gem":return sB.getText("COMMON_350","보석"); - case"heroGacha":return sB.getText("GAME_217","영웅 뽑기권"); - case"heroSelect":return sB.getText("GAME_769","영웅 선택권"); - case"petGacha":return sB.getText("GAME_772","정령의 고원 입장권"); - case"treasureGacha":return sB.getText("GAME_218","유물 뽑기권"); - case"runeTicket":return sB.getText("GAME_1500","크리스탈 뽑기권"); - case"honorCoin":return sB.getText("GAME_88","명예코인"); - case"heroTrans":return sB.getText("GAME_1223","영웅 초월권"); - default:return t} - } - static applyReward(t,i,s){ - switch(i){ - case"gem":default:t.setData(t6.gem,s); - break; - case"heroGacha":t.setData(t6.ticket,s,5,-1,t6.heroGacha); - break; - case"heroSelect":t.setData(t6.ticket,s,-1,1,t6.heroSelect); - break; - case"petGacha":t.setData(t6.ticket,s,1,-1,t6.pet); - break; - case"treasureGacha":t.setData(t6.ticket,s,-1,-1,t6.treasureGacha); - break; - case"runeTicket":t.setData(t6.runeTicket,s); - break; - case"honorCoin":t.setData(t6.honorCoin,s); - break; - case"heroTrans":t.setData(t6.trans,s,5,-1,t6.hero)} - } - } - ; - Xt(Mvi,"StampDayCell"),Yt(Mvi,"WIDTH",114),Yt(Mvi,"HEIGHT",72),Yt(Mvi,"ICON_SCALE",.6),Yt(Mvi,"COLOR_DAY",10325880),Yt(Mvi,"COLOR_GOLD",16767354),Yt(Mvi,"COLOR_AMOUNT",16777215),Yt(Mvi,"CLAIMED_TINT",9211020),Yt(Mvi,"MILESTONE_TINT",16771512),Yt(Mvi,"CLAIMABLE_TINT",16774095),Yt(Mvi,"BG_COLOR",6904901),Yt(Mvi,"BG_RADIUS",10); - let yvi=Mvi; - function Evi(t){ - const i=Tx.getInstance().getBookVO(t); - return sB.getText(`UNIT_NAME_${ - t} - `,(null==i?void 0:i.name)??String(t))} - function Avi(t){ - if(0===t.heroStage)return t.heroKind; - const i=Tx.getInstance().getBookVO(t.heroKind); - return i&&i.evolKindNum>0?i.evolKindNum:t.heroKind} - function Svi(t){ - return[sB.getText("","5성"),sB.getText("","6성"),sB.getText("","6성 1초"),sB.getText("","6성 2초"),sB.getText("","6성 3초")][t]??""} - function Tvi(t){ - return sB.getText("","##층").replace(/##/g,String(t))} - function Cvi(t,i){ - const s=i[t.corp]; - switch(t.type){ - case"heroLevel":return`Lv.${ - s.heroLevel??10} - → ${ - (s.heroLevel??10)+(t.amount??2)} - `; - case"soldierLevel":return`Lv.${ - s.soldierLevel??10} - → ${ - (s.soldierLevel??10)+(t.amount??2)} - `; - case"heroUp":return sB.getText("","## 강화").replace(/##/g,Evi(s.heroKind)); - case"soldierAdd":return sB.getText("","+##명 추가").replace(/##/g,String(t.amount??3)); - case"soldierUp":return sB.getText("","##명 강화").replace(/##/g,String(t.amount??3)); - case"newHero":return sB.getText("","## 합류").replace(/##/g,Evi(t.heroKind??0))} - } - function Ivi(t,i){ - const s=i[t.corp]; - switch(t.type){ - case"heroLevel":return sB.getText("","##군단 영웅 레벨 +@@").replace(/##/g,String(t.corp+1)).replace(/@@/g,String(t.amount??2)); - case"soldierLevel":return sB.getText("","##군단 병사 레벨 +@@").replace(/##/g,String(t.corp+1)).replace(/@@/g,String(t.amount??2)); - case"heroUp":return`${ - Svi(s.heroStage)} - → ${ - Svi(s.heroStage+1)} - `; - case"soldierAdd":return sB.getText("","##군단 병사 추가").replace(/##/g,String(t.corp+1)); - case"soldierUp":return sB.getText("","##군단 병사 강화").replace(/##/g,String(t.corp+1)); - case"newHero":return sB.getText("","5번째 군단 생성")} - } - function Ovi(t){ - return t.map(t=>`${ - yvi.getRewardName(t.type)} - ${ - t.amount} - `).join(", ")} - Xt(Evi,"unitName"),Xt(Avi,"heroIconKind"),Xt(Svi,"heroStageLabel"),Xt(Tvi,"floorText"),Xt(Cvi,"cardTitle"),Xt(Ivi,"cardDesc"),Xt(Ovi,"rewardsText"); - const kvi=class t extends He{ - constructor(){ - super(),Yt(this,"rows",[]),Yt(this,"visibleRows",4),this.eventMode="none"; - for(let i=0; - i<5; - i++){ - const s=new He; - s.y=i*(t.ROW_H+t.GAP),s.addChild((new Ff).roundRect(0,0,t.WIDTH,t.ROW_H,12).fill(1512465).stroke({ - color:5588789,width:1} - ).moveTo(118,14).lineTo(118,74).stroke({ - color:4076584,width:1} - )); - const e=new V3; - e.scale.set(.8),s.addChild(e); - const n=new AD("",14988422,IL.DEFAULT_FONT_OPTION_16); - n.textSize=12,s.addChild(n); - const h=[]; - for(let i=0; - i<5; - i++){ - const e=new He; - e.x=128+i*(t.SOLDIER_W+8); - const n=new V3; - n.scale.set(.56); - const r=new AD("",16777215,IL.DEFAULT_FONT_OPTION_16); - e.addChild(n,r),s.addChild(e),h.push({ - root:e,icon:n,count:r} - )} - const r=new He,o=new AD("+",7891798,IL.DEFAULT_FONT_OPTION_18); - o.textSize=32,o.position.set(50-o.width/2,22); - const a=new AD(sB.getText("","빈 군단"),10128246,IL.DEFAULT_FONT_OPTION_15); - a.position.set(144,34),r.addChild(o,a),s.addChild(r); - const c=new AD("×0",10128246,IL.DEFAULT_FONT_OPTION_16); - c.position.set(152,34),s.addChild(c),this.addChild(s),this.rows.push({ - root:s,hero:e,levels:n,soldiers:h,empty:r,noSoldiers:c} - )} - this.setData(null)} - setData(i){ - this.visibleRows=Math.max(4,(null==i?void 0:i.length)??4),this.rows.forEach((s,e)=>{ - var n; - const h=null==i?void 0:i[e]; - s.root.visible=e<this.visibleRows,s.hero.visible=!!h,s.levels.visible=!!h,s.empty.visible=!h,s.noSoldiers.visible=!1; - for(const t of s.soldiers)t.root.visible=!1; - if(!h)return; - s.levels.text=`영웅 ${ - h.heroLevel??10} - · 병사 ${ - h.soldierLevel??10} - `,s.levels.position.set(6,72),s.hero.setDataWithKindNum(Avi(h),Math.max(0,h.heroStage-1)),s.hero.position.set((118-s.hero.width)/2,(72-s.hero.height)/2); - const r=ivi(h,(null==(n=Tx.getInstance().getBookVO(h.soldierKind))?void 0:n.evolKindNum)??0); - s.noSoldiers.visible=0===r.length,r.forEach((i,e)=>{ - const n=s.soldiers[e]; - n.root.visible=!0,n.icon.setDataWithKindNum(i.kindNum,i.trans),n.icon.position.set((t.SOLDIER_W-n.icon.width)/2,10),n.count.text=`×${ - i.count} - `,n.count.position.set((t.SOLDIER_W-n.count.width)/2,60)} - )} - )} - get panelHeight(){ - return this.visibleRows*t.ROW_H+(this.visibleRows-1)*t.GAP} - } - ; - Xt(kvi,"MiniAscentCorpsPanel"),Yt(kvi,"WIDTH",568),Yt(kvi,"ROW_H",88),Yt(kvi,"GAP",8),Yt(kvi,"SOLDIER_W",76); - let xvi=kvi; - const Rvi=class t extends DG{ - constructor(){ - super(),Yt(this,"rows",[]),Yt(this,"lblEmpty"),this.title=sB.getText("","층 보상"); - for(let i=0; - i<t.MAX_ROWS; - i++){ - const t=new AD("",IL.DEFAULT_COLOR,IL.DEFAULT_FONT_OPTION_16); - t.visible=!1,this.contentContainer.addChild(t),this.rows.push(t)} - this.lblEmpty=new AD(sB.getText("","이번 시즌 층 보상이 없습니다"),IL.DEFAULT_COLOR,IL.DEFAULT_FONT_OPTION_16),this.contentContainer.addChild(this.lblEmpty)} - static getInstance(){ - return this._instance||(this._instance=new t),this._instance} - refresh(){ - var i; - const s=(null==(i=uvi.getInstance().season)?void 0:i.floorRewards)??[],e=this.width; - let n=76; - this.lblEmpty.visible=0===s.length,this.lblEmpty.x=.5*(e-this.lblEmpty.width),this.lblEmpty.y=n,0===s.length&&(n+=40); - for(let h=0; - h<this.rows.length; - h++){ - const i=this.rows[h],e=s[h]; - if(i.visible=!!e,!e)continue; - const r=e.claimed?sB.getText("","받음"):""; - i.text=`${ - Tvi(e.floor)} - — ${ - Ovi(e.rewards)} - ${ - r} - `,i.textColor=e.claimed?9425295:16777215,i.x=40,i.y=n,n+=t.ROW_H} - this.height=n+30} - } - ; - Xt(Rvi,"MiniAscentRewardsPopup"),Yt(Rvi,"_instance"),Yt(Rvi,"MAX_ROWS",20),Yt(Rvi,"ROW_H",34); - let Pvi=Rvi; - const Nvi=Xt(t=>sB.getText("",t),"text"),Lvi=class t extends wvi{ - constructor(){ - super(),Yt(this,"body",new He),Yt(this,"shop",null),Yt(this,"busy",!1),Yt(this,"loaded",!1),Yt(this,"failed",!1),this.height=606,this.contentContainer.addChild(this.body)} - static getInstance(){ - return this._instance||(this._instance=new t),this._instance} - show(){ - this.parent||(this.shop=null,this.loaded=!1,this.failed=!1,this.refresh(),super.show(),this.load())} - addLabel(t,i,s,e=16,n=13878960,h){ - const r=new AD(t,n,IL.DEFAULT_FONT_OPTION_16); - return r.textSize=e,h&&r.setWrapWidth(h),r.position.set(i,s),this.body.addChild(r),r} - centered(t,i,s=16,e=13878960){ - const n=this.addLabel(t,0,i,s,e); - n.x=(this.width-n.width)/2} - itemText(t){ - var i; - const s=Nvi("##군단 · ").replace(/##/g,String((t.targetCorp??0)+1)),e=null==(i=uvi.getInstance().run)?void 0:i.corps[t.targetCorp]; - switch(t.type){ - case"heroReplace":return{ - title:s+Nvi("영웅 교체"),badge:"↔",desc:Nvi("표시된 영웅으로 교체 · 레벨과 강화 유지"),rare:!1} - ; - case"heroUp":return{ - title:s+Nvi("영웅 강화"),badge:"↑",desc:e?`${ - Svi(e.heroStage)} - → ${ - Svi(e.heroStage+1)} - `:"",rare:!1} - ; - case"soldierUp":return{ - title:s+Nvi("병사 3명 강화"),badge:"↑3",desc:Nvi("낮은 단계부터 3명 진화·초월"),rare:!1} - } - } - refresh(){ - var t,i,s; - for(const o of this.body.removeChildren())o.destroy({ - children:!0} - ); - const e=uvi.getInstance(); - this.centered(Nvi("등반 상점"),22,24,16767332),this.body.addChild((new Ff).roundRect(24,82,568,50,12).fill(3156255)),this.addLabel(Nvi("보유 코인"),42,97,16); - const n=this.addLabel(String((null==(t=e.season)?void 0:t.coin)??0),0,92,24,16767332); - if(n.x=this.width-44-n.width,this.centered(Nvi("구매 즉시 적용 · 시즌 동안 성장 유지"),147,15,10331309),!this.loaded||!this.shop){ - if(this.centered(Nvi(this.failed?"상점을 불러오지 못했습니다":this.loaded?"상점 정보가 없습니다":"상품을 불러오는 중…"),310,18),this.failed){ - const t=new TG(Nvi("다시 불러오기")); - t.width=300,t.position.set(158,550),t.activated=!this.busy,t.onClick=()=>{ - this.load()} - ,this.body.addChild(t)} - return void this.drawPanel()} - this.shop.offers.forEach((t,i)=>{ - var s,n,h,r; - const o=174+100*i,a=this.itemText(t); - this.body.addChild((new Ff).roundRect(24,o,568,88,12).fill(1512465).stroke({ - color:a.rare?7758143:5062963,width:1} - )),this.body.addChild((new Ff).roundRect(38,o+10,68,68,12).fill(a.rare?4536610:3156515)); - const c=null==(s=e.run)?void 0:s.corps[t.targetCorp],l="heroReplace"===t.type?t.heroKind:"heroUp"===t.type&&c?Avi(c):null==c?void 0:c.soldierKind; - if(l){ - const i=new V3,s="heroReplace"===t.type&&((null==c?void 0:c.heroStage)??0)>0?null==(n=Tx.getInstance().getBookVO(l))?void 0:n.evolKindNum:0; - i.setDataWithKindNum(s||l,"soldierUp"===t.type?0:Math.max(0,((null==c?void 0:c.heroStage)??0)-1)),i.scale.set(Math.min(62/i.width,60/i.height)),i.position.set(72-i.width/2,o+(88-i.height)/2),this.body.addChild(i)} - this.addLabel(a.title,120,o+12,17,t.sold?9275262:16777215,290),this.addLabel(a.desc,120,o+41,14,11379345,290); - const u=new TG(t.sold?Nvi("구매 완료"):t.available?Nvi("## 코인").replace(/##/g,String(t.price)):Nvi("최대 강화")); - u.width=142,u.height=50,u.position.set(432,o+19),u.activated=!this.busy&&!(null==(h=e.run)?void 0:h.battlePending)&&t.available&&((null==(r=e.season)?void 0:r.coin)??0)>=t.price,u.onClick=()=>{ - this.act(()=>e.shopBuy(t.id))} - ,this.body.addChild(u)} - ),0===this.shop.offers.length&&this.centered(Nvi("모든 상점 강화를 완료했습니다"),315,18); - const h=new TG(Nvi("새로고침 · ## 코인").replace(/##/g,String(this.shop.refreshPrice))); - h.color=TG.BROWN,h.width=568,h.height=54,h.position.set(24,492),h.activated=!this.busy&&!(null==(i=e.run)?void 0:i.battlePending)&&this.shop.canRefresh&&((null==(s=e.season)?void 0:s.coin)??0)>=this.shop.refreshPrice; - const r=this.shop.revision; - h.onClick=()=>{ - this.act(()=>e.shopRefresh(r))} - ,this.body.addChild(h),this.centered(Nvi("상품을 모두 구매하면 무료로 새로고침됩니다"),566,14,10331309),this.drawPanel()} - async load(){ - if(!this.busy){ - this.busy=!0,this.failed=!1,this.refresh(); - try{ - this.shop=(await uvi.getInstance().fetchShop()).shop,this.loaded=!0} - catch(t){ - this.failed=!0,lH.getInstance().showMessage(t.message)} - finally{ - this.busy=!1,this.refresh()} - } - } - async act(t){ - if(!this.busy){ - this.busy=!0,this.refresh(); - try{ - const i=await t(); - this.shop=i.shop; - const s=null!=i.targetCorp?Nvi("##군단에 적용했습니다").replace(/##/g,String(i.targetCorp+1)):void 0!==i.autoRefreshed?Nvi("상품을 구매했습니다"):Nvi("상점이 갱신되었습니다"); - lH.getInstance().showMessage(s+(i.autoRefreshed?"\n"+Nvi("모두 구매하여 무료로 새로고침했습니다"):""))} - catch(i){ - lH.getInstance().showMessage(i.message); - try{ - this.shop=(await uvi.getInstance().fetchShop()).shop} - catch{ - this.shop=null,this.loaded=!1,this.failed=!0} - } - finally{ - this.busy=!1,this.refresh()} - } - } - } - ; - Xt(Lvi,"MiniAscentShopPopup"),Yt(Lvi,"_instance"); - let Dvi=Lvi; - const Gvi=class t extends wvi{ - constructor(){ - super(),Yt(this,"countdownTimer",new ex(1e3)),Yt(this,"lblTitle"),Yt(this,"lblInfo"),Yt(this,"lblPeriod"),Yt(this,"lblRun"),Yt(this,"corps"),Yt(this,"btnMain"),Yt(this,"btnShop"),Yt(this,"btnRewards"),Yt(this,"busy",!1),this.lblTitle=new AD(sB.getText("","미니게임 등반"),16767332,IL.DEFAULT_OUTLINE_FONT_OPTION_24),this.lblTitle.textColor=16767332,this.contentContainer.addChild(this.lblTitle),this.lblInfo=new AD("",IL.DEFAULT_COLOR,IL.DEFAULT_FONT_OPTION_16),this.contentContainer.addChild(this.lblInfo),this.lblPeriod=new AD("",10134450,IL.DEFAULT_FONT_OPTION_15),this.lblPeriod.textColor=10134450,this.contentContainer.addChild(this.lblPeriod),this.lblRun=new AD("",16777215,IL.DEFAULT_OUTLINE_FONT_OPTION_18),this.lblRun.textColor=16777215,this.contentContainer.addChild(this.lblRun),this.corps=new xvi,this.contentContainer.addChild(this.corps),this.btnMain=new TG(""),this.btnMain.width=xvi.WIDTH,this.btnMain.height=56,this.btnMain.onClick=this.onMainClick.bind(this),this.contentContainer.addChild(this.btnMain),this.btnShop=new TG(sB.getText("","상점")),this.btnShop.color=TG.BROWN,this.btnShop.onClick=this.onShopClick.bind(this),this.contentContainer.addChild(this.btnShop),this.btnRewards=new TG(sB.getText("","층 보상")),this.btnRewards.color=TG.BROWN,this.btnRewards.onClick=this.onRewardsClick.bind(this),this.contentContainer.addChild(this.btnRewards); - for(const t of[this.lblInfo,this.lblPeriod,this.lblRun])t.align="center",t.setWrapWidth(xvi.WIDTH-24); - this.lblPeriod.textSize=14,this.countdownTimer.addEventListener("timer",()=>{ - this.updatePeriod()&&this.updateLayout()} - ),this.on("added",()=>this.countdownTimer.start()),this.on("removed",()=>this.countdownTimer.stop()),this.updateLayout()} - static getInstance(){ - return this._instance||(this._instance=new t),this._instance} - show(){ - this.render(),super.show(),this.refresh()} - async refresh(){ - const t=uvi.getInstance(); - await t.flushPendingResult(); - try{ - (await t.fetchState()).lostPending&&lH.getInstance().showMessage(sB.getText("","전투 도중 나가서 패배 처리되었습니다"))} - catch(qnt){ - lH.getInstance().showMessage("rejected"===t.stateError?sB.getText("","진행 중인 이벤트가 없습니다"):`${ - sB.getText("","정보 조회 실패")} - : ${ - qnt.message} - `)} - this.render()} - render(){ - const t=uvi.getInstance(),i=t.season,s=t.run,e=t.eventActive&&!!i; - this.lblInfo.text=i?sB.getText("","코인 ##1 최고 ##2").replace(/##1/g,String(i.coin)).replace(/##2/g,Tvi(i.bestFloor)).replace(/##3/g,String(i.allyLevel)):"",this.updatePeriod(),this.lblRun.text=t.lastDefeat&&s?sB.getText("","##층에서 패배했습니다. 군단을 정비하고 다시 도전하세요.").replace(/##/g,String(s.floor)):s?sB.getText("","진행 중 — ## 도전 차례").replace(/##/g,Tvi(s.floor)):t.lastDefeat?`${ - sB.getText("","##층에서 패배했습니다.").replace(/##/g,String(t.lastDefeat.floor))} - \n${ - sB.getText("","획득 코인 : ##").replace(/##/g,String(t.lastDefeat.runCoin))} - `:sB.getText("","새 도전을 시작하세요"),this.corps.setData((null==s?void 0:s.corps)??null),this.corps.visible=!!s||!t.lastDefeat,s?s.offer?this.btnMain.text=sB.getText("","성장 카드 선택"):this.btnMain.text=sB.getText("","## 도전").replace(/##/g,Tvi(s.floor)):this.btnMain.text=sB.getText("","도전 시작"),this.btnMain.activated=e,this.btnShop.activated=e&&!!s,this.btnRewards.activated=e,this.updateLayout()} - updatePeriod(){ - var t; - const i=vvi(null==(t=uvi.getInstance().season)?void 0:t.endTime,cx.time>=0?cx.time:Date.now()),s=i?sB.getText("","남은 시간 ##").replace(/##/g,i):""; - return this.lblPeriod.text!==s&&(this.lblPeriod.text=s,!0)} - updateLayout(){ - const t=this.width; - this.lblTitle.position.set((t-this.lblTitle.width)/2,24); - let i=80; - this.lblInfo.position.set((t-this.lblInfo.width)/2,i),i+=this.lblInfo.height+10,this.lblPeriod.position.set((t-this.lblPeriod.width)/2,i),i+=this.lblPeriod.height+30,this.lblRun.position.set((t-this.lblRun.width)/2,i),i+=this.lblRun.height+20; - const s=24+this.btnMain.height+12+48+24,e=Math.min(1,Math.max(.5,(YA.safeHeight-48-i-s)/this.corps.panelHeight)); - this.corps.scale.set(e),this.corps.position.set((t-xvi.WIDTH*e)/2,i),this.corps.visible&&(i+=this.corps.panelHeight*e),i+=24,this.btnMain.x=.5*(t-this.btnMain.width),this.btnMain.y=i,i+=this.btnMain.height+12; - const n=[this.btnShop,this.btnRewards],h=xvi.WIDTH,r=(h-12*(n.length-1))/n.length; - let o=.5*(t-h); - for(const a of n)a.width=r,a.height=48,a.x=o,a.y=i,o+=a.width+12; - this.height=i+48+24,this.drawPanel()} - async onMainClick(){ - if(this.busy)return; - const t=uvi.getInstance(); - if(t.eventActive){ - this.busy=!0; - try{ - if(!t.run)return await t.start(),void this.render(); - if(t.run.offer)return void(await gvi.openCardPick()); - await gvi.openDeploy(!1)} - catch(qnt){ - lH.getInstance().showMessage(qnt.message),this.render()} - finally{ - this.busy=!1} - } - } - onShopClick(){ - const t=Dvi.getInstance(); - t.refresh(),t.hideHandler=()=>this.render(),t.show()} - onRewardsClick(){ - const t=Pvi.getInstance(); - t.refresh(),t.show()} - } - ; - Xt(Gvi,"MiniAscentLobbyPopup"),Yt(Gvi,"_instance"); + qt(w_i,"MiniAscentFlow"),Xt(w_i,"busy",!1),Xt(w_i,"auto",null),Xt(w_i,"autoBattleInFlight",!1),Xt(w_i,"navigationRevision",0),Xt(w_i,"onVisibility",qt(()=>{ + document.hidden&&w_i.stopAutoBattle()} + ,"onVisibility"));
MiniAscentCardPickPopup 27 hunks, 208 statements
- )),wPi=class t extends DG{ + )); + function gLi(t,i=Math.random){ + const s={ + normal:0,rare:1,epic:2} + ,e=Math.max(...t.map(t=>s[t.rarity??"normal"])),n=t.flatMap((t,i)=>s[t.rarity??"normal"]===e?[i]:[]); + return n.length?n[Math.floor(i()*n.length)]:-1} + qt(gLi,"automaticCardIndex"); + const mLi=class t extends XPi{
- super(),Yt(this,"lblHeader"),Yt(this,"lblReward"),Yt(this,"lblHint"),Yt(this,"rewardBg",new Ff),Yt(this,"backdrop",new Ff),Yt(this,"contentHeight",0),Yt(this,"cardHeight",t.CARD_H),Yt(this,"cards",[]),Yt(this,"btnNext"),Yt(this,"btnLobby"),Yt(this,"offer",null),Yt(this,"selected",-1),Yt(this,"busy",!1),Yt(this,"onDone",null),this.btnClose.visible=!1,this.bg.visible=!1,this.txtTitle.visible=!1,this.width=640,this.backdrop.eventMode="static",this.addChildAt(this.backdrop,0),this.lblHeader=new AD("",16767332,IL.DEFAULT_OUTLINE_FONT_OPTION_32),this.lblHeader.textColor=16767332,this.contentContainer.addChild(this.lblHeader),this.contentContainer.addChild(this.rewardBg),this.lblHint=new AD(sB.getText("","카드를 하나 선택하세요"),13154981,IL.DEFAULT_FONT_OPTION_15),this.contentContainer.addChild(this.lblHint),this.lblReward=new AD("",IL.DEFAULT_COLOR,IL.DEFAULT_FONT_OPTION_15),this.lblReward.align="center",this.lblReward.setWrapWidth(488),this.contentContainer.addChild(this.lblReward); + super(),Xt(this,"usesRunWallet",!0),Xt(this,"lblHeader"),Xt(this,"lblReward"),Xt(this,"lblHint"),Xt(this,"lblCountdown"),Xt(this,"choiceTimer",new eR(100)),Xt(this,"choiceDeadline",0),Xt(this,"autoSelect",qt(()=>!1,"autoSelect")),Xt(this,"presentationId",0),Xt(this,"onVisibility",qt(()=>{ + document.hidden?this.stopCountdown():this.parent&&!this.busy&&this.startCountdown()} + ,"onVisibility")),Xt(this,"rewardBg",new Ff),Xt(this,"rewardCoin",new je(bvi.texture("ui_coin"))),Xt(this,"cardHeight",t.CARD_H),Xt(this,"iconTop",t.ICON_TOP),Xt(this,"cards",[]),Xt(this,"btnNext"),Xt(this,"tabId","battle"),Xt(this,"offer",null),Xt(this,"selected",-1),Xt(this,"busy",!1),Xt(this,"selectionKey",""),Xt(this,"onDone",null),this.canCloseShell=()=>!this.busy,this.btnClose.visible=!1,this.bg.visible=!1,this.txtTitle.visible=!1,this.lblHeader=new yD("",Lvi.accent,{ + ...IL.DEFAULT_FONT_OPTION_16,fontSize:32,lineHeight:38} + ),this.lblHeader.textColor=Lvi.accent,this.contentContainer.addChild(this.lblHeader),this.rewardCoin.eventMode="none",this.contentContainer.addChild(this.rewardBg,this.rewardCoin),this.lblHint=new yD(sB.getText("GAME_1821","카드를 하나 선택하세요"),Lvi.muted,IL.DEFAULT_FONT_OPTION_15),this.contentContainer.addChild(this.lblHint),this.lblCountdown=new yD("",Lvi.accent,IL.DEFAULT_FONT_OPTION_16),this.lblCountdown.align="center",this.lblCountdown.setWrapWidth(540),this.contentContainer.addChild(this.lblCountdown),this.choiceTimer.addEventListener("timer",()=>this.updateCountdown()),this.on("removed",()=>{ + this.stopCountdown(),document.removeEventListener("visibilitychange",this.onVisibility)} + ),this.lblReward=new yD("",Lvi.text,IL.DEFAULT_FONT_OPTION_15),this.lblReward.align="center",this.lblReward.setWrapWidth(488),this.contentContainer.addChild(this.lblReward);
+ const n=new yD("",Lvi.accent,{ + ...IL.DEFAULT_FONT_OPTION_15,fontSize:12,lineHeight:16} + ); + n.eventMode="none",n.align="center",n.setWrapWidth(132),n.y=10,s.addChild(n); + const h=new yD("",Lvi.accent,{ + ...IL.DEFAULT_FONT_OPTION_16,fontSize:18,lineHeight:24} + ); + h.eventMode="none",h.align="center",h.setWrapWidth(148),h.y=26,s.addChild(h);
- const h=new AD("",IL.DEFAULT_COLOR,IL.DEFAULT_FONT_OPTION_16); - h.eventMode="none",h.textColor=16777215,h.align="center",h.setWrapWidth(156),s.addChild(h); - const r=new AD("",IL.DEFAULT_COLOR,IL.DEFAULT_FONT_OPTION_15); - r.eventMode="none",r.textColor=13352358,r.textSize=14,r.align="center",r.setWrapWidth(152),s.addChild(r); + const o=new He,a=new je(bvi.texture(hvi)); + a.width=a.height=100; + const c=new je(bvi.texture("relic_layer_buff_count_up")); + c.width=c.height=100,c.position.set(3,-3),o.addChild(a,c),o.visible=!1,o.eventMode="none",s.addChild(o); + const l=new q3; + l.eventMode="none",l.visible=!1,s.addChild(l); + const u=new He; + u.eventMode="none",s.addChild(u); + const d=new yD("",Lvi.text,{ + ...IL.DEFAULT_FONT_OPTION_16,fontSize:28,lineHeight:34} + ); + d.eventMode="none",d.textColor=Lvi.text,d.align="center",d.setWrapWidth(156),s.addChild(d); + const f=new yD("",Lvi.text,IL.DEFAULT_FONT_OPTION_15); + f.eventMode="none",f.textColor=Lvi.muted,f.textSize=14,f.align="center",f.setWrapWidth(152),s.addChild(f); + const p=new He; + p.eventMode="none",p.visible=!1; + const g=new He,m=new yD("",Lvi.muted,{ + ...IL.DEFAULT_FONT_OPTION_15,fontSize:13,lineHeight:18} + ); + m.align="center",m.setWrapWidth(152),p.addChild(g,m),s.addChild(p);
- const l=new AD("",16777215,IL.DEFAULT_FONT_OPTION_16); + const b=new yD("",Lvi.text,IL.DEFAULT_FONT_OPTION_16);
- const u=new AD("",14204295,IL.DEFAULT_FONT_OPTION_15); - u.eventMode="none",u.y=14,s.addChild(u); + const E=qt(()=>{ + const t=new yD("",Lvi.text,{ + ...IL.DEFAULT_FONT_OPTION_15,fontSize:14} + ); + return t.eventMode="none",t} + ,"levelLabel"),M=E(),A=E(); + w.addChild(M,A); + const y=new He; + y.eventMode="none",s.addChild(y);
- root:s,bg:e,icon:n,targetSummary:o,targetHero:a,targetSoldier:c,targetCount:l,lblTitle:h,lblDesc:r,badge:u,baseY:0} + root:s,bg:e,icon:r,partnerIcon:l,effectIcon:o,effectBadge:c,legionBadges:u,targetSummary:w,targetHero:v,targetSoldier:_,targetCount:b,targetIconHeight:0,targetHeroLevel:M,targetSoldierLevel:A,lblHeading:h,lblRarity:n,lblTitle:d,lblDesc:f,conditions:p,conditionHeader:g,lblConditions:m,tags:y,baseY:0}
- this.btnNext=new TG(sB.getText("","다음 층")),this.btnNext.onClick=()=>this.done(!0),this.contentContainer.addChild(this.btnNext),this.btnLobby=new TG(sB.getText("","로비로")),this.btnLobby.color=TG.BROWN,this.btnLobby.onClick=()=>this.done(!1),this.contentContainer.addChild(this.btnLobby)} + this.btnNext=new QPi(Rvi("NEXT")),this.btnNext.height=t.APPLY_BUTTON_HEIGHT,this.btnNext.onClick=()=>this.done(!0),this.contentContainer.addChild(this.btnNext)}
- var s,e,n; - this.offer=i.offer,this.selected=-1,this.busy=!1; + var s,e,n,h; + this.stopCountdown(),this.presentationId++; + for(const t of this.contentContainer.children)t.scale.set(1); + this.offer=i.offer,this.autoSelect=i.autoSelect??(()=>!1),this.btnNext.text=Rvi("CARDS_APPLY"),this.btnNext.visible=!0; + const r=JSON.stringify([i.offerId,i.clearedFloor,i.offer,i.corps]); + this.selectionKey!==r&&(this.selected=-1),this.selectionKey=r,this.busy=!1;
- this.lblHeader.text=null!=i.clearedFloor?sB.getText("","## 클리어!").replace(/##/g,Tvi(i.clearedFloor)):sB.getText("","성장 카드"),this.lblHeader.x=(h-this.lblHeader.width)/2,this.lblHeader.y=0; + this.lblHeader.text=null!=i.clearedFloor?sB.getText("GAME_1822","## 클리어!").replace(/##/g,rNi(i.clearedFloor)):sB.getText("GAME_1823","성장 카드"),this.lblHeader.x=(o-this.lblHeader.width)/2,this.lblHeader.y=130;
- i.coinGained>0&&r.push(sB.getText("","코인 +##").replace(/##/g,String(i.coinGained))),i.rewards.length>0&&r.push(sB.getText("","우편 보상: ##").replace(/##/g,Ovi(i.rewards))),this.lblReward.visible=r.length>0,this.lblReward.text=r.join(" · "),this.lblReward.x=(h-this.lblReward.width)/2,this.lblReward.y=59,this.rewardBg.clear(),this.lblReward.visible&&this.rewardBg.roundRect(this.lblReward.x-16,51,this.lblReward.width+32,this.lblReward.height+16,12).fill(3353633); - let o=this.lblReward.visible?91+this.lblReward.height:72; - this.lblHint.visible=!!(null==(s=i.offer)?void 0:s.length),this.lblHint.x=(h-this.lblHint.width)/2,this.lblHint.y=o,this.lblHint.visible&&(o+=this.lblHint.height+32); + this.rewardCoin.visible=i.coinGained>0,this.rewardCoin.width=this.rewardCoin.height=24,this.rewardCoin.visible&&a.push(`+${ + i.coinGained} + `),i.rewards.length>0&&a.push(sB.getText("GAME_1824","우편 보상: ##").replace(/##/g,wNi(i.rewards))),this.lblReward.visible=a.length>0; + const c=this.rewardCoin.visible?this.rewardCoin.width+8:0; + this.lblReward.setWrapWidth(488-c),this.lblReward.text=a.join(" · "); + const l=c+this.lblReward.width,u=Math.max(this.rewardCoin.visible?this.rewardCoin.height:0,this.lblReward.height),d=(o-l)/2; + this.rewardCoin.position.set(d,176+(u-this.rewardCoin.height)/2),this.lblReward.position.set(d+c,176+(u-this.lblReward.height)/2),this.rewardBg.clear(),this.lblReward.visible&&this.rewardBg.roundRect(d-16,168,l+32,u+16,12).fill(Lvi.surfaceRaised); + let f=this.lblReward.visible?208+u:182; + this.lblHint.text=sB.getText("GAME_1821","카드를 하나 선택하세요"),this.lblHint.visible=!!(null==(s=i.offer)?void 0:s.length),this.lblHint.x=(o-this.lblHint.width)/2,this.lblHint.y=f,this.lblHint.visible&&(f+=this.lblHint.height+8),this.lblCountdown.visible=!!(null==(e=i.offer)?void 0:e.length)&&this.autoSelect(),this.setCountdownText(7),this.lblCountdown.y=f,this.lblCountdown.visible?f+=this.lblCountdown.height+28:this.lblHint.visible&&(f+=24);
- this.cardHeight=t.CARD_H; - const u={ - heroLevel:sB.getText("","영웅 레벨"),soldierLevel:sB.getText("","병사 레벨"),heroUp:sB.getText("","영웅 강화"),soldierAdd:sB.getText("","병사 추가"),soldierUp:sB.getText("","병사 강화"),newHero:sB.getText("","새 영웅")} - ; + this.cardHeight=t.CARD_H,this.iconTop=t.ICON_TOP; + let w=0; + for(let t=0; + t<p; + t++){ + const s=this.cards[t],e=i.offer[t],n=Dvi[e.rarity??"normal"]??Dvi.normal; + s.lblRarity.text=oNi(e),s.lblRarity.textColor=n.accent,s.lblRarity.x=(g-s.lblRarity.width)/2,s.lblHeading.y=s.lblRarity.y+s.lblRarity.height+6,s.lblHeading.textColor=n.accent,s.lblTitle.textColor=e.rarity&&"normal"!==e.rarity?n.accent:Lvi.text,s.lblHeading.text=uNi(i.offer[t],i.corps),s.lblHeading.x=(g-s.lblHeading.width)/2,this.iconTop=Math.max(this.iconTop,s.lblHeading.y+s.lblHeading.height+10),this.setTags(s,fNi(i.offer[t])),w=Math.max(w,s.tags.height)}
- const h=i.corps[e.corp],r="heroUp"===e.type||"heroLevel"===e.type?h:void 0,a=r?Avi(r):Zwi(e,i.corps); - s.icon.visible=a>0,a>0&&s.icon.setDataWithKindNum(a,r?Math.max(0,r.heroStage-1):0),s.icon.scale.set(1),s.icon.scale.set(Math.min(1,(c-24-2*t.ICON_PADDING)/s.icon.width,(t.ICON_H-2*t.ICON_PADDING)/s.icon.height)),s.icon.x=(c-s.icon.width)/2,s.icon.y=t.ICON_TOP+(t.ICON_H-s.icon.height)/2,s.badge.text=u[e.type],s.badge.x=(c-s.badge.width)/2,s.lblTitle.text=Cvi(e,i.corps),s.lblTitle.x=(c-s.lblTitle.width)/2,s.lblTitle.y=t.ICON_TOP+t.ICON_H+16,s.lblDesc.text=Ivi(e,i.corps),s.lblDesc.x=(c-s.lblDesc.width)/2,s.lblDesc.y=s.lblTitle.y+s.lblTitle.height+16,this.setTargetSummary(s,"newHero"===e.type?void 0:h),this.cardHeight=Math.max(this.cardHeight,s.lblDesc.y+s.lblDesc.height+(s.targetSummary.visible?s.targetSummary.height+40:28)),s.baseY=o,s.root.position.set(l+d*(c+16),o)} - for(const t of this.cards)t.root.visible&&t.targetSummary.visible&&t.targetSummary.position.set((c-t.targetSummary.width)/2,this.cardHeight-t.targetSummary.height-24); - this.drawCards(),a&&(o+=this.cardHeight+40),this.btnLobby.width=184,this.btnNext.width=368,this.btnLobby.position.set(36,o),this.btnNext.position.set(236,o),this.btnNext.activated=!a,this.contentHeight=o+this.btnNext.height,this.layoutScreen()} - setTargetSummary(i,s){ + const n="armyLevel"===e.type||"armyBuff"===e.type?dvi(e):void 0; + if(s.effectIcon.visible=!!n,n){ + s.effectBadge.texture=bvi.texture(n),s.effectBadge.width=s.effectBadge.height=100; + const i=Math.min(g-24-2*t.ICON_PADDING,t.ICON_H-8); + s.effectIcon.scale.set(i/100),s.effectIcon.position.set((g-i)/2,this.iconTop+(t.ICON_H-i)/2)} + s.tags.y=this.iconTop+t.ICON_H+14; + const r=i.corps[e.corp],o="heroUp"===e.type||"heroLevel"===e.type||"legionLevel"===e.type?r:void 0,a=o?eNi(o):Hvi(e,i.corps); + s.icon.visible=!n&&a>0,s.icon.visible&&s.icon.setDataWithKindNum(a,o?Math.max(0,o.heroStage-1):0),s.icon.scale.set(1),s.icon.scale.set(.85*Math.min(1,(g-24-2*t.ICON_PADDING)/s.icon.width,(t.ICON_H-2*t.ICON_PADDING)/s.icon.height)),s.icon.x=(g-s.icon.width)/2,s.icon.y=this.iconTop+(t.ICON_H-s.icon.height)/2; + const c="newHero"===e.type&&(e.soldierKind??0)>0&&(e.amount??0)>0; + if(s.partnerIcon.visible=!n&&(void 0!==e.partner||c),n||void 0===e.partner)!n&&c&&s.partnerIcon.setDataWithKindNum(e.soldierKind,0); + else{ + const t=i.corps[e.partner],n="dualSoldier"===e.type; + s.icon.setDataWithKindNum(n?r.soldierKind:eNi(r),n?0:Math.max(0,r.heroStage-1)),s.partnerIcon.setDataWithKindNum(n?t.soldierKind:eNi(t),n?0:Math.max(0,t.heroStage-1))} + if(s.partnerIcon.visible)for(const[i,h]of[s.icon,s.partnerIcon].entries())h.scale.set(1),h.scale.set(Math.min(72/h.width,70/h.height)),h.position.set(15.5+79*i+(72-h.width)/2,this.iconTop+(t.ICON_H-h.height)/2); + this.setLegionBadges(s,e); + const l="heroUp"===e.type||"soldierUp"===e.type||"soldierAllUp"===e.type||"soldierChange"===e.type; + s.lblTitle.setStyle({ + ...s.lblTitle.getStyle(),fontSize:l?22:28,lineHeight:l?28:34} + ),s.lblTitle.text=pNi(e,i.corps),s.lblTitle.x=(g-s.lblTitle.width)/2,s.lblTitle.y=s.tags.y+w+10,s.lblDesc.text=gNi(e,i.corps),s.lblDesc.visible=!!s.lblDesc.text,s.lblDesc.x=(g-s.lblDesc.width)/2,s.lblDesc.y=s.lblTitle.y+s.lblTitle.height+8,this.setConditions(s,e),"newHero"===e.type&&n?this.setTargetSummary(s,{ + heroKind:e.heroKind??0,heroStage:0,soldierKind:e.soldierKind??0,counts:[e.amount??0,0,0,0,0]} + ,!1):this.setTargetSummary(s,"newHero"===e.type||void 0!==e.partner||"armyLevel"===e.type||"armyBuff"===e.type?void 0:r),this.cardHeight=Math.max(this.cardHeight,(s.lblDesc.visible?s.lblDesc.y+s.lblDesc.height:s.lblTitle.y+s.lblTitle.height)+(s.conditions.visible?24+s.conditions.height+28:(s.targetSummary.visible?s.targetIconHeight+40:28)+t.TRANSLATION_PADDING+t.LEVEL_FOOTER_HEIGHT)),s.baseY=f,s.root.position.set(m+v*(g+16),f)} + for(const v of this.cards)v.root.visible&&v.conditions.visible&&v.conditions.position.set(0,this.cardHeight-v.conditions.height-28),v.root.visible&&v.targetSummary.visible&&v.targetSummary.position.set((g-v.targetSummary.width)/2,this.cardHeight-t.LEVEL_FOOTER_HEIGHT-v.targetIconHeight-24); + this.drawCards(),p&&(f+=this.cardHeight+40),this.btnNext.width=280,this.btnNext.position.set((o-this.btnNext.width)/2,f),this.btnNext.activated=!p||this.selected>=0,this.layoutScreen()} + setLegionBadges(i,s){ + for(const t of i.legionBadges.removeChildren())t.destroy({ + children:!0} + ); + const e="armyLevel"===s.type||"armyBuff"===s.type?["A"]:[...new Set([s.corp,...void 0!==s.partner?[s.partner]:[]])].map(t=>String(t+1)); + e.forEach((s,n)=>{ + const h=new He,r=new je(bvi.texture("relic_layer_legion_tag")); + r.width=r.height=100; + const o=new yD(s,3151104,{ + ...IL.DEFAULT_FONT_OPTION_16,fontSize:20,lineHeight:22,fontWeight:"900",stroke:{ + color:3151104,width:.6,join:"round"} + } + ); + o.scale.set(Math.min(1,22/Math.max(1,o.width),22/Math.max(1,o.height))),o.position.set(72+(22-o.width)/2,2+(22-o.height)/2),h.addChild(r,o),h.position.set(t.CARD_W-112-36*(e.length-1-n),this.iconTop),i.legionBadges.addChild(h)} + )} + setTags(i,s){ + for(const t of i.tags.removeChildren())t.destroy({ + children:!0} + ); + const e=t.CARD_W-32,n=[[]]; + let h=0; + s.forEach(t=>{ + const s=new He,r=new yD(t,osi,{ + ...IL.DEFAULT_FONT_OPTION_15,fontSize:12,lineHeight:16} + ); + r.align="center",r.setWrapWidth(e-16); + const o=Math.ceil(r.width)+16,a=Math.max(22,r.height+6),c=(new Ff).roundRect(0,0,o,a,11).fill({ + color:osi,alpha:.18} + ); + r.position.set((o-r.width)/2,(a-r.height)/2),s.addChild(c,r),h&&h+4+s.width>e&&(n.push([]),h=0),n[n.length-1].push(s),h+=(h?4:0)+s.width,i.tags.addChild(s)} + ); + let r=0; + n.forEach(i=>{ + const s=i.reduce((t,i)=>t+i.width,0)+4*Math.max(0,i.length-1); + let e=(t.CARD_W-s)/2; + for(const t of i)t.position.set(e,r),e+=t.width+4; + r+=Math.max(0,...i.map(t=>t.height))+5} + )} + setConditions(i,s){ + const e=mNi(s); + i.conditions.visible=!!e,e&&(asi(i.conditionHeader,[{ + label:Rvi("TACTIC_REQUIRE_HEADER"),color:osi} + ]),i.conditionHeader.scale.set(1),i.conditionHeader.scale.set(Math.min(1,152/Math.max(1,i.conditionHeader.width))),i.conditionHeader.position.set((t.CARD_W-i.conditionHeader.width)/2,0),i.lblConditions.text=e,i.lblConditions.position.set((t.CARD_W-i.lblConditions.width)/2,22))} + setTargetSummary(i,s,e=!0){
- const e=[i.targetHero,i.targetSoldier,i.targetCount],n=Math.max(...e.map(t=>t.height)); + const n=[i.targetHero,i.targetSoldier,i.targetCount],h=Math.max(...n.map(t=>t.height));
- i.targetSummary.scale.set(Math.min(1,(t.CARD_W-28)/(h-4)))} + const o=qt((t,i,s,e,n)=>{ + i.visible=e,e&&(i.text=`Lv.${ + s} + `,i.scale.set(1),i.scale.set(Math.min(1,(t.width-8)/Math.max(1,i.width))),i.position.set(t.x+(t.width-i.width)/2+n,h+3))} + ,"placeLevel"); + o(i.targetHero,i.targetHeroLevel,s.heroLevel??1,e,-6),o(i.targetSoldier,i.targetSoldierLevel,s.soldierLevel??1,e&&s.soldierKind>0,-4),i.targetSummary.scale.set(Math.min(1,(t.CARD_W-28)/(r-4))),i.targetIconHeight=h*i.targetSummary.scale.y}
- this.height=YA.safeHeight,this.pivot.set(0),this.position.set(0); - const t=Math.min(1,(YA.safeHeight-64)/this.contentHeight); - this.contentContainer.scale.set(t),this.contentContainer.x=(640-640*t)/2,this.contentContainer.y=Math.max(32,.43*(YA.safeHeight-this.contentHeight*t)); - const i=Math.max(640,YA.stageWidth),s=Math.max(YA.safeHeight,YA.stageHeight); - this.backdrop.clear().rect(-i,-s,3*i,3*s).fill({ - color:921613,alpha:.78} - )} + var i; + const s=(null==(i=this.cards.find(t=>t.root.visible))?void 0:i.baseY)??174,e=this.height-t.APPLY_BUTTON_HEIGHT-12,n=Math.min(1,Math.max(1,e-24-s)/this.cardHeight); + for(let h=0; + h<this.cards.length; + h++){ + const i=this.cards[h]; + i.root.scale.set(n),i.root.x=(this.width-(3*t.CARD_W+32)*n)/2+200*h*n,i.root.y=i.baseY} + this.btnNext.y=e,this.drawPanel()}
- zk.killTweensOf(this),this.alpha=1,this.scale.set(1),this.eventMode="auto",this.interactiveChildren=!0,this.layoutScreen(),nG.getInstance().addPopup(this),this.cards.forEach((t,i)=>{ - zk.killTweensOf(t.root); - const s=t.baseY-(i===this.selected?10:0); - zk.fromTo(t.root,{ - y:s+24,alpha:0} + super.show(),document.addEventListener("visibilitychange",this.onVisibility),this.startCountdown(),this.cards.forEach((t,i)=>{ + zk.killTweensOf(t.root),zk.fromTo(t.root,{ + y:t.baseY+16,alpha:0}
- y:s,alpha:1,duration:.24,delay:.06*i,ease:"power2.out"} + y:t.baseY,alpha:1,duration:.2,delay:.05*i}
- hide(){ - this.parent&&(this.eventMode="none",this.interactiveChildren=!1,zk.killTweensOf(this),zk.to(this,{ - alpha:0,duration:.15,onComplete:Xt(()=>this.hideImmediately(),"onComplete")} - ))}
- zk.killTweensOf(this); + this.stopCountdown();
+ setCountdownText(t){ + this.lblCountdown.text=Rvi("CARD_AUTO_PICK",t),this.lblCountdown.x=(this.width-this.lblCountdown.width)/2} + startCountdown(){ + var t; + this.stopCountdown(),this.autoSelect()&&!this.busy&&(null==(t=this.offer)?void 0:t.length)&&!document.hidden&&(this.choiceDeadline=performance.now()+7e3,this.setCountdownText(7),this.lblCountdown.visible=!0,this.choiceTimer.start())} + stopCountdown(){ + this.choiceTimer.stop(),this.choiceDeadline=0,this.lblCountdown.visible=!1} + updateCountdown(){ + if(!this.autoSelect())return void this.stopCountdown(); + if(!this.parent||this.busy||document.hidden||!this.choiceDeadline)return; + const t=Math.max(0,Math.ceil((this.choiceDeadline-performance.now())/1e3)); + if(this.setCountdownText(t),t>0)return; + const i=gLi(this.offer??[]); + i<0?this.stopCountdown():(this.select(i),this.done(!0))}
+ var i,s;
- const e=s===this.selected,n=this.cards[s]; + const h=n===this.selected,r=this.cards[n],o=Dvi[(null==(s=null==(i=this.offer)?void 0:i[n])?void 0:s.rarity)??"normal"]??Dvi.normal;
- ).roundRect(0,0,i,this.cardHeight,12).fill(e?4011300:2630944).stroke({ - width:e?3:1.5,color:e?16767332:6640445} - ).roundRect(12,t.ICON_TOP,i-24,t.ICON_H,8).fill({ - color:1052171,alpha:.35} - ).roundRect(i/2-16,this.cardHeight-12,32,3,1.5).fill(e?16767332:6640445),e&&n.bg.circle(i-13,13,10).fill(16767332).moveTo(i-18,13).lineTo(i-14,17).lineTo(i-8,9).stroke({ + ).roundRect(0,0,e,this.cardHeight,12).fill(h?o.surfaceSelected:o.surface).stroke({ + width:h?3:1.5,color:h?o.accent:o.border} + ).roundRect(12,this.iconTop,e-24,t.ICON_H,8).fill({ + color:o.accent,alpha:.12} + ).roundRect(e/2-16,this.cardHeight-12,32,3,1.5).fill(h?o.accent:o.border),r.conditions.visible&&r.bg.moveTo(16,r.conditions.y-12).lineTo(e-16,r.conditions.y-12).stroke({ + width:1,color:o.border,alpha:.65} + ),h&&r.bg.circle(e-13,13,10).fill(o.accent).moveTo(e-18,13).lineTo(e-14,17).lineTo(e-8,9).stroke({
- if(i&&this.selected<0)return void lH.getInstance().showMessage(sB.getText("","카드를 하나 선택하세요")); - this.busy=!0; - const s=this.onDone,e=i?this.selected:null; - this.hide(),queueMicrotask(()=>{ - s&&s(e,t)} + if(i&&this.selected<0)return void pH.getInstance().showMessage(sB.getText("GAME_1821","카드를 하나 선택하세요")); + this.busy=!0,this.stopCountdown(),this.btnNext.activated=!1,this.drawPanel(); + const s=this.presentationId,e=this.onDone,n=i?this.selected:null; + queueMicrotask(async()=>{ + try{ + await(null==e?void 0:e(n,t))} + catch(i){ + pH.getInstance().showMessage(i.message)} + finally{ + s===this.presentationId&&(this.busy=!1,this.btnNext.activated=this.selected>=0,this.drawPanel())} + }
- onBackButton(){ - return!0}
- Xt(wPi,"MiniAscentCardPickPopup"),Yt(wPi,"_instance"),Yt(wPi,"CARD_W",184),Yt(wPi,"CARD_H",292),Yt(wPi,"ICON_TOP",44),Yt(wPi,"ICON_H",104),Yt(wPi,"ICON_PADDING",12); + qt(mLi,"MiniAscentCardPickPopup"),Xt(mLi,"_instance"),Xt(mLi,"CARD_W",184),Xt(mLi,"TRANSLATION_PADDING",30),Xt(mLi,"LEVEL_FOOTER_HEIGHT",40),Xt(mLi,"CARD_H",292+mLi.TRANSLATION_PADDING+mLi.LEVEL_FOOTER_HEIGHT),Xt(mLi,"ICON_TOP",60),Xt(mLi,"ICON_H",104),Xt(mLi,"ICON_PADDING",12),Xt(mLi,"APPLY_BUTTON_HEIGHT",60);
MiniAscentChapterRewardItem 1 hunks, 170 statements
+ )),_Li=class t extends He{ + constructor(i,s,e,n){ + super(),this.label=`chapter-reward:${ + i.floor} + `,this.addChild((new Ff).roundRect(0,0,s,t.HEIGHT,10).fill({ + color:i.claimable?Lvi.surfaceSelected:Lvi.surface,alpha:.9} + ).stroke({ + color:i.claimable?Lvi.accent:Lvi.border,width:1} + )); + const h=new yD(Rvi("CHAPTER_WAVES",i.floor),Lvi.accent,{ + ...IL.DEFAULT_FONT_OPTION_16,fontSize:14} + ); + let r; + if(h.scale.set(Math.min(1,(s-12)/Math.max(1,h.width))),h.position.set((s-h.width)/2,9),this.addChild(h),i.reward){ + const t=new r6; + t.setDataFrom(i.reward),t.scale.set(.9),t.position.set((s-t.width*t.scale.x)/2,33),r=t} + else{ + const t=new je(bvi.texture("ui_challenge_seal")); + t.width=t.height=56,t.position.set((s-56)/2,36),r=t} + r.eventMode="none",this.addChild(r); + const o=qt(()=>{ + const t=new je(bvi.texture(pvi)); + return t.width=t.height=30,t} + ,"crystalTicketIcon"),a=qt(()=>{ + const t=new je(bvi.texture("ui_challenge_seal")); + return t.width=t.height=30,t} + ,"sealIcon"),c=[]; + i.crystalTickets&&c.push({ + icon:o,count:i.crystalTickets,label:"chapter-crystal-tickets"} + ),i.seals&&c.push({ + icon:a,count:i.seals,label:"chapter-seals"} + ),c.forEach((t,i)=>{ + const e=new He,n=t.icon(),h=new yD(`×${ + t.count} + `,Lvi.accent,{ + ...IL.DEFAULT_FONT_OPTION_16,fontSize:15} + ); + h.position.set(35,(30-h.height)/2),e.addChild(n,h),e.position.set((s-e.width)/2,96-32*(c.length-1-i)),e.label=t.label,this.addChild(e)} + ); + const l=new QPi(Rvi(i.claimed?"CRYSTAL_CLAIMED":"CRYSTAL_CLAIM")); + l.label=`chapter-claim:${ + i.floor} + `,l.width=s-12,l.height=42,l.lbl.textSize=14,l.lbl.scale.set(Math.min(1,(l.width-24)/Math.max(1,l.lbl.width))),l.lbl.position.set(-l.lbl.width/2,-l.lbl.height/2),l.position.set(6,128),l.activated=!e&&i.claimable,l.onClick=n,this.addChild(l),i.claimed&&(r.alpha=.55)} + } + ; + qt(_Li,"MiniAscentChapterRewardItem"),Xt(_Li,"HEIGHT",176); + let bLi=_Li; + const ELi=class t extends XPi{ + constructor(){ + super(),Xt(this,"art",new je(bvi.texture("encounter_battle"))),Xt(this,"chapterPanel",new Ff),Xt(this,"artRequested",!1),Xt(this,"artLoaded",!1),Xt(this,"artTop",290),Xt(this,"artBottom",600),Xt(this,"status",new yD("",Lvi.accent,{ + ...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} + )),Xt(this,"rewards",new He),Xt(this,"chapterLabel",new yD("",Lvi.accent,{ + ...IL.DEFAULT_FONT_OPTION_16,fontSize:42,lineHeight:50} + )),Xt(this,"waveLabel",new yD("",Lvi.text,{ + ...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 DNi(Rvi("NORMAL_MODE"))),Xt(this,"modeHard",new DNi(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=()=>{ + this.startRun()} + ,this.rewardLabel.setWrapWidth(480),this.rewardLabel.align="center",this.chapterLabel.setWrapWidth(340),this.chapterLabel.align="center",this.waveLabel.setWrapWidth(340),this.waveLabel.align="center"; + for(const[t,i]of[[this.previousChapter,-1],[this.nextChapter,1]]){ + t.width=68,t.height=68; + const s=new je(bvi.texture("ui_arrow_up")); + s.anchor.set(.5),s.scale.set(Math.min(36/s.width,36/s.height)),s.rotation=i*Math.PI/2,t.addChildToContainer(s)} + 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"} + static getInstance(){ + return this.instance??(this.instance=new t)} + show(){ + var t,i,s; + const e=Zvi.getInstance(),n=this.height<760; + this.hardMode=!1; + const h=this.chapterList(); + h.some(t=>t.main===this.selectedChapter)||(this.selectedChapter=(null==(t=h[h.length-1])?void 0:t.main)??0); + const r=this.hardMode?0:(null==(i=h.find(t=>{ + var i; + return null==(i=t.rewards)?void 0:i.some(t=>t.claimable)} + ))?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):""; + const c=h.findIndex(t=>t.main===this.selectedChapter); + 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); + const l=this.status.visible?this.status.y+this.status.height+18:138,u=this.height-(n?124:164); + this.chapterPanel.clear().roundRect(32,l,this.width-64,u-l,22).fill({ + color:Lvi.surfaceRaised,alpha:.55} + ).stroke({ + color:Lvi.border,width: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 f=this.chapterLabel.y+(this.chapterLabel.height+8+this.waveLabel.height-68)/2; + this.previousChapter.position.set(48,f),this.nextChapter.position.set(this.width-116,f),this.artTop=a?this.waveLabel.y+this.waveLabel.height+(n?8:16):l+16; + const p=a?(null==o?void 0:o.rewards)??[]:[]; + for(const v of this.rewards.removeChildren())v.destroy({ + children:!0} + ); + if(this.rewardLabel.visible=this.rewards.visible=p.length>0,p.length){ + const t=10,i=(this.width-96-t*(p.length-1))/p.length; + this.rewards.position.set(48,u-bLi.HEIGHT-16),p.forEach((s,e)=>{ + const n=new bLi(s,i,this.busy,()=>{ + this.claimChapterReward(s.floor)} + ); + n.x=e*(i+t),this.rewards.addChild(n)} + ),this.rewardLabel.position.set((this.width-this.rewardLabel.width)/2,this.rewards.y-this.rewardLabel.height-12)} + this.artBottom=p.length?this.rewardLabel.y-12:u-16,this.layoutArt(),this.artRequested||(this.artRequested=!0,bvi.loadChapterArt().then(t=>{ + this.art.texture=t,this.artLoaded=!0,this.layoutArt()} + ).catch(t=>{ + this.artRequested=!1} + )); + const g=null==(s=e.season)?void 0:s.energy,m=!!g&&!e.run&&g.current<g.perRun; + 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.energyCost.text=String(g.perRun),this.energyCost.textColor=m?Lvi.danger:Lvi.text; + const t=this.energyIcon.width+6+this.energyCost.width,i=this.start.y-(n?22:28); + this.energyIcon.position.set((this.width-t)/2,i),this.energyCost.position.set(this.energyIcon.x+this.energyIcon.width+6,i+(this.energyIcon.height-this.energyCost.height)/2)} + 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()} + layoutArt(){ + const t=this.artLoaded?this.width-112:210,i=Math.max(48,this.artBottom-this.artTop); + this.art.scale.set(Math.min(t/this.art.texture.width,i/this.art.texture.height)),this.art.position.set((this.width-this.art.width)/2,this.artTop+(i-this.art.height)/2)} + chapterList(){ + var t; + const i=Zvi.getInstance().season,s=this.hardMode?null==(t=null==i?void 0:i.hard)?void 0:t.chapters:null==i?void 0:i.chapters; + return(null==s?void 0:s.filter(t=>t.unlocked))??[]} + setMode(t){ + this.busy||this.hardMode===t||t||(this.hardMode=t,this.selectedChapter=0,this.show())} + changeChapter(t){ + if(this.busy)return; + const i=this.chapterList(),s=i[i.findIndex(t=>t.main===this.selectedChapter)+t]; + s&&(this.selectedChapter=s.main,this.show())} + async claimChapterReward(t){ + var i,s,e,n,h,r,o; + if(this.busy)return; + const a=Zvi.getInstance(),c=this.selectedChapter,l=this.hardMode; + if(!(null==(e=null==(s=null==(i=this.chapterList().find(t=>t.main===c))?void 0:i.rewards)?void 0:s.find(i=>i.floor===t))?void 0:e.claimable))return; + const u=a.season.seasonId; + this.busy=!0,this.show(); + try{ + await a.claimChapterReward(c,t,l||void 0),pH.getInstance().showMessage(Rvi("CHAPTER_REWARD_RECEIVED"))} + catch(d){ + try{ + const i=await a.fetchState(),s=l?null==(n=i.season.hard)?void 0:n.chapters:i.season.chapters; + i.season.seasonId===u&&(null==(o=null==(r=null==(h=null==s?void 0:s.find(t=>t.main===c))?void 0:h.rewards)?void 0:r.find(i=>i.floor===t))?void 0:o.claimed)?pH.getInstance().showMessage(Rvi("CHAPTER_REWARD_RECEIVED")):pH.getInstance().showMessage(d.message)} + catch{ + pH.getInstance().showMessage(d.message)} + } + finally{ + this.busy=!1,this.parent&&this.show()} + } + async startRun(){ + if(!this.busy){ + this.busy=!0,this.start.activated=!1; + try{ + const t=Zvi.getInstance(); + t.run||await t.start(this.selectedChapter||void 0,this.hardMode||void 0),await v_i.openBattleTab()} + catch(t){ + pH.getInstance().showMessage(t.message)} + finally{ + this.busy=!1,this.parent&&this.show()} + } + } + } + ; + qt(ELi,"MiniAscentLobbyPopup"),Xt(ELi,"instance"); + let MLi=ELi; + const ALi=Object.freeze(Object.defineProperty({ + __proto__:null,MiniAscentLobbyPopup:MLi} + ,Symbol.toStringTag,{ + value:"Module"}
MiniAscentBattleProgress 1 hunks, 130 statements
- super(),Yt(this,"buffContext",$R.MiniGame),Yt(this,"onFinish",null)} + super(),Xt(this,"background",new Ff),Xt(this,"statusText",new yD("",Lvi.accent,{ + ...IL.DEFAULT_FONT_OPTION_16,fontSize:20,lineHeight:26,align:"center"} + )),this.eventMode="none",this.addChild(this.background,this.statusText)} + static getInstance(){ + return this.instance??(this.instance=new t)} + show(t){ + const i=Math.min(380,Xy.stageWidth-48); + this.statusText.setWrapWidth(i-32),this.statusText.text=t; + const s=Math.max(58,this.statusText.height+28); + this.statusText.position.set((i-this.statusText.width)/2,(s-this.statusText.height)/2),this.background.clear().roundRect(0,0,i,s,12).fill({ + color:Lvi.surface,alpha:.95} + ).stroke({ + color:Lvi.border,width:1} + ),this.position.set((Xy.stageWidth-i)/2,.68*Xy.safeHeight-s/2),b4t.getInstance().addChild(this)} + hide(){ + this.removeFromParent()} + } + ; + qt(n_i,"MiniAscentBattleProgress"),Xt(n_i,"instance"); + let h_i=n_i; + const r_i=qt(t=>t>=4?t-2:0,"crystalSecondaryGrade"); + function o_i(t,i,s){ + const e={ + ...t} + ; + for(const[n,h]of Object.entries((null==i?void 0:i[s])??{ + } + )){ + const t=n; + e[t]=(e[t]??0)+h} + return e} + qt(o_i,"combineCrystalStats"); + const a_i=[16747381,9691812,13345023,9033215,16765563]; + function c_i(t){ + return Math.floor(t/100)-1} + function l_i(t,i,s,e=-1){ + return!t.battlePending&&c_i(i.kind)===s&&t.items.some(t=>t.id===i.id)&&!(t.slots[s]??[]).some((s,n)=>{ + var h; + return n!==e&&(null==(h=t.items.find(t=>t.id===s))?void 0:h.kind)===i.kind&&s!==i.id} + )} + function u_i(t,i,s,e){ + if(!t.length||!Number.isSafeInteger(i)||i<=t.length)return; + const n=t.map(t=>({ + ...t} + )),h=e?"y":"x",r=[...new Set(n.map(t=>t[h]))].sort((t,i)=>t-i),o=r.length>1?r[1]-r[0]:24,a=e?s?1:-1:s?-1:1,c=a>0?r[r.length-1]:r[0],l=n.filter(t=>t[h]===c); + for(; + t.length<i; + ){ + const i=t.length-n.length,s={ + ...l[i%l.length]} + ; + s[h]+=a*o*(1+Math.floor(i/l.length)),t.push(s)} + } + qt(c_i,"crystalCorp"),qt(l_i,"canEquipCrystal"),qt(u_i,"extendMiniAscentPositions"); + const d_i={ + [fR.HUMAN]:{ + type:"stun",seconds:.5} + ,[fR.ELF]:{ + type:"poison",seconds:3} + ,[fR.UNDEAD]:{ + type:"paralysis",seconds:2} + ,[fR.ORC]:{ + type:"chill",seconds:2} + } + ; + function f_i(t,i){ + if(t.isSummoned)return; + const s=d_i[t.tribe]; + s&&t.addNormalAttackEffect(s.type,s.seconds,.05,{ + id:"mini-ascent:racial",cooldownSeconds:3,cooldownGroup:`mini-ascent:racial:${ + s.type} + `,slowRatio:.3,poisonAttackRatio:.25,poisonTickSeconds:1} + )} + function p_i(t,i,s="soldier"){ + if(!t.isSummoned)for(const e of i){ + if(e.target&&e.target!==s)continue; + const i=e.trigger??"normal"; + "soldier"===e.target&&"skill"!==i||("skill"===i?t.addSkillAttackEffect.bind(t):t.addNormalAttackEffect.bind(t))(e.type,e.seconds,e.chance,{ + id:`mini-ascent:crystal:${ + i} + :${ + e.type} + `,cooldownSeconds:3,cooldownGroup:`mini-ascent:crystal:${ + e.type} + `,slowRatio:.3,poisonAttackRatio:.25,poisonTickSeconds:1} + )} + } + qt(f_i,"registerMiniAscentAttackEffects"),qt(p_i,"registerCrystalAttackEffects"); + const g_i=class t extends oZt{ + constructor(){ + super(),Xt(this,"crystalStats",[]),Xt(this,"crystalProcs",[]),Xt(this,"autoStatus",null),Xt(this,"buffContext",$x.MiniGame),Xt(this,"onFinish",null)} + setTeams(t){ + super.setTeams(t),this.crystalProcs=t.allyCrystalProcs??[],this.crystalStats=t.allyCrystalStats??[]} + getAllyGrowthBonuses(t,i){ + return o_i(super.getAllyGrowthBonuses(t,i),this.crystalStats[t],i?"hero":"soldier")} + onAllyCorpReady(t,i,s=!1){ + const e=this.crystalProcs[i]; + void 0===e?f_i(t):p_i(t,e,s?"hero":"soldier")} + extendSoldierPositions(t,i,s,e){ + u_i(t,(null==i?void 0:i.reduce((t,i)=>t+Math.max(0,i.count),0))??t.length,s,e)} + showAutoBattleStatus(t,i){ + var s; + null==(s=this.autoStatus)||s.destroy({ + children:!0} + ); + const e=new He; + this.autoStatus=e,e.position.set(12,Xy.SAFE_AREA_TOP+44); + const n=new yD(t,16771e3,{ + ...IL.DEFAULT_FONT_OPTION_16,fontSize:14,lineHeight:18} + ); + n.setWrapWidth(232),e.addChild(n); + const h=new He,r=new Ff; + h.position.set(0,n.height+6); + const o=new yD(Rvi("AUTO_STOP"),16771e3,{ + ...IL.DEFAULT_FONT_OPTION_16,fontSize:14,lineHeight:18} + ); + o.setWrapWidth(208),o.position.set(12,7); + const a=Math.max(34,o.height+14); + r.roundRect(0,0,232,a,8).fill({ + color:3156772,alpha:.92} + ).stroke({ + color:16766338,width:1} + ),h.addChild(r,o),h.eventMode="static",h.cursor="pointer",h.hitArea=new Di(0,0,232,a),h.on("pointertap",t=>{ + t.stopPropagation(),i(),h.eventMode="none",n.text=Rvi("AUTO_STOPPING"),h.visible=!1} + ),e.addChild(h),b4t.getInstance().addChild(e)} + cleanup(){ + var t; + null==(t=this.autoStatus)||t.destroy({ + children:!0} + ),this.autoStatus=null,super.cleanup()}
MiniAscentAssets 1 hunks, 123 statements
- )); + )),hvi="relic_layer_all_legions",rvi={ + armyLevel:"relic_layer_buff_count_up"} + ,ovi={ + attackSpeedPct:"relic_layer_buff_attack_speed",moveSpeedPct:"relic_layer_buff_move_speed",attackRangePct:"army_layer_buff_attack_range",attackPct:"army_layer_buff_attack_power",hpPct:"army_layer_buff_health"} + ,avi={ + 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"]} + ,cvi="relic_layer_background",lvi="relic_layer_legion_tag",uvi=[...new Set([hvi,...Object.values(rvi),...Object.values(ovi),cvi,...Object.values(avi).flat(),lvi])]; + function dvi(t){ + return"armyBuff"===t.type&&t.buffStat?ovi[t.buffStat]:rvi[t.type]} + function fvi(t){ + return[cvi,...avi[t]??["ui_challenge_seal"],lvi]} + qt(dvi,"cardEffectIcon"),qt(fvi,"relicIconLayers"); + const pvi="crystal_gem",gvi=["crystal_bg_normal","crystal_bg_rare","crystal_bg_epic","crystal_bg_legendary","crystal_bg_mythic"],mvi=["crystal_stars_1","crystal_stars_2","crystal_stars_3","crystal_stars_4","crystal_stars_5"],wvi={ + stun:"crystal_effect_stun",poison:"crystal_effect_poison",paralysis:"crystal_effect_paralysis",freeze:"crystal_effect_chill",attackPct:"crystal_effect_attack",hpPct:"crystal_effect_health",attackSpeedPct:"crystal_effect_attack_speed",moveSpeedPct:"crystal_effect_move_speed",attackRangePct:"crystal_effect_range",soldierCap:"crystal_effect_capacity",promotion:"crystal_effect_promotion"} + ,vvi=[pvi,"crystal_effect_plate",...gvi,...mvi,...Object.values(wvi)],_vi=class{ + static async loadCrystalArt(){ + return await this.ensure(),this.texture(pvi)} + static loadChapterArt(){ + return this.chapterArtRequest??(this.chapterArtRequest=ld.load(tS.getAssetPath("mini-ascent-chapter-journey.png?v=20260923-1")).catch(t=>{ + throw this.chapterArtRequest=null,t} + ))} + static get ready(){ + return null!==this.sheet} + static ensure(){ + return this.sheet?Promise.resolve():(this.pending||(this.pending=this.load().finally(()=>{ + this.pending=null} + )),this.pending)} + static async load(){ + const t=`?v=${ + Qy.appVersion} + &atlas=20260926-energy-icon`,i=await fetch(tS.getAssetPath(`UI_MINI.json${ + t} + `)); + if(!i.ok)throw new Error(`UI_MINI: HTTP ${ + i.status} + `); + const s=await i.json(),e=await ld.load(tS.getAssetPath(`UI_MINI.ktx2${ + t} + `)),n=new Hn(e,s); + await n.parse(); + for(const h of["background_map","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 ${ + h} + `); + this.sheet=n} + static texture(t){ + var i; + const s=null==(i=this.sheet)?void 0:i.textures[t]; + if(!s)throw new Error(`UI_MINI not ready: ${ + t} + `); + return s} + } + ; + qt(_vi,"MiniAscentAssets"),Xt(_vi,"sheet",null),Xt(_vi,"pending",null),Xt(_vi,"chapterArtRequest",null); + let bvi=_vi; + const Evi=Object.freeze(Object.defineProperty({ + __proto__:null,MiniAscentAssets:bvi} + ,Symbol.toStringTag,{ + value:"Module"} + )),Mvi=qt(t=>40+138*t,"routeTileX"),Avi=qt((t,i)=>Math.abs(t-i)<=1,"adjacentLanes"); + function yvi(t){ + var i,s,e; + const n=Math.max(0,((null==(s=null==(i=t.rows[0])?void 0:i[0])?void 0:s.depth)??t.run.floor)-1),h=(null==(e=t.previousNode)?void 0:e.depth)===n?t.previousNode:null; + return{ + depth:n,lane:0===n?null:(null==h?void 0:h.lane)??t.positionLane,node:h} + } + function Svi(t,i){ + var s,e,n; + return!!(null==(s=t.rows[0])?void 0:s.some(t=>t.id===i.id))&&((null==(e=t.currentNode)?void 0:e.id)===i.id||!((null==(n=t.run)?void 0:n.battlePending)||t.currentNode&&!["battle","elite","boss"].includes(t.currentNode.kind))&&(1!==i.depth||0===i.lane||3===i.lane)&&(null==t.positionLane||Avi(t.positionLane,i.lane)))} + qt(yvi,"routeOrigin"),qt(Svi,"canSelectRouteNode"); + function Tvi(t,i){ + if(t.currentNode&&(t.run.battlePending||!["battle","elite","boss"].includes(t.currentNode.kind)))return; + const s="elite"===i?["elite","battle","boss"]:["battle","elite","boss"]; + return(t.rows[0]??[]).filter(i=>s.includes(i.kind)&&Svi(t,i)).sort((i,e)=>{ + var n,h; + return s.indexOf(i.kind)-s.indexOf(e.kind)||Number(e.id===(null==(n=t.currentNode)?void 0:n.id))-Number(i.id===(null==(h=t.currentNode)?void 0:h.id))||Math.abs(i.lane-(t.positionLane??0))-Math.abs(e.lane-(t.positionLane??0))||i.lane-e.lane} + )[0]} + function Cvi(t,i){ + return Number.isSafeInteger(i)&&i>=t.floor&&i<=(t.totalWaves??t.floor+99)} + qt(Tvi,"autoBattleNode"),qt(Cvi,"validAutoTarget"); + const Ivi={ + CRYSTAL_TRIGGER_NORMAL:"Normal attack",CRYSTAL_TRIGGER_SKILL:"Skill attack",CRYSTAL_DESC_STAT:"Increases ## by @@%.",CRYSTAL_DESC_CAPACITY:"Increases the soldier recruitment cap by ## (up to 40).",CRYSTAL_DESC_PROMOTION:"While equipped, increases evolution/ascension by ## stage(s).",CRYSTAL_DESC_STUN:"## hits have a @@% chance to stun the enemy for %% seconds.",CRYSTAL_DESC_FREEZE:"## hits have a @@% chance to freeze the enemy for %% seconds, stopping movement and attacks.",CRYSTAL_DESC_SHOCK:"## hits have a @@% chance to reduce enemy attack speed by 30% for %% seconds.",CRYSTAL_DESC_POISON:"## hits have a @@% chance to poison the enemy for %% seconds, dealing 25% of attack as damage each second.",CRYSTAL_RANDOM_SECONDARY:"Random Secondary (##★)",CRYSTAL_SECONDARY:"Secondary (##★)",CRYSTAL_PRIMARY:"Primary (##★)",CRYSTAL_PROMOTION:"Promotion",CRYSTAL_CAPACITY:"Soldier capacity",TAB_CRYSTALS:"Crystals",CRYSTAL_SUMMON_TICKETS:"Crystal Summon Tickets · ##",CRYSTAL_DRAW_FIVE:"×5",CRYSTAL_CLAIM:"Claim",CRYSTAL_CLAIMED:"Claimed",CRYSTAL_ATTACK:"Attack",CRYSTAL_HEALTH:"Vitality",CRYSTAL_HASTE:"Attack speed",CRYSTAL_MOVE:"Movement",CRYSTAL_RANGE:"Reach",CRYSTAL_STUN:"Stun",CRYSTAL_POISON:"Poison",CRYSTAL_PARALYSIS:"Shock",CRYSTAL_CHILL:"Freeze",CRYSTAL_IN_BATTLE:"Change equipment after the battle ends.",CRYSTAL_REFRESHED:"Your collection changed. Review it and try again.",CRYSTAL_NO_TICKETS:"Not enough draw tickets.",CRYSTAL_PROTECTED:"Equipped crystals cannot be merged.",CRYSTAL_MERGE_RULE:"4 crystals for the same legion and rarity → 1 higher rarity",CRYSTAL_DUPLICATE:"4 slots per legion · No duplicate target/primary option",CRYSTAL_ERROR:"Could not complete the action. Reload and try again.",CRYSTAL_LOAD_FAILED:"Could not load crystals.",CRYSTAL_LOADING:"Loading crystals…",CRYSTAL_COLLECTION:"Collection · ##",CRYSTAL_CANCEL:"Cancel",CRYSTAL_MERGE:"Merge",CRYSTAL_EMPTY:"No crystals for this legion yet.\nDefeat bosses to earn crystals.",CRYSTAL_DRAW_ONE:"×1",CRYSTAL_UNEQUIP:"Unequip",CRYSTAL_SLOT:"Slot ##",CRYSTAL_REPLACE:"Replace selected slot",CRYSTAL_EQUIP:"Equip",CRYSTAL_MERGE_CONFIRM:"Consume these four crystals?\nReceive one higher-rarity crystal for this legion.",CRYSTAL_RECEIVED:"Crystals acquired",CRYSTAL_CONFIRM:"Confirm",CRYSTAL_BOSS_REWARD:"Boss rewards",CRYSTAL_FIRST_CLEAR:"First-clear reward · Crystal Summon Tickets ×##",CRYSTAL_TICKETS_GRANTED:"Crystal Summon Tickets ×## received",RELIC_ARMY_START_LEVEL:"All legions: hero and soldier level",RELIC_ARMY_ATTACK_SPEED:"All legions: attack speed",RELIC_ARMY_MOVE_SPEED:"All legions: movement speed",CARD_TRANSCEND:"Ascend ##",CARD_HERO_LEVEL_UP:"Hero level up",CARD_SOLDIER_LEVEL_UP:"Soldier level up",CARD_LEGION_LEVEL_UP:"Legion level up",CARD_ARMY_LEVEL_UP:"All legions level up",CARD_HERO_UPGRADE:"Hero ##",CARD_SOLDIER_UPGRADE:"Soldier ##",CARD_SOLDIER_CHANGE:"Soldier class change",CARD_SOLDIER_CHANGE_KEEP:"Level and count retained\nEvolution and ascension retained",CARD_AUTO_PICK:"Auto-select in ##s",AUTO_CARD_RULES:"Choose a card after each battle. After 7 seconds, one of the highest-rarity cards is selected automatically.",ARMY_ALL:"All legions",ARMY_ATK_SPEED:"Attack speed",ARMY_MOVE_SPEED:"Movement speed",ARMY_RANGE:"Attack range",ARMY_ATTACK:"Attack",ARMY_HP:"Health",ARMY_BUFF_RULES:"All heroes and soldiers",CARD_ALL_SOLDIERS_UP:"All current soldiers in this legion advance one stage.",EVENT_SHOP_HINT:"Exchange seals for main-game rewards. Purchases are sent to your mailbox.",EVENT_SHOP_EMPTY:"No products are currently available.",EVENT_SHOP_LIMIT:"( ## / @@ )",EVENT_SHOP_BUY:"Buy",EVENT_SHOP_DELIVERED:"Rewards sent to your mailbox.",CARD_NORMAL:"Normal",CARD_RARE:"Rare",CARD_EPIC:"Epic",CARDS_CURRENT:"Current card reward",CARDS_RECEIVE:"Receive",CARDS_WAVE:"Wave ## reward",CARDS_SEQUENTIAL_RULES:"Receive to reveal the current cards. Choose one before receiving the next reward.",CARDS_ALL_CLAIMED:"All card rewards have been chosen.",AUTO_BATTLE:"Auto battle",AUTO_TARGET:"Through wave ##",AUTO_NORMAL:"Normal first",AUTO_ELITE:"Elite first",AUTO_START:"Start auto battle",AUTO_STOP:"Stop after this battle",AUTO_STOPPING:"Stopping after this battle",AUTO_STATUS:"Through wave ## · @@",AUTO_SAVING:"Saving data…",AUTO_UNAVAILABLE:"Auto battle is unavailable right now.",AUTO_NO_BATTLE:"Auto battle stopped. Choose the next destination.",CARDS_RULES:"Choose one card per cleared wave. Effects apply when chosen. Unclaimed cards expire when this run ends.",CARDS_EMPTY:"No cards yet. Win a battle to earn cards.",CARDS_CHOOSE:"Choose a card",CARDS_APPLY:"Apply card",SHOP_ALL:"All legions",SHOP_REPLACE:"Replace hero",SHOP_HERO_UP:"Upgrade hero",SHOP_SOLDIER_UP:"Upgrade ## soldiers",SHOP_UPGRADE_DESC:"Upgrade up to ## soldiers, lowest tiers first",SHOP_ADD_LIMIT:"Legions at or below the soldier limit",SHOP_RUN_ONLY:"Applies to this run only",SHOP_RUN_BUFF:"Heroes & soldiers · Stacks this run",FOCUS_SOLDIERS:"Soldiers +##",DUAL_LEVEL:"Both legions: level +##",ASSAULT:"Combined attack",GUARD:"Cover",PAIR_LEGIONS:"Legions ## & @@",ATTACK_EFFECT:"Attack +##%",GUARD_EFFECT:"Damage taken −##%",TACTIC_REQUIRE:"Both: ## soldiers / Lv.@@",TACTIC_REQUIRE_HEADER:"Requirements",TACTIC_REQUIRE_BODY:"Each legion\n##+ soldiers\nHero & soldiers: Lv.@@+",CARD_SOLDIER_ADD:"Add soldiers",CARD_RECRUIT:"New legion",CARD_EACH:"Applies to each legion",CARD_SOLDIER_COUNT:"## soldiers",CARD_DAMAGE_TAKEN:"Damage taken",LEGION_TRAIN:"Legion ##: Hero and soldier levels +@@",CHAPTER_NAME:"Chapter ##",CHAPTER_WAVES:"## waves",CHAPTER_PROGRESS:"Chapter ## · Wave @@",NORMAL_MODE:"Normal",HARD_MODE:"Hard",HARD_CHAPTER_NAME:"Hard Chapter ##",HARD_LOCKED:"Clear Chapter ## to unlock Hard",HARD_CHAPTER_PROGRESS:"Hard Chapter ## · Wave @@",ENERGY_STATUS:"Energy ##/@@",ENERGY_NEXT:"Next +1 in ## min",ENERGY_SHORT:"Not enough energy (## needed)",ENERGY_FULL:"Full",CHAPTER_CLEAR:"Chapter ## cleared!",CHAPTER_STAGE_REWARDS:"First-clear stage rewards",CHAPTER_REWARD_RECEIVED:"Rewards claimed. Check your mailbox for main-game rewards.",TAB_RELICS:"Relics",RELIC_SUMMON:"Summon relic",RELIC_SUMMON_TEN:"Summon relic (×10)",RELIC_SUMMON_RESULT:"Relic summon results",RELIC_EFFECT_SUMMARY:"##: @@",RELIC_OWNED_COPIES:"Copies owned: ##",RELIC_REQUIRED_COPIES:"Copies needed for next level: ##",RELIC_LOADING:"Loading relics…",RELIC_LOAD_FAILED:"Could not load relics",RELIC_RELOAD:"Reload",RELIC_DRAW_RESULT:"## +1 · Lv.@@",RELIC_LIFE:"Extra life",RELIC_SOLDIER_LEVEL:"Legion ##: soldier level",RELIC_HERO_LEVEL:"Legion ##: hero level",RELIC_START_GOLD:"First-wave gold: once per chapter each season",RELIC_CLEAR_GOLD:"Gold per battle won",RELIC_SEAL_BONUS:"Seal rewards",RELIC_SOLDIER_COUNT:"Legion ##: soldiers",RELIC_LEVEL_GAIN:"Level-up gains for all legions",RELIC_FIFTH_LEGION:"Start with Legion 5",RELIC_SOLDIER_CHANGE:"Legion ##: choose soldier type",RELIC_LOCKED:"Not owned",RELIC_UNLOCKED:"Unlocked",RELIC_RETRY_LIFE:"Life used. ## remaining. Retry this stage.",RELIC_SEALS_EARNED:"Seals earned +##",RELIC_GRID_HINT:"Tap a relic to view its details.",TAB_BATTLE:"Battle",TAB_CORPS:"Legions",TAB_SHOP:"Shop",EMPTY_CORPS:"Start a run in the Battle tab to form your legions.",SHOP_LOCKED:"Choose a shop on the route to purchase items.",TIER_NORMAL:"Normal",TIER_EVOLVED:"Evolved",TIER_TRANS:"##◆",SOLDIERS:"Soldiers",HERO:"Hero",LEGION:"Legion ##",MY_CORPS:"My legions",BEST:"Best: Stage ##",RESULT_TITLE:"Challenge result",START:"Start",CURRENT_POSITION:"You are here",ASSET_ERROR:"Could not load minigame images. Please try again.",RESULT_DONE:"Reward received",RESULT_LOSS:"You lost",RESULT_WIN:"You won!",NO_COINS:"Not enough coins",WAGER_SKIP:"Pass without betting",WAGER_BET:"Bet ## coins",WAGER_LOSS:"Lose: spend ## coins",WAGER_WIN:"Win: receive ## coins (net +@@)",WAGER_ODDS:"Win chance: ##%",WAGER_ROUNDS:"Played ## / @@ rounds",WAGER_RETURN:"Bet → Return on a win",WAGER_LOSS_RULE:"If you lose, you lose the coins you bet.",WAGER:"Coin wager",TAKE_REWARD:"Take reward",SUPPLY_DESC:"Supplies and training apply to this run only",SUPPLY_COINS:"Receive funds",TITLE:"Legion Challenge",ROUTE:"Choose a route",DEPTH:"Stage ##",SHOP:"Shop",NEXT:"Next destination",CONTINUE:"Continue",EVENT_HINT:"Choose one reward without a battle",COINS:"Coins +##",HERO_TRAIN:"Legion ##: Hero level +@@",SOLDIER_TRAIN:"Legion ##: All soldiers level +@@",SHOP_HINT:"This run only · 3 random offers",RESET:"Legions reset after defeat. Gold and seals are kept.",DEFEAT:"Defeated at stage ##.",SUMMARY:"Stages cleared: ## · Coins earned: @@",RESTART:"New run",BATTLE_GIVEUP:"Give up",BATTLE_GIVEUP_QUESTION:"Give up this battle?\nThis will end the current run.",RECORD:"Run coins: ## · Best stage: @@",PROGRESS:"Stage ##",SAME_RACE:"Hero level and upgrades are retained"} + ,Ovi={ + TAB_CRYSTALS:"GAME_1713",TAB_RELICS:"GAME_4",TAB_BATTLE:"COMMON_378",TAB_CORPS:"GAME_1714",TAB_SHOP:"COMMON_356",BEST:"GAME_1715",TITLE:"GAME_1716",DEPTH:"COMMON_397",ASSET_ERROR:"GAME_1717",CHAPTER_NAME:"GAME_1718",CHAPTER_WAVES:"GAME_1590",CHAPTER_PROGRESS:"GAME_1719",CHAPTER_STAGE_REWARDS:"GAME_1720",CHAPTER_REWARD_RECEIVED:"GAME_1721",CONTINUE:"GAME_1722",RESET:"GAME_1723",RESTART:"GAME_1724",PROGRESS:"GAME_1725",BATTLE_GIVEUP:"GAME_1726",BATTLE_GIVEUP_QUESTION:"GAME_1727",CHAPTER_CLEAR:"GAME_1728",RELIC_SEALS_EARNED:"GAME_1729",RESULT_TITLE:"GAME_1730",DEFEAT:"GAME_1731",SUMMARY:"GAME_1732",CARD_TRANSCEND:"GAME_1173",CARD_LEGION_LEVEL_UP:"GAME_1733",CARD_ARMY_LEVEL_UP:"GAME_1734",CARD_HERO_UPGRADE:"GAME_1735",CARD_SOLDIER_UPGRADE:"GAME_1736",CARD_AUTO_PICK:"GAME_1737",ARMY_ALL:"GAME_1738",ARMY_ATK_SPEED:"GAME_21",ARMY_MOVE_SPEED:"GAME_22",ARMY_RANGE:"GAME_1739",ARMY_ATTACK:"GAME_19",ARMY_HP:"CombatBuffType_HU",ARMY_BUFF_RULES:"GAME_1740",CARD_ALL_SOLDIERS_UP:"GAME_1741",CARD_NORMAL:"EmblemGradeName1",CARD_RARE:"GAME_1742",CARD_EPIC:"EmblemGradeName4",CARDS_CURRENT:"GAME_1743",CARDS_RECEIVE:"COMMON_8",CARDS_WAVE:"GAME_1744",CARDS_SEQUENTIAL_RULES:"GAME_1745",CARDS_ALL_CLAIMED:"GAME_1746",CARDS_RULES:"GAME_1747",CARDS_EMPTY:"GAME_1748",CARDS_CHOOSE:"GAME_1749",CARDS_APPLY:"GAME_1750",CARD_SOLDIER_ADD:"GAME_1751",CARD_RECRUIT:"GAME_1752",CARD_SOLDIER_COUNT:"GAME_1753",SOLDIERS:"GAME_175",HERO:"GAME_3",LEGION:"GAME_1754",EMPTY_CORPS:"GAME_1755",TIER_NORMAL:"EmblemGradeName1",TIER_EVOLVED:"GAME_67",TIER_TRANS:"GAME_1756",MY_CORPS:"GAME_1757",CRYSTAL_CONFIRM:"COMMON_1",RELIC_ARMY_START_LEVEL:"GAME_1758",RELIC_ARMY_ATTACK_SPEED:"GAME_1759",RELIC_ARMY_MOVE_SPEED:"GAME_1760",RELIC_SUMMON:"GAME_1761",RELIC_SUMMON_TEN:"GAME_1762",RELIC_SUMMON_RESULT:"GAME_1763",RELIC_EFFECT_SUMMARY:"GAME_1764",RELIC_OWNED_COPIES:"GAME_1765",RELIC_REQUIRED_COPIES:"GAME_1766",RELIC_LOADING:"GAME_1767",RELIC_LOAD_FAILED:"GAME_1768",RELIC_RELOAD:"GAME_1769",RELIC_DRAW_RESULT:"GAME_1770",RELIC_SOLDIER_LEVEL:"GAME_1771",RELIC_HERO_LEVEL:"GAME_1772",RELIC_SOLDIER_COUNT:"GAME_1773",RELIC_LOCKED:"GAME_1774",RELIC_UNLOCKED:"GAME_1775",RELIC_GRID_HINT:"GAME_1776",CRYSTAL_TRIGGER_NORMAL:"GAME_26",CRYSTAL_TRIGGER_SKILL:"GAME_27",CRYSTAL_DESC_STAT:"GAME_1777",CRYSTAL_DESC_CAPACITY:"GAME_1778",CRYSTAL_DESC_PROMOTION:"GAME_1779",CRYSTAL_DESC_STUN:"GAME_1780",CRYSTAL_DESC_FREEZE:"GAME_1781",CRYSTAL_DESC_SHOCK:"GAME_1782",CRYSTAL_DESC_POISON:"GAME_1783",CRYSTAL_RANDOM_SECONDARY:"GAME_1784",CRYSTAL_SECONDARY:"GAME_1785",CRYSTAL_PRIMARY:"GAME_1786",CRYSTAL_PROMOTION:"GAME_1787",CRYSTAL_CAPACITY:"GAME_1788",CRYSTAL_SUMMON_TICKETS:"GAME_1789",CRYSTAL_DRAW_FIVE:"GAME_1790",CRYSTAL_CLAIM:"COMMON_223",CRYSTAL_CLAIMED:"COMMON_319",CRYSTAL_ATTACK:"GAME_19",CRYSTAL_HEALTH:"GAME_1791",CRYSTAL_HASTE:"GAME_21",CRYSTAL_MOVE:"GAME_22",CRYSTAL_RANGE:"GAME_1792",CRYSTAL_STUN:"GAME_1388",CRYSTAL_POISON:"GAME_1390",CRYSTAL_PARALYSIS:"GAME_1793",CRYSTAL_CHILL:"GAME_1794",CRYSTAL_IN_BATTLE:"GAME_1795",CRYSTAL_REFRESHED:"GAME_1796",CRYSTAL_NO_TICKETS:"GAME_1348",CRYSTAL_PROTECTED:"GAME_1797",CRYSTAL_MERGE_RULE:"GAME_1798",CRYSTAL_DUPLICATE:"GAME_1799",CRYSTAL_ERROR:"GAME_1800",CRYSTAL_LOAD_FAILED:"GAME_1801",CRYSTAL_LOADING:"GAME_1802",CRYSTAL_COLLECTION:"GAME_1803",CRYSTAL_CANCEL:"COMMON_2",CRYSTAL_MERGE:"GAME_1328",CRYSTAL_EMPTY:"GAME_1804",CRYSTAL_DRAW_ONE:"GAME_1805",CRYSTAL_UNEQUIP:"GAME_150",CRYSTAL_SLOT:"GAME_1806",CRYSTAL_REPLACE:"GAME_1807",CRYSTAL_EQUIP:"GAME_149",CRYSTAL_MERGE_CONFIRM:"GAME_1808",CRYSTAL_RECEIVED:"GAME_1809",CRYSTAL_BOSS_REWARD:"GAME_1810",CRYSTAL_FIRST_CLEAR:"GAME_1811",EVENT_SHOP_HINT:"GAME_1812",EVENT_SHOP_EMPTY:"GAME_1813",EVENT_SHOP_LIMIT:"GAME_1814",EVENT_SHOP_BUY:"COMMON_7",EVENT_SHOP_DELIVERED:"GAME_1815",SHOP:"COMMON_356",NORMAL_MODE:"GAME_1834",HARD_MODE:"GAME_1835",HARD_CHAPTER_NAME:"GAME_1836",HARD_LOCKED:"GAME_1837",HARD_CHAPTER_PROGRESS:"GAME_1838",ENERGY_STATUS:"GAME_1839",ENERGY_NEXT:"GAME_1840",ENERGY_SHORT:"GAME_1841",ENERGY_FULL:"GAME_1842",CRYSTAL_TICKETS_GRANTED:"GAME_1843"} + ,kvi=qt(t=>Ovi[t]??`MINI_PVE_${ + t} + `,"pveTextKey"); + function Rvi(t,i,s,e){ + return sB.getText(kvi(t),Ivi[t]).replace(/\\n/g,"\n").replace(/##/g,String(i??"")).replace(/@@/g,String(s??"")).replace(/%%/g,String(e??""))} + qt(Rvi,"pveText"); + const xvi={ + battle:"Battle",elite:"Elite",boss:"Boss",event:"Event"} + ,Pvi=qt(t=>"shop"===t?Rvi("SHOP"):xvi[t]??String(t),"nodeName"),Nvi=Object.freeze(Object.defineProperty({ + __proto__:null,PVE_ENGLISH:Ivi,nodeName:Pvi,pveText:Rvi,pveTextKey:kvi} + ,Symbol.toStringTag,{ + value:"Module"} + )),Lvi={ + paperTint:3421755,surface:3156773,surfaceRaised:3814187,surfaceSelected:5324843,border:7626823,accent:16767113,text:15919057,muted:12102549,subtle:9339504,success:10998935,danger:15901582} + ,Dvi={ + normal:Lvi,rare:{ + surface:2437959,surfaceSelected:3165296,border:4951768,accent:8634879} + ,epic:{ + surface:3483969,surfaceSelected:5256549,border:10184401,accent:12950271} + } + ,Gvi=class t{ + constructor(){ + Xt(this,"stages",[]),Xt(this,"routes",[]),Xt(this,"relics",[]),Xt(this,"config",null)} + static getInstance(){ + return this.instance??(this.instance=new t)} + async load(){ + const t=qL.getInstance(),i=[zL.MINI_ASCENT_STAGE,zL.MINI_ASCENT_ROUTE,zL.MINI_ASCENT_RELIC,zL.MINI_ASCENT_CONFIG]; + await Promise.all(i.map(i=>t.loadBook(i))); + const s=i.map(i=>t.getBook(i)); + if(s.some(t=>!Array.isArray(t)||!t.length))throw new Error("Mini ascent books are not available"); + [this.stages,this.routes,this.relics]=s,this.config=s[3][0]} + getStage(t,i){ + return this.stages.find(s=>s.main===t&&s.sub===i)} + getRoutes(t,i){ + return this.routes.filter(s=>s.routeId===t&&s.sub===i)} + } + ; + qt(Gvi,"MiniAscentBookDataManager"),Xt(Gvi,"instance"); + let Bvi=Gvi;
MiniAscentDeployPopup 29 hunks, 123 statements
- super(),Yt(this,"lblTitle"),Yt(this,"lblLevel"),Yt(this,"lblHint"),Yt(this,"field",new He),Yt(this,"map",new Ve),Yt(this,"mapMask",new Ff),Yt(this,"fieldChrome",new Ff),Yt(this,"chrome",new Ff),Yt(this,"tokenScale",1),Yt(this,"slotMarks",[]),Yt(this,"lblEmpty",[]),Yt(this,"allyTokens",[]),Yt(this,"enemyTokens",[]),Yt(this,"btnStart"),Yt(this,"btnBack"),Yt(this,"fieldW",0),Yt(this,"fieldH",0),Yt(this,"vertical",!0),Yt(this,"ally",[]),Yt(this,"formation",[]),Yt(this,"dragSlot",-1),Yt(this,"dragOffX",0),Yt(this,"dragOffY",0),Yt(this,"hoverSlot",-1),Yt(this,"busy",!1),Yt(this,"onStart",null),Yt(this,"onBack",null),this.on("removed",()=>this.detachStage()),this.chrome.eventMode="none",this.contentContainer.addChild(this.chrome),this.lblTitle=new AD("",16767332,IL.DEFAULT_OUTLINE_FONT_OPTION_24),this.lblTitle.textColor=16767332,this.contentContainer.addChild(this.lblTitle),this.lblLevel=new AD("",IL.DEFAULT_COLOR,IL.DEFAULT_FONT_OPTION_16),this.contentContainer.addChild(this.lblLevel),this.lblHint=new AD(sB.getText("","아군 군단을 끌어서 자리를 바꾸세요"),10134450,IL.DEFAULT_FONT_OPTION_15),this.lblHint.textColor=10134450,this.contentContainer.addChild(this.lblHint),this.contentContainer.addChild(this.field),this.map.eventMode="none",this.field.addChild(this.map),this.mapMask.eventMode="none",this.fieldChrome.eventMode="none",this.field.addChild(this.mapMask,this.fieldChrome),this.map.mask=this.mapMask; + 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} + ),this.lblTitle.textColor=Lvi.accent,this.lblTitle.visible=!1,this.contentContainer.addChild(this.lblTitle),this.lblLevel=new yD("",IL.DEFAULT_COLOR,IL.DEFAULT_FONT_OPTION_16),this.contentContainer.addChild(this.lblLevel),this.lblHint=new yD(sB.getText("GAME_1816","아군 군단을 끌어서 자리를 바꾸세요"),Lvi.muted,IL.DEFAULT_FONT_OPTION_15),this.lblHint.textColor=Lvi.muted,this.contentContainer.addChild(this.lblHint),this.contentContainer.addChild(this.field),this.map.eventMode="none",this.field.addChild(this.map),this.mapMask.eventMode="none",this.fieldChrome.eventMode="none",this.field.addChild(this.mapMask,this.fieldChrome),this.map.mask=this.mapMask,this.tacticLines.eventMode="none",this.field.addChild(this.tacticLines),this.versus.anchor.set(.5),this.versus.eventMode="none",this.field.addChild(this.versus);
- const i=new AD(sB.getText("","빈 칸"),16777215,IL.DEFAULT_FONT_OPTION_15); - i.textColor=16777215,i.eventMode="none",this.field.addChild(i),this.lblEmpty.push(i)} + const i=new yD("+",16777215,IL.DEFAULT_FONT_OPTION_15); + i.textSize=44,i.textColor=16777215,i.eventMode="none",this.field.addChild(i),this.lblEmpty.push(i)}
- this.btnStart=new TG(sB.getText("","전투 시작")),this.btnStart.width=368,this.btnStart.onClick=()=>this.finish(!0),this.contentContainer.addChild(this.btnStart),this.btnBack=new TG(sB.getText("","상대 선택")),this.btnBack.width=184,this.btnBack.color=TG.BROWN,this.btnBack.onClick=()=>this.finish(!1),this.contentContainer.addChild(this.btnBack)} + this.btnStart=new QPi(sB.getText("GAME_1818","전투 시작")),this.btnStart.width=184,this.btnStart.onClick=()=>this.finish(!0),this.contentContainer.addChild(this.btnStart),this.btnGiveUp=new QPi(Rvi("BATTLE_GIVEUP"),16742263),this.btnGiveUp.onClick=()=>this.confirmGiveUp(),this.contentContainer.addChild(this.btnGiveUp),this.btnBack=new QPi(Rvi("ROUTE")),this.btnBack.width=184,this.btnBack.color=TG.BROWN,this.btnBack.onClick=()=>this.finish(!1),this.contentContainer.addChild(this.btnBack),this.btnAuto=new QPi(Rvi("AUTO_BATTLE")),this.btnAuto.width=184,this.btnAuto.onClick=()=>{ + var t; + this.busy||null==(t=this.onAuto)||t.call(this)} + ,this.contentContainer.addChild(this.btnAuto)}
- n.eventMode="none",n.scale.set(.6),s.addChild(n); + n.eventMode="none",s.addChild(n);
- h.eventMode="none",h.scale.set(.45),s.addChild(h); + h.eventMode="none",s.addChild(h);
- r.textColor=16777215,r.eventMode="none",s.addChild(r); - const o=new AD("",16777215,IL.DEFAULT_OUTLINE_FONT_OPTION_16); - o.textSize=11,s.addChild(o); - const a=t.TILE_SIZE; + r.textColor=16777215,r.eventMode="none"; + const o={ + ...IL.DEFAULT_FONT_OPTION_16,fontSize:16,lineHeight:20} + ,a=new yD("",Lvi.text,o),c=new yD("",Lvi.text,o); + a.eventMode=c.eventMode="none",s.addChild(a,c,r); + const l=t.TILE_W,u=t.TILE_H;
- color:2104857,alpha:.96} + color:Lvi.surface,alpha:.97}
- width:2,color:i?10276486:14060672} - ).roundRect(-a/2+12,-a/2,a-24,3,1.5).fill(i?10276486:14060672),i?(s.eventMode="static",s.cursor="grab",s.hitArea=new Di(-a/2,-a/2,a,a)):s.eventMode="none",this.field.addChild(s),{ - root:s,frame:e,hero:n,soldier:h,lblCount:r,lblLevels:o} + width:1.5,color:i?10276486:14060672} + ),i?(s.eventMode="static",s.cursor="grab",s.hitArea=new Di(-l/2,-u/2,l,u)):s.eventMode="none",this.field.addChild(s),{ + root:s,frame:e,hero:n,soldier:h,lblCount:r,lblHeroLevel:a,lblSoldierLevel:c}
- this.finish(!1)} + this.busy||super.onCloseBtnClick()}
- this.detachStage(),this.ally=i.ally,this.formation=[...s],this.vertical=evi(e),this.busy=!1,this.dragSlot=-1,this.hoverSlot=-1,this.lblTitle.text=sB.getText("","## 배치").replace(/##/g,Tvi(i.floor)); + var n; + this.btnBack.visible=!(null==(n=Zvi.getInstance().run)?void 0:n.battleOnly),this.btnGiveUp.text=Rvi("BATTLE_GIVEUP"),this.detachStage(),this.ally=i.ally,this.tactics=i.tactics??[],this.formation=[...s],this.vertical=jvi(e),this.busy=!1,this.dragSlot=-1,this.hoverSlot=-1,this.lblTitle.text=sB.getText("GAME_1819","## 배치").replace(/##/g,rNi(i.floor));
- this.lblLevel.text=(null==n?void 0:n.training)?"훈련 상대":(null==n?void 0:n.name)??"상대 편성",this.height=Math.min(900,YA.safeHeight-48),this.fieldW=this.width-48,this.fieldH=Math.max(160,this.height-t.FIELD_TOP-t.BOTTOM_RESERVE),this.field.position.set((this.width-this.fieldW)/2,t.FIELD_TOP),this.map.texture=eS.getTexture("GW_BG2",`gwbg${ + this.lblLevel.text=(null==h?void 0:h.training)?"훈련 상대":(null==h?void 0:h.name)??"상대 편성",this.height=Math.min(900,Xy.safeHeight-48),this.fieldW=this.width-48,this.fieldH=Math.max(160,this.height-t.FIELD_TOP-t.BOTTOM_RESERVE-(this.tactics.length?86:0)),this.field.position.set((this.width-this.fieldW)/2,t.FIELD_TOP),this.map.texture=eS.getTexture("GW_BG2",`gwbg${
- ),this.tokenScale=Math.min(1,.16*this.fieldH/(t.TILE_SIZE+14)); + ),this.tokenScale=Math.min(1,.16*this.fieldH/(t.TILE_H+8),this.fieldW*(this.vertical?.23:.2)/t.TILE_W);
- const r=ovi(this.vertical,"enemy"); + this.layoutVersus(); + const o=this.slotPositions("enemy");
- s.root.visible=!!(null==e?void 0:e.heroKindNum),(null==e?void 0:e.heroKindNum)&&(this.fillToken(s,e),s.root.x=r[t].x*this.fieldW,s.root.y=r[t].y*this.fieldH)} - this.layoutAlly(),this.layoutChrome(),this.drawPanel()} + s.root.visible=!!(null==e?void 0:e.heroKindNum),(null==e?void 0:e.heroKindNum)&&(this.fillToken(s,e),s.root.position.set(o[t].x,o[t].y))} + this.layoutAlly(),this.layoutChrome(),this.layoutTactics(),this.setBusy(!1)} + slotPositions(i){ + return qvi(this.vertical,i).map((s,e)=>({ + x:s.x*this.fieldW+(!this.vertical&&e<3?("ally"===i?-1:1)*t.FRONT_COLUMN_OFFSET:0),y:s.y*this.fieldH} + ))} + layoutVersus(){ + this.versus.texture=bvi.texture("UI_VS"),this.versus.position.set(this.fieldW/2,this.fieldH/2); + const i=this.slotPositions("ally")[0],s=this.slotPositions("enemy")[0],e=this.vertical?Math.abs(i.y-s.y)-t.TILE_H*this.tokenScale:Math.abs(i.x-s.x)-t.TILE_W*this.tokenScale,n=this.vertical?this.versus.texture.height:this.versus.texture.width; + this.versus.scale.set(Math.min(1,Math.max(0,e-16)/n))}
- const s=i.soldierTiers[0]; - t.soldier.visible=!!s,s&&t.soldier.setDataWithKindNum(s.kindNum,Math.max(0,Math.round(s.plusLevel/6))); - const e=i.soldierTiers.reduce((t,i)=>t+i.count,0); - t.lblCount.text=`×${ + const s=i.soldierTiers[0],e=i.soldierTiers.reduce((t,i)=>t+i.count,0); + t.soldier.setDataWithKindNum((null==s?void 0:s.kindNum)??0,Math.max(0,Math.round(((null==s?void 0:s.plusLevel)??0)/6))),t.soldier.active=e>0; + const n=qt((t,i,s,e,n,h)=>{ + t.scale.set(1),t.scale.set(Math.min(n/t.width,h/t.height)),t.position.set(e+(n-t.width)/2,8-t.height),i.text=`Lv.${
- `,t.lblLevels.text=`영웅 ${ - i.heroLevel??10} - · 병사 ${ - i.soldierLevel??10} - `,t.lblLevels.position.set(-t.lblLevels.width/2,50),t.hero.x=-t.hero.width/2,t.hero.y=-42; - const n=(s?t.soldier.width+5:0)+t.lblCount.width; - t.soldier.x=-n/2,t.soldier.y=10,t.lblCount.x=s?t.soldier.x+t.soldier.width+5:-t.lblCount.width/2,t.lblCount.y=10+(Math.max(t.soldier.height,t.lblCount.height)-t.lblCount.height)/2} + `,i.scale.set(1),i.scale.set(Math.min(1,n/Math.max(1,i.width))),i.position.set(e+(n-i.width)/2,11)} + ,"unit"); + n(t.hero,t.lblHeroLevel,i.heroLevel??10,-68,68,44),n(t.soldier,t.lblSoldierLevel,i.soldierLevel??10,6,62,40),t.lblCount.text=`×${ + e} + `,t.lblCount.scale.set(1),t.lblCount.scale.set(Math.min(1,54/Math.max(1,t.lblCount.width))),t.lblCount.position.set(56-t.lblCount.width,9-t.lblCount.height)}
- const i=ovi(this.vertical,"ally"),s=t.TILE_SIZE*this.tokenScale; + const i=this.slotPositions("ally"),s=t.TILE_W*this.tokenScale,e=t.TILE_H*this.tokenScale;
- const e=i[t].x*this.fieldW,n=i[t].y*this.fieldH,h=t===this.hoverSlot&&this.dragSlot>=0&&t!==this.dragSlot; - this.slotMarks[t].clear().roundRect(e-s/2-4,n-s/2-4,s+8,s+8,12).fill({ + const n=i[t].x,h=i[t].y,r=t===this.hoverSlot&&this.dragSlot>=0&&t!==this.dragSlot,o=this.formation[t],a=o>=0?this.ally[o]:void 0; + this.slotMarks[t].visible=!(null==a?void 0:a.heroKindNum)||r||t===this.dragSlot,this.slotMarks[t].clear().roundRect(n-s/2-3,h-e/2-3,s+6,e+6,12).fill({
- ); - const r=this.formation[t],o=r>=0?this.ally[r]:void 0; - this.lblEmpty[t].visible=!o,this.lblEmpty[t].scale.set(this.tokenScale),this.lblEmpty[t].x=e-this.lblEmpty[t].width/2,this.lblEmpty[t].y=n-this.lblEmpty[t].height/2; + ),this.lblEmpty[t].visible=!(null==a?void 0:a.heroKindNum),this.lblEmpty[t].scale.set(this.tokenScale),this.lblEmpty[t].x=n-this.lblEmpty[t].width/2,this.lblEmpty[t].y=h-this.lblEmpty[t].height/2;
+ layoutTactics(){ + this.tacticLines.clear(); + for(const i of this.tacticLabels)i.removeFromParent(),i.destroy(); + this.tacticLabels=[]; + const t=this.slotPositions("ally"); + this.tactics.forEach((i,s)=>{ + const e=i.corps.map(t=>this.formation.indexOf(t)); + if(e.some(t=>t<0))return; + const n=t[e[0]],h=t[e[1]],r="assault"===i.kind?Lvi.accent:8636911; + this.tacticLines.moveTo(n.x,n.y).lineTo(h.x,h.y).stroke({ + width:3,color:r,alpha:i.percent?.85:.3} + ); + const o=new yD([`${ + Rvi("PAIR_LEGIONS",i.corps[0]+1,i.corps[1]+1)} + · ${ + Rvi("assault"===i.kind?"ASSAULT":"GUARD")} + ${ + i.level} + `,Rvi("assault"===i.kind?"ATTACK_EFFECT":"GUARD_EFFECT",i.percent),Rvi("TACTIC_REQUIRE",i.nextSoldiers,i.nextLevel)].join("\n"),r,{ + ...IL.DEFAULT_FONT_OPTION_15,fontSize:12,lineHeight:16} + ); + o.textColor=r,o.setWrapWidth((this.width-64)/2),o.eventMode="none",o.scale.set(Math.min(1,72/Math.max(1,o.height))),o.position.set(24+s*(this.width-48)/2,this.field.y+this.fieldH+8),this.contentContainer.addChild(o),this.tacticLabels.push(o)} + )}
- this.lblTitle.x=(t-this.lblTitle.width)/2,this.lblTitle.y=24,this.lblLevel.x=(t-this.lblLevel.width)/2,this.lblLevel.y=86,this.chrome.clear().roundRect(24,78,this.fieldW,36,10).fill(3156514); - const i=this.field.y+this.fieldH; - this.lblHint.x=(t-this.lblHint.width)/2,this.lblHint.y=i+14,this.btnBack.position.set(24,i+48),this.btnStart.position.set(224,i+48)} + 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(); + const i=this.field.y+this.fieldH+(this.tactics.length?86:0); + this.lblHint.x=(t-this.lblHint.width)/2,this.lblHint.y=i+14,this.btnAuto.visible=false; + const s=[this.btnBack,this.btnAuto].filter(t=>t.visible); + s.forEach((t,s)=>{ + t.width=116,t.position.set(24+128*s,i+48)} + ),this.btnGiveUp.width=156,this.btnGiveUp.lbl.scale.set(1),this.btnGiveUp.lbl.scale.set(Math.min(1,(this.btnGiveUp.width-16)/Math.max(1,this.btnGiveUp.lbl.width))),this.btnGiveUp.lbl.position.set(-this.btnGiveUp.lbl.width/2,-this.btnGiveUp.lbl.height/2),this.btnStart.width=t-48-128*s.length-12-this.btnGiveUp.width,this.btnStart.position.set(24+128*s.length,i+48),this.btnGiveUp.position.set(this.btnStart.x+this.btnStart.width+12,this.btnStart.y)}
- this.dragOffX=s.root.x-e.x,this.dragOffY=s.root.y-e.y,s.root.alpha=.9,s.root.cursor="grabbing",this.field.addChild(s.root); + this.dragOffX=s.root.x-e.x,this.dragOffY=s.root.y-e.y,s.root.alpha=.9,s.root.cursor="grabbing",this.field.addChild(s.root),this.layoutAlly();
+ var i;
- this.detachStage(),s.root.cursor="grab",this.dragSlot=-1,this.hoverSlot=-1,e>=0&&e!==i&&(this.formation=rvi(this.formation,i,e)),this.layoutAlly()} + this.detachStage(),e.root.cursor="grab",this.dragSlot=-1,this.hoverSlot=-1,n>=0&&n!==s&&(this.formation=Yvi(this.formation,s,n)),this.layoutAlly(),this.layoutTactics(),null==(i=this.onFormationChange)||i.call(this,[...this.formation])}
- const e=ovi(this.vertical,"ally"); + const e=this.slotPositions("ally");
- const r=Math.hypot(e[t].x*this.fieldW-i,e[t].y*this.fieldH-s); + const r=Math.hypot(e[t].x-i,e[t].y-s);
- this.busy=!0,this.detachStage(),this.dragSlot=-1; - const i=t?this.onStart:this.onBack,s=[...this.formation]; - this.hide(),queueMicrotask(()=>{ - t?null==i||i(s):null==i||i()} + this.setBusy(!0),this.detachStage(),this.dragSlot=-1; + const i=[...this.formation]; + queueMicrotask(async()=>{ + var s,e; + try{ + t?await(null==(s=this.onStart)?void 0:s.call(this,i)):await(null==(e=this.onBack)?void 0:e.call(this))} + finally{ + this.setBusy(!1)} + }
+ setBusy(t){ + this.busy=t; + for(const i of[this.btnStart,this.btnGiveUp,this.btnBack,this.btnAuto])i.activated=!t; + this.drawPanel()} + confirmGiveUp(){ + if(this.busy||this.dragSlot>=0||!this.onGiveUp)return; + const t=this.onGiveUp; + this.setBusy(!0); + const i=_jt.getInstance(); + i.title=Rvi("BATTLE_GIVEUP"),i.textAlignCenter=!0; + let s=!1; + const e=qt(i=>{ + s||(s=!0,i&&this.parent?queueMicrotask(async()=>{ + try{ + await t()} + catch(i){ + pH.getInstance().showMessage(i.message)} + finally{ + this.setBusy(!1)} + } + ):this.setBusy(!1))} + ,"answer"); + i.show(Rvi("BATTLE_GIVEUP_QUESTION"),()=>e(!0),()=>e(!1))}
- Xt(uPi,"MiniAscentDeployPopup"),Yt(uPi,"_instance"),Yt(uPi,"FIELD_TOP",128),Yt(uPi,"BOTTOM_RESERVE",116),Yt(uPi,"TILE_SIZE",100),Yt(uPi,"DROP_R",80); + qt(rLi,"MiniAscentDeployPopup"),Xt(rLi,"_instance"),Xt(rLi,"FIELD_TOP",128),Xt(rLi,"BOTTOM_RESERVE",116),Xt(rLi,"TILE_W",152),Xt(rLi,"TILE_H",88),Xt(rLi,"DROP_R",80),Xt(rLi,"FRONT_COLUMN_OFFSET",25);
MiniAscentShell 1 hunks, 109 statements
+ function t_i(t,i){ + if(!t)return""; + const s=Date.parse(t); + if(!Number.isFinite(s)||!Number.isFinite(i))return""; + const e=Math.max(0,Math.floor((s-i)/6e4)),n=qt(t=>String(t).padStart(2,"0"),"pad"); + return`${ + n(Math.floor(e/1440))} + D ${ + n(Math.floor(e/60)%24)} + H ${ + n(e%60)} + M`} + qt(t_i,"formatAscentRemaining"); + const i_i=[{ + id:"battle",key:"TAB_BATTLE"} + ,{ + id:"corps",key:"TAB_CORPS"} + ,{ + id:"relics",key:"TAB_RELICS"} + ,{ + id:"crystals",key:"TAB_CRYSTALS"} + ,{ + id:"shop",key:"TAB_SHOP"} + ],s_i=class t extends DG{ + constructor(){ + super(),Xt(this,"paper",new je(bvi.texture("background_map"))),Xt(this,"clip",new Ff),Xt(this,"contentClip",new Ff),Xt(this,"pages",new He),Xt(this,"closeControl",new He),Xt(this,"header",new yD(Rvi("TITLE"),Lvi.accent,{ + ...IL.DEFAULT_FONT_OPTION_16,fontSize:26,lineHeight:32} + )),Xt(this,"coin",new je(bvi.texture("ui_coin"))),Xt(this,"coinText",new yD("",Lvi.accent,IL.DEFAULT_FONT_OPTION_16)),Xt(this,"seal",new je(bvi.texture("ui_challenge_seal"))),Xt(this,"sealText",new yD("",Lvi.text,IL.DEFAULT_FONT_OPTION_16)),Xt(this,"energy",new je(bvi.texture("ui_energy"))),Xt(this,"energyText",new yD("",Lvi.text,IL.DEFAULT_FONT_OPTION_16)),Xt(this,"progress",new yD("",Lvi.text,IL.DEFAULT_FONT_OPTION_16)),Xt(this,"remaining",new yD("",Lvi.muted,{ + ...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); + const t=new je(bvi.texture("ui_close")); + t.width=t.height=44,t.eventMode="none",this.closeControl.addChild(t),this.closeControl.eventMode="static",this.closeControl.cursor="pointer",this.closeControl.hitArea=new Di(-4,-4,52,52),this.closeControl.on("pointertap",t=>{ + t.stopPropagation(),this.requestExit()} + ); + for(const{ + id:i,key:s} + of i_i){ + const t=new He,e=new Ff,n=new yD(Rvi(s),Lvi.muted,IL.DEFAULT_FONT_OPTION_16); + t.addChild(e,n),t.eventMode="static",t.cursor="pointer",t.hitArea=new Di(0,0,112,54),t.on("pointertap",t=>{ + t.stopPropagation(),this.selectTab(i)} + ),this.navigation.addChild(t),this.tabButtons.push({ + id:i,root:t,bg:e,label:n} + )} + this.countdown.addEventListener("timer",()=>this.updateStatus()),this.on("added",()=>this.countdown.start()),this.on("removed",()=>this.countdown.stop())} + static getInstance(){ + return this.instance??(this.instance=new t)} + static get layoutHeight(){ + return Math.min(960,Xy.safeHeight-28)} + present(t){ + this.activePage!==t&&(this.pages.removeChildren(),this.activePage=t,this.pages.addChild(t)),t.position.set(0),t.pivot.set(0),t.scale.set(1),t.alpha=1,t.eventMode="auto",t.interactiveChildren=!0,this.refresh(),this.parent||super.show()} + detach(t){ + t.parent===this.pages&&this.pages.removeChild(t),this.activePage===t&&(this.activePage=null),this.refresh()} + async selectTab(t){ + var i; + if(!this.navigating&&(null==(i=this.activePage)?void 0:i.canCloseShell())&&this.activePage.tabId!==t&&this.onNavigate){ + this.navigating=!0,this.refresh(); + try{ + await this.onNavigate(t)} + catch(s){ + pH.getInstance().showMessage(s.message)} + finally{ + this.navigating=!1,this.refresh()} + } + } + updateStatus(){ + var t,i,s,e,n,h; + const r=Zvi.getInstance(); + 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); + const o=null==(n=r.season)?void 0:n.energy; + this.energy.visible=this.energyText.visible=!!o,o&&(this.energyText.text=`${ + o.current} + /${ + o.max} + `,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); + const a=Math.min(440,this.width-2*(28+this.remaining.width+16)); + this.header.scale.set(1),this.header.scale.set(Math.min(1,a/Math.max(1,this.header.width))),this.header.position.set((this.width-this.header.width)/2,22)} + refresh(){ + var i; + this.height=t.layoutHeight; + const s=this.height-t.FOOTER_HEIGHT; + this.paper.width=this.width,this.paper.height=this.height,this.clip.clear().roundRect(0,0,this.width,this.height,20).fill(16777215),this.contentClip.clear().rect(12,120,this.width-24,s-128).fill(16777215),this.closeControl.position.set(this.width-56,16); + const e=!this.navigating&&!!(null==(i=this.activePage)?void 0:i.canCloseShell()); + 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({ + color:Lvi.border,width:1} + ).rect(12,s,this.width-24,t.FOOTER_HEIGHT-12).fill(Lvi.surface).moveTo(24,s).lineTo(this.width-24,s).stroke({ + color:Lvi.border,width:1} + ); + const n=(this.width-32-5*(this.tabButtons.length-1))/this.tabButtons.length; + this.tabButtons.forEach(({ + id:t,root:i,bg:h,label:r} + ,o)=>{ + var a; + i.position.set(16+o*(n+5),s+12),i.hitArea=new Di(0,0,n,54); + const c=(null==(a=this.activePage)?void 0:a.tabId)===t; + h.clear(),c&&h.roundRect(0,0,n,54,8).fill(Lvi.surfaceSelected).rect((n-64)/2,50,64,3).fill(Lvi.accent),r.textColor=c?Lvi.accent:Lvi.muted,r.scale.set(1),r.scale.set(Math.min(1,(n-8)/r.width)),r.position.set((n-r.width)/2,(50-r.height)/2),i.alpha=e?1:.5} + ),this.updateStatus(),this.resetPostionY(),this.parent&&this.position.set(320,this.getDefaultPositionY())} + requestExit(){ + var t,i; + !this.navigating&&(null==(t=this.activePage)?void 0:t.canCloseShell())&&(this.hideImmediately(),null==(i=this.onExit)||i.call(this))} + hideImmediately(){ + this.pages.removeChildren(),this.activePage=null,super.hideImmediately()} + getDefaultPositionY(){ + return Xy.safeHeight/2} + onBackButton(){ + return this.requestExit(),!0} + } + ; + qt(s_i,"MiniAscentShell"),Xt(s_i,"instance"),Xt(s_i,"FOOTER_HEIGHT",84); + let e_i=s_i;
MiniAscentDataManager 12 hunks, 101 statements
- Yt(this,"season",null),Yt(this,"run",null),Yt(this,"lastDefeat",null),Yt(this,"eventActive",!1),Yt(this,"stateError",null)} + 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)}
+ invalidateViews(){ + this.viewRevision++,this.viewCache.clear(),this.viewRequests.clear()} + currentView(t){ + return{ + ...t,..."season"in t?{ + season:this.season??t.season} + :{ + } + ,..."run"in t?{ + run:this.run} + :{ + } + } + } + async readView(t,i,s){ + s&&this.invalidateViews(); + const e=this.viewCache.get(t); + if(e)return this.currentView(e); + const n=this.viewRequests.get(t); + if(n)return n; + const h=this.viewRevision,r=(async()=>{ + let s; + try{ + s=await i()} + catch(n){ + if(h!==this.viewRevision)return this.readView(t,i,!1); + throw n} + if(h!==this.viewRevision)return this.readView(t,i,!1); + const e=this.unwrap(s); + return this.apply(e),this.viewCache.set(t,e),this.currentView(e)} + )(); + this.viewRequests.set(t,r); + try{ + return await r} + finally{ + this.viewRequests.get(t)===r&&this.viewRequests.delete(t)} + } + async requestUpdate(t){ + let i; + this.invalidateViews(); + try{ + i=await t()} + finally{ + this.invalidateViews()} + const s=this.unwrap(i); + return this.apply(s),s}
- var i; - t&&(t.season&&((null==(i=this.season)?void 0:i.seasonId)!==t.season.seasonId&&(this.lastDefeat=null),this.season=t.season),void 0!==t.run&&(this.run=t.run,this.lastDefeat&&this.run&&this.run.floor>this.lastDefeat.floor&&(this.lastDefeat=null)))} + var i,s,e; + t&&((t.season&&(null==(i=this.season)?void 0:i.seasonId)!==t.season.seasonId||t.crystals&&t.crystals.revision!==(null==(s=this.crystals)?void 0:s.revision)||void 0!==t.run&&JSON.stringify(this.run)!==JSON.stringify(t.run))&&this.invalidateViews(),t.season&&((null==(e=this.season)?void 0:e.seasonId)!==t.season.seasonId&&(this.lastDefeat=null,this.relics=null,this.crystals=null),this.season=t.season),void 0!==t.lastDefeat&&(this.lastDefeat=t.lastDefeat),t.crystals&&(this.crystals=t.crystals),t.relics&&(this.relics=t.relics),void 0!==t.run&&(this.run=t.run,this.lastDefeat&&this.run&&this.run.floor>this.lastDefeat.floor&&(this.lastDefeat=null)),Array.isArray(t.rows)&&void 0!==t.currentNode&&this.viewCache.set("route",t),void 0!==t.shop&&this.viewCache.set("shop",t),t.eventShop&&this.viewCache.set("eventShop",t),t.crystals&&this.viewCache.set("crystals",t),t.relics&&this.viewCache.set("relics",t))}
- const t=this.unwrap(await this.api().state()); - return this.eventActive=!0,this.stateError=null,this.apply(t),t} - catch(qnt){ - throw qnt instanceof cvi?(this.eventActive=!1,this.season=null,this.run=null,this.lastDefeat=null,this.stateError="rejected"):this.stateError="network",qnt} + const t=await this.requestUpdate(()=>this.api().state()); + return this.eventActive=!0,this.stateError=null,t.season.chapters&&await Bvi.getInstance().load().catch(t=>{
- async start(){ - const t=this.unwrap(await this.api().start()); - return this.apply(t),await zA.removeData(zA.KEY_MINI_ASCENT_FORMATION),this.run} - async prepare(){ - return this.unwrap(await this.api().prepare())} + ),t} + catch(Qnt){ + throw Qnt instanceof Jvi?(this.eventActive=!1,this.season=null,this.run=null,this.relics=null,this.crystals=null,this.lastDefeat=null,this.stateError="rejected"):this.stateError="network",Qnt} + } + async start(t,i){ + return await this.requestUpdate(()=>i?this.api().start(!0,t,!0):this.api().start(!0,t)),this.lastDefeat=null,await zy.removeData(zy.KEY_MINI_ASCENT_FORMATION),this.run} + async fetchEventShop(t=!1){ + return this.readView("eventShop",()=>this.api().eventShop(),t)} + async buyEventShop(t,i){ + return this.requestUpdate(()=>this.api().eventShopBuy(this.season.seasonId,t,i.kindNum,JSON.stringify(i)))} + async fetchCrystals(t=!1){ + return this.readView("crystals",()=>this.api().crystals(),t)} + async claimChapterReward(t,i,s){ + const e=await this.requestUpdate(()=>s?this.api().claimChapterReward(this.season.seasonId,t,i,!0):this.api().claimChapterReward(this.season.seasonId,t,i)); + return this.crystals=null,e} + async crystalAction(t,i,s){ + return this.requestUpdate(()=>this.api().crystalAction(this.season.seasonId,t,i,s))} + async fetchRelics(t=!1){ + return this.readView("relics",()=>this.api().relics(),t)} + async drawRelic(t,i,s=1){ + return this.requestUpdate(()=>this.api().relicDraw(t,i,s))} + async selectRelicSoldier(t,i){ + return this.requestUpdate(()=>this.api().relicSoldier(this.season.seasonId,t,i))} + async fetchRoute(t=!1,i=!0){ + return this.readView("route",()=>this.api().route(i),t)} + async selectNode(t,i=!0){ + return this.requestUpdate(()=>this.api().selectNode(t,i))} + async completeNode(t,i){ + return this.requestUpdate(()=>this.api().completeNode(t,i))} + async prepare(t=!1){ + return this.readView("prepare",()=>this.api().prepare(),t)}
- async battleStart(t,i){ - const s=this.unwrap(await this.api().battleStart(t,i)); + async battleStart(t,i,s=!0){ + const e=await this.requestUpdate(()=>this.api().battleStart(t,i,s));
- async battleEnd(i,s){ + async battleEnd(i,s,e=!0){
- const t=this.unwrap(await this.api().battleEnd(i,s)); - return await zA.removeData(zA.KEY_MINI_ASCENT_PENDING),this.apply(t),"LOSE"===t.result&&(this.lastDefeat={ + const t=await this.requestUpdate(()=>this.api().battleEnd(i,s,e)); + return await zy.removeData(zy.KEY_MINI_ASCENT_PENDING),"CLEAR"===t.result&&(this.lastDefeat=null),"LOSE"===t.result&&(this.lastDefeat={
- async pickCard(t){ - const i=this.unwrap(await this.api().pickCard(t)); - return this.apply(i),this.run} - async fetchShop(){ - const t=this.unwrap(await this.api().shop()); - return this.apply(t),t} + async revealCard(t){ + return await this.requestUpdate(()=>this.api().revealCard(t)),this.run} + async pickCard(t,i,s,e){ + return await this.requestUpdate(()=>this.api().pickCard(t,!0,i,s,e)),this.run} + async fetchShop(t=!1){ + return this.readView("shop",()=>this.api().shop(),t)}
- const i=this.unwrap(await this.api().shopBuy(t)); - return this.apply(i),i} + return this.requestUpdate(()=>this.api().shopBuy(t))}
- const i=this.unwrap(await this.api().shopRefresh(t)); - return this.apply(i),i} + return this.requestUpdate(()=>this.api().shopRefresh(t))}
- const t=this.unwrap(await this.api().giveUp()); - return this.apply(t),this.run=null,t.summary} + const t=await this.requestUpdate(()=>this.api().giveUp(this.run.runId)); + return this.run=null,this.lastDefeat=t.summary,t.summary}
StampMark 1 hunks, 84 statements
+ constructor(i=24){ + super(); + const s=new Ff; + s.circle(0,0,i).stroke({ + width:3,color:t.COLOR_INK,alpha:.92} + ),s.circle(0,0,i-4).stroke({ + width:1.5,color:t.COLOR_INK,alpha:.6} + ),s.eventMode="none",this.addChild(s); + const e=new Ff; + e.moveTo(.42*-i,.05*i).lineTo(.1*-i,.36*i).lineTo(.46*i,.32*-i).stroke({ + width:Math.max(3,.16*i),color:t.COLOR_INK,alpha:.92,cap:"round",join:"round"} + ),e.eventMode="none",this.addChild(e),this.eventMode="none"} + setDayRotation(t){ + this.rotation=(37*t%13-6)*(Math.PI/180)} + playPop(){ + zk.killTweensOf(this.scale),zk.fromTo(this.scale,{ + x:2.4,y:2.4} + ,{ + x:1,y:1,duration:.38,ease:"back.out(1.8)"} + ),zk.fromTo(this,{ + alpha:0} + ,{ + alpha:1,duration:.16} + )} + } + ; + qt(sEi,"StampMark"),Xt(sEi,"COLOR_INK",12597547); + let eEi=sEi; + const nEi=class t extends He{ + constructor(){ + super(),Xt(this,"bg"),Xt(this,"lblDay"),Xt(this,"reward"),Xt(this,"lblAmount"),Xt(this,"redDot"),Xt(this,"stamp"),Xt(this,"onTap",null),Xt(this,"data",null); + const i=t.WIDTH,s=t.HEIGHT; + this.bg=new Ff,this.bg.roundRect(0,0,i,s,t.BG_RADIUS).fill({ + color:t.BG_COLOR} + ),this.bg.tint=16777215,this.bg.eventMode="none",this.addChild(this.bg),this.lblDay=new yD("",16777215,IL.DEFAULT_FONT_OPTION_16),this.lblDay.textColor=t.COLOR_DAY,this.lblDay.textSize=12,this.lblDay.x=8,this.lblDay.y=4,this.lblDay.eventMode="none",this.addChild(this.lblDay),this.reward=new r6,this.reward.scale=t.ICON_SCALE,this.reward.hideAmount(),this.reward.eventMode="none",this.addChild(this.reward),this.lblAmount=new yD("",16777215,IL.DEFAULT_OUTLINE_FONT_OPTION_18),this.lblAmount.textColor=t.COLOR_AMOUNT,this.lblAmount.textSize=13,this.lblAmount.eventMode="none",this.addChild(this.lblAmount),this.redDot=new je(eS.getTexture("UI_Ekkorr","Icon_RedDot_Red")),this.redDot.visible=!1,this.redDot.eventMode="none",this.addChild(this.redDot),this.stamp=new eEi(24),this.stamp.x=.5*i,this.stamp.y=.5*s,this.stamp.visible=!1,this.addChild(this.stamp),this.eventMode="static",this.cursor="pointer",this.hitArea=new Di(0,0,i,s),this.on("pointerup",()=>{ + this.data&&this.onTap&&this.onTap(this.data)} + )} + get width(){ + return t.WIDTH} + get height(){ + return t.HEIGHT} + update(i){ + this.data=i; + const s=t.WIDTH,e=t.HEIGHT,n="claimed"===i.state,h="claimable"===i.state,r=1===i.milestone; + this.bg.tint=n?t.CLAIMED_TINT:h?t.CLAIMABLE_TINT:r?t.MILESTONE_TINT:16777215,this.lblDay.text=String(i.day),this.lblDay.textColor=h||r?t.COLOR_GOLD:t.COLOR_DAY,t.applyReward(this.reward,i.rewardType,i.num),this.reward.hideAmount(),this.reward.x=.5*(s-this.reward.width*t.ICON_SCALE),this.reward.y=10,this.lblAmount.text="gem"===i.rewardType?String(i.num):`x${ + i.num} + `,this.lblAmount.x=.5*(s-this.lblAmount.width),this.lblAmount.y=e-this.lblAmount.height-3,this.redDot.visible=h,this.redDot.x=s-this.redDot.width-2,this.redDot.y=-2,this.reward.alpha=n?.45:1,this.lblAmount.alpha=n?.45:1,this.stamp.visible=n,n&&this.stamp.setDayRotation(i.day)} + playStampPop(){ + this.stamp.playPop()} + static getRewardName(t){ + switch(t){ + case"gem":return sB.getText("COMMON_350","보석"); + case"heroGacha":return sB.getText("GAME_217","영웅 뽑기권"); + case"heroSelect":return sB.getText("GAME_769","영웅 선택권"); + case"petGacha":return sB.getText("GAME_772","정령의 고원 입장권"); + case"treasureGacha":return sB.getText("GAME_218","유물 뽑기권"); + case"runeTicket":return sB.getText("GAME_1500","크리스탈 뽑기권"); + case"honorCoin":return sB.getText("GAME_88","명예코인"); + case"heroTrans":return sB.getText("GAME_1223","영웅 초월권"); + default:return t} + } + static applyReward(t,i,s){ + switch(i){ + case"gem":default:t.setData(n6.gem,s); + break; + case"heroGacha":t.setData(n6.ticket,s,5,-1,n6.heroGacha); + break; + case"heroSelect":t.setData(n6.ticket,s,-1,1,n6.heroSelect); + break; + case"petGacha":t.setData(n6.ticket,s,1,-1,n6.pet); + break; + case"treasureGacha":t.setData(n6.ticket,s,-1,-1,n6.treasureGacha); + break; + case"runeTicket":t.setData(n6.runeTicket,s); + break; + case"honorCoin":t.setData(n6.honorCoin,s); + break; + case"heroTrans":t.setData(n6.trans,s,5,-1,n6.hero)} + } + } + ; + qt(nEi,"StampDayCell"),Xt(nEi,"WIDTH",114),Xt(nEi,"HEIGHT",72),Xt(nEi,"ICON_SCALE",.6),Xt(nEi,"COLOR_DAY",10325880),Xt(nEi,"COLOR_GOLD",16767354),Xt(nEi,"COLOR_AMOUNT",16777215),Xt(nEi,"CLAIMED_TINT",9211020),Xt(nEi,"MILESTONE_TINT",16771512),Xt(nEi,"CLAIMABLE_TINT",16774095),Xt(nEi,"BG_COLOR",6904901),Xt(nEi,"BG_RADIUS",10); + let hEi=nEi; + const rEi=class t extends DG{
EventHubPopup 1 hunks, 83 statements
+ super(),Xt(this,"btnMine",new TG(sB.getText("GAME_1203","화석 발굴"))),Xt(this,"btnAscent",new TG(sB.getText("GAME_1716","군단 도전"))),Xt(this,"opening",!1),this.width=t.POPUP_WIDTH,this.height=t.HEADER_HEIGHT+2*t.BODY_PADDING+2*t.BUTTON_HEIGHT+t.BUTTON_GAP; + for(const i of[this.btnMine,this.btnAscent])i.width=this.width-2*t.SIDE_PADDING,i.height=t.BUTTON_HEIGHT,i.color=TG.BROWN,this.contentContainer.addChild(i); + this.btnMine.onClick=()=>{ + this.openMine()} + ,this.btnAscent.onClick=()=>{ + this.openAscent()} + } + static getInstance(){ + return this._instance||(this._instance=new t),this._instance} + static isMineOpen(){ + return qD.maxWave>=200&&aB.isValidEvent(cB.MINE_EVENT)} + static isAscentOpen(){ + return aB.isValidEvent(cB.MINI_ASCENT_EVENT)||tG.getInstance().development} + show(){ + this.title=sB.getText("GAME_1844","ko"===sB.language?"이벤트":"Event"),this.btnMine.text=sB.getText("GAME_1203","화석 발굴"),this.btnAscent.text=sB.getText("GAME_1716","군단 도전"),this.btnMine.activated=t.isMineOpen(),this.btnAscent.activated=t.isAscentOpen()&&!this.opening; + for(const[i,s]of[this.btnMine,this.btnAscent].entries())s.position.set(.5*(this.width-s.width),t.HEADER_HEIGHT+t.BODY_PADDING+i*(t.BUTTON_HEIGHT+t.BUTTON_GAP)),s.lbl.scale.set(1),s.lbl.scale.set(Math.min(1,(s.width-40)/Math.max(1,s.lbl.width))),s.lbl.position.set(.5*-s.lbl.width,.5*-s.lbl.height); + this.outSideClickHide=!0,super.show()} + async openMine(){ + if(!t.isMineOpen())return; + this.hide(); + const{ + MinePopup:i} + =await ti(async()=>{ + const{ + MinePopup:t} + =await Promise.resolve().then(()=>N6t); + return{ + MinePopup:t} + } + ,void 0); + await i.getInstance().show()} + async openAscent(){ + if(!this.opening&&t.isAscentOpen()){ + this.opening=!0,this.btnAscent.activated=!1; + try{ + const{ + MiniAscentAssets:t} + =await ti(async()=>{ + const{ + MiniAscentAssets:t} + =await Promise.resolve().then(()=>Evi); + return{ + MiniAscentAssets:t} + } + ,void 0); + await t.ensure(); + const{ + MiniAscentFlow:i} + =await ti(async()=>{ + const{ + MiniAscentFlow:t} + =await Promise.resolve().then(()=>__i); + return{ + MiniAscentFlow:t} + } + ,void 0); + this.hide(),await i.enter()} + catch{ + const{ + pveText:t} + =await ti(async()=>{ + const{ + pveText:t} + =await Promise.resolve().then(()=>Nvi); + return{ + pveText:t} + } + ,void 0); + pH.getInstance().showMessage(t("ASSET_ERROR"))} + finally{ + this.opening=!1,this.btnAscent.activated=t.isAscentOpen()} + } + } + } + ; + qt(Nbi,"EventHubPopup"),Xt(Nbi,"_instance"),Xt(Nbi,"POPUP_WIDTH",406),Xt(Nbi,"HEADER_HEIGHT",53),Xt(Nbi,"SIDE_PADDING",32),Xt(Nbi,"BODY_PADDING",24),Xt(Nbi,"BUTTON_HEIGHT",60),Xt(Nbi,"BUTTON_GAP",14); + let Lbi=Nbi; + const Dbi=Object.freeze(Object.defineProperty({ + __proto__:null,EventHubPopup:Lbi} + ,Symbol.toStringTag,{ + value:"Module"} + )),Gbi=class t extends DG{ + constructor(){
AttackEffectManager 1 hunks, 78 statements
+ const DQt=qt(t=>Math.max(1,Math.round(60*t)),"frames"); + function GQt(t,i,s,e=1/0){ + if(!Number.isFinite(i)||i<s||i>e)throw new RangeError(`${ + t} + : ${ + i} + `)} + qt(GQt,"finiteRange"); + const BQt=class{ + constructor(t){ + Xt(this,"units",new WeakMap),Xt(this,"cooldowns",new WeakMap),this.battle=t} + add(t,i,s,e,n,h={ + } + ){ + if(t.battleController!==this.battle)throw new Error("Register attack effects after assigning the unit's battleController."); + if(!["normal","skill"].includes(i)||!["stun","poison","paralysis","chill","freeze"].includes(s))throw new TypeError(`Unknown attack effect: ${ + i} + /${ + s} + `); + GQt("durationSeconds",e,Number.MIN_VALUE),GQt("chance",n,0,1),GQt("cooldownSeconds",h.cooldownSeconds??0,0),GQt("slowRatio",h.slowRatio??.3,0,1),GQt("poisonAttackRatio",h.poisonAttackRatio??.25,0),GQt("poisonTickSeconds",h.poisonTickSeconds??1,Number.MIN_VALUE); + const r=h.id??`${ + i} + :${ + s} + `; + let o=this.units.get(t); + return(null==o?void 0:o.generation)!==t.generation&&(o={ + generation:t.generation,effects:new Map} + ,this.units.set(t,o)),o.effects.set(r,{ + id:r,trigger:i,type:s,duration:DQt(e),chance:n,cooldown:Math.round(60*(h.cooldownSeconds??0)),cooldownGroup:h.cooldownGroup,slowRatio:h.slowRatio??.3,poisonAttackRatio:h.poisonAttackRatio??.25,poisonInterval:DQt(h.poisonTickSeconds??1)} + ),r} + remove(t,i){ + var s; + null==(s=this.units.get(t))||s.effects.delete(i)} + clearUnit(t){ + this.units.delete(t)} + reset(){ + this.units=new WeakMap,this.cooldowns=new WeakMap} + captureSource(t,i){ + const s=this.units.get(t); + if(t.battleController!==this.battle||(null==s?void 0:s.generation)!==t.generation)return null; + for(const e of s.effects.values())if(e.trigger===i&&e.chance>0)return{ + trigger:i,owner:t,generation:t.generation,token:s} + ; + return null} + onHit(t,i,s){ + const e=t.owner,n=this.units.get(e); + if(e.battleController===this.battle&&i.battleController===this.battle&&n===t.token&&e.generation===t.generation&&i.isAlive&&e.enemyList.includes(i)&&Number.isFinite(s)&&!(s<=0))for(const h of n.effects.values()){ + if(h.trigger!==t.trigger||h.chance<=0)continue; + if("stun"===h.type){ + if(i.stunImmune||i.stunResistPct>=100)continue} + else if("freeze"===h.type){ + if(i.freezeImmune||i.freezeResistPct>=100)continue} + else if(i.poisonImmune||i.numLoveShield>0)continue; + let s=this.cooldowns.get(i); + (null==s?void 0:s.generation)!==i.generation&&(s=void 0); + const n=h.cooldownGroup??h; + this.battle.battleFrame<((null==s?void 0:s.until.get(n))??-1/0)||this.battle.random.chance(h.chance)&&(h.cooldown>0&&(s||(s={ + generation:i.generation,until:new Map} + ,this.cooldowns.set(i,s)),s.until.set(n,this.battle.battleFrame+h.cooldown)),this.apply(h,e,i))} + } + apply(t,i,s){ + switch(t.type){ + case"freeze":s.freeze(t.duration,i); + break; + case"stun":s.stun(t.duration,i); + break; + case"poison":s.addDotDamage(i.atkDmg*t.poisonAttackRatio,t.duration,t.poisonInterval,i,GZ.EXTRA_ATTACK_POISON),s.showEffect(PH.PoisonGreenEffect,t.duration,new _i(0,.2*-s.hitHeight/s.sizeScale),!0); + break; + case"paralysis":s.addAttackSpeedBuff(GZ.EXTRA_ATTACK_PARALYSIS,-t.slowRatio,t.duration),s.showEffect(PH.ElectricEffect,t.duration,new _i(0,.5*-s.hitHeight/s.sizeScale),!0); + break; + case"chill":s.addMoveSpeedBuff(GZ.EXTRA_ATTACK_CHILL,-t.slowRatio,t.duration),s.applyChillTint(t.duration)} + } + } + ; + qt(BQt,"AttackEffectManager"); + let UQt=BQt;
MiniAscentService 8 hunks, 74 statements
+ async eventShop(){ + return this.post(oP.MINI_ASCENT.EVENT_SHOP,{ + } + ,!0)} + async eventShopBuy(t,i,s,e){ + return this.post(oP.MINI_ASCENT.EVENT_SHOP_BUY,{ + seasonId:t,revision:i,kindNum:s,itemKey:e} + ,!0)} + async crystals(){ + return this.post(oP.MINI_ASCENT.CRYSTALS,{ + } + ,!0)} + async crystalAction(t,i,s,e){ + return this.post(oP.MINI_ASCENT.CRYSTAL_ACTION,{ + seasonId:t,revision:i,action:s,payload:e} + ,!0)} + async relics(){ + return this.post(oP.MINI_ASCENT.RELICS,{ + } + ,!0)} + async claimChapterReward(t,i,s,e){ + return this.post(oP.MINI_ASCENT.CLAIM_CHAPTER_REWARD,{ + seasonId:t,chapter:i,floor:s,...e?{ + hard:!0} + :{ + } + } + ,!0)} + async relicDraw(t,i,s=1){ + return this.post(oP.MINI_ASCENT.RELIC_DRAW,{ + seasonId:t,revision:i,count:s} + ,!0)} + async relicSoldier(t,i,s){ + return this.post(oP.MINI_ASCENT.RELIC_SOLDIER,{ + seasonId:t,corp:i,kindNum:s} + ,!0)} + async route(t=!0){ + return this.post(oP.MINI_ASCENT.ROUTE,{ + } + ,t)} + async selectNode(t,i=!0){ + return this.post(oP.MINI_ASCENT.SELECT_NODE,{ + nodeId:t} + ,i)} + async completeNode(t,i){ + return this.post(oP.MINI_ASCENT.COMPLETE_NODE,{ + nodeId:t,choice:i} + ,!0)}
- async start(t=!0){ + async start(t=!0,i,s){
+ chapter:i,...s?{ + hard:!0} + :{ + }
- opponentId:t,formation:i} + nodeId:t,formation:i}
- async pickCard(t,i=!0){ + async revealCard(t){ + return this.post(oP.MINI_ASCENT.REVEAL_CARD,{ + offerId:t} + ,!0)} + async pickCard(t,i=!0,s,e,n){
- index:t} + index:t,...void 0!==e?{ + offerId:e} + :{ + } + ,...void 0!==n?{ + cardKey:n} + :{ + } + ,...void 0!==s?{ + targetCorp:s} + :{ + } + }
- async giveUp(t=!0){ + async giveUp(t,i=!0){
- } + runId:t}
MiniAscentModalPopup 2 hunks, 51 statements
- )),aPi=class t extends wvi{ + )),qPi=class extends DG{
- super(),Yt(this,"body",new He),Yt(this,"onSelect",null),Yt(this,"onBack",null),this.height=730,this.contentContainer.addChild(this.body)} + super(),Xt(this,"tabId","battle"),Xt(this,"canCloseShell",qt(()=>!0,"canCloseShell")),this.width=616,this.bg.visible=this.txtTitle.visible=this.btnClose.visible=!1} + set height(t){ + super.height=e_i.layoutHeight-e_i.FOOTER_HEIGHT,this.pivot.set(0)} + get height(){ + return super.height} + drawPanel(){ + this.pivot.set(0),this.parent&&e_i.getInstance().refresh()} + show(){ + e_i.getInstance().present(this)} + hide(){ + this.hideImmediately()} + hideImmediately(){ + if(e_i.getInstance().detach(this),this.hideHandler){ + const t=this.hideHandler; + this.hideHandler=null,t()} + } + onCloseBtnClick(){ + e_i.getInstance().requestExit()} + onBackButton(){ + return this.onCloseBtnClick(),!0} + } + ; + qt(qPi,"MiniAscentModalPopup"); + let XPi=qPi; + const JPi=class extends TG{ + constructor(t,i=16777215){ + super(t),Xt(this,"skin"),this.skinTint=i,this.skin=new kM({ + texture:bvi.texture("ui_button_lobby_blank"),leftWidth:22,rightWidth:22,topHeight:18,bottomHeight:18} + ),this.bg.visible=!1,this.container.addChildAt(this.skin,0),this.activatedTextColor=16771e3,this.syncSkin()} + syncSkin(){ + this.skin&&(this.skin.width=this.bg.width,this.skin.height=this.bg.height,this.skin.position.copyFrom(this.bg.position),this.skin.tint=this.activated?this.skinTint:8947848)} + set width(t){ + super.width=t,this.syncSkin()} + get width(){ + return super.width} + set height(t){ + super.height=t,this.syncSkin()} + get height(){ + return super.height} + set activated(t){ + super.activated=t,this.syncSkin()} + get activated(){ + return super.activated} + } + ; + qt(JPi,"MiniAscentImageButton"); + let QPi=JPi; + const ZPi=class t extends XPi{ + constructor(){ + super(),Xt(this,"tabId","battle"),Xt(this,"body",new He),Xt(this,"busy",!1),this.contentContainer.addChild(this.body),this.canCloseShell=()=>!this.busy}
StampCalendarStatusVO 2 hunks, 50 statements
+ const sF=class{ + constructor(){ + Xt(this,"claimedCount",0),Xt(this,"claimable",!1),Xt(this,"schedule",[])} + } + ; + qt(sF,"StampCalendarStatusVO"); + let eF=sF; + const nF=class t{ + constructor(){ + Xt(this,"status",new eF),Xt(this,"loaded",!1)} + static getInstance(){ + return null==this.instance&&(this.instance=new t),this.instance} + async init(){ + const t=await SL.getInstance().stampCalendar.getStatus(); + 0!=t.success&&this.setStatusData(t.body)} + setStatusData(t){ + t&&(this.status.claimedCount=Number(t.claimedCount??0),this.status.claimable=!0===t.claimable,this.status.schedule=Array.isArray(t.schedule)?t.schedule:[],this.loaded=!0,mS.getInstance().dispatchCustomEvent("StampCalendarUpdate"))} + hasReward(){ + return this.loaded&&this.status.claimable} + isCompleted(){ + return this.status.claimedCount>=t.TOTAL_DAYS} + } + ; + qt(nF,"StampCalendarDataManager"),Xt(nF,"TOTAL_DAYS",30),Xt(nF,"instance"); + let hF=nF;
- const kci=class{ - constructor(){ - Yt(this,"claimedCount",0),Yt(this,"claimable",!1),Yt(this,"schedule",[])} - } - ; - Xt(kci,"StampCalendarStatusVO"); - let xci=kci; - const Rci=class t{ - constructor(){ - Yt(this,"status",new xci),Yt(this,"loaded",!1)} - static getInstance(){ - return null==this.instance&&(this.instance=new t),this.instance} - async init(){ - const t=await SL.getInstance().stampCalendar.getStatus(); - 0!=t.success&&this.setStatusData(t.body)} - setStatusData(t){ - t&&(this.status.claimedCount=Number(t.claimedCount??0),this.status.claimable=!0===t.claimable,this.status.schedule=Array.isArray(t.schedule)?t.schedule:[],this.loaded=!0,mS.getInstance().dispatchCustomEvent("StampCalendarUpdate"))} - hasReward(){ - return this.loaded&&this.status.claimable} - isCompleted(){ - return this.status.claimedCount>=t.TOTAL_DAYS} - } - ; - Xt(Rci,"StampCalendarDataManager"),Yt(Rci,"TOTAL_DAYS",30),Yt(Rci,"instance"); - let Pci=Rci;
MiniAscentCrystalRewardPopup 1 hunks, 50 statements
- super(),Yt(this,"lblHeader"),Yt(this,"lblCleared"),Yt(this,"lblCoin"),Yt(this,"btnExit"),Yt(this,"onExit",null),this.btnClose.visible=!1,this.title=sB.getText("","도전 결과"),this.lblHeader=new AD("",14708828,IL.DEFAULT_OUTLINE_FONT_OPTION_24),this.lblHeader.textColor=14708828,this.contentContainer.addChild(this.lblHeader),this.lblCleared=new AD("",16767332,IL.DEFAULT_OUTLINE_FONT_OPTION_32),this.lblCleared.textColor=16767332,this.contentContainer.addChild(this.lblCleared),this.lblCoin=new AD("",IL.DEFAULT_COLOR,IL.DEFAULT_FONT_OPTION_16),this.contentContainer.addChild(this.lblCoin),this.btnExit=new TG(sB.getText("COMMON_1","확인")),this.btnExit.onClick=this.onExitClick.bind(this),this.contentContainer.addChild(this.btnExit)} + super(),Xt(this,"body",new He),this.contentContainer.addChild(this.body)} + static getInstance(){ + return this.instance??(this.instance=new t)} + async presentReward(t,i=!1){ + const s=await Promise.allSettled([bvi.loadCrystalArt(),Zvi.getInstance().fetchCrystals(!0)]),e="fulfilled"===s[0].status?s[0].value:hs.EMPTY; + this.width=550,this.height=t.tickets?428:366,this.bg.visible=this.txtTitle.visible=!1; + for(const a of this.body.removeChildren())a.destroy({ + children:!0} + ); + this.body.addChild((new Ff).roundRect(0,0,550,this.height,18).fill(Lvi.surface).stroke({ + color:Lvi.accent,width:2} + )); + const n=qt((t,i,s=19,e=Lvi.text)=>{ + const n=new yD(t,e,{ + ...IL.DEFAULT_FONT_OPTION_16,fontSize:s,lineHeight:s+5} + ); + n.setWrapWidth(470),n.align="center",n.position.set((550-n.width)/2,i),this.body.addChild(n)} + ,"label"); + n(Rvi(i?"CRYSTAL_RECEIVED":"CRYSTAL_BOSS_REWARD"),27,26,Lvi.accent); + const h=t.items.length>3?100:132,r=t.items.length*h+20*(t.items.length-1); + t.items.forEach((t,i)=>{ + var s,n,o; + const a=null==(s=Zvi.getInstance().crystals)?void 0:s.catalog.find(i=>i.kind===t.kind),c=(550-r)/2+i*(h+20),l=ANi(e,c_i(t.kind),t.grade,null==a?void 0:a.effect,h,null==a?void 0:a.target,null==(o=null==(n=Zvi.getInstance().crystals)?void 0:n.catalog.find(i=>i.kind===t.secondaryKind))?void 0:o.effect); + l.position.set(c,87),this.body.addChild(l); + const u=new yD(TNi(t.grade),Lvi.text,IL.DEFAULT_FONT_OPTION_16); + u.position.set(c+(h-u.width)/2,229),this.body.addChild(u)} + ),t.tickets&&n(Rvi("CRYSTAL_FIRST_CLEAR",t.tickets),279,18,Lvi.accent); + const o=new QPi(Rvi("CRYSTAL_CONFIRM")); + return o.width=260,o.height=44,o.position.set(145,this.height-67),o.onClick=()=>this.hideImmediately(),this.body.addChild(o),new Promise(t=>{ + this.hideHandler=t,this.show()} + )} + } + ; + qt(cLi,"MiniAscentCrystalRewardPopup"),Xt(cLi,"instance"); + let lLi=cLi; + const uLi=Object.freeze(Object.defineProperty({ + __proto__:null,MiniAscentCrystalRewardPopup:lLi} + ,Symbol.toStringTag,{ + value:"Module"} + )),dLi=class t extends XPi{ + constructor(){ + super(),Xt(this,"lblHeader"),Xt(this,"lblCleared"),Xt(this,"lblCoin"),Xt(this,"rewardIcons",new He),Xt(this,"btnExit"),Xt(this,"onExit",null),this.btnClose.visible=!1; + const t=new yD(Rvi("RESULT_TITLE"),Lvi.accent,{ + ...IL.DEFAULT_FONT_OPTION_16,fontSize:24,lineHeight:30} + ); + t.position.set((this.width-t.width)/2,138),this.contentContainer.addChild(t),this.lblHeader=new yD("",Lvi.danger,{ + ...IL.DEFAULT_FONT_OPTION_16,fontSize:24,lineHeight:30} + ),this.lblHeader.textColor=Lvi.danger,this.contentContainer.addChild(this.lblHeader),this.lblCleared=new yD("",Lvi.accent,{ + ...IL.DEFAULT_FONT_OPTION_16,fontSize:32,lineHeight:38} + ),this.lblCleared.textColor=Lvi.accent,this.contentContainer.addChild(this.lblCleared),this.lblCoin=new yD("",Lvi.text,IL.DEFAULT_FONT_OPTION_16),this.contentContainer.addChild(this.lblCoin),this.contentContainer.addChild(this.rewardIcons),this.btnExit=new QPi(sB.getText("COMMON_1","확인")),this.btnExit.onClick=this.onExitClick.bind(this),this.contentContainer.addChild(this.btnExit)}
MiniAscentCardsPage 4 hunks, 46 statements
- addText(t,i,s,e=16,n=13878960){ - const h=new AD(t,n,IL.DEFAULT_FONT_OPTION_16); - return h.textSize=e,h.position.set(i,s),this.body.addChild(h),h} - setData(t){ + show(){ + this.height=876,this.render(),super.show()} + render(){
- const i=this.addText(`${ - t.floor} - 층 · 상대 선택`,0,22,24,16767332); - i.x=(this.width-i.width)/2,this.addText("상대 한 명을 선택하세요. 패배해도 군단과 층은 유지됩니다.",28,83,15),t.opponents.forEach((t,i)=>{ - const s=122+166*i; - this.body.addChild((new Ff).roundRect(24,s,568,150,12).fill(1512465).stroke({ - color:5588789,width:1} - )); - const e=t.training?`훈련 상대 ${ - i+1} - `:t.name; - this.addText(e,40,s+10,18,16777215); - const n=t.enemy.filter(t=>t.heroKindNum>0); - n.forEach((t,i)=>{ - const e=40+80*i,n=new V3; - n.setDataWithKindNum(t.heroKindNum,t.heroTrans),n.scale.set(.55),n.position.set(e,s+40),this.body.addChild(n),this.addText(`Lv.${ - t.heroLevel??10} - `,e,s+87,13),this.addText(`×${ - t.soldierTiers.reduce((t,i)=>t+i.count,0)} - `,e,s+109,14)} + this.body.scale.set(1),this.body.position.set(0); + const t=Zvi.getInstance().run,i=null==t?void 0:t.cardRewards,s=null==i?void 0:i.current,e=qt((t,i,s,e=Lvi.text,n=520)=>{ + const h=new yD(t,e,{ + ...IL.DEFAULT_FONT_OPTION_16,fontSize:s,lineHeight:s+6}
- const h=new TG("편성 확인"); - h.width=128,h.height=48,h.position.set(448,s+61),h.onClick=()=>{ - const i=this.onSelect; - this.onSelect=null,this.hideImmediately(),null==i||i(t)} - ,this.body.addChild(h)} - ),this.addText("상대는 해당 층의 편성 기록입니다. 기록이 부족하면 훈련 상대가 등장합니다.",28,633,14).setWrapWidth(560); - const s=new TG("로비로"); - s.width=240,s.height=48,s.color=TG.BROWN,s.position.set((this.width-240)/2,674),s.onClick=()=>this.onCloseBtnClick(),this.body.addChild(s),this.drawPanel()} - onCloseBtnClick(){ - var t; - this.hideImmediately(),null==(t=this.onBack)||t.call(this)} + return h.align="center",h.setWrapWidth(n),h.position.set((616-h.width)/2,i),this.body.addChild(h),h} + ,"center"),n=e(Rvi("CARDS_CURRENT"),142,26,Lvi.accent); + if(!s)return void e(Rvi((null==i?void 0:i.total)?"CARDS_ALL_CLAIMED":"CARDS_EMPTY"),n.y+n.height+48,20,Lvi.muted); + const h=n.y+n.height+28,r=new Ff; + this.body.addChild(r); + const o=e(`${ + i.claimed+1} + / ${ + i.total} + `,h+28,40,Lvi.accent),a=e(Rvi("CARDS_WAVE",s.floor),o.y+o.height+12,18),c=e(Rvi("CARDS_SEQUENTIAL_RULES"),a.y+a.height+28,17,Lvi.muted,456),l=c.y+c.height+32; + r.roundRect(40,h,536,l+82-h,16).fill(Lvi.surface).stroke({ + color:Lvi.border,width:1.5} + ); + const u=new QPi(Rvi(s.revealed?"CARDS_CHOOSE":"CARDS_RECEIVE")); + u.width=320,u.height=54,u.position.set(148,l),u.activated=!this.busy&&!(null==t?void 0:t.battlePending),u.onClick=()=>{ + this.busy||(null==t?void 0:t.battlePending)||(this.busy=!0,u.activated=!1,v_i.openCardPick(s.id).catch(t=>pH.getInstance().showMessage(t.message)).finally(()=>{ + this.busy=!1,this.parent&&this.render()} + ))} + ,this.body.addChild(u); + const d=e(Rvi("CARDS_RULES"),l+106,15,Lvi.muted),f=d.y+d.height+24,p=Math.min(1,(this.height-150)/Math.max(1,f-142)); + this.body.scale.set(p),this.body.position.set(308*(1-p),142*(1-p))}
- Xt(aPi,"MiniAscentOpponentPopup"),Yt(aPi,"instance"); + qt(ZPi,"MiniAscentCardsPage"),Xt(ZPi,"instance");
BaseUnit 11 hunks, 40 statements
- ),Yt(this,"startSound",""),Yt(this,"attackSound",""),Yt(this,"skillSound",""),Yt(this,"dieSound",""),Yt(this,"weaponClass",SV.NormalArrow),Yt(this,"initDelay",0),Yt(this,"firePoint",new _i(10,-20)),Yt(this,"_tmpPoint",new _i(0,0)),Yt(this,"container",new He),Yt(this,"hasTextEffect",!0),Yt(this,"baseMaxHp",100),Yt(this,"baseAtkDmg",7),Yt(this,"baseDef",1),Yt(this,"baseMoveSpd",1),Yt(this,"baseAtkDuration",30),Yt(this,"baseAtkRange",15),Yt(this,"baseDetectRange",500),Yt(this,"patrolPoint",new _i(0,0)),Yt(this,"patrolRadius",0),Yt(this,"isPatrolMode",!1),Yt(this,"idleLookTimer",0),Yt(this,"idleLookInterval",0),Yt(this,"numBlock",2),Yt(this,"isCastle",!1),Yt(this,"flowField",null),Yt(this,"losBlockedFrames",0),Yt(this,"forceFlowFrames",0),Yt(this,"windowStuckStreak",0),Yt(this,"stuckFrames",0),Yt(this,"lastStuckX",0),Yt(this,"lastStuckY",0),Yt(this,"lastDistToTarget2",1/0),Yt(this,"windowDistOrigin2",1/0),Yt(this,"windowFrames",0),Yt(this,"pathCooldown",0),Yt(this,"pathWaypoints",null),Yt(this,"pathIndex",0),Yt(this,"pathTargetX",0),Yt(this,"pathTargetY",0),Yt(this,"blockedEnemies",new Set),Yt(this,"surroundedFrames",0),Yt(this,"cachedTargetDistance",0),Yt(this,"cacheFrame",0),Yt(this,"cachedTarget",null),Yt(this,"stateChangeTimer",0),Yt(this,"minStateFrames",4),Yt(this,"hysteresisMargin",5),Yt(this,"aggressiveRetarget",!1),Yt(this,"retargetCheckTimer",0),Yt(this,"rallyMoveTimer",0),Yt(this,"farFromCastleFrames",0),Yt(this,"needsReposition",!1),Yt(this,"repositionX",0),Yt(this,"repositionY",0),Yt(this,"repositionPatrolRadius",0),Yt(this,"repositionTimeout",0),Yt(this,"maxRepositionWaitFrames",600),Yt(this,"commandPhase","none"),Yt(this,"commandX",0),Yt(this,"commandY",0),Yt(this,"commandWaitTimer",0),Yt(this,"commandSpeedMult",1),Yt(this,"commandWaitFrames",60),Yt(this,"commandFlowField",null),Yt(this,"commandFrames",0),Yt(this,"commandStuckFrames",0),Yt(this,"showTombstone",!1),Yt(this,"imgTombStone",null),Yt(this,"txtReviveTimer",null),Yt(this,"xDeath",0),Yt(this,"yDeath",0),Yt(this,"healthBar",new w0),Yt(this,"healthBarVisible",!0),Yt(this,"kindNum",0),Yt(this,"grade",1),Yt(this,"id",99999),Yt(this,"dotDamager",new M0),Yt(this,"dotHeal",new S0),Yt(this,"activeDamageBuff",new C0),Yt(this,"activeDefenseBuff",new C0),Yt(this,"activeMaxHealthBuff",new C0),Yt(this,"activeAttackSpeedBuff",new C0),Yt(this,"activeMoveSpeedBuff",new C0),Yt(this,"activeCritMultiplierBuff",new C0),Yt(this,"activeCritChanceBuff",new C0),Yt(this,"activeRangeEavdeBuff",new C0),Yt(this,"orgMaxHp",100),Yt(this,"orgAtkDmg",7),Yt(this,"orgDef",1),Yt(this,"orgPhyDef",1),Yt(this,"orgMagDef",1),Yt(this,"orgMoveSpd",1),Yt(this,"orgAtkSpd",1),Yt(this,"orgCritDmg",1.5),Yt(this,"orgCritChance",.1),Yt(this,"orgAtkRange",15),Yt(this,"orgAtkDuration",30),Yt(this,"orgRangeEvadeChange",0),Yt(this,"raidIncomingDamageMult",1),Yt(this,"raidPassiveIncomingMult",1),Yt(this,"ground",0),Yt(this,"reviveAirProgress",1),Yt(this,"shadow"),Yt(this,"shadowSize",1),Yt(this,"hasSkill",!1),Yt(this,"maxMana",500),Yt(this,"mana",0),Yt(this,"_hpDroppedBelow60",!1),Yt(this,"_hpDroppedBelow40",!1),Yt(this,"_hpDroppedBelow20",!1),Yt(this,"effectList",[]),Yt(this,"battleController",null),Yt(this,"isSummoned",!1),Yt(this,"summonDuration",0),Yt(this,"summonTimer",0),Yt(this,"summoner",null),Yt(this,"summonerGeneration",0),Yt(this,"summonLeashRange",0),Yt(this,"generation",0),Yt(this,"weight",1),Yt(this,"bossType",0),Yt(this,"normalSize",1.05),Yt(this,"evolSize",1.1),Yt(this,"gameStarted",!1),Yt(this,"uiTopOffset",0),Yt(this,"level",1),Yt(this,"gold",0),Yt(this,"enhance",0),Yt(this,"isEnemySide",!1),Yt(this,"hasDroppedGold",!1),Yt(this,"goldDropFrame",2),Yt(this,"onGoldDrop",null),Yt(this,"sex",px.MALE),Yt(this,"name",""),Yt(this,"base",0),Yt(this,"lastPercentHp",1),Yt(this,"lastPercentAtkDmg",1),Yt(this,"lastPercentDef",1),Yt(this,"incFrame",1),Yt(this,"dieIncFrame",.3),Yt(this,"loop",!0),Yt(this,"startFrame",0),Yt(this,"endFrame",0),Yt(this,"attackCoolDown",0),Yt(this,"recoveryCoolDown",0),Yt(this,"recoveryInterval",300),Yt(this,"stateHandlers",{ + ),Xt(this,"startSound",""),Xt(this,"attackSound",""),Xt(this,"skillSound",""),Xt(this,"dieSound",""),Xt(this,"weaponClass",Oj.NormalArrow),Xt(this,"initDelay",0),Xt(this,"firePoint",new _i(10,-20)),Xt(this,"_tmpPoint",new _i(0,0)),Xt(this,"container",new He),Xt(this,"hasTextEffect",!0),Xt(this,"baseMaxHp",100),Xt(this,"baseAtkDmg",7),Xt(this,"baseDef",1),Xt(this,"baseMoveSpd",1),Xt(this,"baseAtkDuration",30),Xt(this,"baseAtkRange",15),Xt(this,"baseDetectRange",500),Xt(this,"patrolPoint",new _i(0,0)),Xt(this,"patrolRadius",0),Xt(this,"isPatrolMode",!1),Xt(this,"idleLookTimer",0),Xt(this,"idleLookInterval",0),Xt(this,"numBlock",2),Xt(this,"isCastle",!1),Xt(this,"flowField",null),Xt(this,"losBlockedFrames",0),Xt(this,"forceFlowFrames",0),Xt(this,"windowStuckStreak",0),Xt(this,"stuckFrames",0),Xt(this,"lastStuckX",0),Xt(this,"lastStuckY",0),Xt(this,"lastDistToTarget2",1/0),Xt(this,"windowDistOrigin2",1/0),Xt(this,"windowFrames",0),Xt(this,"pathCooldown",0),Xt(this,"pathWaypoints",null),Xt(this,"pathIndex",0),Xt(this,"pathTargetX",0),Xt(this,"pathTargetY",0),Xt(this,"blockedEnemies",new Set),Xt(this,"surroundedFrames",0),Xt(this,"cachedTargetDistance",0),Xt(this,"cacheFrame",0),Xt(this,"cachedTarget",null),Xt(this,"stateChangeTimer",0),Xt(this,"minStateFrames",4),Xt(this,"hysteresisMargin",5),Xt(this,"aggressiveRetarget",!1),Xt(this,"retargetCheckTimer",0),Xt(this,"rallyMoveTimer",0),Xt(this,"farFromCastleFrames",0),Xt(this,"needsReposition",!1),Xt(this,"repositionX",0),Xt(this,"repositionY",0),Xt(this,"repositionPatrolRadius",0),Xt(this,"repositionTimeout",0),Xt(this,"maxRepositionWaitFrames",600),Xt(this,"commandPhase","none"),Xt(this,"commandX",0),Xt(this,"commandY",0),Xt(this,"commandWaitTimer",0),Xt(this,"commandSpeedMult",1),Xt(this,"commandWaitFrames",60),Xt(this,"commandFlowField",null),Xt(this,"commandFrames",0),Xt(this,"commandStuckFrames",0),Xt(this,"showTombstone",!1),Xt(this,"imgTombStone",null),Xt(this,"txtReviveTimer",null),Xt(this,"xDeath",0),Xt(this,"yDeath",0),Xt(this,"healthBar",new E0),Xt(this,"healthBarVisible",!0),Xt(this,"kindNum",0),Xt(this,"grade",1),Xt(this,"id",99999),Xt(this,"dotDamager",new S0),Xt(this,"dotHeal",new O0),Xt(this,"activeDamageBuff",new R0),Xt(this,"activeDefenseBuff",new R0),Xt(this,"activeMaxHealthBuff",new R0),Xt(this,"activeAttackSpeedBuff",new R0),Xt(this,"activeMoveSpeedBuff",new R0),Xt(this,"activeCritMultiplierBuff",new R0),Xt(this,"activeCritChanceBuff",new R0),Xt(this,"activeRangeEavdeBuff",new R0),Xt(this,"orgMaxHp",100),Xt(this,"orgAtkDmg",7),Xt(this,"orgDef",1),Xt(this,"orgPhyDef",1),Xt(this,"orgMagDef",1),Xt(this,"orgMoveSpd",1),Xt(this,"orgAtkSpd",1),Xt(this,"orgCritDmg",1.5),Xt(this,"orgCritChance",.1),Xt(this,"orgAtkRange",15),Xt(this,"orgAtkDuration",30),Xt(this,"orgRangeEvadeChange",0),Xt(this,"miniAscentDamageReduction",0),Xt(this,"miniAscentManaRegen",0),Xt(this,"raidIncomingDamageMult",1),Xt(this,"raidPassiveIncomingMult",1),Xt(this,"ground",0),Xt(this,"reviveAirProgress",1),Xt(this,"shadow"),Xt(this,"shadowSize",1),Xt(this,"hasSkill",!1),Xt(this,"maxMana",500),Xt(this,"mana",0),Xt(this,"_hpDroppedBelow60",!1),Xt(this,"_hpDroppedBelow40",!1),Xt(this,"_hpDroppedBelow20",!1),Xt(this,"effectList",[]),Xt(this,"battleController",null),Xt(this,"attackEffectSource",null),Xt(this,"extraAttackEffects",null),Xt(this,"isSummoned",!1),Xt(this,"summonDuration",0),Xt(this,"summonTimer",0),Xt(this,"summoner",null),Xt(this,"summonerGeneration",0),Xt(this,"summonLeashRange",0),Xt(this,"generation",0),Xt(this,"weight",1),Xt(this,"bossType",0),Xt(this,"normalSize",1.05),Xt(this,"evolSize",1.1),Xt(this,"gameStarted",!1),Xt(this,"uiTopOffset",0),Xt(this,"level",1),Xt(this,"gold",0),Xt(this,"enhance",0),Xt(this,"isEnemySide",!1),Xt(this,"hasDroppedGold",!1),Xt(this,"goldDropFrame",2),Xt(this,"onGoldDrop",null),Xt(this,"sex",pR.MALE),Xt(this,"name",""),Xt(this,"base",0),Xt(this,"lastPercentHp",1),Xt(this,"lastPercentAtkDmg",1),Xt(this,"lastPercentDef",1),Xt(this,"incFrame",1),Xt(this,"dieIncFrame",.3),Xt(this,"loop",!0),Xt(this,"startFrame",0),Xt(this,"endFrame",0),Xt(this,"attackCoolDown",0),Xt(this,"recoveryCoolDown",0),Xt(this,"recoveryInterval",300),Xt(this,"stateHandlers",{
+ addNormalAttackEffect(t,i,s,e){ + return this.addAttackEffect("normal",t,i,s,e)} + addSkillAttackEffect(t,i,s,e){ + return this.addAttackEffect("skill",t,i,s,e)} + addAttackEffect(t,i,s,e,n){ + var h; + const r=null==(h=this.battleController)?void 0:h.attackEffects; + if(!r)throw new Error("Assign battleController before adding attack effects."); + this.extraAttackEffects&&this.extraAttackEffects!==r&&this.clearAttackEffects(); + const o=r.add(this,t,i,s,e,n); + return this.extraAttackEffects=r,o} + removeAttackEffect(t){ + var i; + null==(i=this.extraAttackEffects)||i.remove(this,t)} + clearAttackEffects(){ + var t; + null==(t=this.extraAttackEffects)||t.clearUnit(this),this.extraAttackEffects=null,this.attackEffectSource=null} + captureAttackEffectSource(t){ + var i; + return(null==(i=this.extraAttackEffects)?void 0:i.captureSource(this,t))??null} + withAttackEffects(t,i){ + const s=this.attackEffectSource; + this.attackEffectSource=this.captureAttackEffectSource(t); + try{ + return i()} + finally{ + this.attackEffectSource=s} + }
- if(this.visible=!0,this.renderable=!0,this.alpha=1,this.sp&&(this.sp.visible=!0),this.isAlive=!0,this.kindNum=i.kindNum,this.grade=i.grade,this.sex=i.sex,this.name=i.name,this.base=i.base,this.lastPercentHp=s,this.lastPercentAtkDmg=e,this.lastPercentDef=n,this.baseMaxHp=i.maxHp*s,this.baseAtkDmg=i.atkDmg*e,this.baseDef=i.def*n,this.baseMoveSpd=i.moveSpd,this.baseAtkDuration=1e4/i.atkSpd,this.baseAtkRange=i.atkRange,this.level=i.level,this.enhance=i.enhance,this.isEnemySide=i.isEnemy,this.numBlock=i.numBlock,this.orgAtkDuration=this.atkDuration=1e4/i.atkSpd,this.orgAtkSpd=i.atkSpd,this.orgAtkRange=this.atkRange=i.atkRange,this.orgMoveSpd=this.moveSpd=i.moveSpd,this.orgDef=this.def=i.def*n,this.orgPhyDef=this.phyDef=i.phyDef*n,this.orgMagDef=this.magDef=i.magDef*n,this.orgMaxHp=this.maxHp=i.maxHp*s,this.hp=this.maxHp,this.orgAtkDmg=this.atkDmg=i.atkDmg*e,this.orgRangeEvadeChange=this.rangeEvadeChange=0,this.orgCritDmg=this.critDmg=this.baseCritDmg,this.orgCritChance=this.critChance=this.baseCritChance,this.atkRange2=this.atkRange*this.atkRange,this.detectRange2=this.detectRange*this.detectRange,this.unitType=i.unitType,this.tribe=i.tribe,this.isAir=i.isAir,this.maxRevive=i.numRevive,this.reviveInterval=i.reviveTime,this.dmgType=i.dmgType,this.recovery=i.recovery,this.evolStage=i.evolStage,this.weight=i.weight,this.cloaking=i.cloaking,this.canDetect=i.detect,this.knockImmune=i.knockImmune,this.blowImmune=i.blowImmune,this.stunImmune=i.stunImmune,this.freezeImmune=i.freezeImmune,this.poisonImmune=!1,this.stunResistPct=0,this.knockResistPct=0,this.blowResistPct=0,this.freezeResistPct=0,this.evolStage>=1?(this.showEvolEffect(),this.setSize(this.evolSize)):this.setSize(this.normalSize),this.mana=0,this.raidIncomingDamageMult=1,this.raidPassiveIncomingMult=1,this.currentFrame=0,this.frame=0,this.incFrame=1,this.initDelay=0,this.rallyMoveTimer=0,this.farFromCastleFrames=0,this.attackCoolDown=0,this.recoveryCoolDown=0,this.numStun=0,this.numFreeze=0,this.numPoison=0,this.numCurse=0,this.numBinding=0,this.numShock=0,this.idleLookInterval=40+this.random.nextInt(60),this.idleLookTimer=0,this.retargetCheckTimer=this.random.nextInt(t.RETARGET_CHECK_INTERVAL),this.aggressiveRetarget=!1,this.battleController&&void 0!==this.battleController.unitScale){ + if(this.visible=!0,this.renderable=!0,this.alpha=1,this.sp&&(this.sp.visible=!0),this.isAlive=!0,this.kindNum=i.kindNum,this.grade=i.grade,this.sex=i.sex,this.name=i.name,this.base=i.base,this.lastPercentHp=s,this.lastPercentAtkDmg=e,this.lastPercentDef=n,this.baseMaxHp=i.maxHp*s,this.baseAtkDmg=i.atkDmg*e,this.baseDef=i.def*n,this.baseMoveSpd=i.moveSpd,this.baseAtkDuration=1e4/i.atkSpd,this.baseAtkRange=i.atkRange,this.level=i.level,this.enhance=i.enhance,this.isEnemySide=i.isEnemy,this.numBlock=i.numBlock,this.orgAtkDuration=this.atkDuration=1e4/i.atkSpd,this.orgAtkSpd=i.atkSpd,this.orgAtkRange=this.atkRange=i.atkRange,this.orgMoveSpd=this.moveSpd=i.moveSpd,this.orgDef=this.def=i.def*n,this.orgPhyDef=this.phyDef=i.phyDef*n,this.orgMagDef=this.magDef=i.magDef*n,this.orgMaxHp=this.maxHp=i.maxHp*s,this.hp=this.maxHp,this.orgAtkDmg=this.atkDmg=i.atkDmg*e,this.orgRangeEvadeChange=this.rangeEvadeChange=0,this.orgCritDmg=this.critDmg=this.baseCritDmg,this.orgCritChance=this.critChance=this.baseCritChance,this.atkRange2=this.atkRange*this.atkRange,this.detectRange2=this.detectRange*this.detectRange,this.unitType=i.unitType,this.tribe=i.tribe,this.isAir=i.isAir,this.maxRevive=i.numRevive,this.reviveInterval=i.reviveTime,this.dmgType=i.dmgType,this.recovery=i.recovery,this.evolStage=i.evolStage,this.weight=i.weight,this.cloaking=i.cloaking,this.canDetect=i.detect,this.knockImmune=i.knockImmune,this.blowImmune=i.blowImmune,this.stunImmune=i.stunImmune,this.freezeImmune=i.freezeImmune,this.poisonImmune=!1,this.stunResistPct=0,this.knockResistPct=0,this.blowResistPct=0,this.freezeResistPct=0,this.evolStage>=1?(this.showEvolEffect(),this.setSize(this.evolSize)):this.setSize(this.normalSize),this.mana=0,this.miniAscentDamageReduction=0,this.miniAscentManaRegen=0,this.raidIncomingDamageMult=1,this.raidPassiveIncomingMult=1,this.currentFrame=0,this.frame=0,this.clearAttackEffects(),this.incFrame=1,this.initDelay=0,this.rallyMoveTimer=0,this.farFromCastleFrames=0,this.attackCoolDown=0,this.recoveryCoolDown=0,this.numStun=0,this.numFreeze=0,this.numPoison=0,this.numCurse=0,this.numBinding=0,this.numShock=0,this.idleLookInterval=40+this.random.nextInt(60),this.idleLookTimer=0,this.retargetCheckTimer=this.random.nextInt(t.RETARGET_CHECK_INTERVAL),this.aggressiveRetarget=!1,this.battleController&&void 0!==this.battleController.unitScale){
- if(1==this.frame&&0==this.gameStarted&&(this.onGameStart(),this.gameStarted=!0,""!=this.startSound&&Math.random()<.1&&bG.getInstance().playSFX(this.startSound)),this.numAtkSlow>0?(this.numAtkSlow--,this.attackCoolDown-=.5):this.attackCoolDown--,this.numChillTint>0&&(this.numChillTint--,this.numChillTint<=0&&this.sp&&(this.sp.tint=16777215)),this.recoveryCoolDown--,this.mana+=1,this.stateChangeTimer>0&&this.stateChangeTimer--,this.rallyMoveTimer>0&&(this.rallyMoveTimer--,this.isPatrolMode)){ + if(1==this.frame&&0==this.gameStarted&&(this.onGameStart(),this.gameStarted=!0,""!=this.startSound&&Math.random()<.1&&bG.getInstance().playSFX(this.startSound)),this.numAtkSlow>0?(this.numAtkSlow--,this.attackCoolDown-=.5):this.attackCoolDown--,this.numChillTint>0&&(this.numChillTint--,this.numChillTint<=0&&this.sp&&(this.sp.tint=16777215)),this.recoveryCoolDown--,this.mana+=1+this.miniAscentManaRegen,this.stateChangeTimer>0&&this.stateChangeTimer--,this.rallyMoveTimer>0&&(this.rallyMoveTimer--,this.isPatrolMode)){
- i==this.attackFrames.start+2?this.onAttackStartFrame():i==this.attackFrames.end-2&&this.onAttackEndFrame(),1==this.objAtk[i]&&(this._cloaking&&++this._cloakingAttackCount>=t.CLOAKING_ATTACK_LIMIT&&(this.cloaking=!1),this.attackMain()),this.currentFrame>=this.attackFrames.end&&this.gotoIdleState()} + i==this.attackFrames.start+2?this.onAttackStartFrame():i==this.attackFrames.end-2&&this.onAttackEndFrame(),1==this.objAtk[i]&&(this._cloaking&&++this._cloakingAttackCount>=t.CLOAKING_ATTACK_LIMIT&&(this.cloaking=!1),this.extraAttackEffects?this.withAttackEffects("normal",()=>this.attackMain()):this.attackMain()),this.currentFrame>=this.attackFrames.end&&this.gotoIdleState()}
- doDamage(i,s,e=!1){ + doDamage(i,s,e=!1,n){ + var h;
- if(t.raidDamageMultHook&&(c*=t.raidDamageMultHook(this,i)),1!==i.raidIncomingDamageMult&&(c*=Math.max(0,i.raidIncomingDamageMult)),i.numPriestShield>0&&i.priestShieldHits>0)return i.priestShieldHits--,i.priestShieldHits<=0&&(i.numPriestShield=0),!1; + if(t.raidDamageMultHook&&(u*=t.raidDamageMultHook(this,i)),u*=1-i.miniAscentDamageReduction,1!==i.raidIncomingDamageMult&&(u*=Math.max(0,i.raidIncomingDamageMult)),i.numPriestShield>0&&i.priestShieldHits>0)return i.priestShieldHits--,i.priestShieldHits<=0&&(i.numPriestShield=0),!1;
- return!0} + const p=void 0===n?this.attackEffectSource:n; + return(null==p?void 0:p.owner)!==this||void 0===n&&"skill"!==p.trigger&&i!==this.target||null==(h=this.extraAttackEffects)||h.onHit(p,i,u),!0}
- t==this.skillFrames.start+2?(this.onAttackStartEffect(),this.onSkillStartFrame()):t==this.skillFrames.end-2&&this.onSkillEndFrame(),1==this.objSkill[t]&&this.skillMain(),this.currentFrame>=this.skillFrames.end&&this.gotoIdleState()} + t==this.skillFrames.start+2?(this.onAttackStartEffect(),this.onSkillStartFrame()):t==this.skillFrames.end-2&&this.onSkillEndFrame(),1==this.objSkill[t]&&(this.extraAttackEffects?this.withAttackEffects("skill",()=>this.skillMain()):this.skillMain()),this.currentFrame>=this.skillFrames.end&&this.gotoIdleState()}
- 0!=this.isAlive&&(this.health-=t.damage)} + 0!=this.isAlive&&(this.health-=t.damage*(1-this.miniAscentDamageReduction))}
- this._poolReturned||(this._poolReturned=!0,this.generation++,this.removeAllListeners(),this.removeAllEffect(),this.hideEvolEffect(),TB.getInstance().remove(this.hideHealthBar,this),this.tint=16777215,G3.getInstance().addToRecycleList(this),this.target=null,this.removed=!0,this.battleController=null,this.raidIncomingDamageMult=1,this.enemyList=[],this.allyList=[],this.summoner=null,this.isSummoned=!1,this.summonDuration=0,this.summonTimer=0,this.summonLeashRange=0,this.onGoldDrop=null,this.blockedEnemies.clear(),this.activeDamageBuff.reset(),this.activeDefenseBuff.reset(),this.activeMaxHealthBuff.reset(),this.activeAttackSpeedBuff.reset(),this.activeMoveSpeedBuff.reset(),this.activeCritMultiplierBuff.reset(),this.activeCritChanceBuff.reset(),this.activeRangeEavdeBuff.reset(),this.disablePatrol(),this.rallyMoveTimer=0,this.needsReposition=!1,this.removeAllCC(),this.numPowerShield=0,this.numMagicalShield=0,this.numPhysicalShield=0,this.numPriestShield=0,this.numLove=0,this.numLoveShield=0,this.dotDamager.reset(),this.dotHeal.reset(),this.shadow&&(this.shadow.visible=!1,this.shadow.parent&&this.shadow.removeFromParent()),this.isAlive=!0,this.numRevive=0,this.reviveCount=0,this.imgTombStone&&(this.imgTombStone.visible=!1),this.txtReviveTimer&&(this.txtReviveTimer.visible=!1),this.sp&&(this.sp.visible=!0),this.scale.set(1,1),this.parent&&this.removeFromParent())} + this._poolReturned||(this._poolReturned=!0,this.generation++,this.removeAllListeners(),this.removeAllEffect(),this.hideEvolEffect(),TB.getInstance().remove(this.hideHealthBar,this),this.tint=16777215,H3.getInstance().addToRecycleList(this),this.target=null,this.removed=!0,this.battleController=null,this.clearAttackEffects(),this.miniAscentDamageReduction=0,this.miniAscentManaRegen=0,this.raidIncomingDamageMult=1,this.enemyList=[],this.allyList=[],this.summoner=null,this.isSummoned=!1,this.summonDuration=0,this.summonTimer=0,this.summonLeashRange=0,this.onGoldDrop=null,this.blockedEnemies.clear(),this.activeDamageBuff.reset(),this.activeDefenseBuff.reset(),this.activeMaxHealthBuff.reset(),this.activeAttackSpeedBuff.reset(),this.activeMoveSpeedBuff.reset(),this.activeCritMultiplierBuff.reset(),this.activeCritChanceBuff.reset(),this.activeRangeEavdeBuff.reset(),this.disablePatrol(),this.rallyMoveTimer=0,this.needsReposition=!1,this.removeAllCC(),this.numPowerShield=0,this.numMagicalShield=0,this.numPhysicalShield=0,this.numPriestShield=0,this.numLove=0,this.numLoveShield=0,this.dotDamager.reset(),this.dotHeal.reset(),this.shadow&&(this.shadow.visible=!1,this.shadow.parent&&this.shadow.removeFromParent()),this.isAlive=!0,this.numRevive=0,this.reviveCount=0,this.imgTombStone&&(this.imgTombStone.visible=!1),this.txtReviveTimer&&(this.txtReviveTimer.visible=!1),this.sp&&(this.sp.visible=!0),this.scale.set(1,1),this.parent&&this.removeFromParent())}
RightBottomMenus 7 hunks, 40 statements
- super(),Yt(this,"btnDungeon",new tU("UI_Ekkorr","HeroGrade6")),Yt(this,"btnIdle",new tU("UI_Ekkorr","HeroGrade4")),Yt(this,"btnMap3",new tU("UI_Ekkorr","HeroGrade2")),Yt(this,"btnMap4",new tU("UI_Ekkorr","HeroGrade16")),Yt(this,"btnRaidBosses",[]),Yt(this,"btnBuff",new tU("UI_Ekkorr","HeroGrade10")),Yt(this,"btnMine",new tU("UI_Ekkorr","HeroGrade12")),Yt(this,"btnCardEvent",new tU("UI_Ekkorr","HeroGrade14")),Yt(this,"btnConquest",new tU("UI_Ekkorr","HeroGrade8")),Yt(this,"btnMiniAscent",new tU("UI_Ekkorr","HeroGrade10")),Yt(this,"btnPowerSave",new tU("UI_Ekkorr","PowerOff")),Yt(this,"healthOrb",v1t.getInstance()),Yt(this,"waveCallInfo",A1t.getInstance()),Yt(this,"timeShiftGauge",new y1t),Yt(this,"btnWaveSetting",new tU("UI_Ekkorr","smallSetting")),Yt(this,"btnAllPreset",new tU("UI_Ekkorr","AllPreset")),Yt(this,"waveSettingFrameCnt",0),Yt(this,"onReviveBind"),this.healthOrb.x=640-.5*this.healthOrb.width-3,this.healthOrb.y=13,this.addChild(this.healthOrb),this.waveCallInfo.x=10,this.waveCallInfo.y=t.WAVE_CALL_BASE_Y,this.addChild(this.waveCallInfo),this.waveCallInfo.eventMode="static",this.waveCallInfo.on("pointerup",this.getNextWave,this),this.waveCallInfo.start(),this.timeShiftGauge.x=this.waveCallInfo.x+62,this.timeShiftGauge.y=this.waveCallInfo.y,this.addChild(this.timeShiftGauge),this.btnWaveSetting.x=this.timeShiftGauge.x+48+12,this.btnWaveSetting.y=this.waveCallInfo.y+.5*(40-this.btnWaveSetting.height),this.addChild(this.btnWaveSetting),this.btnWaveSetting.on("pointerup",this.onWaveSetting,this),this.btnWaveSetting.visible=!1,Fy.getInstance().add(this.onWaveSettingFrame,this),Wqt.getInstance().x=0,Wqt.getInstance().y=-13,this.addChild(Wqt.getInstance()),Wqt.getInstance().onVisibilityChanged=t=>{ + super(),Xt(this,"btnDungeon",new tU("UI_Ekkorr","HeroGrade6")),Xt(this,"btnIdle",new tU("UI_Ekkorr","HeroGrade4")),Xt(this,"btnMap3",new tU("UI_Ekkorr","HeroGrade2")),Xt(this,"btnMap4",new tU("UI_Ekkorr","HeroGrade16")),Xt(this,"btnRaidBosses",[]),Xt(this,"btnBuff",new tU("UI_Ekkorr","HeroGrade10")),Xt(this,"btnMine",new tU("UI_Ekkorr","HeroGrade12")),Xt(this,"btnCardEvent",new tU("UI_Ekkorr","HeroGrade14")),Xt(this,"btnConquest",new tU("UI_Ekkorr","HeroGrade8")),Xt(this,"btnMiniAscent",new tU("UI_Ekkorr","HeroGrade10")),Xt(this,"btnPowerSave",new tU("UI_Ekkorr","PowerOff")),Xt(this,"healthOrb",O1t.getInstance()),Xt(this,"waveCallInfo",L1t.getInstance()),Xt(this,"timeShiftGauge",new P1t),Xt(this,"btnWaveSetting",new tU("UI_Ekkorr","smallSetting")),Xt(this,"btnAllPreset",new tU("UI_Ekkorr","AllPreset")),Xt(this,"waveSettingFrameCnt",0),Xt(this,"openingMiniAscent",!1),Xt(this,"onReviveBind"),this.healthOrb.x=640-.5*this.healthOrb.width-3,this.healthOrb.y=13,this.addChild(this.healthOrb),this.waveCallInfo.x=10,this.waveCallInfo.y=t.WAVE_CALL_BASE_Y,this.addChild(this.waveCallInfo),this.waveCallInfo.eventMode="static",this.waveCallInfo.on("pointerup",this.getNextWave,this),this.waveCallInfo.start(),this.timeShiftGauge.x=this.waveCallInfo.x+62,this.timeShiftGauge.y=this.waveCallInfo.y,this.addChild(this.timeShiftGauge),this.btnWaveSetting.x=this.waveSettingX(),this.btnWaveSetting.y=this.waveCallInfo.y+.5*(40-this.btnWaveSetting.height),this.addChild(this.btnWaveSetting),this.btnWaveSetting.on("pointerup",this.onWaveSetting,this),this.btnWaveSetting.visible=!1,FM.getInstance().add(this.onWaveSettingFrame,this),zYt.getInstance().x=0,zYt.getInstance().y=-13,this.addChild(zYt.getInstance()),zYt.getInstance().onVisibilityChanged=t=>{
- this.btnWaveSetting.visible!==t&&(this.btnWaveSetting.visible=t)} + this.btnWaveSetting.visible!==t&&(this.btnWaveSetting.visible=t); + const i=this.waveSettingX(); + this.btnWaveSetting.x!==i&&(this.btnWaveSetting.x=i)} + waveSettingX(){ + return(this.timeShiftGauge.visible?this.timeShiftGauge:this.waveCallInfo).x+48+12}
- mG(); + if(!this.openingMiniAscent){ + this.openingMiniAscent=!0,this.btnMiniAscent.alpha=.5,mG(); + try{
- MiniAscentLobbyPopup:t} + MiniAscentAssets:t}
- MiniAscentLobbyPopup:t} + MiniAscentAssets:t}
- MiniAscentLobbyPopup:t} + MiniAscentAssets:t}
- t.getInstance().show()} + await t.ensure(); + const{ + MiniAscentFlow:i} + =await ti(async()=>{ + const{ + MiniAscentFlow:t} + =await Promise.resolve().then(()=>__i); + return{ + MiniAscentFlow:t} + } + ,void 0); + await i.enter()} + catch{ + const{ + pveText:t} + =await ti(async()=>{ + const{ + pveText:t} + =await Promise.resolve().then(()=>Nvi); + return{ + pveText:t} + } + ,void 0); + pH.getInstance().showMessage(t("ASSET_ERROR"))} + finally{ + this.openingMiniAscent=!1,this.btnMiniAscent.alpha=1} + } + }
URLManager 11 hunks, 35 statements
- STATE:`${ + ROUTE:`${
- /minigame/ascent/state`,START:`${ + /minigame/ascent-pve/route`,EVENT_SHOP:`${
- /minigame/ascent/start`,PREPARE:`${ + /minigame/ascent-pve/eventShop`,EVENT_SHOP_BUY:`${
- /minigame/ascent/prepare`,BATTLE_START:`${ + /minigame/ascent-pve/eventShopBuy`,CRYSTALS:`${
- /minigame/ascent/battleStart`,BATTLE_END:`${ + /minigame/ascent-pve/crystals`,CRYSTAL_ACTION:`${
- /minigame/ascent/battleEnd`,PICK_CARD:`${ + /minigame/ascent-pve/crystalAction`,CLAIM_CHAPTER_REWARD:`${
- /minigame/ascent/pickCard`,SHOP:`${ + /minigame/ascent-pve/claimChapterReward`,RELICS:`${
- /minigame/ascent/shop`,SHOP_REFRESH:`${ + /minigame/ascent-pve/relics`,RELIC_DRAW:`${
- /minigame/ascent/shopRefresh`,SHOP_BUY:`${ + /minigame/ascent-pve/relicDraw`,RELIC_SOLDIER:`${
- /minigame/ascent/shopBuy`,GIVE_UP:`${ + /minigame/ascent-pve/relicSoldier`,SELECT_NODE:`${
- /minigame/ascent/giveUp`} + /minigame/ascent-pve/selectNode`,COMPLETE_NODE:`${ + t.baseURL} + /minigame/ascent-pve/completeNode`,STATE:`${ + t.baseURL} + /minigame/ascent-pve/state`,START:`${ + t.baseURL} + /minigame/ascent-pve/start`,PREPARE:`${ + t.baseURL} + /minigame/ascent-pve/prepare`,BATTLE_START:`${ + t.baseURL} + /minigame/ascent-pve/battleStart`,BATTLE_END:`${ + t.baseURL} + /minigame/ascent-pve/battleEnd`,REVEAL_CARD:`${ + t.baseURL} + /minigame/ascent-pve/revealCard`,PICK_CARD:`${ + t.baseURL} + /minigame/ascent-pve/pickCard`,SHOP:`${ + t.baseURL} + /minigame/ascent-pve/shop`,SHOP_REFRESH:`${ + t.baseURL} + /minigame/ascent-pve/shopRefresh`,SHOP_BUY:`${ + t.baseURL} + /minigame/ascent-pve/shopBuy`,GIVE_UP:`${ + t.baseURL} + /minigame/ascent-pve/giveUp`}
GuildWarBattleController 10 hunks, 26 statements
- super(),Yt(this,"battleType",lF.GUILD_WAR),Yt(this,"currentAllyOffsets",[]),Yt(this,"currentEnemyOffsets",[]),Yt(this,"battleMode",1),Yt(this,"mapIndex",1),Yt(this,"zoomLevel",.7),Yt(this,"prevGameScale",1),Yt(this,"prevGameX",0),Yt(this,"prevGameY",0),Yt(this,"prevBackgroundVisible",!0),Yt(this,"prevZoomEnabled",!0),Yt(this,"hasViewStateBackup",!1),Yt(this,"heroKindNums",[60,58,78,54,56]),Yt(this,"soldierKindNums",[1,4,7,20,13]),Yt(this,"enemyHeroKindNums",[78,78,78,78,78]),Yt(this,"enemySoldierKindNums",[20,9,14,8,21]),Yt(this,"allyCorpSoldierTiers",[null,null,null,null,null]),Yt(this,"enemyCorpSoldierTiers",[null,null,null,null,null]),Yt(this,"allyHeroLevels",null),Yt(this,"allySoldierLevels",null),Yt(this,"enemyHeroLevels",null),Yt(this,"enemySoldierLevels",null),Yt(this,"allyKnightLevel",1),Yt(this,"enemyKnightLevel",1),Yt(this,"allyHeroTrans",null),Yt(this,"enemyHeroTrans",null),Yt(this,"allyTransPoints",null),Yt(this,"enemyTransPoints",null),Yt(this,"allyPetBuffs",null),Yt(this,"enemyPetBuffs",null),Yt(this,"enemyHeroLevelBonus",0),Yt(this,"allyHeroLevelBonus",0),Yt(this,"onComplete",null),Yt(this,"onAfterReturnToIdle",null),Yt(this,"lastReward",{ + super(),Xt(this,"battleType",pF.GUILD_WAR),Xt(this,"currentAllyOffsets",[]),Xt(this,"currentEnemyOffsets",[]),Xt(this,"battleMode",1),Xt(this,"mapIndex",1),Xt(this,"zoomLevel",.7),Xt(this,"prevGameScale",1),Xt(this,"prevGameX",0),Xt(this,"prevGameY",0),Xt(this,"prevBackgroundVisible",!0),Xt(this,"prevZoomEnabled",!0),Xt(this,"hasViewStateBackup",!1),Xt(this,"heroKindNums",[60,58,78,54,56]),Xt(this,"soldierKindNums",[1,4,7,20,13]),Xt(this,"enemyHeroKindNums",[78,78,78,78,78]),Xt(this,"enemySoldierKindNums",[20,9,14,8,21]),Xt(this,"allyCorpSoldierTiers",[null,null,null,null,null]),Xt(this,"enemyCorpSoldierTiers",[null,null,null,null,null]),Xt(this,"allyTacticBonuses",null),Xt(this,"allyHeroLevels",null),Xt(this,"allySoldierLevels",null),Xt(this,"enemyHeroLevels",null),Xt(this,"enemySoldierLevels",null),Xt(this,"allyKnightLevel",1),Xt(this,"enemyKnightLevel",1),Xt(this,"allyHeroTrans",null),Xt(this,"enemyHeroTrans",null),Xt(this,"allyTransPoints",null),Xt(this,"enemyTransPoints",null),Xt(this,"allyPetBuffs",null),Xt(this,"enemyPetBuffs",null),Xt(this,"enemyHeroLevelBonus",0),Xt(this,"allyHeroLevelBonus",0),Xt(this,"onComplete",null),Xt(this,"onAfterReturnToIdle",null),Xt(this,"lastReward",{
- if(this.allyHeroLevels=i.allyHeroLevels??null,this.allySoldierLevels=i.allySoldierLevels??null,this.enemyHeroLevels=i.enemyHeroLevels??null,this.enemySoldierLevels=i.enemySoldierLevels??null,i.allyHeroes)for(let t=0; + if(this.allyTacticBonuses=i.allyTacticBonuses??null,this.allyHeroLevels=i.allyHeroLevels??null,this.allySoldierLevels=i.allySoldierLevels??null,this.enemyHeroLevels=i.enemyHeroLevels??null,this.enemySoldierLevels=i.enemySoldierLevels??null,i.allyHeroes)for(let t=0;
+ var i;
- this.currentAllyOffsets=[...i],this.currentEnemyOffsets=[...i],this.battleEnded=!1,this.battleResult=null,this.battleTime=0,this.killCount=0,this.captureViewState(); + this.currentAllyOffsets=[...s],this.currentEnemyOffsets=[...s],this.battleEnded=!1,this.battleResult=null,this.battleTime=0,this.killCount=0,this.captureViewState();
- n++)s?await this.setupCorpVertical(n,!0):await this.setupCorp(n,!0); + h++){ + const t=this.friendList.length; + e?await this.setupCorpVertical(h,!0):await this.setupCorp(h,!0); + for(const s of this.friendList.slice(t)){ + QQt(s,null==(i=this.allyTacticBonuses)?void 0:i[h]); + const t=this.allyHeroes.includes(s),e=this.getAllyGrowthBonuses(h,t); + XQt(s,e),JQt(s,e),this.onAllyCorpReady(s,h,t)} + }
- if(p){ + if(this.extendSoldierPositions(g,f,s,!1),p){
- const A=s?this.allyCorpSoldierTiers[i]:this.enemyCorpSoldierTiers[i]; - if(Array.isArray(A)){ + const y=s?this.allyCorpSoldierTiers[i]:this.enemyCorpSoldierTiers[i],S=Array.isArray(y); + if(this.extendSoldierPositions(A,y,s,!0),S){
+ extendSoldierPositions(t,i,s,e){ + }
- return c.lookAt(n?1:-1),c.healthBar.setHealthColor(n),c.isAir&&c.onFlyEnter(!0),BB.getInstance().addChild(c),n?this.friendList.push(c):this.enemyList.push(c),c} + return c.lookAt(n?1:-1),c.healthBar.setHealthColor(n),c.isAir&&c.onFlyEnter(!0),BB.getInstance().addChild(c),n?this.friendList.push(c):this.enemyList.push(c),this.onUnitSpawned(c,n),c} + onUnitSpawned(t,i){ + } + getAllyGrowthBonuses(t,i){ + var s; + return null==(s=this.allyTacticBonuses)?void 0:s[t]} + onAllyCorpReady(t,i,s=!1){ + }
- t.baseMaxHp=h.hp*r,t.baseAtkDmg=h.atkDmg*r,t.baseDef=h.def*r,t.orgMaxHp=t.maxHp=h.hp*r,t.orgAtkDmg=t.atkDmg=h.atkDmg*r,t.orgDef=t.def=h.def*r,t.phyDef=h.phyDef*r,t.magDef=h.magDef*r,t.hp=t.maxHp,t.health=t.maxHp} + t.baseMaxHp=h.hp*r,t.baseAtkDmg=h.atkDmg*r,t.baseDef=h.def*r,t.orgMaxHp=t.maxHp=h.hp*r,t.orgAtkDmg=t.atkDmg=h.atkDmg*r,t.orgDef=t.def=h.def*r,t.orgPhyDef=t.phyDef=h.phyDef*r,t.orgMagDef=t.magDef=h.magDef*r,t.hp=t.maxHp,t.health=t.maxHp}
Pi 24 hunks, 24 statements
- (0,set.bytes)(t); + (0,ret.bytes)(t);
- if((0,set.bytes)(i),i.length<t)throw new Error(`aes: wrong destination length, expected at least ${ + if((0,ret.bytes)(i),i.length<t)throw new Error(`aes: wrong destination length, expected at least ${
- (0,set.bytes)(i,het),(0,set.bytes)(s); + (0,ret.bytes)(i,cet),(0,ret.bytes)(s);
- (0,set.bytes)(s,het),(0,set.bytes)(e),n=Tet(e.length,n); + (0,ret.bytes)(s,cet),(0,ret.bytes)(e),n=ket(e.length,n);
- if((0,set.bytes)(t),t.length%het!=0)throw new Error("aes/(cbc-ecb).decrypt ciphertext should consist of blocks with size 16")} + if((0,ret.bytes)(t),t.length%cet!=0)throw new Error("aes/(cbc-ecb).decrypt ciphertext should consist of blocks with size 16")}
- (0,set.bytes)(t); + (0,ret.bytes)(t);
- if((0,set.bytes)(s),void 0!==e&&((0,set.bytes)(e),!(0,net.isAligned32)(e)))throw new Error("unaligned destination"); + if((0,ret.bytes)(s),void 0!==e&&((0,ret.bytes)(e),!(0,aet.isAligned32)(e)))throw new Error("unaligned destination");
- return Xt(s,"n"),(0,set.bytes)(t),(0,set.bytes)(i,het),{ + return qt(s,"n"),(0,ret.bytes)(t),(0,ret.bytes)(i,cet),{
- (0,set.bytes)(t); + (0,ret.bytes)(t);
- (0,set.bytes)(t),(0,set.bytes)(i,16); + (0,ret.bytes)(t),(0,ret.bytes)(i,16);
- (0,set.bytes)(s); + (0,ret.bytes)(s);
- return Xt(s,"n"),(0,set.bytes)(t),(0,set.bytes)(i,16),{ + return qt(s,"n"),(0,ret.bytes)(t),(0,ret.bytes)(i,16),{
- if((0,set.bytes)(t),(0,set.bytes)(i),void 0!==s&&(0,set.bytes)(s),i.length<8)throw new Error("aes/gcm: invalid nonce length"); + if((0,ret.bytes)(t),(0,ret.bytes)(i),void 0!==s&&(0,ret.bytes)(s),i.length<8)throw new Error("aes/gcm: invalid nonce length");
- (0,set.bytes)(t); + (0,ret.bytes)(t);
- if((0,set.bytes)(t),t.length<16)throw new Error("aes/gcm: ciphertext less than tagLen (16)"); + if((0,ret.bytes)(t),t.length<16)throw new Error("aes/gcm: ciphertext less than tagLen (16)");
- if((0,set.bytes)(i,16),!Let(t))throw new Error("_encryptBlock accepts result of expandKeyLE"); + if((0,ret.bytes)(i,16),!Uet(t))throw new Error("_encryptBlock accepts result of expandKeyLE");
- if((0,set.bytes)(i,16),!Let(t))throw new Error("_decryptBlock accepts result of expandKeyLE"); + if((0,ret.bytes)(i,16),!Uet(t))throw new Error("_decryptBlock accepts result of expandKeyLE");
- return Xt(o,"a"),Xt(a,"c"),Xt(c,"l"),(0,set.bytes)(t,16,24,32),(0,set.bytes)(i),h(i.length),void 0!==s&&((0,set.bytes)(s),e(s.length)),{ + return qt(o,"a"),qt(a,"c"),qt(c,"l"),(0,ret.bytes)(t,16,24,32),(0,ret.bytes)(i),h(i.length),void 0!==s&&((0,ret.bytes)(s),e(s.length)),{
- (0,set.bytes)(t),n(t.length); + (0,ret.bytes)(t),n(t.length);
- (0,set.bytes)(t),r(t.length); + (0,ret.bytes)(t),r(t.length);
- if((0,set.bytes)(i),!i.length||i.length%8!=0)throw new Error("invalid plaintext length"); + if((0,ret.bytes)(i),!i.length||i.length%8!=0)throw new Error("invalid plaintext length");
- if((0,set.bytes)(i),i.length%8!=0||i.length<24)throw new Error("invalid ciphertext length"); + if((0,ret.bytes)(i),i.length%8!=0||i.length<24)throw new Error("invalid ciphertext length");
- if((0,set.bytes)(i),!i.length)throw new Error("invalid plaintext length"); + if((0,ret.bytes)(i),!i.length)throw new Error("invalid plaintext length");
- if((0,set.bytes)(i),i.length<16)throw new Error("invalid ciphertext length"); + if((0,ret.bytes)(i),i.length<16)throw new Error("invalid ciphertext length");
ServerRejected 4 hunks, 21 statements
- allyHeroLevels:i.map(i=>(null==i?void 0:i.heroLevel)??t.allyLevel),allySoldierLevels:i.map(i=>(null==i?void 0:i.soldierLevel)??t.allyLevel),enemyHeroLevels:s.map(i=>(null==i?void 0:i.heroLevel)??t.enemyLevel),enemySoldierLevels:s.map(i=>(null==i?void 0:i.soldierLevel)??t.enemyLevel),allyHeroes:i.map(t=>(null==t?void 0:t.heroKindNum)??0),allyHeroTrans:i.map(t=>(null==t?void 0:t.heroTrans)??0),allyCorpSoldierTiers:i.map(e),allyKnightLevel:t.allyLevel,allyHeroLevelBonus:0,allyTransPoints:null,allyPetBuffs:null,enemyHeroes:s.map(t=>(null==t?void 0:t.heroKindNum)??0),enemyHeroTrans:s.map(t=>(null==t?void 0:t.heroTrans)??0),enemyCorpSoldierTiers:s.map(e),enemyKnightLevel:t.enemyLevel,enemyHeroLevelBonus:0,enemyTransPoints:null,enemyPetBuffs:null} + allyCrystalStats:i.map(t=>(null==t?void 0:t.crystalStats)?{ + hero:{ + ...t.crystalStats.hero} + ,soldier:{ + ...t.crystalStats.soldier} + } + :void 0),allyCrystalProcs:i.map(t=>{ + var i; + return null==(i=null==t?void 0:t.crystalProcs)?void 0:i.map(t=>({ + ...t} + ))} + ),allyTacticBonuses:i.map(t=>({ + attackBonusPct:(null==t?void 0:t.attackBonusPct)??0,damageReductionPct:(null==t?void 0:t.damageReductionPct)??0,attackSpeedPct:(null==t?void 0:t.attackSpeedPct)??0,moveSpeedPct:(null==t?void 0:t.moveSpeedPct)??0,manaRegenPct:(null==t?void 0:t.manaRegenPct)??0,attackPct:(null==t?void 0:t.attackPct)??0,hpPct:(null==t?void 0:t.hpPct)??0,attackRangePct:(null==t?void 0:t.attackRangePct)??0} + )),allyHeroLevels:i.map(i=>(null==i?void 0:i.heroLevel)??t.allyLevel),allySoldierLevels:i.map(i=>(null==i?void 0:i.soldierLevel)??t.allyLevel),enemyHeroLevels:s.map(i=>(null==i?void 0:i.heroLevel)??t.enemyLevel),enemySoldierLevels:s.map(i=>(null==i?void 0:i.soldierLevel)??t.enemyLevel),allyHeroes:i.map(t=>(null==t?void 0:t.heroKindNum)??0),allyHeroTrans:i.map(t=>(null==t?void 0:t.heroTrans)??0),allyCorpSoldierTiers:i.map(e),allyKnightLevel:t.allyLevel,allyHeroLevelBonus:0,allyTransPoints:null,allyPetBuffs:null,enemyHeroes:s.map(t=>(null==t?void 0:t.heroKindNum)??0),enemyHeroTrans:s.map(t=>(null==t?void 0:t.heroTrans)??0),enemyCorpSoldierTiers:s.map(e),enemyKnightLevel:t.enemyLevel,enemyHeroLevelBonus:0,enemyTransPoints:null,enemyPetBuffs:null}
+ if("soldierChange"===t.type)return t.soldierKind??0;
- return s?"heroUp"===t.type||"heroLevel"===t.type?s.heroKind:s.soldierKind||t.soldierKind||0:0} + return s?"heroUp"===t.type||"heroLevel"===t.type||"legionLevel"===t.type||"dualLevel"===t.type||"tactic"===t.type?s.heroKind:s.soldierKind||t.soldierKind||0:0}
- return t.soldierKind<=0?[]:t.counts.flatMap((s,e)=>s>0?[{ - kindNum:0===e||i<=0?t.soldierKind:i,trans:Math.max(0,e-1),count:s} - ]:[])} + return Array.from({ + length:5} + ,(s,e)=>({ + kindNum:t.soldierKind<=0?0:0===e||i<=0?t.soldierKind:i,trans:t.soldierKind<=0?0:Math.max(0,e-1),count:t.soldierKind<=0?0:t.counts[e]??0} + ))}
RightMenu 5 hunks, 20 statements
- ),this.container.addChild(this.bg),this.indicator=new Ve(eS.getTexture("UI_Ekkorr","UI_Menu_Open")),this.indicator.x=this.bg.x+15,this.indicator.y=this.bg.y+21,this.container.addChild(this.indicator),this.indicatorArea=new Ve(eS.getTexture("UI_Ekkorr","whiteRect")),this.indicatorArea.alpha=.01,this.indicatorArea.width=this.indicator.width+30,this.indicatorArea.height=this.indicator.height+20,this.indicatorArea.x=this.indicator.x-15,this.indicatorArea.y=this.indicator.y-10,this.container.addChild(this.indicatorArea),this.indicatorArea.eventMode="dynamic",this.indicatorArea.on("pointertap",this.onIndicatorTap,this),this.btnRanking=new tU("UI_Ekkorr","Icon_Ranking"),this.btnAchieve=new tU("UI_Ekkorr","Btn_Achieve"),this.btnPass=new tU("UI_Ekkorr","Btn_Pass"),this.btnGuild=new tU("UI_Ekkorr","Btn_Guild"),this.btnPet=new tU("UI_Ekkorr","Icon_Pet"),this.btnInventory=new tU("UI_Ekkorr","Icon_Inventory"),this.btnDaily=new tU("UI_Ekkorr","Icon_Daily"),this.btnMine=new tU("UI_Ekkorr","Btn_Mine"),this.btnInvite=new tU("UI_Ekkorr","Btn_Friend"),this.btnPayback=new tU("UI_Ekkorr","Btn_Payback"),this.btnTournament=new tU("UI_Ekkorr","Icon_Tournament"),this.btnRanking.onClick=this.onRankingBtnClick.bind(this),this.btnAchieve.onClick=this.onAchieveBtnClick.bind(this),this.btnPass.onClick=this.onPassBtnClick.bind(this),this.btnGuild.onClick=this.onGuildBtnClick.bind(this),this.btnPet.onClick=this.onPetBtnClick.bind(this),this.btnInventory.onClick=this.onInventoryBtnClick.bind(this),this.btnDaily.onClick=this.onDailyBtnClick.bind(this),this.btnMine.onClick=this.onMineBtnClick.bind(this),this.btnInvite.onClick=this.onInviteBtnClick.bind(this),this.btnPayback.onClick=this.onPaybackBtnClick.bind(this),this.btnTournament.onClick=this.onTournamentBtnClick.bind(this),this.update(),this.on("added",this.onAdded,this),this.on("removed",this.onRemoved,this),hXt.getInstance().registerRightMenuIndicatorButtonGetter(t=>"indicatorArea"===t&&this.indicatorArea.visible?{ + ),this.container.addChild(this.bg),this.indicator=new je(eS.getTexture("UI_Ekkorr","UI_Menu_Open")),this.indicator.x=this.bg.x+15,this.indicator.y=this.bg.y+21,this.container.addChild(this.indicator),this.indicatorArea=new je(eS.getTexture("UI_Ekkorr","whiteRect")),this.indicatorArea.alpha=.01,this.indicatorArea.width=this.indicator.width+30,this.indicatorArea.height=this.indicator.height+20,this.indicatorArea.x=this.indicator.x-15,this.indicatorArea.y=this.indicator.y-10,this.container.addChild(this.indicatorArea),this.indicatorArea.eventMode="dynamic",this.indicatorArea.on("pointertap",this.onIndicatorTap,this),this.btnRanking=new tU("UI_Ekkorr","Icon_Ranking"),this.btnAchieve=new tU("UI_Ekkorr","Btn_Achieve"),this.btnPass=new tU("UI_Ekkorr","Btn_Pass"),this.btnGuild=new tU("UI_Ekkorr","Btn_Guild"),this.btnPet=new tU("UI_Ekkorr","Icon_Pet"),this.btnInventory=new tU("UI_Ekkorr","Icon_Inventory"),this.btnDaily=new tU("UI_Ekkorr","Icon_Daily"),this.btnMine=new tU("UI_Ekkorr","Btn_Event"),this.btnInvite=new tU("UI_Ekkorr","Btn_Friend"),this.btnPayback=new tU("UI_Ekkorr","Btn_Payback"),this.btnTournament=new tU("UI_Ekkorr","Icon_Tournament"),this.btnRanking.onClick=this.onRankingBtnClick.bind(this),this.btnAchieve.onClick=this.onAchieveBtnClick.bind(this),this.btnPass.onClick=this.onPassBtnClick.bind(this),this.btnGuild.onClick=this.onGuildBtnClick.bind(this),this.btnPet.onClick=this.onPetBtnClick.bind(this),this.btnInventory.onClick=this.onInventoryBtnClick.bind(this),this.btnDaily.onClick=this.onDailyBtnClick.bind(this),this.btnMine.onClick=this.onMineBtnClick.bind(this),this.btnInvite.onClick=this.onInviteBtnClick.bind(this),this.btnPayback.onClick=this.onPaybackBtnClick.bind(this),this.btnTournament.onClick=this.onTournamentBtnClick.bind(this),this.update(),this.on("added",this.onAdded,this),this.on("removed",this.onRemoved,this),cqt.getInstance().registerRightMenuIndicatorButtonGetter(t=>"indicatorArea"===t&&this.indicatorArea.visible?{
- JL.opened&&JL.unlocked&&(i=!0,t.push(this.btnGuild),this.setEnterUpdateUtc0(!0)),this.setEnterUpdateUtc0(i),XD.maxWave>=vx.getInstance().unlockWave&&(t.push(this.btnPet),this.updateRedDotForPet()),XD.maxWave>=200&&aB.isValidEvent(cB.MINE_EVENT)&&t.push(this.btnMine); + JL.opened&&JL.unlocked&&(s=!0,i.push(this.btnGuild),this.setEnterUpdateUtc0(!0)),this.setEnterUpdateUtc0(s),qD.maxWave>=vR.getInstance().unlockWave&&(i.push(this.btnPet),this.updateRedDotForPet()),t.isEventHubOpen()&&i.push(this.btnMine);
+ static isEventHubOpen(){ + return qD.maxWave>=200&&aB.isValidEvent(cB.MINE_EVENT)||aB.isValidEvent(cB.MINI_ASCENT_EVENT)}
- await y6t.getInstance().show()} + const{ + EventHubPopup:t} + =await ti(async()=>{ + const{ + EventHubPopup:t} + =await Promise.resolve().then(()=>Dbi); + return{ + EventHubPopup:t} + } + ,void 0); + t.getInstance().show()}
- this._opened?XD.numRevive>=1&&this.updateRedDotForDaily():this.checkIndicatorRedDot(),XD.maxWave>=200&&(!this.btnMine.parent&&aB.isValidEvent(cB.MINE_EVENT)||this.btnMine.parent&&!aB.isValidEvent(cB.MINE_EVENT))&&this.update()} + this._opened?qD.numRevive>=1&&this.updateRedDotForDaily():this.checkIndicatorRedDot(); + { + const i=t.isEventHubOpen(); + (!this.btnMine.parent&&i||this.btnMine.parent&&!i)&&this.update()} + }
MiniAscentResultPopup 3 hunks, 17 statements
- setData(t){ + setData(t,i){
- let s=80; - this.lblHeader.text=sB.getText("","##에서 패배했습니다.").replace(/##/g,Tvi(t.floor)),this.lblHeader.x=.5*(i-this.lblHeader.width),this.lblHeader.y=s,s+=50,this.lblCleared.text=sB.getText("","## 클리어").replace(/##/g,Tvi(t.cleared)),this.lblCleared.x=.5*(i-this.lblCleared.width),this.lblCleared.y=s,s+=56,this.lblCoin.text=sB.getText("","군단과 현재 층이 유지됩니다. 다시 도전하세요."),this.lblCoin.x=.5*(i-this.lblCoin.width),this.lblCoin.y=s,s+=50,this.btnExit.width=240,this.btnExit.x=.5*(i-this.btnExit.width),this.btnExit.y=s,s+=this.btnExit.height+30,this.height=s} + let e=Math.max(170,.3*this.height); + this.lblHeader.textSize=i?36:24,this.lblHeader.lineHeight=i?44:30,this.lblHeader.setWrapWidth(s-64),this.lblHeader.align="center",this.lblHeader.text=i?Rvi("CHAPTER_CLEAR",i):Rvi("DEFEAT",t.floor),this.lblHeader.textColor=i?Lvi.accent:Lvi.danger,this.lblHeader.x=.5*(s-this.lblHeader.width),this.lblHeader.y=e,e+=this.lblHeader.height+28,this.lblCleared.visible=this.lblCoin.visible=!i,this.rewardIcons.visible=!!i,i&&(this.setRewardIcons(t),this.rewardIcons.position.set((s-this.rewardIcons.width)/2,e)),this.lblCleared.text=Rvi("SUMMARY",t.cleared,t.runCoin),this.lblCleared.textSize=18,this.lblCleared.setWrapWidth(s-48),this.lblCleared.align="center",this.lblCleared.x=.5*(s-this.lblCleared.width),this.lblCleared.y=e,e+=56,this.lblCoin.text=Rvi("RELIC_SEALS_EARNED",t.sealsGained??0),this.lblCoin.setWrapWidth(s-48),this.lblCoin.align="center",this.lblCoin.x=.5*(s-this.lblCoin.width),this.lblCoin.y=e,e+=Math.max(50,this.lblCoin.height+20),this.btnExit.width=240,this.btnExit.x=.5*(s-this.btnExit.width),this.btnExit.y=this.height-62,e+=this.btnExit.height+30,this.height=e} + setRewardIcons(t){ + for(const s of this.rewardIcons.removeChildren())s.destroy({ + children:!0} + ); + let i=0; + for(const[s,e]of[["ui_coin",t.runCoin],["ui_challenge_seal",t.sealsGained??0]]){ + const t=new He,n=new je(bvi.texture(s)); + n.scale.set(Math.min(42/n.width,42/n.height)),n.position.set((42-n.width)/2,(42-n.height)/2); + const h=new yD(String(e),Lvi.accent,{ + ...IL.DEFAULT_FONT_OPTION_16,fontSize:30,lineHeight:36} + ); + h.scale.set(Math.min(1,136/Math.max(1,h.width))),h.position.set(54,(42-h.height)/2),t.addChild(n,h),t.x=i,this.rewardIcons.addChild(t),i+=t.width+64} + }
- return this.onExitClick(),!0} + return super.onBackButton()}
BaseWeapon 5 hunks, 16 statements
- super(),Yt(this,"className",SV.NormalArrow),Yt(this,"owner",null),Yt(this,"target",null),Yt(this,"bounceCount",0),Yt(this,"bounceRange",200),Yt(this,"prevTarget",null),Yt(this,"speed",10),Yt(this,"vx",0),Yt(this,"vy",0),Yt(this,"g",0),Yt(this,"orientToPath",!0),Yt(this,"vr",0),Yt(this,"t",0),Yt(this,"T",0),Yt(this,"minT",5),Yt(this,"maxT",60),Yt(this,"offsetX",0),Yt(this,"offsetY",0),Yt(this,"sp",null),Yt(this,"textures",[]),Yt(this,"textureName",""),Yt(this,"sheetName","Game"),Yt(this,"isActive",!1),Yt(this,"removed",!1),Yt(this,"battleController",null),Yt(this,"damagePercent",1),Yt(this,"flyEnd",0),Yt(this,"incFrame",1),Yt(this,"currentFrame",0),Yt(this,"delay",0),Yt(this,"weaponScale",1),Yt(this,"hitClassName",""),Yt(this,"resolvedHitClassName",""),this.initializeTextureName(),this.initializeData(),this.initialize(),this.generateSprite(),this.eventMode="none"} + super(),Xt(this,"className",Oj.NormalArrow),Xt(this,"owner",null),Xt(this,"source",null),Xt(this,"target",null),Xt(this,"bounceCount",0),Xt(this,"bounceRange",200),Xt(this,"prevTarget",null),Xt(this,"speed",10),Xt(this,"vx",0),Xt(this,"vy",0),Xt(this,"g",0),Xt(this,"orientToPath",!0),Xt(this,"vr",0),Xt(this,"t",0),Xt(this,"T",0),Xt(this,"minT",5),Xt(this,"maxT",60),Xt(this,"offsetX",0),Xt(this,"offsetY",0),Xt(this,"sp",null),Xt(this,"textures",[]),Xt(this,"textureName",""),Xt(this,"sheetName","Game"),Xt(this,"isActive",!1),Xt(this,"removed",!1),Xt(this,"battleController",null),Xt(this,"damagePercent",1),Xt(this,"flyEnd",0),Xt(this,"incFrame",1),Xt(this,"currentFrame",0),Xt(this,"delay",0),Xt(this,"weaponScale",1),Xt(this,"hitClassName",""),Xt(this,"resolvedHitClassName",""),this.initializeTextureName(),this.initializeData(),this.initialize(),this.generateSprite(),this.eventMode="none"} + get attackEffectSource(){ + var t,i,s; + return(null==(t=this.source)?void 0:t.owner)===this.owner&&(null==(i=this.source)?void 0:i.generation)===(null==(s=this.owner)?void 0:s.generation)?this.source:null} + get skillAttackEffectSource(){ + const t=this.attackEffectSource; + return"skill"===(null==t?void 0:t.trigger)?t:null} + setAttackEffectSource(t){ + this.source=t} + captureAttackSource(){ + var t; + this.source=(null==(t=this.owner)?void 0:t.attackEffectSource)??null}
- this.damagePercent=t,this.alpha=1,this.currentFrame=0} + this.captureAttackSource(),this.damagePercent=t,this.alpha=1,this.currentFrame=0}
- this.target&&(this.visible=!0,this.removed=!1,this.isActive=!0,this.resolvedHitClassName=this.hitClassName||this.getDefaultHitEffect(),this.isActive||(this.prevTarget=null),this.calculateTrajectory(),this.battleController?this.battleController.addWeapon(this):TB.getInstance().add(this.execute,this))} + this.captureAttackSource(),this.target&&(this.visible=!0,this.removed=!1,this.isActive=!0,this.resolvedHitClassName=this.hitClassName||this.getDefaultHitEffect(),this.isActive||(this.prevTarget=null),this.calculateTrajectory(),this.battleController?this.battleController.addWeapon(this):TB.getInstance().add(this.execute,this))}
- if(this.target.isAlive&&this.owner.doDamage(this.target,this.damagePercent,!0)&&(this.onHitMain(),this.showHitEffect(this.resolvedHitClassName)),this.bounceCount>0&&(this.bounceCount>=1||this.random.chance(this.bounceCount))){ + if(this.target.isAlive&&this.owner.doDamage(this.target,this.damagePercent,!0,this.attackEffectSource)&&(this.onHitMain(),this.showHitEffect(this.resolvedHitClassName)),this.bounceCount>0&&(this.bounceCount>=1||this.random.chance(this.bounceCount))){
- this.isActive=!1,this.removed=!0,this.visible=!1,this.parent&&this.parent.removeChild(this),this.battleController||TB.getInstance().remove(this.execute,this),c0.addToRecycleList(this)} + this.source=null,this.isActive=!1,this.removed=!0,this.visible=!1,this.parent&&this.parent.removeChild(this),this.battleController||TB.getInstance().remove(this.execute,this),f0.addToRecycleList(this)}
DungeonResultPopup 1 hunks, 12 statements
+ function XQt(t,i){ + const s=qt((t=0)=>1+(Number.isFinite(t)?Math.max(0,t):0)/100,"multiplier"),e=s(null==i?void 0:i.attackSpeedPct); + 1!==e&&(t.baseAtkDuration/=e,t.orgAtkDuration/=e,t.atkDuration/=e,t.orgAtkSpd=1e4/t.orgAtkDuration,t.atkSpd=1e4/t.atkDuration); + const n=s(null==i?void 0:i.moveSpeedPct); + t.baseMoveSpd*=n,t.orgMoveSpd*=n,t.moveSpd*=n,t.miniAscentManaRegen=s(null==i?void 0:i.manaRegenPct)-1} + function JQt(t,i){ + const s=qt((t=0)=>1+(Number.isFinite(t)?Math.max(0,t):0)/100,"mult"),e=s(null==i?void 0:i.attackPct),n=s(null==i?void 0:i.hpPct),h=s(null==i?void 0:i.attackRangePct); + t.baseAtkDmg*=e,t.orgAtkDmg*=e,t.atkDmg*=e,t.baseMaxHp*=n,t.orgMaxHp*=n,t.maxHp*=n,t.hp*=n,1!==h&&(t.atkRange*=h,t.baseAtkRange=t.orgAtkRange=t.atkRange,t.atkRange2=t.atkRange*t.atkRange)} + function QQt(t,i){ + const s=Math.max(0,Math.min(60,(null==i?void 0:i.attackBonusPct)??0)),e=Math.max(0,Math.min(60,(null==i?void 0:i.damageReductionPct)??0)),n=1+s/100; + t.baseAtkDmg*=n,t.orgAtkDmg*=n,t.atkDmg*=n,t.miniAscentDamageReduction=e/100} + qt(XQt,"applyShopBuffs"),qt(JQt,"applyArmyBuffs"),qt(QQt,"applyTacticBonus");
BookManager 2 hunks, 9 statements
- var zL=(t=>(t.CASTLE="CASTLE",t.CASTLE_SPECIAL="CASTLE_SPECIAL",t.UNIT="UNIT",t.QUEST="QUEST",t.TREASURE="TREASURE",t.SCENARIO="SCENARIO",t.SCENARIO_PATTERN="SCENARIO_PATTERN",t.HERO_MEDAL_ENHANCE_TIER="HERO_MEDAL_ENHANCE_TIER",t.HERO_MEDAL_ENHANCE_SEGMENT="HERO_MEDAL_ENHANCE_SEGMENT",t.HERO_UPGRADE_TIER="HERO_UPGRADE_TIER",t.HERO_REBIRTH_MEDAL_TIER="HERO_REBIRTH_MEDAL_TIER",t.HERO_REBIRTH_MEDAL_SEGMENT="HERO_REBIRTH_MEDAL_SEGMENT",t.HERO_GOLD_SKILL="HERO_GOLD_SKILL",t.HERO_UNIQUE_SKILL="HERO_UNIQUE_SKILL",t.DUNGEON="DUNGEON",t.TREASURE_VALUE="TREASURE_VALUE",t.TREASURE_SET="TREASURE_SET",t.ACHIEVEMENT="ACHIEVEMENT",t.PVP_RANK_REWARD="PVP_RANK_REWARD",t.PASS_REWARD="PASS_REWARD",t.TIP="TIP",t.DIALOGUE="DIALOGUE",t.TOWER_BATTLE_POOL="TOWER_BATTLE_POOL",t.TOWER_SEASON_SET="TOWER_SEASON_SET",t.TOWER_REWARD="TOWER_REWARD",t.MISSION_GUIDE="MISSION_GUIDE",t.MISSION_GUIDE_STEP="MISSION_GUIDE_STEP",t.GUILD_LEVEL="GUILD_LEVEL",t.PET="PET",t.PET_SKILL="PET_SKILL",t.SPIRIT_LAND="SPIRIT_LAND",t.GUILD_BARRACK="GUILD_BARRACK",t.SELECT_TICKET="SELECT_TICKET",t.PRODUCT="PRODUCT",t.GUILD_WAR_CONFIG="GUILD_WAR_CONFIG",t.GUILD_RAID="GUILD_RAID",t.TREASURE_LIMIT_BREAK="TREASURE_LIMIT_BREAK",t.MINE_LEVEL="MINE_LEVEL",t.MINE_CHEST_REWARD="MINE_CHEST_REWARD",t.GUILD_WAR_TOURNAMENT_REWARD="GUILD_WAR_TOURNAMENT_REWARD",t.EMBLEM="EMBLEM",t.EMBLEM_SKILL="EMBLEM_SKILL",t.RUNE="RUNE",t.RUNE_GRADE="RUNE_GRADE",t.RUNE_SUB="RUNE_SUB",t.DAILY_ROULETTE="DAILY_ROULETTE",t))(zL||{ + var zL=(t=>(t.CASTLE="CASTLE",t.CASTLE_SPECIAL="CASTLE_SPECIAL",t.UNIT="UNIT",t.QUEST="QUEST",t.TREASURE="TREASURE",t.SCENARIO="SCENARIO",t.SCENARIO_PATTERN="SCENARIO_PATTERN",t.HERO_MEDAL_ENHANCE_TIER="HERO_MEDAL_ENHANCE_TIER",t.HERO_MEDAL_ENHANCE_SEGMENT="HERO_MEDAL_ENHANCE_SEGMENT",t.HERO_UPGRADE_TIER="HERO_UPGRADE_TIER",t.HERO_REBIRTH_MEDAL_TIER="HERO_REBIRTH_MEDAL_TIER",t.HERO_REBIRTH_MEDAL_SEGMENT="HERO_REBIRTH_MEDAL_SEGMENT",t.HERO_GOLD_SKILL="HERO_GOLD_SKILL",t.HERO_UNIQUE_SKILL="HERO_UNIQUE_SKILL",t.DUNGEON="DUNGEON",t.TREASURE_VALUE="TREASURE_VALUE",t.TREASURE_SET="TREASURE_SET",t.ACHIEVEMENT="ACHIEVEMENT",t.PVP_RANK_REWARD="PVP_RANK_REWARD",t.PASS_REWARD="PASS_REWARD",t.TIP="TIP",t.DIALOGUE="DIALOGUE",t.TOWER_BATTLE_POOL="TOWER_BATTLE_POOL",t.TOWER_SEASON_SET="TOWER_SEASON_SET",t.TOWER_REWARD="TOWER_REWARD",t.MISSION_GUIDE="MISSION_GUIDE",t.MISSION_GUIDE_STEP="MISSION_GUIDE_STEP",t.GUILD_LEVEL="GUILD_LEVEL",t.PET="PET",t.PET_SKILL="PET_SKILL",t.SPIRIT_LAND="SPIRIT_LAND",t.GUILD_BARRACK="GUILD_BARRACK",t.SELECT_TICKET="SELECT_TICKET",t.PRODUCT="PRODUCT",t.GUILD_WAR_CONFIG="GUILD_WAR_CONFIG",t.GUILD_RAID="GUILD_RAID",t.TREASURE_LIMIT_BREAK="TREASURE_LIMIT_BREAK",t.MINI_ASCENT_STAGE="MINI_ASCENT_STAGE",t.MINI_ASCENT_ROUTE="MINI_ASCENT_ROUTE",t.MINI_ASCENT_RELIC="MINI_ASCENT_RELIC",t.MINI_ASCENT_CONFIG="MINI_ASCENT_CONFIG",t.MINI_ASCENT_SHOP="MINI_ASCENT_SHOP",t.MINE_LEVEL="MINE_LEVEL",t.MINE_CHEST_REWARD="MINE_CHEST_REWARD",t.GUILD_WAR_TOURNAMENT_REWARD="GUILD_WAR_TOURNAMENT_REWARD",t.EMBLEM="EMBLEM",t.EMBLEM_SKILL="EMBLEM_SKILL",t.RUNE="RUNE",t.RUNE_GRADE="RUNE_GRADE",t.RUNE_SUB="RUNE_SUB",t.DAILY_ROULETTE="DAILY_ROULETTE",t))(zL||{
+ ,MINI_ASCENT_STAGE:{ + name:"MINI_ASCENT_STAGE",priority:2,dependencies:[]} + ,MINI_ASCENT_ROUTE:{ + name:"MINI_ASCENT_ROUTE",priority:2,dependencies:[]} + ,MINI_ASCENT_RELIC:{ + name:"MINI_ASCENT_RELIC",priority:2,dependencies:[]} + ,MINI_ASCENT_CONFIG:{ + name:"MINI_ASCENT_CONFIG",priority:2,dependencies:[]}
RewardItem 1 hunks, 8 statements
+ get frameBounds(){ + if(this.heroIcon.visible)return new Di(this.heroIcon.x,this.heroIcon.y,this.heroIcon.width,this.heroIcon.height); + if(this.petIcon.visible){ + const{ + x:t,y:i,scale:s} + =this.petIcon; + return new Di(t,i,this.petIcon.frameWidth*s.x,this.petIcon.frameHeight*s.y)} + return new Di(this.bg.x,this.bg.y,this.bg.width,this.bg.height)}
EventDataManager 2 hunks, 6 statements
+ if(t.body.miniAscentEvent){ + const i=t.body.miniAscentEvent,s=new uB; + s.type=5,s.id=i.id,s.startTime=i.startTime,s.endTime=i.endTime,s.seasonId=i.seasonId,this.objList[s.type]||(this.objList[s.type]=[]),this.objList[s.type].push(s),this.isValidEvent(5)}
+ if(5==t){ + const t=new Date; + return i.some(i=>this.isMineEventActive(i,t))}
PresetSelectButton 1 hunks, 5 statements
- const E6t=class extends aYt{ + const N6t=Object.freeze(Object.defineProperty({ + __proto__:null,MinePopup:P6t} + ,Symbol.toStringTag,{ + value:"Module"} + )),L6t=class extends dXt{
GpuGraphicsContext 2 hunks, 4 statements
- ...Yc,extension:{ - ...Yc.extension,name:"ellipse"} + ...Xc,extension:{ + ...Xc.extension,name:"ellipse"}
- ...Yc,extension:{ - ...Yc.extension,name:"roundedRectangle"} + ...Xc,extension:{ + ...Xc.extension,name:"roundedRectangle"}
PetIcon 1 hunks, 4 statements
+ get frameWidth(){ + return this.cover.width} + get frameHeight(){ + return this.cover.height}
Zr 2 hunks, 4 statements
- )(),uet=cet.map((t,i)=>cet.indexOf(i)),det=Xt(t=>t<<24|t>>>8,"Vr"),fet=Xt(t=>t<<8|t>>>24,"Gr"),pet=Xt(t=>t<<24&4278190080|t<<8&16711680|t>>>8&65280|t>>>24&255,"Yr"); - function get(t,i){ + )(),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"); + function _et(t,i){
- Xt(get,"Zr"); - const met=get(cet,t=>aet(t,3)<<24|t<<16|t<<8|aet(t,2)),wet=get(uet,t=>aet(t,11)<<24|aet(t,13)<<16|aet(t,9)<<8|aet(t,14)),vet=(()=>{ + qt(_et,"Zr"); + 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=(()=>{
BaseBattleController 3 hunks, 4 statements
- Yt(this,"player"),Yt(this,"friendList",[]),Yt(this,"enemyList",[]),Yt(this,"weaponList",[]),Yt(this,"effectList",[]),Yt(this,"unitScale",1),Yt(this,"sortCooldown",0),Yt(this,"SORT_INTERVAL",15),Yt(this,"frameTime",0),Yt(this,"avgFrameTime",0),Yt(this,"frameCount",0),Yt(this,"PERFORMANCE_LOG_INTERVAL",300),Yt(this,"killCount",0),Yt(this,"battleTime",0),Yt(this,"totalDamageDealt",0),Yt(this,"totalDamageTaken",0),Yt(this,"nextSummonedUnitId",1e6),Yt(this,"random",new OQt(Date.now())),Yt(this,"determinismCaptureEnabled",!1),Yt(this,"frameHashes",[]),Yt(this,"eventHashes",[]),Yt(this,"FRAME_HASH_INTERVAL",60),Yt(this,"execute",Xt(()=>{ + Xt(this,"attackEffects",new UQt(this)),Xt(this,"player"),Xt(this,"friendList",[]),Xt(this,"enemyList",[]),Xt(this,"weaponList",[]),Xt(this,"effectList",[]),Xt(this,"unitScale",1),Xt(this,"sortCooldown",0),Xt(this,"SORT_INTERVAL",15),Xt(this,"frameTime",0),Xt(this,"avgFrameTime",0),Xt(this,"frameCount",0),Xt(this,"PERFORMANCE_LOG_INTERVAL",300),Xt(this,"killCount",0),Xt(this,"battleTime",0),Xt(this,"totalDamageDealt",0),Xt(this,"totalDamageTaken",0),Xt(this,"nextSummonedUnitId",1e6),Xt(this,"random",new PQt(Date.now())),Xt(this,"determinismCaptureEnabled",!1),Xt(this,"frameHashes",[]),Xt(this,"eventHashes",[]),Xt(this,"FRAME_HASH_INTERVAL",60),Xt(this,"execute",qt(()=>{
+ get battleFrame(){ + return this.battleTime}
+ this.attackEffects.reset();
FireOrb1 3 hunks, 3 statements
- this.owner&&this.owner.isAlive&&s&&s.isAlive&&this.owner.doDamage(s,this.orbDamage,!0); + this.owner&&this.owner.isAlive&&s&&s.isAlive&&this.owner.doDamage(s,this.orbDamage,!0,this.attackEffectSource);
- of e)this.owner.doDamage(t,this.blastDamage,!0),t.addDotDamage(s,this.burnDur,this.burnInterval,this.owner,this.burnId),t.burn(Math.floor(this.burnDur/2),this.owner)} + of e)this.owner.doDamage(t,this.blastDamage,!0,this.skillAttackEffectSource),t.addDotDamage(s,this.burnDur,this.burnInterval,this.owner,this.burnId),t.burn(Math.floor(this.burnDur/2),this.owner)}
- this.pathDamage<=0||this.owner&&this.owner.isAlive&&i.isAlive&&i!==this.orbTarget&&(this.pathHitSet.has(i)||this.pathHitSet.size>=t.PATH_MAX||(this.pathHitSet.add(i),this.owner.doDamage(i,this.pathDamage,!0)))} + this.pathDamage<=0||this.owner&&this.owner.isAlive&&i.isAlive&&i!==this.orbTarget&&(this.pathHitSet.has(i)||this.pathHitSet.size>=t.PATH_MAX||(this.pathHitSet.add(i),this.owner.doDamage(i,this.pathDamage,!0,this.skillAttackEffectSource)))}
AladinCoin1 3 hunks, 3 statements
- if(e&&e.isAlive&&!e.isUntagetable)return void i.doDamage(e,s,!0); + if(e&&e.isAlive&&!e.isUntagetable)return void i.doDamage(e,s,!0,this.attackEffectSource);
- if(e*e+h*h<=n)return void i.doDamage(t,s,!0)} + if(e*e+h*h<=n)return void i.doDamage(t,s,!0,this.attackEffectSource)}
- e*e/h+n*n/r<=1&&(i.doDamage(c,a,!0),this.hitCooldowns.set(c,t.HIT_COOLDOWN),s&&t.burstHitCount++)} + e*e/h+n*n/r<=1&&(i.doDamage(c,a,!0,this.skillAttackEffectSource),this.hitCooldowns.set(c,t.HIT_COOLDOWN),s&&t.burstHitCount++)}
SHA256 3 hunks, 3 statements
- ...Ggt,...Ugt,...Hgt,...Wgt,...Kgt,...smt,...hmt,...amt,...fmt} + ...Hgt,...Wgt,...jgt,...zgt,...Xgt,...rmt,...cmt,...dmt,...wmt}
- ...Ymt,...Qmt} + ...twt,...swt}
- utf8:Owt,"utf-8":Owt,hex:Ewt.base16,latin1:kwt,ascii:kwt,binary:kwt,...Ewt} + utf8:Pwt,"utf-8":Pwt,hex:Cwt.base16,latin1:Nwt,ascii:Nwt,binary:Nwt,...Cwt}
SuiProvider 3 hunks, 3 statements
- namespace:bTt.NameSpaceKeyAptos,addresses:s,methods:[...yTt.AptosMethods],extra:h} + namespace:yTt.NameSpaceKeyAptos,addresses:s,methods:[...TTt.AptosMethods],extra:h}
- namespace:OTt.NameSpaceKeyTON,addresses:o,methods:[...RTt.TONMethods],extra:a,data:{ + namespace:PTt.NameSpaceKeyTON,addresses:o,methods:[...DTt.TONMethods],extra:a,data:{
- namespace:DTt.NameSpaceKeySui,addresses:i,methods:[...UTt.SuiMethods],extra:s} + namespace:FTt.NameSpaceKeySui,addresses:i,methods:[...WTt.SuiMethods],extra:s}
ShortcutManager 3 hunks, 3 statements
- this.goPetMenuAt(1)} + t.getInstance().goPetMenuAt(1)}
- this.goPetMenuAt(2)} + t.getInstance().goPetMenuAt(2)}
- this.goPaymentShop(1,i)} + t.getInstance().goPaymentShop(1,s)}
WorkerManagerClass 2 hunks, 2 statements
- ...y.defaultFillStyle} + ...M.defaultFillStyle}
- ...y.defaultStrokeStyle} + ...M.defaultStrokeStyle}
BomberBigBomb1 2 hunks, 2 statements
- this.owner?(this.target&&this.target.isAlive&&(this.owner.doDamage(this.target,this.damagePercent,!0),this.showHitEffect(this.hitClassName)),this.onHitMain(),this.remove()):this.remove()} + this.owner?(this.target&&this.target.isAlive&&(this.owner.doDamage(this.target,this.damagePercent,!0,this.skillAttackEffectSource),this.showHitEffect(this.hitClassName)),this.onHitMain(),this.remove()):this.remove()}
- if(this.owner.doDamage(s,1,!0),!s.isAlive)continue; + if(this.owner.doDamage(s,1,!0,this.skillAttackEffectSource),!s.isAlive)continue;
WyvernRiderThrowingKnifeS1 2 hunks, 2 statements
- this.owner&&this.target?(this.target.isAlive&&(this.owner.doDamage(this.target,this.damagePercent,!0),this.showHitEffect(this.resolvedHitClassName)),this.onHitMain(),this.remove()):super.remove()} + this.owner&&this.target?(this.target.isAlive&&(this.owner.doDamage(this.target,this.damagePercent,!0,this.skillAttackEffectSource),this.showHitEffect(this.resolvedHitClassName)),this.onHitMain(),this.remove()):super.remove()}
- n*n+h*h<400&&(t.doDamage(e,.3,!0),i.add(e))} + n*n+h*h<400&&(t.doDamage(e,.3,!0,this.skillAttackEffectSource),i.add(e))}
FireTornado1 2 hunks, 2 statements
- i*i+h*h>s||(this.owner.doDamage(n,this.expDamage,!0),n.burn(t.BURN_SLOW_FRAMES,this.owner),n.addDotDamage(e,t.BURN_DURATION,t.BURN_INTERVAL,this.owner,t.BURN_DOT_ID))} + i*i+h*h>s||(this.owner.doDamage(n,this.expDamage,!0,this.skillAttackEffectSource),n.burn(t.BURN_SLOW_FRAMES,this.owner),n.addDotDamage(e,t.BURN_DURATION,t.BURN_INTERVAL,this.owner,t.BURN_DOT_ID))}
- e>0&&this.owner.doDamage(i,e,!0); + e>0&&this.owner.doDamage(i,e,!0,this.skillAttackEffectSource);
Lr 1 hunks, 2 statements
- let Qst=Jst; - const Zst=class extends Qst{ + let set=iet; + const eet=class extends set{
BattleController 1 hunks, 2 statements
- for(const i of this.skippedWaves)this.shownDialogueWaves.has(i)||(t.push(...xKt.getInstance().getByWave(i)),this.shownDialogueWaves.add(i)); - this.shownDialogueWaves.has(XD.wave)||(t.push(...xKt.getInstance().getByWave(XD.wave)),this.shownDialogueWaves.add(XD.wave)),t.length>0&&Eoi.getInstance().showDialogues(t)} + 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)}
BitmapFontManagerClass 1 hunks, 1 statements
- ...R.defaultOptions,...t} + ...x.defaultOptions,...t}
WebGLRenderer 1 hunks, 1 statements
- ni.handleByNamedList(ii.WebGLSystem,Jb),ni.handleByNamedList(ii.WebGLPipes,Qb),ni.handleByNamedList(ii.WebGLPipesAdaptor,Zb),ni.add(...qb,...Xb,...Yb); + ni.handleByNamedList(ii.WebGLSystem,Jb),ni.handleByNamedList(ii.WebGLPipes,Qb),ni.handleByNamedList(ii.WebGLPipesAdaptor,Zb),ni.add(...Yb,...qb,...Xb);
WebGPURenderer 1 hunks, 1 statements
- ni.handleByNamedList(ii.WebGPUSystem,fy),ni.handleByNamedList(ii.WebGPUPipes,py),ni.handleByNamedList(ii.WebGPUPipesAdaptor,gy),ni.add(...ly,...uy,...dy); + ni.handleByNamedList(ii.WebGPUSystem,fM),ni.handleByNamedList(ii.WebGPUPipes,pM),ni.handleByNamedList(ii.WebGPUPipesAdaptor,gM),ni.add(...lM,...uM,...dM);
CanvasNineSliceSpritePipe 1 hunks, 1 statements
- ...V.defaultOptions,...t} + ...j.defaultOptions,...t}
LocalDataManager 1 hunks, 1 statements
- Xt(KA,"LocalDataManager"),Yt(KA,"encryptionKey",null),Yt(KA,"BASE_KEY","EF2_DEFAULT_KEY_2025"),Yt(KA,"CREDS_LF_KEY",KA.getKey("aC")),Yt(KA,"CREDS_LS_KEY","EF2_ACB"),Yt(KA,"CREDS_NATIVE_KEY","ef2_account_creds"),Yt(KA,"KEY_GAME_OVER",KA.getKey("gO")),Yt(KA,"KEY_RALLY_POINTS",KA.getKey("rP")),Yt(KA,"KEY_DIALOGUE_COUNT",KA.getKey("dC")),Yt(KA,"KEY_MINI_ASCENT_PENDING",KA.getKey("mAp")),Yt(KA,"KEY_MINI_ASCENT_FORMATION",KA.getKey("mAf")),Yt(KA,"KEY_AUTO_POWER_SAVE",KA.getKey("aPS")),Yt(KA,"BASE","EF2_STORAGE_"),Yt(KA,"SALT","e1z7sf2h"),Yt(KA,"KEYS",{ + qt(Ky,"LocalDataManager"),Xt(Ky,"encryptionKey",null),Xt(Ky,"BASE_KEY","EF2_DEFAULT_KEY_2025"),Xt(Ky,"CREDS_LF_KEY",Ky.getKey("aC")),Xt(Ky,"CREDS_LS_KEY","EF2_ACB"),Xt(Ky,"CREDS_NATIVE_KEY","ef2_account_creds"),Xt(Ky,"KEY_GAME_OVER",Ky.getKey("gO")),Xt(Ky,"KEY_RALLY_POINTS",Ky.getKey("rP")),Xt(Ky,"KEY_DIALOGUE_COUNT",Ky.getKey("dC")),Xt(Ky,"KEY_MINI_ASCENT_PENDING",Ky.getKey("mPvePending")),Xt(Ky,"KEY_MINI_ASCENT_FORMATION",Ky.getKey("mPveFormation")),Xt(Ky,"KEY_AUTO_POWER_SAVE",Ky.getKey("aPS")),Xt(Ky,"BASE","EF2_STORAGE_"),Xt(Ky,"SALT","e1z7sf2h"),Xt(Ky,"KEYS",{
VersionManager 1 hunks, 1 statements
- Xt(JA,"VersionManager"),Yt(JA,"gameId","ef2"),Yt(JA,"appVersion","1.14.72"); + qt(Jy,"VersionManager"),Xt(Jy,"gameId","ef2"),Xt(Jy,"appVersion","1.14.80");
UnitVO 1 hunks, 1 statements
- return this.isEnemy?1:Tx.getInstance().getTransPointMultiplier(this.kindNum)} + return sP.getInstance().battleContext===$x.MiniGame||this.isEnemy?1:TR.getInstance().getTransPointMultiplier(this.kindNum)}
EventVO 1 hunks, 1 statements
- var cB=(t=>(t[t.LOGIN_EVENT=0]="LOGIN_EVENT",t[t.HERO_RESET_EVENT=1]="HERO_RESET_EVENT",t[t.MEDAL_EVENT=2]="MEDAL_EVENT",t[t.PAYMENT_EVENT=3]="PAYMENT_EVENT",t[t.MINE_EVENT=4]="MINE_EVENT",t))(cB||{ + var cB=(t=>(t[t.LOGIN_EVENT=0]="LOGIN_EVENT",t[t.HERO_RESET_EVENT=1]="HERO_RESET_EVENT",t[t.MEDAL_EVENT=2]="MEDAL_EVENT",t[t.PAYMENT_EVENT=3]="PAYMENT_EVENT",t[t.MINE_EVENT=4]="MINE_EVENT",t[t.MINI_ASCENT_EVENT=5]="MINI_ASCENT_EVENT",t))(cB||{
Twist 1 hunks, 1 statements
- this.removed||(this.x+=this.vx,this.y+=this.vy,this.currentFrame+=this.incFrame,this.currentFrame>=this.flyEnd&&(this.currentFrame=0),this.sp.texture=this.textures[Math.floor(this.currentFrame)],null==this.owner||null==this.target||this.target.removed||(this.target.isImmovable||(this.target.x=this.x,this.target.y=this.y),this.target.isAlive&&this.whirlCnt%10==0&&(this.target.isImmovable||this.target.binding(12,!1,this.owner??void 0),this.whirlCnt%30==0&&this.owner.doDamage(this.target,this.damagePercent))),this.isOutOfField(50)&&this.remove(),++this.whirlCnt>this.whirlTotal&&this.remove())} + this.removed||(this.x+=this.vx,this.y+=this.vy,this.currentFrame+=this.incFrame,this.currentFrame>=this.flyEnd&&(this.currentFrame=0),this.sp.texture=this.textures[Math.floor(this.currentFrame)],null==this.owner||null==this.target||this.target.removed||(this.target.isImmovable||(this.target.x=this.x,this.target.y=this.y),this.target.isAlive&&this.whirlCnt%10==0&&(this.target.isImmovable||this.target.binding(12,!1,this.owner??void 0),this.whirlCnt%30==0&&this.owner.doDamage(this.target,this.damagePercent,!1,this.skillAttackEffectSource))),this.isOutOfField(50)&&this.remove(),++this.whirlCnt>this.whirlTotal&&this.remove())}
FireMagicBall1 1 hunks, 1 statements
- if(!(i>40||i<-40)&&(this.owner.doDamage(e,.8),e.blow(this.random.range(-.2,.2),-5),this.random.chance(.3)&&e.stun(50,this.owner??void 0),++s>20))break} + if(!(i>40||i<-40)&&(this.owner.doDamage(e,.8,!1,this.skillAttackEffectSource),e.blow(this.random.range(-.2,.2),-5),this.random.chance(.3)&&e.stun(50,this.owner??void 0),++s>20))break}
FireMageBird1 1 hunks, 1 statements
- this.vx=this.rushSpeed*Math.cos(e),this.vy=this.rushSpeed*Math.sin(e),this.rotation=e,this.scale.y=i>0?Math.abs(this.scale.y):-Math.abs(this.scale.y),this.x+=this.vx,this.y+=this.vy,Math.abs(i)<this.rushSpeed&&Math.abs(s)<this.rushSpeed&&(this.x=this.tx,this.y=this.ty,this.target&&this.target.isAlive&&this.owner&&(this.owner.doDamage(this.target,.3+.2*this.random.next()),this.random.chance(.3)&&this.target.stun(50,this.owner??void 0)),this.currentFrame=41,this.state=t.STATE_EXPLODE)} + this.vx=this.rushSpeed*Math.cos(e),this.vy=this.rushSpeed*Math.sin(e),this.rotation=e,this.scale.y=i>0?Math.abs(this.scale.y):-Math.abs(this.scale.y),this.x+=this.vx,this.y+=this.vy,Math.abs(i)<this.rushSpeed&&Math.abs(s)<this.rushSpeed&&(this.x=this.tx,this.y=this.ty,this.target&&this.target.isAlive&&this.owner&&(this.owner.doDamage(this.target,.3+.2*this.random.next(),!1,this.skillAttackEffectSource),this.random.chance(.3)&&this.target.stun(50,this.owner??void 0)),this.currentFrame=41,this.state=t.STATE_EXPLODE)}
PilotMissile1 1 hunks, 1 statements
- if(!(Math.abs(e)>40)&&s*s+e*e<900&&(this.random.chance(.35)&&i.stun(8,this.owner??void 0),this.owner.doDamage(i,.5,!0),++t>=4))break} + if(!(Math.abs(e)>40)&&s*s+e*e<900&&(this.random.chance(.35)&&i.stun(8,this.owner??void 0),this.owner.doDamage(i,.5,!0,this.skillAttackEffectSource),++t>=4))break}
AntRock1 1 hunks, 1 statements
- if(!(e>50||e<-50)&&(this.owner.doDamage(s,.5),s.isAlive&&s.blow(this.random.range(-.3,.3),-8),++i>4))break} + if(!(e>50||e<-50)&&(this.owner.doDamage(s,.5,!1,this.skillAttackEffectSource),s.isAlive&&s.blow(this.random.range(-.3,.3),-8),++i>4))break}
SuccubusWeapon 1 hunks, 1 statements
- e*e+n*n<=i&&(this.hitEnemies.add(s),this.hitCount++,this.owner.doDamage(s,this.damagePercent,!0),this.showHitEffect(this.resolvedHitClassName))} + e*e+n*n<=i&&(this.hitEnemies.add(s),this.hitCount++,this.owner.doDamage(s,this.damagePercent,!0,this.attackEffectSource),this.showHitEffect(this.resolvedHitClassName))}
DruidTangle1 1 hunks, 1 statements
- this.tangleTimer%t.DMG_INTERVAL===0&&this.owner&&this.target&&!this.target.removed&&this.owner.doDamage(this.target,this.damagePercent),this.tangleTimer>=t.TOTAL_LIFE&&(this.sp&&this.sp.scale.set(this.origScaleX,this.origScaleY),this.remove())} + this.tangleTimer%t.DMG_INTERVAL===0&&this.owner&&this.target&&!this.target.removed&&this.owner.doDamage(this.target,this.damagePercent,!1,this.skillAttackEffectSource),this.tangleTimer>=t.TOTAL_LIFE&&(this.sp&&this.sp.scale.set(this.origScaleX,this.origScaleY),this.remove())}
DruidDrill1 1 hunks, 1 statements
- if(this.owner.doDamage(s,this.damagePercent,!0),this.showHitEffect(this.resolvedHitClassName),this.generation<t.MAX_GENERATION){ + if(this.owner.doDamage(s,this.damagePercent,!0,this.attackEffectSource),this.showHitEffect(this.resolvedHitClassName),this.generation<t.MAX_GENERATION){
HippogriffMissile1 1 hunks, 1 statements
- if(t.segDistSq(i,s,this.x,this.y,e.x,e.y)<=n*n)return this.healPercent>0?this.aimTarget.heal(this.healPercent,this.owner,!0):(this.owner.doDamage(this.aimTarget,this.damagePercent,!0),this.showHitEffect(this.resolvedHitClassName)),void this.remove()} + if(t.segDistSq(i,s,this.x,this.y,e.x,e.y)<=n*n)return this.healPercent>0?this.aimTarget.heal(this.healPercent,this.owner,!0):(this.owner.doDamage(this.aimTarget,this.damagePercent,!0,this.skillAttackEffectSource),this.showHitEffect(this.resolvedHitClassName)),void this.remove()}
SteamFire1 1 hunks, 1 statements
- if(!(Math.abs(e)>35)&&s*s+e*e<625&&(this.owner.doDamage(i,.4,!0),++t>=3))break} + if(!(Math.abs(e)>35)&&s*s+e*e<625&&(this.owner.doDamage(i,.4,!0,this.skillAttackEffectSource),++t>=3))break}
SteamMissile1 1 hunks, 1 statements
- this.owner&&this.target?(this.target.isAlive&&!this.hitSet.has(this.target)&&(this.hitSet.add(this.target),this.owner.doDamage(this.target,this.damagePercent,!0)&&(this.onHitMain(),this.showHitEffect(this.resolvedHitClassName))),this.target=null):this.remove()} + this.owner&&this.target?(this.target.isAlive&&!this.hitSet.has(this.target)&&(this.hitSet.add(this.target),this.owner.doDamage(this.target,this.damagePercent,!0,this.skillAttackEffectSource)&&(this.onHitMain(),this.showHitEffect(this.resolvedHitClassName))),this.target=null):this.remove()}
SylphidTornado1 1 hunks, 1 statements
- e*e+n*n<=i&&(this.owner.doDamage(s,t.DMG_PER_TICK,!0),this.bindEnemy(s))} + e*e+n*n<=i&&(this.owner.doDamage(s,t.DMG_PER_TICK,!0,this.skillAttackEffectSource),this.bindEnemy(s))}
BladeWave1 1 hunks, 1 statements
- this.owner.doDamage(t,this.damagePercent,!0),this.showHitEffect(this.resolvedHitClassName),i&&t.knockBack(this.vx>0?2:-2,-1,20),this.hitCooldowns.set(t,20)} + this.owner.doDamage(t,this.damagePercent,!0,this.attackEffectSource),this.showHitEffect(this.resolvedHitClassName),i&&t.knockBack(this.vx>0?2:-2,-1,20),this.hitCooldowns.set(t,20)}
SpinBlade 1 hunks, 1 statements
- this.owner.doDamage(s,this.damagePercent,!0),this.showHitEffect(this.resolvedHitClassName),s.knockBack(this.vx>0?3:-3,-2,25),this.hitCooldowns.set(s,20)} + this.owner.doDamage(s,this.damagePercent,!0,this.attackEffectSource),this.showHitEffect(this.resolvedHitClassName),s.knockBack(this.vx>0?3:-3,-2,25),this.hitCooldowns.set(s,20)}
CrowKnightBullet1 1 hunks, 1 statements
- return!i||this.flightTimer<this.hitFrame?void 0:i.isAlive&&!i.isUntagetable&&AZ(this.x,this.y,i)?(this.hasHit=!0,this.vx=0,this.vy=0,this.visible=!1,this.owner.doDamage(i,this.damagePercent,!0),this.showHitEffect(this.resolvedHitClassName),this.owner.evolStage>=1&&i.stun(30),void this.remove()):void(this.flightTimer>this.hitFrame+t.GRACE&&(this.hitTarget=null))} + return!i||this.flightTimer<this.hitFrame?void 0:i.isAlive&&!i.isUntagetable&&IZ(this.x,this.y,i)?(this.hasHit=!0,this.vx=0,this.vy=0,this.visible=!1,this.owner.doDamage(i,this.damagePercent,!0,this.attackEffectSource),this.showHitEffect(this.resolvedHitClassName),this.owner.evolStage>=1&&i.stun(30),void this.remove()):void(this.flightTimer>this.hitFrame+t.GRACE&&(this.hitTarget=null))}
CrowCompanion1 1 hunks, 1 statements
- s.doDamage(o,this.damagePercent*h,!0),r++,!t||o.isAlive||this.isLordCrow||null==(i=s.onCrowKill)||i.call(s)} + s.doDamage(o,this.damagePercent*h,!0,this.skillAttackEffectSource),r++,!t||o.isAlive||this.isLordCrow||null==(i=s.onCrowKill)||i.call(s)}
CrowGuidedBall1 1 hunks, 1 statements
- t++)this.owner.doDamage(s[t],this.damagePercent,!0)} + t++)this.owner.doDamage(s[t],this.damagePercent,!0,this.skillAttackEffectSource)}
CrowFeatherShot1 1 hunks, 1 statements
- if(s*s+e*e<=i)return this.owner.doDamage(t,this.damagePercent,!0),this.showHitEffect(this.resolvedHitClassName),void super.remove()} + if(s*s+e*e<=i)return this.owner.doDamage(t,this.damagePercent,!0,this.skillAttackEffectSource),this.showHitEffect(this.resolvedHitClassName),void super.remove()}
ScorpionPoisonBullet 1 hunks, 1 statements
- var PZ=(t=>(t[t.NONE=0]="NONE",t[t.OrcHunter1_RANGEEVADE_BUFF=1]="OrcHunter1_RANGEEVADE_BUFF",t[t.OrcRapterRider1_MOVESPEED_DEBUFF=2]="OrcRapterRider1_MOVESPEED_DEBUFF",t[t.Succubus1_MOVESPEED_BUFF=3]="Succubus1_MOVESPEED_BUFF",t[t.Succubus1_ATTACKSPEED_BUFF=4]="Succubus1_ATTACKSPEED_BUFF",t[t.ScorpionPoisonBullet_MOVESPEED_DEBUFF=5]="ScorpionPoisonBullet_MOVESPEED_DEBUFF",t[t.ScorpionPoisonBullet_ATTACKSPEED_DEBUFF=6]="ScorpionPoisonBullet_ATTACKSPEED_DEBUFF",t[t.DrillSl1_PENETRATE_BUFF=11]="DrillSl1_PENETRATE_BUFF",t[t.DrillSl1_SKILL2_BUFF=12]="DrillSl1_SKILL2_BUFF",t[t.DrillSl1_SKILL3_BUFF=13]="DrillSl1_SKILL3_BUFF",t[t.DrillSl1_SKILL4_BUFF=14]="DrillSl1_SKILL4_BUFF",t[t.DrillSl1_ROSTER_BUFF=15]="DrillSl1_ROSTER_BUFF",t[t.BombSl1_SKILL2_BUFF=21]="BombSl1_SKILL2_BUFF",t[t.BombSl1_SKILL3_BUFF=22]="BombSl1_SKILL3_BUFF",t[t.BombSl1_SKILL4_BUFF=23]="BombSl1_SKILL4_BUFF",t[t.BombSl1_ROSTER_BUFF=24]="BombSl1_ROSTER_BUFF",t[t.NurSl1_SKILL2_BUFF=31]="NurSl1_SKILL2_BUFF",t[t.NurSl1_ROSTER_BUFF=32]="NurSl1_ROSTER_BUFF",t[t.MagmaSl1_SKILL2_BUFF=41]="MagmaSl1_SKILL2_BUFF",t[t.MagmaSl1_SKILL3_BUFF=42]="MagmaSl1_SKILL3_BUFF",t[t.MagmaSl1_ROSTER_BUFF=43]="MagmaSl1_ROSTER_BUFF",t[t.TreebarkSl1_SKILL2_BUFF=51]="TreebarkSl1_SKILL2_BUFF",t[t.TreebarkSl1_SKILL3_BUFF=52]="TreebarkSl1_SKILL3_BUFF",t[t.TreebarkSl1_ROSTER_BUFF=53]="TreebarkSl1_ROSTER_BUFF",t[t.IcespearSl1_SKILL2_BUFF=61]="IcespearSl1_SKILL2_BUFF",t[t.IcespearSl1_SKILL3_BUFF=62]="IcespearSl1_SKILL3_BUFF",t[t.IcespearSl1_SKILL4_BUFF=63]="IcespearSl1_SKILL4_BUFF",t[t.IcespearSl1_ROSTER_BUFF=64]="IcespearSl1_ROSTER_BUFF",t[t.VinewhipSl1_SKILL2_BUFF=71]="VinewhipSl1_SKILL2_BUFF",t[t.VinewhipSl1_SKILL3_BUFF=72]="VinewhipSl1_SKILL3_BUFF",t[t.VinewhipSl1_SKILL4_BUFF=73]="VinewhipSl1_SKILL4_BUFF",t[t.VinewhipSl1_ROSTER_BUFF=74]="VinewhipSl1_ROSTER_BUFF",t[t.FlamecannonSl1_SKILL2_BUFF=81]="FlamecannonSl1_SKILL2_BUFF",t[t.FlamecannonSl1_SKILL3_BUFF=82]="FlamecannonSl1_SKILL3_BUFF",t[t.FlamecannonSl1_SKILL4_BUFF=83]="FlamecannonSl1_SKILL4_BUFF",t[t.FlamecannonSl1_ROSTER_BUFF=84]="FlamecannonSl1_ROSTER_BUFF",t[t.IcebowSl1_SKILL2_BUFF=91]="IcebowSl1_SKILL2_BUFF",t[t.IcebowSl1_SKILL3_BUFF=92]="IcebowSl1_SKILL3_BUFF",t[t.IcebowSl1_SKILL4_BUFF=93]="IcebowSl1_SKILL4_BUFF",t[t.IcebowSl1_ROSTER_BUFF=94]="IcebowSl1_ROSTER_BUFF",t[t.FlowerSl1_SKILL2_BUFF=101]="FlowerSl1_SKILL2_BUFF",t[t.FlowerSl1_ROSTER_BUFF=102]="FlowerSl1_ROSTER_BUFF",t[t.HotpoolSl1_SKILL2_BUFF=111]="HotpoolSl1_SKILL2_BUFF",t[t.HotpoolSl1_ROSTER_BUFF=112]="HotpoolSl1_ROSTER_BUFF",t[t.HotpoolSl1_DAMAGE_BUFF=113]="HotpoolSl1_DAMAGE_BUFF",t[t.GlacierSl1_SKILL2_BUFF=114]="GlacierSl1_SKILL2_BUFF",t[t.GlacierSl1_SKILL3_BUFF=115]="GlacierSl1_SKILL3_BUFF",t[t.GlacierSl1_ROSTER_BUFF=116]="GlacierSl1_ROSTER_BUFF",t[t.GlacierSl1_SKILL4_BUFF=117]="GlacierSl1_SKILL4_BUFF",t[t.FladiatorSl1_SKILL2_BUFF=118]="FladiatorSl1_SKILL2_BUFF",t[t.FladiatorSl1_SKILL3_BUFF=119]="FladiatorSl1_SKILL3_BUFF",t[t.FladiatorSl1_SKILL4_BUFF=120]="FladiatorSl1_SKILL4_BUFF",t[t.FladiatorSl1_ROSTER_BUFF=121]="FladiatorSl1_ROSTER_BUFF",t[t.FladiatorSl1_CRTICAL_BUFF=122]="FladiatorSl1_CRTICAL_BUFF",t[t.ManaBloomSl1_SKILL2_BUFF=123]="ManaBloomSl1_SKILL2_BUFF",t[t.ManaBloomSl1_SKILL3_BUFF=124]="ManaBloomSl1_SKILL3_BUFF",t[t.ManaBloomSl1_SKILL4_BUFF=125]="ManaBloomSl1_SKILL4_BUFF",t[t.ManaBloomSl1_ROSTER_BUFF=126]="ManaBloomSl1_ROSTER_BUFF",t[t.ClearSl1_SKILL2_BUFF=127]="ClearSl1_SKILL2_BUFF",t[t.ClearSl1_ROSTER_BUFF=128]="ClearSl1_ROSTER_BUFF",t[t.SlimeRacing_DAMAGE_BUFF=129]="SlimeRacing_DAMAGE_BUFF",t[t.SlimeRacing_ATTACK_SPEED_BUFF=130]="SlimeRacing_ATTACK_SPEED_BUFF",t[t.SlimeRacing_MOVE_SPEED_BUFF=131]="SlimeRacing_MOVE_SPEED_BUFF",t[t.RACE_REVIVE_MOVE_SPEED_BUFF=132]="RACE_REVIVE_MOVE_SPEED_BUFF",t[t.RACE_CHEERUP_MOVE_SPEED_BUFF=133]="RACE_CHEERUP_MOVE_SPEED_BUFF",t[t.RACE_CHEERUP_ATTACK_SPEED_BUFF=134]="RACE_CHEERUP_ATTACK_SPEED_BUFF",t[t.EXCAVATION_ENCOUNTER_DEFENSE_BUFF=135]="EXCAVATION_ENCOUNTER_DEFENSE_BUFF",t[t.SteelbashSl1_SKILL2_BUFF=136]="SteelbashSl1_SKILL2_BUFF",t[t.SteelbashSl1_SKILL3_BUFF=137]="SteelbashSl1_SKILL3_BUFF",t[t.SteelbashSl1_ROSTER_BUFF=138]="SteelbashSl1_ROSTER_BUFF",t[t.FlamdancerSl1_SKILL2_BUFF=139]="FlamdancerSl1_SKILL2_BUFF",t[t.FlamdancerSl1_SKILL3_BUFF=140]="FlamdancerSl1_SKILL3_BUFF",t[t.FlamdancerSl1_ROSTER_BUFF=141]="FlamdancerSl1_ROSTER_BUFF",t[t.FrostreaverSl1_SKILL2_BUFF=142]="FrostreaverSl1_SKILL2_BUFF",t[t.FrostreaverSl1_SKILL3_BUFF=143]="FrostreaverSl1_SKILL3_BUFF",t[t.FrostreaverSl1_ROSTER_BUFF=144]="FrostreaverSl1_ROSTER_BUFF",t[t.ThornjaSl1_SKILL2_BUFF=145]="ThornjaSl1_SKILL2_BUFF",t[t.ThornjaSl1_SKILL3_BUFF=146]="ThornjaSl1_SKILL3_BUFF",t[t.ThornjaSl1_SKILL4_BUFF=147]="ThornjaSl1_SKILL4_BUFF",t[t.ThornjaSl1_ROSTER_BUFF=148]="ThornjaSl1_ROSTER_BUFF",t[t.RACE_MAPTYPE1_ATKSPD_BUFF=149]="RACE_MAPTYPE1_ATKSPD_BUFF",t[t.RACE_MAPTYPE1_MOVESPD_BUFF=150]="RACE_MAPTYPE1_MOVESPD_BUFF",t[t.GearbladeSl1_SKILL2_BUFF=151]="GearbladeSl1_SKILL2_BUFF",t[t.GearbladeSl1_SKILL3_BUFF=152]="GearbladeSl1_SKILL3_BUFF",t[t.GearbladeSl1_SKILL4_BUFF=153]="GearbladeSl1_SKILL4_BUFF",t[t.GearbladeSl1_ROSTER_BUFF=154]="GearbladeSl1_ROSTER_BUFF",t[t.EmbersageSl1_SKILL2_BUFF=155]="EmbersageSl1_SKILL2_BUFF",t[t.EmbersageSl1_ROSTER_BUFF=156]="EmbersageSl1_ROSTER_BUFF",t[t.TidecallerSl1_SKILL2_BUFF=157]="TidecallerSl1_SKILL2_BUFF",t[t.TidecallerSl1_ROSTER_BUFF=158]="TidecallerSl1_ROSTER_BUFF",t[t.GrovewardenSl1_SKILL2_BUFF=159]="GrovewardenSl1_SKILL2_BUFF",t[t.GrovewardenSl1_SKILL3_BUFF=160]="GrovewardenSl1_SKILL3_BUFF",t[t.GrovewardenSl1_ROSTER_BUFF=161]="GrovewardenSl1_ROSTER_BUFF",t[t.FrankenSl1_SKILL2_BUFF=162]="FrankenSl1_SKILL2_BUFF",t[t.FrankenSl1_ROSTER_BUFF=164]="FrankenSl1_ROSTER_BUFF",t[t.WolfSl1_SKILL2_BUFF=165]="WolfSl1_SKILL2_BUFF",t[t.WolfSl1_SKILL3_BUFF=166]="WolfSl1_SKILL3_BUFF",t[t.WolfSl1_SKILL4_BUFF=167]="WolfSl1_SKILL4_BUFF",t[t.WolfSl1_ROSTER_BUFF=168]="WolfSl1_ROSTER_BUFF",t[t.BatSl1_SKILL2_BUFF=169]="BatSl1_SKILL2_BUFF",t[t.BatSl1_SKILL3_BUFF=170]="BatSl1_SKILL3_BUFF",t[t.BatSl1_SKILL4_BUFF=171]="BatSl1_SKILL4_BUFF",t[t.BatSl1_ROSTER_BUFF=172]="BatSl1_ROSTER_BUFF",t[t.SkullSl1_SKILL2_BUFF=173]="SkullSl1_SKILL2_BUFF",t[t.SkullSl1_ROSTER_BUFF=174]="SkullSl1_ROSTER_BUFF",t[t.Bomber1_ATKSPD_BUFF=200]="Bomber1_ATKSPD_BUFF",t[t.Bomber1_MOVESPD_BUFF=201]="Bomber1_MOVESPD_BUFF",t[t.TigerRider1_ATKSPD_BUFF=210]="TigerRider1_ATKSPD_BUFF",t[t.TigerRider1_MOVESPD_BUFF=211]="TigerRider1_MOVESPD_BUFF",t[t.Sylphid1_ATKSPD_STACK=220]="Sylphid1_ATKSPD_STACK",t[t.WyvernRider1_ATKSPD_BUFF=230]="WyvernRider1_ATKSPD_BUFF",t[t.WyvernRider1_MOVESPD_BUFF=231]="WyvernRider1_MOVESPD_BUFF",t[t.WyvernRider1_ATKDMG_BUFF=232]="WyvernRider1_ATKDMG_BUFF",t[t.WingKnight1_FLASH_BUFF=240]="WingKnight1_FLASH_BUFF",t[t.WingKnight1_DASH_BUFF=241]="WingKnight1_DASH_BUFF",t[t.WingKnight1_BERSERK_ATKSPD=242]="WingKnight1_BERSERK_ATKSPD",t[t.WingKnight1_BERSERK_ATKDMG=243]="WingKnight1_BERSERK_ATKDMG",t[t.WingKnight1_FLASH_MOVSPD=244]="WingKnight1_FLASH_MOVSPD",t[t.WingKnight1_FLASH_ATKSPD=245]="WingKnight1_FLASH_ATKSPD",t[t.BladeMaster1_KILL_ATKSPD=250]="BladeMaster1_KILL_ATKSPD",t[t.BladeMaster1_KILL_ATKDMG=251]="BladeMaster1_KILL_ATKDMG",t[t.BladeMaster1_RANGE_ATKSPD=252]="BladeMaster1_RANGE_ATKSPD",t[t.BladeMaster1_MELEE_MOVESPD=253]="BladeMaster1_MELEE_MOVESPD",t[t.BladeMaster1_MELEE_ATKDMG=254]="BladeMaster1_MELEE_ATKDMG",t[t.BladeMaster1_RUSH_ATKSPD=255]="BladeMaster1_RUSH_ATKSPD",t[t.BladeMaster1_RUSH_MOVESPD=256]="BladeMaster1_RUSH_MOVESPD",t[t.BladeMaster1_BLINK_MOVESPD=257]="BladeMaster1_BLINK_MOVESPD",t[t.Aladin1_SAND_SLOW=260]="Aladin1_SAND_SLOW",t[t.Aladin1_BLESSING_ATKDMG=261]="Aladin1_BLESSING_ATKDMG",t[t.Druid1_VINE_ATKDMG=270]="Druid1_VINE_ATKDMG",t[t.Druid1_VINE_DEFENSE=271]="Druid1_VINE_DEFENSE",t[t.Druid1_VINE_ATKSPD=272]="Druid1_VINE_ATKSPD",t[t.CrowKnight1_ORBIT_ATKSPD=280]="CrowKnight1_ORBIT_ATKSPD",t[t.CrowKnight1_ORBIT_ATKDMG=281]="CrowKnight1_ORBIT_ATKDMG",t[t.Succubus2_CHARM_ATKSPD=290]="Succubus2_CHARM_ATKSPD",t[t.Succubus2_CHARM_MOVSPD=291]="Succubus2_CHARM_MOVSPD",t[t.FireSpirit1_JUGGLE_ATKSPD=292]="FireSpirit1_JUGGLE_ATKSPD",t[t.RaidEmblemRogue_ACTIVE_ATKSPD=300]="RaidEmblemRogue_ACTIVE_ATKSPD",t[t.RaidEmblemRogue_ACTIVE_ATKDMG=301]="RaidEmblemRogue_ACTIVE_ATKDMG",t[t.RaidEmblemMage_BOSS_ATKSPD=302]="RaidEmblemMage_BOSS_ATKSPD",t[t.RaidEmblemMage_BOSS_DEFENSE=303]="RaidEmblemMage_BOSS_DEFENSE",t[t.RaidWeakpoint_BOSS_DEFENSE=304]="RaidWeakpoint_BOSS_DEFENSE",t[t.RaidWeakpoint_BOSS_ATKSPD=305]="RaidWeakpoint_BOSS_ATKSPD",t[t.RaidWeakpoint_BOSS_MOVESPD=306]="RaidWeakpoint_BOSS_MOVESPD",t[t.RaidRune_ACTIVE_ATKSPD=310]="RaidRune_ACTIVE_ATKSPD",t[t.RaidRune_ACTIVE_ATKDMG=311]="RaidRune_ACTIVE_ATKDMG",t[t.RaidRune_PULSE_ATKDMG=312]="RaidRune_PULSE_ATKDMG",t[t.RaidRune_PULSE_ATKSPD=313]="RaidRune_PULSE_ATKSPD",t[t.RaidRune_PULSE_DEFENSE=314]="RaidRune_PULSE_DEFENSE",t[t.RaidRune_ALLOUT_ATKDMG=315]="RaidRune_ALLOUT_ATKDMG",t[t.RaidRune_ALLOUT_ATKSPD=316]="RaidRune_ALLOUT_ATKSPD",t[t.RaidRune_ACTIVE_CRIT=317]="RaidRune_ACTIVE_CRIT",t[t.RaidRune_BOSS_ATKSPD=320]="RaidRune_BOSS_ATKSPD",t[t.RaidRune_BOSS_DEFENSE=321]="RaidRune_BOSS_DEFENSE",t[t.RaidRune_BOSS_ATKDMG=322]="RaidRune_BOSS_ATKDMG",t[t.RaidRune_ARROW_DEFENSE=323]="RaidRune_ARROW_DEFENSE",t[t.RaidRune_COMBO_DEFENSE=324]="RaidRune_COMBO_DEFENSE",t[t.BURN_DEBUFF=1001]="BURN_DEBUFF",t[t.BLOODY_DEBUFF=1002]="BLOODY_DEBUFF",t[t.RACE_ROLETYPE_MOVE_SPEED_DEBUFF=1003]="RACE_ROLETYPE_MOVE_SPEED_DEBUFF",t[t.RACE_ROLETYPE_DAMAGE_DEBUFF=1004]="RACE_ROLETYPE_DAMAGE_DEBUFF",t[t.EXCAVATION_CRITICALHIT_DEFENSE_DEBUFF=1005]="EXCAVATION_CRITICALHIT_DEFENSE_DEBUFF",t[t.RACE_MAPTYPE2_DEBUFF=1006]="RACE_MAPTYPE2_DEBUFF",t[t.TidecallerSl1_SKILL2_DEBUFF=1007]="TidecallerSl1_SKILL2_DEBUFF",t[t.RAID_BOSS1_DEBUFF=1008]="RAID_BOSS1_DEBUFF",t[t.MOSSGOLEM_DEFENSE_BUFF=1009]="MOSSGOLEM_DEFENSE_BUFF",t[t.WarpLanding_ATTACKSPEED_BUFF=1100]="WarpLanding_ATTACKSPEED_BUFF",t))(PZ||{ + var GZ=(t=>(t[t.NONE=0]="NONE",t[t.OrcHunter1_RANGEEVADE_BUFF=1]="OrcHunter1_RANGEEVADE_BUFF",t[t.OrcRapterRider1_MOVESPEED_DEBUFF=2]="OrcRapterRider1_MOVESPEED_DEBUFF",t[t.Succubus1_MOVESPEED_BUFF=3]="Succubus1_MOVESPEED_BUFF",t[t.Succubus1_ATTACKSPEED_BUFF=4]="Succubus1_ATTACKSPEED_BUFF",t[t.ScorpionPoisonBullet_MOVESPEED_DEBUFF=5]="ScorpionPoisonBullet_MOVESPEED_DEBUFF",t[t.ScorpionPoisonBullet_ATTACKSPEED_DEBUFF=6]="ScorpionPoisonBullet_ATTACKSPEED_DEBUFF",t[t.DrillSl1_PENETRATE_BUFF=11]="DrillSl1_PENETRATE_BUFF",t[t.DrillSl1_SKILL2_BUFF=12]="DrillSl1_SKILL2_BUFF",t[t.DrillSl1_SKILL3_BUFF=13]="DrillSl1_SKILL3_BUFF",t[t.DrillSl1_SKILL4_BUFF=14]="DrillSl1_SKILL4_BUFF",t[t.DrillSl1_ROSTER_BUFF=15]="DrillSl1_ROSTER_BUFF",t[t.BombSl1_SKILL2_BUFF=21]="BombSl1_SKILL2_BUFF",t[t.BombSl1_SKILL3_BUFF=22]="BombSl1_SKILL3_BUFF",t[t.BombSl1_SKILL4_BUFF=23]="BombSl1_SKILL4_BUFF",t[t.BombSl1_ROSTER_BUFF=24]="BombSl1_ROSTER_BUFF",t[t.NurSl1_SKILL2_BUFF=31]="NurSl1_SKILL2_BUFF",t[t.NurSl1_ROSTER_BUFF=32]="NurSl1_ROSTER_BUFF",t[t.MagmaSl1_SKILL2_BUFF=41]="MagmaSl1_SKILL2_BUFF",t[t.MagmaSl1_SKILL3_BUFF=42]="MagmaSl1_SKILL3_BUFF",t[t.MagmaSl1_ROSTER_BUFF=43]="MagmaSl1_ROSTER_BUFF",t[t.TreebarkSl1_SKILL2_BUFF=51]="TreebarkSl1_SKILL2_BUFF",t[t.TreebarkSl1_SKILL3_BUFF=52]="TreebarkSl1_SKILL3_BUFF",t[t.TreebarkSl1_ROSTER_BUFF=53]="TreebarkSl1_ROSTER_BUFF",t[t.IcespearSl1_SKILL2_BUFF=61]="IcespearSl1_SKILL2_BUFF",t[t.IcespearSl1_SKILL3_BUFF=62]="IcespearSl1_SKILL3_BUFF",t[t.IcespearSl1_SKILL4_BUFF=63]="IcespearSl1_SKILL4_BUFF",t[t.IcespearSl1_ROSTER_BUFF=64]="IcespearSl1_ROSTER_BUFF",t[t.VinewhipSl1_SKILL2_BUFF=71]="VinewhipSl1_SKILL2_BUFF",t[t.VinewhipSl1_SKILL3_BUFF=72]="VinewhipSl1_SKILL3_BUFF",t[t.VinewhipSl1_SKILL4_BUFF=73]="VinewhipSl1_SKILL4_BUFF",t[t.VinewhipSl1_ROSTER_BUFF=74]="VinewhipSl1_ROSTER_BUFF",t[t.FlamecannonSl1_SKILL2_BUFF=81]="FlamecannonSl1_SKILL2_BUFF",t[t.FlamecannonSl1_SKILL3_BUFF=82]="FlamecannonSl1_SKILL3_BUFF",t[t.FlamecannonSl1_SKILL4_BUFF=83]="FlamecannonSl1_SKILL4_BUFF",t[t.FlamecannonSl1_ROSTER_BUFF=84]="FlamecannonSl1_ROSTER_BUFF",t[t.IcebowSl1_SKILL2_BUFF=91]="IcebowSl1_SKILL2_BUFF",t[t.IcebowSl1_SKILL3_BUFF=92]="IcebowSl1_SKILL3_BUFF",t[t.IcebowSl1_SKILL4_BUFF=93]="IcebowSl1_SKILL4_BUFF",t[t.IcebowSl1_ROSTER_BUFF=94]="IcebowSl1_ROSTER_BUFF",t[t.FlowerSl1_SKILL2_BUFF=101]="FlowerSl1_SKILL2_BUFF",t[t.FlowerSl1_ROSTER_BUFF=102]="FlowerSl1_ROSTER_BUFF",t[t.HotpoolSl1_SKILL2_BUFF=111]="HotpoolSl1_SKILL2_BUFF",t[t.HotpoolSl1_ROSTER_BUFF=112]="HotpoolSl1_ROSTER_BUFF",t[t.HotpoolSl1_DAMAGE_BUFF=113]="HotpoolSl1_DAMAGE_BUFF",t[t.GlacierSl1_SKILL2_BUFF=114]="GlacierSl1_SKILL2_BUFF",t[t.GlacierSl1_SKILL3_BUFF=115]="GlacierSl1_SKILL3_BUFF",t[t.GlacierSl1_ROSTER_BUFF=116]="GlacierSl1_ROSTER_BUFF",t[t.GlacierSl1_SKILL4_BUFF=117]="GlacierSl1_SKILL4_BUFF",t[t.FladiatorSl1_SKILL2_BUFF=118]="FladiatorSl1_SKILL2_BUFF",t[t.FladiatorSl1_SKILL3_BUFF=119]="FladiatorSl1_SKILL3_BUFF",t[t.FladiatorSl1_SKILL4_BUFF=120]="FladiatorSl1_SKILL4_BUFF",t[t.FladiatorSl1_ROSTER_BUFF=121]="FladiatorSl1_ROSTER_BUFF",t[t.FladiatorSl1_CRTICAL_BUFF=122]="FladiatorSl1_CRTICAL_BUFF",t[t.ManaBloomSl1_SKILL2_BUFF=123]="ManaBloomSl1_SKILL2_BUFF",t[t.ManaBloomSl1_SKILL3_BUFF=124]="ManaBloomSl1_SKILL3_BUFF",t[t.ManaBloomSl1_SKILL4_BUFF=125]="ManaBloomSl1_SKILL4_BUFF",t[t.ManaBloomSl1_ROSTER_BUFF=126]="ManaBloomSl1_ROSTER_BUFF",t[t.ClearSl1_SKILL2_BUFF=127]="ClearSl1_SKILL2_BUFF",t[t.ClearSl1_ROSTER_BUFF=128]="ClearSl1_ROSTER_BUFF",t[t.SlimeRacing_DAMAGE_BUFF=129]="SlimeRacing_DAMAGE_BUFF",t[t.SlimeRacing_ATTACK_SPEED_BUFF=130]="SlimeRacing_ATTACK_SPEED_BUFF",t[t.SlimeRacing_MOVE_SPEED_BUFF=131]="SlimeRacing_MOVE_SPEED_BUFF",t[t.RACE_REVIVE_MOVE_SPEED_BUFF=132]="RACE_REVIVE_MOVE_SPEED_BUFF",t[t.RACE_CHEERUP_MOVE_SPEED_BUFF=133]="RACE_CHEERUP_MOVE_SPEED_BUFF",t[t.RACE_CHEERUP_ATTACK_SPEED_BUFF=134]="RACE_CHEERUP_ATTACK_SPEED_BUFF",t[t.EXCAVATION_ENCOUNTER_DEFENSE_BUFF=135]="EXCAVATION_ENCOUNTER_DEFENSE_BUFF",t[t.SteelbashSl1_SKILL2_BUFF=136]="SteelbashSl1_SKILL2_BUFF",t[t.SteelbashSl1_SKILL3_BUFF=137]="SteelbashSl1_SKILL3_BUFF",t[t.SteelbashSl1_ROSTER_BUFF=138]="SteelbashSl1_ROSTER_BUFF",t[t.FlamdancerSl1_SKILL2_BUFF=139]="FlamdancerSl1_SKILL2_BUFF",t[t.FlamdancerSl1_SKILL3_BUFF=140]="FlamdancerSl1_SKILL3_BUFF",t[t.FlamdancerSl1_ROSTER_BUFF=141]="FlamdancerSl1_ROSTER_BUFF",t[t.FrostreaverSl1_SKILL2_BUFF=142]="FrostreaverSl1_SKILL2_BUFF",t[t.FrostreaverSl1_SKILL3_BUFF=143]="FrostreaverSl1_SKILL3_BUFF",t[t.FrostreaverSl1_ROSTER_BUFF=144]="FrostreaverSl1_ROSTER_BUFF",t[t.ThornjaSl1_SKILL2_BUFF=145]="ThornjaSl1_SKILL2_BUFF",t[t.ThornjaSl1_SKILL3_BUFF=146]="ThornjaSl1_SKILL3_BUFF",t[t.ThornjaSl1_SKILL4_BUFF=147]="ThornjaSl1_SKILL4_BUFF",t[t.ThornjaSl1_ROSTER_BUFF=148]="ThornjaSl1_ROSTER_BUFF",t[t.RACE_MAPTYPE1_ATKSPD_BUFF=149]="RACE_MAPTYPE1_ATKSPD_BUFF",t[t.RACE_MAPTYPE1_MOVESPD_BUFF=150]="RACE_MAPTYPE1_MOVESPD_BUFF",t[t.GearbladeSl1_SKILL2_BUFF=151]="GearbladeSl1_SKILL2_BUFF",t[t.GearbladeSl1_SKILL3_BUFF=152]="GearbladeSl1_SKILL3_BUFF",t[t.GearbladeSl1_SKILL4_BUFF=153]="GearbladeSl1_SKILL4_BUFF",t[t.GearbladeSl1_ROSTER_BUFF=154]="GearbladeSl1_ROSTER_BUFF",t[t.EmbersageSl1_SKILL2_BUFF=155]="EmbersageSl1_SKILL2_BUFF",t[t.EmbersageSl1_ROSTER_BUFF=156]="EmbersageSl1_ROSTER_BUFF",t[t.TidecallerSl1_SKILL2_BUFF=157]="TidecallerSl1_SKILL2_BUFF",t[t.TidecallerSl1_ROSTER_BUFF=158]="TidecallerSl1_ROSTER_BUFF",t[t.GrovewardenSl1_SKILL2_BUFF=159]="GrovewardenSl1_SKILL2_BUFF",t[t.GrovewardenSl1_SKILL3_BUFF=160]="GrovewardenSl1_SKILL3_BUFF",t[t.GrovewardenSl1_ROSTER_BUFF=161]="GrovewardenSl1_ROSTER_BUFF",t[t.FrankenSl1_SKILL2_BUFF=162]="FrankenSl1_SKILL2_BUFF",t[t.FrankenSl1_ROSTER_BUFF=164]="FrankenSl1_ROSTER_BUFF",t[t.WolfSl1_SKILL2_BUFF=165]="WolfSl1_SKILL2_BUFF",t[t.WolfSl1_SKILL3_BUFF=166]="WolfSl1_SKILL3_BUFF",t[t.WolfSl1_SKILL4_BUFF=167]="WolfSl1_SKILL4_BUFF",t[t.WolfSl1_ROSTER_BUFF=168]="WolfSl1_ROSTER_BUFF",t[t.BatSl1_SKILL2_BUFF=169]="BatSl1_SKILL2_BUFF",t[t.BatSl1_SKILL3_BUFF=170]="BatSl1_SKILL3_BUFF",t[t.BatSl1_SKILL4_BUFF=171]="BatSl1_SKILL4_BUFF",t[t.BatSl1_ROSTER_BUFF=172]="BatSl1_ROSTER_BUFF",t[t.SkullSl1_SKILL2_BUFF=173]="SkullSl1_SKILL2_BUFF",t[t.SkullSl1_ROSTER_BUFF=174]="SkullSl1_ROSTER_BUFF",t[t.Bomber1_ATKSPD_BUFF=200]="Bomber1_ATKSPD_BUFF",t[t.Bomber1_MOVESPD_BUFF=201]="Bomber1_MOVESPD_BUFF",t[t.TigerRider1_ATKSPD_BUFF=210]="TigerRider1_ATKSPD_BUFF",t[t.TigerRider1_MOVESPD_BUFF=211]="TigerRider1_MOVESPD_BUFF",t[t.Sylphid1_ATKSPD_STACK=220]="Sylphid1_ATKSPD_STACK",t[t.WyvernRider1_ATKSPD_BUFF=230]="WyvernRider1_ATKSPD_BUFF",t[t.WyvernRider1_MOVESPD_BUFF=231]="WyvernRider1_MOVESPD_BUFF",t[t.WyvernRider1_ATKDMG_BUFF=232]="WyvernRider1_ATKDMG_BUFF",t[t.WingKnight1_FLASH_BUFF=240]="WingKnight1_FLASH_BUFF",t[t.WingKnight1_DASH_BUFF=241]="WingKnight1_DASH_BUFF",t[t.WingKnight1_BERSERK_ATKSPD=242]="WingKnight1_BERSERK_ATKSPD",t[t.WingKnight1_BERSERK_ATKDMG=243]="WingKnight1_BERSERK_ATKDMG",t[t.WingKnight1_FLASH_MOVSPD=244]="WingKnight1_FLASH_MOVSPD",t[t.WingKnight1_FLASH_ATKSPD=245]="WingKnight1_FLASH_ATKSPD",t[t.BladeMaster1_KILL_ATKSPD=250]="BladeMaster1_KILL_ATKSPD",t[t.BladeMaster1_KILL_ATKDMG=251]="BladeMaster1_KILL_ATKDMG",t[t.BladeMaster1_RANGE_ATKSPD=252]="BladeMaster1_RANGE_ATKSPD",t[t.BladeMaster1_MELEE_MOVESPD=253]="BladeMaster1_MELEE_MOVESPD",t[t.BladeMaster1_MELEE_ATKDMG=254]="BladeMaster1_MELEE_ATKDMG",t[t.BladeMaster1_RUSH_ATKSPD=255]="BladeMaster1_RUSH_ATKSPD",t[t.BladeMaster1_RUSH_MOVESPD=256]="BladeMaster1_RUSH_MOVESPD",t[t.BladeMaster1_BLINK_MOVESPD=257]="BladeMaster1_BLINK_MOVESPD",t[t.Aladin1_SAND_SLOW=260]="Aladin1_SAND_SLOW",t[t.Aladin1_BLESSING_ATKDMG=261]="Aladin1_BLESSING_ATKDMG",t[t.Druid1_VINE_ATKDMG=270]="Druid1_VINE_ATKDMG",t[t.Druid1_VINE_DEFENSE=271]="Druid1_VINE_DEFENSE",t[t.Druid1_VINE_ATKSPD=272]="Druid1_VINE_ATKSPD",t[t.CrowKnight1_ORBIT_ATKSPD=280]="CrowKnight1_ORBIT_ATKSPD",t[t.CrowKnight1_ORBIT_ATKDMG=281]="CrowKnight1_ORBIT_ATKDMG",t[t.Succubus2_CHARM_ATKSPD=290]="Succubus2_CHARM_ATKSPD",t[t.Succubus2_CHARM_MOVSPD=291]="Succubus2_CHARM_MOVSPD",t[t.FireSpirit1_JUGGLE_ATKSPD=292]="FireSpirit1_JUGGLE_ATKSPD",t[t.RaidEmblemRogue_ACTIVE_ATKSPD=300]="RaidEmblemRogue_ACTIVE_ATKSPD",t[t.RaidEmblemRogue_ACTIVE_ATKDMG=301]="RaidEmblemRogue_ACTIVE_ATKDMG",t[t.RaidEmblemMage_BOSS_ATKSPD=302]="RaidEmblemMage_BOSS_ATKSPD",t[t.RaidEmblemMage_BOSS_DEFENSE=303]="RaidEmblemMage_BOSS_DEFENSE",t[t.RaidWeakpoint_BOSS_DEFENSE=304]="RaidWeakpoint_BOSS_DEFENSE",t[t.RaidWeakpoint_BOSS_ATKSPD=305]="RaidWeakpoint_BOSS_ATKSPD",t[t.RaidWeakpoint_BOSS_MOVESPD=306]="RaidWeakpoint_BOSS_MOVESPD",t[t.RaidRune_ACTIVE_ATKSPD=310]="RaidRune_ACTIVE_ATKSPD",t[t.RaidRune_ACTIVE_ATKDMG=311]="RaidRune_ACTIVE_ATKDMG",t[t.RaidRune_PULSE_ATKDMG=312]="RaidRune_PULSE_ATKDMG",t[t.RaidRune_PULSE_ATKSPD=313]="RaidRune_PULSE_ATKSPD",t[t.RaidRune_PULSE_DEFENSE=314]="RaidRune_PULSE_DEFENSE",t[t.RaidRune_ALLOUT_ATKDMG=315]="RaidRune_ALLOUT_ATKDMG",t[t.RaidRune_ALLOUT_ATKSPD=316]="RaidRune_ALLOUT_ATKSPD",t[t.RaidRune_ACTIVE_CRIT=317]="RaidRune_ACTIVE_CRIT",t[t.RaidRune_BOSS_ATKSPD=320]="RaidRune_BOSS_ATKSPD",t[t.RaidRune_BOSS_DEFENSE=321]="RaidRune_BOSS_DEFENSE",t[t.RaidRune_BOSS_ATKDMG=322]="RaidRune_BOSS_ATKDMG",t[t.RaidRune_ARROW_DEFENSE=323]="RaidRune_ARROW_DEFENSE",t[t.RaidRune_COMBO_DEFENSE=324]="RaidRune_COMBO_DEFENSE",t[t.BURN_DEBUFF=1001]="BURN_DEBUFF",t[t.BLOODY_DEBUFF=1002]="BLOODY_DEBUFF",t[t.RACE_ROLETYPE_MOVE_SPEED_DEBUFF=1003]="RACE_ROLETYPE_MOVE_SPEED_DEBUFF",t[t.RACE_ROLETYPE_DAMAGE_DEBUFF=1004]="RACE_ROLETYPE_DAMAGE_DEBUFF",t[t.EXCAVATION_CRITICALHIT_DEFENSE_DEBUFF=1005]="EXCAVATION_CRITICALHIT_DEFENSE_DEBUFF",t[t.RACE_MAPTYPE2_DEBUFF=1006]="RACE_MAPTYPE2_DEBUFF",t[t.TidecallerSl1_SKILL2_DEBUFF=1007]="TidecallerSl1_SKILL2_DEBUFF",t[t.RAID_BOSS1_DEBUFF=1008]="RAID_BOSS1_DEBUFF",t[t.MOSSGOLEM_DEFENSE_BUFF=1009]="MOSSGOLEM_DEFENSE_BUFF",t[t.WarpLanding_ATTACKSPEED_BUFF=1100]="WarpLanding_ATTACKSPEED_BUFF",t[t.EXTRA_ATTACK_PARALYSIS=1201]="EXTRA_ATTACK_PARALYSIS",t[t.EXTRA_ATTACK_CHILL=1202]="EXTRA_ATTACK_CHILL",t[t.EXTRA_ATTACK_POISON=1203]="EXTRA_ATTACK_POISON",t))(GZ||{
AladinGenieBoomerang 1 hunks, 1 statements
- s>0&&this.owner.doDamage(i,s,!0)} + s>0&&this.owner.doDamage(i,s,!0,this.skillAttackEffectSource)}
Err 1 hunks, 1 statements
- const A=n.concatBytes(...E),T=_; + const y=n.concatBytes(...A),T=_;
Sr 1 hunks, 1 statements
- ...t,...Ost(i)} + ...t,...Pst(i)}
Dr 1 hunks, 1 statements
- Xt(iet,"Dr"),Wst.ghash=iet((t,i)=>new Qst(t,i)),Wst.polyval=iet((t,i)=>new tet(t,i)),Object.defineProperty($st,"__esModule",{ + 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",{
Fr 1 hunks, 1 statements
- const set=C9,eet=Wst,net=T9,het=16,ret=new Uint8Array(het); + const ret=R9,oet=zst,aet=k9,cet=16,uet=new Uint8Array(cet);
Ma 1 hunks, 1 statements
- ...$rt,coercer:Xt((t,i)=>trt(t,Wrt)?$rt.coercer(jrt(t,i),i):$rt.coercer(t,i),"coercer")} + ...Krt,coercer:qt((t,i)=>nrt(t,zrt)?Krt.coercer(Yrt(t,i),i):Krt.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,...Apt(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,...Ipt(381,0),44,0,0,0,0,...i,0,7],h=Math.floor(s.length/e);
SuiStandardProvider 1 hunks, 1 statements
- namespace:Lyt.NameSpaceKeyEip155,addresses:i,methods:[...Byt.Eip55Methods],extra:s} + namespace:UMt.NameSpaceKeyEip155,addresses:i,methods:[...$Mt.Eip55Methods],extra:s}
AppReadyEvent 1 hunks, 1 statements
- return rAt||(rAt=[...tAt]),rAt} + return lyt||(lyt=[...nyt]),lyt}
SolProvider 1 hunks, 1 statements
- namespace:uTt.NameSpaceKeySOL,addresses:i,methods:[...gTt.SOLANAMethods],extra:s} + namespace:gTt.NameSpaceKeySOL,addresses:i,methods:[..._Tt.SOLANAMethods],extra:s}
OkxwalletInjectConnector 1 hunks, 1 statements
- namespace:WTt.NameSpaceKeyBtc,addresses:i,methods:[...VTt.BtcMethods],extra:s} + namespace:zTt.NameSpaceKeyBtc,addresses:i,methods:[...qTt.BtcMethods],extra:s}
TcRootElement 1 hunks, 1 statements
- return UGt()||(t.push(new igt.OKXAppConnector),t.push(new igt.OKXWalletAppConnector)),GGt()&&t.push(new igt.OkxwalletInjectConnector),t.push(...HGt()),t} + return WGt()||(t.push(new hgt.OKXAppConnector),t.push(new hgt.OKXWalletAppConnector)),HGt()&&t.push(new hgt.OkxwalletInjectConnector),t.push(...jGt()),t}
BuffStatusPopup 1 hunks, 1 statements
- if(n)if(t=[...Ux.getInstance().getContributors(o)],o===Gx.GodBless){ + if(n)if(t=[...UR.getInstance().getContributors(o)],o===GR.GodBless){
TreasureSubView 1 hunks, 1 statements
- const t=[...Jx.getInstance().equipedList]; + const t=[...JR.getInstance().equipedList];
TopMenu 1 hunks, 1 statements
- super(),Yt(this,"bg",new TD),Yt(this,"lblDay",new AD("Wave 1",65433,IL.DEFAULT_OUTLINE_FONT_OPTION_20)),Yt(this,"waveBar",new Bci),Yt(this,"lblWaveSkip",null),Yt(this,"btnRevive",new tU("UI_Ekkorr","UI_REVIVE_ICON")),Yt(this,"lblMedalEvent",new AD("+00%\n3/3",65433,IL.DEFAULT_OUTLINE_FONT_OPTION_16)),Yt(this,"btnMedalEvent",new tU("UI_Ekkorr","UI_Question",1)),Yt(this,"lblSpeed",new MU("UI_SPEED_ICON2")),Yt(this,"heartInfo",$oi.getInstance()),Yt(this,"profile",eF.getInstance()),Yt(this,"btnHeroPresent",new tU("UI_Ekkorr","Hero55",.9)),Yt(this,"btnStampCalendar",new tU("UI_Ekkorr","stamp30",.54)),Yt(this,"heroPresentBaseH",0),Yt(this,"stampBaseH",0),Yt(this,"count",0),Yt(this,"stampUtcDay",-1),Yt(this,"speedActive",!1),Yt(this,"userSpeedMode",null),Yt(this,"_height",40),this.bg.setIndex(6),this.bg.width=640,this.bg.height=40,this.bg.alpha=.1,this.lblDay.textColor=43622,this.lblDay.x=.5*(this.bg.width-this.lblDay.width),this.lblDay.y=.5*(this.bg.height-this.lblDay.height),this.addChild(this.lblDay),this.lblDay.text="Wave 1",this.waveBar.x=.5*(640-this.waveBar.width),this.waveBar.y=35,this.addChild(this.waveBar),this.waveBar.x=.5*(640-this.waveBar.width),this.waveBar.y=35,this.addChild(this.waveBar),this.profile.x=4,this.profile.y=4,this.addChild(this.profile),this.btnRevive.x=1,this.btnRevive.y=this.profile.y+this.profile.height-10,this.addChild(this.btnRevive),this.btnRevive.on("pointerdown",()=>{ + super(),Xt(this,"bg",new TD),Xt(this,"lblDay",new yD("Wave 1",65433,IL.DEFAULT_OUTLINE_FONT_OPTION_20)),Xt(this,"waveBar",new Kci),Xt(this,"lblWaveSkip",null),Xt(this,"btnRevive",new tU("UI_Ekkorr","UI_REVIVE_ICON")),Xt(this,"lblMedalEvent",new yD("+00%\n3/3",65433,IL.DEFAULT_OUTLINE_FONT_OPTION_16)),Xt(this,"btnMedalEvent",new tU("UI_Ekkorr","UI_Question",1)),Xt(this,"lblSpeed",new EU("UI_SPEED_ICON2")),Xt(this,"heartInfo",tai.getInstance()),Xt(this,"profile",oF.getInstance()),Xt(this,"btnHeroPresent",new tU("UI_Ekkorr","Hero55",.9)),Xt(this,"btnStampCalendar",new tU("UI_Ekkorr","stamp30")),Xt(this,"heroPresentBaseH",0),Xt(this,"stampBaseH",0),Xt(this,"count",0),Xt(this,"stampUtcDay",-1),Xt(this,"speedActive",!1),Xt(this,"userSpeedMode",null),Xt(this,"_height",40),this.bg.setIndex(6),this.bg.width=640,this.bg.height=40,this.bg.alpha=.1,this.lblDay.textColor=43622,this.lblDay.x=.5*(this.bg.width-this.lblDay.width),this.lblDay.y=.5*(this.bg.height-this.lblDay.height),this.addChild(this.lblDay),this.lblDay.text="Wave 1",this.waveBar.x=.5*(640-this.waveBar.width),this.waveBar.y=35,this.addChild(this.waveBar),this.waveBar.x=.5*(640-this.waveBar.width),this.waveBar.y=35,this.addChild(this.waveBar),this.profile.x=4,this.profile.y=4,this.addChild(this.profile),this.btnRevive.x=1,this.btnRevive.y=this.profile.y+this.profile.height-10,this.addChild(this.btnRevive),this.btnRevive.on("pointerdown",()=>{
ConquestDataManager 1 hunks, 1 statements
- __proto__:null,MiniAscentLobbyPopup:Bvi} + __proto__:null,MiniAscentFlow:v_i}
Delay 1 hunks, 1 statements
- ...QEi(),[i]:s} + ...Uyi(),[i]:s}
NetworkTimeout 1 hunks, 1 statements
- ...yAi,...i} + ...cSi,...i}
RecaptchaVerifier 1 hunks, 1 statements
- ...eOi} + ...VOi}
BrowserPopupRedirectResolver 1 hunks, 1 statements
- ...oki,width:e.toString(),height:n.toString(),top:h,left:r} + ...Yki,width:e.toString(),height:n.toString(),top:h,left:r}


