
// 在需要使用的项目里, 直接这样require
// var RoomState = require("asdasd").RoomState

var RoomState = cc.Enum({
    Invaild: 0,
    Lock: 1,
    UnLock: 2,
    Update: 3,
    Full: 4
});

//用户信息页面不同显示内容
var UserInformationType = cc.Enum({
    Mine: 0,
    Boss: 1,
    MyArtist: 2,
    ArtistFree: 3,
    OtherArtist: 4
});

//职业种类
var UserJobType = cc.Enum({
    None: 0,        //没有选择职业
    MC: 1,          //主持人
    Dancer: 2,      //舞者
    Singer: 3,      //歌手
    Actor: 4,       //演员
    Electronic: 5   //电竞人员
});

//互动类型
var UserInteractionType = cc.Enum({
    Common: 0,      //普通互动
    PlayUp: 1,      //讨好
    Revolt: 2,      //反抗
    Pacify: 3,      //安抚
    Order: 4,       //使唤
});

//亲密度心形显示类型
var UserIntimacyType = cc.Enum({
    Empty: 0,      //没有互动
    Full: 2,      //全满
    Left: 6,      //左边完成
    Right: 9,      //右边完成
});

/**
 * 网络回调状态码 code
 */
var ResponseStateCode = cc.Enum({
    LOGIN_INVALIDATE: -5,
    OK: 0,
});

//任务状态[0 : 完成可领取, 1 : 未完成, 2 : 完成已领取]
var QuestItemType = cc.Enum({
    Gain: 0,
    NoFinished: 1,
    Finished: 2,
});

//用户信息页相关操作，1：赎身，2：抢夺，3：签约, 4: 解雇
var UserInformationRelateOptType = cc.Enum({
    None: 0,
    Redeem: 1,
    Loot: 2,
    Sign: 3,
    Fire: 4,
});

var ReportType = cc.Enum({

    ID: "roomId",

    // 上报事件类型, 0是普通上报, 1是升级建筑
    Event: "cmd",

    Seq: "seq",

    /** 总金额 */
    Gold: "gold",

    /** 星星数 */
    Stars: "s",

    /** 建筑 */
    Build: "userRooms",

    /** 建筑 */
    UnLockBuild: "ub",

    /** 建筑等级 */
    Level: "roomLevel",

    /** 事件戳 */
    Timestamp: "t",

    /** 未收金币的次数 */
    NotPickupCoinCount: "cc",

    /** 手动点击获取金币次数 */
    ClickCount: "clickCount"
});

const GameNotificationKey = cc.Enum({

    /** 显示好友系统 */
    ShowFriendSystem: "show_friend_system",

    /** 访问好友家园 */
    VisitFriendHome: "visit_friend_home",

    /** 返回自己家园 */
    BackOwnerHome: "back_owner_home",

    /** 处理通过点击分享链接进入游戏的各种操作 */
    ProcessShareAction: "process_share_action",

    /** 显示用户信息 */
    ShowUserInfomation: "show_user_information",

    /** 升级建筑 */
    RoomUpdate: "room_update",

    /** 重新刷新首页数据 */
    HomeReloadData: "home_reload_data",

    /** 更新首页数据 */
    HomeUpdateData: "home_update_data",

    /** 数据上报 */
    UserReportGross: "user_report_gross",

    /** 刷新好友列表 */
    RefreshFriendList: "refresh_friend_list",

    /** 打开亲密度相关页面 */
    ShowInteraction: "show_user_interaction",

    ShowJobPage: 'show_job_page',

    BeginArtistTrain: 'BeginArtistTrain',

    /** 用户收取金币 */
    UserCollectCoin: "user_collect_coin",

    /** 打开亲密度相关页面 */
    RefreshUserInformation: 'RefreshUserInformation',

    /** 培养完成 */
    ArtistTrainCompletion: 'ArtistTrainCompletion',

    /** 播放成功的动画 */
    PlaySuccessAnimation: "PlaySuccessAnimation",

    ShowJobPageFromTalent: "show_job_page_from_talent",

    /** 显示物品描述 */
    ShowPropDesc: "show_prop_desc",
    /** 关闭物品描述 */
    HidePropDesc: "hide_prop_desc",
    /** 刷新背包列表未选中状态*/
    RefreshPackItem: "refresh_item_normal",

    /** 打开背包*/
    OpenPack: "open_pack",

    /** 装备卡片*/
    InsertCardToUser: "insert_card_to_user",

    /** 刷新背包物品数量*/
    RefreshPackInfo: "refresh_pack_info",

    /** 刷新入驻艺人列表样式 */
    ChangeArtistResidentState: "ChangeArtistResidentState",

    /** 刷新插卡界面显示*/
    RefreshInsertCardsInfo: "refresh_insert_cards_info",

    /** 全局history后退 */
    HistoryBack: "history_back",

    ShowCityMap: "show_citymap",

    /** 触发入驻成功通知 */
    NoticeRoleOpt: "NoticeRoleOpt",

    /** 入驻艺人 */
    ResidentArtist: "ResidentArtist",

    /** 更新我的入驻艺人列表 */
    RefreshLevelHomeArtistList: "RefreshLevelHomeArtistList",

    RefreshArtistManagerList: "RefreshArtistManagerList",

    CurrentCompanyMax: 'current_company_max',

    // 单个建筑满级时的通知
    LevelHomeItemBuildingFull: "LevelHomeItemBuildingFull",

    // 当所有建筑都满级时的通知
    LevelHomeItemBuildingAllFull: "LevelHomeItemBuildingAllFull",

    // 刷新入驻艺人列表
    RefreshResidentArtistList: "RefreshResidentArtistList",

    showCatFlyAnimation: 'show_cat_fly_animation',

    afterCatFly: 'after_cat_fly',
    
    PlayUpdateCoinAnimation: 'PlayCoinAnimation',

    ReloadLevelHomeData: "ReloadLevelHomeData",

    ResetLevelHomePaddingBottom: 'ResetLevelHomePaddingBottom',

    // 星探任务领取奖励通知
    TalentGainAward: 'TalentGainAward',

    // 离线收益动画
    HandleOfflineIncomeAnim: 'HandleOfflineIncomeAnim',

    //点击招财猫
    ClickAddMoney: 'click_add_money',

    //解锁、升级建筑刷新数据
    RefreshBuildingData: 'refresh_building_data',

    //显示获取奖励动画
    ShowActGift: 'show_act_gift',

    TabbarClickCat: 'tabbar_click_cat',

    //楼层一级的时候解锁
    UnlockLevelHome: 'unlock_level_home',

    //自动点击加金币
    AutoClickGold: 'auto_click_gold',

    /// 升级总部大楼
    UpBuildingLevel: 'up_building_level',

    ///使用实时技能
    UseTimeSkill: 'use_time_skill',
    
    ///升级或解锁固定技能
    UpdateFixationSkill: 'update_fixtion_skill',

    /// 第三个技能使用完毕
    SkillThreeHasDone: 'skill_three_hasDone',

    /// 明星入驻房间
    StarEnterRoom: 'star_enter_room',

    /// 重置技能
    ResetSkill: 'reset_skill',
    
});

var LevelHomeFriendItemStyle = cc.Enum({
    AllFriend: 1,
    Friend: 2,
    Talent: 3, // 星探
    Artist: 4,
});

/** 场景节点地图 */
const SenceMap = cc.Enum({

    /** 我的家园界面 */
    LevelHome: "sence_levelHome",

    /** 用户详细信息 */
    UserPanel: "sence_userPanel",

    /** 好友系统、好友推荐Tab等 */
    FriendSystem: "sence_friendSystem",

    /** 好友家园界面 */
    FriendHome: "sence_friendHome",

    /** 突破界面 */
    BreakOut: "sence_breakOut",

    /** 转职界面 */
    JobChange: "sence_jobChange",

    /** 星探界面 */
    Finder: "sence_finder"
})

var JobPageType = cc.Enum({
    ChangeJob: 0,
    ChooseJob: 1,
    LevelUp: 2
})

const ArtistTrainItemSkillStyle = cc.Enum({

    Ability: 1,
    Charm: 2,
    Effect: 3
});

const LevelHomeArtistItemStyle = cc.Enum({
    Add: 0,
    Artist: 1
});


const ArtistOperation = cc.Enum({
    // 召回艺人
    RecallArtist: 1,

    // 召回艺人失败
    RecalArtistlFail: 2,

    // 举报艺人成功
    ReportArtistSuccess: 3,

    // 举报艺人失败
    ReportArtistFail: 4,

    // 驱赶艺人
    DriveAwayArtist: 5,

    // 驱赶艺人
    DriveAwayArtistFail: 6
});

// 将需要导出的枚举用这种方式exports给外界使用
module.exports.RoomState = RoomState;

module.exports.UserInformationType = UserInformationType;
module.exports.UserInformationRelateOptType = UserInformationRelateOptType;
module.exports.UserJobType = UserJobType;
module.exports.UserInteractionType = UserInteractionType;
module.exports.UserIntimacyType = UserIntimacyType;
module.exports.QuestItemType = QuestItemType;

module.exports.ResponseStateCode = ResponseStateCode;
module.exports.ReportType = ReportType;
module.exports.GameNotificationKey = GameNotificationKey;
module.exports.LevelHomeFriendItemStyle = LevelHomeFriendItemStyle;
module.exports.SenceMap = SenceMap;
module.exports.JobPageType = JobPageType;
module.exports.ArtistTrainItemSkillStyle = ArtistTrainItemSkillStyle;
module.exports.LevelHomeArtistItemStyle = LevelHomeArtistItemStyle;
module.exports.ArtistOperation = ArtistOperation;