void OnTriggerEnter2D(Collider2D other) { if (other.gameObject.CompareTag(Tags.EnemyHitbox)) { CombatMusic.EnterCombat(); } }
void OnEnable() { if (cm == null) { cm = this; } SceneManager.sceneLoaded += OnSceneLoaded; }
public override void OnHit(Attack attack) { if (dead) { return; } CombatMusic.EnterCombat(); if (!canParry && invincible && !attack.attackerParent.CompareTag(Tags.EnviroDamage)) { return; } bool isEnvDmg = attack.attackerParent.CompareTag(Tags.EnviroDamage); if (isEnvDmg) { if (envDmgSusceptible) { OnEnviroDamage(attack.GetComponent<EnviroDamage>()); InterruptMeteor(); if (LayerMask.LayerToName(attack.attackerParent.gameObject.layer) == Layers.Water) { RefreshAirMovement(); } } } else if (canParry) { currentEnergy -= attack.GetDamage(); if (currentEnergy < 0) { AlerterText.Alert("PARRY BREAK"); Instantiate(shieldBreak, this.transform.position, shieldBreak.transform.rotation, null); } else { Parry(attack); return; } } CameraShaker.Shake(0.2f, 0.1f); StartCombatStanceCooldown(); DamageBy(attack); CancelInvoke("StartParryWindow"); if (this.currentHP == 0) return; if (isEnvDmg) return; StunFor(attack.stunLength); // asdi float actualSDIMultiplier = sdiMultiplier * (attack.gameObject.CompareTag(Tags.EnviroDamage) ? 0 : 1); rb2d.MovePosition(transform.position + ((Vector3) InputManager.MoveVector()*actualSDIMultiplier)); if (attack.knockBack) { Vector2 kv = attack.GetKnockback(); if (attack.knockbackAway) { kv = kv.magnitude * (transform.position - attack.transform.position).normalized; } if (!IsFacing(attack.gameObject)) ForceFlip(); rb2d.velocity = kv; } }
virtual public void DamageFor(int dmg) { CombatMusic.EnterCombat(); if (fakeDamage) { return; } OnDamage(); this.hp -= dmg; if (this.hp <= 0 && !dead) { Die(); } else { WhiteSprite(); } }
void OnEnable() { cm = this; musics = GameObject.FindObjectsOfType <AudioFade>().Where(x => x.combatMusic).ToList(); }