forked from Shardstone/trail-into-darkness
some work on wiring in the encounters
This commit is contained in:
@@ -1,9 +1,11 @@
|
|||||||
using TMPro;
|
using TMPro;
|
||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
|
using UnityEngine.UI;
|
||||||
|
|
||||||
namespace Nox.Game {
|
namespace Nox.Game {
|
||||||
public class AnswerPrefab : MonoBehaviour {
|
public class AnswerReference : MonoBehaviour {
|
||||||
public TextMeshProUGUI number;
|
public TextMeshProUGUI number;
|
||||||
public TextMeshProUGUI dialogText;
|
public TextMeshProUGUI dialogText;
|
||||||
|
public Button button;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -8,11 +8,13 @@ namespace Nox.Game {
|
|||||||
private readonly EncounterRegistry encounterRegistry;
|
private readonly EncounterRegistry encounterRegistry;
|
||||||
private readonly EncounterView encounterView;
|
private readonly EncounterView encounterView;
|
||||||
private string previousZoneId;
|
private string previousZoneId;
|
||||||
|
private IEncounter activeEncounter;
|
||||||
|
|
||||||
public EncounterHandler(ZoneSystem zoneSystem, EncounterRegistry encounterRegistry, EncounterPrefabs encounterPrefabs) {
|
public EncounterHandler(ZoneSystem zoneSystem, EncounterRegistry encounterRegistry, EncounterPrefabs encounterPrefabs) {
|
||||||
this.zoneSystem = zoneSystem;
|
this.zoneSystem = zoneSystem;
|
||||||
this.encounterRegistry = encounterRegistry;
|
this.encounterRegistry = encounterRegistry;
|
||||||
encounterView = new EncounterView(encounterPrefabs);
|
encounterView = new EncounterView(encounterPrefabs);
|
||||||
|
encounterView.OptionSelected += OnOptionSelected;
|
||||||
}
|
}
|
||||||
|
|
||||||
public bool AskForRandomEncounter(ZoneContext zoneContext, string encounterTableId, out IEncounter encounter) {
|
public bool AskForRandomEncounter(ZoneContext zoneContext, string encounterTableId, out IEncounter encounter) {
|
||||||
@@ -37,15 +39,16 @@ namespace Nox.Game {
|
|||||||
var shouldTrigger = randomChance <= zoneContext.finalEncounterChance;
|
var shouldTrigger = randomChance <= zoneContext.finalEncounterChance;
|
||||||
|
|
||||||
if(!shouldTrigger) {
|
if(!shouldTrigger) {
|
||||||
|
Debug.Log($"Rolled for encounter '{encounterTableId}': {randomChance:F2}/{zoneContext.finalEncounterChance:F2} -> none");
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(encounterKind == null) {
|
encounter = encounterKind == null
|
||||||
encounter = encounterRegistry.GetRandomEncounter(encounterTableId);
|
? encounterRegistry.GetRandomEncounter(encounterTableId)
|
||||||
return encounter != null;
|
: encounterRegistry.GetRandomEncounter(encounterTableId, encounterKind);
|
||||||
}
|
|
||||||
|
|
||||||
encounter = encounterRegistry.GetRandomEncounter(encounterTableId, encounterKind);
|
var resultName = encounter?.EncounterDefinition?.name ?? "none";
|
||||||
|
Debug.Log($"Rolled for encounter '{encounterTableId}': {randomChance:F2}/{zoneContext.finalEncounterChance:F2} -> {resultName}");
|
||||||
return encounter != null;
|
return encounter != null;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -76,12 +79,56 @@ namespace Nox.Game {
|
|||||||
case CombatKind:
|
case CombatKind:
|
||||||
return;
|
return;
|
||||||
default:
|
default:
|
||||||
|
activeEncounter = encounter;
|
||||||
encounterView?.SetCurrentEncounter(encounter);
|
encounterView?.SetCurrentEncounter(encounter);
|
||||||
encounterView?.Show();
|
encounterView?.Show();
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void OnOptionSelected(int optionIndex) {
|
||||||
|
if(activeEncounter == null) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
var options = activeEncounter.EncounterDialogOptionSet?.options;
|
||||||
|
if(options == null || optionIndex < 0 || optionIndex >= options.Count) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
ResolveOption(activeEncounter, options[optionIndex]);
|
||||||
|
encounterView?.Hide();
|
||||||
|
activeEncounter = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void ResolveOption(IEncounter encounter, EncounterDialogOption option) {
|
||||||
|
if(option?.events == null) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
for(var i = 0; i < option.events.Count; i++) {
|
||||||
|
var encounterEvent = option.events[i];
|
||||||
|
if(encounterEvent == null) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
switch(encounterEvent) {
|
||||||
|
case ChainToEncounterEvent chain:
|
||||||
|
if(AskForEncounter(chain.nextEncounterId, out var next)) {
|
||||||
|
TriggerEncounter(next);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case LogEvent log:
|
||||||
|
Debug.Log($"[Encounter '{encounter.EncounterDefinition.id}'] {log.message}");
|
||||||
|
break;
|
||||||
|
case StartCombatEvent _:
|
||||||
|
case GiveRewardEvent _:
|
||||||
|
Debug.Log($"[Encounter] unhandled event {encounterEvent.GetType().Name}");
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public void CheckForEncounters(Vector3 position) {
|
public void CheckForEncounters(Vector3 position) {
|
||||||
VerifyZones(position);
|
VerifyZones(position);
|
||||||
}
|
}
|
||||||
@@ -89,7 +136,11 @@ namespace Nox.Game {
|
|||||||
public void Tick() { }
|
public void Tick() { }
|
||||||
|
|
||||||
public void Dispose() {
|
public void Dispose() {
|
||||||
// nothing here
|
if(encounterView != null) {
|
||||||
|
encounterView.OptionSelected -= OnOptionSelected;
|
||||||
|
encounterView.Dispose();
|
||||||
|
}
|
||||||
|
activeEncounter = null;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -6,7 +6,6 @@ namespace Nox.Game {
|
|||||||
[CreateAssetMenu(fileName = "EncounterPrefabs", menuName = "Nox/EncounterPrefabs")]
|
[CreateAssetMenu(fileName = "EncounterPrefabs", menuName = "Nox/EncounterPrefabs")]
|
||||||
public class EncounterPrefabs : ScriptableObject {
|
public class EncounterPrefabs : ScriptableObject {
|
||||||
public EncounterSet[] encounterSets;
|
public EncounterSet[] encounterSets;
|
||||||
public AnswerPrefab answerPrefab;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
[Serializable]
|
[Serializable]
|
||||||
@@ -14,5 +13,6 @@ namespace Nox.Game {
|
|||||||
[field: SerializeReference, SubclassSelector]
|
[field: SerializeReference, SubclassSelector]
|
||||||
public IEncounterKind encounterKind;
|
public IEncounterKind encounterKind;
|
||||||
public EncounterReference encounterReference;
|
public EncounterReference encounterReference;
|
||||||
|
public AnswerReference answerReference;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,17 +1,23 @@
|
|||||||
using Jovian.EncounterSystem;
|
using Jovian.EncounterSystem;
|
||||||
using Nox.Game.UI;
|
using Nox.Game.UI;
|
||||||
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
|
|
||||||
namespace Nox.Game {
|
namespace Nox.Game {
|
||||||
public class EncounterView : IMenuView{
|
public class EncounterView : IMenuView {
|
||||||
private readonly EncounterPrefabs encounterPrefabs;
|
private const int MaxAnswers = 4;
|
||||||
private readonly IEncounterKind encounterKind;
|
|
||||||
private IEncounter currentEncounter;
|
|
||||||
|
|
||||||
private Dictionary<IEncounterKind, EncounterReference> encounterKindToPrefab = new ();
|
private readonly EncounterPrefabs encounterPrefabs;
|
||||||
private IEncounterKind currentActiveKind;
|
private readonly Dictionary<Type, EncounterReference> kindToReference = new();
|
||||||
|
private readonly Dictionary<Type, List<AnswerReference>> kindToAnswerPool = new();
|
||||||
|
|
||||||
|
private IEncounter currentEncounter;
|
||||||
|
private EncounterReference currentReference;
|
||||||
|
private List<AnswerReference> currentAnswerPool;
|
||||||
|
|
||||||
|
public event Action<int> OptionSelected;
|
||||||
|
|
||||||
public EncounterView(EncounterPrefabs encounterPrefabs) {
|
public EncounterView(EncounterPrefabs encounterPrefabs) {
|
||||||
this.encounterPrefabs = encounterPrefabs;
|
this.encounterPrefabs = encounterPrefabs;
|
||||||
@@ -19,25 +25,143 @@ namespace Nox.Game {
|
|||||||
|
|
||||||
public void SetCurrentEncounter(IEncounter encounter) {
|
public void SetCurrentEncounter(IEncounter encounter) {
|
||||||
currentEncounter = encounter;
|
currentEncounter = encounter;
|
||||||
if(!encounterKindToPrefab.TryGetValue(encounter.EncounterDefinition.Kind, out var encounterReference)) {
|
|
||||||
encounterReference = Object.Instantiate(encounterPrefabs.encounterSets.FirstOrDefault(e => e.encounterKind == encounterKind)?.encounterReference);
|
|
||||||
encounterKindToPrefab.Add(encounter.EncounterDefinition.Kind, encounterReference);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Initialize() { }
|
public void Initialize() { }
|
||||||
|
|
||||||
public void Show() {
|
public void Show() {
|
||||||
currentActiveKind = currentEncounter.EncounterDefinition.Kind;
|
if(currentEncounter?.EncounterDefinition?.Kind == null) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if(currentReference) {
|
||||||
|
currentReference.gameObject.SetActive(false);
|
||||||
|
}
|
||||||
|
|
||||||
|
var kindType = currentEncounter.EncounterDefinition.Kind.GetType();
|
||||||
|
var set = encounterPrefabs.encounterSets
|
||||||
|
.FirstOrDefault(s => s.encounterKind != null && s.encounterKind.GetType() == kindType);
|
||||||
|
if(set == null || !set.encounterReference) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if(!kindToReference.TryGetValue(kindType, out var reference) || !reference) {
|
||||||
|
reference = UnityEngine.Object.Instantiate(set.encounterReference);
|
||||||
|
kindToReference[kindType] = reference;
|
||||||
|
}
|
||||||
|
|
||||||
|
currentReference = reference;
|
||||||
|
currentAnswerPool = GetOrBuildAnswerPool(kindType, set);
|
||||||
|
|
||||||
PopulateEncounterReference();
|
PopulateEncounterReference();
|
||||||
encounterKindToPrefab[currentActiveKind].gameObject.SetActive(true);
|
currentReference.gameObject.SetActive(true);
|
||||||
}
|
|
||||||
private void PopulateEncounterReference() {
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Hide() {
|
public void Hide() {
|
||||||
encounterKindToPrefab[currentActiveKind].gameObject.SetActive(false);
|
if(currentReference) {
|
||||||
|
currentReference.gameObject.SetActive(false);
|
||||||
|
}
|
||||||
|
DeactivateAnswers(currentAnswerPool);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Tick() { }
|
public void Tick() { }
|
||||||
|
|
||||||
|
public void Dispose() {
|
||||||
|
foreach(var reference in kindToReference.Values) {
|
||||||
|
if(reference) {
|
||||||
|
UnityEngine.Object.Destroy(reference.gameObject);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
kindToReference.Clear();
|
||||||
|
kindToAnswerPool.Clear();
|
||||||
|
currentReference = null;
|
||||||
|
currentAnswerPool = null;
|
||||||
|
currentEncounter = null;
|
||||||
|
OptionSelected = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
private List<AnswerReference> GetOrBuildAnswerPool(Type kindType, EncounterSet set) {
|
||||||
|
if(kindToAnswerPool.TryGetValue(kindType, out var pool) && pool != null) {
|
||||||
|
return pool;
|
||||||
|
}
|
||||||
|
|
||||||
|
pool = new List<AnswerReference>(MaxAnswers);
|
||||||
|
kindToAnswerPool[kindType] = pool;
|
||||||
|
|
||||||
|
if(!set.answerReference || !currentReference.encounterOptionsContainer) {
|
||||||
|
return pool;
|
||||||
|
}
|
||||||
|
|
||||||
|
for(var i = 0; i < MaxAnswers; i++) {
|
||||||
|
var answer = UnityEngine.Object.Instantiate(set.answerReference, currentReference.encounterOptionsContainer);
|
||||||
|
answer.gameObject.SetActive(false);
|
||||||
|
pool.Add(answer);
|
||||||
|
}
|
||||||
|
return pool;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void PopulateEncounterReference() {
|
||||||
|
var definition = currentEncounter.EncounterDefinition;
|
||||||
|
var visuals = currentEncounter.EncounterVisuals;
|
||||||
|
|
||||||
|
if(currentReference.encounterName) {
|
||||||
|
currentReference.encounterName.text = definition.name;
|
||||||
|
}
|
||||||
|
if(currentReference.encounterDescription) {
|
||||||
|
currentReference.encounterDescription.text = definition.description;
|
||||||
|
}
|
||||||
|
if(currentReference.encounterArt && visuals != null) {
|
||||||
|
currentReference.encounterArt.sprite = visuals.encounterArt;
|
||||||
|
}
|
||||||
|
|
||||||
|
PopulateAnswers();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void PopulateAnswers() {
|
||||||
|
DeactivateAnswers(currentAnswerPool);
|
||||||
|
|
||||||
|
var optionSet = currentEncounter.EncounterDialogOptionSet;
|
||||||
|
if(currentAnswerPool == null || optionSet?.options == null) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
var count = Mathf.Min(optionSet.options.Count, currentAnswerPool.Count);
|
||||||
|
for(var i = 0; i < count; i++) {
|
||||||
|
var option = optionSet.options[i];
|
||||||
|
var answer = currentAnswerPool[i];
|
||||||
|
if(option == null || !answer) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
if(answer.number) {
|
||||||
|
answer.number.text = (i + 1).ToString();
|
||||||
|
}
|
||||||
|
if(answer.dialogText) {
|
||||||
|
answer.dialogText.text = option.text.Resolve(optionSet.library);
|
||||||
|
}
|
||||||
|
BindAnswerButton(answer, i);
|
||||||
|
answer.gameObject.SetActive(true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void BindAnswerButton(AnswerReference answer, int optionIndex) {
|
||||||
|
var button = answer.button ? answer.button : answer.GetComponentInChildren<UnityEngine.UI.Button>(true);
|
||||||
|
if(!button) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
button.onClick.RemoveAllListeners();
|
||||||
|
button.onClick.AddListener(() => OptionSelected?.Invoke(optionIndex));
|
||||||
|
}
|
||||||
|
|
||||||
|
private static void DeactivateAnswers(List<AnswerReference> pool) {
|
||||||
|
if(pool == null) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
for(var i = 0; i < pool.Count; i++) {
|
||||||
|
if(pool[i]) {
|
||||||
|
pool[i].gameObject.SetActive(false);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -16,10 +16,66 @@ MonoBehaviour:
|
|||||||
- encounterKind:
|
- encounterKind:
|
||||||
rid: 1352971649185742937
|
rid: 1352971649185742937
|
||||||
encounterReference: {fileID: 3705563528526877357, guid: 62525e62adc83b84abde85d78828de2b, type: 3}
|
encounterReference: {fileID: 3705563528526877357, guid: 62525e62adc83b84abde85d78828de2b, type: 3}
|
||||||
answerPrefab: {fileID: -3146704326252051464, guid: cbecff27dee2cf7448a05a89ecb018b4, type: 3}
|
answerReference: {fileID: -3146704326252051464, guid: cbecff27dee2cf7448a05a89ecb018b4, type: 3}
|
||||||
|
- encounterKind:
|
||||||
|
rid: 696918149227610525
|
||||||
|
encounterReference: {fileID: 3705563528526877357, guid: 62525e62adc83b84abde85d78828de2b, type: 3}
|
||||||
|
answerReference: {fileID: -3146704326252051464, guid: cbecff27dee2cf7448a05a89ecb018b4, type: 3}
|
||||||
|
- encounterKind:
|
||||||
|
rid: 696918149227610527
|
||||||
|
encounterReference: {fileID: 3705563528526877357, guid: 62525e62adc83b84abde85d78828de2b, type: 3}
|
||||||
|
answerReference: {fileID: -3146704326252051464, guid: cbecff27dee2cf7448a05a89ecb018b4, type: 3}
|
||||||
|
- encounterKind:
|
||||||
|
rid: 696918149227610528
|
||||||
|
encounterReference: {fileID: 3705563528526877357, guid: 62525e62adc83b84abde85d78828de2b, type: 3}
|
||||||
|
answerReference: {fileID: -3146704326252051464, guid: cbecff27dee2cf7448a05a89ecb018b4, type: 3}
|
||||||
|
- encounterKind:
|
||||||
|
rid: 696918149227610529
|
||||||
|
encounterReference: {fileID: 3705563528526877357, guid: 62525e62adc83b84abde85d78828de2b, type: 3}
|
||||||
|
answerReference: {fileID: -3146704326252051464, guid: cbecff27dee2cf7448a05a89ecb018b4, type: 3}
|
||||||
|
- encounterKind:
|
||||||
|
rid: 696918149227610530
|
||||||
|
encounterReference: {fileID: 3705563528526877357, guid: 62525e62adc83b84abde85d78828de2b, type: 3}
|
||||||
|
answerReference: {fileID: -3146704326252051464, guid: cbecff27dee2cf7448a05a89ecb018b4, type: 3}
|
||||||
|
- encounterKind:
|
||||||
|
rid: 696918149227610531
|
||||||
|
encounterReference: {fileID: 3705563528526877357, guid: 62525e62adc83b84abde85d78828de2b, type: 3}
|
||||||
|
answerReference: {fileID: -3146704326252051464, guid: cbecff27dee2cf7448a05a89ecb018b4, type: 3}
|
||||||
|
- encounterKind:
|
||||||
|
rid: 696918149227610532
|
||||||
|
encounterReference: {fileID: 3705563528526877357, guid: 62525e62adc83b84abde85d78828de2b, type: 3}
|
||||||
|
answerReference: {fileID: -3146704326252051464, guid: cbecff27dee2cf7448a05a89ecb018b4, type: 3}
|
||||||
|
- encounterKind:
|
||||||
|
rid: 696918149227610532
|
||||||
|
encounterReference: {fileID: 3705563528526877357, guid: 62525e62adc83b84abde85d78828de2b, type: 3}
|
||||||
|
answerReference: {fileID: -3146704326252051464, guid: cbecff27dee2cf7448a05a89ecb018b4, type: 3}
|
||||||
references:
|
references:
|
||||||
version: 2
|
version: 2
|
||||||
RefIds:
|
RefIds:
|
||||||
|
- rid: 696918149227610525
|
||||||
|
type: {class: CombatKind, ns: Nox.Game, asm: Assembly-CSharp}
|
||||||
|
data:
|
||||||
|
- rid: 696918149227610527
|
||||||
|
type: {class: QuestKind, ns: Jovian.EncounterSystem, asm: Jovian.EncounterSystem}
|
||||||
|
data:
|
||||||
|
nextEncounter:
|
||||||
|
table: {fileID: 0}
|
||||||
|
internalId:
|
||||||
|
- rid: 696918149227610528
|
||||||
|
type: {class: SocialKind, ns: Nox.Game, asm: Assembly-CSharp}
|
||||||
|
data:
|
||||||
|
- rid: 696918149227610529
|
||||||
|
type: {class: TutorialKind, ns: Nox.Game, asm: Assembly-CSharp}
|
||||||
|
data:
|
||||||
|
- rid: 696918149227610530
|
||||||
|
type: {class: HazardKind, ns: Nox.Game, asm: Assembly-CSharp}
|
||||||
|
data:
|
||||||
|
- rid: 696918149227610531
|
||||||
|
type: {class: OtherKind, ns: Nox.Game, asm: Assembly-CSharp}
|
||||||
|
data:
|
||||||
|
- rid: 696918149227610532
|
||||||
|
type: {class: PuzzleKind, ns: Nox.Game, asm: Assembly-CSharp}
|
||||||
|
data:
|
||||||
- rid: 1352971649185742937
|
- rid: 1352971649185742937
|
||||||
type: {class: ExplorationKind, ns: Nox.Game, asm: Assembly-CSharp}
|
type: {class: ExplorationKind, ns: Nox.Game, asm: Assembly-CSharp}
|
||||||
data:
|
data:
|
||||||
|
|||||||
@@ -137,6 +137,126 @@ MonoBehaviour:
|
|||||||
m_hasFontAssetChanged: 0
|
m_hasFontAssetChanged: 0
|
||||||
m_baseMaterial: {fileID: 0}
|
m_baseMaterial: {fileID: 0}
|
||||||
m_maskOffset: {x: 0, y: 0, z: 0, w: 0}
|
m_maskOffset: {x: 0, y: 0, z: 0, w: 0}
|
||||||
|
--- !u!1 &5634975795126131359
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 7922870055581323619}
|
||||||
|
- component: {fileID: 8449579385697103291}
|
||||||
|
- component: {fileID: 680329226197598615}
|
||||||
|
- component: {fileID: 4831999132806256115}
|
||||||
|
m_Layer: 5
|
||||||
|
m_Name: Button
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!224 &7922870055581323619
|
||||||
|
RectTransform:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 5634975795126131359}
|
||||||
|
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||||
|
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||||
|
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||||
|
m_ConstrainProportionsScale: 0
|
||||||
|
m_Children: []
|
||||||
|
m_Father: {fileID: 5249586234698548752}
|
||||||
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
|
m_AnchorMin: {x: 0, y: 0}
|
||||||
|
m_AnchorMax: {x: 1, y: 1}
|
||||||
|
m_AnchoredPosition: {x: 0.16499329, y: 0.000025749207}
|
||||||
|
m_SizeDelta: {x: 0.32999, y: 0.046}
|
||||||
|
m_Pivot: {x: 0.5, y: 0.5}
|
||||||
|
--- !u!222 &8449579385697103291
|
||||||
|
CanvasRenderer:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 5634975795126131359}
|
||||||
|
m_CullTransparentMesh: 1
|
||||||
|
--- !u!114 &680329226197598615
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 5634975795126131359}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier: UnityEngine.UI::UnityEngine.UI.Image
|
||||||
|
m_Material: {fileID: 0}
|
||||||
|
m_Color: {r: 1, g: 1, b: 1, a: 1}
|
||||||
|
m_RaycastTarget: 1
|
||||||
|
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
|
||||||
|
m_Maskable: 1
|
||||||
|
m_OnCullStateChanged:
|
||||||
|
m_PersistentCalls:
|
||||||
|
m_Calls: []
|
||||||
|
m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0}
|
||||||
|
m_Type: 1
|
||||||
|
m_PreserveAspect: 0
|
||||||
|
m_FillCenter: 1
|
||||||
|
m_FillMethod: 4
|
||||||
|
m_FillAmount: 1
|
||||||
|
m_FillClockwise: 1
|
||||||
|
m_FillOrigin: 0
|
||||||
|
m_UseSpriteMesh: 0
|
||||||
|
m_PixelsPerUnitMultiplier: 1
|
||||||
|
--- !u!114 &4831999132806256115
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 5634975795126131359}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier: UnityEngine.UI::UnityEngine.UI.Button
|
||||||
|
m_Navigation:
|
||||||
|
m_Mode: 3
|
||||||
|
m_WrapAround: 0
|
||||||
|
m_SelectOnUp: {fileID: 0}
|
||||||
|
m_SelectOnDown: {fileID: 0}
|
||||||
|
m_SelectOnLeft: {fileID: 0}
|
||||||
|
m_SelectOnRight: {fileID: 0}
|
||||||
|
m_Transition: 1
|
||||||
|
m_Colors:
|
||||||
|
m_NormalColor: {r: 1, g: 1, b: 1, a: 0}
|
||||||
|
m_HighlightedColor: {r: 0, g: 0, b: 0, a: 0.31764707}
|
||||||
|
m_PressedColor: {r: 0, g: 0, b: 0, a: 0.4627451}
|
||||||
|
m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 0}
|
||||||
|
m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0}
|
||||||
|
m_ColorMultiplier: 1
|
||||||
|
m_FadeDuration: 0.1
|
||||||
|
m_SpriteState:
|
||||||
|
m_HighlightedSprite: {fileID: 0}
|
||||||
|
m_PressedSprite: {fileID: 0}
|
||||||
|
m_SelectedSprite: {fileID: 0}
|
||||||
|
m_DisabledSprite: {fileID: 0}
|
||||||
|
m_AnimationTriggers:
|
||||||
|
m_NormalTrigger: Normal
|
||||||
|
m_HighlightedTrigger: Highlighted
|
||||||
|
m_PressedTrigger: Pressed
|
||||||
|
m_SelectedTrigger: Selected
|
||||||
|
m_DisabledTrigger: Disabled
|
||||||
|
m_Interactable: 1
|
||||||
|
m_TargetGraphic: {fileID: 680329226197598615}
|
||||||
|
m_OnClick:
|
||||||
|
m_PersistentCalls:
|
||||||
|
m_Calls: []
|
||||||
--- !u!1 &5906514193138747816
|
--- !u!1 &5906514193138747816
|
||||||
GameObject:
|
GameObject:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
@@ -150,7 +270,7 @@ GameObject:
|
|||||||
- component: {fileID: 1953891385698885950}
|
- component: {fileID: 1953891385698885950}
|
||||||
- component: {fileID: -3146704326252051464}
|
- component: {fileID: -3146704326252051464}
|
||||||
m_Layer: 5
|
m_Layer: 5
|
||||||
m_Name: Answers
|
m_Name: AnswerReference
|
||||||
m_TagString: Untagged
|
m_TagString: Untagged
|
||||||
m_Icon: {fileID: 0}
|
m_Icon: {fileID: 0}
|
||||||
m_NavMeshLayer: 0
|
m_NavMeshLayer: 0
|
||||||
@@ -170,6 +290,7 @@ RectTransform:
|
|||||||
m_Children:
|
m_Children:
|
||||||
- {fileID: 1760747944163223242}
|
- {fileID: 1760747944163223242}
|
||||||
- {fileID: 7428637175488290741}
|
- {fileID: 7428637175488290741}
|
||||||
|
- {fileID: 7922870055581323619}
|
||||||
m_Father: {fileID: 0}
|
m_Father: {fileID: 0}
|
||||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
m_AnchorMin: {x: 0, y: 1}
|
m_AnchorMin: {x: 0, y: 1}
|
||||||
@@ -219,6 +340,7 @@ MonoBehaviour:
|
|||||||
m_EditorClassIdentifier: Assembly-CSharp::Nox.Game.AnswerPrefab
|
m_EditorClassIdentifier: Assembly-CSharp::Nox.Game.AnswerPrefab
|
||||||
number: {fileID: 572009535857796838}
|
number: {fileID: 572009535857796838}
|
||||||
dialogText: {fileID: 3412282869295099737}
|
dialogText: {fileID: 3412282869295099737}
|
||||||
|
button: {fileID: 4831999132806256115}
|
||||||
--- !u!1 &6684607543305325759
|
--- !u!1 &6684607543305325759
|
||||||
GameObject:
|
GameObject:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
@@ -108,10 +108,10 @@ RectTransform:
|
|||||||
m_Children: []
|
m_Children: []
|
||||||
m_Father: {fileID: 7039252932434566139}
|
m_Father: {fileID: 7039252932434566139}
|
||||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
m_AnchorMin: {x: 0, y: 0.48286262}
|
m_AnchorMin: {x: 0, y: 0.43427482}
|
||||||
m_AnchorMax: {x: 0.6627312, y: 1}
|
m_AnchorMax: {x: 0.6627312, y: 0.8264123}
|
||||||
m_AnchoredPosition: {x: 0.9819946, y: -38.289}
|
m_AnchoredPosition: {x: 0.9819946, y: 1.0250015}
|
||||||
m_SizeDelta: {x: 1.62, y: -42.331}
|
m_SizeDelta: {x: 1.62, y: 0.68299866}
|
||||||
m_Pivot: {x: 0.5, y: 0.5}
|
m_Pivot: {x: 0.5, y: 0.5}
|
||||||
--- !u!222 &502023626210869990
|
--- !u!222 &502023626210869990
|
||||||
CanvasRenderer:
|
CanvasRenderer:
|
||||||
@@ -169,12 +169,12 @@ MonoBehaviour:
|
|||||||
m_faceColor:
|
m_faceColor:
|
||||||
serializedVersion: 2
|
serializedVersion: 2
|
||||||
rgba: 4294967295
|
rgba: 4294967295
|
||||||
m_fontSize: 13.1
|
m_fontSize: 15.55
|
||||||
m_fontSizeBase: 36
|
m_fontSizeBase: 36
|
||||||
m_fontWeight: 400
|
m_fontWeight: 400
|
||||||
m_enableAutoSizing: 1
|
m_enableAutoSizing: 1
|
||||||
m_fontSizeMin: 7.8
|
m_fontSizeMin: 7.8
|
||||||
m_fontSizeMax: 13.1
|
m_fontSizeMax: 15.55
|
||||||
m_fontStyle: 0
|
m_fontStyle: 0
|
||||||
m_HorizontalAlignment: 1
|
m_HorizontalAlignment: 1
|
||||||
m_VerticalAlignment: 256
|
m_VerticalAlignment: 256
|
||||||
@@ -208,7 +208,7 @@ MonoBehaviour:
|
|||||||
m_VertexBufferAutoSizeReduction: 0
|
m_VertexBufferAutoSizeReduction: 0
|
||||||
m_useMaxVisibleDescender: 1
|
m_useMaxVisibleDescender: 1
|
||||||
m_pageToDisplay: 1
|
m_pageToDisplay: 1
|
||||||
m_margin: {x: 26.800018, y: 6.367523, z: 6.807068, w: 0}
|
m_margin: {x: 36.54596, y: 6.367523, z: 6.807068, w: 7.7981873}
|
||||||
m_isUsingLegacyAnimationComponent: 0
|
m_isUsingLegacyAnimationComponent: 0
|
||||||
m_isVolumetricText: 0
|
m_isVolumetricText: 0
|
||||||
m_hasFontAssetChanged: 0
|
m_hasFontAssetChanged: 0
|
||||||
@@ -248,7 +248,7 @@ RectTransform:
|
|||||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
m_AnchorMin: {x: 0.6627312, y: 0}
|
m_AnchorMin: {x: 0.6627312, y: 0}
|
||||||
m_AnchorMax: {x: 1, y: 1}
|
m_AnchorMax: {x: 1, y: 1}
|
||||||
m_AnchoredPosition: {x: -14.5, y: 0.000015258789}
|
m_AnchoredPosition: {x: -14.5, y: 0.000030517578}
|
||||||
m_SizeDelta: {x: -32.578293, y: -65.75531}
|
m_SizeDelta: {x: -32.578293, y: -65.75531}
|
||||||
m_Pivot: {x: 0.5, y: 0.5}
|
m_Pivot: {x: 0.5, y: 0.5}
|
||||||
--- !u!222 &2681516528620939688
|
--- !u!222 &2681516528620939688
|
||||||
@@ -323,7 +323,7 @@ RectTransform:
|
|||||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
m_AnchorMin: {x: 0, y: 0.8264123}
|
m_AnchorMin: {x: 0, y: 0.8264123}
|
||||||
m_AnchorMax: {x: 0.6627312, y: 1}
|
m_AnchorMax: {x: 0.6627312, y: 1}
|
||||||
m_AnchoredPosition: {x: -0.80999756, y: -15.64299}
|
m_AnchoredPosition: {x: -0.80999756, y: -15.642975}
|
||||||
m_SizeDelta: {x: 1.62, y: -33.7364}
|
m_SizeDelta: {x: 1.62, y: -33.7364}
|
||||||
m_Pivot: {x: 0.5, y: 0.5}
|
m_Pivot: {x: 0.5, y: 0.5}
|
||||||
--- !u!222 &3458576624150439327
|
--- !u!222 &3458576624150439327
|
||||||
@@ -381,11 +381,11 @@ MonoBehaviour:
|
|||||||
m_faceColor:
|
m_faceColor:
|
||||||
serializedVersion: 2
|
serializedVersion: 2
|
||||||
rgba: 4294967295
|
rgba: 4294967295
|
||||||
m_fontSize: 26.9
|
m_fontSize: 45.4
|
||||||
m_fontSizeBase: 36
|
m_fontSizeBase: 36
|
||||||
m_fontWeight: 400
|
m_fontWeight: 400
|
||||||
m_enableAutoSizing: 1
|
m_enableAutoSizing: 1
|
||||||
m_fontSizeMin: 6.97
|
m_fontSizeMin: 13.94
|
||||||
m_fontSizeMax: 45.4
|
m_fontSizeMax: 45.4
|
||||||
m_fontStyle: 1
|
m_fontStyle: 1
|
||||||
m_HorizontalAlignment: 2
|
m_HorizontalAlignment: 2
|
||||||
@@ -458,10 +458,10 @@ RectTransform:
|
|||||||
m_Children: []
|
m_Children: []
|
||||||
m_Father: {fileID: 7039252932434566139}
|
m_Father: {fileID: 7039252932434566139}
|
||||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
m_AnchorMin: {x: 0, y: 0}
|
m_AnchorMin: {x: 0, y: 0.057000004}
|
||||||
m_AnchorMax: {x: 0.6627312, y: 0.43427482}
|
m_AnchorMax: {x: 0.6627312, y: 0.43427482}
|
||||||
m_AnchoredPosition: {x: 0.9819946, y: 13.1859}
|
m_AnchoredPosition: {x: 0.9819946, y: -0.81417847}
|
||||||
m_SizeDelta: {x: 1.62, y: -26.6202}
|
m_SizeDelta: {x: 1.62, y: 1.3798008}
|
||||||
m_Pivot: {x: 0.5, y: 0.5}
|
m_Pivot: {x: 0.5, y: 0.5}
|
||||||
--- !u!222 &7326620177005582428
|
--- !u!222 &7326620177005582428
|
||||||
CanvasRenderer:
|
CanvasRenderer:
|
||||||
@@ -654,8 +654,8 @@ RectTransform:
|
|||||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
m_AnchorMin: {x: 0, y: 0}
|
m_AnchorMin: {x: 0, y: 0}
|
||||||
m_AnchorMax: {x: 1, y: 1}
|
m_AnchorMax: {x: 1, y: 1}
|
||||||
m_AnchoredPosition: {x: 0, y: 0}
|
m_AnchoredPosition: {x: -12.132874, y: 7.188507}
|
||||||
m_SizeDelta: {x: -510.3443, y: -262.6666}
|
m_SizeDelta: {x: -534.61, y: -277.0435}
|
||||||
m_Pivot: {x: 0.5, y: 0.5}
|
m_Pivot: {x: 0.5, y: 0.5}
|
||||||
--- !u!222 &7810011449154573601
|
--- !u!222 &7810011449154573601
|
||||||
CanvasRenderer:
|
CanvasRenderer:
|
||||||
|
|||||||
@@ -75,7 +75,7 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"com.jovian.tag-system": {
|
"com.jovian.tag-system": {
|
||||||
"version": "file:unity-tag-system",
|
"version": "file:com.jovian.tag-system",
|
||||||
"depth": 0,
|
"depth": 0,
|
||||||
"source": "embedded",
|
"source": "embedded",
|
||||||
"dependencies": {}
|
"dependencies": {}
|
||||||
|
|||||||
Reference in New Issue
Block a user