51 lines
1.4 KiB
C#
51 lines
1.4 KiB
C#
using Sirenix.OdinInspector;
|
|
using UnityEditor;
|
|
using UnityEngine;
|
|
using VOID.Generic.Dict;
|
|
using VOID.ScriptableObjects.Affiliation;
|
|
|
|
namespace VOID.Editor.EditorWindow.Affiliation
|
|
{
|
|
public record AffiliationEditorConflict
|
|
{
|
|
[ReadOnly]
|
|
[HorizontalGroup("faction1")]
|
|
public Faction faction1;
|
|
|
|
[ReadOnly]
|
|
[ShowInInspector]
|
|
[HideLabel]
|
|
[HorizontalGroup("faction1")]
|
|
public string faction1Attitude => faction1.GetAttitudeFor(faction2).ToString();
|
|
|
|
[ReadOnly]
|
|
[HorizontalGroup("faction2")]
|
|
public Faction faction2;
|
|
|
|
[ReadOnly]
|
|
[ShowInInspector]
|
|
[HideLabel]
|
|
[HorizontalGroup("faction2")]
|
|
public string faction2Attitude => faction2.GetAttitudeFor(faction1).ToString();
|
|
|
|
[GUIColor(nameof(GetResolveColor))]
|
|
[InlineButton(nameof(Resolve))]
|
|
public AttitudeType newAttitude;
|
|
|
|
private bool _resolved;
|
|
|
|
private void Resolve()
|
|
{
|
|
faction1.factionAttitudes[faction2] = newAttitude;
|
|
faction2.factionAttitudes[faction1] = newAttitude;
|
|
_resolved = true;
|
|
|
|
EditorUtility.SetDirty(faction1);
|
|
EditorUtility.SetDirty(faction2);
|
|
AssetDatabase.SaveAssets();
|
|
}
|
|
|
|
private Color GetResolveColor() => _resolved ? Color.green : Color.red;
|
|
|
|
}
|
|
} |