EA 23.254 Nightly Patch 1
January 2, 2026
5 files modified.
Important Changes
None.
Chara
public bool UseAbility(Act a, Card tc = null, Point pos = null, bool pt = false)
cs
switch (cost.type)
{
case Act.CostType.MP:
if (Evalue(1421) >= 2 && base.hp <= MaxHP / (9 - Evalue(1421) * 2))
if (Evalue(1421) >= 2 && base.hp <= MaxHP / Mathf.Max(1, 9 - Evalue(1421) * 2))
{
num6 /= 2;
}RecipeManager
public static RecipeSource GetUnlearnedRecipe(int lvBonus, string cat, bool only
cs
List<RecipeSource> list = new List<RecipeSource>();
foreach (RecipeSource item in RecipeManager.list)
{
if (!item.alwaysKnown && (item.NeedFactory || item.IsQuickCraft) && (cat == null || item.row.Category.IsChildOf(cat)) && (!onlyUnlearned || !EClass.player.recipes.knownRecipes.ContainsKey(item.id)) && EClass.pc.Evalue(item.GetReqSkill().id) + 5 + lvBonus >= item.row.LV && !item.row.ContainsTag("hiddenRecipe"))
if (!item.alwaysKnown && !item.noRandomRecipe && (item.NeedFactory || item.IsQuickCraft) && (cat == null || item.row.Category.IsChildOf(cat)) && (!onlyUnlearned || !EClass.player.recipes.knownRecipes.ContainsKey(item.id)) && EClass.pc.Evalue(item.GetReqSkill().id) + 5 + lvBonus >= item.row.LV && !item.row.ContainsTag("hiddenRecipe"))
{
list.Add(item);
}public static RecipeSource GetLearnedRecipe(string cat = null)
cs
foreach (string key in EClass.player.recipes.knownRecipes.Keys)
{
RecipeSource recipeSource = Get(key);
if (recipeSource != null && recipeSource.row is SourceThing.Row && (recipeSource.NeedFactory || recipeSource.IsQuickCraft) && (cat == null || recipeSource.row.Category.IsChildOf(cat)))
if (recipeSource != null && recipeSource.row is SourceThing.Row && !recipeSource.noRandomRecipe && (recipeSource.NeedFactory || recipeSource.IsQuickCraft) && (cat == null || recipeSource.row.Category.IsChildOf(cat)))
{
list.Add(recipeSource);
}RecipeSource
public class RecipeSource : EClass
cs
public bool alwaysKnown;
public bool noRandomRecipe;
public static List<Recipe.Ingredient> DefaultIngredients = new List<Recipe.Ingredient>
{
new Recipe.Ingredientcs
{
return DefaultIngredients;
}
if (row.recipeKey.Length != 0 && row.recipeKey[0] == "*")
if (row.recipeKey.Length != 0)
{
alwaysKnown = true;
if (row.recipeKey[0] == "*")
{
alwaysKnown = true;
}
else if (row.recipeKey[0] == "-")
{
noRandomRecipe = true;
}
}
string[] components = row.components;
List<Recipe.Ingredient> list = new List<Recipe.Ingredient>();cs
array3[0] = array3[0].Remove(0, 1);
break;
case '+':
goto IL_0142;
goto IL_0164;
}
break;
IL_0142:
IL_0164:
optional = true;
array3[0] = array3[0].Remove(0, 1);
}Thing
public override void OnCreate(int genLv)
cs
{
AddSocket();
}
for (int k = 0; k < EClass.rnd(num2 + 1); k++)
if (!bp.isCraft)
{
Tuple<SourceElement.Row, int> enchant = GetEnchant(genLv, (SourceElement.Row r) => r.tag.Contains("modRanged"), neg: false);
if (enchant != null && InvOwnerMod.IsValidRangedMod(this, enchant.Item1))
for (int k = 0; k < EClass.rnd(num2 + 1); k++)
{
ApplySocket(enchant.Item1.id, enchant.Item2);
Tuple<SourceElement.Row, int> enchant = GetEnchant(genLv, (SourceElement.Row r) => r.tag.Contains("modRanged"), neg: false);
if (enchant != null && InvOwnerMod.IsValidRangedMod(this, enchant.Item1))
{
ApplySocket(enchant.Item1.id, enchant.Item2);
}
}
}
}TraitGiftNewYear
public override bool OnUse(Chara c)
cs
SE.Play("dropReward");
EClass.pc.Pick(ThingGen.Create("kagamimochi"));
EClass.pc.Pick(ThingGen.Create("1134"));
EClass.pc.Pick(ThingGen.CreateRecipe("1310"));
Chara chara = CharaGen.Create("putty_snow");
EClass._zone.AddCard(chara, (owner.ExistsOnMap ? owner.pos : EClass.pc.pos).GetNearestPoint(allowBlock: false, allowChara: false));
Msg.Say("package_chara", chara, owner);