コード例 #1
0
    public void UpdateAvatarState(int avatarIndex, Constant.AvatarState state, bool isEndDayStateLoop)
    {
        Reward reward = new Reward();

        switch (avatarIndex)
        {
        case 0:
            reward = avatarData1.SetState(state, cafeLevel, dormLevel, factoryLevel, null, isEndDayStateLoop);
            break;

        case 1:
            reward = avatarData2.SetState(state, cafeLevel, dormLevel, factoryLevel, null, isEndDayStateLoop);
            break;

        case 2:
            reward = avatarData3.SetState(state, cafeLevel, dormLevel, factoryLevel, null, isEndDayStateLoop);
            break;
        }

        if (reward.energyGain > 0)
        {
            // Update material cost if from factory working to idling
            if (factoryLevel == 1)
            {
                materialAmount += Constant.FACTORY_MATERIAL_COST_LEVEL_1;
            }
            else if (factoryLevel == 2)
            {
                materialAmount += Constant.FACTORY_MATERIAL_COST_LEVEL_2;
            }

            // Update enercy collected if from factory working to idling
            energyAmount += reward.energyGain;
            Debug.Log("Reward: energy get " + reward.energyGain);
        }

        // Update collected item from adventure
        foreach (var item in reward.items)
        {
            int  alreayHaveCount = 0;
            bool hasValue        = this.items.TryGetValue(item.Key, out alreayHaveCount);
            if (hasValue)
            {
                this.items[item.Key] = alreayHaveCount + item.Value;
            }
            else
            {
                this.items[item.Key] = item.Value;
            }
        }
    }
コード例 #2
0
    public void StartAdventure()
    {
        //validate whether the avatar has enough sanity & hungry
        if (selectedIndexAdventure != -1 && selectedIndexAvatar != -1 && currentSelectedAdventure != null && currentSelectedAvatarData != null)
        {
            // Deduct energy & sanity
            currentSelectedAvatarData.hungry -= currentSelectedAdventure.hungryCost;
            currentSelectedAvatarData.sanity -= currentSelectedAdventure.sanityCost;

            currentSelectedAvatarData.SetState(Constant.AvatarState.ADVENTURE,
                                               envManager.player.playerData.cafeLevel,
                                               envManager.player.playerData.dormLevel,
                                               envManager.player.playerData.factoryLevel,
                                               currentSelectedAdventure,
                                               false);
        }
        else
        {
            Debug.LogError("Not able to start adventure with adv:" + selectedIndexAdventure + ", ava:" + selectedIndexAvatar);
        }
    }