Example #1
0
 // Use this for initialization
 void Start()
 {
     rl    = GameObject.FindGameObjectWithTag("loader").GetComponent <ResourceLoader>();
     plots = new Dictionary <string, PlotData>();
     mc    = GameObject.Find("Clock").GetComponent <MoonCycle>();
     sam   = GameObject.FindObjectOfType <SteamAchievementManager>();
     StartCoroutine(Grow());
 }
Example #2
0
        public static void Update(float deltaTime)
        {
            if (instance == null || !instance.isInitialized)
            {
                return;
            }

            instance.client?.Update();
            instance.server?.Update();

            SteamAchievementManager.Update(deltaTime);
        }
Example #3
0
        public static void Update(float deltaTime)
        {
            if (!isInitialized)
            {
                return;
            }

            if (Steamworks.SteamClient.IsValid)
            {
                Steamworks.SteamClient.RunCallbacks();
            }
            if (Steamworks.SteamServer.IsValid)
            {
                Steamworks.SteamServer.RunCallbacks();
            }

            SteamAchievementManager.Update(deltaTime);
        }
        public override void Update(float deltaTime, Camera cam)
        {
            UpdateProjSpecific(deltaTime);

            if (CurrentFixer == null)
            {
                if (!ShouldDeteriorate())
                {
                    return;
                }
                if (item.Condition > 0.0f)
                {
                    if (deteriorationTimer > 0.0f)
                    {
                        if (GameMain.NetworkMember == null || !GameMain.NetworkMember.IsClient)
                        {
                            deteriorationTimer -= deltaTime;
#if SERVER
                            if (deteriorationTimer <= 0.0f)
                            {
                                item.CreateServerEvent(this);
                            }
#endif
                        }
                        return;
                    }

                    if (item.Condition > MinDeteriorationCondition)
                    {
                        item.Condition -= DeteriorationSpeed * deltaTime;
                    }
                }
                return;
            }

            if (Item.IsFullCondition || CurrentFixer.SelectedConstruction != item || !currentFixer.CanInteractWith(item))
            {
                currentFixer.AnimController.Anim = AnimController.Animation.None;
                currentFixer = null;
                return;
            }

            UpdateFixAnimation(CurrentFixer);

            if (GameMain.NetworkMember != null && GameMain.NetworkMember.IsClient)
            {
                return;
            }

            float successFactor = requiredSkills.Count == 0 ? 1.0f : 0.0f;
            foreach (Skill skill in requiredSkills)
            {
                float characterSkillLevel = CurrentFixer.GetSkillLevel(skill.Identifier);
                if (characterSkillLevel >= skill.Level)
                {
                    successFactor += 1.0f / requiredSkills.Count;
                }
                CurrentFixer.Info.IncreaseSkillLevel(skill.Identifier,
                                                     SkillIncreaseMultiplier * deltaTime / Math.Max(characterSkillLevel, 1.0f),
                                                     CurrentFixer.WorldPosition + Vector2.UnitY * 100.0f);
            }

            bool  wasBroken   = !item.IsFullCondition;
            float fixDuration = MathHelper.Lerp(FixDurationLowSkill, FixDurationHighSkill, successFactor);
            if (fixDuration <= 0.0f)
            {
                item.Condition = item.MaxCondition;
            }
            else
            {
                item.Condition += deltaTime / (fixDuration / item.MaxCondition);
            }

            if (wasBroken && item.IsFullCondition)
            {
                SteamAchievementManager.OnItemRepaired(item, currentFixer);
                deteriorationTimer = Rand.Range(MinDeteriorationDelay, MaxDeteriorationDelay);
#if SERVER
                item.CreateServerEvent(this);
#endif
            }
        }
Example #5
0
        public override void Update(float deltaTime, Camera cam)
        {
            UpdateProjSpecific(deltaTime);

            if (CurrentFixer == null)
            {
                if (!ShouldDeteriorate())
                {
                    return;
                }
                if (item.Condition > 0.0f)
                {
                    if (deteriorationTimer > 0.0f)
                    {
                        if (GameMain.NetworkMember == null || !GameMain.NetworkMember.IsClient)
                        {
                            deteriorationTimer -= deltaTime;
#if SERVER
                            if (deteriorationTimer <= 0.0f)
                            {
                                item.CreateServerEvent(this);
                            }
#endif
                        }
                        return;
                    }

                    if (item.Condition > MinDeteriorationCondition)
                    {
                        item.Condition -= DeteriorationSpeed * deltaTime;
                    }
                }
                return;
            }

            if (Item.IsFullCondition || CurrentFixer.SelectedConstruction != item || !currentFixer.CanInteractWith(item))
            {
                currentFixer.AnimController.Anim = AnimController.Animation.None;
                currentFixer = null;
                return;
            }

            UpdateFixAnimation(CurrentFixer);

            if (GameMain.NetworkMember != null && GameMain.NetworkMember.IsClient)
            {
                return;
            }

            float successFactor = requiredSkills.Count == 0 ? 1.0f : 0.0f;

            //item must have been below the repair threshold for the player to get an achievement or XP for repairing it
            if (item.Condition < ShowRepairUIThreshold)
            {
                wasBroken = true;
            }

            float fixDuration = MathHelper.Lerp(FixDurationLowSkill, FixDurationHighSkill, successFactor);
            if (fixDuration <= 0.0f)
            {
                item.Condition = item.MaxCondition;
            }
            else
            {
                float conditionIncrease = deltaTime / (fixDuration / item.MaxCondition);
                item.Condition += conditionIncrease;
#if SERVER
                GameMain.Server.KarmaManager.OnItemRepaired(CurrentFixer, this, conditionIncrease);
#endif
            }

            if (wasBroken && item.IsFullCondition)
            {
                foreach (Skill skill in requiredSkills)
                {
                    float characterSkillLevel = CurrentFixer.GetSkillLevel(skill.Identifier);
                    CurrentFixer.Info.IncreaseSkillLevel(skill.Identifier,
                                                         SkillIncreasePerRepair / Math.Max(characterSkillLevel, 1.0f),
                                                         CurrentFixer.WorldPosition + Vector2.UnitY * 100.0f);
                }
                SteamAchievementManager.OnItemRepaired(item, currentFixer);
                deteriorationTimer = Rand.Range(MinDeteriorationDelay, MaxDeteriorationDelay);
                wasBroken          = false;
#if SERVER
                item.CreateServerEvent(this);
#endif
            }
        }
Example #6
0
    private void Start()
    {
        manager    = GameObject.Find("BrewingManager").GetComponent <BrewingManager>();
        rl         = GameObject.FindGameObjectWithTag("loader").GetComponent <ResourceLoader>();
        player     = GameObject.FindGameObjectWithTag("Player").GetComponent <Player>();
        sam        = GameObject.FindObjectOfType <SteamAchievementManager>();
        sparkles   = GameObject.Find("sparkles");
        bubbles    = GameObject.Find("bubbles");
        inv        = GameObject.FindGameObjectWithTag("inventory");
        anims      = GetComponentsInChildren <Animator>();
        invButtons = GameObject.FindGameObjectWithTag("inventory").GetComponentsInChildren <Button>();
        canvas     = brewPanel.transform.parent.gameObject;
        canvas.SetActive(false);
        active      = false;
        alreadyOpen = true;
        done        = false;
        brewVisible = false;

        if (rl.ingredientCount != 0)
        {
            try {
                first.GetComponentsInChildren <Image>()[1].sprite  = Resources.Load <Sprite>(rl.brewingIngredients[0].imagePath);
                first.GetComponentsInChildren <Image>()[1].enabled = true;
                first.GetComponentInChildren <Text>().text         = Regex.Replace(rl.brewingIngredients[0].name.Substring(0, 1).ToUpper() + rl.brewingIngredients[0].name.Substring(1), "_", " ");
                first.GetComponentInChildren <CanvasGroup>().alpha = 1;
            } catch (System.NullReferenceException) { }

            try {
                second.GetComponentsInChildren <Image>()[1].sprite  = Resources.Load <Sprite>(rl.brewingIngredients[1].imagePath);
                second.GetComponentsInChildren <Image>()[1].enabled = true;
                second.GetComponentInChildren <Text>().text         = Regex.Replace(rl.brewingIngredients[1].name.Substring(0, 1).ToUpper() + rl.brewingIngredients[1].name.Substring(1), "_", " ");
                second.GetComponentInChildren <CanvasGroup>().alpha = 1;
            } catch (System.NullReferenceException) { }

            try {
                third.GetComponentsInChildren <Image>()[1].sprite  = Resources.Load <Sprite>(rl.brewingIngredients[2].imagePath);
                third.GetComponentsInChildren <Image>()[1].enabled = true;
                third.GetComponentInChildren <Text>().text         = Regex.Replace(rl.brewingIngredients[2].name.Substring(0, 1).ToUpper() + rl.brewingIngredients[2].name.Substring(1), "_", " ");
                third.GetComponentInChildren <CanvasGroup>().alpha = 1;
            } catch (System.NullReferenceException) { }
        }

        switch (manager.Brewing)
        {
        case 0:
            foreach (Animator a in anims)
            {
                a.SetBool("idle", true);
            }
            bubbles.GetComponent <SpriteRenderer>().enabled  = false;
            sparkles.GetComponent <SpriteRenderer>().enabled = false;
            break;

        case 1:
            foreach (Animator a in anims)
            {
                a.SetBool("idle", false);
            }
            bubbles.GetComponent <SpriteRenderer>().enabled  = true;
            sparkles.GetComponent <SpriteRenderer>().enabled = true;
            break;

        case 2:
            foreach (Animator a in anims)
            {
                a.SetBool("idle", true);
            }
            anims[0].SetBool("full", true);
            bubbles.GetComponent <SpriteRenderer>().enabled  = true;
            sparkles.GetComponent <SpriteRenderer>().enabled = false;
            break;

        default:
            Debug.Log("How did it get to this");
            break;
        }
    }