//---------------------------------------------------------------------------- /*! * @brief 未来有効のサイクルイベント情報を取得 */ //---------------------------------------------------------------------------- public CycleParam GetEventCycleFurtureParam(uint unEventID) { CycleParam cCycleParam = null; uint unStartTemp = 0; //-------------------------------- // 総当たりでイベントリストチェック // m_TimeEventCycleFurtureParamは、m_TimeEventFurtureInputedで管理されている //-------------------------------- for (uint num = 0; num < m_TimeEventFurtureInputed; ++num) { if (m_TimeEventFurtureID[num] != unEventID) { continue; } // 最も直近のイベントを探す unStartTemp = m_TimeEventCycleFurtureParam[num].timingStart; if (cCycleParam == null || cCycleParam.timingStart > unStartTemp) { // 初発見時は、とりあえず取得 // 同イベント発見時は、開始時間を比較して取得 cCycleParam = m_TimeEventCycleFurtureParam[num]; } } return(cCycleParam); }
//---------------------------------------------------------------------------- /*! * @brief 現在有効なサイクルイベント情報を取得 */ //---------------------------------------------------------------------------- public CycleParam GetEventCycleParam(uint unEventID) { CycleParam cCycleParam = null; //-------------------------------- // 総当たりでイベントリストチェック // m_TimeEventCycleParamも、m_TimeEventActiveInputedで管理されている //-------------------------------- for (uint num = 0; num < m_TimeEventActiveInputed; ++num) { if (m_TimeEventActiveID[num] != unEventID) { continue; } cCycleParam = m_TimeEventCycleParam[num]; break; } return(cCycleParam); }
/*==========================================================================*/ /* func */ /*==========================================================================*/ //---------------------------------------------------------------------------- /*! * @brief Unity固有処理:初期化処理 ※インスタンス生成時呼出し */ //---------------------------------------------------------------------------- protected override void Awake() { base.Awake(); m_TimeEventActiveID = new uint[EVENT_MAX]; m_TimeEventFurtureID = new uint[EVENT_MAX]; //-------------------------------- // 一旦情報クリア //-------------------------------- for (int i = 0; i < EVENT_MAX; ++i) { m_TimeEventCycleParam[i] = new CycleParam(); m_TimeEventCycleFurtureParam[i] = new CycleParam(); m_TimeEventCycleParam[i].Reset(); m_TimeEventCycleFurtureParam[i].Reset(); m_TimeEventActiveID[i] = 0; m_TimeEventFurtureID[i] = 0; } m_TimeEventActiveInputed = 0; m_TimeEventFurtureInputed = 0; }
private void CheckSkillUpEvent() { //---------------------------------------- // スキルレベルアップ確率上昇イベントの発生判定 //---------------------------------------- MasterDataEvent cHitEventMaster = null; MainMenuParam.m_BlendBuildEventSLV = 0; //-------------------------------- // スキルレベルアップ確率上昇イベントIDをリスト化 // @change Developer 2016/08/04 v360 //-------------------------------- uint[] aunEventSLVList = { GlobalDefine.SLV_EVENT_ID_x1000, // スキルレベルアップ確率増加イベントID:10.0倍 GlobalDefine.SLV_EVENT_ID_x0500, // スキルレベルアップ確率増加イベントID:5.0倍 GlobalDefine.SLV_EVENT_ID_x0400, // スキルレベルアップ確率増加イベントID:4.0倍 GlobalDefine.SLV_EVENT_ID_x0300, // スキルレベルアップ確率増加イベントID:3.0倍 GlobalDefine.SLV_EVENT_ID_x0250, // スキルレベルアップ確率増加イベントID:2.5倍 GlobalDefine.SLV_EVENT_ID_x0200, // スキルレベルアップ確率増加イベントID:2.0倍 GlobalDefine.SLV_EVENT_ID_x0150 // スキルレベルアップ確率増加イベントID:1.5倍 }; //-------------------------------- // イベント期間判定 // @add Developer 2016/08/04 v360 //-------------------------------- MasterDataEvent cTempEventMaster; uint unTimingStart = 0; uint unTimingEnd = 0; uint unFixEndTime = 0; for (int num = 0; num < aunEventSLVList.Length; ++num) { cTempEventMaster = MasterDataUtil.GetMasterDataEventFromID(aunEventSLVList[num]); if (cTempEventMaster == null) { continue; } //-------------------------------- // 期間指定タイプによる分岐 //-------------------------------- switch (cTempEventMaster.period_type) { // 指定(従来通り) default: case MasterDataDefineLabel.PeriodType.DESIGNATION: unTimingStart = cTempEventMaster.timing_start; unTimingEnd = cTempEventMaster.timing_end; break; // サイクル case MasterDataDefineLabel.PeriodType.CYCLE: if (cHitEventMaster != null || TimeEventManager.Instance == null) { continue; } // 開催期間を取得 CycleParam cCycleParam = TimeEventManager.Instance.GetEventCycleParam(cTempEventMaster.event_id); if (cCycleParam == null) { continue; } unTimingStart = cCycleParam.timingStart; unTimingEnd = cCycleParam.timingEnd; break; } //-------------------------------- // イベント期間判定 //-------------------------------- bool bCheckWithinTime = TimeManager.Instance.CheckWithinTime(unTimingStart, unTimingEnd); if (bCheckWithinTime == false) { continue; } // 各種情報を設定 unFixEndTime = unTimingEnd; // イベント終了時間 cHitEventMaster = cTempEventMaster; // イベントマスター // 従来通りならイベント判定終了(指定優先) if (cTempEventMaster.period_type != MasterDataDefineLabel.PeriodType.CYCLE) { break; } } //-------------------------------- // イベント終了時のフロー戻しがキツイので、 // やっぱりチュートリアル中はイベント開催を検知しない //-------------------------------- if (TutorialManager.IsExists) { cHitEventMaster = null; } //------------------------------- // イベント開催中か否かで表示分岐 // サイクル対応、無期限対応 // @change Developer 2016/08/04 v360 //------------------------------- if (cHitEventMaster != null) { MainMenuParam.m_BlendBuildEventSLV = cHitEventMaster.event_id; } }
public async Task <IActionResult> GetData(CycleParam param) { var cycle = param.CycleId; var toFile = param.ToFile == 1; var pValueDTOs = new List <PValueDTO>(); int recordsAdded = 0; int i = 0; foreach (var subGroup in param.SubGroups) { int[] indicators = new int[subGroup.Indicators.Length]; int j = 0; foreach (var ind in subGroup.Indicators) { indicators[j] = ind; // var indicatorDim = await _rService.GetIndicatorDim(ind); BusinessKey businessKey = new BusinessKey { }; switch (indicatorDim.StatisticalTestId) { case 1: //T-Test businessKey.CycleId = cycle; businessKey.SubGroupId = subGroup.SubGroupId; businessKey.IndicatorId = ind; businessKey.isTTest = true; var pValuesT = await _rService.CalculatePValue(businessKey); pValueDTOs.AddRange(pValuesT); break; case 2: //Chi-square businessKey.CycleId = cycle; businessKey.SubGroupId = subGroup.SubGroupId; businessKey.IndicatorId = ind; businessKey.isTTest = false; var pValuesC = await _rService.CalculatePValue(businessKey); pValueDTOs.AddRange(pValuesC); break; default: break; } j++; } i++; } if (toFile) { // save to file recordsAdded = await _rService.SaveToExcelFile(pValueDTOs); } else { // save to DB recordsAdded = await _rService.SavePValues(pValueDTOs); } return(Ok(recordsAdded)); }