diff --git a/Assets/_DDD/_Scripts/Restaurant/Character/AI/Common/BlackboardSO.cs b/Assets/_DDD/_Scripts/Restaurant/Character/AI/Common/BlackboardSO.cs index a4c8b5323..45e6e6ce1 100644 --- a/Assets/_DDD/_Scripts/Restaurant/Character/AI/Common/BlackboardSO.cs +++ b/Assets/_DDD/_Scripts/Restaurant/Character/AI/Common/BlackboardSO.cs @@ -22,7 +22,7 @@ public SharedVariable GetVariable(T key) return null; } - public void SetVariable(T key, T1 value) + public virtual void SetVariable(T key, T1 value) { var outVariable = GetVariable(key); if (outVariable != null) diff --git a/Assets/_DDD/_Scripts/Restaurant/Character/AI/Customer/CustomerBlackboardSo.cs b/Assets/_DDD/_Scripts/Restaurant/Character/AI/Customer/CustomerBlackboardSo.cs index 51919eaad..057d180a3 100644 --- a/Assets/_DDD/_Scripts/Restaurant/Character/AI/Customer/CustomerBlackboardSo.cs +++ b/Assets/_DDD/_Scripts/Restaurant/Character/AI/Customer/CustomerBlackboardSo.cs @@ -7,6 +7,43 @@ namespace DDD.Restaurant [Serializable] public class CustomerBlackboardSo : BlackboardSo { - + public GameObject SelfGameObject; + public string CustomerDataId; + public GameObject CurrentTargetGameObject; + public EmotionType SatisfactionLevel; + public int CumulativeOrderCount; + public float MaxPatienceTime; + public float RemainingPatienceTime; + + public override void SetVariable(RestaurantCustomerBlackboardKey key, T1 value) + { + base.SetVariable(key, value); + switch (key) + { + case RestaurantCustomerBlackboardKey.SelfGameObject: + SelfGameObject = value as GameObject; + break; + case RestaurantCustomerBlackboardKey.CustomerDataId: + CustomerDataId = value as string; + break; + case RestaurantCustomerBlackboardKey.CurrentTargetGameObject: + CurrentTargetGameObject = value as GameObject; + break; + case RestaurantCustomerBlackboardKey.SatisfactionLevel: + SatisfactionLevel = (EmotionType)(object)value; + break; + case RestaurantCustomerBlackboardKey.CumulativeOrderCount: + CumulativeOrderCount = (int)(object)value; + break; + case RestaurantCustomerBlackboardKey.MaxPatienceTime: + MaxPatienceTime = (float)(object)value; + break; + case RestaurantCustomerBlackboardKey.RemainingPatienceTime: + RemainingPatienceTime = (float)(object)value; + break; + default: + throw new ArgumentOutOfRangeException(nameof(key), key, null); + } + } } } \ No newline at end of file diff --git a/Assets/_DDD/_Scripts/Restaurant/Character/Interfaces/ICustomerBlackboard.cs b/Assets/_DDD/_Scripts/Restaurant/Character/Interfaces/ICustomerBlackboard.cs index e88fc8167..44b4d0ffe 100644 --- a/Assets/_DDD/_Scripts/Restaurant/Character/Interfaces/ICustomerBlackboard.cs +++ b/Assets/_DDD/_Scripts/Restaurant/Character/Interfaces/ICustomerBlackboard.cs @@ -1,3 +1,5 @@ +using System; +using System.Collections.Generic; using UnityEngine; namespace DDD