Подробные изменения: - Расширен основной gameplay loop: джетпак, новые платформы, оборудование, враги, прогрессия сложности и ограничения взаимодействий игрока. - Добавлены Bootstrap-сервисы запуска приложения, защита, фокус окна, управление курсором и настройки сервисов через DI. - Добавлена COM-интеграция с технической схемой Input System, обработкой кнопок/ADC, подсветкой и консольной диагностикой. - Добавлен отдельный debug/logging модуль с каналами, обработчиками консоли и файловым выводом. - Добавлены asmdef, link.xml, EditMode/PlayMode тесты и обновлена дорожная карта проекта. Проверки: - dotnet build .\\DanroJump.Runtime.csproj --no-restore - dotnet build .\\DanroJump.Tests.EditMode.csproj --no-restore - dotnet build .\\DanroJump.Tests.PlayMode.csproj --no-restore
37 lines
1.2 KiB
C#
37 lines
1.2 KiB
C#
using UnityEngine;
|
|
|
|
namespace DanroJump.Gameplay
|
|
{
|
|
/// <summary>
|
|
/// Опасное оборудование платформы, которое убивает игрока при контакте.
|
|
/// </summary>
|
|
public sealed class HazardEquipment : PlatformEquipmentBase
|
|
{
|
|
[SerializeField] [Min(0f)] private float activationCooldown = 0.2f;
|
|
|
|
private float lastActivationTime = -999f;
|
|
|
|
/// <summary>
|
|
/// Сбрасывает cooldown при переиспользовании оборудования.
|
|
/// </summary>
|
|
public override void ResetEquipment()
|
|
{
|
|
lastActivationTime = -999f;
|
|
}
|
|
|
|
/// <summary>
|
|
/// Убивает игрока, если контакт не находится внутри cooldown.
|
|
/// </summary>
|
|
public override void HandlePlayerContact(JumpPlayerController player, Component source)
|
|
{
|
|
if (player == null || player.IgnoresEnvironmentInteractions || Time.time - lastActivationTime < activationCooldown)
|
|
{
|
|
return;
|
|
}
|
|
|
|
lastActivationTime = Time.time;
|
|
player.Kill();
|
|
}
|
|
}
|
|
}
|