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();
}