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();
}
}
}
}