62 lines
2.0 KiB
C#
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);
|
|
}
|
|
}
|
|
}
|
|
} |