EA 23.329 Nightly
July 21, 2026
12 files modified. 1 new file created.
Important Changes
None.
ActEffect
void AddCon<T>(int rate, int power) where T : Condition
EClass.ui.AddLayer<LayerList>().SetStringList(delegate
{
List<string> list12 = new List<string>();
for (int num20 = 0; num20 < 10; num20++)
for (int num21 = 0; num21 < 10; num21++)
{
list12.Add(AliasGen.GetRandomAlias());
}void AddCon<T>(int rate, int power) where T : Condition
break;
case EffectId.StripBlessing:
{
List<Condition> list4 = new List<Condition>();
List<Condition> list6 = new List<Condition>();
foreach (Condition condition4 in TC.conditions)
{
if (GetBlessingDifficulty(condition4) > 0 && EClass.rnd(GetBlessingDifficulty(condition4)) == 0)
{
list4.Add(condition4);
list6.Add(condition4);
}
}
if (list4.Count == 0)
if (list6.Count == 0)
{
CC.SayNothingHappans();
break;void AddCon<T>(int rate, int power) where T : Condition
TC.pos.PlayEffect("holyveil");
TC.pos.PlaySound("holyveil");
TC.Say("unpolluted", TC);
list4.Shuffle();
list6.Shuffle();
{
foreach (Condition item5 in list4)
foreach (Condition item5 in list6)
{
item5.Kill();
if (CC.IsHostile(TC))void AddCon<T>(int rate, int power) where T : Condition
{
break;
}
int num12 = 0;
int num15 = 0;
foreach (Condition condition5 in TC.conditions)
{
if (condition5.Type == ConditionType.Debuff)
{
num12++;
num15++;
}
}
if (num12 == 0)
if (num15 == 0)
{
CC.SayNothingHappans();
break;void AddCon<T>(int rate, int power) where T : Condition
});
TC.Say("abShutterHex", TC);
Point center = CC.pos.Copy();
List<Chara> list5 = TC.pos.ListCharasInRadius(TC, 4, (Chara c) => c == TC || c.IsHostile(CC));
for (int l = 0; l < num12; l++)
List<Chara> list9 = TC.pos.ListCharasInRadius(TC, 4, (Chara c) => c == TC || c.IsHostile(CC));
for (int m = 0; m < num15; m++)
{
TweenUtil.Delay((float)l * 0.1f, delegate
TweenUtil.Delay((float)m * 0.1f, delegate
{
center.PlaySound("shutterhex");
});
foreach (Chara item6 in list5)
foreach (Chara item6 in list9)
{
if (item6.ExistsOnMap)
{void AddCon<T>(int rate, int power) where T : Condition
Color startColor = (componentInChildren.endColor = EClass.Colors.elementColors["eleHoly"]);
componentInChildren.startColor = startColor;
Point pos = item6.pos.Copy();
TweenUtil.Delay((float)l * 0.1f, delegate
TweenUtil.Delay((float)m * 0.1f, delegate
{
effect.Play(center, 0f, pos);
});
int num13 = Dice.Create("SpShutterHex", power, CC, (actRef.refThing != null) ? null : actRef.act).Roll();
item6.DamageHP(num13, 919, power, AttackSource.None, CC, showEffect: false);
int num16 = Dice.Create("SpShutterHex", power, CC, (actRef.refThing != null) ? null : actRef.act).Roll();
item6.DamageHP(num16, 919, power, AttackSource.None, CC, showEffect: false);
}
}
}void AddCon<T>(int rate, int power) where T : Condition
TC.Say((actRef.n1 == "money") ? "abStealNegateMoney" : "abStealNegate", TC);
break;
}
Thing thing7 = null;
bool flag12 = actRef.n1 == "food";
Thing thing5 = null;
bool flag11 = actRef.n1 == "food";
if (actRef.n1 == "money")
{
int currency = TC.GetCurrency();
if (currency > 0)
{
currency = Mathf.Clamp(EClass.rnd(currency / 10), 1, 100 + EClass.rndHalf(Mathf.Min(CC.LV, 1000000) * 200));
thing7 = ThingGen.Create("money").SetNum(currency);
thing5 = ThingGen.Create("money").SetNum(currency);
TC.ModCurrency(-currency);
}
}
else
{
Func<Thing, bool> func = (Thing t) => true;
if (flag12)
if (flag11)
{
func = (Thing t) => t.IsFood;
}
List<Thing> list9 = TC.things.List(delegate(Thing t)
List<Thing> list7 = TC.things.List(delegate(Thing t)
{
if (t.parentCard?.trait is TraitChestMerchant || t.trait is TraitTool || t.IsThrownWeapon)
{void AddCon<T>(int rate, int power) where T : Condition
}
return t.trait.CanBeDestroyed && t.things.Count == 0 && t.invY != 1 && t.trait.CanBeStolen && !t.trait.CanOnlyCarry && !t.IsUnique && !t.isEquipped && t.blessedState == BlessedState.Normal && func(t);
}, onlyAccessible: true);
if (list9.Count > 0)
if (list7.Count > 0)
{
thing7 = list9.RandomItem();
if (thing7.Num > 1)
thing5 = list7.RandomItem();
if (thing5.Num > 1)
{
thing7 = thing7.Split(1);
thing5 = thing5.Split(1);
}
}
CC.AddCooldown(6640, 200);
}
if (thing7 == null)
if (thing5 == null)
{
CC.Say("abStealNothing", CC, TC);
break;
}
thing7.SetInt(116, 1);
TC.PlaySound(thing7.material.GetSoundDrop(thing7.sourceCard));
CC.Pick(thing7, msg: false);
CC.Say("abSteal", CC, TC, thing7.Name);
thing5.SetInt(116, 1);
TC.PlaySound(thing5.material.GetSoundDrop(thing5.sourceCard));
CC.Pick(thing5, msg: false);
CC.Say("abSteal", CC, TC, thing5.Name);
if (actRef.n1 == "food")
{
if (CC.hunger.value != 0)
{
CC.InstantEat(thing7);
CC.InstantEat(thing5);
}
}
elsevoid AddCon<T>(int rate, int power) where T : Condition
{
break;
}
List<Thing> list7 = TC.things.List(delegate(Thing t)
List<Thing> list11 = TC.things.List(delegate(Thing t)
{
if (!t.isEquipped || t.blessedState == BlessedState.Doomed || t.IsToolbelt)
{void AddCon<T>(int rate, int power) where T : Condition
}
return (t.blessedState < BlessedState.Blessed || EClass.rnd(10) == 0) ? true : false;
});
if (list7.Count == 0)
if (list11.Count == 0)
{
CC.SayNothingHappans();
break;
}
Thing thing5 = list7.RandomItem();
TC.Say("curse_hit", TC, thing5);
thing5.SetBlessedState((thing5.blessedState == BlessedState.Cursed) ? BlessedState.Doomed : BlessedState.Cursed);
LayerInventory.SetDirty(thing5);
Thing thing7 = list11.RandomItem();
TC.Say("curse_hit", TC, thing7);
thing7.SetBlessedState((thing7.blessedState == BlessedState.Cursed) ? BlessedState.Doomed : BlessedState.Cursed);
LayerInventory.SetDirty(thing7);
break;
}
case EffectId.UncurseEQ:void AddCon<T>(int rate, int power) where T : Condition
List<Thing> list = new List<Thing>();
TC.things.Foreach(delegate(Thing t)
{
int num19 = 0;
int num20 = 0;
if ((t.isEquipped || t.IsRangedWeapon || blessed) && t.blessedState < BlessedState.Normal)
{
if (t.blessedState == BlessedState.Cursed)
{
num19 = EClass.rnd(200);
num20 = EClass.rnd(200);
}
if (t.blessedState == BlessedState.Doomed)
{
num19 = EClass.rnd(1000);
num20 = EClass.rnd(1000);
}
if (blessed)
{
num19 /= 2;
num20 /= 2;
}
if (id == EffectId.UncurseEQGreater)
{
num19 /= 10;
num20 /= 10;
}
if (power >= num19)
if (power >= num20)
{
TC.Say("uncurseEQ_success", t);
t.SetBlessedState(BlessedState.Normal);void AddCon<T>(int rate, int power) where T : Condition
{
EClass.game.religions.Trickery.Talk("ability");
bool hex = CC.IsHostile(TC);
List<SourceStat.Row> list6 = EClass.sources.stats.rows.Where((SourceStat.Row con) => con.tag.Contains("random") && con.group == (hex ? "Debuff" : "Buff")).ToList();
List<SourceStat.Row> list8 = EClass.sources.stats.rows.Where((SourceStat.Row con) => con.tag.Contains("random") && con.group == (hex ? "Debuff" : "Buff")).ToList();
int power2 = power;
for (int m = 0; m < 4 + EClass.rnd(2); m++)
for (int l = 0; l < 4 + EClass.rnd(2); l++)
{
SourceStat.Row row2 = list6.RandomItem();
list6.Remove(row2);
SourceStat.Row row2 = list8.RandomItem();
list8.Remove(row2);
Proc(hex ? EffectId.DebuffKizuami : EffectId.Buff, CC, TC, power2, new ActRef
{
n1 = row2.aliasvoid AddCon<T>(int rate, int power) where T : Condition
{
power = power * 2 / 3;
}
int num14 = TC.WIL * (isPowerful ? 20 : 5);
int num12 = TC.WIL * (isPowerful ? 20 : 5);
ConHolyVeil condition = TC.GetCondition<ConHolyVeil>();
if (condition != null)
{
num14 += condition.power * 5;
num12 += condition.power * 5;
}
num14 /= EClass.sources.stats.alias[n].hexPower;
if (id != EffectId.DebuffKizuami && EClass.rnd(power) < num14)
num12 /= EClass.sources.stats.alias[n].hexPower;
if (id != EffectId.DebuffKizuami && EClass.rnd(power) < num12)
{
int num15 = 10;
int num16 = (TC.IsPowerful ? 40 : 90);
int num13 = 10;
int num14 = (TC.IsPowerful ? 40 : 90);
if (CC.IsPCFaction)
{
num15 += EClass.curve(CC.LER, 100, 50) / 10;
num13 += EClass.curve(CC.LER, 100, 50) / 10;
}
if (TC.IsPowerful)
{
num15 /= 2;
num13 /= 2;
}
if (condition != null)
{
num15 /= 5;
num13 /= 5;
}
if (num15 >= num16)
if (num13 >= num14)
{
num15 = num16;
num13 = num14;
}
if (EClass.rnd(100) > num15)
if (EClass.rnd(100) > num13)
{
TC.Say("debuff_resist", TC);
CC.DoHostileAction(TC);void AddCon<T>(int rate, int power) where T : Condition
break;
case EffectId.Revive:
{
List<KeyValuePair<int, Chara>> list11 = EClass.game.cards.globalCharas.Where((KeyValuePair<int, Chara> a) => a.Value.isDead && a.Value.faction == EClass.pc.faction && !a.Value.isSummon && a.Value.c_wasInPcParty).ToList();
List<KeyValuePair<int, Chara>> list4 = EClass.game.cards.globalCharas.Where((KeyValuePair<int, Chara> a) => a.Value.isDead && a.Value.faction == EClass.pc.faction && !a.Value.isSummon && a.Value.c_wasInPcParty).ToList();
if (TC.IsPCFaction || TC.IsPCFactionMinion)
{
if (TC.IsPC && list11.Count == 0)
if (TC.IsPC && list4.Count == 0)
{
list11 = EClass.game.cards.globalCharas.Where((KeyValuePair<int, Chara> a) => a.Value.CanRevive() && a.Value.isDead && a.Value.faction == EClass.pc.faction && !a.Value.isSummon).ToList();
list4 = EClass.game.cards.globalCharas.Where((KeyValuePair<int, Chara> a) => a.Value.CanRevive() && a.Value.isDead && a.Value.faction == EClass.pc.faction && !a.Value.isSummon).ToList();
}
if (list11.Count > 0)
if (list4.Count > 0)
{
list11.RandomItem().Value.Chara.GetRevived();
list4.RandomItem().Value.Chara.GetRevived();
break;
}
}void AddCon<T>(int rate, int power) where T : Condition
case EffectId.DamageMindGreat:
case EffectId.Weaken:
{
bool flag9 = id == EffectId.DamageBody || id == EffectId.DamageBodyGreat;
bool flag10 = id == EffectId.DamageBody || id == EffectId.DamageBodyGreat;
bool mind = id == EffectId.DamageMind || id == EffectId.DamageMindGreat;
int num9 = ((id == EffectId.DamageBody || id == EffectId.DamageMind) ? 1 : (4 + EClass.rnd(4)));
if (id == EffectId.Weaken)
{
flag9 = EClass.rnd(2) == 0;
mind = !flag9;
flag10 = EClass.rnd(2) == 0;
mind = !flag10;
num9 = 1;
}
elsevoid AddCon<T>(int rate, int power) where T : Condition
TC.PlayEffect("debuff");
TC.PlaySound("debuff");
}
TC.Say(flag9 ? "damageBody" : "damageMind", TC);
TC.Say(flag10 ? "damageBody" : "damageMind", TC);
for (int k = 0; k < num9; k++)
{
TC.DamageTempElements(power, flag9, mind, id != EffectId.Weaken);
TC.DamageTempElements(power, flag10, mind, id != EffectId.Weaken);
}
if (TC.IsPC)
{void AddCon<T>(int rate, int power) where T : Condition
case EffectId.EnhanceBodyGreat:
case EffectId.EnhanceMindGreat:
{
bool flag11 = id == EffectId.EnhanceBody || id == EffectId.EnhanceBodyGreat;
bool flag12 = id == EffectId.EnhanceBody || id == EffectId.EnhanceBodyGreat;
bool mind2 = id == EffectId.EnhanceMind || id == EffectId.EnhanceMindGreat;
if (id != EffectId.EnhanceBody && id != EffectId.EnhanceMind)
{
EClass.rnd(4);
}
TC.Say(flag11 ? "enhanceBody" : "enhanceMind", TC);
TC.Say(flag12 ? "enhanceBody" : "enhanceMind", TC);
TC.PlayEffect("buff");
TC.PlaySound("buff");
TC.EnhanceTempElements(power, flag11, mind2, onlyRenew: true);
TC.EnhanceTempElements(power, flag12, mind2, onlyRenew: true);
break;
}
case EffectId.RestoreBody:
case EffectId.RestoreMind:
{
bool flag10 = id == EffectId.RestoreBody;
bool flag9 = id == EffectId.RestoreBody;
if (flag)
{
Redirect(flag10 ? EffectId.DamageBodyGreat : EffectId.DamageMindGreat, BlessedState.Normal, default(ActRef));
Redirect(flag9 ? EffectId.DamageBodyGreat : EffectId.DamageMindGreat, BlessedState.Normal, default(ActRef));
break;
}
TC.Say(flag10 ? "restoreBody" : "restoreMind", TC);
TC.Say(flag9 ? "restoreBody" : "restoreMind", TC);
TC.PlaySound("heal");
TC.PlayEffect("heal");
TC.CureHost(flag10 ? CureType.CureBody : CureType.CureMind, power, state);
TC.CureHost(flag9 ? CureType.CureBody : CureType.CureMind, power, state);
if (blessed)
{
Redirect(flag10 ? EffectId.EnhanceBodyGreat : EffectId.EnhanceMindGreat, BlessedState.Normal, default(ActRef));
Redirect(flag9 ? EffectId.EnhanceBodyGreat : EffectId.EnhanceMindGreat, BlessedState.Normal, default(ActRef));
}
break;
}void AddCon<T>(int rate, int power) where T : Condition
Redirect(EffectId.CurseEQ, BlessedState.Normal, default(ActRef));
break;
}
IList<Condition> list10 = TC.conditions.Copy();
list10.Shuffle();
IList<Condition> list5 = TC.conditions.Copy();
list5.Shuffle();
CC.PlaySound("remove_hex");
CC.PlayEffect("remove_hex");
foreach (Condition item8 in list10)
foreach (Condition item8 in list5)
{
if (item8.Type != ConditionType.Debuff || item8.IsKilled)
{void AddCon<T>(int rate, int power) where T : Condition
if (TC.HasElement(1211))
{
TC.Say("drinkSaltWater_snail", TC);
int num17 = ((TC.hp > 10) ? (TC.hp - EClass.rnd(10)) : 10000);
TC.DamageHP(num17, AttackSource.None, CC);
int num19 = ((TC.hp > 10) ? (TC.hp - EClass.rnd(10)) : 10000);
TC.DamageHP(num19, AttackSource.None, CC);
}
else if (TC.IsPC)
{void AddCon<T>(int rate, int power) where T : Condition
{
TC.PlayEffect("buff");
TC.PlaySound("offering");
int num18 = TC.Evalue(1423);
if (flag && num18 > 1)
{
TC.SetFeat(1423, num18 - 1, msg: true);
}
else if (num18 < 15)
int num17 = TC.Evalue(1423);
if (num17 > 0)
{
TC.SetFeat(1423, Mathf.Min(num18 + ((!blessed) ? 1 : 2), 15), msg: true);
int num18 = 0;
if (flag && num17 > 1)
{
num18 = -1;
}
else if (num17 < 15)
{
num18 = ((!blessed) ? 1 : 2);
if (num18 + num17 > 15)
{
num18 = 1;
}
}
if (num18 != 0)
{
TC.SetFeat(1423, num17 + num18, msg: true);
TC.SetInt(134, TC.GetInt(134) + num18);
}
}
}
if (flag)void AddCon<T>(int rate, int power) where T : Condition
{
power /= 4;
}
List<Thing> list8 = TC.things.List((Thing t) => (t.Num <= 1 && t.IsEquipmentOrRanged && !t.IsToolbelt && !t.IsLightsource && t.isEquipped) ? true : false);
if (list8.Count != 0)
List<Thing> list10 = TC.things.List((Thing t) => (t.Num <= 1 && t.IsEquipmentOrRanged && !t.IsToolbelt && !t.IsLightsource && t.isEquipped) ? true : false);
if (list10.Count != 0)
{
Thing thing6 = list8.RandomItem();
Thing thing6 = list10.RandomItem();
TC.Say("acid_hit", TC);
if (thing6.isAcidproof)
{BaseCondition
public void SetElement(int id)
refVal = id;
}
public void SetValue(int a)
{
value = a;
}
public void SetRefVal(int a, int b)
{
refVal = a;BaseSong
public override void OnStart()
public override void Tick()
{
if (EClass._zone.IsRegion)
if (!EClass._zone.IsRegion && !owner.HasCondition<ConSilence>())
{
return;
Element element = owner.elements.GetElement(IdAbility);
if (element != null)
{
owner.elements.ModExp(element.id, 20f);
}
if (EClass.rnd(100) == 0)
{
owner.elements.ModExp(241, owner.IsPC ? 10 : 100);
}
TickSong();
}
if (owner.HasCondition<ConSilence>())
{
Kill();
return;
}
Element element = owner.elements.GetElement(IdAbility);
if (element != null)
{
owner.elements.ModExp(element.id, 20f);
}
if (EClass.rnd(10) == 0)
{
owner.elements.ModExp(241, owner.IsPC ? 10 : 100);
}
TickSong();
}
public virtual void TickSong()CINT
public const int isAlreadyCaptured = 132;
public const int uidAttune = 133;
public const int peakyAdded = 134;
}Chara
public void CureCondition<T>(int v = 99999) where T : Condition
}
}
public BaseCondition GetCondition(string idCon)
{
for (int i = 0; i < conditions.Count; i++)
{
if (conditions[i].source.alias == idCon)
{
return conditions[i];
}
}
return null;
}
public override T GetCondition<T>()
{
for (int i = 0; i < conditions.Count; i++)ConDim
public class ConDim : BadCondition
public class ConDim : BadCondition
{
public override bool ConsumeTurn => GetPhase() >= 1;
public override bool ConsumeTurn => GetPhase() >= 2;
}+ConSongValor
File Created
public class ConSongValor : BaseBuff
{
}DNA
public void Apply(Chara c, bool reverse)
}
break;
case "feat":
c.SetFeat(num, c.elements.ValueWithoutLink(num) + ((!reverse) ? 1 : (-1)), !reverse);
{
int num3 = c.elements.ValueWithoutLink(num) + ((!reverse) ? 1 : (-1));
if (num3 < 0)
{
num3 = 0;
}
c.SetFeat(num, num3, !reverse);
if (reverse && num == 1423)
{
int @int = c.GetInt(134);
if (@int > 0)
{
c.SetFeat(num, -@int);
}
c.SetInt(134);
}
break;
}
case "ability":
if (reverse)
{FortuneRollData
public List<List<string>> GetPrizeList()
{
"computer", "834", "1090", "goods_figure", "goods_canvas", "mb_1", "mb_2", "mb_3", "mb_4", "mb_5",
"1174", "1085", "toilet", "714", "nobility", "plat", "1165", "mathammer", "medal", "bbq",
"panty", "beehive", "ticket_resident", "lovepotion", "crystal_sun", "goods_crim", "ride_boat"
"panty", "beehive", "ticket_resident", "lovepotion", "crystal_sun", "goods_crim", "ride_boat", "ride_surf"
},
new List<string>
{GoalCombat
public virtual bool TryUseAbility(int dist, bool beforeMove = false)
break;
case "taunt":
{
bool flag6 = owner.HasCondition<StanceTaunt>();
bool flag7 = tactics.source.taunt != -1 && 100 * owner.hp / owner.MaxHP >= tactics.source.taunt;
num = ((flag6 && !flag7) ? 100 : ((!flag6 && flag7) ? 100 : 0));
bool flag9 = owner.HasCondition<StanceTaunt>();
bool flag10 = tactics.source.taunt != -1 && 100 * owner.hp / owner.MaxHP >= tactics.source.taunt;
num = ((flag9 && !flag10) ? 100 : ((!flag9 && flag10) ? 100 : 0));
break;
}
case "song":
{
bool flag10 = owner.HasCondition<BaseSong>();
bool flag11 = owner.mana.value > owner.mana.max / 3;
num = ((flag10 && !flag11) ? 100 : ((!flag10 && flag11) ? 100 : 0));
BaseSong baseSong = owner.GetCondition(act.source.proc[1]) as BaseSong;
bool num2 = baseSong != null;
bool flag8 = num2 && act.GetPower(owner) > baseSong.power;
num = ((!num2 || flag8) ? 200 : 0);
break;
}
case "melee":public virtual bool TryUseAbility(int dist, bool beforeMove = false)
{
continue;
}
bool flag9 = text == "dot";
if (flag9 && (owner.isRestrained || (tc != null && tc.IsRestrainedResident)))
bool flag7 = text == "dot";
if (flag7 && (owner.isRestrained || (tc != null && tc.IsRestrainedResident)))
{
continue;
}
num = ((text == "attackMelee") ? tactics.P_Melee : tactics.P_Spell) + GetAttackMod(act);
if (num > 0 && flag9)
if (num > 0 && flag7)
{
num += 10;
}public virtual bool TryUseAbility(int dist, bool beforeMove = false)
{
continue;
}
bool flag8 = act is ActBolt;
if ((owner.pos.IsBlocked && (flag8 || act is ActBall || act is ActBreathe)) || !flag || (owner.IsPCParty && (EClass._zone.IsTown || EClass._zone.IsPCFaction)) || (act.id == 9150 && EClass._zone.IsPCFaction && owner.IsNeutralOrAbove()))
bool flag6 = act is ActBolt;
if ((owner.pos.IsBlocked && (flag6 || act is ActBall || act is ActBreathe)) || !flag || (owner.IsPCParty && (EClass._zone.IsTown || EClass._zone.IsPCFaction)) || (act.id == 9150 && EClass._zone.IsPCFaction && owner.IsNeutralOrAbove()))
{
continue;
}
GetNumEnemy(flag8 ? 6 : 5);
if (numEnemy == 0 || (owner.IsPCFactionOrMinion && GetNumNeutral(flag8 ? 6 : 5) > 0))
GetNumEnemy(flag6 ? 6 : 5);
if (numEnemy == 0 || (owner.IsPCFactionOrMinion && GetNumNeutral(flag6 ? 6 : 5) > 0))
{
continue;
}public virtual bool TryUseAbility(int dist, bool beforeMove = false)
{
continue;
}
int num2 = EClass._zone.CountMinions(owner);
if (num2 >= owner.MaxSummon)
int num3 = EClass._zone.CountMinions(owner);
if (num3 >= owner.MaxSummon)
{
continue;
}
num = tactics.P_Summon - 20 * num2 / owner.MaxSummon;
num = tactics.P_Summon - 20 * num3 / owner.MaxSummon;
break;
}
case "summonAlly":public virtual bool TryUseAbility(int dist, bool beforeMove = false)
{
foreach (Chara member2 in EClass.pc.party.members)
{
float num4 = 100f - (float)(member2.mana.value * 100) / MathF.Max(1f, member2.mana.max);
if (num4 > (float)num)
float num5 = 100f - (float)(member2.mana.value * 100) / MathF.Max(1f, member2.mana.max);
if (num5 > (float)num)
{
num = (int)num4;
num = (int)num5;
}
}
}public virtual bool TryUseAbility(int dist, bool beforeMove = false)
break;
case 9200:
{
int num3 = 0;
int num4 = 0;
foreach (Condition condition in tc.conditions)
{
if (condition.Type == ConditionType.Debuff)
{
num3++;
num4++;
}
}
num = num3 * 15;
num = num4 * 15;
break;
}
} {
return 0;
}
float num7 = (float)c.hp / (float)c.MaxHP;
if (num7 > (isHOT ? 0.85f : 0.75f))
float num8 = (float)c.hp / (float)c.MaxHP;
if (num8 > (isHOT ? 0.85f : 0.75f))
{
return 0;
}
int num8 = tactics.P_Heal - (int)((float)tactics.P_Heal * num7) + (isHOT ? 50 : 25);
int num9 = tactics.P_Heal - (int)((float)tactics.P_Heal * num8) + (isHOT ? 50 : 25);
foreach (Condition condition2 in c.conditions)
{
if (condition2 is ConFear)
{
num8 += 10;
num9 += 10;
}
else if (condition2 is ConPoison)
{
num8 += 2;
num9 += 2;
}
else if (condition2 is ConConfuse)
{
num8 += 4;
num9 += 4;
}
else if (condition2 is ConDim)
{
num8 += 6;
num9 += 6;
}
else if (condition2 is ConBleed)
{
num8 += 8;
num9 += 8;
}
}
return num8;
return num9;
}
}
abilities.Sort((ItemAbility a, ItemAbility b) => b.priority - a.priority); {
if (chara2 != owner)
{
int num11 = owner.Dist(chara2);
if (num11 > sightRadius || !owner.CanSeeLos(chara2, num11))
int num12 = owner.Dist(chara2);
if (num12 > sightRadius || !owner.CanSeeLos(chara2, num12))
{
continue;
}int ForeachChara(ItemAbility a, Func<Chara, int> func, bool isFriendlyAbility)
return func(owner);
}
BuildCharaList();
int num5 = 0;
int num6 = 0;
foreach (Chara chara3 in charas)
{
int num6 = func(chara3);
if (num6 > 0)
int num7 = func(chara3);
if (num7 > 0)
{
if (isFriendlyAbility)
{int ForeachChara(ItemAbility a, Func<Chara, int> func, bool isFriendlyAbility)
}
if (chara3 != owner)
{
num6 += tactics.P_Party;
num7 += tactics.P_Party;
}
}
else if (!owner.IsHostile(chara3))
{
continue;
}
if (num6 >= num5)
if (num7 >= num6)
{
a.tg = chara3;
num5 = num6;
num6 = num7;
}
}
}
return num5;
return num6;
}
int GetAttackMod(Act a)
{ {
return 0;
}
int num9 = ((a.source.aliasRef == "mold") ? owner.MainElement.id : EClass.sources.elements.alias[a.source.aliasRef].id);
int num10 = -15 * tc.ResistLvFrom(num9);
int num10 = ((a.source.aliasRef == "mold") ? owner.MainElement.id : EClass.sources.elements.alias[a.source.aliasRef].id);
int num11 = -15 * tc.ResistLvFrom(num10);
if (a is ActSword)
{
num10 = 0;
num11 = 0;
}
if (owner.HasElement(1238) && num10 < -15)
if (owner.HasElement(1238) && num11 < -15)
{
num10 = -15;
num11 = -15;
}
switch (num9)
switch (num10)
{
case 910:
if (tc.isWet)
{
num10 -= 30;
num11 -= 30;
}
break;
case 911:
if (tc.HasCondition<ConBurning>())
{
num10 -= 30;
num11 -= 30;
}
break;
case 912:
if (tc.isWet)
{
num10 += 30;
num11 += 30;
}
break;
}
return num10;
return num11;
}
void GetNumEnemy(int radius)
{StanceSongValor
public class StanceSongValor : BaseSong
public override void TickSong()
{
foreach (Chara item in owner.pos.ListCharasInRadius(owner, 4, (Chara c) => (c.IsDeadOrSleeping || !owner.IsPCFactionOrMinion) ? (!c.IsHostile(owner)) : c.IsPCFactionOrMinion))
foreach (Chara item in owner.pos.ListCharasInRadius(owner, 4, (Chara c) => !c.IsDeadOrSleeping && ((!owner.IsPCFactionOrMinion) ? (!c.IsHostile(owner)) : c.IsPCFactionOrMinion)))
{
if (!item.HasCondition<ConEuphoric>())
if (!item.HasCondition<ConSongValor>())
{
item.AddCondition<ConEuphoric>(base.power);
item.AddCondition<ConSongValor>(base.power);
}
if (!item.HasCondition<ConHero>() && (item.HasCondition<ConFear>() || item.HasCondition<ConConfuse>()))
else
{
item.AddCondition<ConHero>(base.power);
item.GetCondition<ConSongValor>()?.SetValue(3);
}
}
}Trait
public virtual void OnBarter(bool reroll = false)
break;
case ShopType.Moyer:
{
for (int num14 = 1; num14 <= 24; num14++)
for (int num14 = 1; num14 <= 25; num14++)
{
AddAdvWeek(num14);
}TraitTrolley
public virtual string GetIdSound()
return "ride_kin";
case "ride_boat":
case "ride_boat2":
case "ride_surf":
return "ride_boat";
case "wheel_chair":
if (owner.idSkin != 1)