UNPKG

cu-events

Version:

Camelot Unchained Client Library - Events

98 lines (87 loc) 11.2 kB
/** * This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ 'use strict'; Object.defineProperty(exports, '__esModule', { value: true }); var _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ('value' in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })(); function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } } var _cuCore = require('cu-core'); function run(emitter, topic) { var info = {}; var instance = undefined; // Event receivers function nameChanged(name) { if (name === "") { instance.reset(); // reset if no target } instance.setName(name); emitter.emit(topic, instance); } function raceChanged(race) { instance.setRace(race); emitter.emit(topic, instance); } function healthChanged(health, maxHealth) { instance.setHealth(health, maxHealth); emitter.emit(topic, instance); } function staminaChanged(stamina, maxStamina) { instance.setStamina(stamina, maxStamina); emitter.emit(topic, instance); } function injuriesChanged(part, health, maxHealth, wounds) { if (instance.name) { instance.setInjury(part, health, maxHealth, wounds); emitter.emit(topic, instance); } } // Hook up event receivers to the relevant cuAPI methods switch (topic) { case 'character': instance = new _cuCore.Player({}); cuAPI.OnCharacterNameChanged(nameChanged); cuAPI.OnCharacterRaceChanged(raceChanged); cuAPI.OnCharacterHealthChanged(healthChanged); cuAPI.OnCharacterStaminaChanged(staminaChanged); cuAPI.OnCharacterInjuriesChanged(injuriesChanged); break; case 'enemytarget': instance = new _cuCore.Combatant({}); cuAPI.OnEnemyTargetNameChanged(nameChanged); cuAPI.OnEnemyTargetHealthChanged(healthChanged); cuAPI.OnEnemyTargetStaminaChanged(staminaChanged); cuAPI.OnEnemyTargetInjuriesChanged(injuriesChanged); break; case 'friendlytarget': instance = new _cuCore.Combatant({}); cuAPI.OnFriendlyTargetNameChanged(nameChanged); cuAPI.OnFriendlyTargetHealthChanged(healthChanged); cuAPI.OnFriendlyTargetStaminaChanged(staminaChanged); cuAPI.OnFriendlyTargetInjuriesChanged(injuriesChanged); break; } } var UnitFrameListener = (function () { function UnitFrameListener(handles) { _classCallCheck(this, UnitFrameListener); this.listening = false; this.topic = handles.topic; } _createClass(UnitFrameListener, [{ key: 'start', value: function start(emitter) { if (!this.listening) { this.listening = true; run(emitter, this.topic); } } }]); return UnitFrameListener; })(); exports['default'] = UnitFrameListener; module.exports = exports['default']; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInRzL2xpc3RlbmVycy9fVW5pdEZyYW1lLnRzIl0sIm5hbWVzIjpbInJ1biIsInJ1bi5uYW1lQ2hhbmdlZCIsInJ1bi5yYWNlQ2hhbmdlZCIsInJ1bi5oZWFsdGhDaGFuZ2VkIiwicnVuLnN0YW1pbmFDaGFuZ2VkIiwicnVuLmluanVyaWVzQ2hhbmdlZCIsIlVuaXRGcmFtZUxpc3RlbmVyIiwiVW5pdEZyYW1lTGlzdGVuZXIuY29uc3RydWN0b3IiLCJVbml0RnJhbWVMaXN0ZW5lci5zdGFydCJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7O3NCQU9rQyxTQUFTOztBQUkzQyxTQUFBLEdBQUEsQ0FBYSxPQUFxQixFQUFFLEtBQWEsRUFBQTtBQUMvQ0EsUUFBTUEsSUFBSUEsR0FBUUEsRUFBRUEsQ0FBQ0E7QUFDckJBLFFBQUlBLFFBQW1CQSxZQUFBQSxDQUFDQTs7QUFHeEJBLGFBQUFBLFdBQUFBLENBQXFCQSxJQUFZQSxFQUFBQTtBQUMvQkMsWUFBSUEsSUFBSUEsS0FBS0EsRUFBRUEsRUFBRUE7QUFDZkEsb0JBQVFBLENBQUNBLEtBQUtBLEVBQUVBLENBQUNBO1NBQ2xCQTtBQUNEQSxnQkFBUUEsQ0FBQ0EsT0FBT0EsQ0FBQ0EsSUFBSUEsQ0FBQ0EsQ0FBQ0E7QUFDdkJBLGVBQU9BLENBQUNBLElBQUlBLENBQUNBLEtBQUtBLEVBQUVBLFFBQVFBLENBQUNBLENBQUNBO0tBQy9CQTtBQUVERCxhQUFBQSxXQUFBQSxDQUFxQkEsSUFBVUEsRUFBQUE7QUFDN0JFLGdCQUFRQSxDQUFDQSxPQUFPQSxDQUFDQSxJQUFJQSxDQUFDQSxDQUFDQTtBQUN2QkEsZUFBT0EsQ0FBQ0EsSUFBSUEsQ0FBQ0EsS0FBS0EsRUFBRUEsUUFBUUEsQ0FBQ0EsQ0FBQ0E7S0FDL0JBO0FBRURGLGFBQUFBLGFBQUFBLENBQXVCQSxNQUFjQSxFQUFFQSxTQUFpQkEsRUFBQUE7QUFDdERHLGdCQUFRQSxDQUFDQSxTQUFTQSxDQUFDQSxNQUFNQSxFQUFFQSxTQUFTQSxDQUFDQSxDQUFD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RUFBRUEsSUFBSUEsQ0FBQ0EsS0FBS0EsQ0FBQ0EsQ0FBQ0E7YUFDMUJBO1NBQ0ZBOzs7V0FYSCxpQkFBQTs7O3FCQUFBLGlCQUFBIiwiZmlsZSI6InRzL2xpc3RlbmVycy9fVW5pdEZyYW1lLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBUaGlzIFNvdXJjZSBDb2RlIEZvcm0gaXMgc3ViamVjdCB0byB0aGUgdGVybXMgb2YgdGhlIE1vemlsbGEgUHVibGljXG4gKiBMaWNlbnNlLCB2LiAyLjAuIElmIGEgY29weSBvZiB0aGUgTVBMIHdhcyBub3QgZGlzdHJpYnV0ZWQgd2l0aCB0aGlzXG4gKiBmaWxlLCBZb3UgY2FuIG9idGFpbiBvbmUgYXQgaHR0cDovL21vemlsbGEub3JnL01QTC8yLjAvLlxuICovXG5cbmltcG9ydCBFdmVudEVtaXR0ZXIgZnJvbSAnLi4vY2xhc3Nlcy9FdmVudEVtaXR0ZXInO1xuaW1wb3J0IHsgQ29tYmF0YW50LCBQbGF5ZXIgfSBmcm9tICdjdS1jb3JlJztcbmltcG9ydCB7IHJhY2UgfSBmcm9tICdjdS1jb3JlJztcbmRlY2xhcmUgY29uc3QgY3VBUEk6IGFueTtcblxuZnVuY3Rpb24gcnVuKGVtaXR0ZXI6IEV2ZW50RW1pdHRlciwgdG9waWM6IHN0cmluZykge1xuICBjb25zdCBpbmZvOiBhbnkgPSB7fTtcbiAgbGV0IGluc3RhbmNlOiBDb21iYXRhbnQ7XG5cbiAgLy8gRXZlbnQgcmVjZWl2ZXJzXG4gIGZ1bmN0aW9uIG5hbWVDaGFuZ2VkKG5hbWU6IHN0cmluZykge1xuICAgIGlmIChuYW1lID09PSBcIlwiKSB7XG4gICAgICBpbnN0YW5jZS5yZXNldCgpOyAgICAgICAgICAgICAvLyByZXNldCBpZiBubyB0YXJnZXRcbiAgICB9XG4gICAgaW5zdGFuY2Uuc2V0TmFtZShuYW1lKTtcbiAgICBlbWl0dGVyLmVtaXQodG9waWMsIGluc3RhbmNlKTtcbiAgfVxuXG4gIGZ1bmN0aW9uIHJhY2VDaGFuZ2VkKHJhY2U6IHJhY2UpIHtcbiAgICBpbnN0YW5jZS5zZXRSYWNlKHJhY2UpO1xuICAgIGVtaXR0ZXIuZW1pdCh0b3BpYywgaW5zdGFuY2UpO1xuICB9XG5cbiAgZnVuY3Rpb24gaGVhbHRoQ2hhbmdlZChoZWFsdGg6IG51bWJlciwgbWF4SGVhbHRoOiBudW1iZXIpIHtcbiAgICBpbnN0YW5jZS5zZXRIZWFsdGgoaGVhbHRoLCBtYXhIZWFsdGgpO1xuICAgIGVtaXR0ZXIuZW1pdCh0b3BpYywgaW5zdGFuY2UpO1xuICB9XG5cbiAgZnVuY3Rpb24gc3RhbWluYUNoYW5nZWQoc3RhbWluYTogbnVtYmVyLCBtYXhTdGFtaW5hOiBudW1iZXIpIHtcbiAgICBpbnN0YW5jZS5zZXRTdGFtaW5hKHN0YW1pbmEsIG1heFN0YW1pbmEpO1xuICAgIGVtaXR0ZXIuZW1pdCh0b3BpYywgaW5zdGFuY2UpO1xuICB9XG5cbiAgZnVuY3Rpb24gaW5qdXJpZXNDaGFuZ2VkKHBhcnQ6IG51bWJlciwgaGVhbHRoOiBudW1iZXIsIG1heEhlYWx0aDogbnVtYmVyLCB3b3VuZHM6IG51bWJlcikge1xuICAgIGlmIChpbnN0YW5jZS5uYW1lKSB7XG4gICAgICBpbnN0YW5jZS5zZXRJbmp1cnkocGFydCwgaGVhbHRoLCBtYXhIZWFsdGgsIHdvdW5kcyk7XG4gICAgICBlbWl0dGVyLmVtaXQodG9waWMsIGluc3RhbmNlKTtcbiAgICB9XG4gIH1cblxuICAvLyBIb29rIHVwIGV2ZW50IHJlY2VpdmVycyB0byB0aGUgcmVsZXZhbnQgY3VBUEkgbWV0aG9kc1xuICBzd2l0Y2ggKHRvcGljKSB7XG4gICAgY2FzZSAnY2hhcmFjdGVyJzpcbiAgICAgIGluc3RhbmNlID0gbmV3IFBsYXllcig8UGxheWVyPnt9KTtcbiAgICAgIGN1QVBJLk9uQ2hhcmFjdGVyTmFtZUNoYW5nZWQobmFtZUNoYW5nZWQpO1xuICAgICAgY3VBUEkuT25DaGFyYWN0ZXJSYWNlQ2hhbmdlZChyYWNlQ2hhbmdlZCk7XG4gICAgICBjdUFQSS5PbkNoYXJhY3RlckhlYWx0aENoYW5nZWQoaGVhbHRoQ2hhbmdlZCk7XG4gICAgICBjdUFQSS5PbkNoYXJhY3RlclN0YW1pbmFDaGFuZ2VkKHN0YW1pbmFDaGFuZ2VkKTtcbiAgICAgIGN1QVBJLk9uQ2hhcmFjdGVySW5qdXJpZXNDaGFuZ2VkKGluanVyaWVzQ2hhbmdlZCk7XG4gICAgICBicmVhaztcbiAgICBjYXNlICdlbmVteXRhcmdldCc6XG4gICAgICBpbnN0YW5jZSA9IG5ldyBDb21iYXRhbnQoPENvbWJhdGFudD57fSk7XG4gICAgICBjdUFQSS5PbkVuZW15VGFyZ2V0TmFtZUNoYW5nZWQobmFtZUNoYW5nZWQpO1xuICAgICAgY3VBUEkuT25FbmVteVRhcmdldEhlYWx0aENoYW5nZWQoaGVhbHRoQ2hhbmdlZCk7XG4gICAgICBjdUFQSS5PbkVuZW15VGFyZ2V0U3RhbWluYUNoYW5nZWQoc3RhbWluYUNoYW5nZWQpO1xuICAgICAgY3VBUEkuT25FbmVteVRhcmdldEluanVyaWVzQ2hhbmdlZChpbmp1cmllc0NoYW5nZWQpO1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSAnZnJpZW5kbHl0YXJnZXQnOlxuICAgICAgaW5zdGFuY2UgPSBuZXcgQ29tYmF0YW50KDxDb21iYXRhbnQ+e30pO1xuICAgICAgY3VBUEkuT25GcmllbmRseVRhcmdldE5hbWVDaGFuZ2VkKG5hbWVDaGFuZ2VkKTtcbiAgICAgIGN1QVBJLk9uRnJpZW5kbHlUYXJnZXRIZWFsdGhDaGFuZ2VkKGhlYWx0aENoYW5nZWQpO1xuICAgICAgY3VBUEkuT25GcmllbmRseVRhcmdldFN0YW1pbmFDaGFuZ2VkKHN0YW1pbmFDaGFuZ2VkKTtcbiAgICAgIGN1QVBJLk9uRnJpZW5kbHlUYXJnZXRJbmp1cmllc0NoYW5nZWQoaW5qdXJpZXNDaGFuZ2VkKTtcbiAgICAgIGJyZWFrO1xuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFVuaXRGcmFtZUxpc3RlbmVyIHtcbiAgbGlzdGVuaW5nOiBib29sZWFuID0gZmFsc2U7XG4gIHRvcGljOiBzdHJpbmc7XG4gIGNvbnN0cnVjdG9yKGhhbmRsZXM6IGFueSkge1xuICAgIHRoaXMudG9waWMgPSBoYW5kbGVzLnRvcGljO1xuICB9XG4gIHN0YXJ0KGVtaXR0ZXI6IEV2ZW50RW1pdHRlcik6IHZvaWQge1xuICAgIGlmICghdGhpcy5saXN0ZW5pbmcpIHtcbiAgICAgIHRoaXMubGlzdGVuaW5nID0gdHJ1ZTtcbiAgICAgIHJ1bihlbWl0dGVyLCB0aGlzLnRvcGljKTtcbiAgICB9XG4gIH1cbn1cbiJdLCJzb3VyY2VSb290IjoiLi4vIn0=