Добавил кнопку для продажи туррелей

This commit is contained in:
2026-05-12 08:11:05 +03:00
parent 77d903d146
commit bf9099c8b5
2 changed files with 100 additions and 4 deletions
+58
View File
@@ -1781,6 +1781,58 @@ PrefabInstance:
serializedVersion: 3 serializedVersion: 3
m_TransformParent: {fileID: 1789632538} m_TransformParent: {fileID: 1789632538}
m_Modifications: m_Modifications:
- target: {fileID: 3635012363401127766, guid: f87d5d34136775b41907fc1187ef4bc2, type: 3}
propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.size
value: 1
objectReference: {fileID: 0}
- target: {fileID: 3635012363401127766, guid: f87d5d34136775b41907fc1187ef4bc2, type: 3}
propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Mode
value: 1
objectReference: {fileID: 0}
- target: {fileID: 3635012363401127766, guid: f87d5d34136775b41907fc1187ef4bc2, type: 3}
propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[1].m_Mode
value: 1
objectReference: {fileID: 0}
- target: {fileID: 3635012363401127766, guid: f87d5d34136775b41907fc1187ef4bc2, type: 3}
propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Target
value:
objectReference: {fileID: 1311268619}
- target: {fileID: 3635012363401127766, guid: f87d5d34136775b41907fc1187ef4bc2, type: 3}
propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[1].m_Target
value:
objectReference: {fileID: 1311268619}
- target: {fileID: 3635012363401127766, guid: f87d5d34136775b41907fc1187ef4bc2, type: 3}
propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_CallState
value: 2
objectReference: {fileID: 0}
- target: {fileID: 3635012363401127766, guid: f87d5d34136775b41907fc1187ef4bc2, type: 3}
propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[1].m_CallState
value: 2
objectReference: {fileID: 0}
- target: {fileID: 3635012363401127766, guid: f87d5d34136775b41907fc1187ef4bc2, type: 3}
propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_MethodName
value: SelectDestroyTurret
objectReference: {fileID: 0}
- target: {fileID: 3635012363401127766, guid: f87d5d34136775b41907fc1187ef4bc2, type: 3}
propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[1].m_MethodName
value: DeselectTurret
objectReference: {fileID: 0}
- target: {fileID: 3635012363401127766, guid: f87d5d34136775b41907fc1187ef4bc2, type: 3}
propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_TargetAssemblyTypeName
value: TurretsShop, Assembly-CSharp
objectReference: {fileID: 0}
- target: {fileID: 3635012363401127766, guid: f87d5d34136775b41907fc1187ef4bc2, type: 3}
propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[1].m_TargetAssemblyTypeName
value: TurretsShop, Assembly-CSharp
objectReference: {fileID: 0}
- target: {fileID: 3635012363401127766, guid: f87d5d34136775b41907fc1187ef4bc2, type: 3}
propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Arguments.m_ObjectArgumentAssemblyTypeName
value: UnityEngine.Object, UnityEngine
objectReference: {fileID: 0}
- target: {fileID: 3635012363401127766, guid: f87d5d34136775b41907fc1187ef4bc2, type: 3}
propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[1].m_Arguments.m_ObjectArgumentAssemblyTypeName
value: UnityEngine.Object, UnityEngine
objectReference: {fileID: 0}
- target: {fileID: 4616868106249531007, guid: f87d5d34136775b41907fc1187ef4bc2, type: 3} - target: {fileID: 4616868106249531007, guid: f87d5d34136775b41907fc1187ef4bc2, type: 3}
propertyPath: m_Pivot.x propertyPath: m_Pivot.x
value: 0.5 value: 0.5
@@ -8268,6 +8320,12 @@ MonoBehaviour:
_onTurretDeselected: _onTurretDeselected:
m_PersistentCalls: m_PersistentCalls:
m_Calls: [] m_Calls: []
_onDestroyTurretSelected:
m_PersistentCalls:
m_Calls: []
_onDestroyTurretDeselected:
m_PersistentCalls:
m_Calls: []
--- !u!1 &1327644546 --- !u!1 &1327644546
GameObject: GameObject:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
+42 -4
View File
@@ -13,6 +13,8 @@ public class TurretsShop : MonoBehaviour
[SerializeField] private TurretShopItem[] _turretShopItems; [SerializeField] private TurretShopItem[] _turretShopItems;
[SerializeField] private UnityEvent<TurretShopItem> _onTurretSelected; [SerializeField] private UnityEvent<TurretShopItem> _onTurretSelected;
[SerializeField] private UnityEvent _onTurretDeselected; [SerializeField] private UnityEvent _onTurretDeselected;
[SerializeField] private UnityEvent _onDestroyTurretSelected;
[SerializeField] private UnityEvent _onDestroyTurretDeselected;
public event UnityAction<TurretShopItem> OnTurretSelected public event UnityAction<TurretShopItem> OnTurretSelected
{ {
@@ -26,17 +28,33 @@ public class TurretsShop : MonoBehaviour
remove => _onTurretDeselected.RemoveListener(value); remove => _onTurretDeselected.RemoveListener(value);
} }
public event UnityAction OnDestroyTurretSelected
{
add => _onDestroyTurretSelected.AddListener(value);
remove => _onDestroyTurretSelected.RemoveListener(value);
}
public event UnityAction OnDestroyTurretDeselected
{
add => _onDestroyTurretDeselected.AddListener(value);
remove => _onDestroyTurretDeselected.RemoveListener(value);
}
public IReadOnlyCollection<TurretShopItem> TurretShopItems => _turretShopItems; public IReadOnlyCollection<TurretShopItem> TurretShopItems => _turretShopItems;
private TurretShopItem _selectedTurret; private TurretShopItem _selectedTurret;
private bool _isTurretSelected = false; private bool _isTurretSelected = false;
private bool _isDestroySelected = false;
public void SelectTurret(TurretShopItem item) public void SelectTurret(TurretShopItem item)
{ {
_isTurretSelected = _wallet.Money >= item.Price; _isTurretSelected = _wallet.Money >= item.Price;
if (!_isTurretSelected) if (!_isTurretSelected)
return; return;
if (_isDestroySelected)
DeselectDestroyTurret();
_selectedTurret = item; _selectedTurret = item;
_onTurretSelected?.Invoke(item); _onTurretSelected?.Invoke(item);
} }
@@ -47,6 +65,21 @@ public class TurretsShop : MonoBehaviour
_onTurretDeselected?.Invoke(); _onTurretDeselected?.Invoke();
} }
public void SelectDestroyTurret()
{
if (_isTurretSelected)
DeselectTurret();
_isDestroySelected = true;
_onDestroyTurretSelected?.Invoke();
}
public void DeselectDestroyTurret()
{
_isDestroySelected = false;
_onDestroyTurretDeselected?.Invoke();
}
private void OnEnable() private void OnEnable()
{ {
_deselectAction.Enable(); _deselectAction.Enable();
@@ -68,7 +101,13 @@ public class TurretsShop : MonoBehaviour
_turretsHolder = transform; _turretsHolder = transform;
} }
private void DeselectActionPerformed(InputAction.CallbackContext _) => DeselectTurret(); private void DeselectActionPerformed(InputAction.CallbackContext _)
{
if (_isTurretSelected)
DeselectTurret();
else if (_isDestroySelected)
DeselectDestroyTurret();
}
private void OnBlockClicked(BlockScript block) private void OnBlockClicked(BlockScript block)
{ {
@@ -92,8 +131,7 @@ public class TurretsShop : MonoBehaviour
private void DestroyTurret(Turret turret) private void DestroyTurret(Turret turret)
{ {
// TODO: проверять нажата ли кнопку продажи туррелей if (turret == null || !_isDestroySelected)
if (turret == null)
return; return;
_wallet.AddMoney(Mathf.RoundToInt(turret.Price * _sellingCoefficient)); _wallet.AddMoney(Mathf.RoundToInt(turret.Price * _sellingCoefficient));