semantic changes

This commit is contained in:
Sebastian Bularca
2026-04-21 00:13:52 +02:00
parent 2445781f33
commit dbe799dd73
12 changed files with 95 additions and 86 deletions

View File

@@ -0,0 +1,42 @@
using Jovian.EncounterSystem;
using System;
namespace Nox.Game {
[Serializable]
public class CombatKind : IEncounterKind {
public string enemyGroupId;
public string rewardTableId;
}
[Serializable]
public class SocialKind : IEncounterKind {
public string npcId;
public string factionId;
public int reputationDelta;
}
[Serializable]
public class PuzzleKind : IEncounterKind {
public string puzzleId;
public int difficultyClass;
}
[Serializable]
public class ExplorationKind : IEncounterKind {
public int perceptionDC;
}
[Serializable]
public class TutorialKind : IEncounterKind {
public string tutorialId;
}
[Serializable]
public class HazardKind : IEncounterKind {
public int damageAmount;
}
[Serializable]
public class OtherKind : IEncounterKind {
}
}

View File

@@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: abf01048c404a0240ad538b65a15f5fb

View File

@@ -0,0 +1,30 @@
using Jovian.EncounterSystem;
using System;
namespace Nox.Game {
[Serializable]
public class CurrencyRewardKind : IRewardKind {
public string currencyId;
public int amount;
}
[Serializable]
public class ItemRewardKind : IRewardKind {
public string itemId;
public int quantity;
}
[Serializable]
public class ExperienceRewardKind : IRewardKind {
public int amount;
}
[Serializable]
public class UnlockableRewardKind : IRewardKind {
public string unlockableId;
}
[Serializable]
public class OtherRewardKind : IRewardKind {
}
}

View File

@@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: 7895041af87249e4c8458a07b0bc6b2c

View File

@@ -21,7 +21,7 @@ MonoBehaviour:
description: 'You encounter a broken cart. At a closer examination you chose description: 'You encounter a broken cart. At a closer examination you chose
to:' to:'
<Kind>k__BackingField: <Kind>k__BackingField:
rid: 1352971465325281422 rid: 1352971521842741341
<EncounterProperties>k__BackingField: <EncounterProperties>k__BackingField:
difficulty: 0 difficulty: 0
<EncounterVisuals>k__BackingField: <EncounterVisuals>k__BackingField:
@@ -32,8 +32,8 @@ MonoBehaviour:
references: references:
version: 2 version: 2
RefIds: RefIds:
- rid: 1352971465325281422 - rid: 1352971521842741341
type: {class: PuzzleKind, ns: Jovian.EncounterSystem, asm: Jovian.EncounterSystem} type: {class: PuzzleKind, ns: Nox.Game, asm: Assembly-CSharp}
data: data:
puzzleId: borken_cart puzzleId: cart
difficultyClass: 1 difficultyClass: 0

View File

@@ -15,12 +15,12 @@ MonoBehaviour:
id: gold id: gold
displayName: All Ze Money displayName: All Ze Money
kind: kind:
rid: 1352971465325281413 rid: 1352971521842741336
references: references:
version: 2 version: 2
RefIds: RefIds:
- rid: 1352971465325281413 - rid: 1352971521842741336
type: {class: CurrencyRewardKind, ns: Jovian.EncounterSystem, asm: Jovian.EncounterSystem} type: {class: CurrencyRewardKind, ns: Nox.Game, asm: Assembly-CSharp}
data: data:
currencyId: gold currencyId: gold
amount: 100 amount: 100

View File

@@ -22,7 +22,7 @@ namespace Jovian.EncounterSystem {
} }
EnsureCache(); EnsureCache();
return cache.TryGetValue(id, out var text) ? text : null; return cache.GetValueOrDefault(id);
} }
public void InvalidateCache() { public void InvalidateCache() {

View File

@@ -9,13 +9,11 @@ namespace Jovian.EncounterSystem {
[TextArea(2, 6)] public string inlineText; [TextArea(2, 6)] public string inlineText;
public string Resolve(DialogLineLibrary library) { public string Resolve(DialogLineLibrary library) {
if(library != null && !string.IsNullOrEmpty(id)) { if(!library || string.IsNullOrEmpty(id)) {
var text = library.Resolve(id); return inlineText;
if(!string.IsNullOrEmpty(text)) {
return text;
}
} }
return inlineText; var text = library.Resolve(id);
return !string.IsNullOrEmpty(text) ? text : inlineText;
} }
} }
} }

View File

@@ -23,7 +23,7 @@ namespace Jovian.EncounterSystem {
} }
private void RenameToMatchId() { private void RenameToMatchId() {
if(this == null || string.IsNullOrEmpty(id)) { if(!this || string.IsNullOrEmpty(id)) {
return; return;
} }

View File

@@ -18,7 +18,7 @@ namespace Jovian.EncounterSystem {
} }
EnsureCache(); EnsureCache();
return idCache.TryGetValue(internalId, out var encounter) ? encounter : null; return idCache.GetValueOrDefault(internalId);
} }
/// <summary>Force the id lookup cache to rebuild on next use.</summary> /// <summary>Force the id lookup cache to rebuild on next use.</summary>
@@ -43,7 +43,7 @@ namespace Jovian.EncounterSystem {
IEncounter selected = null; IEncounter selected = null;
var seen = 0; var seen = 0;
for(int i = 0; i < encounters.Count; i++) { for(var i = 0; i < encounters.Count; i++) {
var encounter = encounters[i]; var encounter = encounters[i];
if(encounter == null || encounter.GetType() != type) { if(encounter == null || encounter.GetType() != type) {
continue; continue;
@@ -68,7 +68,7 @@ namespace Jovian.EncounterSystem {
IEncounter selected = null; IEncounter selected = null;
var seen = 0; var seen = 0;
for(int i = 0; i < encounters.Count; i++) { for(var i = 0; i < encounters.Count; i++) {
var encounter = encounters[i]; var encounter = encounters[i];
if(encounter == null || !filter(encounter)) { if(encounter == null || !filter(encounter)) {
continue; continue;
@@ -91,7 +91,7 @@ namespace Jovian.EncounterSystem {
return; return;
} }
for(int i = 0; i < encounters.Count; i++) { for(var i = 0; i < encounters.Count; i++) {
var encounter = encounters[i]; var encounter = encounters[i];
var internalId = encounter?.EncounterDefinition?.internalId; var internalId = encounter?.EncounterDefinition?.internalId;
if(!string.IsNullOrEmpty(internalId)) { if(!string.IsNullOrEmpty(internalId)) {

View File

@@ -7,46 +7,7 @@ namespace Jovian.EncounterSystem {
} }
[Serializable] [Serializable]
public class CombatKind : IEncounterKind { public partial class QuestKind : IEncounterKind {
public string enemyGroupId;
public string rewardTableId;
}
[Serializable]
public class QuestKind : IEncounterKind {
public EncounterLink nextEncounter; public EncounterLink nextEncounter;
public string questTitle;
}
[Serializable]
public class SocialKind : IEncounterKind {
public string npcId;
public string factionId;
public int reputationDelta;
}
[Serializable]
public class PuzzleKind : IEncounterKind {
public string puzzleId;
public int difficultyClass;
}
[Serializable]
public class ExplorationKind : IEncounterKind {
public int perceptionDC;
}
[Serializable]
public class TutorialKind : IEncounterKind {
public string tutorialId;
}
[Serializable]
public class HazardKind : IEncounterKind {
public int damageAmount;
}
[Serializable]
public class OtherKind : IEncounterKind {
} }
} }

View File

@@ -4,30 +4,4 @@ namespace Jovian.EncounterSystem {
/// <summary>Polymorphic payload on a <see cref="Reward"/>. Add a new kind by implementing this interface.</summary> /// <summary>Polymorphic payload on a <see cref="Reward"/>. Add a new kind by implementing this interface.</summary>
public interface IRewardKind { public interface IRewardKind {
} }
[Serializable]
public class CurrencyRewardKind : IRewardKind {
public string currencyId;
public int amount;
}
[Serializable]
public class ItemRewardKind : IRewardKind {
public string itemId;
public int quantity;
}
[Serializable]
public class ExperienceRewardKind : IRewardKind {
public int amount;
}
[Serializable]
public class UnlockableRewardKind : IRewardKind {
public string unlockableId;
}
[Serializable]
public class OtherRewardKind : IRewardKind {
}
} }