Builds / 1.15.32
Update 1.15.32
Compared with 1.15.31 · published Thu, 08 Oct 2026 08:54:29 GMT · live channel
No summary yet.
Text changes 15
| Key | Text | |
|---|---|---|
| GAME_1923 | + | Fire Aura |
| GAME_1924 | + | Game Speed -{0}% |
| GAME_1925 | + | The Fire Aura lowers game speed by {1}% every {0} waves. |
| GAME_1926 | + | From wave {0}: -{1}% |
| GAME_1927 | + | Damage Ranking |
| GAME_1928 | + | ## Win Streak |
| GAME_1929 | + | Buy @@ Infinite Ranking tickets for ## gems? |
| DIALOGUE_TEXT_88 | ~ |
|
| DIALOGUE_TEXT_93 | ~ |
|
| DIALOGUE_TEXT_94 | ~ |
|
| GAME_1918 | ~ |
|
| RANKING_HIDE_TEAM | − |
|
| RANKING_TEAM_HIDDEN | − |
|
| RANKING_TEAM_LOAD_FAILED | − |
|
| RANKING_PRIVACY_SAVE_FAILED | − |
|
Translations touched: de (15), es (15), fr (15), id (15), it (15), ja (15), ko (14), pl (15), pt (15), ru (15), th (15), tr (15), vi (15), zh-CN (15), zh-TW (15)
Code 37 changes in 19 classes
Minified client code with short names blanked for diffing. Class names are real.
- PVP2BattleController 27
- FishingDataManager 6
- FishingAvatarMaker 5
- PVP2ReadyPopup 4
- MiniAscentAssets 3
- FishingFog 2
- FishingTravelFx 2
- VersionManager 1
- PVPResultPopup 1
- PVPBattleStatus 1
- PVPBattleSubView 1
- FishingService 1
- AvatarFront 1
- FishingTankPage 1
- FishingMyBoatView 1
- Delay 1
- NetworkTimeout 1
- RecaptchaVerifier 1
- BrowserPopupRedirectResolver 1
PVP2BattleController 6 hunks, 27 statements
+ function M7t(t,i,s){ + return new Promise(e=>{ + let n,h=!1; + const r=Qt((t,i)=>{ + h||(h=!0,void 0!==n&&clearTimeout(n),t&&(null==s||s(t,i)),e())} + ,"finish"); + n=setTimeout(()=>r("timeout"),i); + try{ + Promise.resolve(t()).then(()=>r(),t=>r("error",t))} + catch(ort){ + r("error",ort)} + } + )} + Qt(M7t,"settleWithin");
- super(),Zt(this,"battleType",v$.PVP2),Zt(this,"PVP_TIME_LIMIT_FRAMES",3600),Zt(this,"pvpStarted",!1),Zt(this,"speedHelper",new y0t("ef2.pvp2.battleSpeed")),Zt(this,"timerText",null),Zt(this,"hpGauge",new f7t),Zt(this,"introBanner",new g7t),Zt(this,"arena",new _7t),Zt(this,"savedView",null),Zt(this,"allyRoster",[]),Zt(this,"enemyRoster",[]),Zt(this,"spawnedVOs",[]),Zt(this,"pvpTeamVOs",[]),Zt(this,"opTransPoints",null),this.unitScale=t.UNIT_SCALE} + super(),Zt(this,"battleType",v$.PVP2),Zt(this,"PVP_TIME_LIMIT_FRAMES",3600),Zt(this,"pvpStarted",!1),Zt(this,"startToken",0),Zt(this,"speedHelper",new y0t("ef2.pvp2.battleSpeed")),Zt(this,"timerText",null),Zt(this,"hpGauge",new f7t),Zt(this,"introBanner",new g7t),Zt(this,"arena",new _7t),Zt(this,"savedView",null),Zt(this,"allyRoster",[]),Zt(this,"enemyRoster",[]),Zt(this,"spawnedVOs",[]),Zt(this,"pvpTeamVOs",[]),Zt(this,"opTransPoints",null),this.unitScale=t.UNIT_SCALE}
- this.cleanup(),this.opTransPoints=h,kP.getInstance().setBattleContext(wP.Pvp),EF.getInstance().setDay(),this.battleEnded=!1,this.battleResult=null,this.battleTime=0,this.killCount=0; + this.cleanup(); + const a=this.startToken; + this.opTransPoints=r,kP.getInstance().setBattleContext(wP.Pvp),EF.getInstance().setDay(),this.battleEnded=!1,this.battleResult=null,this.battleTime=0,this.killCount=0;
- await this.setupAllies(),await this.setupEnemies(s,e,n),this.setupEnemyLists(),this.createTimerUI(),Rui.getInstance().switchToBattle(this),Ydi.zoomEnabled=!1,this.applyZoom(),iU.getInstance().remove(this.execute,this),await this.arena.show((null==r?void 0:r.grade)??1),r?await this.introBanner.play(u7t.getInstance(),r.ally,r.enemy):await CU.getInstance().play(),this.pvpStarted=!0,iU.getInstance().add(this.execute,this)} + await this.setupAllies(),await this.setupEnemies(e,n,h),this.setupEnemyLists(),this.createTimerUI(),xui.getInstance().switchToBattle(this),qdi.zoomEnabled=!1,this.applyZoom(),iU.getInstance().remove(this.execute,this),await M7t(()=>this.arena.show((null==o?void 0:o.grade)??1),t.ARENA_WAIT_MS,(t,i)=>{ + } + ),a===this.startToken&&(o?await M7t(()=>this.introBanner.play(u7t.getInstance(),o.ally,o.enemy),t.INTRO_WAIT_MS,(t,i)=>{ + this.introBanner.stop()} + ):await M7t(()=>CU.getInstance().play(),t.COUNTDOWN_WAIT_MS,(t,i)=>{ + } + ),a===this.startToken&&(this.pvpStarted=!0,iU.getInstance().add(this.execute,this)))}
- kP.getInstance().setBattleContext(wP.Normal),this.speedHelper.detachButton(),this.speedHelper.exit(),this.removeTimerUI(),this.introBanner.stop(),this.arena.clear(),this.pvpStarted=!1,this.opTransPoints=null,this.allyRoster.length=0,this.enemyRoster.length=0; + kP.getInstance().setBattleContext(wP.Normal),this.speedHelper.detachButton(),this.speedHelper.exit(),this.startToken++,this.removeTimerUI(),this.introBanner.stop(),this.arena.clear(),this.pvpStarted=!1,this.opTransPoints=null,this.allyRoster.length=0,this.enemyRoster.length=0;
- Qt(M7t,"PVP2BattleController"),Zt(M7t,"instance"),Zt(M7t,"TIMER_STYLE",new qg({ + Qt(b7t,"PVP2BattleController"),Zt(b7t,"instance"),Zt(b7t,"ARENA_WAIT_MS",5e3),Zt(b7t,"INTRO_WAIT_MS",4500),Zt(b7t,"COUNTDOWN_WAIT_MS",6e3),Zt(b7t,"TIMER_STYLE",new qg({
FishingDataManager 6 hunks, 6 statements
- ...NOi(t,i,Math.floor(s/OOi.EVERY_MS)),w:e,at:s,end:s+OOi.DUR_MS} + ...LOi(t,i,Math.floor(s/IOi.EVERY_MS)),w:e,at:s,end:s+IOi.DUR_MS}
- const n=[[t,i],...uSi.flatMap(t=>dSi.map(i=>[t,i])).filter(([s,e])=>s!==t||e!==i)]; + const n=[[t,i],...dSi.flatMap(t=>fSi.map(i=>[t,i])).filter(([s,e])=>s!==t||e!==i)];
- return[...LTi.map((s,e)=>({ + return[...DTi.map((s,e)=>({
- )),...DTi.map((i,s)=>({ + )),...GTi.map((i,s)=>({
- )),...GTi.map((i,s)=>{ + )),...BTi.map((i,s)=>{
- for(const i of"tut"===t?["tut",...BCi]:[t])this.seenTips.add(i); + for(const i of"tut"===t?["tut",...UCi]:[t])this.seenTips.add(i);
FishingAvatarMaker 5 hunks, 5 statements
- ...gOi} + ...wOi}
- ...gOi,skin:0,hair:0,hairColor:0,feats:[]} + ...wOi,skin:0,hair:0,hairColor:0,feats:[]}
- ...gOi} + ...wOi}
- ...gOi,race:i,sex:1,skin:0,hair:0,hairColor:aOi[i],feats:[]} + ...wOi,race:i,sex:1,skin:0,hair:0,hairColor:cOi[i],feats:[]}
- ...gOi,race:this.draft.race,sex:i,skin:0,hair:0,hairColor:this.draft.hairColor,feats:[]} + ...wOi,race:this.draft.race,sex:i,skin:0,hair:0,hairColor:this.draft.hairColor,feats:[]}
PVP2ReadyPopup 2 hunks, 4 statements
- const t=Math.floor(this.opInfo.maxWave/100); - b7t.getInstance().startMarchBattle([...this.teamKindNums],[...this.teamTrans],this.opKindNums,this.opTrans,t,this.opInfo.transPoints??null,{ + const t=Math.floor(this.opInfo.maxWave/100),i=y7t.getInstance(); + i.startMarchBattle([...this.teamKindNums],[...this.teamTrans],this.opKindNums,this.opTrans,t,this.opInfo.transPoints??null,{
+ ).catch(t=>{ + xui.getInstance().getCurrentBattle()===i&&xui.getInstance().returnToIdleBattle(),bB.getInstance().show(RB.getText("COMMON_76","오류가 발생하였습니다."))}
MiniAscentAssets 3 hunks, 3 statements
- return[XMi,...qMi[t]??["ui_challenge_seal"],JMi]} + return[JMi,...XMi[t]??["ui_challenge_seal"],QMi]}
- ,hbi=[ibi,"crystal_effect_plate",...sbi,...ebi,...Object.values(nbi)],rbi=class{ + ,rbi=[sbi,"crystal_effect_plate",...ebi,...nbi,...Object.values(hbi)],obi=class{
- for(const h of["background_map","chapter_journey","encounter_battle","encounter_elite","encounter_boss","encounter_event","encounter_shop","encounter_gambling","ui_arrow_up","ui_button_lobby_blank","ui_close","ui_coin","ui_energy","ui_challenge_seal","ui_divider","UI_VS","UI_Check1","UI_Check2",...QMi,...hbi])if(!n.textures[h])throw new Error(`UI_MINI: missing ${ + for(const h of["background_map","chapter_journey","encounter_battle","encounter_elite","encounter_boss","encounter_event","encounter_shop","encounter_gambling","ui_arrow_up","ui_button_lobby_blank","ui_close","ui_coin","ui_energy","ui_challenge_seal","ui_divider","UI_VS","UI_Check1","UI_Check2",...ZMi,...rbi])if(!n.textures[h])throw new Error(`UI_MINI: missing ${
FishingFog 1 hunks, 2 statements
- return[...$Ai[i],{ - ...HAi[t],dmg:WAi[i],w:1} + return[...HAi[i],{ + ...WAi[t],dmg:VAi[i],w:1}
FishingTravelFx 2 hunks, 2 statements
- const i=[...IRi[t]],s={ + const i=[...kRi[t]],s={
- return s.R=i.push(e(t,"R"))-1,i.push(...kRi[t]),s.C=i.push(e(t,"C"))-1,s.O=i.push(e(t,"O"))-1,{ + return s.R=i.push(e(t,"R"))-1,i.push(...RRi[t]),s.C=i.push(e(t,"C"))-1,s.O=i.push(e(t,"O"))-1,{
VersionManager 1 hunks, 1 statements
- Qt(AS,"VersionManager"),Zt(AS,"gameId","ef2"),Zt(AS,"appVersion","1.15.31"); + Qt(AS,"VersionManager"),Zt(AS,"gameId","ef2"),Zt(AS,"appVersion","1.15.32");
PVPResultPopup 1 hunks, 1 statements
- `:h<0?"▼"+-h:"-"),this.rowStreak.lblName.text="",this.rowStreak.lblValue.text=RB.getText("GAME_1888","##연승").replace("##",String(t.winStreak)),this.rowStreak.lblValue.textColor=sD.COLOR_BRIGHT_ORANGE,this.rowStreak.lblDelta.text=""} + `:h<0?"▼"+-h:"-"),this.rowStreak.lblName.text="",this.rowStreak.lblValue.text=RB.getText("GAME_1928","##연승").replace("##",String(t.winStreak)),this.rowStreak.lblValue.textColor=sD.COLOR_BRIGHT_ORANGE,this.rowStreak.lblDelta.text=""}
PVPBattleStatus 1 hunks, 1 statements
- RB.getText("GAME_1889","피해량 순위")} + RB.getText("GAME_1927","피해량 순위")}
PVPBattleSubView 1 hunks, 1 statements
- let s=RB.getText("GAME_1890","##보석을 소모하여 무한 랭킹전 티켓을 @@장 구매하시겠습니까?"); + let s=RB.getText("GAME_1929","##보석을 소모하여 무한 랭킹전 티켓을 @@장 구매하시겠습니까?");
FishingService 1 hunks, 1 statements
- ...tCi[i],npc:e} + ...iCi[i],npc:e}
AvatarFront 1 hunks, 1 statements
- const i=(new ip).poly([...Nki[t.race][t.sex]]).fill(16119285).stroke({ + const i=(new ip).poly([...Lki[t.race][t.sex]]).fill(16119285).stroke({
FishingTankPage 1 hunks, 1 statements
- super(),Zt(this,"tabId","tank"),Zt(this,"view","net"),Zt(this,"scrollInShell",!1),Zt(this,"netLayer",new Ve),Zt(this,"capBg",new ip),Zt(this,"capNum",rki("",KIi,26)),Zt(this,"capOf",rki("",zIi,15)),Zt(this,"gradeCounts",[]),Zt(this,"capBar",new ip),Zt(this,"capNote",rki("도둑이 어망에 줄을 걸었어요. 줄을 끊어야 팔 수 있어요",XIi,13,!1)),Zt(this,"sellBtn",new pki("팔기",132,52,18)),Zt(this,"sellGlow",new ip),Zt(this,"glowTween",null),Zt(this,"cutBtn",new pki("줄 끊기",132,52,16)),Zt(this,"netEmpty",rki("어망이 비었어요. 잡은 물고기는 모두 여기에 담겨요.",YIi,14,!1)),Zt(this,"netList",new TR(hxi,QRi,400,0)),Zt(this,"detail",new Ve),Zt(this,"card",null),Zt(this,"sheet",new Ve),Zt(this,"sheetOpen",!1),Zt(this,"sheetBg",new ip),Zt(this,"sheetBack",new Ve),Zt(this,"sheetTitle",rki("물고기 팔기",KIi,20)),Zt(this,"allChip",new dki("모두 고르기",150,40,14)),Zt(this,"starLb",rki("별",zIi,14)),Zt(this,"sizeLb",rki("크기",zIi,14)),Zt(this,"sizeNote",rki("특대·왕은 눌러서만",YIi,12,!1)),Zt(this,"starChips",lxi.map(t=>new dki(t.text,120,38,15))),Zt(this,"sizeChips",uxi.map(t=>new dki(t.text,120,38,15))),Zt(this,"sellList",new TR(hxi,QRi,300,0)),Zt(this,"barBg",new ip),Zt(this,"barN",rki("",zIi,15)),Zt(this,"barCoin",_ki("gold",24)),Zt(this,"barGold",rki("",VIi,24)),Zt(this,"barEmpty",rki("",zIi,17)),Zt(this,"barEmptySub",rki("위 칩으로 한꺼번에 · 눌러서 하나씩",YIi,13,!1)),Zt(this,"barSell",new pki("팔기",200,60,19)),Zt(this,"pickStar",0),Zt(this,"pickSize",-1),Zt(this,"pickAll",!1),Zt(this,"pickAdd",new Set),Zt(this,"pickDel",new Set),Zt(this,"selling",!1),Zt(this,"confirm",new Ve),Zt(this,"aqLayer",new Ve),Zt(this,"dexLayer",new Ve),Zt(this,"raceChips",["전체",...uSi].map(t=>new dki(t,108,36,14))),Zt(this,"zoneChips",["전체",...dSi.map(t=>pSi[t])].map(t=>new dki(t,130,36,14))),Zt(this,"dexKnownLb",rki("잡은 종",zIi,14)),Zt(this,"dexProgress",rki("",KIi,16)),Zt(this,"dexBar",new ip),Zt(this,"dexList",new TR(axi,QRi,300,0)),Zt(this,"raceFilter","전체"),Zt(this,"zoneFilter","전체"),Zt(this,"selected",0),Zt(this,"lastSig",""),this.capBg.eventMode=this.capBar.eventMode=this.sellGlow.eventMode="none",this.capNum.position.set(18,10),this.capNote.position.set(18,48),this.netLayer.addChild(this.capBg,this.capNum,this.capOf,this.capBar,this.capNote),[3,2,1,0].forEach(t=>{ + super(),Zt(this,"tabId","tank"),Zt(this,"view","net"),Zt(this,"scrollInShell",!1),Zt(this,"netLayer",new Ve),Zt(this,"capBg",new ip),Zt(this,"capNum",oki("",zIi,26)),Zt(this,"capOf",oki("",YIi,15)),Zt(this,"gradeCounts",[]),Zt(this,"capBar",new ip),Zt(this,"capNote",oki("도둑이 어망에 줄을 걸었어요. 줄을 끊어야 팔 수 있어요",JIi,13,!1)),Zt(this,"sellBtn",new gki("팔기",132,52,18)),Zt(this,"sellGlow",new ip),Zt(this,"glowTween",null),Zt(this,"cutBtn",new gki("줄 끊기",132,52,16)),Zt(this,"netEmpty",oki("어망이 비었어요. 잡은 물고기는 모두 여기에 담겨요.",qIi,14,!1)),Zt(this,"netList",new TR(rxi,ZRi,400,0)),Zt(this,"detail",new Ve),Zt(this,"card",null),Zt(this,"sheet",new Ve),Zt(this,"sheetOpen",!1),Zt(this,"sheetBg",new ip),Zt(this,"sheetBack",new Ve),Zt(this,"sheetTitle",oki("물고기 팔기",zIi,20)),Zt(this,"allChip",new fki("모두 고르기",150,40,14)),Zt(this,"starLb",oki("별",YIi,14)),Zt(this,"sizeLb",oki("크기",YIi,14)),Zt(this,"sizeNote",oki("특대·왕은 눌러서만",qIi,12,!1)),Zt(this,"starChips",uxi.map(t=>new fki(t.text,120,38,15))),Zt(this,"sizeChips",dxi.map(t=>new fki(t.text,120,38,15))),Zt(this,"sellList",new TR(rxi,ZRi,300,0)),Zt(this,"barBg",new ip),Zt(this,"barN",oki("",YIi,15)),Zt(this,"barCoin",Mki("gold",24)),Zt(this,"barGold",oki("",jIi,24)),Zt(this,"barEmpty",oki("",YIi,17)),Zt(this,"barEmptySub",oki("위 칩으로 한꺼번에 · 눌러서 하나씩",qIi,13,!1)),Zt(this,"barSell",new gki("팔기",200,60,19)),Zt(this,"pickStar",0),Zt(this,"pickSize",-1),Zt(this,"pickAll",!1),Zt(this,"pickAdd",new Set),Zt(this,"pickDel",new Set),Zt(this,"selling",!1),Zt(this,"confirm",new Ve),Zt(this,"aqLayer",new Ve),Zt(this,"dexLayer",new Ve),Zt(this,"raceChips",["전체",...dSi].map(t=>new fki(t,108,36,14))),Zt(this,"zoneChips",["전체",...fSi.map(t=>gSi[t])].map(t=>new fki(t,130,36,14))),Zt(this,"dexKnownLb",oki("잡은 종",YIi,14)),Zt(this,"dexProgress",oki("",zIi,16)),Zt(this,"dexBar",new ip),Zt(this,"dexList",new TR(cxi,ZRi,300,0)),Zt(this,"raceFilter","전체"),Zt(this,"zoneFilter","전체"),Zt(this,"selected",0),Zt(this,"lastSig",""),this.capBg.eventMode=this.capBar.eventMode=this.sellGlow.eventMode="none",this.capNum.position.set(18,10),this.capNote.position.set(18,48),this.netLayer.addChild(this.capBg,this.capNum,this.capOf,this.capBar,this.capNote),[3,2,1,0].forEach(t=>{
FishingMyBoatView 1 hunks, 1 statements
- const v=t.gearStats(),_=[...NBi,...gAi.filter(t=>!NBi.includes(t))].filter(t=>v[t]>0),M=_.slice(0,3),b=_.slice(3); + const v=t.gearStats(),_=[...LBi,...wAi.filter(t=>!LBi.includes(t))].filter(t=>v[t]>0),M=_.slice(0,3),b=_.slice(3);
Delay 1 hunks, 1 statements
- ...mWi(),[i]:s} + ...vWi(),[i]:s}
NetworkTimeout 1 hunks, 1 statements
- ...$Wi,...i} + ...HWi,...i}
RecaptchaVerifier 1 hunks, 1 statements
- ...yYi} + ...EYi}
BrowserPopupRedirectResolver 1 hunks, 1 statements
- ...Tqi,width:e.toString(),height:n.toString(),top:h,left:r} + ...Cqi,width:e.toString(),height:n.toString(),top:h,left:r}