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); }
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; }
// Update is called once per frame void Update() { if (Stats.Status(Type.Health).CurrentAmount / Stats.Status(Type.Health).MaxAmount > MinHealthPercentageForVeryPoorHealth) { Destroy(gameObject); } }
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(); }
// 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); } }
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); } }
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); }
public void Interact() { if (Stats.Status(Energy).CurrentAmount <= 5 || Stats.Status(Health).CurrentAmount <= 5) { return; } PlayerCommands.JumpTo(this); }
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); }
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; }
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); }
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; } }
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); } }
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); } }
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(); }
public bool Withdraw(float amount) { if (amount > MoneyInBank) { return(false); } Stats.AddMoney(amount); MoneyInBank -= amount; UpdateBalance(); return(true); }
// 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); } }
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); }
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(); } }
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); }
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(); } }
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; } } }
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); }
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; } } }
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); }
protected bool CanAct() { return(!onGoingAction && Stats.Status(Type.Energy).CurrentAmount > 5 && Stats.Status(Type.Health).CurrentAmount > 5); }