EF2 Changelog

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

KeyText
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 ~ The Fossil Excavation event lasts for one month.The Fossil Excavation event is seasonal.
GAME_1209 ~ When the event ends, all completed stages will be reset.At the end of the season, all progress stages will be reset, and any unused hammers will carry over to the next season.

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

Assets 9

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

New sprites: Btn_Event, Btn_MiniGame

assets/ekkorr/UI_Ekkorr.ktx2 changed 2,088.1 KB → 2,082.8 KB
assets/ekkorr/UI_Ekkorr.png added 5,050.7 KB after
assets/images/UI_MINI.json added 12.2 KB

New sprites: UI_Check1, UI_Check2, UI_VS, army_layer_buff_attack_power, army_layer_buff_attack_range, army_layer_buff_health, background_map, crystal_bg_epic, crystal_bg_legendary, crystal_bg_mythic, crystal_bg_normal, crystal_bg_rare, crystal_effect_attack, crystal_effect_attack_speed, crystal_effect_capacity, crystal_effect_chill, crystal_effect_health, crystal_effect_mana, crystal_effect_move_speed, crystal_effect_paralysis, crystal_effect_plate, crystal_effect_poison, crystal_effect_promotion, crystal_effect_range, crystal_effect_stun, crystal_gem, crystal_stars_1, crystal_stars_2, crystal_stars_3, crystal_stars_4, crystal_stars_5, encounter_bandit, encounter_battle, encounter_boss, encounter_elite, encounter_event, encounter_gambling, encounter_shop, relic_layer_all_legions, relic_layer_background, relic_layer_buff_attack_speed, relic_layer_buff_count_up, relic_layer_buff_level_up, relic_layer_buff_move_speed, relic_layer_hero, relic_layer_legion_tag, relic_layer_soldiers, ui_arrow_up, ui_button_lobby_blank, ui_challenge_seal, ui_close, ui_coin, ui_divider, ui_energy

assets/images/UI_MINI.ktx2 added 429.1 KB
assets/images/UI_MINI.png added 775.3 KB after
assets/images/UI_PET.json changed 39.5 KB → 39.5 KB

New sprites: UI_PET1014

Removed sprites: UI_PET10001

assets/images/UI_PET.ktx2 changed 633.2 KB → 647.1 KB
assets/images/mini-ascent-chapter-journey.png added 1,669.7 KB after

Code 286 changes in 93 classes

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

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}