EA 23.220 Nightly
October 16, 2025
32 files modified. 3 new files created.
Important Changes
None.
ABILITY
public class ABILITY
{
public const int ActPick = 5047;
public const int AI_OpenLock = 5049;
public const int ActItem = 5048;
public const int AI_OpenLock = 5049;
public const int AI_Sleep = 5050;
public const int ActZap = 5051;
public const int ActDreamBug = 6020;
public const int ActPray = 6050;
public const int ActTouchSleep = 6612;
public const int ActFear = 6611;
public const int ActWeaken = 6610;
public const int ActCryRage = 6604;
public const int ActNTR = 6603;
public const int ActPick = 5047;
public const int ActInstall = 5046;
public const int ActDraw = 6602;
public const int ActEntangle = 6601;
public const int ActCurse = 6600;
public const int ActCrabBreathe = 6500;
public const int ActEscape = 6400;
public const int ActPray = 6050;
public const int ActCurse = 6600;
public const int ActEntangle = 6601;
public const int ActTouchSleep = 6612;
public const int ActInstall = 5046;
public const int AI_Drink = 5045;
public const int AI_TendAnimal = 5043;
public const int ActChat = 5044;
public const int Ranged = 5003;
public const int AI_Grab = 5025;
public const int Melee = 5002;
public const int AI_Eat = 5024;
public const int ActMelee = 5001;
public const int TaskGoOut = 5023;
public const int ActWait = 5000;
public const int TaskSleepOnBed = 5022;
public const int TaskTame = 5016;
public const int TaskTrain = 5021;
public const int TaskTalk = 5017;
public const int TaskFarm = 5020;
public const int TaskPick = 5018;
public const int AI_Haul = 5026;
public const int TaskReadBoard = 5019;
public const int TaskFarm = 5020;
public const int ActWait = 5000;
public const int TaskTrain = 5021;
public const int ActMelee = 5001;
public const int TaskSleepOnBed = 5022;
public const int Melee = 5002;
public const int TaskGoOut = 5023;
public const int Ranged = 5003;
public const int AI_Eat = 5024;
public const int Sleep = 5004;
public const int AI_Grab = 5025;
public const int Wait = 5005;
public const int AI_Haul = 5026;
public const int TaskPick = 5018;
public const int ActTouchDrown = 6613;
public const int GoalSleep = 5027;
public const int ActReleaseHeld = 5028;
public const int AI_Offer = 5029;
public const int AI_TendAnimal = 5043;
public const int ActKick = 5042;
public const int ActThrow = 5038;
public const int ActNoItem = 5037;
public const int ActReleaseHeld = 5028;
public const int ActChat = 5044;
public const int ActNoItem = 5037;
public const int TaskMoveInstalled = 5036;
public const int TaskBuild = 5035;
public const int GoalIdle = 5034;
public const int AI_ReleaseHeld = 5030;
public const int AI_Offer = 5029;
public const int TaskMoveInstalled = 5036;
public const int TaskBuild = 5035;
public const int ActGazeDim = 6620;
public const int ActTouchDrown = 6613;
public const int ActNTR = 6603;
public const int ActDraw = 6602;
public const int ActGazeMutation = 6622;
public const int ActGazeInsane = 6621;
public const int breathe_Cold = 50201;
public const int breathe_Lightning = 50202;
public const int breathe_Chaos = 50210;
public const int ActGazeDim = 6620;
public const int ActGazeInsane = 6621;
public const int breathe_Ether = 50212;
public const int breathe_Acid = 50213;
public const int breathe_Cut = 50214;
public const int breathe_Fire = 50200;
public const int breathe_Impact = 50215;
public const int breathe_Cut = 50214;
public const int breathe_Void = 50216;
public const int Sleep = 5004;
public const int Wait = 5005;
public const int Shoot = 5006;
public const int Use = 5007;
public const int TaskAttack = 5015;
public const int breathe_Cold = 50201;
public const int TaskTame = 5016;
public const int breathe_Fire = 50200;
public const int TaskTalk = 5017;
public const int breathe_Magic = 50211;
public const int breathe_Impact = 50215;
public const int ActHeadpat = 6904;
public const int breathe_ = 7000;
public const int ActGazeMana = 6623;
public const int breathe_Magic = 50211;
public const int ActKizuamiTrick = 6903;
public const int ActDrainBlood = 6626;
public const int ActStealFood = 6641;
public const int breathe_ = 7000;
public const int ActStealMoney = 6642;
public const int ActGazeMutation = 6622;
public const int ActHeadpat = 6904;
public const int ActDropMine = 6660;
public const int ActNeckHunt = 6650;
public const int ActGazeMana = 6623;
public const int ActThrowPotion = 6661;
public const int ActSwarm = 6662;
public const int ActNeckHunt = 6650;
public const int ActMultiHit = 6663;
public const int ActBladeStorm = 6664;
public const int ActDropMine = 6660;
public const int ActBladeStorm2 = 6665;
public const int ActWhirlwind = 6666;
public const int ActKizuamiTrick = 6903;
public const int ActMissileBarrage = 6667;
public const int ActSummonSpecial = 6800;
public const int ActManaAbsorb = 6900;
public const int ActMultiHit = 6663;
public const int SongValor = 6752;
public const int ActBladeStorm = 6664;
public const int StManaCost = 6720;
public const int SongTulip = 6751;
public static readonly int[] IDS = new int[129]
public static readonly int[] IDS = new int[131]
{
5047, 5048, 5049, 5050, 5051, 5052, 5053, 5054, 5055, 6001,
6003, 6011, 6012, 6013, 6015, 6018, 6019, 6020, 6611, 6610,
6606, 6605, 6604, 6603, 5046, 6601, 6500, 6450, 6420, 6410,
6400, 6050, 6600, 6612, 5045, 5043, 5003, 5002, 5001, 5000,
5016, 5017, 5018, 5019, 5020, 5021, 5022, 5023, 5024, 5025,
5026, 5027, 5028, 5042, 5041, 5040, 5039, 5038, 5037, 5044,
5036, 5034, 5033, 5032, 5031, 5030, 5029, 5035, 6613, 6602,
6621, 50202, 50203, 50204, 50205, 50206, 50207, 50208, 50209, 50210,
6620, 50212, 50213, 50214, 50215, 50216, 5004, 5005, 5006, 5007,
5008, 5009, 5010, 5011, 5012, 5013, 5014, 5015, 50201, 50200,
50211, 6904, 6623, 6626, 6627, 6630, 6631, 6640, 6641, 7000,
6642, 6622, 6660, 6661, 6662, 6650, 6664, 6665, 6666, 6903,
6800, 6700, 6902, 6901, 6900, 6663, 6720, 6750, 6751
5049, 5048, 5050, 5051, 5052, 5053, 5054, 5055, 6001, 6003,
6011, 6012, 6013, 6015, 6018, 6019, 6020, 6050, 6612, 6611,
6610, 6606, 6605, 6604, 5047, 6602, 6600, 6500, 6450, 6420,
6410, 6400, 6601, 5046, 5045, 5044, 5025, 5024, 5023, 5022,
5021, 5020, 5026, 5019, 5000, 5001, 5002, 5003, 5004, 5005,
5018, 6613, 5027, 5029, 5043, 5042, 5041, 5040, 5039, 5038,
5028, 5037, 5035, 5034, 5033, 5032, 5031, 5030, 5036, 6620,
6603, 6622, 50201, 50202, 50203, 50204, 50205, 50206, 50207, 50208,
50209, 50210, 6621, 50212, 50213, 50200, 50214, 50216, 5006, 5007,
5008, 5009, 5010, 5011, 5012, 5013, 5014, 5015, 5016, 5017,
50215, 7000, 50211, 6903, 6626, 6627, 6630, 6631, 6640, 6641,
6642, 6904, 6650, 6623, 6661, 6662, 6663, 6660, 6665, 6666,
6667, 6800, 6700, 6902, 6901, 6900, 6752, 6664, 6720, 6750,
6751
};
}
public class Ability : Act
ActEffect
public static bool DamageEle(Card CC, EffectId id, int power, Element e, List<Po
case EffectId.Earthquake:
case EffectId.Suicide:
case EffectId.Rocket:
case EffectId.Flare:
num4 /= 2;
break;
}
public static bool DamageEle(Card CC, EffectId id, int power, Element e, List<Po
{
case EffectId.Earthquake:
{
List<Point> list3 = EClass._map.ListPointsInCircle(CC.pos, 12f, mustBeWalkable: false);
if (list3.Count == 0)
List<Point> list = EClass._map.ListPointsInCircle(CC.pos, 12f, mustBeWalkable: false);
if (list.Count == 0)
{
list3.Add(CC.pos.Copy());
list.Add(CC.pos.Copy());
}
CC.Say("spell_earthquake", CC, element.Name.ToLower());
TryDelay(delegate
public static bool DamageEle(Card CC, EffectId id, int power, Element e, List<Po
Shaker.ShakeCam("ball");
}
EClass.Wait(1f, CC);
DamageEle(CC, id, power, element, list3, actRef, "spell_earthquake");
DamageEle(CC, id, power, element, list, actRef, "spell_earthquake");
break;
}
case EffectId.Meteor:
public static bool DamageEle(Card CC, EffectId id, int power, Element e, List<Po
EffectMeteor.Create(cc.pos, 6, 10, delegate
{
});
List<Point> list2 = EClass._map.ListPointsInCircle(CC.pos, 10f);
if (list2.Count == 0)
List<Point> list3 = EClass._map.ListPointsInCircle(CC.pos, 10f);
if (list3.Count == 0)
{
list2.Add(CC.pos.Copy());
list3.Add(CC.pos.Copy());
}
CC.Say("spell_ball", CC, element.Name.ToLower());
TryDelay(delegate
public static bool DamageEle(Card CC, EffectId id, int power, Element e, List<Po
Shaker.ShakeCam("ball");
}
EClass.Wait(1f, CC);
DamageEle(CC, id, power, element, list2, actRef, "spell_ball");
DamageEle(CC, id, power, element, list3, actRef, "spell_ball");
return;
}
case EffectId.Hand:
public static bool DamageEle(Card CC, EffectId id, int power, Element e, List<Po
case EffectId.DrainMana:
case EffectId.Sword:
{
List<Point> list7 = new List<Point>();
list7.Add(tp.Copy());
List<Point> list2 = new List<Point>();
list2.Add(tp.Copy());
EClass.Wait(0.3f, CC);
TryDelay(delegate
{
CC.PlaySound("spell_hand");
});
if (!DamageEle(CC, id, power, element, list7, actRef, (id == EffectId.DrainBlood || id == EffectId.DrainMana) ? "" : ((id == EffectId.Sword) ? "spell_sword" : "spell_hand")))
if (!DamageEle(CC, id, power, element, list2, actRef, (id == EffectId.DrainBlood || id == EffectId.DrainMana) ? "" : ((id == EffectId.Sword) ? "spell_sword" : "spell_hand")))
{
CC.Say("spell_hand_miss", CC, element.Name.ToLower());
}
public static bool DamageEle(Card CC, EffectId id, int power, Element e, List<Po
case EffectId.MoonSpear:
case EffectId.MoonArrow:
{
List<Point> list = new List<Point>();
list.Add(tp.Copy());
List<Point> list7 = new List<Point>();
list7.Add(tp.Copy());
CC.Say((id == EffectId.MoonSpear) ? "spell_spear" : "spell_arrow", CC, element.Name.ToLower());
EClass.Wait(0.5f, CC);
TryDelay(delegate
{
CC.PlaySound((id == EffectId.MoonSpear) ? "spell_moonspear" : "spell_arrow");
});
DamageEle(CC, id, power, element, list, actRef, (id == EffectId.MoonSpear) ? "spell_spear" : "spell_arrow");
DamageEle(CC, id, power, element, list7, actRef, (id == EffectId.MoonSpear) ? "spell_spear" : "spell_arrow");
return;
}
case EffectId.Summon:
public static bool DamageEle(Card CC, EffectId id, int power, Element e, List<Po
string id3 = actRef.n1;
int num3 = 1;
int num4 = -1;
int radius = 3;
bool flag3 = false;
bool flag4 = actRef.n1 == "special";
int radius2 = 3;
bool flag4 = false;
bool flag5 = actRef.n1 == "special";
int num5 = -1;
string text = "";
switch (actRef.n1)
public static bool DamageEle(Card CC, EffectId id, int power, Element e, List<Po
break;
case "tentacle":
num4 = 20 + EClass.rnd(10);
radius = 1;
radius2 = 1;
break;
case "special":
CC.SetInt(70, EClass.world.date.GetRaw() + 1440);
public static bool DamageEle(Card CC, EffectId id, int power, Element e, List<Po
{
break;
}
Point point = tp.GetRandomPoint(radius)?.GetNearestPoint(allowBlock: false, allowChara: false);
Point point = tp.GetRandomPoint(radius2)?.GetNearestPoint(allowBlock: false, allowChara: false);
if (point == null || !point.IsValid)
{
continue;
}
Chara chara = null;
Chara chara2 = null;
CardBlueprint.Set(new CardBlueprint());
if (num5 != -1)
{
public static bool DamageEle(Card CC, EffectId id, int power, Element e, List<Po
case "special":
if (j == 0 && !CC.HasMinion("imolonac") && !CC.HasMinion("ygolonac"))
{
chara = CharaGen.Create((EClass.rnd(20) == 0) ? "imolonac" : "ygolonac");
chara2 = CharaGen.Create((EClass.rnd(20) == 0) ? "imolonac" : "ygolonac");
break;
}
Debug.Log(CardBlueprint.current.idEle);
chara = CharaGen.Create("hound", CC.LV);
chara2 = CharaGen.Create("hound", CC.LV);
if (text.IsEmpty())
{
text = chara.MainElement.source.alias;
text = chara2.MainElement.source.alias;
}
break;
case "yeek":
chara = CharaGen.CreateFromFilter(SpawnListChara.Get("summon_yeek", (SourceChara.Row r) => r.race == "yeek"), power / 10);
chara2 = CharaGen.CreateFromFilter(SpawnListChara.Get("summon_yeek", (SourceChara.Row r) => r.race == "yeek"), power / 10);
break;
case "orc":
chara = CharaGen.CreateFromFilter(SpawnListChara.Get("summon_orc", (SourceChara.Row r) => r.race == "orc"), power / 10);
chara2 = CharaGen.CreateFromFilter(SpawnListChara.Get("summon_orc", (SourceChara.Row r) => r.race == "orc"), power / 10);
break;
case "pawn":
chara = CharaGen.CreateFromFilter("c_pawn", power / 10);
chara2 = CharaGen.CreateFromFilter("c_pawn", power / 10);
break;
case "machine":
chara2 = CharaGen.CreateFromFilter("c_machine", power / 10);
break;
case "monster":
chara = CharaGen.CreateFromFilter("c_dungeon", power / 10);
chara2 = CharaGen.CreateFromFilter("c_dungeon", power / 10);
break;
case "animal":
chara = CharaGen.CreateFromFilter("c_animal", power / 15);
chara2 = CharaGen.CreateFromFilter("c_animal", power / 15);
break;
case "fire":
chara = CharaGen.CreateFromElement("Fire", power / 10);
chara2 = CharaGen.CreateFromElement("Fire", power / 10);
break;
case "fish":
chara = CharaGen.CreateFromFilter(SpawnListChara.Get("summon_fish", (SourceChara.Row r) => r.ContainsTag("water") || r.model.Chara.race.tag.Contains("water")), power / 10);
chara2 = CharaGen.CreateFromFilter(SpawnListChara.Get("summon_fish", (SourceChara.Row r) => r.ContainsTag("water") || r.model.Chara.race.tag.Contains("water")), power / 10);
break;
case "octopus":
chara = CharaGen.CreateFromFilter(SpawnListChara.Get("summon_octopus", (SourceChara.Row r) => r.race == "octopus"), power / 10);
chara2 = CharaGen.CreateFromFilter(SpawnListChara.Get("summon_octopus", (SourceChara.Row r) => r.race == "octopus"), power / 10);
break;
default:
chara = CharaGen.Create(id3, power / 10);
chara2 = CharaGen.Create(id3, power / 10);
break;
}
if (chara == null)
if (chara2 == null)
{
continue;
}
if (chara.rarity >= Rarity.Legendary && !flag4)
if (chara2.rarity >= Rarity.Legendary && !flag5)
{
j--;
continue;
public static bool DamageEle(Card CC, EffectId id, int power, Element e, List<Po
{
if (!(n == "special"))
{
num6 = chara.LV * (100 + power / 10) / 100 + power / 30;
int num7 = 1;
if (!CC.IsPC)
{
num7 = (CC.IsPCFactionOrMinion ? (CC.LV / 2) : (CC.LV / 3 * 2));
}
num6 = chara2.LV * (100 + power / 10) / 100 + power / 30;
if (num6 < num7)
{
num6 = num7;
}
}
}
else
{
num6 = power / 10 + 1;
}
if (chara.LV < num6)
if (chara2.LV < num6)
{
chara.SetLv(num6);
chara2.SetLv(num6);
}
chara.interest = 0;
if (chara.HaveFur())
chara2.interest = 0;
if (chara2.HaveFur())
{
chara.c_fur = -1;
chara2.c_fur = -1;
}
n = actRef.n1;
if (!(n == "shadow"))
{
if (n == "special_force")
{
chara.homeZone = EClass._zone;
chara2.homeZone = EClass._zone;
}
}
else
{
chara.hp = chara.MaxHP / 2;
chara2.hp = chara2.MaxHP / 2;
}
EClass._zone.AddCard(chara, point);
EClass._zone.AddCard(chara2, point);
if (flag)
{
Chara chara2 = chara;
Hostility hostility2 = (chara.c_originalHostility = Hostility.Enemy);
chara2.hostility = hostility2;
Chara chara3 = chara2;
Hostility hostility2 = (chara2.c_originalHostility = Hostility.Enemy);
chara3.hostility = hostility2;
}
else if (!(actRef.n1 == "monster") || actRef.refThing == null)
{
chara.MakeMinion(CC);
chara2.MakeMinion(CC);
}
if (num4 != -1)
{
chara.SetSummon(num4);
chara2.SetSummon(num4);
}
flag3 = true;
flag4 = true;
}
if (!flag3)
if (!flag4)
{
CC.Say("summon_ally_fail", CC);
}
public static bool DamageEle(Card CC, EffectId id, int power, Element e, List<Po
}
CC.Say("spell_funnel", CC, element.Name.ToLower());
CC.PlaySound("spell_funnel");
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.interest = 0;
EClass._zone.AddCard(chara3, tp.GetNearestPoint(allowBlock: false, allowChara: false));
chara3.PlayEffect("teleport");
chara3.MakeMinion(CC);
Chara chara = CharaGen.Create((id == EffectId.Bit) ? "bit2" : "bit");
chara.SetMainElement(element.source.alias, element.Value, elemental: true);
chara.SetSummon(20 + power / 20 + EClass.rnd(10));
chara.SetLv(power / 15);
chara.interest = 0;
EClass._zone.AddCard(chara, tp.GetNearestPoint(allowBlock: false, allowChara: false));
chara.PlayEffect("teleport");
chara.MakeMinion(CC);
return;
}
case EffectId.Breathe:
{
List<Point> list6 = EClass._map.ListPointsInArc(CC.pos, tp, 7, 35f);
if (list6.Count == 0)
List<Point> list4 = EClass._map.ListPointsInArc(CC.pos, tp, 7, 35f);
if (list4.Count == 0)
{
list6.Add(CC.pos.Copy());
list4.Add(CC.pos.Copy());
}
CC.Say("spell_breathe", CC, element.Name.ToLower());
EClass.Wait(0.8f, CC);
public static bool DamageEle(Card CC, EffectId id, int power, Element e, List<Po
{
Shaker.ShakeCam("breathe");
}
DamageEle(CC, id, power, element, list6, actRef, "spell_breathe");
DamageEle(CC, id, power, element, list4, actRef, "spell_breathe");
return;
}
case EffectId.Scream:
public static bool DamageEle(Card CC, EffectId id, int power, Element e, List<Po
case EffectId.BallBubble:
case EffectId.Suicide:
case EffectId.Rocket:
case EffectId.Flare:
{
float radius2 = ((id == EffectId.Rocket) ? 3f : ((id == EffectId.Suicide) ? 3.5f : ((float)((id == EffectId.BallBubble) ? 2 : 5))));
float radius = ((id == EffectId.Rocket) ? 3f : ((id == EffectId.Suicide) ? 3.5f : ((id == EffectId.Flare) ? 2.1f : ((float)((id == EffectId.BallBubble) ? 2 : 5)))));
if ((id == EffectId.Explosive || id == EffectId.Rocket) && actRef.refThing != null)
{
radius2 = 2 + actRef.refThing.Evalue(666);
radius = 2 + actRef.refThing.Evalue(666);
}
if (id == EffectId.Suicide)
{
public static bool DamageEle(Card CC, EffectId id, int power, Element e, List<Po
}
if (CC.HasTag(CTAG.kamikaze))
{
radius2 = 1.5f;
radius = 1.5f;
}
}
bool flag5 = id == EffectId.Explosive || id == EffectId.Suicide || id == EffectId.Rocket;
List<Point> list5 = EClass._map.ListPointsInCircle((id == EffectId.Rocket) ? tp : cc.pos, radius2, !flag5, !flag5);
if (list5.Count == 0)
bool flag3 = id == EffectId.Explosive || id == EffectId.Suicide || id == EffectId.Rocket;
List<Point> list6 = EClass._map.ListPointsInCircle((id == EffectId.Rocket || id == EffectId.Flare) ? tp : cc.pos, radius, !flag3, !flag3);
if (list6.Count == 0)
{
list5.Add(cc.pos.Copy());
list6.Add(cc.pos.Copy());
}
cc.Say((id == EffectId.Suicide) ? "abSuicide" : "spell_ball", cc, element.Name.ToLower());
EClass.Wait(0.8f, cc);
TryDelay(delegate
{
cc.PlaySound("spell_ball");
if (id == EffectId.Flare)
{
tp.PlayEffect("flare");
}
cc.PlaySound((id == EffectId.Flare) ? "spell_flare" : "spell_ball");
});
if (cc.IsInMutterDistance() && !EClass.core.config.graphic.disableShake)
{
Shaker.ShakeCam("ball");
}
DamageEle(actRef.origin ?? cc, id, power, element, list5, actRef, (id == EffectId.Suicide) ? "suicide" : "spell_ball");
DamageEle(actRef.origin ?? cc, id, power, element, list6, actRef, (id == EffectId.Suicide) ? "suicide" : "spell_ball");
if (id == EffectId.Suicide && CC.IsAliveInCurrentZone)
{
CC.Die();
public static bool DamageEle(Card CC, EffectId id, int power, Element e, List<Po
}
case EffectId.Bolt:
{
List<Point> list4 = EClass._map.ListPointsInLine(CC.pos, tp, 10);
if (list4.Count == 0)
List<Point> list5 = EClass._map.ListPointsInLine(CC.pos, tp, 10);
if (list5.Count == 0)
{
list4.Add(CC.pos.Copy());
list5.Add(CC.pos.Copy());
}
CC.Say("spell_bolt", CC, element.Name.ToLower());
EClass.Wait(0.8f, CC);
public static bool DamageEle(Card CC, EffectId id, int power, Element e, List<Po
{
Shaker.ShakeCam("bolt");
}
DamageEle(CC, id, power, element, list4, actRef, "spell_bolt");
DamageEle(CC, id, power, element, list5, actRef, "spell_bolt");
return;
}
case EffectId.Bubble:
public static bool DamageEle(Card CC, EffectId id, int power, Element e, List<Po
break;
case EffectId.StripBlessing:
{
int num13 = 0;
List<Condition> list10 = new List<Condition>();
foreach (Condition condition4 in TC.conditions)
{
if (condition4.Type == ConditionType.Buff)
if (GetBlessingDifficulty(condition4) > 0 && EClass.rnd(GetBlessingDifficulty(condition4)) == 0)
{
num13++;
list10.Add(condition4);
}
}
if (num13 == 0)
if (list10.Count == 0)
{
CC.SayNothingHappans();
break;
public static bool DamageEle(Card CC, EffectId id, int power, Element e, List<Po
TC.pos.PlayEffect("holyveil");
TC.pos.PlaySound("holyveil");
TC.Say("unpolluted", TC);
bool valid = true;
TC.conditions.ForeachReverse(delegate(Condition c)
list10.Shuffle();
{
if (valid && c.Type == ConditionType.Buff)
foreach (Condition item4 in list10)
{
c.Kill();
item4.Kill();
if (CC.IsHostile(TC))
{
valid = false;
break;
}
}
});
break;
break;
}
}
case EffectId.ShutterHex:
{
public static bool DamageEle(Card CC, EffectId id, int power, Element e, List<Po
{
center.PlaySound("shutterhex");
});
foreach (Chara item4 in list5)
foreach (Chara item5 in list5)
{
if (item4.ExistsOnMap)
if (item5.ExistsOnMap)
{
Effect effect = Effect.Get("spell_moonspear");
TrailRenderer componentInChildren = effect.GetComponentInChildren<TrailRenderer>();
Color startColor = (componentInChildren.endColor = EClass.Colors.elementColors["eleHoly"]);
componentInChildren.startColor = startColor;
Point pos = item4.pos.Copy();
Point pos = item5.pos.Copy();
TweenUtil.Delay((float)l * 0.1f, delegate
{
effect.Play(center, 0f, pos);
});
int num9 = Dice.Create("SpShutterHex", power, CC, (actRef.refThing != null) ? null : actRef.act).Roll();
item4.DamageHP(num9, 919, power, AttackSource.None, CC, showEffect: false);
item5.DamageHP(num9, 919, power, AttackSource.None, CC, showEffect: false);
}
}
}
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 num14 = 0;
int num13 = 0;
if ((t.isEquipped || t.IsRangedWeapon || blessed) && t.blessedState < BlessedState.Normal)
{
if (t.blessedState == BlessedState.Cursed)
{
num14 = EClass.rnd(200);
num13 = EClass.rnd(200);
}
if (t.blessedState == BlessedState.Doomed)
{
num14 = EClass.rnd(1000);
num13 = EClass.rnd(1000);
}
if (blessed)
{
num14 /= 2;
num13 /= 2;
}
if (id == EffectId.UncurseEQGreater)
{
num14 /= 10;
num13 /= 10;
}
if (power >= num14)
if (power >= num13)
{
TC.Say("uncurseEQ_success", t);
t.SetBlessedState(BlessedState.Normal);
public static bool DamageEle(Card CC, EffectId id, int power, Element e, List<Po
}
}
});
foreach (Thing item5 in list)
foreach (Thing item6 in list)
{
item5.GetRootCard()?.TryStack(item5);
item6.GetRootCard()?.TryStack(item6);
}
if (success == 0 && fail == 0)
{
public static bool DamageEle(Card CC, EffectId id, int power, Element e, List<Po
Redirect(EffectId.CurseEQ, BlessedState.Normal, default(ActRef));
break;
}
foreach (Condition item6 in TC.conditions.Copy())
foreach (Condition item7 in TC.conditions.Copy())
{
if (item6.Type == ConditionType.Debuff && !item6.IsKilled && EClass.rnd(power * 2) > EClass.rnd(item6.power))
if (item7.Type == ConditionType.Debuff && !item7.IsKilled && EClass.rnd(power * (CC.IsPowerful ? 5 : 2)) > EClass.rnd(item7.power))
{
CC.Say("removeHex", TC, item6.Name.ToLower());
item6.Kill();
CC.Say("removeHex", TC, item7.Name.ToLower());
item7.Kill();
if (id == EffectId.RemoveHex)
{
break;
public static bool DamageEle(Card CC, EffectId id, int power, Element e, List<Po
GeneMiracle(TC, CC, blessed ? DNA.Type.Superior : (flag ? DNA.Type.Brain : DNA.Type.Default));
break;
}
int GetBlessingDifficulty(Condition c)
{
if (c.Type != ConditionType.Buff)
{
return 0;
}
if (!CC.IsHostile(TC))
{
return 1;
}
if (c is ConBoost)
{
return 5;
}
if (c is ConRebirth)
{
return 10;
}
if (c is ConInvulnerable)
{
return 100;
}
return 2;
}
void Redirect(EffectId _id, BlessedState _state, ActRef _ref1)
{
Proc(_id, orgPower, _state, cc, tc, _ref1);
+ActFlare
File Created
public class ActFlare : Spell
{
public override bool CanAutofire => true;
public override bool CanPressRepeat => true;
public override bool CanRapidFire => true;
public override float RapidDelay => 0.3f;
}
+ActMissileBarrage
File Created
using System.Collections.Generic;
using System.Linq;
public class ActMissileBarrage : Ability
{
public override bool Perform()
{
List<Point> list = new List<Point>();
for (int i = 0; i < 10; i++)
{
Point p = Act.CC.pos.GetRandomPointInRadius(4, 9);
if (p != null)
{
IEnumerable<Point> enumerable = list.Where((Point _p) => _p.Equals(p));
if (enumerable != null && enumerable.Count() == 0)
{
list.Add(p);
}
}
}
Act.CC.Say("abMissileBarrage", Act.CC);
if (list.Count > 0)
{
Chara cC = Act.CC;
foreach (Point item in list)
{
Act.CC = cC;
Act.TP.Set(item);
ActEffect.ProcAt(EffectId.Rocket, GetPower(Act.CC) / 2, BlessedState.Normal, Act.CC, null, Act.TP, isNeg: true, new ActRef
{
origin = Act.CC.Chara,
aliasEle = "eleImpact"
});
ActEffect.RapidDelay = 0.05f;
ActEffect.RapidCount++;
}
}
return true;
}
}
Card
public bool HasElementNoCopy()
{
return true;
}
if (HasElement(758))
{
return true;
}
if (HasElement(704))
{
return true;
}
return false;
}
Chara
public void RestockEquip(bool onCreate)
AddThing("gun_laser");
break;
case "rocketman":
AddThing("panzerfaust");
AddThing("panzerfaust").c_ammo = 0;
break;
default:
switch (equip)
public override void Die(Element e = null, Card origin = null, AttackSource atta
{
EClass.player.returnInfo = null;
EClass.player.uidLastTravelZone = 0;
foreach (Chara chara2 in EClass._map.charas)
foreach (Chara chara3 in EClass._map.charas)
{
if (chara2.IsHostile())
if (chara3.IsHostile())
{
chara2.hostility = chara2.OriginalHostility;
chara3.hostility = chara3.OriginalHostility;
}
if (chara2.enemy == EClass.pc)
if (chara3.enemy == EClass.pc)
{
chara2.enemy = null;
chara3.enemy = null;
}
}
if (EClass.pc.things.Find("letter_will") != null && EClass.rnd(10) == 0)
public override void Die(Element e = null, Card origin = null, AttackSource atta
case "big_daddy":
if (!IsPCFaction)
{
Chara t2 = CharaGen.Create("littleOne");
EClass._zone.AddCard(t2, pos.Copy());
Chara chara = CharaGen.Create("littleOne");
EClass._zone.AddCard(chara, pos.Copy());
Msg.Say("little_pop");
chara.AddCondition<ConInvulnerable>();
}
break;
case "shark_sister":
public override void Die(Element e = null, Card origin = null, AttackSource atta
}
if (attackSource == AttackSource.Finish && origin != null && origin.Evalue(665) > 0)
{
Chara chara = CharaGen.CreateFromFilter("c_plant", base.LV);
EClass._zone.AddCard(chara, pos.Copy());
if (chara.LV < base.LV)
Chara chara2 = CharaGen.CreateFromFilter("c_plant", base.LV);
EClass._zone.AddCard(chara2, pos.Copy());
if (chara2.LV < base.LV)
{
chara.SetLv(base.LV);
chara2.SetLv(base.LV);
}
chara.MakeMinion((origin.IsPCParty || origin.IsPCPartyMinion) ? EClass.pc : origin.Chara, MinionType.Friend);
Msg.Say("plant_pop", this, chara);
chara2.MakeMinion((origin.IsPCParty || origin.IsPCPartyMinion) ? EClass.pc : origin.Chara, MinionType.Friend);
Msg.Say("plant_pop", this, chara2);
}
EClass._zone.events.OnCharaDie(this);
}
public Element GetBuffStats(int ele)
return null;
}
public int CountDebuff()
{
int num = 0;
foreach (Condition condition in conditions)
{
if (condition.Type == ConditionType.Debuff)
{
num++;
}
}
return num;
}
public void CureCondition<T>(int v = 99999) where T : Condition
{
T condition = GetCondition<T>();
CharaBody
public bool Equip(Thing thing, BodySlot slot = null, bool msg = true)
{
if (thing.Evalue(656) > 0)
{
thing.blessedState = BlessedState.Cursed;
thing.SetBlessedState(BlessedState.Cursed);
}
if (thing.blessedState <= BlessedState.Cursed)
{
ELEMENT
public const int hardness = 13;
public const int water = 15;
public const int growth = 14;
public const int heat = 16;
public const int taste = 18;
public const int growth = 14;
public const int water = 15;
public const int fire = 21;
{
765, 763, 761, 751, 752, 753, 754, 755, 756, 759,
760, 762, 750, 0, 2, 1, 3, 5, 10, 11,
12, 13, 15, 16, 17, 18, 14, 21, 22, 23,
12, 13, 14, 16, 17, 18, 15, 21, 22, 23,
24, 25, 26, 29, 85, 20
};
}
public void AddEncNote(UINote n, Card Card, ElementContainer.NoteMode mode = Ele
bool flag3 = (source.tag.Contains("neg") ? (Value > 0) : (Value < 0));
int num = Mathf.Abs(Value);
bool flag4 = Card?.ShowFoodEnc ?? false;
bool flag5 = Card != null && this is Ability && (Card.IsWeapon || Card.category.slot == 35);
bool flag5 = Card != null && this is Ability && (Card.IsWeapon || Card.IsThrownWeapon || Card.IsAmmo || Card.category.slot == 35);
if (IsTrait || (flag4 && IsFoodTrait))
{
string[] textArray = source.GetTextArray("textAlt");
ENC
public const int r_life = 640;
public const int mod_flurry = 621;
public const int mod_chaser = 620;
public const int mod_feint = 623;
public const int mod_talisman = 609;
public const int mod_cleave = 622;
public const int mod_flurry = 621;
public const int living = 653;
public const int mod_frustration = 624;
public const int convertFire = 850;
public const int mod_splash = 608;
public const int mod_talisman = 609;
public const int convertImpact = 865;
public const int onlyPet = 655;
public const int mod_scatter = 607;
public const int mod_splash = 608;
public const int allNeckHunt = 428;
public const int breathing = 429;
public const int mod_precision = 605;
public const int mod_drill = 606;
public const int seeInvisible = 416;
public const int negateBlind = 421;
public const int invisibility = 415;
public const int negateParalysis = 422;
public const int negateFear = 423;
public const int negateSleep = 424;
public const int negateConfusion = 425;
public const int negateNeckHunt = 427;
public const int breathing = 429;
public const int allNeckHunt = 428;
public const int negateShockwave = 430;
public const int negateFear = 423;
public const int defense_range = 435;
public const int encHit = 414;
public const int invisibility = 415;
public const int slowCorruption = 412;
public const int guts = 436;
public const int encHit = 414;
public const int encSpell = 411;
public const int slowDecay = 405;
public const int mod_drill = 606;
public const int resMutation = 406;
public const int travelSpeed = 407;
public const int mod_scatter = 607;
public const int resWeather = 408;
public const int throwReturn = 410;
public const int defense_range = 435;
public const int guts = 436;
public const int slowCorruption = 412;
public const int resMutation = 406;
public const int parry = 437;
public const int knightly = 438;
public const int travelSpeed = 407;
public const int strongStomach = 480;
public const int negateParry = 439;
public const int revealFaith = 481;
public const int deathagony = 488;
public const int mod_ammo = 600;
public const int music_drunk = 489;
public const int mod_reload = 601;
public const int mod_ammo_recover = 604;
public const int parry = 437;
public const int bane_all = 468;
public const int mod_precision = 605;
public const int bane_fish = 467;
public const int knightly = 438;
public const int music_drunk = 489;
public const int strongStomach = 480;
public const int bane_machine = 465;
public const int bane_all = 468;
public const int negateParry = 439;
public const int mod_ammo = 600;
public const int bane_god = 466;
public const int sustain_STR = 440;
public const int bane_fish = 467;
public const int sustain_END = 441;
public const int sustain_PER = 443;
public const int sustain_DEX = 442;
public const int sustain_LER = 444;
public const int sustain_WIL = 445;
public const int sustain_DEX = 442;
public const int sustain_MAG = 446;
public const int sustain_CHA = 447;
public const int sustain_PER = 443;
public const int sustain_figure = 450;
public const int bane_dragon = 460;
public const int bane_man = 464;
public const int bane_undead = 461;
public const int bane_fairy = 462;
public const int bane_machine = 465;
public const int sustain_MAG = 446;
public const int bane_fairy = 462;
public const int bane_animal = 463;
public const int sustain_CHA = 447;
public const int bane_man = 464;
public static readonly int[] IDS = new int[102]
{
652, 651, 650, 641, 640, 620, 623, 609, 622, 621,
653, 624, 654, 851, 656, 660, 661, 662, 663, 664,
665, 666, 850, 608, 865, 852, 655, 607, 428, 605,
416, 417, 418, 419, 420, 421, 415, 422, 424, 425,
426, 427, 429, 430, 423, 414, 412, 411, 380, 381,
382, 383, 400, 401, 402, 403, 404, 405, 606, 407,
408, 409, 410, 435, 436, 406, 438, 480, 481, 482,
483, 484, 485, 486, 487, 488, 600, 601, 602, 603,
604, 437, 468, 467, 489, 465, 439, 466, 440, 441,
443, 444, 445, 442, 447, 450, 460, 464, 461, 462,
446, 463
652, 651, 650, 641, 640, 621, 620, 623, 622, 653,
624, 654, 851, 656, 660, 661, 662, 663, 664, 665,
666, 850, 609, 865, 852, 655, 608, 429, 606, 416,
417, 418, 419, 420, 421, 422, 423, 424, 425, 426,
427, 428, 430, 435, 415, 436, 414, 411, 380, 381,
382, 383, 400, 401, 402, 403, 404, 405, 406, 607,
408, 409, 410, 412, 437, 407, 439, 481, 482, 483,
484, 485, 486, 487, 488, 489, 601, 602, 603, 604,
605, 438, 480, 468, 600, 466, 440, 467, 441, 442,
444, 445, 446, 443, 450, 460, 461, 465, 462, 463,
447, 464
};
}
EffectId
ReturnVoid = 306,
Bit = 307,
Rocket = 308,
StripBlessing = 309
StripBlessing = 309,
Flare = 310
}
FACTION
public const int fFood = 2204;
public const int fMoral = 2203;
public const int fPromo = 2202;
public const int fElec = 2201;
public const int fSoil = 2200;
public const int fTaxEvasion = 2119;
public const int fConstruction = 2003;
public const int fElec = 2201;
public const int fMoral = 2203;
public static readonly int[] IDS = new int[53]
{
3601, 3602, 3603, 3604, 3606, 3700, 3701, 3600, 3702, 3605,
3500, 2120, 2206, 2205, 2204, 2203, 2202, 2200, 2119, 2118,
3500, 2120, 2206, 2205, 2204, 2202, 2201, 2200, 2119, 2118,
2117, 2116, 3703, 2207, 3704, 3900, 3706, 2115, 4006, 4005,
4004, 4003, 4002, 4001, 4000, 3805, 3804, 3803, 3802, 3801,
3800, 3784, 3783, 3782, 3781, 3780, 3710, 3709, 3708, 3707,
3705, 2003, 2201
3705, 2003, 2203
};
}
public class Faction : EClass
FEAT
public class FEAT
{
public const int featFate = 1220;
public const int featSplit = 1222;
public const int featDefender = 1649;
public const int featRapidMagic = 1648;
public const int featSummoner = 1647;
public const int featNegotiate = 1634;
public const int featSpotting = 1633;
public const int featEvade = 1632;
public const int featGourmet = 1650;
public const int featRapidMagic = 1648;
public const int featSpotting = 1633;
public const int featDefense = 1631;
public const int featHardy = 1630;
public const int featSPD = 1629;
public const int featLuck = 1628;
public const int featStamina = 1612;
public const int featMana = 1611;
public const int featLife = 1610;
public const int featHardy = 1630;
public const int featEvade = 1632;
public const int featDefender = 1649;
public const int featMagicManner = 1651;
public const int featGourmet = 1650;
public const int featRapidArrow = 1652;
public const int featMagicManner = 1651;
public const int featDreamWaker = 1653;
public const int featElderCrab = 1219;
public const int featSpike = 1221;
public const int featSlowFood = 1200;
public const int featGolem = 1217;
public const int featElderCrab = 1219;
public const int featFate = 1220;
public const int featDismantler = 1661;
public const int featLooter = 1660;
public const int featHeavyCasting = 1654;
public const int featDreamWaker = 1653;
public const int featMana = 1611;
public const int featRapidArrow = 1652;
public const int featLife = 1610;
public const int featHealer = 1422;
public const int featMetal = 1218;
public const int featManaMeat = 1421;
public const int featGod_oblivion1 = 1340;
public const int featMetal = 1218;
public const int featPaladin = 1407;
public const int featPaladin2 = 1408;
public const int featBoost = 1409;
public const int featReboot = 1410;
public const int featEarthStrength = 1411;
public const int featLuckyCat = 1412;
public const int featFairysan = 1413;
public const int featWhiteVixen = 1414;
public const int featFoxMaid = 1415;
public const int featInquisitor = 1416;
public const int featWitch = 1417;
public const int featSwordsage = 1418;
public const int featMilitant = 1419;
public const int featPegasus = 1246;
public const int featExecutioner = 1420;
public const int featLibra = 1247;
public const int featManaMeat = 1421;
public const int featMiscreation = 1248;
public const int featTourist = 1406;
public const int featGoodKarma = 1270;
public const int featPianist = 1405;
public const int featArcher = 1404;
public const int featFarmer = 1403;
public const int featBadKarma = 1271;
public const int featGod_healing1 = 1320;
public const int featSevenSense = 1245;
public const int featGod_harvest1 = 1325;
public const int featGod_oblivion1 = 1340;
public const int featHealer = 1422;
public const int featGod_luck1 = 1330;
public const int featLibra = 1247;
public const int featGod_trickery1 = 1345;
public const int featWizard = 1402;
public const int featFarmer = 1403;
public const int featGod_harmony1 = 1335;
public const int featArcher = 1404;
public const int featGoodKarma = 1270;
public const int featPianist = 1405;
public const int featPegasus = 1246;
public const int featGod_harmony1 = 1335;
public const int featCentaur = 1244;
public const int featTourist = 1406;
public const int featAdam = 1230;
public const int featCentaur = 1244;
public const int featLittleOne = 1229;
public const int featGeneSlot = 1242;
public const int featDemigod = 1228;
public const int featExecutioner = 1420;
public const int featServant = 1227;
public const int featUnderground = 1226;
public const int featShiva = 1224;
public const int featAcidBody = 1223;
public const int featSplit = 1222;
public const int featServant = 1227;
public const int featDemigod = 1228;
public const int featLittleOne = 1229;
public const int featAdam = 1230;
public const int featEternalYouth = 1243;
public const int featSevenSense = 1245;
public const int featNirvana = 1231;
public const int featBaby = 1232;
public const int featCosmicHorror = 1233;
public const int featHeavyEater = 1234;
public const int featMiscreation = 1248;
public const int featLightEater = 1235;
public const int featNorland = 1236;
public const int featRoran = 1237;
public const int featElder = 1238;
public const int featEternalYouth = 1243;
public const int featDemon = 1239;
public const int featGeneSlot = 1242;
public const int featSpike = 1221;
public const int featRoran = 1237;
public const int featMassSummoner = 1240;
public const int featAcidBody = 1223;
public const int featMeatCushion = 1241;
public const int featBaby = 1232;
public const int featPaladin = 1407;
public const int featGod_luck1 = 1330;
public const int featBoost = 1409;
public const int featSwordsage = 1418;
public const int featWitch = 1417;
public const int featInquisitor = 1416;
public const int featFoxMaid = 1415;
public const int featPaladin2 = 1408;
public const int featFairysan = 1413;
public const int featLuckyCat = 1412;
public const int featMassSummoner = 1240;
public const int featEarthStrength = 1411;
public const int featDemon = 1239;
public const int featReboot = 1410;
public const int featElder = 1238;
public const int featWhiteVixen = 1414;
public const int featHeavyEater = 1234;
public static readonly int[] IDS = new int[128]
{
1220, 1647, 1646, 1645, 1644, 1643, 1642, 1641, 1640, 1636,
1635, 1634, 1633, 1632, 1648, 1631, 1629, 1628, 1627, 1626,
1625, 1624, 1623, 1622, 1621, 1620, 1612, 1611, 1610, 1630,
1649, 1650, 1651, 1219, 1200, 1201, 1202, 1203, 1204, 1205,
1222, 1649, 1648, 1647, 1646, 1645, 1644, 1643, 1642, 1641,
1640, 1636, 1635, 1634, 1650, 1633, 1631, 1630, 1629, 1628,
1627, 1626, 1625, 1624, 1623, 1622, 1621, 1620, 1612, 1632,
1651, 1652, 1653, 1221, 1200, 1201, 1202, 1203, 1204, 1205,
1206, 1207, 1208, 1209, 1210, 1211, 1212, 1213, 1214, 1215,
1216, 1217, 1661, 1660, 1659, 1658, 1657, 1656, 1655, 1654,
1653, 1652, 1422, 1421, 1218, 1419, 1246, 1247, 1248, 1270,
1271, 1300, 1305, 1310, 1315, 1320, 1245, 1325, 1340, 1345,
1350, 1355, 1400, 1401, 1402, 1403, 1404, 1405, 1335, 1406,
1244, 1242, 1420, 1226, 1225, 1224, 1223, 1222, 1227, 1228,
1229, 1230, 1243, 1231, 1233, 1234, 1235, 1236, 1237, 1238,
1239, 1221, 1240, 1241, 1232, 1407, 1330, 1409, 1418, 1417,
1416, 1415, 1408, 1413, 1412, 1411, 1410, 1414
1216, 1217, 1219, 1220, 1661, 1660, 1659, 1658, 1657, 1656,
1655, 1654, 1611, 1610, 1218, 1340, 1407, 1408, 1409, 1410,
1411, 1412, 1413, 1414, 1415, 1416, 1417, 1418, 1419, 1420,
1421, 1406, 1405, 1404, 1403, 1271, 1300, 1305, 1310, 1315,
1320, 1325, 1422, 1330, 1247, 1345, 1350, 1355, 1400, 1401,
1402, 1335, 1270, 1246, 1244, 1230, 1229, 1228, 1227, 1226,
1225, 1224, 1245, 1231, 1232, 1233, 1248, 1235, 1236, 1243,
1242, 1237, 1223, 1241, 1240, 1239, 1238, 1234
};
}
public class Feat : Element
FOOD
public class FOOD
{
public const int food_poison = 702;
public const int food_love = 703;
public const int food_CHA = 700;
public const int food_bug = 704;
public const int creativeDish = 764;
public const int gainWeight = 705;
public const int justcooked = 757;
public const int loseWeight = 706;
public const int food_undead = 709;
public const int food_human = 708;
public const int food_undead = 709;
public const int kirimi = 707;
public const int justcooked = 757;
public const int loseWeight = 706;
public const int food_cat = 701;
public const int gainWeight = 705;
public const int creativeDish = 764;
public const int food_bug = 704;
public const int kirimi = 707;
public const int food_poison = 702;
public const int food_cat = 701;
public const int food_god = 758;
public const int food_CHA = 700;
public const int food_love = 703;
public static readonly int[] IDS = new int[13]
{
702, 703, 704, 705, 706, 708, 709, 757, 701, 764,
707, 758, 700
700, 764, 757, 709, 708, 707, 706, 705, 704, 702,
701, 758, 703
};
}
GoalCombat
public override IEnumerable<Status> Run()
bool dontWander = owner.IsPCParty && !owner.IsPC && EClass.game.config.tactics.dontWander;
while (true)
{
if (!EClass._zone.isAlarmSet && EClass._zone.SetAlarmOnBreakLaw && !owner.IsPCFactionOrMinion)
{
EClass._zone.SetAlarm(enable: true);
}
bool canSeeLos = false;
if (EClass.debug.logCombat)
{
public virtual bool TryUseAbility(int dist, bool beforeMove = false)
break;
case "taunt":
{
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));
bool flag10 = owner.HasCondition<StanceTaunt>();
bool flag11 = tactics.source.taunt != -1 && 100 * owner.hp / owner.MaxHP >= tactics.source.taunt;
num = ((flag10 && !flag11) ? 100 : ((!flag10 && flag11) ? 100 : 0));
break;
}
case "song":
public virtual bool TryUseAbility(int dist, bool beforeMove = false)
{
continue;
}
bool flag6 = text == "dot";
if (flag6 && (owner.isRestrained || (tc != null && tc.IsRestrainedResident)))
bool flag9 = text == "dot";
if (flag9 && (owner.isRestrained || (tc != null && tc.IsRestrainedResident)))
{
continue;
}
num = ((text == "attackMelee") ? tactics.P_Melee : tactics.P_Spell) + GetAttackMod(act);
if (num > 0 && flag6)
if (num > 0 && flag9)
{
num += 10;
}
public virtual bool TryUseAbility(int dist, bool beforeMove = false)
{
continue;
}
bool flag11 = ability.act is ActBolt;
bool flag6 = ability.act is ActBolt;
if (!flag || (owner.IsPCParty && (EClass._zone.IsTown || EClass._zone.IsPCFaction)) || (act.id == 9150 && EClass._zone.IsPCFaction && owner.IsNeutralOrAbove()))
{
continue;
}
GetNumEnemy(flag11 ? 6 : 5);
if (numEnemy == 0 || (owner.IsPCFactionOrMinion && GetNumNeutral(flag11 ? 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)
ability.pt = true;
}
break;
case "cure":
num = ForeachChara(ability, (Chara c) => c.CountDebuff() * 30, isFriendlyAbility: true);
if (ability.aiPt || (owner.IsPC && tactics.CastPartyBuff))
{
ability.pt = true;
}
break;
case "debuff":
if (!flag)
{
{
if (chara2 != owner)
{
int num9 = owner.Dist(chara2);
if (num9 > sightRadius || !owner.CanSeeLos(chara2, num9))
int num11 = owner.Dist(chara2);
if (num11 > sightRadius || !owner.CanSeeLos(chara2, num11))
{
continue;
}
int ForeachChara(ItemAbility a, Func<Chara, int> func, bool isFriendlyAbility)
return func(owner);
}
BuildCharaList();
int num10 = 0;
int num7 = 0;
foreach (Chara chara3 in charas)
{
int num11 = func(chara3);
if (num11 > 0)
int num8 = func(chara3);
if (num8 > 0)
{
if (isFriendlyAbility)
{
int ForeachChara(ItemAbility a, Func<Chara, int> func, bool isFriendlyAbility)
}
if (chara3 != owner)
{
num11 += tactics.P_Party;
num8 += tactics.P_Party;
}
}
else if (!owner.IsHostile(chara3))
{
continue;
}
if (num11 >= num10)
if (num8 >= num7)
{
a.tg = chara3;
num10 = num11;
num7 = num8;
}
}
}
return num10;
return num7;
}
int GetAttackMod(Act a)
{
{
return 0;
}
int num7 = ((a.source.aliasRef == "mold") ? owner.MainElement.id : EClass.sources.elements.alias[a.source.aliasRef].id);
int num8 = -15 * tc.ResistLvFrom(num7);
int num9 = ((a.source.aliasRef == "mold") ? owner.MainElement.id : EClass.sources.elements.alias[a.source.aliasRef].id);
int num10 = -15 * tc.ResistLvFrom(num9);
if (a is ActSword)
{
num8 = 0;
num10 = 0;
}
if (owner.HasElement(1238) && num8 < -15)
if (owner.HasElement(1238) && num10 < -15)
{
num8 = -15;
num10 = -15;
}
switch (num7)
switch (num9)
{
case 910:
if (tc.isWet)
{
num8 -= 30;
num10 -= 30;
}
break;
case 911:
if (tc.HasCondition<ConBurning>())
{
num8 -= 30;
num10 -= 30;
}
break;
case 912:
if (tc.isWet)
{
num8 += 30;
num10 += 30;
}
break;
}
return num8;
return num10;
}
void GetNumEnemy(int radius)
{
MUTATION
public class MUTATION
{
public const int etherFeet = 1552;
public const int mutationSkin = 1510;
public const int etherNeck = 1555;
public const int mutationSkinN = 1511;
public const int etherViolence = 1556;
public const int etherPoisonHand = 1565;
public const int etherHead = 1557;
public const int mutationLightning = 1528;
public const int etherRain = 1558;
public const int mutationColdN = 1527;
public const int etherAddict = 1559;
public const int mutationCold = 1526;
public const int etherEye = 1553;
public const int mutationBrainN = 1525;
public const int etherStupid = 1561;
public const int mutationBrain = 1524;
public const int etherArmor = 1562;
public const int mutationCha = 1522;
public const int etherProvoke = 1563;
public const int mutationStrN = 1521;
public const int etherManaBattery = 1564;
public const int mutationLightningN = 1529;
public const int etherPoisonHand = 1565;
public const int mutationStr = 1520;
public const int mutationSpeed = 1518;
public const int mutationRegenN = 1517;
public const int mutationRegen = 1516;
public const int mutationDexN = 1515;
public const int mutationEye = 1512;
public const int mutationSkinN = 1511;
public const int mutationSkin = 1510;
public const int mutationRegen = 1516;
public const int mutationRegenN = 1517;
public const int etherWeak = 1560;
public const int mutationSpeedN = 1519;
public const int etherUgly = 1551;
public const int mutationSpeed = 1518;
public const int mutationBody = 1530;
public const int mutationHairN = 1533;
public const int mutationChaN = 1523;
public const int mutationHair = 1532;
public const int etherManaBattery = 1564;
public const int mutationBodyN = 1531;
public const int mutationBody = 1530;
public const int etherArmor = 1562;
public const int mutationLightningN = 1529;
public const int etherStupid = 1561;
public const int mutationLightning = 1528;
public const int etherWeak = 1560;
public const int mutationColdN = 1527;
public const int etherAddict = 1559;
public const int etherGravity = 1550;
public const int etherRain = 1558;
public const int mutationCold = 1526;
public const int etherHead = 1557;
public const int mutationBrainN = 1525;
public const int etherProvoke = 1563;
public const int mutationBrain = 1524;
public const int etherNeck = 1555;
public const int mutationChaN = 1523;
public const int etherWing = 1554;
public const int mutationCha = 1522;
public const int etherEye = 1553;
public const int etherWing = 1554;
public const int etherFeet = 1552;
public const int mutationStrN = 1521;
public const int etherUgly = 1551;
public const int mutationStr = 1520;
public const int etherGravity = 1550;
public const int mutationHairN = 1533;
public const int etherViolence = 1556;
public static readonly int[] IDS = new int[40]
{
1552, 1555, 1556, 1557, 1558, 1559, 1553, 1561, 1562, 1563,
1564, 1565, 1515, 1514, 1513, 1512, 1511, 1510, 1516, 1517,
1560, 1519, 1551, 1518, 1533, 1532, 1531, 1530, 1529, 1528,
1527, 1550, 1526, 1525, 1524, 1523, 1522, 1554, 1521, 1520
1510, 1511, 1565, 1528, 1527, 1526, 1525, 1524, 1522, 1521,
1529, 1520, 1518, 1517, 1516, 1515, 1514, 1513, 1512, 1519,
1530, 1523, 1532, 1564, 1531, 1562, 1561, 1560, 1559, 1558,
1557, 1563, 1555, 1554, 1553, 1552, 1551, 1550, 1533, 1556
};
}
public class Mutation : Feat
POLICY
public class POLICY
{
public const int platinum_ticket = 2815;
public const int store_ripoff = 2816;
public const int store_premium = 2817;
public const int license_stolen = 2824;
public const int mass_exhibition = 2814;
public const int egg_fan = 2826;
public const int breed_season = 2827;
public const int license_slaver = 2828;
public const int platinum_ticket = 2815;
public const int celeb = 2822;
public const int suite_room = 2813;
public const int mass_exhibition = 2814;
public const int trash_sort = 2701;
public const int weed_no = 2703;
public const int tourist_safety = 2811;
public const int bed_quality = 2812;
public const int resident_wanted = 2513;
public const int inquisition = 2507;
public const int bed_quality = 2812;
public const int suite_room = 2813;
public const int wealth_tax = 2500;
public const int energy_conservation = 2700;
public const int taxTransfer = 2705;
public const int border_watch = 2704;
public const int speed_growth = 2516;
public const int demon_invocation = 2706;
public const int speed_growth = 2516;
public const int auto_farm = 2707;
public const int noDM = 2708;
public const int taxTransfer = 2705;
public const int noAnimal = 2709;
public const int noMother = 2710;
public const int auto_farm = 2707;
public const int incomeTransfer = 2711;
public const int forcePanty = 2712;
public const int noDM = 2708;
public const int livestock_priv = 2715;
public const int open_business = 2810;
public const int weed_no = 2703;
public const int tourist_safety = 2811;
public const int border_watch = 2704;
public const int trash_no = 2702;
public const int incomeTransfer = 2711;
public const int trash_sort = 2701;
public const int forcePanty = 2712;
public static readonly int[] IDS = new int[51]
{
2815, 2816, 2817, 2818, 2819, 2820, 2821, 2825, 2823, 2824,
2814, 2826, 2827, 2828, 2822, 2813, 2701, 2811, 2513, 2512,
2507, 2812, 2500, 2501, 2514, 2502, 2504, 2505, 2511, 2510,
2509, 2508, 2503, 2515, 2506, 2700, 2705, 2704, 2706, 2516,
2708, 2709, 2710, 2707, 2712, 2715, 2800, 2810, 2703, 2702,
2711
2816, 2817, 2818, 2819, 2820, 2821, 2825, 2823, 2824, 2826,
2827, 2828, 2815, 2822, 2814, 2703, 2812, 2513, 2512, 2507,
2813, 2500, 2501, 2514, 2502, 2504, 2505, 2511, 2510, 2509,
2508, 2503, 2515, 2506, 2700, 2516, 2706, 2707, 2705, 2709,
2710, 2711, 2708, 2715, 2800, 2810, 2811, 2704, 2702, 2701,
2712
};
}
public class Policy : EClass
Point
public void CallGuard(Chara criminal, Chara caller)
caller.Say("calledGuard", caller);
chara.DoHostileAction(criminal);
}
if (!EClass._zone.isAlarmSet && EClass._zone.SetAlarmOnBreakLaw && !caller.IsPCFactionOrMinion)
{
EClass._zone.SetAlarm(enable: true);
}
}
public void SetBlock(int idMat = 0, int idBlock = 0)
QuestCurry
public class QuestCurry : QuestSequence
{
public override void OnComplete()
{
DropReward(TraitSeed.MakeSeed("redpepper").SetNum(3));
}
}
SKILL
public class SKILL
{
public const int shield = 123;
public const int fireproof = 50;
public const int weaponCrossbow = 109;
public const int weaponScythe = 110;
public const int weaponBlunt = 111;
public const int fishing = 245;
public const int armorHeavy = 122;
public const int armorLight = 120;
public const int shield = 123;
public const int armorHeavy = 122;
public const int twohand = 130;
public const int tactics = 132;
public const int marksman = 133;
public const int tactics = 132;
public const int climbing = 242;
public const int music = 241;
public const int lumberjack = 225;
public const int mining = 220;
public const int spotting = 210;
public const int weightlifting = 207;
public const int twowield = 131;
public const int spotting = 210;
public const int mining = 220;
public const int weaponSword = 101;
public const int gathering = 250;
public const int armorLight = 120;
public const int weaponBlunt = 111;
public const int blacksmith = 256;
public const int eleHoly = 919;
public const int eleChaos = 920;
public const int eleMagic = 921;
public const int eleEther = 922;
public const int resLightning = 952;
public const int resDarkness = 953;
public const int elePoison = 915;
public const int resMind = 954;
public const int resDarkness = 953;
public const int resNether = 956;
public const int resPoison = 955;
public const int resSound = 957;
public const int resNether = 956;
public const int resNerve = 958;
public const int carpentry = 255;
public const int resPoison = 955;
public const int resMind = 954;
public const int eleMind = 914;
public const int eleChaos = 920;
public const int resSound = 957;
public const int eleLightning = 912;
public const int alchemy = 257;
public const int eleDarkness = 913;
public const int sculpture = 258;
public const int jewelry = 259;
public const int weaving = 260;
public const int handicraft = 261;
public const int lockpicking = 280;
public const int stealing = 281;
public const int farming = 286;
public const int eleDarkness = 913;
public const int cooking = 287;
public const int building = 288;
public const int investing = 292;
public const int cooking = 287;
public const int handicraft = 261;
public const int regeneration = 300;
public const int disarmTrap = 293;
public const int eleCold = 911;
public const int eleFire = 910;
public const int disarmTrap = 293;
public const int env = 313;
public const int fun = 312;
public const int eleCold = 911;
public const int bladder = 311;
public const int hygine = 310;
public const int faith = 306;
public const int memorization = 307;
public const int eleFire = 910;
public const int magicDevice = 305;
public const int meditation = 301;
public const int memorization = 307;
public const int faith = 306;
public static readonly int[] IDS = new int[133]
{
50, 109, 110, 111, 245, 122, 123, 130, 132, 133,
242, 241, 240, 237, 235, 230, 227, 226, 225, 220,
207, 200, 152, 151, 150, 135, 134, 131, 210, 101,
123, 50, 109, 110, 245, 120, 122, 130, 133, 132,
242, 241, 240, 237, 235, 230, 227, 226, 225, 210,
207, 200, 152, 151, 150, 135, 134, 131, 220, 101,
107, 71, 70, 68, 67, 66, 65, 72, 64, 61,
60, 57, 56, 55, 51, 62, 73, 74, 75, 106,
105, 104, 103, 102, 100, 93, 92, 91, 90, 80,
79, 78, 77, 76, 108, 250, 120, 256, 916, 917,
918, 919, 921, 922, 923, 924, 925, 926, 950, 951,
952, 953, 915, 954, 956, 957, 958, 959, 960, 961,
962, 963, 964, 965, 970, 971, 972, 255, 955, 914,
920, 912, 257, 258, 259, 260, 261, 280, 281, 285,
286, 913, 288, 289, 290, 291, 292, 287, 300, 293,
910, 313, 312, 911, 311, 310, 306, 305, 304, 303,
302, 301, 307
79, 78, 77, 76, 108, 250, 111, 256, 916, 917,
918, 919, 920, 921, 922, 923, 924, 925, 926, 950,
951, 952, 915, 953, 955, 956, 958, 959, 960, 961,
962, 963, 964, 965, 970, 971, 972, 255, 954, 914,
957, 912, 257, 913, 258, 259, 260, 280, 281, 285,
286, 287, 288, 289, 290, 291, 292, 261, 300, 911,
293, 313, 312, 311, 310, 307, 910, 305, 304, 303,
302, 301, 306
};
}
public class Skill : Element
SLOT
public class SLOT
{
public const int waist = 37;
public const int finger = 36;
public const int back = 33;
public const int arm = 34;
public const int hand = 35;
public const int toolbelt = 44;
public const int leg = 38;
public const int torso = 32;
public const int token = 43;
public const int neck = 31;
public const int lightsource = 45;
public const int tool = 40;
public const int toolbelt = 44;
public const int hand = 35;
public const int range = 41;
public const int torso = 32;
public const int waist = 37;
public const int tool = 40;
public const int head = 30;
public const int foot = 39;
public const int neck = 31;
public const int finger = 36;
public const int ammo = 42;
public const int head = 30;
public const int back = 33;
public const int leg = 38;
public const int token = 43;
public static readonly int[] IDS = new int[16]
{
37, 36, 33, 34, 35, 38, 43, 45, 40, 44,
41, 32, 39, 31, 42, 30
34, 44, 32, 31, 45, 35, 41, 37, 40, 30,
39, 36, 42, 33, 38, 43
};
}
SPELL
public class SPELL
{
public const int hand_Impact = 50415;
public const int sword_Nether = 51006;
public const int bit_Nether = 51106;
public const int miasma_Sound = 50707;
public const int ball_Sound = 50107;
public const int puddle_Sound = 50907;
public const int bolt_Void = 50316;
public const int funnel_Sound = 50607;
public const int bolt_Sound = 50307;
public const int sword_Sound = 51007;
public const int hand_Sound = 50407;
public const int bit_Sound = 51107;
public const int arrow_Sound = 50507;
public const int funnel_Sound = 50607;
public const int miasma_Sound = 50707;
public const int ball_Nerve = 50108;
public const int weapon_Sound = 50807;
public const int puddle_Sound = 50907;
public const int sword_Sound = 51007;
public const int arrow_Holy = 50509;
public const int bit_Sound = 51107;
public const int hand_Nerve = 50408;
public const int ball_Nerve = 50108;
public const int puddle_Holy = 50909;
public const int bolt_Nerve = 50308;
public const int weapon_Holy = 50809;
public const int hand_Nerve = 50408;
public const int miasma_Holy = 50709;
public const int arrow_Nerve = 50508;
public const int funnel_Holy = 50609;
public const int funnel_Nerve = 50608;
public const int hand_Holy = 50409;
public const int miasma_Nerve = 50708;
public const int bolt_Holy = 50309;
public const int weapon_Nerve = 50808;
public const int bolt_Nerve = 50308;
public const int puddle_Nerve = 50908;
public const int ball_Holy = 50109;
public const int sword_Nerve = 51008;
public const int bit_Nerve = 51108;
public const int puddle_Nerve = 50908;
public const int ball_Holy = 50109;
public const int weapon_Nerve = 50808;
public const int ball_Void = 50116;
public const int miasma_Nerve = 50708;
public const int bolt_Holy = 50309;
public const int funnel_Nerve = 50608;
public const int hand_Holy = 50409;
public const int arrow_Nerve = 50508;
public const int hand_Void = 50416;
public const int bit_Nerve = 51108;
public const int arrow_Holy = 50509;
public const int hand_Sound = 50407;
public const int arrow_Void = 50516;
public const int miasma_Mind = 50704;
public const int weapon_Nether = 50806;
public const int ball_Sound = 50107;
public const int bolt_Mind = 50304;
public const int hand_Mind = 50404;
public const int funnel_Mind = 50604;
public const int miasma_Mind = 50704;
public const int weapon_Mind = 50804;
public const int puddle_Mind = 50904;
public const int bit_Mind = 51104;
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 hand_Poison = 50405;
public const int puddle_Nether = 50906;
public const int arrow_Poison = 50505;
public const int miasma_Poison = 50705;
public const int funnel_Poison = 50605;
public const int weapon_Poison = 50805;
public const int bolt_Sound = 50307;
public const int miasma_Poison = 50705;
public const int puddle_Poison = 50905;
public const int sword_Poison = 51005;
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 bolt_Nether = 50306;
public const int hand_Nether = 50406;
public const int miasma_Nether = 50706;
public const int funnel_Poison = 50605;
public const int funnel_Holy = 50609;
public const int miasma_Holy = 50709;
public const int weapon_Holy = 50809;
public const int puddle_Ether = 50912;
public const int sword_Ether = 51012;
public const int bit_Ether = 51112;
public const int ball_Acid = 50113;
public const int weapon_Nether = 50806;
public const int weapon_Impact = 50815;
public const int puddle_Nether = 50906;
public const int bolt_Mind = 50304;
public const int sword_Nether = 51006;
public const int hand_Acid = 50413;
public const int bit_Nether = 51106;
public const int arrow_Acid = 50513;
public const int weapon_Poison = 50805;
public const int funnel_Acid = 50613;
public const int sword_Holy = 51009;
public const int miasma_Acid = 50713;
public const int bolt_Acid = 50313;
public const int weapon_Acid = 50813;
public const int ball_Chaos = 50110;
public const int puddle_Acid = 50913;
public const int sword_Acid = 51013;
public const int weapon_Ether = 50812;
public const int bit_Acid = 51113;
public const int miasma_Impact = 50715;
public const int ball_Cut = 50114;
public const int bolt_Cut = 50314;
public const int ball_Impact = 50115;
public const int funnel_Impact = 50615;
public const int bolt_Impact = 50315;
public const int ball_Cut = 50114;
public const int hand_Impact = 50415;
public const int miasma_Ether = 50712;
public const int arrow_Impact = 50515;
public const int funnel_Ether = 50612;
public const int puddle_Void = 50916;
public const int arrow_Ether = 50512;
public const int weapon_Void = 50816;
public const int puddle_Holy = 50909;
public const int miasma_Void = 50716;
public const int sword_Holy = 51009;
public const int funnel_Void = 50616;
public const int bit_Holy = 51109;
public const int arrow_Void = 50516;
public const int ball_Chaos = 50110;
public const int hand_Void = 50416;
public const int weapon_Acid = 50813;
public const int bolt_Void = 50316;
public const int bit_Impact = 51115;
public const int sword_Impact = 51015;
public const int puddle_Impact = 50915;
public const int weapon_Impact = 50815;
public const int miasma_Impact = 50715;
public const int funnel_Impact = 50615;
public const int ball_Void = 50116;
public const int bit_Holy = 51109;
public const int miasma_Acid = 50713;
public const int arrow_Acid = 50513;
public const int bolt_Chaos = 50310;
public const int hand_Chaos = 50410;
public const int ball_Magic = 50111;
public const int sword_Impact = 51015;
public const int bolt_Magic = 50311;
public const int hand_Magic = 50411;
public const int puddle_Magic = 50911;
public const int sword_Magic = 51011;
public const int hand_Acid = 50413;
public const int bit_Magic = 51111;
public const int ball_Acid = 50113;
public const int ball_Ether = 50112;
public const int bit_Ether = 51112;
public const int puddle_Impact = 50915;
public const int sword_Ether = 51012;
public const int bolt_Ether = 50312;
public const int puddle_Ether = 50912;
public const int weapon_Ether = 50812;
public const int funnel_Acid = 50613;
public const int miasma_Ether = 50712;
public const int arrow_Ether = 50512;
public const int hand_Ether = 50412;
public const int arrow_Impact = 50515;
public const int bolt_Ether = 50312;
public const int bolt_Acid = 50313;
public const int ball_Ether = 50112;
public const int ball_Cold = 50101;
public const int bit_Magic = 51111;
public const int bit_Darkness = 51103;
public const int sword_Magic = 51011;
public const int funnel_Ether = 50612;
public const int ball_Mind = 50104;
public const int bit_Fire = 51100;
public const int sword_Darkness = 51003;
public const int SpHealCritical = 8402;
public const int SpHeal = 8403;
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 SpHealCritical = 8402;
public const int SpNightmare = 8705;
public const int SpWeakness = 8702;
public const int SpHealHeavy = 8401;
public const int SpWeakResEle = 8704;
public const int SpSilence = 8700;
public const int SpBreath = 8507;
public const int SpWeakResEle = 8704;
public const int SpResEle = 8506;
public const int SpHealHeavy = 8401;
public const int SpWeakness = 8702;
public const int SpHealLight = 8400;
public const int SpWish = 8390;
public const int SpReturn = 8220;
public const int SpMutation = 8380;
public const int SpGate = 8202;
public const int puddle_ = 7800;
public const int flare_ = 7010;
public const int bit_ = 7009;
public const int SpEvac = 8221;
public const int SpReturn = 8220;
public const int sword_ = 7008;
public const int weapon_ = 7007;
public const int SpSeeInvisible = 8776;
public const int SpIdentify = 8230;
public const int SpInvisibility = 8775;
public const int SpUncurse = 8240;
public const int SpEvac = 8221;
public const int SpMutation = 8380;
public const int SpIdentifyG = 8232;
public const int SpLevitate = 8300;
public const int SpChangeMaterialLesser = 8284;
public const int SpIdentifyG = 8232;
public const int SpFaith = 8281;
public const int SpMagicMap = 8260;
public const int SpIdentify = 8230;
public const int SpLighten = 8280;
public const int SpEnchantArmorGreat = 8256;
public const int SpUncurseG = 8241;
public const int SpLighten = 8280;
public const int SpUncurse = 8240;
public const int ball_Mind = 50104;
public const int SpMagicMap = 8260;
public const int SpIncognito = 8780;
public const int SpSeeInvisible = 8776;
public const int SpTransmutePutit = 8791;
public const int SpIncognito = 8780;
public const int puddle_Fire = 50900;
public const int SpTransmuteBroom = 8790;
public const int sword_Fire = 51000;
public const int bit_Cold = 51101;
public const int bit_Fire = 51100;
public const int sword_Cold = 51001;
public const int bolt_Cold = 50301;
public const int puddle_Cold = 50901;
public const int hand_Cold = 50401;
public const int weapon_Cold = 50801;
public const int arrow_Cold = 50501;
public const int miasma_Cold = 50701;
public const int funnel_Cold = 50601;
public const int miasma_Cold = 50701;
public const int ball_Lightning = 50102;
public const int weapon_Cold = 50801;
public const int arrow_Cold = 50501;
public const int puddle_Cold = 50901;
public const int bolt_Cold = 50301;
public const int sword_Cold = 51001;
public const int ball_Cold = 50101;
public const int bit_Cold = 51101;
public const int sword_Fire = 51000;
public const int ball_Lightning = 50102;
public const int puddle_Fire = 50900;
public const int bolt_Lightning = 50302;
public const int weapon_Fire = 50800;
public const int hand_Lightning = 50402;
public const int miasma_Fire = 50700;
public const int arrow_Lightning = 50502;
public const int hand_Cold = 50401;
public const int funnel_Lightning = 50602;
public const int funnel_Fire = 50600;
public const int sword_Darkness = 51003;
public const int bolt_Lightning = 50302;
public const int arrow_Lightning = 50502;
public const int puddle_Darkness = 50903;
public const int arrow_Darkness = 50503;
public const int weapon_Fire = 50800;
public const int hand_Darkness = 50403;
public const int ball_Darkness = 50103;
public const int hand_Lightning = 50402;
public const int bolt_Darkness = 50303;
public const int bit_Lightning = 51102;
public const int miasma_Lightning = 50702;
public const int bolt_Darkness = 50303;
public const int funnel_Lightning = 50602;
public const int miasma_Fire = 50700;
public const int ball_Darkness = 50103;
public const int funnel_Fire = 50600;
public const int bit_Darkness = 51103;
public const int arrow_Fire = 50500;
public const int SpSummonShubKid = 9010;
public const int bolt_Fire = 50300;
public const int SpSummonTako = 9009;
public const int SpSummonPawn = 9005;
public const int SpSummonShadow = 9050;
public const int SpSummonMonster = 9004;
public const int SpSummonFire = 9002;
public const int SpSummonShubKid = 9010;
public const int SpSummonTentacle = 9003;
public const int SpSummonUndeadSister = 9001;
public const int SpTransmuteCat = 8792;
public const int SpSummonTentacle = 9003;
public const int SpTransmuteBroom = 8790;
public const int SpSummonTidalWave = 9051;
public const int SpTransmutePutit = 8791;
public const int SpMeteor = 9150;
public const int SpSummonFire = 9002;
public const int hand_Fire = 50400;
public const int bolt_Fire = 50300;
public const int SpSummonShadow = 9050;
public const int SpSummonTrooper = 9052;
public const int sword_Void = 51016;
public const int SpDrawMetal = 9502;
public const int SpSummonTrooper = 9052;
public const int SpDrawMonster = 9501;
public const int SpStripBlessing = 9210;
public const int SpWardMonster = 9500;
public const int SpShutterHex = 9200;
public const int SpSummonTidalWave = 9051;
public const int SpStripBlessing = 9210;
public const int SpExterminate = 9160;
public const int SpEarthquake = 9151;
public const int SpWardMonster = 9500;
public const int SpMeteor = 9150;
public const int SpSummonMachine = 9053;
public const int SpShutterHex = 9200;
public const int bit_Void = 51116;
public static readonly int[] IDS = new int[269]
public static readonly int[] IDS = new int[271]
{
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, 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, 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
50707, 50907, 50607, 51007, 51107, 50507, 50108, 50807, 50509, 50408,
50909, 50809, 50709, 50609, 50409, 50309, 50308, 50109, 51008, 50908,
50808, 50708, 50608, 50508, 51108, 50407, 50704, 50107, 50304, 50404,
50504, 50604, 50804, 50904, 51004, 51104, 50105, 50305, 50405, 50505,
50605, 50307, 50705, 50905, 51005, 51105, 50106, 50306, 50406, 50506,
50606, 50706, 50806, 50906, 51006, 51106, 50805, 51009, 50313, 50110,
50913, 51013, 51113, 50114, 50314, 50414, 50514, 50614, 50714, 50814,
50914, 51014, 51114, 50115, 50315, 50415, 50515, 50916, 50816, 50716,
50616, 50516, 50416, 50813, 50316, 51115, 51015, 50915, 50815, 50715,
50615, 50116, 51109, 50713, 50513, 50310, 50410, 50510, 50610, 50710,
50810, 50910, 51010, 51110, 50111, 50311, 50411, 50511, 50611, 50711,
50811, 50911, 50413, 50113, 51112, 51012, 50912, 50812, 50613, 50712,
50512, 50412, 50312, 50112, 51111, 51011, 50612, 50104, 51100, 51003,
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, 8400, 8390, 8380, 8202, 8201, 8200, 7800, 7010,
7009, 8220, 7008, 7006, 7005, 7004, 7003, 7002, 7001, 7007,
8775, 8221, 8232, 8300, 8288, 8286, 8285, 8284, 8281, 8230,
8280, 8256, 8255, 8251, 8250, 8241, 8240, 8260, 8776, 8780,
8790, 51101, 51001, 50901, 50801, 50701, 50601, 50102, 50501, 50301,
50101, 51000, 50900, 50800, 50700, 50401, 50600, 50302, 50502, 50903,
50803, 50703, 50603, 50503, 50403, 50402, 50303, 51102, 51002, 50902,
50802, 50702, 50602, 50103, 51103, 50500, 50300, 9009, 9008, 9007,
9006, 9005, 9004, 9010, 9003, 9001, 9000, 8801, 8800, 8792,
8791, 9002, 50400, 9050, 9052, 51016, 50100, 9503, 9502, 9501,
9500, 9051, 9210, 9160, 9156, 9155, 9151, 9150, 9053, 9200,
51116
};
}
public class Spell : Ability
SerializedCards
}
}
public string cText
{
get
{
return strs[8];
}
set
{
strs[8] = value;
}
}
public bool isDead
{
get
idSkin = c.idSkin,
idDeity = c.c_idDeity,
isEmpty = (c.things.Count == 0 && c.c_lockLv == 0),
encLv = c.encLV
encLv = c.encLV,
cText = c.c_refText
};
if (c.c_idBacker != 0)
{
public void Restore(Map map, Map orgMap, bool addToZone, PartialMap partial = nu
card2 = CharaGen.Create(text);
if (card4.ints.Length > 20)
{
card2.Chara.SetLv(card4.lv);
if (isUserZone)
{
card2.Chara.SetLv(card4.lv);
}
if (card4.element != 0)
{
card2.Chara.SetMainElement(card4.element);
public void Restore(Map map, Map orgMap, bool addToZone, PartialMap partial = nu
card2.refVal = card4.refVal;
card2.idSkin = card4.idSkin;
card2.c_idDeity = card4.idDeity;
card2.c_refText = card4.cText;
if (card4.idBacker != 0)
{
Debug.Log(card4.idBacker);
SourceElement
public override void OnAfterImportData()
AddRow(ele, num + num2 + 900, "puddle_");
AddRow(ele, num + num2 + 1000, "sword_");
AddRow(ele, num + num2 + 1100, "bit_");
AddRow(ele, num + num2 + 1200, "flare_");
num2++;
}
}
Spatial
}
}
public bool isAlarmSet
{
get
{
return bits[14];
}
set
{
bits[14] = value;
}
}
public Faction mainFaction
{
get
+StanceSongValor
File Created
public class StanceSongValor : BaseSong
{
public override void OnStart()
{
owner.ShowEmo(Emo.happy);
}
public override void Tick()
{
if (owner.HasCondition<ConSilence>() || EClass._zone.IsRegion)
{
return;
}
int num = 0;
foreach (Chara item in owner.pos.ListCharasInRadius(owner, 4, (Chara c) => (c.IsDeadOrSleeping || !owner.IsPCFactionOrMinion) ? (!c.IsHostile(owner)) : c.IsPCFactionOrMinion))
{
if (!item.HasCondition<ConEuphoric>())
{
item.AddCondition<ConEuphoric>(base.power);
}
if (!item.HasCondition<ConHero>() && (item.HasCondition<ConFear>() || item.HasCondition<ConConfuse>()))
{
item.AddCondition<ConHero>(base.power);
}
num++;
}
if (num > 0)
{
owner.mana.Mod(-(1 + owner.mana.max / 200));
}
}
}
Trait
case CopyShopType.Item:
{
num6 = (1000 + owner.c_invest * 100) / (thing5.GetPrice(CurrencyType.Money, sell: false, PriceType.CopyShop) + 50);
int[] array = new int[4] { 701, 704, 703, 702 };
int[] array = new int[3] { 704, 703, 702 };
foreach (int ele in array)
{
if (thing5.HasElement(ele))
}
switch (ShopType)
{
case ShopType.Curry:
if (EClass.game.quests.IsCompleted("curry"))
{
AddThing(TraitSeed.MakeSeed("redpepper").SetNum(5));
}
break;
case ShopType.Moyer:
{
for (int num12 = 1; num12 <= 12; num12++)
TraitContainerCompost
public class TraitContainerCompost : TraitBrewery
public override bool CanChildDecay(Card c)
{
return false;
return c.id == "lunch_dystopia";
}
public override string GetProductID(Card c)
TraitFoodEggFertilized
public static void MakeBaby(Chara c, int baby)
c.idSkin = 1;
break;
}
c.bio.SetAge(c, 0);
}
public override bool CanStackTo(Thing to)
TraitSeed
public void TrySprout(bool force = false, bool sucker = false, VirtualDate date
}
}
public static Thing MakeSeed(string id, PlantData plant = null)
{
return MakeSeed(EClass.sources.objs.alias[id], plant);
}
public static Thing MakeSeed(SourceObj.Row obj, PlantData plant = null)
{
Thing thing = plant?.seed;
TraitTrolley
public virtual float FadeDuration
public bool CanActivate(Chara c)
{
if (c.host != null || c.IsInCombat || c.isLeashed)
if (c.host != null || c.IsInCombat || c.isLeashed || c.IsMultisize)
{
return false;
}
TraitTyche
public class TraitTyche : TraitUniqueChara
public class TraitTyche : TraitUniqueChara
{
public override bool CanInvite => false;
public override bool CanInvite => EClass.game.quests.IsCompleted("curry");
}
TraitVishnu
public class TraitVishnu : TraitUniqueChara
public class TraitVishnu : TraitUniqueChara
{
public override bool CanInvite => false;
public override bool CanInvite => EClass.game.quests.IsCompleted("curry");
}
Zone
public virtual string IDSubset
public virtual bool HasLaw => false;
public virtual bool SetAlarmOnBreakLaw => false;
public virtual bool MakeEnemiesNeutral
{
get
public void RefreshListCitizen()
}
}
public virtual void SetAlarm(bool enable)
{
base.isAlarmSet = enable;
if (enable)
{
foreach (Chara chara in EClass._map.charas)
{
if (!chara.IsPCFactionOrMinion)
{
chara.SetHostility(Hostility.Enemy);
}
}
Msg.Say("alarm");
Msg.Say("alarm2");
SE.Play("alarm");
return;
}
foreach (Chara chara2 in EClass._map.charas)
{
if (!chara2.IsPCFactionOrMinion)
{
chara2.SetHostility(Hostility.Neutral);
}
}
}
public void ModInfluence(int a)
{
base.influence += a;
Zone_CurryRuinDungeon
public override string idExport
}
}
public override bool HasLaw => IsBossLv;
public override bool SetAlarmOnBreakLaw => IsBossLv;
public override void OnGenerateMap()
{
if (IsBossLv)
{
SetAlarm(enable: false);
FindChara("doga").SetHostility(Hostility.Enemy);
return;
}
PlaceRail();
public override void OnGenerateMap()
});
base.OnGenerateMap();
}
public override void SetAlarm(bool enable)
{
base.SetAlarm(enable);
if (!enable)
{
return;
}
foreach (Thing thing in EClass._map.things)
{
if (thing.IsInstalled && thing.id == "candle3")
{
thing.c_lightColor = 30720;
thing.RecalculateFOV();
}
}
SetBGM(110);
}
}
Zone_QuestDungeon
public override int DangerLvBoost
public override bool ShouldScaleImportedChara(Chara c)
{
if (ShouldScale && c.rarity >= Rarity.Legendary)
{
return c.IsHostile();
}
return false;
return ShouldScale;
}
}