Drop item
This commit is contained in:
@@ -2,17 +2,17 @@
|
||||
namespace GameJamDungeon;
|
||||
|
||||
using Chickensoft.AutoInject;
|
||||
using Chickensoft.Collections;
|
||||
using Chickensoft.GodotNodeInterfaces;
|
||||
using Chickensoft.Introspection;
|
||||
using Godot;
|
||||
using System;
|
||||
|
||||
public interface IGame : IProvide<IGameRepo>, IProvide<IGameEventDepot>, IProvide<IGame>, INode3D
|
||||
{
|
||||
event Game.StatRaisedAlertEventHandler StatRaisedAlert;
|
||||
|
||||
public IPlayer Player { get; }
|
||||
|
||||
public void DropItem(IInventoryItem item);
|
||||
}
|
||||
|
||||
[Meta(typeof(IAutoNode))]
|
||||
@@ -130,12 +130,19 @@ public partial class Game : Node3D, IGame
|
||||
Player.MinimapButtonHeld += Player_MinimapButtonHeld;
|
||||
Player.PauseButtonPressed += Player_PauseButtonPressed;
|
||||
|
||||
GameRepo.PlayerData.Inventory.EquippedItem += Inventory_EquippedItem;
|
||||
|
||||
GameEventDepot.EnemyDefeated += OnEnemyDefeated;
|
||||
GameEventDepot.RestorativePickedUp += GameEventDepot_RestorativePickedUp;
|
||||
}
|
||||
|
||||
public void DropItem(IInventoryItem item)
|
||||
{
|
||||
var droppedScene = GD.Load<PackedScene>("res://src/items/dropped/DroppedItem.tscn");
|
||||
var dropped = droppedScene.Instantiate<DroppedItem>();
|
||||
dropped.Item = item;
|
||||
AddChild(dropped);
|
||||
dropped.Drop();
|
||||
}
|
||||
|
||||
private void OnEnemyDefeated(Vector3 vector, EnemyStatResource resource)
|
||||
{
|
||||
var restorativeScene = GD.Load<PackedScene>("res://src/items/restorative/Restorative.tscn");
|
||||
@@ -144,11 +151,6 @@ public partial class Game : Node3D, IGame
|
||||
restorative.GlobalPosition = vector;
|
||||
}
|
||||
|
||||
private void Inventory_EquippedItem()
|
||||
{
|
||||
GameEventDepot.OnEquippedItem();
|
||||
}
|
||||
|
||||
private void UseTeleportPrompt_CloseTeleportPrompt()
|
||||
{
|
||||
GameLogic.Input(new GameLogic.Input.HideAskForTeleport());
|
||||
|
||||
@@ -26,11 +26,23 @@ namespace GameJamDungeon
|
||||
event Action? MenuBackedOut;
|
||||
public void OnMenuBackedOut();
|
||||
|
||||
event Action? EquippedItem;
|
||||
public void OnEquippedItem();
|
||||
event Action<Weapon>? EquippedWeapon;
|
||||
public void OnEquippedWeapon(Weapon equippedWeapon);
|
||||
|
||||
event Action? UnequippedItem;
|
||||
public void OnUnequippedItem();
|
||||
event Action? UnequippedWeapon;
|
||||
public void OnUnequippedWeapon();
|
||||
|
||||
event Action<Armor>? EquippedArmor;
|
||||
public void OnEquippedArmor(Armor equippedArmor);
|
||||
|
||||
event Action? UnequippedArmor;
|
||||
public void OnUnequippedArmor();
|
||||
|
||||
event Action<Accessory>? EquippedAccessory;
|
||||
public void OnEquippedAccessory(Accessory equippedAccessory);
|
||||
|
||||
event Action? UnequippedAccessory;
|
||||
public void OnUnequippedAccessory();
|
||||
|
||||
event Action? InventorySorted;
|
||||
public void OnInventorySorted();
|
||||
@@ -57,8 +69,12 @@ namespace GameJamDungeon
|
||||
|
||||
public event Action? MenuScrolled;
|
||||
public event Action? MenuBackedOut;
|
||||
public event Action? EquippedItem;
|
||||
public event Action? UnequippedItem;
|
||||
public event Action<Weapon>? EquippedWeapon;
|
||||
public event Action? UnequippedWeapon;
|
||||
public event Action<Armor>? EquippedArmor;
|
||||
public event Action? UnequippedArmor;
|
||||
public event Action<Accessory>? EquippedAccessory;
|
||||
public event Action? UnequippedAccessory;
|
||||
public event Action? InventorySorted;
|
||||
public event Action<ConsumableItemStats>? HealingItemConsumed;
|
||||
public event Action<Restorative>? RestorativePickedUp;
|
||||
@@ -74,8 +90,16 @@ namespace GameJamDungeon
|
||||
|
||||
public void OnMenuScrolled() => MenuScrolled?.Invoke();
|
||||
public void OnMenuBackedOut() => MenuBackedOut?.Invoke();
|
||||
public void OnEquippedItem() => EquippedItem?.Invoke();
|
||||
public void OnUnequippedItem() => UnequippedItem?.Invoke();
|
||||
|
||||
public void OnEquippedWeapon(Weapon equippedWeapon) => EquippedWeapon?.Invoke(equippedWeapon);
|
||||
public void OnUnequippedWeapon() => UnequippedWeapon?.Invoke();
|
||||
|
||||
public void OnEquippedArmor(Armor equippedArmor) => EquippedArmor?.Invoke(equippedArmor);
|
||||
public void OnUnequippedArmor() => UnequippedArmor?.Invoke();
|
||||
|
||||
public void OnEquippedAccessory(Accessory equippedAccessory) => EquippedAccessory?.Invoke(equippedAccessory);
|
||||
public void OnUnequippedAccessory() => UnequippedAccessory?.Invoke();
|
||||
|
||||
public void OnInventorySorted() => InventorySorted?.Invoke();
|
||||
public void OnHealingItemConsumed(ConsumableItemStats item) => HealingItemConsumed?.Invoke(item);
|
||||
public void OnRestorativePickedUp(Restorative restorative) => RestorativePickedUp?.Invoke(restorative);
|
||||
|
||||
@@ -1,15 +1,15 @@
|
||||
@startuml GameLogic
|
||||
state "GameLogic State" as GameJamDungeon_GameLogic_State {
|
||||
state "Quit" as GameJamDungeon_GameLogic_State_Quit
|
||||
state "GameStarted" as GameJamDungeon_GameLogic_State_GameStarted
|
||||
state "Playing" as GameJamDungeon_GameLogic_State_Playing {
|
||||
state "MinimapOpen" as GameJamDungeon_GameLogic_State_MinimapOpen
|
||||
state "Resuming" as GameJamDungeon_GameLogic_State_Resuming
|
||||
state "AskForTeleport" as GameJamDungeon_GameLogic_State_AskForTeleport
|
||||
state "Paused" as GameJamDungeon_GameLogic_State_Paused
|
||||
state "FloorClearedDecisionState" as GameJamDungeon_GameLogic_State_FloorClearedDecisionState
|
||||
state "InventoryOpened" as GameJamDungeon_GameLogic_State_InventoryOpened
|
||||
state "MinimapOpen" as GameJamDungeon_GameLogic_State_MinimapOpen
|
||||
state "Paused" as GameJamDungeon_GameLogic_State_Paused
|
||||
state "Resuming" as GameJamDungeon_GameLogic_State_Resuming
|
||||
}
|
||||
state "GameStarted" as GameJamDungeon_GameLogic_State_GameStarted
|
||||
state "Quit" as GameJamDungeon_GameLogic_State_Quit
|
||||
}
|
||||
|
||||
GameJamDungeon_GameLogic_State_AskForTeleport --> GameJamDungeon_GameLogic_State_FloorClearedDecisionState : FloorExitReached
|
||||
|
||||
Reference in New Issue
Block a user