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
to:'
<Kind>k__BackingField:
rid: 1352971465325281422
rid: 1352971521842741341
<EncounterProperties>k__BackingField:
difficulty: 0
<EncounterVisuals>k__BackingField:
@@ -32,8 +32,8 @@ MonoBehaviour:
references:
version: 2
RefIds:
- rid: 1352971465325281422
type: {class: PuzzleKind, ns: Jovian.EncounterSystem, asm: Jovian.EncounterSystem}
- rid: 1352971521842741341
type: {class: PuzzleKind, ns: Nox.Game, asm: Assembly-CSharp}
data:
puzzleId: borken_cart
difficultyClass: 1
puzzleId: cart
difficultyClass: 0

View File

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

View File

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

View File

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

View File

@@ -18,7 +18,7 @@ namespace Jovian.EncounterSystem {
}
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>
@@ -43,7 +43,7 @@ namespace Jovian.EncounterSystem {
IEncounter selected = null;
var seen = 0;
for(int i = 0; i < encounters.Count; i++) {
for(var i = 0; i < encounters.Count; i++) {
var encounter = encounters[i];
if(encounter == null || encounter.GetType() != type) {
continue;
@@ -68,7 +68,7 @@ namespace Jovian.EncounterSystem {
IEncounter selected = null;
var seen = 0;
for(int i = 0; i < encounters.Count; i++) {
for(var i = 0; i < encounters.Count; i++) {
var encounter = encounters[i];
if(encounter == null || !filter(encounter)) {
continue;
@@ -91,7 +91,7 @@ namespace Jovian.EncounterSystem {
return;
}
for(int i = 0; i < encounters.Count; i++) {
for(var i = 0; i < encounters.Count; i++) {
var encounter = encounters[i];
var internalId = encounter?.EncounterDefinition?.internalId;
if(!string.IsNullOrEmpty(internalId)) {

View File

@@ -7,46 +7,7 @@ namespace Jovian.EncounterSystem {
}
[Serializable]
public class CombatKind : IEncounterKind {
public string enemyGroupId;
public string rewardTableId;
}
[Serializable]
public class QuestKind : IEncounterKind {
public partial class QuestKind : IEncounterKind {
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>
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 {
}
}