private void Update()
 {
     if (!died && (Health.GetHealth() == 0 || Oxygen.GetOxygen() == 0f))
     {
         Die();
     }
 }
예제 #2
0
        public void SetOverPowerCheat(bool value)
        {
            OverPowerCheat = value;

            if (value)
            {
                overPowerMultiplier     = CmConfig.overPowerMultiplier;
                hungerAndThristInterval = CmConfig.hungerAndThirstInterval;
            }
            else
            {
                overPowerMultiplier     = 1;
                hungerAndThristInterval = 10;
            }

            Oxygen o2 = Player.main.GetComponent <OxygenManager>().GetComponent <Oxygen>();

            Player.main.GetComponent <Survival>().SetPrivateField("kUpdateHungerInterval", hungerAndThristInterval);

            if (o2.isPlayer)
            {
                o2.oxygenCapacity = 45 * overPowerMultiplier;
            }

            Player.main.liveMixin.data.maxHealth = 100 * overPowerMultiplier;
            Player.main.liveMixin.health         = 100 * overPowerMultiplier;

            ErrorMessage.AddDebug($"overpower cheat is now {OverPowerCheat}\nOverPower Multiplier: {overPowerMultiplier}x\nHunger and thirst interval: {hungerAndThristInterval}");
        }
예제 #3
0
        private void Awake()
        {
            if (this.techType == TechType.None)
            {
                this.techType = CraftData.GetTechType(base.gameObject);
            }

            this.oxygen = base.GetComponent <Oxygen>();
            if (this.oxygen == null)
            {
                Log.LogDebug($"CustomOxy: Failed to find Oxygen component in parent");
                return;
            }

            if (this.oxygen.isPlayer)
            {
                return;
            }

            if (Main.config.GetCapacityOverride(this.techType, out float capacityOverride, out float capacityMultiplier))
            {
                bool bIsManual = Main.config.bManualRefill;
                Log.LogDebug($"CustomiseOxygen.Main.GetCapacityOverride returned true with values of capacityOverride={capacityOverride}, capacityMultiplier={capacityMultiplier}");
                if (capacityOverride > 0)
                {
                    this.oxygen.oxygenCapacity = capacityOverride;
                }
                else
                {
                    Main.config.SetCapacityOverride(this.techType, this.oxygen.oxygenCapacity, false, true);
                    this.oxygen.oxygenCapacity *= capacityMultiplier;
                }
                Log.LogDebug($"CustomOxy.Awake(): Oxygen capacity set to {this.oxygen.oxygenCapacity}");
            }
        }
 // Use this for initialization
 void Start()
 {
     oxygen      = gameObject.GetComponent <Oxygen>();
     musicPlayer = GameObject.Find("Music");
     deltaTime   = longtermTime;
     flag        = true;
 }
예제 #5
0
        public void TestCountValences()
        {
            IElement testSubject = new Hydrogen();
            var      testResult  = testSubject.CountValences;

            Console.WriteLine($"{testSubject.Name} {testResult}");
            Assert.AreEqual(1, testResult);

            testSubject = new Helium();
            testResult  = testSubject.CountValences;
            Console.WriteLine($"{testSubject.Name} {testResult}");
            Assert.AreEqual(0, testResult);

            testSubject = new Oxygen();
            testResult  = testSubject.CountValences;
            Console.WriteLine($"{testSubject.Name} {testResult}");
            Assert.AreEqual(2, testResult);

            testSubject = new Nitrogen();
            testResult  = testSubject.CountValences;
            Console.WriteLine($"{testSubject.Name} {testResult}");
            Assert.AreEqual(3, testResult);

            testSubject = new Carbon();
            testResult  = testSubject.CountValences;
            Console.WriteLine($"{testSubject.Name} {testResult}");
            Assert.AreEqual(4, testResult);

            testSubject = new Silicon();
            testResult  = testSubject.CountValences;
            Console.WriteLine($"{testSubject.Name} {testResult}");
        }
예제 #6
0
    // Update is called once per frame
    void Update()
    {
        play = GameObject.FindWithTag("Player");
        Oxygen oxy = play.GetComponent <Oxygen>();

        text      = GetComponent <Text>();
        text.text = "" + oxy.oxygen;
    }
예제 #7
0
    void Awake()
    {
        oxygen = GetComponent<Oxygen>();
        energy = GetComponent<Energy>();
        rb = GetComponent<Rigidbody2D>();

        flashLight.gameObject.SetActive(false);
    }
예제 #8
0
 // Use this for initialization
 void Start()
 {
     ownerBody      = this.gameObject.GetComponent <Rigidbody2D>();
     oxygenSupply   = this.gameObject.GetComponent <Oxygen>();
     playerMovement = this.gameObject.GetComponent <Movement>();
     jetpack        = transform.Find("jetpack");
     sounds         = jetpack.GetComponent <AudioSource> ();
 }
예제 #9
0
    // Use this for initialization
    void Start()
    {
        Character    = GameObject.FindWithTag("Player");
        Playerbody   = Character.GetComponent("Rigidbody2D") as Rigidbody2D;
        Player       = Character.GetComponent("PlayerController") as PlayerController;
        PlayerOxygen = FindObjectOfType <Oxygen>();

        //death = FindObjectOfType<Death>();
    }
예제 #10
0
        public override IEnumerator GetGameObjectAsync(IOut <GameObject> gameObject)
        {
            CoroutineTask <GameObject> task;
            Oxygen oxy;

            if (prefab == null)
            {
                Log.LogDebug($"HighCapacityBooster.GetGameObjectAsync: getting SuitBoosterTank prefab");
                task = CraftData.GetPrefabForTechTypeAsync(TechType.SuitBoosterTank, verbose: true);
                yield return(task);

                prefab = GameObject.Instantiate(task.GetResult());
                ModPrefabCache.AddPrefab(prefab, false); // This doesn't actually do any caching, but it does disable the prefab without "disabling" it - the prefab doesn't show up in the world [as with SetActive(false)] but it can still be instantiated.
                //HighCapacityBooster.prefab = prefab;
            }

            if (highCapTank == null)
            {
                Log.LogDebug($"HighCapacityBooster.GetGameObjectAsync: getting HighCapacityTank prefab");
                task = CraftData.GetPrefabForTechTypeAsync(TechType.HighCapacityTank, verbose: true);
                yield return(task);

                highCapTank = GameObject.Instantiate(task.GetResult()); // The "capacity expansion" code in Customise Your Oxygen can't run unless the thing is instantiated. The prefabs can't be altered.
                                                                        // So unless we instantiate, we only get default capacities.
                ModPrefabCache.AddPrefab(highCapTank, false);           // This doesn't actually do any caching, but it does disable the prefab without "disabling" it - the prefab doesn't show up in the world [as with SetActive(false)] but it can still be instantiated.
            }

            GameObject go            = GameObject.Instantiate(prefab);
            Oxygen     highCapOxygen = highCapTank.GetComponent <Oxygen>();

            //Oxygen highCapOxygen = task.GetResult().GetComponent<Oxygen>();
            if (highCapOxygen != null)
            {
                oxy = go.EnsureComponent <Oxygen>();
                if (oxy != null)
                {
                    float oxygenCapacity = highCapOxygen.oxygenCapacity;
                    Log.LogDebug($"Found Oxygen component with capacity of {oxygenCapacity} for prefab HighCapacityTank and existing oxygen capacity of {oxy.oxygenCapacity} for prefab HighCapacityBooster.");
                    oxy.oxygenCapacity = oxygenCapacity;
                }
                else
                {
                    Log.LogError($"Could not get Oxygen component of SuitBoosterTank while generating HighCapacityBooster");
                }

                GameObject.Destroy(highCapOxygen);
            }
            else
            {
                Log.LogError($"Could not get Oxygen component of HighCapacityTank while generating HighCapacityBooster");
            }

            float oxyCap = prefab.GetComponent <Oxygen>().oxygenCapacity;

            Log.LogDebug($"GameObject created with oxygenCapacity of {oxyCap}");
            gameObject.Set(go);
        }
예제 #11
0
 private void Start()
 {
     character        = GetComponent <ThirdPersonController>();
     oxygen           = GetComponent <Oxygen>();
     CurrentHeartRate = 60;
     UIManager.HeartRateMonitor.SetHeartRate(CurrentHeartRate);
     targetHeartRate = relaxedTarget;
     isRelaxed       = true;
 }
예제 #12
0
        public void TestAsDouble()
        {
            var testInput00 = new Oxygen();
            var testInput01 = new Oxygen();

            BondFactory.CreateBond(testInput00, testInput01).AsDoubleBond();
            Assert.AreEqual(0, testInput00.CountValences);
            Assert.AreEqual(0, testInput01.CountValences);
        }
예제 #13
0
 public void OnCraftEnd(TechType techType)
 {
     this.techType = techType;
     this.oxygen   = base.GetComponent <Oxygen>();
     if (Main.config.bManualRefill)
     {
         this.oxygen.oxygenAvailable = this.oxygen.oxygenCapacity;
     }
 }
예제 #14
0
 void OnTriggerEnter2D(Collider2D other)
 {
     if (other.CompareTag("Player"))
     {
         Oxygen ox = other.GetComponent <Oxygen>();
         ox.RegainOxygen(oxygenRegain);
         Destroy(gameObject);
     }
 }
예제 #15
0
    public int compileScore()
    {
        Ox    = FindObjectOfType <Oxygen>();
        Score = Mathf.RoundToInt(Ox.oxygen * 100 + Collectables * 2000);

        Debug.Log(Score);

        return(Score);
    }
예제 #16
0
        static void Prefix(Oxygen __instance)
        {
            float capacity = Main.config.getTankCapacity(__instance.gameObject);

            if (capacity > 0)
            {
                __instance.oxygenCapacity = capacity;
            }
        }
예제 #17
0
 // Use this for initialization
 void Start()
 {
     if (theOxygen == null)
     {
         theOxygen = GameObject.Find("Player").GetComponent <Oxygen>();
     }
     maxOxygen     = theOxygen.maxOxygen;
     currentOxygen = theOxygen.oxygen;
 }
예제 #18
0
    // Start is called before the first frame update
    void Start()
    {
        originColor      = RenderSettings.fogColor;
        originFogDensity = RenderSettings.fogDensity;

        originDrag = 0;

        theOxygen               = FindObjectOfType <Oxygen>();
        theStatusController     = FindObjectOfType <StatusController>();
        theOxygen.CurrentOxygen = theOxygen.TotalOxygen;
    }
예제 #19
0
 /// <summary>
 /// Increase the Oxygen of this Player about the given amount.
 /// If the Oxygen is already on maxOxygen, this call is ignored.
 /// </summary>
 /// <param name="amount">Amount of Oxygen to add</param>
 public void IncreaseOxygen(Oxygen amount)
 {
     if (CurrentOxygen + amount <= MaxOxygen)
     {
         CurrentOxygen += amount;
     }
     else
     {
         CurrentOxygen = MaxOxygen;
     }
     OxygenLevelChanged?.Invoke(CurrentOxygen);
 }
        public static bool Prefix(Oxygen __instance, float __result, ref float amount)
        {
            var cleanAmount = Mathf.Min(amount, __instance.oxygenAvailable);

            float num = Mathf.Min(amount * HCPSettings.Instance.OxygenDrainMultiplier, __instance.oxygenAvailable);

            __instance.oxygenAvailable = Mathf.Max(0f, __instance.oxygenAvailable - num);

            __result = cleanAmount;

            return(false);
        }
예제 #21
0
 public void SwapHull(int index)
 {
     if (CurrentHull != null)
     {
         GameObject.Destroy(CurrentHull.gameObject);
     }
     CurrentHull = GameObject.Instantiate(Hulls[index], Vector3.zero, Quaternion.identity, transform).GetComponent <Hull>();
     CurrentHull.transform.localPosition = Vector3.zero;
     CurrentHull.transform.localRotation = Quaternion.identity;
     CurrentHull.HullIndex = index;
     Oxygen.RemoveOxygen(CurrentHull.OxygenCost);
 }
예제 #22
0
    IEnumerator Suppling(int amount = 1)
    {
        while (amount > 0)
        {
            yield return(time);

            tmp    = Instantiate(syc.Ox, syc.Spawn4).GetComponent <Oxygen>();
            tmp.H1 = Instantiate(syc.Hy, syc.Spawn1_1);
            tmp.H2 = Instantiate(syc.Hy, syc.Spawn1);
            tmp.check();
            amount--;
        }
    }
예제 #23
0
 /// <summary>
 /// Decrease the Oxygen of this Player about the given amount.
 /// If the Oxygen is 0 (or lower) IsAlive is set to false;
 /// </summary>
 /// <param name="amount">Amount of Oxygen to substract</param>
 public void DecreseOxygen(Oxygen amount)
 {
     if (CurrentOxygen > amount)
     {
         CurrentOxygen -= amount;
     }
     else
     {
         IsAlive       = false;
         CurrentOxygen = new Oxygen(0);
     }
     OxygenLevelChanged?.Invoke(CurrentOxygen);
 }
예제 #24
0
    void OnCollisionEnter(Collision collision)
    {
        var oof = collision.gameObject.GetComponentInChildren <IDamageDealer>();

        if (oof != null)
        {
            var armorMultiplier = GetComponentInChildren <Hull>().ArmorMultiplier;
            var dmg             = oof.Damage * armorMultiplier;
            Oxygen.RemoveOxygen(dmg);

            CameraShaker.Shake(dmg * 4f, dmg * 10f);
        }
    }
예제 #25
0
    // Use this for initialization
    public void NewGame()
    {
        oxygen = player.GetComponent <Oxygen>();
        energy = player.GetComponent <Energy>();

        gSpaceShip = GenInstanceOf(spaceship, spaceShipAmount);
        GenInstanceOf(stone1, stone1Amount);
        GenInstanceOf(stone2, stone2Amount);
        GenInstanceOf(cosmetic1, cosmetic1Amount);
        GenInstanceOf(cosmetic2, cosmetic2Amount);
        GenInstanceOf(enemy, enemyAmount);
        GenTrümmer();
    }
        public static SamplingItem CreateSamplingItem(string SamplingItemType)
        {
            SamplingItem item;

            if (SamplingItemType == "Opacity")
            {
                return(item = new Opacity());
            }
            else if (SamplingItemType == "SulfurDioxide")
            {
                return(item = new SulfurDioxide());
            }
            else if (SamplingItemType == "NitrogenOxides")
            {
                return(item = new NitrogenOxides());
            }
            else if (SamplingItemType == "CarbonMonoxide")
            {
                return(item = new CarbonMonoxide());
            }
            else if (SamplingItemType == "TotalReducedSulfur")
            {
                return(item = new TotalReducedSulfur());
            }
            else if (SamplingItemType == "HydrogenChloride")
            {
                return(item = new HydrogenChloride());
            }
            else if (SamplingItemType == "VolatileOrganicLiquid")
            {
                return(item = new VolatileOrganicLiquid());
            }
            else if (SamplingItemType == "Oxygen")
            {
                return(item = new Oxygen());
            }
            else if (SamplingItemType == "FlowRate")
            {
                return(item = new FlowRate());
            }
            else if (SamplingItemType == "Temperature")
            {
                return(item = new Temperature());
            }
            else
            {
                return(null);
            }

            // TODO: Fatory Pattern by C# Reflection with .NET Standard 2.0
        }
예제 #27
0
        internal void SetOverPowerCheat()
        {
            Oxygen o2 = Player.main.GetComponent <OxygenManager>().GetComponent <Oxygen>();

            Player.main.GetComponent <Survival>().SetPrivateField("kUpdateHungerInterval", hungerAndThristInterval);

            if (o2.isPlayer)
            {
                o2.oxygenCapacity = 45 * overPowerMultiplier;
            }

            Player.main.liveMixin.data.maxHealth = 100 * overPowerMultiplier;
            Player.main.liveMixin.health         = 100 * overPowerMultiplier;
        }
예제 #28
0
    public void Start()
    {
        _tempPhotos = new List <Progress.Fish>();

        _rb             = GetComponent <Rigidbody2D>();
        _trashCollector = GetComponent <TrashCollector>();
        _playerMovement = GetComponent <PlayerMovement>();
        _oxygen         = GetComponent <Oxygen>();
        _playerPhotos   = GetComponentInChildren <PlayerPhotos>();

        updateAllLevels();

        resetTransform();
    }
예제 #29
0
        public void TestPolarCovalent()
        {
            var testInput00 = new Oxygen();
            var testInput01 = new Hydrogen();

            var testOutput = BondFactory.CreateBond(testInput00, testInput01).GetBond <PolarCovalent>();

            Assert.IsNotNull(testOutput);
            var dipole = testOutput.DipoleVectorSize;

            Assert.IsTrue(dipole > 0D);

            Console.WriteLine(dipole);
        }
예제 #30
0
    public void death()
    {
        character = GameObject.FindWithTag("Player");
        player    = character.GetComponent("PlayerController") as PlayerController;

        oxygen = character.GetComponent("Oxygen") as Oxygen;

        oxygen.enabled = false;

        player.powerDown();

        player.isDead = true;

        //anim.SetBool("Is Dead", true);
    }
예제 #31
0
 void WorldSetup()
 {
     worldO2 = Oxygen.Moderate;
     worldClimate = Climate.Temperate;
     worldTemp = Temperature.Temperate;
 }