window.GameEvent = {
    
    eventListener: null
}

GameEvent.init = function() {
    this.eventListener = DWEventListener.create();
};

/**
 * 监听事件
 * @param {string} name 通知名
 * @param {object} target 监听对象
 * @param {function} method 调用方法
 */
GameEvent.on = function(name, target, method) {
    if (typeof name !== "string") {
        return;
    }
    if (!this.eventListener) {
        this.init();
    }
    this.eventListener.on(name, target, method);
};

/**
 * 取消监听事件
 * @param {string} name 通知名
 * @param {object} target 监听对象
 */
GameEvent.off = function(name, target) {
    if (typeof name !== "string") {
        return;
    }
    if (!this.eventListener) {
        this.init();
    }
    this.eventListener.off(name, target);
};

/**
 * 发送事件
 * @param {string} name 通知名
 */
GameEvent.fire = function(name) {
    
    if (typeof name !== "string") {
        return;
    }

    if (!this.eventListener) {
        this.init();
    }
    
    this.eventListener.fire(name, arguments);
};
