declare module zs.game.data {
    //登录接口可以获取玩家的基础信息
    interface PlayerInfo {
        user_id: string;
        is_new: number;//是否是新用户 0不是 1是
        level_id: number;//当前关卡或者当前等级
        gold: number;//当前金币或者积分【每局游戏可以获得的奖励】
        goods_id: number[];
        goods_ids: any;
        level_start:number //开始关卡的次数
        userLevel:string; //当前关卡
        userGold:string; //玩家猫爪币
        userDiamond:string; //玩家小鱼钻
        LotteryCount:string; //抽奖总次数
        curDayLotteryCount:string; //当日抽奖次数
        outGuideId:string; //外围引导Id
        RoletrySkinId:string; //玩家试用皮肤Id
        cacheLevel:string; //缓存关卡等级
        cacheVersion:string; // 缓存版本号
        isGuide:string; //是否处于引导
        outskirtsGuide:string; //是否外围引导
        Boxinfo:any;//礼盒信息
        PlayerSKinInfo:any; //玩家皮肤信息
        SignInfo:any; //登录信息
        taskInfo:any; //每日任务信息
        activityInfo:any; //精彩活动信息
        Date:string;//当前日期
    }

    interface topInfo{
        user_id:string;  //用户id
        nickname:string; //用户名字
        avatar:string;   //用户头像
        rankScore:string; //用户分数
    }

    interface inviteInfo {
        invite_num:number;//成功邀请新用户人数
        receive_num:number; //领取邀请新用户奖励次数
        invite_old:number; //成功邀请用户人数
        receive_old:number; //领取邀请用户奖励次数
        invite_data:any; //邀请列表
    }

    interface LevelData {
        game_id: number;     //每局游戏后台给的唯一id
        rewardGold: number;    //每局游戏获取的奖励【后台会在接受到游戏结束接口后，会增加到PlayerInfo.gold】
    }

    interface AuthorizeData {
        nickName: string;
        avatarUrl: string;
        gender: any; // 性别 0：未知、1：男、2：女
    }

    interface RankData {
        user_id: number;
        avatar: string;
        nickname: string;
        max_checkpoints: number;
        rank: number;
    }

    interface GameSetting {
        openCharacters: number[];       // 角色开放列表
        openWeapons: number[];          // 武器开放列表
        openBoss: boolean;              // 开放打boss功能
        openReward: boolean;            // 开放奖励关
    }

    interface RangeConfig {
        min: number;
        range: number;
    }

    interface ShrinkConfig {
        restPlayer: number;
        minSize: number;
    }

    interface SceneColor {
        r: number;
        g: number;
        b: number;
    }

    interface SceneVector {
        x: number;
        y: number;
        z: number;
    }

    interface SceneInfo {
        scene: number;
        inner: SceneColor;
        outter: SceneColor;
        side: SceneColor;
    }

    interface SceneCfg {
        rewardTime: number;
        rewardCoeff: number;
        rewardGold: number;

        scenes: SceneInfo[];
        sizeScene: number;
        sizeRewardScene: number;

        enemies: number[];
        numEnemy: number;
        numPig: number;

        aiDesire: RangeConfig;
        aiPower: RangeConfig;
        aiDelay: number;
        aiDetectRange: number;
        aiDetectInterval: number;

        skills: number[];
        numSkills: RangeConfig;
        numStatics: RangeConfig[];
        numNeturals: RangeConfig[];

        bossHp: number;
        bossAttack: number;

        winnerGold: number;
    }

    interface WorldCfg {
        characterRadius: number;
        characterSpeed: number;
        characterSpeedReduce: number;
        neturalSpeed: number;
        npcEdgeOffset: number;
        robotNames: string[];
        killSizeUp: number;
        maxSizeUp: number;
        gravity: number;
        cameraShakeTime: number;
        cameraShakeAngle: number;
        cameraShakeFrequence: number;
        cameraFollowAngle: SceneVector;
        cameraFollowDistance: number;
        cameraFollowOffset: SceneVector;
        cameraFollowCoeff: number;
        brokenDelay: number;
        shrinkSpeed: number;
        shrinkConfig: ShrinkConfig[];
        speedUpTime: number;
        speedUpMul: number;
        shieldTime: number;
        shieldCount: number;
        comboTime: number;
        comboFrequence: number;

        rewardRank: number[];
        rewardKill: number;
    }

    interface GoodsData {
        goods_id: number; // 1,
        goods_name: string; // "初始",
        goods_type: number; // "无",
        goods_icon: string; // "初始",
        goods_path: string; // "无",
        buy_type: number; // 1,
        gold: number; // 0,
        video_num: number; // 0,
        type: string; // "默认",
        status: number; // 1,
        video_now: number; // 0
        is_used: number; // 0
    }

    interface StoreConfig {
        storeType: number;
        catalogue: any;
    }

    interface StageData {
        test: string;
        track: string;
    }
}