restructure
This commit is contained in:
268
tools/panorama_decompile/decompiled_scrips/power.js
Normal file
268
tools/panorama_decompile/decompiled_scrips/power.js
Normal file
@@ -0,0 +1,268 @@
|
||||
var PowerLabelModifier;
|
||||
var CritDamageLabelModifier;
|
||||
var CritChanceLabelModifier;
|
||||
var itemList = [];
|
||||
|
||||
function CustomPowerPanelRefresh() {
|
||||
var mainSelected = Players.GetLocalPlayerPortraitUnit();
|
||||
if(mainSelected != null && mainSelected != -1) {
|
||||
if (Entities.GetTeamNumber(mainSelected) == DOTATeam_t.DOTA_TEAM_GOODGUYS) {
|
||||
var basePower = Entities.GetDayTimeVisionRange(mainSelected) - 800;
|
||||
var percentage = Entities.GetNightTimeVisionRange(mainSelected) - 800;
|
||||
var bonusPower = Math.floor(basePower * percentage/100);
|
||||
if (!Entities.IsRooted(mainSelected)) {
|
||||
basePower = 0;
|
||||
bonusPower = 0;
|
||||
}
|
||||
if (bonusPower > 0) {
|
||||
PowerLabelModifier.text = basePower.toString() + "<font color='#2dc03a'>+" + bonusPower.toString() + "</font>";
|
||||
} else if (bonusPower == 0) {
|
||||
PowerLabelModifier.text = basePower.toString();
|
||||
} else {
|
||||
PowerLabelModifier.text = basePower.toString() + "<font color='red'>-" + Math.abs(bonusPower).toString() + "</font>";
|
||||
}
|
||||
|
||||
var buffs = Entities.GetNumBuffs(mainSelected);
|
||||
var isCritZero = true;
|
||||
var isChanceZero = true;
|
||||
var isCritFind = false;
|
||||
var isChanceFind = false;
|
||||
for (var i = 0; i < buffs; i++) {
|
||||
var buff = Entities.GetBuff(mainSelected, i);
|
||||
var buffname = Buffs.GetName( mainSelected, buff);
|
||||
if (!isCritFind && buffname === "modifier_touhoutd_crit_damage") {
|
||||
CritDamageLabelModifier.text = "<font color='yellow'>" + Buffs.GetStackCount(mainSelected, buff) + "%</font>";
|
||||
isCritZero = false;
|
||||
isCritFind = true;
|
||||
if (isChanceFind) break;
|
||||
} else if (!isChanceFind && buffname === "modifier_touhoutd_crit_chance") {
|
||||
CritChanceLabelModifier.text = "<font color='#c9520d'>" + Buffs.GetStackCount(mainSelected, buff) + "%</font>";
|
||||
isChanceZero = false;
|
||||
isChanceFind = true;
|
||||
if (isCritFind) break;
|
||||
}
|
||||
}
|
||||
if (isCritZero) CritDamageLabelModifier.text = "<font color='yellow'>0%</font>";
|
||||
if (isChanceZero) CritChanceLabelModifier.text = "<font color='#c9520d'>0%</font>";
|
||||
} else {
|
||||
PowerLabelModifier.text = "0";
|
||||
CritDamageLabelModifier.text = "<font color='yellow'>0%</font>";
|
||||
CritChanceLabelModifier.text = "<font color='#c9520d'>0%</font>";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function CustomStarPanelRefresh() {
|
||||
var mainSelected = Players.GetLocalPlayerPortraitUnit();
|
||||
if(mainSelected != null && mainSelected != -1) {
|
||||
for (var i = 0; i <= 5; i++ ) {
|
||||
var ent = Entities.GetItemInSlot(mainSelected, i);
|
||||
if (ent != "-1" && ent != "32767") {
|
||||
var star = 0;
|
||||
var level = 0;
|
||||
var itemName = Abilities.GetAbilityName(ent);
|
||||
if (itemName.substr(0,6) === "item_0") {
|
||||
var itemLevel = Abilities.GetLevel(ent);
|
||||
star = Math.floor((itemLevel-1)/10) + 1;
|
||||
level = itemLevel - (star-1) * 10;
|
||||
} else {
|
||||
if (itemName == "item_1003" || itemName == "item_1011") {
|
||||
star = 1;
|
||||
level = 10;
|
||||
} else if (itemName == "item_1004" || itemName == "item_1012") {
|
||||
star = 2;
|
||||
level = 10;
|
||||
} else if (itemName == "item_1005" || itemName == "item_1013") {
|
||||
star = 3;
|
||||
level = 10;
|
||||
} else if (itemName == "item_1006" || itemName == "item_1014") {
|
||||
star = 4;
|
||||
level = 10;
|
||||
}
|
||||
}
|
||||
|
||||
for (var j = 1; j <= 5; j++) {
|
||||
itemList[i][j].visible = j <= star;
|
||||
}
|
||||
itemList[i][6].visible = level > 0;
|
||||
itemList[i][6].text = level > 0 ? level.toString() : "";
|
||||
} else {
|
||||
for ( var j = 1; j <= 6; j++ ) {
|
||||
itemList[i][j].visible = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function CustomPanelRefresh () {
|
||||
CustomPowerPanelRefresh();
|
||||
CustomStarPanelRefresh();
|
||||
return $.Schedule(0.15, CustomPanelRefresh);
|
||||
}
|
||||
|
||||
|
||||
;(function(){
|
||||
// 能量显示
|
||||
var root = $.GetContextPanel().GetParent().GetParent().GetParent();
|
||||
var stats = root.FindChild("HUDElements").FindChild("lower_hud").FindChild("center_with_stats").FindChild("center_block").FindChild("stats_container");
|
||||
stats.FindChildTraverse("stats").style["height"] = "110px";
|
||||
stats.FindChildTraverse("stragiint").visible = false;
|
||||
var statContainer = stats.FindChildTraverse("stats").FindChild("Aligner").FindChild("StatContainer");
|
||||
if(statContainer.FindChildTraverse("power") == null)
|
||||
{
|
||||
var power = $.CreatePanel("Panel", statContainer, "power");
|
||||
power.AddClass("StatIconLabel");
|
||||
var column = $.CreatePanel("Panel", power, "column");
|
||||
column.AddClass("LabelColumn");
|
||||
var container = $.CreatePanel("Panel", column, "container");
|
||||
container.AddClass("DamageLabelContainer");
|
||||
var labelmodifier = $.CreatePanel("Label", container, "labelmodifier");
|
||||
labelmodifier.AddClass("MonoNumbersFont");
|
||||
labelmodifier.AddClass("StatRegionLabel");
|
||||
labelmodifier.AddClass("StatModifier");
|
||||
labelmodifier.style["margin-top"] = "1px";
|
||||
labelmodifier.html = true;
|
||||
labelmodifier.text = "0";
|
||||
PowerLabelModifier = labelmodifier;
|
||||
var icon = $.CreatePanel("Panel", power, "DamageIcon");
|
||||
icon.AddClass("StatIcon");
|
||||
}
|
||||
if(statContainer.FindChildTraverse("crit_damage") == null)
|
||||
{
|
||||
var power = $.CreatePanel("Panel", statContainer, "crit_damage");
|
||||
power.AddClass("StatIconLabel");
|
||||
var column = $.CreatePanel("Panel", power, "column");
|
||||
column.AddClass("LabelColumn");
|
||||
var container = $.CreatePanel("Panel", column, "container");
|
||||
container.AddClass("DamageLabelContainer");
|
||||
var labelmodifier = $.CreatePanel("Label", container, "labelmodifier");
|
||||
labelmodifier.AddClass("MonoNumbersFont");
|
||||
labelmodifier.AddClass("StatRegionLabel");
|
||||
labelmodifier.AddClass("StatModifier");
|
||||
// labelmodifier.style["margin-top"] = "1px";
|
||||
labelmodifier.html = true;
|
||||
labelmodifier.text = "<font color='yellow'>0%</font>";
|
||||
CritDamageLabelModifier = labelmodifier;
|
||||
var icon = $.CreatePanel("Panel", power, "DamageIcon");
|
||||
icon.AddClass("StatIcon");
|
||||
}
|
||||
if(statContainer.FindChildTraverse("crit_chance") == null)
|
||||
{
|
||||
var power = $.CreatePanel("Panel", statContainer, "crit_chance");
|
||||
power.AddClass("StatIconLabel");
|
||||
var column = $.CreatePanel("Panel", power, "column");
|
||||
column.AddClass("LabelColumn");
|
||||
var container = $.CreatePanel("Panel", column, "container");
|
||||
container.AddClass("DamageLabelContainer");
|
||||
var labelmodifier = $.CreatePanel("Label", container, "labelmodifier");
|
||||
labelmodifier.AddClass("MonoNumbersFont");
|
||||
labelmodifier.AddClass("StatRegionLabel");
|
||||
labelmodifier.AddClass("StatModifier");
|
||||
// labelmodifier.style["margin-top"] = "1px";
|
||||
labelmodifier.html = true;
|
||||
labelmodifier.text = "<font color='#c9520d'>0%</font>";
|
||||
CritChanceLabelModifier = labelmodifier;
|
||||
var icon = $.CreatePanel("Panel", power, "DamageIcon");
|
||||
icon.AddClass("StatIcon");
|
||||
}
|
||||
|
||||
|
||||
// 背包物品星级和等级
|
||||
var centerBlock = root.FindChild("HUDElements").FindChild("lower_hud").FindChild("center_with_stats").FindChild("center_block");
|
||||
var inventory = centerBlock.FindChild("inventory");
|
||||
|
||||
var list = inventory.FindChildTraverse("inventory_list");
|
||||
for ( var i = 0; i <= 2; i++ ) {
|
||||
var slot = list.FindChildTraverse("inventory_slot_" + i.toString());
|
||||
var item = slot.FindChildTraverse("AbilityButton");
|
||||
|
||||
itemList[i] = item;
|
||||
|
||||
var labelmodifier = $.CreatePanel("Label", item, "labellevel");
|
||||
itemList[i][6] = labelmodifier;
|
||||
labelmodifier.style.width = "16px";
|
||||
labelmodifier.style.height = "16px";
|
||||
labelmodifier.style.color = "#FFCC33";
|
||||
labelmodifier.style["horizontal-align"] = "right";
|
||||
labelmodifier.style["vertical-align"] = "top";
|
||||
labelmodifier.style["font-size"] = "16px";
|
||||
labelmodifier.style["text-shadow"] = "0px 0px 4px 4 #000000";
|
||||
labelmodifier.style["letter-spacing"] = "0 px";
|
||||
labelmodifier.text = "";
|
||||
|
||||
for ( var j = 1; j <= 5; j++ )
|
||||
{
|
||||
var img = $.CreatePanel("Image", item, "Image_" + j.toString());
|
||||
var imgNum = "Image_"+j.toString();
|
||||
img.SetImage("s2r://panorama/images/custom_game/star_png.vtex");
|
||||
img.style.width = "12px";
|
||||
img.style.height = "12px";
|
||||
img.style.x = (12* (j-1)).toString() + "px";
|
||||
img.style["horizontal-align"] = "left";
|
||||
img.style["vertical-align"] = "bottom";
|
||||
itemList[i][j] = img;
|
||||
img.visible = false;
|
||||
}
|
||||
}
|
||||
list = inventory.FindChildTraverse("inventory_list2");
|
||||
for ( var i = 3; i <= 5; i++ ) {
|
||||
var slot = list.FindChildTraverse("inventory_slot_" + i.toString());
|
||||
var item = slot.FindChildTraverse("AbilityButton");
|
||||
|
||||
itemList[i] = item;
|
||||
|
||||
var labelmodifier = $.CreatePanel("Label", item, "labellevel");
|
||||
itemList[i][6] = labelmodifier;
|
||||
labelmodifier.style.width = "16px";
|
||||
labelmodifier.style.height = "16px";
|
||||
labelmodifier.style.color = "#FFCC33";
|
||||
labelmodifier.style["horizontal-align"] = "right";
|
||||
labelmodifier.style["vertical-align"] = "top";
|
||||
labelmodifier.style["font-size"] = "16px";
|
||||
labelmodifier.style["text-shadow"] = "0px 0px 4px 4 #000000";
|
||||
labelmodifier.style["letter-spacing"] = "0 px";
|
||||
labelmodifier.text = "";
|
||||
|
||||
|
||||
for ( var j = 1; j <= 5; j++ )
|
||||
{
|
||||
var img = $.CreatePanel("Image", item, "Image_" + j.toString());
|
||||
var imgNum = "Image_"+j.toString();
|
||||
img.SetImage("s2r://panorama/images/custom_game/star_png.vtex");
|
||||
img.style.width = "12px";
|
||||
img.style.height = "12px";
|
||||
img.style.x = (12* (j-1)).toString() + "px";
|
||||
img.style["horizontal-align"] = "left";
|
||||
img.style["vertical-align"] = "bottom";
|
||||
itemList[i][j] = img;
|
||||
img.visible = false;
|
||||
}
|
||||
}
|
||||
|
||||
CustomPanelRefresh();
|
||||
|
||||
GameEvents.Subscribe("dota_inventory_changed", OnDotaInventoryChanged);
|
||||
GameEvents.Subscribe("dota_inventory_item_changed", OnDotaInventoryChanged);
|
||||
// GameEvents.Subscribe("dota_player_update_selected_unit", OnDotaPlayerUpdateSelectedUnit);
|
||||
// GameEvents.Subscribe("dota_player_update_query_unit", OnDotaPlayerUpdateSelectedUnit); //点击单位
|
||||
// GameEvents.Subscribe("thtd_power_update", CustomPowerPanelRefresh);
|
||||
// GameEvents.Subscribe("dota_portrait_unit_modifiers_changed", OnDotaPortraitUnitModifiersChanged);
|
||||
})();
|
||||
|
||||
|
||||
function OnDotaInventoryChanged(data) {
|
||||
// 背包有物品称动、入、出均可触发
|
||||
CustomStarPanelRefresh();
|
||||
}
|
||||
|
||||
// function OnDotaPlayerUpdateSelectedUnit(data) {
|
||||
// CustomPowerPanelRefresh();
|
||||
// CustomStarPanelRefresh();
|
||||
// }
|
||||
|
||||
// function OnDotaPortraitUnitModifiersChanged(data) {
|
||||
// CustomPowerPanelRefresh();
|
||||
// }
|
||||
|
||||
|
||||
Reference in New Issue
Block a user