EA 23.279 Nightly Patch 1
February 28, 2026
7 files modified.
Important Changes
Possible breaking changes. Click the filename to view the chunk.
Religion (1)
cs
public bool TryGetGift()
public int GetGiftRank() AI_Fish
public override void OnProgressComplete()
cs
{
thing.isHidden = false;
}
if (EClass.rnd(EClass.debug.enable ? 2 : 100) == 0 && thing.category.IsChildOf("fish"))
if (EClass.rnd(EClass.debug.enable ? 2 : 1000) == 0 && thing.category.IsChildOf("fish"))
{
owner.Say("fish_ehe");
owner.Say("fish_ehe2");
owner.PlaySound("escape");
owner.PlayEffect("fizzle");
thing.Destroy();
if (owner.IsPC)
{
owner.Say("fish_ehe");
owner.Say("fish_ehe2");
owner.Say("fish_ehe3");
EClass.player.flags.fishStolen++;
Steam.GetAchievement(ID_Achievement.EHE_FISH);
if (EClass.rnd(777) == 0)
{
EClass.pc.AddCondition<ConInvulnerable>();
ActEffect.Proc(EffectId.Wish, EClass.pc, null, 50 + EClass.player.CountKeyItem("well_enhance") * 50 + EClass.player.flags.fishStolen * 50);
}
}
thing.Destroy();
}
else if (owner.IsPC)
{ActEffect
void AddCon<T>(int rate, int power) where T : Condition
cs
Chara chara3 = CharaGen.Create((id == EffectId.Bit) ? "bit2" : "bit");
chara3.SetMainElement(element.source.alias, element.Value, elemental: true);
chara3.SetSummon(20 + power / 20 + EClass.rnd(10));
chara3.SetLv(power / 15);
chara3.SetLv(Mathf.Abs(power) / 15);
chara3.interest = 0;
EClass._zone.AddCard(chara3, tp.GetNearestPoint(allowBlock: false, allowChara: false));
chara3.PlayEffect("teleport");ActZap
public override bool Perform()
cs
trait.owner.ModCharge(-1);
Act.CC.PlayEffect("rod");
Act.CC.PlaySound("rod");
Act.CC.RemoveCondition<ConInvisibility>();
if (EClass.rnd(2) == 0)
{
Act.CC.RemoveCondition<ConInvisibility>();
}
Act.TC = Act.CC;
EffectId idEffect = trait.IdEffect;
long a = trait.Power * (100 + (long)Act.CC.Evalue(305) * 10L + Act.CC.MAG / 2 + Act.CC.PER / 2) / 100;DNA
cs
}
void AddVal(int id, int v, bool allowStack, Func<int, int> funcCost)
{
bool flag = false;
int num = EClass.curve(v, 20, 10, 90);
if (v < -100)
{
num = EClass.curve(Mathf.Abs(v + 100), 20, 10, 90);
}
v = EClass.curve(v, 20, 10, 80);
for (int k = 0; k < vals.Count; k += 2)
if (v >= 0)
{
if (vals[k] == id)
bool flag = false;
int num = EClass.curve(v, 20, 10, 90);
if (v < -100)
{
num = EClass.curve(Mathf.Abs(v + 100), 20, 10, 90);
}
v = EClass.curve(v, 20, 10, 80);
for (int k = 0; k < vals.Count; k += 2)
{
if (allowStack)
if (vals[k] == id)
{
v /= 2;
num /= 2;
vals[k + 1] += v;
Debug.Log(vals[k + 1] + ": " + v + "/" + num);
flag = true;
break;
if (allowStack)
{
v /= 2;
num /= 2;
vals[k + 1] += v;
Debug.Log(vals[k + 1] + ": " + v + "/" + num);
flag = true;
break;
}
return;
}
return;
}
}
if (v != 0)
{
if (!flag)
if (v != 0)
{
vals.Add(id);
vals.Add(v);
if (!flag)
{
vals.Add(id);
vals.Add(v);
}
cost += Mathf.Max(0, funcCost(num));
}
cost += Mathf.Max(0, funcCost(num));
}
}
}Religion
void SetValue(SourceCategory.Row cat, int mtp)
cs
}
}
public bool TryGetGift()
public int GetGiftRank()
{
if (IsEyth || source.rewards.Length == 0)
{
return false;
return -1;
}
Point point = EClass.pc.pos.GetNearestPoint(allowBlock: false, allowChara: false, allowInstalled: false) ?? EClass.pc.pos;
int num = EClass.pc.Evalue(85);
if (giftRank == 0 && (num >= 15 || EClass.debug.enable))
{
return 1;
}
if (source.rewards.Length >= 2 && giftRank == 1 && (num >= 30 || EClass.debug.enable))
{
return 2;
}
return -1;
}
public bool TryGetGift()
{
int num = GetGiftRank();
if (num == -1)
{
return false;
}
Point point = EClass.pc.pos.GetNearestPoint(allowBlock: false, allowChara: false, allowInstalled: false) ?? EClass.pc.pos;
switch (num)
{
case 1:
{
Talk("pet");
Chara chara = CharaGen.Create(source.rewards[0]);cs
giftRank = 1;
return true;
}
if (source.rewards.Length >= 2 && giftRank == 1 && (num >= 30 || EClass.debug.enable))
case 2:
{
Talk("gift");
string[] array = source.rewards[1].Split('|');cs
giftRank = 2;
return true;
}
return false;
default:
return false;
}
}
public static Religion GetArtifactDeity(string id)TraitAltar
public override void TrySetAct(ActPlan p)
cs
public override bool CanOffer(Card c)
{
Debug.Log(Deity);
Debug.Log(Deity.id);
Debug.Log(IsEyth);
if (c != null && c.HasTag(CTAG.godArtifact))
{
if (EClass.pc.IsEyth && EClass.pc.HasElement(1228))public void _OnOffer(Chara c, Thing t, int takeoverMod = 0)
cs
{
bool @bool = t.GetBool(115);
int offeringValue = Deity.GetOfferingValue(t, t.Num);
offeringValue = offeringValue * (c.HasElement(1228) ? 130 : 100) / 100;
offeringValue = offeringValue * (EClass.debug.enable ? 1000 : (c.HasElement(1228) ? 130 : 100)) / 100;
if (takeoverMod == 0)
{
if (offeringValue >= 200)public void _OnOffer(Chara c, Thing t, int takeoverMod = 0)
cs
int num = Mathf.Max(c.Evalue(306), 1);
Element orCreateElement = c.elements.GetOrCreateElement(85);
int value = orCreateElement.Value;
c.elements.ModExp(orCreateElement.id, offeringValue * 2 / 3);
if (orCreateElement.vBase < num)
{
c.elements.ModExp(orCreateElement.id, offeringValue * 2 / 3);
if (orCreateElement.vBase >= num)
{
c.elements.SetBase(orCreateElement.id, num);
}
}
int num2 = 4;
if (orCreateElement.vBase < num)
{public void _OnOffer(Chara c, Thing t, int takeoverMod = 0)
cs
c.elements.ModExp(306, offeringValue / 5);
}
c.RefreshFaithElement();
if (c.faith.GetGiftRank() != -1)
{
c.faith.Talk("like");
}
if (@bool)
{
EClass.player.ModKarma(-1);TraitWell
public override void TrySetAct(ActPlan p)
cs
if (EClass.player.CountKeyItem("well_wish") > 0)
{
EClass.player.ModKeyItem("well_wish", -1);
ActEffect.Proc(EffectId.Wish, EClass.pc, null, 50 + EClass.player.CountKeyItem("well_enhance") * 50 + EClass.player.flags.fishStolen * 20);
ActEffect.Proc(EffectId.Wish, EClass.pc, null, 50 + EClass.player.CountKeyItem("well_enhance") * 50 + EClass.player.flags.fishStolen * 50);
EClass.player.wellWished = true;
}
else