Ejemplo n.º 1
0
    /// <summary>
    /// 开始一局新游戏
    /// </summary>
    public void StartNewGame()
    {
        StopGame();
        // 随便往一个行省投放5~15名病人,nmb,投1个有可能突然暴毙就nm离谱
        var idx = UnityEngine.Random.Range(0, provinces.Length - 1);

        Loimology.Infect(UnityEngine.Random.Range(5, 15), provinces[idx]);

        StartGame();
    }
Ejemplo n.º 2
0
 /// <summary>
 /// 最最最关键的部分,定时计算的步骤
 /// 每0.2s走一次,没走一次多1min
 /// </summary>
 /// <returns></returns>
 private IEnumerator TickCoroutine()
 {
     while (true)
     {
         var curMin = TotalMinutes + Speed;
         // 如果是暂停就溜了溜了
         if (curMin != TotalMinutes)
         {
             // 先把时间同步一哈
             TotalMinutes = curMin;
             SyncTime();
             Health = Patient = Treated = Infected = 0;
             // 开始过各行省该tick内的流程
             for (int i = 0; i < Data.numOfProvince; i++)
             {
                 Province province = provinces[i];
                 // 拿到加成下的疾病
                 Disease disease = GetDisease(province);
                 // 拿到加成下的行省
                 province.BeforeTick();
                 if (isAlert)
                 {
                     Loimology.SEITRD_Tick(disease, province, province);
                 }
                 else
                 {
                     Loimology.Unaware_Tick(disease, province, province);
                 }
                 // 重新计算全国的数据
                 Health   += province.Health;
                 Patient  += province.Patient;
                 Treated  += province.Treated;
                 Infected += province.Infected;
             }
             Debug.LogWarningFormat("Time:{0} H:{1} P:{2} T:{3} I:{4}", TotalMinutes, Health, Patient, Treated, Infected);
             if (Infected == 0)
             {
                 Debug.Log("33");
             }
             _E.TriggerEvent(EventID.TickEnd);
         }
         yield return(new WaitForSeconds(0.2f));
     }
 }