module.exports = { type: 'chatter', chats: null, cdMax: 50, cd: 0, chance: 0.035, global: false, init: function (blueprint) { this.chats = extend(true, [], blueprint.chats); this.cd = ~~(Math.random() * this.cdMax); for (let p in blueprint) { if (p === 'chats') continue; this[p] = blueprint[p]; } }, update: function () { if ((this.obj.aggro) && (this.obj.aggro.list.length > 0)) return; else if (this.chats.length === 0) return; if ((this.cd === 0) && (Math.random() < this.chance)) { this.cd = this.cdMax; let pick = this.chats[~~(Math.random() * this.chats.length)]; if (!this.global) this.obj.syncer.set(false, 'chatter', 'msg', pick.msg); else { //HACK //This shouldn't always be pink, but only events use this atm so it's fine this.obj.instance.syncer.queue('onGetMessages', { messages: { class: 'color-pinkB', message: this.obj.name + ': ' + pick.msg } }, -1); } } else if (this.cd > 0) this.cd--; } };