Files
Gnome-s-Bounty/Assets/Scripts/EnvironmentObjects/Chest.cs
T
vova 39e4e51866 Add player controller, state management, and input handling
- Implemented PlayerController.cs to manage player movement and actions.
- Created PlayerState.cs to track player lives, coins, and key status.
- Added CameraFollow.cs for smooth camera movement following the player.
- Developed Character.cs as an abstract class for character behavior.
- Introduced Enums.cs for defining TreasureType and MapElementType.
- Added IDoor interface for door interactions.
- Created InputActions.cs for handling player input actions.
- Implemented MainMenu.cs for basic menu functionality including play and exit options.
2026-06-17 22:43:59 +03:00

53 lines
1.5 KiB
C#

using UnityEngine;
public class Chest : MonoBehaviour
{
[SerializeField]
private Animator animator;
[SerializeField]
private TreasureSO _treasureSO;
private Transform _treasureObject;
private bool _isOpen = false;
private void Awake()
{
_treasureObject = transform.GetChild(1);
var spriteRenderer = _treasureObject.GetComponent<SpriteRenderer>();
spriteRenderer.sprite = _treasureSO.Image;
}
private void OnTriggerEnter2D(Collider2D collider)
{
var playerState = collider.GetComponent<PlayerState>();
if (playerState != null && !_isOpen)
{
_isOpen = true;
animator.SetTrigger("OpenChest");
switch (_treasureSO.Treasure)
{
case TreasureType.Coin:
playerState.AddCoin();
if (GameManager.Instance != null)
{
GameManager.Instance.AddTreasure(1);
}
break;
case TreasureType.Key:
playerState.SetKey();
if (GameManager.Instance != null)
{
GameManager.Instance.SetKeyState(true);
}
if (LevelManager.Instance != null)
{
LevelManager.Instance.NotifyKeyCollected();
}
break;
}
}
}
}