EA 23.219 Nightly Patch 2
October 14, 2025
8 files modified.
Important Changes
None.
ActEffect
public static bool DamageEle(Card CC, EffectId id, int power, Element e, List<Po
}
num2++;
}
if ((id == EffectId.Explosive || id == EffectId.Suicide || id == EffectId.Rocket) && ((id != EffectId.Suicide && id != EffectId.Meteor) || !EClass._zone.IsPCFaction))
if ((id == EffectId.Explosive || id == EffectId.Suicide || id == EffectId.Rocket) && (!EClass._zone.IsPCFaction || !EClass.Branch.HasItemProtection))
{
int num7 = id switch
{
public static bool DamageEle(Card CC, EffectId id, int power, Element e, List<Po
ActThrow.Throw(CC, TC.pos, t3, ThrowMethod.Punish, 0.7f);
}
break;
case EffectId.StripBlessing:
{
int num13 = 0;
foreach (Condition condition4 in TC.conditions)
{
if (condition4.Type == ConditionType.Buff)
{
num13++;
}
}
if (num13 == 0)
{
CC.SayNothingHappans();
break;
}
TC.pos.PlayEffect("holyveil");
TC.pos.PlaySound("holyveil");
TC.Say("unpolluted", TC);
bool valid = true;
TC.conditions.ForeachReverse(delegate(Condition c)
{
if (valid && c.Type == ConditionType.Buff)
{
c.Kill();
if (CC.IsHostile(TC))
{
valid = false;
}
}
});
break;
}
case EffectId.ShutterHex:
{
if (!CC.IsHostile(TC))
{
break;
}
int num10 = 0;
foreach (Condition condition4 in TC.conditions)
int num8 = 0;
foreach (Condition condition5 in TC.conditions)
{
if (condition4.Type == ConditionType.Debuff)
if (condition5.Type == ConditionType.Debuff)
{
num10++;
num8++;
}
}
if (num10 == 0)
if (num8 == 0)
{
CC.SayNothingHappans();
break;
public static bool DamageEle(Card CC, EffectId id, int power, Element e, List<Po
});
TC.Say("abShutterHex", TC);
Point center = CC.pos.Copy();
List<Chara> list6 = TC.pos.ListCharasInRadius(TC, 4, (Chara c) => c == TC || c.IsHostile(CC));
for (int l = 0; l < num10; l++)
List<Chara> list5 = TC.pos.ListCharasInRadius(TC, 4, (Chara c) => c == TC || c.IsHostile(CC));
for (int l = 0; l < num8; l++)
{
TweenUtil.Delay((float)l * 0.1f, delegate
{
center.PlaySound("shutterhex");
});
foreach (Chara item4 in list6)
foreach (Chara item4 in list5)
{
if (item4.ExistsOnMap)
{
public static bool DamageEle(Card CC, EffectId id, int power, Element e, List<Po
{
effect.Play(center, 0f, pos);
});
int num11 = Dice.Create("SpShutterHex", power, CC, (actRef.refThing != null) ? null : actRef.act).Roll();
item4.DamageHP(num11, 919, power, AttackSource.None, CC, showEffect: false);
int num9 = Dice.Create("SpShutterHex", power, CC, (actRef.refThing != null) ? null : actRef.act).Roll();
item4.DamageHP(num9, 919, power, AttackSource.None, CC, showEffect: false);
}
}
}
public static bool DamageEle(Card CC, EffectId id, int power, Element e, List<Po
break;
}
Thing thing4 = null;
bool flag8 = actRef.n1 == "food";
bool flag9 = actRef.n1 == "food";
if (actRef.n1 == "money")
{
int currency = TC.GetCurrency();
public static bool DamageEle(Card CC, EffectId id, int power, Element e, List<Po
else
{
Func<Thing, bool> func = (Thing t) => true;
if (flag8)
if (flag9)
{
func = (Thing t) => t.IsFood;
}
List<Thing> list5 = TC.things.List(delegate(Thing t)
List<Thing> list6 = TC.things.List(delegate(Thing t)
{
if (t.parentCard?.trait is TraitChestMerchant || t.trait is TraitTool || t.IsThrownWeapon)
{
public static bool DamageEle(Card CC, EffectId id, int power, Element e, List<Po
}
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 (list5.Count > 0)
if (list6.Count > 0)
{
thing4 = list5.RandomItem();
thing4 = list6.RandomItem();
if (thing4.Num > 1)
{
thing4 = thing4.Split(1);
public static bool DamageEle(Card CC, EffectId id, int power, Element e, List<Po
List<Thing> list = new List<Thing>();
TC.things.Foreach(delegate(Thing t)
{
int num13 = 0;
int num14 = 0;
if ((t.isEquipped || t.IsRangedWeapon || blessed) && t.blessedState < BlessedState.Normal)
{
if (t.blessedState == BlessedState.Cursed)
{
num13 = EClass.rnd(200);
num14 = EClass.rnd(200);
}
if (t.blessedState == BlessedState.Doomed)
{
num13 = EClass.rnd(1000);
num14 = EClass.rnd(1000);
}
if (blessed)
{
num13 /= 2;
num14 /= 2;
}
if (id == EffectId.UncurseEQGreater)
{
num13 /= 10;
num14 /= 10;
}
if (power >= num13)
if (power >= num14)
{
TC.Say("uncurseEQ_success", t);
t.SetBlessedState(BlessedState.Normal);
public static bool DamageEle(Card CC, EffectId id, int power, Element e, List<Po
text3 = text4;
}
}
Condition condition2 = Condition.Create(text3, power, delegate(Condition con)
Condition condition = Condition.Create(text3, power, delegate(Condition con)
{
if (!actRef.aliasEle.IsEmpty())
{
con.SetElement(EClass.sources.elements.alias[actRef.aliasEle].id);
}
});
condition2.isPerfume = TC.IsPC && actRef.isPerfume;
Condition condition3 = TC.AddCondition(condition2);
if (condition3 != null && condition3.isPerfume)
condition.isPerfume = TC.IsPC && actRef.isPerfume;
Condition condition2 = TC.AddCondition(condition);
if (condition2 != null && condition2.isPerfume)
{
condition3.value = 3;
condition2.value = 3;
Msg.Say("perfume", TC);
}
if (!text4.IsEmpty())
public static bool DamageEle(Card CC, EffectId id, int power, Element e, List<Po
{
EClass.game.religions.Trickery.Talk("ability");
bool hex = CC.IsHostile(TC);
List<SourceStat.Row> list8 = EClass.sources.stats.rows.Where((SourceStat.Row con) => con.tag.Contains("random") && con.group == (hex ? "Debuff" : "Buff")).ToList();
List<SourceStat.Row> list7 = 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++)
{
SourceStat.Row row2 = list8.RandomItem();
list8.Remove(row2);
SourceStat.Row row2 = list7.RandomItem();
list7.Remove(row2);
Proc(hex ? EffectId.DebuffKizuami : EffectId.Buff, CC, TC, power2, new ActRef
{
n1 = row2.alias
public static bool DamageEle(Card CC, EffectId id, int power, Element e, List<Po
power = power * 2 / 3;
}
int a2 = power;
int num8 = TC.WIL * (isPowerful ? 20 : 5);
ConHolyVeil condition = TC.GetCondition<ConHolyVeil>();
if (condition != null)
int num10 = TC.WIL * (isPowerful ? 20 : 5);
ConHolyVeil condition3 = TC.GetCondition<ConHolyVeil>();
if (condition3 != null)
{
num8 += condition.power * 5;
num10 += condition3.power * 5;
}
if (id != EffectId.DebuffKizuami && EClass.rnd(a2) < num8 / EClass.sources.stats.alias[n].hexPower && EClass.rnd(10) != 0)
if (id != EffectId.DebuffKizuami && EClass.rnd(a2) < num10 / EClass.sources.stats.alias[n].hexPower && EClass.rnd(10) != 0)
{
TC.Say("debuff_resist", TC);
CC.DoHostileAction(TC);
public static bool DamageEle(Card CC, EffectId id, int power, Element e, List<Po
tc.bio.SetGender(gender2);
tc.Say("transGender", tc, Gender.Name(tc.bio.gender));
tc.Talk("tail");
int age = tc.bio.GetAge(tc.Chara);
if (blessed && age > 1)
int age2 = tc.bio.GetAge(tc.Chara);
if (blessed && age2 > 1)
{
tc.Say("ageDown", tc);
tc.bio.SetAge(tc.Chara, age - 1);
tc.bio.SetAge(tc.Chara, age2 - 1);
}
else if (flag)
{
tc.Say("ageUp", tc);
tc.bio.SetAge(tc.Chara, age + 1);
tc.bio.SetAge(tc.Chara, age2 + 1);
}
break;
}
public static bool DamageEle(Card CC, EffectId id, int power, Element e, List<Po
{
tc.PlaySound("mutation");
tc.PlayEffect("mutation");
int age3 = tc.bio.GetAge(tc.Chara);
if (!flag && age3 <= 0)
int age = tc.bio.GetAge(tc.Chara);
if (!flag && age <= 0)
{
tc.SayNothingHappans();
break;
}
age3 = Mathf.Max(0, age3 * 100 / (flag ? 75 : (blessed ? 400 : 200))) + (flag ? 1 : 0);
age = Mathf.Max(0, age * 100 / (flag ? 75 : (blessed ? 400 : 200))) + (flag ? 1 : 0);
tc.Say(flag ? "ageUp" : "ageDown", tc);
tc.bio.SetAge(tc.Chara, age3);
tc.bio.SetAge(tc.Chara, age);
break;
}
case EffectId.EternalYouth:
public static bool DamageEle(Card CC, EffectId id, int power, Element e, List<Po
tc.SayNothingHappans();
break;
}
int age2 = tc.bio.GetAge(tc.Chara);
int age3 = tc.bio.GetAge(tc.Chara);
if (flag)
{
if (tc.c_lockedAge != 0)
public static bool DamageEle(Card CC, EffectId id, int power, Element e, List<Po
tc.Say("eternalYouth2", tc);
tc.c_lockedAge = 0;
tc.elements.Remove(1243);
tc.bio.SetAge(tc.Chara, age2);
tc.bio.SetAge(tc.Chara, age3);
}
Redirect(EffectId.Youth, BlessedState.Cursed, default(ActRef));
}
public static bool DamageEle(Card CC, EffectId id, int power, Element e, List<Po
{
tc.PlaySound("dropRewardXmas");
tc.Say("eternalYouth1", tc);
tc.c_lockedAge = age2 + 1;
tc.c_lockedAge = age3 + 1;
tc.elements.SetBase(1243, 1);
if (blessed)
{
public static bool DamageEle(Card CC, EffectId id, int power, Element e, List<Po
case EffectId.DamageMindGreat:
case EffectId.Weaken:
{
bool flag9 = id == EffectId.DamageBody || id == EffectId.DamageBodyGreat;
bool flag7 = 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)));
int num7 = ((id == EffectId.DamageBody || id == EffectId.DamageMind) ? 1 : (4 + EClass.rnd(4)));
if (id == EffectId.Weaken)
{
flag9 = EClass.rnd(2) == 0;
mind = !flag9;
num9 = 1;
flag7 = EClass.rnd(2) == 0;
mind = !flag7;
num7 = 1;
}
else
{
TC.PlayEffect("debuff");
TC.PlaySound("debuff");
}
TC.Say(flag9 ? "damageBody" : "damageMind", TC);
for (int k = 0; k < num9; k++)
TC.Say(flag7 ? "damageBody" : "damageMind", TC);
for (int k = 0; k < num7; k++)
{
TC.DamageTempElements(power, flag9, mind, id != EffectId.Weaken);
TC.DamageTempElements(power, flag7, mind, id != EffectId.Weaken);
}
if (TC.IsPC)
{
public static bool DamageEle(Card CC, EffectId id, int power, Element e, List<Po
case EffectId.RestoreBody:
case EffectId.RestoreMind:
{
bool flag7 = id == EffectId.RestoreBody;
bool flag8 = id == EffectId.RestoreBody;
if (flag)
{
Redirect(flag7 ? EffectId.DamageBodyGreat : EffectId.DamageMindGreat, BlessedState.Normal, default(ActRef));
Redirect(flag8 ? EffectId.DamageBodyGreat : EffectId.DamageMindGreat, BlessedState.Normal, default(ActRef));
break;
}
TC.Say(flag7 ? "restoreBody" : "restoreMind", TC);
TC.Say(flag8 ? "restoreBody" : "restoreMind", TC);
TC.PlaySound("heal");
TC.PlayEffect("heal");
TC.CureHost(flag7 ? CureType.CureBody : CureType.CureMind, power, state);
TC.CureHost(flag8 ? CureType.CureBody : CureType.CureMind, power, state);
if (blessed)
{
Redirect(flag7 ? EffectId.EnhanceBodyGreat : EffectId.EnhanceMindGreat, BlessedState.Normal, default(ActRef));
Redirect(flag8 ? EffectId.EnhanceBodyGreat : EffectId.EnhanceMindGreat, BlessedState.Normal, default(ActRef));
}
break;
}
public static bool DamageEle(Card CC, EffectId id, int power, Element e, List<Po
{
Debug.Log(actRef.act.id);
}
int num7 = Dice.Create((actRef.act != null && EClass.sources.calc.map.ContainsKey(actRef.act.ID)) ? actRef.act.ID : "SpHealLight", power, CC, (actRef.refThing != null) ? null : actRef.act).Roll();
int num12 = Dice.Create((actRef.act != null && EClass.sources.calc.map.ContainsKey(actRef.act.ID)) ? actRef.act.ID : "SpHealLight", power, CC, (actRef.refThing != null) ? null : actRef.act).Roll();
if (actRef.refThing != null)
{
num7 = num7 * (100 + actRef.refThing.Evalue(750) * 10) / 100;
num12 = num12 * (100 + actRef.refThing.Evalue(750) * 10) / 100;
}
if (flag)
{
TC.DamageHP(num7 / 2, 919, power);
TC.DamageHP(num12 / 2, 919, power);
break;
}
TC.HealHPHost(num7, (actRef.refThing == null && id != EffectId.JureHeal) ? HealSource.Magic : HealSource.Item);
TC.HealHPHost(num12, (actRef.refThing == null && id != EffectId.JureHeal) ? HealSource.Magic : HealSource.Item);
TC.CureHost(CureType.Heal, power, state);
TC.Say((power >= 300) ? "heal_heavy" : "heal_light", TC);
break;
public static bool DamageEle(Card CC, EffectId id, int power, Element e, List<Po
if (TC.HasElement(1211))
{
TC.Say("drinkSaltWater_snail", TC);
int num12 = ((TC.hp > 10) ? (TC.hp - EClass.rnd(10)) : 10000);
TC.DamageHP(num12, AttackSource.None, CC);
int num11 = ((TC.hp > 10) ? (TC.hp - EClass.rnd(10)) : 10000);
TC.DamageHP(num11, AttackSource.None, CC);
}
else if (TC.IsPC)
{
public static bool DamageEle(Card CC, EffectId id, int power, Element e, List<Po
{
power /= 4;
}
List<Thing> list7 = TC.things.List((Thing t) => (t.Num <= 1 && t.IsEquipmentOrRanged && !t.IsToolbelt && !t.IsLightsource && t.isEquipped) ? true : false);
if (list7.Count != 0)
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)
{
Thing thing5 = list7.RandomItem();
Thing thing5 = list8.RandomItem();
TC.Say("acid_hit", TC);
if (thing5.isAcidproof)
{
Chara
public void RemoveGlobal()
{
if (IsGlobal && !(trait is TraitUniqueChara) && !base.IsUnique && !EClass.game.cards.listAdv.Contains(this))
if (IsGlobal)
{
global = null;
EClass.game.cards.globalCharas.Remove(this);
EffectId
LittleSisterMigration = 305,
ReturnVoid = 306,
Bit = 307,
Rocket = 308
Rocket = 308,
StripBlessing = 309
}
FactionBranch
public void BanishMember(Chara c, bool skipMsg = false)
{
Msg.Say("banish", c, EClass._zone.Name);
}
if (c.trait.RemoveGlobalOnBanish)
{
c.RemoveGlobal();
}
if (c.IsGlobal)
{
c.OnBanish();
public void RemoveMemeber(Chara c)
c.currentZone.map.props.sales.Remove(c);
}
c.RefreshWorkElements();
c.RemoveGlobal();
if (!(c.trait is TraitUniqueChara) && !c.IsUnique && !EClass.game.cards.listAdv.Contains(c))
{
c.RemoveGlobal();
}
members.Remove(c);
EClass.pc.faction.charaElements.OnRemoveMember(c);
c.SetFaction(EClass.game.factions.Wilds);
SPELL
{
public const int hand_Impact = 50415;
public const int hand_Void = 50416;
public const int sword_Nether = 51006;
public const int bit_Nether = 51106;
public const int hand_Holy = 50409;
public const int arrow_Void = 50516;
public const int hand_Void = 50416;
public const int arrow_Holy = 50509;
public const int sword_Nether = 51006;
public const int arrow_Void = 50516;
public const int weapon_Nether = 50806;
public const int bit_Mind = 51104;
public const int ball_Poison = 50105;
public const int puddle_Void = 50916;
public const int ball_Poison = 50105;
public const int weapon_Void = 50816;
public const int bolt_Poison = 50305;
public const int sword_Poison = 51005;
public const int bit_Poison = 51105;
public const int miasma_Void = 50716;
public const int bit_Poison = 51105;
public const int ball_Nether = 50106;
public const int funnel_Void = 50616;
public const int bit_Darkness = 51103;
public const int SpHealCritical = 8402;
public const int SpHeal = 8403;
public const int SpHealEris = 8404;
public const int SpHero = 8504;
public const int SpResEle = 8506;
public const int SpInvisibility = 8775;
public const int SpTelepathy = 8770;
public const int SpSpeedDown = 8710;
public const int SpBane = 8706;
public const int SpNightmare = 8705;
public const int SpHealCritical = 8402;
public const int SpHealHeavy = 8401;
public const int SpNightmare = 8705;
public const int SpWeakResEle = 8704;
public const int SpWeakness = 8702;
public const int SpSilence = 8700;
public const int SpBreath = 8507;
public const int SpResEle = 8506;
public const int SpWeakness = 8702;
public const int SpWeakResEle = 8704;
public const int SpInvisibility = 8775;
public const int SpHealHeavy = 8401;
public const int SpHealLight = 8400;
public const int SpMutation = 8380;
public const int SpWish = 8390;
public const int ball_ = 7001;
public const int SpReturn = 8220;
public const int bolt_ = 7002;
public const int SpGate = 8202;
public const int hand_ = 7003;
public const int SpTeleportShort = 8201;
public const int arrow_ = 7004;
public const int SpTeleport = 8200;
public const int funnel_ = 7005;
public const int puddle_ = 7800;
public const int miasma_ = 7006;
public const int bit_ = 7009;
public const int weapon_ = 7007;
public const int SpEvac = 8221;
public const int sword_ = 7008;
public const int bit_ = 7009;
public const int miasma_ = 7006;
public const int puddle_ = 7800;
public const int funnel_ = 7005;
public const int SpTeleport = 8200;
public const int arrow_ = 7004;
public const int SpTeleportShort = 8201;
public const int hand_ = 7003;
public const int SpGate = 8202;
public const int bolt_ = 7002;
public const int SpReturn = 8220;
public const int ball_ = 7001;
public const int SpEvac = 8221;
public const int weapon_ = 7007;
public const int SpSeeInvisible = 8776;
public const int SpIdentify = 8230;
public const int SpIdentifyG = 8232;
public const int SpUncurse = 8240;
public const int SpMutation = 8380;
public const int SpLevitate = 8300;
public const int SpChangeMaterialLesser = 8284;
public const int SpFaith = 8281;
public const int SpIdentifyG = 8232;
public const int SpWish = 8390;
public const int SpFaith = 8281;
public const int SpLighten = 8280;
public const int SpMagicMap = 8260;
public const int SpEnchantArmorGreat = 8256;
public const int SpUncurseG = 8241;
public const int SpUncurse = 8240;
public const int SpMagicMap = 8260;
public const int SpLighten = 8280;
public const int SpSeeInvisible = 8776;
public const int ball_Mind = 50104;
public const int SpIncognito = 8780;
public const int SpTransmuteBroom = 8790;
public const int SpTransmutePutit = 8791;
public const int puddle_Fire = 50900;
public const int arrow_Fire = 50500;
public const int SpSummonShubKid = 9010;
public const int SpSummonTako = 9009;
public const int SpSummonFish = 9008;
public const int SpSummonPawn = 9005;
public const int SpSummonMonster = 9004;
public const int SpSummonShadow = 9050;
public const int SpSummonShubKid = 9010;
public const int SpSummonMonster = 9004;
public const int SpSummonTentacle = 9003;
public const int SpSummonFire = 9002;
public const int SpSummonUndeadSister = 9001;
public const int SpTransmuteCat = 8792;
public const int SpTransmutePutit = 8791;
public const int SpSummonFire = 9002;
public const int SpSummonTentacle = 9003;
public const int ball_Mind = 50104;
public const int SpTransmuteBroom = 8790;
public const int SpSummonShadow = 9050;
public const int SpSummonTidalWave = 9051;
public const int SpSummonTrooper = 9052;
public const int SpMeteor = 9150;
public const int hand_Fire = 50400;
public const int SpDrawMetal = 9502;
public const int SpSummonTidalWave = 9051;
public const int SpSummonTrooper = 9052;
public const int SpDrawMonster = 9501;
public const int SpStripBlessing = 9210;
public const int SpShutterHex = 9200;
public const int SpExterminate = 9160;
public const int SpEarthquake = 9151;
public const int SpMeteor = 9150;
public const int SpWardMonster = 9500;
public const int bit_Void = 51116;
public static readonly int[] IDS = new int[268]
public static readonly int[] IDS = new int[269]
{
50415, 50416, 51106, 50107, 50316, 50307, 50407, 50507, 50607, 50707,
50415, 51006, 51106, 50107, 50316, 50307, 50407, 50507, 50607, 50707,
50807, 50907, 51007, 51107, 50108, 50308, 50408, 50508, 50608, 50708,
50808, 50908, 51008, 51108, 50109, 50116, 50309, 50409, 50516, 50509,
51006, 50806, 50404, 50504, 50604, 50704, 50804, 50904, 51004, 51104,
50105, 50916, 50816, 50305, 50405, 50906, 50505, 50705, 50805, 50905,
51005, 51105, 50716, 50106, 50616, 50306, 50406, 50506, 50606, 50706,
50808, 50908, 51008, 51108, 50109, 50116, 50309, 50409, 50416, 50509,
50516, 50806, 50404, 50504, 50604, 50704, 50804, 50904, 51004, 51104,
50916, 50105, 50816, 50305, 50405, 50906, 50505, 50705, 50805, 50905,
51005, 50716, 51105, 50106, 50616, 50306, 50406, 50506, 50606, 50706,
50605, 50609, 50709, 50809, 50912, 51012, 51112, 50113, 50815, 50304,
50413, 50513, 50613, 50713, 50813, 50913, 51013, 50812, 51113, 50715,
50314, 50414, 50514, 50614, 50714, 50814, 50914, 51014, 51114, 50115,
50615, 50315, 50114, 50712, 50612, 50512, 50909, 51009, 51109, 50110,
51115, 50310, 50410, 50510, 50610, 50710, 50810, 50910, 51010, 51110,
50111, 51015, 50311, 50411, 50511, 50611, 50711, 50811, 50911, 51011,
51111, 50112, 50915, 50312, 50412, 50515, 50313, 50101, 51103, 8402,
8403, 8404, 8405, 8406, 8430, 8450, 8470, 8471, 8480, 8490,
8491, 8500, 8501, 8502, 8503, 8504, 8770, 8710, 8708, 8707,
8706, 8705, 8401, 8704, 8700, 8555, 8550, 8510, 8507, 8506,
8702, 8775, 8400, 8380, 7001, 7002, 7003, 7004, 7005, 7006,
7007, 7008, 7009, 7800, 8200, 8201, 8202, 8220, 8221, 8230,
8232, 8300, 8288, 8286, 8285, 8284, 8281, 8390, 8280, 8256,
8255, 8251, 8250, 8241, 8240, 8260, 8776, 8780, 8790, 50900,
51000, 51100, 50301, 50401, 50501, 50601, 50701, 50801, 50901, 51001,
51101, 50102, 50302, 50402, 50502, 50602, 51003, 50903, 50803, 50703,
50603, 50503, 50800, 50403, 50103, 51102, 51002, 50902, 50802, 50702,
50303, 50700, 50600, 50500, 9009, 9008, 9007, 9006, 9005, 9004,
9010, 9003, 9001, 9000, 8801, 8800, 8792, 8791, 9002, 50104,
9050, 9052, 50400, 50300, 51016, 50100, 9503, 9502, 9051, 9501,
9200, 9160, 9156, 9155, 9151, 9150, 9500, 51116
51111, 50112, 50915, 50312, 50412, 50515, 50313, 50101, 51103, 8403,
8404, 8405, 8406, 8430, 8450, 8470, 8471, 8480, 8490, 8491,
8500, 8501, 8502, 8503, 8504, 8506, 8775, 8770, 8710, 8708,
8707, 8706, 8402, 8705, 8702, 8700, 8555, 8550, 8510, 8507,
8704, 8401, 8400, 8390, 8220, 8202, 8201, 8200, 7800, 7009,
8221, 7008, 7006, 7005, 7004, 7003, 7002, 7001, 7007, 8776,
8230, 8240, 8380, 8300, 8288, 8286, 8285, 8284, 8232, 8281,
8260, 8256, 8255, 8251, 8250, 8241, 8280, 50104, 8780, 8791,
50900, 51000, 51100, 50301, 50401, 50501, 50601, 50701, 50801, 50901,
51001, 51101, 50102, 50302, 50402, 50502, 50602, 51003, 50903, 50803,
50703, 50603, 50503, 50800, 50403, 50103, 51102, 51002, 50902, 50802,
50702, 50303, 50700, 50600, 50500, 9010, 9009, 9008, 9007, 9006,
9005, 9050, 9004, 9002, 9001, 9000, 8801, 8800, 8792, 9003,
8790, 9051, 9150, 50400, 50300, 51016, 50100, 9503, 9502, 9052,
9501, 9210, 9200, 9160, 9156, 9155, 9151, 9500, 51116
};
}
public class Spell : Ability
Trait
public virtual int CostRerollShop
public virtual string LangBarter => "daBuy";
public virtual bool RemoveGlobalOnBanish => false;
public string TextNextRestock => GetTextRestock(LangBarter, pet: false);
public string TextNextRestockPet => GetTextRestock((SlaverType == SlaverType.Slave) ? "daBuySlave" : "daBuyPet", pet: true);
TraitBigDaddy
public override int MaxRandomAbility
return 3;
}
}
public override bool RemoveGlobalOnBanish => true;
}
TraitLittleOne
public class TraitLittleOne : TraitChara
public override bool CanInvite => false;
public override bool IsCountAsResident => true;
public override bool RemoveGlobalOnBanish => true;
}