"use strict";
var PausedInfo = null; // 暂停面板
var KickAcceptStartTime = 0; //投票踢人确定界面状态
var hEventStartCard = null; //选择初始卡完成事件监听
var AiChooseData = null;
var IsRankCreated = false;
var IsTeamRankCreated = false;
var IsShowingMsg = false;
var RefreshRunning = false;
var TowerList = CustomNetTables.GetTableValue("CustomGameInfo", "thtd_tower_list");
GameUI.GameData = CustomNetTables.GetTableValue("CustomGameInfo", "GameData");
GameUI.PlayerData = CustomNetTables.GetTableValue("CustomGameInfo", "PlayerData_" + GetSteamID());
GameUI.Wave = 0;
var SpecialTowerList = {
"item_3011": {
"quality": 4,
"cardname": "item_3011"
},
"item_3012": {
"quality": 4,
"cardname": "item_3012"
},
"item_3013": {
"quality": 4,
"cardname": "item_3013"
},
"item_3014": {
"quality": 4,
"cardname": "item_3014"
},
"item_3015": {
"quality": 4,
"cardname": "item_3015"
},
"item_3016": {
"quality": 4,
"cardname": "item_3016"
},
"item_3017": {
"quality": 4,
"cardname": "item_3017"
},
"item_3018": {
"quality": 4,
"cardname": "item_3018"
},
"item_3019": {
"quality": 4,
"cardname": "item_3019"
},
"item_3020": {
"quality": 4,
"cardname": "item_3020"
},
"item_3021": {
"quality": 4,
"cardname": "item_3021"
},
"item_3022": {
"quality": 4,
"cardname": "item_3022"
},
"item_3023": {
"quality": 4,
"cardname": "item_3023"
},
"item_3024": {
"quality": 4,
"cardname": "item_3024"
},
"item_3025": {
"quality": 4,
"cardname": "item_3025"
},
"item_3026": {
"quality": 4,
"cardname": "item_3026"
},
"item_3027": {
"quality": 4,
"cardname": "item_3027"
},
"item_3028": {
"quality": 4,
"cardname": "item_3028"
},
"item_3029": {
"quality": 4,
"cardname": "item_3029"
},
"item_3030": {
"quality": 4,
"cardname": "item_3030"
},
"item_3031": {
"quality": 4,
"cardname": "item_3031"
},
"item_3032": {
"quality": 4,
"cardname": "item_3032"
},
"item_3033": {
"quality": 4,
"cardname": "item_3033"
},
"item_3034": {
"quality": 4,
"cardname": "item_3034"
},
"item_3035": {
"quality": 4,
"cardname": "item_3035"
},
"item_3050": {
"quality": 4,
"cardname": "item_3050"
},
"item_3150": {
"quality": 4,
"cardname": "item_3150"
},
"item_3151": {
"quality": 4,
"cardname": "item_3151"
},
"item_3152": {
"quality": 4,
"cardname": "item_3152"
},
"item_3149": {
"quality": 4,
"cardname": "item_3149"
}
}
// 获取steamid
var m_SteamID = null;
function GetSteamID() {
if (!m_SteamID) {
m_SteamID = Game.GetLocalPlayerInfo().player_steamid.toString();
// Game.GetLocalPlayerInfo():
// $.Msg(Game.GetPlayerInfo(0));
// {"player_id":0,"player_name":"倚楼听风137120760","player_connection_state":2,"player_steamid":"76561198097386488",
// "player_kills":0,"player_deaths":0,"player_assists":0,"player_selected_hero_id":25,"player_selected_hero":"npc_dota_hero_lina",
// "player_selected_hero_entity_index":-1,"possible_hero_selection":"","player_level":0,"player_respawn_seconds":0,
// "player_gold":4500,"player_team_id":2,"player_is_local":true,"player_has_host_privileges":true}
}
return m_SteamID;
}
function FindDotaHudElement(id){
var hudRoot;
for(var panel=$.GetContextPanel();panel!=null;panel=panel.GetParent()){
hudRoot = panel;
}
var comp = hudRoot.FindChildTraverse(id);
return comp;
}
function ShowMessage(text, duration, isError, marginTop) {
var label = $.CreatePanel("Label", $.GetContextPanel(), "");
label.style["background-color"] = isError ? "#A22C00" : "#000E";
label.style["color"] = isError ? "#fff" : "#F37702";
label.style["padding"] = "20px";
label.style["font-size"] = "30px";
if (marginTop && marginTop !== 0) label.style["margin-top"] = marginTop + "px";
label.style["horizontal-align"] = "center";
label.style["vertical-align"] = "center";
label.html = true;
label.text = text;
label.DeleteAsync(duration && duration > 0 ? duration : 3);
}
//加载网页
var videoPage = GameUI.CreateHtml(function(){/*
*/});
// 永久暂停
function PauseGame() {
// if (Game.IsGamePaused()) {
// return
// }
if (Players.IsSpectator(Players.GetLocalPlayer())) {
return;
}
if (Entities.IsStunned(Players.GetPlayerHeroEntityIndex(Players.GetLocalPlayer()))) {
return;
}
GameEvents.SendCustomGameEventToServer("custom_game_pause_game", {});
}
/*===============更新波数漏怪信息====================*/
function UpdateCreepInfo(table) {
// {"creature_kill_count":0,"creep_count":0,"creep_count_max":0,"food_count":0}
if (!table) return;
var CreepCount = $("#CreepCount");
CreepCount.SetDialogVariableInt("count", table["creep_count"]);
CreepCount.SetDialogVariableInt("max_count", table["creep_count_max"]);
var CreepCountPercentage = ((table["creep_count"]/table["creep_count_max"])*100 || 0);
$("#CreepCountProcessBarPCT").style.width = CreepCountPercentage + "%";
}
function UpdateAttackingInfo(table) {
if (!table) return;
var RemainingTime = Math.floor(table["RemainingTime"] || 0);
if (RemainingTime <= 0) RemainingTime = 0;
GameUI.Wave = table["Wave"];
$("#WaveText").SetDialogVariableInt("wave", table["Wave"] > 50 ? (table["Wave"] - 50) : (table["Wave"] > 0 ? table["Wave"] : 0));
$("#AttackingProcessTime").text = RemainingTime;
$("#AttackingProcessTime").SetHasClass("soon", RemainingTime <= 5);
}
// 少女之抵抗伤害计于统计
GameUI.DpsFix = function (dps, wave) {
if (wave < 280 + 50) return dps;
var unlimitedResist = 0.0;
if (wave <= 50 + 3220) {
unlimitedResist = Math.floor((wave - 50 - 250)/30);
} else {
unlimitedResist = 99 + Math.min(0.999, 0.001 * Math.floor((wave - 50 - 3220) / 2));
}
return Math.floor(dps/(1 - unlimitedResist/100));
}
/*===============选择初始卡====================*/
function SelectStartCard( item_name ) {
GameEvents.SendCustomGameEventToServer("custom_game_select_start_card", {'ItemName':item_name});
}
function OnSelectStartCardFinish(data) {
$("#SelectStartCard").SetHasClass("Hidden", true);
$("#SelectStartCard").DeleteAsync(0.6);
GameEvents.Unsubscribe(hEventStartCard);
SelectStartBonusCard();
}
//开局SSR奖励卡选择,共用。
function SelectStartBonusCard() {
if (Entities.GetLevel(Players.GetPlayerHeroEntityIndex(Players.GetLocalPlayer())) >= 9) return;
var list = {};
var keys = Object.keys(TowerList);
for (var i = 0; i < keys.length; i++) {
var itemname = keys[i];
var quality = TowerList[itemname].quality;
var unitname = TowerList[itemname].cardname;
if (quality === 4 && unitname.substr(0, 4) !== "item" && unitname !== "BonusEgg") list[itemname] = itemname;
}
SelectCardShowCards(list, true, false);
}
/*===============选择卡牌(御币)====================*/
function OnSelectCardShow(data) {
if (typeof data.cards === "object") {
SelectCardShowCards(data.cards, false, false);
}
}
function OnSelectBonusCardShow(data) {
if (typeof data.cards === "object") {
SelectCardShowCards(data.cards, false, true);
}
}
function SelectCardClose() {
$("#SelectCardPanel").SetHasClass("Hide", true);
}
function SelectCardShowCards(cards, isStartBonus, isSpecialBonus) {
var CardPoolContent = $("#SelectCardPoolContent");
var index = 0;
var itemNameList = Object.keys(cards);
itemNameList.sort();
if (isStartBonus && (GameUI.GameData.is_open_day === 1 || GameUI.LuckCardName === "all")) {
itemNameList = ["item_3150","item_3151","item_3152"].concat(itemNameList);
cards["item_3150"] = "item_3150";
cards["item_3151"] = "item_3151";
cards["item_3152"] = "item_3152";
if (GameUI.LuckCardName === "all") {
itemNameList = ["item_3149"].concat(itemNameList);
cards["item_3149"] = "item_3149";
}
}
for (var i = 0; i < itemNameList.length; i++) {
// for(var i in cards) {
var itemname = cards[itemNameList[i]];
var data = TowerList[itemname];
if (!data) data = SpecialTowerList[itemname];
if (!data) {
$.Msg("---- card data not exist : ", itemname);
continue;
}
var panel = CardPoolContent.GetChild(index++);
if (!panel) {
panel = $.CreatePanel("Panel", CardPoolContent, "");
panel.BLoadLayoutSnippet("CardPoolCard");
}
SetCardEvent(panel, true, isStartBonus, isSpecialBonus);
panel.SetHasClass("SSR", false);
panel.SetHasClass("SR", false);
panel.SetHasClass("R", false);
panel.SetHasClass(GetQualityText(data.quality), true);
panel.SetAttributeString("itemname", itemname);
panel.SetHasClass(GetQualityText(data.quality), true);
panel.FindChild("CardImage").SetImage("s2r://panorama/images/custom_game/cards/" + data.cardname + "_png.vtex");
panel.visible = true;
}
var max = CardPoolContent.GetChildCount();
for (var i = index; i < max; i++) {
CardPoolContent.GetChild(i).visible = false;
}
$("#SelectCardPanel").SetHasClass("Hide", false);
$("#SelectCardHeaderText").text = isStartBonus ? $.Localize("#td_select_bonus_card_vip") : (isSpecialBonus ? $.Localize("#td_select_battle_bonus_card") : $.Localize("#td_select_card"));
}
// 与排行榜明细的共用
function SetCardEvent(card, can_activate, isStartBonus, isSpecialBonus) {
card.SetPanelEvent("onmouseover", function () {
var name = card.GetAttributeString("itemname", "");
$.DispatchEvent("DOTAShowAbilityTooltip", card, name);
});
card.SetPanelEvent("onmouseout", function () {
$.DispatchEvent("DOTAHideAbilityTooltip");
});
if (can_activate)
card.SetPanelEvent("onactivate", function () {
var name = card.GetAttributeString("itemname", "");
if (name === "item_3050") return;
SelectCardClose();
if (isStartBonus)
GameEvents.SendCustomGameEventToServer("custom_game_select_bonus_card", {ItemName:name});
else if (isSpecialBonus)
GameEvents.SendCustomGameEventToServer("select_battle_bonus_card", {itemname:name});
else
GameEvents.SendCustomGameEventToServer("select_card", {itemname:name});
});
}
/*===============更新卡池====================*/
function CardPoolSetTowerTooltip( panel ) {
panel.SetPanelEvent("onmouseover", function () {
var text = $.Localize("#DOTA_Tooltip_ability_" + panel.GetAttributeString("itemName", ""));
$.DispatchEvent("DOTAShowTextTooltip", panel, text)
});
panel.SetPanelEvent("onmouseout", function () {
$.DispatchEvent("DOTAHideTextTooltip")
});
}
function CardPoolUpdate(table) {
if (!table) return;
// {"1":{"itemName":"item_2008","quality":2,"count":4},"2":{"itemName":"item_0002","quality":2,"count":3},"3":{"itemName":"item_0080","quality":4,"count":1},"4":{"itemName":"item_0092","quality":2,"count":2},"5":{"itemName":"item_0004","quality":1,"count":10},"6":{"itemName":"item_0057","quality":2,"count":1},"7":{"itemName":"item_2004","quality":2,"count":4},"8":{"itemName":"item_2019","quality":2,"count":4},"9":{"itemName":"item_2020","quality":4,"count":4},"10":{"itemName":"item_0058","quality":2,"count":2},"11":{"itemName":"item_2017","quality":3,"count":4},"12":{"itemName":"item_0036","quality":4,"count":2},"13":{"itemName":"item_2007","quality":2,"count":4},"14":{"itemName":"item_0052","quality":4,"count":2},"15":{"itemName":"item_2015","quality":3,"count":4},"16":{"itemName":"item_2024","quality":3,"count":1},"17":{"itemName":"item_2001","quality":3,"count":4},"18":{"itemName":"item_2006","quality":2,"count":4},"19":{"itemName":"item_0088","quality":2,"count":5},"20":{"itemName":"item_2023","quality":3,"count":1},"21":{"itemName":"item_0007","quality":1,"count":7},"22":{"itemName":"item_2016","quality":3,"count":4},"23":{"itemName":"item_0006","quality":1,"count":8},"24":{"itemName":"item_0097","quality":2,"count":3},"25":{"itemName":"item_0034","quality":2,"count":1},"26":{"itemName":"item_0096","quality":3,"count":2},"27":{"itemName":"item_2002","quality":4,"count":1},"28":{"itemName":"item_0016","quality":2,"count":2},"29":{"itemName":"item_0041","quality":3,"count":2}}
var CardPoolContent = $("#CardPoolContent");
var index = 0;
var keys = Object.keys(table);
keys.sort(function (a,b) {
var ad = table[a];
var bd = table[b];
if (ad.quality < bd.quality) return 1;
if (ad.quality == bd.quality) return 0;
if (ad.quality > bd.quality) return -1;
})
var len = keys.length;
for (var i = 0; i < len; i++) {
var data = table[keys[i]];
if (data.count <= 0) continue;
var panel = CardPoolContent.GetChild(index++);
if (!panel) {
panel = $.CreatePanel("Panel", CardPoolContent, "");
panel.BLoadLayoutSnippet("Tower");
CardPoolSetTowerTooltip(panel);
}
panel.FindChild("Item").itemname = data.itemName;
panel.FindChild("Count").text = data.count;
panel.SetAttributeString("itemName", data.itemName)
panel.visible = true;
}
var max = CardPoolContent.GetChildCount();
for (var i = index; i < max; i++) {
CardPoolContent.GetChild(i).visible = false;
}
}
/*===============刷新符卡精华和宠物等级====================*/
function UpdateGamePoint() {
if (!RefreshRunning) {
RefreshRunning = true;
GameEvents.SendCustomGameEventToServer("custom_game_update_data", {});
}
}
/*===============开始处理====================*/
;(function(){
GameUI.SetDefaultUIEnabled( DotaDefaultUIElement_t.DOTA_DEFAULT_UI_TOP_BAR_BACKGROUND, false );
GameUI.SetDefaultUIEnabled( DotaDefaultUIElement_t.DOTA_DEFAULT_UI_TOP_TIMEOFDAY, false );
GameUI.SetDefaultUIEnabled( DotaDefaultUIElement_t.DOTA_DEFAULT_UI_TOP_HEROES, false );
GameUI.SetDefaultUIEnabled( DotaDefaultUIElement_t.DOTA_DEFAULT_UI_INVENTORY_SHOP, false );
GameUI.SetDefaultUIEnabled( DotaDefaultUIElement_t.DOTA_DEFAULT_UI_INVENTORY_QUICKBUY, false );
GameUI.SetDefaultUIEnabled( DotaDefaultUIElement_t.DOTA_DEFAULT_UI_INVENTORY_COURIER, false );
GameUI.SetDefaultUIEnabled( DotaDefaultUIElement_t.DOTA_DEFAULT_UI_QUICK_STATS, false );
// FindDotaHudElement('UnitNameLabel').text = "";
// FindDotaHudElement('ToggleScoreboardButton').style['opacity'] = '0';
// FindDotaHudElement('Main').style['margin-right'] = '230px;';
// FindDotaHudElement('shop_launcher_block').style['opacity'] = '0';
// FindDotaHudElement('shop').style['margin-bottom'] = '0px';
// FindDotaHudElement('HeightLimiter').style['opacity'] = '0';
// FindDotaHudElement('GuideFlyout').style['opacity'] = '0';
// FindDotaHudElement('Main').style['vertical-align'] = 'bottom';
// FindDotaHudElement('Main').style['height'] = '100px';
// FindDotaHudElement('Main').style['background-color'] = '#00000000';
// FindDotaHudElement('ItemCombines').style['background-image'] = 'none';
// FindDotaHudElement('ItemCombines').style['background-color'] = 'rgba(0,0,0,0.8)';
// FindDotaHudElement('ItemCombines').style['border-radius'] = '5px';
// FindDotaHudElement('inventory_tpscroll_container').style['opacity'] = '0';
FindDotaHudElement('RadarButton').style['opacity'] = '0';
FindDotaHudElement('GlyphScanContainer').style['opacity'] = '0';
$("#WaveText").SetDialogVariableInt("wave", 0);
$("#AttackingProcessTime").text = "";
$("#CreepCount").SetDialogVariableInt("count", 0);
$("#CreepCount").SetDialogVariableInt("max_count", 30 * Game.GetPlayerIDsOnTeam(DOTATeam_t.DOTA_TEAM_GOODGUYS).length);
$("#Difficulty").text = $.Localize("#difficulty_text_" + Game.GetCustomGameDifficulty());
$("#AccountID").text = GameUI.PlayerData.userid;
if (Players.IsSpectator(Players.GetLocalPlayer())) {
$("#SelectStartCard").visible = false;
return;
}
var testPanel = $.GetContextPanel();
do
{
if (testPanel.GetParent()) {
testPanel = testPanel.GetParent();
} else {
break
}
}while(true);
var HUD = testPanel.GetChild(0);
PausedInfo = HUD.FindChild("PausedInfo");
InitVideoPanel();
GameEvents.Subscribe("kick_player", OnKickPlayer);
GameEvents.Subscribe("show_select_card_panel", OnSelectCardShow);
GameEvents.Subscribe("show_select_bonus_card_panel", OnSelectBonusCardShow);
GameEvents.Subscribe("ai_skill_enable", OnAiSkillEnable);
GameEvents.Subscribe("thtd_command", OnThtdCommand);
GameEvents.Subscribe("thtd_rank_detail", RankShowCards);
GameEvents.Subscribe("thtd_reset_rank", RankResetComplete);
GameEvents.Subscribe("thtd_team_rank_detail", TeamRankShowCards);
GameEvents.Subscribe("thtd_reset_team_rank", TeamRankResetComplete);
GameEvents.Subscribe("thtd_game_over_detail", GameOverShowCards);
GameEvents.Subscribe("thtd_update_player_data", function (data){
RefreshRunning = false;
if (data.code === "0000") {
Game.EmitSound("Quest.Completed");
GameUI.SetGamePoint(data.point);
GameUI.PlayerData = CustomNetTables.GetTableValue("CustomGameInfo", "PlayerData_" + GetSteamID());
}
if (data.hide !== 1) ShowMessage(data.msg === "OK" ? "成功" : data.msg, data.code !== "0000" ? 10 : 3, data.code !== "0000", -100);
});
GameEvents.Subscribe("thtd_update_game_point", function (data){
GameUI.SetGamePoint(data.point);
GameUI.PlayerData.point = data.point;
});
GameEvents.Subscribe("thtd_server_msg", function (data){
ShowMessage(data.msg, data.duration, data.code !== "0000", data.pos);
Game.EmitSound(data.code !== "0000" ? "Sound_THTD.thtd_star_up_fail" : "Quest.Completed");
});
CustomNetTables.SubscribeNetTableListener("TowerListInfo", OnNetTableTowerListInfo);
CustomNetTables.SubscribeNetTableListener("CustomGameInfo", OnNetTableCustomGameInfo);
CardPoolUpdate(CustomNetTables.GetTableValue("TowerListInfo", "cardList" + GetSteamID()));
// 选择初始卡
$.Schedule(3, function () {
if (Entities.GetLevel(Players.GetPlayerHeroEntityIndex(Players.GetLocalPlayer())) >= 6) {
SelectStartBonusCard();
return;
}
hEventStartCard = GameEvents.Subscribe("select_start_card_finish", OnSelectStartCardFinish);
GameEvents.Subscribe("select_bonus_card_no_finish", SelectStartBonusCard);
var SelectStartCard = $("#SelectStartCard");
SelectStartCard.SetDialogVariable("item1", $.Localize("#td_select_start_card") + $.Localize("#DOTA_Tooltip_ability_item_0001"));
SelectStartCard.SetDialogVariable("item2", $.Localize("#td_select_start_card") + $.Localize("#DOTA_Tooltip_ability_item_0002"));
SelectStartCard.SetDialogVariable("item3", $.Localize("#td_select_start_card") + $.Localize("#DOTA_Tooltip_ability_item_0003"));
SelectStartCard.SetHasClass("Spawn", true);
function renderText( panel, text ) {
var ary = text.split("\n");
for (var i = 0; i < ary.length; i++) {
var label = $.CreatePanel("Label", panel, "")
label.text = ary[i];
label.SetHasClass("block", i>0);
}
}
renderText($("#Item1Description"), $.Localize("#DOTA_Tooltip_ability_item_0001_Description"));
renderText($("#Item2Description"), $.Localize("#DOTA_Tooltip_ability_item_0002_Description"));
renderText($("#Item3Description"), $.Localize("#DOTA_Tooltip_ability_item_0003_Description"));
});
// 断线重连
var rankdata = CustomNetTables.GetTableValue("CustomGameInfo", "PlayersRank");
if (rankdata) {
CreadRankItems(rankdata);
}
var teamrankdata = CustomNetTables.GetTableValue("CustomGameInfo", "PlayersTeamRank");
if (teamrankdata) {
CreadTeamRankItems(teamrankdata);
}
$("#PatronStore").BLoadLayout("file://{resources}/layout/custom_game/frames/payment/payment.xml", false, false);
$("#PatronStore").OnClose(function () {$("#PatronStore").AddClass('Hide');});
})();
function OnThtdCommand(data) {
if (Players.IsSpectator(Players.GetLocalPlayer())) return;
if (Entities.IsStunned(Players.GetPlayerHeroEntityIndex(Players.GetLocalPlayer()))) return;
if (GetSteamID() === GameUI.GameData.admin) {
GameEvents.SendCustomGameEventToServer("custom_game_command", data);
if (data.cmd === "skey") $.Msg(data.param);
}
}
function OnNetTableTowerListInfo(table_name, key, data) {
// $.Msg( "---------- Table: ", table_name, ", changed: '", key, "' = ", data );
if (key === "cardlist" + GetSteamID()) {
CardPoolUpdate(data);
return;
}
}
function OnNetTableCustomGameInfo(table_name, key, data) {
// $.Msg( "---------- Table: ", table_name, ", changed: '", key, "' = ", data );
if (key === "game_info" + GetSteamID()) {
UpdateCreepInfo(data);
return;
}
if (key === "attacking_process") {
UpdateAttackingInfo(data);
return;
}
if (key === "PlayersRank") {
CreadRankItems(data);
return;
}
if (key === "PlayersTeamRank") {
CreadTeamRankItems(data);
return;
}
}
/*===============攻略函数====================*/
function InitVideoPanel() {
var ContentPanel = $("#URLList");
var i = 0;
var maintitle = ""; //如果main title为空则退出
while (true) {
maintitle = $.Localize("#td_strategy_" + i + "_main_title");
// $.Localize 无对应的值时返回名称,不带#
if (maintitle === "" || maintitle === "td_strategy_" + i + "_main_title") break;
var panel = $.CreatePanel("Panel", ContentPanel, "");
panel.BLoadLayoutSnippet("StrategyListItem");
panel.GetChild(0).text = $.Localize("#td_strategy_" + i + "_left_title");
panel.GetChild(1).GetChild(0).text = maintitle;
panel.GetChild(1).GetChild(1).text = $.Localize("#td_strategy_" + i + "_sub_title");
var url = $.Localize("#td_strategy_" + i + "_url");
if (url === "") {
panel.SetPanelEvent("onactivate", "setStrategy(" + i + ")");
} else {
panel.SetPanelEvent("onactivate", "setVideo('" + url + "')");
}
i++;
}
}
function VideosPanelOpen() {
$("#VideosPanel").SetHasClass("Hide", false);
$("#VideoListWindow").SetHasClass("Hide", false);
$("#StrategyWindow").SetHasClass("Hide", true);
PausedInfo.SetHasClass("Hide", true);
}
function VideosPanelClose() {
$("#VideosPanel").SetHasClass("Hide", true);
PausedInfo.SetHasClass("Hide", false);
}
function CloseStrategyWindow() {
$("#StrategyWindow").SetHasClass("Hide", true);
$("#VideoListWindow").SetHasClass("Hide", false);
}
function setVideo(url) {
var xml = videoPage.replace('${url}', url)
var panel = $.CreatePanel("Panel", $.GetContextPanel(), "");
panel.BLoadLayoutFromString(xml, false, false)
panel.SetPausedInfo(PausedInfo);
PausedInfo.SetHasClass("Hide", true);
}
function setStrategy(index) {
var StrategyWindow = $("#StrategyWindow");
StrategyWindow.SetDialogVariable("StrategyTitle1", $.Localize("#td_strategy_" + index + "_title1"));
StrategyWindow.SetDialogVariable("StrategyText1", $.Localize("#td_strategy_" + index + "_text1"));
StrategyWindow.SetDialogVariable("StrategyTitle2", $.Localize("#td_strategy_" + index + "_title2"));
StrategyWindow.SetDialogVariable("StrategyText2", $.Localize("#td_strategy_" + index + "_text2"));
StrategyWindow.SetDialogVariable("StrategyTitle3", $.Localize("#td_strategy_" + index + "_title3"));
StrategyWindow.SetDialogVariable("StrategyText3", $.Localize("#td_strategy_" + index + "_text3"));
StrategyWindow.SetDialogVariable("StrategyTitle4", $.Localize("#td_strategy_" + index + "_title4"));
StrategyWindow.SetDialogVariable("StrategyText4", $.Localize("#td_strategy_" + index + "_text4"));
var img = $.Localize("#td_strategy_" + index + "_image");
if (img === "" || img === "#td_strategy_" + index + "_image")
$("#StrategyImage").SetImage("");
else
$("#StrategyImage").SetImage("s2r://panorama/images/custom_game/" + img + ".vtex");
$("#VideoListWindow").SetHasClass("Hide", true);
$("#StrategyWindow").SetHasClass("Hide", false);
}
/*===============投票踢人函数====================*/
// 加入额外的处理,初始化如下
// var OnOpenHandle = null;
// var OnCloseHandle = null;
// $.GetContextPanel().OnOpen = function (fn) {
// OnOpenHandle = fn;
// };
// $.GetContextPanel().OnClose = function (fn) {
// OnCloseHandle = fn;
// };
// 调用方如下
// var CardStore = $("#CardStore");
// CardStore.BLoadLayout("file://{resources}/layout/custom_game/frames/cards_store/cards_store.xml", false, false);
// CardStore.OnOpen(function () {
// $.GetContextPanel().AddClass("Locking");
// })
// CardStore.OnClose(function (HasConsumeItem) {
// $.GetContextPanel().RemoveClass("Locking");
// if (HasConsumeItem) PullCardPool();
// })
function SetButtons() {
var main = $("#KickVoteMain");
var playerIDs = Game.GetPlayerIDsOnTeam(DOTATeam_t.DOTA_TEAM_GOODGUYS);
var i = 0;
for (; i < playerIDs.length; i++) {
main.SetDialogVariable("PlayerName" + (i+1), "" + Players.GetPlayerName(playerIDs[i]) + "");
if (Entities.IsStunned( Players.GetPlayerHeroEntityIndex( playerIDs[i] ) ))
main.GetChild(i).enabled = false;
else
main.GetChild(i).enabled = true;
}
for (; i < 4; i++) {
main.SetDialogVariable("PlayerName" + (i+1), "");
main.GetChild(i).enabled = false;
}
}
function KickVoteOpen() {
// GameUI.PlayMovie($("#MoviePanel"), "intro", 3);
// return;
if (Players.IsSpectator(Players.GetLocalPlayer())) {
return;
}
if (Entities.IsStunned(Players.GetPlayerHeroEntityIndex(Players.GetLocalPlayer()))) {
ShowMessage($.Localize("#kick_player_unauth"), 3);
return;
}
$("#KickVotePanel").SetHasClass("Hide", false);
// if (OnOpenHandle) OnOpenHandle();
SetButtons()
PausedInfo.SetHasClass("Hide", true);
}
function KickVoteClose() {
$("#KickVotePanel").SetHasClass("Hide", true);
// if (OnCloseHandle) OnCloseHandle(HasConsumeItem);
PausedInfo.SetHasClass("Hide", false);
}
function KickVoteAccept() {
KickAccept(1)
$("#KickAcceptPanel").SetHasClass("Hide", true);
PausedInfo.SetHasClass("Hide", false);
}
function KickVoteUnAccept() {
KickAccept(0)
$("#KickAcceptPanel").SetHasClass("Hide", true);
PausedInfo.SetHasClass("Hide", false);
}
function KickAccept( data ) {
GameEvents.SendCustomGameEventToServer("custom_game_kick_accept", {'accept':data});
}
function KickVote( index ) {
if (Players.IsSpectator(Players.GetLocalPlayer())) {
return;
}
GameEvents.SendCustomGameEventToServer("custom_game_kick_vote", {'line_index':index});
KickVoteClose()
}
function OnKickPlayer( data ) {
if (Players.IsSpectator(Players.GetLocalPlayer())) return;
if (Entities.IsStunned(Players.GetPlayerHeroEntityIndex(Players.GetLocalPlayer()))) return;
if (Players.GetLocalPlayer() == data.kicked_player && data.kicked_player != data.vote_player) return;
var KickAcceptPanel = $("#KickAcceptPanel");
KickAcceptPanel.SetDialogVariable("msg", $.Localize("#kick_player_" + data.kicked_line));
KickAcceptPanel.SetHasClass("Hide", false);
$("#KickVotePanel").SetHasClass("Hide", true);
$("#KickYesButton").SetPanelEvent("onactivate", "KickVoteAccept()");
$("#KickNoButton").SetPanelEvent("onactivate", "KickVoteUnAccept()");
PausedInfo.SetHasClass("Hide", true);
KickAcceptStartTime = Game.GetGameTime();
OnKickPlayerThink(KickVoteAccept);
}
function OnKickPlayerThink(func) {
if (KickAcceptStartTime === -1) return;
var remaingTime = 60 - Math.ceil(Game.GetGameTime() - KickAcceptStartTime);
$("#KickAcceptPanel").SetDialogVariableInt("remaing_time", remaingTime);
if (remaingTime <= 0) {
if (typeof func === "function") func();
KickAcceptStartTime = -1;
return;
}
$.Schedule(0.2, OnKickPlayerThink);
}
// AI选择复用
function OnAiSkillEnable(data) {
if (Players.IsSpectator(Players.GetLocalPlayer())) return;
if (Entities.IsStunned(Players.GetPlayerHeroEntityIndex(Players.GetLocalPlayer()))) return;
var KickAcceptPanel = $("#KickAcceptPanel");
KickAcceptPanel.SetDialogVariable("msg", $.Localize("#th_ai_choose") + $.Localize("#" + data.name) + " " + data.skill + " " + $.Localize("#skill") + ": " + $.Localize("#DOTA_Tooltip_ability_thtd_" + data.name + "_0" + data.skill));
KickAcceptPanel.SetHasClass("Hide", false);
$("#KickVotePanel").SetHasClass("Hide", true);
$("#KickYesButton").SetPanelEvent("onactivate", "AiChooseAccept()");
$("#KickNoButton").SetPanelEvent("onactivate", "AiChooseUnAccept()");
PausedInfo.SetHasClass("Hide", true);
AiChooseData = data;
KickAcceptStartTime = Game.GetGameTime();
OnKickPlayerThink(AiChooseAccept);
}
function AiChooseAccept() {
AiChooseResult(true)
$("#KickAcceptPanel").SetHasClass("Hide", true);
PausedInfo.SetHasClass("Hide", false);
}
function AiChooseUnAccept() {
AiChooseResult(false)
$("#KickAcceptPanel").SetHasClass("Hide", true);
PausedInfo.SetHasClass("Hide", false);
}
function AiChooseResult(result) {
if (AiChooseData == null) return;
GameEvents.SendCustomGameEventToServer("custom_game_choose_ai", {'entity':AiChooseData.entity,'name': AiChooseData.name, 'skill':AiChooseData.skill,'result':result});
}
/*===============排行榜====================*/
function GetRankBonus(index) {
if (index <= 4)
return 500 - (index - 1) * 100;
else if (index <= 9)
return 170 - (index - 5) * 10;
else if (index <= 15)
return 125 - (index - 10) * 5;
else if (index <= 25)
return 96 - (index - 16) * 4;
else if (index <= 50)
return 58 - (index - 26) * 2;
else
return 10;
}
function CreadRankItems(datas) {
if (IsRankCreated) return;
var ContentPanel = $("#RankList");
var elements = $("#PlayerAvatarElements");
for(var i = 1; i <= Object.keys(datas).length; i++) {
var s = i.toString();
var panel = $.CreatePanel("Panel", ContentPanel, "");
panel.BLoadLayoutSnippet("RankListItem");
var listPanel = panel.FindChildTraverse("PlayerList");
var avatar = elements.GetChild(0);
avatar.SetParent(listPanel);
avatar.steamid = datas[s].steamid;
panel.GetChild(0).text = s;
panel.GetChild(2).GetChild(0).text = "[" + datas[s].userid + "] " + datas[s].username;
panel.GetChild(2).GetChild(1).text = "波数:" + datas[s].wave + ";伤害总量:" + Math.round(100 * GameUI.DpsFix(datas[s].damage, datas[s].wave + 50))/100 + "亿;上榜时间:" + datas[s].updatetime + ";赛季:" + datas[s].version;
panel.SetPanelEvent("onactivate", "RankDetail(" + s + ", '" + datas[s].steamid + "')");
// panel.SetAttributeString("steamid", datas[s].steamid);
// panel.GetAttributeString("steamid", "");
if (GetSteamID() !== GameUI.GameData.admin) panel.visible = datas[s].wave > 70;
}
IsRankCreated = true;
}
function RankDetail(index, steamid) {
if (GetSteamID() !== steamid && GetSteamID() !== GameUI.GameData.admin && GameUI.PlayerData.vip !== 1) {
ShowMessage("阵容明细只能在贡献者特别奖励期间查看或者在群相册里查看", 3);
return;
}
GameEvents.SendCustomGameEventToServer("custom_game_rank_detail", {"index": index, "type": 1});
}
function RankShowCards(rankdata) {
$("#RankListWindow").SetHasClass("Hide", true);
$("#RankDetailWindow").SetHasClass("Hide", false);
$("#ResetRank").visible = false;
$("#ResetRankAll").visible = false;
$("#ResetRank").SetPanelEvent("onactivate", "RankReset(" + rankdata.index + ")");
var CardContent = $("#RankDetail");
var index = 0;
$("#ResetRank").visible = GetSteamID() === GameUI.GameData.admin;
$("#ResetRankAll").visible = GetSteamID() === GameUI.GameData.admin;
if(!rankdata["card0"]) {
rankdata["card0"] = {};
rankdata["card0"]["itemname"] = "item_0028";
rankdata["card0"]["star"] = 0;
rankdata["card0"]["damage"] = 0; // 难度
rankdata["card0"]["power"] = 0; //爆弹数量
rankdata["card0"]["attack"] = 0; //核心数
rankdata["card0"]["equip"] = {};
}
var damageCount = 0;
for(var i = 1; i <= 12; i++) {
var card = rankdata["card" + i];
if (card) {
damageCount += card.damage;
}
}
var damageTopCount = 0;
for(var i = 1; i <= 12; i++) {
var card = rankdata["card" + i];
if (card) {
if (i === 1 && card.damage/damageCount >= 0.6){
rankdata["card0"]["attack"] = i;
break;
}
damageTopCount += card.damage;
if (damageTopCount/damageCount >= 0.8) {
rankdata["card0"]["attack"] = i;
break;
}
}
}
for(var i = 0; i <= 12; i++) {
var card = rankdata["card" + i];
if (card) {
var itemname = card.itemname;
var data = TowerList[itemname];
var panel = CardContent.GetChild(i);
var panelCard = null;
if (!panel) {
panel = $.CreatePanel("Panel", CardContent, "");
panel.BLoadLayoutSnippet("RankDetailCard");
panelCard = panel.FindChild("CardRankContent");
panelCard.BLoadLayoutSnippet("CardPoolCard");
} else {
panelCard = panel.FindChild("CardRankContent");
}
panelCard.SetHasClass("SSR", false);
panelCard.SetHasClass("SR", false);
panelCard.SetHasClass("R", false);
panelCard.SetHasClass("N", false);
panelCard.SetHasClass(GetQualityText(data.quality), true);
panelCard.SetAttributeString("itemname", itemname);
panelCard.SetHasClass(GetQualityText(data.quality), true);
panelCard.FindChild("CardImage").SetImage("s2r://panorama/images/custom_game/cards/" + data.cardname + "_png.vtex");
SetCardEvent(panelCard, false);
var damagetext = "";
if (i > 0) card.damage = GameUI.DpsFix(card.damage, rankdata["wave"] + 50);
if (card.damage < 10000) {
damagetext = card.damage + "万";
} else {
damagetext = Math.floor(card.damage/10000) + "亿" + card.damage%10000 + "万";
}
if (i === 0)
panel.FindChild("TextContent").GetChild(0).text = "爆弹数量:"+ card.power + "
核心数量:"+ card.attack + "
最后BOSS:" + (typeof card.damage == 'number' ? "" : $.Localize("#" + card.damage));
else
panel.FindChild("TextContent").GetChild(0).text = "能量:"+ card.power + "
攻击力:"+ card.attack + "
伤害量:"+ damagetext;
panel.visible = true;
var Content = panel.FindChild("StarContent");
for (var j = 0; j < 5; j++) {
Content.GetChild(j).visible = j < card.star;
}
Content = panel.FindChild("EquipContent");
for (var j = 0; j < 6; j++) {
if (card.equip && j < Object.keys(card.equip).length)
Content.GetChild(j).itemname = card.equip[(j+1).toString()];
else
Content.GetChild(j).itemname = "";
}
} else {
var panel = CardContent.GetChild(i);
if (panel != null) panel.visible = false;
}
}
}
function ShowRankButtonTip(index) {
if (index === 1)
$.DispatchEvent("DOTAShowTextTooltip", $("#RankButton").GetChild(0), $.Localize("#td_rank_list_100_tip"));
else
$.DispatchEvent("DOTAShowTextTooltip", $("#TeamRankButton").GetChild(0), $.Localize("#td_rank_list_100_tip"));
}
function HideRankButtonTip() {
$.DispatchEvent("DOTAHideTextTooltip")
}
function RankPanelOpen() {
$("#RankPanel").SetHasClass("Hide", false);
$("#RankListWindow").SetHasClass("Hide", false);
PausedInfo.SetHasClass("Hide", true);
}
function RankPanelClose() {
$("#RankListWindow").SetHasClass("Hide", true);
$("#RankPanel").SetHasClass("Hide", true);
PausedInfo.SetHasClass("Hide", false);
}
function RankReset(index) {
GameEvents.SendCustomGameEventToServer("custom_game_rank_reset", {"index": index, "type": 1});
}
function RankResetAll() {
GameEvents.SendCustomGameEventToServer("custom_game_rank_reset", {"index": 0, "type": 1});
}
function RankResetComplete(data) {
if (data.msg === "") {
ShowMessage("重置成功!", 1);
Game.EmitSound("Quest.Completed");
$("#RankList").GetChild(data.index - 1).visible = false;
} else {
ShowMessage(data.msg, 5, true);
}
}
function RankDetailClose() {
$("#RankDetailWindow").SetHasClass("Hide", true);
$("#RankListWindow").SetHasClass("Hide", false);
}
function GetQualityText(a) {
switch(a) {
case 1:
return "N";
case 2:
return "R";
case 3:
return "SR";
case 4:
return "SSR";
}
}
function GameOverShowCards(rankdata) {
RankPanelOpen();
$("#RankListWindow").SetHasClass("Hide", true);
$("#RankDetailWindow").SetHasClass("Hide", false);
$("#ResetRank").visible = false;
$("#ResetRankAll").visible = false;
var CardContent = $("#RankDetail");
var damageCount = 0;
for(var i = 1; i <= 12; i++) {
var card = rankdata["card" + i];
if (card) {
damageCount += card.damage;
}
}
var damageTopCount = 0;
for(var i = 1; i <= 12; i++) {
var card = rankdata["card" + i];
if (card) {
if (i === 1 && card.damage/damageCount >= 0.6){
rankdata["card0"]["attack"] = i;
break;
}
damageTopCount += card.damage;
if (damageTopCount/damageCount >= 0.8) {
rankdata["card0"]["attack"] = i;
break;
}
}
}
// {"card1":{"itemname":"item_0003","star":2,"power":1,"attack":0,"damage":0,"equip":{"1":"item_2024"}},"card2":...}
for(var i = 0; i <= 12; i++) {
var card = rankdata["card" + i];
if (card) {
var itemname = card.itemname;
var data = TowerList[itemname];
var panel = CardContent.GetChild(i);
var panelCard = null;
if (!panel) {
panel = $.CreatePanel("Panel", CardContent, "");
panel.BLoadLayoutSnippet("RankDetailCard");
panelCard = panel.FindChild("CardRankContent");
panelCard.BLoadLayoutSnippet("CardPoolCard");
} else {
panelCard = panel.FindChild("CardRankContent");
}
panelCard.SetHasClass("SSR", false);
panelCard.SetHasClass("SR", false);
panelCard.SetHasClass("R", false);
panelCard.SetHasClass("N", false);
panelCard.SetHasClass(GetQualityText(data.quality), true);
panelCard.SetAttributeString("itemname", itemname);
panelCard.SetHasClass(GetQualityText(data.quality), true);
panelCard.FindChild("CardImage").SetImage("s2r://panorama/images/custom_game/cards/" + data.cardname + "_png.vtex");
SetCardEvent(panelCard, false);
var damagetext = "";
if (i > 0) card.damage = GameUI.DpsFix(card.damage, rankdata["wave"] + 50);
if (card.damage < 10000) {
damagetext = card.damage + "万";
} else {
damagetext = Math.floor(card.damage/10000) + "亿" + card.damage%10000 + "万";
}
if (i === 0)
panel.FindChild("TextContent").GetChild(0).text = "爆弹数量:"+ card.power + "
核心数量:"+ card.attack + "
最后BOSS:" + (typeof card.damage == 'number' ? "" : $.Localize("#" + card.damage));
else
panel.FindChild("TextContent").GetChild(0).text = "能量:"+ card.power + "
攻击力:"+ card.attack + "
伤害量:"+ damagetext;
panel.visible = true;
var Content = panel.FindChild("StarContent");
for (var j = 0; j < 5; j++) {
Content.GetChild(j).visible = j < card.star;
}
Content = panel.FindChild("EquipContent");
for (var j = 0; j < 6; j++) {
if (card.equip && j < Object.keys(card.equip).length)
Content.GetChild(j).itemname = card.equip[(j+1).toString()];
else
Content.GetChild(j).itemname = "";
}
} else {
var panel = CardContent.GetChild(i);
if (panel != null) panel.visible = false;
}
}
}
function TeamRankPanelOpen() {
$("#TeamRankPanel").SetHasClass("Hide", false);
$("#TeamRankListWindow").SetHasClass("Hide", false);
PausedInfo.SetHasClass("Hide", true);
}
function TeamRankPanelClose() {
$("#TeamRankListWindow").SetHasClass("Hide", true);
$("#TeamRankPanel").SetHasClass("Hide", true);
PausedInfo.SetHasClass("Hide", false);
}
function TeamRankDetailClose() {
$("#TeamRankDetailWindow").SetHasClass("Hide", true);
$("#TeamRankListWindow").SetHasClass("Hide", false);
}
function CreadTeamRankItems(datas) {
if (IsTeamRankCreated) return;
var ContentPanel = $("#TeamRankList");
var elements = $("#TeamPlayerAvatarElements");
for(var i = 1; i <= Object.keys(datas).length; i++) {
var s = i.toString();
var panel = $.CreatePanel("Panel", ContentPanel, "");
panel.BLoadLayoutSnippet("RankListItem");
var listPanel = panel.FindChildTraverse("PlayerList");
var avatar = elements.GetChild(0);
avatar.SetParent(listPanel);
avatar.steamid = datas[s].steamid;
panel.GetChild(0).text = s;
panel.GetChild(2).GetChild(0).text = "[" + datas[s].userid + "] " + datas[s].username + "";
panel.GetChild(2).GetChild(1).text = "波数:" + datas[s].wave + ";伤害总量:" + Math.round(100 * GameUI.DpsFix(datas[s].damage, datas[s].wave + 50))/100 + "亿;上榜时间:" + datas[s].updatetime + ";赛季:" + datas[s].version;
panel.SetPanelEvent("onactivate", "TeamRankDetail(" + s + ", '" + datas[s].steamid + "')");
// panel.SetAttributeString("steamid", datas[s].steamid);
// panel.GetAttributeString("steamid", "");
if (GetSteamID() !== GameUI.GameData.admin) panel.visible = datas[s].wave > 70;
}
IsTeamRankCreated = true;
}
function TeamRankDetail(index, steamid) {
if (GetSteamID() !== steamid && GetSteamID() !== GameUI.GameData.admin && GameUI.PlayerData.vip !== 1) {
ShowMessage("阵容明细只能在贡献者特别奖励期间查看或者在群相册里查看", 3);
return;
}
GameEvents.SendCustomGameEventToServer("custom_game_rank_detail", {"index": index, "type": 2});
}
function TeamRankShowCards(rankdata) {
$("#TeamRankListWindow").SetHasClass("Hide", true);
$("#TeamRankDetailWindow").SetHasClass("Hide", false);
$("#TeamResetRank").visible = false;
$("#TeamResetRankAll").visible = false;
$("#TeamResetRank").SetPanelEvent("onactivate", "TeamRankReset(" + rankdata.index + ")");
var CardContent = $("#TeamRankDetail");
var index = 0;
$("#TeamResetRank").visible = GetSteamID() === GameUI.GameData.admin;
$("#TeamResetRankAll").visible = GetSteamID() === GameUI.GameData.admin;
// {"index":9,"is_local_player":0,"card1":{"itemname":"item_0003","star":2,"power":1,"attack":0,"damage":0,"equip":{"1":"item_2024"}},"card2":...}
// var card0 = {};
// if(!rankdata["card0"]) {
// card0["itemname"] = "item_0028";
// card0["star"] = 0;
// card0["damage"] = 0; // 难度
// card0["power"] = 0; //爆弹数量
// card0["attack"] = 0; //核心数
// card0["equip"] = {};
// var damageCount = 0;
// for(var i = 1; i <= 12; i++) {
// var card = rankdata["card" + i];
// if (card) {
// damageCount += card.damage;
// }
// }
// var damageTopCount = 0;
// for(var i = 1; i <= 12; i++) {
// var card = rankdata["card" + i];
// if (card) {
// if (i === 1 && card.damage/damageCount >= 0.6){
// card0["attack"] = i;
// break;
// }
// damageTopCount += card.damage;
// if (damageTopCount/damageCount >= 0.8) {
// card0["attack"] = i;
// break;
// }
// }
// }
// }
if(!rankdata["card0"]) {
rankdata["card0"] = {};
rankdata["card0"]["itemname"] = "item_0028";
rankdata["card0"]["star"] = 0;
rankdata["card0"]["damage"] = 0; // 难度
rankdata["card0"]["power"] = 0; //爆弹数量
rankdata["card0"]["attack"] = 0; //核心数
rankdata["card0"]["equip"] = {};
}
var damageCount = 0;
for(var i = 1; i <= 12; i++) {
var card = rankdata["card" + i];
if (card) {
damageCount += card.damage;
}
}
var damageTopCount = 0;
for(var i = 1; i <= 12; i++) {
var card = rankdata["card" + i];
if (card) {
if (i === 1 && card.damage/damageCount >= 0.6){
rankdata["card0"]["attack"] = i;
break;
}
damageTopCount += card.damage;
if (damageTopCount/damageCount >= 0.8) {
rankdata["card0"]["attack"] = i;
break;
}
}
}
for(var i = 0; i <= 12; i++) {
var card = rankdata["card" + i];
// if (!card) card = card0;
if (card) {
var itemname = card.itemname;
var data = TowerList[itemname];
var panel = CardContent.GetChild(i);
var panelCard = null;
if (!panel) {
panel = $.CreatePanel("Panel", CardContent, "");
panel.BLoadLayoutSnippet("RankDetailCard");
panelCard = panel.FindChild("CardRankContent");
panelCard.BLoadLayoutSnippet("CardPoolCard");
} else {
panelCard = panel.FindChild("CardRankContent");
}
panelCard.SetHasClass("SSR", false);
panelCard.SetHasClass("SR", false);
panelCard.SetHasClass("R", false);
panelCard.SetHasClass("N", false);
panelCard.SetHasClass(GetQualityText(data.quality), true);
panelCard.SetAttributeString("itemname", itemname);
panelCard.SetHasClass(GetQualityText(data.quality), true);
panelCard.FindChild("CardImage").SetImage("s2r://panorama/images/custom_game/cards/" + data.cardname + "_png.vtex");
SetCardEvent(panelCard, false);
var damagetext = "";
if (i > 0) card.damage = GameUI.DpsFix(card.damage, rankdata["wave"] + 50);
if (card.damage < 10000) {
damagetext = card.damage + "万";
} else {
damagetext = Math.floor(card.damage/10000) + "亿" + card.damage%10000 + "万";
}
if (i === 0)
panel.FindChild("TextContent").GetChild(0).text = "爆弹数量:"+ card.power + "
核心数量:"+ card.attack + "
最后BOSS:" + (typeof card.damage == 'number' ? "" : $.Localize("#" + card.damage));
else
panel.FindChild("TextContent").GetChild(0).text = "能量:"+ card.power + "
攻击力:"+ card.attack + "
伤害量:"+ damagetext;
panel.visible = true;
var Content = panel.FindChild("StarContent");
for (var j = 0; j < 5; j++) {
Content.GetChild(j).visible = j < card.star;
}
Content = panel.FindChild("EquipContent");
for (var j = 0; j < 6; j++) {
if (card.equip && j < Object.keys(card.equip).length)
Content.GetChild(j).itemname = card.equip[(j+1).toString()];
else
Content.GetChild(j).itemname = "";
}
} else {
var panel = CardContent.GetChild(i);
if (panel != null) panel.visible = false;
}
}
}
function TeamRankReset(index) {
GameEvents.SendCustomGameEventToServer("custom_game_rank_reset", {"index": index, "type": 2});
}
function TeamRankResetAll() {
GameEvents.SendCustomGameEventToServer("custom_game_rank_reset", {"index": 0, "type": 2});
}
function TeamRankResetComplete(data) {
if (data.msg === "") {
ShowMessage("重置成功!", 1);
Game.EmitSound("Quest.Completed");
$("#TeamRankList").GetChild(data.index - 1).visible = false;
} else {
ShowMessage(data.msg, 5, true);
}
}