";
if(number > 0){
html = html.replace("{Number}",fy("task.added") + number);
}else{
html = html.replace("fsu-task","fsu-task no");
html = html.replace("{Number}",fy("task.noadded"));
}
if(text == "、"){
text = "";
}
let reward = text;
reward = reward.replace("组合包",fy("task.pack"));
reward = reward.replace("球员",fy("task.player"));
html = html.replace("{reward}",reward);
return html;
};
//加载loading界面
events.showLoader = () => {
document.querySelector(".ut-click-shield").classList.add("showing","fsu-loading");
document.querySelector(".loaderIcon").style.display = "block";
};
//隐藏loading界面
events.hideLoader = () => {
document.querySelector(".ut-click-shield").classList.remove("showing","fsu-loading");
document.querySelector(".loaderIcon").style.display = "none";
if(info.run.template){
info.run.template = false;
isPhone() ? cntlr.current().getView()._fsuSquad.setInteractionState(1) : cntlr.right().getView()._fsuSquad.setInteractionState(1);
}
if(info.run.losauction){
info.run.losauction = false;
if(isPhone()){
events.notice("notice.phoneloas",0)
}
}
if(info.run.bulkbuy){
info.run.bulkbuy = false;
}
events.changeLoadingText("loadingclose.text");
};
//本地化文本显示程序
const fy = function(p){
let t = "";
if(Array.isArray(p)){
let copyP = _.cloneDeep(p);
t = info.localization[copyP.shift()][info.language];
let s = copyP.slice();
for (let n in s) {
t = t.replace(`%${Number(n) + 1}`,`${s[n]}`);
}
}else if(p.indexOf("{") !== -1){
t = p;
let pa = p.match(/{(.*?)}/g);
for (let i of pa) {
let pf = i.match(/{(.*?)}/)[1];
if(info.localization.hasOwnProperty(pf)){
t = t.replace(i,info.localization[pf][info.language]);
}
}
}else{
t = info.localization.hasOwnProperty(p) ? info.localization[p][info.language] : p;
}
return t;
}
//本地化文本内容
info.localization = {
"price.btntext":["查询价格","查詢價格","Check Price"],
"price.formatno":["无数据","沒有數據","No Data"],
"price.formatcompany":["万","萬","ten thousand"],
"price.now":["球员低价","最低價格","Low Price"],
"price.low":["评分低价","評分最低價格","Rating Price"],
"price.last":["购买价格","購入價格","Bought Price"],
"duplicate.swap":["可发送俱乐部","可以送到球會","Can be Sent to Club"],
"duplicate.not":["队内不可交易","球會球員無法交易","Club Players are Untradeable"],
"duplicate.yes":["队内可交易","球會球員可交易","Club Players are Tradable"],
"duplicate.nodata":["无队内数据","沒有球員數據","No Club Players Data"],
"duplicate.lowprice":["评分低价:","評分最低價格:","Rating Price "],
"top.readme":["【FSU】插件使用说明","【FSU】插件使用說明","【FSU】Plugin Instructions"],
"top.upgrade":["有新版FSU插件可升级","有新版本的FSU插件可更新","There is a new version of the FSU plugin that can be upgraded"],
"notice.upgradefailed":["查询新版本失败","查詢新版本失敗","Query new version failed"],
"notice.upgradeconfirm":["有新版本点击顶部链接查看","有新版本點擊頂部鏈接查看","There is a new version, click the top link to view"],
"notice.uasreset":["已重新载入列表 请重新进入查看","已重新載入列表 請重新進入查看","The list has been reloaded, please re-enter to view"],
"notice.priceloading":["开始读取价格数据 请稍等","開始讀取價格數據 請稍等","Start reading price data, please wait"],
"notice.loaderror":["读取数据失败 请检查网络","讀取數據失敗 請檢查網絡","Failed to read data, please check the network"],
"notice.succeeded":["FSU插件加载成功","FSU插件載入成功","FSU plugin loaded successfully"],
"notice.duplicateloading":["开始读取重复球员数据 请稍等","開始讀取重複球員數據 請稍等","Start reading duplicate player data, please wait"],
"notice.quicksearch":["使用快捷添加 直接沿用上次配置搜索球员","使用快捷增加球員 直接沿用上次配置搜索球員","Use the shortcut to add, directly follow the last configuration to search for players"],
"notice.appointloading":["开始读取指定条件球员 请稍等","開始讀取指定條件球員 請稍等","Start reading the specified condition player, please wait a moment"],
"notice.noduplicate":["已无重复球员","已經沒有重複球員","no duplicate player"],
"notice.quickauction":["球员将按照最低售价作为即买价挂出","球員將按最低價格列在轉會市場上","Players will be listed at the lowest selling price as an immediate purchase price"],
"task.player":["球员","球員","Player"],
"task.pack":["组合包","組合包","Pack"],
"task.added":["今日新增:","今日新增:","Added today "],
"task.noadded":["今日无新增","今日沒有新增","No new additions today"],
"task.new":["新","新","New"],
"task.expire":["即将到期","即將過期","Expiring"],
"task.nodata":["无数据请过段时间重新进入WEBAPP再查看","沒有數據請過段時間重新進入WEBAPP再查看","No data, please re-enter WEBAPP after a while to check"],
"sbc.price":["造价预估:","製作價格:","Cost estimate:"],
"sbc.topprice":["预估造价","製作價格","Estimate"],
"sbc.topsquad":["阵容价值","球隊價格","Squad"],
"sbc.like":["值得做:","贊成:","Thumbs Up:"],
"sbc.dislike":["不值得:","反對:","Thumbs Down:"],
"sbc.consult":["抄作业","參考方案","See Plan"],
"sbc.count":["算评分","計算評分","Calculate Score"],
"sbc.duplicates":["重复球员名单","重複球員名單","Duplicate Players List"],
"sbc.qucikdupes":["重","重","D"],
"sbc.appoint":["指定条件球员名单","指定條件球員名單","Specified conditions Player list"],
"sbc.addduplicate":["添加重复球员","新增重複球員","Add Duplicate Players"],
"sbc.swapduplicate":["替换为重复球员","交換為重複球員","Swap Duplicate Players"],
"sbc.notduplicate":["无重复球员","沒有重複球員","No Duplicate Players"],
"sbc.addquick":["快捷添加球员","快速新增球員","Quick Add Player"],
"sbc.swapquick":["快捷替换球员","快速交換球員","Quick Swap Player"],
"sbc.watchplayer":["查看球员","查看球員","Watch Player"],
"uasreset.btntext":["重载名单","重新載入名單","Reload List"],
"sbc.filtert":["筛选","篩選","Filter"],
"sbc.filter0":["全部","全部","All"],
"sbc.filter1":["新增","新增","New"],
"sbc.filter2":["临期","即期","Expiring"],
"sbc.filter3":["高评价","高評價","Approval"],
"loadingclose.text":["数据载入 如卡顿点此关闭","數據載入中 如長時間未響應 請點擊此處關閉","If you encounter stuck, click here to close"],
"quicklist.gotofutbin":["前往FUTBIN查看","前往FUTBIN查看","Go to FUTBIN"],
"quicklist.auction":["按低价快速拍卖","使用最低價格列入轉會","Quick Auction at Low Price"],
"pack.promo":["特殊球员","特殊球員","PROMO"],
"emptylist.t":["处理后无符合条件球员","處理後無符合條件球員","No eligible players after processing"],
"emptylist.c":["请改变条件或翻页查看","請改變條件或翻頁查看","Please change the criteria or flip the page to view"],
"set.title":["FSU设置","FSU設定","FSU Settings"],
"set.card.title":["球员卡信息","球員卡資訊","Player Card Information"],
"set.card.pos":["额外位置","額外位置","Extra Position"],
"set.card.price":["球员价格","球員價格","Player Price"],
"set.card.other":["其他属性","其他屬性","Other Attributes"],
"set.card.club":["俱乐部内球员","俱樂部內球員","Club Players"],
"set.card.low":["评分低价","評分低價","Low Rating Price"],
"set.sbc.title":["SBC操作","SBC 操作","SBC Operations"],
"set.sbc.top":["阵容顶部按钮","陣容頂部按鈕","Top Buttons"],
"set.sbc.right":["阵容右侧按钮","陣容右側按鈕","Right-side Buttons"],
"set.sbc.quick":["快捷添加球员","快速添加球員","Quick Add Players"],
"set.sbc.duplicate":["重复球员填充","重複球員填充","Fill with Duplicate Players"],
"set.sbc.records":["选项记录","選項記錄","Option Records"],
"set.sbc.input":["信息输入检索","資訊輸入檢索","Information Input Search"],
"set.info.title":["信息展示","資訊展示","Information Display"],
"set.info.obj":["目标顶部显示","目標頂部顯示","Objective top display"],
"set.info.sbc":["SBC顶部显示","SBC頂部顯示","SBC top display"],
"set.info.sbcf":["SBC筛选","SBC篩選","SBC Filters"],
"set.info.sbcs":["SBC子任务","SBC子任務","SBC Subtasks"],
"set.info.pack":["球员包可开球员","球員包可開球員","Pack PROMO"],
"set.info.squad":["阵容价值","陣容價值","Squad Value"],
"set.style.title":["球员卡信息样式","球員卡資訊樣式","Player Card Information Style"],
"set.style.new":["随品质变化","隨品質變化","Varies with Quality"],
"set.style.old":["纯色样式","純色樣式","Solid Color Style"],
"set.player.title":["选中球员操作","選中球員操作","Select Player Action"],
"set.player.auction":["按低价快速拍卖","按低價快速拍賣","Quick Auction at Low Price"],
"set.player.futbin":["前往FUTBIN查看","前往FUTBIN查看","Go to FUTBIN for Details"],
"quicklist.getprice":["查询拍卖低价","查詢拍賣低價","Search for Auction Price"],
"quicklist.getpricey":["刷新拍卖低价","重新整理拍賣低價","Refresh Auction Price"],
"set.player.getprice":["查询拍卖低价","查詢拍賣低價","Search for Auction Price"],
"quicklist.getpricelt":["最低价","最低價","Lowest price"],
"quicklist.getpriceload":["读取中","讀取中","Loading"],
"sbc.swaprating":["替换为同评分","替換為同評分","Replace with the same rating"],
"sbc.squadfill":["SBC方案填充","SBC方案填充","SBC squad autofill"],
"notice.templateload":["读取SBC方案并比价中 请稍后","讀取SBC方案並比價中 請稍後","Reading SBC squad and comparing prices. Please wait."],
"notice.templateerror":["阵容保存失败 请重新尝试","陣容儲存失敗 請重新嘗試","Failed to save the squad. Please try again."],
"notice.templatesuccess":["阵容填充成功","陣容填充成功","Squad Filled Successfully"],
"notice.templatezero":["无可加载方案 请稍后再试","無可載入的方案 請稍後再試","Squad failed to save, please try again"],
"set.sbc.template":["SBC方案填充","SBC方案填充","SBC squad autofill"],
"notice.marketsetmax":["已修改优化搜索信息可直接搜索 如无结果请返回调整参数","已修改優化搜尋資訊,可直接搜尋。如無結果,請返回調整參數。","Optimizations have been made to the search information. You can now search directly. If there are no results, please return and adjust the parameters."],
"set.sbc.market":["假想球员拍卖搜索优化","假想球员拍賣搜尋優化","Fantasy Player Auction Search Optimization"],
"notice.auctionsuccess":["%1 挂牌 %2 成功","%1 掛牌 %2 成功","%1 listed %2 successfully."],
"notice.auctionnoplayer":["%1 没有找到球员","%1 沒有找到球員","%1 player not found."],
"notice.auctionlimits":["%1 FUTBIN价格超出球员限价","%1 FUTBIN價格超出球員限價","The FUTBIN price for %1 exceeds player limit."],
"notice.auctionmax":["已达到拍卖行上限","已達到拍賣行上限","Auction house limit reached."],
"losa.all":["全选","全選","Select All"],
"losa.select":["已选球员","已選球員","Selected"],
"losa.price":["共计可售","共計可售","Total"],
"loas.button":["拍卖所选球员","拍賣所選球員","Auction Selected Players"],
"loas.popupt":["球员批量挂拍卖提示","球員批量掛拍賣提示","Bulk Auction Listing Reminder for Players"],
"loas.popupm":["已选择本列表中 %1 个球员拍卖价格大致为 %2 ,请点击确认开始陆续上架拍卖,途中可点击加载图标下文字取消。","已選擇本列表中 %1 個球員拍賣價格大致為 %2 ,請點擊確認開始陸續上架拍賣,途中可點擊加載圖標下文字取消。","You have selected approximately %1 players from this list, with an estimated auction price of %2. Please click confirm to start listing them for auction one by one. You can click the text below the loading icon to cancel during the process."],
"loas.variation":["本版块批量拍卖选择球员调整为 %1 个","本版塊批量拍賣選擇球員調整為 %1 個","Batch auction selection of players in this section is adjusted to %1"],
"loas.start":["程序开始批量售卖球员 预计耗费 %1 秒","程式開始批量售賣球員 預計耗費 %1 秒","The program starts to sell players in bulk, which is expected to take %1 of seconds"],
"loadingclose.template1":["读取SBC方案列表中 请稍后","讀取SBC方案列表中 請稍後","Read the list of SBC schemes, please wait"],
"loadingclose.template2":["正在读取方案 %1 阵容 剩余 %2 方案 点此可结束程序","正在讀取和比對方案 %1 陣容 剩餘 %2 方案 點此可結束程式","Reading and comparing plan %1 lineup, remaining %2 plans, click here to end the program"],
"loadingclose.loas":["正在挂牌第 %1 个球员 剩余 %2 个 点此可结束程序","正在掛牌第 %1 個球員 剩餘 %2 個 點此可結束程式","The %1 players are being listed, and the remaining %2, click here to end the program"],
"set.player.loas":["批量拍卖球员","批量拍賣球員","Bulk Auction Players"],
"notice.squaderror":["方案读取失败 可能是FUTBIN无作业方案 请稍后再试","方案讀取失敗 可能是FUTBIN無作業方案 請稍後再試","Scheme reading failed, it may be that FUTBIN has no job scheme, please try again later"],
"set.getdoc":["查看设置说明","檢視設定說明","View setup instructions"],
"builder.league":["排除指定联赛球员","排除指定聯賽球員","Exclude designated league"],
"builder.rare":["排除周最佳球员","排除周最佳球員","Exclude TOTW"],
"notice.phoneloas":["请注意手机端挂牌后需重新进入拍卖清单才会刷新显示。","請注意手機端掛牌後需重新進入拍賣清單才會重新整理顯示。","Please note that after listing on the mobile terminal, you need to re-enter the auction list before refreshing the display."],
"notice.builder":["通过排除后球员数量已不足以填充阵容,如需要请调整条件再次搜索。","通過排除後球員數量已不足以填充陣容,如需要請調整條件再次搜尋。","The number of players after exclusion is no longer sufficient to fill the lineup, please adjust the criteria to search again if necessary."],
"notice.conceptdiff":["发现所购买的假想球员有多个版本,已经将非搜索版本的亮度。","發現所購買的假想球員有多個版本,已經將非搜尋版本的亮度。","Found that there are multiple versions of the purchased hypothetical player, the brightness of the non-searched version has been added."],
"notice.packback":["已无未分配球员 自动返回","已無未分配球員 自動返回","No unassigned players, automatically return"],
"sbc.swapchem":["替换为默契球员","替換為默契球員","Swap Chemistry Players"],
"notice.notchemplayer":["俱乐部中没有满足当前默契需求的球员","俱樂部中沒有滿足當前默契需求的球員","there are no players in the club who meet the current chemistry needs"],
"sbc.addchem":["添加默契球员","新增默契球員","Add Chemistry Players"],
"notice.chemplayerloading":["开始读取满足默契球员 请稍等","開始讀取滿足默契球員 請稍等","Start reading Meet chemistry players, please wait"],
"sbc.chemplayer":["默契球员名单","默契球員名單","Chemistry Players List"],
"notice.noplayer":["已无指定条件球员","已無指定條件球員","No conditions specified player"],
"squadback.popupt":["阵容回退提示","陣容回退提示","Squad Back Tip"],
"squadback.popupm":["请注意,阵容回退后将无法再返回到此阵容,还可回退 %1 次。","請注意,陣容回退後將無法再返回到此陣容,還可回退 %1 次。","Note that the squad will no longer be able to return to this lineup after retreating, and can go back %1 times."],
"sbc.squadback":["退","退","B"],
"notice.nosquad":["已无操作记录 无法法回退","已無操作記錄 無法法回退","There is no operation record and cannot be rolled back"],
"tile.settitle":["插件配置","外掛配置","Plugin configuration"],
"tile.settext":["配置FSU功能开关","配置FSU功能開關","Configure FSU function switch"],
"tile.infotitle":["使用说明","使用說明","Instructions for use"],
"tile.infotext":["查看插件使用说明","檢視外掛使用說明","View plugin instructions"],
"tile.fbtitle":["问题反馈","問題反饋","Problem feedback"],
"tile.fbtext":["有问题请尽快反馈","有問題請儘快反饋","If you have any questions, please give feedback ASAP."],
"set.sbc.cback":["假想球员购买自动分配","假想球员购买自动分配","Hypothetical player purchase automatic distribution"],
"set.sbc.sback":["阵容回退","阵容回退","lineup fallback"],
"swaptradable.btntext":["批量交换可交易","批量交换可交易","Bulk exchange tradable"],
"swaptradable.popupt":["批量交换队内可交易球员","批量交换队内可交易球员","Batch exchange of tradable players within the team"],
"swaptradable.popupm":["点击确定可将未分配中球员与队内可交易球员交换,共可交换 %1 个。","点击确定可将未分配中球员与队内可交易球员交换,共可交换 %1 个。","Click OK to exchange unassigned players with tradable players in the team, for a total of %1 players."],
"notice.swaptsuccess":["%1 交换成功","%1 交换成功","%1 exchange successful"],
"notice.swapterror":["%1 交换失败 程序暂停","%1 交换失败 程序暂停","%1 exchange failed, program paused"],
"loadingclose.swapt":["正在交换第 %1 个球员 剩余 %2 个","正在交换第 %1 个球员 剩余 %2 个","Swap %1 player,%2 remaining"],
"set.player.swapt":["未分配批量交换可交易","未分配批量交換可交易","Unallocated Bulk Exchange Tradable"],
"set.sbc.dupfill":["重复球员填充阵容","重複球員填充陣容","Repeat player fill squad"],
"dupfill.btntext":["重复球员填充阵容","重複球員填充陣容","Repeat player fill squad"],
"autofill.btntext":["一键填充(优先重复)","一鍵填充(優先重複)","One-click fill (priority repeat)"],
"set.sbc.icount":["搜索球员数量显示","搜尋球員數量顯示","Search number of players displayed"],
"set.sbc.autofill":["一键填充球员","一鍵填充球員","One-click fill player"],
"completion.btntext":["一键补全阵容","一鍵補全陣容","One-click complete lineup"],
"set.sbc.completion":["一键补全阵容","一鍵補全陣容","One-click complete lineup"],
"notice.setsuccess":["设置保存成功","設定儲存成功","Settings saved successfully"],
"notice.seterror":["设置保存失败 请检查","設定儲存失敗 請檢查","Settings failed to save, please check"],
"shieldlea.btntext":["排除联赛设置","排除聯賽設定","Exclude league settings"],
"shieldlea.placeholder":["请输入联赛数字ID和英文逗号","請輸入聯賽數字ID和英文逗號","Please enter the league number ID and English comma"],
"squadcmpl.btntext":["阵容补全(优先重复)","陣容補全(優先重複)","Squad completion (priority repeat)"],
"squadcmpl.popupt":["阵容补全提示","陣容補全提示","Squad Completion Tips"],
"squadcmpl.placeholder":["请填入评分和英文逗号组合","請填入評分和英文逗號組合","Please fill in the combination of ratings and English commas"],
"squadcmpl.placeholder_zero":["无需填充空位","無需填充空位","No need to fill gaps"],
"squadcmpl.error":["输入填充评分格式不匹配 无法填充指定评分","輸入填充評分格式不匹配 無法填充指定評分","The input fill score format does not match, and the specified score cannot be filled"],
"set.sbc.squadcmpl":["阵容补全功能","陣容補全功能","Squad completion"],
"notice.ldatasuccess":["球员数据已全部加载成功","球員資料已全部載入成功","All player data has been loaded successfully"],
"notice.ldataerror":["球员数据加载失败 请重刷新页面加载 否则核心功能无法使用","球員資料載入失敗 請重重新整理頁面載入 否則核心功能無法使用","Player data loading failed, please refresh the page to load, otherwise the core functions cannot be used"],
"loadingclose.ldata":["正在读取球员数据(%1/%2)请耐心等待","正在讀取球員資料(%1/%2)請耐心等待","Reading player data (%1/%2) please be patient"],
"uatoclub.btntext":["直接发送%1个至俱乐部","直接傳送%1個至俱樂部","Send %1 directly to the club"],
"uatoclub.success":["直接发送俱乐部成功","直接傳送俱樂部成功","Send directly to the club successfully"],
"uatoclub.error":["直接发送俱乐部失败 请进入页面自行分配","直接傳送俱樂部失敗 請進入頁面自行分配","Failed to send the club directly, please enter the page to assign it yourself."],
"set.info.skipanimation":["跳过开包动画","跳過開包動畫","Skip the package animation"],
"builder.untradeable":["仅限不可交易球员","僅限不可交易球員","Only Untradeable"],
"set.player.uatoclub":["未分配外部发送至俱乐部","未分配外部傳送至俱樂部","Unassigned external send to club"],
"douagain.sbctile.title":["快速SBC","快速SBC","Fast SBC"],
"douagain.packtile.title":["快速开包","快速開包","Quick unpacking"],
"douagain.sbctile.text":["请先打开或完成SBC","請先開啟或完成SBC","Please open or complete SBC"],
"douagain.packtile.text":["请先进行开包","請先進行開包","Please open the package first"],
"douagain.error":["出现程序错误无法打开,请重新完成SBC以便继续。","出現程式錯誤無法開啟,請重新完成SBC以便繼續。","A program error failed to open, please complete the SBC again to continue."],
"douagain.sbctile.state1":["已做%1个","已做%1個","%1 done"],
"douagain.sbctile.state2":["可做%1个","可做%1個","Can do %1"],
"douagain.sbctile.state3":["已完成","已完成","Completed"],
"set.info.sbcagain":["商店快速SBC","商店快速SBC","Store Express SBC"],
"set.info.packagain":["商店快速开包","商店快速開包","Store quick open pack"],
"sbc.infocount":["已完成 %1 个","已完成 %1 個","%1 completed"],
"notice.dupfilldiff":["请注意因存在于阵容或屏蔽条件未能全部填充球员","請注意因存在於陣容或遮蔽條件未能全部填充球員","Please note that players are not fully filled due to presence in the lineup or shielding conditions"],
"screenshot.text":["未分配共计 %1 名球员 总价 %2","未分配共計 %1 名球員 總價 %2","Unassigned total %1 players, total price %2"],
"packcoin.text":["商店价值:","商店價值:","Store value:"],
"sbcrange.title":["评分范围","評分範圍","ratings range"],
"sbcrange.to":["至","至","to"],
"tile.gptitle":["重载球员","載入球員","Overload player"],
"tile.gptext":["如有问题可重载入球员","如有問題可重新載入球員","If there is a problem, you can reload the player."],
"notice.basesbc":["需要完成初始SBC才可显示更多SBC任务","需要完成初始SBC才可顯示更多SBC任務","The initial SBC needs to be completed to show more SBC tasks"],
"builder.ignorepos":["忽略球员位置","忽略球員位置","Ignore player position"],
"transfertoclub.popupt":["发送球员提示","傳送球員提示","Send player tips"],
"transfertoclub.popupm":["是否要将列表中 %1 名球员发送到俱乐部","是否要將列表中 %1 名球員傳送到俱樂部","Do you want to send %1 players in the list to the club"],
"readauction.error":["读取球员拍卖信息失败,请重试。","讀取球員拍賣資訊失敗,請重試。","Failed to read player auction information, please try again."],
"buyplayer.success":["购买球员 %1 成功,花费 %2 。","購買球員 %1 成功,花費 %2 。","Purchase player %1 successfully, cost %2."],
"buyplayer.error":["购买球员 %1 失败,%2请稍后再试。","購買球員 %1 失敗,%2請稍後再試。","Purchase of player %1 failed,%2 please try again later."],
"buyplayer.error.child1":["被其他用户购买,","被其他使用者購買,","Purchased by other users,"],
"buyplayer.error.child2":["金币不足,","金幣不足,","Not enough gold coins,"],
"buyplayer.error.child3":["无拍卖信息,","無拍賣資訊,","No auction information,"],
"buyplayer.error.child4":["购买超时,","購買超時,","Purchase timed out,"],
"buyplayer.error.child5":["未分配物品过多,","未分配物品過多,","Too many unallocated items,"],
"buyplayer.sendclub.success":["购买球员 %1 发送俱乐部成功","購買球員 %1 傳送球隊成功","Buy player %1 send team successfully"],
"buyplayer.sendclub.error":["购买球员 %1 发送俱乐部失败","購買球員 %1 傳送球隊失敗","Failed to buy player %1 to send team"],
"readauction.loadingclose":["正在读取最新FUT价格","正在讀取最新FUT價格","Reading the latest FUT prices"],
"readauction.loadingclose2":["正在读取拍卖信息","正在讀取拍賣資訊","Reading auction information"],
"buyplayer.loadingclose":["正在尝试购买球员","正在嘗試購買球員","Trying to buy players"],
"conceptbuy.btntext":["直接购买此球员","直接購買此球員","Buy this player directly"],
"set.sbc.conceptbuy":["假想球员直接购买","概念球員直接購買","Concept player direct purchase"],
"set.player.transfertoclub":["转会发送俱乐部","轉會傳送俱樂部","Transfer sending club"],
"transfertoclub.unable":["%1个球员因重复无法发送","%1個球員因重複無法傳送","%1 player could not be sent due to duplication"],
"numberofqueries.btntext":["查询价格次数","查詢價格次數","Number of price inquiries"],
"numberofqueries.popupm":["此处影响在购买球员的查询次数,初次使用futbin读取价格,其后每次按照搜索出结果进行下次查询价格,查询价格变化按照拍卖价格+、-变化,可自行在拍卖输入价格点击+、-后查看,具体规则请阅读说明文档。 默认配置为5次,最低可设置为1次,不建议次数过多。","此處影響在購買球員的查詢次數,初次使用futbin讀取價格,其後每次按照搜尋出結果進行下次查詢價格,查詢價格變化按照拍賣價格+、-變化,可自行在拍賣輸入價格點選+、-後檢視,具體規則請閱讀說明文件。 預設配置為5次,最低可設定為1次,不建議次數過多。","This affects the number of inquiries in the purchase of players. Use futbin to read the price for the first time, and then check the price for the next time according to the search results. The query price changes according to the auction price + and -. You can enter the price in the auction by yourself and click + and -. Please read the description document for specific rules. < br > The default configuration is 5 times, and the minimum can be set to 1 time. It is not recommended to use too many times."],
"numberofqueries.placeholder":["请输入数字 为空重置为5次","請輸入數字 為空重置為5次","Please enter a number, entering empty will reset to 5 times"],
"settingsbutton.phone":["说明、入口、询价","說明、入口、詢價","desc、entrance、query"],
"notice.lockplayer":["锁定球员成功","鎖定球員成功","Lock player successfully"],
"notice.unlockplayer":["解锁球员成功","解鎖球員成功","Unlock Player Success"],
"locked.unlock":["解锁","解鎖","Unlock"],
"locked.lock":["锁定","鎖定","lock"],
"locked.tile":["锁定球员","鎖定球員","Lock player"],
"locked.navtilte":["锁定球员列表","鎖定球員列表","Lock player list"],
"pack.filter0":["可交易组合包","可交易組合包","Tradeable Pack"],
"history.title":["搜索历史:","搜尋歷史:","Search history"],
"consult.popupt":["请输入导入方案ID或网址","請輸入匯入方案ID或網址","Please enter the import squad ID or URL"],
"consult.popupm":["支持导入FUTBIN和FUT.GG两个网站的SBC方案ID或网址,为空则默认读取FUTBIN价格最低的5个方案进行计算。","支援匯入FUTBIN和FUT.GG兩個網站的SBC方案ID或網址,為空則預設讀取FUTBIN價格最低的5個方案進行計算。","Support import FUTBIN and FUT.GG the SBC squad ID or URL of the two websites. If it is empty, read the 5 schemes with the lowest FUTBIN price by default for calculation."],
"consult.placeholder":["在此填入方案ID或网址","在此填入方案ID或網址","Enter the squad ID or URL here"],
"consult.error":["未能识别到有效的方案ID或网址,请重新输入。","未能識別到有效的方案ID或網址,請重新輸入。","Could not identify a valid squad ID or URL, please re-enter."],
"meetsreq.btntext":["替换为满足需求球员","替換為滿足需求球員","Swap Meets Requirements Players"],
"set.sbc.meetsreq":["替换满足需求球员","替換滿足需求球員","Swap Meets Requirements Players"],
"meetsreq.error":["俱乐部中没有满足可替换的满足需求球员","俱樂部中沒有滿足可替換的滿足需求球員","There are no replaceable meet requirements players in the club"],
"set.sbc.templatemode":["SBC方案填充输入模式","SBC方案填充輸入模式","SBC squad populate input mode"],
"readauction.loadingclose3":["正在读取价格 %1","正在讀取價格 %1","Reading price %1"],
"squadcmpl.popupm":["阵容补全即会将假想球员替换为同评分球员、空位替换为所填评分。请填入评分需要数字,以英文逗号组合,单个评分将会替换所有空位,多个将替换指定个数空位。","陣容補全即會將假想球員替換為同評分球員、空位替換為所填評分。請填入評分需要數字,以英文逗號組合,單個評分將會替換所有空位,多個將替換指定個數空位。","Lineup completion will replace hypothetical players with players of the same rating, and vacancies with the filled rating. Please fill in the numbers required for the rating, combined with English commas, a single rating will replace all vacancies, and multiple will replace the specified number of vacancies."],
"squadcmpl.popupmsup":["模拟计算结果可能略有偏差,可点击按钮前往网站进行自由计算。","模擬計算結果可能略有偏差,可點選按鈕前往網站進行自由計算。","The simulation results may be slightly biased, and you can click the button to go to the website for free calculation."],
"shieldlea.popupm":["默认排除五大联赛,如想调整请从使用说明中找到对应的联赛ID填入。多个ID使用英文逗号分割,否则保存失败。为空恢复为默认设置","預設排除五大聯賽,如想調整請從使用說明中找到對應的聯賽ID填入。多個ID使用英文逗號分割,否則儲存失敗。為空恢復為預設設定","The five major leagues are excluded by default. If you want to adjust it, please find the corresponding league ID from the instructions and fill it in. Multiple IDs are separated by English commas, otherwise the save fails. If it is empty, restore it to the default settings"],
"popupButtonsText.44401":["前往网站计算","前往網站計算","Go to the website to calculate"],
"popupButtonsText.44402":["前往查看ID列表","前往檢視ID列表","Go to view ID list"],
"squadcmpl.simulatedsuccess":["此次模拟补全后阵容评分: %1 ,预估填充球员价值: %2 。","此次模擬補全後陣容評分: %1 ,預估填充球員價值: %2 。","Lineup score after this simulation completion: %1 , estimated fill player value: %2 ."],
"squadcmpl.simulatederror":["无法模拟补全出阵容,请填充球员、调整排除选项或进入网站计算。","無法模擬補全出陣容,請填充球員、調整排除選項或進入網站計算。","The full lineup cannot be simulated. Please fill in players, adjust exclusion options, or enter the website for calculations."],
"packfilter.total":["共计:%1 预估:%2","共計:%1 預估:%2","Total:%1 Estimated:%2"],
"chemistrylist.setpos":["仅显示 %1","僅顯示 %1","Show only %1"],
"chemistrylist.setall":["显示全部","顯示全部","Show all"],
"requirements.addbtn":["添加 %1","新增 %1","Add %1"],
"requirements.swapbtn":["替换为 %1","替換為 %1","Swap %1"],
"squadcmpl.popupmsupallconcept":["此次将尝试替换假想球员,不会考虑挑战要求,如无法替换代表无此评分球员。","此次將嘗試替換概念球員,不會考慮挑戰條件,如無法替換代表無此評分球員。","This time, attempts will be made to replace concept players, without considering challenge requirements. If a player cannot be replaced, it means that the player does not have this rating."],
"sbcrange.concepttitle":["假想搜索无评分范围","概念搜尋無評分範圍","Concept Search No Rating Range"],
"searchconcept.sameclub":["搜索同俱乐部假想球员","搜尋同俱樂部概念球員","Search concept from the same club"],
"searchconcept.sameleague":["搜索同联赛同地区假想球员","搜尋同聯賽同地區概念球員","Search concept in the same league and nation"],
"notice.searchconceptloading":["开始搜索指定条件假想球员","開始搜尋指定條件概念球員","Start searching for specified concept players"],
"subsbcaward.title":["奖励价值:","獎勵價值:","Reward value:"],
"subsbcaward.nope":["无法计算","無法計算","Can't count"],
"sbc.quciktransfers":["转","轉","T"],
"sbc.onlycmpltext":["保留阵容补全仅为方便查看所需评分","保留陣容補全僅為方便檢視所需評分","Keep the squad complete for convenience only to view the required rating"],
"set.player.pickbest":["球员挑选最佳提示","球員挑選最佳提示","Player Pick Best Tips"],
"set.sbc.headentrance":["顶部SBC入口","頂部SBC入口","Top SBC Entrance"],
"playerignore.popupt":["SBC忽略球员配置","SBC忽略球員配置","SBC ignore player configuration"],
"playerignore.popupm":["配置点击调整后即保存,影响一键填充、阵容补全等处代码,切记谨慎选择。","配置點選調整後即儲存,影響一鍵填充、陣容補全等處程式碼,切記謹慎選擇。","The configuration is saved after clicking Adjust, which affects the code of one-click filling, lineup completion, etc. Remember to choose carefully."],
"playerignore.button":["排除球员配置","排除球員配置","Exclude player configuration"],
"popupButtonsText.44403":["关闭","關閉","close"],
"builder.icon":["排除传奇球员","排除傳奇球員","Exclude Icon"],
"builder.hero":["排除英雄球员","排除英雄球員","Exclude Hero"],
"builder.academy":["排除进化球员","排除進化球員","Exclude Evolution"],
"builder.strictlypcik":["球员挑选严格普通和稀有","球員挑選嚴格普通和稀有","Player Pick SBC Strictly Common and Rare"],
"headentrance.numberset":["顶部入口数量配置","頂部入口數量配置","Top entrance number"],
"popupButtonsText.44404":["前往设置排除联赛","前往設定排除聯賽","Go to Settings Exclusion League"],
"popupButtonsText.44405":["前往设置黄金球员范围","前往設定黃金球員範圍","Go to Set Golden Player Range"],
"goldenplayer.popupmt":["黄金球员范围设置","黃金球員範圍設定","Golden Player Range Settings"],
"goldenplayer.popupm":["默认黄金球员最高为83,如想设定请填入后点击确定,最小值为76。为空则恢复默认值。","預設黃金球員最高為83,如想設定請填入後點選確定,最小值為76。為空則恢復預設值。","The default gold player is up to 83. If you want to set it, please fill in and click OK. The minimum value is 76. If it is empty, restore the default value."],
"goldenplayer.placeholder":["请输入两位数字、最低76、最高99","請輸入兩位數字、最低76、最高99","Please enter two digits, minimum 76, maximum 99"],
"headentrance.popupmt":["顶部SBC入口数量设置","頂部SBC入口數量設定","Top SBC Entry Quantity Settings"],
"headentrance.popupm":["默认电脑端为5个、手机端为3个,请输入数字改变数量,最高不能超过8个。为空则恢复默认值。","預設電腦端為5個、手機端為3個,請輸入數字改變數量,最高不能超過8個。為空則恢復預設值。","The default is 5 on the computer and 3 on the mobile phone. Please enter the number to change the number, and the maximum cannot exceed 8. If it is empty, restore the default value."],
"headentrance.placeholder":["请输入1位数字、最低为1、最高为8","請輸入1位數字、最低為1、最高為8","Please enter 1 digit, minimum 1, maximum 8"],
"sbc.swapgold":["快速替换为同评分黄金","快速替換為同評分黃金","Quickly replace with gold of the same rating"],
"bibconcept.btntext":["批量购买假想球员","批量購買假想球員","Buy concept players in bulk"],
"readauction.progress":["购买进度:%1/%2","購買進度:%1/%2","Purchase progress:%1/%2"],
"buyplayer.getinfo.error":["读取球员信息失败,请重试。","讀取球員資訊失敗,請重試。","Reading player information failed. Please try again."],
"buyplayer.bibresults":["批量购买结束,成功 %1 个,失败 %2 个,共花费%3。","批量購買結束,成功 %1 個,失敗 %2 個,共花費%3。","Bulk purchase completed, %1 successful, %2 failed, total cost %3."],
"builder.current":["当前过滤:","當前過濾:","Current Filter:"],
"builder.league.short":["联赛(%1)","聯賽(%1)","League(%1)"],
"builder.untradeable.short":["可交易","可交易","tradable"],
"builder.rare.short":["周黑","周黑","TOTW"],
"builder.icon.short":["传奇","傳奇","Legend"],
"builder.hero.short":["英雄","英雄","hero"],
"builder.academy.short":["进化","進化","evolution"],
"builder.ignorepos.short":["忽略位置","忽略位置","Ignore position"],
"builder.goldenrange.short":["黄金范围:≤%1","黃金範圍:≤%1","Gold Range:≤%1"],
"builder.strictlypcik.short":["严格稀有普通","嚴格稀有普通","Strictly rare common"],
"builder.comprange":["阵容补全黄金范围(75-%1)内优先稀有","陣容補全黃金範圍(75-%1)內優先稀有","Squad Completion Priority Rare within Gold Range (75-%1)"],
"builder.comprange.short":["≤%1优先稀有","≤%1優先稀有","≤%1 Priority Rare"],
"builder.comprare":["阵容补全优先非特殊球员","陣容補全優先非特殊球員","Squad Completion Priority Non-Special Players"],
"builder.comprare.short":["优先非特殊","優先非特殊","Priority non-special"],
"academy.btntext":["查看 %1 进化","檢視 %1 進化","View% 1 Evolution"],
"academy.freetips":["免费进化","免費進化","Free Evolution"],
"academy.bio.add":["+ %1","+ %1","+ %1"],
"academy.bio.change":["变化","變化","change"],
"academy.bio.upgrade":["升级","升級","upgrade"],
"academy.bio.new":["新增","新增","new"],
"loas.input":["可填入修改挂牌时间","可填入修改掛牌時間","You can fill in to modify the listing time."],
"loas.input.tips":["请按小时为基准填入,默认和1为1小时、3为3小时、6为6小时、12为12小时、24为1天、72为3天,不支持其他时间。","請按小時為基準填入,預設和1為1小時、3為3小時、6為6小時、12為12小時、24為1天、72為3天,不支援其他時間。","Please fill in the hours as the basis, the default and 1 is 1 hour, 3 is 3 hours, 6 is 6 hours, 12 is 12 hours, 24 is 1 day, 72 is 3 days, other times are not supported."],
"loas.input.error":["填入挂牌时间错误,请务必按照说明填写。","填入掛牌時間錯誤,請務必按照說明填寫。","Fill in the wrong listing time, please be sure to follow the instructions."],
"returns.text":["平均回报:","平均回報:","Avg Returns:"],
"notice.submitrepeat":["阵容中有未分配不可交易版本,将自动替换并提交阵容。","陣容中有未分配不可交易版本,將自動替換並提交陣容。","If there is an unassigned non-tradable version in the lineup, it will be automatically replaced and submitted."],
"fastsbc.popupt":["快速任务提示","快速任務提示","Quick SBC Tip"],
"fastsbc.popupm":["此模式将快速执行指定SBC,优先未分配和进行排除选项,不会识别未分配可交易替换功能。此为实验功能谨慎使用,过量可能导致BAN提交等不知名惩罚,且可能提交掉你的有价值球员。确认后本次使用插件将不再提示。","此模式將快速執行指定SBC,優先未分配和進行排除選項,不會識別未分配可交易替換功能。此為實驗功能謹慎使用,過量可能導致BAN提交等不知名懲罰,且可能提交掉你的有價值球員。確認後本次使用外掛將不再提示。","This mode will quickly execute the specified SBC, give priority to unassigned and exclude options, and will not recognize unassigned tradable replacements. This is an experimental feature to use with caution. Excessive use may lead to unknown penalties such as BAN submission, and may submit your valuable players. After confirmation, this use of the plugin will no longer prompt."],
"fastsbc.success":["快速任务成功,请适度使用切勿过于频繁。","快速任務成功,請適度使用切勿過於頻繁。","The quick SBC is successful, please use it in moderation and not too frequently."],
"fastsbc.title":["重复球员可快速完成 %1 个SBC","重複球員可快速完成 %1 個SBC","Repeat players can quickly complete %1 SBC"],
"fastsbc.sbcbtntext":["一键完成(%1)","一鍵完成(%1)","Quick Completion(%1)"],
"meta.pos_0":["门将","門將","GK"],
"meta.pos_1":["右边翼卫","右邊翼衛","RWB"],
"meta.pos_2":["右边后卫","右邊後衛","RB"],
"meta.pos_3":["中后卫","中後衛","CB"],
"meta.pos_4":["左边后卫","左邊後衛","LB"],
"meta.pos_5":["左边翼卫","左邊翼衛","LWB"],
"meta.pos_6":["防守后腰","防守後腰","CDM"],
"meta.pos_7":["组织后腰","組織後腰","VOL"],
"meta.pos_8":["全能中场","全能中場","B2B"],
"meta.pos_9":["右边锋","右邊鋒","RW"],
"meta.pos_10":["攻击中场","攻擊中場","CAM"],
"meta.pos_11":["左边锋","左邊鋒","LW"],
"meta.pos_12":["全能前锋","全能前鋒","ST"],
"meta.pos_13":["伪九号","偽九號","CF"],
"meta.pos_14":["站桩中锋","站樁中鋒","TF"],
"players.bodytype_1":["中等偏瘦的通用体型","中等偏瘦的通用體型","Average and lean universal body type"],
"players.bodytype_2":["中等正常的通用体型","中等正常的通用體型","Average and normal universal body type"],
"players.bodytype_3":["中等结实的通用体型","中等結實的通用體型","Average and stocky universal body type"],
"players.bodytype_4":["高个偏瘦的通用体型","高個偏瘦的通用體型","Tall and lean universal body type"],
"players.bodytype_5":["高个正常的通用体型","高個正常的通用體型","Tall and normal universal body type"],
"players.bodytype_6":["高个结实的通用体型","高個結實的通用體型","Tall and stocky universal body type"],
"players.bodytype_7":["矮个偏瘦的通用体型","矮個偏瘦的通用體型","Short and lean universal body type"],
"players.bodytype_8":["矮个正常的通用体型","矮個正常的通用體型","Short and normal universal body type"],
"players.bodytype_9":["矮个结实的通用体型","矮個結實的通用體型","Short and stocky universal body type"],
"players.bodytype_15":["未知体型","未知體型","Unknown body type "],
"players.bodytype_11":["非常高且瘦的通用体型","非常高且瘦的通用體型","Very tall and lean universal body type"],
"players.bodytype_12":["偏瘦的定制体型","偏瘦的定製體型","Lean unique body type"],
"players.bodytype_13":["正常的定制体型","正常的定製體型","Normal unique body type"],
"players.bodytype_14":["结实的定制体型","結實的定製體型","Stocky unique body type"],
"meta.posinfo_0":["不会手控,纯靠玄学的话无脑评分高就可以。","不會手控,純靠玄學的話無腦評分高就可以。","If you don't know how to control it by hand, if you rely purely on metaphysics, you can have a high score without brains."],
"meta.posinfo_1":["偏进攻的边路后卫,可与边锋跑位重叠。如:戴维斯","偏進攻的邊路後衛,可與邊鋒跑位重疊。如:戴維斯","An offensive wing guard who can overlap with the winger. Such as: Davis"],
"meta.posinfo_2":["偏防守的边路后卫,选择进攻留后。如:特奥","偏防守的邊路後衛,選擇進攻留後。如:特奧","A defensive wing defender who chooses to attack and stay back. such as: Theo"],
"meta.posinfo_3":["中路防守球员,默认即可,模型大的减少上抢。如:范戴克","中路防守球員,預設即可,模型大的減少上搶。如:範戴克","Middle defensive player, the default can be, and the model is greatly reduced to grab. Such as: Van Dijk"],
"meta.posinfo_6":["蹲坑防守,保持中路、进攻时留后。如:维埃拉","蹲坑防守,保持中路、進攻時留後。如:維埃拉","Squat to defend, keep the center, and stay behind when attacking. Such as: Vieira"],
"meta.posinfo_7":["除了防守还能带球或传球,保持中路、进攻时留后。如:哈维","除了防守還能帶球或傳球,保持中路、進攻時留後。如:哈維","In addition to defense, he can also carry or pass the ball, maintain the center, and stay behind when attacking. Such as: Xavi"],
"meta.posinfo_8":["能攻善守,能上能下,根据打法设置。如:古利特","能攻善守,能上能下,根據打法設定。如:古利特","Able to attack and defend, able to go up and down, set according to the playstyle. Such as: Gullit"],
"meta.posinfo_9":["速度快善于突破,切入、压入禁区。如:姆巴佩","速度快善於突破,切入、壓入禁區。如:姆巴佩","Fast and good at breaking through, cutting and pressing into the penalty area. Such as: Mbappe"],
"meta.posinfo_10":["有点防守但主要是传球或盘带,默认即可。如:齐达内","有點防守但主要是傳球或盤帶,預設即可。如:齊達內","A bit defensive but mainly passing or dribbling, by default. Such as: Zidane"],
"meta.posinfo_12":["主要就是突破和射门,潜入后方。如:罗纳尔多","主要就是突破和射門,潛入後方。如:羅納爾多","The main thing is to break through and shoot, to sneak into the back. such as: Ronaldo"],
"meta.posinfo_13":["除了射门还能组织进攻,默认即可。如:贝利","除了射門還能組織進攻,預設即可。如:貝利","In addition to shooting, you can also organize attacks by default. Such as: Pele"],
"meta.posinfo_14":["主要就是抢头球和当支点,保持中心、潜入后方。如:德罗巴","主要就是搶頭球和當支點,保持中心、潛入後方。如:德羅巴","The main thing is to grab the header and be a fulcrum, keep the center and dive to the back. such as: Drogba"],
"plyers.bodytype.popupm":["当前模型【%1】其表现为:%2,代表视觉感受的宽度和高度。可以理解为矮的腿短盘带好、高的腿长拦截好、瘦的窄灵活、壮的宽能撞。
定製體型不用高低區分都是掃描球員,靜止時可能差距不大,但在運動中會更絲滑流暢或擁有專屬擊球、攔截、花式等動作。","The body type [ %1 ] behaves as: %2 , which represents the width and height of visual perception. It can be understood as short legs with good dribbling, tall legs with good interception, lean narrow and flexible, and stocky wide can hit.
Unique body type does not need to be distinguished between tall and short. It may not look that different, but it will be silkier and smoother in motion or have exclusive hitting, intercepting, fancy and other actions."],
"plyers.bodytype.popupt":["球员模型说明","球員模型說明","Player body type description"],
"plyers.relo.popupm":["推荐职责【%1】,搭配默契风格【%2】,%3。 同职责满默契度级别:%4(%5),各级别含义:S(前1-5)、A(6-10)、B(11-45)、C代表剩余。
僅評分前3000名的資料,*號代表有其他職責但需要切換位置的選擇,可點選下方按鈕前往檢視。","Recommended player role [%1], with tacit chemistry style [%2],%3. Same role and 3 Chemistry points level: %4(%5) , meaning at all levels: S(top 1-5) , A(6-10) , B(11-45) , C for remaining.
Only the data of the top 3,000 are ratings, the * sign represents the choice of having other relo but needs to switch positions, you can click the button below to check."],
"plyers.relo.popupt":["球员职责评级说明","球員職責評級說明","Player Role Rating Description"],
"popupButtonsText.44406":["前往 Easysbc 查看","前往 Easysbc 檢視","Go to Easysbc to view"],
"fastsbc.entertips":["进入后可快速完成","進入後可快速完成","Quick completion upon entry"],
"fastsbc.error_1":["提交失败,SBC无次数。","提交失敗,SBC無次數。","Submit failed, SBC no number of times."],
"fastsbc.error_2":["提交失败,SBC无法完成,需完成关联任务重置。","提交失敗,SBC無法完成,需完成關聯任務重置。","Submit failed, the SBC cannot be completed, and the associated task reset needs to be completed."],
"fastsbc.error_3":["提示失败,满足条件球员不足。","提示失敗,滿足條件球員不足。","Submit failed, insufficient players meet the conditions."],
"fastsbc.error_4":["提交失败,交换可交易球员失败,请重试。","提交失敗,交換可交易球員失敗,請重試。","Submit failed, exchange of tradable players failed, please try again."],
"set.card.meta":["球员元评分&排名","球員元評分&排名","Player Meta Rating & Rank"],
"fastsbc.error_5":["提交失败,大概率是BAN SBC,请过段时间再试。","提交失敗,大概率是BAN SBC,請過段時間再試。","Submit failed, most likely BAN SBC, please try again after a while."],
"sbccount.btntext":["SBC计数:%1","SBC計數:%1","SBC count: %1"],
"sbccount.popupt":["SBC计数说明","SBC計數說明","SBC Counting Instructions"],
"sbccount.popupm":["此处仅计算插件运行状态下运行设备当日提交的SBC数量,请自行斟酌是否继续提交SBC。 目前传闻是1小时内超过90个即有可能被禁止提交SBC,等待1到24小时解禁,具体规则EA未披露。","此處僅計算外掛執行狀態下執行裝置當日提交的SBC數量,請自行斟酌是否繼續提交SBC。 目前傳聞是1小時內超過90個即有可能被禁止提交SBC,等待1到24小時解禁,具體規則EA未披露。","Here only the number of SBC submitted by the running device on the day when the plug-in is running is calculated. Please decide whether to continue submitting SBC. At present, it is rumored that more than 90 SBC submissions may be banned within 1 hours, and wait 1 to 24 hours for the ban to be lifted."],
}
//固话的HTML内容
html = {
"priceBtn":"",
"priceBtn2":"",
"taskBar":"
`));
}
}
}
},10);
}
//SBC填充任务列表 每次切换类型都重新填充 加载任务额外信息
UTSBCHubView.prototype.populateTiles = function(e, t) {
call.task.sbcT.call(this, e, t);
if(info.set.info_sbc){
let l = this.sbcSetTiles;
for (let i of l) {
events.sbcInfoFill(i.data.id,i);
}
if(t){
if(t.isFavourite){
let f = t.setIds;
let se = 0;
for (let si of f) {
if(info.task["sbc"].stat.hasOwnProperty(si)){
if(info.task["sbc"].stat[si].e == "1") se++;
}
}
let el = this._SBCCategoriesTM.items[1].__root;
if(el.querySelector(".fsu-task-bar-favorite")){
el.querySelector(".fsu-task-bar-favorite").remove();
}
if(se > 0){
el.append(events.createDF(`
${se}
`));
}
}
}else{
events.notice("notice.basesbc",0);
}
}
let playerIds = _.chain(this.sbcSetTiles)
.map(s => {
if (s.data.awards.length && s.data.awards[0].isItem && s.data.awards[0].item.isPlayer() && !info.roster.data.hasOwnProperty(s.data.awards[0].item.definitionId)) {
return s.data.awards[0].item.definitionId;
}
return null;
}).compact().value();
if(playerIds.length){
events.loadPlayerPrice(playerIds);
}
if(Object.keys(info.task.sbc.stat).length && info.set.info_sbcf && t){
if(!this.hasOwnProperty("_fsuSbcFilter")){
this._fsuSbcFilter = new UTDropDownControl();
let fa = [];
for (let i = 0; i < 4; i++) {
fa.push(new UTDataProviderEntryDTO(i,i,fy(`sbc.filter${i}`)))
}
this._fsuSbcFilter.init();
this._fsuSbcFilter.setOptions(fa);
this._fsuSbcFilter._parent = this;
this._fsuSbcFilter.addTarget(this._fsuSbcFilter, (e) => {
events.sbcFilter(e);
e._parent._fsuSbcFilterId = e.getId();
}, EventType.CHANGE);
let b = document.createElement("div");
b.classList.add("fsu-sbcfilter-box");
let o = document.createElement("div");
o.classList.add("fsu-sbcfilter-option");
let s = document.createElement("div");
s.innerText = fy(`sbc.filtert`);
o.appendChild(s);
o.appendChild(this._fsuSbcFilter.__root);
b.appendChild(o);
this._SBCCategoriesTM.__root.after(b);
this._fsuSbcFilterType = t.id;
this._fsuSbcFilterId = 0;
}else{
if(t.id !== this._fsuSbcFilterType){
this._fsuSbcFilterType = t.id;
this._fsuSbcFilterId = 0;
}
setTimeout(() => {
this._fsuSbcFilter.setIndexById(this._fsuSbcFilterId);
events.sbcFilter(this._fsuSbcFilter);
}, 200);
}
}
}
events.sbcFilter = e => {
let t = cntlr.current().getView().sbcSetTiles,g = e.getIndex();
for (let i of t) {
let y = true,d = i.data.id;
if(info.task.sbc.stat.hasOwnProperty(d)){
let s = info.task.sbc.stat[d];
if(g == 1 && s.f !== "1") y = false;
if(g == 2 && s.e !== "1") y = false;
if(g == 3){
let n = parseFloat(s.u);
if(!isNaN(n)){
if(n < 65) y = false;
}else{
y = false
}
}
}
y ? i.show() : i.hide();
}
}
//SBC子任务列表展示 填充额外信息和读取价格
UTSBCChallengesViewController.prototype.viewDidAppear = function() {
call.task.sbcC.call(this);
if(info.set.info_sbcs){
events.sbcSubPrice(this.sbset.id,this.getView());
//子任务添加查看球员按钮
if(_.isArray(this.sbset.awards)){
_.map(this.sbset.awards,(item,index) =>{
if(item.isItem && item.item.isPlayer()){
let btn = events.createButton(
new UTStandardButtonControl(),
fy("sbc.watchplayer"),
(e) => {events.openFutbinPlayerUrl(e);},
"mini"
)
btn.getRootElement().style.marginRight = "2rem";
btn.getRootElement().setAttribute("data-id",item.value);
btn.getRootElement().setAttribute("data-name",`${item.item.getStaticData().name}`);
this.getView()._setInfo._rewards.__rewardList.querySelector(`li:nth-child(${index+1})`).appendChild(btn.getRootElement())
}
})
}
}
}
//打开futbin球员链接,需要元素携带data-id(球员id)和data-name(球员全称)
events.openFutbinPlayerUrl = async(e) => {
events.showLoader();
let di = e.__root.getAttribute('data-id');
let n = e.__root.getAttribute('data-name').normalize("NFKD").replace(/[\u0300-\u036f]/g, "").replace(/ø/g, "o");
let playerUrl;
try {
playerUrl = await events.getFutbinUrl(`https://www.futbin.org/futbin/api/searchPlayersByName?playername=${n}&year=${info.base.year}`);
}catch(error) {
return;
}
let fi = "";
for (let i of playerUrl.data) {
if(i.resource_id == di){
fi = i.ID;
break;
}
}
events.hideLoader();
GM_openInTab(`https://www.futbin.com/${info.base.year}/player/${fi}/1`, { active: true, insert: true, setParent :true });
};
//SBC信息填充,需要传递sbcid和需填充的元素
events.sbcInfoFill = (d,e) => {
if(!info.task.sbc.stat.hasOwnProperty(d)) return;
let s = info.task.sbc.stat[d];
if(s !== undefined){
if(e.hasOwnProperty("__tileTitle") && s.f == "1"){
e.getRootElement().style.position = 'relative';
e.getRootElement().insertBefore(events.createDF(`
${fy("task.new")}
`), e.getRootElement().firstChild);
}
if(!e.__root.querySelector(".task-expire") && "data" in e && !e.data.isComplete()){
let expireTime = e.data.endTime - Math.round(new Date() / 1000);
e.__root.prepend(events.createDF(`${expireTime < 86400 && !e.data.notExpirable ? "
" + fy("task.expire") + "
" : ""}`));
}
}
if('data' in e && e.data.repeatabilityMode !== "NON_REPEATABLE"){
let countBox = events.createElementWithConfig("div",{
classList: ['ut-squad-building-set-status-label-view','refresh','sbccount']
})
let count = e.data.timesCompleted;
let countText = events.createElementWithConfig("span",{
classList: ['text'],
textContent:fy(["sbc.infocount",count]),
style:{
paddingLeft:".5rem"
}
})
if(count == 0){
countBox.style.opacity = ".5";
}
countBox.appendChild(countText);
let targetElement = e._progressBar.getRootElement()
targetElement.parentNode.insertBefore(countBox, targetElement.nextSibling);
}
if(!e.data.isComplete()){
let fastInfo = _.pickBy(info.base.fastsbc, (value, key) => key.startsWith(`${e.data.id}#`));
if(_.size(fastInfo)){
if(e.data.challengesCount == 1){
let fastCount = events.fastSBCQuantity(true,_.filter(services.Item.itemDao.itemRepo.getUnassignedItems(), item => item.isPlayer() && item.duplicateId !== 0),_.values(fastInfo)[0]);
let fastIds = _.map(_.split(_.keys(fastInfo)[0], '#'),s => parseInt(s));
let fastSid = fastIds[0];
let fastCid = fastIds[1];
e._fsufastsbcbtn = events.createButton(
new UTCurrencyButtonControl(),
fy(["fastsbc.sbcbtntext",fastCount]),
() => {
if (info.base.fastsbctips) {
events.isSBCCache(fastSid, fastCid)
} else {
events.popup(
fy("fastsbc.popupt"),
fy("fastsbc.popupm"),
(t) => {
if (t === 2) {
info.base.fastsbctips = true;
events.isSBCCache(fastSid, fastCid)
}
}
)
}
},
"call-to-action mini fsu-challengefastbtn"
)
e._fsufastsbcbtn.__currencyLabel.innerHTML = events.getFastSbcSubText(info.base.fastsbc[`${fastSid}#${fastCid}`])
if(fastCount == 0){
e._fsufastsbcbtn.setInteractionState(0);
}
}else{
e._fsufastsbcbtn = events.createButton(
new UTCurrencyButtonControl(),
fy(`fastsbc.entertips`),
() => {
e._tapDetected();
},
"call-to-action mini fsu-challengefastbtn"
)
}
e._fsufastsbcbtn.getRootElement().style.width = "100%";
e.getRootElement().querySelector(".challenge").appendChild(e._fsufastsbcbtn.getRootElement())
}
}
if(e._interactionState && !e.__root.querySelector(".fsu-sbc-info")){
let p = s.type == "7" ? "0" : info.base.platform == "pc" ? s.pc : s.tv;
e.__root.lastChild.before(events.createDF(fy(html.sbcInfo).replace("{price}",Number(p).toLocaleString()).replace("{up}",s.u).replace("{down}",s.d)))
}
if("data" in e && e.data.awards && e.data.awards.length == 1){
if(e.data.awards[0].isPack){
let reward = e.data.awards[0];
let packCoinValue = events.getOddo(reward.value);
if(packCoinValue){
let packBox = events.createElementWithConfig("div", {
style:{
position:"absolute",
bottom:"0",
backgroundColor:"rgb(0 0 0 / 60%)",
width:"100%",
textAlign:"center",
padding:".2rem 0",
}
});
let packTitle = events.createElementWithConfig("div", {
textContent:_.replace(_.replace(fy("returns.text"),":",""),":","")
});
packBox.appendChild(packTitle)
let packCoin = events.createElementWithConfig("div", {
classList: ['currency-coins'],
textContent:(packCoinValue * reward.count).toLocaleString()
});
packBox.appendChild(packCoin)
e.__mainReward.querySelector(".ut-pack-graphic-view").appendChild(packBox);
}
}
}
}
events.getOddo = (t) => {
if(_.has(info.base.oddo,t)){
let oddo = info.base.oddo[t];
if(_.size(oddo) > 1){
return oddo[info.base.platform];
}else{
return oddo.avg;
}
}else{
return 0;
}
}
//字符串转换html对象
events.createDF = (t) => {
let f = document.createRange().createContextualFragment(t);
return f;
}
events.sbcSubPrice = async(id,e) => {
if(info.task.sbc.stat[id]){
if(!info.task.sbc.stat[id].hasOwnProperty("c")){
let subPrice;
try {
subPrice = await events.getFutbinUrl(`https://www.futbin.org/futbin/api/getChallengesBySetId?set_id=${id}`);
}catch(error) {
return;
}
if("data" in subPrice){
info.task.sbc.stat[id].c = {};
for (let i of subPrice.data) {
let j = {"tv":i.price.ps,"pc":i.price.pc};
info.task.sbc.stat[id].c[i.challengeId] = j;
}
}
}
if(info.task.sbc.stat[id].hasOwnProperty("c")){
let sumValue = 0,sumCoin = 0;
for (let i of e._challengeRows) {
if("_fsuSubSet" in i){
let sId = i._fsuSubSet.id,
box = events.createElementWithConfig("div",{
style:{
display:"flex",
flexDirection:"row"
}
}),
priceValue = Number(info.base.platform == "pc" ? info.task.sbc.stat[id].c[sId].pc : info.task.sbc.stat[id].c[sId].tv),
price = events.createElementWithConfig("span",{
textContent:`${fy("sbc.price")}${priceValue.toLocaleString()}`,
classList:['currency-coins']
});
sumValue += priceValue;
box.appendChild(price);
let sAwards = i._fsuSubSet.awards,
packCoin = 0;
_.map(sAwards,item => {
if(item.isPack || (item.isItem && item.item && item.item.isPlayerPickItem())){
let packCoinValue = events.getOddo(item.value);
if(packCoinValue){
packCoin += packCoinValue * item.count;
sumCoin += packCoin;
}
}
})
let award = events.createElementWithConfig("span",{
textContent:`${fy("subsbcaward.title")}${packCoin ? packCoin.toLocaleString() : fy("subsbcaward.nope")}`,
classList:[`${packCoin ? 'currency-coins' : 'no'}`],
style:{
marginLeft:"2rem",
}
})
box.appendChild(award);
if(isPhone()){
box.style.flexDirection = "column";
award.style.marginLeft = "0";
}
i.__rowTitle.insertAdjacentElement('afterend',box);
}
}
let targetElement = e._setInfo.getRootElement().querySelector(".sbc-status-container");
if(targetElement.querySelector(".fsu-sub-price") == null){
_.map(services.SBC.repository.getSetById(id).awards,r => {
if(r.isPack || (r.isItem && r.item && r.item.isPlayerPickItem())){
let packCoinValue = events.getOddo(r.value);
if(packCoinValue){
sumCoin += packCoinValue;
}
}
})
let sumBox = events.createElementWithConfig("div",{
classList:["fsu-sub-price"],
style:{
display:"flex",
flexDirection:"row",
lineHeight:"2em",
width:"100%",
}
})
let sumValueBox = events.createElementWithConfig("span",{
textContent:`${fy("sbc.price")}${sumValue.toLocaleString()}`,
classList:['currency-coins']
})
sumBox.appendChild(sumValueBox);
let sumCoinBox = events.createElementWithConfig("span",{
textContent:`${fy("subsbcaward.title")}${sumCoin ? sumCoin.toLocaleString() : fy("subsbcaward.nope")}`,
classList:[`${sumCoin ? 'currency-coins' : 'no'}`],
style:{
marginLeft:".5rem",
}
})
sumBox.appendChild(sumCoinBox);
if(targetElement){
targetElement.appendChild(sumBox);
}
console.log(sumValue,sumCoin)
}
}
}
_.map(e._challengeRows,c => {
if(_.has(c,`_fsuSubSet`)){
let sName = `${c._fsuSubSet.setId}#${c._fsuSubSet.id}`
if(_.has(info.base.fastsbc,sName)){
let fastInfo = info.base.fastsbc[sName];
let fastCount = events.fastSBCQuantity(true,_.filter(services.Item.itemDao.itemRepo.getUnassignedItems(), item => item.isPlayer() && item.duplicateId !== 0),fastInfo);
e._fsufastsbcbtn = events.createButton(
new UTCurrencyButtonControl(),
fy(["fastsbc.sbcbtntext",fastCount]),
() => {
if (info.base.fastsbctips) {
events.isSBCCache(c._fsuSubSet.setId, c._fsuSubSet.id)
} else {
events.popup(
fy("fastsbc.popupt"),
fy("fastsbc.popupm"),
(t) => {
if (t === 2) {
info.base.fastsbctips = true;
events.isSBCCache(c._fsuSubSet.setId, c._fsuSubSet.id)
}
}
)
}
},
"call-to-action mini fsu-challengefastbtn"
)
e._fsufastsbcbtn.__currencyLabel.innerHTML = events.getFastSbcSubText(info.base.fastsbc[sName]);
if(c._fsuSubSet.isCompleted()){
e._fsufastsbcbtn.setInteractionState(0);
}
c.__rowContent.appendChild(e._fsufastsbcbtn.getRootElement())
}
}
})
}
call.panel = {
default:UTDefaultActionPanelView.prototype._generate,
auction:UTAuctionActionPanelView.prototype._generate,
slot:UTSlotActionPanelView.prototype._generate,
transfer:UTTransferActionPanelView.prototype._generate,
quickRender:UTQuickListPanelViewController.prototype.renderView,
quick:UTQuickListPanelView.prototype._generate,
loan:UTDuplicateLoanActionPanelView.prototype._generate,
sbc:UTSBCSquadDetailPanelView.prototype.render,
market:UTMarketSearchFiltersView.prototype.setPinnedItem,
reward:UTRewardSelectionChoiceView.prototype.expandRewardSet,
bioRender:UTPlayerBioView.prototype.render,
}
//24.18 可进化标识:球员预览属性标注
UTPlayerBioView.prototype.render = function(t, e){
call.panel.bioRender.call(this,t,e)
if(_.some(cntlr.current().getNavigationController()._childViewControllers, { className: 'UTAcademySlotItemDetailsViewController' })){
this.fsuAcademy = true;
}
if("fsuAcademy" in this && this.fsuAcademy){
if(e.getMetaData().id !== e.definitionId){
let newMeta = repositories.PlayerMeta.get(e.definitionId);
if(newMeta){
e.setMetaData(newMeta)
}else{
console.log("尝试载入Meta失败")
}
}
if(!("fsuAcademyChange" in this)){
this.fsuAcademyChange = {};
let infoChange = [],CA = e.academy,attrChange = [],styleChange = [];
if(e.getBaseRarity() !== CA.rarity){
infoChange.push({type:0,index:0,value:0,count:true});
}
if(CA._positions.length){
infoChange.push({type:1,index:6,value:CA._positions.length,count:true});
}
let posAdd = e.possiblePositions.length > 1 ? 1 : 0;
if(CA.defensiveWorkRate || CA.offensiveWorkRate){
infoChange.push({type:0,index:6 + posAdd,value:0,count:true});
}
if(CA.weakfoot){
let changeWF = CA.weakfoot - e.getBaseWeakFoot();
if(changeWF){
infoChange.push({type:1,index:8 + posAdd,value:changeWF,count:true});
}
}
if(CA.skillMoves){
let changeSM = CA.skillMoves - e.getBaseSkillMoves();
if(changeSM){
infoChange.push({type:1,index:9 + posAdd,value:changeSM,count:true});
}
}
if(infoChange.length){
this.fsuAcademyChange[0] = infoChange;
}
if(e.rating > e.getBaseRating()){
attrChange.push({type:1,index:0,value:e.rating - e.getBaseRating(),count:true});
}
let attrCount = 0,
cardAttr = this.pinnedRow.itemCell.dataComponent.__root.querySelectorAll("li .value");
_.map(e.getAttributes(), (value, index) => {
attrCount++;
let attribute = value - e.getBaseAttribute(index);
if(attribute){
attrChange.push({type:1,index:attrCount,value:attribute,count:true});
if(cardAttr.length == 6){
cardAttr[index].style.color = "#00A7CC";
}
}
_.map(e.getSubAttributesByParent(index),sValue => {
attrCount++;
let cSubAttr = e.getSubAttribute(sValue),
bSbbAttr = e.getBaseSubAttributes()[sValue],
CBDiff = cSubAttr.value() - bSbbAttr.value();
if(CBDiff){
attrChange.push({type:1,index:attrCount,value:CBDiff,count:false});
}
})
});
if(attrChange.length){
this.fsuAcademyChange[1] = attrChange;
}
let styleCount = 0,
addStyleIds = _.map(_.concat(e.academy._baseTraits, e.academy._iconTraits),"traitId"),
baseStyle = e.playStyles;
_.map(_.groupBy(e.getPlayStyles(), 'category'),value => {
_.map(value,sValue => {
if(_.includes(addStyleIds,sValue.traitId)){
let styleAddType = 0;
let styleSource = _.find(baseStyle, o => o.traitId === sValue.traitId);
if(styleSource){
if(!styleSource.isIcon && sValue.isIcon){
styleAddType = 2;
}
}else{
styleAddType = 3;
}
if(styleAddType){
styleChange.push({type:styleAddType,index:styleCount,value:0,count:true})
}
}
styleCount++;
})
})
if(styleChange.length){
this.fsuAcademyChange[3] = styleChange;
}
//插入数字显示
_.map(this._navigation.items,i => {
if(_.has(this.fsuAcademyChange, i.id)){
let count = _.size(_.filter(this.fsuAcademyChange[i.id], { 'count': true }))
if(count){
i.addNotificationBubble(count)
i.notifBubble.__root.style.backgroundColor = "#007D99";
}
}
})
//插入价格显示
if(_.isObject(this.fsuAcademy)){
let coins = this.fsuAcademy.getPrice(GameCurrency.COINS),points = this.fsuAcademy.getPrice(GameCurrency.POINTS);
let priceBox = events.createElementWithConfig("div", {
classList:["ut-academy-slot-tile-view--prices"],
});
let titleBox = events.createElementWithConfig("div", {
textContent:services.Localization.localize("undoDiscard.row.priceLabel"),
style:{
paddingRight:".5rem",
fontSize:".8rem",
}
});
priceBox.appendChild(titleBox);
if(coins){
let coinsBox = events.createElementWithConfig("span", {
classList:["ut-academy-slot-tile-view--prices-coins"],
textContent:services.Localization.localizeNumber(coins)
});
priceBox.appendChild(coinsBox);
}
if(points){
let pointsBox = events.createElementWithConfig("span", {
classList:["ut-academy-slot-tile-view--prices-points"],
textContent:services.Localization.localizeNumber(points)
});
priceBox.appendChild(pointsBox);
}
if(!coins && !points){
let freeBox = events.createElementWithConfig("span", {
textContent:fy("academy.freetips")
});
priceBox.appendChild(freeBox);
}
this.pinnedRow.itemCell.__entityContainer.style.width = "100%";
this.pinnedRow.itemCell.__entityContainer.appendChild(priceBox);
}
if(_.isObject(this.fsuAcademy)){
this.fsuAcademy.status === AcademySlotState.NOT_STARTED && (this.fsuAcademy.player = new UTNullItemEntity,
this.fsuAcademy.levels.forEach(function(e) {
return e.boostedPlayer = null
}))
}
}
if(_.has(this,"fsuAcademyChange") && _.has(this.fsuAcademyChange,t)){
let changeAttr = this.fsuAcademyChange[t],
textType = ["change","add","upgrade","new"],
queryType = {"0":"h1","1":".title","3":"span"},
attrElement = this.__dataDisplay.querySelectorAll("li");
_.map(changeAttr,a => {
if(_.has(attrElement,a.index)){
let targetElement = attrElement[a.index].querySelector(queryType[t]);
let changeElement = events.createElementWithConfig("span", {
textContent:fy(a.type == 1 ? [`academy.bio.${textType[a.type]}`,a.value] : `academy.bio.${textType[a.type]}`),
style:{
paddingLeft:".2rem",
fontSize:"80%",
color:"#00d1ff"
}
})
targetElement.appendChild(changeElement)
}
})
}
}
}
UTMarketSearchFiltersView.prototype.setPinnedItem = function(e, t) {
call.panel.market.call(this,e,t)
let sbc = isPhone() ? cntlr.current().squadContext.squad.isSBC() : cntlr.current()._squad.isSBC();
if(e.definitionId && sbc && info.set.sbc_market && e.concept){
let p = events.getCachePrice(e.definitionId,1),v = this._maxBuyNowPriceRow._currencyInput._currencyInput,f = this._searchFilters.filters;
if(f[1].setId == "rarity" && f[1].getValue() == -1){
f[1].setIndexByValue(e.rareflag);
}
if(f[2].setId == "position" && f[2].getIndex() !== 0){
f[2].setIndex(0)
}
setTimeout(() => {
if(v.getValue() == 0){
if(p !== 0){
v.setValue(p);
console.log(v)
if(!isPhone()){
events.notice("notice.marketsetmax",1);
}
}
}
},50);
}
}
UTQuickListPanelViewController.prototype.renderView = function () {
call.panel.quickRender.call(this);
events.detailsButtonSet(this)
};
UTRewardSelectionChoiceView.prototype.expandRewardSet = function(e,t) {
call.panel.reward.call(this,e,t);
let reward = t.rewards.find(i => i.count),tn = this._rewardsCarousel._tnsCarousel.__root;
if(reward.isItem && reward.item.isPlayer() && info.set.player_futbin && tn.classList.length === 2 && tn.classList.contains("slider") && tn.classList.contains("rewards-slider-container")){
let player = reward.item;
this._fsuPlayer = events.createButton(
new UTStandardButtonControl(),
fy("quicklist.gotofutbin"),
(e) => {events.openFutbinPlayerUrl(e);},
"call-to-action mini fsu-reward-but"
)
if(!isPhone()){
this._fsuPlayer.__root.classList.add("pcr")
}
this._fsuPlayer.__root.setAttribute("data-id",player.definitionId);
this._fsuPlayer.__root.setAttribute("data-name",player._staticData.name);
tn.querySelector(".reward").appendChild(this._fsuPlayer.__root);
}
}
UTQuickListPanelView.prototype._generate = function (...args) {
if (!this._generated) {
call.panel.quick.call(this, ...args);
events.detailsButtonQuick(this)
}
};
UTDefaultActionPanelView.prototype._generate = function (...args) {
if (!this._generated) {
call.panel.default.call(this, ...args);
events.detailsButtonAction(this)
}
};
UTDuplicateLoanActionPanelView.prototype._generate = function (...args) {
if (!this._generated) {
call.panel.loan.call(this, ...args);
events.detailsButtonAction(this)
}
}
UTAuctionActionPanelView.prototype._generate = function (...args) {
if (!this._generated) {
call.panel.auction.call(this, ...args);
events.detailsButtonAction(this)
}
};
UTSlotActionPanelView.prototype._generate = function (...args) {
if (!this._generated) {
call.panel.slot.call(this, ...args);
events.detailsButtonAction(this)
}
};
UTTransferActionPanelView.prototype._generate = function (...args) {
if (!this._generated) {
call.panel.transfer.call(this, ...args);
events.detailsButtonAction(this)
}
};
events.conceptBuyBack = (w) =>{
let a = w.panelView || w.panel;
a._sendClubButton._tapDetected(this);
if(isPhone()){
let p = w._parentViewController,cv,cn;
for (let [n,v] of p._childViewControllers.entries()) {
if(v.className == "UTSBCSquadOverviewViewController"){
cv = v;
cn = n;
}
}
p.popToViewController(cv,cn)
}else{
cntlr.current()._ePitchTapped()
}
}
events.detailsButtonSet = (e) => {
if(!isPhone() && !cntlr.current().rightController) return;
let w = isPhone() ? cntlr.current() : cntlr.right();
if(w.hasOwnProperty("rootController")) w = w.rootController;
let a = w.panelView || w.panel;
if(!a){
return;
}
if(e.item.isPlayer()){
let pid = e.item.definitionId || 0;
//假想球员购买按钮
if(pid && e.item.concept && "_fsuConceptBuy" in a && events.getCachePrice(pid) && info.set.sbc_conceptbuy){
a._fsuConceptBuy.player = e.item;
a._fsuConceptBuy.setSubtext(events.getCachePrice(pid,1));
a._fsuConceptBuy.displayCurrencyIcon(!0);
a._fsuConceptBuy.setInteractionState(!0);
a._fsuConceptBuy.show();
}
//假想球员购买直接发送到俱乐部并返回阵容
//24.16 修复返回问题
if(a.hasOwnProperty("_sendClubButton") && w.getParentViewController().className == `UTItemDetailsNavigationController` && w.getParentViewController()._squadContext && a._sendClubButton.isInteractionEnabled() && e.item.definitionId == w.getParentViewController()._squadContext.squad.getPlayer(w.getParentViewController()._squadContext.slotIndex).item.definitionId && w.getParentViewController()._squadContext.squad.getPlayer(w.getParentViewController()._squadContext.slotIndex).item.concept && info.set.sbc_cback){
events.conceptBuyBack(w);
return;
}
if(pid && a.hasOwnProperty("_fsuPlayer")){
a._fsuPlayer.__root.setAttribute("data-id",pid);
a._fsuPlayer.__root.setAttribute("data-name",`${e.item._staticData.name}`);
a._fsuPlayer.setDisplay(1);
if(!info.set.player_futbin){
a._fsuPlayer.hide();
}
}
if(pid && a.hasOwnProperty("_fsuGP")){
a._fsuGP.__root.setAttribute("data-id",pid);
if(pdb.hasOwnProperty(pid)){
a._fsuGP.setText(fy("quicklist.getpricey"));
a._fsuGP.setSubtext(pdb[pid]);
a._fsuGP.displayCurrencyIcon(!0);
}
}
e.getView()._fsuAuction.__subtext.setAttribute('data-id',pid);
e.getView()._fsuAuction.__subtext.setAttribute('data-i',e.item.id || 0);
if(events.getCachePrice(pid)){
let lp = info.roster.data[pid].prices[info.base.platform].LCPrice;
if(lp && lp !== "0"){
e.getView()._fsuAuction.setSubtext(lp);
e.getView()._fsuAuction.setInteractionState(1);
if(a.hasOwnProperty("_fsuGP")){
a._fsuGP.__root.setAttribute("data-p",lp);
a._fsuGP.show();
}
}else{
e.getView()._fsuAuction.setSubtext(lp);
e.getView()._fsuAuction.setInteractionState(0);
}
}
if(!info.set.player_auction){
e.getView()._fsuAuction.hide();
}
if(a.hasOwnProperty("_fsuRat") && e.item.rating > 0){
a._fsuRat.__root.setAttribute("data-r",e.item.rating);
a._fsuRat.setInteractionState(1);
a._fsuRat.show();
}
//24.16 快速替换同评分黄金:按钮显示
if(a.hasOwnProperty("_fsuQuickGlod") && e.item.rating > 75 && e.item && e.item.isSpecial() && e.item.leagueId !== 1003 && e.item.leagueId !== 1014){
let defId = _.map(w.squad.getPlayers(), 'item.definitionId');
let tempC = {"rating":e.item.rating,"rs":9,"lock":false};
tempC.NEdatabaseId = defId;
let goldList = events.getItemBy(2,events.ignorePlayerToCriteria(tempC));
if(goldList.length){
let playerIndex = _.findIndex(w.squad.getPlayers(),(i) => i.item.definitionId == e.item.definitionId);
a._fsuQuickGlod.__root.setAttribute("data-index",playerIndex);
a._fsuQuickGlod.oldPlayer = e.item;
a._fsuQuickGlod.newPlayer = _.cloneDeep(goldList[0]);
a._fsuQuickGlod.challenge = w.challenge;
a._fsuQuickGlod.setInteractionState(1);
a._fsuQuickGlod.show();
}
}
//24.18 可进化标识:查看按钮添加
if(e.item.loans === -1 && e.item.id && e.item.isPlayer() && !a.hasOwnProperty("_fsuAcademyHtml") && !e.item.isGK()){
let academy = [];
_.map(repositories.Academy.getSlots(), v => {
if(v.meetsRequirements(e.item)){
_.map(v.eligibilityRequirements,er => {
if(er.getFirstKey() == AcademyEligibilityAttribute.OVR && er.scope == 1){
if(e.item.rating > er.getValue(er.getFirstKey()) - 6){
let academyMember = {
academy:v,
player:e.item.id
}
academy.push(academyMember)
}
}
})
}
});
a._fsuAcademyHtml = events.createElementWithConfig("div",{
classList:["ut-button-group"]
})
if(academy.length){
_.map(academy,i => {
let academyBut = events.createButton(
new UTGroupButtonControl(),
fy(["academy.btntext",i.academy.slotName]),
(e) => {
var academyViewmodel = new UTAcademyViewModel(services.Academy);
academyViewmodel.setSlots(repositories.Academy.getSlots());
academyViewmodel.setSelectedSlot(e.academy.id);
var targetView = e.parent;
academyViewmodel.getSlotPreview(e.academy.id,e.player).observe(targetView, function(e, t) {
if (e.unobserve(targetView),t.success && JSUtils.isObject(t.data)) {
let selectedAcademy = t.data.updatedSlot;
let academyBio = new UTPlayerBioViewController;
academyBio.initWithItem(selectedAcademy.levels[selectedAcademy.levels.length - 1].boostedPlayer);
targetView.getNavigationController();
targetView.getNavigationController().pushViewController(academyBio);
academyBio.getView().fsuAcademy = selectedAcademy;
targetView.getNavigationController().setNavigationTitle(selectedAcademy.slotName);
} else if (!t.success) {
var r = void 0
, s = services.Localization
, a = services.Notification;
(r = NetworkErrorManager.checkCriticalStatus(t.status) ? (NetworkErrorManager.handleStatus(t.status),
s.localize("academy.preview.loaderror")) : t.status === HttpStatusCode.SERVICE_UNAVAILABLE_ERROR || (null === (i = t.error) || void 0 === i ? void 0 : i.code) === UtasErrorCode.SERVICE_IS_DISABLED ? s.localize("academy.feature.disabled") : s.localize("academy.preview.unexpectederror")) && a.queue([r, UINotificationType.NEGATIVE])
}
})
},
"accordian"
)
academyBut.setSubtext(services.Localization.localizeAuctionTimeRemaining(i.academy.getEnrollmentTimeRemaining()))
academyBut.player = i.player;
academyBut.academy = i.academy;
academyBut.parent = w;
if(a.className == "UTAuctionActionPanelView" || e.item._auction._tradeState == "closed"){
academyBut.setInteractionState(0)
}
a._fsuAcademyHtml.appendChild(academyBut.getRootElement());
})
let targetElement = a?.__itemActions ? a.__itemActions : a?._playerBioButton ? a._playerBioButton.__root.parentNode : false;
if(targetElement){
targetElement.before(a._fsuAcademyHtml)
}
}
}
}else{
e.getView()._fsuAuction.setDisplay(!1);
}
if(!info.set.player_getprice || services.User.getUser().tradeAccess !== TradeAccessLevel.ALLOWED){
a._fsuGP.hide();
}
if(a.hasOwnProperty("_fsuSwap") && a.hasOwnProperty("_fsuUn")){
if(e.item.id){
a._fsuSwap.__text.innerText = fy("sbc.swapquick");
a._fsuUn.__text.innerText = fy("sbc.swapduplicate");
a._fsuChem.__text.innerText = fy("sbc.swapchem");
}else{
a._fsuSwap.__text.innerText = fy("sbc.addquick");
a._fsuUn.__text.innerText = fy("sbc.addduplicate");
a._fsuChem.__text.innerText = fy("sbc.addchem");
}
if(Object.keys(info.criteria).length){
a._fsuSwap.setInteractionState(1);
}
let ul = cntlr.current()._squad._players.map(function (i) {if(i.item.definitionId > 0){return i.item.definitionId}}).filter(Boolean);
let rul = services.Item.itemDao.itemRepo.getUnassignedItems().map(i => {
if (i.isDuplicate() && !i.isLimitedUse() && i.isPlayer()) {
if(ul.length){
if(ul.indexOf(i.definitionId) == -1){
return i.definitionId
}
}else{
return i.definitionId
}
}
}).filter(Boolean);
if(rul.length){
a._fsuUn.setInteractionState(1);
}else{
a._fsuUn.__text.innerText = fy("sbc.notduplicate")
}
if(!info.set.sbc_quick){
a._fsuSwap.hide();
}
if(!info.set.sbc_duplicate){
a._fsuUn.hide();
}
//SBC状态置为0
if(w.hasOwnProperty("parentViewController") && w.parentViewController){
events.sbcQuerySetFillAttr(w.parentViewController,0,false,3)
}
//默契球员按钮判断
if(w.hasOwnProperty("challenge") && w.viewmodel.getIndex() < 11 && w.squad.getFieldPlayers().filter(i => i.getItem().rating > 0).length){
let c = 0,r = 0,q = 0;
for (let se of w.challenge.eligibilityRequirements) {
if(se.getFirstKey() === 35){
c = se.getFirstValue(35)
}
if(se.getFirstKey() === 19){
r = se.getFirstValue(19)
}
if(se.getFirstKey() === 3){
q = `${se.scope == 0 ? ">=" : se.scope == 1 ? "<=" : "="}${se.getFirstValue(3)}`
}
}
if(c){
a._fsuChem.show();
a._fsuChem.__root.setAttribute("data-c",c);
a._fsuChem.__root.setAttribute("data-r",r);
a._fsuChem.__root.setAttribute("data-q",q);
a._fsuChem._parent = w;
}
}
if(w.hasOwnProperty("challenge") && w.challenge.meetsRequirements() && info.set.sbc_meetsreq && w.viewmodel.getIndex() < 11){
a._fsuMeets.show();
a._fsuMeets._parent = w;
}
}
//插入假想球员搜索按钮
if(!("_fsuConceptSearch" in a) && "squad" in w && w.squad.isSBC() && e.item.isPlayer() && e.item.concept){
let btnBox = events.createElementWithConfig("div",{
classList:["ut-button-group"]
})
a._fsuConceptSearch = [];
let btnSetting = {club:[`teamId:club`,`leagueId:league`],league:[`leagueId:league`,`nationId:nation`]};
_.map(btnSetting,function(value, key) {
let btn = events.createButton(
new UTGroupButtonControl(),
fy(`searchconcept.same${key}`),
async(e) => {
events.SBCSetRatingPlayers(e);
},
""
)
btn.getRootElement().setAttribute("data-r","conceptsearch");
btn.criteria = {}
_.map(value,attrKey => {
let cKey = attrKey.split(":");
btn.criteria[cKey[1]] = e.item[cKey[0]];
})
a._fsuConceptSearch.push(btn);
btnBox.appendChild(btn.getRootElement());
});
a._fsuConceptSearchBox = btnBox;
a._fsuButtons.insertAdjacentElement('afterend', btnBox);
}
//插入挑战需求购买按钮
if(!("_fsuRequests" in a) && "squad" in w && w.squad.isSBC() && "_fsuRequests" in w.squad && e.item.isPlayer()){
let btnBox = events.createElementWithConfig("div",{
classList:["ut-button-group"]
})
a._fsuRequests = [];
_.map(w.squad._fsuRequests,(i) => {
let btn = events.createButton(
new UTGroupButtonControl(),
fy([`requirements.${e.item.id ? "swap" : "add"}btn`,i.name]),
async(e) => {
events.SBCSetRatingPlayers(e);
},
""
)
btn.criteria = i.criteria;
btn.getRootElement().setAttribute("data-r","eligibilitysearch");
let currentNumber = "",firstKey = i.value.getFirstKey();
if(firstKey == SBCEligibilityKey.PLAYER_MIN_OVR){
currentNumber = w.challenge.getNumberOfPlayersByOVR(firstKey,i.value.getFirstValue(firstKey));
}else if(firstKey == SBCEligibilityKey.PLAYER_RARITY_GROUP){
currentNumber = w.challenge.getNumberOfPlayersByGroup(i.value.getFirstValue(firstKey));
}else{
currentNumber = w.challenge.getRequirementCounter(i.value);
}
btn.setSubtext(`${currentNumber}/${i.value.count}`);
a._fsuRequests.push(btn);
btnBox.appendChild(btn.getRootElement());
})
a._fsuRequestsBox = btnBox;
a._fsuButtons.insertAdjacentElement('afterend', btnBox);
}
}
events.requirementsToText = (e) => {
let L10n = services.Localization;
let text = ``;
let rKey = e.getFirstKey();
let rIds = e.getValue(rKey);
function combine(t) {
return _.map(t, function(value, index, array) {
return index < array.length - 1 ? value + " " + _.toUpper(L10n.localize("label.general.or")) : value;
}).join(" ");
}
switch(rKey){
case SBCEligibilityKey.CLUB_ID:
text = combine(_.uniq(_.map(rIds, (value) => {
return UTLocalizationUtil.teamIdToAbbr15(value, L10n)
})))
break;
case SBCEligibilityKey.LEAGUE_ID:
text = combine(_.map(rIds, (value) => {
return UTLocalizationUtil.leagueIdToName(value, L10n)
}))
break;
case SBCEligibilityKey.NATION_ID:
text = combine(_.map(rIds, (value) => {
return UTLocalizationUtil.nationIdToName(value, L10n)
}))
break;
case SBCEligibilityKey.PLAYER_RARITY:
text = combine(_.map(rIds, (value) => {
return L10n.localize(`item.raretype${value}`)
}))
break;
case SBCEligibilityKey.PLAYER_MIN_OVR:
text = combine(_.map(rIds, (value) => {
return L10n.localize("sbc.requirements.rating.min.val", [value])
}))
break;
case SBCEligibilityKey.PLAYER_RARITY_GROUP:
text = combine(_.map(rIds, (value) => {
return L10n.localize(`Player_Group_${value}`)
}))
break;
default:
text = e.getValue(e.getFirstKey()).join();
}
return text;
}
events.detailsButtonQuick = (e) => {
let pa = events.createButton(
new UTGroupButtonControl(),
fy("quicklist.auction"),
(e) => {
events.showLoader();
let p = Number(e.__subtext.innerText.replace(/,/g, '')),i = Number(e.__subtext.getAttribute("data-i"));
events.playerToAuction(i,p,1);
events.hideLoader();
},
"accordian fsuBuy"
)
pa.setSubtext(0);
pa.displayCurrencyIcon(!0);
pa.setInteractionState(!1);
e._fsuAuction = pa;
e._btnToggle.__root.after(e._fsuAuction.__root);
}
//添加fut默认按钮
events.createButton = (s,t,b,c) => {
const btn = s;
btn.init();
btn.addTarget(btn, b.bind(btn), EventType.TAP);
btn.setText(t);
if(c){
const cl = c.split(" ").filter(Boolean);
for (let ci of cl) btn.getRootElement().classList.add(ci);
}
return btn;
}
//添加fut滑动切换选项
events.createToggle = (t,b) => {
const te = new UTToggleCellView;
te.init();
te.addTarget(te, b.bind(te), EventType.TAP);
te.setLabel(t);
return te;
}
//添加futHome块
events.createTile = (a,b,c) => {
const t = new UTGraphicalInfoTileView;
t.__root.classList.add("col-1-3");
t.loadContentView();
t.__tileContent.querySelector(".image").remove()
t.init();
t.addTarget(t, c.bind(t), EventType.TAP);
t.setTitle(a);
t.setDescription(b);
return t;
}
events.detailsButtonAction = (e) =>{
let fb = events.createButton(
new UTGroupButtonControl(),
fy("quicklist.gotofutbin"),
(e) => {events.openFutbinPlayerUrl(e);},
"more"
)
fb.setDisplay(!1)
e._fsuPlayer = fb;
let pb = e._playerBioButton || e._btnPlayerBio;
pb.__root.after(e._fsuPlayer.__root);
let fg = events.createButton(
new UTGroupButtonControl(),
fy("quicklist.getprice"),
(e) => {events.getAuction(e);},
"accordian fsuGP"
)
fg.hide();
e._fsuGP = fg;
let pg = e._btnDiscard || e._findRelatedButton || e._btnSearchMarket || e._discardButton;
if(pg){
pg.__root.after(e._fsuGP.__root);
}
if(e.hasOwnProperty("_btnAddSwap") && cntlr.current()._squad.isSBC()){
let fbg = document.createElement("div");
fbg.classList.add("ut-button-group");
e._fsuConceptBuy = events.createButton(
new UTGroupButtonControl(),
fy("conceptbuy.btntext"),
async(e) => {
events.buyConceptPlayer([e.player],e._parent);
},
""
)
e._fsuConceptBuy._parent = e;
e._fsuConceptBuy.setInteractionState(!1);
e._fsuConceptBuy.hide();
fbg.appendChild(e._fsuConceptBuy.__root);
let fq = events.createButton(
new UTGroupButtonControl(),
"quickSwap",
async() => {
let b = isPhone() ? cntlr.current().rootController : cntlr.right();
events.sbcQuerySetFillAttr(b.parentViewController,1,[],3)
b.panelView._btnAddSwap._tapDetected(this);
console.log("快捷添加状态变为",1)
},
""
)
fq.setInteractionState(!1);
e._fsuSwap = fq;
fbg.appendChild(e._fsuSwap.__root);
let fu = events.createButton(
new UTGroupButtonControl(),
"unassigned",
async() => {
let b = isPhone() ? cntlr.current().rootController : cntlr.right();
let p = events.getDedupPlayers(events.getItemBy(2,{"definitionId":services.Item.itemDao.itemRepo.getUnassignedItems().map( i => { if(i.isDuplicate() && !i.isLimitedUse() && i.isPlayer()){return i.definitionId}}),"academy":null}),b.squad.getPlayers());
if(p.length){
events.sbcQuerySetFillAttr(b.parentViewController,3,p,3)
b.panelView._btnAddSwap._tapDetected(this);
}else{
events.notice("notice.noplayer",2);
}
},
""
)
fu.setInteractionState(!1);
e._fsuUn = fu;
fbg.appendChild(e._fsuUn.__root);
let fr = events.createButton(
new UTGroupButtonControl(),
fy("sbc.swaprating"),
(e) => {events.SBCSetRatingPlayers(e);},
""
)
fr.setInteractionState(!1);
fr.hide();
e._fsuRat = fr;
fbg.appendChild(e._fsuRat.__root);
//24.16 快速替换同评分黄金:按钮添加
let qsg = events.createButton(
new UTGroupButtonControl(),
fy("sbc.swapgold"),
(e) => {
console.log(e);
events.showLoader();
let playerIndex = e.challenge.squad._getPlayerSlotByItemId(e.oldPlayer.id).getIndex();
let playerList = _.cloneDeep(_.map(e.challenge.squad.getPlayers() , i => i.item));
playerList[playerIndex].definitionId = e.newPlayer.definitionId;
playerList[playerIndex].id = e.newPlayer.id;
console.log(playerList)
events.saveSquad(e.challenge,e.challenge.squad,playerList,[]);
events.hideLoader();
events.saveOldSquad(e.challenge.squad,false);
if(!isPhone()){
e._parent.getSuperview().items._collection[e._parent.getSuperview().items._index].render(e.newPlayer)
}
},
""
)
qsg.hide();
qsg._parent = e;
e._fsuQuickGlod = qsg;
fbg.appendChild(e._fsuQuickGlod.__root);
let fcm = events.createButton(
new UTGroupButtonControl(),
fy("sbc.swapchem"),
(e) => {events.SBCSetChemPlayers(e);},
""
)
fcm.hide();
e._fsuChem = fcm;
fbg.appendChild(e._fsuChem.__root);
let fcmr = events.createButton(
new UTGroupButtonControl(),
fy("meetsreq.btntext"),
(e) => {events.SBCSetMeetsPlayers(e);},
""
)
fcmr.hide();
e._fsuMeets = fcmr;
fbg.appendChild(e._fsuMeets.__root);
e._fsuButtons = fbg;
e.__itemActions.before(e._fsuButtons)
}
}
//满足条件球员读取程序
events.SBCSetMeetsPlayers = async(e) => {
let newChallenge = events.createVirtualChallenge(e._parent.challenge);
let defList = e._parent.challenge.squad.getPlayers().map(i => {return i.getItem().definitionId}).filter(Boolean);
let search = {"NEdatabaseId":defList};
let shortlist = events.getItemBy(2,search);
let playerIndex = e._parent.viewmodel.current().getIndex();
let currentList = newChallenge.squad.getPlayers().map(i => {return i.getItem()});
let resultList = [];
for (let player of shortlist) {
currentList[playerIndex] = player;
newChallenge.squad.setPlayers(currentList);
if(newChallenge.meetsRequirements()){
resultList.push(player)
}
}
if(resultList.length > 0){
let b = isPhone() ? cntlr.current().rootController : cntlr.right();
events.sbcQuerySetFillAttr(b.parentViewController,7,resultList,3)
await b.panelView._btnAddSwap._tapDetected(this);
}else{
events.notice("meetsreq.error",2);
}
}
//默契球员读取程序
events.SBCSetChemPlayers = async(e) => {
let needChem = Number(e.__root.getAttribute('data-c'));
let needRating = Number(e.__root.getAttribute('data-r'));
let needQuality = e.__root.getAttribute('data-q');
let needPos = e._parent.viewmodel.current().generalPosition;
let playerIndex = e._parent.viewmodel.current().getIndex();
let isPlayer = e._parent.viewmodel.current().isValid();
let playerChem = e._parent.viewmodel.current().chemistry;
let currentList = e._parent.squad.getFieldPlayers().map(i => {return i.item});
let defList = e._parent.viewmodel.values().map(i => {return i.item.definitionId});
let search = {"NEdatabaseId":defList,"bepos":needPos};
let currentChem = e._parent.squad.getChemistry();
// if(needRating){
// search.BTWrating = [needRating-5,needRating+5]
// }
if(needQuality != "0"){
search.quality = needQuality
}
let shortlist = events.getItemBy(2,search);
let squad = e._parent.squad;
let formation = squad.getFormation();
let manager = squad.getManager().item;
let resultList = [];
for (let player of shortlist) {
currentList[playerIndex] = player;
let chemResult = squad.chemCalculator.calculate(formation, currentList, manager);
let countChem = chemResult.chemistry;
let changePlayerChem = chemResult.getSlotChemistry(playerIndex).value();
let playerChemAdjust = playerChem == 3 ? 2 : playerChem;
let playerChemNeed = isPlayer ? changePlayerChem >= playerChemAdjust : changePlayerChem > playerChemAdjust;
if(countChem >= needChem || (countChem >= currentChem && playerChemNeed)){
resultList.push(player);
}
}
if(resultList.length > 0){
let b = isPhone() ? cntlr.current().rootController : cntlr.right();
events.sbcQuerySetFillAttr(b.parentViewController,7,resultList,3)
await b.panelView._btnAddSwap._tapDetected(this);
}else{
events.notice("notice.notchemplayer",2);
}
}
events.playerQuickAuction = async(e) => {
let p = Number(e.__subtext.innerText.replace(/,/g, ''));
if(!p) return;
let w = isPhone() ? cntlr.current() : cntlr.right();
await w._quickListPanel.getView()._bidNumericStepper.setValue(p);
await w._quickListPanel.getView()._buyNowNumericStepper.setValue(p);
await w._quickListPanel.getView()._listButton._tapDetected(this);
events.notice("notice.quickauction",1);
}
UTObjectivesHubView.prototype.setupNavigation = function(e) {
call.task.objN.call(this,e)
let t = this._objectivesTM.items;
if(!info.task.obj || !Object.keys(info.task.obj.stat).length){return}
for (let i of t) {
if(info.task.obj.stat.new.hasOwnProperty(i.id)){
if(!info.set.info_obj) return;
i.__root.append(events.createDF(fy(html.taskBar).replace("{Number}",`+${info.task.obj.stat.new[i.id]}`)))
}
}
}
//目标普通任务(非赛季)奖励信息显示
//24.20 改为使用预估价值
UTObjectiveCategoryView.prototype.setCategoryGroups = function(i, e, o, n) {
call.task.objG.call(this ,i, e, o, n)
let g = this.groups;
for (let i of g) {
if(!info.task.obj || !Object.keys(info.task.obj.stat).length){return}
if(info.task.obj.stat[i.id].f){
i.getRootElement().insertBefore(events.createDF(`