Files
Cielonos/Assets/Scripts/MainGame/Characters/Player/Inventory/PlayerEquipmentSubmodule.cs
SoulliesOfficial 2a2aa728d5 切换主武器
2025-12-23 19:47:06 -05:00

62 lines
2.0 KiB
C#

using System.Collections.Generic;
using Cielonos.MainGame.Inventory;
using Cielonos.UI;
using UnityEngine;
namespace Cielonos.MainGame.Characters
{
public class PlayerEquipmentSubmodule : SubmoduleBase<PlayerInventorySubcontroller>
{
public List<MainWeaponBase> preparedMainWeapons;
public MainWeaponBase currentMainWeapon;
public PlayerEquipmentSubmodule(PlayerInventorySubcontroller owner) : base(owner)
{
preparedMainWeapons = new List<MainWeaponBase>();
foreach (MainWeaponBase mainWeapon in owner.backpack.mainWeapons)
{
ObtainMainWeapon(mainWeapon);
}
EquipMainWeapon(preparedMainWeapons[0]);
}
public void ObtainMainWeapon(MainWeaponBase newWeapon)
{
if (!preparedMainWeapons.Contains(newWeapon))
{
preparedMainWeapons.Add(newWeapon);
newWeapon.Initialize();
}
}
public void EquipMainWeapon(MainWeaponBase newWeapon)
{
currentMainWeapon = newWeapon;
currentMainWeapon.OnEquipped();
currentMainWeapon.RegisterFullBodyFuncAnims();
PlayerCanvas.Instance.mainWeaponUIArea.Initialize(currentMainWeapon);
}
public void RemoveMainWeapon()
{
Debug.Log("Unequipping main weapon: " + currentMainWeapon);
currentMainWeapon.OnUnequipped();
currentMainWeapon = null;
}
public void DiscardMainWeapon(MainWeaponBase weaponToDiscard)
{
if (preparedMainWeapons.Contains(weaponToDiscard))
{
if (currentMainWeapon == weaponToDiscard)
{
RemoveMainWeapon();
}
preparedMainWeapons.Remove(weaponToDiscard);
Object.Destroy(weaponToDiscard);
}
}
}
}