Exemplo n.º 1
0
    /// <summary>
    /// 生成一组测试数据
    /// </summary>
    public void GenerateExam(ExamSetting examSetting)
    {
        ExamData examData = new ExamData();

        examData.SettingId = examSetting.id.ToInt32();
        RoleManager.Instance._CurGameInfo.CurActionData.CurExamData = examData;
        for (int i = 0; i < 8; i++)
        {
            SingleExamEnemy enemy = new SingleExamEnemy();
            enemy.Id     = DataTable.FindTestEnemyNumerialByLevel(examSetting.level.ToInt32()).id.ToInt32();
            enemy.Status = (int)SingleExamEnemyStatus.UnAccomplished;
            enemy.OnlyId = ConstantVal.SetId;
            InitExamProperty(enemy);
            RoleManager.Instance._CurGameInfo.CurActionData.CurExamData.EnemyList.Add(enemy);
        }
        //生成玩家的数据
        int count = RoleManager.Instance.playerPeople.protoData.PropertyData.ExamPropertyIdList.Count;

        RoleManager.Instance.playerPeople.protoData.PropertyData.CurExamPropertyIdList.Clear();
        RoleManager.Instance.playerPeople.protoData.PropertyData.CurExamPropertyDataList.Clear();

        for (int i = 0; i < count; i++)
        {
            int theId = RoleManager.Instance.playerPeople.protoData.PropertyData.ExamPropertyIdList[i];
            SinglePropertyData pro    = RoleManager.Instance.playerPeople.protoData.PropertyData.ExamPropertyDataList[i];
            SinglePropertyData newPro = pro.Clone();
            RoleManager.Instance.playerPeople.protoData.PropertyData.CurExamPropertyIdList.Add(theId);
            RoleManager.Instance.playerPeople.protoData.PropertyData.CurExamPropertyDataList.Add(newPro);
        }

        //发消息给view显示数据
        EventCenter.Broadcast(TheEventType.StartExam);
    }
Exemplo n.º 2
0
        public async Task <IHttpActionResult> PutExamSetting(int id, Models.ExamSetting mdlExamSetting)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            if (id != mdlExamSetting.ExamSettingsID)
            {
                return(BadRequest());
            }

            ExamSetting examSetting = AutoMapper.Mapper.Map <ExamSetting>(mdlExamSetting);

            db.Entry(examSetting).State = EntityState.Modified;

            try
            {
                await db.SaveChangesAsync();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!ExamSettingExists(id))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            return(StatusCode(HttpStatusCode.NoContent));
        }
Exemplo n.º 3
0
 public Text txt_lv;            //等级
 public override void Init(params object[] args)
 {
     base.Init(args);
     examSetting = args[0] as ExamSetting;
     addBtnListener(btn_startBattle, () =>
     {
         ExamManager.Instance.StartExam(examSetting);
     });
 }
Exemplo n.º 4
0
 /// <summary>
 /// 初始化考试成就
 /// </summary>
 void InitExamAchievement()
 {
     for (int i = 0; i < DataTable._examList.Count; i++)
     {
         ExamSetting setting = DataTable._examList[i];
         if (setting.initLevel == "1")
         {
             RoleManager.Instance.playerPeople.protoData.Achievement.UnlockedExamIdList.Add(setting.id.ToInt32());
         }
     }
 }
Exemplo n.º 5
0
    public void ShowAllDifficulttyExam()
    {
        int count = DataTable._examList.Count;

        for (int i = 0; i < count; i++)
        {
            ExamSetting examSetting = DataTable._examList[i];
            PanelManager.Instance.OpenSingle <SingleExamDifficultyView>(grid_difficultyChoose, examSetting);
        }
        trans_difficultyChoose.gameObject.SetActive(true);
    }
Exemplo n.º 6
0
        public async Task <IHttpActionResult> GetExamSetting(int id)
        {
            ExamSetting examSetting = await db.ExamSettings.FindAsync(id);

            if (examSetting == null)
            {
                return(NotFound());
            }

            Models.ExamSetting mdlExam = AutoMapper.Mapper.Map <Models.ExamSetting>(examSetting);

            return(Ok(mdlExam));
        }
Exemplo n.º 7
0
        public async Task <IHttpActionResult> DeleteExamSetting(int id)
        {
            ExamSetting examSetting = await db.ExamSettings.FindAsync(id);

            if (examSetting == null)
            {
                return(NotFound());
            }

            db.ExamSettings.Remove(examSetting);
            await db.SaveChangesAsync();

            return(Ok(examSetting));
        }
Exemplo n.º 8
0
        public async Task <IHttpActionResult> AssignBatchExam(string batchId, int examSettingID)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            List <Batch>       batches     = db.Batches.ToList();
            List <ExamSetting> exmSettings = db.ExamSettings.ToList();

            Batch       dbBatch   = new Batch();
            ExamSetting dbSetting = new ExamSetting();

            foreach (Batch b in batches)
            {
                if (b.BatchID == batchId)
                {
                    dbBatch = b;
                    break;
                }
            }

            foreach (ExamSetting e in exmSettings)
            {
                if (e.ExamSettingsID == examSettingID)
                {
                    dbSetting = e;
                    break;
                }
            }


            //Batch batch = await db.Batches.SingleAsync(b => b.BatchID == batchId);
            //ExamSetting exmStng = await db.ExamSettings.SingleAsync(e => e.ExamSettingsID == examSettingID);

            if (dbBatch.ExamSettings.Contains(dbSetting))
            {
                return(Ok());
            }

            //db.Batches.Attach(dbBatch);
            dbBatch.ExamSettings.Add(dbSetting);
            dbSetting.Batches.Add(dbBatch);
            //db.Entry(dbBatch).State = EntityState.Modified;
            await db.SaveChangesAsync();

            return(Ok());
        }
Exemplo n.º 9
0
        public async Task <IHttpActionResult> PostExamSetting(Models.ExamSetting mdlExamSettings)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            ExamSetting examSetting = AutoMapper.Mapper.Map <ExamSetting>(mdlExamSettings);

            db.ExamSettings.Add(examSetting);
            await db.SaveChangesAsync();

            Models.ExamSetting mdlExamSetting = AutoMapper.Mapper.Map <Models.ExamSetting>(examSetting);
            return(Ok(mdlExamSetting));
            //return CreatedAtRoute("DefaultApi", new { id = examSetting.ExamSettingsID }, examSetting);
        }
Exemplo n.º 10
0
    /// <summary>
    /// 结算整个考试
    /// </summary>
    public void ResultTotalExam()
    {
        //按比例给钱
        int         score     = RoleManager.Instance._CurGameInfo.CurActionData.CurExamData.CurScore;
        int         settingId = RoleManager.Instance._CurGameInfo.CurActionData.CurExamData.SettingId;
        ExamSetting setting   = DataTable.FindExamSetting(settingId);

        string[] awardArr   = setting.award.Split('|');
        int      awardId    = awardArr[0].ToInt32();
        int      awardCount = Mathf.RoundToInt(awardArr[1].ToInt32() * score / (float)100);

        //升级前
        LevelInfo levelInfo = null;

        if (awardId == (int)PropertyIdType.Study)
        {
            levelInfo = RoleManager.Instance.GetPeopleLevelInfo(awardCount);
        }

        //考了100分可解锁下一关
        if (score == 100)
        {
            int         nextId      = setting.nextExamId.ToInt32();
            ExamSetting nextSetting = DataTable.FindExamSetting(nextId);
            if (nextSetting != null)
            {
                if (!RoleManager.Instance.playerPeople.protoData.Achievement.UnlockedExamIdList.Contains(nextId))
                {
                    RoleManager.Instance.playerPeople.protoData.Achievement.UnlockedExamIdList.Add(nextId);
                }
            }
        }


        RoleManager.Instance.AddProperty((PropertyIdType)awardId, awardCount);
        RoleManager.Instance.InitBattleProperty();
        //血量回满
        List <AwardData> awardList = new List <AwardData>();

        awardList.Add(new AwardData(AwardType.Property, awardId, awardCount));
        //把需要显示的发给ui
        EventCenter.Broadcast(TheEventType.ResultAllExam, awardList, levelInfo);
    }
Exemplo n.º 11
0
    //List<SingleExamEnemy> curExamEnemyList=

    /// <summary>
    /// 开始考试
    /// </summary>
    public void StartExam(ExamSetting examSetting)
    {
        //扣除体力
        string[]           costArr         = examSetting.cost.Split('|');
        PropertyIdType     theId           = (PropertyIdType)costArr[0].ToInt32();
        int                num             = costArr[1].ToInt32();
        SinglePropertyData pro             = RoleManager.Instance.FindSinglePropertyData(theId);
        PropertySetting    propertySetting = DataTable.FindPropertySetting(pro.PropertyId);

        if (RoleManager.Instance.FindSinglePropertyData(theId).PropertyNum < num)
        {
            PanelManager.Instance.OpenFloatWindow(propertySetting.name + "不足");
        }
        else
        {
            RoleManager.Instance.DeProperty(theId, num);
            GenerateExam(examSetting);
        }
    }
Exemplo n.º 12
0
        public async Task <IHttpActionResult> AssignExam(string email, int examSettingID)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            User usr = await db.Users.SingleAsync(u => u.email == email);

            ExamSetting exmStng = await db.ExamSettings.SingleAsync(e => e.ExamSettingsID == examSettingID);

            if (usr.ExamSettings.Contains(exmStng))
            {
                return(Ok());
            }
            db.Users.Attach(usr);
            usr.ExamSettings.Add(exmStng);
            db.Entry(usr).State = EntityState.Modified;
            await db.SaveChangesAsync();

            return(Ok());
        }