示例#1
0
    public void ExecuteAction(string action_id, string village_id = null)
    {
        ActionStat pickAction = actionStatList.Find(x => x.ID == action_id);

        if (pickAction.ID == null)
        {
            return;
        }

        string combineID = CombineID(action_id, village_id);

        switch (action_id)
        {
        case StatFlag.ActionStat.Quarantine:
            ActionDict = UtilityMethod.EditDictionary <float>(ActionDict, combineID, 1);
            break;

        case StatFlag.ActionStat.Cure:
            ActionDict = UtilityMethod.EditDictionary <float>(ActionDict, combineID, gameManager.turn_count);

            Village village = villageManager.villages.Find(x => x.ID == village_id);
            if (village != null)
            {
                village.Cure();
            }
            break;

        case StatFlag.ActionStat.Investigate:
            ActionDict = UtilityMethod.EditDictionary <float>(ActionDict, combineID, 1);
            gameManager.techViewPresenter.gameObject.SetActive(true);
            break;

        case StatFlag.ActionStat.Lab:
            ActionDict = UtilityMethod.EditDictionary <float>(ActionDict, combineID, GetValue(combineID) + 1);
            break;
        }

        currentAP -= pickAction.apCost;
        gameManager.UpdateHeaderUIView();
    }
示例#2
0
    public void Reset()
    {
        currentAP = StatFlag.BaseModifier.baseAP;

        infectRate            = 1;
        deathRate             = 1;
        spreadRate            = 0;
        travelerRate          = 1;
        ResearchPowerOffset   = 0;
        infectedDetectionRate = 0;
        APMOD            = 0;
        isMobileHospital = false;

        if (villageManager.villages != null)
        {
            foreach (var village in villageManager.villages)
            {
                string quarantineID = CombineID(StatFlag.ActionStat.Quarantine, village.ID);

                ActionDict = UtilityMethod.EditDictionary <float>(ActionDict, quarantineID, 0);
            }
        }
    }