EA 23.269 Nightly Patch 3
February 12, 2026
7 files modified.
Important Changes
Possible breaking changes. Click the filename to view the chunk.
DNA (2)
cs
public bool CanRemove()
public bool CanRemove(Chara c) cs
public void WriteNote(UINote n)
public void WriteNote(UINote n, Chara tg = null) Chara
cs
{
return 100;
}
return 20;
return 5;
}
}public bool UseAbility(Act a, Card tc = null, Point pos = null, bool pt = false)
cs
{
num3 = 1 + Evalue(1648);
}
if (IsPC && cost.cost > 0 && a.Value == 0)
if (IsPC && cost.cost > 0 && a.Value == 0 && !ability.Has(a.id))
{
Msg.SayNothingHappen();
return false;public bool UseAbility(Act a, Card tc = null, Point pos = null, bool pt = false)
cs
{
Say(race.castStyle.IsEmpty("cast"), this, a.source.GetName().ToLower(), s.lang());
}
if (IsPC)
if (IsPC && !ability.Has(a.id))
{
_ = (i + 1) / 2;
if (a.vPotential < i)CharaGenes
public int GetGeneSlot(Chara c)
cs
}
return num;
}
public DNA GetDNA(int idEle)
{
foreach (DNA item in items)
{
for (int i = 0; i < item.vals.Count; i += 2)
{
if (item.vals[i] == idEle)
{
return item;
}
}
}
return null;
}
}DNA
public void Apply(Chara c, bool reverse)
cs
}
}
public bool CanRemove()
public bool CanRemove(Chara c)
{
for (int i = 0; i < vals.Count; i += 2)
{
int num = vals[i];
if (num == 1237 || num == 1415)
switch (vals[i])
{
case 1237:
case 1415:
return false;
case 1228:
return !c.IsPC;
}
}
return true;cs
return "gene".lang(text.ToTitleCase(), cost.ToString() ?? "");
}
public void WriteNote(UINote n)
public void WriteNote(UINote n, Chara tg = null)
{
if (slot >= 1)
{
n.AddText("isGeneReqSlots".lang(slot.ToString() ?? ""), FontColor.Warning);
}
if (!CanRemove())
if (!CanRemove(tg))
{
n.AddText("isPermaGene".lang(), FontColor.Warning);
}public Element GetInvalidFeat(Chara c)
cs
for (int i = 0; i < vals.Count; i += 2)
{
Element element = Element.Create(vals[i], vals[i + 1]);
if (c.IsPC && element.id == 1415)
if (c.IsPC && !CanRemove(c))
{
return element;
}GoalAutoCombat
public void GetAbilities(Func<Element, bool> func)
cs
public override void BuildAbilityList()
{
GetAbilities((Element e) => e.source.abilityType.Length != 0);
AddAbility(ACT.Ranged);
AddAbility(ACT.Melee);
AddAbility(ACT.Item);
if (owner.HasCondition<ConBrightnessOfLife>())
{
TryAddAbility(6410);
}
base.BuildAbilityList();
}
public override bool TryAbortCombat()GoalCombat
public virtual bool TryUseAbility(int dist, bool beforeMove = false)
cs
{
if (owner.IsPC)
{
if (act.vPotential <= 0)
if (act.vPotential <= 0 && !owner.ability.Has(act.id))
{
continue;
}cs
}
if (EClass.debug.logCombat && owner.IsPC)
{
Debug.Log(ability2.act.Name + "/" + ability2.priority);
Debug.Log(ability2.act.Name + "/" + ability2.priority + "/" + ability2.act.CanPerform(owner, ability2.tg ?? tc));
}
if (ability2.act.source.alias == "ActRanged")
{cs
Debug.Log(owner.Name + "/" + abilities.Count);
foreach (ItemAbility ability3 in abilities)
{
Debug.Log(ability3.act.Name + "/" + ability3.priority);
Debug.Log(ability3.act.Name + "/" + ability3.priority + "/" + ability3.act.CanPerform(owner, ability3.tg ?? tc));
}
}
return false;TraitGene
public override void WriteNote(UINote n, bool identified)
cs
{
n.AddText("duration:" + owner.c_DNA.GetDurationHour());
}
owner.c_DNA.WriteNote(n);
owner.c_DNA.WriteNote(n, flag ? EClass.pc : null);
if (flag)
{
owner.c_DNA.WriteNoteExtra(n, EClass.pc);WindowCharaMini
public void Refresh(int idTab)
cs
});
uIItem.button2.SetOnClick(delegate
{
if (!g.CanRemove())
if (!g.CanRemove(chara))
{
SE.Beep();
}