public static IEnumerator WakeUpHospital()
    {
        GameTime.Clock.ResetSpeed();
        yield return(new WaitForSecondsRealtime(2));

        player.GetComponent <Animator>().enabled = true;
        Stats.Status(Type.Hunger).Set(float.MaxValue);
        Stats.Status(Type.Energy).Set(float.MaxValue);
        Stats.Status(Type.Health).Set(float.MaxValue);
        Stats.Status(Type.Mood).Set(float.MaxValue);
        Stats.Status(Type.Bladder).Set(100);
        Stats.Status(Type.Hunger).Set(100);
        Stats.Status(Type.Hygiene).Set(100);

        Vector3 tempRotation = new Vector3(0, 0, 0);

        player.transform.rotation = Quaternion.Euler(tempRotation);

        Stats.GetMoney(HospitalFee);

        passedOut = false;
        player.transform.position = new Vector2(HospitalRespawnPoint.position.x, HospitalRespawnPoint.position.y);
        blackScreen.CrossFadeAlpha(0, 2, false);
        cantMove = false;
        CameraFollow.Instance.ResetCamera();

        player.GetComponent <Animator>().SetBool("PassOut", false);

        yield break;
    }
        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);
        }
Exemple #3
0
    override public void OnStateUpdate(Animator animator, AnimatorStateInfo stateInfo, int layerIndex)
    {
        float Multi = GameTime.Time.deltaTime * GameClock.TimeMultiplier / GameClock.Speed;

        Stats.Status(Energy).Add(-EnergyDrain * Multi);
        Stats.MoveSpeed = RunningSpeed;
    }
Exemple #4
0
 // Update is called once per frame
 void Update()
 {
     if (Stats.Status(Type.Health).CurrentAmount / Stats.Status(Type.Health).MaxAmount > MinHealthPercentageForVeryPoorHealth)
     {
         Destroy(gameObject);
     }
 }
Exemple #5
0
    public static IEnumerator <float> WakeUpHospital()
    {
        GameTime.Clock.ResetSpeed();
        GameLibOfMethods.blackScreen.CrossFadeAlpha(1, 0.5f, false);
        yield return(MEC.Timing.WaitForSeconds(2));

        Player.anim.enabled = true;


        foreach (PlayerStats.Status.Type type in Stats.PlayerStatus.Keys)
        {
            Stats.Add(type, float.MaxValue);
        }

        Player.transform.rotation = Quaternion.Euler(0, 0, 0);

        Stats.RemoveMoney(GameLibOfMethods.HospitalFee);

        Vector3 SpawnPosition = GameLibOfMethods.HospitalRespawnPoint.position;

        SpawnPosition.z = Player.transform.position.z;

        Player.transform.position = SpawnPosition;

        GameLibOfMethods.blackScreen.CrossFadeAlpha(0, 2, false);
        GameLibOfMethods.cantMove = false;
        CameraFollow.Instance.ResetCamera();

        PlayerAnimationHelper.ResetPlayer();
    }
Exemple #6
0
    // Update is called once per frame
    void Update()
    {
        if (Stats.Skill(Type.Strength).CurrentLevel >= RequieredStrLevel ||
            Stats.Skill(Type.Intelligence).CurrentLevel >= RequiredIntLevel ||
            Stats.Skill(Type.Fitness).CurrentLevel >= RequiredFitLevel ||
            Stats.Skill(Type.Charisma).CurrentLevel >= RequiredChrLevel||
            Stats.Skill(Type.Cooking).CurrentLevel >= RequiredCookingLevel||
            Stats.Skill(Type.Repair).CurrentLevel >= RequiredRepairLevel)

        {
            if (accomplished == false)
            {
              
                    

                Accomplish();
                

               
               
               
            }
        }
        
    }
 // Update is called once per frame
 void Update()
 {
     if (Stats.Status(Type.Health).CurrentAmount / Stats.Status(Type.Health).MaxAmount > MinHealthPercentageForPoorHealth || VeryPoorHealthDebuff.veryPoorHealthDebuffInstance)
     {
         Destroy(gameObject);
     }
 }
Exemple #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);
        }
    }
Exemple #9
0
 private void ApplyStatGains()
 {
     Stats.Status(Type.Hunger).Add(Hunger);
     Stats.Status(Type.Energy).Add(Energy);
     Stats.Status(Type.Health).Add(Health);
     Stats.Status(Type.Mood).Add(Mood);
     Stats.Status(Type.Thirst).Add(Thirst);
 }
Exemple #10
0
 public void Interact()
 {
     if (Stats.Status(Energy).CurrentAmount <= 5 || Stats.Status(Health).CurrentAmount <= 5)
     {
         return;
     }
     PlayerCommands.JumpTo(this);
 }
Exemple #11
0
 private void ApplyBonusGains()
 {
     Stats.Status(Type.Hunger).Add(Stats.Status(Type.Hunger).MaxAmount *HungerPercentBonus);
     Stats.Status(Type.Energy).Add(Stats.Status(Type.Energy).MaxAmount *EnergyPercentBonus);
     Stats.Status(Type.Health).Add(Stats.Status(Type.Health).MaxAmount *HealthPercentBonus);
     Stats.Status(Type.Mood).Add(Stats.Status(Type.Mood).MaxAmount *MoodPercentBonus);
     Stats.Status(Type.Thirst).Add(Stats.Status(Type.Thirst).MaxAmount *ThirstPercentBonus);
 }
Exemple #12
0
    override public void OnStateEnter(Animator animator, AnimatorStateInfo stateInfo, int layerIndex)
    {
        Stats.Status(Type.Bladder).Set(float.MaxValue);
        Stats.Status(Type.Hygiene).Set(0);

        GameLibOfMethods.cantMove       = true;
        GameLibOfMethods.canInteract    = false;
        GameLibOfMethods.doingSomething = true;
    }
Exemple #13
0
 public void OnFix()
 {
     BrokenParticleSystem.Stop();
     Progress.transform.parent.gameObject.SetActive(false);
     isBroken            = false;
     RepairProgress      = 0;
     Progress.fillAmount = RepairProgress;
     PlayerAnimationHelper.ResetPlayer();
     Stats.AddXP(Type.Repair, 10);
 }
Exemple #14
0
    private void SimulateToilet()
    {
        float t = GameTime.Clock.InGameHoursSinceLastFrame;

        Stats.Status(Bladder).Add(t * BladderReduce);
        if (Stats.Status(Bladder).CurrentAmount == Stats.Status(Bladder).MaxAmount)
        {
            UsingToilet = false;
        }
    }
Exemple #15
0
 void CheckPassOutReason(Animator animator, AnimatorStateInfo stateInfo, int layerIndex)
 {
     if (Stats.Status(Health).CurrentAmount <= 0)
     {
         WakeUpHospital().Start();
     }
     else if (Stats.Status(Energy).CurrentAmount <= 0)
     {
         animator.SetBool("Sleeping", true);
     }
 }
Exemple #16
0
 void Update()
 {
     Instance = gameObject;
     if (Stats.Status(Type.Health).CurrentAmount / Stats.Status(Type.Health).MaxAmount < MinHealthPercentageForPoorHealth && !PoorHealthDebuff.poorHealthDebuffInstance && !VeryPoorHealthDebuff.veryPoorHealthDebuffInstance)
     {
         Instantiate(poorHealthDebuff, Instance.transform);
     }
     if (Stats.Status(Type.Health).CurrentAmount / Stats.Status(Type.Health).MaxAmount < MinHealthPercentageForVeryPoorHealth && !VeryPoorHealthDebuff.veryPoorHealthDebuffInstance)
     {
         Instantiate(veryPoorHealthDebuff, Instance.transform);
     }
 }
Exemple #17
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();
    }
Exemple #18
0
    public bool Withdraw(float amount)
    {
        if (amount > MoneyInBank)
        {
            return(false);
        }

        Stats.AddMoney(amount);
        MoneyInBank -= amount;
        UpdateBalance();

        return(true);
    }
Exemple #19
0
    // OnStateUpdate is called on each Update frame between OnStateEnter and OnStateExit callbacks
    override public void OnStateUpdate(Animator animator, AnimatorStateInfo stateInfo, int layerIndex)
    {
        float Multi = GameTime.Time.deltaTime * GameClock.TimeMultiplier / GameClock.Speed;

        Stats.Status(Energy).Add(EnergyGainPerSecond * Multi);

        bool ShouldExitState = Stats.Status(Energy).CurrentAmount >= EnergyRequiredToWakeUp || (Cancelable && Input.GetKeyDown(KeyCode.E));

        if (ShouldExitState)
        {
            animator.SetBool("Sleeping", false);
        }
    }
Exemple #20
0
    public void GetReward()
    {
        Stats.AddMoney(MoneyBonus);
        if (nextMission)
        {
            GameObject NextMission = Instantiate(nextMission, MissionHandler.missionHandler.MissionsGameObjects.transform);
            NextMission.name = nextMission.name;

            MissionHandler.CurrentMissions.Add(NextMission.name);
            MissionHandler.missionHandler.CheckMissions();
        }
        MissionHandler.missionHandler.RemoveAccomplished(this);
    }
Exemple #21
0
    public IEnumerator RunningOnTreadmill()
    {
        GameLibOfMethods.cantMove    = true;
        GameLibOfMethods.canInteract = true;

        SpriteControler.Instance.FaceLEFT();
        GameLibOfMethods.animator.SetBool("Jumping", false);
        GameLibOfMethods.animator.SetBool("Walking", true);
        GameLibOfMethods.animator.SetFloat("Horizontal", -1);

        yield return(new WaitForFixedUpdate());


        while (!Input.GetKey(InteractionChecker.Instance.KeyToInteract))
        {
            GameLibOfMethods.animator.SetBool("Walking", true);

            SpriteControler.Instance.FaceLEFT();

            Stats.AddXP(Fitness, 0.027777778f);
            Stats.Status(Energy).Remove(0.027777778f);

            if (Stats.Status(Energy).CurrentAmount <= 0 || Stats.Status(Health).CurrentAmount <= 0)
            {
                break;
            }


            yield return(new WaitForFixedUpdate());
        }
        GameLibOfMethods.animator.SetFloat("Horizontal", 0);

        Debug.Log("Playing exit sound");
        PlayExitSound();

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


        if (Stats.Status(Energy).CurrentAmount <= 0 || Stats.Status(Health).CurrentAmount <= 0)
        {
            void act() => GameLibOfMethods.animator.SetBool("PassOut", true);

            PlayerCommands.JumpOff(0, act);
        }
        else
        {
            PlayerCommands.JumpOff();
        }
    }
Exemple #22
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);
    }
Exemple #23
0
    override public void OnStateUpdate(Animator animator, AnimatorStateInfo stateInfo, int layerIndex)
    {
        if (Stats.Status(Bladder).CurrentAmount < (Stats.Status(Bladder).MaxAmount * .2) || UsingToilet)
        {
            UsingToilet = true;
            SimulateToilet();
        }
        if (Stats.Status(Thirst).CurrentAmount < (Stats.Status(Thirst).MaxAmount * .2) && !UsingToilet && !Drank)
        {
            SimulateDrinking();
        }

        if (Stats.Status(Hunger).CurrentAmount < (Stats.Status(Hunger).MaxAmount * .2) && !UsingToilet && !Ate)
        {
            SimulateEating();
        }
    }
Exemple #24
0
    public void Awake()
    {
        //customisation = FindObjectOfType<Customisation>();
        defaultStat = new BaseStats[6]; //player has stats now

        //If not Customisation scene then load player data
        if (SceneManager.GetActiveScene().name != "Customisation")
        {
            //load player data
            PlayerData loadedPlayer = PlayerBinarySave.LoadPlayerData();
            if (loadedPlayer != null)
            {
                stats      = loadedPlayer.playerStats;
                profession = loadedPlayer.profession;
                //customisation.currentPartsTextureIndex = loadedPlayer.customisationTextureIndex;
            }
        }
    }
Exemple #25
0
    public IEnumerator StartLifting()
    {
        GameLibOfMethods.animator.SetBool("Jumping", false);
        GameLibOfMethods.animator.SetBool("Lifting", true);
        Weights.SetActive(false);

        yield return(new WaitForEndOfFrame());

        SpriteControler.Instance.FaceRIGHT();

        while (!Input.GetKey(InteractionChecker.Instance.KeyToInteract))
        {
            Stats.AddXP(Strength, 0.027777778f);
            Stats.Status(Energy).Remove(0.027777778f);

            if (Stats.Status(Energy).CurrentAmount <= 0 || Stats.Status(Health).CurrentAmount <= 0)
            {
                break;
            }

            yield return(new WaitForFixedUpdate());
        }

        Debug.Log("Playing exit sound");
        PlayExitSound();

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

        Weights.SetActive(true);


        if (Stats.Status(Energy).CurrentAmount <= 0 || Stats.Status(Health).CurrentAmount <= 0)
        {
            void act() => GameLibOfMethods.animator.SetBool("PassOut", true);

            PlayerCommands.JumpOff(0, act);
        }
        else
        {
            PlayerCommands.JumpOff();
        }
    }
        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();
        }
    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);
    }
Exemple #28
0
    private void BuyConsumable(bool Food = false)
    {
        var virtualShopItems = GameObject.Find("Career Scripts").GetComponent <Items.Shops.GeneralStore>().Items;
        List <InventorySystem.ItemList.ItemInfo> shopList = new List <InventorySystem.ItemList.ItemInfo>();

        InventorySystem.ItemList.ItemInfo itemToBuy = new InventorySystem.ItemList.ItemInfo();
        float price = -1;

        foreach (var Item in virtualShopItems)
        {
            if (Item.Name == "Water" && !Food)
            {
                price = Item.price * 2;
            }
            else if (Item.Name != "Water" && Food)
            {
                if (Item.ItemType == Items.ItemType.Food)
                {
                    price = ItemIngredientPrice(Item);
                }
            }
            if (Stats.Money >= price && price > 0)
            {
                Stats.RemoveMoney(price);
                itemToBuy.itemCode = Item.code;
                itemToBuy.count    = 1;
                shopList.Add(itemToBuy);
                InventorySystem.Inventory.PlaceOnBag(shopList);
                ConsumeItem(Item.name, 1);
                return;
            }
            else if (Item.Name == "Water" && !Food)
            {
                return;
            }
        }
    }
Exemple #29
0
        public IEnumerator <float> GradualUse()
        {
            float t = 0;

            float GetProgress() => (t += GameTime.Time.deltaTime) / UsageTime;

            void ApplyGradualBonusGains()
            {
                Stats.Status(Type.Hunger).Add((Stats.Status(Type.Hunger).MaxAmount *HungerPercentBonus) / UsageTime * Time.deltaTime);
                Stats.Status(Type.Energy).Add((Stats.Status(Type.Energy).MaxAmount *EnergyPercentBonus) / UsageTime * Time.deltaTime);
                Stats.Status(Type.Health).Add((Stats.Status(Type.Health).MaxAmount *HealthPercentBonus) / UsageTime * Time.deltaTime);
                Stats.Status(Type.Mood).Add((Stats.Status(Type.Mood).MaxAmount *MoodPercentBonus) / UsageTime * Time.deltaTime);
                Stats.Status(Type.Thirst).Add((Stats.Status(Type.Thirst).MaxAmount *ThirstPercentBonus) / UsageTime * Time.deltaTime);
            }

            void ApplyGradualStatGains()
            {
                Stats.Status(Type.Hunger).Add((Hunger / UsageTime) * Time.deltaTime);
                Stats.Status(Type.Energy).Add((Energy / UsageTime) * Time.deltaTime);
                Stats.Status(Type.Health).Add((Health / UsageTime) * Time.deltaTime);
                Stats.Status(Type.Mood).Add((Mood / UsageTime) * Time.deltaTime);
                Stats.Status(Type.Thirst).Add((Thirst / UsageTime) * Time.deltaTime);
                Stats.Status(Type.Bladder).Add((Bladder / UsageTime) * Time.deltaTime);
            }

            while (GetProgress() < 1 && !cancel)
            {
                ApplyGradualBonusGains();
                ApplyGradualStatGains();

                yield return(0f);
            }

            PlayerBuff.GetRandomBuff();

            yield return(0f);
        }
Exemple #30
0
 protected bool CanAct()
 {
     return(!onGoingAction &&
            Stats.Status(Type.Energy).CurrentAmount > 5 &&
            Stats.Status(Type.Health).CurrentAmount > 5);
 }