restructure

This commit is contained in:
2021-11-10 08:48:00 -05:00
parent d3eac6b70e
commit aaa089715d
12018 changed files with 6424 additions and 135034 deletions

View File

@@ -0,0 +1,157 @@
"use strict";
// 获取steamid
var m_SteamID = null;
function GetSteamID() {
if (!m_SteamID) {
m_SteamID = Game.GetLocalPlayerInfo().player_steamid.toString();
}
return m_SteamID;
}
var TowerList = CustomNetTables.GetTableValue("CustomGameInfo", "thtd_tower_list");
GameUI.SetGamePoint = function (point) {
var panel = $("#KillCount");
if (panel) panel.SetDialogVariableInt("point", point);
};
function FindItemName( unitname ) {
for(var itemname in TowerList) {
if (TowerList[itemname]["cardname"] === unitname) {
return itemname;
}
}
return "";
}
function SetTowerTooltip( panel ) {
panel.SetPanelEvent("onmouseover", function () {
var text = $.Localize(panel.GetAttributeString("UnitName", ""));
$.DispatchEvent("DOTAShowTextTooltip", panel, text)
});
panel.SetPanelEvent("onmouseout", function () {
$.DispatchEvent("DOTAHideTextTooltip")
});
panel.SetPanelEvent("onactivate", function () {
var ent = panel.GetAttributeInt("Ent", 0);
GameEvents.SendCustomGameEventToServer("custom_game_show_dps_card", {"ent": ent});
});
}
function UpdateTowerList( list , dps_max ) {
var len = list.length;
var TowerList = $("#TowerList");
var index = 1;
var dps_highest = 0;
for (var i = 0; i < len; i++) {
var data = list[i];
var panel = TowerList.GetChild(index++);
if (!panel) {
panel = $.CreatePanel("Panel", TowerList, "");
panel.BLoadLayoutSnippet("Tower");
SetTowerTooltip(panel);
}
if (index==2) {
dps_highest = data.damage;
}
panel.FindChild("Item").itemname = data.itemname;
var dpstext = "";
var dpsfixed = GameUI.DpsFix(data.damage, GameUI.Wave);
if (dpsfixed < 100) {
dpstext = dpsfixed * 100;
} else {
var wan = Math.floor(dpsfixed / 100 + 0.5);
if (wan < 10000) {
dpstext = wan + "万";
} else {
dpstext = Math.floor(wan/10000) + "亿" + wan%10000 + "万";
}
}
panel.FindChildTraverse("DPS").text = dpstext;
var dps_bar_pct = ( (data.damage/dps_highest)*100 || 0);
panel.FindChildTraverse("DPS_bar").style.width = dps_bar_pct + "%";
var dps_pct = ( (data.damage/dps_max)*100 || 0);
panel.FindChildTraverse("DPS_pct").text = dps_pct.toFixed(1) + "%";
panel.SetAttributeString("UnitName", data.unitname);
panel.SetAttributeInt("Ent", data.ent);
panel.visible = true;
}
var max = TowerList.GetChildCount();
for (var i = index; i < max; i++) {
TowerList.GetChild(i).visible = false;
}
}
function Update(damagelist) {
if (!$.GetContextPanel().BHasClass("ShowTime")) return;
if (!damagelist) return;
var list = [];
var dps_max = 0;
var keys = Object.keys(damagelist); //for (var i in data) 取不到值
for (var i = 0; i < keys.length; i++) {
var damage = damagelist[keys[i]];
var ent = parseInt(keys[i]);
var unitname = Entities.GetUnitName(ent);
if (unitname == null || unitname == "") continue;
var itemname = FindItemName(unitname);
list.push({'itemname':itemname, 'damage':Math.floor(damage), 'unitname': unitname, 'ent': ent});
dps_max = dps_max + Math.floor(damage);
}
list.sort(function (a, b) {
if (a.damage < b.damage) return 1;
if (a.damage == b.damage) return 0;
if (a.damage > b.damage) return -1;
})
UpdateTowerList( list, dps_max);
}
// {"creature_kill_count":0,"creep_count":0,"food_count":0}
function UpdateInfo(table) {
if (!table) return;
var FoodCount = $("#FoodCount");
FoodCount.SetDialogVariableInt("count", table["food_count"]);
FoodCount.SetDialogVariableInt("max_count", GameUI.GameData.max_food);
$("#KillCount").SetDialogVariableInt("count", table["creature_kill_count"]);
}
;(function(){
$("#FoodCount").SetDialogVariableInt("count", 0);
$("#FoodCount").SetDialogVariableInt("max_count", 12);
$("#KillCount").SetDialogVariableInt("count", 0);
$("#KillCount").SetDialogVariableInt("point", 0);
if (Players.IsSpectator(Players.GetLocalPlayer())) {
$("#TowerList").visible = false;
return;
}
GameUI.SetGamePoint(GameUI.PlayerData.point);
CustomNetTables.SubscribeNetTableListener("TowerListInfo", OnNetTableTowerListInfo);
CustomNetTables.SubscribeNetTableListener("CustomGameInfo", OnNetTableCustomGameInfo);
})();
function OnNetTableTowerListInfo(table_name, key, data) {
// $.Msg( "---------- Table: ", table_name, ", changed: '", key, "' = ", data );
if (key === "damagelist" + GetSteamID()) {
Update(data);
return;
}
}
function OnNetTableCustomGameInfo(table_name, key, data) {
// $.Msg( "---------- Table: ", table_name, ", changed: '", key, "' = ", data );
if (key === "game_info" + GetSteamID()) {
UpdateInfo(data);
return;
}
}