EA 23.283 Nightly Patch 2
March 6, 2026
8 files modified.
Important Changes
Possible breaking changes. Click the filename to view the chunk.
ModManager (1)
cs
public void ImportModDialogs()
public void ImportAllModDialogs() ActEffect
void AddCon<T>(int rate, int power) where T : Condition
cs
tc.Say("faith_bless", tc, faith.Name);
}
tc.ModExp(306, power * 10);
tc.ModExp(85, power * 10);
if (tc.elements.Base(85) >= tc.elements.Value(306))
if (tc.elements.Base(85) < tc.elements.Value(306))
{
tc.elements.SetBase(85, tc.elements.Value(306));
tc.ModExp(85, power * 10);
}
break;
}void AddCon<T>(int rate, int power) where T : Condition
cs
{
Redirect(EffectId.BuffStats, BlessedState.Cursed, new ActRef
{
aliasEle = "STR"
n1 = "STR"
});
}
break;Chara
public void ApplyRace(bool remove = false)
cs
}
body.RefreshBodyParts();
elements.ApplyElementMap(base.uid, SourceValueType.Chara, race.elementMap, base.DefaultLV, remove, applyFeat: true);
if (!remove && race.id == "bike" && id != "bike_cub")
if (!remove)
{
SetFeat(1423, (id == "chara" || id == "player") ? 10 : (1 + EClass.rnd(10)));
if (race.id == "bike" && id != "bike_cub")
{
SetFeat(1423, (id == "chara" || id == "player") ? 10 : (1 + EClass.rnd(10)));
}
if (race.id == "horse" && EClass.rnd(5) == 0)
{
SetFeat(1423, 1 + EClass.rnd(5));
}
}
}ConPeaky
cs
}
int num = ec.Value(79);
int num2 = owner.Evalue(1423) * 10;
if (num < num2)
if (num >= num2)
{
ec.ModBase(79, Mathf.Clamp(num2 / 10, 1, num2 - num));
if (ec.Value(79) == num2)
return;
}
ec.ModBase(79, Mathf.Clamp(num2 / 10, 1, num2 - num));
if (ec.Value(79) == num2)
{
owner.PlaySound("bike_kick");
if (owner.host != null)
{
owner.PlaySound("bike_kick");
owner.host.ModExp((owner.host.ride == owner) ? 226 : 227, owner.Evalue(1423) * 20);
}
}
}ID_Achievement
cs
NINO,
CHURYU3,
DEMITAS,
KETTLE
KETTLE,
FAITH_HEALING,
ONEV
}ModManager
public override void Init(string path, string defaultPackage = "_Elona")
cs
{
ImportSourceLocalizations(lang as string);
}
ImportModDialogs();
ImportAllModDialogs();
});
}public void ImportSourceLocalizations(string lang)
cs
{
continue;
}
if (Lang.IsBuiltin(modPackage.Mapping.SourceLangMod) && Lang.IsBuiltin(lang))
if (Lang.IsBuiltin(lang))
{
break;
}public void ImportAllModSourceSheets()
cs
{
try
{
SourceCache.InvalidateCacheVersion();
SourceImporter.HotInit(new SourceData[2]
{
EClass.sources.elements,public void ImportAllModSourceSheets()
cs
}
}
ModUtil.sourceImporter.ImportFilesCached(list);
SourceCache.FinalizeCache();
SourceCache.InvalidateCacheBlobs();
SourceCache.ClearDetail();
}
catch (Exception message)
{public void ImportAllModSourceSheets()
cs
Debug.Log("#source finished importing workbooks");
}
public void ImportModDialogs()
public void ImportAllModDialogs()
{
Lang.extraExcelDialogs = new HashSet<string>(PathComparer.Default);
Lang.excelDialog = null;public IEnumerator RefreshMods(Action onComplete, bool syncMods)
cs
if (mappedPackages.TryGetValue(item.id, out var value) && value.isInPackages)
{
value.hasPublishedPackage = true;
mappedPackages[item.id] = item as ModPackage;
}
}
packages.RemoveAll((BaseModPackage p) => p.hasPublishedPackage);
_loading.Log($"Total number of mods:{packages.Count}");
_loading.Log("Activating Mods...");
yield return awaiter;
ActivatePackages();
foreach (BaseModPackage package in packages)
{
if (package.activated)
{
mappedPackages[package.id] = package as ModPackage;
}
}
BaseModManager.isInitialized = true;
yield return awaiter;
onComplete?.Invoke();ModUtil
public static SoundData LoadSoundData(FileInfo soundFile)
cs
string fileNameWithoutExtension = Path.GetFileNameWithoutExtension(soundFile.FullName);
string fullName = soundFile.FullName;
AudioType audioType = GetAudioType(soundFile.Extension);
bool stream = fileNameWithoutExtension.StartsWith("BGM/") && audioType == AudioType.OGGVORBIS;
bool stream = fullName.NormalizePath().Contains("/BGM/") && audioType == AudioType.OGGVORBIS;
using UnityWebRequest unityWebRequest = AudioClipStream.GetAudioClip("file://" + fullName, audioType, compressed: false, stream);
unityWebRequest.SendWebRequest();
Stopwatch stopwatch = Stopwatch.StartNew();SourceImporter
cs
hashSet.Add(sourceData2);
}
}
SourceCache.FinalizeCache();
SourceCache.ClearDetail();
if (resetData)
{
HotInit(hashSet);Trait
public void OnBarter(bool reroll = false)
cs
Add("deed_move", 2 + EClass.rnd(5), 0);
Add("deed_wedding", 1, 0);
Add("deed_divorce", 1, 0);
Add("deed_lostring", 1, 0);
Add("license_illumination", 1, 0);
Add("license_void", 1, 0);
Add("license_adv", 1, 0);