示例#1
0
    public void Convert(Entity entity, EntityManager entityManager, GameObjectConversionSystem conversionSystem)
    {
        entityManager.AddComponent(entity, typeof(InsideRoom));

        var hunger = new HungerLevel();

        hunger.Value = 50;

        var happy = new HappinessLevel();

        happy.Value = 50;

        var temperature = new Temperature();

        temperature.Value = 68;

        var timeRemaining = new TimeToLeave();

        timeRemaining.TimeRemaining = 60;


        entityManager.AddComponentData(entity, hunger);
        entityManager.AddComponentData(entity, happy);
        entityManager.AddComponentData(entity, temperature);
        entityManager.AddComponentData(entity, timeRemaining);
    }
示例#2
0
 public FamilyMemberResult(
     FamilyMember familyMember,
     Gift gift,
     HappinessLevel happinessLevel)
 {
     FamilyMember   = familyMember;
     Gift           = gift;
     HappinessLevel = happinessLevel;
 }
示例#3
0
        public static HappinessLevel DecrementHappiness(HappinessLevel level)
        {
            if (level == HappinessLevel.NoGift)
            {
                return(level);
            }

            if (level == HappinessLevel.Hate)
            {
                return(level);
            }

            return(happinessLevelOrder[Array.IndexOf(happinessLevelOrder, level) - 1]);
        }
示例#4
0
        public static HappinessLevel IncrementHappiness(HappinessLevel level)
        {
            if (level == HappinessLevel.NoGift)
            {
                return(level);
            }

            if (level == HappinessLevel.Favorite)
            {
                return(level);
            }

            return(happinessLevelOrder[Array.IndexOf(happinessLevelOrder, level) + 1]);
        }
    void SetHappinessLevel()
    {
        HappinessLevel highestLevel = happinessLevels[0];

        foreach (var level in happinessLevels)
        {
            if (happiness > level.amt && highestLevel.amt < level.amt)
            {
                highestLevel = level;
            }
        }
        currentHappinessLevel = highestLevel;

        happinessImage.sprite = currentHappinessLevel.sprite;
        SM.breedNote.SetActive(currentHappinessLevel.canBreed && CreatureManager.Instance.creaturesInWorld.Count > 1);
        //face.sprite = currentHappinessLevel.faceSprite;
        speedMultiplier = currentHappinessLevel.speedMultiplier;
    }
    void SetHappinessLevel()
    {
        HappinessLevel highestLevel = happinessLevels[0];

        foreach (var level in happinessLevels)
        {
            if (happiness > level.amt && highestLevel.amt < level.amt)
            {
                highestLevel = level;
            }
        }
        currentHappinessLevel = highestLevel;

        happinessImage.sprite = currentHappinessLevel.sprite;
        SM.breedNote.SetActive(currentHappinessLevel.canBreed);
        face.sprite     = currentHappinessLevel.faceSprite;
        speedMultiplier = currentHappinessLevel.speedMultiplier;
    }
示例#7
0
        public Sprite GetHappinessLevelSprite(HappinessLevel happinessLevel)
        {
            switch (happinessLevel)
            {
            case HappinessLevel.Hate: return(hateSprite);

            case HappinessLevel.Disappointed: return(disappointedSprite);

            case HappinessLevel.Indifferent: return(indifferentSprite);

            case HappinessLevel.Satisfied: return(satisfiedSprite);

            case HappinessLevel.Happy: return(happySprite);

            case HappinessLevel.Love: return(loveSprite);

            case HappinessLevel.Favorite: return(favoriteSprite);

            default: return(invalidSprite);
            }
        }
示例#8
0
        public static EndOfGameResults EvaluateGameResults(ReadOnlyDictionary <FamilyMember, Gift> choices)
        {
            var familyMemberResults = new List <FamilyMemberResult>();
            int score = 0;

            foreach (KeyValuePair <FamilyMember, Gift> kvp in choices)
            {
                FamilyMember   member    = kvp.Key;
                Gift           gift      = kvp.Value;
                HappinessLevel happiness = GetHappinessLevelForGiftChoice(member, gift);

                score += CalculateBaseScoreForGiftChoice(member, gift);
                familyMemberResults.Add(new FamilyMemberResult(
                                            familyMember: member,
                                            gift: gift,
                                            happinessLevel: happiness));
            }

            return(new EndOfGameResults(
                       familyMemberResults: familyMemberResults.ToArray(),
                       score: score));
        }
示例#9
0
        public override void AnimateChanges(
            FamilyMember source,
            Dictionary <FamilyMember, FamilyMemberResult> results,
            Dictionary <FamilyMember, FamilyMemberPortrait> portraits,
            int score,
            out int modifiedScore)
        {
            base.AnimateChanges(source, results, portraits, score, out modifiedScore);

            int outScore = modifiedScore;

            portraits.ForEach((member, portrait) =>
            {
                if (member == source)
                {
                    return;
                }

                Gift sourceGift = results[source].Gift;
                Gift evalGift   = results[member].Gift;

                if (sourceGift.Cost > evalGift.Cost)
                {
                    HappinessLevel current  = portrait.HappinessLevel;
                    HappinessLevel modified = ResultsEvaluation.DecrementHappiness(portrait.HappinessLevel);
                    int scoreDifference     = ResultsEvaluation.GetHappinessScoreDifference(current, modified);

                    portrait.PlayNegativePingAnimation();
                    portrait.HappinessLevel = modified;

                    outScore += scoreDifference;
                }
            });

            modifiedScore = outScore;
        }
示例#10
0
 public static int GetHappinessScoreDifference(HappinessLevel prev, HappinessLevel next)
 {
     return(GetHappinessScoreValue(next) - GetHappinessScoreValue(prev));
 }
示例#11
0
 public static int GetHappinessScoreValue(HappinessLevel happiness)
 {
     return((int)happiness * HappinessMultiplier);
 }
示例#12
0
        public static int CalculateBaseScoreForGiftChoice(FamilyMember member, Gift gift)
        {
            HappinessLevel happiness = GetHappinessLevelForGiftChoice(member, gift);

            return(GetHappinessScoreValue(happiness));
        }
 public async Task <ActionResult <long> > AddInmate(string name, decimal size, ArrestLocation arrestLocation, HungerLevel hungerLevel, HappinessLevel happinessLevel)
 {
     _logger.LogInformation("I just got an AddInmate request");
     return(await _inmateCrudService.AddInmateAndReturnId(name, size, arrestLocation, hungerLevel, happinessLevel));
 }