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)
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)
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)
{
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)
}
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()
}
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()
{
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)
}
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)
{
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)
{
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)
continue;
}
break;
case 8200:
case 8201:
if (owner.HasElement(400))
{
continue;
}
break;
case 6400:
if (isPCFaction)
{
continue;
}
break;
}
bool isHOT;
switch (text)
RecipeCard
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)
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)
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
}
}
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)
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)
{
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));
}