75 lines
2.2 KiB
JavaScript
75 lines
2.2 KiB
JavaScript
"use strict";
|
|
|
|
var ShopUnit = -1;
|
|
|
|
function Update() {
|
|
var gold = Players.GetGold(Players.GetLocalPlayer()) + Players.GetLastBuybackTime(Players.GetLocalPlayer());
|
|
$("#GoldText").text = gold;
|
|
|
|
var AbilityList = $("#AbilityList");
|
|
var max = AbilityList.GetChildCount();
|
|
for (var i = 0; i < max; i++) {
|
|
var panel = AbilityList.GetChild(i);
|
|
panel.SetHasClass("CanBuy", gold >= panel.GetAttributeInt("Gold", 0));
|
|
}
|
|
|
|
$.Schedule(0.2, Update);
|
|
}
|
|
|
|
if (!Players.IsSpectator(Players.GetLocalPlayer())) {
|
|
Update();
|
|
} else {
|
|
$("#ShopContent").DeleteAsync(0.0);
|
|
$("#BottomBar").DeleteAsync(0.0);
|
|
}
|
|
|
|
// 获取商店单位
|
|
$.Schedule(5, function () {
|
|
if (Players.IsSpectator(Players.GetLocalPlayer())) {
|
|
return;
|
|
}
|
|
var unitList = Entities.GetAllEntitiesByClassname("npc_dota_creature");
|
|
for (var i = 0; i < unitList.length; i++) {
|
|
if (Entities.GetUnitName(unitList[i]) === "minoriko_shop" &&
|
|
Entities.IsControllableByPlayer(unitList[i], Players.GetLocalPlayer())) {
|
|
ShopUnit = unitList[i];
|
|
break;
|
|
}
|
|
}
|
|
|
|
function setAbilityEvent( panel ) {
|
|
panel.SetDraggable(true);
|
|
panel.SetPanelEvent("onmouseover", function () {
|
|
$.DispatchEvent("DOTAShowAbilityTooltip", panel, panel.abilityname);
|
|
});
|
|
panel.SetPanelEvent("onmouseout", function () {
|
|
$.DispatchEvent("DOTAHideAbilityTooltip");
|
|
});
|
|
panel.SetPanelEvent("oncontextmenu", function () {
|
|
Game.PrepareUnitOrders({
|
|
OrderType: dotaunitorder_t.DOTA_UNIT_ORDER_CAST_NO_TARGET,
|
|
UnitIndex: ShopUnit,
|
|
AbilityIndex: panel.contextEntityIndex,
|
|
OrderIssuer: PlayerOrderIssuer_t.DOTA_ORDER_ISSUER_PASSED_UNIT_ONLY,
|
|
});
|
|
});
|
|
}
|
|
|
|
var AbilityList = $("#AbilityList");
|
|
for (var i = 0; i < 7; i++) {
|
|
var ability = Entities.GetAbility( ShopUnit, i )
|
|
if (ability > 0) {
|
|
// var abilityname = Abilities.GetAbilityName(ability);
|
|
if (Abilities.IsHidden(ability) || Abilities.IsAutocast(ability)) continue;
|
|
var panel = $.CreatePanel("DOTAAbilityImage", AbilityList, "");
|
|
var gold = Abilities.GetSpecialValueFor(ability, "cost") || 0;
|
|
panel.contextEntityIndex = ability;
|
|
panel.SetAttributeInt("Gold", gold);
|
|
setAbilityEvent( panel );
|
|
|
|
var label = $.CreatePanel("Label", panel, "");
|
|
label.text = gold
|
|
label.AddClass("Gold");
|
|
}
|
|
}
|
|
}) |