Example #1
0
        public void PickupItem(Item item)
        {
            if (!IsFull(item.Code))
            {
                var slotWithItem = SlotOf(item.Code, false);
                if (slotWithItem != null && slotWithItem.FreeQty >= item.Count)
                {
                    slotWithItem.Add(item.Count);
                    Destroy(item.gameObject);
                    return;
                }

                if (FreeSlot != 0)
                {
                    AddItem(new ItemList.ItemInfo
                    {
                        itemCode = item.Code,
                        count    = item.Count
                    });

                    Destroy(item.gameObject);
                    return;
                }
            }

            GameLibOfMethods.CreateFloatingText("Not enough space in inventory", 2);
        }
Example #2
0
        public override void CompletePurchase()
        {
            float totalPrice = GetTotalPrice();

            bool success = totalPrice <= Stats.Money;

            if (!success)
            {
                GameLibOfMethods.CreateFloatingText("Not enough money.", 2);
                AlertNotification();
                return;
            }

            Stats.RemoveMoney(totalPrice);

            foreach (var item in basketItems)
            {
                var upgradeData = (FurnitureItemData)item.currentItem;
                UpgradesManager.GetValidator(upgradeData.Type).ApplyUpgrade(upgradeData.LinkedPrefab);
                Destroy(item.gameObject);
            }
            basketItems.Clear();

            ResetToDefault();
            currentlyOpenStore.ForceRefresh();
        }
Example #3
0
 protected override void Effect()
 {
     base.Effect();
     Stats.PriceMultiplier -= 0.02f;
     GameLibOfMethods.
     CreateFloatingText(string.Format("Items now costs only {0:P1} of their price!", Stats.PriceMultiplier), 2);
 }
 public virtual void Demote()
 {
     GameLibOfMethods.AddChatMessege("You got fired from your job.");
     CurrentPerfomanceLevel         = 3;
     JobManager.Instance.CurrentJob = DemoteJob ? DemoteJob : null;
     CareerUi.Instance.UpdateJobUi();
 }
        public void CheckOut()
        {
            if (basket.Empty)
            {
                return;
            }

            if (Stats.Money < basket.TotalCost)
            {
                GameLibOfMethods.CreateFloatingText("Not enough money", 2);
                return;
            }

            if (!Inventory.PlaceOnBag(basket.Itemlist))
            {
                GameLibOfMethods.CreateFloatingText("Not enough space in inventory", 2);
                return;
            }

            Stats.GetMoney(basket.TotalCost);
            Stats.AddXP(Type.Charisma, basket.TotalCost * 0.2f);

            ClearBasketItems();

            Inventory.SetBagItemActions(ItemActionOnShopping);
        }
Example #6
0
 protected override void Effect()
 {
     base.Effect();
     Stats.XpMultiplier += 0.02f;
     GameLibOfMethods.
     CreateFloatingText("Now you receive " + (Stats.XpMultiplier + Stats.BonusXpMultiplier) + "% XP!", 2);
 }
    private void Awake()
    {
        Instance = this;

        GUI_TimersList timers = FindObjectOfType <GUI_TimersList>();



        HospitalRespawnPoint = GameObject.Find("Hospital Respawn Point").transform;

        actions = Component.FindObjectOfType <Actions>();

        FloatingText = Resources.Load <GameObject>("Core/AIS/FloatingText");

        ChatMessege = Resources.Load <GameObject>("Core/AIS/ChatMessege");

        player   = Player;
        animator = player.GetComponent <Animator>();

        checkRaycastOrigin = GameLibOfMethods.player.transform;

        blackScreen = GameObject.Find("BlackScreen").GetComponent <Image>();
        Vector4 temp = new Vector4(blackScreen.color.r, blackScreen.color.g, blackScreen.color.b, 1);

        blackScreen.color = temp;
        blackScreen.CrossFadeAlpha(0, 2, false);

        ChatContent       = GameObject.Find("ChatContent").transform;
        PlayerAudioSource = player.GetComponent <AudioSource>();
    }
Example #8
0
    public IEnumerator TakingShower()
    {
        if (!GameLibOfMethods.canInteract)
        {
            GameLibOfMethods.cantMove = true;
            GameLibOfMethods.Walking  = false;

            GameLibOfMethods.animator.SetBool("Jumping", false);
            GameLibOfMethods.animator.SetBool("TakingShower", true);

            Emission.enabled = true;
            yield return(new WaitForEndOfFrame());

            SpriteControler.Instance.FaceDOWN();

            GameLibOfMethods.canInteract = true;
            yield return(new WaitForEndOfFrame());

            float timeWithFullBar = 0;

            while (!Input.GetKey(InteractionChecker.Instance.KeyToInteract) && !GameLibOfMethods.passedOut && !isBroken)
            {
                Stats.Status(Type.Hygiene).Add(HygieneGainAmount * Time.fixedDeltaTime);

                float chance = Random.Range(0f, 100f);
                if (chance <= breakChancePerSecond / 60)
                {
                    isBroken = true;
                    Break();
                }


                if (Stats.Status(Type.Hygiene).CurrentAmount >= Stats.Status(Type.Hygiene).MaxAmount)
                {
                    timeWithFullBar += Time.deltaTime;

                    if (timeWithFullBar >= 2)
                    {
                        GameLibOfMethods.CreateFloatingText("You are too clean for this.", 2);
                        break;
                    }
                }
                yield return(new WaitForFixedUpdate());
            }

            Emission.enabled = false;
            yield return(new WaitForEndOfFrame());

            PlayExitSound();


            GameLibOfMethods.animator.SetBool("TakingShower", false);
            yield return(new WaitForEndOfFrame());

            void act() => SpriteControler.Instance.ChangeSortingOrder(0);

            PlayerCommands.JumpOff(0, act);
        }
    }
 public override void Activate()
 {
     if (type == PopUpUIEffectType.OnEnd)
     {
         return;
     }
     GameLibOfMethods.CreateFloatingText(Text, 2);
 }
Example #10
0
 protected virtual void LevelUp()
 {
     data.xp     = 0;
     data.level += 1;
     Stats.InvokeLevelUp(type);
     Effect();
     GameLibOfMethods.CreateFloatingText($"{name} Leveled UP!", 3);
     GameLibOfMethods.AddChatMessege(name + " level UP!");
 }
Example #11
0
 public virtual void PositiveWorkProgress()
 {
     CurrentPerfomanceLevel += 1;
     GameLibOfMethods.AddChatMessege("You are doing well in your job!");
     if (CurrentPerfomanceLevel > 5)
     {
         Promote();
     }
     CareerUi.Instance.UpdateJobUi();
 }
Example #12
0
 public virtual void Penalize()
 {
     GameLibOfMethods.AddChatMessege("You performing badly on your job.");
     CurrentPerfomanceLevel -= 1;
     if (CurrentPerfomanceLevel == 0)
     {
         Demote();
     }
     CareerUi.Instance.UpdateJobUi();
 }
 private void Update()
 {
     if (containerOpen)
     {
         var container = GameLibOfMethods.CheckInteractable()?.GetComponent <ItemList>();
         if (container == null || !container.Equals(currentContainerData))
         {
             CloseContainer();
         }
     }
 }
Example #14
0
        protected virtual void LevelUp()
        {
            data.xp     = 0;
            data.level += 1;
            Stats.InvokeLevelUp(type);
            Effect();
            GameLibOfMethods.CreateFloatingText($"{name} Leveled UP!", 3);
            PlayerChatLog.Instance.AddChatMessege(name + " level UP!");

            Notify.Show($"Congratulations, you have reached level {data.level} in {name}!", GetSkillSprite());
        }
 private void MoveToBasket(ShopList.ItemInfo itemData)
 {
     if (!basket.Contains(itemData))
     {
         basket.AddItem(itemData);
     }
     else
     {
         GameLibOfMethods.CreateFloatingText("You already ordered this.", 1.5f);
     }
 }
Example #16
0
    public void Deposit()
    {
        int inputInt = int.Parse(InputField.text);

        if (inputInt > Stats.Money)
        {
            GameLibOfMethods.CreateFloatingText("Not enough money!", 3);
            return;
        }
        Stats.GetMoney(inputInt);
        MoneyInBank += inputInt;
        UpdateBalance();
    }
Example #17
0
    void Update()
    {
        if (Input.GetKeyUp(KeyToInteract))
        {
            if (GameLibOfMethods.isSleeping || !GameLibOfMethods.canInteract || GameLibOfMethods.doingSomething)
            {
                return;
            }
            GameObject interactableObject = GameLibOfMethods.CheckInteractable();
            InteractWith(interactableObject);
        }

        ApplyHighlights();
    }
    public void Accomplish()
    {
        if (accomplished == false)
        {
            accomplished = true;
            GetRewardButton.gameObject.SetActive(true);
            GetRewardButton.onClick.AddListener(GetReward);

            MissionHandler.missionHandler.activeMissions.Remove(MissionHandler.missionHandler.activeMissions.Where(obj => obj.name == name).FirstOrDefault());
            MissionHandler.missionHandler.CheckMissions();

            GameLibOfMethods.AddChatMessege("You've completed a quest, collect the reward to get " + MoneyBonus + " £!");
        }
    }
Example #19
0
    public bool Deposit(float amount)
    {
        if (amount > Stats.Money)
        {
            GameLibOfMethods.CreateFloatingText("Not enough money!", 3);
            return(false);
        }

        Stats.RemoveMoney(amount);
        MoneyInBank += amount;
        UpdateBalance();

        return(true);
    }
Example #20
0
        public void PutInBag(ItemSlot itemSlot)
        {
            if (!playerInventory.CanFit(itemSlot))
            {
                GameLibOfMethods.CreateFloatingText("Not enough space in inventory", 2);
                return;
            }

            playerInventory.AddItem(itemSlot);

            if (containerOpen)
            {
                playerInventory.UpdateSlotActions(PutInCurrentContainer);
            }
        }
Example #21
0
        private void PutInCurrentContainer(ItemSlot itemSlot)
        {
            if (!currentContainer.IsOpen)
            {
                return;
            }

            if (currentContainer.CanFit(itemSlot))
            {
                currentContainer.AddItem(itemSlot);
            }
            else
            {
                GameLibOfMethods.CreateFloatingText($"Not enough space in {currentContainer.name}", 2);
            }
        }
        public void PickupItem(Item item)
        {
            if (IsFull(item.Code) && !Contains(item.Code))
            {
                GameLibOfMethods.CreateFloatingText("Not enough space in inventory", 2);
            }
            else
            {
                AddItem(new ItemList.ItemInfo
                {
                    itemCode = item.Code,
                    count    = item.Count
                });

                Destroy(item.gameObject);
            }
        }
Example #23
0
        private void TryAction(List <ItemList.ItemInfo> itemsToCook)
        {
            if (!CanAct())
            {
                return;
            }


            if (!Inventory.CanFitOnBag(itemsToCook))
            {
                GameLibOfMethods.CreateFloatingText("Not enough space in inventory.", 2f);
                return;
            }

            CookingHandler.EnableCanvas     = false;
            GameLibOfMethods.doingSomething = true;
            PlayerCommands.MoveTo(StandArea.position, () => StartAction(itemsToCook).Start(MEC.Segment.LateUpdate));
        }
Example #24
0
        private void Cook()
        {
            var itemsToCook = GetRecipeToCook();

            if (!Inventory.CanFitOnBag(itemsToCook))
            {
                GameLibOfMethods.CreateFloatingText("Not enough space in inventory.", 2f);
                return;
            }

            if (PlayerStatsManager.statWarning.ContainsValue(true))
            {
                PlayerChatLog.Instance.AddChatMessege("I'm not feeling well to cook.");
                return;
            }

            Stats.RemoveMoney(_price);
            CookingEntity.StartAction(itemsToCook, true);
        }
 public override void Deactivate(bool canceled)
 {
     if (type == PopUpUIEffectType.OnBegin)
     {
         return;
     }
     if (canceled)
     {
         if (string.IsNullOrWhiteSpace(CanceledText))
         {
             return;
         }
         GameLibOfMethods.CreateFloatingText(CanceledText, 2);
     }
     else
     {
         GameLibOfMethods.CreateFloatingText(Text, 2);
     }
 }
        public void CheckOut()
        {
            if (basket.Empty)
            {
                return;
            }

            if (Stats.Money < basket.TotalCost)
            {
                GameLibOfMethods.CreateFloatingText("Not enough money", 2);
                return;
            }

            Stats.GetMoney(basket.TotalCost);
            Stats.AddXP(Type.Charisma, basket.TotalCost * 0.2f);

            ExecuteUpgrades();

            Shop.CloseUpgradeShop();
        }
        private void Update()
        {
            if (shopOpen)
            {
                var shopList = GameLibOfMethods.CheckInteractable()?.GetComponent <ShopList>();
                if (shopList == null || !shopList.Equals(currentShoplist))
                {
                    CloseShop();
                }
            }

            if (upgradeShopOpen)
            {
                var upgradeList = GameLibOfMethods.CheckInteractable()?.GetComponent <UpgradeList>();
                if (upgradeList == null || !upgradeList.Equals(currentUpgradelist))
                {
                    CloseUpgradeShop();
                }
            }
        }
Example #28
0
    public virtual void Promote()
    {
        int i = 0;

        foreach (Skill.Type type in RequiredSkills.Keys)
        {
            i++;
            if (Stats.Skill(type).CurrentLevel >= RequiredSkills[type])
            {
            }
            else
            {
                return;
            }
        }
        CurrentPerfomanceLevel         = 3;
        JobManager.Instance.CurrentJob = PromotionJob ? PromotionJob : this;
        GameLibOfMethods.AddChatMessege("You got promoted on your job!");
        CareerUi.Instance.UpdateJobUi();
    }
    IEnumerator UseToilet()
    {
        GameLibOfMethods.cantMove = true;
        SpriteControler.Instance.FaceLEFT();
        GameLibOfMethods.animator.SetBool("Jumping", false);
        GameLibOfMethods.animator.SetBool("TakingADump", true);

        yield return(new WaitForFixedUpdate());

        SpriteControler.Instance.FaceLEFT();

        float timeWithFullBar = 0;

        while (!Input.GetKey(InteractionChecker.Instance.KeyToInteract) && !GameLibOfMethods.passedOut)
        {
            Stats.Status(Type.Bladder).Add(BladderGainAmount * Time.fixedDeltaTime);


            if (Stats.Status(Type.Bladder).CurrentAmount >= Stats.Status(Type.Bladder).MaxAmount)
            {
                timeWithFullBar += Time.deltaTime;

                if (timeWithFullBar >= 2)
                {
                    GameLibOfMethods.CreateFloatingText("You have no juice left in your body.", 2);
                    break;
                }
            }

            yield return(new WaitForFixedUpdate());
        }

        PlayExitSound();

        GameLibOfMethods.animator.SetBool("TakingADump", false);
        yield return(new WaitForEndOfFrame());

        void act() => SpriteControler.Instance.ChangeSortingOrder(0);

        PlayerCommands.JumpOff(0, act);
    }
Example #30
0
        private void UseItem()
        {
            if (itemInside.Data.State == ActiveItem && !onCoolDown)
            {
                ActiveItem itemParams = (ActiveItem)itemInside.Data;
                if (!GameLibOfMethods.animator.GetBool("Walking"))
                {
                    GameLibOfMethods.StaticCoroutine.Start(GameLibOfMethods.DoAction(
                                                               delegate
                    {
                        itemParams.Use();
                        Consume(1);
                        StartCoroutine(StartCooldown(itemParams.cooldown));
                    },
                                                               itemParams.UsageTime,
                                                               itemParams.AnimationToPlayName));

                    Inventory.FoodInHand = itemParams.icon;
                }
            }
        }