TH1/Unity/Assets/Scripts/TH1_DataAssetsScript/DiplomacyDataAssets.cs
2025-08-26 21:49:00 +08:00

83 lines
2.3 KiB
C#

using System;
using System.Collections.Generic;
using System.Diagnostics;
using UnityEngine;
using RuntimeData;
using Logic.Multilingual;
[Serializable]
[CreateAssetMenu(fileName = "DiplomacyDataAssets", menuName = "TH1 Game Data/Diplomacy Data Asset")]
public class DiplomacyDataAssets : ScriptableObject
{
[MultilingualField] public string NoMeetText;
[MultilingualField] public string DiplomacyUITitle;
[MultilingualField] public string DiplomacyUITitleSelf;
[MultilingualField] public string DiplomacyUIOtherRelationTitle;
public List<DiplomacyStateInfo> DiplomacyStateInfoList;
public List<FeelingStateInfo> FeelingStateInfoList;
public List<FeelingStrategyInfo> FeelingStrategyInfoList;
public bool GetStateInfo(DiplomacyState state,out DiplomacyStateInfo info)
{
foreach(var t in DiplomacyStateInfoList)
if (state == t.DiplomacyState)
{
info = t;
return true;
}
info = null;
return false;
}
public bool GetFeelingInfo(FeelingState state,out FeelingStateInfo info)
{
foreach(var t in FeelingStateInfoList)
if (state == t.FeelingState)
{
info = t;
return true;
}
info = null;
return false;
}
public bool GetFeelingStragegyInfo(FeelingStrategy feelingStrategy,out FeelingStrategyInfo info)
{
foreach(var t in FeelingStrategyInfoList)
if (feelingStrategy == t.FeelingStrategy)
{
info = t;
return true;
}
info = null;
return false;
}
}
[Serializable]
public class DiplomacyStateInfo
{
public DiplomacyState DiplomacyState;
[MultilingualField] public string stateText;
public Color stateColor;
public Material stateBGMat;
}
[Serializable]
public class FeelingStateInfo
{
public FeelingState FeelingState;
[MultilingualField] public string feelingText;
public Color feelingColor;
}
[Serializable]
public class FeelingStrategyInfo
{
public FeelingStrategy FeelingStrategy;
[MultilingualField] public string FeelingStrategyTitle;
[MultilingualField] public string FeelingStrategyDesc;
public Color FeelingStrategyColor;
}