Builds / 1.11.73
Update 1.11.73
Compared with 1.11.59 · published Tue, 30 Jun 2026 11:20:16 GMT · live channel
No summary yet.
Text changes 18
| Key | Text | |
|---|---|---|
| PET_NAME_1004 | + | Coconut Bird |
| PET_NAME_1005 | + | Sun Crab |
| PET_NAME_1006 | + | Water Jelly |
| PRODUCT_NAME_184 | + | New Knight Order Supply Package |
| PRODUCT_NAME_185 | + | Event Pet Package 1 (one-time only) |
| PRODUCT_NAME_186 | + | Event Pet Package 2 (one-time only) |
| PRODUCT_NAME_187 | + | Event Pet Package 3 (one-time only) |
| PRODUCT_NAME_188 | + | Event Pet Package 4 (one-time only) |
| PRODUCT_NAME_189 | + | Event Pet Package 5 (one-time only) |
| PRODUCT_NAME_190 | + | Event Pet Package 6 (one-time only) |
| GAME_1243 | + | Not enough Transcend Tickets. |
| PET_10001 | ~ |
|
| PET_10008 | ~ |
|
| PET_10009 | ~ |
|
| GAME_38 | ~ |
|
| GAME_39 | ~ |
|
| GAME_818 | ~ |
|
| GAME_819 | ~ |
|
Translations touched: de (18), es (18), fr (18), id (18), it (18), ja (18), ko (18), pl (20), pt (18), ru (18), th (18), tr (18), vi (18), zh-CN (18), zh-TW (18)
Assets 24
Code 265 changes in 112 classes
Minified client code with short names blanked for diffing. Class names are real.
- BaseShopProductPopup 1822
- RewardItem 582
- GolemKing 467
- CorpFlag 392
- GoldLayer 378
- AchievementRewardItem 325
- ClickAniLayer 316
- HeroDetailPopup 200
- GolemStone 166
- PetIcon 166
- DialogueVO 100
- AttendanceStatusVO 98
- AttendanceAutoTrigger 82
- HeroIcon 76
- ShopItemRenderer 75
- ShopGemSubView 68
- ClickAniEffect 66
- EvolveMaterialMultiConfirmPopup 61
- RaidBattleController 50
- BaseRaidUnit 41
- PaymentLoadingEffect2 33
- HeroTranscendModeButton 30
- ScorpionKing 27
- HarpyKing 27
- PetAwakeningEffects 24
- RaidWarningCircle 23
- FriendInviteManager 22
- EvolveConfirmPopup 21
- ShopDataManager 14
- MissionGuideController 12
- EvolveMaterialConfirmPopup 10
- RaidHud 8
- TopMenu 8
- ConfigManager 7
- CorpFlagCommander 7
- GuildWarBattlePopupV3 7
- HeroService 6
- CapacitorBridge 6
- TransConfirmPopup 5
- BuffManager 4
- PowerSaveManager 4
- PVPRewardSubView 4
- Archery2GameScene 4
- ServerTimeManager 3
- CommonToast 3
- BaseAreaHazard 3
- HeroPresetBar 3
- TreasureTransConfirmPopup 3
- TreasurePresetBar 3
- SHA256 3
- SuiProvider 3
- WalletPopup 3
- TreasureBuffAccessor 2
- RewardLayer 2
- ShopProductPopup 2
- ShopPayItemRenderer 2
- RaidCrossbow 2
- PVPBattleStatus 2
- OKXConnectUiError 2
- GuildBarracksRaceView 2
- GuildGiftSubView 2
- Guild2MemberInfoPopup 2
- GuildBarrackRowItemRenderer 2
- GuildWarBattleReadyPopup 2
- GuildWarSquadsPopup 2
- GuildWarTierAssignPopup 2
- Circle 1
- BatchableMesh 1
- WebGLRenderer 1
- WebGPURenderer 1
- VersionManager 1
- PetDataManager 1
- BaseWeapon 1
- SylphidTornado1 1
- WeaponFactory 1
- UnitFactory 1
- ShopPaySubView 1
- CorpCameraController 1
- HeroItemRenderer 1
- DungeonCoreBuffPopup 1
- FavoritePetSubView 1
- MineRewardPopup 1
- MinePopup 1
- RightBottomMenus 1
- HonorShopSubMenu 1
- HonorShopItemRenderer 1
- Sr 1
- Ma 1
- El 1
- Yp 1
- SuiStandardProvider 1
- AppReadyEvent 1
- SolProvider 1
- OkxwalletInjectConnector 1
- TcRootElement 1
- WalletSelectPopup 1
- MailDetailPopup 1
- PassMainPopup 1
- GuildMainSubView 1
- GuildMemberSubView 1
- GuildWarHistoryItemRenderer 1
- TutorialController 1
- SecretaryGuidePopup 1
- GameOverPopup 1
- BattleController 1
- GuildWarCombatLogItemRenderer 1
- GuildWarMemberStatusItemRenderer 1
- GuildWarTargetMarkerItemRenderer 1
- Delay 1
- NetworkTimeout 1
- RecaptchaVerifier 1
- BrowserPopupRedirectResolver 1
BaseShopProductPopup 4 hunks, 1822 statements
- const f4=class t extends nG{ + const r6=class extends aG{
- i<t.MAX_REWARDS; + t<5;
- this.activeCount=Math.min(i.length,t.MAX_REWARDS); + this.activeCount=Math.min(t.length,this.rewardPool.length);
- Kt(f4,"ShopProductPopup"),zt(f4,"_instance"),zt(f4,"MAX_REWARDS",5); + Kt(r6,"BaseShopProductPopup"); + let o6=r6; + const a6=class t extends o6{ + constructor(){ + super(),zt(this,"image"),zt(this,"timeContainer"),zt(this,"timeBg"),zt(this,"timeIcon"),zt(this,"timeLbl"),zt(this,"endTime",-1),zt(this,"count",0),zt(this,"onEnterUpdate",Kt(()=>{ + ++this.count<60||(this.count=0,this.refresh())} + ,"onEnterUpdate")),zt(this,"onPaymentSuccessBind"),this.timeContainer=new Be,this.addChild(this.timeContainer),this.timeBg=new CM({ + texture:ZA.getTexture("UI_Ekkorr","Progress_Bar_Bg_LightGreen"),leftWidth:20,topHeight:13,rightWidth:20,bottomHeight:13} + ),this.timeBg.alpha=.5,this.timeBg.width=160,this.timeContainer.addChild(this.timeBg),this.timeIcon=new We(ZA.getTexture("UI_Ekkorr","Icon_Time02")),this.timeIcon.x=20,this.timeContainer.addChild(this.timeIcon); + const t=aD.DEFAULT_FONT_OPTION_18; + t.fill=aD.COLOR_WHITE,t.stroke={ + color:"#000000",width:3,join:"round"} + ,this.timeLbl=new YD("00:00:00",t.fill,t),this.timeLbl.x=this.timeIcon.x+this.timeIcon.width+10,this.timeLbl.y=.5*(this.timeBg.height-this.timeLbl.height),this.timeContainer.addChild(this.timeLbl)} + static getInstance(){ + return this._instance||(this._instance=new t),this._instance} + async buyProduct2(t,i){ + const s=Q2.getInstance().getByProductId(t); + if(s){ + if(this.endTime=i,this.refresh(),GM.getInstance().add(this.onEnterUpdate,this),!this.image){ + this.image=new We,this.addChildAt(this.image,0); + const{ + AssetPathManager:t} + =await Jt(async()=>{ + const{ + AssetPathManager:t} + =await Promise.resolve().then(()=>JA); + return{ + AssetPathManager:t} + } + ,void 0),{ + Assets:i} + =await Jt(async()=>{ + const{ + Assets:t} + =await Promise.resolve().then(()=>xM); + return{ + Assets:t} + } + ,void 0),s=t.getAssetPath("CharShopProduct.png"),e=await i.load(s); + this.image.texture=e,this.image.x=.5*(this.width-this.image.width),this.image.y=-this.image.height} + this.buyProduct(s),this.setPaymentSuccess(!0)} + } + refresh(){ + if(ix.time<this.endTime){ + this.timeLbl.text=uU.displayTime(.001*(this.endTime-ix.time)); + const t=this.timeBg.width-2*this.timeIcon.x-this.timeIcon.width; + this.timeLbl.x=this.timeIcon.x+this.timeIcon.width+.5*(t-this.timeLbl.width)} + else this.hide()} + hide(){ + super.hide(),this.setPaymentSuccess(!1),GM.getInstance().remove(this.onEnterUpdate,this)} + updateLayout(){ + super.updateLayout(); + const t=this.activeCount>0?this.rewardPool[0].height:0; + let i=this.rewardContainer.y+t+30; + this.guideSecretary&&this.guideSecretary.visible&&(this.guideSecretary.x=.5*(this.width-this.guideSecretary.width),this.guideSecretary.y=this.lblDesc.y+this.lblDesc.height+20,i+=this.guideSecretary.height),this.timeContainer&&(this.timeContainer.x=.5*(this.width-this.timeContainer.width),this.timeContainer.y=i,i+=this.timeContainer.height+45),this.btnBuy.visible&&(this.btnBuy.y=i,this.btnRedGem.y=i,i+=this.btnBuy.height+40),this.height=i} + setPaymentSuccess(t){ + lS.getInstance().removeEventListener("PaymentSuccess",this.onPaymentSuccessBind),t&&(this.onPaymentSuccessBind=this.onPaymentSuccess.bind(this),lS.getInstance().addEventListener("PaymentSuccess",this.onPaymentSuccessBind))} + onPaymentSuccess(t){ + var i; + let s=-1; + t&&t.detail&&"productId"in t.detail&&(s=t.detail.productId),s===(null==(i=this.data)?void 0:i.productId)&&this.hide()} + } + ; + Kt(a6,"ShopProductPopupWithTimer"),zt(a6,"_instance"); + let c6=a6; + const l6=class t extends Be{ + constructor(){ + super(),zt(this,"items",[]),zt(this,"itemPool",[]),zt(this,"onPaymentSuccessBind")} + static getInstance(){ + return null==this.instance&&(this.instance=new t),this.instance} + add(t,i){ + if(-1!==this.items.findIndex(i=>i.productId===t))return; + let s; + this.itemPool.length>0?(s=this.itemPool.pop(),s.reset()):s=new f6("Shop_Shortcut_01"),s.setData(t,i),s.onEndTime=()=>{ + this.onItemEndTime()} + ,s.onClick=(t,i)=>{ + c6.getInstance().buyProduct2(t,i)} + ,this.addChild(s),this.items.push(s),this.items.length>0&&this.setPaymentSuccess(!0),this.alignItems()} + alignItems(){ + let t=0; + const i=this.items.length; + for(let s=0; + s<i; + ++s)this.items[s].y=t,t+=this.items[s].height+5} + onItemEndTime(){ + this.update(-1),this.alignItems()} + setPaymentSuccess(t){ + lS.getInstance().removeEventListener("PaymentSuccess",this.onPaymentSuccessBind),t&&(this.onPaymentSuccessBind=this.onPaymentSuccess.bind(this),lS.getInstance().addEventListener("PaymentSuccess",this.onPaymentSuccessBind))} + onPaymentSuccess(t){ + let i=-1; + t&&t.detail&&"productId"in t.detail&&(i=t.detail.productId),-1!==i&&this.update(i)} + update(t){ + const i=this.items.findIndex(i=>i.productId===t); + if(-1===i)return; + const s=this.items[i]; + s.reset(),s.removeFromParent(),this.items.splice(i,1),this.itemPool.push(s),0==this.items.length&&this.setPaymentSuccess(!1)} + } + ; + Kt(l6,"ShopProductGroup"),zt(l6,"instance"); + let u6=l6; + const d6=class extends mB{ + constructor(t,i=1){ + super("UI_Ekkorr",t,i),zt(this,"container"),zt(this,"timeBg"),zt(this,"timeLbl"),zt(this,"_productId",-1),zt(this,"_endTime",-1),zt(this,"count",0),zt(this,"onEnterUpdate",Kt(()=>{ + ++this.count<60||(this.count=0,this.update())} + ,"onEnterUpdate")),zt(this,"onEndTime",null),this.container=new Be,this.addChild(this.container),this.container.x=this.bg.x,this.container.y=this.bg.y,this.bg.x=0,this.bg.y=0,this.container.addChild(this.bg),this.timeBg=new CM({ + texture:ZA.getTexture("UI_Ekkorr","Progress_Bar_Bg"),leftWidth:20,topHeight:13,rightWidth:20,bottomHeight:13} + ),this.timeBg.alpha=.7,this.timeBg.width=70,this.timeBg.x=this.bg.x-.5*this.timeBg.width,this.timeBg.y=this.bg.y+.5*this.bg.height-.75*this.timeBg.height,this.container.addChild(this.timeBg); + const s=aD.DEFAULT_FONT_OPTION_15; + s.fill=aD.COLOR_WHITE,s.stroke={ + color:"#000000",width:3,join:"round"} + ,this.timeLbl=new YD("00:00:00",s.fill,s),this.timeLbl.x=this.timeBg.x+.5*(this.timeBg.width-this.timeLbl.width),this.timeLbl.y=this.timeBg.y+.5*(this.timeBg.height-this.timeLbl.height)-1,this.container.addChild(this.timeLbl)} + get productId(){ + return this._productId} + get endTime(){ + return this._endTime} + setData(t,i){ + this._productId=t,this._endTime=i,this.update(),GM.getInstance().add(this.onEnterUpdate,this)} + update(){ + if(ix.time<this._endTime)this.timeLbl.text=uU.displayTime(.001*(this._endTime-ix.time)),this.timeLbl.x=this.timeBg.x+.5*(this.timeBg.width-this.timeLbl.width); + else{ + const t=this.onEndTime; + this.reset(),t&&t()} + } + reset(){ + this._endTime=-1,this._productId=-1,this.onEndTime=null,GM.getInstance().remove(this.onEnterUpdate,this)} + onDown(){ + this.container.scale.set(.9*this.iconScale)} + onUp(){ + this.container.scale.set(1*this.iconScale),KL.getInstance().playSFX(KL.SFX_NORMAL_CLICK),WL(),this.onClick&&this.onClick(this._productId,this._endTime)} + } + ; + Kt(d6,"ShopProductItem"); + let f6=d6; + var p6=(t=>(t.ACCOUNT_CREATE="ACCOUNT_CREATE",t))(p6||{ + } + ); + const g6=class t{ + static getInstance(){ + return this._instance||(this._instance=new t),this._instance} + doAccountCreate(){ + const t=Q2.getInstance(),i=t.getTargetingByType(p6.ACCOUNT_CREATE); + if(!i)return; + const s=t.getByProductId(i[0]); + if(!s||!s.active)return; + let e=new Date(_L.regTime); + const n=EL.getInstance().getClientData("PRODUCT_START_TIME_29"); + if(n){ + let t=new Date(n); + e.getTime()<t.getTime()&&(e=t)} + const h=s.targeting.durationMinutes??0; + let r=e.getTime()+60*h*1e3; + r<ix.time||t.isAvailableForPurchase(s)&&u6.getInstance().add(s.productId,r)} + } + ; + Kt(g6,"ShopProductTrigger"),zt(g6,"_instance"); + let m6=g6; + const w6=class t{ + static get opened(){ + return!1} + static async getMyReferralCode(){ + if(this._referralCode)return this._referralCode; + if(this.requestPending1)return this._referralCode; + this.requestPending1=!0; + const t=await hD.getInstance().referral.getMyReferralCode(); + try{ + const i=new URL(t); + Array.from(i.searchParams.keys()).length>0&&(this._referralCode=t)} + catch(i){ + } + return this.requestPending1=!1,this._referralCode} + static async getMyReferralStatus(t,i=!1){ + this.requestPending2||(this.requestPending2=!0,this.setStatusData({ + totalReferrals:10,qualifiedReferrals:7,claimed:2,milestoneRewards:[{ + milestone:10,weaponGrade:3} + ,{ + milestone:20,weaponGrade:3} + ,{ + milestone:30,weaponGrade:3} + ,{ + milestone:40,weaponGrade:4} + ,{ + milestone:50,weaponGrade:4} + ]} + ),this.requestPending2=!1,lS.getInstance().dispatchCustomEvent("ReferralStatus"))} + static setStatusData(t){ + this._totalReferrals=Number(t.totalReferrals),this._qualifiedReferrals=Number(t.qualifiedReferrals),this._claimed=Number(t.claimed); + const i=t.milestoneRewards; + if(0==this.rewardList.length&&"length"in i){ + const t=i[i.length-1].milestone; + for(let i=0; + i<t; + ++i)this.rewardList.push([{ + type:"gem",amount:this.GEM_PER_FRIEND} + ]); + const s=i.length; + for(let e=0; + e<s; + ++e){ + const t=Number(i[e].milestone),s=Number(i[e].weaponGrade); + this.rewardList[t-1].push({ + type:"weapon",amount:1,grade:s} + )} + } + } + static get totalReferrals(){ + return this._totalReferrals} + static get qualifiedReferrals(){ + return this._qualifiedReferrals} + static get claimed(){ + return this._claimed} + static getRewardList(){ + return this.rewardList} + static async claimRewards(i){ + if(this.requestPending3)return; + this.requestPending3=!0; + const s=await hD.getInstance().referral.claimReward(i,!0); + if(0==s.success){ + this.requestPending3=!1,lS.getInstance().dispatchCustomEvent("ReferralStatus"); + let e=s.errorMessage; + const n=s.error; + return"INSUFFICIENT_REFERRAL"==n?e=AG.getValueReplaceMulti("GAME_145",["##","@@"],[t.FRIEND_LEVEL,i]):"ALREADY_CLAIMED"==n&&(e=AG.getText("COMMON_276","이미 보상을 받았습니다.")),void mG.getInstance().show(e)} + "status"in s.body&&this.setStatusData(s.body.status),this.requestPending3=!1,lS.getInstance().dispatchCustomEvent("ReferralStatus",s)} + static hasReward(){ + return this.claimed<this.qualifiedReferrals} + } + ; + Kt(w6,"FriendInviteManager"),zt(w6,"FRIEND_LEVEL",50),zt(w6,"GEM_PER_FRIEND",100),zt(w6,"_referralCode",""),zt(w6,"requestPending1",!1),zt(w6,"requestPending2",!1),zt(w6,"_totalReferrals",0),zt(w6,"_qualifiedReferrals",0),zt(w6,"_claimed",0),zt(w6,"rewardList",[]),zt(w6,"requestPending3",!1); + let v6=w6; + var b6=(t=>(t.GAME="GAME",t.PAYMENT="PAYMENT",t))(b6||{ + } + ); + const y6=class{ + constructor(){ + zt(this,"index",-1),zt(this,"id"),zt(this,"gameId"),zt(this,"title"),zt(this,"content"),zt(this,"rewards"),zt(this,"receivedAt"),zt(this,"createdAt"),zt(this,"mailType"),zt(this,"typeArray"),zt(this,"subTypeArray"),zt(this,"amountArray"),zt(this,"gradeArray"),zt(this,"kindNumArray"),this.index=-1,this.id=-1,this.gameId="",this.title="",this.content="",this.rewards=[],this.createdAt=null,this.receivedAt=null,this.mailType="",this.typeArray=[],this.subTypeArray=[],this.amountArray=[],this.gradeArray=[],this.kindNumArray=[]} + setData(t,i){ + t&&(this.id=Number(t.id),this.gameId=String(t.gameId),this.title=t.title,this.content=t.content,this.rewards=t.rewards,this.createdAt=t.createdAt,t.receivedAt?this.receivedAt=t.receivedAt:this.receivedAt=null,this.mailType=i,this.typeArray.length=0,this.subTypeArray.length=0,this.amountArray.length=0,this.gradeArray.length=0,this.kindNumArray.length=0)} + get hasReward(){ + return!(!this.rewards||0==this.rewards.length)&&Object.values(this.rewards).some(t=>!!t&&("number"==typeof t?t>0:!!t))} + get hasClaimableReward(){ + return this.hasReward&&null==this.receivedAt} + get isDeletable(){ + return null!=this.receivedAt} + reset(){ + this.index=-1,this.id=-1,this.gameId="",this.title="",this.content="",this.rewards.length=0,this.createdAt=null,this.receivedAt=null,this.mailType="",this.typeArray.length=0,this.subTypeArray.length=0,this.amountArray.length=0,this.gradeArray.length=0,this.kindNumArray.length=0} + } + ; + Kt(y6,"MailVO"); + let _6=y6; + const M6=class{ + static async getMailList(t=1){ + let i=await hD.getInstance().mail.list(t,this.pageSize); + 0!=i.success?t>this.page?this.setData(i.body,!0):this.setData(i.body):lS.getInstance().dispatchCustomEvent("MailUpdate")} + static setData(t,i=!1){ + let s,e,n,h; + if(t.mailList){ + const r=t.mailList; + for(0==i?(h=[...this.gameList],this.gameList.length=0):h=[],e=r.length,s=0; + s<e; + ++s){ + r[s].content=this.filterContent(r[s].content); + const t=Number(r[s].id),i=h.findIndex(i=>i.id===t); + -1===i?n=this.getMailEmptyVO():(n=h.splice(i,1)[0],n.reset()),n.setData(r[s],b6.GAME),this.gameList.push(n),this.gameMailMap[n.id]=n} + this.addListPool(h)} + if(t.paymentMailList){ + const r=t.paymentMailList; + for(0==i?(h=[...this.paymentList],this.paymentList.length=0):h=[],e=r.length,s=0; + s<e; + ++s){ + r[s].content=this.filterContent(r[s].content); + const t=Number(r[s].id),i=h.findIndex(i=>i.id===t); + -1===i?n=this.getMailEmptyVO():(n=h.splice(i,1)[0],n.reset()),n.setData(r[s],b6.PAYMENT),this.paymentList.push(n),this.paymentMailMap[n.id]=n,n.index=this.paymentList.length} + this.addListPool(h)} + "mailTotal"in t&&(this.mailsTotal=Number(t.mailTotal)),"mailTotalPages"in t&&(this.mailTotalPages=Number(t.mailTotalPages)),"paymentTotal"in t&&(this.paymentMailsTotal=Number(t.paymentTotal)),"paymentTotalPages"in t&&(this.paymentTotalPages=Number(t.paymentTotalPages)),this.updatePage(),this.updateNeeded=!1,lS.getInstance().dispatchCustomEvent("MailUpdate"),this.log()} + static filterContent(t){ + return t.replace(/\r\n/g,"\n")} + static onMailDeleteAndUpdate(t){ + t==b6.PAYMENT?(this.paymentMailsTotal>0&&this.paymentMailsTotal--,this.paymentTotalPages=Math.floor((this.paymentMailsTotal-1)/this.pageSize)+1):(this.mailsTotal>0&&this.mailsTotal--,this.mailTotalPages=Math.floor((this.mailsTotal-1)/this.pageSize)+1),this.updatePage()} + static updatePage(){ + const t=Math.max(this.gameList.length,this.paymentList.length); + this.page=Math.floor((t-1)/this.pageSize)+1,this.page<1&&(this.page=1)} + static log(){ + } + static getGameMailWithId(t){ + return this.gameMailMap[t]} + static getPaymentMailWithId(t){ + return this.paymentMailMap[t]} + static getMailCount(t){ + return t==b6.PAYMENT?this.paymentList.length:this.gameList.length} + static getMailTotal(t){ + return t==b6.PAYMENT?this.paymentMailsTotal:this.mailsTotal} + static getMailTotalPage(t){ + return t==b6.PAYMENT?this.paymentTotalPages:this.mailTotalPages} + static isAllMailLoaded(t){ + let i=0,s=0,e=0; + return t==b6.PAYMENT?(i=this.paymentList.length,s=this.paymentMailsTotal,e=this.paymentTotalPages):(i=this.gameList.length,s=this.mailsTotal,e=this.mailTotalPages),!(Math.floor((i-1)/this.pageSize)+1<e||i<s)} + static getPage(){ + return this.page} + static getPageSize(){ + return this.pageSize} + static getDisplaySize(){ + return this.displaySize} + static setDisplaySize(t){ + t>0&&(this.displaySize=t)} + static getMailEmptyVO(){ + if(this.mailPool.length>0){ + let t=this.mailPool.pop(); + return t?t.reset():t=new _6,t} + return new _6} + static addPool(t){ + t&&(t.reset(),this.mailPool.push(t))} + static addListPool(t){ + if(!t)return; + let i; + const s=t.length; + for(let e=0; + e<s; + ++e)i=t[e],i&&(i.reset(),this.mailPool.push(i))} + static removeGameMail(t){ + const i=this.gameList.findIndex(i=>i.id===t); + -1!==i&&(this.gameList.splice(i,1),this.addPool(this.gameMailMap[t]),delete this.gameMailMap[t])} + static removePaymentMail(t){ + const i=this.paymentList.findIndex(i=>i.id===t); + -1!==i&&(this.paymentList.splice(i,1),this.addPool(this.paymentMailMap[t]),delete this.paymentMailMap[t])} + static get hasDeletableGameMail(){ + return-1!==this.gameList.findIndex(t=>!0===t.isDeletable)} + static get hasDeletablePaymentMail(){ + return-1!==this.paymentList.findIndex(t=>!0===t.isDeletable)} + static get hasDeletableMail(){ + return this.hasClaimableGameReward||this.hasClaimablePaymentReward} + static get hasClaimableReward(){ + return this.hasClaimableGameReward||this.hasClaimablePaymentReward} + static get hasClaimableGameReward(){ + return this.checkClaimableReward(this.gameList)} + static get hasClaimablePaymentReward(){ + return this.checkClaimableReward(this.paymentList)} + static checkClaimableReward(t){ + const i=t.length; + for(let s=0; + s<i; + ++s)if(t[s].hasClaimableReward)return!0; + return!1} + } + ; + Kt(M6,"MailManager"),zt(M6,"updateNeeded",!0),zt(M6,"mailPool",[]),zt(M6,"gameList",[]),zt(M6,"paymentList",[]),zt(M6,"gameMailMap",{ + } + ),zt(M6,"paymentMailMap",{ + } + ),zt(M6,"mailsTotal",0),zt(M6,"mailTotalPages",0),zt(M6,"paymentMailsTotal",0),zt(M6,"paymentTotalPages",0),zt(M6,"page",1),zt(M6,"pageSize",20),zt(M6,"displaySize",8); + let E6=M6; + var A6=(t=>(t.NOT_PURCHASE="NOT_PURCHASE",t.CREATED="CREATED",t.PENDING="PENDING",t.COMPLETED="COMPLETED",t.FAILED="FAILED",t))(A6||{ + } + ); + const S6=class{ + constructor(){ + zt(this,"id",-1),zt(this,"productId",-1),zt(this,"paybackType",""),zt(this,"paybackValue",-1),zt(this,"status",""),zt(this,"paidbackAt",null)} + } + ; + Kt(S6,"PaybackEventUserVO"); + let T6=S6; + const C6=class{ + constructor(){ + zt(this,"id",-1),zt(this,"title",""),zt(this,"description",[]),zt(this,"startTime",null),zt(this,"endTime",null),zt(this,"paybackEndTime",null)} + } + ; + Kt(C6,"PaybackEventVO"); + let k6=C6; + const O6=class{ + static get opened(){ + return!1} + static async getPaybackEvent(t,i=!1){ + let s=await hD.getInstance().payback.getPaybackEvent(t,i); + s=this.getTestData(),0!=s.success?(this.setData(s.body),lS.getInstance().dispatchCustomEvent("PaybackEvent")):lS.getInstance().dispatchCustomEvent("PaybackEvent")} + static setData(t){ + this.setPaybackEventData(t),this.setPaybackUserData(t)} + static setPaybackEventData(t){ + if(!t||!t.paybackEvent)return void(this.paybackEvent.id=0); + const i=t.paybackEvent; + this.paybackEvent.id=Number(i.id),this.paybackEvent.title=String(i.title),this.paybackEvent.description=String(i.description).split("|"),this.paybackEvent.startTime=new Date(i.startTime),this.paybackEvent.endTime=new Date(i.endTime),this.paybackEvent.paybackEndTime=new Date(i.paybackEndTime)} + static getEventDurationStr(t){ + const i={ + startTimeStr:"",endTimeStr:"",paybackEndTimeStr:""} + ,s="YYYY-MM-DD"; + let e="00:00:00"; + if(t.startTime){ + const n=t.startTime,h=s.replace("YYYY",String(n.getUTCFullYear())).replace("MM",uU.digit(n.getUTCMonth()+1)).replace("DD",uU.digit(n.getUTCDate())); + e=`${ + uU.digit(n.getUTCHours())} + :${ + uU.digit(n.getUTCMinutes())} + :${ + uU.digit(n.getUTCSeconds())} + `,i.startTimeStr=h} + let n="23:59:59"; + if(t.endTime){ + const e=t.endTime,h=s.replace("YYYY",String(e.getUTCFullYear())).replace("MM",uU.digit(e.getUTCMonth()+1)).replace("DD",uU.digit(e.getUTCDate())); + n=`${ + uU.digit(e.getUTCHours())} + :${ + uU.digit(e.getUTCMinutes())} + :${ + uU.digit(e.getUTCSeconds())} + `,i.endTimeStr=h} + let h="23:59:59"; + if(t.paybackEndTime){ + const e=t.paybackEndTime,n=s.replace("YYYY",String(e.getUTCFullYear())).replace("MM",uU.digit(e.getUTCMonth()+1)).replace("DD",uU.digit(e.getUTCDate())); + h=`${ + uU.digit(e.getUTCHours())} + :${ + uU.digit(e.getUTCMinutes())} + :${ + uU.digit(e.getUTCSeconds())} + `,i.paybackEndTimeStr=n} + return"00:00:00"==e&&"23:59:59"==n&&"23:59:59"==h||(i.startTimeStr+=" "+e,i.endTimeStr+=" "+n,i.paybackEndTimeStr+=" "+h),i} + static setPaybackUserData(t){ + if(!t||!t.paybacks)return; + const i=t.paybacks,s=i.length; + if(0==this.paybacks.length)for(let h=0; + h<s; + ++h)this.paybacks.push(new T6); + let e,n; + for(let h=0; + h<s; + ++h)e=i[h],n=this.paybacks[h],n.id=Number(e.id),n.productId=Number(e.productId),n.paybackType=String(e.paybackType),n.paybackValue=Number(e.paybackValue),n.status=String(e.status),n.paidbackAt=new Date(String(e.paidbackAt))} + static isEventEnded(){ + const t=this.paybackEvent; + return t.id<0||!t.endTime||!(gP.serverTime<t.endTime.getTime())} + static isPaybackEnded(){ + const t=this.paybackEvent; + return t.id<0||!t.paybackEndTime||!(gP.serverTime<t.paybackEndTime.getTime())} + static hasReward(){ + if(1==this.isPaybackEnded())return!1; + let t; + const i=this.paybacks.length; + for(let s=0; + s<i; + ++s)if(t=this.paybacks[s],t.status==A6.CREATED||t.status==A6.FAILED)return!0; + return!1} + static getTestData(){ + return{ + header:{ + sts:1771417950938} + ,body:{ + paybackEvent:{ + id:7,gameId:"smith",active:1,subId:3,title:"PAYBACK_T1",description:"PAYBACK_H1|PAYBACK_H2|PAYBACK_H3|PAYBACK_H4|PAYBACK_H5|PAYBACK_H6",startTime:"2026-02-17T00:00:00.000Z",endTime:"2026-02-20T21:59:59.000Z",paybackEndTime:"2026-02-20T23:59:59.000Z"} + ,paybacks:[{ + id:21,gameId:"smith",subId:3,step:1,productId:111,reqProductId:0,paybackType:"slx",paybackValue:299,status:"COMPLETED",paidbackAt:null} + ,{ + id:22,gameId:"smith",subId:3,step:2,productId:112,reqProductId:111,paybackType:"slx",paybackValue:998,status:"CREATED",paidbackAt:null} + ,{ + id:23,gameId:"smith",subId:3,step:3,productId:113,reqProductId:112,paybackType:"slx",paybackValue:4995,status:"NOT_PURCHASE",paidbackAt:null} + ,{ + id:24,gameId:"smith",subId:3,step:4,productId:114,reqProductId:113,paybackType:"slx",paybackValue:9990,status:"NOT_PURCHASE",paidbackAt:null} + ,{ + id:25,gameId:"smith",subId:3,step:5,productId:115,reqProductId:114,paybackType:"slx",paybackValue:19980,status:"NOT_PURCHASE",paidbackAt:null} + ,{ + id:26,gameId:"smith",subId:3,step:6,productId:116,reqProductId:115,paybackType:"slx",paybackValue:49950,status:"NOT_PURCHASE",paidbackAt:null} + ,{ + id:27,gameId:"smith",subId:3,step:7,productId:117,reqProductId:116,paybackType:"slx",paybackValue:99900,status:"NOT_PURCHASE",paidbackAt:null} + ]} + ,_success_:!0,_ok_:!0,_status_:201} + } + } + ; + Kt(O6,"PaybackEventManager"),zt(O6,"paybackEvent",new k6),zt(O6,"paybacks",[]); + let I6=O6; + const x6=class extends Be{ + constructor(t=552,i=106,s="Banner"){ + super(),zt(this,"banner"),zt(this,"bannerName",""),zt(this,"sheetName","Banner"),zt(this,"_width",552),zt(this,"_height",106),zt(this,"_imageWidth",-1),zt(this,"_imageHeight",-1),zt(this,"_autoResize",!1),this._width=t,this._height=i,this.sheetName=s,this.banner=new We,this.addChild(this.banner)} + get width(){ + return this._width} + get height(){ + return this._height} + get imageWidth(){ + return this._imageWidth} + get imageHeight(){ + return this._imageHeight} + get autoResize(){ + return this._autoResize} + set autoResize(t){ + t!=this._autoResize&&(this._autoResize=t,this._imageWidth<0||this._imageHeight<0||(this._autoResize?(this.banner.width=this._width,this.banner.height=this._height):(this.banner.width=this._imageWidth,this.banner.height=this._imageHeight)))} + async update(t,i=-1,s=-1,e="Banner"){ + if(t==this.bannerName)return; + if(this.bannerName=t,this.sheetName=e,!1===ZA.hasSheet(this.sheetName)){ + const t="ktx2"; + await ZA.generateTexture(this.sheetName,t,!1)} + let n=ZA.getTexture(this.sheetName,this.bannerName); + this.banner.texture=n,this._imageWidth=n.width,this._imageHeight=n.height,this._autoResize?(this.banner.width=this._width,this.banner.height=this._height):(this.banner.width=this._imageWidth,this.banner.height=this._imageHeight)} + } + ; + Kt(x6,"BannerImage"); + let N6=x6; + const P6=class t extends Be{ + static getInstance(){ + return this._instance||(this._instance=new t),this._instance} + constructor(){ + super()} + } + ; + Kt(P6,"RewardLayer"),zt(P6,"_instance"); + let R6=P6; + const D6=class extends mB{ + constructor(){ + super("UI_Ekkorr","Btn_Delete",1)} + get activated(){ + return this._activated} + set activated(t){ + t!=this._activated&&(this._activated=t,this._activated?this.bg.texture=ZA.getTexture("UI_Ekkorr","Btn_Delete"):this.bg.texture=ZA.getTexture("UI_Ekkorr","Btn_Delete_Gray"))} + } + ; + Kt(D6,"MailDeleteAllButton"); + let L6=D6; + const G6=class t extends Be{ + constructor(i){ + super(),zt(this,"bg"),zt(this,"lbl"),zt(this,"container"),zt(this,"_width",100),zt(this,"_minWidth",100),zt(this,"_height",58),zt(this,"_textSize",19),zt(this,"_activated",!0),zt(this,"_activatedTextColor",16777215),zt(this,"_deactivatedTextColor",10066329),zt(this,"_outlineText",!1),zt(this,"_resizable",!1),zt(this,"_padding",20),zt(this,"_color",t.COLOR_SAND_BROWN),zt(this,"onClick"),zt(this,"redDot"),this.container=new Be,this.addChild(this.container),this.bg=new CM({ + texture:ZA.getTexture("UI_Ekkorr",this._color),leftWidth:40,topHeight:27,rightWidth:40,bottomHeight:29} + ),this.bg.width=this._width,this.bg.height=this._height,this.container.addChild(this.bg); + const s=aD.LABEL_OPTION_NO_DROP_SHADOW; + s.fill=aD.COLOR_WHITE,s.fontSize=this._textSize,this.lbl=new YD(i,s.fill,s),this.container.addChild(this.lbl),this.updateLayout(),this.eventMode="dynamic",this.on("pointerdown",this.onDown,this),this.on("pointerup",this.onUp,this),this.on("pointerupoutside",this.onUp,this),this.on("pointertap",this.onTap,this),this.container.pivot.set(.5*this._width,.5*this._height)} + updateLayout(){ + this._resizable?aD.setLabelWrapWidth(this.lbl,5*this._width):aD.setLabelWrapWidth(this.lbl,this._width),this.lbl.x=.5*(this._width-this.lbl.width),this.lbl.y=.5*(this._height-this.lbl.height),this.container.x=.5*this._width,this.container.y=.5*this._height} + get width(){ + return this._width} + set width(t){ + t!=this._width&&(this._resizable&&t<this._minWidth&&(t=this._minWidth),this._width=t,this.bg.width=this._width,this.container.pivot.set(.5*this._width,.5*this._height),this.updateLayout())} + get minWidth(){ + return this._minWidth} + set minWidth(t){ + t!=this._minWidth&&(this._minWidth=t,this._resizable&&this._width<this._minWidth&&(this.width=this._minWidth))} + get height(){ + return this._height} + set height(t){ + t!=this._height&&(this._height=t,this.bg.height=this._height,this.container.pivot.set(.5*this._width,.5*this._height),this.updateLayout())} + get text(){ + return this.lbl.text} + set text(t){ + this.lbl.text=t,this._resizable&&(this.width=this.lbl.width+2*this._padding),this.updateLayout()} + get textSize(){ + return this._textSize} + set textSize(t){ + t!=this._textSize&&(this._textSize=t,this.lbl.textSize=this._textSize,this.updateLayout())} + get activated(){ + return this._activated} + set activated(t){ + t!=this._activated&&(this._activated=t,this._activated,this.updateTextColor())} + get activatedTextColor(){ + return this._activatedTextColor} + set activatedTextColor(t){ + t!=this._activatedTextColor&&(this._activatedTextColor=t,this.updateTextColor())} + get deactivatedTextColor(){ + return this._deactivatedTextColor} + set deactivatedTextColor(t){ + t!=this._deactivatedTextColor&&(this._deactivatedTextColor=t,this.updateTextColor())} + updateTextColor(){ + 1==this._activated?this.lbl.textColor=this._activatedTextColor:this.lbl.textColor=this._deactivatedTextColor} + get outlineText(){ + return this._outlineText} + set outlineText(t){ + if(t==this._outlineText)return; + this._outlineText=t; + const i=this.lbl.getStyle(); + this._outlineText?(delete i.stroke,i.stroke={ + color:"#000000",width:4,join:"round"} + ):delete i.stroke,this.lbl.setStyle(i),this.updateLayout()} + get resizable(){ + return this._resizable} + set resizable(t){ + t!=this._resizable&&(this._resizable=t,this.width=this.lbl.width+2*this._padding,this.updateLayout())} + getStyle(){ + return this.lbl.getStyle()} + setStyle(t){ + this.lbl.setStyle(t)} + setTexture(t){ + if(t)try{ + this.bg.texture=t.texture,this.bg.leftWidth=t.leftWidth,this.bg.topHeight=t.topHeight,this.bg.rightWidth=t.rightWidth,this.bg.bottomHeight=t.bottomHeight} + catch(i){ + } + } + get color(){ + return this._color} + set color(t){ + if(t!=this._color){ + this._color=t; + try{ + this.bg.texture=ZA.getTexture("UI_Ekkorr",this._color)} + catch(i){ + } + } + } + onDown(t){ + 0!=this._activated&&(this.container.scale=.9)} + onUp(t){ + 0!=this._activated&&(this.container.scale=1)} + onTap(t){ + 0!=this._activated&&(KL.getInstance().playSFX(KL.SFX_NORMAL_CLICK),WL(),this.onClick&&this.onClick())} + showRedDot(){ + this.redDot||(this.redDot=new YL,this.container.addChild(this.redDot)),this.redDot.show(),this.updateRedDot()} + hideRedDot(){ + this.redDot&&this.redDot.hide()} + updateRedDot(){ + this.redDot&&(this.redDot.x=this.bg.x+this.bg.width-this.redDot.width-12,this.redDot.y=this.bg.y-3)} + } + ; + Kt(G6,"CommonButton2"),zt(G6,"COLOR_SAND_BROWN","Btn_Sand_Brown"),zt(G6,"COLOR_ORANGE","Btn_Orange"),zt(G6,"COLOR_GRAY","Btn_Gray"); + let B6=G6; + const U6=class extends B6{ + constructor(t){ + super(t),zt(this,"bgOff"),zt(this,"_selected",!0),this.minWidth=180,this.resizable=!0,this.outlineText=!0,this.bgOff=new CM({ + texture:ZA.getTexture("UI_Ekkorr","Btn_Gray"),leftWidth:40,topHeight:27,rightWidth:40,bottomHeight:29} + ),this.bgOff.width=this._width,this.bgOff.height=this._height,this.container.addChildAt(this.bgOff,0),this.bg.visible=this._selected,this.bgOff.visible=!this._selected} + get selected(){ + return this._selected} + set selected(t){ + t!=this._selected&&(this._selected=t,this._selected?(this.bg.visible=!0,this.bgOff.visible=!1):(this.bg.visible=!1,this.bgOff.visible=!0))} + onTap(t){ + this._selected||super.onTap(t)} + } + ; + Kt(U6,"MailMenuButton"); + let F6=U6; + const H6=class extends iP{ + constructor(){ + super(),this.sp.x=.5*-this.sp.width,this.sp.y=.5*-this.sp.height,this.offsetX=2,this.scale=.5} + getTextures(){ + return ZA.getTextures("Loading","loading_circle_60f_")} + } + ; + Kt(H6,"MailLoading"); + let W6=H6; + const j6=class extends Be{ + constructor(){ + super(),zt(this,"yPrev",0),zt(this,"yHome",0),zt(this,"vy",0),zt(this,"yMax",0),zt(this,"yMin",0),zt(this,"yMouse",0),zt(this,"yOffset",140),zt(this,"min",0),zt(this,"max",0),zt(this,"dragSensorDistance",20),zt(this,"_isDragging",!1),zt(this,"onDragStart",null),zt(this,"onDragEnd",null),this.eventMode="static",this.on("pointerdown",this.onDown,this)} + get isDragging(){ + return this._isDragging} + onDown(t){ + this.min>this.max||(this.yMin=this.min,this.yMax=this.max,this.yPrev=this.yHome=this.yMouse=t.globalY,this.off("pointermove",this.onMove,this),this.on("pointermove",this.onMove,this),this.off("pointerup",this.onUp,this),this.on("pointerup",this.onUp,this),this.off("pointerupoutside",this.onUp,this),this.on("pointerupoutside",this.onUp,this),GM.getInstance().remove(this.onFlickEnter,this),GM.getInstance().add(this.onDragEnter,this))} + onDragEnter(){ + 0==this._isDragging&&Math.abs(this.yMouse-this.yHome)>this.dragSensorDistance&&(this._isDragging=!0,this.onDragStartCallback()),0!=this._isDragging&&(this.vy=this.yMouse-this.yPrev,this.y==this.yMin&&this.vy<0||this.y==this.yMax&&this.vy>0||(this.y+=this.vy,this.y>this.yMax&&(this.y=this.yMax),this.y<this.yMin&&(this.y=this.yMin),this.yPrev=this.yMouse))} + onMove(t){ + this.yMouse=t.globalY} + onUp(t){ + 1==this._isDragging&&(this.vy=2*this.vy,GM.getInstance().add(this.onFlickEnter,this),this._isDragging=!1,this.onDragEndCallback()),GM.getInstance().remove(this.onDragEnter,this),this.off("pointermove",this.onMove,this),this.off("pointerup",this.onUp,this),this.off("pointerupoutside",this.onUp,this)} + onFlickEnter(){ + this.vy*=.98,this.y==this.yMin&&this.vy<0||this.y==this.yMax&&this.vy>0?GM.getInstance().remove(this.onFlickEnter,this):(this.y+=this.vy,this.y>this.yMax&&(this.y=this.yMax),this.y<this.yMin&&(this.y=this.yMin),Math.abs(this.vy)<1&&GM.getInstance().remove(this.onFlickEnter,this))} + onDragStartCallback(){ + this.onDragStart&&this.onDragStart()} + onDragEndCallback(){ + this.onDragEnd&&this.onDragEnd()} + setScroll(t){ + let i=this.max-t; + i<this.min&&(i=this.min),this.y=i} + } + ; + Kt(j6,"DraggableContainer"); + let $6=j6; + const V6=class extends Be{ + constructor(){ + super(),zt(this,"bg"),zt(this,"lbl"),zt(this,"count",0),zt(this,"duration",180),this.bg=new CM({ + texture:ZA.getTexture("UI_Ekkorr","UI_Toast_Bg"),leftWidth:6,topHeight:6,rightWidth:6,bottomHeight:6} + ),this.bg.alpha=.7,this.bg.width=640,this.bg.height=50,this.addChild(this.bg),this.lbl=new YD("Toast",aD.DEFAULT_COLOR),this.lbl.x=.5*(this.bg.width-this.lbl.width),this.lbl.y=25,this.addChild(this.lbl),this.eventMode="none"} + show(t,i,s=aD.DEFAULT_COLOR,e=null,n=!0,h=180,r=.7){ + this.lbl.text=t,aD.setLabelWrapWidth(this.lbl,this.bg.width-10),this.lbl.textColor=s,this.lbl.x=.5*(this.bg.width-this.lbl.width),this.bg.height=this.lbl.height+2*this.lbl.y,this.y=i-this.height,this.duration=h,this.bg.alpha=r,null==e&&(e=qD.getInstance()),e&&e.addChild(this),1==n&&this.startCheckHide(),i5.showItemsInVertical([this])} + hide(){ + this.parent&&this.parent.removeChild(this)} + get width(){ + return this.bg.width} + get height(){ + return this.bg.height} + startCheckHide(){ + this.count=0,GM.getInstance().add(this.checkHide,this)} + checkHide(){ + ++this.count>this.duration&&(this.count=0,this.count=0,this.hide(),GM.getInstance().remove(this.checkHide,this))} + } + ; + Kt(V6,"BaseToast"); + let K6=V6; + const z6=class t extends K6{ + static getInstance(){ + return this._instance||(this._instance=new t),this._instance} + constructor(){ + super()} + } + ; + Kt(z6,"Toast"),zt(z6,"_instance"); + let q6=z6; + const X6=class t{ + constructor(){ + zt(this,"requestPending",!1),zt(this,"obj",{ + } + ),zt(this,"objByType",{ + } + ),zt(this,"types",[])} + static getInstance(){ + return null==this.instance&&(this.instance=new t),this.instance} + async getInventory(t,i=!1){ + if(this.requestPending)return; + this.requestPending=!0; + let s=await hD.getInstance().user.getInventory(t,i); + if(0==s.success)return this.requestPending=!1,void lS.getInstance().dispatchCustomEvent("UserInventory"); + this.setData(s.body),this.requestPending=!1} + setData(t){ + if(!t||!t.inventory)return; + this.obj={ + } + ,this.objByType={ + } + ,this.obj.all=[],this.types[0]="all",this.types.length=1; + const i=t.inventory; + let s,e,n; + const h=i.length; + for(let r=0; + r<h; + ++r){ + if(s=i[r].type.toString(),e="subType"in i[r]?i[r].subType.toString():"",n="","ticket"==s)switch(e){ + case"heroGacha":case"heroSelect":n="hero"; + break; + case"pet":case"petSelect":n="pet"; + break; + case"treasureGacha":n="relic"} + ""!=n&&(e&&(this.objByType[`${ + s} + _${ + e} + `]=i[r]),i[r].inventoryType=n,this.obj[n]||(this.obj[n]=[]),this.obj[n].push(i[r]),this.obj.all.push(i[r]),this.types.includes(n)||this.types.push(n))} + lS.getInstance().dispatchCustomEvent("UserInventory")} + getTypes(){ + return this.types} + getListWithType(t){ + return this.obj[t]} + getDataWithTypeAndSubType(t,i){ + return this.objByType[`${ + t} + _${ + i} + `]} + } + ; + Kt(X6,"InventoryManager"),zt(X6,"instance"); + let Y6=X6; + var J6=(t=>(t.all="all",t.hero="hero",t.relic="relic",t.pet="pet",t))(J6||{ + } + ); + const Q6=class t{ + constructor(){ + zt(this,"data",{ + hero5:0,hero7:0,treasure5:0,treasure6:0,treasure7:0,treasure8:0,treasure9:0} + )} + static getInstance(){ + return null==this.instance&&(this.instance=new t),this.instance} + setData(t){ + if(t)for(const i in this.data)i in t&&(this.data[i]=Number(t[i]))} + getHeroTransTicket(t=5){ + const i=`hero${ + t} + `; + return i in this.data?this.data[i]:0} + getTreasureTransTicket(t=6){ + const i=`treasure${ + t} + `; + return i in this.data?this.data[i]:0} + } + ; + Kt(Q6,"TransTicketManager"),zt(Q6,"instance"); + let Z6=Q6; + const t4=class t extends AB{ + constructor(){ + super(),zt(this,"lblDesc"),zt(this,"btnConfirm"),zt(this,"icons",[]),this.outSideClickHide=!0,this.title=AG.getValueReplace("GAME_181","##",5,"5성 병사 뽑기"),this.lblDesc=new YD("",13421772,aD.DEFAULT_FONT_OPTION_16),this.lblDesc.align="center",this.contentContainer.addChild(this.lblDesc),this.btnConfirm=new QL(AG.getText("COMMON_1","확인")),this.btnConfirm.color=QL.GREEN,this.btnConfirm.width=160,this.btnConfirm.height=50,this.btnConfirm.onClick=()=>this.hide(),this.contentContainer.addChild(this.btnConfirm)} + static getInstance(){ + return this._instance||(this._instance=new t),this._instance} + async showGuide(){ + this.title=AG.getValueReplace("GAME_181","##",5,"5성 병사 뽑기"),this.btnConfirm.text=AG.getText("COMMON_1","확인"); + const t=vx.getInstance().bookList.filter(t=>5===t.grade&&0===t.evolStage&&t.canPurchase&&t.honor>=2&&t.kindNum<1e3); + this.update(t,this.title),await this.loadImage(),super.show()} + showGuideOfHeroGacha(){ + this.title=AG.getText("GAME_764","5성 영웅 확정권"),this.btnConfirm.text=AG.getText("COMMON_1","확인"); + const t=vx.getInstance(),i=t.honorNumberMax,s=t.bookList.filter(t=>5===t.grade&&0===t.evolStage&&t.canPurchase&&(t.honor>=1&&t.honor<i||t.honor<1)&&t.kindNum<1e3); + this.update(s,this.title),super.show()} + update(t,i){ + var s,e; + for(const p of this.icons)this.contentContainer.removeChild(p); + this.icons=[]; + const n=t.length,h=n>0?(100/n).toFixed(2):"0",r=AG.getText("GAME_602","아래 병사 중 랜덤한 병사를 획득합니다.")+" "+AG.getText("COMMON_475","획득 확률은 모두 동일합니다.")+`\n(${ + AG.getText("COMMON_476","개별 획득 확률")} + : ${ + h} + %(=1/${ + n} + ))`; + this.lblDesc.text=r; + for(let p=0; + p<t.length; + p++){ + const i=new d3; + i.scale=.7,i.setDataWithKindNum(t[p].kindNum),this.contentContainer.addChild(i),this.icons.push(i)} + const o=(null==(s=this.icons[0])?void 0:s.width)??70,a=(null==(e=this.icons[0])?void 0:e.height)??70,c=Math.ceil(t.length/4),l=4*o+15; + this.width=520,this.title=i,aD.setLabelWrapWidth(this.lblDesc,this.width-55),this.lblDesc.x=.5*(this.width-this.lblDesc.width),this.lblDesc.y=65; + const u=this.lblDesc.y+this.lblDesc.height+15,d=.5*(this.width-l)+5; + for(let p=0; + p<this.icons.length; + p++){ + const t=p%4,i=Math.floor(p/4); + this.icons[p].x=d+t*(o+5),this.icons[p].y=u+i*(a+2)} + const f=u+c*(a+2)+35; + this.btnConfirm.x=.5*(this.width-this.btnConfirm.width),this.btnConfirm.y=f,this.height=f+this.btnConfirm.height+30,this.btnClose.x=this.width-this.btnClose.width-12} + } + ; + Kt(t4,"HeroDrawGuidePopup"),zt(t4,"_instance"); + let i4=t4; + const s4=class extends Be{ + constructor(){ + super(),zt(this,"icon",new We(ZA.getTexture("UI_Ekkorr","UI_T001"))),zt(this,"bg",new We(ZA.getTexture("UI_Ekkorr","HeroFrame_1_Bg"))),zt(this,"cover",new We(ZA.getTexture("UI_Ekkorr","HeroFrame_1"))),zt(this,"lblEnhance",new YD("+0",16776960,aD.DEFAULT_OUTLINE_FONT_OPTION_16)),zt(this,"posList",[30,26,24,19,16,13,9]),zt(this,"star",new We(ZA.getTextures("UI_Ekkorr","UI_UNIT_RARE")[3])),zt(this,"trans",new We(ZA.getTexture("UI_Ekkorr","Trans0001"))),this.icon.x=3,this.icon.y=3,this.bg.x=3,this.bg.y=3,this.addChild(this.bg),this.addChild(this.icon),this.cover.x=0,this.cover.y=0,this.addChild(this.cover),this.star.x=this.posList[3],this.star.y=this.bg.height-this.star.height,this.addChild(this.star),this.icon.x=.5*(this.bg.height-this.icon.height),this.icon.y=.5*(this.bg.height-this.icon.height),this.lblEnhance.x=this.bg.width-this.lblEnhance.width-1,this.lblEnhance.y=3,this.addChild(this.lblEnhance),this.trans.scale=1.2,this.trans.x=5,this.trans.y=7,this.trans.visible=!1,this.addChild(this.trans)} + setVO(t){ + this.icon.texture=ZA.getTexture("UI_Ekkorr",`UI_T${ + uU.addZeros(3,t.kindNum)} + `),this.icon.width=this.icon.height=this.cover.width-6,this.icon.x=3,this.icon.y=2,this.lblEnhance.text=`+${ + t.enhance} + `,this.star.texture=ZA.getTextures("UI_Ekkorr","UI_UNIT_RARE")[t.grade-1],this.star.x=this.posList[t.grade-1],this.bg.texture=ZA.getTexture("UI_Ekkorr",`HeroFrame_${ + t.grade} + _Bg`),this.cover.texture=ZA.getTexture("UI_Ekkorr",`HeroFrame_${ + t.grade} + `),t.trans&&t.trans>0?(this.trans.texture=ZA.getTexture("UI_Ekkorr",`Trans000${ + t.trans} + `),this.trans.visible=!0):this.trans.visible=!1} + hideTrans(){ + this.trans.visible=!1} + showTrans(t){ + t<=0?this.trans.visible=!1:(this.trans.texture=ZA.getTexture("UI_Ekkorr",`Trans000${ + t} + `),this.trans.visible=!0)} + setDataWithKindNum(t){ + const i=Wx.getInstance().getBookDataByKindNum(t); + i&&this.setVO(i)} + hideFrame(){ + this.bg.visible=!1,this.cover.visible=!1} + showFrame(){ + this.bg.visible=!0,this.cover.visible=!0} + get width(){ + return this.bg.width} + get height(){ + return this.bg.height} + hideEnhance(){ + this.lblEnhance.visible=!1} + showEnhance(){ + this.lblEnhance.visible=!0} + } + ; + Kt(s4,"TreasureIcon"); + let e4=s4; + const n4=class t extends AB{ + constructor(){ + super(),zt(this,"lblDesc"),zt(this,"btnConfirm"),zt(this,"icons",[]),this.outSideClickHide=!0,this.title=AG.getValueReplace("GAME_184","##",6,"6성 유물 뽑기"),this.lblDesc=new YD("",13421772,aD.DEFAULT_FONT_OPTION_16),this.lblDesc.align="center",this.contentContainer.addChild(this.lblDesc),this.btnConfirm=new QL(AG.getText("COMMON_1","확인")),this.btnConfirm.color=QL.GREEN,this.btnConfirm.width=160,this.btnConfirm.height=50,this.btnConfirm.onClick=()=>this.hide(),this.contentContainer.addChild(this.btnConfirm)} + static getInstance(){ + return this._instance||(this._instance=new t),this._instance} + async showGuide(){ + this.title=AG.getText("GAME_218","유물 뽑기권"),this.btnConfirm.text=AG.getText("COMMON_1","확인"); + const t=Wx.getInstance().bookList.filter(t=>6===t.grade); + this.update(t,this.title),await this.loadImage(),super.show()} + showGuideOfTreasureGacha(){ + this.title=AG.getText("GAME_218","유물 뽑기권"),this.btnConfirm.text=AG.getText("COMMON_1","확인"); + const t=Wx.getInstance().bookList.filter(t=>6===t.grade); + this.update(t,this.title),super.show()} + update(t,i){ + var s,e; + for(const g of this.icons)this.contentContainer.removeChild(g); + this.icons=[]; + const n=Wx.getInstance(),h=new Set; + for(const g of n.equipedList)h.add(g.kindNum); + for(const g of n.ownedList)h.add(g.kindNum); + const r=t.filter(t=>!h.has(t.kindNum)).length; + let o=AG.getText("GAME_603","아래 유물 중 랜덤한 유물을 획득합니다.")+" "+AG.getText("COMMON_475","획득 확률은 모두 동일합니다."); + if(r>0){ + const t=(100/r).toFixed(2); + o+=`\n(${ + AG.getText("COMMON_476","개별 획득 확률")} + : ${ + t} + %(=1/${ + r} + ))`} + this.lblDesc.text=o; + for(let g=0; + g<t.length; + g++){ + const i=new e4; + i.scale=.75,i.setDataWithKindNum(t[g].kindNum),i.hideEnhance(),i.alpha=h.has(t[g].kindNum)?.35:1,this.contentContainer.addChild(i),this.icons.push(i)} + const a=(null==(s=this.icons[0])?void 0:s.width)??70,c=(null==(e=this.icons[0])?void 0:e.height)??70,l=Math.ceil(t.length/7),u=7*a-12; + this.width=520,this.title=i,aD.setLabelWrapWidth(this.lblDesc,this.width-40),this.lblDesc.x=.5*(this.width-this.lblDesc.width),this.lblDesc.y=65; + const d=this.lblDesc.y+this.lblDesc.height+15,f=.5*(this.width-u)+5; + for(let g=0; + g<this.icons.length; + g++){ + const t=g%7,i=Math.floor(g/7); + this.icons[g].x=f+t*(a+-2),this.icons[g].y=d+i*(c+2)} + const p=d+l*(c+2)+10; + this.btnConfirm.x=.5*(this.width-this.btnConfirm.width),this.btnConfirm.y=p,this.height=p+this.btnConfirm.height+30,this.btnClose.x=this.width-this.btnClose.width-12} + } + ; + Kt(n4,"TreasureDrawGuidePopup"),zt(n4,"_instance"); + let h4=n4; + const r4=class t{ + constructor(){ + zt(this,"battlePoolMap",{ + } + ),zt(this,"seasonSetMap",{ + } + ),zt(this,"rewardMap",{ + } + ),zt(this,"seasonSetKindNum",0),zt(this,"seasonNumber",0),zt(this,"seasonEndTime",0),zt(this,"currentFloor",0),zt(this,"floorStars",[]),zt(this,"ticket",0),zt(this,"maxTicket",5),zt(this,"ticketTime",0),zt(this,"currentBattleFloor",0),zt(this,"bookLoaded",!1)} + static getInstance(){ + return null==this.instance&&(this.instance=new t),this.instance} + setBattlePoolData(t){ + if(this.battlePoolMap={ + } + ,t)for(const i of t){ + const t=new c4; + t.kindNum=i.kindNum,t.difficulty=i.difficulty,t.enemyKindNums=i.enemyKindNums||"",t.enemyTrans=i.enemyTrans||"",t.enemyShields=i.enemyShields||"",t.enemyLevels=i.enemyLevels||"",t.tribes=i.tribes,t.gradeMax=i.gradeMax,t.femaleExclude=i.femaleExclude,t.maleExclude=i.maleExclude,t.rangeExclude=i.rangeExclude,t.meleeExclude=i.meleeExclude,t.airExclude=i.airExclude,t.star1=i.star1,t.star2=i.star2,t.star3=i.star3,this.battlePoolMap[t.kindNum]=t} + } + setSeasonSetData(t){ + if(this.seasonSetMap={ + } + ,t)for(const i of t){ + const t=new u4; + t.kindNum=i.kindNum,t.battleIDs=i.battleIDs,this.seasonSetMap[t.kindNum]=t} + } + setRewardData(t){ + if(this.rewardMap={ + } + ,t)for(const i of t){ + const t=new f4; + t.floor=i.floor,t.gem1=i.gem1,t.gem2=i.gem2,t.gem3=i.gem3,t.honor1=i.honor1,t.honor2=i.honor2,t.honor3=i.honor3,this.rewardMap[t.floor]=t} + } + setData(t){ + for(this.seasonSetKindNum=t.seasonSetKindNum,this.seasonNumber=t.seasonNumber||0,this.seasonEndTime=t.seasonEndTime?new Date(t.seasonEndTime).getTime():0,this.currentFloor=t.currentFloor,this.floorStars=t.floorStars||[]; + this.floorStars.length<30; + )this.floorStars.push(0); + this.ticket=t.ticket,this.maxTicket=t.maxTicket,this.ticketTime=new Date(t.ticketTime).getTime()+1e3,this.currentBattleFloor=t.currentBattleFloor} + getFloorList(){ + const t=this.seasonSetMap[this.seasonSetKindNum]; + if(!t)return[]; + const i=t.battleIDs.split("|").map(Number),s=[],e=Math.min(this.currentFloor+1,30); + for(let n=0; + n<e; + n++){ + const t=this.battlePoolMap[i[n]]; + if(!t)continue; + const e=new g4; + e.floor=n+1,e.stars=this.floorStars[n]||0,e.battleVO=t,e.reward=this.rewardMap[n+1],e.isCleared=this.floorStars[n]>0,e.isNext=n+1===this.currentFloor+1,s.push(e)} + return s} + getFloorListReversed(){ + return this.getFloorList().reverse()} + getBattlePool(t){ + return this.battlePoolMap[t]} + buildFloorVO(t){ + if(t<1||t>30)return null; + const i=this.seasonSetMap[this.seasonSetKindNum]; + if(!i)return null; + const s=i.battleIDs.split("|").map(Number),e=t-1; + if(e>=s.length)return null; + const n=this.battlePoolMap[s[e]]; + if(!n)return null; + const h=new g4; + return h.floor=t,h.stars=this.floorStars[e]||0,h.battleVO=n,h.reward=this.rewardMap[t],h.isCleared=this.floorStars[e]>0,h.isNext=t===this.currentFloor+1,h} + getReward(t){ + return this.rewardMap[t]} + } + ; + Kt(r4,"TowerDataManager"),zt(r4,"instance"); + let o4=r4; + const a4=class{ + constructor(){ + zt(this,"kindNum",0),zt(this,"difficulty",0),zt(this,"enemyKindNums",""),zt(this,"enemyTrans",""),zt(this,"enemyShields",""),zt(this,"enemyLevels",""),zt(this,"tribes","0"),zt(this,"gradeMax",0),zt(this,"femaleExclude","N"),zt(this,"maleExclude","N"),zt(this,"rangeExclude","N"),zt(this,"meleeExclude","N"),zt(this,"airExclude","N"),zt(this,"star1",0),zt(this,"star2",0),zt(this,"star3",0)} + static parseEnemies(t){ + const i=new Array(20).fill(null); + if(!t||!t.enemyKindNums)return i; + const s=String(t.enemyKindNums).split("|"),e=Math.min(s.length,20); + for(let n=0; + n<e; + n++){ + const t=s[n].trim(); + if(!t||"0"===t)continue; + const e=t.indexOf("-"),h=e>=0?t.substring(0,e):t,r=e>=0?t.substring(e+1):"0",o=Number(h); + o>0&&(i[n]={ + kindNum:o,trans:Number(r)||0} + )} + return i} + static stringifyEnemies(t,i){ + let s=-1; + for(let n=19; + n>=0; + n--)if((t[n]??-1)>0){ + s=n; + break} + if(s<0)return""; + const e=[]; + for(let n=0; + n<=s; + n++){ + const s=t[n]??-1; + s<=0?e.push("0"):e.push(`${ + s} + -${ + i[n]??0} + `)} + return e.join("|")} + } + ; + Kt(a4,"TowerBattlePoolVO"); + let c4=a4; + const l4=class{ + constructor(){ + zt(this,"kindNum",0),zt(this,"battleIDs","")} + } + ; + Kt(l4,"TowerSeasonSetVO"); + let u4=l4; + const d4=class{ + constructor(){ + zt(this,"floor",0),zt(this,"gem1",0),zt(this,"gem2",0),zt(this,"gem3",0),zt(this,"honor1",0),zt(this,"honor2",0),zt(this,"honor3",0)} + } + ; + Kt(d4,"TowerRewardVO"); + let f4=d4; + const p4=class{ + constructor(){ + zt(this,"floor",0),zt(this,"stars",0),zt(this,"battleVO"),zt(this,"reward"),zt(this,"isCleared",!1),zt(this,"isNext",!1)} + } + ; + Kt(p4,"TowerFloorVO"); + let g4=p4; + const m4=class t{ + constructor(){ + zt(this,"lastFetchTime",0),zt(this,"hasData",!1),zt(this,"dungeonRechargeMs",0),zt(this,"towerRechargeMs",0),zt(this,"towerSnapshot",null),zt(this,"pvpSnapshot",null),zt(this,"dailyRankingSnapshot",null)} + static getInstance(){ + return this.instance||(this.instance=new t),this.instance} + setSummary(t){ + if(t){ + if(this.hasData=!0,this.lastFetchTime=ix.time,t.dungeon){ + this.dungeonRechargeMs=t.dungeon.ticketRechargeMs??0; + const i=Rx.getInstance(); + i.ticket=t.dungeon.ticket??i.ticket,i.maxTicket=t.dungeon.maxTicket??i.maxTicket,t.dungeon.ticketTime&&(i.ticketTime=new Date(t.dungeon.ticketTime).getTime()+1e3)} + if(t.tower){ + this.towerRechargeMs=t.tower.ticketRechargeMs??0; + const i=o4.getInstance(); + i.seasonNumber>0&&(i.ticket=t.tower.ticket??i.ticket,i.maxTicket=t.tower.maxTicket??i.maxTicket,t.tower.ticketTime&&(i.ticketTime=new Date(t.tower.ticketTime).getTime()+1e3),void 0!==t.tower.currentFloor&&(i.currentFloor=t.tower.currentFloor),void 0!==t.tower.seasonNumber&&(i.seasonNumber=t.tower.seasonNumber),t.tower.seasonEndTime&&(i.seasonEndTime=new Date(t.tower.seasonEndTime).getTime())),this.towerSnapshot={ + seasonNumber:t.tower.seasonNumber??0,seasonEndTime:t.tower.seasonEndTime?new Date(t.tower.seasonEndTime).getTime():0,currentFloor:t.tower.currentFloor??0,ticket:t.tower.ticket??0,maxTicket:t.tower.maxTicket??0,ticketTime:t.tower.ticketTime?new Date(t.tower.ticketTime).getTime():0} + } + this.pvpSnapshot=t.pvp??null,this.dailyRankingSnapshot=t.dailyRanking??null} + } + has(){ + return this.hasData} + isStale(t){ + return!this.hasData||ix.time-this.lastFetchTime>=t} + getDungeon(){ + if(!this.hasData)return null; + const t=Rx.getInstance(); + return{ + ticket:t.ticket,maxTicket:t.maxTicket,ticketTime:t.ticketTime,ticketRechargeMs:this.dungeonRechargeMs} + } + getTower(){ + if(!this.hasData)return null; + const t=o4.getInstance(); + return t.seasonNumber>0?{ + seasonNumber:t.seasonNumber,seasonEndTime:t.seasonEndTime,currentFloor:t.currentFloor,ticket:t.ticket,maxTicket:t.maxTicket,ticketTime:t.ticketTime,ticketRechargeMs:this.towerRechargeMs} + :this.towerSnapshot?{ + ...this.towerSnapshot,ticketRechargeMs:this.towerRechargeMs} + :null} + getPvp(){ + return this.pvpSnapshot} + updatePvpTicket(t,i){ + this.pvpSnapshot&&(this.pvpSnapshot.ticket=t,void 0!==i&&(this.pvpSnapshot.ticketTime=i))} + getDailyRanking(){ + return this.dailyRankingSnapshot} + updateDailyRanking(t,i){ + this.dailyRankingSnapshot?(this.dailyRankingSnapshot.joined=t,this.dailyRankingSnapshot.score=i):this.dailyRankingSnapshot={ + joined:t,score:i,date:""} + } + invalidate(){ + this.lastFetchTime=0} + } + ; + Kt(m4,"BattleSummaryManager"),zt(m4,"instance"); + let w4=m4; + const v4=class extends Be{ + constructor(){ + super()} + get className(){ + return""} + updateLanguage(){ + } + } + ; + Kt(v4,"BaseSubView"); + let b4=v4; + const y4=class t extends JV{ + static getInstance(){ + return null==this.instance&&(this.instance=new t),this.instance} + constructor(){ + super(),this.currentSubView=Pht.getInstance()} + setData(){ + Pht.getInstance().setData(),this.currentSubView=Pht.getInstance()} + get className(){ + return"BattleView"} + } + ; + Kt(y4,"BattleView"),zt(y4,"instance"); + let _4=y4; + const M4=class t extends QL{ + constructor(t,i=120,s=50){ + super(t),zt(this,"index",-1),zt(this,"bg2"),zt(this,"indicator"),zt(this,"minWidth",120),zt(this,"_selected",!0),zt(this,"padding",50),zt(this,"_autoResize",!0),zt(this,"_allowMultiline",!1),this.minWidth=i,this.padding=s,this.container.removeChild(this.bg),this.lbl.textSize=18,this._activatedTextColor=YD.LIGHT_BROWN,this.updateTextColor(),this.bg2=new CM({ + texture:ZA.getTexture("UI_Ekkorr","Base_Tooltip"),leftWidth:9,topHeight:9,rightWidth:9,bottomHeight:10} + ),this.bg2.width=101,this.bg2.height=45,this.bg2.x=.5*-this.bg2.width,this.bg2.y=.5*-this.bg2.height,this.container.addChildAt(this.bg2,0),this.indicator=new CM({ + texture:ZA.getTexture("UI_Ekkorr","SelectedBar"),leftWidth:5,topHeight:1,rightWidth:5,bottomHeight:1} + ),this.container.addChild(this.indicator),this.container.x=.5*this.bg2.width,this.container.y=.5*this.bg2.height,this.width=100,this.height=44,this._autoResize&&(this.text=t),this.updateHitArea(),this.selected=!1} + updateHitArea(){ + null!=this.bg2&&(this._hitArea.width=this.bg2.width,this._hitArea.height=this.bg2.height,this.hitArea=this._hitArea)} + get width(){ + return this.bg2.width-2*t.TRANSPARENT_BORDER} + set width(i){ + i<this.minWidth&&(i=this.minWidth); + const s=t.TRANSPARENT_BORDER; + this.bg2.width=i+2*s,this.bg2.x=.5*-this.bg2.width,this.lbl.x=.5*-this.lbl.width,this.container.x=.5*i,this.indicator.width=i-16,this.indicator.x=.5*-this.indicator.width,this.updateHitArea()} + set height(i){ + const s=t.TRANSPARENT_BORDER; + this.bg2.height=i+2*s,this.bg2.y=.5*-this.bg2.height,this.lbl.y=.5*-this.lbl.height,this.container.y=.5*i,this.indicator.y=this.bg2.y+this.bg2.height-this.indicator.height-10,this.updateHitArea()} + get height(){ + return this.bg2.height-2*t.TRANSPARENT_BORDER} + get selected(){ + return this._selected} + set selected(t){ + t!=this._selected&&(this._selected=t,1==this._selected?(this.indicator.visible=!0,this.activatedTextColor=aD.COLOR_ORANGE):(this.indicator.visible=!1,this.activatedTextColor=aD.DEFAULT_COLOR))} + get autoResize(){ + return this._autoResize} + set autoResize(t){ + this._autoResize=t} + get allowMultiline(){ + return this._allowMultiline} + set allowMultiline(t){ + this._allowMultiline!==t&&(this._allowMultiline=t,this.lbl.text&&(this.text=this.lbl.text))} + applyMultilineLayout(i){ + const s=Math.max(40,this.width-2*t.MULTILINE_SIDE_PAD); + if(this.lbl.setWrapWidth(0),this.lbl.lineHeight=0,this.lbl.text=i,this.lbl.width<=s)return this.lbl.x=.5*-this.lbl.width,void(this.lbl.y=.5*-this.lbl.height); + this.lbl.align="center",this.lbl.lineHeight=Math.floor(this.lbl.textSize*t.MULTILINE_LINE_HEIGHT_RATIO)+t.MULTILINE_LINE_HEIGHT_EXTRA,this.lbl.setWrapWidth(s),this.lbl.text=i,this.lbl.x=.5*-this.lbl.width,this.lbl.y=.5*-this.lbl.height+t.MULTILINE_Y_OFFSET} + setCompactStyle(t,i){ + this.lbl.textSize=t,this.padding=i,this._autoResize=!0,this.lbl.setWrapWidth(0),this.text=this.lbl.text} + setMultilineMode(t,i,s=16){ + this._autoResize=!1,this.lbl.textSize=s,this.width=t,this.height=i; + const e=Math.max(40,t-10); + this.lbl.setWrapWidth(e),this.lbl.align="center",this.lbl.x=.5*-this.lbl.width,this.lbl.y=.5*-this.lbl.height} + fitWithinWidth(t,i=50){ + this._autoResize=!1; + const s=this.lbl.text; + this.lbl.setWrapWidth(0),this.lbl.textSize=18,this.lbl.text=s,this.width=t,this.height=i; + const e=Math.max(40,t-10); + if(this.lbl.width<=e)return this.lbl.x=.5*-this.lbl.width,void(this.lbl.y=.5*-this.lbl.height); + for(let n=17; + n>=12; + n--)if(this.lbl.textSize=n,this.lbl.text=s,this.lbl.width<=e)return this.lbl.x=.5*-this.lbl.width,void(this.lbl.y=.5*-this.lbl.height); + this.lbl.textSize=12,this.lbl.setWrapWidth(e),this.lbl.align="center",this.lbl.text=s,this.lbl.x=.5*-this.lbl.width,this.lbl.y=.5*-this.lbl.height} + set text(t){ + super.text=t,this._autoResize?this.width=this.lbl.width+this.padding:this._allowMultiline?this.applyMultilineLayout(t):this.lbl.x=.5*-this.lbl.width} + updateEventTag(t,i){ + this.eventTag&&(this.eventTag.scale=.7,this.eventTag.x=this.bg2.x+this.bg2.width-this.eventTag.width+t,this.eventTag.y=this.bg2.y+i)} + } + ; + Kt(M4,"SubMenuButton"),zt(M4,"TRANSPARENT_BORDER",3),zt(M4,"MULTILINE_SIDE_PAD",10),zt(M4,"MULTILINE_LINE_HEIGHT_RATIO",.85),zt(M4,"MULTILINE_LINE_HEIGHT_EXTRA",2),zt(M4,"MULTILINE_Y_OFFSET",-2); + let E4=M4; + const A4=class extends XI{ + constructor(){ + super(),zt(this,"bg"),zt(this,"lblRankTitle",new YD("rank",11184810,aD.DEFAULT_OUTLINE_FONT_OPTION_16)),zt(this,"lblRankNum",new YD("",aD.DEFAULT_COLOR,aD.ORANGE_OUTLINE_FONT_OPTION_28)),zt(this,"lblNameInfo",new YD("",aD.DEFAULT_COLOR,aD.DEFAULT_OUTLINE_FONT_OPTION_17)),zt(this,"lblDetail",new YD("",11184810,aD.DEFAULT_OUTLINE_FONT_OPTION_16)),zt(this,"btnFight",new QL("전투")),zt(this,"onFight"),this.bg=new CM({ + texture:ZA.getTexture("UI_Ekkorr","Popup_List_02"),leftWidth:140,topHeight:30,rightWidth:20,bottomHeight:30} + ),this.bg.width=615,this.bg.height=80,this.bg.x=5,this.addChild(this.bg),this.lblRankTitle.x=25,this.lblRankTitle.y=6,this.addChild(this.lblRankTitle),this.lblRankNum.x=50,this.lblRankNum.y=24,this.addChild(this.lblRankNum),this.lblNameInfo.x=140,this.lblNameInfo.y=12,this.addChild(this.lblNameInfo),this.lblDetail.x=140,this.lblDetail.y=42,this.addChild(this.lblDetail),this.btnFight.color=QL.RED,this.btnFight.width=120,this.btnFight.height=55,this.btnFight.x=this.bg.width-this.btnFight.width-10,this.btnFight.y=.5*(this.bg.height-this.btnFight.height),this.btnFight.onClick=()=>{ + this.data&&this.onFight&&this.onFight(this.data)} + ,this.addChild(this.btnFight)} + setData(t){ + this.data=t,this.lblRankNum.text=`${ + t.rank} + `,this.lblRankNum.x=15+.5*(100-this.lblRankNum.width); + const i=Number(t.maxWave)||0,s=Math.floor(i/100); + this.lblNameInfo.text=`${ + t.name} + ( Lv.${ + s} + )`; + const e=Number(t.total)||0,n=Number(t.win)||0,h=e-n; + this.lblDetail.text=`${ + t.point.toLocaleString()} + `+AG.getText("COMMON_37","점수").charAt(0)+` ( ${ + e} + -${ + n} + -${ + h} + )`,this.btnFight.text=AG.getText("GAME_70","전투")} + get height(){ + return this.bg.height+2} + } + ; + Kt(A4,"PVPOpponentItemRenderer"); + let S4=A4; + const T4=class extends d3{ + constructor(){ + super(),zt(this,"index",-1),zt(this,"onClick"),zt(this,"plus",new We(ZA.getTexture("UI_Ekkorr","UI_Plus"))),zt(this,"check",new We(ZA.getTexture("UI_Ekkorr","Base_Check01"))),zt(this,"atkTypeIcon",new We),zt(this,"_showAtkType",!1),zt(this,"_selected",!1),zt(this,"_activated",!0),this.plus.scale=.8,this.plus.x=.5*(this.bg.width-this.plus.width)-5,this.plus.y=.5*(this.bg.height-this.plus.height)+2,this.addChildAt(this.plus,0),this.check.scale=1.2,this.check.x=.5*(this.bg.width-this.check.width)-5,this.check.y=.5*(this.bg.height-this.check.height),this.addChild(this.check),this.check.visible=!1,this.atkTypeIcon.scale=1.15,this.atkTypeIcon.visible=!1,this.addChild(this.atkTypeIcon),this.eventMode="dynamic",this.on("pointertap",this.onTap,this)} + set showAtkType(t){ + this._showAtkType=t,this.atkTypeIcon.visible=t} + get showAtkType(){ + return this._showAtkType} + updateAtkTypeIcon(t){ + if(!this._showAtkType||!t||t.kindNum<=0)return void(this.atkTypeIcon.visible=!1); + const i=t.dmgType===nx.MAGICAL?"UI_MAGIC_WAND":"UI_SWORD"; + this.atkTypeIcon.texture=ZA.getTexture("UI_Ekkorr",i),this.atkTypeIcon.x=this.bg.width-this.atkTypeIcon.width-22,this.atkTypeIcon.y=this.bg.height-this.atkTypeIcon.height-4,this.atkTypeIcon.visible=!0} + hidePlusIcon(){ + this.plus.visible=!1} + hideLevel(){ + this.lblLevel.visible=!1} + setNumber(t){ + this.lblCount.text=t.toString(),this.lblCount.visible=!0} + setAlphaToFrame(t){ + this.bg.alpha=t,this.cover.alpha=t,this.setTransAlpha(t)} + set selected(t){ + this._selected=t,this.check.visible=t,this.plus.visible=!t} + get selected(){ + return this._selected} + onTap(t){ + 0!=this._activated&&(KL.getInstance().playSFX(KL.SFX_NORMAL_CLICK),this.onClick&&this.onClick(this.index))} + setDataWith(t,i){ + this.index=t,this.setMode(l3.HERO_PVP),-1==i.kindNum?(this.icon.visible=!1,this.lblLevel.visible=!1,this.lblEnhance.visible=!1,this.lblCount.visible=!1,this.bg.texture=ZA.getTexture("UI_Ekkorr","HeroFrame1} + "),this.cover.texture=ZA.getTexture("UI_Ekkorr","HeroCover1"),this.atkTypeIcon.visible=!1,this.hideTrans()):(this.icon.visible=!0,super.setData(i),this.updateAtkTypeIcon(i))} + get activated(){ + return this._activated} + set activated(t){ + t!=this._activated&&(this._activated=t,this._activated)} + } + ; + Kt(T4,"HeroButton"); + let C4=T4; + const k4=class t{ + constructor(){ + zt(this,"kindNum",0),zt(this,"trans",0),zt(this,"remaining",0),zt(this,"total",0)} + static getVO(){ + return t.recycleList.length>0?t.recycleList.pop():new t} + static set(t,i,s,e,n){ + return t.kindNum=i,t.trans=s,t.remaining=e,t.total=n,t} + remove(){ + this.kindNum=0,this.trans=0,this.remaining=0,this.total=0,t.recycleList.push(this)} + static removeAll(t){ + for(const i of t)i.remove(); + t.length=0} + } + ; + Kt(k4,"TowerHeroSelectVO"),zt(k4,"recycleList",[]); + let O4=k4; + const I4=class t extends XI{ + constructor(){ + super(),zt(this,"bg"),zt(this,"icons"),zt(this,"posList",[]),zt(this,"rowData",[]),zt(this,"badges",[]),zt(this,"atkTypeIcons",[]),this.bg=new CM({ + texture:ZA.getTexture("UI_Ekkorr","Popup_List_00"),leftWidth:20,topHeight:20,rightWidth:20,bottomHeight:30} + ),this.bg.width=630,this.bg.height=62,this.bg.visible=!1,this.addChild(this.bg),this.icons=[],this.posList=[]; + for(let t=0; + t<7; + t++){ + const i=new d3; + i.scale=.7,i.x=7+t*(i.width+1),i.y=4,this.addChild(i),this.icons.push(i),this.posList.push(i.x); + const s=new We; + s.width=32,s.height=32,s.x=i.x+i.width-37,s.y=i.y,s.visible=!1,this.addChild(s),this.badges.push(s); + const e=new We; + e.scale=.8,e.x=i.x+i.width-39,e.y=i.y+i.height-22,e.visible=!1,this.addChild(e),this.atkTypeIcons.push(e)} + this.posList.push(640)} + get width(){ + return this.bg.width} + get height(){ + return this.bg.height} + setData(i){ + var s; + const e=i; + if(e){ + this.rowData=e; + for(let i=0; + i<this.icons.length; + i++){ + const n=this.icons[i]; + if(i<e.length){ + const h=e[i]; + if(n.setMode(l3.TOWER),h.kindNum<=0)n.visible=!0,n.alpha=1,n.tint=16777215,n.hideIcon(),n.hideLevel(),n.hideEnhance(),n.setCountText(""),this.badges[i].visible=!1,this.atkTypeIcons[i].visible=!1; + else{ + n.setDataWithKindNum(h.kindNum,h.trans),n.visible=!0,h.remaining<=0?n.tint=6710886:n.tint=16777215,n.setCountText(`${ + h.remaining} + /${ + h.total} + `),n.lblCount.x=3; + const e=null==(s=t.skillCodeMap)?void 0:s.get(h.kindNum); + if("medal"===e?(this.badges[i].texture=ZA.getTexture("UI_Ekkorr","Icon_Medalbuff_02"),this.badges[i].visible=!0):"startwave"===e?(this.badges[i].texture=ZA.getTexture("UI_Ekkorr","Icon_Startwave_02"),this.badges[i].visible=!0):this.badges[i].visible=!1,t.showAttackType&&!this.badges[i].visible){ + const t=vx.getInstance().getBookVO(h.kindNum); + if(t){ + const s=t.dmgType===nx.MAGICAL?"UI_MAGIC_WAND":"UI_SWORD"; + this.atkTypeIcons[i].texture=ZA.getTexture("UI_Ekkorr",s),this.atkTypeIcons[i].visible=!0} + else this.atkTypeIcons[i].visible=!1} + else this.atkTypeIcons[i].visible=!1} + } + else n.visible=!1,this.badges[i].visible=!1,this.atkTypeIcons[i].visible=!1} + } + } + onClick(i,s){ + let e=-1; + for(let t=0; + t<this.icons.length; + t++)if(i>this.posList[t]&&i<this.posList[t+1]){ + e=t; + break} + if(-1!==e&&e<this.rowData.length){ + const i=this.rowData[e]; + this.icons[e].visible&&t.onHeroClick&&t.onHeroClick(i.kindNum,i.trans)} + } + } + ; + Kt(I4,"TowerHeroSelectItemRenderer"),zt(I4,"onHeroClick",null),zt(I4,"skillCodeMap",null),zt(I4,"showAttackType",!1); + let x4=I4; + const N4=class extends g3{ + constructor(){ + super(),zt(this,"receivedIcon"),zt(this,"activatedBg"),zt(this,"_activated",!0),zt(this,"_received",!1),this.activatedBg=new We(ZA.getTexture("UI_Ekkorr","Frame_Reward_01_nor")),this.activatedBg.visible=!this._activated,this.addChild(this.activatedBg),this.receivedIcon=new We(ZA.getTexture("UI_Ekkorr","Base_Check01")),this.receivedIcon.visible=this._received,this.addChild(this.receivedIcon)} + updateLayout(){ + if(super.updateLayout(),!this.receivedIcon)return; + const t=this.bg.width,i=this.bg.height; + this.receivedIcon.x=.5*(t-this.receivedIcon.width),this.receivedIcon.y=.5*(i-this.receivedIcon.height)} + get activated(){ + return this._activated} + set activated(t){ + t!=this._activated&&(this._activated=t,this.activatedBg.visible=!this._activated)} + get received(){ + return this._received} + set received(t){ + t!=this._received&&(this._received=t,this.receivedIcon.visible=this._received)} + } + ; + Kt(N4,"AchievementRewardItem"); + let P4=N4; + const R4=class extends Be{ + constructor(){ + super(),zt(this,"bg"),zt(this,"lbl"),zt(this,"_width",100),zt(this,"_widthMax",570),zt(this,"count",0),this.eventMode="none",this.bg=this.getBg(),this.bg.alpha=.9; + const t=aD.DEFAULT_OUTLINE_FONT_OPTION_16; + t.fill=14405050,t.stroke={ + color:"#333333",width:3,join:"round"} + ,this.lbl=new YD("0",t.fill,t),this.lbl.x=15,this.lbl.y=12,aD.setLabelWrapWidth(this.lbl,this._widthMax-2*this.lbl.x),this.addChild(this.bg,this.lbl),this.text="tooltip"} + getBg(){ + return new CM({ + texture:ZA.getTexture("UI_Ekkorr","Btn_Unit_01"),leftWidth:30,topHeight:20,rightWidth:30,bottomHeight:20} + )} + set text(t){ + this.lbl.text=t,this._width=this.lbl.width+2*this.lbl.x+5,this._width>this._widthMax&&(this._width=this._widthMax),this.updateBg()} + updateBg(){ + this.bg.width=this._width,this.bg.height=this.lbl.height+2*this.lbl.y} + show(t,i,s){ + this.x=i,this.y=s,t&&t.addChild(this),this.startCheckHide()} + hide(){ + this.parent&&this.parent.removeChild(this)} + get width(){ + return this._width} + get widthMax(){ + return this._widthMax} + set widthMax(t){ + this._widthMax=t,aD.setLabelWrapWidth(this.lbl,this._widthMax-2*this.lbl.x)} + get height(){ + return this.bg.height} + startCheckHide(){ + this.count=0,GM.getInstance().add(this.checkHide,this)} + checkHide(){ + ++this.count>180&&(this.count=0,this.hide(),GM.getInstance().remove(this.checkHide,this))} + } + ; + Kt(R4,"ToolTipBase"); + let D4=R4; + const L4=class t extends D4{ + static getInstance(){ + return this._instance||(this._instance=new t),this._instance} + constructor(){ + super()} + } + ; + Kt(L4,"ToolTip"),zt(L4,"_instance"); + let G4=L4; + const B4=class t extends XI{ + constructor(){ + super(),zt(this,"bg"),zt(this,"lblIndex"),zt(this,"icon",new We(ZA.getTexture("UI_Ekkorr","Package_2"))),zt(this,"lblName"),zt(this,"lblProgress"),zt(this,"barBg"),zt(this,"barFill"),zt(this,"rewardContainer",new Be),zt(this,"rewardItems",[]),this.bg=new CM({ + texture:ZA.getTexture("UI_Ekkorr","Popup_List_02"),leftWidth:135,topHeight:30,rightWidth:20,bottomHeight:30} + ),this.bg.width=t.W,this.bg.height=t.H,this.addChild(this.bg),this.lblIndex=new YD("",16764057,aD.DEFAULT_OUTLINE_FONT_OPTION_32),this.addChild(this.icon),this.lblName=new YD("",16764057,aD.DEFAULT_OUTLINE_FONT_OPTION_16),this.addChild(this.lblName),this.barBg=new QD,this.barBg.setIndex(4),this.barBg.width=t.BAR_W,this.barBg.height=t.BAR_H,this.barBg.alpha=.5,this.addChild(this.barBg),this.barFill=new QD,this.barFill.setIndex(3),this.barFill.width=t.BAR_W,this.barFill.height=t.BAR_H,this.addChild(this.barFill),this.lblProgress=new YD("0/0",16777215,aD.DEFAULT_OUTLINE_FONT_OPTION_16),this.addChild(this.lblProgress),this.addChild(this.rewardContainer); + for(let t=0; + t<7; + t++){ + const t=new P4; + t.scale.set(.7),t.visible=!1,this.rewardItems.push(t),this.rewardContainer.addChild(t)} + } + get width(){ + return t.W} + get height(){ + return t.H} + setData(i){ + const s=i.index+1; + this.lblIndex.text=`${ + s} + `,this.lblIndex.x=.5*(t.INDEX_AREA_W-this.lblIndex.width),this.lblIndex.y=.5*(this.height-this.lblIndex.height),this.icon.x=.5*(t.INDEX_AREA_W-this.icon.width),this.icon.y=.5*(this.height-this.icon.height); + const e=AG.getText("GAME_946","총 결제 금액"),n=fU.isUsdCurrency()?`$${ + uU.setComma(i.amount)} + `:`₩${ + uU.setComma(i.amount)} + `; + this.lblName.text=`${ + e} + (${ + n} + )`,this.lblName.height,t.BAR_H,this.lblName.x=140,this.lblName.y=5; + const h=this.lblName.y+this.lblName.height+5; + this.barBg.x=140,this.barBg.y=h,this.barFill.x=140,this.barFill.y=h; + const r=Number(i.amount)>0?Math.min(1,Math.max(0,Number(i.userAmount)/Number(i.amount))):0; + this.barFill.width=t.BAR_W*r,this.lblProgress.text=`${ + Math.floor(100*r)} + %`,this.lblProgress.x=140+this.barBg.width-this.lblProgress.width,this.lblProgress.y=this.lblName.y,this.showRewards(i.rewards,1==r),this.rewardContainer.x=140,this.rewardContainer.y=this.barBg.y+this.barBg.height+7} + showRewards(t,i){ + const s=Math.min(t.length,7); + let e=0,n=!1; + for(let h=0; + h<7; + h++){ + const r=this.rewardItems[h]; + n=!1,h<s?(r.setDataFrom(t[h]),r.visible=!0,r.x=e,e+=r.width*r.scale.x+5,r.received=i,r.activated=!i,r.type!=f3.ticket||r.subType!=f3.heroGacha&&r.subType!=f3.heroSelect&&r.subType!=f3.treasureGacha&&r.subType!=f3.petSelect||(n=!0)):r.visible=!1,this.setItemEvent(r,n)} + } + setItemEvent(t,i){ + t.eventMode="none",t.off("pointertap",this.onItemTap,this),i&&(t.eventMode="dynamic",t.on("pointertap",this.onItemTap,this))} + onItemTap(t){ + const i=t.target; + if(!i)return; + let s=""; + if(i.type==f3.ticket&&i.subType==f3.heroGacha?s=AG.getText("GAME_765","5성 영웅을 랜덤하게 획득할 수 있습니다."):i.type==f3.ticket&&i.subType==f3.heroSelect?s=AG.getText("GAME_943","제공되는 목록에서 원하는 5성 영웅을 선택할 수 있습니다."):i.type==f3.ticket&&i.subType==f3.treasureGacha?s=AG.getValueReplace("GAME_776","##",6,"6등급 유물을 랜덤하게 획득할 수 있습니다."):i.type==f3.ticket&&i.subType==f3.petSelect&&(s=AG.getText("GAME_944","제공되는 목록에서 원하는 펫 조각을 선택할 수 있습니다.")),s){ + const t=G4.getInstance(); + t.text=s; + let e=this.rewardContainer.x+i.x-20; + e+t.width+7>this.bg.x+this.bg.width&&(e=this.bg.x+this.bg.width-t.width-7); + let n=i.y-i.height; + n<7&&(n=7),t.show(this,e,n)} + } + } + ; + Kt(B4,"PaymentEventItemRenderer"),zt(B4,"W",534),zt(B4,"H",102),zt(B4,"BAR_W",380),zt(B4,"BAR_H",10),zt(B4,"INDEX_AREA_W",124); + let U4=B4; + const F4=class t extends AB{ + constructor(){ + super(),zt(this,"lblGuide"),this.lblGuide=new vB("@",this.width-90,16,aD.DEFAULT_COLOR,8,10,16763904),this.contentContainer.addChild(this.lblGuide),this.outSideClickHide=!0} + static getInstance(){ + return this._instance||(this._instance=new t),this._instance} + async showGuide(){ + this.title=AG.getText("GAME_945","결제 이벤트"); + const t=[AG.getText("GAME_947","목표 금액에 도달하면 보상이 우편으로 발송됩니다."),AG.getText("GAME_948","총 결제 금액은 이벤트 기간 내 결제분만 반영됩니다."),AG.getText("GAME_986","붉은 보석으로 상품 구매 시, 결제 이벤트에 반영됩니다."),AG.getText("GAME_987","웹 마켓에서 진행된 결제는 결제 이벤트에 반영되지 않습니다.")]; + this.lblGuide.text=t.map(t=>`@ ${ + t} + `).join("\n"),this.lblGuide.x=30,this.lblGuide.y=80,this.height=this.lblGuide.y+this.lblGuide.height+40,await this.loadImage(),super.show()} + getDefaultPositionY(){ + return.4*KA.stageHeight} + onBackButton(){ + return this.hide(),!0} + } + ; + Kt(F4,"PaymentEventGuidePopup"),zt(F4,"_instance"); + let H4=F4; + const W4=class t extends aG{ + constructor(){ + super(),zt(this,"bntMonth",new E4(AG.getText("COMMON_482","월간"),215)),zt(this,"btnSpecial",new E4(AG.getText("GAME_1158","스페셜"),215)),zt(this,"tabs"),zt(this,"activeIndex",0),zt(this,"infoBg"),zt(this,"lblPeriod"),zt(this,"lblRemainTitle"),zt(this,"lblRemainTime"),zt(this,"lblTotal"),zt(this,"lblAmount"),zt(this,"btnGuide"),zt(this,"list"),zt(this,"endTime",0),zt(this,"count",0),this.title="결제 이벤트",this.width=580,this.outSideClickHide=!0,this.tabs=[this.btnSpecial,this.bntMonth]; + for(let i=0; + i<this.tabs.length; + i++){ + const t=this.tabs[i]; + this.addChild(t); + const s=i; + t.onClick=()=>this.switchTab(s)} + this.layoutTabs(),this.infoBg=new yB,this.infoBg.setIndex(2),this.infoBg.width=this.width-46,this.infoBg.x=23,this.contentContainer.addChild(this.infoBg),this.lblPeriod=new YD("",aD.DEFAULT_COLOR,aD.DEFAULT_OUTLINE_FONT_OPTION_18),this.contentContainer.addChild(this.lblPeriod),this.lblRemainTitle=new YD("",aD.DEFAULT_COLOR,aD.DEFAULT_OUTLINE_FONT_OPTION_18),this.contentContainer.addChild(this.lblRemainTitle),this.lblRemainTime=new YD("",aD.DEFAULT_COLOR,aD.DEFAULT_OUTLINE_FONT_OPTION_18),this.contentContainer.addChild(this.lblRemainTime),this.lblTotal=new YD("",aD.DEFAULT_COLOR,aD.DEFAULT_OUTLINE_FONT_OPTION_18),this.contentContainer.addChild(this.lblTotal),this.lblAmount=new YD("",aD.COLOR_BRIGHT_GREEN,aD.DEFAULT_OUTLINE_FONT_OPTION_18),this.contentContainer.addChild(this.lblAmount),this.btnGuide=new mB("UI_Ekkorr","UI_Alarm"),this.btnGuide.x=this.infoBg.x+this.infoBg.width-this.btnGuide.width-10,this.btnGuide.y=this.infoBg.y+10,this.contentContainer.addChild(this.btnGuide),this.btnGuide.on("pointertap",()=>{ + H4.getInstance().showGuide()} + ); + const t=this.width-46; + this.list=new ZV(U4,t,300),this.list.x=23,this.contentContainer.addChild(this.list),this.on("added",this.onAdded,this),this.on("removed",this.onRemoved,this)} + static getInstance(){ + return this._instance||(this._instance=new t),this._instance} + onAdded(){ + GM.getInstance().add(this.onEnter,this)} + onRemoved(){ + GM.getInstance().remove(this.onEnter,this)} + async update(){ + await fU.getEventList()} + show(){ + null==fU.currentPaymentMonthEvent?this.activeIndex=0:null==fU.currentPaymentSpecialEvent&&(this.activeIndex=1),this.switchTab(this.activeIndex),super.show()} + updateLayout(){ + this.title=AG.getText("GAME_945","결제 이벤트"); + const t=0==this.activeIndex?fU.currentPaymentSpecialEvent:fU.currentPaymentMonthEvent; + let i=[]; + if(t){ + const s=t.userAmount,e=t.endTime.replace("T"," ").replace(".000Z",""); + this.endTime=new Date(t.endTime).getTime(),this.endTime,ix.time,this.lblPeriod.text=AG.getText("GAME_545","이벤트 기간")+` : ~ ${ + e} + (UTC)`,this.lblRemainTitle.text=AG.getText("COMMON_29","남은 시간")+" : ",this.onEnterUpdate(),this.lblTotal.text=AG.getText("GAME_946","총 결제 금액")+" : ",this.lblAmount.text=fU.isUsdCurrency()?`$${ + uU.setComma(s)} + `:`₩${ + uU.setComma(s)} + `,this.lblAmount.textColor=aD.COLOR_BRIGHT_GREEN; + let n=0; + for(let h=0; + h<t.rewards.length; + h++){ + const e={ + index:h,userAmount:s,rewards:t.rewards[h],amount:fU.isUsdCurrency()?t.amounts[h].usdAmount:t.amounts[h].amount} + ; + i.push(e),s>=Number(e.amount)&&(n=h)} + this.list.dataProvider=i,t.rewards.length<4?this.list.scrollTo(0):this.list.scrollTo(n)} + this.lblPeriod.x=this.lblRemainTitle.x=this.lblTotal.x=50,this.lblRemainTime.x=this.lblRemainTitle.x+this.lblRemainTitle.width,this.lblAmount.x=this.lblTotal.x+this.lblTotal.width; + const s=null!=fU.currentPaymentMonthEvent&&null!=fU.currentPaymentSpecialEvent; + this.tabs.forEach(t=>t.visible=s); + const e=s?125:70; + this.infoBg.y=e,this.btnGuide.y=this.infoBg.y+10,this.lblPeriod.y=this.infoBg.y+20,this.lblRemainTitle.y=this.lblRemainTime.y=this.lblPeriod.y+this.lblPeriod.height+10,this.lblTotal.y=this.lblAmount.y=this.lblRemainTitle.y+this.lblRemainTitle.height+10,this.infoBg.height=this.lblTotal.y+this.lblTotal.height-this.infoBg.y+17; + const n=this.infoBg.y+this.infoBg.height+14; + this.list.y=n; + const h=Math.min(352,103*i.length); + this.list.setListHeight(h),this.height=this.list.y+this.list.height+30} + onEnter(){ + ++this.count>60&&(this.count=0,this.onEnterUpdate())} + onEnterUpdate(){ + const t=.001*(this.endTime-ix.time); + this.lblRemainTime.textColor=t<43200?aD.COLOR_RED:aD.DEFAULT_COLOR,this.lblRemainTime.text=t>0?`${ + uU.displayTimeAsTwoOfDDHHMMSS(t)} + `:AG.getText("GAME_949","이벤트 종료")} + switchTab(t){ + this.activeIndex=t; + for(let i=0; + i<this.tabs.length; + i++)this.tabs[i].selected=i===t; + this.updateLayout()} + layoutTabs(){ + let t=.5*(this.width-46-2); + for(const s of this.tabs)s.fitWithinWidth(t,50); + let i=23; + for(let s=0; + s<this.tabs.length; + s++){ + const e=this.tabs[s]; + i=23+(t+2)*s,e.x=i,e.y=65} + } + } + ; + Kt(W4,"PaymentEventPopup"),zt(W4,"_instance"),zt(W4,"TAB_HEIGHT",60); + let j4=W4; + const $4=class t extends XV{ + constructor(){ + super(),zt(this,"tabs",[]),zt(this,"buttons",[]),zt(this,"activeIndex",0),zt(this,"onTabChange",null),zt(this,"btnPaymentEvent",new mB("UI_Ekkorr","Package_2",.7)),zt(this,"clickedEventInfo",[]),zt(this,"cnt",0),this.btnPaymentEvent.onClick=this.onPaymentEventClick.bind(this),this.addChild(this.btnPaymentEvent),this.btnPaymentEvent.visible=!1,this.on("added",this.onAdded,this),this.on("removed",this.onRemoved,this)} + static getInstance(){ + return null==t.instance&&(t.instance=new t),t.instance} + async onAdded(){ + this.btnPaymentEvent.hideRedDot(); + const t=await $A.getPaymentEventInfo(); + if(t)for(this.clickedEventInfo=t.split("#").map(t=>""===t?[0]:t.split("|").map(Number)); + this.clickedEventInfo.length<2; + )this.clickedEventInfo.push([0]); + else this.clickedEventInfo=Array.from({ + length:2} + ,()=>[0]); + GM.getInstance().add(this.onFrame,this)} + onRemoved(){ + GM.getInstance().remove(this.onFrame,this)} + async onPaymentEventClick(){ + await j4.getInstance().update(),j4.getInstance().show(); + const t=[fU.currentPaymentSpecialEvent,fU.currentPaymentMonthEvent]; + this.clickedEventInfo=[]; + for(const i of t){ + if(!i){ + this.clickedEventInfo.push([]); + continue} + const t=[]; + t.push(i.id); + for(let s=0; + s<i.rewards.length; + s++){ + let e=i.amounts[s].amount; + fU.isUsdCurrency()&&(e=i.amounts[s].usdAmount),i.userAmount>=e?t.push(1):t.push(0)} + this.clickedEventInfo.push(t)} + $A.savePaymentEventInfo(this.clickedEventInfo.map(t=>t.join("|")).join("#"))} + onFrame(){ + this.cnt-- >0||(this.cnt=30,this.updatePaymentEvent())} + updatePaymentEvent(){ + if(this.buttons.length<2)return; + const t=this.buttons[1]; + if(this.buttons[1]&&(fU.isValidEvent(pU.PAYMENT_EVENT)?(this.btnPaymentEvent.visible=!0,fU.currentPaymentSpecialEvent?t.showEventTag(-3,2):t.hideEventTag()):(this.btnPaymentEvent.visible=!1,t.hideEventTag()),this.btnPaymentEvent.visible&&(fU.currentPaymentSpecialEvent||fU.currentPaymentMonthEvent))){ + const t=!!fU.currentPaymentSpecialEvent&&this.clickedEventInfo[0][0]<fU.currentPaymentSpecialEvent.id,i=!!fU.currentPaymentMonthEvent&&this.clickedEventInfo[1][0]<fU.currentPaymentMonthEvent.id; + t||this.checkNewReach(0)||i||this.checkNewReach(1)?this.btnPaymentEvent.showRedDot():this.btnPaymentEvent.hideRedDot()} + } + checkNewReach(t){ + const i=0==t?fU.currentPaymentSpecialEvent:fU.currentPaymentMonthEvent; + if(!i)return!1; + for(let s=0; + s<i.rewards.length; + s++){ + let e=i.amounts[s].amount; + if(fU.isUsdCurrency()&&(e=i.amounts[s].usdAmount),0==this.clickedEventInfo[t][s+1]&&i.userAmount>=e)return!0} + return!1} + setTabs(t){ + for(const i of this.buttons)this.removeChild(i); + this.buttons=[],this.tabs=t; + for(let i=0; + i<t.length; + i++){ + const s=t[i],e=new E4(AG.getText(s.labelKey,s.defaultText)); + e.height=50,this.addChild(e),this.buttons[i]=e; + const n=i; + e.onClick=()=>this.setActiveTab(n)} + this.layoutTabs(),this.setActiveTab(0),this.updateLayout()} + layoutTabs(){ + if(this.buttons.reduce((t,i)=>t+i.width,0)+2*Math.max(0,this.buttons.length-1)<=628){ + let t=634; + for(let i=this.buttons.length-1; + i>=0; + i--){ + const s=this.buttons[i]; + s.height=50,t-=s.width+2,s.x=t,s.y=5} + } + else{ + const t=this.buttons.length,i=Math.floor((628-2*(t-1))/t),s=56; + let e=634; + for(let n=t-1; + n>=0; + n--){ + const t=this.buttons[n]; + t.setMultilineMode(i,s,15),e-=i+2,t.x=e,t.y=.5*(60-s)} + } + } + setActiveTab(t){ + this.activeIndex=t; + for(let i=0; + i<this.buttons.length; + i++)this.buttons[i].selected=i===t; + this.onTabChange&&this.onTabChange(t)} + updateLayout(){ + const t=this.buttons[0]; + this.btnPaymentEvent.x=this.lblTitle.x+this.lblTitle.width+10,this.btnPaymentEvent.y=t.y+.5*(t.height-this.btnPaymentEvent.height)} + updateLanguage(){ + this.setTitle(AG.getText("COMMON_356","상점")),this.setTabs(this.tabs)} + } + ; + Kt($4,"ShopSubMenu"),zt($4,"instance"); + let V4=$4; + const K4=class extends XI{ + constructor(){ + super(),zt(this,"bg"),zt(this,"lblName",new YD("2배속 ",16777215,aD.DEFAULT_OUTLINE_FONT_OPTION_18)),zt(this,"icon",new We(ZA.getTexture("UI_Ekkorr","Shop_Icon_07"))),zt(this,"btnBuy",new UB("UI_GEM","100")),zt(this,"btnAd",new UB("UI_MOVIE_SMALL",AG.getText("GAME_236","광고"))),zt(this,"lblRemaining",new YD("",11184810,aD.DEFAULT_FONT_OPTION_16)),zt(this,"lblCooldown",new YD("",16737894,aD.DEFAULT_FONT_OPTION_16)),zt(this,"requesting",!1),this.bg=new CM({ + texture:ZA.getTexture("UI_Ekkorr","Popup_List_02"),leftWidth:140,topHeight:30,rightWidth:20,bottomHeight:30} + ),this.bg.x=5,this.bg.width=630,this.bg.height=80,this.addChild(this.bg),this.addChild(this.icon),this.lblName.x=135,this.lblName.y=.5*(this.bg.height-this.lblName.height),this.addChild(this.lblName),this.btnBuy.lbl.iconScale=.8,this.btnBuy.color=UB.BROWN,this.btnBuy.height=55,this.btnBuy.width=140,this.btnBuy.x=this.bg.width-this.btnBuy.width-6,this.btnBuy.y=.5*(this.bg.height-this.btnBuy.height),this.addChild(this.btnBuy),this.btnBuy.on("pointerdown",this.onBuy,this),this.btnAd.lbl.iconScale=.6,this.btnAd.color=QL.BROWN,this.btnAd.height=55,this.btnAd.width=140,this.btnAd.x=this.bg.width-this.btnAd.width-6,this.btnAd.y=.5*(this.bg.height-this.btnAd.height),this.addChild(this.btnAd),this.btnAd.onClick=this.onAdWatch.bind(this),this.lblRemaining.y=.5*(this.bg.height-this.lblRemaining.height),this.addChild(this.lblRemaining),this.lblCooldown.visible=!1,this.addChild(this.lblCooldown)} + async onBuy(t){ + if(1==this.data.kindNum){ + let t=await hD.getInstance().user.buySpeed15(); + if(0==t.success)return void mG.getInstance().showError(t); + _L.setUser(t.body),UV.getInstance().updateAll(),WG.getInstance().setSpeed(2)} + } + async onAdWatch(){ + var t; + try{ + const t=J3.getInstance().checkApproved(); + if(0==t.approved)return void mG.getInstance().show(t.errorMessage)} + catch(s){ + const t=AG.getText("AGE_RANGE_3","현재 사용 중인 기기 또는 OS 환경에서는 연령 정보를 확인할 수 없어, 일부 기능이 ‘안전 모드’로 제한됩니다."); + return void mG.getInstance().show(t)} + if(this.requesting)return; + if(!(null==(t=this.data)?void 0:t.isAd))return; + const i=this.data.adsType; + if(0!==JB.getInstance().getDailyRemaining(i)){ + if(JB.getInstance().isCooldownReady(i)){ + this.requesting=!0; + try{ + _L.canSkipAds?(TU.trackAd("ad_skip",String(i)),await this.onAdComplete()):(TU.trackAd("ad_try",String(i)),await jL(async()=>{ + TU.trackAd("ad_success",String(i)),await this.onAdComplete()} + ,i,()=>{ + TU.trackAd("ad_fail",String(i))} + ))} + finally{ + this.requesting=!1} + } + } + else mG.getInstance().show(AG.getText("GAME_244","오늘 최대 횟수를 초과했습니다."))} + async onAdComplete(){ + const t=this.data.adsType,i=await hD.getInstance().ads.watch(t,!0); + if(!1!==i.success){ + if(aV.getInstance().markDirty(),i.body.user&&(_L.setUserData(i.body.user),UV.getInstance().updateAll()),i.body.ads&&JB.getInstance().setData(i.body.ads),i.body.dungeon&&Rx.getInstance().setData(i.body.dungeon),"speed"===i.body.rewardType&&WG.getInstance().setSpeed(2),5===t){ + const t=JB.getInstance().getDailyRemaining(5),i=JB.getInstance().isCooldownReady(5); + 0!==t&&i||zii.getInstance().removeAdsGoblins()} + this.updateRemaining()} + else mG.getInstance().showError(i)} + setData(t){ + this.data=t,t.isAd?(this.btnBuy.visible=!1,this.btnAd.visible=!0,this.lblName.text=t.name,this.icon.scale.set(1),this.icon.texture=ZA.getTexture("UI_Ekkorr",t.icon),this.icon.y=.5*(this.bg.height-this.icon.height),this.updateRemaining()):(this.btnBuy.visible=!0,this.btnAd.visible=!1,this.lblRemaining.visible=!1,this.lblName.text=t.name,(1==t.kindNum||2==t.kindNum)&&(this.icon.texture=ZA.getTexture("UI_Ekkorr",t.icon)),this.icon.y=.5*(this.bg.height-this.icon.height),this.btnBuy.text=t.gem.toString()),this.icon.x=60-.5*this.icon.width,this.lblRemaining.visible?aD.setLabelWrapWidth(this.lblName,this.lblRemaining.x-this.lblName.x-5):aD.setLabelWrapWidth(this.lblName,this.btnBuy.x-this.lblName.x-5),this.lblName.y=.5*(this.bg.height-this.lblName.height)} + updateRemaining(){ + var t; + (null==(t=this.data)?void 0:t.isAd)&&this.updateCooldown()} + updateCooldown(){ + var t; + if(!(null==(t=this.data)?void 0:t.isAd))return; + const i=this.data.adsType,s=JB.getInstance().getCooldownRemaining(i),e=JB.getInstance().getDailyRemaining(i),n=0===e,h=e>=0&&this.data.dailyMax,r=this.btnAd.x-8,o=.5*this.bg.height; + if(s>0&&!n){ + const t=Math.ceil(s/1e3),i=Math.floor(t/60),n=t%60,a=`${ + String(i).padStart(2,"0")} + :${ + String(n).padStart(2,"0")} + `; + this.lblCooldown.visible=!0,this.lblCooldown.text=a,this.btnAd.activated=!1,h?(this.lblRemaining.visible=!0,this.lblRemaining.text=`${ + e} + /${ + this.data.dailyMax} + `,this.lblCooldown.x=r-this.lblCooldown.width,this.lblCooldown.y=o-this.lblCooldown.height-1,this.lblRemaining.x=r-this.lblRemaining.width,this.lblRemaining.y=o+1):(this.lblRemaining.visible=!1,this.lblCooldown.x=r-this.lblCooldown.width,this.lblCooldown.y=o-.5*this.lblCooldown.height)} + else this.lblCooldown.visible=!1,this.btnAd.activated=!n,h?(this.lblRemaining.visible=!0,this.lblRemaining.text=`${ + e} + /${ + this.data.dailyMax} + `,this.lblRemaining.x=r-this.lblRemaining.width,this.lblRemaining.y=o-.5*this.lblRemaining.height):this.lblRemaining.visible=!1} + get height(){ + return this.bg.height+2} + } + ; + Kt(K4,"ShopItemRenderer"); + let z4=K4; + const q4=class t extends b4{ + constructor(){ + super(),zt(this,"list"),this.list=new zI(z4,635,KA.listHeight),this.list.x=0,this.list.y=0,this.addChild(this.list),this.on("added",this.onAdded,this),this.on("removed",this.onRemoved,this)} + static getInstance(){ + return null==t.instance&&(t.instance=new t),t.instance} + onAdded(){ + GM.getInstance().add(this.onFrame,this)} + onRemoved(){ + GM.getInstance().remove(this.onFrame,this)} + onFrame(){ + var t; + if(null==(null==(t=this.parent)?void 0:t.parent))return; + const i=this.list.getItemList(); + for(let s=0; + s<i.length; + s++)!1!==i[s].visible&&i[s].updateCooldown()} + setData(){ + let t=[]; + t.push({ + kindNum:1,icon:"UI_SHOP_SPEED2",name:AG.getValueReplaceMulti("GAME_57",["@@","##"],[20,2],"20분간 게임속도 2배 증가"),gem:100,desc:AG.getValueReplaceMulti("GAME_57",["@@","##"],[20,2],"20분간 게임속도 2배 증가")} + ),t.push({ + isAd:!0,adsType:2,dailyMax:20,icon:"UI_SHOP_SPEED2",name:AG.getValueReplaceMulti("GAME_228",["##","@@"],[20,2],"{ + 광고보고 20분간 2배속 } + "),rewardDesc:AG.getValueReplaceMulti("GAME_232",["##","@@","$$"],[10,2,20],"{ + 20분간 2배속, 하루 최대 3회 } + ")} + ),t.push({ + isAd:!0,adsType:3,dailyMax:3,icon:"UI_COIN_Big",name:AG.getValueReplace("GAME_229","##",100,"{ + 광고보고 명예코인 100개 } + "),rewardDesc:AG.getValueReplaceMulti("GAME_233",["##","@@"],[100,3],"{ + 명예코인 100개, 하루 최대 3회 } + ")} + ),t.push({ + isAd:!0,adsType:5,dailyMax:10,icon:"UI_SHOP_GEM",name:AG.getValueReplace("GAME_231","##",100,"{ + 광고보고 보석 100개 } + "),rewardDesc:AG.getValueReplaceMulti("GAME_235",["##","@@"],[100,10],"{ + 보석 100개, 하루 최대 10회 } + ")} + ),this.list.dataProvider=t,this.onAdded()} + get className(){ + return"ShopGemSubView"} + } + ; + Kt(q4,"ShopGemSubView"),zt(q4,"instance"); + let X4=q4; + const Y4=class extends s5{ + constructor(t="Icon_Web_Market",i="UI_Ekkorr"){ + super(t,i),zt(this,"lbl"); + const s=aD.DEFAULT_OUTLINE_FONT_OPTION_16; + s.fill=aD.COLOR_BRIGHT_ORANGE,this.lbl=new YD("WEB",s.fill,s),this.lbl.eventMode="none",this.addChild(this.lbl),this.update()} + update(){ + super.update(),this.lbl&&(this.lbl.x=this.icon.x-.5*this.lbl.width,this.lbl.y=this.icon.y+10),this.pivot.set(.5*this.width,.5*this.height)} + onDown(){ + this.scale=.95} + onUp(){ + this.scale=1} + get width(){ + return this.icon.width} + get height(){ + return this.icon.height} + } + ; + Kt(Y4,"WebMarketButton"); + let J4=Y4; + const Q4=class t extends aG{ + constructor(){ + super(),zt(this,"lblMessage",new YD("",16777215,aD.ERROR_POPUP_LABEL_OPTION)),zt(this,"btnConfirm",new sG("이동")),zt(this,"btnCancel",new n3("취소")),zt(this,"iconNote"),zt(this,"lblNote",new YD("",aD.COLOR_LIGHT_BROWN,aD.ERROR_POPUP_LABEL_OPTION)),zt(this,"onConfirm",null),zt(this,"onCancel",null),this.title="알림",this.lblMessage.y=90; + let t=this.lblMessage.getStyle(); + t.align="center",this.lblMessage.setStyle(t),this.iconNote=new We(ZA.getTexture("UI_Ekkorr","UI_Alarm")),this.iconNote.anchor.set(.5),this.iconNote.scale.set(.8),this.iconNote.x=35,t=this.lblNote.getStyle(),t.fontSize=17,t.lineHeight=25,this.lblNote.setStyle(t),this.lblNote.x=this.iconNote.x+.5*this.iconNote.width+5,this.contentContainer.addChild(this.lblMessage,this.btnConfirm,this.btnCancel,this.lblNote,this.iconNote),this.btnConfirm.onClick=this.onConfirmClick.bind(this),this.btnCancel.onClick=this.onCancelClick.bind(this)} + static getInstance(){ + return this._instance||(this._instance=new t),this._instance} + onConfirmClick(){ + this.hide(); + let t=this.onConfirm; + this.onConfirm=null,null!==t&&t()} + onCancelClick(){ + this.hide(); + let t=this.onCancel; + this.onCancel=null,null!==t&&t()} + showError(t,i=null,s=null,e=null){ + let n=t.errorMessage,h=AG.getErrorMessage(t.error); + h&&(n=h),i&&(n+="\n"+i),this.show(n,s,e)} + show(t,i=null,s=null){ + this.onConfirm=i,this.onCancel=s; + let e=AG.getText("GAME_939","웹 마켓에서 특별한 상품들을 만나보실 수 있습니다."),n=AG.getText("GAME_940","웹 마켓으로 이동하시겠습니까?"),h="("+AG.getText("GAME_941","구매하신 상품은 인게임 우편으로 전송됩니다.")+")",r=AG.getText("GAME_942","상품 결제 및 구매 문제 발생 시, NEXT MARKET 고객센터로 문의해 주세요."); + this.lblMessage.text=e+"\n"+n+"\n"+h,this.lblNote.text=r,this.title=AG.getText("COMMON_4","알림"),this.btnConfirm.text=AG.getText("COMMON_65","이동"),this.btnCancel.text=AG.getText("COMMON_2","취소"),this.updateLayout(),super.show(t,i,s)} + updateLayout(){ + this.lblMessage.x=.5*(this.width-this.lblMessage.width),this.btnConfirm.x=.5*(this.width-this.btnConfirm.width-this.btnCancel.width-20),this.btnCancel.x=this.btnConfirm.x+this.btnConfirm.width+20,this.btnConfirm.y=this.lblMessage.y+this.lblMessage.height+30,this.btnCancel.y=this.btnConfirm.y,this.iconNote.y=this.btnConfirm.y+this.btnConfirm.height+40,this.lblNote.y=this.iconNote.y+.5*(this.iconNote.height-this.lblNote.height),this.height=this.lblNote.y+this.lblNote.height+30} + getDefaultPositionY(){ + return.3*KA.stageHeight} + onBackButton(){ + return this.onConfirmClick(),!0} + } + ; + Kt(Q4,"LineMarketConfirimPopup"),zt(Q4,"_instance"); + let Z4=Q4; + const t8=class t extends o6{ + static getInstance(){ + return this._instance||(this._instance=new t),this._instance} + constructor(){ + super()} + } + ; + Kt(t8,"ShopProductPopup"),zt(t8,"_instance");
RewardItem 3 hunks, 582 statements
- const b3=class t extends yB{ - constructor(){ - super(),zt(this,"lblDesc"),zt(this,"btnConfirm"),zt(this,"icons",[]),this.outSideClickHide=!0,this.title=yG.getValueReplace("GAME_181","##",5,"5성 병사 뽑기"),this.lblDesc=new KD("",13421772,nD.DEFAULT_FONT_OPTION_16),this.lblDesc.align="center",this.contentContainer.addChild(this.lblDesc),this.btnConfirm=new qL(yG.getText("COMMON_1","확인")),this.btnConfirm.color=qL.GREEN,this.btnConfirm.width=160,this.btnConfirm.height=50,this.btnConfirm.onClick=()=>this.hide(),this.contentContainer.addChild(this.btnConfirm)} - static getInstance(){ - return this._instance||(this._instance=new t),this._instance} - async showGuide(){ - this.title=yG.getValueReplace("GAME_181","##",5,"5성 병사 뽑기"),this.btnConfirm.text=yG.getText("COMMON_1","확인"); - const t=vx.getInstance().bookList.filter(t=>5===t.grade&&0===t.evolStage&&t.canPurchase&&t.honor>=2&&t.kindNum<1e3); - this.update(t,this.title),await this.loadImage(),super.show()} - showGuideOfHeroGacha(){ - this.title=yG.getText("GAME_764","5성 영웅 확정권"),this.btnConfirm.text=yG.getText("COMMON_1","확인"); - const t=vx.getInstance(),i=t.honorNumberMax,s=t.bookList.filter(t=>5===t.grade&&0===t.evolStage&&t.canPurchase&&(t.honor>=1&&t.honor<i||t.honor<1)&&t.kindNum<1e3); - this.update(s,this.title),super.show()} - update(t,i){ - var s,e; - for(const p of this.icons)this.contentContainer.removeChild(p); - this.icons=[]; - const n=t.length,h=n>0?(100/n).toFixed(2):"0",r=yG.getText("GAME_602","아래 병사 중 랜덤한 병사를 획득합니다.")+" "+yG.getText("COMMON_475","획득 확률은 모두 동일합니다.")+`\n(${ - yG.getText("COMMON_476","개별 획득 확률")} - : ${ - h} - %(=1/${ - n} - ))`; - this.lblDesc.text=r; - for(let p=0; - p<t.length; - p++){ - const i=new v3; - i.scale=.7,i.setDataWithKindNum(t[p].kindNum),this.contentContainer.addChild(i),this.icons.push(i)} - const o=(null==(s=this.icons[0])?void 0:s.width)??70,a=(null==(e=this.icons[0])?void 0:e.height)??70,c=Math.ceil(t.length/4),l=4*o+15; - this.width=520,this.title=i,nD.setLabelWrapWidth(this.lblDesc,this.width-55),this.lblDesc.x=.5*(this.width-this.lblDesc.width),this.lblDesc.y=65; - const u=this.lblDesc.y+this.lblDesc.height+15,d=.5*(this.width-l)+5; - for(let p=0; - p<this.icons.length; - p++){ - const t=p%4,i=Math.floor(p/4); - this.icons[p].x=d+t*(o+5),this.icons[p].y=u+i*(a+2)} - const f=u+c*(a+2)+35; - this.btnConfirm.x=.5*(this.width-this.btnConfirm.width),this.btnConfirm.y=f,this.height=f+this.btnConfirm.height+30,this.btnClose.x=this.width-this.btnClose.width-12} + var f3=(t=>(t.gem="gem",t.redGem="redGem",t.gold="gold",t.medal="medal",t.honorCoin="honorCoin",t.guildPoint="guildPoint",t.guildCoin="guildCoin",t.raidCoin="raidCoin",t.hammer="hammer",t.hero="hero",t.instant="instant",t.ticket="ticket",t.trans="trans",t.pet="pet",t.petTicket="petTicket",t.petSelect="petSelect",t.heroGacha="heroGacha",t.heroSelect="heroSelect",t.heroTrans="heroTrans",t.treasure="treasure",t.treasureGacha="treasureGacha",t.treasureTrans="treasureTrans",t))(f3||{
- ; - Kt(b3,"HeroDrawGuidePopup"),zt(b3,"_instance"); - let y3=b3; - const _3=class extends Be{ - constructor(){ - super(),zt(this,"icon",new We(ZA.getTexture("UI_Ekkorr","UI_T001"))),zt(this,"bg",new We(ZA.getTexture("UI_Ekkorr","HeroFrame_1_Bg"))),zt(this,"cover",new We(ZA.getTexture("UI_Ekkorr","HeroFrame_1"))),zt(this,"lblEnhance",new KD("+0",16776960,nD.DEFAULT_OUTLINE_FONT_OPTION_16)),zt(this,"posList",[30,26,24,19,16,13,9]),zt(this,"star",new We(ZA.getTextures("UI_Ekkorr","UI_UNIT_RARE")[3])),zt(this,"trans",new We(ZA.getTexture("UI_Ekkorr","Trans0001"))),this.icon.x=3,this.icon.y=3,this.bg.x=3,this.bg.y=3,this.addChild(this.bg),this.addChild(this.icon),this.cover.x=0,this.cover.y=0,this.addChild(this.cover),this.star.x=this.posList[3],this.star.y=this.bg.height-this.star.height,this.addChild(this.star),this.icon.x=.5*(this.bg.height-this.icon.height),this.icon.y=.5*(this.bg.height-this.icon.height),this.lblEnhance.x=this.bg.width-this.lblEnhance.width-1,this.lblEnhance.y=3,this.addChild(this.lblEnhance),this.trans.scale=1.2,this.trans.x=5,this.trans.y=7,this.trans.visible=!1,this.addChild(this.trans)} - setVO(t){ - this.icon.texture=ZA.getTexture("UI_Ekkorr",`UI_T${ - oU.addZeros(3,t.kindNum)} - `),this.icon.width=this.icon.height=this.cover.width-6,this.icon.x=3,this.icon.y=2,this.lblEnhance.text=`+${ - t.enhance} - `,this.star.texture=ZA.getTextures("UI_Ekkorr","UI_UNIT_RARE")[t.grade-1],this.star.x=this.posList[t.grade-1],this.bg.texture=ZA.getTexture("UI_Ekkorr",`HeroFrame_${ - t.grade} - _Bg`),this.cover.texture=ZA.getTexture("UI_Ekkorr",`HeroFrame_${ - t.grade} - `),t.trans&&t.trans>0?(this.trans.texture=ZA.getTexture("UI_Ekkorr",`Trans000${ - t.trans} - `),this.trans.visible=!0):this.trans.visible=!1} - hideTrans(){ - this.trans.visible=!1} - showTrans(t){ - t<=0?this.trans.visible=!1:(this.trans.texture=ZA.getTexture("UI_Ekkorr",`Trans000${ - t} - `),this.trans.visible=!0)} - setDataWithKindNum(t){ - const i=Wx.getInstance().getBookDataByKindNum(t); - i&&this.setVO(i)} - hideFrame(){ - this.bg.visible=!1,this.cover.visible=!1} - showFrame(){ - this.bg.visible=!0,this.cover.visible=!0} - get width(){ - return this.bg.width} - get height(){ - return this.bg.height} - hideEnhance(){ - this.lblEnhance.visible=!1} - showEnhance(){ - this.lblEnhance.visible=!0} - } - ; - Kt(_3,"TreasureIcon"); - let M3=_3; - const E3=class t extends yB{ - constructor(){ - super(),zt(this,"lblDesc"),zt(this,"btnConfirm"),zt(this,"icons",[]),this.outSideClickHide=!0,this.title=yG.getValueReplace("GAME_184","##",6,"6성 유물 뽑기"),this.lblDesc=new KD("",13421772,nD.DEFAULT_FONT_OPTION_16),this.lblDesc.align="center",this.contentContainer.addChild(this.lblDesc),this.btnConfirm=new qL(yG.getText("COMMON_1","확인")),this.btnConfirm.color=qL.GREEN,this.btnConfirm.width=160,this.btnConfirm.height=50,this.btnConfirm.onClick=()=>this.hide(),this.contentContainer.addChild(this.btnConfirm)} - static getInstance(){ - return this._instance||(this._instance=new t),this._instance} - async showGuide(){ - this.title=yG.getText("GAME_218","유물 뽑기권"),this.btnConfirm.text=yG.getText("COMMON_1","확인"); - const t=Wx.getInstance().bookList.filter(t=>6===t.grade); - this.update(t,this.title),await this.loadImage(),super.show()} - showGuideOfTreasureGacha(){ - this.title=yG.getText("GAME_218","유물 뽑기권"),this.btnConfirm.text=yG.getText("COMMON_1","확인"); - const t=Wx.getInstance().bookList.filter(t=>6===t.grade); - this.update(t,this.title),super.show()} - update(t,i){ - var s,e; - for(const g of this.icons)this.contentContainer.removeChild(g); - this.icons=[]; - const n=Wx.getInstance(),h=new Set; - for(const g of n.equipedList)h.add(g.kindNum); - for(const g of n.ownedList)h.add(g.kindNum); - const r=t.filter(t=>!h.has(t.kindNum)).length; - let o=yG.getText("GAME_603","아래 유물 중 랜덤한 유물을 획득합니다.")+" "+yG.getText("COMMON_475","획득 확률은 모두 동일합니다."); - if(r>0){ - const t=(100/r).toFixed(2); - o+=`\n(${ - yG.getText("COMMON_476","개별 획득 확률")} - : ${ - t} - %(=1/${ - r} - ))`} - this.lblDesc.text=o; - for(let g=0; - g<t.length; - g++){ - const i=new M3; - i.scale=.75,i.setDataWithKindNum(t[g].kindNum),i.hideEnhance(),i.alpha=h.has(t[g].kindNum)?.35:1,this.contentContainer.addChild(i),this.icons.push(i)} - const a=(null==(s=this.icons[0])?void 0:s.width)??70,c=(null==(e=this.icons[0])?void 0:e.height)??70,l=Math.ceil(t.length/7),u=7*a-12; - this.width=520,this.title=i,nD.setLabelWrapWidth(this.lblDesc,this.width-40),this.lblDesc.x=.5*(this.width-this.lblDesc.width),this.lblDesc.y=65; - const d=this.lblDesc.y+this.lblDesc.height+15,f=.5*(this.width-u)+5; - for(let g=0; - g<this.icons.length; - g++){ - const t=g%7,i=Math.floor(g/7); - this.icons[g].x=f+t*(a+-2),this.icons[g].y=d+i*(c+2)} - const p=d+l*(c+2)+10; - this.btnConfirm.x=.5*(this.width-this.btnConfirm.width),this.btnConfirm.y=p,this.height=p+this.btnConfirm.height+30,this.btnClose.x=this.width-this.btnClose.width-12} - } - ; - Kt(E3,"TreasureDrawGuidePopup"),zt(E3,"_instance"); - let A3=E3; - const S3=class t{ - constructor(){ - zt(this,"battlePoolMap",{ - } - ),zt(this,"seasonSetMap",{ - } - ),zt(this,"rewardMap",{ - } - ),zt(this,"seasonSetKindNum",0),zt(this,"seasonNumber",0),zt(this,"seasonEndTime",0),zt(this,"currentFloor",0),zt(this,"floorStars",[]),zt(this,"ticket",0),zt(this,"maxTicket",5),zt(this,"ticketTime",0),zt(this,"currentBattleFloor",0),zt(this,"bookLoaded",!1)} - static getInstance(){ - return null==this.instance&&(this.instance=new t),this.instance} - setBattlePoolData(t){ - if(this.battlePoolMap={ - } - ,t)for(const i of t){ - const t=new k3; - t.kindNum=i.kindNum,t.difficulty=i.difficulty,t.enemyKindNums=i.enemyKindNums||"",t.enemyTrans=i.enemyTrans||"",t.enemyShields=i.enemyShields||"",t.enemyLevels=i.enemyLevels||"",t.tribes=i.tribes,t.gradeMax=i.gradeMax,t.femaleExclude=i.femaleExclude,t.maleExclude=i.maleExclude,t.rangeExclude=i.rangeExclude,t.meleeExclude=i.meleeExclude,t.airExclude=i.airExclude,t.star1=i.star1,t.star2=i.star2,t.star3=i.star3,this.battlePoolMap[t.kindNum]=t} - } - setSeasonSetData(t){ - if(this.seasonSetMap={ - } - ,t)for(const i of t){ - const t=new I3; - t.kindNum=i.kindNum,t.battleIDs=i.battleIDs,this.seasonSetMap[t.kindNum]=t} - } - setRewardData(t){ - if(this.rewardMap={ - } - ,t)for(const i of t){ - const t=new N3; - t.floor=i.floor,t.gem1=i.gem1,t.gem2=i.gem2,t.gem3=i.gem3,t.honor1=i.honor1,t.honor2=i.honor2,t.honor3=i.honor3,this.rewardMap[t.floor]=t} - } - setData(t){ - for(this.seasonSetKindNum=t.seasonSetKindNum,this.seasonNumber=t.seasonNumber||0,this.seasonEndTime=t.seasonEndTime?new Date(t.seasonEndTime).getTime():0,this.currentFloor=t.currentFloor,this.floorStars=t.floorStars||[]; - this.floorStars.length<30; - )this.floorStars.push(0); - this.ticket=t.ticket,this.maxTicket=t.maxTicket,this.ticketTime=new Date(t.ticketTime).getTime()+1e3,this.currentBattleFloor=t.currentBattleFloor} - getFloorList(){ - const t=this.seasonSetMap[this.seasonSetKindNum]; - if(!t)return[]; - const i=t.battleIDs.split("|").map(Number),s=[],e=Math.min(this.currentFloor+1,30); - for(let n=0; - n<e; - n++){ - const t=this.battlePoolMap[i[n]]; - if(!t)continue; - const e=new R3; - e.floor=n+1,e.stars=this.floorStars[n]||0,e.battleVO=t,e.reward=this.rewardMap[n+1],e.isCleared=this.floorStars[n]>0,e.isNext=n+1===this.currentFloor+1,s.push(e)} - return s} - getFloorListReversed(){ - return this.getFloorList().reverse()} - getBattlePool(t){ - return this.battlePoolMap[t]} - buildFloorVO(t){ - if(t<1||t>30)return null; - const i=this.seasonSetMap[this.seasonSetKindNum]; - if(!i)return null; - const s=i.battleIDs.split("|").map(Number),e=t-1; - if(e>=s.length)return null; - const n=this.battlePoolMap[s[e]]; - if(!n)return null; - const h=new R3; - return h.floor=t,h.stars=this.floorStars[e]||0,h.battleVO=n,h.reward=this.rewardMap[t],h.isCleared=this.floorStars[e]>0,h.isNext=t===this.currentFloor+1,h} - getReward(t){ - return this.rewardMap[t]} - } - ; - Kt(S3,"TowerDataManager"),zt(S3,"instance"); - let C3=S3; - const T3=class{ - constructor(){ - zt(this,"kindNum",0),zt(this,"difficulty",0),zt(this,"enemyKindNums",""),zt(this,"enemyTrans",""),zt(this,"enemyShields",""),zt(this,"enemyLevels",""),zt(this,"tribes","0"),zt(this,"gradeMax",0),zt(this,"femaleExclude","N"),zt(this,"maleExclude","N"),zt(this,"rangeExclude","N"),zt(this,"meleeExclude","N"),zt(this,"airExclude","N"),zt(this,"star1",0),zt(this,"star2",0),zt(this,"star3",0)} - static parseEnemies(t){ - const i=new Array(20).fill(null); - if(!t||!t.enemyKindNums)return i; - const s=String(t.enemyKindNums).split("|"),e=Math.min(s.length,20); - for(let n=0; - n<e; - n++){ - const t=s[n].trim(); - if(!t||"0"===t)continue; - const e=t.indexOf("-"),h=e>=0?t.substring(0,e):t,r=e>=0?t.substring(e+1):"0",o=Number(h); - o>0&&(i[n]={ - kindNum:o,trans:Number(r)||0} - )} - return i} - static stringifyEnemies(t,i){ - let s=-1; - for(let n=19; - n>=0; - n--)if((t[n]??-1)>0){ - s=n; - break} - if(s<0)return""; - const e=[]; - for(let n=0; - n<=s; - n++){ - const s=t[n]??-1; - s<=0?e.push("0"):e.push(`${ - s} - -${ - i[n]??0} - `)} - return e.join("|")} - } - ; - Kt(T3,"TowerBattlePoolVO"); - let k3=T3; - const O3=class{ - constructor(){ - zt(this,"kindNum",0),zt(this,"battleIDs","")} - } - ; - Kt(O3,"TowerSeasonSetVO"); - let I3=O3; - const x3=class{ - constructor(){ - zt(this,"floor",0),zt(this,"gem1",0),zt(this,"gem2",0),zt(this,"gem3",0),zt(this,"honor1",0),zt(this,"honor2",0),zt(this,"honor3",0)} - } - ; - Kt(x3,"TowerRewardVO"); - let N3=x3; - const P3=class{ - constructor(){ - zt(this,"floor",0),zt(this,"stars",0),zt(this,"battleVO"),zt(this,"reward"),zt(this,"isCleared",!1),zt(this,"isNext",!1)} - } - ; - Kt(P3,"TowerFloorVO"); - let R3=P3; - const D3=class t{ - constructor(){ - zt(this,"lastFetchTime",0),zt(this,"hasData",!1),zt(this,"dungeonRechargeMs",0),zt(this,"towerRechargeMs",0),zt(this,"towerSnapshot",null),zt(this,"pvpSnapshot",null),zt(this,"dailyRankingSnapshot",null)} - static getInstance(){ - return this.instance||(this.instance=new t),this.instance} - setSummary(t){ - if(t){ - if(this.hasData=!0,this.lastFetchTime=ix.time,t.dungeon){ - this.dungeonRechargeMs=t.dungeon.ticketRechargeMs??0; - const i=Rx.getInstance(); - i.ticket=t.dungeon.ticket??i.ticket,i.maxTicket=t.dungeon.maxTicket??i.maxTicket,t.dungeon.ticketTime&&(i.ticketTime=new Date(t.dungeon.ticketTime).getTime()+1e3)} - if(t.tower){ - this.towerRechargeMs=t.tower.ticketRechargeMs??0; - const i=C3.getInstance(); - i.seasonNumber>0&&(i.ticket=t.tower.ticket??i.ticket,i.maxTicket=t.tower.maxTicket??i.maxTicket,t.tower.ticketTime&&(i.ticketTime=new Date(t.tower.ticketTime).getTime()+1e3),void 0!==t.tower.currentFloor&&(i.currentFloor=t.tower.currentFloor),void 0!==t.tower.seasonNumber&&(i.seasonNumber=t.tower.seasonNumber),t.tower.seasonEndTime&&(i.seasonEndTime=new Date(t.tower.seasonEndTime).getTime())),this.towerSnapshot={ - seasonNumber:t.tower.seasonNumber??0,seasonEndTime:t.tower.seasonEndTime?new Date(t.tower.seasonEndTime).getTime():0,currentFloor:t.tower.currentFloor??0,ticket:t.tower.ticket??0,maxTicket:t.tower.maxTicket??0,ticketTime:t.tower.ticketTime?new Date(t.tower.ticketTime).getTime():0} - } - this.pvpSnapshot=t.pvp??null,this.dailyRankingSnapshot=t.dailyRanking??null} - } - has(){ - return this.hasData} - isStale(t){ - return!this.hasData||ix.time-this.lastFetchTime>=t} - getDungeon(){ - if(!this.hasData)return null; - const t=Rx.getInstance(); - return{ - ticket:t.ticket,maxTicket:t.maxTicket,ticketTime:t.ticketTime,ticketRechargeMs:this.dungeonRechargeMs} - } - getTower(){ - if(!this.hasData)return null; - const t=C3.getInstance(); - return t.seasonNumber>0?{ - seasonNumber:t.seasonNumber,seasonEndTime:t.seasonEndTime,currentFloor:t.currentFloor,ticket:t.ticket,maxTicket:t.maxTicket,ticketTime:t.ticketTime,ticketRechargeMs:this.towerRechargeMs} - :this.towerSnapshot?{ - ...this.towerSnapshot,ticketRechargeMs:this.towerRechargeMs} - :null} - getPvp(){ - return this.pvpSnapshot} - updatePvpTicket(t,i){ - this.pvpSnapshot&&(this.pvpSnapshot.ticket=t,void 0!==i&&(this.pvpSnapshot.ticketTime=i))} - getDailyRanking(){ - return this.dailyRankingSnapshot} - updateDailyRanking(t,i){ - this.dailyRankingSnapshot?(this.dailyRankingSnapshot.joined=t,this.dailyRankingSnapshot.score=i):this.dailyRankingSnapshot={ - joined:t,score:i,date:""} - } - invalidate(){ - this.lastFetchTime=0} - } - ; - Kt(D3,"BattleSummaryManager"),zt(D3,"instance"); - let L3=D3; - const G3=class extends Be{ - constructor(){ - super()} - get className(){ - return""} - updateLanguage(){ - } - } - ; - Kt(G3,"BaseSubView"); - let B3=G3; - const U3=class t extends zV{ - static getInstance(){ - return null==this.instance&&(this.instance=new t),this.instance} - constructor(){ - super(),this.currentSubView=Int.getInstance()} - setData(){ - Int.getInstance().setData(),this.currentSubView=Int.getInstance()} - get className(){ - return"BattleView"} - } - ; - Kt(U3,"BattleView"),zt(U3,"instance"); - let F3=U3; - const H3=class t extends qL{ - constructor(t,i=120,s=50){ - super(t),zt(this,"index",-1),zt(this,"bg2"),zt(this,"indicator"),zt(this,"minWidth",120),zt(this,"_selected",!0),zt(this,"padding",50),zt(this,"_autoResize",!0),zt(this,"_allowMultiline",!1),this.minWidth=i,this.padding=s,this.container.removeChild(this.bg),this.lbl.textSize=18,this._activatedTextColor=KD.LIGHT_BROWN,this.updateTextColor(),this.bg2=new TM({ - texture:ZA.getTexture("UI_Ekkorr","Base_Tooltip"),leftWidth:9,topHeight:9,rightWidth:9,bottomHeight:10} - ),this.bg2.width=101,this.bg2.height=45,this.bg2.x=.5*-this.bg2.width,this.bg2.y=.5*-this.bg2.height,this.container.addChildAt(this.bg2,0),this.indicator=new TM({ - texture:ZA.getTexture("UI_Ekkorr","SelectedBar"),leftWidth:5,topHeight:1,rightWidth:5,bottomHeight:1} - ),this.container.addChild(this.indicator),this.container.x=.5*this.bg2.width,this.container.y=.5*this.bg2.height,this.width=100,this.height=44,this._autoResize&&(this.text=t),this.updateHitArea(),this.selected=!1} - updateHitArea(){ - null!=this.bg2&&(this._hitArea.width=this.bg2.width,this._hitArea.height=this.bg2.height,this.hitArea=this._hitArea)} - get width(){ - return this.bg2.width-2*t.TRANSPARENT_BORDER} - set width(i){ - i<this.minWidth&&(i=this.minWidth); - const s=t.TRANSPARENT_BORDER; - this.bg2.width=i+2*s,this.bg2.x=.5*-this.bg2.width,this.lbl.x=.5*-this.lbl.width,this.container.x=.5*i,this.indicator.width=i-16,this.indicator.x=.5*-this.indicator.width,this.updateHitArea()} - set height(i){ - const s=t.TRANSPARENT_BORDER; - this.bg2.height=i+2*s,this.bg2.y=.5*-this.bg2.height,this.lbl.y=.5*-this.lbl.height,this.container.y=.5*i,this.indicator.y=this.bg2.y+this.bg2.height-this.indicator.height-10,this.updateHitArea()} - get height(){ - return this.bg2.height-2*t.TRANSPARENT_BORDER} - get selected(){ - return this._selected} - set selected(t){ - t!=this._selected&&(this._selected=t,1==this._selected?(this.indicator.visible=!0,this.activatedTextColor=nD.COLOR_ORANGE):(this.indicator.visible=!1,this.activatedTextColor=nD.DEFAULT_COLOR))} - get autoResize(){ - return this._autoResize} - set autoResize(t){ - this._autoResize=t} - get allowMultiline(){ - return this._allowMultiline} - set allowMultiline(t){ - this._allowMultiline!==t&&(this._allowMultiline=t,this.lbl.text&&(this.text=this.lbl.text))} - applyMultilineLayout(i){ - const s=Math.max(40,this.width-2*t.MULTILINE_SIDE_PAD); - if(this.lbl.setWrapWidth(0),this.lbl.lineHeight=0,this.lbl.text=i,this.lbl.width<=s)return this.lbl.x=.5*-this.lbl.width,void(this.lbl.y=.5*-this.lbl.height); - this.lbl.align="center",this.lbl.lineHeight=Math.floor(this.lbl.textSize*t.MULTILINE_LINE_HEIGHT_RATIO)+t.MULTILINE_LINE_HEIGHT_EXTRA,this.lbl.setWrapWidth(s),this.lbl.text=i,this.lbl.x=.5*-this.lbl.width,this.lbl.y=.5*-this.lbl.height+t.MULTILINE_Y_OFFSET} - setCompactStyle(t,i){ - this.lbl.textSize=t,this.padding=i,this._autoResize=!0,this.lbl.setWrapWidth(0),this.text=this.lbl.text} - setMultilineMode(t,i,s=16){ - this._autoResize=!1,this.lbl.textSize=s,this.width=t,this.height=i; - const e=Math.max(40,t-10); - this.lbl.setWrapWidth(e),this.lbl.align="center",this.lbl.x=.5*-this.lbl.width,this.lbl.y=.5*-this.lbl.height} - fitWithinWidth(t,i=50){ - this._autoResize=!1; - const s=this.lbl.text; - this.lbl.setWrapWidth(0),this.lbl.textSize=18,this.lbl.text=s,this.width=t,this.height=i; - const e=Math.max(40,t-10); - if(this.lbl.width<=e)return this.lbl.x=.5*-this.lbl.width,void(this.lbl.y=.5*-this.lbl.height); - for(let n=17; - n>=12; - n--)if(this.lbl.textSize=n,this.lbl.text=s,this.lbl.width<=e)return this.lbl.x=.5*-this.lbl.width,void(this.lbl.y=.5*-this.lbl.height); - this.lbl.textSize=12,this.lbl.setWrapWidth(e),this.lbl.align="center",this.lbl.text=s,this.lbl.x=.5*-this.lbl.width,this.lbl.y=.5*-this.lbl.height} - set text(t){ - super.text=t,this._autoResize?this.width=this.lbl.width+this.padding:this._allowMultiline?this.applyMultilineLayout(t):this.lbl.x=.5*-this.lbl.width} - updateEventTag(t,i){ - this.eventTag&&(this.eventTag.scale=.7,this.eventTag.x=this.bg2.x+this.bg2.width-this.eventTag.width+t,this.eventTag.y=this.bg2.y+i)} - } - ; - Kt(H3,"SubMenuButton"),zt(H3,"TRANSPARENT_BORDER",3),zt(H3,"MULTILINE_SIDE_PAD",10),zt(H3,"MULTILINE_LINE_HEIGHT_RATIO",.85),zt(H3,"MULTILINE_LINE_HEIGHT_EXTRA",2),zt(H3,"MULTILINE_Y_OFFSET",-2); - let W3=H3; - const j3=class extends XI{ - constructor(){ - super(),zt(this,"bg"),zt(this,"lblRankTitle",new KD("rank",11184810,nD.DEFAULT_OUTLINE_FONT_OPTION_16)),zt(this,"lblRankNum",new KD("",nD.DEFAULT_COLOR,nD.ORANGE_OUTLINE_FONT_OPTION_28)),zt(this,"lblNameInfo",new KD("",nD.DEFAULT_COLOR,nD.DEFAULT_OUTLINE_FONT_OPTION_17)),zt(this,"lblDetail",new KD("",11184810,nD.DEFAULT_OUTLINE_FONT_OPTION_16)),zt(this,"btnFight",new qL("전투")),zt(this,"onFight"),this.bg=new TM({ - texture:ZA.getTexture("UI_Ekkorr","Popup_List_02"),leftWidth:140,topHeight:30,rightWidth:20,bottomHeight:30} - ),this.bg.width=615,this.bg.height=80,this.bg.x=5,this.addChild(this.bg),this.lblRankTitle.x=25,this.lblRankTitle.y=6,this.addChild(this.lblRankTitle),this.lblRankNum.x=50,this.lblRankNum.y=24,this.addChild(this.lblRankNum),this.lblNameInfo.x=140,this.lblNameInfo.y=12,this.addChild(this.lblNameInfo),this.lblDetail.x=140,this.lblDetail.y=42,this.addChild(this.lblDetail),this.btnFight.color=qL.RED,this.btnFight.width=120,this.btnFight.height=55,this.btnFight.x=this.bg.width-this.btnFight.width-10,this.btnFight.y=.5*(this.bg.height-this.btnFight.height),this.btnFight.onClick=()=>{ - this.data&&this.onFight&&this.onFight(this.data)} - ,this.addChild(this.btnFight)} - setData(t){ - this.data=t,this.lblRankNum.text=`${ - t.rank} - `,this.lblRankNum.x=15+.5*(100-this.lblRankNum.width); - const i=Number(t.maxWave)||0,s=Math.floor(i/100); - this.lblNameInfo.text=`${ - t.name} - ( Lv.${ - s} - )`; - const e=Number(t.total)||0,n=Number(t.win)||0,h=e-n; - this.lblDetail.text=`${ - t.point.toLocaleString()} - `+yG.getText("COMMON_37","점수").charAt(0)+` ( ${ - e} - -${ - n} - -${ - h} - )`,this.btnFight.text=yG.getText("GAME_70","전투")} - get height(){ - return this.bg.height+2} - } - ; - Kt(j3,"PVPOpponentItemRenderer"); - let $3=j3; - const V3=class extends v3{ - constructor(){ - super(),zt(this,"index",-1),zt(this,"onClick"),zt(this,"plus",new We(ZA.getTexture("UI_Ekkorr","UI_Plus"))),zt(this,"check",new We(ZA.getTexture("UI_Ekkorr","Base_Check01"))),zt(this,"atkTypeIcon",new We),zt(this,"_showAtkType",!1),zt(this,"_selected",!1),zt(this,"_activated",!0),this.plus.scale=.8,this.plus.x=.5*(this.bg.width-this.plus.width)-5,this.plus.y=.5*(this.bg.height-this.plus.height)+2,this.addChildAt(this.plus,0),this.check.scale=1.2,this.check.x=.5*(this.bg.width-this.check.width)-5,this.check.y=.5*(this.bg.height-this.check.height),this.addChild(this.check),this.check.visible=!1,this.atkTypeIcon.scale=1.15,this.atkTypeIcon.visible=!1,this.addChild(this.atkTypeIcon),this.eventMode="dynamic",this.on("pointertap",this.onTap,this)} - set showAtkType(t){ - this._showAtkType=t,this.atkTypeIcon.visible=t} - get showAtkType(){ - return this._showAtkType} - updateAtkTypeIcon(t){ - if(!this._showAtkType||!t||t.kindNum<=0)return void(this.atkTypeIcon.visible=!1); - const i=t.dmgType===nx.MAGICAL?"UI_MAGIC_WAND":"UI_SWORD"; - this.atkTypeIcon.texture=ZA.getTexture("UI_Ekkorr",i),this.atkTypeIcon.x=this.bg.width-this.atkTypeIcon.width-22,this.atkTypeIcon.y=this.bg.height-this.atkTypeIcon.height-4,this.atkTypeIcon.visible=!0} - hidePlusIcon(){ - this.plus.visible=!1} - hideLevel(){ - this.lblLevel.visible=!1} - setNumber(t){ - this.lblCount.text=t.toString(),this.lblCount.visible=!0} - setAlphaToFrame(t){ - this.bg.alpha=t,this.cover.alpha=t,this.setTransAlpha(t)} - set selected(t){ - this._selected=t,this.check.visible=t,this.plus.visible=!t} - get selected(){ - return this._selected} - onTap(t){ - 0!=this._activated&&(WL.getInstance().playSFX(WL.SFX_NORMAL_CLICK),this.onClick&&this.onClick(this.index))} - setDataWith(t,i){ - this.index=t,this.setMode(m3.HERO_PVP),-1==i.kindNum?(this.icon.visible=!1,this.lblLevel.visible=!1,this.lblEnhance.visible=!1,this.lblCount.visible=!1,this.bg.texture=ZA.getTexture("UI_Ekkorr","HeroFrame1} - "),this.cover.texture=ZA.getTexture("UI_Ekkorr","HeroCover1"),this.atkTypeIcon.visible=!1,this.hideTrans()):(this.icon.visible=!0,super.setData(i),this.updateAtkTypeIcon(i))} - get activated(){ - return this._activated} - set activated(t){ - t!=this._activated&&(this._activated=t,this._activated)} - } - ; - Kt(V3,"HeroButton"); - let K3=V3; - const z3=class t{ - constructor(){ - zt(this,"kindNum",0),zt(this,"trans",0),zt(this,"remaining",0),zt(this,"total",0)} - static getVO(){ - return t.recycleList.length>0?t.recycleList.pop():new t} - static set(t,i,s,e,n){ - return t.kindNum=i,t.trans=s,t.remaining=e,t.total=n,t} - remove(){ - this.kindNum=0,this.trans=0,this.remaining=0,this.total=0,t.recycleList.push(this)} - static removeAll(t){ - for(const i of t)i.remove(); - t.length=0} - } - ; - Kt(z3,"TowerHeroSelectVO"),zt(z3,"recycleList",[]); - let q3=z3; - const X3=class t extends XI{ - constructor(){ - super(),zt(this,"bg"),zt(this,"icons"),zt(this,"posList",[]),zt(this,"rowData",[]),zt(this,"badges",[]),zt(this,"atkTypeIcons",[]),this.bg=new TM({ - texture:ZA.getTexture("UI_Ekkorr","Popup_List_00"),leftWidth:20,topHeight:20,rightWidth:20,bottomHeight:30} - ),this.bg.width=630,this.bg.height=62,this.bg.visible=!1,this.addChild(this.bg),this.icons=[],this.posList=[]; - for(let t=0; - t<7; - t++){ - const i=new v3; - i.scale=.7,i.x=7+t*(i.width+1),i.y=4,this.addChild(i),this.icons.push(i),this.posList.push(i.x); - const s=new We; - s.width=32,s.height=32,s.x=i.x+i.width-37,s.y=i.y,s.visible=!1,this.addChild(s),this.badges.push(s); - const e=new We; - e.scale=.8,e.x=i.x+i.width-39,e.y=i.y+i.height-22,e.visible=!1,this.addChild(e),this.atkTypeIcons.push(e)} - this.posList.push(640)} - get width(){ - return this.bg.width} - get height(){ - return this.bg.height} - setData(i){ - var s; - const e=i; - if(e){ - this.rowData=e; - for(let i=0; - i<this.icons.length; - i++){ - const n=this.icons[i]; - if(i<e.length){ - const h=e[i]; - if(n.setMode(m3.TOWER),h.kindNum<=0)n.visible=!0,n.alpha=1,n.tint=16777215,n.hideIcon(),n.hideLevel(),n.hideEnhance(),n.setCountText(""),this.badges[i].visible=!1,this.atkTypeIcons[i].visible=!1; - else{ - n.setDataWithKindNum(h.kindNum,h.trans),n.visible=!0,h.remaining<=0?n.tint=6710886:n.tint=16777215,n.setCountText(`${ - h.remaining} - /${ - h.total} - `),n.lblCount.x=3; - const e=null==(s=t.skillCodeMap)?void 0:s.get(h.kindNum); - if("medal"===e?(this.badges[i].texture=ZA.getTexture("UI_Ekkorr","Icon_Medalbuff_02"),this.badges[i].visible=!0):"startwave"===e?(this.badges[i].texture=ZA.getTexture("UI_Ekkorr","Icon_Startwave_02"),this.badges[i].visible=!0):this.badges[i].visible=!1,t.showAttackType&&!this.badges[i].visible){ - const t=vx.getInstance().getBookVO(h.kindNum); - if(t){ - const s=t.dmgType===nx.MAGICAL?"UI_MAGIC_WAND":"UI_SWORD"; - this.atkTypeIcons[i].texture=ZA.getTexture("UI_Ekkorr",s),this.atkTypeIcons[i].visible=!0} - else this.atkTypeIcons[i].visible=!1} - else this.atkTypeIcons[i].visible=!1} - } - else n.visible=!1,this.badges[i].visible=!1,this.atkTypeIcons[i].visible=!1} - } - } - onClick(i,s){ - let e=-1; - for(let t=0; - t<this.icons.length; - t++)if(i>this.posList[t]&&i<this.posList[t+1]){ - e=t; - break} - if(-1!==e&&e<this.rowData.length){ - const i=this.rowData[e]; - this.icons[e].visible&&t.onHeroClick&&t.onHeroClick(i.kindNum,i.trans)} - } - } - ; - Kt(X3,"TowerHeroSelectItemRenderer"),zt(X3,"onHeroClick",null),zt(X3,"skillCodeMap",null),zt(X3,"showAttackType",!1); - let Y3=X3; - const J3=class extends Be{ - constructor(){ - super(),zt(this,"icon",new We),zt(this,"bg",new We),zt(this,"cover",new We),zt(this,"star",new We),zt(this,"posList",[30,26,24,19,16,13,9]),this.bg.x=3,this.bg.y=3,this.addChild(this.bg),this.icon.x=3,this.icon.y=3,this.addChild(this.icon),this.cover.x=0,this.cover.y=0,this.addChild(this.cover),this.addChild(this.star),this.setEmpty()} - setEmpty(){ - this.bg.texture=ZA.getTexture("UI_PET","HeroFrame_1_Bg"),this.cover.texture=ZA.getTexture("UI_PET","HeroFrame_1"),this.icon.visible=!1,this.star.visible=!1} - setPet(t,i){ - this.icon.visible=!0,this.star.visible=!0,this.icon.alpha=1,this.icon.tint=16777215,this.icon.texture=ZA.getTexture("UI_PET",`UI_PET${ - t} - `),this.icon.width=this.icon.height=this.cover.width-6,this.icon.x=3,this.icon.y=2; - const s=Math.max(1,Math.min(i,5)); - this.star.texture=ZA.getTextures("UI_PET","UI_UNIT_RARE")[s-1],this.star.x=this.posList[s-1],this.star.y=this.bg.height-this.star.height,this.bg.texture=ZA.getTexture("UI_PET",`HeroFrame_${ - s} - _Bg`),this.cover.texture=ZA.getTexture("UI_PET",`HeroFrame_${ - s} - `)} - setInactive(t){ - this.icon.visible=!0,this.star.visible=!1,this.icon.texture=ZA.getTexture("UI_PET",`UI_PET${ - t} - `),this.icon.width=this.icon.height=this.cover.width-6,this.icon.x=3,this.icon.y=2,this.icon.alpha=.9,this.icon.tint=11184810,this.bg.texture=ZA.getTexture("UI_PET","HeroFrame_1_Bg"),this.cover.texture=ZA.getTexture("UI_PET","HeroFrame_1")} - get width(){ - return this.bg.width} - get height(){ - return this.bg.height} - showStar(){ - this.star.visible=!0} - hideStar(){ - this.star.visible=!1} - } - ; - Kt(J3,"PetIcon"); - let Q3=J3; + );
- t==g3.gem?(r="UI_SHOP_GEM",h=.85):t==g3.redGem?(r="UI_SHOP_RED_GEM",h=.83):t==g3.gold?(r="m_gold",h=.7):t==g3.honorCoin?(r="UI_COIN_Big",h=.8):t==g3.guildCoin||t==g3.guildPoint?(r="GUILD_COIN",h=1.6):t==g3.raidCoin?(r="RaidCoin_on",h=1.5):t==g3.hammer?(r="Icon_Hammer",o="UI",h=1.5):"dungeonTicket"==t?(r="DungeonTick",h=.8):t==g3.hero?(this.heroIcon.setDataWithKindNum(e),this.heroIcon.visible=!0):t==g3.ticket&&n==g3.heroGacha?r="Ticket_HeroGacha":t==g3.ticket&&n==g3.heroSelect?(r="Ticket_HeroSelect",h=.85):t==g3.ticket&&n==g3.heroTrans?r="Ticket_HeroTrans":t==g3.pet?(this.petIcon.setPet(e,1),this.petIcon.visible=!0):t==g3.petTicket||n==g3.petTicket||t==g3.ticket&&n==g3.pet?(r="PetTick",h=.9):t==g3.petSelect||n==g3.petSelect||t==g3.ticket&&n==g3.petSelect?(r="Ticket_PetSelect",h=.9):t==g3.ticket&&n==g3.treasureGacha?(r="Ticket_TreasureGacha",h=.95):t==g3.ticket&&n==g3.treasureTrans&&(r="Ticket_TreasureTrans6"),r&&(this.img.scale=h,this.img.texture=ZA.getTexture(o,r),this.img.visible=!0,this.bg.visible=!0),this.lblNum.text=String(i),this.updateLayout()} + t==f3.gem?(r="UI_SHOP_GEM",h=.85):t==f3.redGem?(r="UI_SHOP_RED_GEM",h=.83):t==f3.gold?(r="m_gold",h=.7):t==f3.honorCoin?(r="UI_COIN_Big",h=.8):t==f3.guildCoin||t==f3.guildPoint?(r="GUILD_COIN",h=1.6):t==f3.raidCoin?(r="RaidCoin_on",h=1.5):t==f3.hammer?(r="Icon_Hammer",o="UI",h=1.5):"dungeonTicket"==t?(r="DungeonTick",h=.8):t==f3.hero?(this.heroIcon.setDataWithKindNum(e),this.heroIcon.visible=!0):t==f3.ticket&&n==f3.heroGacha?r="Ticket_HeroGacha":t==f3.ticket&&n==f3.heroSelect?(r="Ticket_HeroSelect",h=.85):t==f3.trans&&n==f3.hero?r=9==this._grade?"Ticket_HeroTrans2":"Ticket_HeroTrans":t==f3.pet?(this.petIcon.setPet(e,1),this.petIcon.visible=!0):t==f3.petTicket||n==f3.petTicket||t==f3.ticket&&n==f3.pet?(r="PetTick",h=.9):t==f3.petSelect||n==f3.petSelect||t==f3.ticket&&n==f3.petSelect?(r="Ticket_PetSelect",h=.9):t==f3.ticket&&n==f3.treasureGacha?(r="Ticket_TreasureGacha",h=.95):t==f3.trans&&n==f3.treasure&&(r=7===this._grade?"Ticket_TreasureTrans7":"Ticket_TreasureTrans6"),r&&(this.img.scale=h,this.img.texture=ZA.getTexture(o,r),this.img.visible=!0,this.bg.visible=!0),this.lblNum.text=String(i),this.updateLayout()}
GolemKing 18 hunks, 467 statements
- super(...arguments),zt(this,"teleportPhase",null),zt(this,"teleportFrames",0),zt(this,"emergeSlamming",!1),zt(this,"att1SecondTick",0),zt(this,"att2Phase",null),zt(this,"att2Frames",0),zt(this,"att2ChargeX",1),zt(this,"att2ChargeY",0)} + super(...arguments),zt(this,"teleportPhase",null),zt(this,"teleportFrames",0),zt(this,"emergeSlamming",!1),zt(this,"att1SecondTick",0),zt(this,"att2Phase",null),zt(this,"att2Frames",0),zt(this,"att2ChargeX",1),zt(this,"att2ChargeY",0),zt(this,"att2HitCounts",new Map),zt(this,"att4Phase",null),zt(this,"att4Frames",0),zt(this,"att4BurstsFired",0),zt(this,"att4Zones",[]),zt(this,"att4Markers",[]),zt(this,"att4HitCounts",new Map),zt(this,"att3HitCount",0),zt(this,"att5HitCount",0)}
- this.spineKey="raids/raid1/Golem",this.bossScale=1.3,this.spineTimeScale=.8,this.wanderEnabled=!0,this.wanderInterval=240,this.targetSwapChance=.2,this.wanderAfterAttackChance=.25,this.syncBoneName="",this.aniIdle="idle",this.aniMove="run",this.aniDie="die",this.aniSkill0="att1",this.aniSkills=["att2","att3","att4","att5"],this.eventSkill0Hit="att1_hit",this.eventSkillHits=["att2_hit","att3_hit","att4_hit","att5_hit"],this.isAir=!1,this.hitWidth=120,this.hitHeight=180,this.weakPointBone="Head",this.weakPointOffsetX=-25,this.skillRatio=[.78,.6,.42,.26,.12,0],this.numForSkillAttack=2,this.attackOrderList=[[0,0,1,0,2,0,3,5,0,1,0,4,0,2,5,0,3,0,1,0,4,5,0,2],[0,1,0,2,5,0,3,0,4,0,1,5,0,2,0,3,0,5,1,0,4,0,2,5],[0,0,2,0,1,5,0,4,0,3,0,5,2,0,1,0,4,5,0,3,0,2,5,0]]} + this.spineKey="raids/raid1/Golem",this.bossScale=1.3,this.spineTimeScale=.8,this.wanderEnabled=!0,this.wanderInterval=240,this.targetSwapChance=.2,this.wanderAfterAttackChance=.25,this.syncBoneName="",this.aniIdle="idle",this.aniMove="run",this.aniDie="die",this.aniSkill0="att1",this.aniSkills=["att2","att3","att4","att5"],this.eventSkill0Hit="att1_hit",this.eventSkillHits=["att2_hit","att3_hit","att4_hit","att5_hit"],this.isAir=!1,this.hitWidth=120,this.hitHeight=180,this.weakPointBone="Head",this.weakPointOffsetX=-25,this.skillRatio=[.78,.6,.42,.26,.12,0],this.numForSkillAttack=2,this.attackOrderList=[[0,0,1,0,2,0,0,3,0,0]],this.raidPhases=[{ + startFrame:0,label:"P1 기본기",combos:[{ + weight:3,skills:[1,2],label:"돌진→방사"} + ,{ + weight:2,skills:[2],label:"방사"} + ,{ + weight:2,skills:[1],label:"돌진"} + ,{ + weight:1,skills:[3],label:"낙석"} + ]} + ,{ + startFrame:1800,label:"P2 압박",combos:[{ + weight:3,skills:[1,2],label:"돌진→방사"} + ,{ + weight:3,skills:[4,3],label:"돌기둥→낙석"} + ,{ + weight:2,skills:[3],label:"낙석"} + ,{ + weight:2,skills:[4],label:"돌기둥"} + ,{ + weight:1,skills:[2],label:"방사"} + ]} + ,{ + startFrame:5400,label:"P3 필살",combos:[{ + weight:3,skills:[1,2,3],label:"돌진→방사→낙석"} + ,{ + weight:3,skills:[4,3],label:"돌기둥→낙석"} + ,{ + weight:2,skills:[5,3],label:"텔포→등장슬램→낙석"} + ,{ + weight:2,skills:[3],label:"낙석"} + ]} + ]}
- i!==t.SKILL_TELEPORT?1!==i?super.skillN(i):this.startAtt2Charge():this.startTeleport()} + i!==t.SKILL_TELEPORT?1!==i?3!==i?(2===i&&(this.att3HitCount=0),4===i&&(this.att5HitCount=0),super.skillN(i)):this.startAtt4():this.startAtt2Charge():this.startTeleport()}
- this.doAtt1Damage(),this.att1SecondTick=t.ATT1_SECOND_TICK_DELAY} + this.doAtt1Damage()}
- this.emergeSlamming?this.emergeRadialBlow():this.radialBlow(this.x,this.y,t.ATT3_RADIUS,t.ATT3_POWER_MIN,t.ATT3_POWER_MAX,t.ATT3_VH_MIN,t.ATT3_VH_MAX)} + this.emergeSlamming?this.emergeRadialBlow():this.att3HitCount>=t.ATT3_MAX_HITS||(this.att3HitCount++,this.doAtt3Damage(),this.radialBlow(this.x,this.y,t.ATT3_RADIUS,t.ATT3_POWER_MIN,t.ATT3_POWER_MAX,t.ATT3_VH_MIN,t.ATT3_VH_MAX))} + doAtt3Damage(){ + if(!this.enemyList)return; + const i=t.ATT3_RADIUS*t.ATT3_RADIUS; + for(const s of this.enemyList){ + if(!s.isAlive||s.removed||s.isUntagetable)continue; + const e=s.x-this.x,n=s.y-this.y; + e*e+n*n>i||this.doDamage(s,this.random.range(t.ATT3_DAMAGE_MIN,t.ATT3_DAMAGE_MAX),!0)} + }
+ if(!(this.att5HitCount>=t.ATT5_MAX_HITS)){ + this.att5HitCount++;
+ }
- getAggroCorpCenter(){ - var t,i; - const s=this.battleController,e=(null==(t=null==s?void 0:s.getHighestAggroCorpIndex)?void 0:t.call(s))??-1; - return e>=0?(null==(i=null==s?void 0:s.getCorpCenter)?void 0:i.call(s,e))??null:null} + startAtt4(){ + if(this.att4HitCounts.clear(),this.att4Zones=this.pickAtt4Zones(),0===this.att4Zones.length)return void super.skillN(3); + this.spawnAtt4Markers(),this.state=ex.SKILL,this.loop=!0,this.attackCoolDown=t.ATT4_WARNING_FRAMES+t.ATT4_RAIN_BURSTS*t.ATT4_RAIN_INTERVAL+30,this.numCurrentAttack=0,this.att4Phase="warning",this.att4Frames=0,this.att4BurstsFired=0,this.resetBoneSync(); + const i=this.playSpine(this.aniSkills[2],!0); + i&&(i.timeScale*=t.ATT4_ANIM_TIMESCALE)} + updateAtt4(){ + if(null===this.att4Phase)return; + this.att4Frames++; + const i=Math.min(1,this.att4Frames/t.ATT4_WARNING_FRAMES); + for(const t of this.att4Markers)t.update(i); + if("warning"===this.att4Phase)return void(this.att4Frames>=t.ATT4_WARNING_FRAMES&&(this.att4Phase="rain")); + const s=this.att4Frames-t.ATT4_WARNING_FRAMES; + this.att4BurstsFired<t.ATT4_RAIN_BURSTS&&s>=this.att4BurstsFired*t.ATT4_RAIN_INTERVAL&&(this.fireStoneBurstIntoZones(),this.att4BurstsFired++),this.att4BurstsFired>=t.ATT4_RAIN_BURSTS&&s>=t.ATT4_RAIN_BURSTS*t.ATT4_RAIN_INTERVAL+24&&this.endAtt4()} + endAtt4(){ + this.att4Phase=null,this.clearAtt4Markers(),this.att4HitCounts.clear(),this.gotoIdleState()} + fireStoneBurstIntoZones(){ + for(const i of this.att4Zones)for(let s=0; + s<t.STONE_PER_ZONE_PER_BURST; + s++){ + const s=this.random.next()*Math.PI*2,e=t.ATT4_ZONE_RADIUS*Math.sqrt(this.random.next()); + this.fireGolemStoneAtPoint(i.x+Math.cos(s)*e,i.y+Math.sin(s)*e)} + } + fireGolemStoneAtPoint(i,s){ + const e=PQ.getInstance().getWeapon(qX.GolemStone); + e.owner=this,e.target=null,e.x=i,e.y=this.random.range(t.STONE_SPAWN_Y_MIN,t.STONE_SPAWN_Y_MAX),e.rotation=0,e.bounceCount=0,e.hitClassName="",e.setData(this.random.range(t.STONE_DAMAGE_MIN,t.STONE_DAMAGE_MAX)),e.setGroundTarget(s,t.ATT4_AOE_RADIUS),e.setBattleController(this.battleController),e.delay=Math.floor(this.random.range(0,6)),lB.getInstance().addChild(e),e.play()} + spawnAtt4Markers(){ + this.clearAtt4Markers(); + for(const i of this.att4Zones){ + const s=new B2; + s.show(i.x,i.y,t.ATT4_ZONE_RADIUS),this.att4Markers.push(s)} + } + clearAtt4Markers(){ + for(const t of this.att4Markers)t.dispose(); + this.att4Markers.length=0} + tryAtt4StoneHit(i){ + const s=this.att4HitCounts.get(i)??0; + return!(s>=t.ATT4_MAX_HITS_PER_UNIT||(this.att4HitCounts.set(i,s+1),0))} + pickAtt4Zones(){ + const i=[]; + if(this.enemyList)for(const t of this.enemyList)!t.isAlive||t.removed||t.isUntagetable||i.push(t); + if(0===i.length)return[]; + const s=t.ATT4_ZONE_RADIUS,e=this.densestCenterOf(i,s); + if(!e)return[]; + const n=[e]; + if(this.getRaidBattleTimeFrames()>=t.ATT4_TWO_ZONE_FRAME){ + const t=i.filter(t=>{ + const i=t.x-e.x,n=t.y-e.y; + return i*i+n*n>s*s} + ); + if(t.length>0){ + const i=this.densestCenterOf(t,s); + i&&n.push(i)} + } + return n} + densestCenterOf(t,i){ + if(0===t.length)return null; + const s=i*i; + let e=0,n=-1; + for(let l=0; + l<t.length; + l++){ + let i=0; + for(let e=0; + e<t.length; + e++){ + const n=t[l].x-t[e].x,h=t[l].y-t[e].y; + n*n+h*h<=s&&i++} + i>n&&(n=i,e=l)} + const h=t[e].x,r=t[e].y; + let o=0,a=0,c=0; + for(const l of t){ + const t=l.x-h,i=l.y-r; + t*t+i*i<=s&&(o+=l.x,a+=l.y,c++)} + return c>0?{ + x:o/c,y:a/c} + :{ + x:h,y:r} + } + getDensestEnemyCenter(){ + const i=[]; + if(this.enemyList)for(const t of this.enemyList)!t.isAlive||t.removed||t.isUntagetable||i.push(t); + return this.densestCenterOf(i,t.ATT2_DENSITY_RADIUS)}
- const s=this.getAggroCorpCenter(); + const s=this.getDensestEnemyCenter();
- this.computeAtt2ChargeDir(),this.lookAt(this.att2ChargeX>=0?1:-1),this.state=ex.SKILL,this.loop=!0,this.attackCoolDown=t.ATT2_DURATION_FRAMES+10,this.numCurrentAttack=0,this.att2Phase="charge",this.att2Frames=0,this.resetBoneSync(),this.playSpine(this.aniSkills[0],!0)} + this.computeAtt2ChargeDir(),this.lookAt(this.att2ChargeX>=0?1:-1),this.state=ex.SKILL,this.loop=!0,this.attackCoolDown=t.ATT2_DURATION_FRAMES+10,this.numCurrentAttack=0,this.att2Phase="charge",this.att2Frames=0,this.att2HitCounts.clear(),this.resetBoneSync(),this.playSpine(this.aniSkills[0],!0)}
- const i=this.x+this.direction*t.ATT2_OFFSET_X,s=this.y,e=t.ATT2_RADIUS*t.ATT2_RADIUS; + const i=this.x+this.att2ChargeX*t.ATT2_OFFSET_X,s=this.y+this.att2ChargeY*t.ATT2_OFFSET_X,e=t.ATT2_RADIUS*t.ATT2_RADIUS;
- r*r+o*o>e||(this.doDamage(h,this.random.range(t.ATT2_DAMAGE_MIN,t.ATT2_DAMAGE_MAX),!0),n++)} + if(r*r+o*o>e)continue; + const a=this.att2HitCounts.get(h)??0; + a>=t.ATT2_MAX_HITS_PER_UNIT||(this.att2HitCounts.set(h,a+1),this.doDamage(h,this.random.range(t.ATT2_DAMAGE_MIN,t.ATT2_DAMAGE_MAX),!0),n++)}
- if(this.att1SecondTick>0&&0===--this.att1SecondTick&&this.doAtt1Damage(),"underground"!==this.teleportPhase)return"charge"===this.att2Phase&&this.state===ex.SKILL?(this.att2Frames++,this.x+=this.att2ChargeX*t.ATT2_CHARGE_SPEED,this.y+=this.att2ChargeY*t.ATT2_CHARGE_SPEED,this.att2Frames<=t.ATT2_DURATION_FRAMES&&this.att2Frames%t.ATT2_TICK_INTERVAL===1&&this.doAtt2Tick(),void(this.att2Frames>=t.ATT2_DURATION_FRAMES&&this.endAtt2())):void 0; + if(this.updateAtt4(),this.att1SecondTick>0&&0===--this.att1SecondTick&&this.doAtt1Damage(),"underground"!==this.teleportPhase)return"charge"===this.att2Phase&&this.state===ex.SKILL?(this.att2Frames++,this.x+=this.att2ChargeX*t.ATT2_CHARGE_SPEED,this.y+=this.att2ChargeY*t.ATT2_CHARGE_SPEED,this.att2Frames<=t.ATT2_DURATION_FRAMES&&this.att2Frames%t.ATT2_TICK_INTERVAL===1&&this.doAtt2Tick(),void(this.att2Frames>=t.ATT2_DURATION_FRAMES&&this.endAtt2())):void 0;
- this.att1SecondTick=0,this.att2Phase=null,this.teleportPhase=null,this.emergeSlamming=!1,this.attackable=!0,this.isUntagetable=!1,this.spine&&(this.spine.visible=!0)} + this.att1SecondTick=0,this.att2Phase=null,this.att4Phase=null,this.clearAtt4Markers(),this.att2HitCounts.clear(),this.att3HitCount=0,this.att5HitCount=0,this.teleportPhase=null,this.emergeSlamming=!1,this.attackable=!0,this.isUntagetable=!1,this.spine&&(this.spine.visible=!0)}
- super.resetForPool(),this.att1SecondTick=0,this.att2Phase=null,this.teleportPhase=null,this.teleportFrames=0,this.emergeSlamming=!1,this.attackable=!0,this.isUntagetable=!1,this.spine&&(this.spine.visible=!0)} + super.resetForPool(),this.att1SecondTick=0,this.att2Phase=null,this.att4Phase=null,this.att4Frames=0,this.att4BurstsFired=0,this.clearAtt4Markers(),this.att4HitCounts.clear(),this.att2HitCounts.clear(),this.att3HitCount=0,this.att5HitCount=0,this.teleportPhase=null,this.teleportFrames=0,this.emergeSlamming=!1,this.attackable=!0,this.isUntagetable=!1,this.spine&&(this.spine.visible=!0)}
- null!==this.teleportPhase||this.emergeSlamming||this.startTeleport()} + null!==this.teleportPhase||this.emergeSlamming||null!==this.att4Phase||this.startTeleport()}
- super.remove()} + this.clearAtt4Markers(),super.remove()}
- Kt(E2,"GolemKing"),zt(E2,"SKILL_TELEPORT",5),zt(E2,"BLOW_SCALE",.75*.6),zt(E2,"ATT1_CENTER_BONE","R_Arm_01"),zt(E2,"ATT1_RADIUS",200),zt(E2,"ATT1_MAX_TARGETS",80),zt(E2,"ATT1_DAMAGE_MIN",1),zt(E2,"ATT1_DAMAGE_MAX",2.5),zt(E2,"ATT1_KB_POWER_MIN",5),zt(E2,"ATT1_KB_POWER_MAX",15),zt(E2,"ATT1_KB_VH_MIN",4),zt(E2,"ATT1_KB_VH_MAX",12),zt(E2,"ATT1_SECOND_TICK_DELAY",10),zt(E2,"ATT3_RADIUS",300),zt(E2,"ATT3_POWER_MIN",3),zt(E2,"ATT3_POWER_MAX",12),zt(E2,"ATT3_VH_MIN",2),zt(E2,"ATT3_VH_MAX",10),zt(E2,"ATT5_PILLAR_RADIUS",70),zt(E2,"ATT5_MAX_TARGETS",10),zt(E2,"ATT5_DAMAGE_MIN",1.4),zt(E2,"ATT5_DAMAGE_MAX",2.8),zt(E2,"ATT5_POWER_MIN",5),zt(E2,"ATT5_POWER_MAX",12),zt(E2,"ATT5_VH_MIN",4),zt(E2,"ATT5_VH_MAX",9),zt(E2,"ATT5_PILLAR_BONES",["stone_pillar_01","stone_pillar_02","stone_pillar_03","stone_pillar_04","stone_pillar_05","stone_pillar_06","stone_pillar_07","stone_pillar_08","stone_pillar_09"]),zt(E2,"ATT2_CHARGE_SPEED",3),zt(E2,"ATT2_DURATION_FRAMES",120),zt(E2,"ATT2_TICK_INTERVAL",3),zt(E2,"ATT2_OFFSET_X",50),zt(E2,"ATT2_RADIUS",80),zt(E2,"ATT2_MAX_TARGETS",5),zt(E2,"ATT2_DAMAGE_MIN",1.5),zt(E2,"ATT2_DAMAGE_MAX",2.5),zt(E2,"TELEPORT_UNDERGROUND_FRAMES",120),zt(E2,"EMERGE_RADIUS",480),zt(E2,"EMERGE_POWER_MIN",15.2),zt(E2,"EMERGE_POWER_MAX",24.3),zt(E2,"EMERGE_VH_MIN",10.6),zt(E2,"EMERGE_VH_MAX",18.2); + Kt(U2,"GolemKing"),zt(U2,"SKILL_TELEPORT",5),zt(U2,"BLOW_SCALE",.75*.6),zt(U2,"ATT1_CENTER_BONE","R_Arm_01"),zt(U2,"ATT1_RADIUS",200),zt(U2,"ATT1_MAX_TARGETS",80),zt(U2,"ATT1_DAMAGE_MIN",1),zt(U2,"ATT1_DAMAGE_MAX",2),zt(U2,"ATT1_KB_POWER_MIN",5),zt(U2,"ATT1_KB_POWER_MAX",15),zt(U2,"ATT1_KB_VH_MIN",4),zt(U2,"ATT1_KB_VH_MAX",12),zt(U2,"ATT1_SECOND_TICK_DELAY",10),zt(U2,"ATT3_RADIUS",300),zt(U2,"ATT3_DAMAGE_MIN",1.5),zt(U2,"ATT3_DAMAGE_MAX",2.5),zt(U2,"ATT3_MAX_HITS",2),zt(U2,"ATT3_POWER_MIN",3),zt(U2,"ATT3_POWER_MAX",12),zt(U2,"ATT3_VH_MIN",2),zt(U2,"ATT3_VH_MAX",10),zt(U2,"ATT5_PILLAR_RADIUS",80),zt(U2,"ATT5_MAX_TARGETS",10),zt(U2,"ATT5_MAX_HITS",2),zt(U2,"ATT5_DAMAGE_MIN",1.4),zt(U2,"ATT5_DAMAGE_MAX",2.8),zt(U2,"ATT5_POWER_MIN",10),zt(U2,"ATT5_POWER_MAX",22),zt(U2,"ATT5_VH_MIN",8),zt(U2,"ATT5_VH_MAX",16),zt(U2,"ATT5_PILLAR_BONES",["stone_pillar_01","stone_pillar_02","stone_pillar_03","stone_pillar_04","stone_pillar_05","stone_pillar_06","stone_pillar_07","stone_pillar_08","stone_pillar_09"]),zt(U2,"ATT2_CHARGE_SPEED",3),zt(U2,"ATT2_DURATION_FRAMES",120),zt(U2,"ATT2_TICK_INTERVAL",3),zt(U2,"ATT2_OFFSET_X",50),zt(U2,"ATT2_RADIUS",80),zt(U2,"ATT2_MAX_TARGETS",20),zt(U2,"ATT2_DAMAGE_MIN",1.5),zt(U2,"ATT2_DAMAGE_MAX",2.5),zt(U2,"ATT2_MAX_HITS_PER_UNIT",3),zt(U2,"ATT2_DENSITY_RADIUS",300),zt(U2,"ATT4_WARNING_FRAMES",100),zt(U2,"ATT4_ANIM_TIMESCALE",.5),zt(U2,"ATT4_RAIN_BURSTS",7),zt(U2,"ATT4_RAIN_INTERVAL",4),zt(U2,"ATT4_ZONE_RADIUS",160),zt(U2,"ATT4_AOE_RADIUS",60),zt(U2,"STONE_PER_ZONE_PER_BURST",5),zt(U2,"ATT4_TWO_ZONE_FRAME",6600),zt(U2,"STONE_SPAWN_Y_MIN",-40),zt(U2,"STONE_SPAWN_Y_MAX",-20),zt(U2,"STONE_DAMAGE_MIN",1.2),zt(U2,"STONE_DAMAGE_MAX",3),zt(U2,"ATT4_MAX_HITS_PER_UNIT",8),zt(U2,"TELEPORT_UNDERGROUND_FRAMES",120),zt(U2,"EMERGE_RADIUS",480),zt(U2,"EMERGE_POWER_MIN",15.2),zt(U2,"EMERGE_POWER_MAX",24.3),zt(U2,"EMERGE_VH_MIN",10.6),zt(U2,"EMERGE_VH_MAX",18.2); + let F2=U2; + const H2=class t extends N2{ + constructor(){ + super(...arguments),zt(this,"att5LastShotIdx",-1),zt(this,"tornadoHookSpine",null),zt(this,"teleportPhase",null),zt(this,"teleportFrames",0),zt(this,"nextLightningFrame",t.LIGHTNING_FIRST_FRAME)} + initializeData2(){ + this.spineKey="raids/raid1/Belial",this.bossScale=1,this.spineTimeScale=.8,this.wanderEnabled=!1,this.immobile=!0,this.targetSwapChance=.2,this.syncBoneName="",this.aniIdle="idle",this.aniMove="idle",this.aniDie="die",this.aniGroggy="groggy",this.aniSkill0="att_01",this.aniSkills=["att_02","att_03","att_04","att_05"],this.eventSkill0Hit="att_01_hit",this.eventSkillHits=["att_02_hit","att_03_hit","att_04_hit","att_05_hit"],this.isAir=!1,this.hitWidth=140,this.hitHeight=210,this.weakPointBone="Head",this.numForSkillAttack=2,this.skillRatio=[.78,.58,.4,.22,.08,0],this.attackOrderList=[[0,0,1,0,2,0,0,3,0,4,0,0]],this.raidPhases=[{ + startFrame:0,label:"P1 기본기",combos:[{ + weight:3,skills:[1],label:"연사"} + ,{ + weight:2,skills:[2],label:"강타"} + ,{ + weight:2,skills:[3],label:"다단"} + ,{ + weight:1,skills:[4],label:"난사"} + ]} + ,{ + startFrame:1800,label:"P2 압박",combos:[{ + weight:3,skills:[2,1],label:"강타→연사"} + ,{ + weight:3,skills:[3],label:"다단"} + ,{ + weight:2,skills:[4],label:"난사"} + ,{ + weight:2,skills:[1],label:"연사"} + ,{ + weight:1,skills:[5],label:"텔포"} + ]} + ,{ + startFrame:5400,label:"P3 필살",combos:[{ + weight:3,skills:[2,4],label:"강타→난사"} + ,{ + weight:3,skills:[5,3],label:"텔포→다단"} + ,{ + weight:2,skills:[3,1],label:"다단→연사"} + ,{ + weight:2,skills:[4],label:"난사"} + ]} + ]} + aoeDamage(t,i,s,e,n,h){ + if(!this.enemyList)return; + const r=s*s; + let o=0; + for(const a of this.enemyList){ + if(o>=h)break; + if(!a.isAlive||a.removed||a.isUntagetable)continue; + const s=a.x-t,c=a.y-i; + s*s+c*c>r||(this.doDamage(a,this.random.range(e,n),!0),o++)} + } + radialBlow(i,s,e,n,h,r,o){ + if(!this.enemyList)return; + const a=e*e; + for(const c of this.enemyList){ + if(!c.isAlive||c.isImmovable)continue; + const e=c.x-i,l=c.y-s,u=e*e+l*l; + if(u>a)continue; + const d=Math.sqrt(u); + let f,p; + if(d<.01){ + const t=this.random.next()*Math.PI*2; + f=Math.cos(t),p=Math.sin(t)} + else f=e/d,p=l/d; + const g=t.BLOW_SCALE,m=(n+this.random.next()*(h-n))*g,w=-(r+this.random.next()*(o-r))*g; + c.blow(f*m,p*m,w)} + } + getAggroCorpCenter(){ + var t,i; + const s=this.battleController,e=(null==(t=null==s?void 0:s.getHighestAggroCorpIndex)?void 0:t.call(s))??-1; + return e>=0?(null==(i=null==s?void 0:s.getCorpCenter)?void 0:i.call(s,e))??null:null} + getEnemyCentroid(){ + if(!this.enemyList)return null; + let t=0,i=0,s=0; + for(const e of this.enemyList)!e.isAlive||e.removed||e.isUntagetable||(t+=e.x,i+=e.y,s++); + return s>0?{ + x:t/s,y:i/s} + :null} + attackMain(){ + this.aoeDamage(this.x,this.y,t.ATT1_RADIUS,t.ATT1_DAMAGE_MIN,t.ATT1_DAMAGE_MAX,t.ATT1_MAX_TARGETS),this.radialBlow(this.x,this.y,t.ATT1_RADIUS,4,9,3,7)} + skillMain1(){ + const i=this.getBoneWorld(t.ATT2_FIRE_BONE)??{ + x:this.x,y:this.y} + ,s=[]; + if(this.enemyList){ + const e=t.ATT2_TARGET_RADIUS*t.ATT2_TARGET_RADIUS; + for(const t of this.enemyList){ + if(t.removed||!t.isAlive||t.isUntagetable)continue; + const n=t.x-i.x,h=t.y-i.y; + n*n+h*h<=e&&s.push(t)} + } + if(0!==s.length)for(let e=0; + e<t.ATT2_FIRE_PER_HIT; + e++){ + const e=s[this.random.nextInt(s.length)],n=PQ.getInstance().getWeapon(qX.BerialFire); + n.owner=this,n.x=i.x,n.y=i.y,n.setBattleController(this.battleController),n.setData(this.random.range(t.ATT2_FIRE_DAMAGE_MIN,t.ATT2_FIRE_DAMAGE_MAX)),lB.getInstance().addChild(n),n.fireAtTarget(e)} + } + skillMain2(){ + this.aoeDamage(this.x,this.y,t.ATT3_RADIUS,t.ATT3_DAMAGE_MIN,t.ATT3_DAMAGE_MAX,t.ATT3_MAX_TARGETS),this.radialBlow(this.x,this.y,t.ATT3_RADIUS,10,20,8,16)} + skillMain3(){ + } + skillMain4(){ + } + updateLightningArea(){ + this.getRaidBattleTimeFrames()<this.nextLightningFrame||(this.nextLightningFrame+=t.LIGHTNING_CYCLE_FRAMES,this.spawnLightningArea())} + spawnLightningArea(){ + const t=this.getAggroCorpCenter()??this.getEnemyCentroid(); + if(!t)return; + const i=PQ.getInstance().getWeapon(qX.BerialLightningArea); + i.owner=this,i.x=t.x,i.y=t.y,i.setBattleController(this.battleController),i.setData(1),i.play()} + skillN(i){ + i!==t.SKILL_TELEPORT?(4===i&&(this.att5LastShotIdx=-1),super.skillN(i)):this.startTeleport()} + startTeleport(){ + this.state=ex.SKILL,this.loop=!1,this.attackCoolDown=this.atkDuration,this.numCurrentAttack=0,this.attackable=!1,this.isUntagetable=!0,this.teleportPhase="out",this.teleportFrames=0,this.resetBoneSync(),this.playSpine("teleport_out",!1)} + relocateForTeleport(){ + const t=this.wanderMinX+this.random.next()*(this.wanderMaxX-this.wanderMinX),i=this.wanderMinY+this.random.next()*(this.wanderMaxY-this.wanderMinY); + this.x=t,this.y=i,this.tx=t,this.ty=i,this.resetBoneSync(),this.faceMajorityEnemies()} + ensureTornadoHook(){ + if(!this.spine||this.tornadoHookSpine===this.spine)return; + this.tornadoHookSpine=this.spine; + const i=this.spine.beforeUpdateWorldTransforms; + this.spine.beforeUpdateWorldTransforms=s=>{ + var e; + null==i||i(s); + const n=this.spine; + if(!n)return; + if(this.getRaidBattleTimeFrames()>=t.ATT1_TORNADO_START_FRAME)return; + const h=n.state.getCurrent(0); + if("att_01"!==(null==(e=null==h?void 0:h.animation)?void 0:e.name))return; + const r=n.skeleton.findSlot(t.ATT1_TORNADO_SLOT); + r&&(r.color.a=0)} + } + suckTornado(){ + if(!this.enemyList)return; + const i=this.getSlotWorldCenter(t.ATT1_TORNADO_SLOT)??this.getBoneWorld(t.ATT1_TORNADO_SLOT)??{ + x:this.x,y:this.y} + ,s=t.ATT1_SUCK_RADIUS*t.ATT1_SUCK_RADIUS; + for(const e of this.enemyList){ + if(e.removed||!e.isAlive||e.isUntagetable||e.isImmovable||e.knockImmune)continue; + const n=i.x-e.x,h=i.y-e.y,r=n*n+h*h; + if(r>s||r<1)continue; + const o=Math.sqrt(r),a=Math.min(t.ATT1_SUCK_SPEED,o); + e.x+=n/o*a,e.y+=h/o*a,e.tx=e.x,e.ty=e.y} + } + att4TornadoTick(){ + if(!this.enemyList)return; + const i=this.getSlotWorldCenter(t.ATT1_TORNADO_SLOT)??this.getBoneWorld(t.ATT1_TORNADO_SLOT)??{ + x:this.x,y:this.y} + ,s=t.ATT4_TORNADO_RADIUS*t.ATT4_TORNADO_RADIUS; + for(const e of this.enemyList){ + if(e.removed||!e.isAlive||e.isUntagetable)continue; + const n=i.x-e.x,h=i.y-e.y,r=n*n+h*h; + if(!(r>s)&&(this.doDamage(e,this.random.range(t.ATT4_DAMAGE_MIN,t.ATT4_DAMAGE_MAX),!0),r>=1&&!e.isImmovable&&!e.knockImmune)){ + const i=Math.sqrt(r),s=Math.min(t.ATT4_SUCK_SPEED,i); + e.x+=n/i*s,e.y+=h/i*s,e.tx=e.x,e.ty=e.y} + } + } + att5Volley(){ + if(!this.enemyList)return; + const i=t.ATT5_RADIUS*t.ATT5_RADIUS,s=[]; + for(const t of this.enemyList){ + if(t.removed||!t.isAlive||t.isUntagetable)continue; + const e=t.x-this.x,n=t.y-this.y; + e*e+n*n<=i&&s.push(t)} + const e=Math.min(t.ATT5_TARGETS,s.length); + for(let n=0; + n<e; + n++){ + const i=n+this.random.nextInt(s.length-n),e=s[n]; + s[n]=s[i],s[i]=e,this.doDamage(s[n],this.random.range(t.ATT5_DAMAGE_MIN,t.ATT5_DAMAGE_MAX),!0)} + } + execute(){ + var i,s,e,n,h,r,o; + if(this.executeRaidStunFrame())return; + if(super.execute(),!this.isAlive)return; + this.ensureTornadoHook(),this.getRaidBattleTimeFrames()>=t.ATT1_TORNADO_START_FRAME&&"att_01"===(null==(e=null==(s=null==(i=this.spine)?void 0:i.state.getCurrent(0))?void 0:s.animation)?void 0:e.name)&&this.suckTornado(); + const a=null==(n=this.spine)?void 0:n.state.getCurrent(0); + if("att_04"===(null==(h=null==a?void 0:a.animation)?void 0:h.name)){ + const i=30*a.trackTime; + i>=t.ATT4_TORNADO_START_F&&i<=t.ATT4_TORNADO_END_F&&this.att4TornadoTick()} + const c=null==(r=this.spine)?void 0:r.state.getCurrent(0); + if("att_05"===(null==(o=null==c?void 0:c.animation)?void 0:o.name)){ + const i=30*c.trackTime; + if(i>=t.ATT5_START_F&&i<=t.ATT5_END_F){ + const s=Math.floor((i-t.ATT5_START_F)/t.ATT5_INTERVAL_F); + s!==this.att5LastShotIdx&&(this.att5LastShotIdx=s,this.att5Volley())} + } + this.updateLightningArea(),"underground"!==this.teleportPhase||++this.teleportFrames>=t.TELEPORT_UNDERGROUND_FRAMES&&(this.spine&&(this.spine.visible=!0),this.isUntagetable=!1,this.attackable=!0,this.teleportPhase="in",this.resetBoneSync(),this.faceMajorityEnemies(),this.playSpine("teleport_in",!1))} + onSpineAnimationComplete(t){ + var i; + const s=(null==(i=t.animation)?void 0:i.name)??""; + return"teleport_out"===s?(this.relocateForTeleport(),this.spine&&(this.spine.visible=!1),this.teleportPhase="underground",void(this.teleportFrames=0)):"teleport_in"===s?(this.teleportPhase=null,void this.gotoIdleState()):void super.onSpineAnimationComplete(t)} + onRaidStunStart(){ + this.teleportPhase=null,this.attackable=!0,this.isUntagetable=!1,this.spine&&(this.spine.visible=!0)} + resetForPool(){ + super.resetForPool(),this.teleportPhase=null,this.teleportFrames=0,this.nextLightningFrame=t.LIGHTNING_FIRST_FRAME,this.attackable=!0,this.isUntagetable=!1,this.spine&&(this.spine.visible=!0)} + escapeSkill(){ + null===this.teleportPhase&&this.startTeleport()} + } + ; + Kt(H2,"BerialKing"),zt(H2,"SKILL_TELEPORT",5),zt(H2,"BLOW_SCALE",.45),zt(H2,"ATT1_RADIUS",250),zt(H2,"ATT1_MAX_TARGETS",40),zt(H2,"ATT1_DAMAGE_MIN",1),zt(H2,"ATT1_DAMAGE_MAX",2),zt(H2,"ATT2_FIRE_BONE","magic_circle_fx01"),zt(H2,"ATT2_FIRE_PER_HIT",5),zt(H2,"ATT2_TARGET_RADIUS",220),zt(H2,"ATT2_FIRE_DAMAGE_MIN",1),zt(H2,"ATT2_FIRE_DAMAGE_MAX",2),zt(H2,"ATT3_RADIUS",360),zt(H2,"ATT3_MAX_TARGETS",60),zt(H2,"ATT3_DAMAGE_MIN",1.5),zt(H2,"ATT3_DAMAGE_MAX",3),zt(H2,"ATT4_TORNADO_START_F",24),zt(H2,"ATT4_TORNADO_END_F",64),zt(H2,"ATT4_TORNADO_RADIUS",200),zt(H2,"ATT4_SUCK_SPEED",2),zt(H2,"ATT4_DAMAGE_MIN",.1),zt(H2,"ATT4_DAMAGE_MAX",.3),zt(H2,"ATT5_RADIUS",220),zt(H2,"ATT5_START_F",24),zt(H2,"ATT5_END_F",72),zt(H2,"ATT5_INTERVAL_F",4),zt(H2,"ATT5_TARGETS",10),zt(H2,"ATT5_DAMAGE_MIN",1),zt(H2,"ATT5_DAMAGE_MAX",3),zt(H2,"LIGHTNING_FIRST_FRAME",420),zt(H2,"LIGHTNING_CYCLE_FRAMES",1200),zt(H2,"TELEPORT_UNDERGROUND_FRAMES",90),zt(H2,"ATT1_TORNADO_SLOT","tornado_fx01"),zt(H2,"ATT1_TORNADO_START_FRAME",5400),zt(H2,"ATT1_SUCK_RADIUS",150),zt(H2,"ATT1_SUCK_SPEED",1.5); + let W2=H2; + const j2=class t extends N2{ + constructor(){ + super(...arguments),zt(this,"teleportPhase",null),zt(this,"teleportFrames",0),zt(this,"warningCircle",null),zt(this,"warningElapsed",0),zt(this,"isSummoning",!1)} + initializeData2(){ + this.spineKey="raids/raid1/Ancient_DragonKnight",this.bossScale=1.15,this.spineTimeScale=.8,this.wanderEnabled=!1,this.immobile=!0,this.targetSwapChance=.2,this.syncBoneName="",this.aniIdle="idle",this.aniMove="idle",this.aniDie="groggy",this.aniGroggy="groggy",this.aniSkill0="att_01",this.aniSkills=["att_02","att_03","att_04","att_05","att_05","att_05"],this.eventSkill0Hit="att_01_hit",this.eventSkillHits=["att_02_hit","att_03_hit","att_04_hit","att_05_hit","att_05_hit","att_05_hit"],this.isAir=!1,this.hitWidth=80,this.hitHeight=120,this.weakPointBone="head",this.weakPointOffsetY=-35,this.numForSkillAttack=2,this.skillRatio=[.78,.58,.4,.22,.12,.08,.04,0],this.attackOrderList=[[0,0,1,0,2,0,0,3,0,4,0,5,0,6,0]],this.raidPhases=[{ + startFrame:0,label:"P1 기본기",combos:[{ + weight:3,skills:[1],label:"군단폭격"} + ,{ + weight:2,skills:[2],label:"강타"} + ,{ + weight:2,skills:[3],label:"다단"} + ,{ + weight:1,skills:[4],label:"난사"} + ]} + ,{ + startFrame:1800,label:"P2 압박",combos:[{ + weight:3,skills:[2,1],label:"강타→폭격"} + ,{ + weight:3,skills:[5],label:"브레스1"} + ,{ + weight:2,skills:[4],label:"난사"} + ,{ + weight:2,skills:[3],label:"다단"} + ,{ + weight:1,skills:[7],label:"텔포"} + ]} + ,{ + startFrame:5400,label:"P3 필살",combos:[{ + weight:3,skills:[2,6],label:"강타→브레스2"} + ,{ + weight:3,skills:[7,3],label:"텔포→다단"} + ,{ + weight:2,skills:[5,4],label:"브레스1→난사"} + ,{ + weight:2,skills:[6],label:"브레스2"} + ]} + ]} + aoeDamage(t,i,s,e,n,h){ + if(!this.enemyList)return; + const r=s*s; + let o=0; + for(const a of this.enemyList){ + if(o>=h)break; + if(!a.isAlive||a.removed||a.isUntagetable)continue; + const s=a.x-t,c=a.y-i; + s*s+c*c>r||(this.doDamage(a,this.random.range(e,n),!0),o++)} + } + radialBlow(i,s,e,n,h,r,o){ + if(!this.enemyList)return; + const a=e*e; + for(const c of this.enemyList){ + if(!c.isAlive||c.isImmovable)continue; + const e=c.x-i,l=c.y-s,u=e*e+l*l; + if(u>a)continue; + const d=Math.sqrt(u); + let f,p; + if(d<.01){ + const t=this.random.next()*Math.PI*2; + f=Math.cos(t),p=Math.sin(t)} + else f=e/d,p=l/d; + const g=t.BLOW_SCALE,m=(n+this.random.next()*(h-n))*g,w=-(r+this.random.next()*(o-r))*g; + c.blow(f*m,p*m,w)} + } + getAggroCorpCenter(){ + var t,i; + const s=this.battleController,e=(null==(t=null==s?void 0:s.getHighestAggroCorpIndex)?void 0:t.call(s))??-1; + return e>=0?(null==(i=null==s?void 0:s.getCorpCenter)?void 0:i.call(s,e))??null:null} + getEnemyCentroid(){ + if(!this.enemyList)return null; + let t=0,i=0,s=0; + for(const e of this.enemyList)!e.isAlive||e.removed||e.isUntagetable||(t+=e.x,i+=e.y,s++); + return s>0?{ + x:t/s,y:i/s} + :null} + attackMain(){ + this.aoeDamage(this.x,this.y,t.ATT1_RADIUS,t.ATT1_DAMAGE_MIN,t.ATT1_DAMAGE_MAX,t.ATT1_MAX_TARGETS),this.radialBlow(this.x,this.y,t.ATT1_RADIUS,4,9,3,7)} + skillMain1(){ + const i=this.getAggroCorpCenter()??this.getEnemyCentroid(); + i&&this.aoeDamage(i.x,i.y,t.ATT2_RADIUS,t.ATT2_DAMAGE_MIN,t.ATT2_DAMAGE_MAX,t.ATT2_MAX_TARGETS)} + skillMain2(){ + this.aoeDamage(this.x,this.y,t.ATT3_RADIUS,t.ATT3_DAMAGE_MIN,t.ATT3_DAMAGE_MAX,t.ATT3_MAX_TARGETS),this.radialBlow(this.x,this.y,t.ATT3_RADIUS,10,20,8,16)} + skillMain3(){ + const i=this.getEnemyCentroid(); + i&&this.aoeDamage(i.x,i.y,t.ATT4_RADIUS,t.ATT4_DAMAGE_MIN,t.ATT4_DAMAGE_MAX,t.ATT4_MAX_TARGETS)} + skillMain4(){ + this.isSummoning||this.aoeDamage(this.x,this.y,t.ATT5_RADIUS,t.ATT5_DAMAGE_MIN,t.ATT5_DAMAGE_MAX,t.ATT5_MAX_TARGETS)} + skillN(i){ + if(i!==t.SKILL_TELEPORT)return i===t.SKILL_SUMMON_1||i===t.SKILL_SUMMON_2?(this.isSummoning=!0,this.summonDragon(i===t.SKILL_SUMMON_1?1:2),void super.skillN(i)):void super.skillN(i); + this.startTeleport()} + summonDragon(t){ + const i=this.getAggroCorpCenter()??this.getEnemyCentroid(); + if(!i)return; + const s=PQ.getInstance().getWeapon(qX.SummonDragon); + s.owner=this,s.x=i.x,s.y=i.y,s.setBattleController(this.battleController),s.setData(1),s.setBreath(t),s.play()} + startTeleport(){ + this.state=ex.SKILL,this.loop=!1,this.attackCoolDown=this.atkDuration,this.numCurrentAttack=0,this.attackable=!1,this.isUntagetable=!0,this.releaseEnemyTargets(),this.teleportPhase="out",this.teleportFrames=0,this.resetBoneSync(),this.playSpine("teleport_out",!1)} + relocateForTeleport(){ + const i=this.getAggroCorpCenter()??this.getEnemyCentroid(),s=i?i.x:this.wanderMinX+this.random.next()*(this.wanderMaxX-this.wanderMinX),e=i?i.y:this.wanderMinY+this.random.next()*(this.wanderMaxY-this.wanderMinY); + this.x=s,this.y=e,this.tx=s,this.ty=e,this.resetBoneSync(),this.faceMajorityEnemies(),this.warningCircle||(this.warningCircle=new B2),this.warningCircle.show(s,e,t.SLAM_RADIUS),this.warningElapsed=0} + execute(){ + var i,s; + if(!this.executeRaidStunFrame()&&(super.execute(),this.isAlive)){ + if(this.warningCircle&&(this.warningElapsed++,this.warningCircle.update(this.warningElapsed/t.TELEPORT_UNDERGROUND_FRAMES)),"in"===this.teleportPhase&&this.isUntagetable){ + const e=null==(i=this.spine)?void 0:i.state.getCurrent(0); + "teleport_in"===(null==(s=null==e?void 0:e.animation)?void 0:s.name)&&30*e.trackTime>=t.TELEPORT_REVEAL_FRAME&&(this.isUntagetable=!1)} + "underground"!==this.teleportPhase||++this.teleportFrames>=t.TELEPORT_UNDERGROUND_FRAMES&&(this.spine&&(this.spine.visible=!0),this.attackable=!0,this.teleportPhase="in",this.resetBoneSync(),this.faceMajorityEnemies(),this.playSpine("teleport_in",!1))} + } + onSpineAnimationComplete(t){ + var i; + const s=(null==(i=t.animation)?void 0:i.name)??""; + return"att_05"===s&&(this.isSummoning=!1),"teleport_out"===s?(this.relocateForTeleport(),this.spine&&(this.spine.visible=!1),this.teleportPhase="underground",void(this.teleportFrames=0)):"teleport_in"===s?(this.teleportPhase=null,void this.gotoIdleState()):void super.onSpineAnimationComplete(t)} + onSpineEvent(t){ + "teleport_in_hit"!==t?super.onSpineEvent(t):this.doTeleportSlam()} + doTeleportSlam(){ + this.aoeDamage(this.x,this.y,t.SLAM_RADIUS,t.SLAM_DAMAGE_MIN,t.SLAM_DAMAGE_MAX,t.SLAM_MAX_TARGETS),this.radialBlow(this.x,this.y,t.SLAM_RADIUS,14,26,12,22),this.clearWarningCircle()} + clearWarningCircle(){ + this.warningCircle&&(this.warningCircle.dispose(),this.warningCircle=null)} + onRaidStunStart(){ + this.teleportPhase=null,this.isSummoning=!1,this.clearWarningCircle(),this.attackable=!0,this.isUntagetable=!1,this.spine&&(this.spine.visible=!0)} + resetForPool(){ + super.resetForPool(),this.teleportPhase=null,this.teleportFrames=0,this.isSummoning=!1,this.clearWarningCircle(),this.attackable=!0,this.isUntagetable=!1,this.spine&&(this.spine.visible=!0)} + escapeSkill(){ + null===this.teleportPhase&&this.startTeleport()} + } + ; + Kt(j2,"DragonKnight"),zt(j2,"SKILL_TELEPORT",7),zt(j2,"SKILL_SUMMON_1",5),zt(j2,"SKILL_SUMMON_2",6),zt(j2,"BLOW_SCALE",.45),zt(j2,"ATT1_RADIUS",250),zt(j2,"ATT1_MAX_TARGETS",40),zt(j2,"ATT1_DAMAGE_MIN",1),zt(j2,"ATT1_DAMAGE_MAX",2),zt(j2,"ATT2_RADIUS",120),zt(j2,"ATT2_MAX_TARGETS",14),zt(j2,"ATT2_DAMAGE_MIN",.4),zt(j2,"ATT2_DAMAGE_MAX",.8),zt(j2,"ATT3_RADIUS",360),zt(j2,"ATT3_MAX_TARGETS",60),zt(j2,"ATT3_DAMAGE_MIN",1.5),zt(j2,"ATT3_DAMAGE_MAX",3),zt(j2,"ATT4_RADIUS",140),zt(j2,"ATT4_MAX_TARGETS",16),zt(j2,"ATT4_DAMAGE_MIN",.6),zt(j2,"ATT4_DAMAGE_MAX",1.2),zt(j2,"ATT5_RADIUS",220),zt(j2,"ATT5_MAX_TARGETS",25),zt(j2,"ATT5_DAMAGE_MIN",.5),zt(j2,"ATT5_DAMAGE_MAX",1),zt(j2,"TELEPORT_UNDERGROUND_FRAMES",90),zt(j2,"TELEPORT_REVEAL_FRAME",12),zt(j2,"SLAM_RADIUS",200),zt(j2,"SLAM_MAX_TARGETS",80),zt(j2,"SLAM_DAMAGE_MIN",2.5),zt(j2,"SLAM_DAMAGE_MAX",4.5);
CorpFlag 6 hunks, 392 statements
+ var J8="in vec2 aPosition; + \nout vec2 vTextureCoord; + \n\nuniform vec4 uInputSize; + \nuniform vec4 uOutputFrame; + \nuniform vec4 uOutputTexture; + \n\nvec4 filterVertexPosition( void )\n{ + \n vec2 position = aPosition * uOutputFrame.zw + uOutputFrame.xy; + \n \n position.x = position.x * (2.0 / uOutputTexture.x) - 1.0; + \n position.y = position.y * (2.0*uOutputTexture.z / uOutputTexture.y) - uOutputTexture.z; + \n\n return vec4(position, 0.0, 1.0); + \n} + \n\nvec2 filterTextureCoord( void )\n{ + \n return aPosition * (uOutputFrame.zw * uInputSize.zw); + \n} + \n\nvoid main(void)\n{ + \n gl_Position = filterVertexPosition(); + \n vTextureCoord = filterTextureCoord(); + \n} + \n",Q8="struct GlobalFilterUniforms { + \n uInputSize:vec4<f32>,\n uInputPixel:vec4<f32>,\n uInputClamp:vec4<f32>,\n uOutputFrame:vec4<f32>,\n uGlobalFrame:vec4<f32>,\n uOutputTexture:vec4<f32>,\n} + ; + \n\n@group(0) @binding(0) var<uniform> gfu: GlobalFilterUniforms; + \n\nstruct VSOutput { + \n @builtin(position) position: vec4<f32>,\n @location(0) uv : vec2<f32>\n } + ; + \n\nfn filterVertexPosition(aPosition:vec2<f32>) -> vec4<f32>\n{ + \n var position = aPosition * gfu.uOutputFrame.zw + gfu.uOutputFrame.xy; + \n\n position.x = position.x * (2.0 / gfu.uOutputTexture.x) - 1.0; + \n position.y = position.y * (2.0*gfu.uOutputTexture.z / gfu.uOutputTexture.y) - gfu.uOutputTexture.z; + \n\n return vec4(position, 0.0, 1.0); + \n} + \n\nfn filterTextureCoord( aPosition:vec2<f32> ) -> vec2<f32>\n{ + \n return aPosition * (gfu.uOutputFrame.zw * gfu.uInputSize.zw); + \n} + \n\nfn globalTextureCoord( aPosition:vec2<f32> ) -> vec2<f32>\n{ + \n return (aPosition.xy / gfu.uGlobalFrame.zw) + (gfu.uGlobalFrame.xy / gfu.uGlobalFrame.zw); + \n} + \n\nfn getSize() -> vec2<f32>\n{ + \n return gfu.uGlobalFrame.zw; + \n} + \n \n@vertex\nfn mainVertex(\n @location(0) aPosition : vec2<f32>, \n) -> VSOutput { + \n return VSOutput(\n filterVertexPosition(aPosition),\n filterTextureCoord(aPosition)\n ); + \n} + ",Z8=Object.defineProperty,t7=Kt((t,i,s)=>i in t?Z8(t,i,{ + enumerable:!0,configurable:!0,writable:!0,value:s} + ):t[i]=s,"__defNormalProp$2"),i7=Kt((t,i,s)=>(t7(t,"symbol"!=typeof i?i+"":i,s),s),"__publicField$2"); + const s7=(Kt(Q=class extends or{ + constructor(t){ + const i=(t={ + ...Q.DEFAULT_OPTIONS,...t} + ).distance??10,s=t.quality??.1; + super({ + gpuProgram:Kh.from({ + vertex:{ + source:Q8,entryPoint:"mainVertex"} + ,fragment:{ + source:"struct GlowUniforms { + \n uDistance: f32,\n uStrength: vec2<f32>,\n uColor: vec3<f32>,\n uAlpha: f32,\n uQuality: f32,\n uKnockout: f32,\n} + ; + \n\nstruct GlobalFilterUniforms { + \n uInputSize:vec4<f32>,\n uInputPixel:vec4<f32>,\n uInputClamp:vec4<f32>,\n uOutputFrame:vec4<f32>,\n uGlobalFrame:vec4<f32>,\n uOutputTexture:vec4<f32>,\n} + ; + \n\n@group(0) @binding(0) var<uniform> gfu: GlobalFilterUniforms; + \n\n@group(0) @binding(1) var uTexture: texture_2d<f32>; + \n@group(0) @binding(2) var uSampler: sampler; + \n@group(1) @binding(0) var<uniform> glowUniforms : GlowUniforms; + \n\n@fragment\nfn mainFragment(\n @builtin(position) position: vec4<f32>,\n @location(0) uv : vec2<f32>\n) -> @location(0) vec4<f32> { + \n let quality = glowUniforms.uQuality; + \n let distance = glowUniforms.uDistance; + \n\n let dist: f32 = glowUniforms.uDistance; + \n let angleStepSize: f32 = min(1. / quality / distance, PI * 2.0); + \n let angleStepNum: f32 = ceil(PI * 2.0 / angleStepSize); + \n\n let px: vec2<f32> = vec2<f32>(1.0 / gfu.uInputSize.xy); + \n\n var totalAlpha: f32 = 0.0; + \n\n var direction: vec2<f32>; + \n var displaced: vec2<f32>; + \n var curColor: vec4<f32>; + \n\n for (var angle = 0.0; + angle < PI * 2.0; + angle += angleStepSize) { + \n direction = vec2<f32>(cos(angle), sin(angle)) * px; + \n for (var curDistance = 0.0; + curDistance < dist; + curDistance+=1) { + \n displaced = vec2<f32>(clamp(uv + direction * (curDistance + 1.0), gfu.uInputClamp.xy, gfu.uInputClamp.zw)); + \n curColor = textureSample(uTexture, uSampler, displaced); + \n totalAlpha += (dist - curDistance) * curColor.a; + \n } + \n } + \n \n curColor = textureSample(uTexture, uSampler, uv); + \n\n let glowColorRGB = glowUniforms.uColor; + \n let glowAlpha = glowUniforms.uAlpha; + \n let glowColor = vec4<f32>(glowColorRGB, glowAlpha); + \n let knockout: bool = glowUniforms.uKnockout > 0.5; + \n let innerStrength = glowUniforms.uStrength[0]; + \n let outerStrength = glowUniforms.uStrength[1]; + \n\n let alphaRatio: f32 = (totalAlpha / (angleStepNum * dist * (dist + 1.0) / 2.0)); + \n let innerGlowAlpha: f32 = (1.0 - alphaRatio) * innerStrength * curColor.a * glowAlpha; + \n let innerGlowStrength: f32 = min(1.0, innerGlowAlpha); + \n \n let innerColor: vec4<f32> = mix(curColor, glowColor, innerGlowStrength); + \n let outerGlowAlpha: f32 = alphaRatio * outerStrength * (1. - curColor.a) * glowAlpha; + \n let outerGlowStrength: f32 = min(1.0 - innerColor.a, outerGlowAlpha); + \n let outerGlowColor: vec4<f32> = outerGlowStrength * glowColor.rgba; + \n \n if (knockout) { + \n let resultAlpha: f32 = outerGlowAlpha + innerGlowAlpha; + \n return vec4<f32>(glowColor.rgb * resultAlpha, resultAlpha); + \n } + \n else { + \n return innerColor + outerGlowColor; + \n } + \n} + \n\nconst PI: f32 = 3.14159265358979323846264; + ",entryPoint:"mainFragment"} + } + ),glProgram:xh.from({ + vertex:J8,fragment:"precision highp float; + \nin vec2 vTextureCoord; + \nout vec4 finalColor; + \n\nuniform sampler2D uTexture; + \nuniform vec2 uStrength; + \nuniform vec3 uColor; + \nuniform float uKnockout; + \nuniform float uAlpha; + \n\nuniform vec4 uInputSize; + \nuniform vec4 uInputClamp; + \n\nconst float PI = 3.14159265358979323846264; + \n\n// Hard-assignment of DIST and ANGLE_STEP_SIZE instead of using uDistance and uQuality to allow them to be use on GLSL loop conditions\nconst float DIST = __DIST__; + \nconst float ANGLE_STEP_SIZE = min(__ANGLE_STEP_SIZE__, PI * 2.); + \nconst float ANGLE_STEP_NUM = ceil(PI * 2. / ANGLE_STEP_SIZE); + \nconst float MAX_TOTAL_ALPHA = ANGLE_STEP_NUM * DIST * (DIST + 1.) / 2.; + \n\nvoid main(void) { + \n vec2 px = vec2(1.) / uInputSize.xy; + \n\n float totalAlpha = 0.; + \n\n vec2 direction; + \n vec2 displaced; + \n vec4 curColor; + \n\n for (float angle = 0.; + angle < PI * 2.; + angle += ANGLE_STEP_SIZE) { + \n direction = vec2(cos(angle), sin(angle)) * px; + \n\n for (float curDistance = 0.; + curDistance < DIST; + curDistance++) { + \n displaced = clamp(vTextureCoord + direction * (curDistance + 1.), uInputClamp.xy, uInputClamp.zw); + \n curColor = texture(uTexture, displaced); + \n totalAlpha += (DIST - curDistance) * curColor.a; + \n } + \n } + \n \n curColor = texture(uTexture, vTextureCoord); + \n\n vec4 glowColor = vec4(uColor, uAlpha); + \n bool knockout = uKnockout > .5; + \n float innerStrength = uStrength[0]; + \n float outerStrength = uStrength[1]; + \n\n float alphaRatio = totalAlpha / MAX_TOTAL_ALPHA; + \n float innerGlowAlpha = (1. - alphaRatio) * innerStrength * curColor.a * uAlpha; + \n float innerGlowStrength = min(1., innerGlowAlpha); + \n \n vec4 innerColor = mix(curColor, glowColor, innerGlowStrength); + \n float outerGlowAlpha = alphaRatio * outerStrength * (1. - curColor.a) * uAlpha; + \n float outerGlowStrength = min(1. - innerColor.a, outerGlowAlpha); + \n vec4 outerGlowColor = outerGlowStrength * glowColor.rgba; + \n\n if (knockout) { + \n float resultAlpha = outerGlowAlpha + innerGlowAlpha; + \n finalColor = vec4(glowColor.rgb * resultAlpha, resultAlpha); + \n } + \n else { + \n finalColor = innerColor + outerGlowColor; + \n } + \n} + \n".replace(/__ANGLE_STEP_SIZE__/gi,`${ + (1/s/i).toFixed(7)} + `).replace(/__DIST__/gi,`${ + i.toFixed(0)} + .0`),name:"glow-filter"} + ),resources:{ + glowUniforms:{ + uDistance:{ + value:i,type:"f32"} + ,uStrength:{ + value:[t.innerStrength,t.outerStrength],type:"vec2<f32>"} + ,uColor:{ + value:new Float32Array(3),type:"vec3<f32>"} + ,uAlpha:{ + value:t.alpha,type:"f32"} + ,uQuality:{ + value:s,type:"f32"} + ,uKnockout:{ + value:(null==t?void 0:t.knockout)?1:0,type:"f32"} + } + } + ,padding:i} + ),i7(this,"uniforms"),i7(this,"_color"),this.uniforms=this.resources.glowUniforms.uniforms,this._color=new Bs,this.color=t.color??16777215} + get distance(){ + return this.uniforms.uDistance} + set distance(t){ + this.uniforms.uDistance=this.padding=t} + get innerStrength(){ + return this.uniforms.uStrength[0]} + set innerStrength(t){ + this.uniforms.uStrength[0]=t} + get outerStrength(){ + return this.uniforms.uStrength[1]} + set outerStrength(t){ + this.uniforms.uStrength[1]=t} + get color(){ + return this._color.value} + set color(t){ + this._color.setValue(t); + const[i,s,e]=this._color.toArray(); + this.uniforms.uColor[0]=i,this.uniforms.uColor[1]=s,this.uniforms.uColor[2]=e} + get alpha(){ + return this.uniforms.uAlpha} + set alpha(t){ + this.uniforms.uAlpha=t} + get quality(){ + return this.uniforms.uQuality} + set quality(t){ + this.uniforms.uQuality=t} + get knockout(){ + return 1===this.uniforms.uKnockout} + set knockout(t){ + this.uniforms.uKnockout=t?1:0} + } + ,"_GlowFilter"),Q); + i7(s7,"DEFAULT_OPTIONS",{ + distance:10,outerStrength:4,innerStrength:0,color:16777215,alpha:1,quality:.1,knockout:!1} + ); + let e7=s7; + var n7=Object.defineProperty,h7=Kt((t,i,s)=>i in t?n7(t,i,{ + enumerable:!0,configurable:!0,writable:!0,value:s} + ):t[i]=s,"__defNormalProp$1"),r7=Kt((t,i,s)=>(h7(t,"symbol"!=typeof i?i+"":i,s),s),"__publicField$1"); + const o7=(Kt(Z=class extends or{ + constructor(...t){ + let i=t[0]??{ + } + ; + "number"==typeof i&&(Fi("6.0.0","OutlineFilter constructor params are now options object. See params: { + thickness, color, quality, alpha, knockout } + "),i={ + thickness:i} + ,void 0!==t[1]&&(i.color=t[1]),void 0!==t[2]&&(i.quality=t[2]),void 0!==t[3]&&(i.alpha=t[3]),void 0!==t[4]&&(i.knockout=t[4])),i={ + ...Z.DEFAULT_OPTIONS,...i} + ; + const s=i.quality??.1; + super({ + gpuProgram:Kh.from({ + vertex:{ + source:Q8,entryPoint:"mainVertex"} + ,fragment:{ + source:"struct OutlineUniforms { + \n uThickness:vec2<f32>,\n uColor:vec3<f32>,\n uAlpha:f32,\n uAngleStep:f32,\n uKnockout:f32,\n} + ; + \n\nstruct GlobalFilterUniforms { + \n uInputSize:vec4<f32>,\n uInputPixel:vec4<f32>,\n uInputClamp:vec4<f32>,\n uOutputFrame:vec4<f32>,\n uGlobalFrame:vec4<f32>,\n uOutputTexture:vec4<f32>,\n} + ; + \n\n@group(0) @binding(0) var<uniform> gfu: GlobalFilterUniforms; + \n\n@group(0) @binding(1) var uTexture: texture_2d<f32>; + \n@group(0) @binding(2) var uSampler: sampler; + \n@group(1) @binding(0) var<uniform> outlineUniforms : OutlineUniforms; + \n\n@fragment\nfn mainFragment(\n @builtin(position) position: vec4<f32>,\n @location(0) uv : vec2<f32>\n) -> @location(0) vec4<f32> { + \n let sourceColor: vec4<f32> = textureSample(uTexture, uSampler, uv); + \n let contentColor: vec4<f32> = sourceColor * (1. - outlineUniforms.uKnockout); + \n \n let outlineAlpha: f32 = outlineUniforms.uAlpha * outlineMaxAlphaAtPos(uv) * (1. - sourceColor.a); + \n let outlineColor: vec4<f32> = vec4<f32>(vec3<f32>(outlineUniforms.uColor) * outlineAlpha, outlineAlpha); + \n \n return contentColor + outlineColor; + \n} + \n\nfn outlineMaxAlphaAtPos(uv: vec2<f32>) -> f32 { + \n let thickness = outlineUniforms.uThickness; + \n\n if (thickness.x == 0. || thickness.y == 0.) { + \n return 0.; + \n } + \n \n let angleStep = outlineUniforms.uAngleStep; + \n\n var displacedColor: vec4<f32>; + \n var displacedPos: vec2<f32>; + \n\n var maxAlpha: f32 = 0.; + \n var displaced: vec2<f32>; + \n var curColor: vec4<f32>; + \n\n for (var angle = 0.; + angle <= DOUBLE_PI; + angle += angleStep)\n { + \n displaced.x = uv.x + thickness.x * cos(angle); + \n displaced.y = uv.y + thickness.y * sin(angle); + \n curColor = textureSample(uTexture, uSampler, clamp(displaced, gfu.uInputClamp.xy, gfu.uInputClamp.zw)); + \n maxAlpha = max(maxAlpha, curColor.a); + \n } + \n\n return maxAlpha; + \n} + \n\nconst DOUBLE_PI: f32 = 3.14159265358979323846264 * 2.; + ",entryPoint:"mainFragment"} + } + ),glProgram:xh.from({ + vertex:J8,fragment:"precision highp float; + \nin vec2 vTextureCoord; + \nout vec4 finalColor; + \n\nuniform sampler2D uTexture; + \nuniform vec2 uThickness; + \nuniform vec3 uColor; + \nuniform float uAlpha; + \nuniform float uKnockout; + \n\nuniform vec4 uInputClamp; + \n\nconst float DOUBLE_PI = 2. * 3.14159265358979323846264; + \nconst float ANGLE_STEP = ${ + ANGLE_STEP} + ; + \n\nfloat outlineMaxAlphaAtPos(vec2 pos) { + \n if (uThickness.x == 0. || uThickness.y == 0.) { + \n return 0.; + \n } + \n\n vec4 displacedColor; + \n vec2 displacedPos; + \n float maxAlpha = 0.; + \n\n for (float angle = 0.; + angle <= DOUBLE_PI; + angle += ANGLE_STEP) { + \n displacedPos.x = vTextureCoord.x + uThickness.x * cos(angle); + \n displacedPos.y = vTextureCoord.y + uThickness.y * sin(angle); + \n displacedColor = texture(uTexture, clamp(displacedPos, uInputClamp.xy, uInputClamp.zw)); + \n maxAlpha = max(maxAlpha, displacedColor.a); + \n } + \n\n return maxAlpha; + \n} + \n\nvoid main(void) { + \n vec4 sourceColor = texture(uTexture, vTextureCoord); + \n vec4 contentColor = sourceColor * float(uKnockout < 0.5); + \n float outlineAlpha = uAlpha * outlineMaxAlphaAtPos(vTextureCoord.xy) * (1.-sourceColor.a); + \n vec4 outlineColor = vec4(vec3(uColor) * outlineAlpha, outlineAlpha); + \n finalColor = contentColor + outlineColor; + \n} + \n".replace(/\$\{ + ANGLE_STEP\} + /,Z.getAngleStep(s).toFixed(7)),name:"outline-filter"} + ),resources:{ + outlineUniforms:{ + uThickness:{ + value:new Float32Array(2),type:"vec2<f32>"} + ,uColor:{ + value:new Float32Array(3),type:"vec3<f32>"} + ,uAlpha:{ + value:i.alpha,type:"f32"} + ,uAngleStep:{ + value:0,type:"f32"} + ,uKnockout:{ + value:i.knockout?1:0,type:"f32"} + } + } + } + ),r7(this,"uniforms"),r7(this,"_thickness"),r7(this,"_quality"),r7(this,"_color"),this.uniforms=this.resources.outlineUniforms.uniforms,this.uniforms.uAngleStep=Z.getAngleStep(s),this._color=new Bs,this.color=i.color??0,Object.assign(this,i)} + apply(t,i,s,e){ + this.uniforms.uThickness[0]=this.thickness/i.source.width,this.uniforms.uThickness[1]=this.thickness/i.source.height,t.applyFilter(this,i,s,e)} + static getAngleStep(t){ + return parseFloat((2*Math.PI/Math.max(t*Z.MAX_SAMPLES,Z.MIN_SAMPLES)).toFixed(7))} + get thickness(){ + return this._thickness} + set thickness(t){ + this._thickness=this.padding=t} + get color(){ + return this._color.value} + set color(t){ + this._color.setValue(t); + const[i,s,e]=this._color.toArray(); + this.uniforms.uColor[0]=i,this.uniforms.uColor[1]=s,this.uniforms.uColor[2]=e} + get alpha(){ + return this.uniforms.uAlpha} + set alpha(t){ + this.uniforms.uAlpha=t} + get quality(){ + return this._quality} + set quality(t){ + this._quality=t,this.uniforms.uAngleStep=Z.getAngleStep(t)} + get knockout(){ + return 1===this.uniforms.uKnockout} + set knockout(t){ + this.uniforms.uKnockout=t?1:0} + } + ,"_OutlineFilter"),Z); + r7(o7,"DEFAULT_OPTIONS",{ + thickness:1,color:0,alpha:1,quality:.1,knockout:!1} + ),r7(o7,"MIN_SAMPLES",1),r7(o7,"MAX_SAMPLES",100); + let a7=o7;
- super(),zt(this,"corpIndex"),zt(this,"onDrop",null),zt(this,"validate",null),zt(this,"snap",null),zt(this,"onDragStart",null),zt(this,"onDragMove",null),zt(this,"onDragEnd",null),zt(this,"sprite"),zt(this,"numText"),zt(this,"iconBadge"),zt(this,"dragging",!1),zt(this,"lastValid",!0),zt(this,"targetX",0),zt(this,"targetY",0),this.corpIndex=i,this.sprite=new We(ZA.getTexture("UI_Ekkorr","Icon_Flag_Green")),this.sprite.anchor.set(.5,1),this.sprite.scale.set(s.scale??t.SCALE),null!=s.tint&&(this.sprite.tint=s.tint),this.addChild(this.sprite),this.alpha=s.alpha??1,this.numText=new Wg({ + super(),zt(this,"corpIndex"),zt(this,"onDrop",null),zt(this,"validate",null),zt(this,"snap",null),zt(this,"onDragStart",null),zt(this,"onDragMove",null),zt(this,"onDragEnd",null),zt(this,"sprite"),zt(this,"numText"),zt(this,"iconBadge"),zt(this,"iconHidden",!1),zt(this,"dragging",!1),zt(this,"lastValid",!0),zt(this,"targetX",0),zt(this,"targetY",0),this.corpIndex=i,this.sprite=new We(ZA.getTexture("UI_Ekkorr","Icon_Flag_Green")),this.sprite.anchor.set(.5,1),this.sprite.scale.set(s.scale??t.SCALE),null!=s.tint&&(this.sprite.tint=s.tint),this.addChild(this.sprite),this.alpha=s.alpha??1,this.numText=new Wg({
- this.visible=!0,this.eventMode="static",this.position.set(t.x,t.y)} + this.visible=!0,this.eventMode=this.iconHidden?"none":"static",this.position.set(t.x,t.y)} + setIconHidden(t){ + this.iconHidden=t,this.sprite.visible=!t,this.numText.visible=!t,t&&(this.iconBadge.visible=!1)}
+ startDragExternal(t,i){ + if(!this.visible||this.dragging)return; + this.dragging=!0,this.onDragStart&&this.onDragStart(this.corpIndex,this.x,this.y); + const s=KA.stage; + s&&(s.on("globalpointermove",this.onMove,this),s.on("pointerup",this.onUp,this),s.on("pointerupoutside",this.onUp,this)),this.moveToGlobal(t,i)}
+ this.moveToGlobal(t.global.x,t.global.y)} + moveToGlobal(t,i){
- const i=this.parent.toLocal(t.global); + const s=this.parent.toLocal({ + x:t,y:i} + );
GoldLayer 1 hunks, 378 statements
- var Dti="in vec2 aPosition; - \nout vec2 vTextureCoord; - \n\nuniform vec4 uInputSize; - \nuniform vec4 uOutputFrame; - \nuniform vec4 uOutputTexture; - \n\nvec4 filterVertexPosition( void )\n{ - \n vec2 position = aPosition * uOutputFrame.zw + uOutputFrame.xy; - \n \n position.x = position.x * (2.0 / uOutputTexture.x) - 1.0; - \n position.y = position.y * (2.0*uOutputTexture.z / uOutputTexture.y) - uOutputTexture.z; - \n\n return vec4(position, 0.0, 1.0); - \n} - \n\nvec2 filterTextureCoord( void )\n{ - \n return aPosition * (uOutputFrame.zw * uInputSize.zw); - \n} - \n\nvoid main(void)\n{ - \n gl_Position = filterVertexPosition(); - \n vTextureCoord = filterTextureCoord(); - \n} - \n",Lti="struct GlobalFilterUniforms { - \n uInputSize:vec4<f32>,\n uInputPixel:vec4<f32>,\n uInputClamp:vec4<f32>,\n uOutputFrame:vec4<f32>,\n uGlobalFrame:vec4<f32>,\n uOutputTexture:vec4<f32>,\n} - ; - \n\n@group(0) @binding(0) var<uniform> gfu: GlobalFilterUniforms; - \n\nstruct VSOutput { - \n @builtin(position) position: vec4<f32>,\n @location(0) uv : vec2<f32>\n } - ; - \n\nfn filterVertexPosition(aPosition:vec2<f32>) -> vec4<f32>\n{ - \n var position = aPosition * gfu.uOutputFrame.zw + gfu.uOutputFrame.xy; - \n\n position.x = position.x * (2.0 / gfu.uOutputTexture.x) - 1.0; - \n position.y = position.y * (2.0*gfu.uOutputTexture.z / gfu.uOutputTexture.y) - gfu.uOutputTexture.z; - \n\n return vec4(position, 0.0, 1.0); - \n} - \n\nfn filterTextureCoord( aPosition:vec2<f32> ) -> vec2<f32>\n{ - \n return aPosition * (gfu.uOutputFrame.zw * gfu.uInputSize.zw); - \n} - \n\nfn globalTextureCoord( aPosition:vec2<f32> ) -> vec2<f32>\n{ - \n return (aPosition.xy / gfu.uGlobalFrame.zw) + (gfu.uGlobalFrame.xy / gfu.uGlobalFrame.zw); - \n} - \n\nfn getSize() -> vec2<f32>\n{ - \n return gfu.uGlobalFrame.zw; - \n} - \n \n@vertex\nfn mainVertex(\n @location(0) aPosition : vec2<f32>, \n) -> VSOutput { - \n return VSOutput(\n filterVertexPosition(aPosition),\n filterTextureCoord(aPosition)\n ); - \n} - ",Gti=Object.defineProperty,Bti=Kt((t,i,s)=>i in t?Gti(t,i,{ - enumerable:!0,configurable:!0,writable:!0,value:s} - ):t[i]=s,"__defNormalProp$1"),Uti=Kt((t,i,s)=>(Bti(t,"symbol"!=typeof i?i+"":i,s),s),"__publicField$1"); - const Fti=(Kt(Rt=class extends or{ - constructor(t){ - const i=(t={ - ...Rt.DEFAULT_OPTIONS,...t} - ).distance??10,s=t.quality??.1; - super({ - gpuProgram:Kh.from({ - vertex:{ - source:Lti,entryPoint:"mainVertex"} - ,fragment:{ - source:"struct GlowUniforms { - \n uDistance: f32,\n uStrength: vec2<f32>,\n uColor: vec3<f32>,\n uAlpha: f32,\n uQuality: f32,\n uKnockout: f32,\n} - ; - \n\nstruct GlobalFilterUniforms { - \n uInputSize:vec4<f32>,\n uInputPixel:vec4<f32>,\n uInputClamp:vec4<f32>,\n uOutputFrame:vec4<f32>,\n uGlobalFrame:vec4<f32>,\n uOutputTexture:vec4<f32>,\n} - ; - \n\n@group(0) @binding(0) var<uniform> gfu: GlobalFilterUniforms; - \n\n@group(0) @binding(1) var uTexture: texture_2d<f32>; - \n@group(0) @binding(2) var uSampler: sampler; - \n@group(1) @binding(0) var<uniform> glowUniforms : GlowUniforms; - \n\n@fragment\nfn mainFragment(\n @builtin(position) position: vec4<f32>,\n @location(0) uv : vec2<f32>\n) -> @location(0) vec4<f32> { - \n let quality = glowUniforms.uQuality; - \n let distance = glowUniforms.uDistance; - \n\n let dist: f32 = glowUniforms.uDistance; - \n let angleStepSize: f32 = min(1. / quality / distance, PI * 2.0); - \n let angleStepNum: f32 = ceil(PI * 2.0 / angleStepSize); - \n\n let px: vec2<f32> = vec2<f32>(1.0 / gfu.uInputSize.xy); - \n\n var totalAlpha: f32 = 0.0; - \n\n var direction: vec2<f32>; - \n var displaced: vec2<f32>; - \n var curColor: vec4<f32>; - \n\n for (var angle = 0.0; - angle < PI * 2.0; - angle += angleStepSize) { - \n direction = vec2<f32>(cos(angle), sin(angle)) * px; - \n for (var curDistance = 0.0; - curDistance < dist; - curDistance+=1) { - \n displaced = vec2<f32>(clamp(uv + direction * (curDistance + 1.0), gfu.uInputClamp.xy, gfu.uInputClamp.zw)); - \n curColor = textureSample(uTexture, uSampler, displaced); - \n totalAlpha += (dist - curDistance) * curColor.a; - \n } - \n } - \n \n curColor = textureSample(uTexture, uSampler, uv); - \n\n let glowColorRGB = glowUniforms.uColor; - \n let glowAlpha = glowUniforms.uAlpha; - \n let glowColor = vec4<f32>(glowColorRGB, glowAlpha); - \n let knockout: bool = glowUniforms.uKnockout > 0.5; - \n let innerStrength = glowUniforms.uStrength[0]; - \n let outerStrength = glowUniforms.uStrength[1]; - \n\n let alphaRatio: f32 = (totalAlpha / (angleStepNum * dist * (dist + 1.0) / 2.0)); - \n let innerGlowAlpha: f32 = (1.0 - alphaRatio) * innerStrength * curColor.a * glowAlpha; - \n let innerGlowStrength: f32 = min(1.0, innerGlowAlpha); - \n \n let innerColor: vec4<f32> = mix(curColor, glowColor, innerGlowStrength); - \n let outerGlowAlpha: f32 = alphaRatio * outerStrength * (1. - curColor.a) * glowAlpha; - \n let outerGlowStrength: f32 = min(1.0 - innerColor.a, outerGlowAlpha); - \n let outerGlowColor: vec4<f32> = outerGlowStrength * glowColor.rgba; - \n \n if (knockout) { - \n let resultAlpha: f32 = outerGlowAlpha + innerGlowAlpha; - \n return vec4<f32>(glowColor.rgb * resultAlpha, resultAlpha); - \n } - \n else { - \n return innerColor + outerGlowColor; - \n } - \n} - \n\nconst PI: f32 = 3.14159265358979323846264; - ",entryPoint:"mainFragment"} - } - ),glProgram:xh.from({ - vertex:Dti,fragment:"precision highp float; - \nin vec2 vTextureCoord; - \nout vec4 finalColor; - \n\nuniform sampler2D uTexture; - \nuniform vec2 uStrength; - \nuniform vec3 uColor; - \nuniform float uKnockout; - \nuniform float uAlpha; - \n\nuniform vec4 uInputSize; - \nuniform vec4 uInputClamp; - \n\nconst float PI = 3.14159265358979323846264; - \n\n// Hard-assignment of DIST and ANGLE_STEP_SIZE instead of using uDistance and uQuality to allow them to be use on GLSL loop conditions\nconst float DIST = __DIST__; - \nconst float ANGLE_STEP_SIZE = min(__ANGLE_STEP_SIZE__, PI * 2.); - \nconst float ANGLE_STEP_NUM = ceil(PI * 2. / ANGLE_STEP_SIZE); - \nconst float MAX_TOTAL_ALPHA = ANGLE_STEP_NUM * DIST * (DIST + 1.) / 2.; - \n\nvoid main(void) { - \n vec2 px = vec2(1.) / uInputSize.xy; - \n\n float totalAlpha = 0.; - \n\n vec2 direction; - \n vec2 displaced; - \n vec4 curColor; - \n\n for (float angle = 0.; - angle < PI * 2.; - angle += ANGLE_STEP_SIZE) { - \n direction = vec2(cos(angle), sin(angle)) * px; - \n\n for (float curDistance = 0.; - curDistance < DIST; - curDistance++) { - \n displaced = clamp(vTextureCoord + direction * (curDistance + 1.), uInputClamp.xy, uInputClamp.zw); - \n curColor = texture(uTexture, displaced); - \n totalAlpha += (DIST - curDistance) * curColor.a; - \n } - \n } - \n \n curColor = texture(uTexture, vTextureCoord); - \n\n vec4 glowColor = vec4(uColor, uAlpha); - \n bool knockout = uKnockout > .5; - \n float innerStrength = uStrength[0]; - \n float outerStrength = uStrength[1]; - \n\n float alphaRatio = totalAlpha / MAX_TOTAL_ALPHA; - \n float innerGlowAlpha = (1. - alphaRatio) * innerStrength * curColor.a * uAlpha; - \n float innerGlowStrength = min(1., innerGlowAlpha); - \n \n vec4 innerColor = mix(curColor, glowColor, innerGlowStrength); - \n float outerGlowAlpha = alphaRatio * outerStrength * (1. - curColor.a) * uAlpha; - \n float outerGlowStrength = min(1. - innerColor.a, outerGlowAlpha); - \n vec4 outerGlowColor = outerGlowStrength * glowColor.rgba; - \n\n if (knockout) { - \n float resultAlpha = outerGlowAlpha + innerGlowAlpha; - \n finalColor = vec4(glowColor.rgb * resultAlpha, resultAlpha); - \n } - \n else { - \n finalColor = innerColor + outerGlowColor; - \n } - \n} - \n".replace(/__ANGLE_STEP_SIZE__/gi,`${ - (1/s/i).toFixed(7)} - `).replace(/__DIST__/gi,`${ - i.toFixed(0)} - .0`),name:"glow-filter"} - ),resources:{ - glowUniforms:{ - uDistance:{ - value:i,type:"f32"} - ,uStrength:{ - value:[t.innerStrength,t.outerStrength],type:"vec2<f32>"} - ,uColor:{ - value:new Float32Array(3),type:"vec3<f32>"} - ,uAlpha:{ - value:t.alpha,type:"f32"} - ,uQuality:{ - value:s,type:"f32"} - ,uKnockout:{ - value:(null==t?void 0:t.knockout)?1:0,type:"f32"} - } - } - ,padding:i} - ),Uti(this,"uniforms"),Uti(this,"_color"),this.uniforms=this.resources.glowUniforms.uniforms,this._color=new Bs,this.color=t.color??16777215} - get distance(){ - return this.uniforms.uDistance} - set distance(t){ - this.uniforms.uDistance=this.padding=t} - get innerStrength(){ - return this.uniforms.uStrength[0]} - set innerStrength(t){ - this.uniforms.uStrength[0]=t} - get outerStrength(){ - return this.uniforms.uStrength[1]} - set outerStrength(t){ - this.uniforms.uStrength[1]=t} - get color(){ - return this._color.value} - set color(t){ - this._color.setValue(t); - const[i,s,e]=this._color.toArray(); - this.uniforms.uColor[0]=i,this.uniforms.uColor[1]=s,this.uniforms.uColor[2]=e} - get alpha(){ - return this.uniforms.uAlpha} - set alpha(t){ - this.uniforms.uAlpha=t} - get quality(){ - return this.uniforms.uQuality} - set quality(t){ - this.uniforms.uQuality=t} - get knockout(){ - return 1===this.uniforms.uKnockout} - set knockout(t){ - this.uniforms.uKnockout=t?1:0} - } - ,"_GlowFilter"),Rt); - Uti(Fti,"DEFAULT_OPTIONS",{ - distance:10,outerStrength:4,innerStrength:0,color:16777215,alpha:1,quality:.1,knockout:!1} - ); - let Hti=Fti; - var Wti=Object.defineProperty,jti=Kt((t,i,s)=>i in t?Wti(t,i,{ - enumerable:!0,configurable:!0,writable:!0,value:s} - ):t[i]=s,"__defNormalProp"),$ti=Kt((t,i,s)=>(jti(t,"symbol"!=typeof i?i+"":i,s),s),"__publicField"); - const Vti=(Kt(Dt=class extends or{ - constructor(...t){ - let i=t[0]??{ - } - ; - "number"==typeof i&&(Fi("6.0.0","OutlineFilter constructor params are now options object. See params: { - thickness, color, quality, alpha, knockout } - "),i={ - thickness:i} - ,void 0!==t[1]&&(i.color=t[1]),void 0!==t[2]&&(i.quality=t[2]),void 0!==t[3]&&(i.alpha=t[3]),void 0!==t[4]&&(i.knockout=t[4])),i={ - ...Dt.DEFAULT_OPTIONS,...i} - ; - const s=i.quality??.1; - super({ - gpuProgram:Kh.from({ - vertex:{ - source:Lti,entryPoint:"mainVertex"} - ,fragment:{ - source:"struct OutlineUniforms { - \n uThickness:vec2<f32>,\n uColor:vec3<f32>,\n uAlpha:f32,\n uAngleStep:f32,\n uKnockout:f32,\n} - ; - \n\nstruct GlobalFilterUniforms { - \n uInputSize:vec4<f32>,\n uInputPixel:vec4<f32>,\n uInputClamp:vec4<f32>,\n uOutputFrame:vec4<f32>,\n uGlobalFrame:vec4<f32>,\n uOutputTexture:vec4<f32>,\n} - ; - \n\n@group(0) @binding(0) var<uniform> gfu: GlobalFilterUniforms; - \n\n@group(0) @binding(1) var uTexture: texture_2d<f32>; - \n@group(0) @binding(2) var uSampler: sampler; - \n@group(1) @binding(0) var<uniform> outlineUniforms : OutlineUniforms; - \n\n@fragment\nfn mainFragment(\n @builtin(position) position: vec4<f32>,\n @location(0) uv : vec2<f32>\n) -> @location(0) vec4<f32> { - \n let sourceColor: vec4<f32> = textureSample(uTexture, uSampler, uv); - \n let contentColor: vec4<f32> = sourceColor * (1. - outlineUniforms.uKnockout); - \n \n let outlineAlpha: f32 = outlineUniforms.uAlpha * outlineMaxAlphaAtPos(uv) * (1. - sourceColor.a); - \n let outlineColor: vec4<f32> = vec4<f32>(vec3<f32>(outlineUniforms.uColor) * outlineAlpha, outlineAlpha); - \n \n return contentColor + outlineColor; - \n} - \n\nfn outlineMaxAlphaAtPos(uv: vec2<f32>) -> f32 { - \n let thickness = outlineUniforms.uThickness; - \n\n if (thickness.x == 0. || thickness.y == 0.) { - \n return 0.; - \n } - \n \n let angleStep = outlineUniforms.uAngleStep; - \n\n var displacedColor: vec4<f32>; - \n var displacedPos: vec2<f32>; - \n\n var maxAlpha: f32 = 0.; - \n var displaced: vec2<f32>; - \n var curColor: vec4<f32>; - \n\n for (var angle = 0.; - angle <= DOUBLE_PI; - angle += angleStep)\n { - \n displaced.x = uv.x + thickness.x * cos(angle); - \n displaced.y = uv.y + thickness.y * sin(angle); - \n curColor = textureSample(uTexture, uSampler, clamp(displaced, gfu.uInputClamp.xy, gfu.uInputClamp.zw)); - \n maxAlpha = max(maxAlpha, curColor.a); - \n } - \n\n return maxAlpha; - \n} - \n\nconst DOUBLE_PI: f32 = 3.14159265358979323846264 * 2.; - ",entryPoint:"mainFragment"} - } - ),glProgram:xh.from({ - vertex:Dti,fragment:"precision highp float; - \nin vec2 vTextureCoord; - \nout vec4 finalColor; - \n\nuniform sampler2D uTexture; - \nuniform vec2 uThickness; - \nuniform vec3 uColor; - \nuniform float uAlpha; - \nuniform float uKnockout; - \n\nuniform vec4 uInputClamp; - \n\nconst float DOUBLE_PI = 2. * 3.14159265358979323846264; - \nconst float ANGLE_STEP = ${ - ANGLE_STEP} - ; - \n\nfloat outlineMaxAlphaAtPos(vec2 pos) { - \n if (uThickness.x == 0. || uThickness.y == 0.) { - \n return 0.; - \n } - \n\n vec4 displacedColor; - \n vec2 displacedPos; - \n float maxAlpha = 0.; - \n\n for (float angle = 0.; - angle <= DOUBLE_PI; - angle += ANGLE_STEP) { - \n displacedPos.x = vTextureCoord.x + uThickness.x * cos(angle); - \n displacedPos.y = vTextureCoord.y + uThickness.y * sin(angle); - \n displacedColor = texture(uTexture, clamp(displacedPos, uInputClamp.xy, uInputClamp.zw)); - \n maxAlpha = max(maxAlpha, displacedColor.a); - \n } - \n\n return maxAlpha; - \n} - \n\nvoid main(void) { - \n vec4 sourceColor = texture(uTexture, vTextureCoord); - \n vec4 contentColor = sourceColor * float(uKnockout < 0.5); - \n float outlineAlpha = uAlpha * outlineMaxAlphaAtPos(vTextureCoord.xy) * (1.-sourceColor.a); - \n vec4 outlineColor = vec4(vec3(uColor) * outlineAlpha, outlineAlpha); - \n finalColor = contentColor + outlineColor; - \n} - \n".replace(/\$\{ - ANGLE_STEP\} - /,Dt.getAngleStep(s).toFixed(7)),name:"outline-filter"} - ),resources:{ - outlineUniforms:{ - uThickness:{ - value:new Float32Array(2),type:"vec2<f32>"} - ,uColor:{ - value:new Float32Array(3),type:"vec3<f32>"} - ,uAlpha:{ - value:i.alpha,type:"f32"} - ,uAngleStep:{ - value:0,type:"f32"} - ,uKnockout:{ - value:i.knockout?1:0,type:"f32"} - } - } - } - ),$ti(this,"uniforms"),$ti(this,"_thickness"),$ti(this,"_quality"),$ti(this,"_color"),this.uniforms=this.resources.outlineUniforms.uniforms,this.uniforms.uAngleStep=Dt.getAngleStep(s),this._color=new Bs,this.color=i.color??0,Object.assign(this,i)} - apply(t,i,s,e){ - this.uniforms.uThickness[0]=this.thickness/i.source.width,this.uniforms.uThickness[1]=this.thickness/i.source.height,t.applyFilter(this,i,s,e)} - static getAngleStep(t){ - return parseFloat((2*Math.PI/Math.max(t*Dt.MAX_SAMPLES,Dt.MIN_SAMPLES)).toFixed(7))} - get thickness(){ - return this._thickness} - set thickness(t){ - this._thickness=this.padding=t} - get color(){ - return this._color.value} - set color(t){ - this._color.setValue(t); - const[i,s,e]=this._color.toArray(); - this.uniforms.uColor[0]=i,this.uniforms.uColor[1]=s,this.uniforms.uColor[2]=e} - get alpha(){ - return this.uniforms.uAlpha} - set alpha(t){ - this.uniforms.uAlpha=t} - get quality(){ - return this._quality} - set quality(t){ - this._quality=t,this.uniforms.uAngleStep=Dt.getAngleStep(t)} - get knockout(){ - return 1===this.uniforms.uKnockout} - set knockout(t){ - this.uniforms.uKnockout=t?1:0} - } - ,"_OutlineFilter"),Dt); - $ti(Vti,"DEFAULT_OPTIONS",{ - thickness:1,color:0,alpha:1,quality:.1,knockout:!1} - ),$ti(Vti,"MIN_SAMPLES",1),$ti(Vti,"MAX_SAMPLES",100); - let Kti=Vti;
AchievementRewardItem 1 hunks, 325 statements
- const i6=class extends t6{ - constructor(){ - super(),zt(this,"receivedIcon"),zt(this,"activatedBg"),zt(this,"_activated",!0),zt(this,"_received",!1),this.activatedBg=new We(ZA.getTexture("UI_Ekkorr","Frame_Reward_01_nor")),this.activatedBg.visible=!this._activated,this.addChild(this.activatedBg),this.receivedIcon=new We(ZA.getTexture("UI_Ekkorr","Base_Check01")),this.receivedIcon.visible=this._received,this.addChild(this.receivedIcon)} - updateLayout(){ - if(super.updateLayout(),!this.receivedIcon)return; - const t=this.bg.width,i=this.bg.height; - this.receivedIcon.x=.5*(t-this.receivedIcon.width),this.receivedIcon.y=.5*(i-this.receivedIcon.height)} - get activated(){ - return this._activated} - set activated(t){ - t!=this._activated&&(this._activated=t,this.activatedBg.visible=!this._activated)} - get received(){ - return this._received} - set received(t){ - t!=this._received&&(this._received=t,this.receivedIcon.visible=this._received)} - } - ; - Kt(i6,"AchievementRewardItem"); - let s6=i6; - const e6=class extends Be{ - constructor(){ - super(),zt(this,"bg"),zt(this,"lbl"),zt(this,"_width",100),zt(this,"_widthMax",570),zt(this,"count",0),this.eventMode="none",this.bg=this.getBg(),this.bg.alpha=.9; - const t=nD.DEFAULT_OUTLINE_FONT_OPTION_16; - t.fill=14405050,t.stroke={ - color:"#333333",width:3,join:"round"} - ,this.lbl=new KD("0",t.fill,t),this.lbl.x=15,this.lbl.y=12,nD.setLabelWrapWidth(this.lbl,this._widthMax-2*this.lbl.x),this.addChild(this.bg,this.lbl),this.text="tooltip"} - getBg(){ - return new TM({ - texture:ZA.getTexture("UI_Ekkorr","Btn_Unit_01"),leftWidth:30,topHeight:20,rightWidth:30,bottomHeight:20} - )} - set text(t){ - this.lbl.text=t,this._width=this.lbl.width+2*this.lbl.x+5,this._width>this._widthMax&&(this._width=this._widthMax),this.updateBg()} - updateBg(){ - this.bg.width=this._width,this.bg.height=this.lbl.height+2*this.lbl.y} - show(t,i,s){ - this.x=i,this.y=s,t&&t.addChild(this),this.startCheckHide()} - hide(){ - this.parent&&this.parent.removeChild(this)} - get width(){ - return this._width} - get widthMax(){ - return this._widthMax} - set widthMax(t){ - this._widthMax=t,nD.setLabelWrapWidth(this.lbl,this._widthMax-2*this.lbl.x)} - get height(){ - return this.bg.height} - startCheckHide(){ - this.count=0,GM.getInstance().add(this.checkHide,this)} - checkHide(){ - ++this.count>180&&(this.count=0,this.hide(),GM.getInstance().remove(this.checkHide,this))} - } - ; - Kt(e6,"ToolTipBase"); - let n6=e6; - const h6=class t extends n6{ - static getInstance(){ - return this._instance||(this._instance=new t),this._instance} - constructor(){ - super()} - } - ; - Kt(h6,"ToolTip"),zt(h6,"_instance"); - let r6=h6; - const o6=class t extends XI{ - constructor(){ - super(),zt(this,"bg"),zt(this,"lblIndex"),zt(this,"icon",new We(ZA.getTexture("UI_Ekkorr","Package_2"))),zt(this,"lblName"),zt(this,"lblProgress"),zt(this,"barBg"),zt(this,"barFill"),zt(this,"rewardContainer",new Be),zt(this,"rewardItems",[]),this.bg=new TM({ - texture:ZA.getTexture("UI_Ekkorr","Popup_List_02"),leftWidth:135,topHeight:30,rightWidth:20,bottomHeight:30} - ),this.bg.width=t.W,this.bg.height=t.H,this.addChild(this.bg),this.lblIndex=new KD("",16764057,nD.DEFAULT_OUTLINE_FONT_OPTION_32),this.addChild(this.icon),this.lblName=new KD("",16764057,nD.DEFAULT_OUTLINE_FONT_OPTION_16),this.addChild(this.lblName),this.barBg=new qD,this.barBg.setIndex(4),this.barBg.width=t.BAR_W,this.barBg.height=t.BAR_H,this.barBg.alpha=.5,this.addChild(this.barBg),this.barFill=new qD,this.barFill.setIndex(3),this.barFill.width=t.BAR_W,this.barFill.height=t.BAR_H,this.addChild(this.barFill),this.lblProgress=new KD("0/0",16777215,nD.DEFAULT_OUTLINE_FONT_OPTION_16),this.addChild(this.lblProgress),this.addChild(this.rewardContainer); - for(let t=0; - t<7; - t++){ - const t=new s6; - t.scale.set(.7),t.visible=!1,this.rewardItems.push(t),this.rewardContainer.addChild(t)} - } - get width(){ - return t.W} - get height(){ - return t.H} - setData(i){ - const s=i.index+1; - this.lblIndex.text=`${ - s} - `,this.lblIndex.x=.5*(t.INDEX_AREA_W-this.lblIndex.width),this.lblIndex.y=.5*(this.height-this.lblIndex.height),this.icon.x=.5*(t.INDEX_AREA_W-this.icon.width),this.icon.y=.5*(this.height-this.icon.height); - const e=yG.getText("GAME_946","총 결제 금액"),n=cU.isUsdCurrency()?`$${ - oU.setComma(i.amount)} - `:`₩${ - oU.setComma(i.amount)} - `; - this.lblName.text=`${ - e} - (${ - n} - )`,this.lblName.height,t.BAR_H,this.lblName.x=140,this.lblName.y=5; - const h=this.lblName.y+this.lblName.height+5; - this.barBg.x=140,this.barBg.y=h,this.barFill.x=140,this.barFill.y=h; - const r=Number(i.amount)>0?Math.min(1,Math.max(0,Number(i.userAmount)/Number(i.amount))):0; - this.barFill.width=t.BAR_W*r,this.lblProgress.text=`${ - Math.floor(100*r)} - %`,this.lblProgress.x=140+this.barBg.width-this.lblProgress.width,this.lblProgress.y=this.lblName.y,this.showRewards(i.rewards,1==r),this.rewardContainer.x=140,this.rewardContainer.y=this.barBg.y+this.barBg.height+7} - showRewards(t,i){ - const s=Math.min(t.length,7); - let e=0,n=!1; - for(let h=0; - h<7; - h++){ - const r=this.rewardItems[h]; - n=!1,h<s?(r.setDataFrom(t[h]),r.visible=!0,r.x=e,e+=r.width*r.scale.x+5,r.received=i,r.activated=!i,r.type!=g3.ticket||r.subType!=g3.heroGacha&&r.subType!=g3.heroSelect&&r.subType!=g3.treasureGacha&&r.subType!=g3.petSelect||(n=!0)):r.visible=!1,this.setItemEvent(r,n)} - } - setItemEvent(t,i){ - t.eventMode="none",t.off("pointertap",this.onItemTap,this),i&&(t.eventMode="dynamic",t.on("pointertap",this.onItemTap,this))} - onItemTap(t){ - const i=t.target; - if(!i)return; - let s=""; - if(i.type==g3.ticket&&i.subType==g3.heroGacha?s=yG.getText("GAME_765","5성 영웅을 랜덤하게 획득할 수 있습니다."):i.type==g3.ticket&&i.subType==g3.heroSelect?s=yG.getText("GAME_943","제공되는 목록에서 원하는 5성 영웅을 선택할 수 있습니다."):i.type==g3.ticket&&i.subType==g3.treasureGacha?s=yG.getValueReplace("GAME_776","##",6,"6등급 유물을 랜덤하게 획득할 수 있습니다."):i.type==g3.ticket&&i.subType==g3.petSelect&&(s=yG.getText("GAME_944","제공되는 목록에서 원하는 펫 조각을 선택할 수 있습니다.")),s){ - const t=r6.getInstance(); - t.text=s; - let e=this.rewardContainer.x+i.x-20; - e+t.width+7>this.bg.x+this.bg.width&&(e=this.bg.x+this.bg.width-t.width-7); - let n=i.y-i.height; - n<7&&(n=7),t.show(this,e,n)} - } - } - ; - Kt(o6,"PaymentEventItemRenderer"),zt(o6,"W",534),zt(o6,"H",102),zt(o6,"BAR_W",380),zt(o6,"BAR_H",10),zt(o6,"INDEX_AREA_W",124); - let a6=o6; - const c6=class t extends yB{ - constructor(){ - super(),zt(this,"lblGuide"),this.lblGuide=new pB("@",this.width-90,16,nD.DEFAULT_COLOR,8,10,16763904),this.contentContainer.addChild(this.lblGuide),this.outSideClickHide=!0} - static getInstance(){ - return this._instance||(this._instance=new t),this._instance} - async showGuide(){ - this.title=yG.getText("GAME_945","결제 이벤트"); - const t=[yG.getText("GAME_947","목표 금액에 도달하면 보상이 우편으로 발송됩니다."),yG.getText("GAME_948","총 결제 금액은 이벤트 기간 내 결제분만 반영됩니다."),yG.getText("GAME_986","붉은 보석으로 상품 구매 시, 결제 이벤트에 반영됩니다."),yG.getText("GAME_987","웹 마켓에서 진행된 결제는 결제 이벤트에 반영되지 않습니다.")]; - this.lblGuide.text=t.map(t=>`@ ${ - t} - `).join("\n"),this.lblGuide.x=30,this.lblGuide.y=80,this.height=this.lblGuide.y+this.lblGuide.height+40,await this.loadImage(),super.show()} - getDefaultPositionY(){ - return.4*KA.stageHeight} - onBackButton(){ - return this.hide(),!0} - } - ; - Kt(c6,"PaymentEventGuidePopup"),zt(c6,"_instance"); - let l6=c6; - const u6=class t extends nG{ - constructor(){ - super(),zt(this,"bntMonth",new W3(yG.getText("COMMON_482","월간"),215)),zt(this,"btnSpecial",new W3(yG.getText("GAME_1158","스페셜"),215)),zt(this,"tabs"),zt(this,"activeIndex",0),zt(this,"infoBg"),zt(this,"lblPeriod"),zt(this,"lblRemainTitle"),zt(this,"lblRemainTime"),zt(this,"lblTotal"),zt(this,"lblAmount"),zt(this,"btnGuide"),zt(this,"list"),zt(this,"endTime",0),zt(this,"count",0),this.title="결제 이벤트",this.width=580,this.outSideClickHide=!0,this.tabs=[this.btnSpecial,this.bntMonth]; - for(let i=0; - i<this.tabs.length; - i++){ - const t=this.tabs[i]; - this.addChild(t); - const s=i; - t.onClick=()=>this.switchTab(s)} - this.layoutTabs(),this.infoBg=new mB,this.infoBg.setIndex(2),this.infoBg.width=this.width-46,this.infoBg.x=23,this.contentContainer.addChild(this.infoBg),this.lblPeriod=new KD("",nD.DEFAULT_COLOR,nD.DEFAULT_OUTLINE_FONT_OPTION_18),this.contentContainer.addChild(this.lblPeriod),this.lblRemainTitle=new KD("",nD.DEFAULT_COLOR,nD.DEFAULT_OUTLINE_FONT_OPTION_18),this.contentContainer.addChild(this.lblRemainTitle),this.lblRemainTime=new KD("",nD.DEFAULT_COLOR,nD.DEFAULT_OUTLINE_FONT_OPTION_18),this.contentContainer.addChild(this.lblRemainTime),this.lblTotal=new KD("",nD.DEFAULT_COLOR,nD.DEFAULT_OUTLINE_FONT_OPTION_18),this.contentContainer.addChild(this.lblTotal),this.lblAmount=new KD("",nD.COLOR_BRIGHT_GREEN,nD.DEFAULT_OUTLINE_FONT_OPTION_18),this.contentContainer.addChild(this.lblAmount),this.btnGuide=new dB("UI_Ekkorr","UI_Alarm"),this.btnGuide.x=this.infoBg.x+this.infoBg.width-this.btnGuide.width-10,this.btnGuide.y=this.infoBg.y+10,this.contentContainer.addChild(this.btnGuide),this.btnGuide.on("pointertap",()=>{ - l6.getInstance().showGuide()} - ); - const t=this.width-46; - this.list=new XV(a6,t,300),this.list.x=23,this.contentContainer.addChild(this.list),this.on("added",this.onAdded,this),this.on("removed",this.onRemoved,this)} - static getInstance(){ - return this._instance||(this._instance=new t),this._instance} - onAdded(){ - GM.getInstance().add(this.onEnter,this)} - onRemoved(){ - GM.getInstance().remove(this.onEnter,this)} - async update(){ - await cU.getEventList()} - show(){ - null==cU.currentPaymentMonthEvent?this.activeIndex=0:null==cU.currentPaymentSpecialEvent&&(this.activeIndex=1),this.switchTab(this.activeIndex),super.show()} - updateLayout(){ - this.title=yG.getText("GAME_945","결제 이벤트"); - const t=0==this.activeIndex?cU.currentPaymentSpecialEvent:cU.currentPaymentMonthEvent; - let i=[]; - if(t){ - const s=t.userAmount,e=t.endTime.replace("T"," ").replace(".000Z",""); - this.endTime=new Date(t.endTime).getTime(),this.endTime,ix.time,this.lblPeriod.text=yG.getText("GAME_545","이벤트 기간")+` : ~ ${ - e} - (UTC)`,this.lblRemainTitle.text=yG.getText("COMMON_29","남은 시간")+" : ",this.onEnterUpdate(),this.lblTotal.text=yG.getText("GAME_946","총 결제 금액")+" : ",this.lblAmount.text=cU.isUsdCurrency()?`$${ - oU.setComma(s)} - `:`₩${ - oU.setComma(s)} - `,this.lblAmount.textColor=nD.COLOR_BRIGHT_GREEN; - let n=0; - for(let h=0; - h<t.rewards.length; - h++){ - const e={ - index:h,userAmount:s,rewards:t.rewards[h],amount:cU.isUsdCurrency()?t.amounts[h].usdAmount:t.amounts[h].amount} - ; - i.push(e),s>=Number(e.amount)&&(n=h)} - this.list.dataProvider=i,t.rewards.length<4?this.list.scrollTo(0):this.list.scrollTo(n)} - this.lblPeriod.x=this.lblRemainTitle.x=this.lblTotal.x=50,this.lblRemainTime.x=this.lblRemainTitle.x+this.lblRemainTitle.width,this.lblAmount.x=this.lblTotal.x+this.lblTotal.width; - const s=null!=cU.currentPaymentMonthEvent&&null!=cU.currentPaymentSpecialEvent; - this.tabs.forEach(t=>t.visible=s); - const e=s?125:70; - this.infoBg.y=e,this.btnGuide.y=this.infoBg.y+10,this.lblPeriod.y=this.infoBg.y+20,this.lblRemainTitle.y=this.lblRemainTime.y=this.lblPeriod.y+this.lblPeriod.height+10,this.lblTotal.y=this.lblAmount.y=this.lblRemainTitle.y+this.lblRemainTitle.height+10,this.infoBg.height=this.lblTotal.y+this.lblTotal.height-this.infoBg.y+17; - const n=this.infoBg.y+this.infoBg.height+14; - this.list.y=n; - const h=Math.min(352,103*i.length); - this.list.setListHeight(h),this.height=this.list.y+this.list.height+30} - onEnter(){ - ++this.count>60&&(this.count=0,this.onEnterUpdate())} - onEnterUpdate(){ - const t=.001*(this.endTime-ix.time); - this.lblRemainTime.textColor=t<43200?nD.COLOR_RED:nD.DEFAULT_COLOR,this.lblRemainTime.text=t>0?`${ - oU.displayTimeAsTwoOfDDHHMMSS(t)} - `:yG.getText("GAME_949","이벤트 종료")} - switchTab(t){ - this.activeIndex=t; - for(let i=0; - i<this.tabs.length; - i++)this.tabs[i].selected=i===t; - this.updateLayout()} - layoutTabs(){ - let t=.5*(this.width-46-2); - for(const s of this.tabs)s.fitWithinWidth(t,50); - let i=23; - for(let s=0; - s<this.tabs.length; - s++){ - const e=this.tabs[s]; - i=23+(t+2)*s,e.x=i,e.y=65} - } - } - ; - Kt(u6,"PaymentEventPopup"),zt(u6,"_instance"),zt(u6,"TAB_HEIGHT",60); - let d6=u6; - const f6=class t extends VV{ - constructor(){ - super(),zt(this,"tabs",[]),zt(this,"buttons",[]),zt(this,"activeIndex",0),zt(this,"onTabChange",null),zt(this,"btnPaymentEvent",new dB("UI_Ekkorr","Package_2",.7)),zt(this,"clickedEventInfo",[]),zt(this,"cnt",0),this.btnPaymentEvent.onClick=this.onPaymentEventClick.bind(this),this.addChild(this.btnPaymentEvent),this.btnPaymentEvent.visible=!1,this.on("added",this.onAdded,this),this.on("removed",this.onRemoved,this)} - static getInstance(){ - return null==t.instance&&(t.instance=new t),t.instance} - async onAdded(){ - this.btnPaymentEvent.hideRedDot(); - const t=await $A.getPaymentEventInfo(); - if(t)for(this.clickedEventInfo=t.split("#").map(t=>""===t?[0]:t.split("|").map(Number)); - this.clickedEventInfo.length<2; - )this.clickedEventInfo.push([0]); - else this.clickedEventInfo=Array.from({ - length:2} - ,()=>[0]); - GM.getInstance().add(this.onFrame,this)} - onRemoved(){ - GM.getInstance().remove(this.onFrame,this)} - async onPaymentEventClick(){ - await d6.getInstance().update(),d6.getInstance().show(); - const t=[cU.currentPaymentSpecialEvent,cU.currentPaymentMonthEvent]; - this.clickedEventInfo=[]; - for(const i of t){ - if(!i){ - this.clickedEventInfo.push([]); - continue} - const t=[]; - t.push(i.id); - for(let s=0; - s<i.rewards.length; - s++){ - let e=i.amounts[s].amount; - cU.isUsdCurrency()&&(e=i.amounts[s].usdAmount),i.userAmount>=e?t.push(1):t.push(0)} - this.clickedEventInfo.push(t)} - $A.savePaymentEventInfo(this.clickedEventInfo.map(t=>t.join("|")).join("#"))} - onFrame(){ - this.cnt-- >0||(this.cnt=30,this.updatePaymentEvent())} - updatePaymentEvent(){ - if(this.buttons.length<2)return; - const t=this.buttons[1]; - if(this.buttons[1]&&(cU.isValidEvent(lU.PAYMENT_EVENT)?(this.btnPaymentEvent.visible=!0,cU.currentPaymentSpecialEvent?t.showEventTag(-3,2):t.hideEventTag()):(this.btnPaymentEvent.visible=!1,t.hideEventTag()),this.btnPaymentEvent.visible&&(cU.currentPaymentSpecialEvent||cU.currentPaymentMonthEvent))){ - const t=!!cU.currentPaymentSpecialEvent&&this.clickedEventInfo[0][0]<cU.currentPaymentSpecialEvent.id,i=!!cU.currentPaymentMonthEvent&&this.clickedEventInfo[1][0]<cU.currentPaymentMonthEvent.id; - t||this.checkNewReach(0)||i||this.checkNewReach(1)?this.btnPaymentEvent.showRedDot():this.btnPaymentEvent.hideRedDot()} - } - checkNewReach(t){ - const i=0==t?cU.currentPaymentSpecialEvent:cU.currentPaymentMonthEvent; - if(!i)return!1; - for(let s=0; - s<i.rewards.length; - s++){ - let e=i.amounts[s].amount; - if(cU.isUsdCurrency()&&(e=i.amounts[s].usdAmount),0==this.clickedEventInfo[t][s+1]&&i.userAmount>=e)return!0} - return!1} - setTabs(t){ - for(const i of this.buttons)this.removeChild(i); - this.buttons=[],this.tabs=t; - for(let i=0; - i<t.length; - i++){ - const s=t[i],e=new W3(yG.getText(s.labelKey,s.defaultText)); - e.height=50,this.addChild(e),this.buttons[i]=e; - const n=i; - e.onClick=()=>this.setActiveTab(n)} - this.layoutTabs(),this.setActiveTab(0),this.updateLayout()} - layoutTabs(){ - if(this.buttons.reduce((t,i)=>t+i.width,0)+2*Math.max(0,this.buttons.length-1)<=628){ - let t=634; - for(let i=this.buttons.length-1; - i>=0; - i--){ - const s=this.buttons[i]; - s.height=50,t-=s.width+2,s.x=t,s.y=5} - } - else{ - const t=this.buttons.length,i=Math.floor((628-2*(t-1))/t),s=56; - let e=634; - for(let n=t-1; - n>=0; - n--){ - const t=this.buttons[n]; - t.setMultilineMode(i,s,15),e-=i+2,t.x=e,t.y=.5*(60-s)} - } - } - setActiveTab(t){ - this.activeIndex=t; - for(let i=0; - i<this.buttons.length; - i++)this.buttons[i].selected=i===t; - this.onTabChange&&this.onTabChange(t)} - updateLayout(){ - const t=this.buttons[0]; - this.btnPaymentEvent.x=this.lblTitle.x+this.lblTitle.width+10,this.btnPaymentEvent.y=t.y+.5*(t.height-this.btnPaymentEvent.height)} - updateLanguage(){ - this.setTitle(yG.getText("COMMON_356","상점")),this.setTabs(this.tabs)} - } - ; - Kt(f6,"ShopSubMenu"),zt(f6,"instance"); - let p6=f6;
ClickAniLayer 3 hunks, 316 statements
- const O5=class t{ - static get opened(){ - return!1} - static async getMyReferralCode(){ - if(this._referralCode)return this._referralCode; - if(this.requestPending1)return this._referralCode; - this.requestPending1=!0; - const t=await iD.getInstance().referral.getMyReferralCode(); - try{ - const i=new URL(t); - Array.from(i.searchParams.keys()).length>0&&(this._referralCode=t)} - catch(i){ - } - return this.requestPending1=!1,this._referralCode} - static async getMyReferralStatus(t,i=!1){ - this.requestPending2||(this.requestPending2=!0,this.setStatusData({ - totalReferrals:10,qualifiedReferrals:7,claimed:2,milestoneRewards:[{ - milestone:10,weaponGrade:3} - ,{ - milestone:20,weaponGrade:3} - ,{ - milestone:30,weaponGrade:3} - ,{ - milestone:40,weaponGrade:4} - ,{ - milestone:50,weaponGrade:4} - ]} - ),this.requestPending2=!1,lS.getInstance().dispatchCustomEvent("ReferralStatus"))} - static setStatusData(t){ - this._totalReferrals=Number(t.totalReferrals),this._qualifiedReferrals=Number(t.qualifiedReferrals),this._claimed=Number(t.claimed); - const i=t.milestoneRewards; - if(0==this.rewardList.length&&"length"in i){ - const t=i[i.length-1].milestone; + const X5=class extends aS{ + constructor(){ + super(),zt(this,"blocker"),zt(this,"allowRect"),zt(this,"highlightBorder"),zt(this,"dimParts",[]),this.createUI()} + createUI(){
- i<t; - ++i)this.rewardList.push([{ - type:"gem",amount:this.GEM_PER_FRIEND} - ]); - const s=i.length; - for(let e=0; - e<s; - ++e){ - const t=Number(i[e].milestone),s=Number(i[e].weaponGrade); - this.rewardList[t-1].push({ - type:"weapon",amount:1,grade:s} + t<4; + t++){ + const t=new Gf; + t.alpha=.5,t.rect(0,0,1,1).fill(0),this.dimParts.push(t),this.addChild(t)} + this.blocker=new Gf,this.blocker.rect(0,0,640,KA.stageHeight).fill(0),this.blocker.alpha=0,this.blocker.eventMode="static",this.addChild(this.blocker),this.highlightBorder=new Gf,this.addChild(this.highlightBorder),this.allowRect=new Pi(0,0,0,0),this.setBlockerEnabled(!1)} + setClickArea(t,i,s,e){ + this.allowRect=new Pi(t,i,s,e),this.updateDim(),this.blocker.hitArea={ + contains:Kt((t,i)=>!this.allowRect.contains(t,i),"contains")} + ,this.setBlockerEnabled(!0)} + setBlockerEnabled(t){ + this.blocker.eventMode=t?"static":"none"; + for(const i of this.dimParts)i.visible=t; + this.highlightBorder.visible=t} + updateDim(){ + const t=KA.stageHeight,{ + x:i,y:s,width:e,height:n} + =this.allowRect; + this.dimParts[0].clear().rect(0,0,640,s).fill(0),this.dimParts[1].clear().rect(0,s,i,n).fill(0),this.dimParts[2].clear().rect(i+e,s,640-(i+e),n).fill(0),this.dimParts[3].clear().rect(0,s+n,640,t-(s+n)).fill(0),this.highlightBorder.clear().rect(i,s,e,n).stroke({ + color:16776960,width:3}
- Kt(O5,"FriendInviteManager"),zt(O5,"FRIEND_LEVEL",50),zt(O5,"GEM_PER_FRIEND",100),zt(O5,"_referralCode",""),zt(O5,"requestPending1",!1),zt(O5,"requestPending2",!1),zt(O5,"_totalReferrals",0),zt(O5,"_qualifiedReferrals",0),zt(O5,"_claimed",0),zt(O5,"rewardList",[]),zt(O5,"requestPending3",!1); - let I5=O5; - var x5=(t=>(t.GAME="GAME",t.PAYMENT="PAYMENT",t))(x5||{ - } - ); - const N5=class{ - constructor(){ - zt(this,"index",-1),zt(this,"id"),zt(this,"gameId"),zt(this,"title"),zt(this,"content"),zt(this,"rewards"),zt(this,"receivedAt"),zt(this,"createdAt"),zt(this,"mailType"),zt(this,"typeArray"),zt(this,"subTypeArray"),zt(this,"amountArray"),zt(this,"gradeArray"),zt(this,"kindNumArray"),this.index=-1,this.id=-1,this.gameId="",this.title="",this.content="",this.rewards=[],this.createdAt=null,this.receivedAt=null,this.mailType="",this.typeArray=[],this.subTypeArray=[],this.amountArray=[],this.gradeArray=[],this.kindNumArray=[]} - setData(t,i){ - t&&(this.id=Number(t.id),this.gameId=String(t.gameId),this.title=t.title,this.content=t.content,this.rewards=t.rewards,this.createdAt=t.createdAt,t.receivedAt?this.receivedAt=t.receivedAt:this.receivedAt=null,this.mailType=i,this.typeArray.length=0,this.subTypeArray.length=0,this.amountArray.length=0,this.gradeArray.length=0,this.kindNumArray.length=0)} - get hasReward(){ - return!(!this.rewards||0==this.rewards.length)&&Object.values(this.rewards).some(t=>!!t&&("number"==typeof t?t>0:!!t))} - get hasClaimableReward(){ - return this.hasReward&&null==this.receivedAt} - get isDeletable(){ - return null!=this.receivedAt} - reset(){ - this.index=-1,this.id=-1,this.gameId="",this.title="",this.content="",this.rewards.length=0,this.createdAt=null,this.receivedAt=null,this.mailType="",this.typeArray.length=0,this.subTypeArray.length=0,this.amountArray.length=0,this.gradeArray.length=0,this.kindNumArray.length=0} - } - ; - Kt(N5,"MailVO"); - let P5=N5; - const R5=class{ - static async getMailList(t=1){ - let i=await iD.getInstance().mail.list(t,this.pageSize); - 0!=i.success?t>this.page?this.setData(i.body,!0):this.setData(i.body):lS.getInstance().dispatchCustomEvent("MailUpdate")} - static setData(t,i=!1){ - let s,e,n,h; - if(t.mailList){ - const r=t.mailList; - for(0==i?(h=[...this.gameList],this.gameList.length=0):h=[],e=r.length,s=0; - s<e; - ++s){ - r[s].content=this.filterContent(r[s].content); - const t=Number(r[s].id),i=h.findIndex(i=>i.id===t); - -1===i?n=this.getMailEmptyVO():(n=h.splice(i,1)[0],n.reset()),n.setData(r[s],x5.GAME),this.gameList.push(n),this.gameMailMap[n.id]=n} - this.addListPool(h)} - if(t.paymentMailList){ - const r=t.paymentMailList; - for(0==i?(h=[...this.paymentList],this.paymentList.length=0):h=[],e=r.length,s=0; - s<e; - ++s){ - r[s].content=this.filterContent(r[s].content); - const t=Number(r[s].id),i=h.findIndex(i=>i.id===t); - -1===i?n=this.getMailEmptyVO():(n=h.splice(i,1)[0],n.reset()),n.setData(r[s],x5.PAYMENT),this.paymentList.push(n),this.paymentMailMap[n.id]=n,n.index=this.paymentList.length} - this.addListPool(h)} - "mailTotal"in t&&(this.mailsTotal=Number(t.mailTotal)),"mailTotalPages"in t&&(this.mailTotalPages=Number(t.mailTotalPages)),"paymentTotal"in t&&(this.paymentMailsTotal=Number(t.paymentTotal)),"paymentTotalPages"in t&&(this.paymentTotalPages=Number(t.paymentTotalPages)),this.updatePage(),this.updateNeeded=!1,lS.getInstance().dispatchCustomEvent("MailUpdate"),this.log()} - static filterContent(t){ - return t.replace(/\r\n/g,"\n")} - static onMailDeleteAndUpdate(t){ - t==x5.PAYMENT?(this.paymentMailsTotal>0&&this.paymentMailsTotal--,this.paymentTotalPages=Math.floor((this.paymentMailsTotal-1)/this.pageSize)+1):(this.mailsTotal>0&&this.mailsTotal--,this.mailTotalPages=Math.floor((this.mailsTotal-1)/this.pageSize)+1),this.updatePage()} - static updatePage(){ - const t=Math.max(this.gameList.length,this.paymentList.length); - this.page=Math.floor((t-1)/this.pageSize)+1,this.page<1&&(this.page=1)} - static log(){ - } - static getGameMailWithId(t){ - return this.gameMailMap[t]} - static getPaymentMailWithId(t){ - return this.paymentMailMap[t]} - static getMailCount(t){ - return t==x5.PAYMENT?this.paymentList.length:this.gameList.length} - static getMailTotal(t){ - return t==x5.PAYMENT?this.paymentMailsTotal:this.mailsTotal} - static getMailTotalPage(t){ - return t==x5.PAYMENT?this.paymentTotalPages:this.mailTotalPages} - static isAllMailLoaded(t){ - let i=0,s=0,e=0; - return t==x5.PAYMENT?(i=this.paymentList.length,s=this.paymentMailsTotal,e=this.paymentTotalPages):(i=this.gameList.length,s=this.mailsTotal,e=this.mailTotalPages),!(Math.floor((i-1)/this.pageSize)+1<e||i<s)} - static getPage(){ - return this.page} - static getPageSize(){ - return this.pageSize} - static getDisplaySize(){ - return this.displaySize} - static setDisplaySize(t){ - t>0&&(this.displaySize=t)} - static getMailEmptyVO(){ - if(this.mailPool.length>0){ - let t=this.mailPool.pop(); - return t?t.reset():t=new P5,t} - return new P5} - static addPool(t){ - t&&(t.reset(),this.mailPool.push(t))} - static addListPool(t){ - if(!t)return; - let i; - const s=t.length; - for(let e=0; - e<s; - ++e)i=t[e],i&&(i.reset(),this.mailPool.push(i))} - static removeGameMail(t){ - const i=this.gameList.findIndex(i=>i.id===t); - -1!==i&&(this.gameList.splice(i,1),this.addPool(this.gameMailMap[t]),delete this.gameMailMap[t])} - static removePaymentMail(t){ - const i=this.paymentList.findIndex(i=>i.id===t); - -1!==i&&(this.paymentList.splice(i,1),this.addPool(this.paymentMailMap[t]),delete this.paymentMailMap[t])} - static get hasDeletableGameMail(){ - return-1!==this.gameList.findIndex(t=>!0===t.isDeletable)} - static get hasDeletablePaymentMail(){ - return-1!==this.paymentList.findIndex(t=>!0===t.isDeletable)} - static get hasDeletableMail(){ - return this.hasClaimableGameReward||this.hasClaimablePaymentReward} - static get hasClaimableReward(){ - return this.hasClaimableGameReward||this.hasClaimablePaymentReward} - static get hasClaimableGameReward(){ - return this.checkClaimableReward(this.gameList)} - static get hasClaimablePaymentReward(){ - return this.checkClaimableReward(this.paymentList)} - static checkClaimableReward(t){ - const i=t.length; - for(let s=0; - s<i; - ++s)if(t[s].hasClaimableReward)return!0; - return!1} - } - ; - Kt(R5,"MailManager"),zt(R5,"updateNeeded",!0),zt(R5,"mailPool",[]),zt(R5,"gameList",[]),zt(R5,"paymentList",[]),zt(R5,"gameMailMap",{ - } - ),zt(R5,"paymentMailMap",{ - } - ),zt(R5,"mailsTotal",0),zt(R5,"mailTotalPages",0),zt(R5,"paymentMailsTotal",0),zt(R5,"paymentTotalPages",0),zt(R5,"page",1),zt(R5,"pageSize",20),zt(R5,"displaySize",8); - let D5=R5; - var L5=(t=>(t.NOT_PURCHASE="NOT_PURCHASE",t.CREATED="CREATED",t.PENDING="PENDING",t.COMPLETED="COMPLETED",t.FAILED="FAILED",t))(L5||{ - } - ); - const G5=class{ - constructor(){ - zt(this,"id",-1),zt(this,"productId",-1),zt(this,"paybackType",""),zt(this,"paybackValue",-1),zt(this,"status",""),zt(this,"paidbackAt",null)} - } - ; - Kt(G5,"PaybackEventUserVO"); - let B5=G5; - const U5=class{ - constructor(){ - zt(this,"id",-1),zt(this,"title",""),zt(this,"description",[]),zt(this,"startTime",null),zt(this,"endTime",null),zt(this,"paybackEndTime",null)} - } - ; - Kt(U5,"PaybackEventVO"); - let F5=U5; - const H5=class{ - static get opened(){ - return!1} - static async getPaybackEvent(t,i=!1){ - let s=await iD.getInstance().payback.getPaybackEvent(t,i); - s=this.getTestData(),0!=s.success?(this.setData(s.body),lS.getInstance().dispatchCustomEvent("PaybackEvent")):lS.getInstance().dispatchCustomEvent("PaybackEvent")} - static setData(t){ - this.setPaybackEventData(t),this.setPaybackUserData(t)} - static setPaybackEventData(t){ - if(!t||!t.paybackEvent)return void(this.paybackEvent.id=0); - const i=t.paybackEvent; - this.paybackEvent.id=Number(i.id),this.paybackEvent.title=String(i.title),this.paybackEvent.description=String(i.description).split("|"),this.paybackEvent.startTime=new Date(i.startTime),this.paybackEvent.endTime=new Date(i.endTime),this.paybackEvent.paybackEndTime=new Date(i.paybackEndTime)} - static getEventDurationStr(t){ - const i={ - startTimeStr:"",endTimeStr:"",paybackEndTimeStr:""} - ,s="YYYY-MM-DD"; - let e="00:00:00"; - if(t.startTime){ - const n=t.startTime,h=s.replace("YYYY",String(n.getUTCFullYear())).replace("MM",oU.digit(n.getUTCMonth()+1)).replace("DD",oU.digit(n.getUTCDate())); - e=`${ - oU.digit(n.getUTCHours())} - :${ - oU.digit(n.getUTCMinutes())} - :${ - oU.digit(n.getUTCSeconds())} - `,i.startTimeStr=h} - let n="23:59:59"; - if(t.endTime){ - const e=t.endTime,h=s.replace("YYYY",String(e.getUTCFullYear())).replace("MM",oU.digit(e.getUTCMonth()+1)).replace("DD",oU.digit(e.getUTCDate())); - n=`${ - oU.digit(e.getUTCHours())} - :${ - oU.digit(e.getUTCMinutes())} - :${ - oU.digit(e.getUTCSeconds())} - `,i.endTimeStr=h} - let h="23:59:59"; - if(t.paybackEndTime){ - const e=t.paybackEndTime,n=s.replace("YYYY",String(e.getUTCFullYear())).replace("MM",oU.digit(e.getUTCMonth()+1)).replace("DD",oU.digit(e.getUTCDate())); - h=`${ - oU.digit(e.getUTCHours())} - :${ - oU.digit(e.getUTCMinutes())} - :${ - oU.digit(e.getUTCSeconds())} - `,i.paybackEndTimeStr=n} - return"00:00:00"==e&&"23:59:59"==n&&"23:59:59"==h||(i.startTimeStr+=" "+e,i.endTimeStr+=" "+n,i.paybackEndTimeStr+=" "+h),i} - static setPaybackUserData(t){ - if(!t||!t.paybacks)return; - const i=t.paybacks,s=i.length; - if(0==this.paybacks.length)for(let h=0; - h<s; - ++h)this.paybacks.push(new B5); - let e,n; - for(let h=0; - h<s; - ++h)e=i[h],n=this.paybacks[h],n.id=Number(e.id),n.productId=Number(e.productId),n.paybackType=String(e.paybackType),n.paybackValue=Number(e.paybackValue),n.status=String(e.status),n.paidbackAt=new Date(String(e.paidbackAt))} - static isEventEnded(){ - const t=this.paybackEvent; - return t.id<0||!t.endTime||!(uP.serverTime<t.endTime.getTime())} - static isPaybackEnded(){ - const t=this.paybackEvent; - return t.id<0||!t.paybackEndTime||!(uP.serverTime<t.paybackEndTime.getTime())} - static hasReward(){ - if(1==this.isPaybackEnded())return!1; - let t; - const i=this.paybacks.length; - for(let s=0; - s<i; - ++s)if(t=this.paybacks[s],t.status==L5.CREATED||t.status==L5.FAILED)return!0; - return!1} - static getTestData(){ - return{ - header:{ - sts:1771417950938} - ,body:{ - paybackEvent:{ - id:7,gameId:"smith",active:1,subId:3,title:"PAYBACK_T1",description:"PAYBACK_H1|PAYBACK_H2|PAYBACK_H3|PAYBACK_H4|PAYBACK_H5|PAYBACK_H6",startTime:"2026-02-17T00:00:00.000Z",endTime:"2026-02-20T21:59:59.000Z",paybackEndTime:"2026-02-20T23:59:59.000Z"} - ,paybacks:[{ - id:21,gameId:"smith",subId:3,step:1,productId:111,reqProductId:0,paybackType:"slx",paybackValue:299,status:"COMPLETED",paidbackAt:null} - ,{ - id:22,gameId:"smith",subId:3,step:2,productId:112,reqProductId:111,paybackType:"slx",paybackValue:998,status:"CREATED",paidbackAt:null} - ,{ - id:23,gameId:"smith",subId:3,step:3,productId:113,reqProductId:112,paybackType:"slx",paybackValue:4995,status:"NOT_PURCHASE",paidbackAt:null} - ,{ - id:24,gameId:"smith",subId:3,step:4,productId:114,reqProductId:113,paybackType:"slx",paybackValue:9990,status:"NOT_PURCHASE",paidbackAt:null} - ,{ - id:25,gameId:"smith",subId:3,step:5,productId:115,reqProductId:114,paybackType:"slx",paybackValue:19980,status:"NOT_PURCHASE",paidbackAt:null} - ,{ - id:26,gameId:"smith",subId:3,step:6,productId:116,reqProductId:115,paybackType:"slx",paybackValue:49950,status:"NOT_PURCHASE",paidbackAt:null} - ,{ - id:27,gameId:"smith",subId:3,step:7,productId:117,reqProductId:116,paybackType:"slx",paybackValue:99900,status:"NOT_PURCHASE",paidbackAt:null} - ]} - ,_success_:!0,_ok_:!0,_status_:201} - } - } - ; - Kt(H5,"PaybackEventManager"),zt(H5,"paybackEvent",new F5),zt(H5,"paybacks",[]); - let W5=H5; - const j5=class extends Be{ - constructor(t=552,i=106,s="Banner"){ - super(),zt(this,"banner"),zt(this,"bannerName",""),zt(this,"sheetName","Banner"),zt(this,"_width",552),zt(this,"_height",106),zt(this,"_imageWidth",-1),zt(this,"_imageHeight",-1),zt(this,"_autoResize",!1),this._width=t,this._height=i,this.sheetName=s,this.banner=new We,this.addChild(this.banner)} - get width(){ - return this._width} - get height(){ - return this._height} - get imageWidth(){ - return this._imageWidth} - get imageHeight(){ - return this._imageHeight} - get autoResize(){ - return this._autoResize} - set autoResize(t){ - t!=this._autoResize&&(this._autoResize=t,this._imageWidth<0||this._imageHeight<0||(this._autoResize?(this.banner.width=this._width,this.banner.height=this._height):(this.banner.width=this._imageWidth,this.banner.height=this._imageHeight)))} - async update(t,i=-1,s=-1,e="Banner"){ - if(t==this.bannerName)return; - if(this.bannerName=t,this.sheetName=e,!1===ZA.hasSheet(this.sheetName)){ - const t="ktx2"; - await ZA.generateTexture(this.sheetName,t,!1)} - let n=ZA.getTexture(this.sheetName,this.bannerName); - this.banner.texture=n,this._imageWidth=n.width,this._imageHeight=n.height,this._autoResize?(this.banner.width=this._width,this.banner.height=this._height):(this.banner.width=this._imageWidth,this.banner.height=this._imageHeight)} - } - ; - Kt(j5,"BannerImage"); + Kt(X5,"ClickAniLayer");
HeroDetailPopup 29 hunks, 200 statements
- super(),zt(this,"icon",new v3),zt(this,"lblName",new KD("",nD.DEFAULT_COLOR,nD.DEFAULT_OUTLINE_FONT_OPTION_20)),zt(this,"lblHp",new PB("UI_HEART","0",16711680,nD.DEFAULT_OUTLINE_FONT_OPTION_18)),zt(this,"lblAtk",new PB("UI_MAGIC_WAND","0",39423,nD.DEFAULT_OUTLINE_FONT_OPTION_18)),zt(this,"lblDef",new PB("UI_PHY_DEFENSE","0",16776960,nD.DEFAULT_OUTLINE_FONT_OPTION_18)),zt(this,"lblMagDef",new PB("UI_MAGIC_DEFENSE","0",16776960,nD.DEFAULT_OUTLINE_FONT_OPTION_18)),zt(this,"lblBlock",new PB("ICON_UNIT","0",nD.DEFAULT_COLOR,nD.DEFAULT_OUTLINE_FONT_OPTION_18)),zt(this,"lblAtkSpd",new PB("UI_ATTACK_SPEED","0",16776960,nD.DEFAULT_OUTLINE_FONT_OPTION_18)),zt(this,"lblMoveSpd",new PB("UI_MOVE_SPEED","0",16776960,nD.DEFAULT_OUTLINE_FONT_OPTION_18)),zt(this,"lblRecovery",new PB("ICON_OPEN","0",16776960,nD.DEFAULT_OUTLINE_FONT_OPTION_18)),zt(this,"lblAtkRange",new PB("UI_ATTACK_RANGE","0",16776960,nD.DEFAULT_OUTLINE_FONT_OPTION_18)),zt(this,"lblCriChange",new PB("UI_CRITICAL_PERCENT","0",16776960,nD.DEFAULT_OUTLINE_FONT_OPTION_18)),zt(this,"lblCriDamage",new PB("UI_CRITICAL_DAMAGE","0",16776960,nD.DEFAULT_OUTLINE_FONT_OPTION_18)),zt(this,"iconAtkType",new We(ZA.getTexture("UI_Ekkorr","ICON_MELEE"))),zt(this,"iconDamageType",new We(ZA.getTexture("UI_Ekkorr","ICON_SWORD"))),zt(this,"iconTribeType",new We(ZA.getTexture("UI_Ekkorr","HUMAN_ICON"))),zt(this,"iconIsAir",new We(ZA.getTexture("UI_Ekkorr","ICON_AIR"))),zt(this,"iconIsMale",new We(ZA.getTexture("UI_Ekkorr","MALE_ICON"))),zt(this,"iconDetect",new We(ZA.getTexture("UI_Ekkorr","DETECT_ICON"))),zt(this,"canAirAttack",new We(ZA.getTexture("UI_Ekkorr","AIR_ICON"))),zt(this,"btnEnhance",new AU("UI_STAR_ICON","1000","강화",.8,160,70)),zt(this,"btnEvolve",new AU("UI_GEM","100","진화",.8,200,70)),zt(this,"btnSell",new AU("UI_GEM","10","해고",.8,200,70)),zt(this,"btnHire",new AU("UI_GEM","","",.8,160,70)),zt(this,"btn10Enhance",new AU("UI_STAR_ICON","10000","+10",.8,160,70)),zt(this,"btn100Enhance",new AU("UI_STAR_ICON","100000","+100",.8,160,70)),zt(this,"multiEnhanceContainer",new Be),zt(this,"enhanceRapidClickCount",0),zt(this,"lastEnhanceRapidClickTime",0),zt(this,"RAPID_CLICK_THRESHOLD",500),zt(this,"RAPID_CLICK_COUNT",3),zt(this,"enhanceTimer",null),zt(this,"enhanceStartValue",-1),zt(this,"enhanceStartMedal",-1),zt(this,"propertyList",[]),zt(this,"propertyContainer",new Be),zt(this,"basicPropertyContainer",new Be),zt(this,"basicPropertyList",[]),zt(this,"lblNormalAttackTitle",new KD("# 일반 공격",nD.DEFAULT_COLOR,nD.DEFAULT_FONT_OPTION_16)),zt(this,"lblNormalAttackDesc",new KD("적을 강타합니다.",nD.DEFAULT_COLOR,nD.DEFAULT_FONT_OPTION_16)),zt(this,"lblSpecialAttackTitle",new KD("# 스킬 공격",nD.DEFAULT_COLOR,nD.DEFAULT_FONT_OPTION_16)),zt(this,"lblSpecialAttackDesc",new KD("스킬이 없습니다.",nD.DEFAULT_COLOR,nD.DEFAULT_FONT_OPTION_16)),zt(this,"lblUniqueTitle",new KD("# 고유스킬",16776960,nD.DEFAULT_FONT_OPTION_16)),zt(this,"lblUniqueDesc",new KD("고유스킬이 없습니다",16776960,nD.DEFAULT_FONT_OPTION_16)),zt(this,"lblTribleTitle",new KD("# 종족 특성",nD.DEFAULT_COLOR,nD.DEFAULT_FONT_OPTION_16)),zt(this,"lblTribleDesc",new KD("진화하면, 종족 특성이 추가됩니다.\n밤에는 공격력이 10% 증가하고, 낮에는 공격력이 10% 감소합니다.",nD.DEFAULT_COLOR,nD.DEFAULT_FONT_OPTION_16)),zt(this,"starIcon",new We(ZA.getTextures("UI_Ekkorr","UI_UNIT_RARE")[0])),zt(this,"contentContainer",new Be),zt(this,"tapDetail",new W3("상세",200)),zt(this,"tapSkill",new W3("스킬",200)),zt(this,"detailContainer",new Be),zt(this,"skillContainer",new Be),zt(this,"basicPropertyBg"),zt(this,"basicPropertyBg2"),zt(this,"lblGoldSkill",new KD("골드스킬",6736896,nD.DEFAULT_FONT_OPTION_16)),zt(this,"goldSkillList"),zt(this,"container",new Be),zt(this,"draggableBg"),zt(this,"draggableMask"),zt(this,"draggableContainer"),zt(this,"tapTrans",new W3("초월",200)),zt(this,"transContainer",new Be),zt(this,"transBg"),zt(this,"transPageNav"),zt(this,"transStatusTable"),zt(this,"transGradeTable"),zt(this,"lblTransMaxTop",new KD("",11184810,nD.DEFAULT_OUTLINE_FONT_OPTION_18)),zt(this,"lblTransMaxBottom",new KD("",11184810,nD.DEFAULT_OUTLINE_FONT_OPTION_18)),zt(this,"lblTransStepTitle",new KD("1차 초월",nD.DEFAULT_COLOR,nD.DEFAULT_OUTLINE_FONT_OPTION_18)),zt(this,"materialContainer",new Be),zt(this,"materialIcons",[]),zt(this,"materialCountLabels",[]),zt(this,"materialSatisfied",[!1,!1,!1,!1,!1]),zt(this,"btnDoTrans",new AU("PVP_COIN_ON","100","초월",1,200,70)),zt(this,"bookVo"),zt(this,"vo"),zt(this,"mode","list"),zt(this,"tribeIcons",["HUMAN_ICON","HUMAN_ICON","ELF_ICON","UNDEAD_ICON","ORC_ICON","DEMON_ICON","ANGEL_ICON"]),zt(this,"requestPending",!1),zt(this,"onHeroEvolveBind"),this.y=Math.min(KA.safeHeight-t.POPUP_MIN_HEIGHT,KA.viewMainY),this.bg.height=KA.safeHeight-this.y,this.addChild(this.container),this.addChild(this.contentContainer),this.icon.x=11,this.icon.y=50,this.lblName.align="center",this.lblName.y=this.icon.y+5,this.lblName.x=this.icon.x+this.icon.width+10,this.lblHp.y=this.lblAtk.y=this.lblDef.y=this.lblMagDef.y=this.lblBlock.y=this.lblName.y+this.lblName.height+16,this.lblHp.x=this.lblName.x,this.lblAtk.x=this.lblHp.x+100,this.lblDef.x=this.lblAtk.x+100,this.lblMagDef.x=this.lblDef.x+100,this.lblBlock.iconScale=1.05,this.lblBlock.x=this.lblMagDef.x+100,this.container.addChild(this.detailContainer),this.goldSkillList=new zI(q7,620,530),this.goldSkillList.x=13,this.goldSkillList.y=0,this.skillContainer.addChild(this.goldSkillList),this.lblGoldSkill.x=this.goldSkillList.x,this.lblGoldSkill.y=this.goldSkillList.y+this.goldSkillList.getListHeight()+10,this.lblGoldSkill.text=`# ${ + super(),zt(this,"icon",new d3),zt(this,"lblName",new YD("",aD.DEFAULT_COLOR,aD.DEFAULT_OUTLINE_FONT_OPTION_20)),zt(this,"lblHp",new GB("UI_HEART","0",16711680,aD.DEFAULT_OUTLINE_FONT_OPTION_18)),zt(this,"lblAtk",new GB("UI_MAGIC_WAND","0",39423,aD.DEFAULT_OUTLINE_FONT_OPTION_18)),zt(this,"lblDef",new GB("UI_PHY_DEFENSE","0",16776960,aD.DEFAULT_OUTLINE_FONT_OPTION_18)),zt(this,"lblMagDef",new GB("UI_MAGIC_DEFENSE","0",16776960,aD.DEFAULT_OUTLINE_FONT_OPTION_18)),zt(this,"lblBlock",new GB("ICON_UNIT","0",aD.DEFAULT_COLOR,aD.DEFAULT_OUTLINE_FONT_OPTION_18)),zt(this,"lblAtkSpd",new GB("UI_ATTACK_SPEED","0",16776960,aD.DEFAULT_OUTLINE_FONT_OPTION_18)),zt(this,"lblMoveSpd",new GB("UI_MOVE_SPEED","0",16776960,aD.DEFAULT_OUTLINE_FONT_OPTION_18)),zt(this,"lblRecovery",new GB("ICON_OPEN","0",16776960,aD.DEFAULT_OUTLINE_FONT_OPTION_18)),zt(this,"lblAtkRange",new GB("UI_ATTACK_RANGE","0",16776960,aD.DEFAULT_OUTLINE_FONT_OPTION_18)),zt(this,"lblCriChange",new GB("UI_CRITICAL_PERCENT","0",16776960,aD.DEFAULT_OUTLINE_FONT_OPTION_18)),zt(this,"lblCriDamage",new GB("UI_CRITICAL_DAMAGE","0",16776960,aD.DEFAULT_OUTLINE_FONT_OPTION_18)),zt(this,"iconAtkType",new We(ZA.getTexture("UI_Ekkorr","ICON_MELEE"))),zt(this,"iconDamageType",new We(ZA.getTexture("UI_Ekkorr","ICON_SWORD"))),zt(this,"iconTribeType",new We(ZA.getTexture("UI_Ekkorr","HUMAN_ICON"))),zt(this,"iconIsAir",new We(ZA.getTexture("UI_Ekkorr","ICON_AIR"))),zt(this,"iconIsMale",new We(ZA.getTexture("UI_Ekkorr","MALE_ICON"))),zt(this,"iconDetect",new We(ZA.getTexture("UI_Ekkorr","DETECT_ICON"))),zt(this,"canAirAttack",new We(ZA.getTexture("UI_Ekkorr","AIR_ICON"))),zt(this,"btnEnhance",new kU("UI_STAR_ICON","1000","강화",.8,160,70)),zt(this,"btnEvolve",new kU("UI_GEM","100","진화",.8,200,70)),zt(this,"btnEvolveMass",new kU("UI_GEM","100","대량진화",.8,230,70)),zt(this,"btnSell",new kU("UI_GEM","10","해고",.8,200,70)),zt(this,"btnHire",new kU("UI_GEM","","",.8,160,70)),zt(this,"btn10Enhance",new kU("UI_STAR_ICON","10000","+10",.8,160,70)),zt(this,"btn100Enhance",new kU("UI_STAR_ICON","100000","+100",.8,160,70)),zt(this,"multiEnhanceContainer",new Be),zt(this,"enhanceRapidClickCount",0),zt(this,"lastEnhanceRapidClickTime",0),zt(this,"RAPID_CLICK_THRESHOLD",500),zt(this,"RAPID_CLICK_COUNT",3),zt(this,"enhanceTimer",null),zt(this,"enhanceStartValue",-1),zt(this,"enhanceStartMedal",-1),zt(this,"propertyList",[]),zt(this,"propertyContainer",new Be),zt(this,"basicPropertyContainer",new Be),zt(this,"basicPropertyList",[]),zt(this,"lblNormalAttackTitle",new YD("# 일반 공격",aD.DEFAULT_COLOR,aD.DEFAULT_FONT_OPTION_16)),zt(this,"lblNormalAttackDesc",new YD("적을 강타합니다.",aD.DEFAULT_COLOR,aD.DEFAULT_FONT_OPTION_16)),zt(this,"lblSpecialAttackTitle",new YD("# 스킬 공격",aD.DEFAULT_COLOR,aD.DEFAULT_FONT_OPTION_16)),zt(this,"lblSpecialAttackDesc",new YD("스킬이 없습니다.",aD.DEFAULT_COLOR,aD.DEFAULT_FONT_OPTION_16)),zt(this,"lblUniqueTitle",new YD("# 고유스킬",16776960,aD.DEFAULT_FONT_OPTION_16)),zt(this,"lblUniqueDesc",new YD("고유스킬이 없습니다",16776960,aD.DEFAULT_FONT_OPTION_16)),zt(this,"lblTribleTitle",new YD("# 종족 특성",aD.DEFAULT_COLOR,aD.DEFAULT_FONT_OPTION_16)),zt(this,"lblTribleDesc",new YD("진화하면, 종족 특성이 추가됩니다.\n밤에는 공격력이 10% 증가하고, 낮에는 공격력이 10% 감소합니다.",aD.DEFAULT_COLOR,aD.DEFAULT_FONT_OPTION_16)),zt(this,"starIcon",new We(ZA.getTextures("UI_Ekkorr","UI_UNIT_RARE")[0])),zt(this,"contentContainer",new Be),zt(this,"tapDetail",new E4("상세",200)),zt(this,"tapSkill",new E4("스킬",200)),zt(this,"detailContainer",new Be),zt(this,"skillContainer",new Be),zt(this,"basicPropertyBg"),zt(this,"basicPropertyBg2"),zt(this,"lblGoldSkill",new YD("골드스킬",6736896,aD.DEFAULT_FONT_OPTION_16)),zt(this,"goldSkillList"),zt(this,"container",new Be),zt(this,"draggableBg"),zt(this,"draggableMask"),zt(this,"draggableContainer"),zt(this,"tapTrans",new E4("초월",200)),zt(this,"transContainer",new Be),zt(this,"transBg"),zt(this,"transPageNav"),zt(this,"transStatusTable"),zt(this,"transGradeTable"),zt(this,"transMode",1),zt(this,"btnTransMode1"),zt(this,"btnTransMode10"),zt(this,"lblTransMaxTop",new YD("",11184810,aD.DEFAULT_OUTLINE_FONT_OPTION_18)),zt(this,"lblTransMaxBottom",new YD("",11184810,aD.DEFAULT_OUTLINE_FONT_OPTION_18)),zt(this,"lblTransStepTitle",new YD("1차 초월",aD.DEFAULT_COLOR,aD.DEFAULT_OUTLINE_FONT_OPTION_18)),zt(this,"materialContainer",new Be),zt(this,"materialIcons",[]),zt(this,"materialCountLabels",[]),zt(this,"materialSatisfied",[!1,!1,!1,!1,!1]),zt(this,"btnTrans",new kU("PVP_COIN_ON","100","초월",1,200,70)),zt(this,"btnTransTicket",new kU("Ticket_HeroTrans_s","100","초월",1,200,70)),zt(this,"bookVo"),zt(this,"vo"),zt(this,"mode","list"),zt(this,"tribeIcons",["HUMAN_ICON","HUMAN_ICON","ELF_ICON","UNDEAD_ICON","ORC_ICON","DEMON_ICON","ANGEL_ICON"]),zt(this,"requestPending",!1),zt(this,"onHeroEvolveBind"),this.y=Math.min(KA.safeHeight-t.POPUP_MIN_HEIGHT,KA.viewMainY),this.bg.height=KA.safeHeight-this.y,this.addChild(this.container),this.addChild(this.contentContainer),this.icon.x=11,this.icon.y=50,this.lblName.align="center",this.lblName.y=this.icon.y+5,this.lblName.x=this.icon.x+this.icon.width+10,this.lblHp.y=this.lblAtk.y=this.lblDef.y=this.lblMagDef.y=this.lblBlock.y=this.lblName.y+this.lblName.height+16,this.lblHp.x=this.lblName.x,this.lblAtk.x=this.lblHp.x+100,this.lblDef.x=this.lblAtk.x+100,this.lblMagDef.x=this.lblDef.x+100,this.lblBlock.iconScale=1.05,this.lblBlock.x=this.lblMagDef.x+100,this.container.addChild(this.detailContainer),this.goldSkillList=new zI(J9,620,530),this.goldSkillList.x=13,this.goldSkillList.y=0,this.skillContainer.addChild(this.goldSkillList),this.lblGoldSkill.x=this.goldSkillList.x,this.lblGoldSkill.y=this.goldSkillList.y+this.goldSkillList.getListHeight()+10,this.lblGoldSkill.text=`# ${
- ,this.multiEnhanceContainer.addChild(this.btn100Enhance),this.multiEnhanceContainer.visible=!1,this.addChild(this.multiEnhanceContainer),this.btnEvolve.text=yG.getText("GAME_67","진화"),this.btnEvolve.showIconLabel=!0,this.btnEvolve.showTextLabel=!0,this.btnEvolve.color=AU.GREEN,this.btnEvolve.onClick=this.onEvolveClick.bind(this),this.btnSell.text=yG.getText("GAME_68","해고"),this.btnSell.showIconLabel=!1,this.btnSell.showTextLabel=!0,this.btnSell.color=AU.RED,this.btnSell.onClick=this.onSellClick.bind(this),this.btnHire.text=yG.getText("GAME_64","배치"),this.btnHire.showIconLabel=!1,this.btnHire.showTextLabel=!0,this.btnHire.onClick=this.onHireClick.bind(this),this.contentContainer.addChild(this.icon,this.lblName,this.lblHp,this.lblAtk,this.lblDef,this.lblMagDef,this.lblBlock,this.btnEnhance,this.btnEvolve,this.btnSell,this.btnHire,this.starIcon),this.updateLayout(),this.draggableMask.x=this.draggableContainer.x,this.draggableMask.y=this.basicPropertyContainer.y+this.basicPropertyContainer.height+40; + ,this.multiEnhanceContainer.addChild(this.btn100Enhance),this.multiEnhanceContainer.visible=!1,this.addChild(this.multiEnhanceContainer),this.btnEvolve.text=AG.getText("GAME_67","진화"),this.btnEvolve.showIconLabel=!0,this.btnEvolve.showTextLabel=!0,this.btnEvolve.color=kU.GREEN,this.btnEvolve.onClick=this.onEvolveClick.bind(this); + const i=t.MASS_EVOLVE_COUNT; + this.btnEvolveMass.text=`${ + AG.getText("GAME_67","진화")} + (x${ + i} + )`,this.btnEvolveMass.showIconLabel=!0,this.btnEvolveMass.showTextLabel=!0,this.btnEvolveMass.color=kU.GREEN,this.btnEvolveMass.activatedTextLabelColor=13434624,this.btnEvolveMass.onClick=this.onEvolveMassClick.bind(this),this.btnSell.text=AG.getText("GAME_68","해고"),this.btnSell.showIconLabel=!1,this.btnSell.showTextLabel=!0,this.btnSell.color=kU.RED,this.btnSell.onClick=this.onSellClick.bind(this),this.btnHire.text=AG.getText("GAME_64","배치"),this.btnHire.showIconLabel=!1,this.btnHire.showTextLabel=!0,this.btnHire.onClick=this.onHireClick.bind(this),this.contentContainer.addChild(this.icon,this.lblName,this.lblHp,this.lblAtk,this.lblDef,this.lblMagDef,this.lblBlock,this.btnEnhance,this.btnEvolve,this.btnEvolveMass,this.btnSell,this.btnHire,this.starIcon),this.updateLayout(),this.draggableMask.x=this.draggableContainer.x,this.draggableMask.y=this.basicPropertyContainer.y+this.basicPropertyContainer.height+40;
- this.transContainer.addChild(this.materialContainer),this.btnDoTrans.text=yG.getText("GAME_820","초월"),this.btnDoTrans.showIconLabel=!0,this.btnDoTrans.showTextLabel=!0,this.btnDoTrans.color=AU.GREEN,this.btnDoTrans.onClick=this.onDoTransClick.bind(this),this.btnDoTrans.visible=!1,this.contentContainer.addChild(this.btnDoTrans)} + this.transContainer.addChild(this.materialContainer),this.btnTrans.text=AG.getText("GAME_820","초월"),this.btnTrans.showIconLabel=!0,this.btnTrans.showTextLabel=!0,this.btnTrans.color=kU.GREEN,this.btnTrans.onClick=this.onTransClick.bind(this),this.btnTrans.visible=!1,this.contentContainer.addChild(this.btnTrans),this.btnTransTicket.text=AG.getText("GAME_820","초월"),this.btnTransTicket.showIconLabel=!0,this.btnTransTicket.showTextLabel=!0,this.btnTransTicket.color=kU.GREEN,this.btnTransTicket.onClick=this.onTransTicketClick.bind(this),this.btnTransTicket.visible=!1,this.contentContainer.addChild(this.btnTransTicket),this.btnTransMode10=new o9("x10"),this.btnTransMode10.x=this.transBg.x+this.transBg.width-this.btnTransMode10.width-10,this.btnTransMode10.y=this.transBg.y+15,this.transContainer.addChild(this.btnTransMode10),this.btnTransMode1=new o9("x1"),this.btnTransMode1.x=this.btnTransMode10.x-this.btnTransMode1.width-5,this.btnTransMode1.y=this.btnTransMode10.y,this.transContainer.addChild(this.btnTransMode1),this.btnTransMode1.onClick=()=>{ + this.onTransModeClick(1)} + ,this.btnTransMode10.onClick=()=>{ + this.onTransModeClick(10)} + }
- this.tapTrans.selected&&this.tapTrans.visible?(this.btnEnhance.visible=!1,this.btnEvolve.visible=!1,this.btnSell.visible=!1,this.btnHire.visible=!1,this.multiEnhanceContainer.visible=!1,this.btnDoTrans.visible=!0):(this.btnDoTrans.visible=!1,this.applyModeButtonVisibility())} + const i=this.tapTrans.selected&&this.tapTrans.visible; + if(this.btnTransMode1.visible=!1,this.btnTransMode10.visible=!1,i){ + if(this.btnEnhance.visible=!1,this.btnEvolve.visible=!1,this.btnEvolveMass.visible=!1,this.btnSell.visible=!1,this.btnHire.visible=!1,this.multiEnhanceContainer.visible=!1,this.btnTrans.visible=!0,this.btnTransTicket.visible=EL.getInstance().isHeroTranscendTicket(),"roster"==this.mode&&EL.getInstance().isHeroMassTranscend()){ + const i=vx.getInstance().getOwnedUnitVO(this.vo.kindNum),s=this.vo.trans>0?(null==i?void 0:i.trans[this.vo.trans-1])??0:(null==i?void 0:i.count)??0,e=t.MASS_TRANSCEND_COUNT; + this.btnTransMode1.visible=!(s<e),this.btnTransMode10.visible=this.btnTransMode1.visible,10==this.transMode?(this.btnTransMode1.activated=!1,this.btnTransMode10.activated=!0):(this.btnTransMode1.activated=!0,this.btnTransMode10.activated=!1)} + } + else this.btnTrans.visible=!1,this.btnTransTicket.visible=!1,this.applyModeButtonVisibility()}
- this.vo&&("book"==this.mode||"shop"==this.mode||"guild"==this.mode?(this.btnEnhance.visible=!1,this.btnEvolve.visible=!1,this.btnSell.visible=!1,this.btnHire.visible=!1):"roster"==this.mode?(this.btnEnhance.visible=!1,this.btnSell.visible=!1,this.btnEvolve.visible=this.vo.evolKindNum>0&&0===this.vo.evolStage,this.btnHire.visible=!0):(this.btnEnhance.visible=!0,this.btnSell.visible=!0,this.btnEvolve.visible=-1!=this.vo.evolKindNum,this.btnHire.visible=!1))} + if(this.vo)if(this.btnEvolveMass.visible=!1,"book"==this.mode||"shop"==this.mode||"guild"==this.mode)this.btnEnhance.visible=!1,this.btnSell.visible=!1,this.btnHire.visible=!1,this.btnEvolve.visible=!1; + else if("roster"==this.mode){ + if(this.btnEnhance.visible=!1,this.btnSell.visible=!1,this.btnHire.visible=!0,this.btnEvolve.visible=this.vo.evolKindNum>0&&0===this.vo.evolStage,this.btnEvolve.visible&&EL.getInstance().isHeroMassEvolve()){ + const i=vx.getInstance().getOwnedUnitVO(this.vo.base),s=(null==i?void 0:i.count)??0,e=t.MASS_EVOLVE_COUNT; + this.btnEvolveMass.visible=!(s<e)} + } + else this.btnEnhance.visible=!0,this.btnSell.visible=!0,this.btnHire.visible=!1,this.btnEvolve.visible=-1!=this.vo.evolKindNum}
- if(this.lblTransMaxTop.text=r,this.lblTransMaxBottom.text=r,this.lblTransMaxTop.visible=h,this.lblTransMaxBottom.visible=h&&0===this.transPageNav.pageIndex,h)for(let k=0; - k<t.MATERIAL_SLOT_COUNT; - k++)this.materialSatisfied[k]=!1,this.materialIcons[k].visible=!1,this.materialCountLabels[k].visible=!1; - else{ - const i=this.vo.getBookVo().getTransMaterials(n),e=new Map; - "roster"===this.mode&&0===this.vo.trans&&e.set(this.vo.kindNum,1); - for(let n=0; - n<t.MATERIAL_SLOT_COUNT; - n++){ - const t=i[n],h=this.materialIcons[n],r=this.materialCountLabels[n]; - if(t&&t>0){ - h.setDataWithKindNum(t),h.visible=!0; - const i=s.getOwnedUnitCount(t,0),o=e.get(t)??0,a=i>o; - a&&e.set(t,o+1),this.materialSatisfied[n]=a,h.alpha=a?1:.5,r.text=a?"1/1":"0/1",r.visible=!0} - else this.materialSatisfied[n]=!1,h.visible=!1,r.visible=!1} - } + this.lblTransMaxTop.text=r,this.lblTransMaxBottom.text=r,this.lblTransMaxTop.visible=h,this.lblTransMaxBottom.visible=h&&0===this.transPageNav.pageIndex,this.updateTransMaterials();
- if(this.transPageNav.setPages(T),h)this.btnDoTrans.text=yG.getText("GAME_829","최대초월"),this.btnDoTrans.iconText="",this.btnDoTrans.activated=!1; + if(this.transPageNav.setPages(C),h)this.btnTrans.text=AG.getText("GAME_829","최대초월"),this.btnTrans.iconText="",this.btnTrans.activated=!1,this.btnTransTicket.text=AG.getText("GAME_829","최대초월"),this.btnTransTicket.iconText="",this.btnTransTicket.activated=!1;
- const t=vx.getTransHonorCoinCost(n); - this.btnDoTrans.text=yG.getText("GAME_820","초월"),this.btnDoTrans.iconText=String(t),this.btnDoTrans.activated=!0} + const t=this.getTransHonorCoinCost(n); + this.btnTrans.text=AG.getText("GAME_820","초월"),this.btnTrans.iconText=String(t),this.btnTrans.activated=!0,this.btnTransTicket.text=AG.getText("GAME_820","초월"),this.btnTransTicket.iconText=this.getTransTicketCostStr(); + const i=this.isTransTicketActivated(); + this.btnTransTicket.activated=!0,this.btnTransTicket.color=i?kU.GREEN:kU.GRAY} + } + updateTransMaterials(){ + if(!this.vo)return; + const i=vx.getInstance(),s=this.vo.trans,e=s+1; + if(s>=this.vo.maxTrans)for(let n=0; + n<t.MATERIAL_SLOT_COUNT; + n++)this.materialSatisfied[n]=!1,this.materialIcons[n].visible=!1,this.materialCountLabels[n].visible=!1; + else{ + const s=this.vo.getBookVo().getTransMaterials(e),n=new Map; + "roster"===this.mode&&0===this.vo.trans&&n.set(this.vo.kindNum,1); + for(let e=0; + e<t.MATERIAL_SLOT_COUNT; + e++){ + const t=s[e],h=this.materialIcons[e],r=this.materialCountLabels[e]; + if(t&&t>0){ + h.setDataWithKindNum(t),h.visible=!0; + const s=i.getOwnedUnitCount(t,0),o=n.get(t)??0,a=s>o&&s>=this.transMode; + a&&n.set(t,o+this.transMode),this.materialSatisfied[e]=a,h.alpha=a?1:.5,r.text=`${ + s} + /${ + this.transMode} + `,r.visible=!0} + else this.materialSatisfied[e]=!1,h.visible=!1,r.visible=!1} + }
- async onDoTransClick(){ + onTransModeClick(t=1){ + this.transMode=t,10==this.transMode?(this.btnTransMode1.activated=!1,this.btnTransMode10.activated=!0):(this.btnTransMode1.activated=!0,this.btnTransMode10.activated=!1),this.updateTransInfo(),this.updateLayoutTransMaterials()} + async onTransClick(){
- if(!s)return void pV.getInstance().showMessage(yG.getText("GAME_830","재료 영웅이 부족합니다")); - const n=vx.getTransHonorCoinCost(i); + if(!s){ + const i=[]; + for(let r=0; + r<t.MATERIAL_SLOT_COUNT; + r++)e[r]&&e[r]>0&&(this.materialSatisfied[r]||i.push(e[r])); + let s=!0; + const n=[],h=[]; + for(let t=0; + t<i.length; + ++t){ + const e=vx.getInstance(),r=i[t],o=e.bookList.find(t=>t.evolKindNum===r); + o&&(e.getOwnedUnitCount(o.kindNum,0)<this.transMode?s=!1:(n.push(e.getOwnedUnitCount(r,0)),h.push(o.kindNum)))} + if(s){ + const t=this.vo.trans+1,i=this.getTransHonorCoinCost(t); + if(_L.honorCoin<i)return s=!1,void vV.getInstance().showMessage(AG.getText("GAME_194","명예코인이 부족합니다"))} + if(s){ + const t=X9.getInstance(); + t.onEvolved=()=>{ + this.onEvolveMaterialMultiConfirm()} + ,t.setData(n,h,this.transMode,this.vo.trans+1),t.show()} + else vV.getInstance().showMessage(AG.getText("GAME_830","재료 영웅이 부족합니다")); + return} + const n=this.getTransHonorCoinCost(i);
- this.runTranscend()} + this.runTranscend(!1,this.transMode)}
- async runTranscend(){ + onEvolveMaterialMultiConfirm(){ + "roster"===this.mode&&(this.showInRoster(this.vo.evolKindNum,this.vo.trans),W9.getInstance().setData()),n9.getInstance().validateTeam(),this.updateTransMaterials(); + const t=this.vo.trans+1,i=this.getTransHonorCoinCost(t); + _L.honorCoin<i?vV.getInstance().showMessage(AG.getText("GAME_194","명예코인이 부족합니다")):this.runTranscend(!1,this.transMode)} + async onTransTicketClick(){ + if(!this.vo||this.vo.trans>=this.vo.maxTrans)return; + if(!this.isTransTicketActivated())return void vV.getInstance().showMessage(AG.getText("GAME_1231","초월권이 부족하여 초월할 수 없습니다.")); + if(this.requestPending)return; + const{ + TransConfirmPopup:t} + =await Jt(async()=>{ + const{ + TransConfirmPopup:t} + =await Promise.resolve().then(()=>Zoi); + return{ + TransConfirmPopup:t} + } + ,void 0); + t.getInstance().showWithTicket(this.getTransTicketCostStr(),()=>{ + this.runTranscend(!0,this.transMode)} + )} + async runTranscend(t=!1,i=1){
- const t="roster"===this.mode,i=t?await iD.getInstance().hero.transcendOwned(this.vo.kindNum,this.vo.trans,!0):await iD.getInstance().hero.transcend(this.vo.id,void 0,!0); + const s="roster"===this.mode,e=s?await hD.getInstance().hero.transcendOwned(this.vo.kindNum,this.vo.trans,i,t,!0):await hD.getInstance().hero.transcend(this.vo.id,void 0,t,!0);
- let s=(null==i?void 0:i.lerrorMessage)??""; - return"HERO_TRANSCEND_INSUFFICIENT_MATERIAL"===t?s=yG.getText("GAME_830","재료 영웅이 부족합니다"):"HERO_TRANSCEND_INSUFFICIENT_COIN"===t||"INSUFFICIENT_HONOR_COIN"===t?s=yG.getText("GAME_194","명예코인이 부족합니다"):"HERO_INVALID_TRANSCEND"===t?s="초월할 수 없는 영웅입니다.":"HERO_MAX_TRANSCEND"===t?s="이미 최대 초월 단계입니다.":s||(s=yG.getText("COMMON_77","네트워크 오류가 발생하였습니다.")),void pV.getInstance().showMessage(s)} - if(wL.setUserInfo(i.body),DV.getInstance().updateAll(),DV.getInstance().updateHonor(),h9.getInstance().setData(),h7.getInstance().validateTeam(),t)this.vo.trans+=1,H7.getInstance().setData(),j7.getInstance().update(); + let i=(null==e?void 0:e.errorMessage)??""; + return"HERO_TRANSCEND_INSUFFICIENT_MATERIAL"===t?i=AG.getText("GAME_830","재료 영웅이 부족합니다"):"HERO_TRANSCEND_INSUFFICIENT_COIN"===t||"INSUFFICIENT_HONOR_COIN"===t?i=AG.getText("GAME_194","명예코인이 부족합니다"):"HERO_INVALID_TRANSCEND"===t?i="초월할 수 없는 영웅입니다.":"HERO_MAX_TRANSCEND"===t?i="이미 최대 초월 단계입니다.":"INSUFFICIENT_TICKET"===t?i=AG.getText("GAME_1243","초월권이 부족합니다."):i||(i=AG.getText("COMMON_77","네트워크 오류가 발생하였습니다.")),void vV.getInstance().showMessage(i)} + if(_L.setUserInfo(e.body),Z6.getInstance().setData(e.body.transTicket),UV.getInstance().updateAll(),UV.getInstance().updateHonor(),att.getInstance().setData(),n9.getInstance().validateTeam(),s)this.vo.trans+=1,W9.getInstance().setData(),$9.getInstance().update();
- this.updateHeroInfo(this.vo,this.mode),this.updateTransInfo(),this.updateLayout()} + this.updateHeroInfo(this.vo,this.mode),this.updateTransInfo(),this.applyTabButtonVisibility(),this.updateLayout()}
- if(!this.materialSatisfied[t]){ - if(r&&o>=1){ + if(this.materialSatisfied[t])return; + if(r&&o>=this.transMode){
- this.evolveMaterialPreHero(r.kindNum)} - )} + this.evolveMaterialPreHero(r.kindNum,this.transMode)} + ,this.transMode)} + const a=this.transMode>1?`[ ${ + h} + (x${ + this.transMode} + ) ]`:h;
- } - async evolveMaterialPreHero(t){ - if(!this.requestPending){ + async evolveMaterialPreHero(t,i=1){ + const s=vx.getInstance().getBookVO(t); + if(!s)return; + const e=V9[s.grade]??0; + if(_L.gem<e*i)vV.getInstance().showMessage(AG.getText("COMMON_352","보석이 부족합니다.")); + else if(!this.requestPending){
- const i=await iD.getInstance().hero.evolveOwned(t,0,!0); - if(!i||!1===i.success)return void pV.getInstance().showMessage(yG.getText("COMMON_77","네트워크 오류가 발생하였습니다.")); + const s=await hD.getInstance().hero.evolveOwned(`${ + t} + -${ + i} + `,!0); + if(!1===s.success)return void("HERO_NOT_FOUND"==s.error?vV.getInstance().showMessage(AG.getText("GAME_830","재료 영웅이 부족합니다")):vV.getInstance().showError(s));
- onEvolveClick(){ + onEvolveClick(t=1){
- ,t.show(this.vo,"roster"===this.mode)} + ,i.setData(this.vo,"roster"===this.mode,t),i.show()} + onEvolveMassClick(){ + const i=t.MASS_EVOLVE_COUNT; + this.onEvolveClick(i)}
- if(this.requestPending=!1,this.tapDetail.text=yG.getText("GAME_83","상세"),this.tapSkill.text=yG.getText("GAME_84","스킬"),this.resetEnhance(),this.multiEnhanceContainer.visible=!1,this.updateHeroInfo(i,s),this.btnEnhance.visible=!0,this.btnSell.visible=!0,this.btnSell.activated=!0,"book"==this.mode||"shop"==this.mode||"guild"==this.mode){ - if(this.btnEnhance.visible=!1,this.btnEvolve.visible=!1,this.btnSell.visible=!1,this.btnHire.visible=!1,"guild"==this.mode){ + if(this.transMode=1,this.requestPending=!1,this.tapDetail.text=AG.getText("GAME_83","상세"),this.tapSkill.text=AG.getText("GAME_84","스킬"),this.resetEnhance(),this.multiEnhanceContainer.visible=!1,this.updateHeroInfo(i,s),this.btnEnhance.visible=!0,this.btnSell.visible=!0,this.btnSell.activated=!0,this.applyModeButtonVisibility(),"book"==this.mode||"shop"==this.mode||"guild"==this.mode){ + if("guild"==this.mode){
- else"roster"==this.mode?(this.btnEnhance.visible=!1,this.btnSell.visible=!1,this.btnEvolve.visible=this.vo.evolKindNum>0&&0===this.vo.evolStage,this.btnHire.text=yG.getText("GAME_64","배치"),this.btnHire.visible=!0):(this.btnEnhance.visible=!0,this.btnSell.visible=!0,this.btnHire.visible=!1);
- `,this.lblTribleDesc.text=this.getTribeTraitDesc(t.tribe,t.evolStage>0),this.btnEnhance.text=yG.getText("GAME_66","강화"),this.btnEvolve.text=yG.getText("GAME_67","진화"),this.btnSell.text=yG.getText("GAME_68","해고"); + `,this.lblTribleDesc.text=this.getTribeTraitDesc(i.tribe,i.evolStage>0),this.btnEnhance.text=AG.getText("GAME_66","강화"),this.btnEvolve.text=AG.getText("GAME_67","진화"),this.btnEvolveMass.text=`${ + AG.getText("GAME_67","진화")} + (x10)`,this.btnSell.text=AG.getText("GAME_68","해고");
- this.btnEvolve.iconText=String(n),this.btnEvolve.visible=-1!=t.evolKindNum; + this.btnEvolve.iconText=String(h); + const r=t.MASS_EVOLVE_COUNT; + this.btnEvolveMass.iconText=String(h*r);
- this.starIcon.x=this.lblName.x+this.lblName.width+5,this.starIcon.y=this.lblName.y+.5*(this.lblName.height-this.starIcon.height),this.tapDetail.x=9,this.tapDetail.y=this.icon.y+this.icon.height+4,this.tapSkill.x=this.tapDetail.x+this.tapDetail.width+2,this.tapSkill.y=this.tapDetail.y,this.tapTrans.x=this.tapSkill.x+this.tapSkill.width+2,this.tapTrans.y=this.tapDetail.y,this.transBg.x=this.icon.x,this.transBg.y=this.tapSkill.y+this.tapSkill.height+5,this.transPageNav.x=this.icon.x,this.transPageNav.y=this.transBg.y+this.transBg.height+8,this.lblTransMaxTop.x=this.transBg.x+.5*(this.transBg.width-this.lblTransMaxTop.width),this.lblTransMaxTop.y=this.transBg.y+.5*(this.transBg.height-this.lblTransMaxTop.height),this.lblTransMaxBottom.x=this.transPageNav.x+.5*(this.transBg.width-this.lblTransMaxBottom.width),this.lblTransMaxBottom.y=this.transPageNav.y+Math.max(280,.6*this.transPageNav.height),this.lblTransStepTitle.x=this.transBg.x+25,this.lblTransStepTitle.y=this.transBg.y+12; + this.starIcon.x=this.lblName.x+this.lblName.width+5,this.starIcon.y=this.lblName.y+.5*(this.lblName.height-this.starIcon.height),this.tapDetail.x=9,this.tapDetail.y=this.icon.y+this.icon.height+4,this.tapSkill.x=this.tapDetail.x+this.tapDetail.width+2,this.tapSkill.y=this.tapDetail.y,this.tapTrans.x=this.tapSkill.x+this.tapSkill.width+2,this.tapTrans.y=this.tapDetail.y,this.transBg.x=this.icon.x,this.transBg.y=this.tapSkill.y+this.tapSkill.height+5,this.transPageNav.x=this.icon.x,this.transPageNav.y=this.transBg.y+this.transBg.height+8,this.btnTransMode10.x=this.transBg.x+this.transBg.width-this.btnTransMode10.width-10,this.btnTransMode10.y=this.transBg.y+15,this.btnTransMode1.x=this.btnTransMode10.x-this.btnTransMode1.width-5,this.btnTransMode1.y=this.btnTransMode10.y,this.lblTransMaxTop.x=this.transBg.x+.5*(this.transBg.width-this.lblTransMaxTop.width),this.lblTransMaxTop.y=this.transBg.y+.5*(this.transBg.height-this.lblTransMaxTop.height),this.lblTransMaxBottom.x=this.transPageNav.x+.5*(this.transBg.width-this.lblTransMaxBottom.width),this.lblTransMaxBottom.y=this.transPageNav.y+Math.max(280,.6*this.transPageNav.height),this.lblTransStepTitle.x=this.transBg.x+25,this.lblTransStepTitle.y=this.transBg.y+12,this.updateLayoutTransMaterials(),this.materialContainer.x=this.transBg.x,this.materialContainer.y=this.lblTransStepTitle.y+this.lblTransStepTitle.height+16,this.propertyContainer.x=this.bg.width-this.propertyContainer.width-20,this.propertyContainer.y=52,this.basicPropertyBg.x=this.icon.x,this.basicPropertyBg.y=this.tapSkill.y+this.tapSkill.height+5,this.basicPropertyBg2.x=this.icon.x,this.basicPropertyBg2.y=this.basicPropertyBg.y+this.basicPropertyBg.height+8,this.basicPropertyContainer.x=this.basicPropertyBg.x+25,this.basicPropertyContainer.y=this.basicPropertyBg.y+15,this.skillContainer.y=this.tapSkill.y+this.tapSkill.height+5,this.draggableContainer.x=this.basicPropertyContainer.x,this.lblNormalAttackDesc.y=this.lblNormalAttackTitle.y+this.lblNormalAttackTitle.height+0,this.lblSpecialAttackTitle.y=this.lblNormalAttackDesc.y+this.lblNormalAttackDesc.height+20,this.lblSpecialAttackDesc.y=this.lblSpecialAttackTitle.y+this.lblSpecialAttackTitle.height+0,this.lblTribleTitle.y=this.lblSpecialAttackDesc.y+this.lblSpecialAttackDesc.height+20,this.lblTribleDesc.y=this.lblTribleTitle.y+this.lblTribleTitle.height+0,this.lblUniqueTitle.y=this.lblTribleDesc.y+this.lblTribleDesc.height+20,this.lblUniqueDesc.y=this.lblUniqueTitle.y+this.lblUniqueTitle.height+0; + const t=this.bg.height-this.btnEnhance.height-18,i=this.btnEvolve.visible?this.btnEvolve.width+20:0,s=this.btnEnhance.width+20+i+this.btnSell.width,e=.5*(this.width-s); + this.btnEnhance.x=e,this.btnEnhance.y=t,this.btnEvolve.x=this.btnEnhance.x+this.btnEnhance.width+20,this.btnEvolve.y=t,this.btnSell.x=this.btnEvolve.x+i,this.btnSell.y=t; + let n=16; + const h=[this.btnHire]; + if(this.btnHire.visible&&this.btnEvolve.visible&&(h.unshift(this.btnEvolve),this.btnEvolveMass.visible&&(n=10,h.splice(1,0,this.btnEvolveMass))),this.alignButtons(h,n,t),this.btnTrans.visible){ + const i=[this.btnTrans]; + this.btnTransTicket.visible&&i.push(this.btnTransTicket),this.alignButtons(i,n,t)} + if(this.multiEnhanceContainer.visible){ + const t=5; + this.btn10Enhance.x=this.btnEnhance.x,this.btn10Enhance.y=this.btnEnhance.y-this.btn10Enhance.height-t,this.btn100Enhance.x=this.btnEnhance.x,this.btn100Enhance.y=this.btn10Enhance.y-this.btn100Enhance.height-t} + const r=this.draggableContainer.y-this.basicPropertyBg2.y; + this.draggableBg.height=this.lblUniqueDesc.y+this.lblUniqueDesc.height+r} + updateLayoutTransMaterials(){
- this.materialContainer.x=this.transBg.x,this.materialContainer.y=this.lblTransStepTitle.y+this.lblTransStepTitle.height+16,this.propertyContainer.x=this.bg.width-this.propertyContainer.width-20,this.propertyContainer.y=52,this.basicPropertyBg.x=this.icon.x,this.basicPropertyBg.y=this.tapSkill.y+this.tapSkill.height+5,this.basicPropertyBg2.x=this.icon.x,this.basicPropertyBg2.y=this.basicPropertyBg.y+this.basicPropertyBg.height+8,this.basicPropertyContainer.x=this.basicPropertyBg.x+25,this.basicPropertyContainer.y=this.basicPropertyBg.y+15,this.skillContainer.y=this.tapSkill.y+this.tapSkill.height+5,this.draggableContainer.x=this.basicPropertyContainer.x,this.lblNormalAttackDesc.y=this.lblNormalAttackTitle.y+this.lblNormalAttackTitle.height+0,this.lblSpecialAttackTitle.y=this.lblNormalAttackDesc.y+this.lblNormalAttackDesc.height+20,this.lblSpecialAttackDesc.y=this.lblSpecialAttackTitle.y+this.lblSpecialAttackTitle.height+0,this.lblTribleTitle.y=this.lblSpecialAttackDesc.y+this.lblSpecialAttackDesc.height+20,this.lblTribleDesc.y=this.lblTribleTitle.y+this.lblTribleTitle.height+0,this.lblUniqueTitle.y=this.lblTribleDesc.y+this.lblTribleDesc.height+20,this.lblUniqueDesc.y=this.lblUniqueTitle.y+this.lblUniqueTitle.height+0; - const e=this.bg.height-this.btnEnhance.height-18,n=this.btnEvolve.visible?this.btnEvolve.width+20:0,h=this.btnEnhance.width+20+n+this.btnSell.width,r=.5*(this.width-h); - if(this.btnEnhance.x=r,this.btnEnhance.y=e,this.btnEvolve.x=this.btnEnhance.x+this.btnEnhance.width+20,this.btnEvolve.y=e,this.btnSell.x=this.btnEvolve.x+n,this.btnSell.y=e,this.btnHire.visible&&this.btnEvolve.visible){ - const t=16,i=this.btnEvolve.width+t+this.btnHire.width; - this.btnEvolve.x=.5*(this.width-i),this.btnEvolve.y=e,this.btnHire.x=this.btnEvolve.x+this.btnEvolve.width+t,this.btnHire.y=e} - else this.btnHire.x=.5*(this.width-this.btnHire.width),this.btnHire.y=e; - if(this.btnDoTrans.visible&&(this.btnDoTrans.x=.5*(this.width-this.btnDoTrans.width),this.btnDoTrans.y=e),this.multiEnhanceContainer.visible){ - const t=5; - this.btn10Enhance.x=this.btnEnhance.x,this.btn10Enhance.y=this.btnEnhance.y-this.btn10Enhance.height-t,this.btn100Enhance.x=this.btnEnhance.x,this.btn100Enhance.y=this.btn10Enhance.y-this.btn100Enhance.height-t} - const o=this.draggableContainer.y-this.basicPropertyBg2.y; - this.draggableBg.height=this.lblUniqueDesc.y+this.lblUniqueDesc.height+o} + } + alignButtons(t,i,s){ + if(!t||0==t.length)return; + let e=0; + const n=t.length; + for(let r=0; + r<n; + ++r)r>0&&(e+=i),e+=t[r].width; + let h=.5*(this.width-e); + for(let r=0; + r<n; + ++r)t[r].x=h,h+=t[r].width+i,t[r].y=s}
+ getTransHonorCoinCost(t){ + return vx.getTransHonorCoinCost(t)*this.transMode} + getTransTicket(){ + return Z6.getInstance().getHeroTransTicket(5)} + getTransTicketCostStr(){ + return`${ + this.getTransTicket()} + /${ + (this.vo.trans+1)*this.transMode} + `} + isTransTicketActivated(){ + return!(this.getTransTicket()<(this.vo.trans+1)*this.transMode)}
- Kt(X7,"HeroDetailPopup"),zt(X7,"_instance"),zt(X7,"ENHANCE_DEBOUNCE_DELAY",3e3),zt(X7,"MATERIAL_SLOT_COUNT",5),zt(X7,"TRANS_BONUS",[{ + Kt(Q9,"HeroDetailPopup"),zt(Q9,"_instance"),zt(Q9,"POPUP_MIN_HEIGHT",950),zt(Q9,"POPUP_GUILD_MIN_HEIGHT",1080),zt(Q9,"MASS_EVOLVE_COUNT",10),zt(Q9,"MASS_TRANSCEND_COUNT",10),zt(Q9,"ENHANCE_DEBOUNCE_DELAY",3e3),zt(Q9,"MATERIAL_SLOT_COUNT",5),zt(Q9,"TRANS_BONUS",[{
GolemStone 1 hunks, 166 statements
+ const MQ=class t extends YX{ + constructor(){ + super(...arguments),zt(this,"landed",!1),zt(this,"landedFrame",0),zt(this,"landedHold",0),zt(this,"spawnX",0),zt(this,"impactY",0),zt(this,"groundMode",!1),zt(this,"groundY",0),zt(this,"aoeRadius",0)} + initializeTextureName(){ + this.className=qX.GolemStone,this.sheetName="RaidBattle",this.textureName="GolemStone"} + initializeData(){ + this.hitClassName="",this.g=0,this.speed=36,this.flyEnd=t.FLY_FRAME_COUNT,this.incFrame=1,this.minT=5,this.maxT=40,this.orientToPath=!1,this.weaponScale=t.WEAPON_SCALE} + setData(t=1){ + super.setData(t),this.landed=!1,this.landedFrame=0,this.landedHold=0,this.groundMode=!1,this.groundY=0,this.aoeRadius=0} + setGroundTarget(t,i){ + this.groundMode=!0,this.groundY=t,this.aoeRadius=i} + play(){ + if(this.spawnX=this.x,this.impactY=this.groundMode?this.groundY:this.target?this.target.y:this.y+800,this.groundMode)return this.visible=!0,this.removed=!1,void(this.battleController&&this.battleController.addWeapon(this)); + super.play()} + execute(){ + if(this.removed)return; + if(this.landed)return void this.updateLanded(); + if(this.delay>0)return this.delay--,void(this.visible=!1); + this.visible=!0,this.x=this.spawnX,this.y+=t.FALL_SPEED,this.rotation=t.FALL_ROTATION,this.currentFrame+=this.incFrame,this.currentFrame>=this.flyEnd&&(this.currentFrame=0),this.sp&&(this.sp.texture=this.textures[Math.floor(this.currentFrame)]); + const i=!this.groundMode&&this.target&&!this.target.removed&&this.target.isAlive?this.target.y:this.impactY; + this.y>=i&&(this.y=i,this.onHit())} + onHit(){ + this.aoeRadius>0?this.applyAoe():this.owner&&this.target&&this.target.isAlive&&(this.owner.doDamage(this.target,this.damagePercent,!0),this.target.isAlive&&!this.target.isImmovable&&this.knockAwayFrom(this.target,this.owner.x,this.owner.y)),this.landed=!0,this.landedFrame=t.FLY_FRAME_COUNT,this.landedHold=0,this.vx=0,this.vy=0,this.sp&&(this.sp.texture=this.textures[t.FLY_FRAME_COUNT])} + applyAoe(){ + var t; + const i=null==(t=this.owner)?void 0:t.enemyList; + if(!this.owner||!i)return; + const s=this.owner,e=this.aoeRadius*this.aoeRadius; + for(const n of i){ + if(!n.isAlive||n.removed||n.isUntagetable)continue; + const t=n.x-this.x,i=n.y-this.y; + t*t+i*i>e||s.tryAtt4StoneHit&&!s.tryAtt4StoneHit(n)||(this.owner.doDamage(n,this.damagePercent,!0),n.isAlive&&!n.isImmovable&&this.knockAwayFrom(n,this.x,this.y))} + } + knockAwayFrom(i,s,e){ + let n=i.x-s,h=i.y-e,r=Math.sqrt(n*n+h*h); + r<.01&&(n=1,h=0,r=1); + const o=this.random.range(t.KNOCKBACK_DIST_MIN,t.KNOCKBACK_DIST_MAX)/t.KNOCKBACK_DURATION; + i.knockBack(n/r*o,h/r*o,t.KNOCKBACK_DURATION)} + updateLanded(){ + const i=this.textures.length-1; + if(this.landedFrame>=i)return this.landedFrame=i,this.sp&&(this.sp.texture=this.textures[i]),void(++this.landedHold>=t.LANDED_HOLD_FRAMES&&this.remove()); + this.landedFrame+=t.LANDED_FRAME_SPEED; + const s=Math.min(i,Math.floor(this.landedFrame)); + this.sp&&(this.sp.texture=this.textures[s])} + } + ; + Kt(MQ,"GolemStone"),zt(MQ,"FLY_FRAME_COUNT",3),zt(MQ,"LANDED_FRAME_SPEED",.6),zt(MQ,"LANDED_HOLD_FRAMES",36),zt(MQ,"WEAPON_SCALE",.7),zt(MQ,"KNOCKBACK_DIST_MIN",32),zt(MQ,"KNOCKBACK_DIST_MAX",60),zt(MQ,"KNOCKBACK_DURATION",16),zt(MQ,"FALL_SPEED",27),zt(MQ,"FALL_ROTATION",Math.PI/2); + let EQ=MQ; + const AQ=class t extends gQ{ + constructor(){ + super(...arguments),zt(this,"struck",!1)} + initializeTextureName(){ + this.className=qX.BerialLightning} + initializeData(){ + this.radius=t.STRIKE_RADIUS,this.durationFrames=t.DURATION_FRAMES,this.damagePercent=1,this.visualConfig={ + type:"spine",spineKey:"raids/raid1/lightning_area",animationName:"lightning",layer:"effect",scale:t.VISUAL_SCALE,loop:!1} + } + setData(i=1){ + super.setData(i),this.struck=!1,this.setArea(t.STRIKE_RADIUS,t.DURATION_FRAMES)} + affectEnemy(t){ + } + onAreaTick(i){ + this.struck||i<t.STRIKE_FRAME||(this.struck=!0,this.damageInRadius())} + damageInRadius(){ + if(this.owner&&this.owner.isAlive)for(const t of this.owner.enemyList)this.isEnemyInArea(t)&&this.owner.doDamage(t,this.damagePercent,!0)} + } + ; + Kt(AQ,"BerialLightning"),zt(AQ,"DURATION_FRAMES",24),zt(AQ,"STRIKE_FRAME",5),zt(AQ,"STRIKE_RADIUS",70),zt(AQ,"VISUAL_SCALE",.8); + let SQ=AQ; + const TQ=class t extends gQ{ + initializeTextureName(){ + this.className=qX.BerialLightningArea} + initializeData(){ + this.radiusX=t.RADIUS_X,this.radiusY=t.RADIUS_Y,this.radius=Math.max(this.radiusX,this.radiusY),this.durationFrames=t.DURATION_FRAMES,this.damagePercent=1,this.visualConfig={ + type:"spine",spineKey:"raids/raid1/lightning_area",animationName:"magic_area",layer:"bottom",scale:t.VISUAL_SCALE,loop:!0} + } + setData(i=1){ + super.setData(i),this.setEllipseArea(t.RADIUS_X,t.RADIUS_Y,t.DURATION_FRAMES)} + affectEnemy(t){ + } + onAreaTick(i){ + i%t.BOLT_INTERVAL===1&&this.fireOneBolt()} + fireOneBolt(){ + if(!this.owner)return; + const t=this.radiusX??this.radius,i=this.radiusY??this.radius,s=this.random.next()*Math.PI*2,e=Math.sqrt(this.random.next()); + this.spawnBolt(this.x+Math.cos(s)*t*e,this.y+Math.sin(s)*i*e)} + spawnBolt(i,s){ + const e=PQ.getInstance().getWeapon(qX.BerialLightning); + e.owner=this.owner,e.x=i,e.y=s,e.setBattleController(this.battleController),e.setData(this.random.range(t.BOLT_DAMAGE_MIN,t.BOLT_DAMAGE_MAX)),e.play()} + } + ; + Kt(TQ,"BerialLightningArea"),zt(TQ,"DURATION_FRAMES",1200),zt(TQ,"RADIUS_X",126),zt(TQ,"RADIUS_Y",77),zt(TQ,"BOLT_INTERVAL",30),zt(TQ,"BOLT_DAMAGE_MIN",.8),zt(TQ,"BOLT_DAMAGE_MAX",1.5),zt(TQ,"VISUAL_SCALE",1.12); + let CQ=TQ; + const kQ=class t extends YX{ + constructor(){ + super(...arguments),zt(this,"age",0)} + initializeTextureName(){ + this.className=qX.BerialFire,this.sheetName="RaidBattle",this.textureName="BerialFire"} + initializeData(){ + this.hitClassName="",this.g=0,this.speed=t.FIRE_SPEED,this.flyEnd=t.FLY_FRAME_COUNT,this.incFrame=1,this.orientToPath=!0,this.weaponScale=t.FIRE_SCALE} + setData(t=1){ + super.setData(t),this.age=0,this.vx=0,this.vy=0,this.target=null} + fireAtTarget(i){ + this.target=i; + const s=i.getHitCenter(),e=s.x-this.x,n=s.y-this.y,h=Math.sqrt(e*e+n*n)||1; + this.vx=e/h*t.FIRE_SPEED,this.vy=n/h*t.FIRE_SPEED,this.rotation=Math.atan2(this.vy,this.vx),this.age=0,this.visible=!0,this.removed=!1,this.battleController&&this.battleController.addWeapon(this)} + execute(){ + if(this.removed)return; + const i=this.target; + if(i&&i.isAlive&&!i.removed&&!i.isUntagetable){ + const s=i.getHitCenter(),e=s.x-this.x,n=s.y-this.y,h=e*e+n*n; + if(h<=t.HIT_RADIUS*t.HIT_RADIUS)return void this.onHitTarget(i); + const r=Math.sqrt(h); + this.vx=e/r*t.FIRE_SPEED,this.vy=n/r*t.FIRE_SPEED} + if(this.x+=this.vx,this.y+=this.vy,this.currentFrame+=this.incFrame,this.currentFrame>=this.flyEnd&&(this.currentFrame=0),this.sp&&(this.sp.texture=this.textures[Math.floor(this.currentFrame)]),this.orientToPath&&(this.rotation=Math.atan2(this.vy,this.vx)),!i||!i.isAlive||i.removed||i.isUntagetable){ + const t=this.findHitTarget(); + if(t)return void this.onHitTarget(t)} + ++this.age>=t.MAX_LIFE_FRAMES&&this.remove()} + findHitTarget(){ + var i; + const s=null==(i=this.owner)?void 0:i.enemyList; + if(!s)return null; + let e=null,n=t.HIT_RADIUS*t.HIT_RADIUS; + for(const t of s){ + if(!t.isAlive||t.removed||t.isUntagetable)continue; + const i=t.getHitCenter(),s=i.x-this.x,h=i.y-this.y,r=s*s+h*h; + r<=n&&(n=r,e=t)} + return e} + onHitTarget(i){ + if(this.owner&&i.isAlive&&(this.owner.doDamage(i,this.damagePercent,!0),i.isAlive&&!i.isImmovable)){ + const s=Math.sqrt(this.vx*this.vx+this.vy*this.vy)||1,e=this.random.range(t.KNOCKBACK_POWER_MIN,t.KNOCKBACK_POWER_MAX); + i.knockBack(this.vx/s*e,this.vy/s*e,t.KNOCKBACK_DURATION)} + this.displayHitEffect(),this.remove()} + displayHitEffect(){ + const t=zX.getEffect(JK.PhysicalHitEffect); + t.x=this.x,t.y=this.y,t.setBattleController(this.battleController||zii.getInstance()),t.start(10),YG.getInstance().addChild(t)} + } + ; + Kt(kQ,"BerialFire"),zt(kQ,"FLY_FRAME_COUNT",2),zt(kQ,"FIRE_SCALE",.8),zt(kQ,"FIRE_SPEED",11),zt(kQ,"HIT_RADIUS",30),zt(kQ,"MAX_LIFE_FRAMES",100),zt(kQ,"KNOCKBACK_POWER_MIN",3),zt(kQ,"KNOCKBACK_POWER_MAX",6),zt(kQ,"KNOCKBACK_DURATION",12); + let OQ=kQ; + const IQ=class t extends gQ{ + constructor(){ + super(...arguments),zt(this,"hitFrames",t.BREATH1_HITS),zt(this,"struckFrames",new Set)} + initializeTextureName(){ + this.className=qX.SummonDragon} + initializeData(){ + this.radius=t.RADIUS,this.radiusX=t.RADIUS,this.radiusY=t.RADIUS,this.damagePercent=1,this.durationFrames=t.BREATH1_DURATION,this.visualConfig={ + type:"spine",spineKey:"raids/raid1/Summon_dragon",animationName:"dragon_breath_01",layer:"unit",scale:1,loop:!1} + } + setData(t=1){ + super.setData(t),this.struckFrames.clear()} + setBreath(i){ + const s=2===i; + this.durationFrames=s?t.BREATH2_DURATION:t.BREATH1_DURATION,this.hitFrames=s?t.BREATH2_HITS:t.BREATH1_HITS,this.visualConfig={ + type:"spine",spineKey:"raids/raid1/Summon_dragon",animationName:s?"dragon_breath_02":"dragon_breath_01",layer:"unit",scale:1,loop:!1} + } + affectEnemy(t){ + } + onAreaTick(t){ + this.struckFrames.has(t)||this.hitFrames.includes(t)&&(this.struckFrames.add(t),this.dealBreathDamage())} + dealBreathDamage(){ + if(this.owner&&this.owner.isAlive)for(const i of this.owner.enemyList)this.isEnemyInArea(i)&&this.owner.doDamage(i,this.random.range(t.DMG_MIN,t.DMG_MAX),!0)} + } + ; + Kt(IQ,"SummonDragon"),zt(IQ,"RADIUS",150),zt(IQ,"DMG_MIN",.5),zt(IQ,"DMG_MAX",1),zt(IQ,"BREATH1_DURATION",160),zt(IQ,"BREATH1_HITS",[60,80,100,120,140]),zt(IQ,"BREATH2_DURATION",120),zt(IQ,"BREATH2_HITS",[44,60,80,100]); + let xQ=IQ;
PetIcon 3 hunks, 166 statements
- super("UI_Ekkorr","Btn_Delete",1)} - get activated(){ - return this._activated} - set activated(t){ - t!=this._activated&&(this._activated=t,this._activated?this.bg.texture=ZA.getTexture("UI_Ekkorr","Btn_Delete"):this.bg.texture=ZA.getTexture("UI_Ekkorr","Btn_Delete_Gray"))} - } - ; - Kt(Q5,"MailDeleteAllButton"); - let Z5=Q5; - const t3=class t extends Be{ - constructor(i){ - super(),zt(this,"bg"),zt(this,"lbl"),zt(this,"container"),zt(this,"_width",100),zt(this,"_minWidth",100),zt(this,"_height",58),zt(this,"_textSize",19),zt(this,"_activated",!0),zt(this,"_activatedTextColor",16777215),zt(this,"_deactivatedTextColor",10066329),zt(this,"_outlineText",!1),zt(this,"_resizable",!1),zt(this,"_padding",20),zt(this,"_color",t.COLOR_SAND_BROWN),zt(this,"onClick"),zt(this,"redDot"),this.container=new Be,this.addChild(this.container),this.bg=new TM({ - texture:ZA.getTexture("UI_Ekkorr",this._color),leftWidth:40,topHeight:27,rightWidth:40,bottomHeight:29} - ),this.bg.width=this._width,this.bg.height=this._height,this.container.addChild(this.bg); - const s=nD.LABEL_OPTION_NO_DROP_SHADOW; - s.fill=nD.COLOR_WHITE,s.fontSize=this._textSize,this.lbl=new KD(i,s.fill,s),this.container.addChild(this.lbl),this.updateLayout(),this.eventMode="dynamic",this.on("pointerdown",this.onDown,this),this.on("pointerup",this.onUp,this),this.on("pointerupoutside",this.onUp,this),this.on("pointertap",this.onTap,this),this.container.pivot.set(.5*this._width,.5*this._height)} - updateLayout(){ - this._resizable?nD.setLabelWrapWidth(this.lbl,5*this._width):nD.setLabelWrapWidth(this.lbl,this._width),this.lbl.x=.5*(this._width-this.lbl.width),this.lbl.y=.5*(this._height-this.lbl.height),this.container.x=.5*this._width,this.container.y=.5*this._height} - get width(){ - return this._width} - set width(t){ - t!=this._width&&(this._resizable&&t<this._minWidth&&(t=this._minWidth),this._width=t,this.bg.width=this._width,this.container.pivot.set(.5*this._width,.5*this._height),this.updateLayout())} - get minWidth(){ - return this._minWidth} - set minWidth(t){ - t!=this._minWidth&&(this._minWidth=t,this._resizable&&this._width<this._minWidth&&(this.width=this._minWidth))} - get height(){ - return this._height} - set height(t){ - t!=this._height&&(this._height=t,this.bg.height=this._height,this.container.pivot.set(.5*this._width,.5*this._height),this.updateLayout())} - get text(){ - return this.lbl.text} - set text(t){ - this.lbl.text=t,this._resizable&&(this.width=this.lbl.width+2*this._padding),this.updateLayout()} - get textSize(){ - return this._textSize} - set textSize(t){ - t!=this._textSize&&(this._textSize=t,this.lbl.textSize=this._textSize,this.updateLayout())} - get activated(){ - return this._activated} - set activated(t){ - t!=this._activated&&(this._activated=t,this._activated,this.updateTextColor())} - get activatedTextColor(){ - return this._activatedTextColor} - set activatedTextColor(t){ - t!=this._activatedTextColor&&(this._activatedTextColor=t,this.updateTextColor())} - get deactivatedTextColor(){ - return this._deactivatedTextColor} - set deactivatedTextColor(t){ - t!=this._deactivatedTextColor&&(this._deactivatedTextColor=t,this.updateTextColor())} - updateTextColor(){ - 1==this._activated?this.lbl.textColor=this._activatedTextColor:this.lbl.textColor=this._deactivatedTextColor} - get outlineText(){ - return this._outlineText} - set outlineText(t){ - if(t==this._outlineText)return; - this._outlineText=t; - const i=this.lbl.getStyle(); - this._outlineText?(delete i.stroke,i.stroke={ - color:"#000000",width:4,join:"round"} - ):delete i.stroke,this.lbl.setStyle(i),this.updateLayout()} - get resizable(){ - return this._resizable} - set resizable(t){ - t!=this._resizable&&(this._resizable=t,this.width=this.lbl.width+2*this._padding,this.updateLayout())} - getStyle(){ - return this.lbl.getStyle()} - setStyle(t){ - this.lbl.setStyle(t)} - setTexture(t){ - if(t)try{ - this.bg.texture=t.texture,this.bg.leftWidth=t.leftWidth,this.bg.topHeight=t.topHeight,this.bg.rightWidth=t.rightWidth,this.bg.bottomHeight=t.bottomHeight} - catch(i){ - } - } - get color(){ - return this._color} - set color(t){ - if(t!=this._color){ - this._color=t; - try{ - this.bg.texture=ZA.getTexture("UI_Ekkorr",this._color)} - catch(i){ - } - } - } - onDown(t){ - 0!=this._activated&&(this.container.scale=.9)} - onUp(t){ - 0!=this._activated&&(this.container.scale=1)} - onTap(t){ - 0!=this._activated&&(WL.getInstance().playSFX(WL.SFX_NORMAL_CLICK),BL(),this.onClick&&this.onClick())} - showRedDot(){ - this.redDot||(this.redDot=new KL,this.container.addChild(this.redDot)),this.redDot.show(),this.updateRedDot()} - hideRedDot(){ - this.redDot&&this.redDot.hide()} - updateRedDot(){ - this.redDot&&(this.redDot.x=this.bg.x+this.bg.width-this.redDot.width-12,this.redDot.y=this.bg.y-3)} - } - ; - Kt(t3,"CommonButton2"),zt(t3,"COLOR_SAND_BROWN","Btn_Sand_Brown"),zt(t3,"COLOR_ORANGE","Btn_Orange"),zt(t3,"COLOR_GRAY","Btn_Gray"); - let i3=t3; - const s3=class extends i3{ - constructor(t){ - super(t),zt(this,"bgOff"),zt(this,"_selected",!0),this.minWidth=180,this.resizable=!0,this.outlineText=!0,this.bgOff=new TM({ - texture:ZA.getTexture("UI_Ekkorr","Btn_Gray"),leftWidth:40,topHeight:27,rightWidth:40,bottomHeight:29} - ),this.bgOff.width=this._width,this.bgOff.height=this._height,this.container.addChildAt(this.bgOff,0),this.bg.visible=this._selected,this.bgOff.visible=!this._selected} - get selected(){ - return this._selected} - set selected(t){ - t!=this._selected&&(this._selected=t,this._selected?(this.bg.visible=!0,this.bgOff.visible=!1):(this.bg.visible=!1,this.bgOff.visible=!0))} - onTap(t){ - this._selected||super.onTap(t)} - } - ; - Kt(s3,"MailMenuButton"); - let e3=s3; - const n3=class extends iP{ - constructor(){ - super(),this.sp.x=.5*-this.sp.width,this.sp.y=.5*-this.sp.height,this.offsetX=2,this.scale=.5} - getTextures(){ - return ZA.getTextures("Loading","loading_circle_60f_")} - } - ; - Kt(n3,"MailLoading"); - let h3=n3; - const r3=class extends Be{ - constructor(){ - super(),zt(this,"yPrev",0),zt(this,"yHome",0),zt(this,"vy",0),zt(this,"yMax",0),zt(this,"yMin",0),zt(this,"yMouse",0),zt(this,"yOffset",140),zt(this,"min",0),zt(this,"max",0),zt(this,"dragSensorDistance",20),zt(this,"_isDragging",!1),zt(this,"onDragStart",null),zt(this,"onDragEnd",null),this.eventMode="static",this.on("pointerdown",this.onDown,this)} - get isDragging(){ - return this._isDragging} - onDown(t){ - this.min>this.max||(this.yMin=this.min,this.yMax=this.max,this.yPrev=this.yHome=this.yMouse=t.globalY,this.off("pointermove",this.onMove,this),this.on("pointermove",this.onMove,this),this.off("pointerup",this.onUp,this),this.on("pointerup",this.onUp,this),this.off("pointerupoutside",this.onUp,this),this.on("pointerupoutside",this.onUp,this),GM.getInstance().remove(this.onFlickEnter,this),GM.getInstance().add(this.onDragEnter,this))} - onDragEnter(){ - 0==this._isDragging&&Math.abs(this.yMouse-this.yHome)>this.dragSensorDistance&&(this._isDragging=!0,this.onDragStartCallback()),0!=this._isDragging&&(this.vy=this.yMouse-this.yPrev,this.y==this.yMin&&this.vy<0||this.y==this.yMax&&this.vy>0||(this.y+=this.vy,this.y>this.yMax&&(this.y=this.yMax),this.y<this.yMin&&(this.y=this.yMin),this.yPrev=this.yMouse))} - onMove(t){ - this.yMouse=t.globalY} - onUp(t){ - 1==this._isDragging&&(this.vy=2*this.vy,GM.getInstance().add(this.onFlickEnter,this),this._isDragging=!1,this.onDragEndCallback()),GM.getInstance().remove(this.onDragEnter,this),this.off("pointermove",this.onMove,this),this.off("pointerup",this.onUp,this),this.off("pointerupoutside",this.onUp,this)} - onFlickEnter(){ - this.vy*=.98,this.y==this.yMin&&this.vy<0||this.y==this.yMax&&this.vy>0?GM.getInstance().remove(this.onFlickEnter,this):(this.y+=this.vy,this.y>this.yMax&&(this.y=this.yMax),this.y<this.yMin&&(this.y=this.yMin),Math.abs(this.vy)<1&&GM.getInstance().remove(this.onFlickEnter,this))} - onDragStartCallback(){ - this.onDragStart&&this.onDragStart()} - onDragEndCallback(){ - this.onDragEnd&&this.onDragEnd()} - setScroll(t){ - let i=this.max-t; - i<this.min&&(i=this.min),this.y=i} - } - ; - Kt(r3,"DraggableContainer"); - let o3=r3; - const a3=class extends Be{ - constructor(){ - super(),zt(this,"bg"),zt(this,"lbl"),zt(this,"count",0),zt(this,"duration",180),this.bg=new TM({ - texture:ZA.getTexture("UI_Ekkorr","UI_Toast_Bg"),leftWidth:6,topHeight:6,rightWidth:6,bottomHeight:6} - ),this.bg.alpha=.7,this.bg.width=640,this.bg.height=50,this.addChild(this.bg),this.lbl=new KD("Toast",nD.DEFAULT_COLOR),this.lbl.x=.5*(this.bg.width-this.lbl.width),this.lbl.y=25,this.addChild(this.lbl),this.eventMode="none"} - show(t,i,s=nD.DEFAULT_COLOR,e=null,n=!0,h=180,r=.7){ - this.lbl.text=t,nD.setLabelWrapWidth(this.lbl,this.bg.width-10),this.lbl.textColor=s,this.lbl.x=.5*(this.bg.width-this.lbl.width),this.bg.height=this.lbl.height+2*this.lbl.y,this.y=i-this.height,this.duration=h,this.bg.alpha=r,null==e&&(e=$D.getInstance()),e&&e.addChild(this),1==n&&this.startCheckHide(),D2.showItemsInVertical([this])} - hide(){ - this.parent&&this.parent.removeChild(this)} + super(),zt(this,"icon",new We),zt(this,"bg",new We),zt(this,"cover",new We),zt(this,"star",new We),zt(this,"posList",[30,26,24,19,16,13,9]),this.bg.x=3,this.bg.y=3,this.addChild(this.bg),this.icon.x=3,this.icon.y=3,this.addChild(this.icon),this.cover.x=0,this.cover.y=0,this.addChild(this.cover),this.addChild(this.star),this.setEmpty()} + setEmpty(){ + this.bg.texture=ZA.getTexture("UI_PET","HeroFrame_1_Bg"),this.cover.texture=ZA.getTexture("UI_PET","HeroFrame_1"),this.icon.visible=!1,this.star.visible=!1} + setPet(t,i){ + this.icon.visible=!0,this.star.visible=!0,this.icon.alpha=1,this.icon.tint=16777215,this.icon.texture=ZA.getTexture("UI_PET",`UI_PET${ + t} + `),this.icon.width=this.icon.height=this.cover.width-6,this.icon.x=3,this.icon.y=2; + const s=Math.max(1,Math.min(i,5)); + this.star.texture=ZA.getTextures("UI_PET","UI_UNIT_RARE")[s-1],this.star.x=this.posList[s-1],this.star.y=this.bg.height-this.star.height,this.bg.texture=ZA.getTexture("UI_PET",`HeroFrame_${ + s} + _Bg`),this.cover.texture=ZA.getTexture("UI_PET",`HeroFrame_${ + s} + `)} + setInactive(t){ + this.icon.visible=!0,this.star.visible=!1,this.icon.texture=ZA.getTexture("UI_PET",`UI_PET${ + t} + `),this.icon.width=this.icon.height=this.cover.width-6,this.icon.x=3,this.icon.y=2,this.icon.alpha=.9,this.icon.tint=11184810,this.bg.texture=ZA.getTexture("UI_PET","HeroFrame_1_Bg"),this.cover.texture=ZA.getTexture("UI_PET","HeroFrame_1")}
- startCheckHide(){ - this.count=0,GM.getInstance().add(this.checkHide,this)} - checkHide(){ - ++this.count>this.duration&&(this.count=0,this.count=0,this.hide(),GM.getInstance().remove(this.checkHide,this))} + showStar(){ + this.star.visible=!0} + hideStar(){ + this.star.visible=!1}
- Kt(a3,"BaseToast"); + Kt(a3,"PetIcon");
DialogueVO 1 hunks, 100 statements
- const y7t=class{ - constructor(){ - zt(this,"kindNum",0),zt(this,"wave",0),zt(this,"order",0),zt(this,"position",1),zt(this,"text",""),zt(this,"code",""),zt(this,"maxWave",-1),zt(this,"repeat",9999)} - getTextKey(){ - return`DIALOGUE_TEXT_${ - this.kindNum} - `} - } - ; - Kt(y7t,"DialogueVO"); - let _7t=y7t; - const M7t=class t{ - constructor(){ - zt(this,"list",[]),zt(this,"waveMap",new Map),zt(this,"playCount",{ - } - ),zt(this,"playCountLoaded",!1)} - static getInstance(){ - return null==this.instance&&(this.instance=new t),this.instance} - setBookData(t){ - if(this.list=[],this.waveMap.clear(),t){ - for(let i=0; - i<t.length; - i++){ - const s=t[i],e=new _7t; - e.kindNum=Number(s.kindNum),e.wave=Number(s.wave),e.order=Number(s.order),e.position=Number(s.position)||1,e.text=s.text??"",e.code=s.code??"",e.maxWave=Number(s.maxWave)||-1,e.repeat=Number(s.repeat)||9999,this.list.push(e); - let n=this.waveMap.get(e.wave); - n||(n=[],this.waveMap.set(e.wave,n)),n.push(e)} - for(const t of this.waveMap.values())t.sort((t,i)=>t.order-i.order); - this.loadPlayCount()} - } - async loadPlayCount(){ - if(this.playCountLoaded)return; - const i=await $A.getData(t.LOCAL_KEY); - this.playCount=i??{ - } - ,this.playCountLoaded=!0} - savePlayCount(){ - $A.saveData(t.LOCAL_KEY,this.playCount)} - async getByWaveAsync(t){ - return await this.loadPlayCount(),this.getByWave(t)} - getByWave(t){ - const i=this.waveMap.get(t)??[],s=wL.maxWave,e=[]; - let n=!1; - for(const h of i)if(!(h.maxWave>0&&s<h.maxWave)){ - if(h.repeat<999){ - const t=this.playCount[h.kindNum]??0; - if(t>=h.repeat)continue; - this.playCount[h.kindNum]=t+1,n=!0} - e.push(h)} - return n&&this.savePlayCount(),e} - hasDialogue(t){ - return this.waveMap.has(t)} - } - ; - Kt(M7t,"DialogueDataManager"),zt(M7t,"instance"),zt(M7t,"LOCAL_KEY",$A.KEY_DIALOGUE_COUNT); - let E7t=M7t; - const A7t=class extends aS{ - constructor(){ - super(),zt(this,"blocker"),zt(this,"allowRect"),zt(this,"highlightBorder"),zt(this,"dimParts",[]),this.createUI()} - createUI(){ - for(let t=0; - t<4; - t++){ - const t=new Gf; - t.alpha=.5,t.rect(0,0,1,1).fill(0),this.dimParts.push(t),this.addChild(t)} - this.blocker=new Gf,this.blocker.rect(0,0,640,KA.stageHeight).fill(0),this.blocker.alpha=0,this.blocker.eventMode="static",this.addChild(this.blocker),this.highlightBorder=new Gf,this.addChild(this.highlightBorder),this.allowRect=new Pi(0,0,0,0),this.setBlockerEnabled(!1)} - setClickArea(t,i,s,e){ - this.allowRect=new Pi(t,i,s,e),this.updateDim(),this.blocker.hitArea={ - contains:Kt((t,i)=>!this.allowRect.contains(t,i),"contains")} - ,this.setBlockerEnabled(!0)} - setBlockerEnabled(t){ - this.blocker.eventMode=t?"static":"none"; - for(const i of this.dimParts)i.visible=t; - this.highlightBorder.visible=t} - updateDim(){ - const t=KA.stageHeight,{ - x:i,y:s,width:e,height:n} - =this.allowRect; - this.dimParts[0].clear().rect(0,0,640,s).fill(0),this.dimParts[1].clear().rect(0,s,i,n).fill(0),this.dimParts[2].clear().rect(i+e,s,640-(i+e),n).fill(0),this.dimParts[3].clear().rect(0,s+n,640,t-(s+n)).fill(0),this.highlightBorder.clear().rect(i,s,e,n).stroke({ - color:16776960,width:3} - )} - } - ; - Kt(A7t,"ClickAniLayer"); - let S7t=A7t; - const C7t=class t extends Be{ - constructor(){ - super(),zt(this,"sp"),zt(this,"textures",[]),this.textures=ZA.getTextures("ClickHand","ClickHand"),this.sp=new jf(this.textures),this.addChild(this.sp),this.eventMode="none"} - static getInstance(){ - return null==this.instance&&(this.instance=new t),this.instance} - isPlaying(){ - return!!this.parent} - show(t,i,s,e,n=0,h=0){ - this.x=t,this.y=i,S7t.getInstance().setClickArea(t-.5*s+n,i-.5*e+h,s,e),this.isPlaying()||(this.sp.animationSpeed=.65,this.sp.play(),S7t.getInstance().addChild(this))} - hide(){ - S7t.getInstance().setBlockerEnabled(!1),this.sp.stop(),this.parent&&this.removeFromParent()} - } - ; - Kt(C7t,"ClickAniEffect"),zt(C7t,"instance"); - let T7t=C7t;
AttendanceStatusVO 2 hunks, 98 statements
+ constructor(){ + zt(this,"consecutiveDays",0),zt(this,"cumulativeDays",0),zt(this,"rotationDay",0),zt(this,"claimedA",0),zt(this,"claimedB",0),zt(this,"claimedS",0),zt(this,"claimableA",null),zt(this,"claimableB",null),zt(this,"claimableS",null),zt(this,"claimedRewardA",null),zt(this,"claimedRewardB",null),zt(this,"claimedRewardS",null),zt(this,"nextA",null),zt(this,"nextB",null)} + } + ; + Kt(lP,"AttendanceStatusVO"); + let uP=lP; + const dP=class t{ + constructor(){ + zt(this,"status",new uP),zt(this,"requestPending",!1),zt(this,"lastCheckDate",""),zt(this,"checkIntervalId",null)} + static getInstance(){ + return null==this.instance&&(this.instance=new t),this.instance} + setStatusData(t){ + t&&(this.status.consecutiveDays=Number(t.consecutiveDays??0),this.status.cumulativeDays=Number(t.cumulativeDays??0),this.status.rotationDay=Number(t.rotationDay??0),this.status.claimedA=Number(t.claimedA??0),this.status.claimedB=Number(t.claimedB??0),this.status.claimedS=Number(t.claimedS??0),this.status.claimableA=t.claimableA??null,this.status.claimableB=t.claimableB??null,this.status.claimableS=t.claimableS??null,this.status.claimedRewardA=t.claimedRewardA??null,this.status.claimedRewardB=t.claimedRewardB??null,this.status.claimedRewardS=t.claimedRewardS??null,this.status.nextA=t.nextA??null,this.status.nextB=t.nextB??null)} + hasReward(){ + return null!=this.status.claimableA||null!=this.status.claimableB||null!=this.status.claimableS} + async init(){ + await this.check(),this.startDateChecker()} + startDateChecker(){ + null==this.checkIntervalId&&(this.checkIntervalId=setInterval(()=>{ + this.checkDateRollover()} + ,18e5))} + async checkDateRollover(){ + const t=(new Date).toISOString().slice(0,10); + if(""!==this.lastCheckDate&&this.lastCheckDate!==t&&(await this.check(),this.hasReward())){ + const{ + AttendanceAutoTrigger:t} + =await Jt(async()=>{ + const{ + AttendanceAutoTrigger:t} + =await Promise.resolve().then(()=>wei); + return{ + AttendanceAutoTrigger:t} + } + ,void 0); + t.getInstance().requestShow()} + } + stopDateChecker(){ + null!=this.checkIntervalId&&(clearInterval(this.checkIntervalId),this.checkIntervalId=null)} + async check(t=!1){ + if(this.requestPending)return; + this.requestPending=!0; + const i=await hD.getInstance().attendance.check(t); + if(0==i.success)return this.requestPending=!1,void lS.getInstance().dispatchCustomEvent("AttendanceUpdate"); + this.setStatusData(i.body),this.lastCheckDate=(new Date).toISOString().slice(0,10),this.requestPending=!1,lS.getInstance().dispatchCustomEvent("AttendanceUpdate")} + } + ; + Kt(dP,"AttendanceDataManager"),zt(dP,"instance"); + let fP=dP; + const pP=class{
- const Cii=class{ - constructor(){ - zt(this,"consecutiveDays",0),zt(this,"cumulativeDays",0),zt(this,"rotationDay",0),zt(this,"claimedA",0),zt(this,"claimedB",0),zt(this,"claimedS",0),zt(this,"claimableA",null),zt(this,"claimableB",null),zt(this,"claimableS",null),zt(this,"claimedRewardA",null),zt(this,"claimedRewardB",null),zt(this,"claimedRewardS",null),zt(this,"nextA",null),zt(this,"nextB",null)} - } - ; - Kt(Cii,"AttendanceStatusVO"); - let Tii=Cii; - const kii=class t{ - constructor(){ - zt(this,"status",new Tii),zt(this,"requestPending",!1),zt(this,"lastCheckDate",""),zt(this,"checkIntervalId",null)} - static getInstance(){ - return null==this.instance&&(this.instance=new t),this.instance} - setStatusData(t){ - t&&(this.status.consecutiveDays=Number(t.consecutiveDays??0),this.status.cumulativeDays=Number(t.cumulativeDays??0),this.status.rotationDay=Number(t.rotationDay??0),this.status.claimedA=Number(t.claimedA??0),this.status.claimedB=Number(t.claimedB??0),this.status.claimedS=Number(t.claimedS??0),this.status.claimableA=t.claimableA??null,this.status.claimableB=t.claimableB??null,this.status.claimableS=t.claimableS??null,this.status.claimedRewardA=t.claimedRewardA??null,this.status.claimedRewardB=t.claimedRewardB??null,this.status.claimedRewardS=t.claimedRewardS??null,this.status.nextA=t.nextA??null,this.status.nextB=t.nextB??null)} - hasReward(){ - return null!=this.status.claimableA||null!=this.status.claimableB||null!=this.status.claimableS} - async init(){ - await this.check(),this.startDateChecker()} - startDateChecker(){ - null==this.checkIntervalId&&(this.checkIntervalId=setInterval(()=>{ - this.checkDateRollover()} - ,18e5))} - async checkDateRollover(){ - const t=(new Date).toISOString().slice(0,10); - if(""!==this.lastCheckDate&&this.lastCheckDate!==t&&(await this.check(),this.hasReward())){ - const{ - AttendanceAutoTrigger:t} - =await Jt(async()=>{ - const{ - AttendanceAutoTrigger:t} - =await Promise.resolve().then(()=>cai); - return{ - AttendanceAutoTrigger:t} - } - ,void 0); - t.getInstance().requestShow()} - } - stopDateChecker(){ - null!=this.checkIntervalId&&(clearInterval(this.checkIntervalId),this.checkIntervalId=null)} - async check(t=!1){ - if(this.requestPending)return; - this.requestPending=!0; - const i=await iD.getInstance().attendance.check(t); - if(0==i.success)return this.requestPending=!1,void lS.getInstance().dispatchCustomEvent("AttendanceUpdate"); - this.setStatusData(i.body),this.lastCheckDate=(new Date).toISOString().slice(0,10),this.requestPending=!1,lS.getInstance().dispatchCustomEvent("AttendanceUpdate")} - } - ; - Kt(kii,"AttendanceDataManager"),zt(kii,"instance"); - let Oii=kii;
AttendanceAutoTrigger 6 hunks, 82 statements
- Csi(7.11),wN.getInstance().setBookData(t),wN.getInstance().setBookDataForSpecial(i),vx.getInstance().setBookData(s),iL.getInstance().setBookData(e),Wx.getInstance().setBookData(n),Bx.getInstance().setBookData(h),Yx.getInstance().setBookData(u),ZB.getInstance().setScenarioBookData(r),ZB.getInstance().setPatternBookData(o),e7.getInstance().setBookData(a),vV.getInstance().setBookData(c),rV.getInstance().setBookData(l),set.getInstance().setBookData(d),E7t.getInstance().setBookData(f),MV.getInstance().setBookData(p),MV.getInstance().setStepBookData(g); + hei(7.11),wN.getInstance().setBookData(t),wN.getInstance().setBookDataForSpecial(i),vx.getInstance().setBookData(s),hL.getInstance().setBookData(e),Wx.getInstance().setBookData(n),Bx.getInstance().setBookData(h),Yx.getInstance().setBookData(u),eU.getInstance().setScenarioBookData(r),eU.getInstance().setPatternBookData(o),s9.getInstance().setBookData(a),MV.getInstance().setBookData(c),lV.getInstance().setBookData(l),ont.getInstance().setBookData(d),s3.getInstance().setBookData(f),TV.getInstance().setBookData(p),TV.getInstance().setStepBookData(g);
- wL.setUserInfo(e.body,!0)} + _L.setUserInfo(e.body,!0),Z6.getInstance().setData(e.body.transTicket)}
- ),Csi(10.2),await lD.getInstance().getPassList(),Csi(10.3),f3.getInstance().getInventory(0),Csi(10.4),Csi(10.5),Csi(10.6); + ),hei(10.2),await Q2.getInstance().getProducts(0,!1),await pD.getInstance().getPassList(),hei(10.3),Y6.getInstance().getInventory(0),hei(10.4),hei(10.5),hei(10.6);
- n.success&&(null==(i=n.body)?void 0:i.ads)&&zB.getInstance().setData(n.body.ads),Csi(10.7),DV.getInstance().updateAll(),Csi(10.8),bD.opened&&bD.hasGuild&&(await bD.loadMyBriefGuildInfo(),bD.initializeGuildChat()),Csi(10.9),cU.initEventList(),Csi(11),lS.getInstance().addEventListener("GameMainStart",Ssi),await fii.getInstance().start(),hS.bringOverlayToFront(),WL.getInstance().isBgmOn&&WL.getInstance().playRandomBGM(.35),document.addEventListener("visibilitychange",()=>{ + n.success&&(null==(i=n.body)?void 0:i.ads)&&JB.getInstance().setData(n.body.ads),hei(10.7),UV.getInstance().updateAll(),hei(10.8),ED.opened&&ED.hasGuild&&(await ED.loadMyBriefGuildInfo(),ED.initializeGuildChat()),hei(10.9),fU.initEventList(),hei(11); + let h=!1; + (0==A9t.getInstance().isOpened||Number(await $A.getTutorialID()??0)>=A9t.TUTORIAL_INDEX_WAVE3)&&(h=!0),h||_L.numRevive>0&&(h=!0),h&&m6.getInstance().doAccountCreate(),lS.getInstance().addEventListener("GameMainStart",nei),await Yii.getInstance().start(),hS.bringOverlayToFront(),KL.getInstance().isBgmOn&&KL.getInstance().playRandomBGM(.35),document.addEventListener("visibilitychange",()=>{
+ )),gei=class t{ + constructor(){ + zt(this,"timerId",0)} + static getInstance(){ + return this._instance||(this._instance=new t),this._instance} + requestShow(){ + this.schedule(0)} + cancel(){ + this.timerId&&(clearTimeout(this.timerId),this.timerId=0)} + schedule(t){ + this.cancel(),this.timerId=window.setTimeout(()=>{ + this.timerId=0,this.tryShow()} + ,t)} + isBlockedByContext(){ + return!rti.getInstance().isIdleBattleActive()||!!IL.getInstance().hasPopup||LV.getInstance().children.length>0} + async tryShow(){ + if(_L.numRevive30<t.UNLOCK_REVIVE30)return; + if(!fP.getInstance().hasReward())return; + if(this.isBlockedByContext())return void this.schedule(t.RETRY_BLOCKED_MS); + const{ + AttendancePopup:i} + =await Jt(async()=>{ + const{ + AttendancePopup:t} + =await Promise.resolve().then(()=>hci); + return{ + AttendancePopup:t} + } + ,void 0); + IL.getInstance().hasPopup?this.schedule(t.RETRY_BLOCKED_MS):(i.getInstance().setData(),i.getInstance().show(),i.getInstance().y=350)} + } + ; + Kt(gei,"AttendanceAutoTrigger"),zt(gei,"_instance"),zt(gei,"UNLOCK_REVIVE30",3),zt(gei,"RETRY_BLOCKED_MS",5e3); + let mei=gei; + const wei=Object.freeze(Object.defineProperty({ + __proto__:null,AttendanceAutoTrigger:mei} + ,Symbol.toStringTag,{ + value:"Module"}
- )),oai=class t{ - constructor(){ - zt(this,"timerId",0)} - static getInstance(){ - return this._instance||(this._instance=new t),this._instance} - requestShow(){ - this.schedule(0)} - cancel(){ - this.timerId&&(clearTimeout(this.timerId),this.timerId=0)} - schedule(t){ - this.cancel(),this.timerId=window.setTimeout(()=>{ - this.timerId=0,this.tryShow()} - ,t)} - isBlockedByContext(){ - return!u9t.getInstance().isIdleBattleActive()||!!CL.getInstance().hasPopup||NV.getInstance().children.length>0} - async tryShow(){ - if(wL.numRevive30<t.UNLOCK_REVIVE30)return; - if(!Oii.getInstance().hasReward())return; - if(this.isBlockedByContext())return void this.schedule(t.RETRY_BLOCKED_MS); - const{ - AttendancePopup:i} - =await Jt(async()=>{ - const{ - AttendancePopup:t} - =await Promise.resolve().then(()=>Cai); - return{ - AttendancePopup:t} - } - ,void 0); - CL.getInstance().hasPopup?this.schedule(t.RETRY_BLOCKED_MS):(i.getInstance().setData(),i.getInstance().show(),i.getInstance().y=350)} - } - ; - Kt(oai,"AttendanceAutoTrigger"),zt(oai,"_instance"),zt(oai,"UNLOCK_REVIVE30",3),zt(oai,"RETRY_BLOCKED_MS",5e3); - let aai=oai; - const cai=Object.freeze(Object.defineProperty({ - __proto__:null,AttendanceAutoTrigger:aai} - ,Symbol.toStringTag,{ - value:"Module"}
HeroIcon 6 hunks, 76 statements
- const l3=class t extends c3{ - static getInstance(){ - return this._instance||(this._instance=new t),this._instance} - constructor(){ - super()} - } - ; - Kt(l3,"Toast"),zt(l3,"_instance"); - let u3=l3; - const d3=class t{ - constructor(){ - zt(this,"requestPending",!1),zt(this,"obj",{ - } - ),zt(this,"objByType",{ - } - ),zt(this,"types",[])} - static getInstance(){ - return null==this.instance&&(this.instance=new t),this.instance} - async getInventory(t,i=!1){ - if(this.requestPending)return; - this.requestPending=!0; - let s=await iD.getInstance().user.getInventory(t,i); - if(0==s.success)return this.requestPending=!1,void lS.getInstance().dispatchCustomEvent("UserInventory"); - this.setData(s.body),this.requestPending=!1} - setData(t){ - if(!t||!t.inventory)return; - this.obj={ - } - ,this.objByType={ - } - ,this.obj.all=[],this.types[0]="all",this.types.length=1; - const i=t.inventory; - let s,e,n; - const h=i.length; - for(let r=0; - r<h; - ++r){ - if(s=i[r].type.toString(),e="subType"in i[r]?i[r].subType.toString():"",n="","ticket"==s)switch(e){ - case"heroGacha":case"heroSelect":n="hero"; - break; - case"pet":case"petSelect":n="pet"; - break; - case"treasureGacha":n="relic"} - ""!=n&&(e&&(this.objByType[`${ - s} - _${ - e} - `]=i[r]),i[r].inventoryType=n,this.obj[n]||(this.obj[n]=[]),this.obj[n].push(i[r]),this.obj.all.push(i[r]),this.types.includes(n)||this.types.push(n))} - lS.getInstance().dispatchCustomEvent("UserInventory")} - getTypes(){ - return this.types} - getListWithType(t){ - return this.obj[t]} - getDataWithTypeAndSubType(t,i){ - return this.objByType[`${ - t} - _${ - i} - `]} - } - ; - Kt(d3,"InventoryManager"),zt(d3,"instance"); - let f3=d3; - var p3=(t=>(t.all="all",t.hero="hero",t.relic="relic",t.pet="pet",t))(p3||{ - } - ),g3=(t=>(t.gem="gem",t.redGem="redGem",t.gold="gold",t.medal="medal",t.honorCoin="honorCoin",t.guildPoint="guildPoint",t.guildCoin="guildCoin",t.raidCoin="raidCoin",t.hammer="hammer",t.hero="hero",t.instant="instant",t.ticket="ticket",t.pet="pet",t.petTicket="petTicket",t.petSelect="petSelect",t.heroGacha="heroGacha",t.heroSelect="heroSelect",t.heroTrans="heroTrans",t.treasureGacha="treasureGacha",t.treasureTrans="treasureTrans",t))(g3||{ - } - ),m3=(t=>(t[t.ROSTER=0]="ROSTER",t[t.HERO_LIST=1]="HERO_LIST",t[t.HERO_DETAIL=2]="HERO_DETAIL",t[t.BOOK=3]="BOOK",t[t.SHOP=4]="SHOP",t[t.HERO_PVP=5]="HERO_PVP",t[t.TOWER=6]="TOWER",t[t.TOWER_TEAM=7]="TOWER_TEAM",t))(m3||{ + var l3=(t=>(t[t.ROSTER=0]="ROSTER",t[t.HERO_LIST=1]="HERO_LIST",t[t.HERO_DETAIL=2]="HERO_DETAIL",t[t.BOOK=3]="BOOK",t[t.SHOP=4]="SHOP",t[t.HERO_PVP=5]="HERO_PVP",t[t.TOWER=6]="TOWER",t[t.TOWER_TEAM=7]="TOWER_TEAM",t))(l3||{
- this.icon.texture=ZA.getTexture("UI_Ekkorr",`Hero${ + t>0?(this.icon.visible=!0,this.icon.texture=ZA.getTexture("UI_Ekkorr",`Hero${
- `),this.bg.texture=ZA.getTexture("UI_Ekkorr",`HeroFrame${ + `)):this.icon.visible=!1,this.bg.texture=ZA.getTexture("UI_Ekkorr",`HeroFrame${
+ if(t>0){
- s&&(this.setTextures(s.base,s.grade),i>0?(this.trans.visible=!0,this.trans.texture=ZA.getTexture("UI_Ekkorr",`Trans000${ + if(!i)return; + this.setTextures(i.base,i.grade)} + else this.setTextures(0,1); + i>0?(this.trans.visible=!0,this.trans.texture=ZA.getTexture("UI_Ekkorr",`Trans000${
- `)):this.trans.visible=!1,this.lblEnhance.visible=!1,this.lblLevel.visible=!1,this.lblCount.visible=!1)} + `)):this.trans.visible=!1,this.lblEnhance.visible=!1,this.lblLevel.visible=!1,this.lblCount.visible=!1}
ShopItemRenderer 1 hunks, 75 statements
- const J6=class extends XI{ - constructor(){ - super(),zt(this,"bg"),zt(this,"lblName",new KD("2배속 ",16777215,nD.DEFAULT_OUTLINE_FONT_OPTION_18)),zt(this,"icon",new We(ZA.getTexture("UI_Ekkorr","Shop_Icon_07"))),zt(this,"btnBuy",new DB("UI_GEM","100")),zt(this,"btnAd",new DB("UI_MOVIE_SMALL",yG.getText("GAME_236","광고"))),zt(this,"lblRemaining",new KD("",11184810,nD.DEFAULT_FONT_OPTION_16)),zt(this,"lblCooldown",new KD("",16737894,nD.DEFAULT_FONT_OPTION_16)),zt(this,"requesting",!1),this.bg=new TM({ - texture:ZA.getTexture("UI_Ekkorr","Popup_List_02"),leftWidth:140,topHeight:30,rightWidth:20,bottomHeight:30} - ),this.bg.x=5,this.bg.width=630,this.bg.height=80,this.addChild(this.bg),this.addChild(this.icon),this.lblName.x=135,this.lblName.y=.5*(this.bg.height-this.lblName.height),this.addChild(this.lblName),this.btnBuy.lbl.iconScale=.8,this.btnBuy.color=DB.BROWN,this.btnBuy.height=55,this.btnBuy.width=140,this.btnBuy.x=this.bg.width-this.btnBuy.width-6,this.btnBuy.y=.5*(this.bg.height-this.btnBuy.height),this.addChild(this.btnBuy),this.btnBuy.on("pointerdown",this.onBuy,this),this.btnAd.lbl.iconScale=.6,this.btnAd.color=qL.BROWN,this.btnAd.height=55,this.btnAd.width=140,this.btnAd.x=this.bg.width-this.btnAd.width-6,this.btnAd.y=.5*(this.bg.height-this.btnAd.height),this.addChild(this.btnAd),this.btnAd.onClick=this.onAdWatch.bind(this),this.lblRemaining.y=.5*(this.bg.height-this.lblRemaining.height),this.addChild(this.lblRemaining),this.lblCooldown.visible=!1,this.addChild(this.lblCooldown)} - async onBuy(t){ - if(1==this.data.kindNum){ - let t=await iD.getInstance().user.buySpeed15(); - if(0==t.success)return void dG.getInstance().showError(t); - wL.setUser(t.body),DV.getInstance().updateAll(),BG.getInstance().setSpeed(2)} - } - async onAdWatch(){ - var t; - try{ - const t=Y6.getInstance().checkApproved(); - if(0==t.approved)return void dG.getInstance().show(t.errorMessage)} - catch(s){ - const t=yG.getText("AGE_RANGE_3","현재 사용 중인 기기 또는 OS 환경에서는 연령 정보를 확인할 수 없어, 일부 기능이 ‘안전 모드’로 제한됩니다."); - return void dG.getInstance().show(t)} - if(this.requesting)return; - if(!(null==(t=this.data)?void 0:t.isAd))return; - const i=this.data.adsType; - if(0!==zB.getInstance().getDailyRemaining(i)){ - if(zB.getInstance().isCooldownReady(i)){ - this.requesting=!0; - try{ - wL.canSkipAds?(MU.trackAd("ad_skip",String(i)),await this.onAdComplete()):(MU.trackAd("ad_try",String(i)),await UL(async()=>{ - MU.trackAd("ad_success",String(i)),await this.onAdComplete()} - ,i,()=>{ - MU.trackAd("ad_fail",String(i))} - ))} - finally{ - this.requesting=!1} - } - } - else dG.getInstance().show(yG.getText("GAME_244","오늘 최대 횟수를 초과했습니다."))} - async onAdComplete(){ - const t=this.data.adsType,i=await iD.getInstance().ads.watch(t,!0); - if(!1!==i.success){ - if(nV.getInstance().markDirty(),i.body.user&&(wL.setUserData(i.body.user),DV.getInstance().updateAll()),i.body.ads&&zB.getInstance().setData(i.body.ads),i.body.dungeon&&Rx.getInstance().setData(i.body.dungeon),"speed"===i.body.rewardType&&BG.getInstance().setSpeed(2),5===t){ - const t=zB.getInstance().getDailyRemaining(5),i=zB.getInstance().isCooldownReady(5); - 0!==t&&i||lii.getInstance().removeAdsGoblins()} - this.updateRemaining()} - else dG.getInstance().showError(i)} - setData(t){ - this.data=t,t.isAd?(this.btnBuy.visible=!1,this.btnAd.visible=!0,this.lblName.text=t.name,this.icon.scale.set(1),this.icon.texture=ZA.getTexture("UI_Ekkorr",t.icon),this.icon.y=.5*(this.bg.height-this.icon.height),this.updateRemaining()):(this.btnBuy.visible=!0,this.btnAd.visible=!1,this.lblRemaining.visible=!1,this.lblName.text=t.name,(1==t.kindNum||2==t.kindNum)&&(this.icon.texture=ZA.getTexture("UI_Ekkorr",t.icon)),this.icon.y=.5*(this.bg.height-this.icon.height),this.btnBuy.text=t.gem.toString()),this.icon.x=60-.5*this.icon.width,this.lblRemaining.visible?nD.setLabelWrapWidth(this.lblName,this.lblRemaining.x-this.lblName.x-5):nD.setLabelWrapWidth(this.lblName,this.btnBuy.x-this.lblName.x-5),this.lblName.y=.5*(this.bg.height-this.lblName.height)} - updateRemaining(){ - var t; - (null==(t=this.data)?void 0:t.isAd)&&this.updateCooldown()} - updateCooldown(){ - var t; - if(!(null==(t=this.data)?void 0:t.isAd))return; - const i=this.data.adsType,s=zB.getInstance().getCooldownRemaining(i),e=zB.getInstance().getDailyRemaining(i),n=0===e,h=e>=0&&this.data.dailyMax,r=this.btnAd.x-8,o=.5*this.bg.height; - if(s>0&&!n){ - const t=Math.ceil(s/1e3),i=Math.floor(t/60),n=t%60,a=`${ - String(i).padStart(2,"0")} - :${ - String(n).padStart(2,"0")} - `; - this.lblCooldown.visible=!0,this.lblCooldown.text=a,this.btnAd.activated=!1,h?(this.lblRemaining.visible=!0,this.lblRemaining.text=`${ - e} - /${ - this.data.dailyMax} - `,this.lblCooldown.x=r-this.lblCooldown.width,this.lblCooldown.y=o-this.lblCooldown.height-1,this.lblRemaining.x=r-this.lblRemaining.width,this.lblRemaining.y=o+1):(this.lblRemaining.visible=!1,this.lblCooldown.x=r-this.lblCooldown.width,this.lblCooldown.y=o-.5*this.lblCooldown.height)} - else this.lblCooldown.visible=!1,this.btnAd.activated=!n,h?(this.lblRemaining.visible=!0,this.lblRemaining.text=`${ - e} - /${ - this.data.dailyMax} - `,this.lblRemaining.x=r-this.lblRemaining.width,this.lblRemaining.y=o-.5*this.lblRemaining.height):this.lblRemaining.visible=!1} - get height(){ - return this.bg.height+2} - } - ; - Kt(J6,"ShopItemRenderer"); - let Q6=J6;
ShopGemSubView 1 hunks, 68 statements
- constructor(){ - super(),zt(this,"list"),this.list=new zI(Q6,635,KA.listHeight),this.list.x=0,this.list.y=0,this.addChild(this.list),this.on("added",this.onAdded,this),this.on("removed",this.onRemoved,this)} - static getInstance(){ - return null==t.instance&&(t.instance=new t),t.instance} - onAdded(){ - GM.getInstance().add(this.onFrame,this)} - onRemoved(){ - GM.getInstance().remove(this.onFrame,this)} - onFrame(){ - var t; - if(null==(null==(t=this.parent)?void 0:t.parent))return; - const i=this.list.getItemList(); - for(let s=0; - s<i.length; - s++)!1!==i[s].visible&&i[s].updateCooldown()} - setData(){ - let t=[]; - t.push({ - kindNum:1,icon:"UI_SHOP_SPEED2",name:yG.getValueReplaceMulti("GAME_57",["@@","##"],[20,2],"20분간 게임속도 2배 증가"),gem:100,desc:yG.getValueReplaceMulti("GAME_57",["@@","##"],[20,2],"20분간 게임속도 2배 증가")} - ),t.push({ - isAd:!0,adsType:2,dailyMax:20,icon:"UI_SHOP_SPEED2",name:yG.getValueReplaceMulti("GAME_228",["##","@@"],[20,2],"{ - 광고보고 20분간 2배속 } - "),rewardDesc:yG.getValueReplaceMulti("GAME_232",["##","@@","$$"],[10,2,20],"{ - 20분간 2배속, 하루 최대 3회 } - ")} - ),t.push({ - isAd:!0,adsType:3,dailyMax:3,icon:"UI_COIN_Big",name:yG.getValueReplace("GAME_229","##",100,"{ - 광고보고 명예코인 100개 } - "),rewardDesc:yG.getValueReplaceMulti("GAME_233",["##","@@"],[100,3],"{ - 명예코인 100개, 하루 최대 3회 } - ")} - ),t.push({ - isAd:!0,adsType:5,dailyMax:10,icon:"UI_SHOP_GEM",name:yG.getValueReplace("GAME_231","##",100,"{ - 광고보고 보석 100개 } - "),rewardDesc:yG.getValueReplaceMulti("GAME_235",["##","@@"],[100,10],"{ - 보석 100개, 하루 최대 10회 } - ")} - ),this.list.dataProvider=t,this.onAdded()} - get className(){ - return"ShopGemSubView"} - } - ; - Kt(Z6,"ShopGemSubView"),zt(Z6,"instance"); - let t4=Z6; - const i4=class extends L2{ - constructor(t="Icon_Web_Market",i="UI_Ekkorr"){ - super(t,i),zt(this,"lbl"); - const s=nD.DEFAULT_OUTLINE_FONT_OPTION_16; - s.fill=nD.COLOR_BRIGHT_ORANGE,this.lbl=new KD("WEB",s.fill,s),this.lbl.eventMode="none",this.addChild(this.lbl),this.update()} - update(){ - super.update(),this.lbl&&(this.lbl.x=this.icon.x-.5*this.lbl.width,this.lbl.y=this.icon.y+10),this.pivot.set(.5*this.width,.5*this.height)} - onDown(){ - this.scale=.95} - onUp(){ - this.scale=1} - get width(){ - return this.icon.width} - get height(){ - return this.icon.height} - } - ; - Kt(i4,"WebMarketButton"); - let s4=i4; - const e4=class t extends nG{ - constructor(){ - super(),zt(this,"lblMessage",new KD("",16777215,nD.ERROR_POPUP_LABEL_OPTION)),zt(this,"btnConfirm",new QL("이동")),zt(this,"btnCancel",new q5("취소")),zt(this,"iconNote"),zt(this,"lblNote",new KD("",nD.COLOR_LIGHT_BROWN,nD.ERROR_POPUP_LABEL_OPTION)),zt(this,"onConfirm",null),zt(this,"onCancel",null),this.title="알림",this.lblMessage.y=90; - let t=this.lblMessage.getStyle(); - t.align="center",this.lblMessage.setStyle(t),this.iconNote=new We(ZA.getTexture("UI_Ekkorr","UI_Alarm")),this.iconNote.anchor.set(.5),this.iconNote.scale.set(.8),this.iconNote.x=35,t=this.lblNote.getStyle(),t.fontSize=17,t.lineHeight=25,this.lblNote.setStyle(t),this.lblNote.x=this.iconNote.x+.5*this.iconNote.width+5,this.contentContainer.addChild(this.lblMessage,this.btnConfirm,this.btnCancel,this.lblNote,this.iconNote),this.btnConfirm.onClick=this.onConfirmClick.bind(this),this.btnCancel.onClick=this.onCancelClick.bind(this)}
ClickAniEffect 2 hunks, 66 statements
- super()} + super(),zt(this,"sp"),zt(this,"textures",[]),this.textures=ZA.getTextures("ClickHand","ClickHand"),this.sp=new jf(this.textures),this.addChild(this.sp),this.eventMode="none"} + static getInstance(){ + return null==this.instance&&(this.instance=new t),this.instance} + isPlaying(){ + return!!this.parent} + show(t,i,s,e,n=0,h=0){ + this.x=t,this.y=i,Y5.getInstance().setClickArea(t-.5*s+n,i-.5*e+h,s,e),this.isPlaying()||(this.sp.animationSpeed=.65,this.sp.play(),Y5.getInstance().addChild(this))} + hide(){ + Y5.getInstance().setBlockerEnabled(!1),this.sp.stop(),this.parent&&this.removeFromParent()}
- Kt(V5,"RewardLayer"),zt(V5,"_instance"); + Kt(J5,"ClickAniEffect"),zt(J5,"instance"); + let Q5=J5; + const Z5=class{ + constructor(){ + zt(this,"kindNum",0),zt(this,"wave",0),zt(this,"order",0),zt(this,"position",1),zt(this,"text",""),zt(this,"code",""),zt(this,"maxWave",-1),zt(this,"repeat",9999)} + getTextKey(){ + return`DIALOGUE_TEXT_${ + this.kindNum} + `} + } + ; + Kt(Z5,"DialogueVO"); + let t3=Z5; + const i3=class t{ + constructor(){ + zt(this,"list",[]),zt(this,"waveMap",new Map),zt(this,"playCount",{ + } + ),zt(this,"playCountLoaded",!1)} + static getInstance(){ + return null==this.instance&&(this.instance=new t),this.instance} + setBookData(t){ + if(this.list=[],this.waveMap.clear(),t){ + for(let i=0; + i<t.length; + i++){ + const s=t[i],e=new t3; + e.kindNum=Number(s.kindNum),e.wave=Number(s.wave),e.order=Number(s.order),e.position=Number(s.position)||1,e.text=s.text??"",e.code=s.code??"",e.maxWave=Number(s.maxWave)||-1,e.repeat=Number(s.repeat)||9999,this.list.push(e); + let n=this.waveMap.get(e.wave); + n||(n=[],this.waveMap.set(e.wave,n)),n.push(e)} + for(const t of this.waveMap.values())t.sort((t,i)=>t.order-i.order); + this.loadPlayCount()} + } + async loadPlayCount(){ + if(this.playCountLoaded)return; + const i=await $A.getData(t.LOCAL_KEY); + this.playCount=i??{ + } + ,this.playCountLoaded=!0} + savePlayCount(){ + $A.saveData(t.LOCAL_KEY,this.playCount)} + async getByWaveAsync(t){ + return await this.loadPlayCount(),this.getByWave(t)} + getByWave(t){ + const i=this.waveMap.get(t)??[],s=_L.maxWave,e=[]; + let n=!1; + for(const h of i)if(!(h.maxWave>0&&s<h.maxWave)){ + if(h.repeat<999){ + const t=this.playCount[h.kindNum]??0; + if(t>=h.repeat)continue; + this.playCount[h.kindNum]=t+1,n=!0} + e.push(h)} + return n&&this.savePlayCount(),e} + hasDialogue(t){ + return this.waveMap.has(t)} + } + ; + Kt(i3,"DialogueDataManager"),zt(i3,"instance"),zt(i3,"LOCAL_KEY",$A.KEY_DIALOGUE_COUNT);
EvolveMaterialMultiConfirmPopup 1 hunks, 61 statements
+ const q9=class t extends aG{ + constructor(){ + super(),zt(this,"lblMessage",new YD("",aD.DEFAULT_COLOR,aD.DEFAULT_FONT_OPTION_17)),zt(this,"materialContainer",new Be),zt(this,"materialIcons",[]),zt(this,"materialCountLabels",[]),zt(this,"materialCostLabels",[]),zt(this,"btnCancel",new kU("UI_CLOSE_BTN","","취소",.7,160,70)),zt(this,"btnTrans",new kU("PVP_COIN_ON","100","초월",1,200,70)),zt(this,"count",1),zt(this,"matCounts",[]),zt(this,"preEvolKindNums",[]),zt(this,"preEvolCounts",[]),zt(this,"requestPending",!1),zt(this,"onEvolved",null),this.width=600,this.lblMessage.y=90,aD.setLabelWrapWidth(this.lblMessage,this.width-60); + for(let t=0; + t<5; + t++){ + const t=new d3; + t.setMode(l3.BOOK),t.scale.set(.8),this.materialIcons.push(t); + const i=new YD("0/1",aD.DEFAULT_COLOR,aD.DEFAULT_OUTLINE_FONT_OPTION_18); + this.materialCountLabels.push(i); + const s=new GB("UI_GEM_ICON","0",aD.COLOR_DEEP_SKYBLUE,aD.DEFAULT_FONT_OPTION_18); + this.materialCostLabels.push(s)} + this.btnTrans.text=AG.getText("GAME_820","초월"),this.btnTrans.showIconLabel=!0,this.btnTrans.showTextLabel=!0,this.btnTrans.color=kU.GREEN,this.btnTrans.onClick=this.onTransClick.bind(this),this.btnCancel.text=AG.getText("COMMON_2","취소"),this.btnCancel.color=kU.RED,this.btnCancel.showIconLabel=!1,this.btnCancel.showTextLabel=!0,this.btnCancel.onClick=()=>this.hide(),this.contentContainer.addChild(this.lblMessage,this.materialContainer,this.btnCancel,this.btnTrans),this.updateLayout()} + static getInstance(){ + return this._instance||(this._instance=new t),this._instance} + updateLayout(){ + this.lblMessage.x=.5*(this.width-this.lblMessage.width),this.materialContainer.x=.5*(this.width-this.materialContainer.width),this.materialContainer.y=this.lblMessage.y+this.lblMessage.height+30; + const t=this.btnCancel.width+16+this.btnTrans.width,i=this.materialContainer.y+this.materialContainer.height+30; + this.btnCancel.x=.5*(this.width-t),this.btnCancel.y=i,this.btnTrans.x=this.btnCancel.x+this.btnCancel.width+16,this.btnTrans.y=i,this.height=i+this.btnTrans.height+50} + setData(t,i,s,e){ + this.lblMessage.text=AG.getText("GAME_1237","재료 영웅을 진화시켜 초월 재료로 바로 사용할 수 있습니다.")+"\n"+AG.getText("GAME_1238","영웅을 진화한 후에 초월하시겠습니까?"),this.count=s,this.matCounts=[...t],this.preEvolKindNums.length=0,this.preEvolCounts.length=0,this.materialContainer.removeChildren(); + const n=vx.getInstance(); + let h=0; + const r=this.materialIcons.length; + for(let a=0; + a<r; + ++a){ + const t=i[a],s=n.getBookVO(t); + if(!t||t<1||!s)continue; + const e=this.materialIcons[h]; + e.setDataWithKindNum(t); + const r=this.count-this.matCounts[a],o=n.getOwnedUnitCount(t,0),c=this.materialCountLabels[h]; + c.text=`${ + o} + /${ + r} + `,this.preEvolKindNums.push(t),this.preEvolCounts.push(o); + const l=V9[s.grade]??0,u=this.materialCostLabels[h]; + u.text=""+l*r,e.x=113*h,e.y=0,c.x=e.x+.5*(80-c.width)+5,c.y=70,u.x=c.x+.5*(c.width-u.width)-5,u.y=c.y+c.height,this.materialContainer.addChild(e),this.materialContainer.addChild(c),this.materialContainer.addChild(u),h++} + const o=vx.getTransHonorCoinCost(e); + this.btnTrans.text=AG.getText("GAME_820","초월"),this.btnTrans.iconText=String(o*s),this.updateLayout()} + async onTransClick(){ + if(this.requestPending)return; + this.setRequestPending(!0); + const t=[]; + for(let s=0; + s<this.preEvolKindNums.length; + ++s)t.push(`${ + this.preEvolKindNums[s]} + -${ + this.count-this.matCounts[s]} + `); + const i=await hD.getInstance().hero.evolveOwned(t.join("|"),!0); + if(!1===i.success)return this.setRequestPending(!1),void mG.getInstance().showError(i); + _L.setUserInfo(i.body),UV.getInstance().updateAll(),this.setRequestPending(!1),this.hide(),this.onEvolved&&(this.onEvolved(),this.onEvolved=null)} + setRequestPending(t){ + this.requestPending=t} + } + ; + Kt(q9,"EvolveMaterialMultiConfirmPopup"),zt(q9,"_instance"); + let X9=q9;
RaidBattleController 11 hunks, 50 statements
- super(),zt(this,"battleType",gV.RAID),zt(this,"boss",null),zt(this,"terrainOverlay",null),zt(this,"allyFlowField",null),zt(this,"enemyFlowField",null),zt(this,"separationGrid",new Map),zt(this,"separationFlatList",[]),zt(this,"rvoPool",[]),zt(this,"rvoNbAgents",[]),zt(this,"rvoNbDist",[]),zt(this,"rvoNbIdx",[]),zt(this,"heroKindNums",[...t.DEFAULT_HERO_KINDS]),zt(this,"soldierKindNums",[...t.DEFAULT_SOLDIER_KINDS]),zt(this,"raidOptions",null),zt(this,"bossKindNum",t.BOSS_KIND_NUM),zt(this,"bossStartHp",0),zt(this,"resultReported",!1),zt(this,"spawnedVOs",[]),zt(this,"speedHelper",new q4("ef2.raid.battleSpeed")),zt(this,"corpCommander",new A8(t.CORP_COUNT)),zt(this,"camera",null),zt(this,"mapEffect",null),zt(this,"hud",null),zt(this,"corpUnits",[]),zt(this,"corpAggro",[]),zt(this,"prevCorpDmg",[]),zt(this,"corpHero",[]),zt(this,"aggroLeader",-1),zt(this,"aggroChallenger",-1),zt(this,"aggroChallengerFrames",0),zt(this,"aggroTargetCorp",-1),zt(this,"forcedAggroCorp",-1),zt(this,"forcedAggroFrames",0),zt(this,"raidEmblemStates",[]),zt(this,"crossbows",[]),zt(this,"crossbowDebug",null),zt(this,"rangedByCorp",[]),zt(this,"meleeSoldiers",[])} + super(),zt(this,"battleType",bV.RAID),zt(this,"boss",null),zt(this,"terrainOverlay",null),zt(this,"allyFlowField",null),zt(this,"enemyFlowField",null),zt(this,"separationGrid",new Map),zt(this,"separationFlatList",[]),zt(this,"rvoPool",[]),zt(this,"rvoNbAgents",[]),zt(this,"rvoNbDist",[]),zt(this,"rvoNbIdx",[]),zt(this,"heroKindNums",[...t.DEFAULT_HERO_KINDS]),zt(this,"soldierKindNums",[...t.DEFAULT_SOLDIER_KINDS]),zt(this,"raidOptions",null),zt(this,"bossKindNum",t.BOSS_KIND_NUM),zt(this,"bossStartHp",0),zt(this,"resultReported",!1),zt(this,"spawnedVOs",[]),zt(this,"speedHelper",new D8("ef2.raid.battleSpeed")),zt(this,"corpCommander",new E7(t.CORP_COUNT)),zt(this,"camera",null),zt(this,"mapEffect",null),zt(this,"hud",null),zt(this,"corpUnits",[]),zt(this,"selectedCorpIndex",-1),zt(this,"corpAggro",[]),zt(this,"prevCorpDmg",[]),zt(this,"corpHero",[]),zt(this,"aggroLeader",-1),zt(this,"aggroChallenger",-1),zt(this,"aggroChallengerFrames",0),zt(this,"aggroTargetCorp",-1),zt(this,"forcedAggroCorp",-1),zt(this,"forcedAggroFrames",0),zt(this,"raidEmblemStates",[]),zt(this,"crossbows",[]),zt(this,"crossbowDebug",null),zt(this,"rangedByCorp",[]),zt(this,"meleeSoldiers",[])}
- corpCount:t.CORP_COUNT,fieldW:t.FIELD_WIDTH,fieldH:t.FIELD_HEIGHT,getAnchor:Kt(t=>this.getCameraAnchor(t),"getAnchor"),isFlagDragging:Kt(()=>this.corpCommander.isDragging(),"isFlagDragging")} + corpCount:t.CORP_COUNT,fieldW:t.FIELD_WIDTH,fieldH:t.FIELD_HEIGHT,getAnchor:Kt(t=>this.getCameraAnchor(t),"getAnchor"),isFlagDragging:Kt(()=>this.corpCommander.isDragging(),"isFlagDragging"),onFieldDown:Kt((t,i)=>this.tryStartCorpDragAt(t,i),"onFieldDown")}
- this.hud=new N8(n,this.bossKindNum,this.heroKindNums,this.soldierKindNums,()=>this.returnToMain(),this.getRaidEmblemDefinitionsForHud(),t=>this.activateRaidEmblem(t)),this.speedHelper.attachButton(Cst.getInstance(),16,88),this.crossbows=[{ + this.hud=new x7(n,this.bossKindNum,this.heroKindNums,this.soldierKindNums,()=>this.returnToMain(),this.getRaidEmblemDefinitionsForHud(),t=>this.activateRaidEmblem(t),t=>this.onCorpSelect(t)),this.speedHelper.attachButton(xet.getInstance(),16,88),this.crossbows=[{
- ),this.crossbowDebug=new Gf,this.crossbowDebug.eventMode="none",xB.getInstance().addChild(this.crossbowDebug)} + ),this.crossbowDebug=new Gf,this.crossbowDebug.eventMode="none",DB.getInstance().addChild(this.crossbowDebug),this.corpCommander.bringToTop()}
- if(h.battleController=this,h instanceof v2&&await h.ensureSpineReady(),e){ + h.battleController=this,h instanceof N2&&await h.ensureSpineReady(); + const r=e?this.bossKindNum:t.GOLEM_KIND_NUM; + if(e??vx.getInstance().getBookVO(r)){
- t.id=-1,t.kindNum=this.bossKindNum,t.level=1,t.enhance=0,this.spawnedVOs.push(t),h.setData(t)} - (null==(i=this.raidOptions)?void 0:i.bossHp)&&this.raidOptions.bossHp>0?h.baseMaxHp=this.raidOptions.bossHp:h.baseMaxHp*=t.BOSS_HP_MULT,h.orgMaxHp=h.maxHp=h.baseMaxHp,h.hp=h.maxHp,h.health=h.maxHp,this.bossStartHp=h.maxHp,h.orgMoveSpd=h.moveSpd=1.8*h.moveSpd*1.6*2*.7,h.moveSpd<=0&&(h.orgMoveSpd=h.moveSpd=3),h.blowImmune=!0,h.stunImmune=!0,h.freezeImmune=!0,h.knockImmune=!0,h.isAir=!1,h.scale.set(1,1),h instanceof v2&&(h.wanderMinX=250,h.wanderMaxX=790,h.wanderMinY=250,h.wanderMaxY=1050,this.bossKindNum===t.HARPY_KIND_NUM&&(h.wanderMinX=300,h.wanderMaxX=1100,h.wanderMinY=250,h.wanderMaxY=800),this.bossKindNum===t.SCORPION_KIND_NUM&&h.setRaidTint(t.getScorpionTint((null==(s=this.raidOptions)?void 0:s.bossSub)??1))),h.x=t.BOSS_X,h.y=t.BOSS_Y,h.tx=h.x,h.ty=h.y,h.xDefault=h.x,h.yDefault=h.y,h.ground=h.y,h.lookAt(-1),h.initDelay=0,h.showTombstone=!1,h.maxRevive=0,h.reviveInterval=0,h.totalDamageDealt=0,h.numBlock=0,h.radius=t.BOSS_RADIUS,h.aggressiveRetarget=!1,h instanceof v2&&(h.targetSwapChance=0),h.detectRange=t.BOSS_DETECT_RANGE,h.detectRange2=h.detectRange*h.detectRange,YG.getInstance().addChild(h),this.enemyList.push(h),this.boss=h,h instanceof v2&&h.createHitBox()} + t.id=-1,t.kindNum=r,t.level=1,t.enhance=0,this.spawnedVOs.push(t),h.setData(t),h.kindNum=this.bossKindNum} + (null==(i=this.raidOptions)?void 0:i.bossHp)&&this.raidOptions.bossHp>0?h.baseMaxHp=this.raidOptions.bossHp:h.baseMaxHp*=t.BOSS_HP_MULT,h.orgMaxHp=h.maxHp=h.baseMaxHp,h.hp=h.maxHp,h.health=h.maxHp,this.bossStartHp=h.maxHp,h.orgMoveSpd=h.moveSpd=1.8*h.moveSpd*1.6*2*.7,h instanceof N2&&h.immobile?(h.orgMoveSpd=h.moveSpd=0,h.atkRange=t.IMMOBILE_BOSS_ATK_RANGE,h.atkRange2=h.atkRange*h.atkRange):h.moveSpd<=0&&(h.orgMoveSpd=h.moveSpd=3),h.blowImmune=!0,h.stunImmune=!0,h.freezeImmune=!0,h.knockImmune=!0,h.isAir=!1,h.scale.set(1,1),h instanceof N2&&(h.wanderMinX=250,h.wanderMaxX=790,h.wanderMinY=250,h.wanderMaxY=850,this.bossKindNum===t.HARPY_KIND_NUM&&(h.wanderMinX=300,h.wanderMaxX=1100,h.wanderMinY=250,h.wanderMaxY=800),this.bossKindNum===t.BERIAL_KIND_NUM&&(h.wanderMinY=450),this.bossKindNum===t.SCORPION_KIND_NUM&&h.setRaidTint(t.getScorpionTint((null==(s=this.raidOptions)?void 0:s.bossSub)??1))),h.x=t.BOSS_X,h.y=t.BOSS_Y,h.tx=h.x,h.ty=h.y,h.xDefault=h.x,h.yDefault=h.y,h.ground=h.y,h.lookAt(-1),h.initDelay=0,h.showTombstone=!1,h.maxRevive=0,h.reviveInterval=0,h.totalDamageDealt=0,h.numBlock=0,h.radius=t.BOSS_RADIUS,h.aggressiveRetarget=!1,h instanceof N2&&(h.targetSwapChance=0),h.detectRange=t.BOSS_DETECT_RANGE,h.detectRange2=h.detectRange*h.detectRange,tB.getInstance().addChild(h),this.enemyList.push(h),this.boss=h,h instanceof N2&&h.createHitBox()}
+ tryStartCorpDragAt(t,i){ + const s=tB.getInstance().toLocal({ + x:t,y:i} + ),e=this.pickCorpAt(s.x,s.y); + return!(e<0||(this.setSelectedCorp(e),this.corpCommander.startCorpDragAt(e,t,i),0))} + setSelectedCorp(t){ + this.selectedCorpIndex!==t&&(this.selectedCorpIndex>=0&&this.setCorpOutline(this.selectedCorpIndex,!1),this.selectedCorpIndex=t,this.setCorpOutline(t,!0))} + pickCorpAt(i,s){ + let e=-1,n=t.UNIT_SELECT_RADIUS*t.UNIT_SELECT_RADIUS; + for(let t=0; + t<this.corpUnits.length; + t++)for(const h of this.corpUnits[t]){ + if(!h.isAlive||h.removed)continue; + const r=h.getHitCenter(),o=r.x-i,a=r.y-s,c=o*o+a*a; + c<n&&(n=c,e=t)} + return e} + onCorpSelect(t){ + this.selectedCorpIndex>=0&&this.setCorpOutline(this.selectedCorpIndex,!1),this.selectedCorpIndex!==t?(this.selectedCorpIndex=t,this.setCorpOutline(t,!0)):this.selectedCorpIndex=-1} + setCorpOutline(i,s){ + const e=this.corpUnits[i]; + if(e)for(const n of e)n.filters=s?[new a7({ + thickness:3,color:t.CORP_OUTLINE_COLOR,quality:.5} + )]:[]}
- r.aggroFaceX=n,null!==n&&r.state!==ex.ATTACK&&r.state!==ex.SKILL&&Math.abs(n-r.x)>t.AGGRO_FACE_DEADZONE&&r.lookAt(n<r.x?-1:1)} + r.aggroFaceX=n; + const h=r.immobile||r.state!==ex.ATTACK&&r.state!==ex.SKILL; + null!==n&&h&&Math.abs(n-r.x)>t.AGGRO_FACE_DEADZONE&&r.lookAt(n<r.x?-1:1)}
+ getRandomRangedCorpCenter(){ + var t; + const i=Kt(t=>(this.corpUnits[t]??[]).some(t=>t.isAlive&&!t.removed&&!t.isUntagetable),"isAliveCorp"),s=[]; + for(let n=0; + n<this.corpUnits.length; + n++)(null==(t=this.corpHero[n])?void 0:t.unitType)===sx.RANGE&&i(n)&&s.push(n); + const e=s.length>0?s:Array.from({ + length:this.corpUnits.length} + ,(t,i)=>i).filter(i); + return 0===e.length?null:this.getCorpCenter(e[this.random.nextInt(e.length)])}
+ :this.bossKindNum===t.BERIAL_KIND_NUM?{ + x:t.BERIAL_SURROUND_X_SCALE,y:t.BERIAL_SURROUND_Y_SCALE} + :this.bossKindNum===t.DRAGON_KNIGHT_KIND_NUM?{ + x:t.DRAGON_KNIGHT_SURROUND_X_SCALE,y:t.DRAGON_KNIGHT_SURROUND_Y_SCALE}
- BG.getInstance().remove(this.execute,this),this.corpCommander.destroy(),null==(t=this.camera)||t.destroy(),this.camera=null,null==(i=this.hud)||i.destroy(),this.hud=null; + WG.getInstance().remove(this.execute,this),this.corpCommander.destroy(),null==(t=this.camera)||t.destroy(),this.camera=null,null==(i=this.hud)||i.destroy(),this.hud=null,this.selectedCorpIndex=-1;
BaseRaidUnit 6 hunks, 41 statements
- super(),zt(this,"spine",null),zt(this,"spineLoadPromise",null),zt(this,"spineKey",""),zt(this,"weakPointBone",""),zt(this,"weakPointSlotNames",[]),zt(this,"weakPointOffsetX",0),zt(this,"raidStunFrames",0),zt(this,"hitFlashFrames",0),zt(this,"hitFlashMax",1),zt(this,"hitFlashHead",!1),zt(this,"headTintSlots",["face","jaw"]),zt(this,"knockVx",0),zt(this,"knockVy",0),zt(this,"bossScale",1.3),zt(this,"spineFacesLeftByDefault",!0),zt(this,"spineTimeScale",.6),zt(this,"aniIdle","idle"),zt(this,"aniMove","run"),zt(this,"aniDie","die"),zt(this,"aniGroggy","groggy"),zt(this,"aniSkill0","att1"),zt(this,"aniSkills",["att2","att3","att4","att5"]),zt(this,"eventSkill0Hit","att1_hit"),zt(this,"eventSkillHits",["att2_hit","att3_hit","att4_hit","att5_hit"]),zt(this,"attackOrderList",[]),zt(this,"currentAttackOrderList",[]),zt(this,"attackOrderIndex",0),zt(this,"skillRatio",[.75,.55,.35,.15,0]),zt(this,"numForSkillAttack",2),zt(this,"numCurrentAttack",0),zt(this,"interSkillIdleFrames",120),zt(this,"arrAttackTypeList",[]),zt(this,"incAttack",0),zt(this,"decSpeed",0),zt(this,"_power",1),zt(this,"attackable",!0),zt(this,"raidGroggyActive",!1),zt(this,"raidTintR",1),zt(this,"raidTintG",1),zt(this,"raidTintB",1),zt(this,"raidSlotBaseColors",new Map),zt(this,"wanderEnabled",!1),zt(this,"wanderInterval",240),zt(this,"wanderMinX",100),zt(this,"wanderMaxX",540),zt(this,"wanderMinY",200),zt(this,"wanderMaxY",950),zt(this,"wanderTimer",0),zt(this,"hitBoxGfx",null),zt(this,"targetSwapChance",0),zt(this,"aggroFaceX",null),zt(this,"wanderAfterAttackChance",0),zt(this,"attackDashActive",!1),zt(this,"attackDashTargetX",0),zt(this,"attackDashTargetY",0),zt(this,"attackDashSpeed",0),zt(this,"syncBoneName",""),zt(this,"_prevBoneOffX",0),zt(this,"_prevBoneOffY",0),zt(this,"_syncLogCount",0),this.bossType=1,this.hasSkill=!1,this.weight=5,this.blowImmune=!0,this.stunImmune=!0,this.freezeImmune=!0,this.knockImmune=!0} + super(),zt(this,"spine",null),zt(this,"spineLoadPromise",null),zt(this,"spineKey",""),zt(this,"weakPointBone",""),zt(this,"weakPointSlotNames",[]),zt(this,"weakPointOffsetX",0),zt(this,"weakPointOffsetY",0),zt(this,"raidStunFrames",0),zt(this,"hitFlashFrames",0),zt(this,"hitFlashMax",1),zt(this,"hitFlashHead",!1),zt(this,"headTintSlots",["face","jaw"]),zt(this,"knockVx",0),zt(this,"knockVy",0),zt(this,"bossScale",1.3),zt(this,"spineFacesLeftByDefault",!0),zt(this,"spineTimeScale",.6),zt(this,"aniIdle","idle"),zt(this,"aniMove","run"),zt(this,"aniDie","die"),zt(this,"aniGroggy","groggy"),zt(this,"aniSkill0","att1"),zt(this,"aniSkills",["att2","att3","att4","att5"]),zt(this,"eventSkill0Hit","att1_hit"),zt(this,"eventSkillHits",["att2_hit","att3_hit","att4_hit","att5_hit"]),zt(this,"attackOrderList",[]),zt(this,"currentAttackOrderList",[]),zt(this,"attackOrderIndex",0),zt(this,"skillRatio",[.75,.55,.35,.15,0]),zt(this,"raidPhases",[]),zt(this,"numForSkillAttack",2),zt(this,"numCurrentAttack",0),zt(this,"interSkillIdleFrames",120),zt(this,"arrAttackTypeList",[]),zt(this,"incAttack",0),zt(this,"decSpeed",0),zt(this,"_power",1),zt(this,"attackable",!0),zt(this,"raidGroggyActive",!1),zt(this,"raidTintR",1),zt(this,"raidTintG",1),zt(this,"raidTintB",1),zt(this,"raidSlotBaseColors",new Map),zt(this,"wanderEnabled",!1),zt(this,"wanderInterval",240),zt(this,"immobile",!1),zt(this,"wanderMinX",100),zt(this,"wanderMaxX",540),zt(this,"wanderMinY",200),zt(this,"wanderMaxY",950),zt(this,"wanderTimer",0),zt(this,"hitBoxGfx",null),zt(this,"targetSwapChance",0),zt(this,"aggroFaceX",null),zt(this,"wanderAfterAttackChance",0),zt(this,"attackDashActive",!1),zt(this,"attackDashTargetX",0),zt(this,"attackDashTargetY",0),zt(this,"attackDashSpeed",0),zt(this,"syncBoneName",""),zt(this,"_prevBoneOffX",0),zt(this,"_prevBoneOffY",0),zt(this,"_syncLogCount",0),this.bossType=1,this.hasSkill=!1,this.weight=5,this.blowImmune=!0,this.stunImmune=!0,this.freezeImmune=!0,this.knockImmune=!0}
+ const t=this.getActiveRaidPhase(); + if(t){ + const i=this.rollRaidCombo(t); + for(let t=1; + t<i.length; + t++)this.arrAttackTypeList.push(i[t]); + return i.length>0?i[0]:0}
+ getRaidBattleTimeFrames(){ + var t; + const i=this.battleController; + return(null==(t=null==i?void 0:i.getBattleTimeFrames)?void 0:t.call(i))??0} + getActiveRaidPhase(){ + if(0===this.raidPhases.length)return null; + const t=this.getRaidBattleTimeFrames(); + let i=null; + for(const s of this.raidPhases)t>=s.startFrame&&(null===i||s.startFrame>i.startFrame)&&(i=s); + return i??this.raidPhases[0]} + rollRaidCombo(t){ + const i=t.combos; + if(0===i.length)return[0]; + let s=0; + for(const n of i)s+=Math.max(0,n.weight); + if(s<=0)return i[0].skills.slice(); + let e=this.random.next()*s; + for(const n of i)if(e-=Math.max(0,n.weight),e<=0)return n.skills.slice(); + return i[i.length-1].skills.slice()}
- if(super.execute(),this.wanderEnabled&&this.isAlive&&this.state!==ex.ATTACK&&this.state!==ex.SKILL&&this.state!==ex.DIE&&(this.wanderTimer++,this.wanderTimer>=this.wanderInterval&&(this.wanderTimer=0,this.triggerWander())),this.attackDashActive&&this.isAlive&&(this.state===ex.ATTACK||this.state===ex.SKILL)){ + if(this.immobile&&this.ensureAttackTarget(),super.execute(),this.wanderEnabled&&this.isAlive&&this.state!==ex.ATTACK&&this.state!==ex.SKILL&&this.state!==ex.DIE&&(this.wanderTimer++,this.wanderTimer>=this.wanderInterval&&(this.wanderTimer=0,this.triggerWander())),this.attackDashActive&&this.isAlive&&(this.state===ex.ATTACK||this.state===ex.SKILL)){
+ ensureAttackTarget(){ + const t=this.target; + if(t&&t.isAlive&&!t.removed&&!t.isUntagetable)return; + if(!this.enemyList)return; + let i=null,s=1/0; + for(const e of this.enemyList){ + if(!e.isAlive||e.removed||e.isUntagetable)continue; + const t=e.x-this.x,n=e.y-this.y,h=t*t+n*n; + h<s&&(s=h,i=e)} + i&&this.setAggroTarget(i)} + releaseEnemyTargets(){ + if(this.enemyList)for(const t of this.enemyList)t.target===this&&(t.target=null,t.xDefault=t.x,t.yDefault=t.y)}
- x:s.x+i,y:s.y} + x:s.x+i,y:s.y+this.weakPointOffsetY}
PaymentLoadingEffect2 3 hunks, 33 statements
- onConfirmClick(){ - this.hide(); - let t=this.onConfirm; - this.onConfirm=null,null!==t&&t()} - onCancelClick(){ - this.hide(); - let t=this.onCancel; - this.onCancel=null,null!==t&&t()} - showError(t,i=null,s=null,e=null){ - let n=t.errorMessage,h=yG.getErrorMessage(t.error); - h&&(n=h),i&&(n+="\n"+i),this.show(n,s,e)} - show(t,i=null,s=null){ - this.onConfirm=i,this.onCancel=s; - let e=yG.getText("GAME_939","웹 마켓에서 특별한 상품들을 만나보실 수 있습니다."),n=yG.getText("GAME_940","웹 마켓으로 이동하시겠습니까?"),h="("+yG.getText("GAME_941","구매하신 상품은 인게임 우편으로 전송됩니다.")+")",r=yG.getText("GAME_942","상품 결제 및 구매 문제 발생 시, NEXT MARKET 고객센터로 문의해 주세요."); - this.lblMessage.text=e+"\n"+n+"\n"+h,this.lblNote.text=r,this.title=yG.getText("COMMON_4","알림"),this.btnConfirm.text=yG.getText("COMMON_65","이동"),this.btnCancel.text=yG.getText("COMMON_2","취소"),this.updateLayout(),super.show(t,i,s)} - updateLayout(){ - this.lblMessage.x=.5*(this.width-this.lblMessage.width),this.btnConfirm.x=.5*(this.width-this.btnConfirm.width-this.btnCancel.width-20),this.btnCancel.x=this.btnConfirm.x+this.btnConfirm.width+20,this.btnConfirm.y=this.lblMessage.y+this.lblMessage.height+30,this.btnCancel.y=this.btnConfirm.y,this.iconNote.y=this.btnConfirm.y+this.btnConfirm.height+40,this.lblNote.y=this.iconNote.y+.5*(this.iconNote.height-this.lblNote.height),this.height=this.lblNote.y+this.lblNote.height+30} - getDefaultPositionY(){ - return.3*KA.stageHeight} - onBackButton(){ - return this.onConfirmClick(),!0} + constructor(){ + super(),this.sp.x=.5*-this.sp.width,this.sp.y=.5*-this.sp.height} + getTextures(){ + return ZA.getTextures("Loading","loading_circle_elf_60f_")}
- Kt(e4,"LineMarketConfirimPopup"),zt(e4,"_instance"); + Kt(Q3,"PaymentLoadingEffect2"),zt(Q3,"_instance");
- const o4=class t extends iP{ - static getInstance(){ - return this._instance||(this._instance=new t),this._instance} - constructor(){ - super(),this.sp.x=.5*-this.sp.width,this.sp.y=.5*-this.sp.height} - getTextures(){ - return ZA.getTextures("Loading","loading_circle_elf_60f_")} - } - ; - Kt(o4,"PaymentLoadingEffect2"),zt(o4,"_instance"); - let a4=o4;
HeroTranscendModeButton 1 hunks, 30 statements
- )),o7=class t extends yB{ + )),r9=class extends B6{ + constructor(t){ + super(t),zt(this,"bgOff"),zt(this,"lblOff"),this.width=50,this.height=35,this.minWidth=50,this.outlineText=!0,this.setTexture({ + texture:ZA.getTexture("UI_Ekkorr","Progress_Bar_Bg_LightGreen"),leftWidth:20,topHeight:13,rightWidth:20,bottomHeight:13} + ),this.bgOff=new CM({ + texture:ZA.getTexture("UI_Ekkorr","Progress_Bar_Bg_LightGray"),leftWidth:20,topHeight:13,rightWidth:20,bottomHeight:13} + ),this.bgOff.visible=!1,this.bgOff.width=this._width,this.bgOff.height=this._height,this.container.addChildAt(this.bgOff,0); + const i=aD.DEFAULT_OUTLINE_FONT_OPTION_17; + i.fill=16777135,i.stroke={ + color:"#33872a",width:4,join:"round"} + ,this.lbl.setStyle(i); + const s=aD.DEFAULT_OUTLINE_FONT_OPTION_17; + s.fill=15790320,s.stroke={ + color:"#535353",width:4,join:"round"} + ,this.lblOff=new YD(t,s.fill,s),this.lblOff.visible=!1,this.container.addChild(this.lblOff),this._activated=!1,this.activated=!0,this.updateLayout()} + updateLayout(){ + super.updateLayout(),this.lbl.x=.5*(this._width-this.lbl.width)+1,this.lblOff&&(this.lblOff.x=this.lbl.x,this.lblOff.y=this.lbl.y)} + set activated(t){ + super.activated=t,this._activated?(this.bg.visible=!0,this.lbl.visible=!0,this.bgOff.visible=!1,this.lblOff.visible=!1):(this.bg.visible=!1,this.lbl.visible=!1,this.bgOff.visible=!0,this.lblOff.visible=!0)} + onDown(t){ + this.container.scale=.95} + onUp(t){ + this.container.scale=1} + onTap(t){ + KL.getInstance().playSFX(KL.SFX_NORMAL_CLICK),WL(),this.onClick&&this.onClick()} + } + ; + Kt(r9,"HeroTranscendModeButton"); + let o9=r9; + const a9=class t extends AB{
ScorpionKing 1 hunks, 27 statements
- this.spineKey="raids/raid1/Scorpion",this.bossScale=1.3,this.spineTimeScale=.82,this.wanderEnabled=!0,this.wanderInterval=150,this.targetSwapChance=.25,this.wanderAfterAttackChance=.35,this.aniIdle="idle",this.aniMove="run",this.aniDie="die",this.aniSkill0="att_01",this.aniSkills=["att_02","att_03","att_04"],this.eventSkill0Hit="att_01_hit",this.eventSkillHits=["att_02_hit","att_03_hit","att_04_hit"],this.isAir=!1,this.hitWidth=150,this.hitHeight=100,this.weakPointBone="_face",this.weakPointSlotNames=t.FACE_POINT_NAMES,this.weakPointOffsetX=0,this.headTintSlots=t.FACE_POINT_NAMES,this.skillRatio=[.78,.55,.3,0],this.numForSkillAttack=2,this.attackOrderList=[[0,0,1,0,2,0,3,0,1,0,2,0,3],[0,1,0,0,2,0,1,3,0,2,0,0,3],[0,0,2,0,1,0,3,0,2,0,1,0,3]]} + this.spineKey="raids/raid1/Scorpion",this.bossScale=1.3,this.spineTimeScale=.82,this.wanderEnabled=!0,this.wanderInterval=150,this.targetSwapChance=.25,this.wanderAfterAttackChance=.35,this.aniIdle="idle",this.aniMove="run",this.aniDie="die",this.aniSkill0="att_01",this.aniSkills=["att_02","att_03","att_04"],this.eventSkill0Hit="att_01_hit",this.eventSkillHits=["att_02_hit","att_03_hit","att_04_hit"],this.isAir=!1,this.hitWidth=150,this.hitHeight=100,this.weakPointBone="_face",this.weakPointSlotNames=t.FACE_POINT_NAMES,this.weakPointOffsetX=0,this.headTintSlots=t.FACE_POINT_NAMES,this.skillRatio=[.78,.55,.3,0],this.numForSkillAttack=2,this.attackOrderList=[[0,0,2,0,1,0,3,0,0]],this.raidPhases=[{ + startFrame:0,label:"P1 기본기",combos:[{ + weight:3,skills:[2],label:"독탄"} + ,{ + weight:2,skills:[1],label:"당기기"} + ,{ + weight:2,skills:[3],label:"내려찍기"} + ]} + ,{ + startFrame:1800,label:"P2 시너지",combos:[{ + weight:3,skills:[1,3],label:"당기기→내려찍기"} + ,{ + weight:3,skills:[2],label:"독탄"} + ,{ + weight:1,skills:[3],label:"내려찍기"} + ,{ + weight:1,skills:[1],label:"당기기"} + ]} + ,{ + startFrame:5400,label:"P3 풀콤보",combos:[{ + weight:3,skills:[1,3,2],label:"당기기→내려찍기→독탄"} + ,{ + weight:2,skills:[1,3],label:"당기기→내려찍기"} + ,{ + weight:2,skills:[2],label:"독탄"} + ]} + ]}
HarpyKing 1 hunks, 27 statements
- this.spineKey="raids/raid1/Harpy",this.bossScale=1.3,this.spineTimeScale=.84,this.wanderEnabled=!0,this.wanderInterval=120,this.targetSwapChance=.3,this.wanderAfterAttackChance=.5,this.syncBoneName="Harpy",this.aniIdle="Harpy_idle",this.aniMove="Harpy_run",this.aniDie="Harpy_die",this.aniSkill0="Harpy_att1",this.aniSkills=["Harpy_att2","Harpy_att3","Harpy_att4","Harpy_att5"],this.eventSkill0Hit="att1_hit",this.eventSkillHits=["att2_hit","att3_hit","att4_hit","att5_hit"],this.isAir=!1,this.airTargetOnly=!0,this.hitWidth=60,this.hitHeight=200,this.skillRatio=[.75,.55,.35,.15,0],this.numForSkillAttack=2,this.attackOrderList=[[1,0,0,1,2,0,4,1,2,4,4,4,1,4,1,3,0,2,0,1,4,3,1,0,1,0,1,1,1,1,0,1,2,2,2,2,0,1,4,2,1,4,1,3,3,4,0,3,2,3,1,2,1,1,3,1,3,3,0,4,1,0,4,3,0,2,2,1,0,1,4,3,2,2,1,3,3,1,4,2,0,2,4,0,2,1,3,1,3,0],[2,4,2,4,4,2,4,4,2,3,4,1,4,4,1,0,0,0,3,0,3,0,0,4,3,1,1,4,3,2,2,4,2,1,0,2,4,4,1,0,4,4,4,0,0,3,3,1,2,0,0,0,0,1,0,1,2,0,2,4,4,3,0,3,3,3,1,4,3,2,1,4,1,4,1,0,0,0,3,1,4,4,0,3,1,2,4,3,3,2],[3,3,4,4,2,2,0,1,2,1,4,3,4,1,2,4,4,2,1,0,2,1,0,2,1,4,1,1,4,4,3,3,1,3,3,0,2,4,4,1,2,3,2,0,0,3,2,3,2,2,1,3,1,1,4,2,4,2,4,2,3,2,4,3,2,1,0,3,4,0,1,3,4,1,1,4,3,3,0,2,0,4,4,2,4,1,0,3,0,2],[4,2,4,2,4,2,3,2,4,3,2,1,0,3,4,0,1,3,4,1,1,4,3,3,0,2,0,4,4,2,4,1,0,3,0,2,3,3,4,4,2,2,0,1,2,1,4,3,4,1,2,4,4,2,1,0,2,1,0,2,1,4,1,1,4,4,3,3,1,3,3,0,2,4,4,1,2,3,2,0,0,3,2,3,2,2,1,3,1,1],[0,1,0,1,1,1,1,0,1,2,2,2,2,0,1,4,2,1,4,1,3,3,4,0,3,2,3,1,2,1,1,3,1,3,3,0,4,1,0,4,3,0,2,2,1,0,1,4,3,2,2,1,3,3,1,4,2,0,2,4,0,2,1,3,1,3,0,1,0,0,1,2,0,4,1,2,4,4,4,1,4,1,3,0,2,0,1,4,3,1]]} + this.spineKey="raids/raid1/Harpy",this.bossScale=1.3,this.spineTimeScale=.84,this.wanderEnabled=!0,this.wanderInterval=120,this.targetSwapChance=.3,this.wanderAfterAttackChance=.5,this.syncBoneName="Harpy",this.aniIdle="Harpy_idle",this.aniMove="Harpy_run",this.aniDie="Harpy_die",this.aniSkill0="Harpy_att1",this.aniSkills=["Harpy_att2","Harpy_att3","Harpy_att4","Harpy_att5"],this.eventSkill0Hit="att1_hit",this.eventSkillHits=["att2_hit","att3_hit","att4_hit","att5_hit"],this.isAir=!1,this.airTargetOnly=!0,this.hitWidth=60,this.hitHeight=200,this.skillRatio=[.75,.55,.35,.15,0],this.numForSkillAttack=2,this.attackOrderList=[[0,0,2,0,3,0,0,4,0,0]],this.raidPhases=[{ + startFrame:0,label:"P1 기본기",combos:[{ + weight:3,skills:[3],label:"바람"} + ,{ + weight:2,skills:[2],label:"회오리"} + ,{ + weight:1,skills:[4],label:"깃털폭풍"} + ]} + ,{ + startFrame:1800,label:"P2 압박",combos:[{ + weight:3,skills:[3,4],label:"바람→깃털폭풍"} + ,{ + weight:3,skills:[2],label:"회오리"} + ,{ + weight:2,skills:[4],label:"깃털폭풍"} + ,{ + weight:1,skills:[3],label:"바람"} + ]} + ,{ + startFrame:5400,label:"P3 필살",combos:[{ + weight:3,skills:[2,4],label:"회오리→깃털폭풍"} + ,{ + weight:3,skills:[3,4],label:"바람→깃털폭풍"} + ,{ + weight:2,skills:[4],label:"깃털폭풍"} + ]} + ]}
PetAwakeningEffects 3 hunks, 24 statements
- return this._cachedGameSpeed=i,i} + return i+=this.sumAwakenedCoupleTeamPlusCappedOwned(this.WOLF_PET_KINDNUM,.2,.5,20),this._cachedGameSpeed=i,i}
+ static getGolemMaxLvContribution(){ + const t=KN.getInstance().version; + return this._cachedGolemMaxLvVer===t||(this._cachedGolemMaxLvVer=t,this._cachedGolemMaxLv=this.sumAwakenedCoupleTeamPlusCappedOwned(this.GOLEM_PET_KINDNUM,2,5,100)),this._cachedGolemMaxLv} + static getFinnyCoreContribution(){ + const t=KN.getInstance().version; + return this._cachedFinnyCoreVer===t||(this._cachedFinnyCoreVer=t,this._cachedFinnyCore=this.sumAwakenedCoupleTeamPlusCappedOwned(this.FINNY_PET_KINDNUM,2,5,200)),this._cachedFinnyCore}
+ static sumAwakenedCoupleTeamPlusCappedOwned(t,i,s,e){ + var n; + if(!this.isPetAwakened(t))return 0; + const h=(null==(n=lx.getInstance().getBookVO(t))?void 0:n.couple)??0; + if(h<=0)return 0; + const r=vx.getInstance(),o=Kt(t=>5===t?i:6===t?s:0,"per"); + let a=0; + for(const l of r.list){ + const t=r.getBookVO(l.kindNum); + t&&this.isCoupleHeroBookVO(t,h)&&(a+=o(t.grade))} + let c=0; + for(const l of r.ownedUnitList){ + const t=r.getBookVO(l.kindNum); + if(!t||!this.isCoupleHeroBookVO(t,h))continue; + const i=o(t.grade); + 0!==i&&(c+=i*((l.count??0)+(l.trans[0]??0)+(l.trans[1]??0)+(l.trans[2]??0)))} + return a+Math.min(c,e)}
RaidWarningCircle 1 hunks, 23 statements
+ const G2=class extends Be{ + constructor(){ + super(),zt(this,"g",new Gf),zt(this,"radius",0),this.eventMode="none",this.addChild(this.g)} + show(t,i,s){ + this.x=t,this.y=i,this.radius=s,this.draw(.3,0),qG.getInstance().addChild(this)} + update(t){ + const i=Math.max(0,Math.min(1,t)),s=.22+.18*(.5+.5*Math.sin(i*Math.PI*8)); + this.draw(s,i)} + draw(t,i){ + const s=this.g; + s.clear(),s.circle(0,0,this.radius).fill({ + color:16719904,alpha:.5*t} + ),s.circle(0,0,this.radius).stroke({ + width:4,color:16732240,alpha:.9} + ),i>0&&s.circle(0,0,this.radius*i).stroke({ + width:2,color:16777215,alpha:.55} + )} + dispose(){ + this.g.clear(),this.parent&&this.parent.removeChild(this)} + } + ; + Kt(G2,"RaidWarningCircle"); + let B2=G2;
FriendInviteManager 1 hunks, 22 statements
- } - static get totalReferrals(){ - return this._totalReferrals} - static get qualifiedReferrals(){ - return this._qualifiedReferrals} - static get claimed(){ - return this._claimed} - static getRewardList(){ - return this.rewardList} - static async claimRewards(i){ - if(this.requestPending3)return; - this.requestPending3=!0; - const s=await iD.getInstance().referral.claimReward(i,!0); - if(0==s.success){ - this.requestPending3=!1,lS.getInstance().dispatchCustomEvent("ReferralStatus"); - let e=s.errorMessage; - const n=s.error; - return"INSUFFICIENT_REFERRAL"==n?e=yG.getValueReplaceMulti("GAME_145",["##","@@"],[t.FRIEND_LEVEL,i]):"ALREADY_CLAIMED"==n&&(e=yG.getText("COMMON_276","이미 보상을 받았습니다.")),void dG.getInstance().show(e)} - "status"in s.body&&this.setStatusData(s.body.status),this.requestPending3=!1,lS.getInstance().dispatchCustomEvent("ReferralStatus",s)} - static hasReward(){ - return this.claimed<this.qualifiedReferrals} - }
EvolveConfirmPopup 8 hunks, 21 statements
- super(),zt(this,"onEvolved",null),zt(this,"lblQuestion",new KD("보석을 사용하여 진화하시겠습니까?",nD.DEFAULT_COLOR,nD.DEFAULT_FONT_OPTION_18)),zt(this,"lblHeaderCurrent",new KD("현재",11184810,nD.DEFAULT_FONT_OPTION_16)),zt(this,"lblHeaderArrow",new KD("→",16777215,nD.DEFAULT_FONT_OPTION_16)),zt(this,"lblHeaderEvolved",new KD("진화 후",16768324,nD.DEFAULT_FONT_OPTION_16)),zt(this,"lblHpCurrent",new PB("UI_HEART","0",11184810,nD.DEFAULT_FONT_OPTION_16)),zt(this,"lblHpArrow",new KD("→",16777215,nD.DEFAULT_FONT_OPTION_16)),zt(this,"lblHpEvolved",new PB("UI_HEART","0",8978312,nD.DEFAULT_FONT_OPTION_16)),zt(this,"lblAtkCurrent",new PB("UI_SWORD","0",11184810,nD.DEFAULT_FONT_OPTION_16)),zt(this,"lblAtkArrow",new KD("→",16777215,nD.DEFAULT_FONT_OPTION_16)),zt(this,"lblAtkEvolved",new PB("UI_SWORD","0",8978312,nD.DEFAULT_FONT_OPTION_16)),zt(this,"lblDefCurrent",new PB("UI_PHY_DEFENSE","0",11184810,nD.DEFAULT_FONT_OPTION_16)),zt(this,"lblDefArrow",new KD("→",16777215,nD.DEFAULT_FONT_OPTION_16)),zt(this,"lblDefEvolved",new PB("UI_PHY_DEFENSE","0",8978312,nD.DEFAULT_FONT_OPTION_16)),zt(this,"lblTribeTitle",new KD("# 종족 특성",nD.DEFAULT_COLOR,nD.DEFAULT_FONT_OPTION_16)),zt(this,"lblTribeDesc",new KD("",nD.DEFAULT_COLOR,nD.DEFAULT_FONT_OPTION_16)),zt(this,"lblUniqueTitle",new KD("# 고유스킬",nD.DEFAULT_COLOR,nD.DEFAULT_FONT_OPTION_16)),zt(this,"lblUniqueDesc",new KD("",nD.DEFAULT_COLOR,nD.DEFAULT_FONT_OPTION_16)),zt(this,"btnCancel",new AU("UI_CLOSE_BTN","","취소",.7,160,70)),zt(this,"btnConfirm",new AU("UI_GEM","200","진화",.8,200,70)),zt(this,"vo"),zt(this,"isBusy",!1),zt(this,"isRosterMode",!1),zt(this,"particleContainer",new Be),zt(this,"particleList",[]),zt(this,"particleFrame",0),zt(this,"PARTICLE_DURATION",55),this.title=yG.getText("GAME_145","진화 확인"),this.lblQuestion.text=yG.getText("GAME_142","보석을 사용하여 진화하시겠습니까?"),this.lblQuestion.y=95,this.contentContainer.addChild(this.lblQuestion),this.lblHeaderCurrent.text=yG.getText("GAME_152","현재"),this.lblHeaderEvolved.text=yG.getText("GAME_153","진화 후"),this.contentContainer.addChild(this.lblHeaderCurrent,this.lblHeaderArrow,this.lblHeaderEvolved),this.contentContainer.addChild(this.lblHpCurrent,this.lblHpArrow,this.lblHpEvolved),this.contentContainer.addChild(this.lblAtkCurrent,this.lblAtkArrow,this.lblAtkEvolved),this.contentContainer.addChild(this.lblDefCurrent,this.lblDefArrow,this.lblDefEvolved),nD.setLabelWrapWidth(this.lblTribeDesc,430),nD.setLabelWrapWidth(this.lblUniqueDesc,430),this.contentContainer.addChild(this.lblTribeTitle,this.lblTribeDesc,this.lblUniqueTitle,this.lblUniqueDesc),this.btnCancel.text=yG.getText("COMMON_2","취소"),this.btnCancel.color=AU.RED,this.btnCancel.showIconLabel=!1,this.btnCancel.showTextLabel=!0,this.btnCancel.onClick=()=>this.hide(),this.btnConfirm.text=yG.getText("GAME_67","진화"),this.btnConfirm.color=AU.GREEN,this.btnConfirm.showIconLabel=!0,this.btnConfirm.showTextLabel=!0,this.btnConfirm.onClick=()=>this.onConfirmClick(),this.contentContainer.addChild(this.btnCancel,this.btnConfirm),this.addChild(this.particleContainer),this.updateLayout()} + super(),zt(this,"onEvolved",null),zt(this,"lblQuestion",new YD("보석을 사용하여 진화하시겠습니까?",aD.DEFAULT_COLOR,aD.DEFAULT_FONT_OPTION_18)),zt(this,"lblHeaderCurrent",new YD("현재",11184810,aD.DEFAULT_FONT_OPTION_16)),zt(this,"lblHeaderArrow",new YD("→",16777215,aD.DEFAULT_FONT_OPTION_16)),zt(this,"lblHeaderEvolved",new YD("진화 후",16768324,aD.DEFAULT_FONT_OPTION_16)),zt(this,"lblHpCurrent",new GB("UI_HEART","0",11184810,aD.DEFAULT_FONT_OPTION_16)),zt(this,"lblHpArrow",new YD("→",16777215,aD.DEFAULT_FONT_OPTION_16)),zt(this,"lblHpEvolved",new GB("UI_HEART","0",8978312,aD.DEFAULT_FONT_OPTION_16)),zt(this,"lblAtkCurrent",new GB("UI_SWORD","0",11184810,aD.DEFAULT_FONT_OPTION_16)),zt(this,"lblAtkArrow",new YD("→",16777215,aD.DEFAULT_FONT_OPTION_16)),zt(this,"lblAtkEvolved",new GB("UI_SWORD","0",8978312,aD.DEFAULT_FONT_OPTION_16)),zt(this,"lblDefCurrent",new GB("UI_PHY_DEFENSE","0",11184810,aD.DEFAULT_FONT_OPTION_16)),zt(this,"lblDefArrow",new YD("→",16777215,aD.DEFAULT_FONT_OPTION_16)),zt(this,"lblDefEvolved",new GB("UI_PHY_DEFENSE","0",8978312,aD.DEFAULT_FONT_OPTION_16)),zt(this,"lblTribeTitle",new YD("# 종족 특성",aD.DEFAULT_COLOR,aD.DEFAULT_FONT_OPTION_16)),zt(this,"lblTribeDesc",new YD("",aD.DEFAULT_COLOR,aD.DEFAULT_FONT_OPTION_16)),zt(this,"lblUniqueTitle",new YD("# 고유스킬",aD.DEFAULT_COLOR,aD.DEFAULT_FONT_OPTION_16)),zt(this,"lblUniqueDesc",new YD("",aD.DEFAULT_COLOR,aD.DEFAULT_FONT_OPTION_16)),zt(this,"btnCancel",new kU("UI_CLOSE_BTN","","취소",.7,160,70)),zt(this,"btnConfirm",new kU("UI_GEM","200","진화",.8,200,70)),zt(this,"vo"),zt(this,"isBusy",!1),zt(this,"isRosterMode",!1),zt(this,"count",1),zt(this,"particleContainer",new Be),zt(this,"particleList",[]),zt(this,"particleFrame",0),zt(this,"PARTICLE_DURATION",55),this.title=AG.getText("GAME_145","진화 확인"),this.lblQuestion.text=AG.getText("GAME_142","보석을 사용하여 진화하시겠습니까?"),this.lblQuestion.y=95,this.contentContainer.addChild(this.lblQuestion),this.lblHeaderCurrent.text=AG.getText("GAME_152","현재"),this.lblHeaderEvolved.text=AG.getText("GAME_153","진화 후"),this.contentContainer.addChild(this.lblHeaderCurrent,this.lblHeaderArrow,this.lblHeaderEvolved),this.contentContainer.addChild(this.lblHpCurrent,this.lblHpArrow,this.lblHpEvolved),this.contentContainer.addChild(this.lblAtkCurrent,this.lblAtkArrow,this.lblAtkEvolved),this.contentContainer.addChild(this.lblDefCurrent,this.lblDefArrow,this.lblDefEvolved),aD.setLabelWrapWidth(this.lblTribeDesc,430),aD.setLabelWrapWidth(this.lblUniqueDesc,430),this.contentContainer.addChild(this.lblTribeTitle,this.lblTribeDesc,this.lblUniqueTitle,this.lblUniqueDesc),this.btnCancel.text=AG.getText("COMMON_2","취소"),this.btnCancel.color=kU.RED,this.btnCancel.showIconLabel=!1,this.btnCancel.showTextLabel=!0,this.btnCancel.onClick=()=>this.hide(),this.btnConfirm.text=AG.getText("GAME_67","진화"),this.btnConfirm.color=kU.GREEN,this.btnConfirm.showIconLabel=!0,this.btnConfirm.showTextLabel=!0,this.btnConfirm.onClick=()=>this.onConfirmClick(),this.contentContainer.addChild(this.btnCancel,this.btnConfirm),this.addChild(this.particleContainer),this.updateLayout()}
- show(t,i=!1){ - this.vo=t,this.isBusy=!1,this.isRosterMode=i,this.title=yG.getText("GAME_145","진화 확인"),this.lblQuestion.text=yG.getText("GAME_142","보석을 사용하여 진화하시겠습니까?"),this.lblHeaderCurrent.text=yG.getText("GAME_152","현재"),this.lblHeaderEvolved.text=yG.getText("GAME_153","진화 후"),this.lblTribeTitle.text=`# ${ + setData(t,i=!1,s=1){ + this.vo=t,this.isBusy=!1,this.isRosterMode=i,this.isRosterMode?this.count=s:this.count=1,this.title=AG.getText("GAME_145","진화 확인"),this.lblQuestion.text=AG.getText("GAME_142","보석을 사용하여 진화하시겠습니까?"),this.lblHeaderCurrent.text=AG.getText("GAME_152","현재"),this.lblHeaderEvolved.text=AG.getText("GAME_153","진화 후"),this.lblTribeTitle.text=`# ${
- this.lblUniqueDesc.text=e?yG.getText(e.getDescKey(),e.desc):yG.getText("COMMON_367","없음"),this.btnCancel.text=yG.getText("COMMON_2","취소"),this.btnConfirm.text=yG.getText("GAME_67","진화"),this.updateStats(),this.updateLayout(),super.show()} + this.lblUniqueDesc.text=n?AG.getText(n.getDescKey(),n.desc):AG.getText("COMMON_367","없음"),this.btnCancel.text=AG.getText("COMMON_2","취소"),this.count>1?(this.btnConfirm.activatedTextLabelColor=13434624,this.btnConfirm.text=`${ + AG.getText("GAME_67","진화")} + (x${ + this.count} + )`):(this.btnConfirm.activatedTextLabelColor=-1,this.btnConfirm.text=AG.getText("GAME_67","진화")),this.updateStats(),this.updateCost(),this.updateLayout(),super.show()}
- const t=vx.getInstance().getBookVO(this.vo.kindNum),i=vx.getInstance().getBookVO(this.vo.evolKindNum),s=$7[this.vo.grade]??0; + const t=vx.getInstance().getBookVO(this.vo.kindNum),i=vx.getInstance().getBookVO(this.vo.evolKindNum);
- `,this.btnConfirm.iconText=String(s)} + `}
+ updateCost(){ + this.btnConfirm.iconText=String(this.getCost())} + getCost(){ + const t=V9[this.vo.grade]??0; + return this.count*t}
- const t=$7[this.vo.grade]??0; + const t=this.getCost();
- if(e=this.isRosterMode?await iD.getInstance().hero.evolveOwned(this.vo.kindNum,this.vo.trans,!0):await iD.getInstance().hero.evolve(this.vo.id),!e||!1===e.success)return pV.getInstance().showMessage(yG.getText("COMMON_77","네트워크 오류가 발생하였습니다.")),void(this.isBusy=!1); + if(e=this.isRosterMode?await hD.getInstance().hero.evolveOwned(`${ + this.vo.kindNum} + -${ + this.count} + `,!0):await hD.getInstance().hero.evolve(this.vo.id),!e||!1===e.success)return vV.getInstance().showMessage(AG.getText("COMMON_77","네트워크 오류가 발생하였습니다.")),void(this.isBusy=!1);
ShopDataManager 6 hunks, 14 statements
- zt(this,"_unlockWave",10),zt(this,"_productBookEnableYn",""),zt(this,"_nextMarketYn",""),zt(this,"allProducts",[]),zt(this,"packageList",[]),zt(this,"periodList",[]),zt(this,"normalList",[]),zt(this,"wavePassList",[]),zt(this,"reviewShopList",[]),zt(this,"requestPending",!1),zt(this,"_productIdsWithHammer",null)} + zt(this,"_unlockWave",10),zt(this,"_productBookEnableYn",""),zt(this,"_nextMarketYn",""),zt(this,"allProducts",[]),zt(this,"packageList",[]),zt(this,"periodList",[]),zt(this,"normalList",[]),zt(this,"wavePassList",[]),zt(this,"reviewShopList",[]),zt(this,"requestPending",!1),zt(this,"_productIdsWithHammer",null),zt(this,"objTargeting",{ + } + )}
+ var i;
- id:s.id??0,productId:s.productId??0,name:s.name??"",sku:s.sku??"",googleId:s.googleId??"",appleId:s.appleId??"",googleIdKr:s.googleIdKr??"",appleIdKr:s.appleIdKr??"",main:s.main??0,sub:s.sub??0,sub2:s.sub2??0,payback:s.payback??0,currency:s.currency??"",price:s.price??0,usdPrice:s.usdPrice??0,slxPrice:s.slxPrice??0,amount:s.amount??s.price??0,maxPurchase:s.maxPurchase??0,frequency:s.frequency??0,rewards:s.rewards??[],iconNames:s.iconNames??"",descriptions:s.descriptions??"",descriptionLangIds:s.descriptionLangIds??"",imageURL:s.imageURL??"",purchaseCount:0,active:s.active??0} + id:e.id??0,productId:e.productId??0,name:e.name??"",sku:e.sku??"",googleId:e.googleId??"",appleId:e.appleId??"",googleIdKr:e.googleIdKr??"",appleIdKr:e.appleIdKr??"",main:e.main??0,sub:e.sub??0,sub2:e.sub2??0,payback:e.payback??0,currency:e.currency??"",price:e.price??0,usdPrice:e.usdPrice??0,slxPrice:e.slxPrice??0,amount:e.amount??e.price??0,maxPurchase:e.maxPurchase??0,frequency:e.frequency??0,rewards:e.rewards??[],iconNames:e.iconNames??"",descriptions:e.descriptions??"",descriptionLangIds:e.descriptionLangIds??"",imageURL:e.imageURL??"",purchaseCount:0,active:e.active??0,targeting:e.targeting}
- if(this.allProducts.push(t),0==t.main)switch(t.sub){ + if(this.allProducts.push(t),t.targeting){ + const s=(null==(i=t.targeting.triggerEvent)?void 0:i.type)??""; + s&&(this.objTargeting[s]||(this.objTargeting[s]=[]),this.objTargeting[s].push(t.productId))} + else if(0==t.main)switch(t.sub){
- return t&&0!==t.length?t.includes("buff:ads")?yG.getText("GAME_348","광고 제거 상품이 적용되었습니다."):t.includes("buff:speed")?yG.getText("GAME_349","2배속 상품이 적용되었습니다."):t.includes("buff:assistant")?yG.getText("GAME_1242","전문비서가 고용되었습니다."):t.includes("pass")?yG.getText("GAME_350","WAVE 패스가 활성화되었습니다."):t.includes("mail")?yG.getText("GAME_351","상품이 메일로 전송되었습니다."):yG.getText("GAME_347","상품이 지급되었습니다."):yG.getText("GAME_347","상품이 지급되었습니다.")} + if(!t||0===t.length)return AG.getText("GAME_347","상품이 지급되었습니다."); + const i=[]; + return t.includes("buff:ads")&&i.push(AG.getText("GAME_348","광고 제거 상품이 적용되었습니다.")),t.includes("buff:speed")&&i.push(AG.getText("GAME_349","2배속 상품이 적용되었습니다.")),t.includes("buff:assistant")&&i.push(AG.getText("GAME_1242","전문비서가 고용되었습니다.")),t.includes("pass")&&i.push(AG.getText("GAME_350","WAVE 패스가 활성화되었습니다.")),t.includes("mail")&&i.push(AG.getText("GAME_351","상품이 메일로 전송되었습니다.")),0==i.length&&i.push(AG.getText("GAME_347","상품이 지급되었습니다.")),i.join("\n")}
+ getTargetingByType(t){ + return this.objTargeting[t]}
MissionGuideController 3 hunks, 12 statements
- zt(this,"active",!1),zt(this,"checking",!1),zt(this,"frameSkip",0),zt(this,"currentSteps",[]),zt(this,"cachedCondition",null),zt(this,"pointingDelayTimer",null),zt(this,"pointingDelayed",!1),zt(this,"listItemsGetter",null),zt(this,"bottomMenuGetter",null),zt(this,"popupButtonGetter",null),zt(this,"subMenuButtonGetter",null),zt(this,"currentSubViewName",""),zt(this,"pendingParent",null),zt(this,"pendingBtn",null)} + zt(this,"active",!1),zt(this,"checking",!1),zt(this,"frameSkip",0),zt(this,"currentSteps",[]),zt(this,"cachedCondition",null),zt(this,"pointingDelayTimer",null),zt(this,"pointingDelayed",!1),zt(this,"listItemsGetter",null),zt(this,"bottomMenuGetter",null),zt(this,"popupButtonGetter",null),zt(this,"subMenuButtonGetter",null),zt(this,"currentSubViewName",""),zt(this,"reviveButtonGetter",null),zt(this,"pendingParent",null),zt(this,"pendingBtn",null)}
+ registerReviveButtonGetter(t){ + this.reviveButtonGetter=t,this.updatePointing()} + unregisterReviveButtonGetter(){ + this.reviveButtonGetter=null}
+ if("revive"===i.action){ + if(!this.reviveButtonGetter)return; + const t=i.param; + if(t&&"-1"!==t){ + const i=this.reviveButtonGetter(t); + i&&this.showWithDelay(i.parent,i.btn)} + return}
EvolveMaterialConfirmPopup 4 hunks, 10 statements
- super(),zt(this,"lblMessage",new KD("",nD.DEFAULT_COLOR,nD.DEFAULT_FONT_OPTION_17)),zt(this,"btnConfirm",new AU("UI_GEM","0",yG.getText("GAME_67","진화"),.8,200,70)),zt(this,"onConfirm",null),this.title="",this.outSideClickHide=!0,this.contentContainer.addChild(this.lblMessage,this.btnConfirm),this.btnConfirm.showIconLabel=!0,this.btnConfirm.showTextLabel=!0,this.btnConfirm.color=AU.GREEN,this.btnConfirm.onClick=this.onConfirmClick.bind(this),this.btnClose.onClick=this.onCancelClick.bind(this),nD.setLabelWrapWidth(this.lblMessage,this.width-60)} + super(),zt(this,"lblMessage",new YD("",aD.DEFAULT_COLOR,aD.DEFAULT_FONT_OPTION_17)),zt(this,"lblMessage2",new YD("",aD.COLOR_YELLOW,aD.DEFAULT_FONT_OPTION_17)),zt(this,"btnConfirm",new kU("UI_GEM","0",AG.getText("GAME_67","진화"),.8,200,70)),zt(this,"onConfirm",null),this.title="",this.outSideClickHide=!0,this.lblMessage2.visible=!1,this.contentContainer.addChild(this.lblMessage,this.lblMessage2,this.btnConfirm),this.btnConfirm.showIconLabel=!0,this.btnConfirm.showTextLabel=!0,this.btnConfirm.color=kU.GREEN,this.btnConfirm.onClick=this.onConfirmClick.bind(this),this.btnClose.onClick=this.onCancelClick.bind(this),aD.setLabelWrapWidth(this.lblMessage,this.width-60),aD.setLabelWrapWidth(this.lblMessage2,this.width-60)}
- showWith(t,i,s){ + showWith(t,i,s,e=1){
- 영웅을 진화하시겠습니까?`),this.btnConfirm.text=yG.getText("GAME_67","진화"),this.btnConfirm.iconText=String(i),this.updateLayout(),super.show()} + 영웅을 진화하시겠습니까?`),e>1?(this.lblMessage2.text=`${ + t} + x ${ + e} + `,this.lblMessage2.visible=!0):this.lblMessage2.visible=!1,this.btnConfirm.text=AG.getText("GAME_67","진화"),this.btnConfirm.iconText=String(i*e),this.updateLayout(),super.show()}
- this.lblMessage.x=.5*(this.width-this.lblMessage.width),this.lblMessage.y=90,this.btnConfirm.x=.5*(this.width-this.btnConfirm.width),this.btnConfirm.y=this.lblMessage.y+this.lblMessage.height+30,this.height=this.btnConfirm.y+this.btnConfirm.height+40} + this.lblMessage.x=.5*(this.width-this.lblMessage.width),this.lblMessage.y=90; + let t=this.lblMessage.y+this.lblMessage.height+30; + this.lblMessage2.visible&&(this.lblMessage2.x=.5*(this.width-this.lblMessage2.width),this.lblMessage2.y=this.lblMessage.y+this.lblMessage.height+15,t=this.lblMessage2.y+this.lblMessage2.height+30),this.btnConfirm.x=.5*(this.width-this.btnConfirm.width),this.btnConfirm.y=t,this.height=this.btnConfirm.y+this.btnConfirm.height+40}
RaidHud 3 hunks, 8 statements
- incomingDamageMult:.6,maxHpMult:1.5,aggroDamageMult:1.8} + incomingDamageMult:.8,maxHpMult:1.3,aggroDamageMult:1.8}
- constructor(i,s,e,n,h,r=[],o){ - zt(this,"root"),zt(this,"bossFace",new v3),zt(this,"bossName"),zt(this,"bossMult"),zt(this,"bossBar",new Gf),zt(this,"timerText"),zt(this,"lastTimerStr",""),zt(this,"closeButton"),zt(this,"hpGauges",[]),zt(this,"hpTexts",[]),zt(this,"lastHpStr",[]),zt(this,"aggroGauges",[]),zt(this,"aggroIcons",[]),zt(this,"aggroTexts",[]),zt(this,"lastAggroStr",[]),zt(this,"dmgGauges",[]),zt(this,"dmgTexts",[]),zt(this,"lastDmgStr",[]),zt(this,"emblemDefs",[]),zt(this,"emblemButtonBgs",[]),zt(this,"emblemCooldownTexts",[]),zt(this,"whiteFill",1),zt(this,"lastN",-1),zt(this,"lastMultStr",""),this.root=new Be,this.root.label="RaidHud",this.root.eventMode="passive",Cst.getInstance().addChild(this.root),this.closeButton=this.createCloseButton(h); + constructor(i,s,e,n,h,r=[],o,a){ + zt(this,"root"),zt(this,"bossFace",new d3),zt(this,"bossName"),zt(this,"bossMult"),zt(this,"bossBar",new Gf),zt(this,"timerText"),zt(this,"lastTimerStr",""),zt(this,"closeButton"),zt(this,"hpGauges",[]),zt(this,"hpTexts",[]),zt(this,"lastHpStr",[]),zt(this,"aggroGauges",[]),zt(this,"aggroIcons",[]),zt(this,"aggroTexts",[]),zt(this,"lastAggroStr",[]),zt(this,"dmgGauges",[]),zt(this,"dmgTexts",[]),zt(this,"lastDmgStr",[]),zt(this,"emblemDefs",[]),zt(this,"emblemButtonBgs",[]),zt(this,"emblemCooldownTexts",[]),zt(this,"onCorpClick"),zt(this,"whiteFill",1),zt(this,"lastN",-1),zt(this,"lastMultStr",""),this.onCorpClick=a,this.root=new Be,this.root.label="RaidHud",this.root.eventMode="passive",xet.getInstance().addChild(this.root),this.closeButton=this.createCloseButton(h);
+ const y=M; + for(const t of[a,f])t.eventMode="static",t.cursor="pointer",t.on("pointerup",()=>{ + var t; + return null==(t=this.onCorpClick)?void 0:t.call(this,y)} + );
TopMenu 2 hunks, 8 statements
- ),this.lblMedalEvent.text="+00%\n3/3",this.lblMedalEvent.textColor=6801914,this.lblMedalEvent.align="center",this.lblMedalEvent.lineHeight=17,this.lblMedalEvent.x=this.btnRevive.x+.5*(this.btnRevive.width-this.lblMedalEvent.width),this.lblMedalEvent.y=this.btnRevive.y+this.btnRevive.height-.5*this.lblMedalEvent.height,this.addChild(this.lblMedalEvent),this.btnMedalEvent.x=this.lblMedalEvent.x+this.lblMedalEvent.width,this.btnMedalEvent.y=this.lblMedalEvent.y+.5*(this.lblMedalEvent.height-this.btnMedalEvent.height),this.btnMedalEvent.onClick=this.onMedalEventClick.bind(this),this.addChild(this.btnMedalEvent),this.lblSpeed.textOffsetY=2,this.lblSpeed.textOffsetX=2,this.lblSpeed.iconScale=.7,this.lblSpeed.textSize=13,this.lblSpeed.x=6,this.lblSpeed.y=this.btnRevive.y+this.btnRevive.height+8,this.lblSpeed.eventMode="static",this.lblSpeed.cursor="pointer",this.lblSpeed.hitArea=new Pi(0,0,120,30),this.lblSpeed.on("pointerdown",this.onSpeedClick,this),this.addChild(this.lblSpeed),this.btnHeroPresent.visible=!1,this.btnHeroPresent.x=100,this.btnHeroPresent.y=this.lblSpeed.y+this.lblSpeed.height+12,this.btnHeroPresent.onClick=this.onHeroPresentClick.bind(this),this.addChild(this.btnHeroPresent),this.heartInfo.x=this.btnRevive.x+this.btnRevive.width+5,this.heartInfo.y=5,this.addChild(this.heartInfo),this.addChild(vU.getInstance()),this._height=Math.max(this.bg.height,this.waveBar.y+this.waveBar.height),this.profile.on("pointerdown",this.onProfileClick,this)} + ),this.lblMedalEvent.text="+00%\n3/3",this.lblMedalEvent.textColor=6801914,this.lblMedalEvent.align="center",this.lblMedalEvent.lineHeight=17,this.lblMedalEvent.x=this.btnRevive.x+.5*(this.btnRevive.width-this.lblMedalEvent.width),this.lblMedalEvent.y=this.btnRevive.y+this.btnRevive.height-.5*this.lblMedalEvent.height,this.addChild(this.lblMedalEvent),this.btnMedalEvent.x=this.lblMedalEvent.x+this.lblMedalEvent.width,this.btnMedalEvent.y=this.lblMedalEvent.y+.5*(this.lblMedalEvent.height-this.btnMedalEvent.height),this.btnMedalEvent.onClick=this.onMedalEventClick.bind(this),this.addChild(this.btnMedalEvent),this.lblSpeed.textOffsetY=2,this.lblSpeed.textOffsetX=2,this.lblSpeed.iconScale=.7,this.lblSpeed.textSize=13,this.lblSpeed.x=6,this.lblSpeed.y=this.btnRevive.y+this.btnRevive.height+8,this.lblSpeed.eventMode="static",this.lblSpeed.cursor="pointer",this.lblSpeed.hitArea=new Pi(0,0,120,30),this.lblSpeed.on("pointerdown",this.onSpeedClick,this),this.addChild(this.lblSpeed),this.btnHeroPresent.visible=!1,this.btnHeroPresent.x=100,this.btnHeroPresent.y=this.lblSpeed.y+this.lblSpeed.height+12,this.btnHeroPresent.onClick=this.onHeroPresentClick.bind(this),this.addChild(this.btnHeroPresent),this.heartInfo.x=this.btnRevive.x+this.btnRevive.width+5,this.heartInfo.y=5,this.addChild(this.heartInfo),this.addChild(MU.getInstance()),this.addChild(u6.getInstance()),this._height=Math.max(this.bg.height,this.waveBar.y+this.waveBar.height),this.profile.on("pointerdown",this.onProfileClick,this),HV.getInstance().registerReviveButtonGetter(t=>"btnRevive"===t&&this.btnRevive.visible?{ + parent:this,btn:{ + x:this.btnRevive.x,y:this.btnRevive.y,width:this.btnRevive.width,height:this.btnRevive.height} + } + :null)}
- this.lblSpeed.x=7,this.lblMedalEvent.visible?this.lblSpeed.y=this.lblMedalEvent.y+this.lblMedalEvent.height+8:this.lblSpeed.y=this.btnRevive.y+this.btnRevive.height+8,this.btnHeroPresent.x=7,this.btnHeroPresent.y=this.lblSpeed.y+this.lblSpeed.height+12} + this.lblSpeed.x=7,this.lblMedalEvent.visible?this.lblSpeed.y=this.lblMedalEvent.y+this.lblMedalEvent.height+8:this.lblSpeed.y=this.btnRevive.y+86+8,this.btnHeroPresent.x=7,this.btnHeroPresent.y=this.lblSpeed.y+this.lblSpeed.height+12; + const t=u6.getInstance(); + t.x=3,this.btnHeroPresent.visible?t.y=this.btnHeroPresent.y+this.btnHeroPresent.height-7:t.y=this.lblSpeed.y+this.lblSpeed.height+10}
ConfigManager 2 hunks, 7 statements
- zt(this,"_envPlatform",""),zt(this,"_buildType",""),zt(this,"_isPlayGamesPC",null),zt(this,"adWhiteUser",!1),zt(this,"clientData"),zt(this,"timeoutMilliSeconds",3e3),zt(this,"_deviceLanguage","")} + zt(this,"_envPlatform",""),zt(this,"_buildType",""),zt(this,"_isPlayGamesPC",null),zt(this,"adWhiteUser",!1),zt(this,"clientData"),zt(this,"timeoutMilliSeconds",3e3),zt(this,"_deviceLanguage",""),zt(this,"HERO_TRANSCEND_TICKET",null),zt(this,"HERO_MASS_TRANSCEND",null),zt(this,"HERO_MASS_EVOLVE",null)}
+ isHeroTranscendTicket(){ + return null===this.HERO_TRANSCEND_TICKET&&(this.HERO_TRANSCEND_TICKET=this.getClientData("HERO_TRANSCEND_TICKET")),"Y"===this.HERO_TRANSCEND_TICKET} + isHeroMassTranscend(){ + return null===this.HERO_MASS_TRANSCEND&&(this.HERO_MASS_TRANSCEND=this.getClientData("HERO_MASS_TRANSCEND")),"Y"===this.HERO_MASS_TRANSCEND} + isHeroMassEvolve(){ + return null===this.HERO_MASS_EVOLVE&&(this.HERO_MASS_EVOLVE=this.getClientData("HERO_MASS_EVOLVE")),"Y"===this.HERO_MASS_EVOLVE}
CorpFlagCommander 2 hunks, 7 statements
- this.bindFlagCallbacks(e,i),e.position.set(s.x,s.y),t.addChild(e),this.heroFlags.push(e)} + this.bindFlagCallbacks(e,i),e.setIconHidden(!0),e.position.set(s.x,s.y),t.addChild(e),this.heroFlags.push(e)}
+ bringToTop(){ + const t=this.flagLayer; + t&&t.parent&&t.parent.addChild(t)} + startCorpDragAt(t,i,s){ + const e=this.heroFlags.find(i=>i.corpIndex===t); + return!!e&&(e.startDragExternal(i,s),e.isDragging)}
GuildWarBattlePopupV3 7 hunks, 7 statements
- ...nD.DEFAULT_OUTLINE_FONT_OPTION_16,fontSize:13} + ...aD.DEFAULT_OUTLINE_FONT_OPTION_16,fontSize:13}
- ...nD.DEFAULT_OUTLINE_FONT_OPTION_16,fontSize:13} + ...aD.DEFAULT_OUTLINE_FONT_OPTION_16,fontSize:13}
- ...nD.DEFAULT_OUTLINE_FONT_OPTION_16,fontSize:13} + ...aD.DEFAULT_OUTLINE_FONT_OPTION_16,fontSize:13}
- ...nD.DEFAULT_OUTLINE_FONT_OPTION_16,fontSize:9} + ...aD.DEFAULT_OUTLINE_FONT_OPTION_16,fontSize:9}
- ...nD.DEFAULT_OUTLINE_FONT_OPTION_16,fontSize:11} + ...aD.DEFAULT_OUTLINE_FONT_OPTION_16,fontSize:11}
- ...nD.DEFAULT_OUTLINE_FONT_OPTION_16,fontSize:9} + ...aD.DEFAULT_OUTLINE_FONT_OPTION_16,fontSize:9}
- ...nD.DEFAULT_OUTLINE_FONT_OPTION_16,fontSize:i} + ...aD.DEFAULT_OUTLINE_FONT_OPTION_16,fontSize:i}
HeroService 6 hunks, 6 statements
- async evolveOwned(t,i,s=!1){ + async evolveOwned(t,i=!1){
- kindNum:t,trans:i} + kindNum:t}
- async transcend(t,i,s=!1){ + async transcend(t,i,s=!1,e=!1){
- id:t,wave:i} + id:t,wave:i,useTicket:s}
- async transcendOwned(t,i,s=!1){ + async transcendOwned(t,i,s,e=!1,n=!1){
- kindNum:t,trans:i} + kindNum:t,trans:i,count:s,useTicket:e}
CapacitorBridge 2 hunks, 6 statements
- const t=e.getInstance().getProductIdByStoreProductId(n.productId); - if(t<=0)continue; - const i=n.productId; + const t=-1,i=n.productId;
- const t=e.getInstance().getProductIdByStoreProductId(n.productId); - if(t<=0)continue; - const i=n.productId; + const t=-1,i=n.productId;
TransConfirmPopup 3 hunks, 5 statements
- super(),zt(this,"lblMessage",new KD("",nD.DEFAULT_COLOR,nD.DEFAULT_FONT_OPTION_17)),zt(this,"btnConfirm",new AU("PVP_COIN_ON","0",yG.getText("GAME_820","초월"),1,200,70)),zt(this,"onConfirm",null),this.title="",this.contentContainer.addChild(this.lblMessage,this.btnConfirm),this.btnConfirm.showIconLabel=!0,this.btnConfirm.showTextLabel=!0,this.btnConfirm.color=AU.GREEN,this.btnConfirm.onClick=this.onConfirmClick.bind(this),this.btnClose.onClick=this.onCancelClick.bind(this),nD.setLabelWrapWidth(this.lblMessage,this.width-60)} + super(),zt(this,"lblMessage",new YD("",aD.DEFAULT_COLOR,aD.DEFAULT_FONT_OPTION_17)),zt(this,"btnConfirm",new kU("PVP_COIN_ON","0",AG.getText("GAME_820","초월"),1,200,70)),zt(this,"btnTicket",new kU("Ticket_HeroTrans_s","0",AG.getText("GAME_820","초월"),1,200,70)),zt(this,"onConfirm",null),this.title="",this.contentContainer.addChild(this.lblMessage,this.btnConfirm,this.btnTicket),this.btnClose.onClick=this.onCancelClick.bind(this),this.btnConfirm.showIconLabel=!0,this.btnConfirm.showTextLabel=!0,this.btnConfirm.color=kU.GREEN,this.btnConfirm.onClick=this.onConfirmClick.bind(this),this.btnTicket.showIconLabel=!0,this.btnTicket.showTextLabel=!0,this.btnTicket.color=kU.GREEN,this.btnTicket.onClick=this.onConfirmClick.bind(this),aD.setLabelWrapWidth(this.lblMessage,this.width-60)}
- this.onConfirm=i,this.lblMessage.text=s??yG.getText("GAME_853","영웅을 초월하시겠습니까?"),this.btnConfirm.text=yG.getText("GAME_820","초월"),this.btnConfirm.iconText=String(t),this.updateLayout(),super.show()} + this.onConfirm=i,this.lblMessage.text=s??AG.getText("GAME_853","영웅을 초월하시겠습니까?"),this.btnConfirm.text=AG.getText("GAME_820","초월"),this.btnConfirm.iconText=String(t),this.btnConfirm.visible=!0,this.btnTicket.visible=!1,this.updateLayout(),super.show()} + showWithTicket(t,i,s){ + this.onConfirm=i,this.lblMessage.text=s??AG.getText("GAME_853","영웅을 초월하시겠습니까?"),this.btnTicket.text=AG.getText("GAME_820","초월"),this.btnTicket.iconText=t,this.btnConfirm.visible=!1,this.btnTicket.visible=!0,this.updateLayout(),super.show()}
- this.lblMessage.x=.5*(this.width-this.lblMessage.width),this.lblMessage.y=90,this.btnConfirm.x=.5*(this.width-this.btnConfirm.width),this.btnConfirm.y=this.lblMessage.y+this.lblMessage.height+30,this.height=this.btnConfirm.y+this.btnConfirm.height+40} + this.lblMessage.x=.5*(this.width-this.lblMessage.width),this.lblMessage.y=90,this.btnConfirm.x=.5*(this.width-this.btnConfirm.width),this.btnConfirm.y=this.lblMessage.y+this.lblMessage.height+30,this.btnTicket.x=.5*(this.width-this.btnTicket.width),this.btnTicket.y=this.lblMessage.y+this.lblMessage.height+30,this.height=this.btnConfirm.y+this.btnConfirm.height+40}
BuffManager 2 hunks, 4 statements
+ if("core"===i){ + const t=ON.getFinnyCoreContribution(); + 0!==t&&("multiplicative"===e?n*=1+t/100:h+=t)}
- return"pluslv"===i&&(s+=ON.getSylphidPlusLvContribution()),s} + return"pluslv"===i&&(s+=ON.getSylphidPlusLvContribution()),"maxlv"===i&&(s+=ON.getGolemMaxLvContribution()),"core"===i&&(s+=ON.getFinnyCoreContribution()),s}
PowerSaveManager 2 hunks, 4 statements
- ]),zt(D8,"SCORPION_KIND_NUM",1e5),zt(D8,"HARPY_KIND_NUM",100001),zt(D8,"GOLEM_KIND_NUM",100002),zt(D8,"BOSS_KIND_NUM",D8.SCORPION_KIND_NUM),zt(D8,"BOSS_CLASS_BY_KIND",{ - [D8.SCORPION_KIND_NUM]:ox.ScorpionKing,100001:ox.HarpyKing,100002:ox.GolemKing} - ),zt(D8,"BOSS_X",1050),zt(D8,"BOSS_Y",848),zt(D8,"BOSS_HP_MULT",1e4),zt(D8,"CROSSBOW_RING_RADII",[25,55,100,200]),zt(D8,"CROSSBOW_STUN_FRAMES",[0,180,240,300]),zt(D8,"CROSSBOW_HEAD_TIER",2),zt(D8,"CROSSBOW_KNOCKBACK",7),zt(D8,"CROSSBOW_DEBUG",!0),zt(D8,"BOSS_RADIUS",70),zt(D8,"FAN_HALF_WIDTH",170),zt(D8,"FAN_WING_CURVE",80),zt(D8,"FORM_SETTLE_DIST",30),zt(D8,"FORM_RELEASE_DIST",64),zt(D8,"MELEE_HUG_MARGIN",4),zt(D8,"SCORPION_SURROUND_X_SCALE",1.2),zt(D8,"SCORPION_SURROUND_Y_SCALE",.4),zt(D8,"GOLEM_SURROUND_X_SCALE",1),zt(D8,"GOLEM_SURROUND_Y_SCALE",.5),zt(D8,"SCORPION_TINT_BY_SUB",{ + ]),zt(R7,"SCORPION_KIND_NUM",1e5),zt(R7,"HARPY_KIND_NUM",100001),zt(R7,"GOLEM_KIND_NUM",100002),zt(R7,"BERIAL_KIND_NUM",100003),zt(R7,"DRAGON_KNIGHT_KIND_NUM",100004),zt(R7,"BOSS_KIND_NUM",R7.SCORPION_KIND_NUM),zt(R7,"BOSS_CLASS_BY_KIND",{ + [R7.SCORPION_KIND_NUM]:ox.ScorpionKing,100001:ox.HarpyKing,100002:ox.GolemKing,100003:ox.BerialKing,[R7.DRAGON_KNIGHT_KIND_NUM]:ox.DragonKnight} + ),zt(R7,"BOSS_X",1050),zt(R7,"BOSS_Y",848),zt(R7,"BOSS_HP_MULT",1e4),zt(R7,"CROSSBOW_RING_RADII",[25,55,100,200]),zt(R7,"CROSSBOW_STUN_FRAMES",[0,180,240,300]),zt(R7,"CROSSBOW_HEAD_TIER",2),zt(R7,"CROSSBOW_KNOCKBACK",7),zt(R7,"CROSSBOW_DEBUG",!0),zt(R7,"BOSS_RADIUS",70),zt(R7,"IMMOBILE_BOSS_ATK_RANGE",400),zt(R7,"FAN_HALF_WIDTH",119),zt(R7,"FAN_WING_CURVE",80),zt(R7,"FORM_SETTLE_DIST",30),zt(R7,"FORM_RELEASE_DIST",64),zt(R7,"MELEE_HUG_MARGIN",4),zt(R7,"SCORPION_SURROUND_X_SCALE",1.2),zt(R7,"SCORPION_SURROUND_Y_SCALE",.4),zt(R7,"GOLEM_SURROUND_X_SCALE",1),zt(R7,"GOLEM_SURROUND_Y_SCALE",.5),zt(R7,"BERIAL_SURROUND_X_SCALE",1.2),zt(R7,"BERIAL_SURROUND_Y_SCALE",.6),zt(R7,"DRAGON_KNIGHT_SURROUND_X_SCALE",.765),zt(R7,"DRAGON_KNIGHT_SURROUND_Y_SCALE",.34),zt(R7,"SCORPION_TINT_BY_SUB",{
- ),zt(D8,"GOLDEN_ANGLE",2.399963),zt(D8,"CORP_COUNT",5),zt(D8,"CORP_AGGRO_MULT",[1,1,1,1,1]),zt(D8,"AGGRO_HALFLIFE_SEC",4),zt(D8,"AGGRO_DECAY",Math.pow(.5,1/(60*D8.AGGRO_HALFLIFE_SEC))),zt(D8,"AGGRO_MIN",1),zt(D8,"AGGRO_SWITCH_MARGIN",1.2),zt(D8,"AGGRO_SWITCH_DWELL",36),zt(D8,"AGGRO_FACE_DEADZONE",50),zt(D8,"CORP2_TEST_DMG_MULT",3),zt(D8,"CORP1_SOLDIER_DMG_MULT",.5),zt(D8,"BOSS_DETECT_RANGE",4e3),zt(D8,"SOLDIER_ROWS",10),zt(D8,"SOLDIER_COLS",3),zt(D8,"SOLDIER_X_SPACING",52),zt(D8,"SOLDIER_Y_SPACING",36),zt(D8,"ALLY_HERO_X",60),zt(D8,"ALLY_SOLDIER_X_START",135),zt(D8,"MARCH_DISTANCE",1500),zt(D8,"SOLDIER_RANGE_MULT_MIN",1.3),zt(D8,"SOLDIER_RANGE_MULT_MAX",1.7),zt(D8,"RANGE_SOLDIER_MOVE_SPD_MULT_MIN",1),zt(D8,"RANGE_SOLDIER_MOVE_SPD_MULT_MAX",1.25),zt(D8,"MELEE_HERO_HP_MULT",2),zt(D8,"MELEE_SOLDIER_HP_MULT",1.5),zt(D8,"MELEE_ATK_RANGE_BONUS",20),zt(D8,"RANGE_HERO_ATK_RANGE_MULT",1.7),zt(D8,"MELEE_MOVE_SPD_MULT_MIN",1.2),zt(D8,"MELEE_MOVE_SPD_MULT_MAX",1.7),zt(D8,"MELEE_SOLDIER_LANE_OFFSET",210),zt(D8,"TERRAIN_MASK_ENABLED",!1),zt(D8,"SEPARATION_CELL",28),zt(D8,"SEPARATION_BUFFER",3),zt(D8,"RVO_TIME_HORIZON",8),zt(D8,"RVO_NEIGHBOR_DIST",48),zt(D8,"RVO_MAX_NEIGHBORS",10),zt(D8,"RVO_TELEPORT_FACTOR",3),zt(D8,"RVO_FACING_DZ_FACTOR",.3),zt(D8,"RVO_ALIGN_WEIGHT",.4),zt(D8,"RVO_COHESION_WEIGHT",.02),zt(D8,"RVO_BOIDS_MIN_SPEED_FACTOR",.5),zt(D8,"DEFAULT_HERO_KINDS",[60,58,78,54,56]),zt(D8,"DEFAULT_SOLDIER_KINDS",[20,4,7,1,13]); + ),zt(R7,"GOLDEN_ANGLE",2.399963),zt(R7,"CORP_COUNT",5),zt(R7,"CORP_AGGRO_MULT",[1,1,1,1,1]),zt(R7,"AGGRO_HALFLIFE_SEC",4),zt(R7,"AGGRO_DECAY",Math.pow(.5,1/(60*R7.AGGRO_HALFLIFE_SEC))),zt(R7,"AGGRO_MIN",1),zt(R7,"AGGRO_SWITCH_MARGIN",1.2),zt(R7,"AGGRO_SWITCH_DWELL",36),zt(R7,"AGGRO_FACE_DEADZONE",50),zt(R7,"CORP2_TEST_DMG_MULT",3),zt(R7,"CORP1_SOLDIER_DMG_MULT",.5),zt(R7,"BOSS_DETECT_RANGE",4e3),zt(R7,"SOLDIER_ROWS",10),zt(R7,"SOLDIER_COLS",3),zt(R7,"SOLDIER_X_SPACING",52),zt(R7,"SOLDIER_Y_SPACING",36),zt(R7,"ALLY_HERO_X",60),zt(R7,"ALLY_SOLDIER_X_START",135),zt(R7,"MARCH_DISTANCE",1500),zt(R7,"SOLDIER_RANGE_MULT_MIN",1.3),zt(R7,"SOLDIER_RANGE_MULT_MAX",1.7),zt(R7,"RANGE_SOLDIER_MOVE_SPD_MULT_MIN",1),zt(R7,"RANGE_SOLDIER_MOVE_SPD_MULT_MAX",1.25),zt(R7,"MELEE_HERO_HP_MULT",2),zt(R7,"MELEE_SOLDIER_HP_MULT",1.5),zt(R7,"MELEE_ATK_RANGE_BONUS",20),zt(R7,"RANGE_HERO_ATK_RANGE_MULT",1.7),zt(R7,"MELEE_MOVE_SPD_MULT_MIN",1.2),zt(R7,"MELEE_MOVE_SPD_MULT_MAX",1.7),zt(R7,"MELEE_SOLDIER_LANE_OFFSET",210),zt(R7,"TERRAIN_MASK_ENABLED",!1),zt(R7,"SEPARATION_CELL",28),zt(R7,"SEPARATION_BUFFER",3),zt(R7,"RVO_TIME_HORIZON",8),zt(R7,"RVO_NEIGHBOR_DIST",48),zt(R7,"RVO_MAX_NEIGHBORS",10),zt(R7,"RVO_TELEPORT_FACTOR",3),zt(R7,"RVO_FACING_DZ_FACTOR",.3),zt(R7,"RVO_ALIGN_WEIGHT",.4),zt(R7,"RVO_COHESION_WEIGHT",.02),zt(R7,"RVO_BOIDS_MIN_SPEED_FACTOR",.5),zt(R7,"DEFAULT_HERO_KINDS",[60,58,78,54,56]),zt(R7,"DEFAULT_SOLDIER_KINDS",[20,4,7,1,13]),zt(R7,"CORP_OUTLINE_COLOR",16724787),zt(R7,"UNIT_SELECT_RADIUS",50);
PVPRewardSubView 4 hunks, 4 statements
- let set=iet; + let ont=rnt;
- if(0==set.getInstance().initialized){ + if(0==ont.getInstance().initialized){
- set.getInstance().setBookData(t)} + ont.getInstance().setBookData(t)}
- const s=set.getInstance().leagueRewards[t]||[]; + const s=ont.getInstance().leagueRewards[t]||[];
Archery2GameScene 4 hunks, 4 statements
- ...nD.DEFAULT_OUTLINE_FONT_OPTION_16,fill:16777215} + ...aD.DEFAULT_OUTLINE_FONT_OPTION_16,fill:16777215}
- ...nD.DEFAULT_OUTLINE_FONT_OPTION_20,fill:16766720} + ...aD.DEFAULT_OUTLINE_FONT_OPTION_20,fill:16766720}
- ...nD.DEFAULT_OUTLINE_FONT_OPTION_16,fill:16737792} + ...aD.DEFAULT_OUTLINE_FONT_OPTION_16,fill:16737792}
- ...nD.DEFAULT_OUTLINE_FONT_OPTION_20,fill:16777215} + ...aD.DEFAULT_OUTLINE_FONT_OPTION_20,fill:16777215}
ServerTimeManager 3 hunks, 3 statements
+ this.oldDate.setTime(this.serverTime),this.newDate.setTime(t);
- this.timeOffset=t-i,this.serverTime=t,ix.time=this.serverTime,this.lastLocalTime=i} + this.timeOffset=t-i,this.serverTime=t,ix.time=this.serverTime,this.lastLocalTime=i,this.oldDate.getUTCDate()!==this.newDate.getUTCDate()&&fP.getInstance().checkDateRollover()}
- Kt(lP,"ServerTimeManager"),zt(lP,"serverTime",-1),zt(lP,"timeOffset",0),zt(lP,"lastLocalTime",0),zt(lP,"syncThreshold",1e3),zt(lP,"lastSyncReqTime",0),zt(lP,"_count",0),zt(lP,"syncInterval",6e4),zt(lP,"delayCount",0),zt(lP,"syncCallback",null),zt(lP,"requestPending",!1); + Kt(pP,"ServerTimeManager"),zt(pP,"serverTime",-1),zt(pP,"timeOffset",0),zt(pP,"lastLocalTime",0),zt(pP,"syncThreshold",1e3),zt(pP,"oldDate",new Date(-1)),zt(pP,"newDate",new Date(-1)),zt(pP,"lastSyncReqTime",0),zt(pP,"_count",0),zt(pP,"syncInterval",6e4),zt(pP,"delayCount",0),zt(pP,"syncCallback",null),zt(pP,"requestPending",!1);
CommonToast 1 hunks, 3 statements
+ showError(t,i=null,s=90){ + let e=(null==t?void 0:t.errorMessage)??AG.getText("COMMON_77","네트워크 오류가 발생하였습니다."),n=AG.getErrorMessage(t.error); + n&&(e=n),i&&(e+="\n"+i),this.showMessage(e,s)}
BaseAreaHazard 1 hunks, 3 statements
- this.removed||(this.owner&&!this.owner.removed?(this.elapsedFrames++,this.elapsedFrames>this.durationFrames?this.remove():(this.updateVisual(),this.shouldApplyEffectThisFrame()&&this.applyToEnemiesInArea())):this.remove())} + this.removed||(this.owner&&!this.owner.removed?(this.elapsedFrames++,this.elapsedFrames>this.durationFrames?this.remove():(this.updateVisual(),this.onAreaTick(this.elapsedFrames),this.shouldApplyEffectThisFrame()&&this.applyToEnemiesInArea())):this.remove())} + onAreaTick(t){ + }
HeroPresetBar 1 hunks, 3 statements
- super(),zt(this,"bg"),zt(this,"slotButtons",[]),zt(this,"btnSave"),zt(this,"lblSaveHint"),zt(this,"saveMode",!1),zt(this,"requestPending",!1),zt(this,"onApplied",null),zt(this,"longPressTimers",[null,null,null,null,null]),zt(this,"longPressFired",[!1,!1,!1,!1,!1]),this.bg=new Gf,this.bg.beginFill(2825487,.6),this.bg.drawRoundedRect(0,0,t.WIDTH,t.HEIGHT,6),this.bg.endFill(),this.addChild(this.bg); + super(),zt(this,"bg"),zt(this,"slotButtons",[]),zt(this,"btnSave"),zt(this,"lblSaveHint"),zt(this,"saveMode",!1),zt(this,"requestPending",!1),zt(this,"onApplied",null),zt(this,"longPressTimers",[null,null,null,null,null]),zt(this,"longPressFired",[!1,!1,!1,!1,!1]),this.bg=new Gf,this.bg.roundRect(0,0,t.WIDTH,t.HEIGHT,6),this.bg.fill({ + color:2825487,alpha:.6} + ),this.addChild(this.bg);
TreasureTransConfirmPopup 1 hunks, 3 statements
- const i=await iD.getInstance().hero.evolveOwned(t,0,!0); + const i=await hD.getInstance().hero.evolveOwned(`${ + t} + -1`,!0);
TreasurePresetBar 1 hunks, 3 statements
- super(),zt(this,"bg"),zt(this,"slotButtons",[]),zt(this,"btnSave"),zt(this,"btnReset"),zt(this,"lblSaveHint"),zt(this,"lockOverlay"),zt(this,"lblLock"),zt(this,"saveMode",!1),zt(this,"requestPending",!1),zt(this,"longPressTimers",[null,null,null,null,null]),zt(this,"longPressFired",[!1,!1,!1,!1,!1]),zt(this,"onApplied",null),this.bg=new Gf,this.bg.beginFill(2825487,.6),this.bg.drawRoundedRect(0,0,t.WIDTH,t.HEIGHT,6),this.bg.endFill(),this.addChild(this.bg); + super(),zt(this,"bg"),zt(this,"slotButtons",[]),zt(this,"btnSave"),zt(this,"btnReset"),zt(this,"lblSaveHint"),zt(this,"lockOverlay"),zt(this,"lblLock"),zt(this,"saveMode",!1),zt(this,"requestPending",!1),zt(this,"longPressTimers",[null,null,null,null,null]),zt(this,"longPressFired",[!1,!1,!1,!1,!1]),zt(this,"onApplied",null),this.bg=new Gf,this.bg.roundRect(0,0,t.WIDTH,t.HEIGHT,6),this.bg.fill({ + color:2825487,alpha:.6} + ),this.addChild(this.bg);
SHA256 3 hunks, 3 statements
- ...eSt,...hSt,...oSt,...cSt,...dSt,...MSt,...SSt,...kSt,...PSt} + ...rTt,...aTt,...lTt,...dTt,...gTt,...STt,...kTt,...xTt,...LTt}
- ...mCt,...vCt} + ...bCt,..._Ct}
- utf8:XCt,"utf-8":XCt,hex:jCt.base16,latin1:YCt,ascii:YCt,binary:YCt,...jCt} + utf8:QCt,"utf-8":QCt,hex:KCt.base16,latin1:ZCt,ascii:ZCt,binary:ZCt,...KCt}
SuiProvider 3 hunks, 3 statements
- namespace:FDt.NameSpaceKeyAptos,addresses:s,methods:[...WDt.AptosMethods],extra:h} + namespace:jLt.NameSpaceKeyAptos,addresses:s,methods:[...VLt.AptosMethods],extra:h}
- namespace:XDt.NameSpaceKeyTON,addresses:o,methods:[...QDt.TONMethods],extra:a,data:{ + namespace:QLt.NameSpaceKeyTON,addresses:o,methods:[...iGt.TONMethods],extra:a,data:{
- namespace:sLt.NameSpaceKeySui,addresses:i,methods:[...hLt.SuiMethods],extra:s} + namespace:hGt.NameSpaceKeySui,addresses:i,methods:[...aGt.SuiMethods],extra:s}
WalletPopup 3 hunks, 3 statements
- ...nD.ERROR_POPUP_LABEL_OPTION,fontSize:24,fontWeight:"bold"} + ...aD.ERROR_POPUP_LABEL_OPTION,fontSize:24,fontWeight:"bold"}
- ...nD.ERROR_POPUP_LABEL_OPTION,fontSize:16} + ...aD.ERROR_POPUP_LABEL_OPTION,fontSize:16}
- ...nD.ERROR_POPUP_LABEL_OPTION,fontSize:16} + ...aD.ERROR_POPUP_LABEL_OPTION,fontSize:16}
TreasureBuffAccessor 2 hunks, 2 statements
- ]),zt(kN,"WYVERN_PET_KINDNUM",26),zt(kN,"SYLPHID_PET_KINDNUM",24),zt(kN,"GAMESPEED_AWAKENINGS",[{ + ]),zt(kN,"WYVERN_PET_KINDNUM",26),zt(kN,"SYLPHID_PET_KINDNUM",24),zt(kN,"GOLEM_PET_KINDNUM",1),zt(kN,"FINNY_PET_KINDNUM",8),zt(kN,"WOLF_PET_KINDNUM",9),zt(kN,"GAMESPEED_AWAKENINGS",[{
- ]),zt(kN,"_cachedWyvernMaxLv",0),zt(kN,"_cachedWyvernMaxLvVer",-1),zt(kN,"_cachedGameSpeed",0),zt(kN,"_cachedGameSpeedVer",-1),zt(kN,"_cachedSylphidPlusLv",0),zt(kN,"_cachedSylphidPlusLvVer",-1); + ]),zt(kN,"_cachedWyvernMaxLv",0),zt(kN,"_cachedWyvernMaxLvVer",-1),zt(kN,"_cachedGameSpeed",0),zt(kN,"_cachedGameSpeedVer",-1),zt(kN,"_cachedSylphidPlusLv",0),zt(kN,"_cachedSylphidPlusLvVer",-1),zt(kN,"_cachedGolemMaxLv",0),zt(kN,"_cachedGolemMaxLvVer",-1),zt(kN,"_cachedFinnyCore",0),zt(kN,"_cachedFinnyCoreVer",-1);
RewardLayer 1 hunks, 2 statements
- static getInstance(){ - return this._instance||(this._instance=new t),this._instance}
ShopProductPopup 1 hunks, 2 statements
- static getInstance(){ - return this._instance||(this._instance=new t),this._instance}
ShopPayItemRenderer 2 hunks, 2 statements
- gem:0,honorCoin:1,hammer:2,dungeonTicket:3,hero:4,petTicket:5,ticket:6,pet:7} + gem:0,honorCoin:1,hammer:2,dungeonTicket:3,hero:4,petTicket:5,ticket:6,pet:7,trans:8}
- if(i.type==g3.ticket&&i.subType==g3.heroGacha?s=yG.getText("GAME_765","5성 영웅을 랜덤하게 획득할 수 있습니다."):i.type==g3.ticket&&i.subType==g3.heroSelect?s=yG.getText("GAME_943","제공되는 목록에서 원하는 5성 영웅을 선택할 수 있습니다."):i.type==g3.ticket&&i.subType==g3.treasureGacha?s=yG.getValueReplace("GAME_776","##",6,"6등급 유물을 랜덤하게 획득할 수 있습니다."):i.type==g3.ticket&&i.subType==g3.petSelect&&(s=yG.getText("GAME_944","제공되는 목록에서 원하는 펫 조각을 선택할 수 있습니다.")),s){ + if(i.type==f3.ticket&&i.subType==f3.heroGacha?s=AG.getText("GAME_765","5성 영웅을 랜덤하게 획득할 수 있습니다."):i.type==f3.ticket&&i.subType==f3.heroSelect?s=AG.getText("GAME_943","제공되는 목록에서 원하는 5성 영웅을 선택할 수 있습니다."):i.type==f3.ticket&&i.subType==f3.treasureGacha?s=AG.getValueReplace("GAME_776","##",6,"6등급 유물을 랜덤하게 획득할 수 있습니다."):i.type==f3.ticket&&i.subType==f3.petSelect?s=AG.getText("GAME_944","제공되는 목록에서 원하는 펫 조각을 선택할 수 있습니다."):i.type!=f3.trans||i.subType!=f3.hero&&i.subType!=f3.treasure||(s=AG.getText("GAME_1225","초월권을 사용하여 초월재료와 비용없이 초월시킬 수 있습니다.")),s){
RaidCrossbow 2 hunks, 2 statements
- this.arrowLayer=new Be,this.arrowLayer.label="RaidCrossbowArrows",this.arrowLayer.eventMode="none",h.addChild(this.arrowLayer),this.root=new Be,this.root.label="RaidCrossbow",this.root.position.set(this.baseX,this.baseY),this.root.eventMode="none",YG.getInstance().addChild(this.root),this.inputZone=new Be,this.inputZone.position.set(this.baseX,this.baseY),this.inputZone.eventMode="static",this.inputZone.cursor="pointer",this.inputZone.hitArea=new Pi(-90,-130,180,150),this.inputZone.on("pointerdown",this.onDown,this),h.addChild(this.inputZone),this.gauge=new Gf,this.gauge.eventMode="none",this.gauge.position.set(-60,t.GAUGE_Y),this.root.addChild(this.gauge),this.loadSpine()} + this.arrowLayer=new Be,this.arrowLayer.label="RaidCrossbowArrows",this.arrowLayer.eventMode="none",h.addChild(this.arrowLayer),this.root=new Be,this.root.label="RaidCrossbow",this.root.position.set(this.baseX,this.baseY),this.root.eventMode="none",tB.getInstance().addChild(this.root),this.inputZone=new Be,this.inputZone.position.set(this.baseX,this.baseY),this.inputZone.eventMode="static",this.inputZone.cursor="pointer",this.inputZone.hitArea=new Pi(t.HIT_X,t.HIT_Y,t.HIT_W,t.HIT_H),this.inputZone.on("pointerdown",this.onDown,this),h.addChild(this.inputZone),this.gauge=new Gf,this.gauge.eventMode="none",this.gauge.position.set(-60,t.GAUGE_Y),this.root.addChild(this.gauge),this.loadSpine()}
- Kt(T8,"RaidCrossbow"),zt(T8,"SPINE_KEY","raids/weapon/crossbow_tank"),zt(T8,"AIM_MAX_RAD",60*Math.PI/180),zt(T8,"CONTROL_BASE_DEG",0),zt(T8,"AIM_SIGN",-1),zt(T8,"RAD2DEG",180/Math.PI),zt(T8,"SCALE",1),zt(T8,"ARROW_SPEED",26),zt(T8,"ARROW_SPAWN_OFFSET",60),zt(T8,"CHARGE_MAX_TIME",2.6),zt(T8,"GAUGE_FULL_FRAMES",2400),zt(T8,"CHARGE_TIME_SCALE",2),zt(T8,"GAUGE_W",120),zt(T8,"GAUGE_H",12),zt(T8,"GAUGE_Y",50),zt(T8,"ARROW_FRAME",{ + Kt(T7,"RaidCrossbow"),zt(T7,"SPINE_KEY","raids/weapon/crossbow_tank"),zt(T7,"AIM_MAX_RAD",60*Math.PI/180),zt(T7,"CONTROL_BASE_DEG",0),zt(T7,"AIM_SIGN",-1),zt(T7,"RAD2DEG",180/Math.PI),zt(T7,"SCALE",1),zt(T7,"HIT_X",-60),zt(T7,"HIT_Y",-120),zt(T7,"HIT_W",120),zt(T7,"HIT_H",110),zt(T7,"ARROW_SPEED",26),zt(T7,"ARROW_SPAWN_OFFSET",60),zt(T7,"CHARGE_MAX_TIME",2.6),zt(T7,"GAUGE_FULL_FRAMES",2400),zt(T7,"CHARGE_TIME_SCALE",2),zt(T7,"GAUGE_W",120),zt(T7,"GAUGE_H",12),zt(T7,"GAUGE_Y",50),zt(T7,"ARROW_FRAME",{
PVPBattleStatus 2 hunks, 2 statements
- const rst=640,ost=320,ast=30,cst=[4500223,2280703,8974079,6741452,4521898,2289373,5618687,7842559,10079487,11197951],lst=[16729156,16746496,16763904,15623714,16733542,16724872,16737860,15615010,16746564,16755302],ust=new Sg({ + const cet=640,uet=320,det=30,fet=[4500223,2280703,8974079,6741452,4521898,2289373,5618687,7842559,10079487,11197951],pet=[16729156,16746496,16763904,15623714,16733542,16724872,16737860,15615010,16746564,16755302],get=new Sg({
- text:"무한랭킹전 1일차 [ A 리그 ]",style:ust} + text:"무한랭킹전 1일차 [ A 리그 ]",style:get}
OKXConnectUiError 2 hunks, 2 statements
- ):t[i]=s,"__defNormalProp$2"),ajt=Kt((t,i)=>{ + ):t[i]=s,"__defNormalProp"),u$t=Kt((t,i)=>{
- ,"__spreadValues"),cjt=Kt((t,i)=>sjt(t,ejt(i)),"__spreadProps"),ljt=Kt((t,i,s)=>(ojt(t,"symbol"!=typeof i?i+"":i,s),s),"__publicField$2"),ujt=Kt((t,i,s)=>{ + ,"__spreadValues"),d$t=Kt((t,i)=>h$t(t,r$t(i)),"__spreadProps"),f$t=Kt((t,i,s)=>(l$t(t,"symbol"!=typeof i?i+"":i,s),s),"__publicField"),p$t=Kt((t,i,s)=>{
GuildBarracksRaceView 2 hunks, 2 statements
- s?(t.setDataWithKindNum(s.heroKindNum,s.trans),t.showIcon()):t.hideIcon()} + s?(t.setDataWithKindNum(s.heroKindNum,s.trans),t.showIcon()):(t.hideIcon(),t.setDataWithKindNum(0,0))}
- ...nD.DEFAULT_OUTLINE_FONT_OPTION_16,fontSize:i} + ...aD.DEFAULT_OUTLINE_FONT_OPTION_16,fontSize:i}
GuildGiftSubView 1 hunks, 2 statements
+ const s=ED.giftSendersToday.indexOf(t.memberId)>-1?1:0,e=ED.giftSendersToday.indexOf(i.memberId)>-1?1:0; + if(s!==e)return e-s;
Guild2MemberInfoPopup 2 hunks, 2 statements
- const s=i.reduce((t,i)=>t+i.width,0)+10*(i.length-1); + const s=i.reduce((t,i)=>t+i.width,0)+5*(i.length-1);
- for(const n of i)n.x=e,n.y=t,e+=n.width+10} + for(const n of i)n.x=e,n.y=t,e+=n.width+5}
GuildBarrackRowItemRenderer 2 hunks, 2 statements
- ...nD.DEFAULT_OUTLINE_FONT_OPTION_16,fontSize:14} + ...aD.DEFAULT_OUTLINE_FONT_OPTION_16,fontSize:14}
- ...nD.DEFAULT_OUTLINE_FONT_OPTION_16,fontSize:13} + ...aD.DEFAULT_OUTLINE_FONT_OPTION_16,fontSize:13}
GuildWarBattleReadyPopup 2 hunks, 2 statements
- ...nD.DEFAULT_OUTLINE_FONT_OPTION_16,fontSize:13} + ...aD.DEFAULT_OUTLINE_FONT_OPTION_16,fontSize:13}
- ...nD.DEFAULT_OUTLINE_FONT_OPTION_16,fontSize:i} + ...aD.DEFAULT_OUTLINE_FONT_OPTION_16,fontSize:i}
GuildWarSquadsPopup 2 hunks, 2 statements
- ...nD.DEFAULT_OUTLINE_FONT_OPTION_16,fontSize:14} + ...aD.DEFAULT_OUTLINE_FONT_OPTION_16,fontSize:14}
- ...nD.DEFAULT_OUTLINE_FONT_OPTION_16,fontSize:i} + ...aD.DEFAULT_OUTLINE_FONT_OPTION_16,fontSize:i}
GuildWarTierAssignPopup 2 hunks, 2 statements
- const i=[...bD.memberList??[]].sort((t,i)=>i.roleLevel!==t.roleLevel?i.roleLevel-t.roleLevel:(i.wave??0)-(t.wave??0)); + const i=[...ED.memberList??[]].sort((t,i)=>i.roleLevel!==t.roleLevel?i.roleLevel-t.roleLevel:(i.wave??0)-(t.wave??0));
- ...nD.DEFAULT_OUTLINE_FONT_OPTION_16,fontSize:i} + ...aD.DEFAULT_OUTLINE_FONT_OPTION_16,fontSize:i}
Circle 1 hunks, 1 statements
- ,test:Kt(()=>Promise.resolve(!0),"test"),add:Kt(async t=>[...t,...To],"add"),remove:Kt(async t=>t.filter(t=>!To.includes(t)),"remove")} + ,test:Kt(()=>Promise.resolve(!0),"test"),add:Kt(async t=>[...t,...Co],"add"),remove:Kt(async t=>t.filter(t=>!Co.includes(t)),"remove")}
BatchableMesh 1 hunks, 1 statements
- ...T.defaultOptions,...i} + ...C.defaultOptions,...i}
WebGLRenderer 1 hunks, 1 statements
- const Vy=[...Sv,Gb,fb,Qv,bb,Yv,Fy,Hb,lb,py,cy,wb,wy,Ab,gb],Ky=[...Cv],zy=[Dm,$y,Wy],qy=[],Xy=[],Yy=[]; + const Vy=[...Sv,Gb,fb,Qv,bb,Yv,Fy,Hb,lb,py,cy,wb,wy,Ab,gb],Ky=[...Tv],zy=[Dm,$y,Wy],qy=[],Xy=[],Yy=[];
WebGPURenderer 1 hunks, 1 statements
- const oM=[...Sv,E_,f_,u_,g_,h_,sM,G_,U_,W_,x_,c_,w_,i_],aM=[...Cv,C_],cM=[Bm,rM,nM],lM=[],uM=[],dM=[]; + const oM=[...Sv,E_,f_,u_,g_,h_,sM,G_,U_,W_,x_,c_,w_,i_],aM=[...Tv,T_],cM=[Bm,rM,nM],lM=[],uM=[],dM=[];
VersionManager 1 hunks, 1 statements
- Kt(zA,"VersionManager"),zt(zA,"gameId","ef2"),zt(zA,"appVersion","1.11.59"); + Kt(zA,"VersionManager"),zt(zA,"gameId","ef2"),zt(zA,"appVersion","1.11.73");
PetDataManager 1 hunks, 1 statements
- ),ox=(t=>(t.ElfTown5="ElfTown5",t.NWolf="NWolf",t.HorseKnight1="HorseKnight1",t.SkeletonX1="SkeletonX1",t.SkeletonMan1="SkeletonMan1",t.SkeletonMan2="SkeletonMan2",t.SkeletonWarrior1="SkeletonWarrior1",t.GreatHammer1="GreatHammer1",t.ElfArcher1="ElfArcher1",t.HighArcher1="HighArcher1",t.FootMan1="FootMan1",t.Gunner1="Gunner1",t.ElfWarrior1="ElfWarrior1",t.ElfSwordMan1="ElfSwordMan1",t.OrcFighter1="OrcFighter1",t.OrcSpearMan1="OrcSpearMan1",t.OrcHammer1="OrcHammer1",t.OrcHunter1="OrcHunter1",t.OrcIceMage1="OrcIceMage1",t.HeavyWarrior1="HeavyWarrior1",t.HammerKnight1="HammerKnight1",t.PoisonArcher1="PoisonArcher1",t.FireBird1="FireBird1",t.GreenEagle1="GreenEagle1",t.WindMage1="WindMage1",t.OrcFlower="OrcFlower",t.BlackMage1="BlackMage1",t.DarkMage1="DarkMage1",t.Priest1="Priest1",t.Fairy1="Fairy1",t.Ghost1="Ghost1",t.DarkArcher1="DarkArcher1",t.OrcWing1="OrcWing1",t.OrcAxe1="OrcAxe1",t.BigDrumer1="BigDrumer1",t.OrcWolfRider1="OrcWolfRider1",t.OrcBigFoot1="OrcBigFoot1",t.OrcBlizzardMage1="OrcBlizzardMage1",t.FlowerSoldier1="FlowerSoldier1",t.FlowerSoldier2="FlowerSoldier2",t.KingSlime="KingSlime",t.SlimeBlue="SlimeBlue",t.SlimeRed="SlimeRed",t.SlimeYellow="SlimeYellow",t.HammerMole="HammerMole",t.MoleSoldier1="MoleSoldier1",t.MoleSoldier2="MoleSoldier2",t.DarkHermit="DarkHermit",t.Crab="Crab",t.StarFish="StarFish",t.Unicorn1="Unicorn1",t.IceWolf="IceWolf",t.GoldGoblin="GoldGoblin",t.AdsGoblin="AdsGoblin",t.DeathKnight1="DeathKnight1",t.Golem1="Golem1",t.GreatMage1="GreatMage1",t.Ant1="Ant1",t.WolfWarrior1="WolfWarrior1",t.Artillery1="Artillery1",t.Bomber1="Bomber1",t.DeathHand1="DeathHand1",t.SSlime1="SSlime1",t.SSlime2="SSlime2",t.SSlime3="SSlime3",t.OrcIcePhantom1="OrcIcePhantom1",t.Pilot1="Pilot1",t.Spider1="Spider1",t.Spider2="Spider2",t.Boar1="Boar1",t.Boar2="Boar2",t.RoboBomb1="RoboBomb1",t.RoboBomb2="RoboBomb2",t.Frog1="Frog1",t.Frog2="Frog2",t.OrcRapterRider1="OrcRapterRider1",t.WyvernRider1="WyvernRider1",t.DarkNinja1="DarkNinja1",t.Succubus1="Succubus1",t.Druid1="Druid1",t.TigerRider1="TigerRider1",t.GriffinRider1="GriffinRider1",t.SteamPunk1="SteamPunk1",t.Castle0="Castle0",t.Castle1="Castle1",t.Castle2="Castle2",t.WingKnight1="WingKnight1",t.Abyss1="Abyss1",t.Sylphid1="Sylphid1",t.Aladin1="Aladin1",t.Druid2="Druid2",t.BladeMaster1="BladeMaster1",t.CrowKnight1="CrowKnight1",t.ScorpionKing="ScorpionKing",t.HarpyKing="HarpyKing",t.GolemKing="GolemKing",t))(ox||{ + ),ox=(t=>(t.ElfTown5="ElfTown5",t.NWolf="NWolf",t.HorseKnight1="HorseKnight1",t.SkeletonX1="SkeletonX1",t.SkeletonMan1="SkeletonMan1",t.SkeletonMan2="SkeletonMan2",t.SkeletonWarrior1="SkeletonWarrior1",t.GreatHammer1="GreatHammer1",t.ElfArcher1="ElfArcher1",t.HighArcher1="HighArcher1",t.FootMan1="FootMan1",t.Gunner1="Gunner1",t.ElfWarrior1="ElfWarrior1",t.ElfSwordMan1="ElfSwordMan1",t.OrcFighter1="OrcFighter1",t.OrcSpearMan1="OrcSpearMan1",t.OrcHammer1="OrcHammer1",t.OrcHunter1="OrcHunter1",t.OrcIceMage1="OrcIceMage1",t.HeavyWarrior1="HeavyWarrior1",t.HammerKnight1="HammerKnight1",t.PoisonArcher1="PoisonArcher1",t.FireBird1="FireBird1",t.GreenEagle1="GreenEagle1",t.WindMage1="WindMage1",t.OrcFlower="OrcFlower",t.BlackMage1="BlackMage1",t.DarkMage1="DarkMage1",t.Priest1="Priest1",t.Fairy1="Fairy1",t.Ghost1="Ghost1",t.DarkArcher1="DarkArcher1",t.OrcWing1="OrcWing1",t.OrcAxe1="OrcAxe1",t.BigDrumer1="BigDrumer1",t.OrcWolfRider1="OrcWolfRider1",t.OrcBigFoot1="OrcBigFoot1",t.OrcBlizzardMage1="OrcBlizzardMage1",t.FlowerSoldier1="FlowerSoldier1",t.FlowerSoldier2="FlowerSoldier2",t.KingSlime="KingSlime",t.SlimeBlue="SlimeBlue",t.SlimeRed="SlimeRed",t.SlimeYellow="SlimeYellow",t.HammerMole="HammerMole",t.MoleSoldier1="MoleSoldier1",t.MoleSoldier2="MoleSoldier2",t.DarkHermit="DarkHermit",t.Crab="Crab",t.StarFish="StarFish",t.Unicorn1="Unicorn1",t.IceWolf="IceWolf",t.GoldGoblin="GoldGoblin",t.AdsGoblin="AdsGoblin",t.DeathKnight1="DeathKnight1",t.Golem1="Golem1",t.GreatMage1="GreatMage1",t.Ant1="Ant1",t.WolfWarrior1="WolfWarrior1",t.Artillery1="Artillery1",t.Bomber1="Bomber1",t.DeathHand1="DeathHand1",t.SSlime1="SSlime1",t.SSlime2="SSlime2",t.SSlime3="SSlime3",t.OrcIcePhantom1="OrcIcePhantom1",t.Pilot1="Pilot1",t.Spider1="Spider1",t.Spider2="Spider2",t.Boar1="Boar1",t.Boar2="Boar2",t.RoboBomb1="RoboBomb1",t.RoboBomb2="RoboBomb2",t.Frog1="Frog1",t.Frog2="Frog2",t.OrcRapterRider1="OrcRapterRider1",t.WyvernRider1="WyvernRider1",t.DarkNinja1="DarkNinja1",t.Succubus1="Succubus1",t.Druid1="Druid1",t.TigerRider1="TigerRider1",t.GriffinRider1="GriffinRider1",t.SteamPunk1="SteamPunk1",t.Castle0="Castle0",t.Castle1="Castle1",t.Castle2="Castle2",t.WingKnight1="WingKnight1",t.Abyss1="Abyss1",t.Sylphid1="Sylphid1",t.Aladin1="Aladin1",t.Druid2="Druid2",t.BladeMaster1="BladeMaster1",t.CrowKnight1="CrowKnight1",t.ScorpionKing="ScorpionKing",t.HarpyKing="HarpyKing",t.GolemKing="GolemKing",t.BerialKing="BerialKing",t.DragonKnight="DragonKnight",t))(ox||{
BaseWeapon 1 hunks, 1 statements
- var $X=(t=>(t.NormalArrow="NormalArrow",t.EnergyBall="EnergyBall",t.SpeedArrow="SpeedArrow",t.Bullet1="Bullet1",t.OrcSpearmanSpear1="OrcSpearmanSpear1",t.OrcIceMageFire1="OrcIceMageFire1",t.PoisonArcherArrow1="PoisonArcherArrow1",t.FireBirdBall1="FireBirdBall1",t.GreenEagleBall1="GreenEagleBall1",t.BlackMageBall1="BlackMageBall1",t.BlackMageDarkBall1="BlackMageDarkBall1",t.DarkMageBall1="DarkMageBall1",t.DarkMageSkillBall1="DarkMageSkillBall1",t.GreenEnergyBall="GreenEnergyBall",t.YellowEnergyBall="YellowEnergyBall",t.FairyMusicNote="FairyMusicNote",t.GhostBall1="GhostBall1",t.DarkArcherArrow1="DarkArcherArrow1",t.OrcWingBall1="OrcWingBall1",t.OrcAxeBall1="OrcAxeBall1",t.Twist="Twist",t.FlowerBullet="FlowerBullet",t.Rock="Rock",t.DarkHermitMissile="DarkHermitMissile",t.Pearl="Pearl",t.UniArrow="UniArrow",t.PowerArrow="PowerArrow",t.OrcBlizzardMageRain1="OrcBlizzardMageRain1",t.FireMagicBall1="FireMagicBall1",t.FireMageBird1="FireMageBird1",t.BomberSmallBomb1="BomberSmallBomb1",t.BomberBigBomb1="BomberBigBomb1",t.IceFlake="IceFlake",t.PoisonArcherArrowSkill1="PoisonArcherArrowSkill1",t.OrcIceMageFireSkill1="OrcIceMageFireSkill1",t.PilotMissile1="PilotMissile1",t.FireBullet="FireBullet",t.AntRock1="AntRock1",t.SpeedArrow2="SpeedArrow2",t.MoleFire="MoleFire",t.OrcRapterRiderSpear1="OrcRapterRiderSpear1",t.WyvernRiderThrowingKnife1="WyvernRiderThrowingKnife1",t.WyvernRiderThrowingKnifeS1="WyvernRiderThrowingKnifeS1",t.SuccubusBlade1="SuccubusBlade1",t.DarkChain1="DarkChain1",t.DruidTangle1="DruidTangle1",t.DruidDrill1="DruidDrill1",t.TigerRiderArrow1="TigerRiderArrow1",t.GriffinSpear1="GriffinSpear1",t.GriffinSuperSpear1="GriffinSuperSpear1",t.SteamFire1="SteamFire1",t.SteamMissile1="SteamMissile1",t.SylphidTornado1="SylphidTornado1",t.SylphidShuriken1="SylphidShuriken1",t.AladinCoin1="AladinCoin1",t.BladeWave1="BladeWave1",t.SpinBlade="SpinBlade",t.CrowKnightBullet1="CrowKnightBullet1",t.CrowCompanion1="CrowCompanion1",t.CrowGuidedBall1="CrowGuidedBall1",t.CrowFeatherShot1="CrowFeatherShot1",t.ScorpionPoisonBullet="ScorpionPoisonBullet",t.ScorpionPoisonArea="ScorpionPoisonArea",t.HarpyFeather="HarpyFeather",t.HarpyTornado="HarpyTornado",t))($X||{ + var qX=(t=>(t.NormalArrow="NormalArrow",t.EnergyBall="EnergyBall",t.SpeedArrow="SpeedArrow",t.Bullet1="Bullet1",t.OrcSpearmanSpear1="OrcSpearmanSpear1",t.OrcIceMageFire1="OrcIceMageFire1",t.PoisonArcherArrow1="PoisonArcherArrow1",t.FireBirdBall1="FireBirdBall1",t.GreenEagleBall1="GreenEagleBall1",t.BlackMageBall1="BlackMageBall1",t.BlackMageDarkBall1="BlackMageDarkBall1",t.DarkMageBall1="DarkMageBall1",t.DarkMageSkillBall1="DarkMageSkillBall1",t.GreenEnergyBall="GreenEnergyBall",t.YellowEnergyBall="YellowEnergyBall",t.FairyMusicNote="FairyMusicNote",t.GhostBall1="GhostBall1",t.DarkArcherArrow1="DarkArcherArrow1",t.OrcWingBall1="OrcWingBall1",t.OrcAxeBall1="OrcAxeBall1",t.Twist="Twist",t.FlowerBullet="FlowerBullet",t.Rock="Rock",t.DarkHermitMissile="DarkHermitMissile",t.Pearl="Pearl",t.UniArrow="UniArrow",t.PowerArrow="PowerArrow",t.OrcBlizzardMageRain1="OrcBlizzardMageRain1",t.FireMagicBall1="FireMagicBall1",t.FireMageBird1="FireMageBird1",t.BomberSmallBomb1="BomberSmallBomb1",t.BomberBigBomb1="BomberBigBomb1",t.IceFlake="IceFlake",t.PoisonArcherArrowSkill1="PoisonArcherArrowSkill1",t.OrcIceMageFireSkill1="OrcIceMageFireSkill1",t.PilotMissile1="PilotMissile1",t.FireBullet="FireBullet",t.AntRock1="AntRock1",t.SpeedArrow2="SpeedArrow2",t.MoleFire="MoleFire",t.OrcRapterRiderSpear1="OrcRapterRiderSpear1",t.WyvernRiderThrowingKnife1="WyvernRiderThrowingKnife1",t.WyvernRiderThrowingKnifeS1="WyvernRiderThrowingKnifeS1",t.SuccubusBlade1="SuccubusBlade1",t.DarkChain1="DarkChain1",t.DruidTangle1="DruidTangle1",t.DruidDrill1="DruidDrill1",t.TigerRiderArrow1="TigerRiderArrow1",t.GriffinSpear1="GriffinSpear1",t.GriffinSuperSpear1="GriffinSuperSpear1",t.SteamFire1="SteamFire1",t.SteamMissile1="SteamMissile1",t.SylphidTornado1="SylphidTornado1",t.SylphidShuriken1="SylphidShuriken1",t.AladinCoin1="AladinCoin1",t.BladeWave1="BladeWave1",t.SpinBlade="SpinBlade",t.CrowKnightBullet1="CrowKnightBullet1",t.CrowCompanion1="CrowCompanion1",t.CrowGuidedBall1="CrowGuidedBall1",t.CrowFeatherShot1="CrowFeatherShot1",t.ScorpionPoisonBullet="ScorpionPoisonBullet",t.ScorpionPoisonArea="ScorpionPoisonArea",t.HarpyFeather="HarpyFeather",t.HarpyTornado="HarpyTornado",t.GolemStone="GolemStone",t.BerialLightning="BerialLightning",t.BerialLightningArea="BerialLightningArea",t.BerialFire="BerialFire",t.SummonDragon="SummonDragon",t))(qX||{
SylphidTornado1 1 hunks, 1 statements
- if(s.removed||s.isUntagetable||s.isImmovable||s.knockImmune)continue; + if(s.removed||!s.isAlive||s.isUntagetable||s.isImmovable||s.knockImmune)continue;
WeaponFactory 1 hunks, 1 statements
- [$X.NormalArrow]:aY,[$X.EnergyBall]:tY,[$X.SpeedArrow]:dY,[$X.Bullet1]:vY,[$X.OrcSpearmanSpear1]:AY,[$X.OrcIceMageFire1]:MY,[$X.PoisonArcherArrow1]:lY,[$X.GreenEagleBall1]:nY,[$X.BlackMageBall1]:kY,[$X.DarkMageBall1]:NY,[$X.DarkMageSkillBall1]:RY,[$X.GreenEnergyBall]:rY,[$X.YellowEnergyBall]:mY,[$X.FairyMusicNote]:sY,[$X.GhostBall1]:LY,[$X.DarkArcherArrow1]:IY,[$X.OrcWingBall1]:CY,[$X.OrcAxeBall1]:yY,[$X.FlowerBullet]:qX,[$X.Rock]:QX,[$X.DarkHermitMissile]:YX,[$X.Pearl]:BY,[$X.Twist]:pY,[$X.UniArrow]:FY,[$X.PowerArrow]:WY,[$X.OrcBlizzardMageRain1]:$Y,[$X.FireMagicBall1]:KY,[$X.FireMageBird1]:qY,[$X.BomberSmallBomb1]:YY,[$X.BomberBigBomb1]:QY,[$X.IceFlake]:tJ,[$X.FireBirdBall1]:sJ,[$X.BlackMageDarkBall1]:nJ,[$X.PoisonArcherArrowSkill1]:aJ,[$X.OrcIceMageFireSkill1]:rJ,[$X.PilotMissile1]:lJ,[$X.FireBullet]:dJ,[$X.AntRock1]:pJ,[$X.SpeedArrow2]:mJ,[$X.MoleFire]:vJ,[$X.OrcRapterRiderSpear1]:kJ,[$X.WyvernRiderThrowingKnife1]:AJ,[$X.WyvernRiderThrowingKnifeS1]:CJ,[$X.DarkChain1]:yJ,[$X.SuccubusBlade1]:MJ,[$X.DruidTangle1]:IJ,[$X.DruidDrill1]:NJ,[$X.TigerRiderArrow1]:RJ,[$X.GriffinSpear1]:LJ,[$X.GriffinSuperSpear1]:BJ,[$X.SteamFire1]:FJ,[$X.SteamMissile1]:WJ,[$X.SylphidShuriken1]:$J,[$X.SylphidTornado1]:KJ,[$X.AladinCoin1]:qJ,[$X.BladeWave1]:YJ,[$X.SpinBlade]:QJ,[$X.CrowKnightBullet1]:tQ,[$X.CrowCompanion1]:sQ,[$X.CrowGuidedBall1]:nQ,[$X.CrowFeatherShot1]:rQ,[$X.ScorpionPoisonBullet]:cQ,[$X.ScorpionPoisonArea]:fQ,[$X.HarpyFeather]:gQ,[$X.HarpyTornado]:wQ} + [qX.NormalArrow]:dY,[qX.EnergyBall]:nY,[qX.SpeedArrow]:mY,[qX.Bullet1]:MY,[qX.OrcSpearmanSpear1]:kY,[qX.OrcIceMageFire1]:TY,[qX.PoisonArcherArrow1]:pY,[qX.GreenEagleBall1]:aY,[qX.BlackMageBall1]:NY,[qX.DarkMageBall1]:LY,[qX.DarkMageSkillBall1]:BY,[qX.GreenEnergyBall]:lY,[qX.YellowEnergyBall]:yY,[qX.FairyMusicNote]:rY,[qX.GhostBall1]:FY,[qX.DarkArcherArrow1]:RY,[qX.OrcWingBall1]:IY,[qX.OrcAxeBall1]:AY,[qX.FlowerBullet]:QX,[qX.Rock]:sY,[qX.DarkHermitMissile]:tY,[qX.Pearl]:WY,[qX.Twist]:vY,[qX.UniArrow]:$Y,[qX.PowerArrow]:KY,[qX.OrcBlizzardMageRain1]:qY,[qX.FireMagicBall1]:YY,[qX.FireMageBird1]:QY,[qX.BomberSmallBomb1]:tJ,[qX.BomberBigBomb1]:sJ,[qX.IceFlake]:nJ,[qX.FireBirdBall1]:rJ,[qX.BlackMageDarkBall1]:aJ,[qX.PoisonArcherArrowSkill1]:dJ,[qX.OrcIceMageFireSkill1]:lJ,[qX.PilotMissile1]:pJ,[qX.FireBullet]:mJ,[qX.AntRock1]:vJ,[qX.SpeedArrow2]:yJ,[qX.MoleFire]:MJ,[qX.OrcRapterRiderSpear1]:NJ,[qX.WyvernRiderThrowingKnife1]:kJ,[qX.WyvernRiderThrowingKnifeS1]:IJ,[qX.DarkChain1]:AJ,[qX.SuccubusBlade1]:TJ,[qX.DruidTangle1]:RJ,[qX.DruidDrill1]:LJ,[qX.TigerRiderArrow1]:BJ,[qX.GriffinSpear1]:FJ,[qX.GriffinSuperSpear1]:WJ,[qX.SteamFire1]:$J,[qX.SteamMissile1]:KJ,[qX.SylphidShuriken1]:qJ,[qX.SylphidTornado1]:YJ,[qX.AladinCoin1]:QJ,[qX.BladeWave1]:tQ,[qX.SpinBlade]:sQ,[qX.CrowKnightBullet1]:nQ,[qX.CrowCompanion1]:rQ,[qX.CrowGuidedBall1]:aQ,[qX.CrowFeatherShot1]:lQ,[qX.ScorpionPoisonBullet]:fQ,[qX.ScorpionPoisonArea]:wQ,[qX.HarpyFeather]:bQ,[qX.HarpyTornado]:_Q,[qX.GolemStone]:EQ,[qX.BerialLightning]:SQ,[qX.BerialLightningArea]:CQ,[qX.BerialFire]:OQ,[qX.SummonDragon]:xQ}
UnitFactory 1 hunks, 1 statements
- [ox.NWolf]:vZ,[ox.BlackMage1]:IZ,[ox.SkeletonX1]:FZ,[ox.SkeletonMan1]:RZ,[ox.SkeletonMan2]:LZ,[ox.SkeletonWarrior1]:BZ,[ox.GreatHammer1]:NZ,[ox.Ghost1]:QZ,[ox.DarkMage1]:KZ,[ox.DarkArcher1]:t0,[ox.Bomber1]:n1,[ox.DeathHand1]:r1,[ox.DarkNinja1]:B1,[ox.Succubus1]:Y1,[ox.Abyss1]:n2,[ox.CrowKnight1]:m2,[ox.FootMan1]:aZ,[ox.Gunner1]:lZ,[ox.HeavyWarrior1]:pZ,[ox.HammerKnight1]:dZ,[ox.HorseKnight1]:mZ,[ox.FireBird1]:rZ,[ox.Priest1]:qZ,[ox.GriffinRider1]:F1,[ox.SteamPunk1]:$1,[ox.WingKnight1]:W1,[ox.Aladin1]:l2,[ox.ElfArcher1]:WZ,[ox.HighArcher1]:sZ,[ox.ElfWarrior1]:tZ,[ox.ElfSwordMan1]:QQ,[ox.PoisonArcher1]:nZ,[ox.GreenEagle1]:$Q,[ox.WindMage1]:$Z,[ox.Fairy1]:YZ,[ox.Druid1]:K1,[ox.Druid2]:d2,[ox.TigerRider1]:q1,[ox.Sylphid1]:r2,[ox.OrcFighter1]:yZ,[ox.OrcHunter1]:AZ,[ox.OrcIceMage1]:CZ,[ox.OrcWing1]:s0,[ox.OrcHammer1]:MZ,[ox.OrcAxe1]:n0,[ox.OrcSpearMan1]:kZ,[ox.BigDrumer1]:r0,[ox.OrcWolfRider1]:a0,[ox.OrcBigFoot1]:W0,[ox.OrcBlizzardMage1]:$0,[ox.OrcIcePhantom1]:p1,[ox.OrcRapterRider1]:R1,[ox.WyvernRider1]:L1,[ox.BladeMaster1]:p2,[ox.ElfTown5]:qQ,[ox.OrcFlower]:YQ,[ox.FlowerSoldier1]:d0,[ox.FlowerSoldier2]:l0,[ox.KingSlime]:p0,[ox.SlimeBlue]:m0,[ox.SlimeRed]:v0,[ox.SlimeYellow]:y0,[ox.HammerMole]:M0,[ox.MoleSoldier1]:C0,[ox.MoleSoldier2]:A0,[ox.DarkHermit]:k0,[ox.Crab]:I0,[ox.StarFish]:N0,[ox.Unicorn1]:R0,[ox.IceWolf]:L0,[ox.GoldGoblin]:B0,[ox.AdsGoblin]:F0,[ox.DeathKnight1]:K0,[ox.Golem1]:q0,[ox.GreatMage1]:Y0,[ox.Ant1]:Q0,[ox.WolfWarrior1]:t1,[ox.Artillery1]:s1,[ox.SSlime1]:a1,[ox.SSlime2]:l1,[ox.SSlime3]:d1,[ox.Pilot1]:m1,[ox.Spider1]:M1,[ox.Spider2]:A1,[ox.Boar1]:y1,[ox.Boar2]:v1,[ox.RoboBomb1]:k1,[ox.RoboBomb2]:C1,[ox.Frog1]:I1,[ox.Frog2]:N1,[ox.Castle0]:s2,[ox.Castle1]:t2,[ox.Castle2]:Q1,[ox.ScorpionKing]:y2,[ox.HarpyKing]:M2,[ox.GolemKing]:A2} + [ox.NWolf]:NZ,[ox.BlackMage1]:$Z,[ox.SkeletonX1]:t0,[ox.SkeletonMan1]:qZ,[ox.SkeletonMan2]:YZ,[ox.SkeletonWarrior1]:QZ,[ox.GreatHammer1]:KZ,[ox.Ghost1]:d0,[ox.DarkMage1]:r0,[ox.DarkArcher1]:p0,[ox.Bomber1]:v1,[ox.DeathHand1]:y1,[ox.DarkNinja1]:Q1,[ox.Succubus1]:l2,[ox.Abyss1]:v2,[ox.CrowKnight1]:I2,[ox.FootMan1]:MZ,[ox.Gunner1]:AZ,[ox.HeavyWarrior1]:kZ,[ox.HammerKnight1]:TZ,[ox.HorseKnight1]:IZ,[ox.FireBird1]:yZ,[ox.Priest1]:a0,[ox.GriffinRider1]:t2,[ox.SteamPunk1]:n2,[ox.WingKnight1]:s2,[ox.Aladin1]:A2,[ox.ElfArcher1]:s0,[ox.HighArcher1]:mZ,[ox.ElfWarrior1]:pZ,[ox.ElfSwordMan1]:dZ,[ox.PoisonArcher1]:vZ,[ox.GreenEagle1]:nZ,[ox.WindMage1]:n0,[ox.Fairy1]:l0,[ox.Druid1]:r2,[ox.Druid2]:T2,[ox.TigerRider1]:a2,[ox.Sylphid1]:y2,[ox.OrcFighter1]:RZ,[ox.OrcHunter1]:BZ,[ox.OrcIceMage1]:FZ,[ox.OrcWing1]:m0,[ox.OrcHammer1]:LZ,[ox.OrcAxe1]:v0,[ox.OrcSpearMan1]:WZ,[ox.BigDrumer1]:y0,[ox.OrcWolfRider1]:M0,[ox.OrcBigFoot1]:s1,[ox.OrcBlizzardMage1]:n1,[ox.OrcIcePhantom1]:k1,[ox.OrcRapterRider1]:q1,[ox.WyvernRider1]:Y1,[ox.BladeMaster1]:k2,[ox.ElfTown5]:aZ,[ox.OrcFlower]:lZ,[ox.FlowerSoldier1]:T0,[ox.FlowerSoldier2]:A0,[ox.KingSlime]:k0,[ox.SlimeBlue]:I0,[ox.SlimeRed]:N0,[ox.SlimeYellow]:R0,[ox.HammerMole]:L0,[ox.MoleSoldier1]:F0,[ox.MoleSoldier2]:B0,[ox.DarkHermit]:W0,[ox.Crab]:$0,[ox.StarFish]:K0,[ox.Unicorn1]:q0,[ox.IceWolf]:Y0,[ox.GoldGoblin]:Q0,[ox.AdsGoblin]:t1,[ox.DeathKnight1]:r1,[ox.Golem1]:a1,[ox.GreatMage1]:l1,[ox.Ant1]:d1,[ox.WolfWarrior1]:p1,[ox.Artillery1]:m1,[ox.SSlime1]:M1,[ox.SSlime2]:A1,[ox.SSlime3]:T1,[ox.Pilot1]:I1,[ox.Spider1]:L1,[ox.Spider2]:B1,[ox.Boar1]:R1,[ox.Boar2]:N1,[ox.RoboBomb1]:W1,[ox.RoboBomb2]:F1,[ox.Frog1]:$1,[ox.Frog2]:K1,[ox.Castle0]:m2,[ox.Castle1]:p2,[ox.Castle2]:d2,[ox.ScorpionKing]:R2,[ox.HarpyKing]:L2,[ox.GolemKing]:F2,[ox.BerialKing]:W2,[ox.DragonKnight]:$2}
ShopPaySubView 1 hunks, 1 statements
- this.updateRedGem(),await N2.getInstance().getProducts(0),this.switchTab(this.activeIndex),this.updateLanguage(),this.setDataCallback&&(this.setDataCallback(),this.setDataCallback=null)} + this.updateRedGem(),await Q2.getInstance().getProducts(1),this.switchTab(this.activeIndex),this.updateLanguage(),this.setDataCallback&&(this.setDataCallback(),this.setDataCallback=null)}
CorpCameraController 1 hunks, 1 statements
+ if(this.opt.onFieldDown&&this.opt.onFieldDown(t.global.x,t.global.y))return;
HeroItemRenderer 1 hunks, 1 statements
- ]),zt(X7,"POPUP_MIN_HEIGHT",950),zt(X7,"POPUP_GUILD_MIN_HEIGHT",1080),zt(X7,"TRANS_TAB_MIN_WAVE",300); + ]),zt(Q9,"TRANS_TAB_MIN_WAVE",300);
DungeonCoreBuffPopup 1 hunks, 1 statements
- const t=KN.getInstance().treasure.getGameplayBuff(xN.Core),i=Ix.getInstance().getTotal(kx.Core),s=KN.getInstance().pet.getGameplayBuff(xN.Core),e=t+i+s; + const t=KN.getInstance().treasure.getGameplayBuff(xN.Core),i=Ix.getInstance().getTotal(kx.Core)+ON.getFinnyCoreContribution(),s=KN.getInstance().pet.getGameplayBuff(xN.Core),e=t+i+s;
FavoritePetSubView 1 hunks, 1 statements
- const t=[...lL.getInstance().favoritePets].sort((t,i)=>{ + const t=[...pL.getInstance().favoritePets].sort((t,i)=>{
MineRewardPopup 1 hunks, 1 statements
- let Zit=Qit; + let set=iet;
MinePopup 1 hunks, 1 statements
- Zit.getInstance().show()} + set.getInstance().show()}
RightBottomMenus 1 hunks, 1 statements
- bossKindNum:100002} + bossKindNum:100004}
HonorShopSubMenu 1 hunks, 1 statements
- let get=pet; + let bnt=vnt;
HonorShopItemRenderer 1 hunks, 1 statements
- e&&get.getInstance().showResult(e,i,s),knt.getInstance().setData(),wet.getInstance().setData(),this.setRequestPending(!1),tV.getInstance().getStatus()} + e&&bnt.getInstance().showResult(e,i,s),xht.getInstance().setData(),_nt.getInstance().setData(),this.setRequestPending(!1),nV.getInstance().getStatus()}
Sr 1 hunks, 1 statements
- ...t,...Jut(i)} + ...t,...tft(i)}
Ma 1 hunks, 1 statements
- ...amt,coercer:Kt((t,i)=>ygt(t,cmt)?amt.coercer(lmt(t,i),i):amt.coercer(t,i),"coercer")} + ...uwt,coercer:Kt((t,i)=>Emt(t,dwt)?uwt.coercer(fwt(t,i),i):uwt.coercer(t,i),"coercer")}
El 1 hunks, 1 statements
- ...lt._defaultState} + ...dt._defaultState}
Yp 1 hunks, 1 statements
- const e=126,n=[71,73,70,56,55,97,...i,246,0,0,255,255,255,...$Et(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,...zAt(381,0),44,0,0,0,0,...i,0,7],h=Math.floor(s.length/e);
SuiStandardProvider 1 hunks, 1 statements
- namespace:iNt.NameSpaceKeyEip155,addresses:i,methods:[...nNt.Eip55Methods],extra:s} + namespace:nPt.NameSpaceKeyEip155,addresses:i,methods:[...oPt.Eip55Methods],extra:s}
AppReadyEvent 1 hunks, 1 statements
- return CPt||(CPt=[...yPt]),CPt} + return ORt||(ORt=[...ERt]),ORt}
SolProvider 1 hunks, 1 statements
- namespace:xDt.NameSpaceKeySOL,addresses:i,methods:[...DDt.SOLANAMethods],extra:s} + namespace:RLt.NameSpaceKeySOL,addresses:i,methods:[...BLt.SOLANAMethods],extra:s}
OkxwalletInjectConnector 1 hunks, 1 statements
- namespace:cLt.NameSpaceKeyBtc,addresses:i,methods:[...uLt.BtcMethods],extra:s} + namespace:dGt.NameSpaceKeyBtc,addresses:i,methods:[...pGt.BtcMethods],extra:s}
TcRootElement 1 hunks, 1 statements
- return hzt()||(t.push(new _At.OKXAppConnector),t.push(new _At.OKXWalletAppConnector)),ezt()&&t.push(new _At.OkxwalletInjectConnector),t.push(...ozt()),t} + return aqt()||(t.push(new ASt.OKXAppConnector),t.push(new ASt.OKXWalletAppConnector)),rqt()&&t.push(new ASt.OkxwalletInjectConnector),t.push(...lqt()),t}
WalletSelectPopup 1 hunks, 1 statements
- ...nD.ERROR_POPUP_LABEL_OPTION,fontSize:18} + ...aD.ERROR_POPUP_LABEL_OPTION,fontSize:18}
MailDetailPopup 1 hunks, 1 statements
- this.currentMail.receivedAt=new Date,wL.setData(i.body),f3.getInstance().setData(i.body),RG.getInstance().setStatusData(null==(t=i.body)?void 0:t.mineStatus),lS.getInstance().dispatchCustomEvent("MailUpdate"),"inventory"in i.body&&(pV.getInstance().showMessage(yG.getText("GAME_819","보석, 명예코인, 영웅을 제외한 아이템은 인벤토리로 지급되었습니다."),120),L4.getInstance().isInventoryPopup()&&h1t.getInstance().refresh()); + this.currentMail.receivedAt=new Date,_L.setData(i.body),Y6.getInstance().setData(i.body),BG.getInstance().setStatusData(null==(t=i.body)?void 0:t.mineStatus),Z6.getInstance().setData(i.body.transTicket),lS.getInstance().dispatchCustomEvent("MailUpdate"),"inventory"in i.body&&(vV.getInstance().showMessage(AG.getText("GAME_819","보석, 명예코인, 영웅을 제외한 아이템은 인벤토리로 지급되었습니다."),120),E8.getInstance().isInventoryPopup()&&a2t.getInstance().refresh());
PassMainPopup 1 hunks, 1 statements
- this.setTitle(yG.getText("GAME_309","패스보상")),this.updateGem(),this.updateHonorCoin(),0==N2.getInstance().getAll().length&&await N2.getInstance().getProducts(1),this.updateNavigator(),this.setPassStatus(!0),await this.updateList(),this.updateLayout(),await this.banner.update("Popup_Banner_04")} + this.setTitle(AG.getText("GAME_309","패스보상")),this.updateGem(),this.updateHonorCoin(),await Q2.getInstance().getProducts(2),this.updateNavigator(),this.setPassStatus(!0),await this.updateList(),this.updateLayout(),await this.banner.update("Popup_Banner_04")}
GuildMainSubView 1 hunks, 1 statements
- const i=[...bD.guildList].sort((t,i)=>{ + const i=[...ED.guildList].sort((t,i)=>{
GuildMemberSubView 1 hunks, 1 statements
- i.success?(t.wave=i.body.member.wave,t.team=i.body.member.team,A3t.getInstance().setData(t,!1),A3t.getInstance().show()):"NOT_IN_GUILD"===i.error?dG.getInstance().show(yG.getText("UI_TEXT_756","길드에 없는 플레이어입니다.")):dG.getInstance().show(i.error)} + i.success?(t.wave=i.body.member.wave,t.team=i.body.member.team,t.uid=i.body.member.uid,C6t.getInstance().setData(t,!1),C6t.getInstance().show()):"NOT_IN_GUILD"===i.error?mG.getInstance().show(AG.getText("UI_TEXT_756","길드에 없는 플레이어입니다.")):mG.getInstance().show(i.error)}
GuildWarHistoryItemRenderer 1 hunks, 1 statements
- ...nD.DEFAULT_OUTLINE_FONT_OPTION_16,fontSize:i} + ...aD.DEFAULT_OUTLINE_FONT_OPTION_16,fontSize:i}
TutorialController 1 hunks, 1 statements
- await $A.saveTutorialID(String(t.TUTORIAL_INDEX_WAVE3)),this.savedIndex=t.TUTORIAL_INDEX_WAVE3,this.enableMissionGuide=!0,GV.getInstance().init()} + await $A.saveTutorialID(String(t.TUTORIAL_INDEX_WAVE3)),this.savedIndex=t.TUTORIAL_INDEX_WAVE3,this.enableMissionGuide=!0,HV.getInstance().init(),m6.getInstance().doAccountCreate()}
SecretaryGuidePopup 1 hunks, 1 statements
- await N2.getInstance().getProducts(1,!1); + await Q2.getInstance().getProducts(3,!1);
GameOverPopup 1 hunks, 1 statements
- )`,this.lblMessage2.text=yG.getText("GAME_38","환생하면, 훈장을 받고, 처음으로 돌아갑니다.")+"\n"+yG.getText("GAME_39","골드와 병사레벨은 초기화 됩니다."),this.btnRebirth.text=yG.getText("GAME_5","환생"),this.btnRebirthBonus.text=`${ + )`,this.lblMessage2.text=AG.getText("GAME_38","환생 시, 훈장을 받고 첫 웨이브로 돌아갑니다.")+"\n"+AG.getText("GAME_39","골드로 진행한 성장(성/영웅/퀘스트)은 초기화됩니다."),this.btnRebirth.text=AG.getText("GAME_5","환생"),this.btnRebirthBonus.text=`${
BattleController 1 hunks, 1 statements
- this.skippedWave>0&&!this.shownDialogueWaves.has(this.skippedWave)&&(t.push(...E7t.getInstance().getByWave(this.skippedWave)),this.shownDialogueWaves.add(this.skippedWave)),this.shownDialogueWaves.has(wL.wave)||(t.push(...E7t.getInstance().getByWave(wL.wave)),this.shownDialogueWaves.add(wL.wave)),t.length>0&&b7t.getInstance().showDialogues(t)} + this.skippedWave>0&&!this.shownDialogueWaves.has(this.skippedWave)&&(t.push(...s3.getInstance().getByWave(this.skippedWave)),this.shownDialogueWaves.add(this.skippedWave)),this.shownDialogueWaves.has(_L.wave)||(t.push(...s3.getInstance().getByWave(_L.wave)),this.shownDialogueWaves.add(_L.wave)),t.length>0&&M9t.getInstance().showDialogues(t)}
GuildWarCombatLogItemRenderer 1 hunks, 1 statements
- ...nD.DEFAULT_FONT_OPTION_15,fontSize:14} + ...aD.DEFAULT_FONT_OPTION_15,fontSize:14}
GuildWarMemberStatusItemRenderer 1 hunks, 1 statements
- ...nD.DEFAULT_FONT_OPTION_15,fontSize:14} + ...aD.DEFAULT_FONT_OPTION_15,fontSize:14}
GuildWarTargetMarkerItemRenderer 1 hunks, 1 statements
- ...nD.DEFAULT_FONT_OPTION_15,fontSize:14} + ...aD.DEFAULT_FONT_OPTION_15,fontSize:14}
Delay 1 hunks, 1 statements
- ...Uui(),[i]:s} + ...vdi(),[i]:s}
NetworkTimeout 1 hunks, 1 statements
- ...cdi,...i} + ...Wdi,...i}
RecaptchaVerifier 1 hunks, 1 statements
- ...$mi} + ...Ewi}
BrowserPopupRedirectResolver 1 hunks, 1 statements
- ...qwi,width:e.toString(),height:n.toString(),top:h,left:r} + ...Cvi,width:e.toString(),height:n.toString(),top:h,left:r}








