Интерфейс, конфиги камер

This commit is contained in:
ThomasCharester committed 2025-11-23 00:51:58 +03:00
1 parent efad72b4d9
commit e5f4f292c2
66 files changed
+11465 -9059

No files matched your search

@@ -2,19 +2,24 @@ namespace Code.Gameplay.Orders.Order
{
public interface IOrderService
{
delegate void OrderFailureDelegate();
delegate void OrderProgressDelegate(float time);
event OrderProgressDelegate OnOrderGiven;
event OrderProgressDelegate OnOrderRecieved;
event OrderFailureDelegate OnOrderFailure;
delegate void OrderDeliveredDelegate(int score, float time);
event OrderDeliveredDelegate OnOrderDelivered;
OrderState OrderState { get; }
float DeliveryTimer { get; }
void RoomPassed();
float DecreaseTimer(float delta);
void DecreaseTimer(float delta);
void OrderGive();
void OrderRecieved();
void OrderDelivered();
void OrderFailed();
}
}
@@ -11,7 +11,7 @@ namespace Code.Gameplay.Orders.Order
{
[Inject] private IOrderService _orderService;
public Rigidbody rigidbody;
[SerializeField] private bool _pickupMode;
private bool _pickupMode;
// [SerializeField] private AnimationCurve debugCurve;
//DEBUG
@@ -41,9 +41,7 @@ namespace Code.Gameplay.Orders.Order
public async UniTaskVoid SwitchMode()
{
Debug.LogWarning("Activating");
await UniTask.WaitForSeconds(_activationTime);
Debug.LogWarning("Available");
_pickupMode = true;
rigidbody.isKinematic = true;
_capturedPosition = transform.position;
@@ -62,7 +60,6 @@ namespace Code.Gameplay.Orders.Order
if (_timeForMoving > _curveLength) _timeForMoving = 0;
transform.position = _capturedPosition + new Vector3(0, _floatingCurve.Evaluate(_timeForMoving), 0);
Debug.Log(transform.position);
}
}
}
@@ -1,6 +1,6 @@
using Code.Audio;
using Code.Configs;
using UnityEngine;
using Random = UnityEngine.Random;
namespace Code.Gameplay.Orders.Order
{
@@ -9,16 +9,18 @@ namespace Code.Gameplay.Orders.Order
public event IOrderService.OrderProgressDelegate OnOrderGiven;
public event IOrderService.OrderProgressDelegate OnOrderRecieved;
public event IOrderService.OrderDeliveredDelegate OnOrderDelivered;
public event IOrderService.OrderFailureDelegate OnOrderFailure;
private OrderState _orderState;
public OrderState OrderState => _orderState;
private float _deliveryTimer = 0.0f;
private float _deliveryTimer;
public float DeliveryTimer => _deliveryTimer;
private Vector2 _timeBounds;
private float _koefRooms, _koefOvertime;
private int _roomsPassed;
private int _roomsPassed;
public OrderService(OrderServiceConfig config)
{
@@ -30,11 +32,8 @@ namespace Code.Gameplay.Orders.Order
}
public void RoomPassed() => _roomsPassed++;
public float DecreaseTimer(float delta)
{
return _deliveryTimer -= delta;
}
public void DecreaseTimer(float delta) => _deliveryTimer -= delta;
public void OrderGive()
{
_orderState = OrderState.Given;
@@ -49,9 +48,16 @@ namespace Code.Gameplay.Orders.Order
_orderState = OrderState.Recieved;
OnOrderRecieved?.Invoke(_deliveryTimer);
}
public void OrderFailed() => OnOrderFailure?.Invoke();
public void OrderDelivered()
{
if (_orderState != OrderState.Recieved)
{
OnOrderFailure?.Invoke();
return;
}
_orderState = OrderState.Delivered;
int score = (int)(_koefRooms * _roomsPassed + _deliveryTimer * _koefOvertime);