warcraft-3-w3ts-utils 0.1.12 → 0.1.14

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.
Files changed (88) hide show
  1. package/dist/dist/tstl_output.lua.map +1 -0
  2. package/dist/index.d.ts +1 -1
  3. package/dist/index.d.ts.map +1 -0
  4. package/dist/index.lua +0 -2
  5. package/dist/index.lua.map +1 -0
  6. package/dist/package.json +40 -39
  7. package/dist/utils/abilities.d.ts +1 -1
  8. package/dist/utils/abilities.d.ts.map +1 -0
  9. package/dist/utils/abilities.lua +0 -2
  10. package/dist/utils/abilities.lua.map +1 -0
  11. package/dist/utils/camera.d.ts +1 -1
  12. package/dist/utils/camera.d.ts.map +1 -0
  13. package/dist/utils/camera.lua +0 -2
  14. package/dist/utils/camera.lua.map +1 -0
  15. package/dist/utils/chat-command.d.ts +1 -1
  16. package/dist/utils/chat-command.d.ts.map +1 -0
  17. package/dist/utils/chat-command.lua +0 -2
  18. package/dist/utils/chat-command.lua.map +1 -0
  19. package/dist/utils/color.d.ts +104 -1
  20. package/dist/utils/color.d.ts.map +1 -0
  21. package/dist/utils/color.lua +0 -2
  22. package/dist/utils/color.lua.map +1 -0
  23. package/dist/utils/index.d.ts +1 -1
  24. package/dist/utils/index.d.ts.map +1 -0
  25. package/dist/utils/index.lua +0 -2
  26. package/dist/utils/index.lua.map +1 -0
  27. package/dist/utils/item.d.ts +1 -1
  28. package/dist/utils/item.d.ts.map +1 -0
  29. package/dist/utils/item.lua +0 -2
  30. package/dist/utils/item.lua.map +1 -0
  31. package/dist/utils/math.d.ts +1 -1
  32. package/dist/utils/math.d.ts.map +1 -0
  33. package/dist/utils/math.lua +0 -2
  34. package/dist/utils/math.lua.map +1 -0
  35. package/dist/utils/minimapIcons.d.ts +1 -1
  36. package/dist/utils/minimapIcons.d.ts.map +1 -0
  37. package/dist/utils/minimapIcons.lua +0 -2
  38. package/dist/utils/minimapIcons.lua.map +1 -0
  39. package/dist/utils/misc.d.ts +1 -1
  40. package/dist/utils/misc.d.ts.map +1 -0
  41. package/dist/utils/misc.lua +0 -2
  42. package/dist/utils/misc.lua.map +1 -0
  43. package/dist/utils/physics.d.ts +1 -1
  44. package/dist/utils/physics.d.ts.map +1 -0
  45. package/dist/utils/physics.lua +0 -2
  46. package/dist/utils/physics.lua.map +1 -0
  47. package/dist/utils/players.d.ts +1 -1
  48. package/dist/utils/players.d.ts.map +1 -0
  49. package/dist/utils/players.lua +0 -2
  50. package/dist/utils/players.lua.map +1 -0
  51. package/dist/utils/point.d.ts +1 -1
  52. package/dist/utils/point.d.ts.map +1 -0
  53. package/dist/utils/point.lua +0 -2
  54. package/dist/utils/point.lua.map +1 -0
  55. package/dist/utils/quests.d.ts +1 -1
  56. package/dist/utils/quests.d.ts.map +1 -0
  57. package/dist/utils/quests.lua +0 -2
  58. package/dist/utils/quests.lua.map +1 -0
  59. package/dist/utils/textTag.d.ts +1 -1
  60. package/dist/utils/textTag.d.ts.map +1 -0
  61. package/dist/utils/textTag.lua +0 -2
  62. package/dist/utils/textTag.lua.map +1 -0
  63. package/dist/utils/timer.d.ts +1 -1
  64. package/dist/utils/timer.d.ts.map +1 -0
  65. package/dist/utils/timer.lua +0 -2
  66. package/dist/utils/timer.lua.map +1 -0
  67. package/dist/utils/units.d.ts +1 -1
  68. package/dist/utils/units.d.ts.map +1 -0
  69. package/dist/utils/units.lua +0 -2
  70. package/dist/utils/units.lua.map +1 -0
  71. package/package.json +40 -39
  72. package/src/index.ts +1 -0
  73. package/src/utils/abilities.ts +158 -0
  74. package/src/utils/camera.ts +63 -0
  75. package/src/utils/chat-command.ts +22 -0
  76. package/src/utils/color.ts +139 -0
  77. package/src/utils/index.ts +15 -0
  78. package/src/utils/item.ts +163 -0
  79. package/src/utils/math.ts +14 -0
  80. package/src/utils/minimapIcons.ts +34 -0
  81. package/src/utils/misc.ts +179 -0
  82. package/src/utils/physics.ts +295 -0
  83. package/src/utils/players.ts +213 -0
  84. package/src/utils/point.ts +81 -0
  85. package/src/utils/quests.ts +38 -0
  86. package/src/utils/textTag.ts +80 -0
  87. package/src/utils/timer.ts +14 -0
  88. package/src/utils/units.ts +84 -0
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/utils/players.ts"],"names":[],"mappings":"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","file":"players.lua","sourceRoot":""}
@@ -1,4 +1,3 @@
1
- /** @noSelfInFile */
2
1
  import { Point } from "w3ts";
3
2
  export declare function createValidPoint(maxAttempts: number, validatorFn: (p: Point) => {}): Point | undefined;
4
3
  export declare function getRandomCoordinatesInCircularArea(relativeX: number, relativeY: number, radius: number): {
@@ -14,3 +13,4 @@ export declare function getRandomCoordinatesOnCircle(relativeX: number, relative
14
13
  */
15
14
  export declare function getAngleBetweenPoints(x1: number, y1: number, x2: number, y2: number): number;
16
15
  export declare function distanceBetweenPoints(x1: number, y1: number, x2: number, y2: number): number;
16
+ //# sourceMappingURL=point.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"point.d.ts","sourceRoot":"","sources":["../../src/utils/point.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAa,MAAM,MAAM,CAAC;AAGxC,wBAAgB,gBAAgB,CAAC,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC,CAAC,EAAE,KAAK,KAAK,EAAE,qBA2BlF;AAED,wBAAgB,kCAAkC,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;;;EAWtG;AAED,wBAAgB,4BAA4B,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;;;EAUhG;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,UAUnF;AAED,wBAAgB,qBAAqB,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,UAQnF"}
@@ -56,5 +56,3 @@ function ____exports.distanceBetweenPoints(self, x1, y1, x2, y2)
56
56
  return dist
57
57
  end
58
58
  return ____exports
59
-
60
- --# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlscy9wb2ludC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLGlCQUFpQztBQUF4QjtBQUFPO0FBQ1YsNkJBQXVCO0FBRTdCLDRDQUFpQyxhQUFxQjtBQUM1Qyx5QkFBZTtBQUNqQiw0QkFBa0I7QUFDaEIsd0JBQWMsVUFBVSxXQUFXO1dBQ3BDO0FBQWE7O0FBQ0csVUFBZCxNQUFNLE9BQVMsc0JBQXNCO1VBRXJDLG1CQUFtQjtBQUNoQixxQkFBTyxXQUFXLGdCQUFnQixRQUFRLE9BQUssTUFBSztBQUNwRCxxQkFBTyxXQUFXLGdCQUFnQixRQUFRLE9BQUssTUFBSztBQUdwRCxzQkFBUSxPQUFPLFVBQVUsZ0JBQWdCLFFBQVEsT0FBTztBQUN4RCxzQkFBUSxPQUFPLFVBQVUsZ0JBQWdCLFFBQVEsT0FBTztBQUV4RCxrQkFBSSxNQUFNLE9BQU8sT0FBTztBQUV4Qiw2QkFBZSxpQkFBWTtXQUU3QjtBQUVBLG1CQUFPOztBQUdQOzs7QUF4Qlo7QUE2QkEsOERBQW1ELFdBQW1CLFdBQW1CO0FBQy9FLHdCQUFjLGdCQUFnQjtBQUM5Qix5QkFBZSxnQkFBZ0I7QUFFL0Isb0JBQVUsWUFBWSxlQUFlLElBQUk7QUFDekMsb0JBQVUsWUFBWSxlQUFlLElBQUk7QUFFL0MsV0FBTyxDQUNILElBQUcsU0FDSCxJQUFHO0FBVFg7QUFhQSx3REFBNkMsV0FBbUIsV0FBbUI7QUFDekUsd0JBQWMsZ0JBQWdCO0FBRTlCLG9CQUFVLFlBQVksU0FBUyxJQUFJO0FBQ25DLG9CQUFVLFlBQVksU0FBUyxJQUFJO0FBRXpDLFdBQU8sQ0FDSCxJQUFHLFNBQ0gsSUFBRztBQVJYOztBQWVBLGlEQUFzQyxJQUFZLElBQVksSUFBWTtBQUNoRSxpQkFBTyxTQUFTLElBQUk7QUFDcEIsaUJBQU8sU0FBUyxJQUFJO0FBRXBCLGtCQUFRLG1CQUFtQixNQUFNO0lBRXZDLGVBQWU7SUFDZixlQUFlO0FBRWYsV0FBTztBQVRYO0FBWUEsaURBQXNDLElBQVksSUFBWSxJQUFZO0FBQ2hFLG1CQUFTLEtBQUs7QUFDZCxtQkFBUyxLQUFLO0FBQ2Qsd0JBQWMsU0FBUyxTQUFTLFNBQVM7QUFFekMsaUJBQU8sVUFBVTtBQUV2QixXQUFPO0FBUFgiLCJmaWxlIjoicG9pbnQubHVhIiwic291cmNlUm9vdCI6IiJ9
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/utils/point.ts"],"names":[],"mappings":";;AAAA,iBAAiC;AAAxB;AAAO;AACV,6BAAuB;AAE7B,4CAAiC,aAAqB;AAC5C,yBAAe;AACjB,4BAAkB;AAChB,wBAAc,UAAU,WAAW;WACpC;AAAa;;AACG,UAAd,MAAM,OAAS,sBAAsB;UAErC,mBAAmB;AAChB,qBAAO,WAAW,gBAAgB,QAAQ,OAAK,MAAK;AACpD,qBAAO,WAAW,gBAAgB,QAAQ,OAAK,MAAK;AAGpD,sBAAQ,OAAO,UAAU,gBAAgB,QAAQ,OAAO;AACxD,sBAAQ,OAAO,UAAU,gBAAgB,QAAQ,OAAO;AAExD,kBAAI,MAAM,OAAO,OAAO;AAExB,6BAAe,iBAAY;WAE7B;AAEA,mBAAO;;AAGP;;;AAxBZ;AA6BA,8DAAmD,WAAmB,WAAmB;AAC/E,wBAAc,gBAAgB;AAC9B,yBAAe,gBAAgB;AAE/B,oBAAU,YAAY,eAAe,IAAI;AACzC,oBAAU,YAAY,eAAe,IAAI;AAE/C,WAAO,CACH,IAAG,SACH,IAAG;AATX;AAaA,wDAA6C,WAAmB,WAAmB;AACzE,wBAAc,gBAAgB;AAE9B,oBAAU,YAAY,SAAS,IAAI;AACnC,oBAAU,YAAY,SAAS,IAAI;AAEzC,WAAO,CACH,IAAG,SACH,IAAG;AARX;;AAeA,iDAAsC,IAAY,IAAY,IAAY;AAChE,iBAAO,SAAS,IAAI;AACpB,iBAAO,SAAS,IAAI;AAEpB,kBAAQ,mBAAmB,MAAM;IAEvC,eAAe;IACf,eAAe;AAEf,WAAO;AATX;AAYA,iDAAsC,IAAY,IAAY,IAAY;AAChE,mBAAS,KAAK;AACd,mBAAS,KAAK;AACd,wBAAc,SAAS,SAAS,SAAS;AAEzC,iBAAO,UAAU;AAEvB,WAAO;AAPX","file":"point.lua","sourceRoot":""}
@@ -1,3 +1,3 @@
1
- /** @noSelfInFile */
2
1
  export declare function setup_quests(): void;
3
2
  export declare function addQuest(title: string, description: string, iconPath?: string, required?: boolean): void;
3
+ //# sourceMappingURL=quests.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"quests.d.ts","sourceRoot":"","sources":["../../src/utils/quests.ts"],"names":[],"mappings":"AAGA,wBAAgB,YAAY,SAsB3B;AAED,wBAAgB,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,EAAE,QAAQ,GAAE,OAAc,QAUvG"}
@@ -43,5 +43,3 @@ function ____exports.setup_quests(self)
43
43
  )
44
44
  end
45
45
  return ____exports
46
-
47
- --# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlscy9xdWVzdHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxpQkFBNkI7QUFBcEI7QUFBTztBQUNoQixpQkFBdUI7QUFBZDtBQTBCVCxvQ0FBeUIsT0FBZSxhQUFxQixVQUFtQjtPQUFBO1FBQUEsV0FBb0I7O0FBQzFGLGNBQUksTUFBTTtPQUNaO1FBQ0EsRUFBRSxTQUFTO0FBQ1gscUJBQWE7UUFDYixFQUFFLGVBQWU7V0FDYjtZQUNBLEVBQUUsUUFBUTs7O0FBUHRCO0FBeEJBO0lBQ0ksTUFBTSxTQUFTO1FBQU07UUFBRztRQUFPO1lBQzNCLDBCQUNJLG1CQUNBLG9MQUVBO1lBSUo7O2dCQUNJO2lCQUNBLHNCQUNJLFlBQU8sYUFBYSxpQkFBWTtnQkFHcEM7Z0JBQ0E7O1lBR0o7O2dCQUFTO2dCQUE4QztnQkFBMkM7Z0JBQTREOztRQW5Cbkk7O0FBRG5DIiwiZmlsZSI6InF1ZXN0cy5sdWEiLCJzb3VyY2VSb290IjoiIn0=
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/utils/quests.ts"],"names":[],"mappings":";;AAAA,iBAA6B;AAApB;AAAO;AAChB,iBAAuB;AAAd;AA0BT,oCAAyB,OAAe,aAAqB,UAAmB;OAAA;QAAA,WAAoB;;AAC1F,cAAI,MAAM;OACZ;QACA,EAAE,SAAS;AACX,qBAAa;QACb,EAAE,eAAe;WACb;YACA,EAAE,QAAQ;;;AAPtB;AAxBA;IACI,MAAM,SAAS;QAAM;QAAG;QAAO;YAC3B,0BACI,mBACA,oLAEA;YAIJ;;gBACI;iBACA,sBACI,YAAO,aAAa,iBAAY;gBAGpC;gBACA;;YAGJ;;gBAAS;gBAA8C;gBAA2C;gBAA4D;;QAnBnI;;AADnC","file":"quests.lua","sourceRoot":""}
@@ -1,4 +1,3 @@
1
- /** @noSelfInFile */
2
1
  import { Unit } from "w3ts";
3
2
  /**
4
3
  * https://www.hiveworkshop.com/threads/floating-text.149719/
@@ -28,3 +27,4 @@ export declare function createFloatingTextTagOnUnit(unit: Unit, text: string, co
28
27
  }): void;
29
28
  export declare function createPermanentTextTagOnPoint(text: string, x: number, y: number): void;
30
29
  export declare function setup_createTextForSpellCast(): void;
30
+ //# sourceMappingURL=textTag.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"textTag.d.ts","sourceRoot":"","sources":["../../src/utils/textTag.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,IAAI,EAAE,MAAM,MAAM,CAAC;AAI9C;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,2BAA2B,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,QAwB9J;AAED,wBAAgB,6BAA6B,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,QAU/E;AAED,wBAAgB,4BAA4B,SAiB3C"}
@@ -106,5 +106,3 @@ function ____exports.setup_createTextForSpellCast(self)
106
106
  end)
107
107
  end
108
108
  return ____exports
109
-
110
- --# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlscy90ZXh0VGFnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsaUJBQXVDO0FBQTlCO0FBQVM7QUFBUztBQUMzQixpQkFBd0I7QUFBZjtBQUNULGtCQUE2QjtBQUFwQjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFzQlQsdURBQTRDLE1BQVksTUFBYztBQUM1RCxnQkFBTSxRQUFRO09BQ3BCO1FBQUEsSUFBSyxXQUFXOztPQUVoQjtRQUFBLElBQUssUUFBUSxNQUFNLElBQUk7O09BRXZCO1FBQUEsSUFBSyxZQUFZLGdDQUFxQixRQUFZLEtBQUk7O09BRWxELCtCQUFvQjtXQUNwQjtZQUFBLElBQUssYUFBYTs7O09BR3RCO1FBQUEsSUFBSyxZQUFZLGlDQUFzQixRQUFZLEtBQUksa0JBQWtCLGlDQUFzQixRQUFZLFNBQVE7O09BQ25IO1FBQUEsSUFBSyxhQUFhOztPQUVsQjtRQUFBLElBQUssV0FBVyxNQUFNOztPQUVsQixXQUFVLG9CQUFtQixtQkFBb0I7QUFDakQ7O0lBR0o7O1FBQWEsOEJBQW9CO1FBQUc7ZUFDaEM7Z0JBQUEsSUFBSzs7UUFEMkI7O0FBckJ4QztBQTBCQSx5REFBOEMsTUFBYyxHQUFXO0FBQzdELGdCQUFNLFFBQVE7T0FDcEI7UUFBQSxJQUFLLFdBQVc7O09BRWhCO1FBQUEsSUFBSyxRQUFRLE1BQU0sSUFBSTs7T0FDdkI7UUFBQSxJQUFLLFlBQVk7O09BRWpCO1FBQUEsSUFBSyxZQUFZLEdBQUc7O09BQ3BCO1FBQUEsSUFBSyxhQUFhOztPQUNsQjtRQUFBLElBQUssT0FBTyxHQUFHLEdBQUc7O0FBVHRCO0FBWUE7QUFDVSxjQUFJLFFBQVE7SUFFbEIsRUFBRSxxQkFBcUI7SUFFdkIsRUFBRSxVQUFVO0FBQ0Ysa0JBQUksS0FBSztXQUVYO0FBQ00sZ0NBQWM7QUFDZCw4QkFBWSxlQUFlO2VBQzdCLElBQUMsYUFBYSxhQUFjO0FBQWtCOztZQUdsRDs7Z0JBQTRCO2dCQUFHLGFBQVEsU0FBUyxVQUFTOzs7SUFUckQ7QUFMaEIiLCJmaWxlIjoidGV4dFRhZy5sdWEiLCJzb3VyY2VSb290IjoiIn0=
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/utils/textTag.ts"],"names":[],"mappings":";;AAAA,iBAAuC;AAA9B;AAAS;AAAS;AAC3B,iBAAwB;AAAf;AACT,kBAA6B;AAApB;;;;;;;;;;;;;;;;;;;;AAsBT,uDAA4C,MAAY,MAAc;AAC5D,gBAAM,QAAQ;OACpB;QAAA,IAAK,WAAW;;OAEhB;QAAA,IAAK,QAAQ,MAAM,IAAI;;OAEvB;QAAA,IAAK,YAAY,gCAAqB,QAAY,KAAI;;OAElD,+BAAoB;WACpB;YAAA,IAAK,aAAa;;;OAGtB;QAAA,IAAK,YAAY,iCAAsB,QAAY,KAAI,kBAAkB,iCAAsB,QAAY,SAAQ;;OACnH;QAAA,IAAK,aAAa;;OAElB;QAAA,IAAK,WAAW,MAAM;;OAElB,WAAU,oBAAmB,mBAAoB;AACjD;;IAGJ;;QAAa,8BAAoB;QAAG;eAChC;gBAAA,IAAK;;QAD2B;;AArBxC;AA0BA,yDAA8C,MAAc,GAAW;AAC7D,gBAAM,QAAQ;OACpB;QAAA,IAAK,WAAW;;OAEhB;QAAA,IAAK,QAAQ,MAAM,IAAI;;OACvB;QAAA,IAAK,YAAY;;OAEjB;QAAA,IAAK,YAAY,GAAG;;OACpB;QAAA,IAAK,aAAa;;OAClB;QAAA,IAAK,OAAO,GAAG,GAAG;;AATtB;AAYA;AACU,cAAI,QAAQ;IAElB,EAAE,qBAAqB;IAEvB,EAAE,UAAU;AACF,kBAAI,KAAK;WAEX;AACM,gCAAc;AACd,8BAAY,eAAe;eAC7B,IAAC,aAAa,aAAc;AAAkB;;YAGlD;;gBAA4B;gBAAG,aAAQ,SAAS,UAAS;;;IATrD;AALhB","file":"textTag.lua","sourceRoot":""}
@@ -1,6 +1,6 @@
1
- /** @noSelfInFile */
2
1
  import { Timer } from "w3ts";
3
2
  /**
4
3
  * @param duration milliseconds
5
4
  */
6
5
  export declare function delayedTimer(duration: number, cb: (...args: any[]) => any): Timer;
6
+ //# sourceMappingURL=timer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"timer.d.ts","sourceRoot":"","sources":["../../src/utils/timer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,MAAM,CAAC;AAE7B;;GAEG;AACH,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,SAQzE"}
@@ -17,5 +17,3 @@ function ____exports.delayedTimer(self, duration, cb)
17
17
  return timer
18
18
  end
19
19
  return ____exports
20
-
21
- --# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlscy90aW1lci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLGlCQUFzQjtBQUFiOzs7QUFLVCx3Q0FBNkIsVUFBa0I7QUFDckMsa0JBQVEsTUFBTTtJQUNwQixNQUFNO1FBQU07UUFBVTtRQUFPO1lBQ3pCO1lBQ0EsTUFBTTtRQUZtQjs7QUFLN0IsV0FBTztBQVBYIiwiZmlsZSI6InRpbWVyLmx1YSIsInNvdXJjZVJvb3QiOiIifQ==
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/utils/timer.ts"],"names":[],"mappings":";;AAAA,iBAAsB;AAAb;;;AAKT,wCAA6B,UAAkB;AACrC,kBAAQ,MAAM;IACpB,MAAM;QAAM;QAAU;QAAO;YACzB;YACA,MAAM;QAFmB;;AAK7B,WAAO;AAPX","file":"timer.lua","sourceRoot":""}
@@ -1,4 +1,3 @@
1
- /** @noSelfInFile */
2
1
  import { MapPlayer, Unit } from "w3ts";
3
2
  export declare function createUnits(quantity: number, useFood: boolean, ...args: Parameters<typeof Unit.create>): Unit[];
4
3
  /**
@@ -25,3 +24,4 @@ export declare function useTempDummyUnit(dummyUnitCode: number, cb: (dummy: Unit
25
24
  abilityLevel?: number;
26
25
  dummyLifeSpan?: number;
27
26
  }): void;
27
+ //# sourceMappingURL=units.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"units.d.ts","sourceRoot":"","sources":["../../src/utils/units.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,SAAS,EAAS,IAAI,EAAE,MAAM,MAAM,CAAC;AAGrD,wBAAgB,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,IAAI,EAAE,UAAU,CAAC,OAAO,IAAI,CAAC,MAAM,CAAC,UAYtG;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,CAAC,EAAE,IAAI,QAKrC;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAUrE;AAED,wBAAgB,YAAY,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,IAAI,QAa1F;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,aAAa,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,KAAK,EAAE,IAAI,KAAK,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE;IAAE,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAAC,aAAa,CAAC,EAAE,MAAM,CAAA;CAAE,QAgBxN"}
@@ -98,5 +98,3 @@ function ____exports.useTempDummyUnit(self, dummyUnitCode, cb, abilityId, owner,
98
98
  end
99
99
  end
100
100
  return ____exports
101
-
102
- --# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlscy91bml0cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLGlCQUE4QztBQUFyQztBQUFrQjtBQUFPO0FBQ2xDLG9CQUF5QztBQUFoQztBQUFZO0FBRXJCLHVDQUE0QixVQUFrQjtBQUNwQyxrQkFBZ0I7O0FBQ2Isa0JBQUk7Y0FBRyxJQUFJO0FBQ1Ysc0JBQUksS0FBSyxPQUFPO2VBRWxCO2dCQUNBLEVBQUUsV0FBVztBQUNiLG9DQUFXOztBQUxXOzs7QUFTOUIsV0FBTztBQVhYOzs7O0FBa0JBLDBDQUErQjtBQUNyQixpQkFBTyxnQkFBZ0I7QUFDdkIsaUJBQU8sZ0JBQWdCO0lBQzdCLGdCQUFXLFNBQVM7SUFDcEIsa0JBQWEsU0FBUztBQUoxQjs7Ozs7O0FBYUEsMENBQStCLE1BQVk7O0FBQzlCLGtCQUFJO2NBQUcsSUFBSTtBQUNWLG1DQUFpQixLQUFLLGtCQUFrQjtlQUUxQyxtQkFBa0Isa0JBQW1CLEtBQUssV0FBVyxlQUFjLEtBQUs7QUFDeEUsdUJBQU87O0FBSlM7OztBQVF4QixXQUFPO0FBVFg7QUFZQSx3Q0FBNkIsR0FBVyxHQUFXLFFBQWdCO0FBQ3pELGNBQUksTUFBTTtPQUNaO1FBQ0EsRUFBRTtZQUFpQjtZQUFHO1lBQUc7WUFBUTtBQUN2Qiw2QkFBTyxLQUFLO21CQUNkO29CQUNBLFFBQUc7O0FBRVAsdUJBQU87WUFMc0I7O1FBUWpDLEVBQUU7O0FBWFY7Ozs7O0FBcUJBLDRDQUFpQyxlQUF1QixJQUEyQixXQUFtQixPQUFrQixHQUFXLEdBQVc7QUFDdEksa0JBQTBCO0FBQzlCLFlBQVEsS0FBSztRQUFPO1FBQU87UUFBZTtRQUFHO1FBQUcsNEJBQWtCOztBQUU1RCxjQUFJLE1BQU07T0FFWjtRQUNBLE1BQU0sV0FBVztRQUNqQixNQUFNLG1CQUFtQixXQUFXLG1DQUF1QixzQkFBc0IsS0FBSSxHQUFHO1FBQ3hGLFFBQUc7UUFFSCxFQUFFO1lBQU0sbUNBQXlCO1lBQUc7WUFBTzttQkFDdkM7b0JBQUEsTUFBTzs7Z0JBQ1AsRUFBRTtZQUZxQzs7O0FBWG5EIiwiZmlsZSI6InVuaXRzLmx1YSIsInNvdXJjZVJvb3QiOiIifQ==
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/utils/units.ts"],"names":[],"mappings":";;AAAA,iBAA8C;AAArC;AAAkB;AAAO;AAClC,oBAAyC;AAAhC;AAAY;AAErB,uCAA4B,UAAkB;AACpC,kBAAgB;;AACb,kBAAI;cAAG,IAAI;AACV,sBAAI,KAAK,OAAO;eAElB;gBACA,EAAE,WAAW;AACb,oCAAW;;AALW;;;AAS9B,WAAO;AAXX;;;;AAkBA,0CAA+B;AACrB,iBAAO,gBAAgB;AACvB,iBAAO,gBAAgB;IAC7B,gBAAW,SAAS;IACpB,kBAAa,SAAS;AAJ1B;;;;;;AAaA,0CAA+B,MAAY;;AAC9B,kBAAI;cAAG,IAAI;AACV,mCAAiB,KAAK,kBAAkB;eAE1C,mBAAkB,kBAAmB,KAAK,WAAW,eAAc,KAAK;AACxE,uBAAO;;AAJS;;;AAQxB,WAAO;AATX;AAYA,wCAA6B,GAAW,GAAW,QAAgB;AACzD,cAAI,MAAM;OACZ;QACA,EAAE;YAAiB;YAAG;YAAG;YAAQ;AACvB,6BAAO,KAAK;mBACd;oBACA,QAAG;;AAEP,uBAAO;YALsB;;QAQjC,EAAE;;AAXV;;;;;AAqBA,4CAAiC,eAAuB,IAA2B,WAAmB,OAAkB,GAAW,GAAW;AACtI,kBAA0B;AAC9B,YAAQ,KAAK;QAAO;QAAO;QAAe;QAAG;QAAG,4BAAkB;;AAE5D,cAAI,MAAM;OAEZ;QACA,MAAM,WAAW;QACjB,MAAM,mBAAmB,WAAW,mCAAuB,sBAAsB,KAAI,GAAG;QACxF,QAAG;QAEH,EAAE;YAAM,mCAAyB;YAAG;YAAO;mBACvC;oBAAA,MAAO;;gBACP,EAAE;YAFqC;;;AAXnD","file":"units.lua","sourceRoot":""}
package/package.json CHANGED
@@ -1,41 +1,42 @@
1
1
  {
2
- "name": "warcraft-3-w3ts-utils",
3
- "version": "0.1.12",
4
- "description": "A library of utility functions for modding Warcraft 3 utilizing the W3TS template.",
5
- "main": "./src/index.ts",
6
- "keywords": [
7
- "Warcraft 3"
8
- ],
9
- "scripts": {
10
- "build": "tstl -p tsconfig.json",
11
- "prepare": "npm run build && cp package.json ./dist/"
12
- },
13
- "files": [
14
- "dist"
15
- ],
16
- "repository": {
17
- "type": "git",
18
- "url": "git+https://github.com/bertman12/WC3-W3TS-utils.git"
19
- },
20
- "author": "bertman12",
21
- "license": "MIT",
22
- "bugs": {
23
- "url": "https://github.com/bertman12/WC3-W3TS-utils/issues"
24
- },
25
- "homepage": "https://github.com/bertman12/WC3-W3TS-utils#readme",
26
- "dependencies": {
27
- "war3-types-strict": "^0.1.3"
28
- },
29
- "devDependencies": {
30
- "lua-types": "^2.13.1",
31
- "typescript-to-lua": "1.31.0",
32
- "war3-objectdata-th": "^0.2.11",
33
- "war3-transformer": "^3.0.10",
34
- "war3tstlhelper": "1.0.1"
35
- },
36
- "peerDependencies": {
37
- "typescript": "^5.0.4",
38
- "w3ts": "3.0.2",
39
- "lua-types": "^2.13.1"
40
- }
2
+ "name": "warcraft-3-w3ts-utils",
3
+ "version": "0.1.14",
4
+ "description": "A library of utility functions for modding Warcraft 3 utilizing the W3TS template.",
5
+ "main": "./dist/index.lua",
6
+ "keywords": [
7
+ "Warcraft 3"
8
+ ],
9
+ "scripts": {
10
+ "build": "tstl -p tsconfig.json",
11
+ "prepare": "npm run build && cp package.json ./dist/"
12
+ },
13
+ "files": [
14
+ "dist",
15
+ "src"
16
+ ],
17
+ "repository": {
18
+ "type": "git",
19
+ "url": "git+https://github.com/bertman12/WC3-W3TS-utils.git"
20
+ },
21
+ "author": "bertman12",
22
+ "license": "MIT",
23
+ "bugs": {
24
+ "url": "https://github.com/bertman12/WC3-W3TS-utils/issues"
25
+ },
26
+ "homepage": "https://github.com/bertman12/WC3-W3TS-utils#readme",
27
+ "dependencies": {
28
+ "war3-types-strict": "^0.1.3"
29
+ },
30
+ "devDependencies": {
31
+ "lua-types": "^2.13.1",
32
+ "typescript-to-lua": "1.31.0",
33
+ "war3-objectdata-th": "^0.2.11",
34
+ "war3-transformer": "^3.0.10",
35
+ "war3tstlhelper": "1.0.1"
36
+ },
37
+ "peerDependencies": {
38
+ "typescript": "^5.0.4",
39
+ "w3ts": "3.0.2",
40
+ "lua-types": "^2.13.1"
41
+ }
41
42
  }
package/src/index.ts ADDED
@@ -0,0 +1 @@
1
+ export * from "./utils/index";
@@ -0,0 +1,158 @@
1
+ import { Timer, Trigger, Unit } from "w3ts";
2
+
3
+ /**
4
+ * Good for once a unit gets near you, but not good while they are near you since the event is only triggered on entry, not during
5
+ * @param unit
6
+ * @param range
7
+ * @param cb
8
+ * @param config
9
+ * @returns
10
+ */
11
+ export function unitGetsNearThisUnit(
12
+ unit: Unit,
13
+ range: number,
14
+ cb: (u: Unit) => void,
15
+ config?: {
16
+ uniqueUnitsOnly: boolean;
17
+ filter?: boolexpr | (() => boolean);
18
+ onDestroy?: (unitsEffected: Unit[]) => void;
19
+ }
20
+ ) {
21
+ const trig = Trigger.create();
22
+
23
+ /**
24
+ * A unique set of the units effected
25
+ */
26
+ let effectedUnitPool: Unit[] = [];
27
+
28
+ trig.registerUnitInRage(unit.handle, range, config?.filter ?? (() => true));
29
+
30
+ trig.addAction(() => {
31
+ const u = Unit.fromEvent();
32
+
33
+ if (!u) {
34
+ return;
35
+ }
36
+
37
+ if (!effectedUnitPool.includes(u)) {
38
+ effectedUnitPool.push(u);
39
+ }
40
+
41
+ if (config?.uniqueUnitsOnly && !effectedUnitPool.includes(u)) {
42
+ cb(u);
43
+ } else {
44
+ cb(u);
45
+ }
46
+ });
47
+
48
+ const destroy = () => {
49
+ if (config?.onDestroy) {
50
+ config?.onDestroy(effectedUnitPool);
51
+ }
52
+
53
+ trig.destroy();
54
+ };
55
+
56
+ const clearUniqueUnits = () => {
57
+ effectedUnitPool = [];
58
+ };
59
+
60
+ return {
61
+ cleanupUnitGetsNearThisUnit: (delay?: number) => {
62
+ if (delay) {
63
+ const timer = Timer.create();
64
+ timer.start(delay, false, () => {
65
+ destroy();
66
+ timer.destroy();
67
+ });
68
+ return;
69
+ }
70
+
71
+ destroy();
72
+ },
73
+ clearUniqueUnits,
74
+ };
75
+ }
76
+
77
+ /**
78
+ *
79
+ * @param cb
80
+ * @param abilityId
81
+ * @param dummyLifeTime Maybe be necessary to have a long lifetime so spells like chain lightning will have time to bounce to all targets
82
+ * @param owner
83
+ */
84
+ // export function useTempDummyUnit(cb: (dummy: Unit) => void, abilityId: number, dummyLifeTime: number, owner: MapPlayer, x: number, y: number, facing: number, config?: { abilityLevel?: number; modelType?: "cenariusGhost" }) {
85
+ // let dummy: Unit | undefined = undefined;
86
+
87
+ // if (config?.modelType === "cenariusGhost") {
88
+ // dummy = Unit.create(owner, UNITS.dummyCaster_cenariusGhost, x, y, facing);
89
+ // dummy?.setScale(1, 1, 1);
90
+ // } else {
91
+ // dummy = Unit.create(owner, UNITS.dummyCaster, x, y, facing);
92
+ // }
93
+
94
+ // const t = Timer.create();
95
+
96
+ // if (dummy) {
97
+ // dummy.addAbility(abilityId);
98
+ // dummy.setAbilityManaCost(abilityId, config?.abilityLevel ? config.abilityLevel - 1 : 0, 0);
99
+ // cb(dummy);
100
+
101
+ // t.start(dummyLifeTime, false, () => {
102
+ // dummy?.destroy();
103
+ // t.destroy();
104
+ // });
105
+ // }
106
+ // }
107
+
108
+ /**
109
+ * Creates a trigger to monitor when a unit is attacked
110
+ *
111
+ * We could also have all functions execute in this single trigger's context instead of creating new triggers each time the function is used.
112
+ * @param cb
113
+ * @param config
114
+ */
115
+ export function onUnitAttacked(
116
+ cb: (attacker: Unit, victim: Unit) => void,
117
+ config: { attackerCooldown?: boolean; procChance?: number }
118
+ ) {
119
+ const attackerTriggerCooldown = new Set<Unit>();
120
+ const t = Trigger.create();
121
+
122
+ t.registerAnyUnitEvent(EVENT_PLAYER_UNIT_ATTACKED);
123
+
124
+ t.addAction(() => {
125
+ const attacker = Unit.fromHandle(GetAttacker());
126
+ const victim = Unit.fromHandle(GetAttackedUnitBJ());
127
+
128
+ if (!attacker || !victim) {
129
+ return;
130
+ }
131
+
132
+ //Attack was not below the proc chance, and thus we will not use the cb function
133
+ if (
134
+ config.procChance &&
135
+ Math.ceil(Math.random() * 100) >= config.procChance
136
+ ) {
137
+ return;
138
+ }
139
+
140
+ //Attacker has already used the trigger
141
+ if (config.attackerCooldown && attackerTriggerCooldown.has(attacker)) {
142
+ return;
143
+ }
144
+
145
+ attackerTriggerCooldown.add(attacker);
146
+
147
+ //Finally, after all conditions have been met, use the cb function
148
+ cb(attacker, victim);
149
+
150
+ const t = Timer.create();
151
+
152
+ //removes the attacker from the cooldown group after 1/3 of that units attack cooldown has passed.
153
+ t.start(attacker.getAttackCooldown(0) / 3, false, () => {
154
+ attackerTriggerCooldown.delete(attacker);
155
+ t.destroy();
156
+ });
157
+ });
158
+ }
@@ -0,0 +1,63 @@
1
+ import { Trigger } from "w3ts";
2
+ import { forEachPlayer } from "./players";
3
+
4
+ type CameraDistances = "mid" | "far" | "max";
5
+
6
+ export function enableCameraZoom() {
7
+ const t = Trigger.create();
8
+ forEachPlayer((p) => {
9
+ SetCameraFieldForPlayer(p.handle, CAMERA_FIELD_FARZ, 10000, 0.25);
10
+
11
+ t.registerPlayerChatEvent(p, "-cam", false);
12
+
13
+ t.addAction(() => {
14
+ const str = GetEventPlayerChatString();
15
+ const triggeringPlayer = GetTriggerPlayer();
16
+ if (str && triggeringPlayer) {
17
+ const [command, distance] = str?.split(" ");
18
+ SetCameraFieldForPlayer(
19
+ triggeringPlayer,
20
+ CAMERA_FIELD_FARZ,
21
+ 10000,
22
+ 0.25
23
+ );
24
+
25
+ if ((distance as CameraDistances) === "mid") {
26
+ SetCameraFieldForPlayer(
27
+ triggeringPlayer,
28
+ CAMERA_FIELD_TARGET_DISTANCE,
29
+ 4500,
30
+ 0.25
31
+ );
32
+ return;
33
+ } else if ((distance as CameraDistances) === "far") {
34
+ SetCameraFieldForPlayer(
35
+ triggeringPlayer,
36
+ CAMERA_FIELD_TARGET_DISTANCE,
37
+ 6000,
38
+ 0.25
39
+ );
40
+ return;
41
+ } else if ((distance as CameraDistances) === "max") {
42
+ SetCameraFieldForPlayer(
43
+ triggeringPlayer,
44
+ CAMERA_FIELD_TARGET_DISTANCE,
45
+ 7800,
46
+ 0.25
47
+ );
48
+ return;
49
+ }
50
+
51
+ const distanceAsNumber = Number(distance);
52
+ if (typeof distanceAsNumber !== "number") return;
53
+
54
+ SetCameraFieldForPlayer(
55
+ triggeringPlayer,
56
+ CAMERA_FIELD_TARGET_DISTANCE,
57
+ distanceAsNumber,
58
+ 0.25
59
+ );
60
+ }
61
+ });
62
+ });
63
+ }
@@ -0,0 +1,22 @@
1
+ import { MapPlayer, Trigger } from "w3ts";
2
+
3
+ /**
4
+ * Setup trigger to listen for a chat command for the players specified in the array. Execute function when triggered
5
+ * @param command -cam , -name, -start, etc
6
+ * @param players
7
+ * @param fn
8
+ */
9
+ export function createChatCommand(players: MapPlayer[], command: string, exact: boolean, fn: (player: MapPlayer, data: { trigger: Trigger; command: string; data?: string }) => void) {
10
+ const trigger = Trigger.create();
11
+
12
+ players.forEach((p) => {
13
+ trigger.registerPlayerChatEvent(p, command, exact);
14
+
15
+ trigger.addAction(() => {
16
+ const str = GetEventPlayerChatString();
17
+ const [_, data] = str?.split(" ") ?? [];
18
+
19
+ fn(p, { trigger, command, data });
20
+ });
21
+ });
22
+ }
@@ -0,0 +1,139 @@
1
+ export const playerRGBMap = new Map<number, { r: number; g: number; b: number }>([
2
+ [0, { r: 255, g: 0, b: 0 }],
3
+ [1, { r: 0, g: 0, b: 255 }],
4
+ [2, { r: 0, g: 255, b: 255 }],
5
+ [3, { r: 128, g: 0, b: 128 }],
6
+ [4, { r: 255, g: 255, b: 0 }],
7
+ [5, { r: 254, g: 137, b: 13 }],
8
+ [6, { r: 32, g: 192, b: 0 }],
9
+ [7, { r: 229, g: 91, b: 176 }],
10
+ [8, { r: 149, g: 150, b: 151 }],
11
+ [9, { r: 126, g: 191, b: 241 }],
12
+ [10, { r: 16, g: 98, b: 70 }],
13
+ [11, { r: 78, g: 42, b: 4 }],
14
+ [12, { r: 155, g: 0, b: 0 }],
15
+ [13, { r: 0, g: 0, b: 195 }],
16
+ [14, { r: 155, g: 234, b: 255 }],
17
+ [15, { r: 190, g: 0, b: 254 }],
18
+ [16, { r: 235, g: 205, b: 135 }],
19
+ [17, { r: 248, g: 164, b: 139 }],
20
+ [18, { r: 191, g: 255, b: 128 }],
21
+ [19, { r: 220, g: 185, b: 235 }],
22
+ [20, { r: 40, g: 40, b: 40 }],
23
+ [21, { r: 235, g: 240, b: 255 }],
24
+ [22, { r: 0, g: 120, b: 30 }],
25
+ [23, { r: 164, g: 111, b: 51 }],
26
+ ]);
27
+
28
+ export const playerHexColorMap = new Map<number, string>([
29
+ [0, "ff0303"],
30
+ [1, "0042ff"],
31
+ [2, "1ce6b9"],
32
+ [3, "540081"],
33
+ [4, "fffc00"],
34
+ [5, "fe8a0e"],
35
+ ]);
36
+
37
+ /**
38
+ *
39
+ *
40
+ PlayerStrings[0].colour = "|c00ff0303"
41
+ PlayerStrings[1].colour = "|c000042ff"
42
+ PlayerStrings[2].colour = "|c001ce6b9"
43
+ PlayerStrings[3].colour = "|c00540081"
44
+ PlayerStrings[4].colour = "|c00fffc00"
45
+ PlayerStrings[5].colour = "|c00fe8a0e"
46
+ PlayerStrings[6].colour = "|c0020c000"
47
+ PlayerStrings[7].colour = "|c00e55bb0"
48
+ PlayerStrings[8].colour = "|c00959697"
49
+ PlayerStrings[9].colour = "|c007ebff1"
50
+ PlayerStrings[10].colour = "|c00106246"
51
+ PlayerStrings[11].colour = "|c004e2a04"
52
+ PlayerStrings[12].colour = "|c009b0000"
53
+ PlayerStrings[13].colour = "|c000000c3"
54
+ PlayerStrings[14].colour = "|c0000eaff"
55
+ PlayerStrings[15].colour = "|c00be00fe"
56
+ PlayerStrings[16].colour = "|c00ebcd87"
57
+ PlayerStrings[17].colour = "|c00f8a48b"
58
+ PlayerStrings[18].colour = "|c00bfff80"
59
+ PlayerStrings[19].colour = "|c00dcb9eb"
60
+ PlayerStrings[20].colour = "|c00282828"
61
+ PlayerStrings[21].colour = "|c00ebf0ff"
62
+ PlayerStrings[22].colour = "|c0000781e"
63
+ PlayerStrings[23].colour = "|c00a46f33"
64
+ -- RGB
65
+ PlayerStrings[0].red = 255
66
+ PlayerStrings[0].green = 3
67
+ PlayerStrings[0].blue = 3
68
+ PlayerStrings[1].red = 0
69
+ PlayerStrings[1].green = 66
70
+ PlayerStrings[1].blue = 255
71
+ PlayerStrings[2].red = 28
72
+ PlayerStrings[2].green = 230
73
+ PlayerStrings[2].blue = 185
74
+ PlayerStrings[3].red = 84
75
+ PlayerStrings[3].green = 0
76
+ PlayerStrings[3].blue = 129
77
+ PlayerStrings[4].red = 255
78
+ PlayerStrings[4].green = 254
79
+ PlayerStrings[4].blue = 0
80
+ PlayerStrings[5].red = 254
81
+ PlayerStrings[5].green = 138
82
+ PlayerStrings[5].blue = 14
83
+ PlayerStrings[6].red = 32
84
+ PlayerStrings[6].green = 192
85
+ PlayerStrings[6].blue = 0
86
+ PlayerStrings[7].red = 229
87
+ PlayerStrings[7].green = 91
88
+ PlayerStrings[7].blue = 176
89
+ PlayerStrings[8].red = 149
90
+ PlayerStrings[8].green = 150
91
+ PlayerStrings[8].blue = 151
92
+ PlayerStrings[9].red = 126
93
+ PlayerStrings[9].green = 191
94
+ PlayerStrings[9].blue = 241
95
+ PlayerStrings[10].red = 16
96
+ PlayerStrings[10].green = 98
97
+ PlayerStrings[10].blue = 70
98
+ PlayerStrings[11].red = 78
99
+ PlayerStrings[11].green = 42
100
+ PlayerStrings[11].blue = 4
101
+ PlayerStrings[12].red = 155
102
+ PlayerStrings[12].green = 0
103
+ PlayerStrings[12].blue = 0
104
+ PlayerStrings[13].red = 0
105
+ PlayerStrings[13].green = 0
106
+ PlayerStrings[13].blue = 195
107
+ PlayerStrings[14].red = 155
108
+ PlayerStrings[14].green = 234
109
+ PlayerStrings[14].blue = 255
110
+ PlayerStrings[15].red = 190
111
+ PlayerStrings[15].green = 0
112
+ PlayerStrings[15].blue = 254
113
+ PlayerStrings[16].red = 235
114
+ PlayerStrings[16].green = 205
115
+ PlayerStrings[16].blue = 135
116
+ PlayerStrings[17].red = 248
117
+ PlayerStrings[17].green = 164
118
+ PlayerStrings[17].blue = 139
119
+ PlayerStrings[18].red = 191
120
+ PlayerStrings[18].green = 255
121
+ PlayerStrings[18].blue = 128
122
+ PlayerStrings[19].red = 220
123
+ PlayerStrings[19].green = 185
124
+ PlayerStrings[19].blue = 235
125
+ PlayerStrings[20].red = 40
126
+ PlayerStrings[20].green = 40
127
+ PlayerStrings[20].blue = 40
128
+ PlayerStrings[21].red = 235
129
+ PlayerStrings[21].green = 240
130
+ PlayerStrings[21].blue = 255
131
+ PlayerStrings[22].red = 0
132
+ PlayerStrings[22].green = 120
133
+ PlayerStrings[22].blue = 30
134
+ PlayerStrings[23].red = 164
135
+ PlayerStrings[23].green = 111
136
+ PlayerStrings[23].blue = 51
137
+ *
138
+ *
139
+ */
@@ -0,0 +1,15 @@
1
+ export * from "./abilities";
2
+ export * from "./camera";
3
+ export * from "./chat-command";
4
+ export * from "./color";
5
+ export * from "./item";
6
+ export * from "./math";
7
+ export * from "./minimapIcons";
8
+ export * from "./misc";
9
+ export * from "./physics";
10
+ export * from "./players";
11
+ export * from "./point";
12
+ export * from "./quests";
13
+ export * from "./textTag";
14
+ export * from "./timer";
15
+ export * from "./units";