warcraft-3-w3ts-utils 0.1.3 → 0.1.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/utils/abilities.d.ts +35 -0
- package/dist/utils/abilities.js +125 -0
- package/dist/utils/camera.d.ts +1 -0
- package/dist/utils/camera.js +37 -0
- package/dist/utils/chat-command.d.ts +12 -0
- package/dist/utils/chat-command.js +22 -0
- package/{src/utils/color.ts → dist/utils/color.d.ts} +109 -139
- package/dist/utils/color.js +141 -0
- package/dist/utils/item.d.ts +9 -0
- package/dist/utils/item.js +124 -0
- package/dist/utils/math.d.ts +13 -0
- package/dist/utils/math.js +17 -0
- package/dist/utils/minimapIcons.d.ts +13 -0
- package/dist/utils/minimapIcons.js +27 -0
- package/dist/utils/misc.d.ts +56 -0
- package/dist/utils/misc.js +175 -0
- package/dist/utils/physics.d.ts +52 -0
- package/dist/utils/physics.js +194 -0
- package/dist/utils/players.d.ts +50 -0
- package/dist/utils/players.js +189 -0
- package/dist/utils/point.d.ts +15 -0
- package/dist/utils/point.js +74 -0
- package/dist/utils/quests.d.ts +2 -0
- package/dist/utils/quests.js +30 -0
- package/dist/utils/textTag.d.ts +29 -0
- package/dist/utils/textTag.js +72 -0
- package/dist/utils/timer.d.ts +5 -0
- package/dist/utils/timer.js +16 -0
- package/dist/utils/units.d.ts +26 -0
- package/dist/utils/units.js +81 -0
- package/package.json +5 -1
- package/src/utils/abilities.ts +0 -161
- package/src/utils/camera.ts +0 -63
- package/src/utils/chat-command.ts +0 -22
- package/src/utils/item.ts +0 -155
- package/src/utils/math.ts +0 -14
- package/src/utils/minimapIcons.ts +0 -34
- package/src/utils/misc.ts +0 -179
- package/src/utils/physics.ts +0 -295
- package/src/utils/players.ts +0 -214
- package/src/utils/point.ts +0 -81
- package/src/utils/quests.ts +0 -38
- package/src/utils/textTag.ts +0 -80
- package/src/utils/timer.ts +0 -14
- package/src/utils/units.ts +0 -109
- package/tsconfig.tsbuildinfo +0 -1
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.unitHasItem = unitHasItem;
|
|
4
|
+
exports.trig_itemRecipeSystem = trig_itemRecipeSystem;
|
|
5
|
+
const w3ts_1 = require("w3ts");
|
|
6
|
+
const misc_1 = require("./misc");
|
|
7
|
+
/**
|
|
8
|
+
* Checks if the unit has an item in their item slots
|
|
9
|
+
* @param u
|
|
10
|
+
* @param itemTypeId
|
|
11
|
+
* @returns
|
|
12
|
+
*/
|
|
13
|
+
function unitHasItem(u, itemTypeId) {
|
|
14
|
+
for (let x = 0; x < 6; x++) {
|
|
15
|
+
if (u.getItemInSlot(x)?.typeId === itemTypeId) {
|
|
16
|
+
return true;
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
return false;
|
|
20
|
+
}
|
|
21
|
+
// Player should pick up recipes when needed. if they are missing items then the recipe cost is refunded
|
|
22
|
+
function trig_itemRecipeSystem() {
|
|
23
|
+
//takes a set of items
|
|
24
|
+
//unit or unit clicks
|
|
25
|
+
const t = w3ts_1.Trigger.create();
|
|
26
|
+
t.registerAnyUnitEvent(EVENT_PLAYER_UNIT_PICKUP_ITEM);
|
|
27
|
+
t.addAction(() => {
|
|
28
|
+
const recipeItem = w3ts_1.Item.fromEvent();
|
|
29
|
+
const unit = w3ts_1.Unit.fromHandle(GetTriggerUnit());
|
|
30
|
+
if (!unit || !recipeItem) {
|
|
31
|
+
return;
|
|
32
|
+
}
|
|
33
|
+
//for every item they have, if any has the word recipe, then we check to see if they have the items needed to satisfy the recipe
|
|
34
|
+
for (let x = 0; x < 6; x++) {
|
|
35
|
+
const currItem = unit?.getItemInSlot(x);
|
|
36
|
+
if (currItem?.name.toLowerCase().includes("recipe")) {
|
|
37
|
+
checkItemRecipeRequirements(unit, currItem);
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
function checkItemRecipeRequirements(unit, recipeItem) {
|
|
43
|
+
if (recipeItem.name.toLowerCase().includes("recipe")) {
|
|
44
|
+
let requiredItems = null;
|
|
45
|
+
let itemToCreateId = null;
|
|
46
|
+
for (const [key, value] of itemRecipesMap.entries()) {
|
|
47
|
+
if (key.recipeId === recipeItem.typeId) {
|
|
48
|
+
requiredItems = value;
|
|
49
|
+
itemToCreateId = key.itemId;
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
if (!requiredItems) {
|
|
53
|
+
print("Missing required items data for the recipe ", recipeItem.name);
|
|
54
|
+
return;
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* unique list of item types and their quantity and charges that we found on the unit
|
|
58
|
+
*/
|
|
59
|
+
const matchingItems = [];
|
|
60
|
+
//Loop through the units item slots
|
|
61
|
+
for (let x = 0; x < 6; x++) {
|
|
62
|
+
const currItem = unit?.getItemInSlot(x);
|
|
63
|
+
//Check that the current item matches at least one of the item types in the requirement list
|
|
64
|
+
if (currItem && requiredItems.some((req) => req.itemTypeId === currItem.typeId)) {
|
|
65
|
+
const alreadyStoredItemIndex = matchingItems.findIndex((itemReq) => itemReq.itemTypeId === currItem.typeId);
|
|
66
|
+
//If we already came across this item in the unit inventory then increment the quantity
|
|
67
|
+
if (alreadyStoredItemIndex && matchingItems[alreadyStoredItemIndex]) {
|
|
68
|
+
matchingItems[alreadyStoredItemIndex].quantity++;
|
|
69
|
+
}
|
|
70
|
+
//otherwise it is our first match with this item type, so add it to our array of matching items
|
|
71
|
+
else {
|
|
72
|
+
matchingItems.push({ itemTypeId: currItem.typeId, quantity: 1, charges: 0 });
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
//Check that every item required is found in the units inventory satisfies the quantity requirement for the recipe
|
|
77
|
+
const satisfiesRecipe = requiredItems.every((reqItemData) => {
|
|
78
|
+
const matching = matchingItems?.find((matchingItemData) => matchingItemData.itemTypeId === reqItemData.itemTypeId);
|
|
79
|
+
if (matching) {
|
|
80
|
+
return matching.quantity >= reqItemData.quantity;
|
|
81
|
+
}
|
|
82
|
+
return false;
|
|
83
|
+
}) && matchingItems.length > 0;
|
|
84
|
+
if (!itemToCreateId) {
|
|
85
|
+
print("Missing the item type id of the item to create for this recipe: ", recipeItem.name);
|
|
86
|
+
}
|
|
87
|
+
//destroys more items than it needds to
|
|
88
|
+
if (satisfiesRecipe && itemToCreateId) {
|
|
89
|
+
//add the item
|
|
90
|
+
requiredItems.forEach((req) => {
|
|
91
|
+
for (let x = 0; x < req.quantity; x++) {
|
|
92
|
+
for (let x = 0; x < 6; x++) {
|
|
93
|
+
const currItem = unit?.getItemInSlot(x);
|
|
94
|
+
if (currItem?.typeId === req.itemTypeId) {
|
|
95
|
+
currItem?.destroy();
|
|
96
|
+
break;
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
});
|
|
101
|
+
recipeItem.destroy();
|
|
102
|
+
unit.addItemById(itemToCreateId);
|
|
103
|
+
(0, misc_1.useTempEffect)(w3ts_1.Effect.create("Abilities\\Spells\\Other\\Monsoon\\MonsoonBoltTarget.mdl", unit.x, unit.y));
|
|
104
|
+
const clap = w3ts_1.Effect.create("Abilities\\Spells\\Human\\Thunderclap\\ThunderClapCaster.mdl", unit.x, unit.y);
|
|
105
|
+
clap?.setScaleMatrix(0.5, 0.5, 0.5);
|
|
106
|
+
(0, misc_1.useTempEffect)(clap);
|
|
107
|
+
}
|
|
108
|
+
if (!satisfiesRecipe) {
|
|
109
|
+
//refund the gold
|
|
110
|
+
(0, misc_1.notifyPlayer)(`Missing recipe requirements for: ${recipeItem.name}.`);
|
|
111
|
+
}
|
|
112
|
+
//use if or rf to store item gold cost in the world editor
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
const itemRecipesMap = new Map([
|
|
116
|
+
// [
|
|
117
|
+
// { recipeId: ITEMS.recipe_blinkTreads, itemId: ITEMS.blinkTreads },
|
|
118
|
+
// [
|
|
119
|
+
// { itemTypeId: ITEMS.bootsOfSpeed, quantity: 1, charges: 0 }, //
|
|
120
|
+
// { itemTypeId: ITEMS.blinkDagger, quantity: 1, charges: 0 }, //
|
|
121
|
+
// ],
|
|
122
|
+
// ],
|
|
123
|
+
]);
|
|
124
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXRlbS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlscy9pdGVtLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBU0Esa0NBUUM7QUFHRCxzREFzQkM7QUExQ0QsK0JBQW1EO0FBQ25ELGlDQUFxRDtBQUVyRDs7Ozs7R0FLRztBQUNILFNBQWdCLFdBQVcsQ0FBQyxDQUFPLEVBQUUsVUFBa0I7SUFDbkQsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsRUFBRSxNQUFNLEtBQUssVUFBVSxFQUFFLENBQUM7WUFDNUMsT0FBTyxJQUFJLENBQUM7UUFDaEIsQ0FBQztJQUNMLENBQUM7SUFFRCxPQUFPLEtBQUssQ0FBQztBQUNqQixDQUFDO0FBRUQsd0dBQXdHO0FBQ3hHLFNBQWdCLHFCQUFxQjtJQUNqQyxzQkFBc0I7SUFDdEIscUJBQXFCO0lBQ3JCLE1BQU0sQ0FBQyxHQUFHLGNBQU8sQ0FBQyxNQUFNLEVBQUUsQ0FBQztJQUUzQixDQUFDLENBQUMsb0JBQW9CLENBQUMsNkJBQTZCLENBQUMsQ0FBQztJQUN0RCxDQUFDLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRTtRQUNiLE1BQU0sVUFBVSxHQUFHLFdBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUNwQyxNQUFNLElBQUksR0FBRyxXQUFJLENBQUMsVUFBVSxDQUFDLGNBQWMsRUFBRSxDQUFDLENBQUM7UUFFL0MsSUFBSSxDQUFDLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQ3ZCLE9BQU87UUFDWCxDQUFDO1FBRUQsZ0lBQWdJO1FBQ2hJLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQztZQUN6QixNQUFNLFFBQVEsR0FBRyxJQUFJ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
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.distanceBetweenCoords = distanceBetweenCoords;
|
|
4
|
+
/**
|
|
5
|
+
* @deprecated
|
|
6
|
+
* @param a
|
|
7
|
+
* @param b
|
|
8
|
+
* @returns
|
|
9
|
+
*/
|
|
10
|
+
function distanceBetweenCoords(a, b) {
|
|
11
|
+
const deltaX = a.x - b.x;
|
|
12
|
+
const deltaY = a.y - b.y;
|
|
13
|
+
const squaredDist = Math.pow(deltaX, 2) + Math.pow(deltaY, 2);
|
|
14
|
+
const dist = Math.sqrt(squaredDist);
|
|
15
|
+
return dist;
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWF0aC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlscy9tYXRoLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBTUEsc0RBT0M7QUFiRDs7Ozs7R0FLRztBQUNILFNBQWdCLHFCQUFxQixDQUFDLENBQTJCLEVBQUUsQ0FBMkI7SUFDMUYsTUFBTSxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3pCLE1BQU0sTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN6QixNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQztJQUM5RCxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBRXBDLE9BQU8sSUFBSSxDQUFDO0FBQ2hCLENBQUMifQ==
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export type MINIMAP_ICONS = "UI\\Minimap\\MiniMap-ControlPoint.mdl" | "UI\\Minimap\\MiniMap-QuestGiver.mdl" | "UI\\Minimap\\Minimap-QuestObjectiveBonus.mdl" | "UI\\Minimap\\Minimap-QuestObjectivePrimary.mdl" | "UI\\Minimap\\Minimap-QuestTurnIn.mdl" | "UI\\Minimap\\MiniMap-Hero.mdl" | "UI\\Minimap\\Minimap-Ping.mdl" | "UI\\Minimap\\MiniMap-Item.mdl" | "UI\\Minimap\\MiniMap-NeutralBuilding.mdl";
|
|
2
|
+
export declare enum MinimapIconPath {
|
|
3
|
+
controlPoint = "UI\\Minimap\\MiniMap-ControlPoint.mdl",
|
|
4
|
+
questGiver = "UI\\Minimap\\MiniMap-QuestGiver.mdl",
|
|
5
|
+
questObjectiveBonus = "UI\\Minimap\\Minimap-QuestObjectiveBonus.mdl",
|
|
6
|
+
questObjectivePrimary = "UI\\Minimap\\Minimap-QuestObjectivePrimary.mdl",
|
|
7
|
+
questTurnIn = "UI\\Minimap\\Minimap-QuestTurnIn.mdl",
|
|
8
|
+
hero = "UI\\Minimap\\MiniMap-Hero.mdl",
|
|
9
|
+
item = "UI\\Minimap\\MiniMap-Item.mdl",
|
|
10
|
+
neutralBuilding = "UI\\Minimap\\MiniMap-NeutralBuilding.mdl",
|
|
11
|
+
ping = "UI\\Minimap\\Minimap-Ping.mdl"
|
|
12
|
+
}
|
|
13
|
+
export declare const minimapIconPathsSet: Set<MINIMAP_ICONS>;
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.minimapIconPathsSet = exports.MinimapIconPath = void 0;
|
|
4
|
+
var MinimapIconPath;
|
|
5
|
+
(function (MinimapIconPath) {
|
|
6
|
+
MinimapIconPath["controlPoint"] = "UI\\Minimap\\MiniMap-ControlPoint.mdl";
|
|
7
|
+
MinimapIconPath["questGiver"] = "UI\\Minimap\\MiniMap-QuestGiver.mdl";
|
|
8
|
+
MinimapIconPath["questObjectiveBonus"] = "UI\\Minimap\\Minimap-QuestObjectiveBonus.mdl";
|
|
9
|
+
MinimapIconPath["questObjectivePrimary"] = "UI\\Minimap\\Minimap-QuestObjectivePrimary.mdl";
|
|
10
|
+
MinimapIconPath["questTurnIn"] = "UI\\Minimap\\Minimap-QuestTurnIn.mdl";
|
|
11
|
+
MinimapIconPath["hero"] = "UI\\Minimap\\MiniMap-Hero.mdl";
|
|
12
|
+
MinimapIconPath["item"] = "UI\\Minimap\\MiniMap-Item.mdl";
|
|
13
|
+
MinimapIconPath["neutralBuilding"] = "UI\\Minimap\\MiniMap-NeutralBuilding.mdl";
|
|
14
|
+
MinimapIconPath["ping"] = "UI\\Minimap\\Minimap-Ping.mdl";
|
|
15
|
+
})(MinimapIconPath || (exports.MinimapIconPath = MinimapIconPath = {}));
|
|
16
|
+
exports.minimapIconPathsSet = new Set([
|
|
17
|
+
"UI\\Minimap\\MiniMap-ControlPoint.mdl",
|
|
18
|
+
"UI\\Minimap\\MiniMap-Hero.mdl",
|
|
19
|
+
"UI\\Minimap\\MiniMap-Item.mdl",
|
|
20
|
+
"UI\\Minimap\\MiniMap-NeutralBuilding.mdl",
|
|
21
|
+
"UI\\Minimap\\MiniMap-QuestGiver.mdl",
|
|
22
|
+
"UI\\Minimap\\Minimap-Ping.mdl",
|
|
23
|
+
"UI\\Minimap\\Minimap-QuestObjectiveBonus.mdl",
|
|
24
|
+
"UI\\Minimap\\Minimap-QuestObjectivePrimary.mdl",
|
|
25
|
+
"UI\\Minimap\\Minimap-QuestTurnIn.mdl",
|
|
26
|
+
]);
|
|
27
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWluaW1hcEljb25zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3V0aWxzL21pbmltYXBJY29ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFXQSxJQUFZLGVBVVg7QUFWRCxXQUFZLGVBQWU7SUFDdkIseUVBQXNELENBQUE7SUFDdEQscUVBQWtELENBQUE7SUFDbEQsdUZBQW9FLENBQUE7SUFDcEUsMkZBQXdFLENBQUE7SUFDeEUsdUVBQW9ELENBQUE7SUFDcEQseURBQXNDLENBQUE7SUFDdEMseURBQXNDLENBQUE7SUFDdEMsK0VBQTRELENBQUE7SUFDNUQseURBQXNDLENBQUE7QUFDMUMsQ0FBQyxFQVZXLGVBQWUsK0JBQWYsZUFBZSxRQVUxQjtBQUVZLFFBQUEsbUJBQW1CLEdBQUcsSUFBSSxHQUFHLENBQWdCO0lBQ3RELHVDQUF1QztJQUN2QywrQkFBK0I7SUFDL0IsK0JBQStCO0lBQy9CLDBDQUEwQztJQUMxQyxxQ0FBcUM7SUFDckMsK0JBQStCO0lBQy9CLDhDQUE4QztJQUM5QyxnREFBZ0Q7SUFDaEQsc0NBQXNDO0NBQ3pDLENBQUMsQ0FBQyJ9
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { Effect, MapPlayer, Unit } from "w3ts";
|
|
2
|
+
type ProperColors = "goldenrod" | "magenta" | "green" | "yellow" | "red" | "player1-red" | "player2-blue" | "player3-teal" | "player4-purple" | "player5-yellow" | "player6-orange";
|
|
3
|
+
export declare function tColor(text: string | number, color?: ProperColors | null, hex?: PlayerColorHex | string | null, alpha?: string): string;
|
|
4
|
+
/**
|
|
5
|
+
* Colorizes the string according to the map player
|
|
6
|
+
*/
|
|
7
|
+
export declare function ptColor(player: MapPlayer, text: string): string;
|
|
8
|
+
export declare enum PlayerColorHex {
|
|
9
|
+
Red = "ff0303",
|
|
10
|
+
Blue = "0042ff",
|
|
11
|
+
Teal = "1be7ba",
|
|
12
|
+
Purple = "550081",
|
|
13
|
+
Yellow = "fefc00",
|
|
14
|
+
Orange = "fe890d",
|
|
15
|
+
Green = "21bf00",
|
|
16
|
+
Pink = "e45caf",
|
|
17
|
+
Gray = "939596",
|
|
18
|
+
LightBlue = "7ebff1",
|
|
19
|
+
DarkGreen = "106247",
|
|
20
|
+
Brown = "4f2b05",
|
|
21
|
+
Maroon = "9c0000",
|
|
22
|
+
Navy = "0000c3",
|
|
23
|
+
Turquoise = "00ebff",
|
|
24
|
+
Violet = "bd00ff",
|
|
25
|
+
Wheat = "ecce87",
|
|
26
|
+
Peach = "f7a58b",
|
|
27
|
+
Mint = "bfff81",
|
|
28
|
+
Lavender = "dbb8eb",
|
|
29
|
+
Coal = "4f5055",
|
|
30
|
+
Snow = "ecf0ff",
|
|
31
|
+
Emerald = "00781e",
|
|
32
|
+
Peanut = "a56f34",
|
|
33
|
+
Black = "2e2d2e"
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Standardized format for notifying player of events.
|
|
37
|
+
*/
|
|
38
|
+
export declare function notifyPlayer(msg: string): void;
|
|
39
|
+
export declare function displayError(msg: string): void;
|
|
40
|
+
/**
|
|
41
|
+
* Returns degrees or radians?
|
|
42
|
+
*/
|
|
43
|
+
export declare function getRelativeAngleToUnit(unit: Unit, relativeUnit: Unit): number;
|
|
44
|
+
/**
|
|
45
|
+
* Manages state of effects in this context so you don't have to!
|
|
46
|
+
*/
|
|
47
|
+
export declare function useEffects(): {
|
|
48
|
+
addEffect: (effect: Effect | undefined) => void;
|
|
49
|
+
/**
|
|
50
|
+
* @returns reference to effects array
|
|
51
|
+
*/
|
|
52
|
+
getEffects: () => Effect[];
|
|
53
|
+
destroyAllEffects: () => void;
|
|
54
|
+
};
|
|
55
|
+
export declare function useTempEffect(effect: Effect | undefined, duration?: number): void;
|
|
56
|
+
export {};
|
|
@@ -0,0 +1,175 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.PlayerColorHex = void 0;
|
|
4
|
+
exports.tColor = tColor;
|
|
5
|
+
exports.ptColor = ptColor;
|
|
6
|
+
exports.notifyPlayer = notifyPlayer;
|
|
7
|
+
exports.displayError = displayError;
|
|
8
|
+
exports.getRelativeAngleToUnit = getRelativeAngleToUnit;
|
|
9
|
+
exports.useEffects = useEffects;
|
|
10
|
+
exports.useTempEffect = useTempEffect;
|
|
11
|
+
const w3ts_1 = require("w3ts");
|
|
12
|
+
function tColor(text, color, hex, alpha) {
|
|
13
|
+
if (color) {
|
|
14
|
+
return `|cff${properColorHexes.get(color) || "FFFFFF"}${alpha || ""}${text}|r`;
|
|
15
|
+
}
|
|
16
|
+
else if (hex) {
|
|
17
|
+
return `|cff${hex}${alpha || ""}${text}|r`;
|
|
18
|
+
}
|
|
19
|
+
return String(text);
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Colorizes the string according to the map player
|
|
23
|
+
*/
|
|
24
|
+
function ptColor(player, text) {
|
|
25
|
+
return `${tColor(text, undefined, playerColors[player.id])}`;
|
|
26
|
+
}
|
|
27
|
+
const properColorHexes = new Map([
|
|
28
|
+
["goldenrod", "ffcc00"],
|
|
29
|
+
["green", "00FF00"],
|
|
30
|
+
["yellow", "FFFF00"],
|
|
31
|
+
["red", "FF0000"],
|
|
32
|
+
["magenta", "FF00FF"],
|
|
33
|
+
["player1-red", "ff0303"],
|
|
34
|
+
["player2-blue", "0042ff"],
|
|
35
|
+
["player3-teal", "1ce6b9"],
|
|
36
|
+
["player4-purple", "540081"],
|
|
37
|
+
["player5-yellow", "fffc00"],
|
|
38
|
+
["player6-orange", "fe8a0e"],
|
|
39
|
+
]);
|
|
40
|
+
// enum PlayerColors {
|
|
41
|
+
// Player1 = "ff0303", // Red
|
|
42
|
+
// Player2 = "0042ff", // Blue
|
|
43
|
+
// Player3 = "1be7ba", // Teal
|
|
44
|
+
// Player4 = "550081", // Purple
|
|
45
|
+
// Player5 = "fefc00", // Yellow
|
|
46
|
+
// Player6 = "fe890d", // Orange
|
|
47
|
+
// Player7 = "21bf00", // Green
|
|
48
|
+
// Player8 = "e45caf", // Pink
|
|
49
|
+
// Player9 = "939596", // Gray
|
|
50
|
+
// Player10 = "7ebff1", // Light Blue
|
|
51
|
+
// Player11 = "106247", // Dark Green
|
|
52
|
+
// Player12 = "4f2b05", // Brown
|
|
53
|
+
// Player13 = "9c0000", // Maroon
|
|
54
|
+
// Player14 = "0000c3", // Navy
|
|
55
|
+
// Player15 = "00ebff", // Turquoise
|
|
56
|
+
// Player16 = "bd00ff", // Violet
|
|
57
|
+
// Player17 = "ecce87", // Wheat
|
|
58
|
+
// Player18 = "f7a58b", // Peach
|
|
59
|
+
// Player19 = "bfff81", // Mint
|
|
60
|
+
// Player20 = "dbb8eb", // Lavender
|
|
61
|
+
// Player21 = "4f5055", // Coal
|
|
62
|
+
// Player22 = "ecf0ff", // Snow
|
|
63
|
+
// Player23 = "00781e", // Emerald
|
|
64
|
+
// Player24 = "a56f34", // Peanut
|
|
65
|
+
// PlayerNeutral = "2e2d2e", // Black
|
|
66
|
+
// }
|
|
67
|
+
var PlayerColorHex;
|
|
68
|
+
(function (PlayerColorHex) {
|
|
69
|
+
PlayerColorHex["Red"] = "ff0303";
|
|
70
|
+
PlayerColorHex["Blue"] = "0042ff";
|
|
71
|
+
PlayerColorHex["Teal"] = "1be7ba";
|
|
72
|
+
PlayerColorHex["Purple"] = "550081";
|
|
73
|
+
PlayerColorHex["Yellow"] = "fefc00";
|
|
74
|
+
PlayerColorHex["Orange"] = "fe890d";
|
|
75
|
+
PlayerColorHex["Green"] = "21bf00";
|
|
76
|
+
PlayerColorHex["Pink"] = "e45caf";
|
|
77
|
+
PlayerColorHex["Gray"] = "939596";
|
|
78
|
+
PlayerColorHex["LightBlue"] = "7ebff1";
|
|
79
|
+
PlayerColorHex["DarkGreen"] = "106247";
|
|
80
|
+
PlayerColorHex["Brown"] = "4f2b05";
|
|
81
|
+
PlayerColorHex["Maroon"] = "9c0000";
|
|
82
|
+
PlayerColorHex["Navy"] = "0000c3";
|
|
83
|
+
PlayerColorHex["Turquoise"] = "00ebff";
|
|
84
|
+
PlayerColorHex["Violet"] = "bd00ff";
|
|
85
|
+
PlayerColorHex["Wheat"] = "ecce87";
|
|
86
|
+
PlayerColorHex["Peach"] = "f7a58b";
|
|
87
|
+
PlayerColorHex["Mint"] = "bfff81";
|
|
88
|
+
PlayerColorHex["Lavender"] = "dbb8eb";
|
|
89
|
+
PlayerColorHex["Coal"] = "4f5055";
|
|
90
|
+
PlayerColorHex["Snow"] = "ecf0ff";
|
|
91
|
+
PlayerColorHex["Emerald"] = "00781e";
|
|
92
|
+
PlayerColorHex["Peanut"] = "a56f34";
|
|
93
|
+
PlayerColorHex["Black"] = "2e2d2e";
|
|
94
|
+
})(PlayerColorHex || (exports.PlayerColorHex = PlayerColorHex = {}));
|
|
95
|
+
const playerColors = [
|
|
96
|
+
"ff0303", // Player 1: Red
|
|
97
|
+
"0042ff", // Player 2: Blue
|
|
98
|
+
"1be7ba", // Player 3: Teal
|
|
99
|
+
"550081", // Player 4: Purple
|
|
100
|
+
"fefc00", // Player 5: Yellow
|
|
101
|
+
"fe890d", // Player 6: Orange
|
|
102
|
+
"21bf00", // Player 7: Green
|
|
103
|
+
"e45caf", // Player 8: Pink
|
|
104
|
+
"939596", // Player 9: Gray
|
|
105
|
+
"7ebff1", // Player 10: Light Blue
|
|
106
|
+
"106247", // Player 11: Dark Green
|
|
107
|
+
"4f2b05", // Player 12: Brown
|
|
108
|
+
"9c0000", // Player 13: Maroon
|
|
109
|
+
"0000c3", // Player 14: Navy
|
|
110
|
+
"00ebff", // Player 15: Turquoise
|
|
111
|
+
"bd00ff", // Player 16: Violet
|
|
112
|
+
"ecce87", // Player 17: Wheat
|
|
113
|
+
"f7a58b", // Player 18: Peach
|
|
114
|
+
"bfff81", // Player 19: Mint
|
|
115
|
+
"dbb8eb", // Player 20: Lavender
|
|
116
|
+
"4f5055", // Player 21: Coal
|
|
117
|
+
"ecf0ff", // Player 22: Snow
|
|
118
|
+
"00781e", // Player 23: Emerald
|
|
119
|
+
"a56f34", // Player 24: Peanut
|
|
120
|
+
"2e2d2e", // Player Neutral: Black
|
|
121
|
+
];
|
|
122
|
+
/**
|
|
123
|
+
* Standardized format for notifying player of events.
|
|
124
|
+
*/
|
|
125
|
+
function notifyPlayer(msg) {
|
|
126
|
+
print(`${tColor("!", "goldenrod")} - ${msg}`);
|
|
127
|
+
}
|
|
128
|
+
function displayError(msg) {
|
|
129
|
+
print(`[ ${tColor("WARNING", "red")} ]: ${msg}`);
|
|
130
|
+
}
|
|
131
|
+
/**
|
|
132
|
+
* Returns degrees or radians?
|
|
133
|
+
*/
|
|
134
|
+
function getRelativeAngleToUnit(unit, relativeUnit) {
|
|
135
|
+
const locA = GetUnitLoc(unit.handle);
|
|
136
|
+
const locB = GetUnitLoc(relativeUnit.handle);
|
|
137
|
+
const angle = AngleBetweenPoints(locA, locB);
|
|
138
|
+
RemoveLocation(locA);
|
|
139
|
+
RemoveLocation(locB);
|
|
140
|
+
return angle;
|
|
141
|
+
}
|
|
142
|
+
/**
|
|
143
|
+
* Manages state of effects in this context so you don't have to!
|
|
144
|
+
*/
|
|
145
|
+
function useEffects() {
|
|
146
|
+
const effects = [];
|
|
147
|
+
return {
|
|
148
|
+
addEffect: (effect) => {
|
|
149
|
+
if (effect) {
|
|
150
|
+
effects.push(effect);
|
|
151
|
+
}
|
|
152
|
+
},
|
|
153
|
+
/**
|
|
154
|
+
* @returns reference to effects array
|
|
155
|
+
*/
|
|
156
|
+
getEffects: () => {
|
|
157
|
+
return effects;
|
|
158
|
+
},
|
|
159
|
+
destroyAllEffects: () => {
|
|
160
|
+
effects.forEach((e) => {
|
|
161
|
+
e.destroy();
|
|
162
|
+
});
|
|
163
|
+
},
|
|
164
|
+
};
|
|
165
|
+
}
|
|
166
|
+
function useTempEffect(effect, duration = 1.5) {
|
|
167
|
+
if (effect) {
|
|
168
|
+
const timer = w3ts_1.Timer.create();
|
|
169
|
+
timer.start(duration, false, () => {
|
|
170
|
+
effect.destroy();
|
|
171
|
+
timer.destroy();
|
|
172
|
+
});
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWlzYy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlscy9taXNjLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUlBLHdCQVFDO0FBS0QsMEJBRUM7QUFzR0Qsb0NBRUM7QUFFRCxvQ0FFQztBQUtELHdEQVNDO0FBS0QsZ0NBcUJDO0FBRUQsc0NBU0M7QUFsTEQsK0JBQXNEO0FBSXRELFNBQWdCLE1BQU0sQ0FBQyxJQUFxQixFQUFFLEtBQTJCLEVBQUUsR0FBb0MsRUFBRSxLQUFjO0lBQzNILElBQUksS0FBSyxFQUFFLENBQUM7UUFDUixPQUFPLE9BQU8sZ0JBQWdCLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxJQUFJLFFBQVEsR0FBRyxLQUFLLElBQUksRUFBRSxHQUFHLElBQUksSUFBSSxDQUFDO0lBQ25GLENBQUM7U0FBTSxJQUFJLEdBQUcsRUFBRSxDQUFDO1FBQ2IsT0FBTyxPQUFPLEdBQUcsR0FBRyxLQUFLLElBQUksRUFBRSxHQUFHLElBQUksSUFBSSxDQUFDO0lBQy9DLENBQUM7SUFFRCxPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUN4QixDQUFDO0FBRUQ7O0dBRUc7QUFDSCxTQUFnQixPQUFPLENBQUMsTUFBaUIsRUFBRSxJQUFZO0lBQ25ELE9BQU8sR0FBRyxNQUFNLENBQUMsSUFBSSxFQUFFLFNBQVMsRUFBRSxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQztBQUNqRSxDQUFDO0FBRUQsTUFBTSxnQkFBZ0IsR0FBRyxJQUFJLEdBQUcsQ0FBdUI7SUFDbkQsQ0FBQyxXQUFXLEVBQUUsUUFBUSxDQUFDO0lBQ3ZCLENBQUMsT0FBTyxFQUFFLFFBQVEsQ0FBQztJQUNuQixDQUFDLFFBQVEsRUFBRSxRQUFRLENBQUM7SUFDcEIsQ0FBQyxLQUFLLEVBQUUsUUFBUSxDQUFDO0lBQ2pCLENBQUMsU0FBUyxFQUFFLFFBQVEsQ0FBQztJQUNyQixDQUFDLGFBQWEsRUFB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
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { Effect, Unit } from "w3ts";
|
|
2
|
+
interface ApplyForceConfig {
|
|
3
|
+
/**
|
|
4
|
+
* Default: 0
|
|
5
|
+
*/
|
|
6
|
+
sustainedForceDuration?: number;
|
|
7
|
+
/**
|
|
8
|
+
* Default: -2400 units per second
|
|
9
|
+
*/
|
|
10
|
+
frictionConstant?: number;
|
|
11
|
+
/**
|
|
12
|
+
* The unit will not phase through unpathable areas
|
|
13
|
+
*/
|
|
14
|
+
obeyPathing?: boolean;
|
|
15
|
+
whileActive?: (currentSpeed?: number, timeElapsed?: number) => void;
|
|
16
|
+
onStart?: (currentSpeed?: number, timeElapsed?: number) => void;
|
|
17
|
+
onEnd?: (currentSpeed?: number, timeElapsed?: number) => void;
|
|
18
|
+
/**
|
|
19
|
+
*
|
|
20
|
+
*/
|
|
21
|
+
targetSpeed?: number;
|
|
22
|
+
/**
|
|
23
|
+
* In seconds
|
|
24
|
+
*/
|
|
25
|
+
accelerationTime?: number;
|
|
26
|
+
/**
|
|
27
|
+
* This will be used to decide if the unit the force is applied on is allowed to deviate from their current path.
|
|
28
|
+
*/
|
|
29
|
+
strictPathing?: boolean;
|
|
30
|
+
animationIndexNumber?: number;
|
|
31
|
+
dummyUnitPlayerIndex: number;
|
|
32
|
+
dummyUnitFourCC: number;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* @param angle degrees
|
|
36
|
+
* @param unit
|
|
37
|
+
* @param initialSpeed meters per second
|
|
38
|
+
* @param affectHeight determines whether or not to change unit height whilst force is applied
|
|
39
|
+
*/
|
|
40
|
+
export declare function applyForce(angle: number, unit: Unit, initialSpeed: number, config: ApplyForceConfig): {
|
|
41
|
+
destroyForceEffect: (runOnEnd?: boolean) => void;
|
|
42
|
+
};
|
|
43
|
+
/**
|
|
44
|
+
* @param angle degrees
|
|
45
|
+
* @param effect
|
|
46
|
+
* @param initialSpeed meters per second
|
|
47
|
+
* @param affectHeight determines whether or not to change unit height whilst force is applied
|
|
48
|
+
*/
|
|
49
|
+
export declare function applyForceForEffect(angle: number, effect: Effect, initialSpeed: number, config?: ApplyForceConfig): {
|
|
50
|
+
destroyForceEffect: () => void;
|
|
51
|
+
};
|
|
52
|
+
export {};
|