Esempio n. 1
0
 void OnTriggerEnter2D(Collider2D other)
 {
     if (other.gameObject.CompareTag(Tags.EnemyHitbox))
     {
         CombatMusic.EnterCombat();
     }
 }
Esempio n. 2
0
 void OnEnable()
 {
     if (cm == null)
     {
         cm = this;
     }
     SceneManager.sceneLoaded += OnSceneLoaded;
 }
Esempio n. 3
0
	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;
		}
	}
Esempio n. 4
0
 virtual public void DamageFor(int dmg)
 {
     CombatMusic.EnterCombat();
     if (fakeDamage)
     {
         return;
     }
     OnDamage();
     this.hp -= dmg;
     if (this.hp <= 0 && !dead)
     {
         Die();
     }
     else
     {
         WhiteSprite();
     }
 }
Esempio n. 5
0
 void OnEnable()
 {
     cm     = this;
     musics = GameObject.FindObjectsOfType <AudioFade>().Where(x => x.combatMusic).ToList();
 }