using Platformer.Core; using Platformer.Mechanics; using Platformer.Model; using UnityEngine; using static Platformer.Core.Simulation; namespace Platformer.Gameplay { /// /// Fired when a Player collides with an Enemy. /// /// public class PlayerEnemyCollision : Simulation.Event { public EnemyController enemy; public PlayerController player; PlatformerModel model = Simulation.GetModel(); public override void Execute() { var willHurtEnemy = player.Bounds.center.y >= enemy.Bounds.max.y; if (willHurtEnemy) { var enemyHealth = enemy.GetComponent(); if (enemyHealth != null) { enemyHealth.Decrement(); if (!enemyHealth.IsAlive) { Schedule().enemy = enemy; player.Bounce(2); } else { player.Bounce(7); } } else { Schedule().enemy = enemy; player.Bounce(2); } } else { Schedule(); } } } }