コード例 #1
0
ファイル: ActionCard.cs プロジェクト: shshwdr/phd-simulator
 public virtual void doIt()
 {
     cardState   = ActionCardState.doing;
     currentTime = 0;
     progressor.gameObject.SetActive(true);
     doItButton.SetActive(false);
 }
コード例 #2
0
ファイル: ActionCard.cs プロジェクト: shshwdr/phd-simulator
    // Update is called once per frame
    protected virtual void Update()
    {
        if (cardState == ActionCardState.doing)
        {
            currentTime += Time.deltaTime;

            progressor.SetProgress(currentTime / selectedActionInfo.timeCost);
            if (currentTime >= selectedActionInfo.timeCost)
            {
                cardState = ActionCardState.done;
                collectButton.SetActive(true);
            }
            else
            {
            }
        }
    }
コード例 #3
0
ファイル: ActionCard.cs プロジェクト: shshwdr/phd-simulator
    public virtual void collect()
    {
        if (cardState != ActionCardState.done)
        {
            Debug.LogError("collect when not done!");
        }
        cardState = ActionCardState.wait;
        progressor.gameObject.SetActive(false);

        collectButton.SetActive(false);

        doItButton.SetActive(true);
        //show result view?

        ActionResult        highPriorityResult = null;
        List <ActionResult> results            = new List <ActionResult>();
        List <float>        probs          = new List <float>();
        ActionResult        selectedResult = null;

        foreach (var r in selectedActionInfo.result)
        {
            if (r.prob < 0)
            {
                highPriorityResult = r;
                continue;
            }
            else
            {
                results.Add(r);
                probs.Add(r.prob);
            }
        }
        if (highPriorityResult != null)
        {
            if (highPriorityResult.resultItem[0] == "paper")
            {
                if (Random.value < PaperGeneration.Instance.chanceToGeneratePaper())
                {
                    selectedResult = highPriorityResult;
                }
            }
            else
            {
                selectedResult = highPriorityResult;
            }
        }

        if (selectedResult == null)
        {
            int selectedId = Utils.getRandomInArrayDistribution(probs);
            selectedResult = results[selectedId];
        }

        GetItemPopupManager.Instance.pushItem(selectedResult.resultDesc);
        for (int i = 0; i < selectedResult.resultItem.Count; i++)
        {
            //Debug.Log("get "+ selectedResult.count[i]+" " + selectedResult.resultItem[i]);
            Inventory.Instance.addItem(selectedResult.resultItem[i], selectedResult.count[i], selectedActionInfo);
        }
        GetItemPopupManager.Instance.showPreviousItems();
    }