EF2 Changelog

Builds / 1.14.2

Update 1.14.2

Compared with 1.13.89 · published Mon, 31 Aug 2026 08:41:00 GMT · live channel

No summary yet.

Text changes 10

KeyText
PET_NAME_1009 + Boo
PET_NAME_1010 + Llamy
PET_NAME_1011 + Harvey
PRODUCT_NAME_258 + Event Pet Package 1 (one-time only)
PRODUCT_NAME_259 + Event Pet Package 2 (one-time only)
PRODUCT_NAME_260 + Event Pet Package 3 (one-time only)
PRODUCT_NAME_261 + Event Pet Package 4 (one-time only)
PRODUCT_NAME_262 + Event Pet Package 5 (one-time only)
PRODUCT_NAME_263 + Event Pet Package 6 (one-time only)
QUEST_NAME_35 ~ Secure the Trade OutpostOpen the Frontier Route

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

Assets 7

FileChangeSizePreview
assets/ekkorr/UI_Ekkorr.json changed 191.9 KB → 193.0 KB

New sprites: UI_T126, UI_T127, UI_T128, UI_T129, UI_T130, UI_T131, UI_T132, UI_T133, UI_T134, UI_T135

Removed sprites: Castle1, Castle3, Castle4, Tower1, Tower3

assets/ekkorr/UI_Ekkorr.ktx2 changed 2,057.2 KB → 2,144.8 KB
assets/images/UI_PET.json changed 38.2 KB → 38.8 KB

New sprites: UI_PET1009, UI_PET1010, UI_PET1011

assets/images/UI_PET.ktx2 changed 608.3 KB → 616.7 KB
assets/images/conquest/regionBorderOverlay.png added 89.7 KB after
assets/images/conquest/worldMapBase.ktx2 removed 2,801.1 KB → gone
assets/images/conquest/worldMapBase.png added 4,399.5 KB after

Code 241 changes in 113 classes

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

ConquestDataManager 11 hunks, 567 statements
+ static async fetchChecked(t){
+ const i=await fetch(t),s=i.headers.get("content-type")??"";
+ if(!i.ok||s.includes("text/html"))throw new Error(`정복 리소스 로드 실패 (${
+ i.status}
+ ${
+ s.includes("text/html")?", html 폴백":""}
+ ): ${
+ t}
+ `);
+ return i}
- const[t,i,s]=await Promise.all([fetch(this.url("regionMetadata.json")).then(t=>t.json()),fetch(this.url("regionGameData.draft.json")).then(t=>t.json()),fetch(this.url("regionIdR8.png")).then(t=>t.blob())]);
+ const[t,i,s]=await Promise.all([this.fetchChecked(this.url("regionMetadata.json")).then(t=>t.json()),this.fetchChecked(this.url("regionGameData.draft.json")).then(t=>t.json()),this.fetchChecked(this.url("regionIdR8.png")).then(t=>t.blob())]);
- this.idMask=await this.decodeIdMask(s,t.width,t.height),this.buildBBoxes(),this.startRegion&&!this.isConquered(this.startRegion)&&this.setConquered(this.startRegion,!0)}
+ this.idMask=await this.decodeIdMask(s,t.width,t.height),this.buildBBoxes()}
- static async decodeIdMask(t,i,s){
- let e;
- try{
- e=await createImageBitmap(t,{
+ static decodeBlob(t,i){
+ return createImageBitmap(t,{
- )}
- catch{
- e=await new Promise((i,s)=>{
+ ).catch(()=>new Promise((s,e)=>{
- e.onload=()=>i(e),e.onerror=s,e.src=URL.createObjectURL(t)}
- )}
- const n=document.createElement("canvas");
+ n.onload=()=>s(n),n.onerror=()=>e(new Error(`정복 이미지 디코드 실패: ${
+ i}
+ `)),n.src=URL.createObjectURL(t)}
+ ))}
+ static async decodeIdMask(t,i,s){
+ const e=await this.decodeBlob(t,"regionIdR8.png"),n=document.createElement("canvas");
- static get conquered(){
- if(!this.conqueredSet)try{
- const t=localStorage.getItem(this.CONQUERED_LS_KEY);
- this.conqueredSet=new Set(t?JSON.parse(t):[])}
- catch{
- this.conqueredSet=new Set}
- return this.conqueredSet}
- static isConquered(t){
- return this.conquered.has(t)}
- static setConquered(t,i){
- if(i||t!==this.startRegion){
- i?this.conquered.add(t):this.conquered.delete(t);
- try{
- localStorage.setItem(this.CONQUERED_LS_KEY,JSON.stringify([...this.conquered]))}
- catch{
- }
- }
- }
- const t=await fetch(this.url("worldMapBase.png")).then(t=>t.blob());
- let i;
- try{
- i=await createImageBitmap(t,{
- colorSpaceConversion:"none",premultiplyAlpha:"none"}
- )}
- catch{
- i=await new Promise((i,s)=>{
- const e=new Image;
- e.onload=()=>i(e),e.onerror=s,e.src=URL.createObjectURL(t)}
- )}
- const s=document.createElement("canvas");
+ const t=await this.fetchChecked(this.url("worldMapBase.png")).then(t=>t.blob()),i=await this.decodeBlob(t,"worldMapBase.png"),s=document.createElement("canvas");
- static computeVisibility(t=2){
+ static computeVisibility(t,i=2){
- for(const h of this.conquered)s.set(h,0),e.push(h);
+ for(const r of t)e.set(r,0),n.push(r);
- zt(Lgi,"ConquestDataManager"),qt(Lgi,"mapWidth",0),qt(Lgi,"mapHeight",0),qt(Lgi,"startRegion",0),qt(Lgi,"regionMap",new Map),qt(Lgi,"idMask",null),qt(Lgi,"bboxMap",new Map),qt(Lgi,"loadPromise",null),qt(Lgi,"artPixels",null),qt(Lgi,"artLoadPromise",null),qt(Lgi,"CONQUERED_LS_KEY","ef2.conquest.demo.conquered.g2"),qt(Lgi,"conqueredSet",null);
+ qt(Qgi,"ConquestDataManager"),Yt(Qgi,"mapWidth",0),Yt(Qgi,"mapHeight",0),Yt(Qgi,"startRegion",0),Yt(Qgi,"regionMap",new Map),Yt(Qgi,"idMask",null),Yt(Qgi,"bboxMap",new Map),Yt(Qgi,"loadPromise",null),Yt(Qgi,"artPixels",null),Yt(Qgi,"artLoadPromise",null);
+ let Zgi=Qgi;
+ const tmi=[{
+ id:1,bookId:2,name:"격납고",desc:"열기구 척수·탐사 속도"}
+ ,{
+ id:2,bookId:4,name:"원정 사령부",desc:"원정 레벨·원정 공/체"}
+ ,{
+ id:3,bookId:1,name:"수송대",desc:"영웅 슬롯·병사 수"}
+ ,{
+ id:4,bookId:7,name:"보급소",desc:"창고 용량·식량(예정)"}
+ ,{
+ id:5,bookId:5,name:"제작소",desc:"기후 장비 제작(예정)"}
+ ,{
+ id:6,bookId:6,name:"대학",desc:"정복 연구(예정)"}
+ ],imi=[{
+ id:1,name:"일손 확장",desc:"일손 최대치 +24",cost:5}
+ ,{
+ id:2,name:"열기구 정비",desc:"탐사 시간 -10%",cost:5}
+ ,{
+ id:3,name:"빠른 회복",desc:"원정 회복 시간 -50%",cost:10}
+ ,{
+ id:4,name:"풍년",desc:"완성 지역 자동 수확량 +50%",cost:20}
+ ,{
+ id:5,name:"유물 슬롯 +1",desc:"본 게임 유물 슬롯 (연동 예정)",cost:50}
+ ,{
+ id:6,name:"편성 슬롯 +1",desc:"본 게임 팀 편성 (연동 예정)",cost:50}
+ ],smi=class t{
+ static ensureLoaded(){
+ return this.loadPromise||(this.loadPromise=this.load().catch(t=>{
+ throw this.loadPromise=null,t}
+ )),this.loadPromise}
+ static url(t){
+ return QA.getAssetPath(`conquest/${
+ t}
+ ?v=${
+ XA.appVersion}
+ `)}
+ static async load(){
+ await Zgi.ensureLoaded();
+ const[t,i,s]=await Promise.all([Zgi.fetchChecked(this.url("conquestRegionBook.draft.json")).then(t=>t.json()),Zgi.fetchChecked(this.url("conquestMaterialBook.draft.json")).then(t=>t.json()),Zgi.fetchChecked(this.url("conquestFacilityBook.draft.json")).then(t=>t.json())]);
+ this.regionBook=new Map(t.regions.map(t=>[t.id,t])),this.materialBook=new Map(i.materials.map(t=>[t.id,t])),this.facilityBook=new Map(s.facilities.map(t=>[t.id,t])),this.loadState(),this.tick()}
+ static now(){
+ return hx.time>0?hx.time:Date.now()}
+ static todayKey(){
+ return new Date(this.now()).toISOString().slice(0,10)}
+ static loadState(){
+ try{
+ const t=localStorage.getItem(this.LS_KEY);
+ if(t)return void(this.state=JSON.parse(t))}
+ catch{
+ }
+ this.state={
+ v:1,regions:{
+ }
+ ,surveys:[],labor:{
+ v:t.LABOR_MAX_BASE,ts:this.now()}
+ ,inv:{
+ }
+ ,fac:{
+ }
+ ,pts:{
+ earn:0,spend:0}
+ ,nodes:{
+ }
+ ,recover:0}
+ ;
+ const i=Zgi.startRegion,s=this.regionBook.get(i);
+ s&&(this.state.regions[i]={
+ e:100,c:s.subzones,o:s.subzones,ms:0,la:""}
+ ,this.awardMilestones(i)),this.save()}
+ static save(){
+ if(this.state)try{
+ localStorage.setItem(this.LS_KEY,JSON.stringify(this.state))}
+ catch{
+ }
+ }
+ static notify(){
+ var t;
+ this.save(),null==(t=this.onChanged)||t.call(this)}
+ static book(t){
+ return this.regionBook.get(t)}
+ static material(t){
+ return this.materialBook.get(t)}
+ static prog(t){
+ if(!this.state)throw new Error("ConquestStateManager 미로드");
+ let i=this.state.regions[t];
+ return i||(i={
+ e:0,c:0,o:0,ms:0,la:""}
+ ,this.state.regions[t]=i),i}
+ static explorePct(t){
+ var i,s;
+ return(null==(s=null==(i=this.state)?void 0:i.regions[t])?void 0:s.e)??0}
+ static clearedCount(t){
+ var i,s;
+ return(null==(s=null==(i=this.state)?void 0:i.regions[t])?void 0:s.c)??0}
+ static outpostStage(t){
+ var i,s;
+ return(null==(s=null==(i=this.state)?void 0:i.regions[t])?void 0:s.o)??0}
+ static pioneerPct(t){
+ const i=this.regionBook.get(t);
+ return i?Math.floor(this.outpostStage(t)/i.subzones*100):0}
+ static exploreCap(t){
+ const i=this.regionBook.get(t);
+ if(!i)return 0;
+ const s=this.clearedCount(t);
+ return s<i.subzones?10*(s+1):100}
+ static encounterPending(t){
+ var i;
+ const s=this.regionBook.get(t);
+ if(!s)return!1;
+ const e=null==(i=this.state)?void 0:i.regions[t];
+ return!!e&&e.c<s.subzones&&e.e>=10*(e.c+1)}
+ static isRegionOpen(t){
+ if(t===Zgi.startRegion)return!0;
+ const i=Zgi.getRegion(t);
+ return!!i&&i.neighbors.some(t=>this.outpostStage(t)>=1)}
+ static outpostRegions(){
+ if(!this.state)return[];
+ const t=[];
+ for(const i of Object.keys(this.state.regions))this.state.regions[i].o>=1&&t.push(Number(i));
+ return t}
+ static balloonSlots(){
+ return Math.min(3,this.facGrade(1))}
+ static activeSurveys(){
+ var t;
+ return(null==(t=this.state)?void 0:t.surveys)??[]}
+ static surveyOf(t){
+ var i;
+ return null==(i=this.state)?void 0:i.surveys.find(i=>i.r===t)}
+ static surveySec(i){
+ var s;
+ let e=((null==(s=this.regionBook.get(i))?void 0:s.tier)??1)*t.SURVEY_SEC_PER_TIER;
+ return e*=1-.02*(this.facLevel(1)-1),this.nodeLevel(2)>0&&(e*=.9),Math.max(3,Math.round(e))}
+ static surveyBlockReason(t){
+ return this.isRegionOpen(t)?this.explorePct(t)>=100?"탐사 완료":this.encounterPending(t)?"적 발견! 원정대로 제압하세요":this.surveyOf(t)?"탐사 진행 중":this.state.surveys.length>=this.balloonSlots()?"모든 열기구가 파견 중입니다":null:"인접 지역에 전초기지가 필요합니다"}
+ static startSurvey(t){
+ return!this.surveyBlockReason(t)&&(this.state.surveys.push({
+ r:t,end:this.now()+1e3*this.surveySec(t)}
+ ),this.notify(),!0)}
+ static recoverRemainSec(){
+ var t;
+ const i=((null==(t=this.state)?void 0:t.recover)??0)-this.now();
+ return i>0?Math.ceil(i/1e3):0}
+ static expeditionPower(){
+ const t=this.facLevel(2),i=this.heroSlots()*(this.squadSize()+1),s=.015*(this.facLevel(2)-1);
+ return Math.round(t*i*10*(1+s))}
+ static encounterPower(t){
+ const i=this.regionBook.get(t);
+ if(!i)return 0;
+ const s=this.clearedCount(t)+1;
+ return 12*(10*(i.tier-1)+8*s)}
+ static expeditionBlockReason(t){
+ if(!this.encounterPending(t))return"제압할 조우가 없습니다";
+ const i=this.recoverRemainSec();
+ return i>0?`원정대 회복 중 (${
+ i}
+ 초)`:null}
+ static runExpedition(i){
+ if(this.expeditionBlockReason(i))return null;
+ const s=this.expeditionPower(),e=this.encounterPower(i),n=s>=e;
+ return n?(this.prog(i).c+=1,this.grantSurveyLoot(i,2)):this.state.recover=this.now()+1e3*t.RECOVER_SEC*(this.nodeLevel(3)>0?.5:1),this.notify(),{
+ win:n,power:s,enemy:e}
+ }
+ static outpostCost(t){
+ const i=this.regionBook.get(t);
+ if(!i)return[];
+ const s=this.outpostStage(t)+1;
+ return i.production.filter(t=>"base"===t.unlock_type).map(t=>({
+ material_id:t.material_id,qty:4*s*i.tier}
+ ))}
+ static outpostBlockReason(t){
+ const i=this.regionBook.get(t);
+ if(!i)return"지역 정보 없음";
+ const s=this.prog(t);
+ return s.o>=i.subzones?"전초기지 최대 단계":s.o>=s.c?"다음 조우를 먼저 제압하세요":this.hasMaterials(this.outpostCost(t))?null:"재료가 부족합니다"}
+ static buildOutpost(t){
+ return!this.outpostBlockReason(t)&&(this.payMaterials(this.outpostCost(t)),this.prog(t).o+=1,this.awardMilestones(t),this.notify(),!0)}
+ static awardMilestones(i){
+ const s=this.regionBook.get(i);
+ if(!s||!this.state)return;
+ const e=this.prog(i),n=this.pioneerPct(i);
+ for(let h=0;
+ h<t.MILESTONES.length;
+ h++){
+ const i=1<<h;
+ n>=t.MILESTONES[h]&&!(e.ms&i)&&(e.ms|=i,this.state.pts.earn+=(h+1)*s.tier)}
+ }
+ static laborMax(){
+ let i=t.LABOR_MAX_BASE;
+ if(this.state)for(const t of Object.keys(this.state.regions))i+=this.state.regions[t].o;
+ return this.nodeLevel(1)>0&&(i+=24),i}
+ static labor(){
+ return this.state?(this.regenLabor(),Math.floor(this.state.labor.v)):0}
+ static regenLabor(){
+ if(!this.state)return;
+ const i=this.now(),s=(i-this.state.labor.ts)/1e3/t.LABOR_REGEN_SEC;
+ s>0&&(this.state.labor.v=Math.min(this.laborMax(),this.state.labor.v+s),this.state.labor.ts=i)}
+ static harvestLabor(i){
+ var s;
+ const e=(null==(s=this.regionBook.get(i))?void 0:s.tier)??1;
+ return t.HARVEST_LABOR[e-1]??10}
+ static unlockedSlots(t){
+ const i=this.regionBook.get(t);
+ if(!i)return[];
+ const s=this.outpostStage(t);
+ return i.production.filter(t=>{
+ if("base"===t.unlock_type)return!0;
+ if("friendship"===t.unlock_type){
+ const e=Math.max(1,Math.ceil(t.unlock_value/5*i.subzones));
+ return s>=e}
+ return"landmark"===t.unlock_type&&s>=i.subzones}
+ )}
+ static harvestBlockReason(t){
+ return this.outpostStage(t)<1?"전초기지가 필요합니다":this.pioneerPct(t)>=100?"완성 지역 — 매일 자동 수확":this.labor()<this.harvestLabor(t)?"일손이 부족합니다":this.inventoryTotal()>=this.storageCap()?"창고가 가득 찼습니다":null}
+ static harvest(t){
+ if(this.harvestBlockReason(t))return!1;
+ this.regenLabor(),this.state.labor.v-=this.harvestLabor(t);
+ for(const i of this.unlockedSlots(t))this.addMaterial(i.material_id,i.rate);
+ return this.notify(),!0}
+ static autoHarvest(){
+ if(!this.state)return!1;
+ const t=this.todayKey();
+ let i=!1;
+ const s=1+(this.nodeLevel(4)>0?.5:0);
+ for(const e of Object.keys(this.state.regions)){
+ const n=Number(e),h=this.state.regions[e];
+ if(h.la!==t&&!(this.pioneerPct(n)<100)){
+ for(const t of this.unlockedSlots(n))this.addMaterial(t.material_id,Math.round(t.rate*s));
+ h.la=t,i=!0}
+ }
+ return i}
+ static inventory(){
+ return this.state?Object.keys(this.state.inv).map(t=>({
+ id:Number(t),qty:this.state.inv[t]}
+ )).filter(t=>t.qty>0).sort((t,i)=>t.id-i.id):[]}
+ static materialQty(t){
+ var i;
+ return(null==(i=this.state)?void 0:i.inv[t])??0}
+ static inventoryTotal(){
+ if(!this.state)return 0;
+ let t=0;
+ for(const i of Object.keys(this.state.inv))t+=this.state.inv[i];
+ return t}
+ static storageCap(){
+ return t.STORAGE_BASE+t.STORAGE_PER_LV*(this.facLevel(4)-1)}
+ static addMaterial(t,i){
+ this.state&&(this.state.inv[t]=(this.state.inv[t]??0)+i)}
+ static hasMaterials(t){
+ return t.every(t=>this.materialQty(t.material_id)>=t.qty)}
+ static payMaterials(t){
+ for(const i of t)this.state.inv[i.material_id]=(this.state.inv[i.material_id]??0)-i.qty}
+ static grantSurveyLoot(t,i=1){
+ const s=this.regionBook.get(t);
+ if(s)for(const e of s.production)"base"===e.unlock_type&&this.addMaterial(e.material_id,Math.max(1,Math.round(e.rate/25*i)))}
+ static facLevel(t){
+ var i;
+ return(null==(i=this.state)?void 0:i.fac[t])??1}
+ static facGrade(t){
+ return Math.ceil(this.facLevel(t)/10)}
+ static heroSlots(){
+ return Math.min(5,this.facGrade(3))}
+ static squadSize(){
+ return Math.min(40,10+2*Math.floor(this.facLevel(3)/2))}
+ static facMaxLevel(){
+ return 60}
+ static facNextCost(t){
+ const i=tmi.find(i=>i.id===t);
+ if(!i)return null;
+ const s=this.facLevel(t);
+ if(s>=this.facMaxLevel())return null;
+ const e=this.facilityBook.get(i.bookId),n=null==e?void 0:e.levels[s];
+ return n?n.costs:null}
+ static facLevelUpBlockReason(t){
+ const i=this.facNextCost(t);
+ return i?this.hasMaterials(i)?null:"재료가 부족합니다":"최대 레벨"}
+ static facLevelUp(t){
+ return!this.facLevelUpBlockReason(t)&&(this.payMaterials(this.facNextCost(t)),this.state.fac[t]=this.facLevel(t)+1,this.notify(),!0)}
+ static pointsEarned(){
+ var t;
+ return(null==(t=this.state)?void 0:t.pts.earn)??0}
+ static pointsAvailable(){
+ return this.state?this.state.pts.earn-this.state.pts.spend:0}
+ static nodeLevel(t){
+ var i;
+ return(null==(i=this.state)?void 0:i.nodes[t])??0}
+ static learnBlockReason(t){
+ const i=imi.find(i=>i.id===t);
+ return i?this.nodeLevel(t)>=1?"배움 완료":this.pointsAvailable()<i.cost?"포인트가 부족합니다":null:"노드 없음"}
+ static learnNode(t){
+ if(this.learnBlockReason(t))return!1;
+ const i=imi.find(i=>i.id===t);
+ return this.state.pts.spend+=i.cost,this.state.nodes[t]=1,this.notify(),!0}
+ static tick(){
+ if(!this.state)return!1;
+ let t=!1;
+ const i=this.now(),s=[];
+ for(const e of this.state.surveys){
+ if(e.end>i){
+ s.push(e);
+ continue}
+ const n=this.prog(e.r);
+ n.e=Math.min(this.exploreCap(e.r),n.e+10),this.grantSurveyLoot(e.r),t=!0}
+ return t&&(this.state.surveys=s),this.autoHarvest()&&(t=!0),this.regenLabor(),t&&this.notify(),t}
+ }
+ ;
+ qt(smi,"ConquestStateManager"),Yt(smi,"LS_KEY","ef2.conquest.demo.state.v1"),Yt(smi,"SURVEY_SEC_PER_TIER",20),Yt(smi,"LABOR_MAX_BASE",144),Yt(smi,"LABOR_REGEN_SEC",600),Yt(smi,"HARVEST_LABOR",[6,8,10,14,18,24]),Yt(smi,"RECOVER_SEC",60),Yt(smi,"MILESTONES",[20,40,60,80,100]),Yt(smi,"STORAGE_BASE",2e3),Yt(smi,"STORAGE_PER_LV",300),Yt(smi,"regionBook",new Map),Yt(smi,"materialBook",new Map),Yt(smi,"facilityBook",new Map),Yt(smi,"state",null),Yt(smi,"loadPromise",null),Yt(smi,"onChanged",null);
+ let emi=smi;
+ const nmi=class extends Fe{
+ constructor(t,i=150,s=44,e=3042106){
+ super(),Yt(this,"bgG",new Uf),Yt(this,"lbl"),Yt(this,"btnW"),Yt(this,"btnH"),Yt(this,"color"),Yt(this,"_enabled",!0),Yt(this,"onClick",null),this.btnW=i,this.btnH=s,this.color=e,this.addChild(this.bgG),this.lbl=new mD(t),this.lbl.textSize=18,this.addChild(this.lbl),this.eventMode="static",this.cursor="pointer",this.on("pointerup",()=>{
+ var t;
+ this._enabled&&(null==(t=this.onClick)||t.call(this))}
+ ),this.redraw()}
+ set label(t){
+ this.lbl.text=t,this.centerLabel()}
+ get label(){
+ return this.lbl.text}
+ setEnabled(t){
+ this._enabled!==t&&(this._enabled=t,this.cursor=t?"pointer":"default",this.redraw())}
+ get enabled(){
+ return this._enabled}
+ setColor(t){
+ this.color!==t&&(this.color=t,this.redraw())}
+ redraw(){
+ this.bgG.clear().roundRect(0,0,this.btnW,this.btnH,8).fill({
+ color:this._enabled?this.color:3815994,alpha:.95}
+ ).stroke({
+ width:2,color:this._enabled?16769126:7829367}
+ ),this.lbl.textColor=this._enabled?16777215:10066329,this.centerLabel()}
+ centerLabel(){
+ this.lbl.x=Math.round(.5*(this.btnW-this.lbl.width)),this.lbl.y=Math.round(.5*(this.btnH-this.lbl.height))}
+ }
+ ;
+ qt(nmi,"ConquestButton");
+ let hmi=nmi;
+ const rmi=class extends Fe{
+ constructor(t,i=18,s=16769126){
+ super(),Yt(this,"bgG",new Uf),Yt(this,"fillG",new Uf),Yt(this,"lbl"),Yt(this,"barW"),Yt(this,"barH"),Yt(this,"color"),this.barW=t,this.barH=i,this.color=s,this.addChild(this.bgG),this.addChild(this.fillG),this.lbl=new mD(""),this.lbl.textSize=13,this.addChild(this.lbl),this.bgG.roundRect(0,0,t,i,.4*i).fill({
+ color:1710618,alpha:.9}
+ ).stroke({
+ width:1,color:6710886}
+ )}
+ setValue(t,i){
+ const s=Math.max(0,Math.min(1,t));
+ this.fillG.clear(),s>0&&this.fillG.roundRect(1,1,Math.max(4,(this.barW-2)*s),this.barH-2,.4*(this.barH-2)).fill({
+ color:this.color,alpha:.9}
+ ),this.lbl.text=i,this.lbl.x=Math.round(.5*(this.barW-this.lbl.width)),this.lbl.y=Math.round(.5*(this.barH-this.lbl.height))}
+ }
+ ;
+ qt(rmi,"ConquestBar");
+ let omi=rmi;
+ function ami(t){
+ switch(t){
+ case 1:return 12303291;
+ case 2:return 8248189;
+ case 3:return 7189490;
+ case 4:return 13078512;
+ case 5:return 15773786;
+ case 6:return 15756653;
+ default:return 16777215}
+ }
+ function cmi(t){
+ const i=Math.max(0,Math.ceil(t));
+ return`${
+ Math.floor(i/60)}
+ :${
+ String(i%60).padStart(2,"0")}
+ `}
+ qt(ami,"gradeColor"),qt(cmi,"fmtSec");
+ const lmi=class extends Fe{
+ constructor(t,i){
+ super(),Yt(this,"cards",[]);
+ const s=new mD("외성 시설");
+ s.textSize=22,s.x=16,s.y=8,this.addChild(s);
+ for(let e=0;
+ e<tmi.length;
+ e++){
+ const i=new pmi(tmi[e].id,t-32);
+ i.x=16,i.y=46+128*e,i.onChanged=()=>this.refreshAll(),this.addChild(i),this.cards.push(i)}
+ }
+ setData(){
+ this.refreshAll()}
+ refreshAll(){
+ for(const t of this.cards)t.refresh()}
+ }
+ ;
+ qt(lmi,"ConquestFacilityView");
+ let umi=lmi;
+ function dmi(t){
+ const i=emi,s=i.facLevel(t);
+ switch(t){
+ case 1:return`열기구 ${
+ i.balloonSlots()}
+ 척 · 탐사 속도 +${
+ 2*(s-1)}
+ %`;
+ case 2:return`원정 레벨 ${
+ s}
+  · 원정 공/체 +${
+ (1.5*(s-1)).toFixed(1)}
+ %`;
+ case 3:return`영웅 ${
+ i.heroSlots()}
+ 명 · 영웅당 병사 ${
+ i.squadSize()}
+ 명`;
+ case 4:return`창고 용량 ${
+ i.storageCap()}
+ `;
+ case 5:return"기후 장비 제작 (준비 중)";
+ case 6:return"정복 연구 (준비 중)";
+ default:return""}
+ }
+ qt(dmi,"facilityEffectText");
+ const fmi=class extends Fe{
+ constructor(t,i){
+ super(),Yt(this,"fid"),Yt(this,"nameLbl"),Yt(this,"lvLbl"),Yt(this,"effectLbl"),Yt(this,"costLbl"),Yt(this,"btn"),Yt(this,"onChanged",null),this.fid=t;
+ const s=tmi.find(i=>i.id===t),e=(new Uf).roundRect(0,0,i,118,10).fill({
+ color:1907997,alpha:.95}
+ ).stroke({
+ width:2,color:5592405}
+ );
+ this.addChild(e),this.nameLbl=new mD(s.name),this.nameLbl.textSize=20,this.nameLbl.x=16,this.nameLbl.y=10,this.addChild(this.nameLbl),this.lvLbl=new mD("",16769126),this.lvLbl.textSize=16,this.lvLbl.x=16,this.lvLbl.y=38,this.addChild(this.lvLbl),this.effectLbl=new mD("",12303291),this.effectLbl.textSize=14,this.effectLbl.x=16,this.effectLbl.y=62,this.addChild(this.effectLbl),this.costLbl=new mD("",10066329),this.costLbl.textSize=13,this.costLbl.x=16,this.costLbl.y=88,this.addChild(this.costLbl),this.btn=new hmi("레벨업",120,46,3042106),this.btn.x=i-136,this.btn.y=36,this.btn.onClick=()=>{
+ var t;
+ emi.facLevelUp(this.fid)&&(null==(t=this.onChanged)||t.call(this))}
+ ,this.addChild(this.btn),this.refresh()}
+ refresh(){
+ const t=emi,i=t.facLevel(this.fid),s=t.facGrade(this.fid);
+ this.lvLbl.text=`${
+ s}
+ 등급 · Lv.${
+ i}
+ `,this.lvLbl.textColor=ami(s),this.effectLbl.text=dmi(this.fid);
+ const e=t.facNextCost(this.fid);
+ if(!e)return this.costLbl.text="최대 레벨",void this.btn.setEnabled(!1);
+ this.costLbl.text="비용: "+e.map(i=>{
+ const s=t.material(i.material_id);
+ return`${
+ (null==s?void 0:s.name_ko)??i.material_id}
+ ×${
+ i.qty}
+ (${
+ t.materialQty(i.material_id)}
+ )`}
+ ).join("  "),this.btn.setEnabled(null===t.facLevelUpBlockReason(this.fid))}
+ }
+ ;
+ qt(fmi,"FacilityCard");
+ let pmi=fmi;
+ const gmi=class extends Fe{
+ constructor(t,i){
+ super(),Yt(this,"pointLbl"),Yt(this,"rows",[]);
+ const s=new mD("정복자 트리");
+ s.textSize=22,s.x=16,s.y=8,this.addChild(s),this.pointLbl=new mD("",16769126),this.pointLbl.textSize=17,this.pointLbl.x=16,this.pointLbl.y=40,this.addChild(this.pointLbl);
+ const e=new mD("개척 포인트 = 지역 개척도 20/40/60/80/100% 달성 × 티어",10066329);
+ e.textSize=13,e.x=16,e.y=66,this.addChild(e);
+ for(let n=0;
+ n<imi.length;
+ n++){
+ const i=new vmi(imi[n].id,t-32);
+ i.x=16,i.y=96+92*n,i.onChanged=()=>this.setData(),this.addChild(i),this.rows.push(i)}
+ }
+ setData(){
+ this.pointLbl.text=`보유 ${
+ emi.pointsAvailable()}
+ P · 누적 ${
+ emi.pointsEarned()}
+ P`;
+ for(const t of this.rows)t.refresh()}
+ }
+ ;
+ qt(gmi,"ConquestPointView");
+ let mmi=gmi;
+ const wmi=class extends Fe{
+ constructor(t,i){
+ super(),Yt(this,"nodeId"),Yt(this,"btn"),Yt(this,"stateLbl"),Yt(this,"onChanged",null),this.nodeId=t;
+ const s=imi.find(i=>i.id===t),e=(new Uf).roundRect(0,0,i,84,10).fill({
+ color:1907997,alpha:.95}
+ ).stroke({
+ width:2,color:5592405}
+ );
+ this.addChild(e);
+ const n=new mD(s.name);
+ n.textSize=18,n.x=16,n.y=12,this.addChild(n);
+ const h=new mD(s.desc,12303291);
+ h.textSize=14,h.x=16,h.y=42,this.addChild(h),this.stateLbl=new mD("",8248189),this.stateLbl.textSize=15,this.stateLbl.x=i-250,this.stateLbl.y=14,this.addChild(this.stateLbl),this.btn=new hmi(`배우기 ${
+ s.cost}
+ P`,130,44,6048302),this.btn.x=i-146,this.btn.y=20,this.btn.onClick=()=>{
+ var t;
+ emi.learnNode(this.nodeId)&&(null==(t=this.onChanged)||t.call(this))}
+ ,this.addChild(this.btn),this.refresh()}
+ refresh(){
+ const t=emi.nodeLevel(this.nodeId)>=1;
+ this.btn.visible=!t,this.stateLbl.text=t?"✔ 배움":"",t||this.btn.setEnabled(null===emi.learnBlockReason(this.nodeId))}
+ }
+ ;
+ qt(wmi,"NodeRow");
+ let vmi=wmi;
+ const _mi=class extends Fe{
+ constructor(t,i){
+ super();
+ const s=new mD("상점");
+ s.textSize=22,s.x=16,s.y=8,this.addChild(s);
+ const e=new mD("준비 중입니다",10066329);
+ e.textSize=17,e.x=16,e.y=48,this.addChild(e)}
+ setData(){
+ }
+ }
+ ;
+ qt(_mi,"ConquestShopView");
EventBus 2 hunks, 344 statements
+ const xL=class{
+ constructor(){
+ Yt(this,"listeners",new Map)}
+ on(t,i){
+ let s=this.listeners.get(t);
+ return s||(s=new Set,this.listeners.set(t,s)),s.add(i),()=>this.off(t,i)}
+ off(t,i){
+ var s;
+ null==(s=this.listeners.get(t))||s.delete(i)}
+ emit(t,i){
+ const s=this.listeners.get(t);
+ if(!s||0===s.size)return;
+ const e=[...s];
+ for(const h of e)try{
+ h(i)}
+ catch(n){
+ }
+ }
+ clear(t){
+ null==t?this.listeners.clear():this.listeners.delete(t)}
+ }
+ ;
+ qt(xL,"EventBus");
+ let RL=xL;
+ const PL=class{
+ constructor(t=200){
+ Yt(this,"messages",[]),Yt(this,"byId",new Map),Yt(this,"maxSize"),this.maxSize=t}
+ get size(){
+ return this.messages.length}
+ getAll(){
+ return this.messages}
+ get(t){
+ return this.byId.get(t)}
+ has(t){
+ return this.byId.has(t)}
+ append(t){
+ return!this.byId.has(t.id)&&(this.messages.push(t),this.byId.set(t.id,t),this.trimHead(),!0)}
+ prependHistory(t){
+ if(0===t.length)return[];
+ const i=[];
+ for(const s of t)this.byId.has(s.id)||(i.push(s),this.byId.set(s.id,s));
+ return 0===i.length?[]:(this.messages=i.concat(this.messages),i)}
+ update(t,i){
+ const s=this.byId.get(t);
+ if(s)return Object.assign(s,i),s}
+ replaceId(t,i){
+ if(t===i)return this.byId.get(i);
+ const s=this.byId.get(t);
+ return s?(this.byId.delete(t),s.id=i,this.byId.has(i)||this.byId.set(i,s),s):void 0}
+ reset(t=[]){
+ const i=new Map(this.byId);
+ this.messages=[],this.byId.clear();
+ for(const s of t){
+ if(this.byId.has(s.id))continue;
+ const t=i.get(s.id);
+ (null==t?void 0:t.translated)&&(s.translated=t.translated,s.translatedText=t.translatedText,s.originalText=t.originalText),this.messages.push(s),this.byId.set(s.id,s)}
+ this.trimHead()}
+ clear(){
+ this.messages=[],this.byId.clear()}
+ oldestTimestamp(){
+ var t;
+ return null==(t=this.messages[0])?void 0:t.timestamp}
+ trimHead(){
+ if(this.messages.length<=this.maxSize)return;
+ const t=this.messages.length-this.maxSize,i=this.messages.splice(0,t);
+ for(const s of i)this.byId.delete(s.id)}
+ }
+ ;
+ qt(PL,"MessageStore");
+ let NL=PL;
+ const LL=class{
+ constructor(t,i,s,e=200){
+ Yt(this,"roomId"),Yt(this,"kind"),Yt(this,"peerUid"),Yt(this,"peerName"),Yt(this,"store"),Yt(this,"bus"),this.roomId=t,this.kind=i,this.peerUid=s,this.store=new NL(e),this.bus=new RL}
+ receive(t){
+ this.store.append(t)&&this.bus.emit("message:new",t)}
+ prependHistory(t){
+ const i=this.store.prependHistory(t);
+ i.length>0&&this.bus.emit("history:prepended",i)}
+ resetHistory(t=[]){
+ this.store.reset(t),this.bus.emit("history:reset",this.store.getAll())}
+ updateMessage(t,i){
+ const s=this.store.update(t,i);
+ s&&this.bus.emit("message:updated",s)}
+ confirmSend(t,i){
+ const s=this.store.replaceId(t,i);
+ s&&(s.status="sent",s.localId=void 0,this.bus.emit("message:updated",s))}
+ failSend(t){
+ const i=this.store.get(t);
+ i&&(i.status="failed",this.bus.emit("message:updated",i))}
+ notifyConnected(t){
+ this.bus.emit("connected",{
+ latency:t}
+ )}
+ notifyDisconnected(t){
+ this.bus.emit("disconnected",{
+ reason:t}
+ )}
+ getMessages(){
+ return this.store.getAll()}
+ getMessage(t){
+ return this.store.get(t)}
+ oldestTimestamp(){
+ return this.store.oldestTimestamp()}
+ }
+ ;
+ qt(LL,"ChatRoom");
+ let DL=LL;
+ const GL=class t{
+ constructor(){
+ Yt(this,"rooms",new Map),Yt(this,"guildRoom"),Yt(this,"globalRoom"),Yt(this,"systemRoom"),Yt(this,"globalBus"),Yt(this,"conversations",[]),Yt(this,"currentChannel",null),this.guildRoom=new DL(t.GUILD_ROOM_ID,"guild"),this.rooms.set(t.GUILD_ROOM_ID,this.guildRoom),this.globalRoom=new DL(t.GLOBAL_ROOM_ID,"global"),this.rooms.set(t.GLOBAL_ROOM_ID,this.globalRoom),this.systemRoom=new DL(t.SYSTEM_ROOM_ID,"system"),this.rooms.set(t.SYSTEM_ROOM_ID,this.systemRoom),this.globalBus=new RL}
+ static getInstance(){
+ return this._instance||(this._instance=new t),this._instance}
+ getGuildRoom(){
+ return this.guildRoom}
+ getGlobalRoom(){
+ return this.globalRoom}
+ getSystemRoom(){
+ return this.systemRoom}
+ getDMRoom(i,s){
+ const e=t.dmRoomId(i);
+ let n=this.rooms.get(e);
+ return n||(n=new DL(e,"dm",i),this.rooms.set(e,n)),s&&s.length>0&&(n.peerName=s),n}
+ hasDMRoom(i){
+ return this.rooms.has(t.dmRoomId(i))}
+ getRoom(t){
+ return this.rooms.get(t)}
+ getAllRooms(){
+ return Array.from(this.rooms.values())}
+ clearAll(){
+ for(const t of this.rooms.values())t.store.clear();
+ this.conversations=[],this.currentChannel=null}
+ static dmRoomId(t){
+ return`dm:${
+ t}
+ `}
+ dispatchToRoom(t,i){
+ const s=t.store.size;
+ t.receive(i),t.store.size>s&&this.globalBus.emit("room:message",{
+ roomId:t.roomId,kind:t.kind,message:i}
+ )}
+ setConversations(t){
+ this.conversations=t,this.globalBus.emit("conversations:updated",t)}
+ get store(){
+ return this.guildRoom.store}
+ get bus(){
+ return this.guildRoom.bus}
+ receive(t){
+ this.dispatchToRoom(this.guildRoom,t)}
+ prependHistory(t){
+ this.guildRoom.prependHistory(t)}
+ resetHistory(t=[]){
+ this.guildRoom.resetHistory(t)}
+ updateMessage(t,i){
+ this.guildRoom.updateMessage(t,i)}
+ confirmSend(t,i){
+ this.guildRoom.confirmSend(t,i)}
+ failSend(t){
+ this.guildRoom.failSend(t)}
+ notifyConnected(t){
+ this.guildRoom.notifyConnected(t)}
+ notifyDisconnected(t){
+ this.guildRoom.notifyDisconnected(t)}
+ getMessages(){
+ return this.guildRoom.getMessages()}
+ getMessage(t){
+ return this.guildRoom.getMessage(t)}
+ oldestTimestamp(){
+ return this.guildRoom.oldestTimestamp()}
+ }
+ ;
+ qt(GL,"ChatService"),Yt(GL,"_instance",null),Yt(GL,"GUILD_ROOM_ID","guild"),Yt(GL,"GLOBAL_ROOM_ID","global"),Yt(GL,"SYSTEM_ROOM_ID","system");
+ let BL=GL;
- const lKt=class{
- constructor(){
- qt(this,"listeners",new Map)}
- on(t,i){
- let s=this.listeners.get(t);
- return s||(s=new Set,this.listeners.set(t,s)),s.add(i),()=>this.off(t,i)}
- off(t,i){
- var s;
- null==(s=this.listeners.get(t))||s.delete(i)}
- emit(t,i){
- const s=this.listeners.get(t);
- if(!s||0===s.size)return;
- const e=[...s];
- for(const n of e)try{
- n(i)}
- catch(Yki){
- }
- }
- clear(t){
- null==t?this.listeners.clear():this.listeners.delete(t)}
- }
- ;
- zt(lKt,"EventBus");
- let uKt=lKt;
- const dKt=class{
- constructor(t=200){
- qt(this,"messages",[]),qt(this,"byId",new Map),qt(this,"maxSize"),this.maxSize=t}
- get size(){
- return this.messages.length}
- getAll(){
- return this.messages}
- get(t){
- return this.byId.get(t)}
- has(t){
- return this.byId.has(t)}
- append(t){
- return!this.byId.has(t.id)&&(this.messages.push(t),this.byId.set(t.id,t),this.trimHead(),!0)}
- prependHistory(t){
- if(0===t.length)return[];
- const i=[];
- for(const s of t)this.byId.has(s.id)||(i.push(s),this.byId.set(s.id,s));
- return 0===i.length?[]:(this.messages=i.concat(this.messages),i)}
- update(t,i){
- const s=this.byId.get(t);
- if(s)return Object.assign(s,i),s}
- replaceId(t,i){
- if(t===i)return this.byId.get(i);
- const s=this.byId.get(t);
- return s?(this.byId.delete(t),s.id=i,this.byId.has(i)||this.byId.set(i,s),s):void 0}
- reset(t=[]){
- const i=new Map(this.byId);
- this.messages=[],this.byId.clear();
- for(const s of t){
- if(this.byId.has(s.id))continue;
- const t=i.get(s.id);
- (null==t?void 0:t.translated)&&(s.translated=t.translated,s.translatedText=t.translatedText,s.originalText=t.originalText),this.messages.push(s),this.byId.set(s.id,s)}
- this.trimHead()}
- clear(){
- this.messages=[],this.byId.clear()}
- oldestTimestamp(){
- var t;
- return null==(t=this.messages[0])?void 0:t.timestamp}
- trimHead(){
- if(this.messages.length<=this.maxSize)return;
- const t=this.messages.length-this.maxSize,i=this.messages.splice(0,t);
- for(const s of i)this.byId.delete(s.id)}
- }
- ;
- zt(dKt,"MessageStore");
- let fKt=dKt;
- const pKt=class{
- constructor(t,i,s,e=200){
- qt(this,"roomId"),qt(this,"kind"),qt(this,"peerUid"),qt(this,"peerName"),qt(this,"store"),qt(this,"bus"),this.roomId=t,this.kind=i,this.peerUid=s,this.store=new fKt(e),this.bus=new uKt}
- receive(t){
- this.store.append(t)&&this.bus.emit("message:new",t)}
- prependHistory(t){
- const i=this.store.prependHistory(t);
- i.length>0&&this.bus.emit("history:prepended",i)}
- resetHistory(t=[]){
- this.store.reset(t),this.bus.emit("history:reset",this.store.getAll())}
- updateMessage(t,i){
- const s=this.store.update(t,i);
- s&&this.bus.emit("message:updated",s)}
- confirmSend(t,i){
- const s=this.store.replaceId(t,i);
- s&&(s.status="sent",s.localId=void 0,this.bus.emit("message:updated",s))}
- failSend(t){
- const i=this.store.get(t);
- i&&(i.status="failed",this.bus.emit("message:updated",i))}
- notifyConnected(t){
- this.bus.emit("connected",{
- latency:t}
- )}
- notifyDisconnected(t){
- this.bus.emit("disconnected",{
- reason:t}
- )}
- getMessages(){
- return this.store.getAll()}
- getMessage(t){
- return this.store.get(t)}
- oldestTimestamp(){
- return this.store.oldestTimestamp()}
- }
- ;
- zt(pKt,"ChatRoom");
- let gKt=pKt;
- const mKt=class t{
- constructor(){
- qt(this,"rooms",new Map),qt(this,"guildRoom"),qt(this,"globalRoom"),qt(this,"systemRoom"),qt(this,"globalBus"),qt(this,"conversations",[]),qt(this,"currentChannel",null),this.guildRoom=new gKt(t.GUILD_ROOM_ID,"guild"),this.rooms.set(t.GUILD_ROOM_ID,this.guildRoom),this.globalRoom=new gKt(t.GLOBAL_ROOM_ID,"global"),this.rooms.set(t.GLOBAL_ROOM_ID,this.globalRoom),this.systemRoom=new gKt(t.SYSTEM_ROOM_ID,"system"),this.rooms.set(t.SYSTEM_ROOM_ID,this.systemRoom),this.globalBus=new uKt}
- static getInstance(){
- return this._instance||(this._instance=new t),this._instance}
- getGuildRoom(){
- return this.guildRoom}
- getGlobalRoom(){
- return this.globalRoom}
- getSystemRoom(){
- return this.systemRoom}
- getDMRoom(i,s){
- const e=t.dmRoomId(i);
- let n=this.rooms.get(e);
- return n||(n=new gKt(e,"dm",i),this.rooms.set(e,n)),s&&s.length>0&&(n.peerName=s),n}
- hasDMRoom(i){
- return this.rooms.has(t.dmRoomId(i))}
- getRoom(t){
- return this.rooms.get(t)}
- getAllRooms(){
- return Array.from(this.rooms.values())}
- clearAll(){
- for(const t of this.rooms.values())t.store.clear();
- this.conversations=[],this.currentChannel=null}
- static dmRoomId(t){
- return`dm:${
- t}
- `}
- dispatchToRoom(t,i){
- const s=t.store.size;
- t.receive(i),t.store.size>s&&this.globalBus.emit("room:message",{
- roomId:t.roomId,kind:t.kind,message:i}
- )}
- setConversations(t){
- this.conversations=t,this.globalBus.emit("conversations:updated",t)}
- get store(){
- return this.guildRoom.store}
- get bus(){
- return this.guildRoom.bus}
- receive(t){
- this.dispatchToRoom(this.guildRoom,t)}
- prependHistory(t){
- this.guildRoom.prependHistory(t)}
- resetHistory(t=[]){
- this.guildRoom.resetHistory(t)}
- updateMessage(t,i){
- this.guildRoom.updateMessage(t,i)}
- confirmSend(t,i){
- this.guildRoom.confirmSend(t,i)}
- failSend(t){
- this.guildRoom.failSend(t)}
- notifyConnected(t){
- this.guildRoom.notifyConnected(t)}
- notifyDisconnected(t){
- this.guildRoom.notifyDisconnected(t)}
- getMessages(){
- return this.guildRoom.getMessages()}
- getMessage(t){
- return this.guildRoom.getMessage(t)}
- oldestTimestamp(){
- return this.guildRoom.oldestTimestamp()}
- }
- ;
- zt(mKt,"ChatService"),qt(mKt,"_instance",null),qt(mKt,"GUILD_ROOM_ID","guild"),qt(mKt,"GLOBAL_ROOM_ID","global"),qt(mKt,"SYSTEM_ROOM_ID","system");
- let wKt=mKt;
ConquestStorageView 1 hunks, 175 statements
- super(),qt(this,"viewW"),qt(this,"viewH"),qt(this,"mapLayer",new Ue),qt(this,"revealLayer",new Ue),qt(this,"revealSprites",new Map),qt(this,"highlightSprite",null),qt(this,"highlightTexture",null),qt(this,"nameLabelsSprite",null),qt(this,"landmarkLabelsSprite",null),qt(this,"fogSprite",null),qt(this,"visibility",null),qt(this,"onRegionSelected",null),qt(this,"fitScale",1),qt(this,"zoomIdx",0),qt(this,"dragPointerId",-1),qt(this,"dragStartX",0),qt(this,"dragStartY",0),qt(this,"layerStartX",0),qt(this,"layerStartY",0),qt(this,"dragMoved",0),this.viewW=t,this.viewH=i,this.addChild(this.mapLayer);
+ super(),Yt(this,"viewW"),Yt(this,"capBar"),Yt(this,"grid",new Fe),Yt(this,"emptyLbl"),this.viewW=t;
+ const s=new mD("창고");
+ s.textSize=22,s.x=16,s.y=8,this.addChild(s),this.capBar=new omi(t-32,22,8248189),this.capBar.x=16,this.capBar.y=42,this.addChild(this.capBar),this.emptyLbl=new mD("창고가 비었습니다 — 지역을 수확해 보세요",10066329),this.emptyLbl.textSize=15,this.emptyLbl.x=16,this.emptyLbl.y=84,this.addChild(this.emptyLbl),this.grid.x=16,this.grid.y=78,this.addChild(this.grid)}
+ setData(){
+ const i=emi,s=i.inventoryTotal(),e=i.storageCap();
+ this.capBar.setValue(s/e,`${
+ s}
+  / ${
+ e}
+ `),this.grid.removeChildren().forEach(t=>t.destroy({
+ children:!0}
+ ));
+ const n=i.inventory();
+ this.emptyLbl.visible=0===n.length;
+ for(let h=0;
+ h<n.length;
+ h++){
+ const{
+ id:s,qty:e}
+ =n[h],r=i.material(s),o=new Fe,a=h%t.COLS,c=Math.floor(h/t.COLS);
+ o.x=a*(t.CELL_W+6),o.y=c*(t.CELL_H+6);
+ const l=(null==r?void 0:r.grade)??1,u=(new Uf).roundRect(0,0,t.CELL_W,t.CELL_H,8).fill({
+ color:1907997,alpha:.95}
+ ).stroke({
+ width:2,color:ami(l)}
+ );
+ o.addChild(u);
+ const d=new mD((null==r?void 0:r.name_ko)??`#${
+ s}
+ `);
+ d.textSize=15,d.textColor=ami(l),d.x=10,d.y=8,o.addChild(d);
+ const f=new mD(`${
+ e}
+ `,16777215);
+ f.textSize=16,f.x=10,f.y=34,o.addChild(f),this.grid.addChild(o)}
+ }
+ }
+ ;
+ qt(ymi,"ConquestStorageView"),Yt(ymi,"COLS",4),Yt(ymi,"CELL_W",146),Yt(ymi,"CELL_H",64);
+ let Mmi=ymi;
+ const Emi=class t extends Fe{
+ constructor(i){
+ super(),Yt(this,"sheetW"),Yt(this,"bgG",new Uf),Yt(this,"nameLbl"),Yt(this,"subLbl"),Yt(this,"exploreBar"),Yt(this,"pioneerBar"),Yt(this,"statusLbl"),Yt(this,"btnSurvey"),Yt(this,"btnExpedition"),Yt(this,"btnOutpost"),Yt(this,"btnHarvest"),Yt(this,"costLbl"),Yt(this,"region",null),Yt(this,"resultText",null),Yt(this,"resultUntil",0),Yt(this,"onStateChanged",null),this.sheetW=i,this.bgG.rect(0,0,i,t.HEIGHT).fill({
+ color:1118481,alpha:.93}
+ ),this.bgG.eventMode="static",this.addChild(this.bgG),this.nameLbl=new mD(""),this.nameLbl.textSize=22,this.nameLbl.x=16,this.nameLbl.y=10,this.addChild(this.nameLbl),this.subLbl=new mD("",12303291),this.subLbl.textSize=14,this.subLbl.x=16,this.subLbl.y=40,this.addChild(this.subLbl);
+ const s=i-32;
+ this.exploreBar=new omi(s,20,7189490),this.exploreBar.x=16,this.exploreBar.y=64,this.addChild(this.exploreBar),this.pioneerBar=new omi(s,20,16769126),this.pioneerBar.x=16,this.pioneerBar.y=90,this.addChild(this.pioneerBar),this.statusLbl=new mD("",16769126),this.statusLbl.textSize=15,this.statusLbl.x=16,this.statusLbl.y=118,this.addChild(this.statusLbl);
+ const e=Math.floor((i-32-24)/4);
+ this.btnSurvey=new hmi("탐사",e,46,3038315),this.btnExpedition=new hmi("원정 출정",e,46,7027246),this.btnOutpost=new hmi("전초기지",e,46,6048302),this.btnHarvest=new hmi("수확",e,46,3042106);
+ const n=[this.btnSurvey,this.btnExpedition,this.btnOutpost,this.btnHarvest];
+ for(let t=0;
+ t<n.length;
+ t++)n[t].x=16+t*(e+8),n[t].y=146,this.addChild(n[t]);
+ this.btnSurvey.onClick=()=>this.doSurvey(),this.btnExpedition.onClick=()=>this.doExpedition(),this.btnOutpost.onClick=()=>this.doOutpost(),this.btnHarvest.onClick=()=>this.doHarvest(),this.costLbl=new mD("",10066329),this.costLbl.textSize=13,this.costLbl.x=16,this.costLbl.y=200,this.addChild(this.costLbl),this.visible=!1}
+ now(){
+ return hx.time>0?hx.time:Date.now()}
+ setRegion(t){
+ this.region=t,this.resultText=null,this.visible=!!t,t&&this.refresh()}
+ onFrame(){
+ this.visible&&this.region&&this.refresh()}
+ doSurvey(){
+ var t;
+ this.region&&emi.startSurvey(this.region.id)&&(null==(t=this.onStateChanged)||t.call(this),this.refresh())}
+ doExpedition(){
+ var t;
+ if(!this.region)return;
+ const i=emi.runExpedition(this.region.id);
+ i&&(this.resultText=i.win?`승리! 착륙지 확보 (전투력 ${
+ i.power}
+  vs ${
+ i.enemy}
+ )`:`패배… 원정대 회복 필요 (전투력 ${
+ i.power}
+  vs ${
+ i.enemy}
+ )`,this.resultUntil=this.now()+5e3,null==(t=this.onStateChanged)||t.call(this),this.refresh())}
+ doOutpost(){
+ var t;
+ this.region&&emi.buildOutpost(this.region.id)&&(null==(t=this.onStateChanged)||t.call(this),this.refresh())}
+ doHarvest(){
+ var t;
+ this.region&&emi.harvest(this.region.id)&&(this.resultText="수확 완료! 창고에 재료가 들어왔습니다",this.resultUntil=this.now()+3e3,null==(t=this.onStateChanged)||t.call(this),this.refresh())}
+ refresh(){
+ const t=this.region;
+ if(!t)return;
+ const i=t.id,s=emi.book(i),e=emi,n=t.landmarks.length?"★":"";
+ this.nameLbl.text=`${
+ n}
+ ${
+ t.nameKo}
+ `,this.subLbl.text=`[${
+ t.zoneCode}
+ ] ${
+ t.biomeKo}
+  · ${
+ t.tier}
+ 티어 · 구역 ${
+ (null==s?void 0:s.subzones)??"?"}
+ 곳 · ${
+ (null==s?void 0:s.terrain)??""}
+ `;
+ const h=e.explorePct(i),r=e.exploreCap(i);
+ this.exploreBar.setValue(h/100,e.encounterPending(i)?`탐사 ${
+ h}
+ % — 적 발견!`:h>=100?"탐사 완료":`탐사 ${
+ h}
+ % (다음 조우 ${
+ r}
+ %)`);
+ const o=e.pioneerPct(i);
+ this.pioneerBar.setValue(o/100,`개척 ${
+ o}
+ % (전초기지 ${
+ e.outpostStage(i)}
+ /${
+ (null==s?void 0:s.subzones)??"?"}
+ 단계)`),this.updateStatus(i),this.updateButtons(i)}
+ updateStatus(t){
+ const i=emi;
+ if(this.resultText&&this.now()<this.resultUntil)return void(this.statusLbl.text=this.resultText);
+ this.resultText=null;
+ const s=i.surveyOf(t);
+ if(s){
+ const t=(s.end-this.now())/1e3;
+ return void(this.statusLbl.text=`🎈 탐험대 조사 중… ${
+ cmi(t)}
+ `)}
+ if(i.encounterPending(t)){
+ const t=i.recoverRemainSec();
+ return void(this.statusLbl.text=t>0?`⚔ 적 발견! 원정대 회복 중 ${
+ cmi(t)}
+ `:"⚔ 탐험대가 적을 발견했습니다! 원정대를 보내 제압하세요")}
+ i.pioneerPct(t)>=100?this.statusLbl.text="✔ 완성 지역 — 매일 물자가 자동으로 도착합니다":null!==i.outpostBlockReason(t)?this.statusLbl.text="":this.statusLbl.text="🏕 착륙지 확보! 전초기지를 지을 수 있습니다"}
+ updateButtons(t){
+ var i;
+ const s=emi,e=s.surveyBlockReason(t);
+ this.btnSurvey.setEnabled(!e),this.btnSurvey.label=e?"탐사":`탐사 ${
+ cmi(s.surveySec(t))}
+ `;
+ const n=s.expeditionBlockReason(t);
+ this.btnExpedition.setEnabled(!n);
+ const h=s.outpostBlockReason(t);
+ this.btnOutpost.setEnabled(!h);
+ const r=(null==(i=s.book(t))?void 0:i.subzones)??1,o=Math.min(s.outpostStage(t)+1,r);
+ this.btnOutpost.label=`전초기지 ${
+ o}
+ 단계`;
+ const a=s.harvestBlockReason(t);
+ this.btnHarvest.setEnabled(!a),this.btnHarvest.label=`수확 (일손${
+ s.harvestLabor(t)}
+ )`;
+ const c=[];
+ if("재료가 부족합니다"===h||null===h){
+ const i=s.outpostCost(t).map(t=>{
+ const i=s.material(t.material_id);
+ return`${
+ (null==i?void 0:i.name_ko)??t.material_id}
+ ×${
+ t.qty}
+ (${
+ s.materialQty(t.material_id)}
+ )`}
+ ).join(" ");
+ c.push(`건설: ${
+ i}
+ `)}
+ const l=[e,n,h,a].find(t=>t&&"제압할 조우가 없습니다"!==t&&"탐사 완료"!==t&&"전초기지 최대 단계"!==t);
+ l&&c.push(l),this.costLbl.text=c.join("  ·  ")}
+ }
+ ;
+ qt(Emi,"ConquestRegionSheet"),Yt(Emi,"HEIGHT",236);
+ let Ami=Emi;
+ const Smi=class t extends Fe{
+ constructor(t,i){
+ super(),Yt(this,"viewW"),Yt(this,"viewH"),Yt(this,"mapLayer",new Fe),Yt(this,"revealLayer",new Fe),Yt(this,"revealSprites",new Map),Yt(this,"highlightSprite",null),Yt(this,"highlightTexture",null),Yt(this,"nameLabelsSprite",null),Yt(this,"landmarkLabelsSprite",null),Yt(this,"progressLabelsSprite",null),Yt(this,"balloonSprites",new Map),Yt(this,"balloonTexture",null),Yt(this,"fogSprite",null),Yt(this,"visibility",null),Yt(this,"onRegionSelected",null),Yt(this,"fitScale",1),Yt(this,"zoomIdx",0),Yt(this,"dragPointerId",-1),Yt(this,"dragStartX",0),Yt(this,"dragStartY",0),Yt(this,"layerStartX",0),Yt(this,"layerStartY",0),Yt(this,"dragMoved",0),this.viewW=t,this.viewH=i,this.addChild(this.mapLayer);
ConquestWorldMapTabView 6 hunks, 165 statements
- const Ugi=class t extends cqt{
- constructor(){
- super(),qt(this,"headerBg"),qt(this,"titleLabel"),qt(this,"infoLabel"),qt(this,"mapView",null),qt(this,"initPromise",null),qt(this,"selectedRegion",null),qt(this,"btnConquer",new Ue),qt(this,"btnConquerBg",new Bf),qt(this,"btnConquerLabel"),qt(this,"btnNames",new Ue),qt(this,"btnNamesBg",new Bf),qt(this,"btnNamesLabel"),qt(this,"btnFog",new Ue),qt(this,"btnFogBg",new Bf),qt(this,"btnFogLabel"),qt(this,"btnZoom",new Ue),qt(this,"btnZoomBg",new Bf),qt(this,"btnZoomLabel"),this.y=0,this.bg.height=zA.safeHeight,this.dimOverlay.y=0,this.headerBg=(new Bf).rect(0,0,640,t.HEADER_H).fill({
- color:1118481,alpha:.92}
- ),this.headerBg.eventMode="none",this.addChild(this.headerBg),this.titleLabel=new hD("정복 (프로토타입)"),this.titleLabel.x=12,this.titleLabel.y=zA.RESOURCE_INFO_H+6,this.addChild(this.titleLabel),this.infoLabel=new hD("지역을 선택하세요",16769126),this.infoLabel.x=12,this.infoLabel.y=zA.RESOURCE_INFO_H+34,this.addChild(this.infoLabel),this.btnConquerLabel=new hD("점령하기"),this.btnConquer.addChild(this.btnConquerBg),this.btnConquerLabel.x=12,this.btnConquerLabel.y=7,this.btnConquer.addChild(this.btnConquerLabel),this.btnConquer.x=490,this.btnConquer.y=zA.RESOURCE_INFO_H+28,this.btnConquer.eventMode="static",this.btnConquer.cursor="pointer",this.btnConquer.on("pointerup",this.onConquerToggle,this),this.btnConquer.visible=!1,this.addChild(this.btnConquer),this.btnClose.x=640-this.btnClose.width-4,this.btnClose.y=zA.RESOURCE_INFO_H+2,this.addChild(this.btnClose),this.btnNamesLabel=new hD("지역명"),this.btnNames.addChild(this.btnNamesBg),this.btnNamesLabel.x=12,this.btnNamesLabel.y=5,this.btnNames.addChild(this.btnNamesLabel),this.btnNames.x=this.btnClose.x-100,this.btnNames.y=zA.RESOURCE_INFO_H+4,this.btnNames.eventMode="static",this.btnNames.cursor="pointer",this.btnNames.on("pointerup",this.onNamesToggle,this),this.updateNamesButton(!1),this.addChild(this.btnNames),this.btnFogLabel=new hD("안개"),this.btnFog.addChild(this.btnFogBg),this.btnFogLabel.x=12,this.btnFogLabel.y=5,this.btnFog.addChild(this.btnFogLabel),this.btnFog.x=this.btnNames.x-84,this.btnFog.y=this.btnNames.y,this.btnFog.eventMode="static",this.btnFog.cursor="pointer",this.btnFog.on("pointerup",this.onFogToggle,this),this.updateFogButton(!0),this.addChild(this.btnFog),this.btnZoomLabel=new hD("100%"),this.btnZoom.addChild(this.btnZoomBg),this.btnZoomBg.roundRect(0,0,84,44,10).fill({
+ const Cmi=class extends Fe{
+ constructor(t,i){
+ super(),Yt(this,"viewW"),Yt(this,"viewH"),Yt(this,"mapView",null),Yt(this,"sheet"),Yt(this,"loadingLbl"),Yt(this,"btnZoom",new Fe),Yt(this,"btnZoomBg",new Uf),Yt(this,"btnZoomLbl"),Yt(this,"btnFog",new Fe),Yt(this,"btnFogBg",new Uf),Yt(this,"btnFogLbl"),Yt(this,"btnNames",new Fe),Yt(this,"btnNamesBg",new Uf),Yt(this,"btnNamesLbl"),Yt(this,"initPromise",null),Yt(this,"onStateChanged",null),this.viewW=t,this.viewH=i,this.loadingLbl=new mD("월드맵 불러오는 중...",16769126),this.loadingLbl.x=20,this.loadingLbl.y=20,this.addChild(this.loadingLbl),this.sheet=new Ami(t),this.sheet.y=i-Ami.HEIGHT,this.sheet.onStateChanged=()=>{
+ var t,i;
+ null==(t=this.mapView)||t.refreshFromState(),null==(i=this.onStateChanged)||i.call(this)}
+ ,this.btnZoomLbl=this.buildFloatBtn(this.btnZoom,this.btnZoomBg,"100%"),this.btnFogLbl=this.buildFloatBtn(this.btnFog,this.btnFogBg,"안개"),this.btnNamesLbl=this.buildFloatBtn(this.btnNames,this.btnNamesBg,"지역명");
+ const s=i-Ami.HEIGHT-52;
+ this.btnZoom.position.set(t-92,s),this.btnFog.position.set(t-92-84,s),this.btnNames.position.set(t-92-168,s),this.btnZoom.on("pointerup",this.onZoomToggle,this),this.btnFog.on("pointerup",this.onFogToggle,this),this.btnNames.on("pointerup",this.onNamesToggle,this)}
+ buildFloatBtn(t,i,s){
+ i.roundRect(0,0,76,40,10).fill({
- ),this.btnZoomLabel.x=16,this.btnZoomLabel.y=9,this.btnZoom.addChild(this.btnZoomLabel),this.btnZoom.x=544,this.btnZoom.y=this.bg.height-60,this.btnZoom.eventMode="static",this.btnZoom.cursor="pointer",this.btnZoom.on("pointerup",this.onZoomToggle,this),this.addChild(this.btnZoom)}
- static getInstance(){
- return this._instance||(this._instance=new t),this._instance}
- onZoomToggle(){
- if(!this.mapView)return;
- const t=this.mapView.cycleZoom();
- this.btnZoomLabel.text=`${
- t}
- %`}
- show(){
- this.show2(),this.init()}
+ ),t.addChild(i);
+ const e=new mD(s);
+ return e.textSize=15,e.x=Math.round(.5*(76-e.width)),e.y=10,t.addChild(e),t.eventMode="static",t.cursor="pointer",t.visible=!1,this.addChild(t),e}
+ setData(){
+ this.init()}
- throw this.infoLabel.text="월드맵 로딩 실패",this.initPromise=null,t}
+ throw this.loadingLbl.text="월드맵 로딩 실패",this.loadingLbl.visible=!0,this.initPromise=null,t}
- this.infoLabel.text="월드맵 불러오는 중...";
- const i=t.HEADER_H,s=new Bgi(640,this.bg.height-i);
- s.y=i,await s.init(),s.onRegionSelected=this.onRegionSelected.bind(this),this.addChildAt(s,this.getChildIndex(this.headerBg)),this.mapView=s,this.infoLabel.text="지역을 선택하세요",this.updateTitle(),this.updateNamesButton(s.namesVisible),this.updateFogButton(s.fogEnabled),this.btnZoomLabel.text=`${
- s.zoomPercent}
- %`}
- onFogToggle(){
- if(!this.mapView)return;
- const t=!this.mapView.fogEnabled;
- this.mapView.setFogEnabled(t),this.updateFogButton(t)}
- updateFogButton(t){
- this.btnFogBg.clear().roundRect(0,0,76,36,8).fill({
- color:t?3038315:3355443,alpha:.95}
- ).stroke({
- width:2,color:t?16769126:7829367}
- ),this.btnFogLabel.textColor=t?16769126:12303291}
- onNamesToggle(){
- if(!this.mapView)return;
- const t=!this.mapView.namesVisible;
- this.mapView.setNamesVisible(t),this.updateNamesButton(t)}
- updateNamesButton(t){
- this.btnNamesBg.clear().roundRect(0,0,92,36,8).fill({
- color:t?3038315:3355443,alpha:.95}
- ).stroke({
- width:2,color:t?16769126:7829367}
- ),this.btnNamesLabel.textColor=t?16769126:12303291}
+ const t=new Tmi(this.viewW,this.viewH);
+ await t.init(),t.onRegionSelected=this.onRegionSelected.bind(this),this.addChildAt(t,0),this.mapView=t,this.loadingLbl.visible=!1,this.addChild(this.sheet),this.btnZoom.visible=this.btnFog.visible=this.btnNames.visible=!0,this.updateFogBtn(),this.updateNamesBtn(),t.refreshFromState(!1)}
+ refresh(){
+ var t;
+ null==(t=this.mapView)||t.refreshFromState(!1),this.sheet.onFrame()}
+ onFrame(t){
+ var i;
+ t&&(null==(i=this.mapView)||i.refreshFromState()),this.sheet.onFrame()}
- if(this.selectedRegion=t,this.updateConquerButton(),!t)return void(this.infoLabel.text="지역을 선택하세요");
- const i=t.landmarks.length?`★${
- t.nameKo}
- `:t.nameKo;
- this.infoLabel.text=`[${
- t.zoneCode}
- ] ${
- i}
-  · ${
- t.biomeKo}
-  · ${
- t.tier}
- 티어 · 인접 ${
- t.neighbors.length}
- 곳`}
- onConquerToggle(){
- const t=this.selectedRegion;
- if(!t||!this.mapView)return;
- if(t.id===Dgi.startRegion)return;
- const i=!Dgi.isConquered(t.id);
- Dgi.setConquered(t.id,i),this.mapView.setConquered(t.id,i),this.updateConquerButton(),this.updateTitle()}
- updateConquerButton(){
- const t=this.selectedRegion;
- if(this.btnConquer.visible=!!t,!t)return;
- if(t.id===Dgi.startRegion)return this.btnConquerLabel.text="시작 거점",void this.btnConquerBg.clear().roundRect(0,0,126,40,8).fill({
- color:4473924,alpha:.95}
- ).stroke({
- width:2,color:8947848}
- );
- const i=Dgi.isConquered(t.id);
- this.btnConquerLabel.text=i?"점령 해제":"점령하기",this.btnConquerBg.clear().roundRect(0,0,126,40,8).fill({
- color:i?7027246:3042106,alpha:.95}
- ).stroke({
- width:2,color:16769126}
- )}
- updateTitle(){
- const t=Dgi.regions.length||150;
- this.titleLabel.text=`정복 (프로토타입) · ${
- Dgi.conquered.size}
- /${
- t}
- `}
- get className(){
- return"ConquestMainPopup"}
+ this.sheet.setRegion(t)}
+ onZoomToggle(){
+ this.mapView&&(this.btnZoomLbl.text=`${
+ this.mapView.cycleZoom()}
+ %`,this.btnZoomLbl.x=Math.round(.5*(76-this.btnZoomLbl.width)))}
+ onFogToggle(){
+ this.mapView&&(this.mapView.setFogEnabled(!this.mapView.fogEnabled),this.updateFogBtn())}
+ updateFogBtn(){
+ var t;
+ const i=(null==(t=this.mapView)?void 0:t.fogEnabled)??!0;
+ this.btnFogLbl.textColor=i?16769126:10066329}
+ onNamesToggle(){
+ this.mapView&&(this.mapView.setNamesVisible(!this.mapView.namesVisible),this.updateNamesBtn())}
+ updateNamesBtn(){
+ var t;
+ const i=(null==(t=this.mapView)?void 0:t.namesVisible)??!1;
+ this.btnNamesLbl.textColor=i?16769126:10066329}
- zt(Ugi,"ConquestMainPopup"),qt(Ugi,"_instance"),qt(Ugi,"HEADER_H",96);
+ qt(Cmi,"ConquestWorldMapTabView");
+ let Imi=Cmi;
+ const kmi=class t extends mqt{
+ constructor(){
+ super(),Yt(this,"headerBg"),Yt(this,"titleLbl"),Yt(this,"pointLbl"),Yt(this,"laborLbl"),Yt(this,"tabButtons",[]),Yt(this,"viewContainer",new Fe),Yt(this,"views",[null,null,null,null,null]),Yt(this,"_activeIndex",-1),Yt(this,"contentH"),Yt(this,"lastFrameMs",0),this.y=0,this.bg.height=qA.safeHeight,this.dimOverlay.y=0,this.contentH=this.bg.height-t.HEADER_H-t.TAB_HEIGHT,this.headerBg=(new Uf).rect(0,0,640,t.HEADER_H).fill({
+ color:1118481,alpha:.92}
+ ),this.headerBg.eventMode="none",this.addChild(this.headerBg),this.titleLbl=new mD("정복"),this.titleLbl.textSize=22,this.titleLbl.x=14,this.titleLbl.y=qA.RESOURCE_INFO_H+12,this.addChild(this.titleLbl),this.pointLbl=new mD("",16769126),this.pointLbl.textSize=15,this.pointLbl.x=110,this.pointLbl.y=qA.RESOURCE_INFO_H+18,this.addChild(this.pointLbl),this.laborLbl=new mD("",8248189),this.laborLbl.textSize=15,this.laborLbl.x=300,this.laborLbl.y=qA.RESOURCE_INFO_H+18,this.addChild(this.laborLbl),this.btnClose.x=640-this.btnClose.width-4,this.btnClose.y=qA.RESOURCE_INFO_H+2,this.addChild(this.btnClose),this.viewContainer.y=t.HEADER_H,this.addChild(this.viewContainer);
+ const i=["월드맵","시설","포인트","창고","상점"],s=t.TAB_WIDTH*t.NUM_TABS+t.TAB_GAP*(t.NUM_TABS-1),e=Math.floor(.5*(this.bg.width-s)),n=this.bg.height-t.TAB_HEIGHT;
+ for(let h=0;
+ h<i.length;
+ h++){
+ const s=new ozt(i[h],t.TAB_WIDTH);
+ s.autoResize=!1,s.width=t.TAB_WIDTH,s.height=t.TAB_HEIGHT,s.x=e+h*(t.TAB_WIDTH+t.TAB_GAP),s.y=n,s.index=h,s.onClick=()=>this.selectTab(h),this.addChild(s),this.tabButtons.push(s)}
+ }
+ static getInstance(){
+ return this._instance||(this._instance=new t),this._instance}
+ show(){
+ this.show2(),emi.ensureLoaded().then(()=>{
+ emi.onChanged=()=>this.updateHeader(),this._activeIndex<0?this.selectTab(0):this.refreshActive(),this.updateHeader()}
+ )}
+ onAdded(){
+ super.onAdded(),UM.getInstance().add(this.onUiFrame,this)}
+ onRemoved(){
+ super.onRemoved(),UM.getInstance().remove(this.onUiFrame,this)}
+ selectTab(t){
+ var i;
+ if(this._activeIndex===t)return;
+ this._activeIndex=t;
+ for(let e=0;
+ e<this.tabButtons.length;
+ e++)this.tabButtons[e].selected=e===t;
+ if(!this.views[t]){
+ const i=640,s=this.contentH;
+ switch(t){
+ case 0:{
+ const t=new Imi(i,s);
+ t.onStateChanged=()=>this.updateHeader(),this.views[0]=t;
+ break}
+ case 1:this.views[1]=new umi(i,s);
+ break;
+ case 2:this.views[2]=new mmi(i,s);
+ break;
+ case 3:this.views[3]=new Mmi(i,s);
+ break;
+ case 4:this.views[4]=new bmi(i,s)}
+ }
+ this.viewContainer.removeChildren();
+ const s=this.views[t];
+ this.viewContainer.addChild(s),null==(i=s.setData)||i.call(s),this.updateHeader()}
+ refreshActive(){
+ var t;
+ const i=this.views[this._activeIndex];
+ null==(t=null==i?void 0:i.setData)||t.call(i)}
+ onUiFrame(){
+ const t=performance.now();
+ if(t-this.lastFrameMs<300)return;
+ this.lastFrameMs=t;
+ const i=emi.tick();
+ this.updateHeader();
+ const s=this.views[this._activeIndex];
+ s instanceof Imi?s.onFrame(i):i&&this.refreshActive()}
+ updateHeader(){
+ this.pointLbl.text=`개척 P ${
+ emi.pointsAvailable()}
+ `,this.laborLbl.text=`일손 ${
+ emi.labor()}
+ /${
+ emi.laborMax()}
+ `}
+ get className(){
+ return"ConquestPopup"}
+ }
+ ;
+ qt(kmi,"ConquestPopup"),Yt(kmi,"_instance"),Yt(kmi,"HEADER_H",96),Yt(kmi,"TAB_HEIGHT",60),Yt(kmi,"TAB_GAP",1),Yt(kmi,"NUM_TABS",5),Yt(kmi,"TAB_WIDTH",Math.floor((640-kmi.TAB_GAP*kmi.NUM_TABS)/kmi.NUM_TABS));
ConquestWorldMapView 8 hunks, 89 statements
- `)),Dgi.ensureLoaded()]),h=new $e(e),r=new $e(n);
- if(h.eventMode=r.eventMode="none",this.revealLayer.eventMode="none",this.mapLayer.addChild(h),this.mapLayer.addChild(this.revealLayer),this.mapLayer.addChild(r),this.buildNameLabels(),this.buildLandmarkLabels(),this.rebuildFog(),Dgi.conquered.size>0){
- await Dgi.ensureArtPixels();
- for(const t of Dgi.conquered)this.addRevealSprite(t,!1)}
+ `)),Zgi.ensureLoaded(),emi.ensureLoaded()]),h=new je(e),r=new je(n);
+ h.eventMode=r.eventMode="none",this.revealLayer.eventMode="none",this.mapLayer.addChild(h),this.mapLayer.addChild(this.revealLayer),this.mapLayer.addChild(r),this.buildNameLabels(),this.buildLandmarkLabels(),await Zgi.ensureArtPixels().catch(t=>{
+ }
+ ),this.refreshFromState(!1);
+ refreshFromState(t=!0){
+ for(const i of Zgi.regions){
+ const s=emi.pioneerPct(i.id),e=this.revealSprites.get(i.id);
+ if(s<=0){
+ e&&(this.revealSprites.delete(i.id),e.texture.destroy(!0),e.destroy());
+ continue}
+ const n=.15+s/100*.85;
+ e?e.alpha=n:this.addRevealSprite(i.id,n,t)}
+ this.rebuildFog(),this.buildProgressLabels(),this.syncBalloons()}
- async setConquered(t,i){
- if(i){
- if(this.revealSprites.has(t))return;
- await Dgi.ensureArtPixels(),this.addRevealSprite(t,!0)}
- else{
- const i=this.revealSprites.get(t);
- if(!i)return;
- this.revealSprites.delete(t),i.texture.destroy(!0),i.destroy()}
- this.rebuildFog()}
+ buildProgressLabels(){
+ const t=document.createElement("canvas");
+ t.width=Zgi.mapWidth,t.height=Zgi.mapHeight;
+ const i=t.getContext("2d");
+ if(!i)return;
+ i.textAlign="center",i.textBaseline="middle";
+ for(const e of Zgi.regions){
+ const t=emi.pioneerPct(e.id),s=emi.explorePct(e.id);
+ if(t<=0&&s<=0)continue;
+ const n=e.centerPx[1]+(e.landmarks.length?44:18);
+ t>0?(i.font="bold 19px sans-serif",i.lineWidth=4,i.strokeStyle="rgba(40,28,16,0.9)",i.strokeText(`${
+ t}
+ %`,e.centerPx[0],n),i.fillStyle=t>=100?"#8ef08e":"#ffe066",i.fillText(`${
+ t}
+ %`,e.centerPx[0],n)):(i.font="600 15px sans-serif",i.lineWidth=3,i.strokeStyle="rgba(40,28,16,0.85)",i.strokeText(`탐사 ${
+ s}
+ %`,e.centerPx[0],n),i.fillStyle="#9fd8ef",i.fillText(`탐사 ${
+ s}
+ %`,e.centerPx[0],n))}
+ const s=ns.from(t);
+ if(this.progressLabelsSprite){
+ const t=this.progressLabelsSprite.texture;
+ this.progressLabelsSprite.texture=s,t.destroy(!0)}
+ else{
+ const t=new je(s);
+ t.eventMode="none",this.mapLayer.addChild(t),this.progressLabelsSprite=t}
+ }
- addRevealSprite(t,i){
+ addRevealSprite(t,i,s){
- e.alpha=Math.min(1,e.alpha+i.deltaMS/600),(e.alpha>=1||e.destroyed)&&fn.shared.remove(t)}
+ n.alpha=Math.min(i,n.alpha+s.deltaMS/600*i),(n.alpha>=i||n.destroyed)&&pn.shared.remove(t)}
+ else n.alpha=i}
+ getBalloonTexture(){
+ if(!this.balloonTexture){
+ const t=document.createElement("canvas");
+ t.width=44,t.height=48;
+ const i=t.getContext("2d");
+ i&&(i.textAlign="center",i.textBaseline="middle",i.font="36px sans-serif",i.fillText("🎈",22,24)),this.balloonTexture=ns.from(t)}
+ return this.balloonTexture}
+ syncBalloons(){
+ const t=emi.activeSurveys(),i=new Set(t.map(t=>t.r));
+ for(const[s,e]of this.balloonSprites)i.has(s)||(this.balloonSprites.delete(s),e.destroy());
+ for(const s of t){
+ if(this.balloonSprites.has(s.r))continue;
+ const t=Zgi.getRegion(s.r);
+ if(!t)continue;
+ const i=new je(this.getBalloonTexture());
+ i.eventMode="none",i.anchor.set(.5,1),this.mapLayer.addChild(i),this.balloonSprites.set(s.r,i);
+ const e=t.neighbors.find(t=>emi.outpostStage(t)>=1),n=e?Zgi.getRegion(e):null,h=t.centerPx[0],r=t.centerPx[1]-6;
+ if(n){
+ const t=n.centerPx[0],s=n.centerPx[1]-6;
+ i.position.set(t,s);
+ let e=0;
+ const o=900,a=qt(n=>{
+ e+=n.deltaMS;
+ const c=Math.min(1,e/o),l=1-(1-c)*(1-c);
+ i.x=t+(h-t)*l,i.y=s+(r-s)*l-40*Math.sin(c*Math.PI),(c>=1||i.destroyed)&&pn.shared.remove(a)}
+ ,"tick");
+ pn.shared.add(a)}
+ else{
+ i.position.set(h,r),i.alpha=0;
+ const t=qt(s=>{
+ i.alpha=Math.min(1,i.alpha+s.deltaMS/400),(i.alpha>=1||i.destroyed)&&pn.shared.remove(t)}
+ ,"tick");
+ pn.shared.add(t)}
+ }
- const t=Dgi.computeVisibility(2);
+ const t=emi.outpostRegions();
+ t.includes(Zgi.startRegion)||t.push(Zgi.startRegion);
+ const i=Zgi.computeVisibility(t,2);
ActiveSkillPopup 12 hunks, 55 statements
- super(),qt(this,"slotIndex",0),qt(this,"isSelectMode",!1),qt(this,"lblSkillName",new hD("",16750848,wL.DEFAULT_OUTLINE_FONT_OPTION_18)),qt(this,"lblSkillDesc",new hD("",wL.DEFAULT_COLOR,wL.DEFAULT_FONT_OPTION_16)),qt(this,"lblGuide",new hD("",6737151,wL.DEFAULT_FONT_OPTION_16)),qt(this,"btnAction",new HU("UI_GEM","100","스킬변경",.8,200,70)),qt(this,"btnCancel",new HU("","","취소",.8,150,70)),qt(this,"skillIcon",new $e),qt(this,"selectContainer",new Ue),qt(this,"slotIcons",[]),qt(this,"slotGlows",[]),qt(this,"slotLabels",[]),qt(this,"onSkillChanged",null),this.width=580,this.skillIcon.scale.set(.8),this.contentContainer.addChild(this.skillIcon),this.contentContainer.addChild(this.selectContainer);
+ super(),Yt(this,"slotIndex",0),Yt(this,"isSelectMode",!1),Yt(this,"lblSkillName",new mD("",16750848,bL.DEFAULT_OUTLINE_FONT_OPTION_18)),Yt(this,"lblSkillDesc",new mD("",bL.DEFAULT_COLOR,bL.DEFAULT_FONT_OPTION_16)),Yt(this,"lblGuide",new mD("",6737151,bL.DEFAULT_FONT_OPTION_16)),Yt(this,"btnAction",new tF("UI_GEM","100","스킬변경",.8,200,70)),Yt(this,"btnCancel",new tF("","","취소",.8,150,70)),Yt(this,"skillIcon",new je),Yt(this,"selectContainer",new Fe),Yt(this,"slotIcons",[]),Yt(this,"slotGlows",[]),Yt(this,"slotLabels",[]),Yt(this,"isPickMode",!1),Yt(this,"pickDescReservedH",0),Yt(this,"pickedSkillId",1),Yt(this,"pickContainer",new Fe),Yt(this,"pickIcons",[]),Yt(this,"pickGlows",[]),Yt(this,"onSkillChanged",null),this.width=580,this.skillIcon.scale.set(.8),this.contentContainer.addChild(this.skillIcon),this.contentContainer.addChild(this.selectContainer);
+ this.contentContainer.addChild(this.pickContainer);
+ for(let i=0;
+ i<t.PICKABLE_SKILL_IDS.length;
+ i++){
+ const s=new Fe,e=new kM({
+ texture:iS.getTexture("UI_Ekkorr","UI_SELECT"),leftWidth:25,topHeight:25,rightWidth:25,bottomHeight:25}
+ );
+ e.anchor.set(.5,.5),e.width=t.PICK_GLOW_SIZE,e.height=t.PICK_GLOW_SIZE,e.alpha=.8,e.visible=!1,s.addChild(e),this.pickGlows.push(e);
+ const n=new je;
+ n.anchor.set(.5),n.scale.set(.72),n.eventMode="static",n.cursor="pointer";
+ const h=t.PICKABLE_SKILL_IDS[i];
+ n.on("pointertap",()=>this.onSkillPick(h)),s.addChild(n),this.pickIcons.push(n),this.pickContainer.addChild(s)}
- this.isSelectMode=!1,this.slotIndex=t,this.onSkillChanged=i,this.skillIcon.visible=!0,this.selectContainer.visible=!1,this.title=LG.getText("GAME_199","액티브 스킬"),this.skillIcon.texture=tS.getTexture("UI_Ekkorr","UI_SKILL_ADD"),this.lblSkillName.text=LG.getText("GAME_208","잠긴 슬롯"),this.lblSkillDesc.text=LG.getText("GAME_200","슬롯을 오픈하면 랜덤으로 스킬이 배정됩니다."),this.lblGuide.text=LG.getText("GAME_201","스킬은 자동으로 랜덤하게 선택되고, 보석 500개가 필요합니다.")+" "+LG.getText("GAME_202","슬롯을 오픈하시겠습니까?"),this.btnAction.iconText="500",this.btnAction.text=LG.getText("GAME_203","슬롯 오픈"),this.btnAction.color=HU.RED,this.btnCancel.text=LG.getText("COMMON_2","취소"),this.updateLayout(),super.show()}
+ this.isSelectMode=!1,this.isPickMode=!1,this.slotIndex=t,this.onSkillChanged=i,this.skillIcon.visible=!0,this.selectContainer.visible=!1,this.pickContainer.visible=!1,this.btnAction.showIconLabel=!0,this.title=qG.getText("GAME_199","액티브 스킬"),this.skillIcon.texture=iS.getTexture("UI_Ekkorr","UI_SKILL_ADD"),this.lblSkillName.text=qG.getText("GAME_208","잠긴 슬롯"),this.lblSkillDesc.text=qG.getText("GAME_200","슬롯을 오픈하면 랜덤으로 스킬이 배정됩니다."),this.lblGuide.text=qG.getText("GAME_201","스킬은 자동으로 랜덤하게 선택되고, 보석 500개가 필요합니다.")+" "+qG.getText("GAME_202","슬롯을 오픈하시겠습니까?"),this.btnAction.iconText="500",this.btnAction.text=qG.getText("GAME_203","슬롯 오픈"),this.btnAction.color=tF.RED,this.btnCancel.text=qG.getText("COMMON_2","취소"),this.updateLayout(),super.show()}
- this.isSelectMode=!0,this.onSkillChanged=t,this.updateSelectSlotUI(),super.show()}
+ this.isSelectMode=!0,this.isPickMode=!1,this.slotIndex=0,this.onSkillChanged=t,this.updateSelectSlotUI(),super.show()}
- this.skillIcon.visible=!1,this.selectContainer.visible=!0,this.title=LG.getText("GAME_199","액티브 스킬");
+ this.isPickMode=!1,this.skillIcon.visible=!1,this.selectContainer.visible=!0,this.pickContainer.visible=!1,this.title=qG.getText("GAME_199","액티브 스킬");
- this.selectContainer.y=100,this.selectSlot(0),this.btnAction.iconText="100",this.btnAction.text=LG.getText("GAME_206","스킬변경"),this.btnAction.color=HU.GREEN,this.btnCancel.text=LG.getText("COMMON_2","취소"),this.updateLayout()}
+ this.selectContainer.y=100,this.selectSlot(this.slotIndex),this.btnAction.showIconLabel=!1,this.btnAction.text=qG.getText("GAME_206","스킬변경"),this.btnAction.color=tF.GREEN,this.btnCancel.text=qG.getText("COMMON_2","취소"),this.updateLayout()}
- `,t.SKILL_DESCS[s])||"",this.lblGuide.text=LG.getText("GAME_204","스킬은 자동으로 랜덤하게 선택되고, 보석 100개가 필요합니다.")+" "+LG.getText("GAME_205","스킬을 변경하시겠습니까?")}
+ `,t.SKILL_DESCS[s])||"",this.lblGuide.text=qG.getText("GAME_205","스킬을 변경하시겠습니까?")}
+ enterSkillPick(){
+ this.isPickMode=!0;
+ const i=HD.activeSkills[this.slotIndex]??-1;
+ this.pickedSkillId=t.PICKABLE_SKILL_IDS.find(t=>t!==i)??1;
+ let s=0;
+ for(const e of t.PICKABLE_SKILL_IDS)this.lblSkillDesc.text=qG.getText(`ACTIVE_SKILL_DESC_${
+ e}
+ `,t.SKILL_DESCS[e])||"",s=Math.max(s,this.lblSkillDesc.height);
+ this.pickDescReservedH=s,this.updatePickUI()}
+ onSkillPick(t){
+ (HD.activeSkills[this.slotIndex]??-1)!==t&&(this.pickedSkillId=t,this.updatePickUI())}
+ updatePickUI(){
+ this.skillIcon.visible=!1,this.selectContainer.visible=!1,this.pickContainer.visible=!0,this.title=qG.getText("GAME_199","액티브 스킬");
+ const i=HD.activeSkills[this.slotIndex]??-1,s=t.PICKABLE_SKILL_IDS,e=t.PICK_COL_SPACING,n=t.PICK_ROW_SPACING,h=.5*(this.width-2*e);
+ for(let t=0;
+ t<s.length;
+ t++){
+ const r=s[t],o=this.pickIcons[t],a=this.pickGlows[t],c=r===i;
+ o.texture=iS.getTexture("UI_Ekkorr",c?`UI_SKILL${
+ r}
+ _OFF`:`UI_SKILL${
+ r}
+ _ON`),o.alpha=c?.45:1,o.eventMode=c?"none":"static",o.cursor=c?"default":"pointer";
+ const l=h+e*(t%3),u=n*Math.floor(t/3);
+ o.x=l,o.y=u,a.x=l,a.y=u,a.visible=r===this.pickedSkillId}
+ this.pickContainer.y=100,this.lblSkillName.text=qG.getText(`ACTIVE_SKILL_NAME_${
+ this.pickedSkillId}
+ `,t.SKILL_NAMES[this.pickedSkillId])||"",this.lblSkillDesc.text=qG.getText(`ACTIVE_SKILL_DESC_${
+ this.pickedSkillId}
+ `,t.SKILL_DESCS[this.pickedSkillId])||"",this.lblGuide.text=qG.getText("GAME_205","스킬을 변경하시겠습니까?"),this.btnAction.showIconLabel=!0,this.btnAction.iconText="100",this.btnAction.text=qG.getText("GAME_206","스킬변경"),this.btnAction.color=tF.GREEN,this.btnCancel.text=qG.getText("COMMON_2","취소"),this.updateLayout()}
+ if(this.isSelectMode&&!this.isPickMode)return void this.enterSkillPick();
- if(OD.gem-=i,tH.getInstance().updateGem(),s=t?await pL.getInstance().user.openActiveSkillSlot(this.slotIndex,!0):await pL.getInstance().user.changeActiveSkill(this.slotIndex,!0),!1===s.success)return OD.gem+=i,tH.getInstance().updateGem(),void SG.getInstance().showError(s);
+ if(HD.gem-=i,gH.getInstance().updateGem(),s=t?await wL.getInstance().user.openActiveSkillSlot(this.slotIndex,!0):await wL.getInstance().user.changeActiveSkill(this.slotIndex,this.pickedSkillId,!0),!1===s.success)return HD.gem+=i,gH.getInstance().updateGem(),void BG.getInstance().showError(s);
- this.hide()}
+ this.isPickMode?this.updateSelectSlotUI():this.hide()}
- this.isSelectMode?e=this.selectContainer.y+((null==(i=this.slotLabels[0])?void 0:i.y)??0)+((null==(s=this.slotLabels[0])?void 0:s.height)??20)+40:(this.skillIcon.x=.5*(this.width-this.skillIcon.width),this.skillIcon.y=90,e=this.skillIcon.y+this.skillIcon.height+15),this.lblSkillName.x=30-t.OUTLINE_X_COMPENSATION,this.lblSkillName.y=e,this.lblSkillDesc.x=30,this.lblSkillDesc.y=this.lblSkillName.y+this.lblSkillName.height+10,this.lblGuide.x=30,this.lblGuide.y=this.lblSkillDesc.y+this.lblSkillDesc.height+25;
+ this.isPickMode?e=this.pickContainer.y+t.PICK_ROW_SPACING+.5*t.PICK_GLOW_SIZE+25:this.isSelectMode?e=this.selectContainer.y+((null==(i=this.slotLabels[0])?void 0:i.y)??0)+((null==(s=this.slotLabels[0])?void 0:s.height)??20)+40:(this.skillIcon.x=.5*(this.width-this.skillIcon.width),this.skillIcon.y=90,e=this.skillIcon.y+this.skillIcon.height+15),this.lblSkillName.x=30-t.OUTLINE_X_COMPENSATION,this.lblSkillName.y=e,this.lblSkillDesc.x=30,this.lblSkillDesc.y=this.lblSkillName.y+this.lblSkillName.height+10;
+ const n=this.isPickMode?this.pickDescReservedH:this.lblSkillDesc.height;
+ this.lblGuide.x=30,this.lblGuide.y=this.lblSkillDesc.y+n+25;
- zt(iH,"ActiveSkillPopup"),qt(iH,"_instance"),qt(iH,"SKILL_NAMES",["","심판의 번개","천지폭렬","하늘의 검","신성한 기도","구원의 날개","총병 소환","돌파의 뿔피리","질풍"]),qt(iH,"SKILL_DESCS",["","하늘에서 번개를 연속으로 내려, 적들에게 강력한 대미지를 줍니다. 최대 25마리의 적을 즉사시킵니다.","거대한 검을 소환하여 모든 적에게 현재 체력의 80%에 해당하는 대미지를 주고, 멀리 날려버립니다. 체력이 20% 이하인 적은 일정 확률로 즉사합니다.","하늘의 검을 소환하여, 모든 적을 일정시간동안 기절시킵니다. 최대 10마리의 적을 즉사시키고, 나머지 적들에게 현재 체력의 60%에 해당하는 대미지를 줍니다.","성을 치유하고, 쓰러진 영웅을 부활시키며, 살아있는 영웅의 체력을 회복시킵니다. 모든 아군에게 물리 또는 마법 보호막을 부여하고, 영웅의 공격력, 공속, 이속을 일정시간 크게 증가시킵니다.","천사를 소환하여 모든 아군과 성의 체력을 최대로 회복시키고, 일정시간동안 강력한 보호막을 부여합니다.","많은 수의 총병을 소환하여 일정시간 성을 방어합니다","뿔피리를 불어 한 층을 즉시 건너뜁니다. 싸우던 적은 그대로 남고, 건너뛴 층의 보상은 얻지 못합니다.","30초 동안 게임 속도가 100% 빨라집니다."]),qt(iH,"OUTLINE_X_COMPENSATION",2);
+ qt(mH,"ActiveSkillPopup"),Yt(mH,"_instance"),Yt(mH,"SKILL_NAMES",["","심판의 번개","천지폭렬","하늘의 검","신성한 기도","구원의 날개","총병 소환","돌파의 뿔피리","질풍"]),Yt(mH,"SKILL_DESCS",["","하늘에서 번개를 연속으로 내려, 적들에게 강력한 대미지를 줍니다. 최대 25마리의 적을 즉사시킵니다.","거대한 검을 소환하여 모든 적에게 현재 체력의 80%에 해당하는 대미지를 주고, 멀리 날려버립니다. 체력이 20% 이하인 적은 일정 확률로 즉사합니다.","하늘의 검을 소환하여, 모든 적을 일정시간동안 기절시킵니다. 최대 10마리의 적을 즉사시키고, 나머지 적들에게 현재 체력의 60%에 해당하는 대미지를 줍니다.","성을 치유하고, 쓰러진 영웅을 부활시키며, 살아있는 영웅의 체력을 회복시킵니다. 모든 아군에게 물리 또는 마법 보호막을 부여하고, 영웅의 공격력, 공속, 이속을 일정시간 크게 증가시킵니다.","천사를 소환하여 모든 아군과 성의 체력을 최대로 회복시키고, 일정시간동안 강력한 보호막을 부여합니다.","많은 수의 총병을 소환하여 일정시간 성을 방어합니다","뿔피리를 불어 한 층을 즉시 건너뜁니다. 싸우던 적은 그대로 남고, 건너뛴 층의 보상은 얻지 못합니다.","30초 동안 게임 속도가 100% 빨라집니다."]),Yt(mH,"OUTLINE_X_COMPENSATION",2),Yt(mH,"PICKABLE_SKILL_IDS",[1,2,3,4,5,6]),Yt(mH,"PICK_GLOW_SIZE",76),Yt(mH,"PICK_COL_SPACING",150),Yt(mH,"PICK_ROW_SPACING",95);
FullscreenLayer 2 hunks, 55 statements
- const nhi=class extends Kqt{
+ const dhi=class t extends Fe{
+ static getInstance(){
+ return this._instance||(this._instance=new t),this._instance}
+ constructor(){
+ super()}
+ }
+ ;
+ qt(dhi,"FullscreenLayer"),Yt(dhi,"_instance");
+ let fhi=dhi;
+ const phi=class t{
+ constructor(){
+ Yt(this,"thresholdMin",t.DEFAULT_MINUTES),Yt(this,"lastInputAt",Date.now()),Yt(this,"timerId",null),Yt(this,"started",!1),Yt(this,"startPromise",null),Yt(this,"onInput",qt(()=>{
+ this.lastInputAt=Date.now()}
+ ,"onInput"))}
+ static getInstance(){
+ return this.instance||(this.instance=new t),this.instance}
+ get thresholdMinutes(){
+ return this.thresholdMin}
+ setThresholdMinutes(t){
+ this.thresholdMin=t,this.lastInputAt=Date.now(),KA.saveData(KA.KEY_AUTO_POWER_SAVE,t)}
+ start(){
+ return this.startPromise||(this.startPromise=this.doStart()),this.startPromise}
+ async doStart(){
+ if(this.started)return;
+ this.started=!0;
+ const i=await KA.getData(KA.KEY_AUTO_POWER_SAVE),s=Number(i);
+ this.thresholdMin=t.OPTIONS.includes(s)?s:t.DEFAULT_MINUTES;
+ const e=this.onInput;
+ document.addEventListener("pointerdown",e,{
+ capture:!0,passive:!0}
+ ),document.addEventListener("keydown",e,{
+ capture:!0,passive:!0}
+ ),this.lastInputAt=Date.now(),this.timerId=setInterval(()=>this.check(),t.CHECK_INTERVAL_MS)}
+ check(){
+ this.thresholdMin<=0||(this.canAutoActivate()?Date.now()-this.lastInputAt<60*this.thresholdMin*1e3||(e0t.getInstance().activate(),this.lastInputAt=Date.now()):this.lastInputAt=Date.now())}
+ canAutoActivate(){
+ return!(e0t.getInstance().isActive||"visible"!==document.visibilityState||!moi.getInstance().isIdleBattleActive()||XD.getInstance().hasPopup||fhi.getInstance().children.length>0||nF.getInstance().children.length>0||Xei.getInstance().activated)}
+ }
+ ;
+ qt(phi,"PowerSaveIdleWatcher"),Yt(phi,"instance"),Yt(phi,"OPTIONS",[0,1,5,15]),Yt(phi,"DEFAULT_MINUTES",15),Yt(phi,"CHECK_INTERVAL_MS",5e3);
+ let ghi=phi;
+ const mhi=Object.freeze(Object.defineProperty({
+ __proto__:null,PowerSaveIdleWatcher:ghi}
+ ,Symbol.toStringTag,{
+ value:"Module"}
+ )),whi=class extends Zqt{
- const fai=class t extends Ue{
- static getInstance(){
- return this._instance||(this._instance=new t),this._instance}
- constructor(){
- super()}
- }
- ;
- zt(fai,"FullscreenLayer"),qt(fai,"_instance");
- let pai=fai;
WebGLContextRecovery 1 hunks, 54 statements
+ static get contextLostCount(){
+ return this.lostCount}
+ static install(t){
+ if(this.installed)return;
+ const i=null==t?void 0:t.canvas;
+ i&&"function"==typeof i.addEventListener&&(this.app=t,this.installed=!0,i.addEventListener("webglcontextlost",this.onContextLost.bind(this),!1),i.addEventListener("webglcontextrestored",this.onContextRestored.bind(this),!1))}
+ static onContextLost(t){
+ t.preventDefault(),this.lostCount++}
+ static onContextRestored(){
+ this.refreshAllTexts()<0&&this.reloadOnce()}
+ static refreshAllTexts(){
+ var t,i,s,e;
+ const n=this.app;
+ if(!n)return-1;
+ try{
+ const h=n.renderer,r=null==(t=null==h?void 0:h.renderPipes)?void 0:t.text,o=null==(i=null==r?void 0:r._managedTexts)?void 0:i.items;
+ if(!o||"object"!=typeof o)return-1;
+ const a=h.uid,c=[];
+ for(const t in o){
+ const i=o[t];
+ if(i)try{
+ const t=null==(s=i._gpuData)?void 0:s[a];
+ t&&(t.currentKey="--"),c.push(i)}
+ catch{
+ }
+ }
+ const l=h.canvasText;
+ l&&l._activeTextures&&(l._activeTextures={
+ }
+ );
+ let u=0;
+ for(const t of c)try{
+ null==(e=t.onViewUpdate)||e.call(t),u++}
+ catch{
+ }
+ return u}
+ catch(h){
+ return-1}
+ }
+ static reloadOnce(){
+ try{
+ if("Y"===sessionStorage.getItem(this.RELOAD_FLAG_KEY))return;
+ sessionStorage.setItem(this.RELOAD_FLAG_KEY,"Y")}
+ catch{
+ }
+ window.location.reload()}
+ }
+ ;
+ qt(rS,"WebGLContextRecovery"),Yt(rS,"RELOAD_FLAG_KEY","ekkorr.glContextReloaded"),Yt(rS,"app",null),Yt(rS,"installed",!1),Yt(rS,"lostCount",0);
+ let oS=rS;
+ const aS=class t{
+ static getSafeResolution(){
+ const t=window.devicePixelRatio||1;
+ return Math.min(t,this.MAX_RESOLUTION)}
GameUpdatePopup 1 hunks, 35 statements
+ super(),Yt(this,"lblMessage"),Yt(this,"btnConfirm"),Yt(this,"delayCount",0),this.outSideClickHide=!1,this.title=qG.getText("COMMON_4","알림"),this.lblMessage=new mD("게임 데이터가 업데이트 되었습니다.\n게임을 재실행 해주세요.",bL.DEFAULT_COLOR,{
+ fontFamily:"Arial",fill:14988422,fontSize:20,fontWeight:"bold",lineHeight:30,align:"center"}
+ ),this.lblMessage.y=90,bL.setLabelWrapWidth(this.lblMessage,470),this.addChild(this.lblMessage),this.btnConfirm=new vG("업데이트 하러 가기"),this.btnConfirm.width=200,this.addChild(this.btnConfirm),this.btnConfirm.onClick=this.onConfirmBtn.bind(this),this.updateLayout()}
+ static getInstance(){
+ return this._instance||(this._instance=new t),this._instance}
+ updateLayout(){
+ this.lblMessage.x=.5*(this.width-this.lblMessage.width),this.btnConfirm.x=.5*(this.width-this.btnConfirm.width),this.btnConfirm.y=this.lblMessage.y+this.lblMessage.height+40,this.height=this.btnConfirm.y+this.btnConfirm.height+50}
+ async onConfirmBtn(){
+ const t=$D.getInstance().getStoreLink();
+ t&&window.open(t,"_blank");
+ try{
+ const{
+ getPlatform:t}
+ =await Zt(async()=>{
+ const{
+ getPlatform:t}
+ =await Promise.resolve().then(()=>lG);
+ return{
+ getPlatform:t}
+ }
+ ,void 0);
+ t().exitApp()}
+ catch(i){
+ }
+ }
+ showDelay(){
+ this.title=qG.getText("COMMON_4","알림"),this.lblMessage.text=qG.getText("COMMON_497","최신 버전으로 업데이트 후에 이용해 주세요."),this.btnConfirm.text=qG.getText("COMMON_501","업데이트 하러 가기"),this.updateLayout(),UM.getInstance().add(this.delay,this)}
+ delay(){
+ ++this.delayCount<30||(this.delayCount=0,UM.getInstance().remove(this.delay,this),XD.getInstance().removeAll(),this.show())}
+ }
+ ;
+ qt(LG,"GameUpdatePopup"),Yt(LG,"_instance");
+ let DG=LG;
+ const GG=class t extends IG{
+ constructor(){
AttendanceAutoTrigger 4 hunks, 35 statements
+ const Ici=3e5;
+ let kci=0,Oci=!1;
+ function xci(){
+ Oci||(Oci=!0,document.addEventListener("visibilitychange",()=>{
+ if("hidden"===document.visibilityState)return void(kci=Date.now());
+ if(0===kci)return;
+ const t=Date.now()-kci;
+ kci=0,t<Ici||Zt(async()=>{
+ const{
+ BattleManager:t}
+ =await Promise.resolve().then(()=>woi);
+ return{
+ BattleManager:t}
+ }
+ ,void 0).then(({
+ BattleManager:t}
+ )=>{
+ t.getInstance().isIdleBattleActive()&&window.location.reload()}
+ )}
+ ))}
+ xci();
+ PowerSaveIdleWatcher:t}
+ =await Promise.resolve().then(()=>mhi);
+ return{
+ PowerSaveIdleWatcher:t}
+ }
+ ,void 0).then(({
+ PowerSaveIdleWatcher:t}
+ )=>{
+ t.getInstance().start()}
+ ).catch(()=>{
+ }
+ ),Zt(async()=>{
+ const{
- zt(mci,"checkOfflineMarch"),zt(wci,"onGameMainStart"),zt(vci,"updateUserData"),zt(_ci,"onAfConversionData"),zt(bci,"updateProgress"),zt(yci,"setPushSettings"),zt(Mci,"setupPush");
+ qt(xci,"registerBackgroundReloadWatcher"),qt(Rci,"checkOfflineMarch"),qt(Pci,"onGameMainStart"),qt(Nci,"updateUserData"),qt(Lci,"onAfConversionData"),qt(Dci,"updateProgress"),qt(Gci,"setPushSettings"),qt(Bci,"setupPush");
ReviveTeamDataManager 1 hunks, 33 statements
+ Yt(this,"kindNums",[]),Yt(this,"trans",[]),Yt(this,"loaded",!1),Yt(this,"loading",null)}
+ static getInstance(){
+ return null==this.instance&&(this.instance=new t),this.instance}
+ ensureLoaded(){
+ return this.loaded?Promise.resolve():(this.loading||(this.loading=(async()=>{
+ var t;
+ try{
+ const i=await wL.getInstance().user.getReviveTeam();
+ !1!==(null==i?void 0:i.success)&&this.setFromTeamStr(String((null==(t=null==i?void 0:i.body)?void 0:t.team)??""))}
+ catch(Fet){
+ }
+ finally{
+ this.loading=null}
+ }
+ )()),this.loading)}
+ setFromTeamStr(t){
+ this.kindNums=[],this.trans=[];
+ for(const i of String(t||"").split("|")){
+ const[t,s]=i.split("-").map(Number);
+ t>0&&(this.kindNums.push(t),this.trans.push(s||0))}
+ this.loaded=!0}
+ get hasTeam(){
+ return this.loaded&&this.kindNums.length>0}
+ get kindNumsList(){
+ return this.kindNums}
+ get transList(){
+ return this.trans}
+ }
+ ;
+ qt(rH,"ReviveTeamDataManager"),Yt(rH,"instance");
+ let oH=rH;
+ const aH=class t{
+ constructor(){
TowerClearDeckPopup 3 hunks, 23 statements
- async open(t,i){
+ async open(t,i,s=null){
- s&&!1!==s.success&&s.body?(this.applyCallback=i,this.recentList=Array.isArray(s.body.recent)?s.body.recent:[],this.bestList=Array.isArray(s.body.best)?s.body.best:[],this.title=`${
+ if(!e||!1===e.success||!e.body)return void BG.getInstance().showError(e);
+ this.applyCallback=i,this.title=`${
- F`,X0t.onLikeClick=this.onClickLike.bind(this),X0t.onApplyClick=this.onClickApply.bind(this),this.setTab("recent"),this.show()):SG.getInstance().showError(s)}
+ F`;
+ const n=Array.isArray(e.body.recent)?e.body.recent:[];
+ this.recentList=this.validate(n,s);
+ const h=Array.isArray(e.body.best)?e.body.best:[];
+ this.bestList=this.validate(h,s),n1t.onLikeClick=this.onClickLike.bind(this),n1t.onApplyClick=this.onClickApply.bind(this),this.setTab("recent"),this.show()}
+ validate(t,i){
+ var s;
+ if(!t)return[];
+ if(!i)return t;
+ const e=i.star1,n=i.gradeMax,h=[],r=t.length;
+ for(let o=0;
+ o<r;
+ ++o)((null==(s=t[o].deck)?void 0:s.split("|"))??[]).filter(t=>{
+ if(!t.includes("_"))return!1;
+ const[i]=t.split("_");
+ if(!Number.isInteger(i)||i<1)return!1;
+ const s=Mx.getInstance().getBookVO(i);
+ return!(!s||s.grade>n)}
+ ).length>e||h.push(t[o]);
+ return h}
PetPopup 2 hunks, 21 statements
- (null==(i=null==t?void 0:t.body)?void 0:i.spirit)&&(ED.getInstance().setData(t.body.spirit),this.updateFavoritePets()),this.spiritLoadPromise=null}
+ (null==(i=null==t?void 0:t.body)?void 0:i.spirit)&&ND.getInstance().setData(t.body.spirit),this.spiritLoadPromise=null}
- async updateFavoritePets(){
- var t;
- const i=ED.getInstance(),s=Math.floor(OD.maxWave/100),e=[],n=[],h=i.favoritePets.length;
- let r;
- for(let a=0;
- a<h;
- ++a){
- r=i.getStagesByPetKindNum(i.favoritePets[a]);
- let t=0;
- const h=r.length;
- for(let e=0;
- e<h&&!(r[e].reqLevel>s);
- ++e){
- const s=i.getStageVO(r[e].kindNum);
- if(!s||s.star<=0)break;
- t++}
- 0===t?n.push(i.favoritePets[a]):e.push(i.favoritePets[a])}
- if(0==n.length)return;
- const o=await pL.getInstance().spirit.saveFavoritePets(e);
- o.success&&(null==(t=o.body)?void 0:t.spirit)&&ED.getInstance().setData(o.body.spirit)}
AttestManager 4 hunks, 20 statements
- if(YA.isAppBundleVersionLessThan("1.12.93"))return!0;
+ if(XA.isAppBundleVersionLessThan("1.13.91"))return!0;
- return this.showMessage(this.getMessage(t)),!1}
+ return await this.attest(t,null,i,2,s)}
- async attest(t,i,s,e){
- const n=(null==i?void 0:i.token)??"",h=await pL.getInstance().system.attest(n,s,e);
+ async attest(t,i,s,e,n=null){
+ const h=(null==i?void 0:i.token)??"",r=await this.getSig(),o=await wL.getInstance().system.attest(h,r,s,e,n);
+ async getSig(){
+ try{
+ const{
+ AppSig:t}
+ =await Zt(async()=>{
+ const{
+ AppSig:t}
+ =await Promise.resolve().then(()=>dpi);
+ return{
+ AppSig:t}
+ }
+ ,void 0),i=await t.getSig();
+ return i?i.sha256:""}
+ catch(t){
+ return""}
+ }
SettingGameInfo 7 hunks, 18 statements
- super(),qt(this,"titleBar"),qt(this,"bgmTxt"),qt(this,"bgmBtn"),qt(this,"sfxTxt"),qt(this,"sfxBtn"),qt(this,"effectTxt"),qt(this,"effectBtn"),qt(this,"hapticTxt"),qt(this,"hapticBtn"),qt(this,"pushTxt"),qt(this,"pushBtn"),qt(this,"pushNightTxt"),qt(this,"pushNightBtn"),qt(this,"powerTxt"),qt(this,"powerBtn"),qt(this,"isBgmOnOrig",!0),qt(this,"isSfxOnOrig",!0),qt(this,"isEffectOnOrig",!0),qt(this,"isHapticOnOrig",!0),this.titleBar=new Eei(LG.getText("COMMON_272","게임 설정")),this.addChild(this.titleBar);
+ super(),Yt(this,"titleBar"),Yt(this,"bgmTxt"),Yt(this,"bgmBtn"),Yt(this,"sfxTxt"),Yt(this,"sfxBtn"),Yt(this,"effectTxt"),Yt(this,"effectBtn"),Yt(this,"hapticTxt"),Yt(this,"hapticBtn"),Yt(this,"pushTxt"),Yt(this,"pushBtn"),Yt(this,"pushNightTxt"),Yt(this,"pushNightBtn"),Yt(this,"powerTxt"),Yt(this,"powerBtn"),Yt(this,"autoPowerTxt"),Yt(this,"autoPowerBtn"),Yt(this,"isBgmOnOrig",!0),Yt(this,"isSfxOnOrig",!0),Yt(this,"isEffectOnOrig",!0),Yt(this,"isHapticOnOrig",!0),this.titleBar=new xei(qG.getText("COMMON_272","게임 설정")),this.addChild(this.titleBar);
-  (야간)`,t.fill,t),this.addChild(this.pushNightTxt),this.pushNightBtn=new hhi("ON"),this.addChild(this.pushNightBtn),this.pushNightBtn.onClick=this.onPushNightBtnClick.bind(this),this.powerTxt=new hD(LG.getText("GAME_410","절전모드"),t.fill,t),this.addChild(this.powerTxt),this.powerBtn=new hhi("OFF"),this.powerBtn.enabled=!1,this.addChild(this.powerBtn),this.powerBtn.onClick=this.onPowerBtnClick.bind(this),this.updateLayout()}
+  (야간)`,t.fill,t),this.addChild(this.pushNightTxt),this.pushNightBtn=new vhi("ON"),this.addChild(this.pushNightBtn),this.pushNightBtn.onClick=this.onPushNightBtnClick.bind(this),this.powerTxt=new mD(qG.getText("GAME_410","절전모드"),t.fill,t),this.addChild(this.powerTxt),this.powerBtn=new vhi("OFF"),this.powerBtn.enabled=!1,this.addChild(this.powerBtn),this.powerBtn.onClick=this.onPowerBtnClick.bind(this),this.autoPowerTxt=new mD(qG.getText("COMMON_483","자동"),t.fill,t),this.addChild(this.autoPowerTxt),this.autoPowerBtn=new vhi(""),this.addChild(this.autoPowerBtn),this.autoPowerBtn.onClick=this.onAutoPowerBtnClick.bind(this),this.updateAutoPowerBtn(),this.updateLayout()}
- const t=RD.getInstance(),i=.5*this.titleBar.width+10;
+ const t=$D.getInstance(),i=10,s=.5*this.titleBar.width+i;
- h>1&&(s.push(this.powerBtn),e.push(this.powerTxt));
+ r>1&&(e.push(this.powerBtn),n.push(this.powerTxt),e.push(this.autoPowerBtn),n.push(this.autoPowerTxt));
- ++d)r=s[d],o=e[d],0==d&&(a=.5*this.titleBar.width-r.width-10),1==d&&(c=this.titleBar.width-r.width-10),d%2==0?(r.x=a,r.y=l,wL.setLabelWrapWidth(o,r.x-10),o.x=10,o.y=r.y+.5*(r.height-o.height)):(r.x=c,r.y=l,wL.setLabelWrapWidth(o,r.x-i),o.x=i,o.y=r.y+.5*(r.height-o.height),l+=r.height+5);
- 1==h&&(r=s[s.length-1],s.length%2==1&&(l+=r.height+5),r=this.powerBtn,o=this.powerTxt,r.x=c,r.y=l,wL.setLabelWrapWidth(o,r.x-10),o.x=10,o.y=r.y+.5*(r.height-o.height))}
+ ++f)o=e[f],a=n[f],0==f&&(c=.5*this.titleBar.width-o.width-10),1==f&&(l=this.titleBar.width-o.width-10),f%2==0?(o.x=c,o.y=u,bL.setLabelWrapWidth(a,o.x-i),a.x=i,a.y=o.y+.5*(o.height-a.height)):(o.x=l,o.y=u,bL.setLabelWrapWidth(a,o.x-s),a.x=s,a.y=o.y+.5*(o.height-a.height),u+=o.height+5);
+ 1==r&&(o=e[e.length-1],e.length%2==1&&(u+=o.height+5),o=this.powerBtn,a=this.powerTxt,o.x=l,o.y=u,bL.setLabelWrapWidth(a,o.x-i),a.x=i,a.y=o.y+.5*(o.height-a.height),u+=o.height+5,o=this.autoPowerBtn,a=this.autoPowerTxt,o.x=l,o.y=u,bL.setLabelWrapWidth(a,o.x-i),a.x=i,a.y=o.y+.5*(o.height-a.height))}
- this.powerTxt.text=LG.getText("GAME_410","절전모드"),this.powerBtn.enabled=!1,this.updateLayout()}
+ this.powerTxt.text=qG.getText("GAME_410","절전모드"),this.powerBtn.enabled=!1,this.autoPowerTxt.text=qG.getText("COMMON_483","자동"),await ghi.getInstance().start(),this.updateAutoPowerBtn(),this.updateLayout()}
+ onAutoPowerBtnClick(){
+ const t=ghi.OPTIONS,i=ghi.getInstance().thresholdMinutes;
+ let s=t.indexOf(i);
+ s<0&&(s=t.indexOf(ghi.DEFAULT_MINUTES));
+ const e=t[(s+1)%t.length];
+ ghi.getInstance().setThresholdMinutes(e),this.updateAutoPowerBtn()}
+ updateAutoPowerBtn(){
+ const t=ghi.getInstance().thresholdMinutes;
+ this.autoPowerBtn.text=t<=0?qG.getText("COMMON_367","없음"):qG.getValueReplace("COMMON_433","##",t,`${
+ t}
+ 분`),this.autoPowerBtn.color=t<=0?Zqt.COLOR_GRAY:Zqt.COLOR_SAND_BROWN}
PowerSaveManager 6 hunks, 17 statements
+ get sliderProgress(){
+ const t=this.sliderMinX,i=this.sliderMaxX;
+ return i<=t?0:(this.sliderHandle.x-t)/(i-t)}
- i<s&&(i=s),i>e&&(i=e),this.sliderHandle.x=i,this.updateSliderFill(),i>=e-1&&(this.sliderDragging=!1,this.resetSlider(),this.deactivate())}
+ i<s&&(i=s),i>e&&(i=e),this.sliderHandle.x=i,this.updateSliderFill()}
- this.sliderDragging&&(this.sliderDragging=!1,WO.killTweensOf(this.sliderHandle),WO.to(this.sliderHandle,{
+ if(this.sliderDragging){
+ if(this.sliderDragging=!1,this.sliderProgress>=t.RELEASE_RATIO)return VO.killTweensOf(this.sliderHandle),this.resetSlider(),void this.deactivate();
+ VO.killTweensOf(this.sliderHandle),VO.to(this.sliderHandle,{
- ))}
+ )}
+ }
- this.sliderFill.clear(),h>e&&(this.sliderFill.roundRect(i,s,Math.min(h,t.SLIDER_W),e,e/2),this.sliderFill.fill({
- color:2771578,alpha:.55}
- ))}
+ if(this.sliderFill.clear(),h>e){
+ this.sliderFill.roundRect(i,s,Math.min(h,t.SLIDER_W),e,e/2);
+ const n=this.sliderProgress>=t.RELEASE_RATIO;
+ this.sliderFill.fill({
+ color:n?4882376:2771578,alpha:n?.8:.55}
+ )}
+ }
- zt(qZt,"PowerSaveManager"),qt(qZt,"instance"),qt(qZt,"SLIDER_X",140),qt(qZt,"SLIDER_Y",632),qt(qZt,"SLIDER_W",360),qt(qZt,"SLIDER_H",56),qt(qZt,"HANDLE_W",66),qt(qZt,"HANDLE_PAD",4);
+ qt(s0t,"PowerSaveManager"),Yt(s0t,"instance"),Yt(s0t,"SLIDER_X",140),Yt(s0t,"SLIDER_Y",632),Yt(s0t,"SLIDER_W",360),Yt(s0t,"SLIDER_H",56),Yt(s0t,"HANDLE_W",66),Yt(s0t,"HANDLE_PAD",4),Yt(s0t,"RELEASE_RATIO",.85);
Mo 12 hunks, 14 statements
- var Ust,Fst,Hst,Wst=vst;
+ var tet,iet,set,eet=Pst;
- ),Hst=Z8&&Z8.__exportStar||function(t,i){
+ ),set=p7&&p7.__exportStar||function(t,i){
- ),Hst(v7,Ust),Hst(ait,Ust),Hst(oit,Ust),Hst(wit,Ust);
+ ),set(P7,tet),set(Eit,tet),set(Mit,tet),set(Rit,tet);
- const Jst=Y5("KeyExchange:Layer"),Qst=Y5("SocketService:Layer"),Zst=Y5("Ecies:Layer"),tet=Y5("RemoteCommunication:Layer");
- Jst.color="##95c44e",Qst.color="#f638d7",Zst.color="#465b9c",tet.color="#47a2be";
+ const fet=l3("KeyExchange:Layer"),pet=l3("SocketService:Layer"),get=l3("Ecies:Layer"),met=l3("RemoteCommunication:Layer");
+ fet.color="##95c44e",pet.color="#f638d7",get.color="#465b9c",met.color="#47a2be";
- KeyExchange:Jst,SocketService:Qst,Ecies:Zst,RemoteCommunication:tet}
+ KeyExchange:fet,SocketService:pet,Ecies:get,RemoteCommunication:met}
- let set,eet=[],net=[];
+ let vet,_et=[],bet=[];
- set=i,net.push(t),function(t){
+ vet=i,bet.push(t),function(t){
- if(!set||!t)return;
+ if(!vet||!t)return;
- const i=set.endsWith("/")?`${
- set}
+ const i=vet.endsWith("/")?`${
+ vet}
- set}
+ vet}
- function get(t){
+ function xet(t){
- zt(get,"bo"),zt(met,"wo"),(Eet=wet||(wet={
+ qt(xet,"bo"),qt(Ret,"wo"),(Uet=Pet||(Pet={
RebirthMedalManager 2 hunks, 13 statements
- const s=ux.getInstance().getRebirthMedalPetDelta(),e=_x.getInstance(),n=e.getGlobalTransMedalBonusPct(OR.getWaterDragonOwnedMedalCapBonus()),h=e.getCurrentTeamTransMedalBonusPct(),r=OR.getWaterDragonTeamMedalBonus(e.getTeamIds()),o=KF.getInstance().getEffectiveKindNums();
+ const s=px.getInstance().getRebirthMedalPetDelta(),e=Mx.getInstance(),n=e.getGlobalTransMedalBonusPct(PR.getWaterDragonOwnedMedalCapBonus()),h=e.getCurrentTeamTransMedalBonusPct(),r=PR.getWaterDragonTeamMedalBonus(e.getTeamKindNums()),o=hH.getInstance().getEffectiveKindNums();
+ getExpectedMedal(t){
+ const i=oH.getInstance();
+ if(!i.hasTeam)return this.getExpectedNormalMedal(t);
+ const s=this.getMedal(t);
+ if(s<=0)return 0;
+ const e=i.kindNumsList,n=i.transList,h=Nx.getInstance(),r=XR.getInstance().getGameplayMultiplier(Rx.MedalBuff),o=h.getTotal(Rx.MedalBuff),a=h.calcTotalForKindNums(e,Rx.MedalBuff),c=px.getInstance().getRebirthMedalPetDelta(),l=Mx.getInstance(),u=l.getGlobalTransMedalBonusPct(PR.getWaterDragonOwnedMedalCapBonus()),d=l.calcTeamTransMedalBonusPct(e,n),f=PR.getWaterDragonTeamMedalBonus(e),p=hH.getInstance().getEffectiveKindNums();
+ let g=0;
+ if(p){
+ const t=tR.getInstance();
+ g=t.getMedalTotalForKindNums(p)-t.getMedalTotalForKindNums(Kx.getInstance().equipedKindNums)}
+ const m=r-.01*o+.01*a+.01*c+.01*(u+d+f)+.01*g;
+ return Math.floor(s*m)}
EmblemBookVO 2 hunks, 10 statements
- )),CQt=[[1,"atkDmg","STAT","RAID","CORP","multi","2|5",1,2,"공격력 증가","Y"],[2,"maxHp","STAT","RAID","CORP","multi","1|2|3|4|5",1,1,"최대 HP 증가","Y"],[3,"defense","STAT","RAID","CORP","multi","1|3|4",1,0,"방어력 증가","Y"],[4,"atkSpd","STAT","RAID","CORP","multi","2|4|5",1,4,"공격속도 증가","Y"],[5,"moveSpd","STAT","RAID","CORP","multi","1|2|5",1,0,"이동속도 증가","Y"],[6,"atkRange","STAT","RAID","CORP","multi","2|4",1,0,"공격거리 증가","Y"],[7,"aggroGen","STAT","RAID","CORP","multi","1",1,0,"어그로 생성량 증가","Y"],[8,"aggroDown","STAT","RAID","CORP","multi","2|3|4|5",1,0,"어그로 생성량 감소","Y"],[9,"dmgTaken","STAT","RAID","CORP","multi","1|3",1,0,"받는 피해 감소","Y"],[10,"critRate","STAT","RAID","CORP","add","2|5",1,0,"치명타 확률 증가","Y"],[11,"critDmg","STAT","RAID","CORP","add","2|5",2,0,"치명타 피해 증가","Y"],[12,"lifeSteal","STAT","RAID","CORP","add","2",3,0,"가한 피해의 일부 HP 흡수","Y"],[13,"healCycle","STAT","RAID","CORP","add","1|3",1,0,"5초마다 군단 HP 회복","Y"],[14,"healPower","STAT","RAID","CORP","add","3",1,3,"회복량 증폭","Y"],[15,"manaGain","STAT","RAID","CORP","multi","3|4",1,0,"마나 회복 속도 증가","Y"],[16,"debuffTime","STAT","RAID","CORP","multi","4",1,0,"거는 디버프 지속시간 증가","Y"],[17,"thorns","STAT","RAID","CORP","add","1",1,0,"피격 시 공격력 비례 반격","Y"],[21,"resFreeze","RESIST","RAID","CORP","add","3|4",1,0,"빙결 시간 감소 (6등급 면역)","Y"],[22,"resStun","RESIST","RAID","CORP","add","1|2|3|5",1,0,"기절 시간 감소 (6등급 면역)","Y"],[23,"resKnockback","RESIST","RAID","CORP","add","1|2",1,0,"넉백 감소 (6등급 면역)","Y"],[24,"resBlow","RESIST","RAID","CORP","add","1|2|3|5",1,0,"블로우 감소 (6등급 면역)","Y"],[31,"staminaHit","GIMMICK","RAID","BOSS","add","4|5",3,5,"타격당 보스 기력 추가 소진","Y"],[32,"exhaustDmg","GIMMICK","RAID","CORP","add","2|5",3,0,"그로기 중 딜 증가","Y"],[33,"exhaustTime","GIMMICK","RAID","BOSS","add","4|5|6",4,0,"그로기 지속시간 증가","Y"],[34,"weakBonus","GIMMICK","RAID","CORP","add","2|4",3,0,"약점 노출 창 동안 딜 증가","Y"],[35,"activeCool","GIMMICK","RAID","SELF","add","1|2|3|4|5|6",1,0,"이 휘장 액티브 쿨다운 감소","Y"],[36,"activeDur","GIMMICK","RAID","SELF","add","1|3|4",1,0,"이 휘장 액티브 지속시간 증가","Y"],[37,"activePower","GIMMICK","RAID","SELF","add","2|3|4|5|6",3,0,"이 휘장 액티브 위력 증폭","Y"],[38,"dashSpeed","GIMMICK","RAID","CORP","add","1",5,0,"군단 이동 명령 대시 속도 증가 (일반 이속과 별개)","Y"],[41,"crossbowDmg","CROSSBOW","RAID","CROSSBOW","add","6",1,0,"석궁 데미지 증가","Y"],[42,"weakpointWound","CROSSBOW","RAID","BOSS","add","6",1,0,"상처 가르기 강화 — 보스 받는 피해 증가 추가","Y"],[43,"reloadSpd","CROSSBOW","RAID","CROSSBOW","add","6",1,0,"석궁 에너지 충전 속도 증가","Y"],[44,"chargeBonus","CROSSBOW","RAID","CROSSBOW","add","6",2,0,"전투 시작·발사 후 석궁 에너지 +N%p","Y"],[45,"weakWindow","CROSSBOW","RAID","CROSSBOW","add","6",3,0,"약점 노출 창 지속시간 증가","Y"],[46,"missRefund","CROSSBOW","RAID","CROSSBOW","add","6",1,0,"작살 실패 시(인터럽트 실패) 에너지 N%까지 충전","Y"],[47,"critArrow","CROSSBOW","RAID","CROSSBOW","add","6",2,0,"작살 치명타 확률","Y"],[49,"exhaustArrow","CROSSBOW","RAID","CROSSBOW","add","6",2,0,"그로기 보스에게 작살 데미지 증가","Y"],[51,"tankReload","CROSSBOW","RAID","CROSSBOW","add","6",4,0,"{
+ )),NQt=[[1,"atkDmg","STAT","RAID","CORP","multi","2|5",1,2,"공격력 증가","Y"],[2,"maxHp","STAT","RAID","CORP","multi","1|2|3|4|5",1,1,"최대 HP 증가","Y"],[3,"defense","STAT","RAID","CORP","multi","1|3|4",1,0,"방어력 증가","Y"],[4,"atkSpd","STAT","RAID","CORP","multi","2|4|5",1,4,"공격속도 증가","Y"],[5,"moveSpd","STAT","RAID","CORP","multi","1|2|5",1,0,"이동속도 증가","Y"],[6,"atkRange","STAT","RAID","CORP","multi","2|4",1,0,"공격거리 증가","Y"],[7,"aggroGen","STAT","RAID","CORP","multi","1",1,0,"어그로 생성량 증가","Y"],[8,"aggroDown","STAT","RAID","CORP","multi","2|3|4|5",1,0,"어그로 생성량 감소","Y"],[9,"dmgTaken","STAT","RAID","CORP","multi","1|3",1,0,"받는 피해 감소","Y"],[10,"critRate","STAT","RAID","CORP","add","2|5",1,0,"치명타 확률 증가","Y"],[11,"critDmg","STAT","RAID","CORP","add","2|5",2,0,"치명타 피해 증가","Y"],[12,"lifeSteal","STAT","RAID","CORP","add","2",3,0,"가한 피해의 일부 HP 흡수","Y"],[13,"healCycle","STAT","RAID","CORP","add","1|3",1,0,"5초마다 군단 HP 회복","Y"],[14,"healPower","STAT","RAID","CORP","add","3",1,3,"회복량 증폭","Y"],[15,"manaGain","STAT","RAID","CORP","multi","3|4",1,0,"마나 회복 속도 증가","Y"],[16,"debuffTime","STAT","RAID","CORP","multi","4",1,0,"거는 디버프 지속시간 증가","Y"],[17,"thorns","STAT","RAID","CORP","add","1",1,0,"피격 시 공격력 비례 반격","Y"],[21,"resFreeze","RESIST","RAID","CORP","add","3|4",1,0,"빙결 시간 감소 (6등급 면역)","Y"],[22,"resStun","RESIST","RAID","CORP","add","1|2|3|5",1,0,"기절 시간 감소 (6등급 면역)","Y"],[23,"resKnockback","RESIST","RAID","CORP","add","1|2",1,0,"넉백 감소 (6등급 면역)","Y"],[24,"resBlow","RESIST","RAID","CORP","add","1|2|3|5",1,0,"블로우 감소 (6등급 면역)","Y"],[31,"staminaHit","GIMMICK","RAID","BOSS","add","4|5",3,5,"타격당 보스 기력 추가 소진","Y"],[32,"exhaustDmg","GIMMICK","RAID","CORP","add","2|5",3,0,"그로기 중 딜 증가","Y"],[33,"exhaustTime","GIMMICK","RAID","BOSS","add","4|5|6",4,0,"그로기 지속시간 증가","Y"],[34,"weakBonus","GIMMICK","RAID","CORP","add","2|4",3,0,"약점 노출 창 동안 딜 증가","Y"],[35,"activeCool","GIMMICK","RAID","SELF","add","1|2|3|4|5|6",1,0,"쿨다운 -{
+ v}
+ %","Y"],[36,"activeDur","GIMMICK","RAID","SELF","add","1|3|4",1,0,"지속시간 +{
+ v}
+ %","Y"],[37,"activePower","GIMMICK","RAID","SELF","add","2|3|4|5|6",3,0,"효과 +{
+ v}
+ %","Y"],[38,"dashSpeed","GIMMICK","RAID","CORP","add","1",5,0,"군단 이동 명령 대시 속도 증가 (일반 이속과 별개)","Y"],[41,"crossbowDmg","CROSSBOW","RAID","CROSSBOW","add","6",1,0,"석궁 데미지 증가","Y"],[42,"weakpointWound","CROSSBOW","RAID","BOSS","add","6",1,0,"상처 가르기 강화 — 보스 받는 피해 증가 추가","Y"],[43,"reloadSpd","CROSSBOW","RAID","CROSSBOW","add","6",1,0,"석궁 에너지 충전 속도 증가","Y"],[44,"chargeBonus","CROSSBOW","RAID","CROSSBOW","add","6",2,0,"전투 시작·발사 후 석궁 에너지 +N%p","Y"],[45,"weakWindow","CROSSBOW","RAID","CROSSBOW","add","6",3,0,"약점 노출 창 지속시간 증가","Y"],[46,"missRefund","CROSSBOW","RAID","CROSSBOW","add","6",1,0,"작살 실패 시(인터럽트 실패) 에너지 N%까지 충전","Y"],[47,"critArrow","CROSSBOW","RAID","CROSSBOW","add","6",2,0,"작살 치명타 확률","Y"],[49,"exhaustArrow","CROSSBOW","RAID","CROSSBOW","add","6",2,0,"그로기 보스에게 작살 데미지 증가","Y"],[51,"tankReload","CROSSBOW","RAID","CROSSBOW","add","6",4,0,"{
- ,PQt={
+ ,HQt=/[{
+ (](?:v|dur)[}
+ )]/i,WQt={
RightBottomMenus 6 hunks, 9 statements
- super(),qt(this,"btnDungeon",new RB("UI_Ekkorr","HeroGrade6")),qt(this,"btnIdle",new RB("UI_Ekkorr","HeroGrade4")),qt(this,"btnMap3",new RB("UI_Ekkorr","HeroGrade2")),qt(this,"btnMap4",new RB("UI_Ekkorr","HeroGrade16")),qt(this,"btnRaidBosses",[]),qt(this,"btnBuff",new RB("UI_Ekkorr","HeroGrade10")),qt(this,"btnMine",new RB("UI_Ekkorr","HeroGrade12")),qt(this,"btnCardEvent",new RB("UI_Ekkorr","HeroGrade14")),qt(this,"btnConquest",new RB("UI_Ekkorr","HeroGrade8")),qt(this,"healthOrb",QZt.getInstance()),qt(this,"waveCallInfo",n0t.getInstance()),qt(this,"timeShiftGauge",new s0t),qt(this,"btnWaveSetting",new RB("UI_Ekkorr","smallSetting")),qt(this,"waveSettingFrameCnt",0),this.healthOrb.x=640-.5*this.healthOrb.width-3,this.healthOrb.y=13,this.addChild(this.healthOrb),this.waveCallInfo.x=10,this.waveCallInfo.y=t.WAVE_CALL_BASE_Y,this.addChild(this.waveCallInfo),this.waveCallInfo.eventMode="static",this.waveCallInfo.on("pointerup",this.getNextWave,this),this.waveCallInfo.start(),this.timeShiftGauge.x=this.waveCallInfo.x+62,this.timeShiftGauge.y=this.waveCallInfo.y,this.addChild(this.timeShiftGauge),this.btnWaveSetting.x=this.timeShiftGauge.x+48+12,this.btnWaveSetting.y=this.waveCallInfo.y+.5*(40-this.btnWaveSetting.height),this.addChild(this.btnWaveSetting),this.btnWaveSetting.on("pointerup",this.onWaveSetting,this),this.btnWaveSetting.visible=!1,BM.getInstance().add(this.onWaveSettingFrame,this),Izt.getInstance().x=0,Izt.getInstance().y=-13,this.addChild(Izt.getInstance()),Izt.getInstance().onVisibilityChanged=()=>this.layoutWaveCall(),this.btnDungeon.x=500,this.btnDungeon.y=0;
+ super(),Yt(this,"btnDungeon",new VB("UI_Ekkorr","HeroGrade6")),Yt(this,"btnIdle",new VB("UI_Ekkorr","HeroGrade4")),Yt(this,"btnMap3",new VB("UI_Ekkorr","HeroGrade2")),Yt(this,"btnMap4",new VB("UI_Ekkorr","HeroGrade16")),Yt(this,"btnRaidBosses",[]),Yt(this,"btnBuff",new VB("UI_Ekkorr","HeroGrade10")),Yt(this,"btnMine",new VB("UI_Ekkorr","HeroGrade12")),Yt(this,"btnCardEvent",new VB("UI_Ekkorr","HeroGrade14")),Yt(this,"btnConquest",new VB("UI_Ekkorr","HeroGrade8")),Yt(this,"btnPowerSave",new VB("UI_Ekkorr","PowerOff")),Yt(this,"healthOrb",r0t.getInstance()),Yt(this,"waveCallInfo",d0t.getInstance()),Yt(this,"timeShiftGauge",new l0t),Yt(this,"btnWaveSetting",new VB("UI_Ekkorr","smallSetting")),Yt(this,"waveSettingFrameCnt",0),this.healthOrb.x=640-.5*this.healthOrb.width-3,this.healthOrb.y=13,this.addChild(this.healthOrb),this.waveCallInfo.x=10,this.waveCallInfo.y=t.WAVE_CALL_BASE_Y,this.addChild(this.waveCallInfo),this.waveCallInfo.eventMode="static",this.waveCallInfo.on("pointerup",this.getNextWave,this),this.waveCallInfo.start(),this.timeShiftGauge.x=this.waveCallInfo.x+62,this.timeShiftGauge.y=this.waveCallInfo.y,this.addChild(this.timeShiftGauge),this.btnWaveSetting.x=this.timeShiftGauge.x+48+12,this.btnWaveSetting.y=this.waveCallInfo.y+.5*(40-this.btnWaveSetting.height),this.addChild(this.btnWaveSetting),this.btnWaveSetting.on("pointerup",this.onWaveSetting,this),this.btnWaveSetting.visible=!1,UM.getInstance().add(this.onWaveSettingFrame,this),Lzt.getInstance().x=0,Lzt.getInstance().y=-13,this.addChild(Lzt.getInstance()),Lzt.getInstance().onVisibilityChanged=t=>{
+ this.layoutWaveCall(),this.updatePowerSaveButton(!t)}
+ ,this.btnDungeon.x=500,this.btnDungeon.y=0;
- this.btnBuff.visible=e,this.btnMine.visible=e,this.btnCardEvent.visible=e,this.btnConquest.visible=LD.getInstance().development}
+ this.btnBuff.visible=e,this.btnMine.visible=e,this.btnCardEvent.visible=e,this.btnConquest.visible=KD.getInstance().development,this.btnPowerSave.scale.set(.9),this.btnPowerSave.x=this.healthOrb.x-.9*this.btnPowerSave.width-42,this.btnPowerSave.y=this.healthOrb.y-15,this.btnPowerSave.eventMode="static",this.btnPowerSave.cursor="pointer",this.btnPowerSave.on("pointerup",this.onPowerSave,this),this.updatePowerSaveButton(!Lzt.getInstance().visible)}
+ updatePowerSaveButton(t){
+ t&&!this.btnPowerSave.parent?this.addChild(this.btnPowerSave):!t&&this.btnPowerSave.parent&&this.removeChild(this.btnPowerSave)}
- ConquestMainPopup:t}
+ ConquestPopup:t}
- ConquestMainPopup:t}
+ ConquestPopup:t}
- ConquestMainPopup:t}
+ ConquestPopup:t}
GuildChatManager 1 hunks, 8 statements
- case"whisper":this.updateRecentMessageTime(t.CHAT_TYPE_WHISPER,i.data);
- break;
- case"whisperHistory":i.data&&Array.isArray(i.data.messages)&&i.data.messages.map(i=>this.updateRecentMessageTime(t.CHAT_TYPE_WHISPER,i));
- break;
- case"conversationList":Array.isArray(i.data)&&i.data.map(i=>{
- i.last&&this.updateRecentMessageTime(t.CHAT_TYPE_WHISPER,i.last)}
- );
- break;
GuildManager 2 hunks, 8 statements
+ static getGuildLevelProgress(t,i){
+ const s=this.getGuildExpForLevel(t),e=this.getGuildExpForLevel(t+1)-s;
+ return e>0?{
+ current:Math.max(0,Math.min(e,i-s)),total:e}
+ :{
+ current:1,total:1}
+ }
- return CL.getInstance().connected&&CL.getInstance().recentMessageTimes[CL.CHAT_TYPE_WHISPER]>this.loadedMessageTimes[CL.CHAT_TYPE_WHISPER]}
+ return OL.getInstance().connected&&BL.getInstance().conversations.some(t=>t.unread>0)}
ChatTransport 4 hunks, 8 statements
- case"whisperReadAck":break;
+ case"whisperReadAck":this.queueConversationListRefresh();
+ break;
- ,"onHistoryRef")),qt(this,"onDevChannelMessage",zt(t=>{
+ ,"onHistoryRef")),Yt(this,"convListRefreshTimer",null),Yt(this,"onDevChannelMessage",qt(t=>{
- this.service.dispatchToRoom(e,n)}
+ this.service.dispatchToRoom(e,n),this.queueConversationListRefresh()}
+ queueConversationListRefresh(){
+ null==this.convListRefreshTimer&&(this.convListRefreshTimer=window.setTimeout(()=>{
+ this.convListRefreshTimer=null,this.requestConversationList()}
+ ,300))}
ActiveSkillMain 3 hunks, 7 statements
- applyDevForcedSkills(){
- const i=t.DEV_FORCE_SKILLS;
- if(i)for(let t=0;
- t<i.length&&t<this.skillMaxNum;
- t++)OD.activeSkills[t]=i[t]}
- this.applyDevForcedSkills();
- zt(g5,"ActiveSkillMain"),qt(g5,"instance"),qt(g5,"AUTO_PILL_GAP",-4),qt(g5,"DEV_FORCE_SKILLS",null),qt(g5,"SPEED_BURST_MS",3e4),qt(g5,"SWORD_DATA",[{
+ qt(O5,"ActiveSkillMain"),Yt(O5,"instance"),Yt(O5,"AUTO_PILL_GAP",-4),Yt(O5,"SPEED_BURST_MS",3e4),Yt(O5,"SWORD_DATA",[{
GuildWarBattlePopupV3 7 hunks, 7 statements
- ...wL.DEFAULT_OUTLINE_FONT_OPTION_16,fontSize:13}
+ ...bL.DEFAULT_OUTLINE_FONT_OPTION_16,fontSize:13}
- ...wL.DEFAULT_OUTLINE_FONT_OPTION_16,fontSize:13}
+ ...bL.DEFAULT_OUTLINE_FONT_OPTION_16,fontSize:13}
- ...wL.DEFAULT_OUTLINE_FONT_OPTION_16,fontSize:13}
+ ...bL.DEFAULT_OUTLINE_FONT_OPTION_16,fontSize:13}
- ...wL.DEFAULT_OUTLINE_FONT_OPTION_16,fontSize:9}
+ ...bL.DEFAULT_OUTLINE_FONT_OPTION_16,fontSize:9}
- ...wL.DEFAULT_OUTLINE_FONT_OPTION_16,fontSize:11}
+ ...bL.DEFAULT_OUTLINE_FONT_OPTION_16,fontSize:11}
- ...wL.DEFAULT_OUTLINE_FONT_OPTION_16,fontSize:9}
+ ...bL.DEFAULT_OUTLINE_FONT_OPTION_16,fontSize:9}
- ...wL.DEFAULT_OUTLINE_FONT_OPTION_16,fontSize:i}
+ ...bL.DEFAULT_OUTLINE_FONT_OPTION_16,fontSize:i}
TreasureLimitBreakManager 5 hunks, 6 statements
- if(this.accByGrade=[[],[0],[0],[0],[0],[0],[0]],this._maxLevel=0,!Array.isArray(t)||0===t.length)return void(this._loaded=!1);
+ if(this.accByGrade=[[],[0],[0],[0],[0],[0],[0],[0]],this._maxLevel=0,!Array.isArray(t)||0===t.length)return void(this._loaded=!1);
- for(const s of i)this.accByGrade[1].push(Number(s.grade1)||0),this.accByGrade[2].push(Number(s.grade2)||0),this.accByGrade[3].push(Number(s.grade3)||0),this.accByGrade[4].push(Number(s.grade4)||0),this.accByGrade[5].push(Number(s.grade5)||0),this.accByGrade[6].push(Number(s.grade6)||0);
+ for(const s of i)this.accByGrade[1].push(Number(s.grade1)||0),this.accByGrade[2].push(Number(s.grade2)||0),this.accByGrade[3].push(Number(s.grade3)||0),this.accByGrade[4].push(Number(s.grade4)||0),this.accByGrade[5].push(Number(s.grade5)||0),this.accByGrade[6].push(Number(s.grade6)||0),this.accByGrade[7].push(Number(s.grade7)||Number(s.grade6)||0);
- getMaxLevelByTrans(i){
+ getMaxLevelByTrans(i,s=0){
+ if(s>=7)return Math.min(t.LIMIT_BREAK_CAP_GRADE7_TRANS_0,this._maxLevel);
- if(t<1||t>6)return 0;
+ if(t<1||t>7)return 0;
- zt(iB,"TreasureLimitBreakManager"),qt(iB,"instance"),qt(iB,"LIMIT_BREAK_CAP_TRANS_1",30),qt(iB,"LIMIT_BREAK_CAP_TRANS_2",50);
+ qt(pB,"TreasureLimitBreakManager"),Yt(pB,"instance"),Yt(pB,"LIMIT_BREAK_CAP_TRANS_1",30),Yt(pB,"LIMIT_BREAK_CAP_TRANS_2",50),Yt(pB,"LIMIT_BREAK_CAP_GRADE7_TRANS_0",50);
EmblemDataManager 1 hunks, 6 statements
- const s=this.getEmblem(t.emblems[0]??0),e=s?this.getSkill(s.aSkill):null,n=e?null==(i=this.skillDescTemplate(e).split(" — ")[0])?void 0:i.trim():"";
- return n&&n.length<=16?n:LG.getText("GAME_1306","액티브")}
+ const s=qt(()=>qG.getText("GAME_1306","액티브"),"fallback"),e=this.getEmblem(t.emblems[0]??0),n=e?this.getSkill(e.aSkill):null;
+ if(!n)return s();
+ const h=this.skillDescTemplate(n);
+ if(!h.includes(" — "))return s();
+ const r=(null==(i=h.split(" — ")[0])?void 0:i.trim())??"";
+ return!r||HQt.test(r)?s():r.length<=16?r:s()}
GpuGraphicsContext 3 hunks, 5 statements
- ...qc,extension:{
- ...qc.extension,name:"ellipse"}
+ ...Yc,extension:{
+ ...Yc.extension,name:"ellipse"}
- ...qc,extension:{
- ...qc.extension,name:"roundedRectangle"}
+ ...Yc,extension:{
+ ...Yc.extension,name:"roundedRectangle"}
- ..."radial"===i.type?b.defaultRadialOptions:b.defaultLinearOptions,...Vi(i)}
+ ..."radial"===i.type?b.defaultRadialOptions:b.defaultLinearOptions,...Ki(i)}
PassthroughFilter 5 hunks, 5 statements
- var rf="in vec2 vTextureCoord;
+ var of="in vec2 vTextureCoord;
- \n",of="struct GlobalFilterUniforms {
+ \n",af="struct GlobalFilterUniforms {
- source:of,entryPoint:"mainVertex"}
+ source:af,entryPoint:"mainVertex"}
- source:of,entryPoint:"mainFragment"}
+ source:af,entryPoint:"mainFragment"}
- vertex:tf,fragment:rf,name:"passthrough-filter"}
+ vertex:sf,fragment:of,name:"passthrough-filter"}
TreasureDetailPopup 4 hunks, 5 statements
- const e=s.getMaxLevelByTrans(this.vo.trans||0);
+ const e=s.getMaxLevelByTrans(this.vo.trans||0,this.vo.grade||0);
- const s=i.getMaxLevelByTrans(this.vo.trans||0)-this.vo.limitBreak;
+ const s=i.getMaxLevelByTrans(this.vo.trans||0,this.vo.grade||0)-this.vo.limitBreak;
- return t.loaded?Math.max(0,t.getMaxLevelByTrans(this.vo.trans||0)-this.vo.limitBreak):0}
+ return t.loaded?Math.max(0,t.getMaxLevelByTrans(this.vo.trans||0,this.vo.grade||0)-this.vo.limitBreak):0}
- const i=(this.vo.enhance||0)>=this.vo.maxLv,s=(this.vo.trans||0)>=1,e=this.vo.limitBreak<t.getMaxLevelByTrans(this.vo.trans||0);
- if(i&&s&&e){
+ const i=(this.vo.enhance||0)>=this.vo.maxLv,s=this.vo.limitBreak<t.getMaxLevelByTrans(this.vo.trans||0,this.vo.grade||0);
+ if(i&&s){
ReviveLayer 1 hunks, 5 statements
- const noi=class t extends cS{
+ const woi=Object.freeze(Object.defineProperty({
+ __proto__:null,BattleManager:moi}
+ ,Symbol.toStringTag,{
+ value:"Module"}
+ )),voi=class t extends dS{
PlayingCardRenderer 2 hunks, 5 statements
- let Wpi=Hpi;
- const $pi=class t extends wG{
+ let rgi=hgi,ogi=(qt(Kt=class extends IG{
- ;
- zt($pi,"ConquestPopup"),qt($pi,"_instance");
- let jpi=$pi;
+ ,"ConquestPopup"),Yt(Kt,"_instance"),Kt);
UnitVO 1 hunks, 4 statements
+ get buffedAtkRange(){
+ this.bvo||(this.bvo=Mx.getInstance().getBookVO(this.kindNum));
+ const t=XR.getInstance();
+ return this.bvo.atkRange*t.getMultiplier(this.unitType,this.tribe,NR.AttackRange,void 0,this.isAir,this.kindNum)}
UserService 2 hunks, 4 statements
- async changeActiveSkill(t,i=!1){
- return this.post(QR.USER.CHANGE_ACTIVE_SKILL,{
+ async changeActiveSkill(t,i,s=!1){
+ return this.post(iP.USER.CHANGE_ACTIVE_SKILL,void 0===i?{
+ :{
+ slotIndex:t,skillId:i}
GuildMainSubView 2 hunks, 4 statements
- this.bar.width=this.lblGuildPoint.x-i-5,this.bar.x=i,this.bar.y=this.lblGuildLv.y+.5*(this.lblGuildLv.height-this.bar.height),this.bar.update(t.points,RL.getGuildExpForLevel(t.level+1))}
+ this.bar.width=this.lblGuildPoint.x-i-5,this.bar.x=i,this.bar.y=this.lblGuildLv.y+.5*(this.lblGuildLv.height-this.bar.height);
+ const s=$L.getGuildLevelProgress(t.level,t.points);
+ this.bar.update(s.current,s.total)}
- const i=[...RL.guildList].sort((t,i)=>{
+ const i=[...$L.guildList].sort((t,i)=>{
GameOverPopup 4 hunks, 4 statements
- const n=ux.getInstance().getRebirthMedalPetDelta(),h=_x.getInstance(),r=h.getGlobalTransMedalBonusPct(OR.getWaterDragonOwnedMedalCapBonus()),o=h.getCurrentTeamTransMedalBonusPct(),a=OR.getWaterDragonTeamMedalBonus(h.getTeamIds()),c=qF.getInstance().getMedal(t);
+ const n=px.getInstance().getRebirthMedalPetDelta(),h=Mx.getInstance(),r=h.getGlobalTransMedalBonusPct(PR.getWaterDragonOwnedMedalCapBonus()),o=h.getCurrentTeamTransMedalBonusPct(),a=PR.getWaterDragonTeamMedalBonus(h.getTeamKindNums()),c=cH.getInstance().getMedal(t);
- else a=t.getTotal(s),c=i.getCurrentTeamTransMedalBonusPct(),l=OR.getWaterDragonTeamMedalBonus(i.getTeamIds());
+ else a=t.getTotal(s),c=i.getCurrentTeamTransMedalBonusPct(),l=PR.getWaterDragonTeamMedalBonus(i.getTeamKindNums());
- this.hasReviveTeam=!0;
+ oH.getInstance().setFromTeamStr(String(i.body.team)),this.hasReviveTeam=!0;
- else this.hasReviveTeam=!1,this.reviveTeamKindNums=[],this.reviveTeamTrans=[]}
+ else(null==i?void 0:i.success)&&oH.getInstance().setFromTeamStr(""),this.hasReviveTeam=!1,this.reviveTeamKindNums=[],this.reviveTeamTrans=[]}
SoulRestEndConfirmPopup 1 hunks, 4 statements
+ )),upi=wjt("AppSig"),dpi=Object.freeze(Object.defineProperty({
+ __proto__:null,AppSig:upi}
+ ,Symbol.toStringTag,{
+ value:"Module"}
Archery2GameScene 4 hunks, 4 statements
- ...wL.DEFAULT_OUTLINE_FONT_OPTION_16,fill:16777215}
+ ...bL.DEFAULT_OUTLINE_FONT_OPTION_16,fill:16777215}
- ...wL.DEFAULT_OUTLINE_FONT_OPTION_20,fill:16766720}
+ ...bL.DEFAULT_OUTLINE_FONT_OPTION_20,fill:16766720}
- ...wL.DEFAULT_OUTLINE_FONT_OPTION_16,fill:16737792}
+ ...bL.DEFAULT_OUTLINE_FONT_OPTION_16,fill:16737792}
- ...wL.DEFAULT_OUTLINE_FONT_OPTION_20,fill:16777215}
+ ...bL.DEFAULT_OUTLINE_FONT_OPTION_20,fill:16777215}
EkkorrGame 3 hunks, 3 statements
- width:e=640,backgroundColor:n=3355443,resolution:h=window.devicePixelRatio||1,autoDensity:r=!0,fitToScreen:o=!0,theme:a={
+ width:n=640,backgroundColor:h=3355443,resolution:r=t.getSafeResolution(),autoDensity:o=!0,fitToScreen:a=!0,theme:c={
- if(document.getElementById("app").appendChild(p),p.setAttribute("tabindex","0"),p.style.outline="none",p.focus(),document.addEventListener("pointerdown",()=>{
+ if(document.getElementById("app").appendChild(g),oS.install(this.app),g.setAttribute("tabindex","0"),g.style.outline="none",g.focus(),document.addEventListener("pointerdown",()=>{
- zt(hS,"EkkorrGame"),qt(hS,"app"),qt(hS,"gameWidth"),qt(hS,"gameHeight"),qt(hS,"fitToScreen"),qt(hS,"_forceResize",null);
+ qt(aS,"EkkorrGame"),Yt(aS,"app"),Yt(aS,"gameWidth"),Yt(aS,"gameHeight"),Yt(aS,"fitToScreen"),Yt(aS,"_forceResize",null),Yt(aS,"MAX_RESOLUTION",2);
SystemService 3 hunks, 3 statements
- async attest(t,i,s,e=!1){
+ async attest(t,i,s,e,n=null,h=!1){
- token:t,n:i,n2:s,_t:Date.now()}
+ token:t,sig:i,n:s,n2:e,_t:Date.now()}
- return this.post(QR.SYSTEM.ATTEST,n,e)}
+ return n&&(r.errorCode=n),this.post(iP.SYSTEM.ATTEST,r,h)}
SHA256 3 hunks, 3 statements
- ...ppt,...mpt,...vpt,...bpt,...Ept,...Npt,...Dpt,...Upt,...jpt}
+ ...kpt,...xpt,...Ppt,...Lpt,...Bpt,...qpt,...Jpt,...tgt,...hgt}
- ...Cgt,...kgt}
+ ...Wgt,...jgt}
- utf8:rmt,"utf-8":rmt,hex:tmt.base16,latin1:omt,ascii:omt,binary:omt,...tmt}
+ utf8:ymt,"utf-8":ymt,hex:gmt.base16,latin1:Mmt,ascii:Mmt,binary:Mmt,...gmt}
SuiProvider 3 hunks, 3 statements
- namespace:JAt.NameSpaceKeyAptos,addresses:s,methods:[...ZAt.AptosMethods],extra:h}
+ namespace:dSt.NameSpaceKeyAptos,addresses:s,methods:[...pSt.AptosMethods],extra:h}
- namespace:rSt.NameSpaceKeyTON,addresses:o,methods:[...cSt.TONMethods],extra:a,data:{
+ namespace:ySt.NameSpaceKeyTON,addresses:o,methods:[...ASt.TONMethods],extra:a,data:{
- namespace:fSt.NameSpaceKeySui,addresses:i,methods:[...mSt.SuiMethods],extra:s}
+ namespace:ISt.NameSpaceKeySui,addresses:i,methods:[...xSt.SuiMethods],extra:s}
WalletPopup 3 hunks, 3 statements
- ...wL.ERROR_POPUP_LABEL_OPTION,fontSize:24,fontWeight:"bold"}
+ ...bL.ERROR_POPUP_LABEL_OPTION,fontSize:24,fontWeight:"bold"}
- ...wL.ERROR_POPUP_LABEL_OPTION,fontSize:16}
+ ...bL.ERROR_POPUP_LABEL_OPTION,fontSize:16}
- ...wL.ERROR_POPUP_LABEL_OPTION,fontSize:16}
+ ...bL.ERROR_POPUP_LABEL_OPTION,fontSize:16}
Guild2InfoPopup 1 hunks, 3 statements
- if(this.bar.width=this.lblGuildNum.x-r-8,this.bar.x=r,this.bar.y=h+.5*(this.lblGuildLv.height-this.bar.height),this.bar.update(this.vo.points,RL.getGuildExpForLevel(this.vo.level+1)),this.guildInfoBg.height=h+this.lblGuildLv.height-e+8,e+=this.guildInfoBg.height+15,this.emblem.y=this.guildInfoBg.y+.5*(this.guildInfoBg.height-this.emblem.height),this.lblJoinInfo.y=e,e+=this.lblJoinInfo.height+5,this.lblWaveInfo.y=e,e+=this.lblWaveInfo.height+15,this.lblDescTitle.y=e,e+=this.lblDescTitle.height+3,this.descBg.y=e,this.lblDescText.y=e+8,this.descBg.height=Math.max(80,this.lblDescText.height+16),e+=this.descBg.height+25,this.btnLeave.visible){
+ this.bar.width=this.lblGuildNum.x-r-8,this.bar.x=r,this.bar.y=h+.5*(this.lblGuildLv.height-this.bar.height);
+ const o=$L.getGuildLevelProgress(this.vo.level,this.vo.points);
+ if(this.bar.update(o.current,o.total),this.guildInfoBg.height=h+this.lblGuildLv.height-e+8,e+=this.guildInfoBg.height+15,this.emblem.y=this.guildInfoBg.y+.5*(this.guildInfoBg.height-this.emblem.height),this.lblJoinInfo.y=e,e+=this.lblJoinInfo.height+5,this.lblWaveInfo.y=e,e+=this.lblWaveInfo.height+15,this.lblDescTitle.y=e,e+=this.lblDescTitle.height+3,this.descBg.y=e,this.lblDescText.y=e+8,this.descBg.height=Math.max(80,this.lblDescText.height+16),e+=this.descBg.height+25,this.btnLeave.visible){
RouletteSubView 2 hunks, 3 statements
- super(),qt(this,"posXs",[0,132,264,396,396,396,396,264,132,0,0,0]),qt(this,"posYs",[0,0,0,0,84,166,248,248,248,248,166,84]),qt(this,"lblDate",new hD("날짜: 2026.08.07",wL.COLOR_BRIGHT_ORANGE)),qt(this,"lblDesc",new hD("룰렛 설명",wL.COLOR_WHITE)),qt(this,"items",[]),qt(this,"btnStart",new HU("PVP_COIN_ON",`( ${
+ super(),Yt(this,"posXs",[0,132,264,396,396,396,396,264,132,0,0,0]),Yt(this,"posYs",[0,0,0,0,84,168,252,252,252,252,168,84]),Yt(this,"lblDate",new mD("날짜: 2026.08.07",bL.COLOR_BRIGHT_ORANGE)),Yt(this,"lblDesc",new mD("룰렛 설명",bL.COLOR_WHITE)),Yt(this,"items",[]),Yt(this,"btnStart",new tF("PVP_COIN_ON",`( ${
- s++)this.items[s].y=i+this.posYs[s]}
+ s++)this.items[s].y=i+this.posYs[s];
+ this.btnStart.x=this.items[1].x+.5*(this.items[3].x-this.items[1].x-12-this.btnStart.width),this.btnStart.y=this.items[11].y+.5*(this.items[9].y-this.items[11].y-6-this.btnStart.height),this.btnStop.x=this.btnStart.x,this.btnStop.y=this.btnStart.y}
TilingSpriteShader 1 hunks, 2 statements
- ...sp,vertex:{
- ...sp.vertex,header:sp.vertex.header.replace("group(1)","group(2)")}
+ ...ep,vertex:{
+ ...ep.vertex,header:ep.vertex.header.replace("group(1)","group(2)")}
BatchableSprite 2 hunks, 2 statements
- ...Ru.defaultFillStyle,...t}
+ ...Pu.defaultFillStyle,...t}
- ...Ru.defaultStrokeStyle,...t}
+ ...Pu.defaultStrokeStyle,...t}
CanvasRenderer 1 hunks, 2 statements
- const Bv=[...Tv,lw,dw,Gv,Lv],Uv=[Pw,Hm,xw,ww,qm,ew,Xm,pw],Fv=[Pm,kw],Hv=[],Wv=[],$v=[];
- si.handleByNamedList(Zt.CanvasSystem,Hv),si.handleByNamedList(Zt.CanvasPipes,Wv),si.handleByNamedList(Zt.CanvasPipesAdaptor,$v),si.add(...Bv,...Uv,...Fv);
+ const Uv=[...Cv,uw,fw,Bv,Dv],Fv=[Lw,Wm,Rw,vw,Ym,nw,Jm,gw],Hv=[Lm,Ow],Wv=[],$v=[],jv=[];
+ ei.handleByNamedList(ti.CanvasSystem,Wv),ei.handleByNamedList(ti.CanvasPipes,$v),ei.handleByNamedList(ti.CanvasPipesAdaptor,jv),ei.add(...Uv,...Fv,...Hv);
WebGLRenderer 1 hunks, 2 statements
- const Kb=[...Tv,B_,p_,Zv,b_,Jv,Hb,W_,u_,gb,lb,v_,vb,S_,m_],zb=[...Cv],qb=[Dm,Vb,$b],Yb=[],Xb=[],Jb=[];
- si.handleByNamedList(Zt.WebGLSystem,Yb),si.handleByNamedList(Zt.WebGLPipes,Xb),si.handleByNamedList(Zt.WebGLPipesAdaptor,Jb),si.add(...Kb,...zb,...qb);
+ const zb=[...Cv,U_,g_,t_,y_,Qv,Wb,$_,d_,mb,ub,__,_b,T_,w_],qb=[...Iv],Yb=[Gm,Kb,jb],Xb=[],Jb=[],Qb=[];
+ ei.handleByNamedList(ti.WebGLSystem,Xb),ei.handleByNamedList(ti.WebGLPipes,Jb),ei.handleByNamedList(ti.WebGLPipesAdaptor,Qb),ei.add(...zb,...qb,...Yb);
WebGPURenderer 1 hunks, 2 statements
- const aM=[...Tv,Ay,py,dy,my,ry,eM,By,Fy,$y,Ry,ly,vy,sy],cM=[...Cv,Cy],lM=[Um,oM,hM],uM=[],dM=[],fM=[];
- si.handleByNamedList(Zt.WebGPUSystem,uM),si.handleByNamedList(Zt.WebGPUPipes,dM),si.handleByNamedList(Zt.WebGPUPipesAdaptor,fM),si.add(...aM,...cM,...lM);
+ const cM=[...Cv,Sy,gy,fy,wy,oy,nM,Uy,Hy,jy,Py,uy,_y,ey],lM=[...Iv,Iy],uM=[Fm,aM,rM],dM=[],fM=[],pM=[];
+ ei.handleByNamedList(ti.WebGPUSystem,dM),ei.handleByNamedList(ti.WebGPUPipes,fM),ei.handleByNamedList(ti.WebGPUPipesAdaptor,pM),ei.add(...cM,...lM,...uM);
UnitDataManager 1 hunks, 2 statements
+ getTeamKindNums(){
+ return this.objList?[...this.objList.values()].map(t=>t.kindNum).filter(t=>t>0):[]}
RunInfo 2 hunks, 2 statements
- return i<t.MPM_DISPLAY_MIN_SEC?null:qF.getInstance().getExpectedNormalMedal(OD.wave)/(i/60)}
+ return i<t.MPM_DISPLAY_MIN_SEC?null:cH.getInstance().getExpectedMedal(HD.wave)/(i/60)}
+ oH.getInstance().ensureLoaded();
BaseUnit 2 hunks, 2 statements
- this.atkDuration=1e4/(this.baseAtkDuration+t)}
+ this.orgAtkSpd=this.baseAtkDuration+t,this.atkDuration=1e4/this.orgAtkSpd}
- this.numLoveShield=t,this.addMoveSpeedBuff(qK.Succubus1_MOVESPEED_BUFF,.5,t),this.addMoveSpeedBuff(qK.Succubus1_ATTACKSPEED_BUFF,.4,t);
+ this.numLoveShield=t,this.addMoveSpeedBuff(cz.Succubus1_MOVESPEED_BUFF,.5,t),this.addAttackSpeedBuff(cz.Succubus1_ATTACKSPEED_BUFF,.4,t);
Th 2 hunks, 2 statements
- if(get(t))if(s||i&&"object"==typeof i&&null!==i&&"error"in i){
+ if(xet(t))if(s||i&&"object"==typeof i&&null!==i&&"error"in i){
- )),get(h)&&D3.analytics.track("sdk_action_requested",{
+ )),xet(h)&&J3.analytics.track("sdk_action_requested",{
ChatOverlay 2 hunks, 2 statements
- ""!==n&&e.sender.uid===n||"dm"===this.viewMode&&this.activeRoom.roomId===i||(this.totalUnread+=1,this.updateWhisperTabBadge()),"dmList"===this.viewMode&&(hKt()?t.setConversations(this.buildLocalConversations()):EKt.getInstance().requestConversationList())}
+ ""!==n&&e.sender.uid===n||("dm"===this.viewMode&&this.activeRoom.roomId===i?this.activeDMPeer&&OKt.getInstance().markWhisperRead(this.activeDMPeer.uid):(this.totalUnread+=1,this.updateWhisperTabBadge())),"dmList"===this.viewMode&&(bKt()?t.setConversations(this.buildLocalConversations()):OKt.getInstance().requestConversationList())}
- this.tabWhisperRedDot&&(1==RL.checkChatWhisper()?this.tabWhisperRedDot.style.display="inline-block":this.tabWhisperRedDot.style.display="none")}
+ this.tabWhisperRedDot&&(1==$L.checkChatWhisper()&&0===this.totalUnread?this.tabWhisperRedDot.style.display="inline-block":this.tabWhisperRedDot.style.display="none")}
ReviveTeamPopup 1 hunks, 2 statements
- if(!1===(null==i?void 0:i.success))return void WF.getInstance().showMessage(LG.getText("GAME_616","저장에 실패했습니다."))}
+ if(!1===(null==i?void 0:i.success))return void iH.getInstance().showMessage(qG.getText("GAME_616","저장에 실패했습니다."));
+ oH.getInstance().setFromTeamStr(t)}
BuffStatusPopup 2 hunks, 2 statements
- const r=OR.getWaterDragonTeamMedalBonus(_x.getInstance().getTeamIds());
+ const r=PR.getWaterDragonTeamMedalBonus(Mx.getInstance().getTeamKindNums());
- if(n)if(t=[...xx.getInstance().getContributors(o)],o===kx.GodBless){
+ if(n)if(t=[...Nx.getInstance().getContributors(o)],o===Rx.GodBless){
GuildBarrackRowItemRenderer 2 hunks, 2 statements
- ...wL.DEFAULT_OUTLINE_FONT_OPTION_16,fontSize:14}
+ ...bL.DEFAULT_OUTLINE_FONT_OPTION_16,fontSize:14}
- ...wL.DEFAULT_OUTLINE_FONT_OPTION_16,fontSize:13}
+ ...bL.DEFAULT_OUTLINE_FONT_OPTION_16,fontSize:13}
GuildWarBattleReadyPopup 2 hunks, 2 statements
- ...wL.DEFAULT_OUTLINE_FONT_OPTION_16,fontSize:13}
+ ...bL.DEFAULT_OUTLINE_FONT_OPTION_16,fontSize:13}
- ...wL.DEFAULT_OUTLINE_FONT_OPTION_16,fontSize:i}
+ ...bL.DEFAULT_OUTLINE_FONT_OPTION_16,fontSize:i}
GuildWarSquadsPopup 2 hunks, 2 statements
- ...wL.DEFAULT_OUTLINE_FONT_OPTION_16,fontSize:14}
+ ...bL.DEFAULT_OUTLINE_FONT_OPTION_16,fontSize:14}
- ...wL.DEFAULT_OUTLINE_FONT_OPTION_16,fontSize:i}
+ ...bL.DEFAULT_OUTLINE_FONT_OPTION_16,fontSize:i}
GuildWarTierAssignPopup 2 hunks, 2 statements
- const i=[...RL.memberList??[]].sort((t,i)=>i.roleLevel!==t.roleLevel?i.roleLevel-t.roleLevel:(i.wave??0)-(t.wave??0));
+ const i=[...$L.memberList??[]].sort((t,i)=>i.roleLevel!==t.roleLevel?i.roleLevel-t.roleLevel:(i.wave??0)-(t.wave??0));
- ...wL.DEFAULT_OUTLINE_FONT_OPTION_16,fontSize:i}
+ ...bL.DEFAULT_OUTLINE_FONT_OPTION_16,fontSize:i}
ObservablePoint 1 hunks, 1 statements
- var t,i,s,e,n,h,r,o,a,c,l,u,d,f,p,g,m,w,v,_,b,y,M,E,A,S,T,C,I,k,O,x,R,N,P,L,D,G,B,U,F,H,W,$,j,V,K,z,q,Y,X,J,Q,Z,tt,it,st,et,nt,ht,rt,ot,at,ct,lt,ut,dt,ft,pt,gt,mt,wt,vt,_t,bt,yt,Mt,Et,At,St,Tt,Ct,It,kt,Ot,xt,Rt,Nt,Pt,Lt,Dt,Gt,Bt,Ut,Ft,Ht,Wt,$t,jt,Vt,Kt=Object.defineProperty,zt=(t,i)=>Kt(t,"name",{
+ var t,i,s,e,n,h,r,o,a,c,l,u,d,f,p,g,m,w,v,_,b,y,M,E,A,S,T,C,I,k,O,x,R,P,N,L,D,G,B,U,F,H,W,$,j,V,K,z,q,Y,X,J,Q,Z,tt,it,st,et,nt,ht,rt,ot,at,ct,lt,ut,dt,ft,pt,gt,mt,wt,vt,_t,bt,yt,Mt,Et,At,St,Tt,Ct,It,kt,Ot,xt,Rt,Pt,Nt,Lt,Dt,Gt,Bt,Ut,Ft,Ht,Wt,$t,jt,Vt,Kt,zt=Object.defineProperty,qt=(t,i)=>zt(t,"name",{
CacheClass 1 hunks, 1 statements
- ...Ji.defaultOptions,autoLoad:!0,autoPlay:!0,updateFPS:0,crossorigin:!0,loop:!1,muted:!0,playsinline:!0,preload:!1}
+ ...Qi.defaultOptions,autoLoad:!0,autoPlay:!0,updateFPS:0,crossorigin:!0,loop:!1,muted:!0,playsinline:!0,preload:!1}
ApplicationInitHook 1 hunks, 1 statements
- const i=[...Xr,...this.config.runners??[]];
+ const i=[...Jr,...this.config.runners??[]];
Circle 1 hunks, 1 statements
- ,test:zt(()=>Promise.resolve(!0),"test"),add:zt(async t=>[...t,...Io],"add"),remove:zt(async t=>t.filter(t=>!Io.includes(t)),"remove")}
+ ,test:qt(()=>Promise.resolve(!0),"test"),add:qt(async t=>[...t,...ko],"add"),remove:qt(async t=>t.filter(t=>!ko.includes(t)),"remove")}
DefaultShader 1 hunks, 1 statements
- name:i,...lc({
+ name:i,...uc({
AssetsClass 1 hunks, 1 statements
- ...mn.defaultOptions,resolution:(null==(e=i.data)?void 0:e.resolution)||Nu(t),alphaMode:(null==(n=i.data)?void 0:n.alphaMode)||await pn(),...i.data}
+ ...wn.defaultOptions,resolution:(null==(e=i.data)?void 0:e.resolution)||Nu(t),alphaMode:(null==(n=i.data)?void 0:n.alphaMode)||await gn(),...i.data}
WorkerInstance 1 hunks, 1 statements
- return _d=[...vd,...t],_d}
+ return bd=[..._d,...t],bd}
HTMLTextStyle 1 hunks, 1 statements
- ...Tg.defaultDropShadow,...t}
+ ...Cg.defaultDropShadow,...t}
FrameLoopManager 1 hunks, 1 statements
- __proto__:null,AbstractBitmapFont:Vg,AbstractRenderer:to,AbstractText:Ap,AbstractTextSystem:Bg,AccessibilitySystem:fh,AlphaMask:Ye,AlphaMaskPipe:qm,AnimatedSprite:jf,Application:mo,ApplicationInitHook:oo,Assets:ad,AssetsClass:od,BLEND_TO_NPM:ba,BREAKING_SPACES:jp,BREAKING_SPACES_SET:Vp,BREAK_AFTER_CHARS:qp,BREAK_AFTER_CHARS_SET:Yp,BUFFER_TYPE:zv,BackgroundLoader:Ao,BackgroundSystem:Kw,Batch:xa,BatchGeometry:Ya,BatchTextureArray:ka,BatchableGraphics:zc,BatchableHTMLText:wm,BatchableMesh:Wf,BatchableSprite:Og,BatchableText:Rg,Batcher:Ba,BatcherPipe:Hm,BigPool:zs,BindGroup:tr,BindGroupSystem:sy,BitmapFont:OM,BitmapFontManager:im,BlendModePipe:Pw,Bounds:os,BrowserAdapter:tn,Buffer:Fa,BufferImageSource:Zi,BufferResource:j_,BufferUsage:Ua,CLEAR:zr,COLLAPSIBLE_SPACES:Kp,COLLAPSIBLE_SPACES_SET:zp,Cache:_n,CanvasBatchAdaptor:Pm,CanvasColorMaskPipe:Xm,CanvasContextSystem:lw,CanvasGraphicsAdaptor:kw,CanvasGraphicsContextSystem:kf,CanvasGraphicsPipe:xf,CanvasLimitsSystem:dw,CanvasNineSliceSpritePipe:bM,CanvasObserver:jn,CanvasPool:Ip,CanvasPoolClass:Cp,CanvasRenderTargetAdaptor:Nv,CanvasRenderTargetSystem:Lv,CanvasRenderer:Vv,CanvasRendererTextSystem:Fg,CanvasSource:hn,CanvasStencilMaskPipe:ew,CanvasTextGenerator:Ag,CanvasTextMetrics:mg,CanvasTextPipe:Pg,CanvasTextSystem:Wg,CanvasTextureSystem:Gv,CanvasTilingSpritePipe:ip,Circle:ha,Color:Us,ColorMask:Je,ColorMaskPipe:Qm,ColorMatrixFilter:hf,CompressedSource:pd,Container:Ue,CustomRenderPipe:pw,DEG_TO_RAD:gi,DOMAdapter:en,DOMPipe:Gd,DefaultBatcher:Uc,DefaultShader:Dc,DynamicBitmapFont:zg,Ellipse:oa,EventBoundary:Yd,EventEmitter:ui,EventSystem:Qd,EventsTicker:Ud,ExtensionType:Zt,ExtractSystem:Yw,FederatedContainer:Zd,FederatedEvent:Kn,FederatedMouseEvent:Hd,FederatedPointerEvent:$d,FederatedWheelEvent:Vd,FillGradient:ll,FillPattern:mu,Filter:ar,FilterEffect:Zs,FilterPipe:uf,FilterSystem:vf,FontStylePromiseCache:Am,GCManagedHash:Hc,GCSystem:rv,GL_FORMATS:s_,GL_TARGETS:e_,GL_TYPES:n_,GPUTextureGpuData:iM,GenerateTextureSystem:sv,Geometry:Va,GlBackBufferSystem:p_,GlBatchAdaptor:Dm,GlBuffer:Yv,GlBufferSystem:Jv,GlColorMaskSystem:m_,GlContextSystem:Zv,GlEncoderSystem:v_,GlGeometryGpuData:c_,GlGeometrySystem:u_,GlGraphicsAdaptor:$b,GlLimitsSystem:b_,GlMeshAdaptor:Vb,GlProgram:Rh,GlProgramData:z_,GlRenderTarget:M_,GlRenderTargetAdaptor:F_,GlRenderTargetSystem:W_,GlShaderSystem:lb,GlStateSystem:vb,GlStencilSystem:S_,GlTexture:bb,GlTextureSystem:Hb,GlUboSystem:B_,GlUniformGroupSystem:gb,GlobalResourceRegistry:$s,GlobalUniformSystem:av,GpuBatchAdaptor:Um,GpuBlendModesToPixi:Hy,GpuBufferData:ny,GpuBufferSystem:ry,GpuColorMaskSystem:ly,GpuDeviceSystem:dy,GpuEncoderSystem:py,GpuGraphicsAdaptor:hM,GpuGraphicsContext:Sl,GpuLimitsSystem:my,GpuMeshAdapter:oM,GpuMipmapGenerator:Zy,GpuProgram:zh,GpuRenderTarget:Py,GpuRenderTargetAdaptor:Dy,GpuRenderTargetSystem:By,GpuShaderSystem:Fy,GpuStateSystem:$y,GpuStencilModesToPixi:E_,GpuStencilSystem:vy,GpuTextureSystem:eM,GpuUboSystem:Ay,GpuUniformBatchPipe:Cy,Graphics:Bf,GraphicsContext:Ru,GraphicsContextRenderData:Cl,GraphicsContextSystem:kl,GraphicsGpuData:Pf,GraphicsPath:Ql,GraphicsPipe:Df,HTMLText:Rm,HTMLTextPipe:_m,HTMLTextRenderData:pm,HTMLTextStyle:cm,HTMLTextSystem:Om,HelloSystem:gv,ImageSource:on,InstructionSet:Ce,Loader:Go,LoaderParserPriority:An,MaskEffectManager:se,MaskEffectManagerClass:ie,MaskFilter:Ef,Matrix:bi,MeshGeometry:Ff,NEWLINES:Wp,NEWLINES_SET:$p,NEWLINE_MATCH_REGEX:Jp,NEWLINE_SPLIT_REGEX:Xp,NOOP:Wi,NineSliceGeometry:MM,NineSliceSprite:IM,NineSliceSpriteGpuData:AM,NineSliceSpritePipe:TM,ObservablePoint:ri,PI_2:fi,PassthroughFilter:cf,PipelineSystem:Ry,PlaneGeometry:vM,Point:wi,Polygon:la,Pool:js,PoolGroupClass:Ks,QuadGeometry:dp,RAD_TO_DEG:pi,Rectangle:Pi,RenderGroup:Ne,RenderGroupPipe:ww,RenderGroupSystem:jw,RenderTarget:yv,RenderTargetSystem:xv,RenderTexture:Jw,RenderableGCSystem:wv,RendererInitHook:co,RendererType:ir,ResizePlugin:uo,Resolver:Ln,RoundedRectangle:fa,STENCIL_MODES:ya,SVGParser:du,SchedulerSystem:uv,Shader:er,ShaderStage:Hh,ShapePath:Xl,SharedRenderPipes:Cv,SharedSystems:Tv,Sprite:$e,SpritePipe:xw,Spritesheet:Un,State:rr,StencilMask:Ze,StencilMaskPipe:hw,SystemRunner:Yr,Text:$g,TextStyle:Tg,Texture:es,TextureGCSystem:_v,TextureMatrix:ss,TexturePool:xe,TexturePoolClass:Oe,TextureSource:Ji,TextureStyle:Yi,Ticker:fn,TickerListener:ln,TickerPlugin:po,TilingSprite:Mp,TilingSpriteGpuData:vp,TilingSpritePipe:bp,TilingSpriteShader:lp,Transform:zf,UNIFORM_TO_ARRAY_SETTERS:db,UNIFORM_TO_SINGLE_SETTERS:ub,UNIFORM_TYPES_MAP:Yh,UNIFORM_TYPES_VALUES:qh,UPDATE_BLEND:2,UPDATE_COLOR:1,UPDATE_PRIORITY:an,UPDATE_VISIBLE:4,UboBatch:ay,UboSystem:C_,UniformGroup:Qh,VERSION:ho,VideoSource:mn,ViewContainer:He,ViewSystem:Sv,ViewableBuffer:va,WGSL_ALIGN_SIZE_DATA:_y,WGSL_TO_STD40_SIZE:I_,WebGLRenderer:Zb,WebGPURenderer:gM,WorkerManager:Vu,accessibilityTarget:ph,addBits:Xa,addMaskBounds:Ve,addMaskLocalBounds:Ke,addProgramDefines:Mh,appendSVGPath:uu,applyMatrix:pp,applyStyleParams:Lb,assignWithIgnore:Pe,autoDetectRenderer:no,bgr2rgb:ge,bitmapFontCachePlugin:yo,bitmapFontTextParser:wo,bitmapFontXMLParser:vo,bitmapFontXMLStringParser:_o,blockDataMap:Vy,boundsPool:re,browserExt:ei,buildAdaptiveBezier:xl,buildAdaptiveQuadratic:Pl,buildArc:Gl,buildArcTo:Bl,buildArcToSvg:Vl,buildCircle:qc,buildContextBatches:bl,buildEllipse:Yc,buildLine:il,buildPixelLine:sl,buildPolygon:hl,buildRectangle:rl,buildRoundedRectangle:Xc,buildSimpleUvs:$c,buildTriangle:ol,buildUvs:Wc,cacheAsTextureMixin:qs,cacheTextureArray:So,calculatePathArea:lu,calculateProjection:Iv,canUseNewCanvasBlendModes:Yf,canvasUtils:Xf,checkChildrenDidChange:_e,checkDataUrl:Bo,checkExtension:Uo,checkForNestedPattern:au,checkMaxIfStatementsInShader:Sa,childrenHelperMixin:Xs,cleanArray:nv,cleanHash:ev,clearList:Lw,closePointEps:Jc,collapseNewlines:eg,collapseSpaces:sg,collectRenderablesMixin:Js,color32BitToUniform:Rf,colorBit:Mc,colorBitGl:Ec,colorMatrixFilterFrag:sf,colorMatrixFilterWgsl:ef,compareModeToGlCompare:Pb,compileHighShader:cc,compileHighShaderGl:lc,compileHighShaderGlProgram:yc,compileHighShaderGpuProgram:bc,compileHooks:Qa,compileInputs:tc,compileOutputs:nc,compileShader:q_,convertToList:wn,copySearchParams:Gn,createGlUploadCubeTextureResource:Sb,createGpuUploadCubeTextureResource:Yy,createIdFromString:wh,createStringVariations:Rn,createTexture:Pu,createUboElementsSTD40:k_,createUboElementsWGSL:by,createUboSyncFunction:x_,createUboSyncFunctionSTD40:D_,createUboSyncFunctionWGSL:My,crossOrigin:Zu,cullingMixin:Fs,curveEps:1e-4,defaultFilterVert:tf,defaultValue:X_,definedProps:Vi,deprecation:Hi,detectAvif:Co,detectCompressed:Pd,detectDefaults:ko,detectMp4:Ro,detectOgv:No,detectVideoAlphaMode:pn,detectWebm:Po,detectWebp:Lo,determineCrossOrigin:id,earcut:Kr,effectsMixin:ee,ensureAttributes:t_,ensureIsBuffer:Ha,ensurePrecision:Eh,ensureTextOptions:Sp,executeInstructions:gw,extensions:si,extractAttributesFromGlProgram:sb,extractAttributesFromGpuProgram:Uh,extractFontFamilies:ym,extractStructAndGroups:Fh,extractSubpaths:cu,extractSvgUrlId:nu,fastCopy:_a,findMixin:ne,fontStringFromTextStyle:vg,fragmentGPUTemplate:gc,fragmentGlTemplate:wc,generateArraySyncSTD40:L_,generateArraySyncWGSL:yy,generateGpuLayoutGroups:Wh,generateLayoutHash:$h,generateProgram:ob,generateShaderSyncCode:V_,generateTextureBatchBit:Cc,generateTextureBatchBitGl:Oc,generateTextureMatrix:ml,generateUniformsSync:fb,getAdjustedBlendModeBlend:Ma,getAttributeInfoFromFormat:Ph,getBatchSamplersUniformGroup:Pc,getBitmapTextLayout:qg,getCanvasBoundingBox:Pp,getCanvasFillStyle:bg,getCanvasTexture:Ev,getCharacterGroups:rg,getDefaultUniformValue:Xh,getFastGlobalBoundsMixin:ae,getFontCss:Sm,getFontFamilyName:Ko,getGeometryBounds:Wa,getGlTypeFromFormat:r_,getGlobalBounds:ce,getGlobalMixin:me,getGlobalRenderableBounds:ff,getLocalBounds:we,getMaxFragmentPrecision:yh,getMaxMiterRatio:Iu,getMaxTexturesPerBatch:Ca,getOrientationOfPoints:Qc,getPo2TextureFromSource:Dg,getResolutionOfUrl:Nu,getSVGUrl:Tm,getSupportedCompressedTextureFormats:wd,getSupportedGPUCompressedTextureFormats:md,getSupportedGlCompressedTextureFormats:gd,getSupportedTextureFormats:bd,getTemporaryCanvasFromImage:Cm,getTestContext:bh,getTextureBatchBindGroup:ga,getUboData:eb,getUniformData:nb,getUrlExtension:Dn,glUploadBufferImageResource:yb,glUploadCompressedTextureResource:Eb,glUploadImageResource:Tb,glUploadVideoResource:Ob,globalUniformsBit:vc,globalUniformsBitGl:_c,gpuUploadBufferImageResource:jy,gpuUploadCompressedTextureResource:zy,gpuUploadImageResource:Xy,gpuUploadVideoResource:Jy,groupD8:xi,hasTagMarkup:Up,hasTagStyles:Bp,injectBits:hc,insertVersion:Ah,isBreakAfterChar:ig,isBreakingSpace:Zp,isCollapsibleSpace:tg,isMobile:uh,isNewline:Qp,isPow2:ji,isRenderingToScreen:kv,isSafari:bm,isSingleItem:Nn,isWebGLSupported:io,isWebGPUSupported:so,ktxTranscoderUrls:Ad,loadBitmapFont:Mo,loadEnvironmentExtensions:lr,loadFontAsBase64:Mm,loadFontCSS:Em,loadImageBitmap:qu,loadJson:Fo,loadKTX2:Od,loadKTX2onWorker:kd,loadSVGImage:Im,loadSvg:Lu,loadTextures:Yu,loadTxt:Ho,loadVideoTextures:ed,loadWebFont:Yo,localUniformBit:sp,localUniformBitGl:np,localUniformBitGroup2:ep,logProgramError:rb,mapCanvasBlendModesToPixi:ow,mapFormatToGlFormat:Db,mapFormatToGlInternalFormat:Gb,mapFormatToGlType:Bb,mapGlToVertexFormat:ib,mapType:tb,mapViewDimensionToGlTarget:Ub,mapWebGLBlendModesToPixi:mb,maskFrag:_f,maskVert:bf,maskWgsl:yf,matrixPool:he,measureHtmlText:gm,measureMixin:ye,measureTaggedText:ag,mipmapScaleModeToGlFilter:Rb,multiplyColors:pe,multiplyHexColors:de,nextPow2:$i,nonCompressedFormats:vd,normalizeExtensionPriority:ii,onRenderMixin:Me,parseSVGDefinitions:iu,parseSVGFloatAttribute:tu,parseSVGPath:ea,parseSVGStyle:ru,parseTaggedText:Hp,passthroughFrag:rf,passthroughWgsl:of,path:On,preloadVideo:td,removeItems:Ys,removeStructAndGroupDuplicates:jh,resolveCharacters:Qg,resolveCompressedTextureUrl:Rd,resolveJsonUrl:hd,resolveTextureUrl:nd,resourceToTexture:Mn,roundPixelsBit:xc,roundPixelsBitGl:Rc,roundedShapeArc:Kl,roundedShapeQuadraticCurve:zl,sayHello:fv,scaleModeToGlFilter:xb,setPositions:fp,setProgramName:Ch,setUvs:gp,shapeBuilders:wl,sortMixin:Ee,spritesheetAsset:Wn,squaredDistanceToLineSegment:aa,stripVersion:Ih,styleAttributes:hu,testImageFormat:To,testVideoFormat:xo,textStyleToCSS:sm,textureBit:Wm,textureBitGl:$m,textureFrom:En,tilingBit:hp,tilingBitGl:rp,toFillStyle:Tu,toLocalGlobalMixin:Se,toStrokeStyle:Cu,tokenize:hg,tokenizeTaggedRuns:lg,transformVertices:jc,triangulateWithHoles:el,trimRight:ng,uboSyncFunctionsSTD40:N_,uboSyncFunctionsWGSL:P_,uid:Di,uniformParsers:O_,unsafeEvalSupported:dr,updateQuadBounds:ns,updateRenderGroupTransform:Bw,updateRenderGroupTransforms:Gw,updateTextBounds:Ig,updateTransformAndChildren:Uw,updateTransformBackwards:ue,v8_0_0:Bi,v8_3_4:Ui,validFormats:xd,validateRenderables:Hw,vertexGPUTemplate:pc,vertexGlTemplate:mc,warn:Ws,webworkerExt:ni,wordWrap:fg,wordWrapTaggedLines:cg,wrapModeToGlAddress:Nb}
+ __proto__:null,AbstractBitmapFont:Kg,AbstractRenderer:io,AbstractText:Sp,AbstractTextSystem:Ug,AccessibilitySystem:ph,AlphaMask:Xe,AlphaMaskPipe:Ym,AnimatedSprite:Vf,Application:wo,ApplicationInitHook:ao,Assets:cd,AssetsClass:ad,BLEND_TO_NPM:ya,BREAKING_SPACES:Vp,BREAKING_SPACES_SET:Kp,BREAK_AFTER_CHARS:Yp,BREAK_AFTER_CHARS_SET:Xp,BUFFER_TYPE:qv,BackgroundLoader:So,BackgroundSystem:zw,Batch:Ra,BatchGeometry:Xa,BatchTextureArray:Oa,BatchableGraphics:qc,BatchableHTMLText:vm,BatchableMesh:$f,BatchableSprite:xg,BatchableText:Pg,Batcher:Ua,BatcherPipe:Wm,BigPool:qs,BindGroup:ir,BindGroupSystem:ey,BitmapFont:xM,BitmapFontManager:sm,BlendModePipe:Lw,Bounds:as,BrowserAdapter:sn,Buffer:Ha,BufferImageSource:ts,BufferResource:V_,BufferUsage:Fa,CLEAR:qr,COLLAPSIBLE_SPACES:zp,COLLAPSIBLE_SPACES_SET:qp,Cache:bn,CanvasBatchAdaptor:Lm,CanvasColorMaskPipe:Jm,CanvasContextSystem:uw,CanvasGraphicsAdaptor:Ow,CanvasGraphicsContextSystem:Of,CanvasGraphicsPipe:Rf,CanvasLimitsSystem:fw,CanvasNineSliceSpritePipe:yM,CanvasObserver:Vn,CanvasPool:kp,CanvasPoolClass:Ip,CanvasRenderTargetAdaptor:Nv,CanvasRenderTargetSystem:Dv,CanvasRenderer:Kv,CanvasRendererTextSystem:Hg,CanvasSource:rn,CanvasStencilMaskPipe:nw,CanvasTextGenerator:Sg,CanvasTextMetrics:wg,CanvasTextPipe:Lg,CanvasTextSystem:$g,CanvasTextureSystem:Bv,CanvasTilingSpritePipe:sp,Circle:ra,Color:Fs,ColorMask:Qe,ColorMaskPipe:Zm,ColorMatrixFilter:rf,CompressedSource:gd,Container:Fe,CustomRenderPipe:gw,DEG_TO_RAD:mi,DOMAdapter:nn,DOMPipe:Bd,DefaultBatcher:Fc,DefaultShader:Gc,DynamicBitmapFont:qg,Ellipse:aa,EventBoundary:Xd,EventEmitter:di,EventSystem:Zd,EventsTicker:Fd,ExtensionType:ti,ExtractSystem:Xw,FederatedContainer:tf,FederatedEvent:zn,FederatedMouseEvent:Wd,FederatedPointerEvent:jd,FederatedWheelEvent:Kd,FillGradient:ul,FillPattern:wu,Filter:cr,FilterEffect:te,FilterPipe:df,FilterSystem:_f,FontStylePromiseCache:Sm,GCManagedHash:Wc,GCSystem:ov,GL_FORMATS:e_,GL_TARGETS:n_,GL_TYPES:h_,GPUTextureGpuData:sM,GenerateTextureSystem:ev,Geometry:Ka,GlBackBufferSystem:g_,GlBatchAdaptor:Gm,GlBuffer:Xv,GlBufferSystem:Qv,GlColorMaskSystem:w_,GlContextSystem:t_,GlEncoderSystem:__,GlGeometryGpuData:l_,GlGeometrySystem:d_,GlGraphicsAdaptor:jb,GlLimitsSystem:y_,GlMeshAdaptor:Kb,GlProgram:Ph,GlProgramData:q_,GlRenderTarget:E_,GlRenderTargetAdaptor:H_,GlRenderTargetSystem:$_,GlShaderSystem:ub,GlStateSystem:_b,GlStencilSystem:T_,GlTexture:yb,GlTextureSystem:Wb,GlUboSystem:U_,GlUniformGroupSystem:mb,GlobalResourceRegistry:js,GlobalUniformSystem:cv,GpuBatchAdaptor:Fm,GpuBlendModesToPixi:Wy,GpuBufferData:hy,GpuBufferSystem:oy,GpuColorMaskSystem:uy,GpuDeviceSystem:fy,GpuEncoderSystem:gy,GpuGraphicsAdaptor:rM,GpuGraphicsContext:Tl,GpuLimitsSystem:wy,GpuMeshAdapter:aM,GpuMipmapGenerator:tM,GpuProgram:qh,GpuRenderTarget:Ly,GpuRenderTargetAdaptor:Gy,GpuRenderTargetSystem:Uy,GpuShaderSystem:Hy,GpuStateSystem:jy,GpuStencilModesToPixi:A_,GpuStencilSystem:_y,GpuTextureSystem:nM,GpuUboSystem:Sy,GpuUniformBatchPipe:Iy,Graphics:Uf,GraphicsContext:Pu,GraphicsContextRenderData:Il,GraphicsContextSystem:Ol,GraphicsGpuData:Lf,GraphicsPath:Zl,GraphicsPipe:Gf,HTMLText:Pm,HTMLTextPipe:bm,HTMLTextRenderData:gm,HTMLTextStyle:lm,HTMLTextSystem:xm,HelloSystem:mv,ImageSource:an,InstructionSet:Ie,Loader:Bo,LoaderParserPriority:Sn,MaskEffectManager:ee,MaskEffectManagerClass:se,MaskFilter:Af,Matrix:yi,MeshGeometry:Hf,NEWLINES:$p,NEWLINES_SET:jp,NEWLINE_MATCH_REGEX:Qp,NEWLINE_SPLIT_REGEX:Jp,NOOP:$i,NineSliceGeometry:EM,NineSliceSprite:kM,NineSliceSpriteGpuData:SM,NineSliceSpritePipe:CM,ObservablePoint:oi,PI_2:pi,PassthroughFilter:lf,PipelineSystem:Py,PlaneGeometry:_M,Point:vi,Polygon:ua,Pool:Vs,PoolGroupClass:zs,QuadGeometry:fp,RAD_TO_DEG:gi,Rectangle:Li,RenderGroup:Ne,RenderGroupPipe:vw,RenderGroupSystem:Vw,RenderTarget:Mv,RenderTargetSystem:Rv,RenderTexture:Qw,RenderableGCSystem:vv,RendererInitHook:lo,RendererType:sr,ResizePlugin:fo,Resolver:Dn,RoundedRectangle:pa,STENCIL_MODES:Ma,SVGParser:fu,SchedulerSystem:dv,Shader:nr,ShaderStage:Wh,ShapePath:Jl,SharedRenderPipes:Iv,SharedSystems:Cv,Sprite:je,SpritePipe:Rw,Spritesheet:Fn,State:or,StencilMask:tn,StencilMaskPipe:rw,SystemRunner:Xr,Text:jg,TextStyle:Cg,Texture:ns,TextureGCSystem:bv,TextureMatrix:es,TexturePool:Re,TexturePoolClass:xe,TextureSource:Qi,TextureStyle:Xi,Ticker:pn,TickerListener:un,TickerPlugin:go,TilingSprite:Ep,TilingSpriteGpuData:_p,TilingSpritePipe:yp,TilingSpriteShader:up,Transform:qf,UNIFORM_TO_ARRAY_SETTERS:fb,UNIFORM_TO_SINGLE_SETTERS:db,UNIFORM_TYPES_MAP:Xh,UNIFORM_TYPES_VALUES:Yh,UPDATE_BLEND:2,UPDATE_COLOR:1,UPDATE_PRIORITY:cn,UPDATE_VISIBLE:4,UboBatch:cy,UboSystem:I_,UniformGroup:Zh,VERSION:ro,VideoSource:wn,ViewContainer:We,ViewSystem:Tv,ViewableBuffer:_a,WGSL_ALIGN_SIZE_DATA:by,WGSL_TO_STD40_SIZE:k_,WebGLRenderer:ty,WebGPURenderer:mM,WorkerManager:Ku,accessibilityTarget:gh,addBits:Ja,addMaskBounds:Ke,addMaskLocalBounds:ze,addProgramDefines:Eh,appendSVGPath:du,applyMatrix:gp,applyStyleParams:Db,assignWithIgnore:Le,autoDetectRenderer:ho,bgr2rgb:me,bitmapFontCachePlugin:Mo,bitmapFontTextParser:vo,bitmapFontXMLParser:_o,bitmapFontXMLStringParser:bo,blockDataMap:Ky,boundsPool:oe,browserExt:ni,buildAdaptiveBezier:Rl,buildAdaptiveQuadratic:Ll,buildArc:Bl,buildArcTo:Ul,buildArcToSvg:Kl,buildCircle:Yc,buildContextBatches:yl,buildEllipse:Xc,buildLine:sl,buildPixelLine:el,buildPolygon:rl,buildRectangle:ol,buildRoundedRectangle:Jc,buildSimpleUvs:jc,buildTriangle:al,buildUvs:$c,cacheAsTextureMixin:Ys,cacheTextureArray:To,calculatePathArea:uu,calculateProjection:kv,canUseNewCanvasBlendModes:Xf,canvasUtils:Jf,checkChildrenDidChange:be,checkDataUrl:Uo,checkExtension:Fo,checkForNestedPattern:cu,checkMaxIfStatementsInShader:Ta,childrenHelperMixin:Js,cleanArray:hv,cleanHash:nv,clearList:Dw,closePointEps:Qc,collapseNewlines:ng,collapseSpaces:eg,collectRenderablesMixin:Qs,color32BitToUniform:Pf,colorBit:Ec,colorBitGl:Ac,colorMatrixFilterFrag:ef,colorMatrixFilterWgsl:nf,compareModeToGlCompare:Lb,compileHighShader:lc,compileHighShaderGl:uc,compileHighShaderGlProgram:Mc,compileHighShaderGpuProgram:yc,compileHooks:Za,compileInputs:ic,compileOutputs:hc,compileShader:Y_,convertToList:vn,copySearchParams:Bn,createGlUploadCubeTextureResource:Tb,createGpuUploadCubeTextureResource:Xy,createIdFromString:vh,createStringVariations:Pn,createTexture:Lu,createUboElementsSTD40:O_,createUboElementsWGSL:yy,createUboSyncFunction:R_,createUboSyncFunctionSTD40:G_,createUboSyncFunctionWGSL:Ey,crossOrigin:td,cullingMixin:Hs,curveEps:1e-4,defaultFilterVert:sf,defaultValue:J_,definedProps:Ki,deprecation:Wi,detectAvif:Io,detectCompressed:Ld,detectDefaults:Oo,detectMp4:Po,detectOgv:No,detectVideoAlphaMode:gn,detectWebm:Lo,detectWebp:Do,determineCrossOrigin:sd,earcut:zr,effectsMixin:ne,ensureAttributes:i_,ensureIsBuffer:Wa,ensurePrecision:Ah,ensureTextOptions:Tp,executeInstructions:mw,extensions:ei,extractAttributesFromGlProgram:eb,extractAttributesFromGpuProgram:Fh,extractFontFamilies:Mm,extractStructAndGroups:Hh,extractSubpaths:lu,extractSvgUrlId:hu,fastCopy:ba,findMixin:he,fontStringFromTextStyle:_g,fragmentGPUTemplate:mc,fragmentGlTemplate:vc,generateArraySyncSTD40:D_,generateArraySyncWGSL:My,generateGpuLayoutGroups:$h,generateLayoutHash:jh,generateProgram:ab,generateShaderSyncCode:K_,generateTextureBatchBit:Ic,generateTextureBatchBitGl:xc,generateTextureMatrix:wl,generateUniformsSync:pb,getAdjustedBlendModeBlend:Ea,getAttributeInfoFromFormat:Lh,getBatchSamplersUniformGroup:Lc,getBitmapTextLayout:Yg,getCanvasBoundingBox:Lp,getCanvasFillStyle:yg,getCanvasTexture:Av,getCharacterGroups:og,getDefaultUniformValue:Jh,getFastGlobalBoundsMixin:ce,getFontCss:Tm,getFontFamilyName:zo,getGeometryBounds:$a,getGlTypeFromFormat:o_,getGlobalBounds:le,getGlobalMixin:we,getGlobalRenderableBounds:pf,getLocalBounds:ve,getMaxFragmentPrecision:Mh,getMaxMiterRatio:ku,getMaxTexturesPerBatch:Ia,getOrientationOfPoints:Zc,getPo2TextureFromSource:Gg,getResolutionOfUrl:Nu,getSVGUrl:Cm,getSupportedCompressedTextureFormats:vd,getSupportedGPUCompressedTextureFormats:wd,getSupportedGlCompressedTextureFormats:md,getSupportedTextureFormats:yd,getTemporaryCanvasFromImage:Im,getTestContext:yh,getTextureBatchBindGroup:ma,getUboData:nb,getUniformData:hb,getUrlExtension:Gn,glUploadBufferImageResource:Mb,glUploadCompressedTextureResource:Ab,glUploadImageResource:Cb,glUploadVideoResource:xb,globalUniformsBit:_c,globalUniformsBitGl:bc,gpuUploadBufferImageResource:Vy,gpuUploadCompressedTextureResource:qy,gpuUploadImageResource:Jy,gpuUploadVideoResource:Qy,groupD8:Ri,hasTagMarkup:Fp,hasTagStyles:Up,injectBits:rc,insertVersion:Sh,isBreakAfterChar:sg,isBreakingSpace:tg,isCollapsibleSpace:ig,isMobile:dh,isNewline:Zp,isPow2:Vi,isRenderingToScreen:Ov,isSafari:ym,isSingleItem:Nn,isWebGLSupported:so,isWebGPUSupported:eo,ktxTranscoderUrls:Sd,loadBitmapFont:Eo,loadEnvironmentExtensions:ur,loadFontAsBase64:Em,loadFontCSS:Am,loadImageBitmap:Yu,loadJson:Ho,loadKTX2:xd,loadKTX2onWorker:Od,loadSVGImage:km,loadSvg:Du,loadTextures:Xu,loadTxt:Wo,loadVideoTextures:nd,loadWebFont:Xo,localUniformBit:ep,localUniformBitGl:hp,localUniformBitGroup2:np,logProgramError:ob,mapCanvasBlendModesToPixi:aw,mapFormatToGlFormat:Gb,mapFormatToGlInternalFormat:Bb,mapFormatToGlType:Ub,mapGlToVertexFormat:sb,mapType:ib,mapViewDimensionToGlTarget:Fb,mapWebGLBlendModesToPixi:wb,maskFrag:bf,maskVert:yf,maskWgsl:Mf,matrixPool:re,measureHtmlText:mm,measureMixin:Me,measureTaggedText:cg,mipmapScaleModeToGlFilter:Pb,multiplyColors:ge,multiplyHexColors:fe,nextPow2:ji,nonCompressedFormats:_d,normalizeExtensionPriority:si,onRenderMixin:Ee,parseSVGDefinitions:su,parseSVGFloatAttribute:iu,parseSVGPath:na,parseSVGStyle:ou,parseTaggedText:Wp,passthroughFrag:of,passthroughWgsl:af,path:xn,preloadVideo:id,removeItems:Xs,removeStructAndGroupDuplicates:Vh,resolveCharacters:Zg,resolveCompressedTextureUrl:Pd,resolveJsonUrl:rd,resolveTextureUrl:hd,resourceToTexture:En,roundPixelsBit:Rc,roundPixelsBitGl:Pc,roundedShapeArc:zl,roundedShapeQuadraticCurve:ql,sayHello:pv,scaleModeToGlFilter:Rb,setPositions:pp,setProgramName:Ih,setUvs:mp,shapeBuilders:vl,sortMixin:Ae,spritesheetAsset:$n,squaredDistanceToLineSegment:ca,stripVersion:kh,styleAttributes:ru,testImageFormat:Co,testVideoFormat:Ro,textStyleToCSS:em,textureBit:$m,textureBitGl:jm,textureFrom:An,tilingBit:rp,tilingBitGl:op,toFillStyle:Cu,toLocalGlobalMixin:Te,toStrokeStyle:Iu,tokenize:rg,tokenizeTaggedRuns:ug,transformVertices:Vc,triangulateWithHoles:nl,trimRight:hg,uboSyncFunctionsSTD40:N_,uboSyncFunctionsWGSL:L_,uid:Gi,uniformParsers:x_,unsafeEvalSupported:fr,updateQuadBounds:hs,updateRenderGroupTransform:Uw,updateRenderGroupTransforms:Bw,updateTextBounds:kg,updateTransformAndChildren:Fw,updateTransformBackwards:de,v8_0_0:Ui,v8_3_4:Fi,validFormats:Rd,validateRenderables:Ww,vertexGPUTemplate:gc,vertexGlTemplate:wc,warn:$s,webworkerExt:hi,wordWrap:pg,wordWrapTaggedLines:lg,wrapModeToGlAddress:Nb}
LocalDataManager 1 hunks, 1 statements
- zt(jA,"LocalDataManager"),qt(jA,"encryptionKey",null),qt(jA,"BASE_KEY","EF2_DEFAULT_KEY_2025"),qt(jA,"CREDS_LF_KEY",jA.getKey("aC")),qt(jA,"CREDS_LS_KEY","EF2_ACB"),qt(jA,"CREDS_NATIVE_KEY","ef2_account_creds"),qt(jA,"KEY_GAME_OVER",jA.getKey("gO")),qt(jA,"KEY_RALLY_POINTS",jA.getKey("rP")),qt(jA,"KEY_DIALOGUE_COUNT",jA.getKey("dC")),qt(jA,"BASE","EF2_STORAGE_"),qt(jA,"SALT","e1z7sf2h"),qt(jA,"KEYS",{
+ qt(VA,"LocalDataManager"),Yt(VA,"encryptionKey",null),Yt(VA,"BASE_KEY","EF2_DEFAULT_KEY_2025"),Yt(VA,"CREDS_LF_KEY",VA.getKey("aC")),Yt(VA,"CREDS_LS_KEY","EF2_ACB"),Yt(VA,"CREDS_NATIVE_KEY","ef2_account_creds"),Yt(VA,"KEY_GAME_OVER",VA.getKey("gO")),Yt(VA,"KEY_RALLY_POINTS",VA.getKey("rP")),Yt(VA,"KEY_DIALOGUE_COUNT",VA.getKey("dC")),Yt(VA,"KEY_AUTO_POWER_SAVE",VA.getKey("aPS")),Yt(VA,"BASE","EF2_STORAGE_"),Yt(VA,"SALT","e1z7sf2h"),Yt(VA,"KEYS",{
VersionManager 1 hunks, 1 statements
- zt(qA,"VersionManager"),qt(qA,"gameId","ef2"),qt(qA,"appVersion","1.13.89");
+ qt(YA,"VersionManager"),Yt(YA,"gameId","ef2"),Yt(YA,"appVersion","1.14.2");
ServerErrorManager 1 hunks, 1 statements
- "INVALID_USER_TYPE"==t&&(i.includes("/api/user/login")||i.includes("/api/user/loginByPlatform"))||1!=this.isAttestedError&&1!=this.isServerParkingError&&1!=this.isNoKeyError&&1!=this.isTsError&&1!=this.isDuplicateLoginError&&1!=this.isLtError&&1!=this.isAppVersionError&&1!=this.isInvalidUserTypeError&&("CLIENT_NOT_ATTESTED"==t?(this.isAttestedError=!0,EG.getInstance().showDelay(t)):"Server is parking"==t||"SERVER_PARKING"==t?(this.isServerParkingError=!0,LD.getInstance().isWhiteUser=!1,_G.getInstance().showDelay(this.onServerParkingErrorEnd.bind(this))):"NO_KEY"==t||"NO_SESSION"==t||"DECRYPT_ERROR"==t||"DECODE_ERROR"==t||"INVALID_BODY"==t?(this.isNoKeyError=!0,OG.getInstance().onNoSession(this.onNoKeyErrorEnd.bind(this))):"DUPLICATE_TS"==t||"TimeStamp"==t||"TS_NOT_FOUND"==t?(this.isTsError=!0,mN.syncWithServerDelay(this.onTsErrorEnd.bind(this))):"DUPLICATE_LOGIN"==t||"DUPLICATE_SESSION"==t?(this.isDuplicateLoginError=!0,EG.getInstance().showDelay(t)):"LT_ERROR"==t?(this.isLtError=!0,EG.getInstance().showDelay(t)):"UNDER_MIN_APP_VERSION"==t||"OVER_MAX_APP_VERSION"==t?(this.isAppVersionError=!0,EG.getInstance().showDelay(t)):"INVALID_USER_TYPE"==t&&(this.isInvalidUserTypeError=!0,EG.getInstance().showDelay(t)))}
+ "INVALID_USER_TYPE"==t&&(i.includes("/api/user/login")||i.includes("/api/user/loginByPlatform"))||1!=this.isAttestedError&&1!=this.isServerParkingError&&1!=this.isNoKeyError&&1!=this.isTsError&&1!=this.isDuplicateLoginError&&1!=this.isLtError&&1!=this.isAppVersionError&&1!=this.isInvalidUserTypeError&&("CLIENT_NOT_ATTESTED"==t?(this.isAttestedError=!0,NG.getInstance().showDelay(t)):"Server is parking"==t||"SERVER_PARKING"==t?(this.isServerParkingError=!0,KD.getInstance().isWhiteUser=!1,OG.getInstance().showDelay(this.onServerParkingErrorEnd.bind(this))):"NO_KEY"==t||"NO_SESSION"==t||"DECRYPT_ERROR"==t||"DECODE_ERROR"==t||"INVALID_BODY"==t?(this.isNoKeyError=!0,$G.getInstance().onNoSession(this.onNoKeyErrorEnd.bind(this))):"DUPLICATE_TS"==t||"TimeStamp"==t||"TS_NOT_FOUND"==t?(this.isTsError=!0,_P.syncWithServerDelay(this.onTsErrorEnd.bind(this))):"DUPLICATE_LOGIN"==t||"DUPLICATE_SESSION"==t?(this.isDuplicateLoginError=!0,NG.getInstance().showDelay(t)):"LT_ERROR"==t?(this.isLtError=!0,NG.getInstance().showDelay(t)):"REQUIRE_APP_UPDATE"==t?(this.isAppVersionError=!0,DG.getInstance().showDelay()):"UNDER_MIN_APP_VERSION"==t||"OVER_MAX_APP_VERSION"==t?(this.isAppVersionError=!0,NG.getInstance().showDelay(t)):"INVALID_USER_TYPE"==t&&(this.isInvalidUserTypeError=!0,NG.getInstance().showDelay(t)))}
AutoTogglePill 1 hunks, 1 statements
- ...wL.DEFAULT_FONT_OPTION_15,fontSize:t.FONT_SIZE,lineHeight:t.PILL_H}
+ ...bL.DEFAULT_FONT_OPTION_15,fontSize:t.FONT_SIZE,lineHeight:t.PILL_H}
WyvernRider1 1 hunks, 1 statements
- super.initializeData(),this.className=ax.WyvernRider1,this.sheetName="Game1",this.hitHeight=20,this.radius=7,this.unitType=ex.RANGE,this.weaponClass=kj.WyvernRiderThrowingKnife1,this.idleFrames=new nH(0,15),this.moveFrames=new nH(16,29),this.attackFrames=new nH(30,49),this.skillFrames=new nH(50,105),this.dieFrames=new nH(106,117),this.objAtk={
+ super.initializeData(),this.className=ux.WyvernRider1,this.sheetName="Game1",this.hitHeight=20,this.uiTopOffset=5,this.radius=7,this.unitType=rx.RANGE,this.weaponClass=jj.WyvernRiderThrowingKnife1,this.idleFrames=new _H(0,15),this.moveFrames=new _H(16,29),this.attackFrames=new _H(30,49),this.skillFrames=new _H(50,105),this.dieFrames=new _H(106,117),this.objAtk={
WingKnight1 1 hunks, 1 statements
- super.initializeData(),this.className=ax.WingKnight1,this.sheetName="Game1",this.unitType=ex.MELEE,this.radius=7,this.hitHeight=29,this.idleFrames=new nH(0,35),this.moveFrames=new nH(36,63),this.attackFrames=new nH(64,112),this.skillFrames=new nH(113,188),this.dieFrames=new nH(189,204),this.objAtk={
+ super.initializeData(),this.className=ux.WingKnight1,this.sheetName="Game1",this.unitType=rx.MELEE,this.radius=7,this.hitHeight=29,this.uiTopOffset=18,this.idleFrames=new _H(0,35),this.moveFrames=new _H(36,63),this.attackFrames=new _H(64,112),this.skillFrames=new _H(113,188),this.dieFrames=new _H(189,204),this.objAtk={
Druid1 1 hunks, 1 statements
- super.initializeData(),this.sheetName="Game1",this.className=ax.Druid1,this.radius=7,this.hitHeight=27,this.uiTopOffset=15,this.unitType=ex.RANGE,this.weaponClass=kj.DruidTangle1,this.idleFrames=new nH(0,31),this.moveFrames=new nH(32,72),this.attackFrames=new nH(73,131),this.skillFrames=new nH(132,191),this.dieFrames=new nH(192,207),this.objAtk={
+ super.initializeData(),this.sheetName="Game1",this.className=ux.Druid1,this.radius=7,this.hitHeight=27,this.uiTopOffset=11,this.unitType=rx.RANGE,this.weaponClass=jj.DruidTangle1,this.idleFrames=new _H(0,31),this.moveFrames=new _H(32,72),this.attackFrames=new _H(73,131),this.skillFrames=new _H(132,191),this.dieFrames=new _H(192,207),this.objAtk={
Succubus1 1 hunks, 1 statements
- super.initializeData(),this.className=ax.Succubus1,this.sheetName="Game1",this.textureName="Succubus2",this.unitType=ex.RANGE,this.weaponClass=kj.SuccubusWeapon,this.radius=7,this.hitHeight=36,this.uiTopOffset=16,this.idleFrames=new nH(0,34),this.moveFrames=new nH(35,69),this.attackFrames=new nH(70,99),this.skillFrames=new nH(100,147),this.dieFrames=new nH(148,159),this.objAtk={
+ super.initializeData(),this.className=ux.Succubus1,this.sheetName="Game1",this.textureName="Succubus2",this.unitType=rx.RANGE,this.weaponClass=jj.SuccubusWeapon,this.radius=7,this.hitHeight=36,this.uiTopOffset=8,this.idleFrames=new _H(0,34),this.moveFrames=new _H(35,69),this.attackFrames=new _H(70,99),this.skillFrames=new _H(100,147),this.dieFrames=new _H(148,159),this.objAtk={
Abyss1 1 hunks, 1 statements
- super.initializeData(),this.className=ax.Abyss1,this.sheetName="Game1",this.unitType=ex.RANGE,this.radius=7,this.hitHeight=27,this.idleFrames=new nH(0,39),this.moveFrames=new nH(40,52),this.attackFrames=new nH(53,82),this.skillFrames=new nH(83,132),this.dieFrames=new nH(133,167),this.objAtk={
+ super.initializeData(),this.className=ux.Abyss1,this.sheetName="Game1",this.unitType=rx.RANGE,this.radius=7,this.hitHeight=27,this.uiTopOffset=5,this.idleFrames=new _H(0,39),this.moveFrames=new _H(40,52),this.attackFrames=new _H(53,82),this.skillFrames=new _H(83,132),this.dieFrames=new _H(133,167),this.objAtk={
Sylphid1 1 hunks, 1 statements
- super.initializeData(),this.className=ax.Sylphid1,this.sheetName="Game1",this.unitType=ex.RANGE,this.radius=7,this.hitHeight=27,this.idleFrames=new nH(0,29),this.moveFrames=new nH(30,59),this.attackFrames=new nH(60,89),this.skillFrames=new nH(90,139),this.dieFrames=new nH(140,164),this.objAtk={
+ super.initializeData(),this.className=ux.Sylphid1,this.sheetName="Game1",this.unitType=rx.RANGE,this.radius=7,this.hitHeight=27,this.uiTopOffset=16,this.idleFrames=new _H(0,29),this.moveFrames=new _H(30,59),this.attackFrames=new _H(60,89),this.skillFrames=new _H(90,139),this.dieFrames=new _H(140,164),this.objAtk={
Sr 1 hunks, 1 statements
- ...t,...rit(i)}
+ ...t,...yit(i)}
Bo 1 hunks, 1 statements
- ),get(s.method)&&D3.analytics.track(i.error?4001===i.error.code?"sdk_action_rejected":"sdk_action_failed":"sdk_action_succeeded",{
+ ),xet(s.method)&&J3.analytics.track(i.error?4001===i.error.code?"sdk_action_rejected":"sdk_action_failed":"sdk_action_succeeded",{
Ko 1 hunks, 1 statements
- ),t.remote.state.isOriginator&&i.method&&get(i.method)&&D3.analytics.track("sdk_action_requested",{
+ ),t.remote.state.isOriginator&&i.method&&xet(i.method)&&J3.analytics.track("sdk_action_requested",{
Es 1 hunks, 1 statements
- const i=this.state.isOriginator&&t.method&&get(t.method);
+ const i=this.state.isOriginator&&t.method&&xet(t.method);
Ma 1 hunks, 1 statements
- ..._ht,coercer:zt((t,i)=>xnt(t,bht)?_ht.coercer(yht(t,i),i):_ht.coercer(t,i),"coercer")}
+ ...Nht,coercer:qt((t,i)=>Knt(t,Lht)?Nht.coercer(Dht(t,i),i):Nht.coercer(t,i),"coercer")}
Yp 1 hunks, 1 statements
- const e=126,n=[71,73,70,56,55,97,...i,246,0,0,255,255,255,...ift(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,...mft(381,0),44,0,0,0,0,...i,0,7],h=Math.floor(s.length/e);
SuiStandardProvider 1 hunks, 1 statements
- namespace:dyt.NameSpaceKeyEip155,addresses:i,methods:[...gyt.Eip55Methods],extra:s}
+ namespace:Cyt.NameSpaceKeyEip155,addresses:i,methods:[...Oyt.Eip55Methods],extra:s}
AppReadyEvent 1 hunks, 1 statements
- return GMt||(GMt=[...xMt]),GMt}
+ return QMt||(QMt=[...KMt]),QMt}
SolProvider 1 hunks, 1 statements
- namespace:WAt.NameSpaceKeySOL,addresses:i,methods:[...KAt.SOLANAMethods],extra:s}
+ namespace:eSt.NameSpaceKeySOL,addresses:i,methods:[...oSt.SOLANAMethods],extra:s}
OkxwalletInjectConnector 1 hunks, 1 statements
- namespace:bSt.NameSpaceKeyBtc,addresses:i,methods:[...MSt.BtcMethods],extra:s}
+ namespace:LSt.NameSpaceKeyBtc,addresses:i,methods:[...GSt.BtcMethods],extra:s}
TcRootElement 1 hunks, 1 statements
- return mDt()||(t.push(new Rft.OKXAppConnector),t.push(new Rft.OKXWalletAppConnector)),pDt()&&t.push(new Rft.OkxwalletInjectConnector),t.push(...vDt()),t}
+ return xDt()||(t.push(new zft.OKXAppConnector),t.push(new zft.OKXWalletAppConnector)),kDt()&&t.push(new zft.OkxwalletInjectConnector),t.push(...PDt()),t}
WalletSelectPopup 1 hunks, 1 statements
- ...wL.ERROR_POPUP_LABEL_OPTION,fontSize:18}
+ ...bL.ERROR_POPUP_LABEL_OPTION,fontSize:18}
HeroDetailPopup 1 hunks, 1 statements
- i.atkRange}
+ Math.round(i.buffedAtkRange)}
TreasureBookPopup 1 hunks, 1 statements
- ++h)i=t.bookList[h],i.grade>=7||s.push(i.kindNum);
+ ++h)i=t.bookList[h],s.push(i.kindNum);
TreasureInventorySubView 1 hunks, 1 statements
- const t=[...$x.getInstance().ownedList];
+ const t=[...Kx.getInstance().ownedList];
TreasureItemRenderer 1 hunks, 1 statements
- return!(!i.loaded||t.limitBreak>=i.getMaxLevelByTrans(t.trans||0)||(t.enhance||0)<t.maxLv)}
+ return!(!i.loaded||t.limitBreak>=i.getMaxLevelByTrans(t.trans||0,t.grade||0)||(t.enhance||0)<t.maxLv)}
PetListSubView 1 hunks, 1 statements
- const t=[...ux.getInstance().list].sort((t,i)=>i.grade!==t.grade?i.grade-t.grade:i.piece-t.piece),i=t.map(t=>t.kindNum);
+ const t=[...px.getInstance().list].sort((t,i)=>i.grade!==t.grade?i.grade-t.grade:i.piece-t.piece),i=t.map(t=>t.kindNum);
TowerReadyPopup 1 hunks, 1 statements
- this.floorVO&&Q0t.getInstance().open(this.floorVO.floor,this.applyRecommendedDeck.bind(this))}
+ this.floorVO&&r1t.getInstance().open(this.floorVO.floor,this.applyRecommendedDeck.bind(this),this.floorVO.battleVO)}
FavoritePetSubView 1 hunks, 1 statements
- const t=[...ED.getInstance().favoritePets].sort((t,i)=>{
+ const t=[...ND.getInstance().favoritePets].sort((t,i)=>{
TreasureSubView 1 hunks, 1 statements
- const t=[...$x.getInstance().equipedList];
+ const t=[...Kx.getInstance().equipedList];
GuildBarracksRaceView 1 hunks, 1 statements
- ...wL.DEFAULT_OUTLINE_FONT_OPTION_16,fontSize:i}
+ ...bL.DEFAULT_OUTLINE_FONT_OPTION_16,fontSize:i}
GuildRaidBattleReadyPopup 1 hunks, 1 statements
- ...wL.DEFAULT_OUTLINE_FONT_OPTION_16,fontSize:13}
+ ...bL.DEFAULT_OUTLINE_FONT_OPTION_16,fontSize:13}
GuildWarHistoryItemRenderer 1 hunks, 1 statements
- ...wL.DEFAULT_OUTLINE_FONT_OPTION_16,fontSize:i}
+ ...bL.DEFAULT_OUTLINE_FONT_OPTION_16,fontSize:i}
GuildWarTournamentRewardGuidePopup 1 hunks, 1 statements
- let e=[...RL.rewardBattleList.sort((t,i)=>i.kindNum-t.kindNum)].concat([...RL.rewardBattleLostList.sort((t,i)=>i.kindNum-t.kindNum)]);
+ let e=[...$L.rewardBattleList.sort((t,i)=>i.kindNum-t.kindNum)].concat([...$L.rewardBattleLostList.sort((t,i)=>i.kindNum-t.kindNum)]);
BattleController 1 hunks, 1 statements
- this.skippedWave>0&&!this.shownDialogueWaves.has(this.skippedWave)&&(t.push(...aVt.getInstance().getByWave(this.skippedWave)),this.shownDialogueWaves.add(this.skippedWave)),this.shownDialogueWaves.has(OD.wave)||(t.push(...aVt.getInstance().getByWave(OD.wave)),this.shownDialogueWaves.add(OD.wave)),t.length>0&&Ahi.getInstance().showDialogues(t)}
+ this.skippedWave>0&&!this.shownDialogueWaves.has(this.skippedWave)&&(t.push(...EVt.getInstance().getByWave(this.skippedWave)),this.shownDialogueWaves.add(this.skippedWave)),this.shownDialogueWaves.has(HD.wave)||(t.push(...EVt.getInstance().getByWave(HD.wave)),this.shownDialogueWaves.add(HD.wave)),t.length>0&&Ghi.getInstance().showDialogues(t)}
GuildWarCombatLogItemRenderer 1 hunks, 1 statements
- ...wL.DEFAULT_FONT_OPTION_15,fontSize:14}
+ ...bL.DEFAULT_FONT_OPTION_15,fontSize:14}
GuildWarMemberStatusItemRenderer 1 hunks, 1 statements
- ...wL.DEFAULT_FONT_OPTION_15,fontSize:14}
+ ...bL.DEFAULT_FONT_OPTION_15,fontSize:14}
GuildWarTargetMarkerItemRenderer 1 hunks, 1 statements
- ...wL.DEFAULT_FONT_OPTION_15,fontSize:14}
+ ...bL.DEFAULT_FONT_OPTION_15,fontSize:14}
ArcheryStuckArrow 1 hunks, 1 statements
- __proto__:null,ConquestMainPopup:Fgi}
+ __proto__:null,ConquestPopup:Omi}
Delay 1 hunks, 1 statements
- ...Abi(),[i]:s}
+ ...pyi(),[i]:s}
NetworkTimeout 1 hunks, 1 statements
- ...qbi,...i}
+ ...Byi,...i}
RecaptchaVerifier 1 hunks, 1 statements
- ...kSi}
+ ..._Ti}
BrowserPopupRedirectResolver 1 hunks, 1 statements
- ...NTi,width:e.toString(),height:n.toString(),top:h,left:r}
+ ...ECi,width:e.toString(),height:n.toString(),top:h,left:r}