Ejemplo n.º 1
0
        public void PlayerDamaged(On.HeroController.orig_TakeDamage orig, HeroController self, GameObject go, CollisionSide damageSide, int damageAmount, int hazardType)
        {
            Log("it f*****g hurts oh god oh f**k");
            if (go.name.Contains("Gas Explosion") && PlayerData.instance.equippedCharm_5)
            {
                Log("negating bomb damage weary");
                //TODO: remove this because it sometimes causes the player to still receive damage when rocket jumping
                if (!heroDamageCoroutineActive)
                {
                    heroDamageCoroutineActive = true;
                    StartCoroutine(RocketJump(go));
                    //HeroController.instance.GetAttr<HeroAudioController>("audioCtrl").PlaySound(GlobalEnums.HeroSounds.TAKE_HIT);
                    //GameObject takeDam = HeroController.instance.GetAttr<GameObject>("takeHitDoublePrefab");
                    //Instantiate(takeDam, HeroController.instance.transform.position, Quaternion.identity).SetActive(true);
                    orig(self, go, damageSide, 0, hazardType);
                    return;
                }
            }
            //Adrenaline from fragile heart

            if (!Stats.hasActivatedAdrenaline && (PlayerData.instance.health <= damageAmount + 1) && PlayerData.instance.equippedCharm_27)
            {
                Stats.hasActivatedAdrenaline = true;
                HeroController.instance.AddMPCharge(99);
                orig(self, go, damageSide, 0, hazardType);
                return;
            }
            else if (!Stats.hasActivatedAdrenaline && (PlayerData.instance.health <= damageAmount + 1))
            {
                LoadAssets.sfxDictionary.TryGetValue("focussound.wav", out AudioClip ac);
                AudioSource aud = healSoundGO.GetComponent <AudioSource>();
                aud.PlayOneShot(ac);

                GameObject artChargeFlash = Instantiate(HeroController.instance.artChargedFlash, HeroController.instance.transform.position, Quaternion.identity);
                artChargeFlash.SetActive(true);
                artChargeFlash.transform.SetParent(HeroController.instance.transform);
                Destroy(artChargeFlash, 0.5f);

                GameObject dJumpFlash = Instantiate(HeroController.instance.dJumpFlashPrefab, HeroController.instance.transform.position, Quaternion.identity);
                dJumpFlash.SetActive(true);
                dJumpFlash.transform.SetParent(HeroController.instance.transform);
                Destroy(dJumpFlash, 0.5f);

                Stats.hasActivatedAdrenaline = true;

                HeroController.instance.AddHealth(3);
                orig(self, go, damageSide, 0, hazardType);
                return;
            }
            else if (PlayerData.instance.equippedCharm_6)
            {
                orig(self, go, damageSide, damageAmount * 2, hazardType);
                return;
            }



            orig(self, go, damageSide, damageAmount, hazardType);
        }
Ejemplo n.º 2
0
        private void OnTakeDamage(On.HeroController.orig_TakeDamage orig, HeroController hc, GameObject go,
                                  CollisionSide damageSide, int damageAmount, int hazardType)
        {
            int old_health = PlayerData.instance.health;

            orig(hc, go, damageSide, damageAmount, hazardType);

            // OnTakeDamage is called even when the player has iframes.
            // And it is called a LOT, so to avoid spamming the server, we check if the health changed before sending.
            if (PlayerData.instance.health != old_health)
            {
                Log("Took Damage: " + PlayerData.instance.health + " " + PlayerData.instance.maxHealth);
                ClientSend.HealthUpdated(PlayerData.instance.health, PlayerData.instance.maxHealth, PlayerData.instance.healthBlue);
            }
        }
Ejemplo n.º 3
0
        public void PlayerDamaged(On.HeroController.orig_TakeDamage orig, HeroController self, GameObject go, CollisionSide damageSide, int damageAmount, int hazardType)
        {
            //Log("it f*****g hurts oh god oh f**k damage dealt " + damageAmount);
            if (go.name.Contains("Gas Explosion") && PlayerData.instance.equippedCharm_5)
            {
                Log("negating bomb damage weary");
                orig(self, go, damageSide, damageAmount * 0, hazardType);
                return;
            }

            if (damageAmount > 0)
            {
                Stats.instance.TakeAdrenalineEnergyDamage(damageAmount);
            }

            orig(self, go, damageSide, damageAmount, hazardType);
        }