Files
2026-07-09 21:33:33 +02:00

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;
}
}