Skip to content

EA 23.90 Nightly Patch 1

February 11, 2025

12 files modified.

Important Changes

None.

AttackProcess

@@ -342,6 +342,16 @@ public void PlayRangedAnime(int numFire)

cs
	Thing _weapon = weapon;
	bool ignoreSound = ignoreAttackSound;
	Zone _zone = CC.currentZone;
	Color effColor = Color.white; 
	if (isCane) 
	{ 
		IEnumerable<Element> enumerable = toolRange.owner.elements.dict.Values.Where((Element e) => e.source.categorySub == "eleAttack"); 
		if (enumerable.Count() > 0) 
		{ 
			Element element = enumerable.RandomItem(); 
			effColor = EClass.Colors.elementColors[element.source.alias]; 
		} 
	} 
	for (int i = 0; i < numFire; i++)
	{
		TweenUtil.Delay((float)i * data.delay, delegate

@@ -357,12 +367,7 @@ public void PlayRangedAnime(int numFire)

cs
					Effect effect = Effect.Get("ranged_arrow")._Play(_CC.pos, _CC.isSynced ? _CC.renderer.position : _CC.pos.Position(), 0f, _TP, data.sprite);
					if (isCane)
					{
						IEnumerable<Element> enumerable = toolRange.owner.elements.dict.Values.Where((Element e) => e.source.categorySub == "eleAttack"); 
						if (enumerable.Count() > 0) 
						{ 
							Element element = enumerable.RandomItem(); 
							effect.sr.color = EClass.Colors.elementColors[element.source.alias]; 
						} 
						effect.sr.color = effColor; 
					}
				}
				if (data.eject)

Card

@@ -6400,7 +6400,7 @@ public int GetValue(bool sell = false)

cs
	{
		num *= 0.1f;
	}
	if (encLV != 0) 
	if (encLV != 0 && !category.tag.Contains("noEnc")) 
	{
		num = (category.tag.Contains("enc") ? (num * (0.7f + (float)(encLV - 1) * 0.2f)) : ((!IsFood) ? (num * (1f + (float)encLV * 0.01f)) : ((!(id == "honey")) ? (num * Mathf.Min(1f + 0.1f * (float)encLV, 2f) + (float)(encLV * 100)) : (num + (float)(encLV * 10)))));
	}

Chara

@@ -4397,7 +4397,11 @@ public void RestockEquip(bool onCreate)

cs
	}
	for (int k = 0; k < ((!(race.id == "mutant")) ? 1 : (2 + base.LV / 30)); k++)
	{
		if (!job.weapon.IsEmpty()) 
		if (source.ContainsTag("boxer")) 
		{ 
			EQ_CAT("martial"); 
		} 
		else if (!job.weapon.IsEmpty()) 
		{
			if (race.id == "mutant" || (body.slotMainHand != null && body.slotMainHand.thing == null))
			{

CoreDebug

@@ -905,24 +905,14 @@ public void UpdateInput()

cs
	}
	if (Input.GetKeyDown(KeyCode.F2))
	{
		Chara targetChara = EClass.scene.mouseTarget.TargetChara; 
		if (targetChara != null) 
		EClass.player.recipes.Add("b32"); 
		if (EScriptable.rnd(2) == 0) 
		{
			EClass.pc.Pick(targetChara.MakeMilk()); 
			EClass.pc.Pick(targetChara.MakeGene()); 
			EClass.pc.Pick(targetChara.MakeBraineCell()); 
			EClass.pc.Pick(targetChara.MakeEgg(effect: true, 10)); 
			EClass.player.recipes.Add("b118"); 
		}
		if (EClass.game.quests.Get<QuestDebt>() == null) 
		else
		{
			Chara chara = CharaGen.Create("loytel"); 
			EClass._zone.AddCard(chara, EClass.pc.pos); 
			chara.SetGlobal(); 
			Quest q = EClass.game.quests.Add("debt", "loytel"); 
			EClass.game.quests.Start(q); 
			EClass.pc.party.RemoveMember(chara); 
			Hostility hostility2 = (chara.c_originalHostility = Hostility.Ally); 
			chara.hostility = hostility2; 
			EClass.player.recipes.Add("b118-p"); 
		}
		return;
	}

@@ -951,9 +941,9 @@ public void UpdateInput()

cs
		{
			EClass.Branch.ModExp(EClass.Branch.GetNextExp());
		}
		foreach (Chara chara2 in EClass._map.charas) 
		foreach (Chara chara in EClass._map.charas) 
		{
			chara2.AddExp(chara2.ExpToNext); 
			chara.AddExp(chara.ExpToNext); 
		}
		EClass.pc.PlayEffect("boost");
		EClass.pc.PlaySound("boost");

DramaManager

@@ -1032,7 +1032,7 @@ public bool CheckIF(string IF)

cs
		}
		return false;
	case "hasMelilithCurse":
		return EMono.player.flags.gotMelilithCurse; 
		return EMono.pc.HasElement(1206); 
	case "merchant":
		return Guild.Current == Guild.Merchant;
	case "fighter":

FactionBranch

@@ -1495,6 +1495,7 @@ public void Recruit(Chara c)

cs
{
	RemoveRecruit(c);
	AddMemeber(c);
	c.isRestrained = false; 
	if (c.currentZone != EClass._zone && !c.isDead)
	{
		Point point = EClass._map.Installed.traits.GetTraitSet<TraitSpotExit>().GetRandom()?.GetPoint() ?? EClass.pc.pos;

GoalCombat

@@ -484,7 +484,7 @@ public virtual bool TryUseAbility(int dist, bool beforeMove = false)

cs
		{
			continue;
		}
		switch (id) 
		switch (act.id) 
		{
		case 6602:
			if (dist <= 1 || tc.HasCondition<ConEntangle>())

@@ -498,6 +498,19 @@ public virtual bool TryUseAbility(int dist, bool beforeMove = false)

cs
				continue;
			}
			break;
		case 8200:
		case 8201:
			if (owner.HasElement(400)) 
			{ 
				continue; 
			} 
			break; 
		case 6400:
			if (isPCFaction) 
			{ 
				continue; 
			} 
			break; 
		}
		bool isHOT;
		switch (text)

RecipeCard

@@ -235,7 +235,10 @@ public override Thing Craft(BlessedState blessed, bool sound = false, List<Thing

cs
			if (ing2.trait is TraitRune)
			{
				thing.AddRune(ing2);
				thing.elements.SetBase(484, 1); 
				if (!thing.HasElement(484)) 
				{ 
					thing.elements.SetBase(484, 1); 
				} 
			}
		}
	}

RecipeManager

@@ -126,7 +126,7 @@ public void Add(string id, bool showEffect = true)

cs
		EClass.pc.ShowEmo(Emo.idea, 0.5f, skipSame: false);
	}
	EClass.pc.Say("learnRecipe" + ((num == 1) ? "New" : ""), dict[id].Name.ToTitleCase(), num.ToString() ?? "");
	if (num == 1) 
	if (num == 1 && !recipeSource.isBridgePillar) 
	{
		if (recipeSource.NeedFactory)
		{

@@ -137,6 +137,16 @@ public void Add(string id, bool showEffect = true)

cs
			EClass.pc.Say("recipe_nofactory");
		}
	}
	recipeSource = Get(id + "-p"); 
	if (recipeSource != null && !knownRecipes.ContainsKey(recipeSource.id)) 
	{ 
		Add(recipeSource.id, showEffect: false); 
	} 
	recipeSource = Get(id.Replace("-p", "")); 
	if (recipeSource != null && !knownRecipes.ContainsKey(recipeSource.id)) 
	{ 
		Add(recipeSource.id, showEffect: false); 
	} 
	if (recipeSource.row.category == "floor")
	{
		recipeSource = Get(id + "-b");

RecipeSource

@@ -43,7 +43,7 @@ public string recipeCat

cs
		}
	}

	public string Name => row.GetName() + (isBridge ? "recipeBridge".lang() : ""); 
	public string Name => row.GetName() + (isBridgePillar ? "recipeBridgePillar".lang() : (isBridge ? "recipeBridge".lang() : "")); 

	public bool IsQuickCraft
	{

TraitMod

@@ -34,6 +34,10 @@ public override void SetName(ref string s)

cs

	public override int GetValue()
	{
		if (this is TraitRune) 
		{ 
			return base.GetValue(); 
		} 
		int num = source.value * owner.encLV;
		return base.GetValue() * num / 100;
	}

WidgetCodex

@@ -69,7 +69,7 @@ public virtual void Search(string s)

cs
	{
		foreach (RecipeSource item2 in RecipeManager.list)
		{
			if (!item2.isChara && !item2.noListing && !item2.isBridgePillar && (EMono.player.recipes.knownRecipes.ContainsKey(item2.id) || item2.alwaysKnown)) 
			if (!item2.isChara && !item2.noListing && (EMono.player.recipes.knownRecipes.ContainsKey(item2.id) || item2.alwaysKnown)) 
			{
				hashSet.Add(Recipe.Create(item2));
			}