This commit is contained in:
Vladimir Koshevarov
2022-10-18 16:58:28 +03:00
7 changed files with 59 additions and 14 deletions
+1 -1
View File
@@ -1,6 +1,6 @@
namespace Assets.Scripts.Actions
{
public class Eat : BaseAction
public class Eat : BaseAction, ISellableItem
{
private double _price;
private int _energyPerTick;
+8
View File
@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 75ecd68a88c4c904393604b692b01a43
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
@@ -0,0 +1,8 @@
namespace Assets.Scripts.Actions.Interfaces
{
internal interface ISellableItem
{
public double Cost { get; }
}
}
@@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: 11ca03325bf76704b91eb2f9b2fafec9
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
@@ -42,7 +42,20 @@ public class ChoiceController : MonoBehaviour
public void MakeChoice()
{
playerController.TryBuyAction(_option.Value);
conversationChangeEvent.Invoke(_option.Value);
if (playerController.TryBuyAction(_option.Value))
{
conversationChangeEvent.Invoke(_option.Value);
}
else
{
YesNoDialogUI.Instance.ShowQuestion("not enouth money",
() =>
{
},
() =>
{
//do nothing
});
}
}
}
+9 -5
View File
@@ -1,6 +1,3 @@
using Assets.Scripts.Actions;
using UnityEngine;
public class PlayerController : MonoBehaviour
{
public Stat money = new Stat("Money", 100.00);
@@ -47,7 +44,7 @@ public class PlayerController : MonoBehaviour
// Start is called before the first frame update
void Start()
{
_moneyText.text = $"Money: {money.Value}$";
}
// Update is called once per frame
@@ -62,9 +59,16 @@ public class PlayerController : MonoBehaviour
Clock = 24;
}
public void TryBuyAction(BaseAction action)
public bool TryBuyAction(BaseAction action)
{
if (action is ISellableItem)
{
if (!money.deduct(((ISellableItem)action).Cost))
return false;
_moneyText.text = $"Money: {money.Value}$";
}
action.ApplyAction(this);
return true;
}
}