public void TimeFlow() { gc.timeS++; PlayMainPanel.Instance.UpdateTimeBar(); if (gc.timeS >= 10) { PlayMainPanel.Instance.UpdateMonthDayHour(); if (BuildingPanel.Instance.isShow) { if (gc.buildingDic[BuildingPanel.Instance.nowCheckingBuildingID].isOpen) { if (BuildingPanel.Instance.IsShowOutputInfoPart) { BuildingPanel.Instance.UpdateOutputInfoPart(gc.buildingDic[BuildingPanel.Instance.nowCheckingBuildingID]); } } } if (DistrictMapPanel.Instance.isShow) { DistrictMapPanel.Instance.ChangeSkyColor(); } gc.timeHour++; gc.timeS = 0; } if (gc.timeHour >= 24) { gc.timeDay++; if (gc.timeDay > 30) { gc.timeMonth++; if (gc.timeMonth > 12) { gc.timeYear++; gc.timeMonth = 1; } gc.timeDay = 1; PlayMainPanel.Instance.UpdateYearSeason(); gc.CreateSalesRecord(gc.timeYear, gc.timeMonth); gc.CreateCustomerRecord(gc.timeYear, gc.timeMonth); gc.DistrictBuildingExpenseAll(); gc.DistrictCreateFiscalAll(); gc.PayHeroSalary(); } gc.timeHour = 0; gc.timeWeek++; if (gc.timeWeek > 7) { gc.timeWeek = 1; gc.DistrictGetTaxPeopleAll(); gc.DistrictPeopleFoodExpenseAll(); } } gc.standardTime++; if (gc.executeEventList.Count > 0) { if (gc.standardTime >= gc.executeEventList[0].endTime) { short districtID; int buildingID; bool isSuccess; switch (gc.executeEventList[0].type) { case ExecuteEventType.ProduceResource: //Debug.Log(" gc.standardTime=" + gc.standardTime + " 资源生产" + (StuffType)gc.executeEventList[0].value[2]+"*"+ gc.executeEventList[0].value[3]); districtID = (short)gc.executeEventList[0].value[0][0]; buildingID = gc.executeEventList[0].value[1][0]; List <StuffType> stuffTypes = new List <StuffType>(); List <int> values = new List <int>(); for (int i = 0; i < gc.executeEventList[0].value[2].Count; i++) { stuffTypes.Add((StuffType)gc.executeEventList[0].value[2][i]); values.Add(gc.executeEventList[0].value[3][i]); } isSuccess = gc.DistrictResourceAdd(districtID, buildingID, stuffTypes, values); gc.ExecuteEventDelete(0); if (isSuccess) { gc.CreateProduceResourceEvent(buildingID); } else { gc.buildingDic[buildingID].isOpen = false; } break; case ExecuteEventType.ProduceItem: // Debug.Log(" gc.standardTime=" + gc.standardTime + " 制作模板" + gc.executeEventList[0].value[2]); districtID = (short)gc.executeEventList[0].value[0][0]; buildingID = gc.executeEventList[0].value[1][0]; gc.DistrictItemOrSkillAdd(districtID, buildingID); gc.ExecuteEventDelete(0); gc.CreateProduceItemEvent(buildingID); break; case ExecuteEventType.Build: buildingID = gc.executeEventList[0].value[1][0]; gc.BuildDone((short)buildingID); gc.ExecuteEventDelete(0); break; case ExecuteEventType.BuildingUpgrade: buildingID = gc.executeEventList[0].value[1][0]; gc.BuildingUpgradeDone((short)buildingID); gc.ExecuteEventDelete(0); break; case ExecuteEventType.Adventure: byte teamID = (byte)gc.executeEventList[0].value[0][0]; /*事件*/ gc.ExecuteEventDelete(0); gc.AdventureEventHappen(teamID); break; case ExecuteEventType.BuildingSale: buildingID = gc.executeEventList[0].value[1][0]; gc.BuildingSale(buildingID); gc.ExecuteEventDelete(0); gc.CreateBuildingSaleEvent(buildingID); break; case ExecuteEventType.TechnologyResearch: int technologyID = gc.executeEventList[0].value[1][0]; gc.TechnologyResearchDone(technologyID); gc.ExecuteEventDelete(0); break; default: break; } } } }