//----------------------------------------------------------------------------

    /*!
     *          @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;
    }
Exemple #4
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;
        }
    }
Exemple #5
0
        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));
        }