EA 23.214 Nightly
October 7, 2025
40 files modified. 5 new files created.
Important Changes
Possible breaking changes. Click the filename to view the chunk.
AttackProcess (1)
public int GetRawDamage(float dmgMulti, bool crit, bool maxRoll)
public int GetRocketPower()
Card (1)
public virtual int ApplyProtection(int dmg, int mod = 100)
public virtual long ApplyProtection(long dmg, int mod = 100)
Zone_CurryRuinDungeon (1)
public override string GetDungenID()
AI_Eat
public override IEnumerable<Status> Run()
{
owner.Say("eat_end", owner, target.GetName(NameStyle.Full, 1));
owner.ShowEmo(Emo.happy);
if (target.trait is TraitFoodChuryu && !owner.IsCat)
{
foreach (Chara item in owner.pos.ListCharasInRadius(owner, 5, (Chara c) => c.IsCat))
{
item.Say("angry", item);
item.ShowEmo(Emo.angry);
item.PlaySound("Animal/Cat/cat_angry");
if (owner.IsPC)
{
EClass.player.ModKarma(-3);
}
}
}
FoodEffect.Proc(owner, target.Thing);
}
}
AI_Idle
public override IEnumerable<Status> Run()
}
if (EClass.rnd((owner.host != null && owner.GetInt(106) != 0) ? 1000 : 40) == 0 && owner.IsHuman)
{
DoSomethingToNearChara((Chara c) => (!c.IsPCParty || EClass.rnd(5) == 0) && c.IsMofuable && !owner.IsHostile(c) && !c.IsInCombat, delegate(Chara c)
DoSomethingToNearChara((Chara c) => (!c.IsPCParty || EClass.rnd(5) == 0) && c.IsMofuable && !owner.IsHostile(c) && !c.IsInCombat && owner.CanSee(c), delegate(Chara c)
{
owner.Cuddle(c);
});
AI_Mofu
public Chara GetMofu()
{
return EClass._map.charas.Where((Chara c) => c.IsMofuable && c != owner).RandomItem();
return EClass._map.charas.Where((Chara c) => c.IsMofuable && c != owner && owner.CanSee(c)).RandomItem();
}
public override IEnumerable<Status> Run()
AM_MoveInstalled
public override void RotateUnderMouse()
public override void InputWheel(int wheel)
{
if (target != null && target.TileType.MaxAltitude > 0)
if (!EClass.debug.enable || !EInput.isCtrlDown)
{
moldCard.ChangeAltitude(wheel);
}
else if (EClass.scene.mouseTarget.CanCycle())
{
EClass.scene.mouseTarget.CycleTarget(wheel);
}
else
{
base.InputWheel(wheel);
if (target != null && target.TileType.MaxAltitude > 0)
{
moldCard.ChangeAltitude(wheel);
}
else if (EClass.scene.mouseTarget.CanCycle())
{
EClass.scene.mouseTarget.CycleTarget(wheel);
}
else
{
base.InputWheel(wheel);
}
}
}
ActEffect
public static bool DamageEle(Card CC, EffectId id, int power, Element e, List<Po
Point point = CC.pos.Copy();
List<Card> list = new List<Card>();
bool flag = false;
if (id == EffectId.Explosive && actref.refThing != null)
if ((id == EffectId.Explosive || id == EffectId.Rocket) && actref.refThing != null)
{
power = power * actref.refThing.material.hardness / 10;
}
public static bool DamageEle(Card CC, EffectId id, int power, Element e, List<Po
switch (id)
{
case EffectId.Explosive:
case EffectId.Rocket:
text2 = "ball_";
flag = false;
break;
public static bool DamageEle(Card CC, EffectId id, int power, Element e, List<Po
num4 = num4 * (int)Mathf.Min(70f + Mathf.Sqrt(CC.Evalue(101)) * 3f, 200f) / 100;
break;
}
if (id == EffectId.Ball || id == EffectId.BallBubble || id == EffectId.Explosive)
if (id == EffectId.Ball || id == EffectId.BallBubble || id == EffectId.Explosive || id == EffectId.Rocket)
{
num4 = num4 * 100 / (90 + point.Distance(p) * 10);
}
public static bool DamageEle(Card CC, EffectId id, int power, Element e, List<Po
case EffectId.Meteor:
case EffectId.Earthquake:
case EffectId.Suicide:
case EffectId.Rocket:
num4 /= 2;
break;
}
public static bool DamageEle(Card CC, EffectId id, int power, Element e, List<Po
num4 = num4 * 100 / (100 + RapidCount * 50);
}
num4 = num4 * Act.powerMod / 100;
if (num4 > 9999999)
if (num4 > 99999999)
{
num4 = 9999999L;
num4 = 99999999L;
}
c.DamageHP((int)num4, e.id, power * num / 100, attackSource, chara ?? CC);
c.DamageHP(num4, e.id, power * num / 100, attackSource, chara ?? CC);
if (c.IsAliveInCurrentZone && CC.IsAliveInCurrentZone && id == EffectId.DrainMana && c.isChara && CC.isChara && c.Chara.mana.value > 0)
{
long num6 = num4 * num / 100;
public static bool DamageEle(Card CC, EffectId id, int power, Element e, List<Po
}
num2++;
}
if ((id == EffectId.Explosive || id == EffectId.Suicide) && ((id != EffectId.Suicide && id != EffectId.Meteor) || !EClass._zone.IsPCFaction))
if ((id == EffectId.Explosive || id == EffectId.Suicide || id == EffectId.Rocket) && ((id != EffectId.Suicide && id != EffectId.Meteor) || !EClass._zone.IsPCFaction))
{
int num7 = id switch
{
public static bool DamageEle(Card CC, EffectId id, int power, Element e, List<Po
case EffectId.DrainMana:
case EffectId.Sword:
{
List<Point> list4 = new List<Point>();
list4.Add(tp.Copy());
List<Point> list7 = new List<Point>();
list7.Add(tp.Copy());
EClass.Wait(0.3f, CC);
TryDelay(delegate
{
CC.PlaySound("spell_hand");
});
if (!DamageEle(CC, id, power, element, list4, actRef, (id == EffectId.DrainBlood || id == EffectId.DrainMana) ? "" : ((id == EffectId.Sword) ? "spell_sword" : "spell_hand")))
if (!DamageEle(CC, id, power, element, list7, 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
return;
}
case EffectId.Funnel:
case EffectId.Bit:
{
if (EClass._zone.CountMinions(CC) >= CC.MaxSummon || CC.c_uidMaster != 0)
{
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("bit");
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);
public static bool DamageEle(Card CC, EffectId id, int power, Element e, List<Po
}
case EffectId.Breathe:
{
List<Point> list5 = EClass._map.ListPointsInArc(CC.pos, tp, 7, 35f);
if (list5.Count == 0)
List<Point> list6 = EClass._map.ListPointsInArc(CC.pos, tp, 7, 35f);
if (list6.Count == 0)
{
list5.Add(CC.pos.Copy());
list6.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, list5, actRef, "spell_breathe");
DamageEle(CC, id, power, element, list6, actRef, "spell_breathe");
return;
}
case EffectId.Scream:
public static bool DamageEle(Card CC, EffectId id, int power, Element e, List<Po
case EffectId.Explosive:
case EffectId.BallBubble:
case EffectId.Suicide:
case EffectId.Rocket:
{
float radius2 = ((id == EffectId.Suicide) ? 3.5f : ((float)((id == EffectId.BallBubble) ? 2 : 5)));
if (id == EffectId.Explosive && actRef.refThing != null)
float radius2 = ((id == EffectId.Rocket) ? 3f : ((id == EffectId.Suicide) ? 3.5f : ((float)((id == EffectId.BallBubble) ? 2 : 5))));
if ((id == EffectId.Explosive || id == EffectId.Rocket) && actRef.refThing != null)
{
radius2 = 2 + actRef.refThing.Evalue(666);
}
public static bool DamageEle(Card CC, EffectId id, int power, Element e, List<Po
radius2 = 1.5f;
}
}
bool flag5 = id == EffectId.Explosive || id == EffectId.Suicide;
List<Point> list7 = EClass._map.ListPointsInCircle(cc.pos, radius2, !flag5, !flag5);
if (list7.Count == 0)
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)
{
list7.Add(cc.pos.Copy());
list5.Add(cc.pos.Copy());
}
cc.Say((id == EffectId.Suicide) ? "abSuicide" : "spell_ball", 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("ball");
}
DamageEle(actRef.origin ?? cc, id, power, element, list7, actRef, (id == EffectId.Suicide) ? "suicide" : "spell_ball");
DamageEle(actRef.origin ?? cc, id, power, element, list5, 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> list6 = EClass._map.ListPointsInLine(CC.pos, tp, 10);
if (list6.Count == 0)
List<Point> list4 = EClass._map.ListPointsInLine(CC.pos, tp, 10);
if (list4.Count == 0)
{
list6.Add(CC.pos.Copy());
list4.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, list6, actRef, "spell_bolt");
DamageEle(CC, id, power, element, list4, actRef, "spell_bolt");
return;
}
case EffectId.Bubble:
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.IsFriendOrAbove(CC));
List<Chara> list6 = TC.pos.ListCharasInRadius(TC, 4, (Chara c) => c == TC || c.IsHostile(CC));
for (int l = 0; l < num10; l++)
{
TweenUtil.Delay((float)l * 0.1f, delegate
ActMelee
void Attack(Card _tc, Point _tp, float mtp, bool subAttack)
{
if ((item4.trait.CanBeAttacked || (item4.isChara && item4.Chara.IsHostile(Act.CC))) && !item4.HasElement(430))
{
int rawDamage2 = AttackProcess.Current.GetRawDamage(0.1f + 0.05f * Mathf.Sqrt(splash), crit: false, maxRoll: false);
long rawDamage2 = AttackProcess.Current.GetRawDamage(0.1f + 0.05f * Mathf.Sqrt(splash), crit: false, maxRoll: false);
rawDamage2 = item4.ApplyProtection(rawDamage2);
item4.DamageHP(rawDamage2, 0, 100, AttackSource.Shockwave, Act.CC);
}
void Attack(Card _tc, Point _tp, float mtp, bool subAttack)
Act.TC.Chara.AddCondition<ConSuffocation>(200, force: true);
if (!Act.TC.HasElement(430))
{
int rawDamage = AttackProcess.Current.GetRawDamage(1f, crit: false, maxRoll: false);
long rawDamage = AttackProcess.Current.GetRawDamage(1f, crit: false, maxRoll: false);
rawDamage = Act.TC.ApplyProtection(rawDamage);
Act.TC.DamageHP(rawDamage, 0, 100, AttackSource.Shockwave, Act.CC);
}
ActRanged
public override bool Perform()
}
bool flag = weapon.trait is TraitToolRangeGun;
bool flag2 = weapon.trait is TraitToolRangeCane;
bool isRocket = weapon.trait is TraitToolRangeGunRocket;
GameSetting.EffectData effectData = EClass.setting.effect.guns.TryGetValue(weapon.id) ?? EClass.setting.effect.guns[flag2 ? "cane" : (flag ? "gun" : "bow")];
bool hasHit = false;
int numFire = effectData.num;
void Shoot(Card _tc, Point _tp)
for (int j = 0; j < numFire; j++)
{
Act.TC = _tc;
Card tC = Act.TC;
Chara cC = Act.CC;
Point point = Act.TP.Copy();
if (isRocket && EClass.rnd(3) == 0)
{
Act.TP.Set(Act.TP.GetRandomNeighbor());
}
Prepare();
int num5 = 0;
if (weapon.trait is TraitToolRangeGunEnergy && Act.TC.isChara && Act.TC.HasElement(383))
if (weapon.trait is TraitToolRangeGunEnergy && Act.TC != null && Act.TC.isChara && Act.TC.HasElement(383))
{
if (weapon.id == "gun_laser")
{
void Shoot(Card _tc, Point _tp)
}
if (num5 > EClass.rnd(100))
{
Card tC = Act.TC;
Chara cC = Act.CC;
Point point = Act.TP.Copy();
List<Chara> list = Act.TC.pos.ListCharasInRadius(Act.TC.Chara, Act.TC.GetSightRadius(), (Chara c) => c.IsHostile(Act.TC.Chara));
Chara chara = ((list.Count > 0) ? list.RandomItem() : Act.CC?.Chara);
Act.TC.Say((Act.TC.isChara && Act.TC.Chara.IsHostile()) ? "attack_reflect_enemy" : "attack_reflect");
void Shoot(Card _tc, Point _tp)
AttackProcess.Current.TP.Set(chara.pos);
AttackProcess.Current.posRangedAnime = chara.pos;
AttackProcess.Current.Perform(j, hasHit, chara.IsPCFactionOrMinion ? 0.5f : 2.5f);
Act.TC = tC;
Act.CC = cC;
Act.TP.Set(point);
}
else if (AttackProcess.Current.Perform(j, hasHit, dmgMulti))
{
void Shoot(Card _tc, Point _tp)
}
}
}
if (Act.TC == null || !Act.TC.IsAliveInCurrentZone)
if (isRocket)
{
ActEffect.ProcAt(EffectId.Rocket, AttackProcess.Current.GetRocketPower(), BlessedState.Normal, Act.CC, null, Act.TP, isNeg: true, new ActRef
{
origin = Act.CC.Chara,
refThing = weapon,
aliasEle = "eleImpact"
});
}
Act.TC = tC;
Act.CC = cC;
Act.TP.Set(point);
if (!isRocket && (Act.TC == null || !Act.TC.IsAliveInCurrentZone))
{
break;
}
ActRef
public bool noFriendlyFire;
public int refVal;
public int idEle => EClass.sources.elements.alias[aliasEle].id;
}
AttackProcess
public void Prepare(Chara _CC, Thing _weapon, Card _TC = null, Point _TP = null,
{
dNumAmmo = 0;
dDimAmmo = 0;
dBonusAmmo = 0;
}
if (dNum < 1)
{
public void PlayRangedAnime(int numFire, float delay = 0f)
}
}
public int GetRawDamage(float dmgMulti, bool crit, bool maxRoll)
public int GetRocketPower()
{
return (50 + (dNum * dDim + dBonus) + (dNumAmmo * dDimAmmo + dBonusAmmo)) * (100 + (int)Mathf.Sqrt(weaponSkill.Value) * 10) / 100;
}
public long GetRawDamage(float dmgMulti, bool crit, bool maxRoll)
{
bool flag = CC.HasCondition<ConReload>();
int num = Dice.Roll(dNum, dDim, dBonus, CC);
long num = Dice.Roll(dNum, dDim, dBonus, CC);
if (ammo != null && !flag)
{
num += Dice.Roll(dNumAmmo, dDimAmmo, dBonusAmmo, CC);
public int GetRawDamage(float dmgMulti, bool crit, bool maxRoll)
{
num++;
}
num = Mathf.Clamp(num, 0, 9999999);
num = (int)(dMulti * (float)num * dmgMulti);
return Mathf.Clamp(num, 0, 9999999);
num = (long)(dMulti * (float)num * dmgMulti);
return (long)Mathf.Clamp(num, 0f, 100000000f);
}
public static void ProcShieldEncs(Chara CC, Card TC, int mtpChance = 100)
public bool Perform(int count, bool hasHit, float dmgMulti = 1f, bool maxRoll =
{
hit = true;
}
int num = GetRawDamage(dmgMulti, crit, maxRoll);
long num = GetRawDamage(dmgMulti, crit, maxRoll);
if (IsRanged && count >= numFireWithoutDamageLoss)
{
num = num * 100 / (100 + (count - numFireWithoutDamageLoss + 1) * 30);
public bool Perform(int count, bool hasHit, float dmgMulti = 1f, bool maxRoll =
}
if (TC == null)
{
CC.Say(IsRanged ? "attack_air_range" : "attack_air", CC);
if (weapon == null || !(weapon.trait is TraitToolRangeGunRocket))
{
CC.Say(IsRanged ? "attack_air_range" : "attack_air", CC);
}
return true;
}
if (!hit)
public bool Perform(int count, bool hasHit, float dmgMulti = 1f, bool maxRoll =
num6 = 50;
}
}
int num7 = num;
int num8 = num * num6 / 100;
long num7 = num;
long num8 = num * num6 / 100;
num -= num8;
int num9 = num * penetration / 100;
long num9 = num * penetration / 100;
num -= num9;
num = TC.ApplyProtection(num) + num9 + num8;
int weaponEnc = GetWeaponEnc(CC, weapon, 609, addSelfEnc: true);
Biography
if (!bio.IsEmpty())
{
string[] array = bio.Split('/');
SetGender((array[0] == "f") ? 1 : 2);
SetGender((!(array[0] == "n")) ? ((array[0] == "f") ? 1 : 2) : 0);
if (array.Length > 1)
{
if (!c.source.HasTag(CTAG.randomPortrait))
BiomeID
Mud,
Water,
Plain,
Artificial,
Factory,
Snow,
Barren,
Undersea
CTAG
dragon,
plant,
antiSpider,
shield
shield,
humanSpeak
}
Card
public const int SocketDiv = 1000;
public const int DamageLimit = 99999999;
[JsonProperty(PropertyName = "A")]
public int[] _ints = new int[30];
}
}
public bool isScaled
{
get
{
return _bits2[9];
}
set
{
_bits2[9] = value;
}
}
public bool isBackerContent => c_idBacker != 0;
public SourceBacker.Row sourceBacker
{
return this;
}
isScaled = true;
Rand.SetSeed(uid);
ElementContainer elementContainer = new ElementContainer();
elementContainer.ApplyElementMap(uid, SourceValueType.Chara, Chara.job.elementMap, LV);
public void PurgeDuplicateArtifact(Thing af)
{
if (af.isReplica)
{
return;
}
List<Chara> list = new List<Chara>();
foreach (FactionBranch child in EClass.pc.faction.GetChildren())
{
public void PurgeDuplicateArtifact(Thing af)
{
continue;
}
List<Thing> list2 = item.things.List((Thing t) => t.id == af.id && t != af);
List<Thing> list2 = item.things.List((Thing t) => t.id == af.id && t != af && !t.isReplica);
if (list2.Count == 0)
{
continue;
public virtual int GetArmorSkill()
return 0;
}
public virtual int ApplyProtection(int dmg, int mod = 100)
public virtual long ApplyProtection(long dmg, int mod = 100)
{
int armorSkill = GetArmorSkill();
Element orCreateElement = elements.GetOrCreateElement(armorSkill);
public virtual int ApplyProtection(int dmg, int mod = 100)
dmg -= num4 * mod / 100;
if (dmg < 0)
{
dmg = 0;
dmg = 0L;
}
return dmg;
}
public void DamageHP(long dmg, int ele, int eleP = 100, AttackSource attackSourc
{
dmg = dmg * 100 / (100 + Evalue(435) * 2);
}
dmg = (int)(dmg * Mathf.Max(0, 100 - Mathf.Min(Evalue((e == Element.Void || e.id == 926) ? 55 : 56), 100) / ((!flag) ? 1 : 2)) / 100);
dmg = dmg * Mathf.Max(0, 100 - Mathf.Min(Evalue((e == Element.Void || e.id == 926) ? 55 : 56), 100) / ((!flag) ? 1 : 2)) / 100;
if (origin != null && origin.IsPC && EClass.player.codex.Has(id))
{
dmg = dmg * (100 + Mathf.Min(10, EClass.player.codex.GetOrCreate(id).weakspot)) / 100;
public void DamageHP(long dmg, int ele, int eleP = 100, AttackSource attackSourc
Chara.AddCondition<ConFractured>((int)Mathf.Max(10f, 30f - Mathf.Sqrt(Evalue(436))));
hp = Mathf.Min(half * (int)Mathf.Sqrt(Evalue(436) * 2) / 100, MaxHP / 3);
});
goto IL_0f83;
goto IL_0f81;
}
}
if (zoneInstanceBout != null && (bool)LayerDrama.Instance)
public void DamageHP(long dmg, int ele, int eleP = 100, AttackSource attackSourc
if (EClass.player.invlunerable)
{
EvadeDeath(null);
goto IL_0f83;
goto IL_0f81;
}
}
if (Evalue(1220) > 0 && Chara.stamina.value >= (IsPC ? (Chara.stamina.max / 2) : (Chara.stamina.max / 3 * 2)))
public void DamageHP(long dmg, int ele, int eleP = 100, AttackSource attackSourc
}
}
}
goto IL_0f83;
IL_0f83:
goto IL_0f81;
IL_0f81:
if (trait.CanBeAttacked)
{
renderer.PlayAnime(AnimeID.HitObj);
Chara
{
get
{
if (!IsHuman)
if (!IsHuman && !race.tag.Contains("humanSpeak"))
{
return race.tag.Contains("humanSpeak");
return HasTag(CTAG.humanSpeak);
}
return true;
}
public void RestockEquip(bool onCreate)
}
if (onCreate || !TryEquipRanged())
{
string text = id;
if (text == "trooper" || text == "mech_scarab")
switch (id)
{
case "tyche":
case "trooper":
case "mech_scarab":
AddThing("gun_laser");
}
else
{
break;
default:
switch (equip)
{
case "archer":
public void RestockEquip(bool onCreate)
EQ_CAT("gun");
break;
}
break;
}
}
int num = ((base.rarity >= Rarity.Mythical) ? (base.LV * 3) : ((base.rarity >= Rarity.Legendary) ? (base.LV * 2) : base.LV));
public override string GetHoverText2()
text2 = text2 + "Global:" + IsGlobal + " AI:" + ai?.ToString() + " " + source.tactics.IsEmpty(EClass.sources.tactics.map.TryGetValue(id)?.id ?? EClass.sources.tactics.map.TryGetValue(job.id)?.id ?? "predator");
text2 += Environment.NewLine;
text2 = text2 + base.uid + IsMinion + "/" + base.c_uidMaster + "/" + master;
text2 = text2 + " dir:" + base.dir + " skin:" + base.idSkin;
text2 = text2 + " dir:" + base.dir + " skin:" + base.idSkin + " scaled:" + base.isScaled;
}
if (EClass.pc.held?.trait is TraitWhipLove && IsPCFaction)
{
CoreDebug
}
if (Input.GetKeyDown(KeyCode.F4))
{
EClass.player.ModFame(EClass.player.fame);
EClass.game.religions.ジュアさまの薄い本をください();
return;
}
DNA
public void WriteNote(UINote n)
string text2 = "";
int num3 = element.Value / 10;
FontColor color2 = FontColor.Good;
bool flag = false;
switch (element.source.category)
{
case "slot":
public void WriteNote(UINote n)
color2 = FontColor.Topic2;
num3 = -1;
break;
default:
flag = true;
break;
}
if (num3 >= 0)
{
text2 = text2 + "[" + "*".Repeat(Mathf.Clamp(num3, 1, 5)) + ((num3 > 5) ? "+" : "") + "]";
}
if ((bool)EClass.ui.GetLayer<LayerInfo>())
if (flag)
{
text2 = text2 + " (" + element.Value + ")";
}
DamageTextRenderer
num = ((num > 0.5f) ? 0f : (0.6f - num));
c = new Color(c.r + num, c.g + num, c.b + num, 1f);
}
popper.SetText((this.num == 1) ? (sum.ToString() ?? "") : (sum + "<size=18> (x" + this.num + ")</size>"), c);
popper.SetText((this.num == 1) ? (sum.ToFormat() ?? "") : (sum.ToFormat() + "<size=18> (x" + this.num + ")</size>"), c);
sum = (this.num = 0);
}
}
ENC
public const int mod_drill = 606;
public const int strongStomach = 480;
public const int negateNeckHunt = 427;
public const int mod_ammo_recover = 604;
public const int invisibility = 415;
public const int seeInvisible = 416;
public const int loving = 417;
public const int encTail = 419;
public const int negatePoison = 420;
public const int negateBlind = 421;
public const int encHit = 414;
public const int invisibility = 415;
public const int negateParalysis = 422;
public const int negateSteal = 426;
public const int negateNeckHunt = 427;
public const int allNeckHunt = 428;
public const int breathing = 429;
public const int negateShockwave = 430;
public const int negateFear = 423;
public const int encHit = 414;
public const int slowCorruption = 412;
public const int encSpell = 411;
public const int throwReturn = 410;
public const int mod_precision = 605;
public const int counter = 380;
public const int basher = 381;
public const int slowDecay = 405;
public const int resMutation = 406;
public const int mod_precision = 605;
public const int travelSpeed = 407;
public const int corruption = 409;
public const int negateShockwave = 430;
public const int throwReturn = 410;
public const int defense_range = 435;
public const int negatePoison = 420;
public const int guts = 436;
public const int parry = 437;
public const int resMutation = 406;
public const int bane_fish = 467;
public const int knightly = 438;
public const int bane_all = 468;
public const int strongStomach = 480;
public const int revealFaith = 481;
public const int force_weapon = 482;
public const int creativeChef = 487;
public const int guts = 436;
public const int music_drunk = 489;
public const int mod_ammo = 600;
public const int mod_ammo_knockback = 603;
public const int bane_god = 466;
public const int bane_machine = 465;
public const int parry = 437;
public const int deathagony = 488;
public const int bane_fish = 467;
public const int bane_animal = 463;
public const int bane_god = 466;
public const int knightly = 438;
public const int deathagony = 488;
public const int bane_man = 464;
public const int negateParry = 439;
public const int sustain_STR = 440;
public const int sustain_END = 441;
public const int sustain_DEX = 442;
public const int sustain_PER = 443;
public const int sustain_LER = 444;
public const int negateParry = 439;
public const int sustain_WIL = 445;
public const int sustain_END = 441;
public const int sustain_LER = 444;
public const int sustain_CHA = 447;
public const int bane_dragon = 460;
public const int bane_undead = 461;
public const int bane_fairy = 462;
public const int bane_undead = 461;
public const int bane_animal = 463;
public const int sustain_MAG = 446;
public const int bane_machine = 465;
public static readonly int[] IDS = new int[102]
{
651, 650, 641, 640, 624, 609, 622, 621, 608, 620,
652, 623, 653, 851, 655, 656, 660, 661, 662, 663,
664, 665, 666, 850, 607, 865, 852, 654, 606, 480,
604, 415, 416, 417, 418, 419, 421, 414, 422, 424,
425, 426, 427, 428, 429, 423, 412, 411, 410, 605,
380, 381, 382, 383, 400, 401, 402, 403, 404, 405,
406, 407, 408, 409, 430, 435, 420, 437, 467, 468,
481, 482, 483, 484, 485, 486, 487, 436, 489, 600,
601, 602, 603, 466, 465, 488, 463, 438, 464, 439,
440, 442, 443, 444, 445, 441, 447, 450, 460, 462,
461, 446
664, 665, 666, 850, 607, 865, 852, 654, 606, 427,
604, 416, 417, 418, 419, 420, 421, 415, 422, 424,
425, 426, 428, 429, 430, 423, 414, 412, 411, 380,
381, 382, 383, 400, 401, 402, 403, 404, 405, 605,
407, 408, 409, 410, 435, 436, 406, 438, 468, 480,
481, 482, 483, 484, 485, 486, 487, 489, 600, 601,
602, 603, 437, 467, 466, 488, 464, 440, 441, 442,
443, 439, 445, 444, 447, 450, 460, 461, 462, 463,
446, 465
};
}
EffectId
BurnMana = 303,
MoonArrow = 304,
LittleSisterMigration = 305,
ReturnVoid = 306
ReturnVoid = 306,
Bit = 307,
Rocket = 308
}
FACTION
public class FACTION
{
public const int bfCave = 3500;
public const int bfPlain = 3600;
public const int bfHill = 3603;
public const int bfForest = 3601;
public const int bfHill = 3603;
public const int bfSnow = 3602;
public const int bfBeach = 3604;
public const int bfGeyser = 3701;
public const int bfSea = 3605;
public const int bfUndersea = 3606;
public const int bfFertile = 3700;
public const int fRation = 2207;
public const int bfPlain = 3600;
public const int bfUndersea = 3606;
public const int bfRuin = 3702;
public const int bfSnow = 3602;
public const int bfBeach = 3604;
public const int bfCave = 3500;
public const int fElec = 2201;
public const int fAttraction = 2206;
public const int fTaxEvasion = 2119;
public const int fSafety = 2205;
public const int fFood = 2204;
public const int fPromo = 2202;
public const int fElec = 2201;
public const int fSoil = 2200;
public const int fHeirloom = 2120;
public const int fTaxEvasion = 2119;
public const int fLuck = 2118;
public const int fLoyal = 2117;
public const int fEducation = 2116;
public const int fAdmin = 2115;
public const int bfGeyser = 3701;
public const int bfTranquil = 3703;
public const int fConstruction = 2003;
public const int fRation = 2207;
public const int fSafety = 2205;
public const int bfVolcano = 3704;
public const int bfRuin = 3702;
public const int bfChitin = 3805;
public const int bfLandmark2 = 3781;
public const int bfFish = 3706;
public const int bfVolcano = 3704;
public const int fAdmin = 2115;
public const int actBuildInspect = 4006;
public const int actBuildMine = 4001;
public const int bfTranquil = 3703;
public const int actBuildCut = 4000;
public const int bfStart = 3900;
public const int bfChitin = 3805;
public const int bfIce = 3804;
public const int bfGum = 3803;
public const int bfSilica = 3802;
public const int actBuildCut = 4000;
public const int bfMushroom = 3801;
public const int bfCoal = 3800;
public const int bfLandmark3 = 3782;
public const int bfLandmark2 = 3781;
public const int bfLandmark1 = 3780;
public const int bfBreed = 3710;
public const int bfMonster = 3707;
public const int bfFish = 3706;
public const int bfHunt = 3705;
public const int bfMushroom = 3801;
public const int fConstruction = 2003;
public const int fSoil = 2200;
public static readonly int[] IDS = new int[53]
{
3500, 3600, 3601, 3603, 3604, 3605, 3700, 2207, 3606, 3602,
2206, 2119, 2204, 2203, 2202, 2201, 2200, 2120, 2118, 2117,
2116, 2115, 3701, 2003, 2205, 3702, 3781, 3704, 4006, 4005,
4004, 4003, 4002, 4001, 3703, 3900, 3805, 3804, 3803, 3802,
4000, 3800, 3784, 3783, 3782, 3780, 3710, 3709, 3708, 3707,
3706, 3705, 3801
3603, 3601, 3602, 3701, 3605, 3606, 3700, 3600, 3702, 3604,
3500, 2201, 2206, 2205, 2204, 2203, 2202, 2120, 2119, 2118,
2117, 2116, 3703, 2207, 3704, 3805, 3706, 2115, 4006, 4005,
4004, 4003, 4002, 4001, 4000, 3900, 3804, 3803, 3802, 3801,
3800, 3784, 3783, 3782, 3781, 3780, 3710, 3709, 3708, 3707,
3705, 2003, 2200
};
}
public class Faction : EClass
public int GetBaseTax(bool evasion)
public int GetFameTax(bool evasion)
{
int v = EClass.curve(EClass.player.fame * 2, 10000, 2000, 80);
v = EvadeTax(v, evasion);
if (v < 0)
int num = EClass.curve(EClass.player.fame * 2, 10000, 2000, 80);
if (num > 1000000 || num < 0)
{
v = 50000;
num = 1000000;
}
return v;
return EvadeTax(num, evasion);
}
public int EvadeTax(int v, bool evasion)
FEAT
public class FEAT
{
public const int featSTR = 1620;
public const int featDEX = 1621;
public const int featEND = 1622;
public const int featPER = 1623;
public const int featSPD = 1629;
public const int featMAG = 1625;
public const int featWIL = 1626;
public const int featCHA = 1627;
public const int featLuck = 1628;
public const int featMetal = 1218;
public const int featLER = 1624;
public const int featLonelySoul = 1646;
public const int featStamina = 1612;
public const int featParty = 1645;
public const int featLuckyCat = 1412;
public const int featBodyParts = 1644;
public const int featLife = 1610;
public const int featSorter = 1643;
public const int featHealer = 1422;
public const int featSleeper = 1642;
public const int featManaMeat = 1421;
public const int featResCurse = 1641;
public const int featExecutioner = 1420;
public const int featAnimalLover = 1640;
public const int featMilitant = 1419;
public const int featFaith = 1636;
public const int featSwordsage = 1418;
public const int featMartial = 1635;
public const int featWitch = 1417;
public const int featNegotiate = 1634;
public const int featInquisitor = 1416;
public const int featSpotting = 1633;
public const int featFoxMaid = 1415;
public const int featEvade = 1632;
public const int featWhiteVixen = 1414;
public const int featDefense = 1631;
public const int featFairysan = 1413;
public const int featSummoner = 1647;
public const int featHardy = 1630;
public const int featMana = 1611;
public const int featLuck = 1628;
public const int featDefense = 1631;
public const int featCHA = 1627;
public const int featSummoner = 1647;
public const int featWIL = 1626;
public const int featSpotting = 1633;
public const int featMAG = 1625;
public const int featEarthStrength = 1411;
public const int featLER = 1624;
public const int featDismantler = 1661;
public const int featPER = 1623;
public const int featFisher = 1659;
public const int featEND = 1622;
public const int featChef = 1658;
public const int featDEX = 1621;
public const int featManaCost = 1657;
public const int featSTR = 1620;
public const int featScavenger = 1656;
public const int featStamina = 1612;
public const int featModelBeliever = 1655;
public const int featMana = 1611;
public const int featHeavyCasting = 1654;
public const int featLife = 1610;
public const int featDreamWaker = 1653;
public const int featHealer = 1422;
public const int featRapidArrow = 1652;
public const int featSPD = 1629;
public const int featMagicManner = 1651;
public const int featManaMeat = 1421;
public const int featEvade = 1632;
public const int featRapidMagic = 1648;
public const int featGourmet = 1650;
public const int featRapidMagic = 1648;
public const int featGolem = 1217;
public const int featLonelySoul = 1646;
public const int featSlowFood = 1200;
public const int featParty = 1645;
public const int featManaBond = 1201;
public const int featBodyParts = 1644;
public const int featFastLearner = 1202;
public const int featSorter = 1643;
public const int featGrowParts = 1203;
public const int featSleeper = 1642;
public const int featFairyWeak = 1204;
public const int featResCurse = 1641;
public const int featCannibalism = 1205;
public const int featAnimalLover = 1640;
public const int featMelilithCurse = 1206;
public const int featFaith = 1636;
public const int featFoxBless = 1207;
public const int featMartial = 1635;
public const int featFoxLearn = 1208;
public const int featNegotiate = 1634;
public const int featFluffyTail = 1209;
public const int featUndead = 1210;
public const int featSnail = 1211;
public const int featDefender = 1649;
public const int featReboot = 1410;
public const int featFairyResist = 1212;
public const int featLooter = 1660;
public const int featManaPrecision = 1214;
public const int featPaladin2 = 1408;
public const int featDwarf = 1215;
public const int featDemigod = 1228;
public const int featSuccubus = 1216;
public const int featLittleOne = 1229;
public const int featLooter = 1660;
public const int featAdam = 1230;
public const int featFisher = 1659;
public const int featNirvana = 1231;
public const int featChef = 1658;
public const int featBaby = 1232;
public const int featManaCost = 1657;
public const int featCosmicHorror = 1233;
public const int featScavenger = 1656;
public const int featHeavyEater = 1234;
public const int featModelBeliever = 1655;
public const int featLightEater = 1235;
public const int featHeavyCasting = 1654;
public const int featNorland = 1236;
public const int featDreamWaker = 1653;
public const int featRoran = 1237;
public const int featRapidArrow = 1652;
public const int featElder = 1238;
public const int featMagicManner = 1651;
public const int featServant = 1227;
public const int featElea = 1213;
public const int featDemon = 1239;
public const int featExecutioner = 1420;
public const int featGeneSlot = 1242;
public const int featDismantler = 1661;
public const int featEternalYouth = 1243;
public const int featSwordsage = 1418;
public const int featCentaur = 1244;
public const int featGod_wind1 = 1310;
public const int featMeatCushion = 1241;
public const int featGod_machine1 = 1315;
public const int featUnderground = 1226;
public const int featEternalYouth = 1243;
public const int featLoyal = 1225;
public const int featGod_harvest1 = 1325;
public const int featShiva = 1224;
public const int featGod_harmony1 = 1335;
public const int featFastLearner = 1202;
public const int featGod_oblivion1 = 1340;
public const int featManaBond = 1201;
public const int featGod_trickery1 = 1345;
public const int featSlowFood = 1200;
public const int featGod_moonshadow1 = 1350;
public const int featBoost = 1409;
public const int featGod_strife1 = 1355;
public const int featGrowParts = 1203;
public const int featWarrior = 1400;
public const int featFairyWeak = 1204;
public const int featThief = 1401;
public const int featCannibalism = 1205;
public const int featWizard = 1402;
public const int featMelilithCurse = 1206;
public const int featFarmer = 1403;
public const int featFoxBless = 1207;
public const int featArcher = 1404;
public const int featFoxLearn = 1208;
public const int featGod_luck1 = 1330;
public const int featFluffyTail = 1209;
public const int featPianist = 1405;
public const int featUndead = 1210;
public const int featGeneSlot = 1242;
public const int featSnail = 1211;
public const int featMassSummoner = 1240;
public const int featFairyResist = 1212;
public const int featMilitant = 1419;
public const int featElea = 1213;
public const int featSplit = 1222;
public const int featManaPrecision = 1214;
public const int featSpike = 1221;
public const int featDwarf = 1215;
public const int featFate = 1220;
public const int featSuccubus = 1216;
public const int featAcidBody = 1223;
public const int featGolem = 1217;
public const int featShiva = 1224;
public const int featMetal = 1218;
public const int featLoyal = 1225;
public const int featElderCrab = 1219;
public const int featUnderground = 1226;
public const int featFate = 1220;
public const int featServant = 1227;
public const int featSpike = 1221;
public const int featDemigod = 1228;
public const int featSplit = 1222;
public const int featMeatCushion = 1241;
public const int featAcidBody = 1223;
public const int featLittleOne = 1229;
public const int featGod_machine1 = 1315;
public const int featNirvana = 1231;
public const int featGod_healing1 = 1320;
public const int featBaby = 1232;
public const int featMassSummoner = 1240;
public const int featCosmicHorror = 1233;
public const int featGod_luck1 = 1330;
public const int featHeavyEater = 1234;
public const int featGod_harmony1 = 1335;
public const int featLightEater = 1235;
public const int featGod_oblivion1 = 1340;
public const int featNorland = 1236;
public const int featPaladin = 1407;
public const int featElderCrab = 1219;
public const int featRoran = 1237;
public const int featElder = 1238;
public const int featDemon = 1239;
public const int featAdam = 1230;
public const int featTourist = 1406;
public const int featPianist = 1405;
public const int featGod_healing1 = 1320;
public const int featArcher = 1404;
public const int featPaladin2 = 1408;
public const int featGod_harvest1 = 1325;
public const int featInquisitor = 1416;
public const int featGod_trickery1 = 1345;
public const int featWitch = 1417;
public const int featGod_moonshadow1 = 1350;
public const int featFoxMaid = 1415;
public const int featGod_strife1 = 1355;
public const int featWhiteVixen = 1414;
public const int featWarrior = 1400;
public const int featPaladin = 1407;
public const int featThief = 1401;
public const int featLuckyCat = 1412;
public const int featWizard = 1402;
public const int featEarthStrength = 1411;
public const int featFarmer = 1403;
public const int featReboot = 1410;
public const int featBoost = 1409;
public const int featFairysan = 1413;
public static readonly int[] IDS = new int[127]
{
1620, 1621, 1622, 1623, 1629, 1625, 1626, 1627, 1628, 1624,
1612, 1412, 1610, 1422, 1421, 1420, 1419, 1418, 1417, 1416,
1415, 1414, 1413, 1630, 1611, 1631, 1647, 1633, 1411, 1661,
1659, 1658, 1657, 1656, 1655, 1654, 1653, 1652, 1651, 1632,
1650, 1648, 1646, 1645, 1644, 1643, 1642, 1641, 1640, 1636,
1635, 1634, 1649, 1410, 1660, 1408, 1228, 1229, 1230, 1231,
1232, 1233, 1234, 1235, 1236, 1237, 1238, 1227, 1239, 1242,
1243, 1244, 1245, 1246, 1247, 1270, 1271, 1300, 1305, 1310,
1241, 1226, 1225, 1224, 1202, 1201, 1200, 1409, 1203, 1204,
1205, 1206, 1207, 1208, 1209, 1210, 1211, 1212, 1213, 1214,
1215, 1216, 1217, 1218, 1219, 1220, 1221, 1222, 1223, 1315,
1320, 1240, 1330, 1335, 1340, 1407, 1406, 1405, 1404, 1325,
1345, 1350, 1355, 1400, 1401, 1402, 1403
1218, 1646, 1645, 1644, 1643, 1642, 1641, 1640, 1636, 1635,
1634, 1633, 1632, 1631, 1647, 1630, 1628, 1627, 1626, 1625,
1624, 1623, 1622, 1621, 1620, 1612, 1611, 1610, 1422, 1629,
1421, 1648, 1650, 1217, 1200, 1201, 1202, 1203, 1204, 1205,
1206, 1207, 1208, 1209, 1210, 1211, 1649, 1212, 1214, 1215,
1216, 1660, 1659, 1658, 1657, 1656, 1655, 1654, 1653, 1652,
1651, 1213, 1420, 1661, 1418, 1244, 1245, 1246, 1247, 1270,
1271, 1300, 1305, 1310, 1315, 1243, 1325, 1335, 1340, 1345,
1350, 1355, 1400, 1401, 1402, 1403, 1404, 1330, 1405, 1242,
1240, 1419, 1222, 1221, 1220, 1223, 1224, 1225, 1226, 1227,
1228, 1241, 1229, 1231, 1232, 1233, 1234, 1235, 1236, 1219,
1237, 1238, 1239, 1230, 1406, 1320, 1408, 1416, 1417, 1415,
1414, 1407, 1412, 1411, 1410, 1409, 1413
};
}
public class Feat : Element
FOOD
public class FOOD
{
public const int food_cat = 701;
public const int food_poison = 702;
public const int food_CHA = 700;
public const int food_love = 703;
public const int food_bug = 704;
public const int loseWeight = 706;
public const int kirimi = 707;
public const int food_human = 708;
public const int food_undead = 709;
public const int justcooked = 757;
public const int food_god = 758;
public const int food_love = 703;
public const int food_cat = 701;
public const int creativeDish = 764;
public const int kirimi = 707;
public const int food_god = 758;
public const int food_CHA = 700;
public static readonly int[] IDS = new int[13]
{
701, 702, 700, 704, 705, 706, 707, 708, 709, 757,
758, 703, 764
702, 703, 704, 705, 706, 708, 709, 757, 701, 764,
707, 758, 700
};
}
GenRoom
for (int k = y; k < y + height; k++)
{
point2.Set(j, k);
if (!point2.cell.isModified && !point2.cell.blocked)
if (!point2.cell.isModified && !point2.cell.blocked && !point2.HasChara)
{
biome.Populate(point2, interior: true);
}
InvOwner
public virtual void ListInteractions(ListInteraction list, Thing t, Trait trait,
});
}
}
if (trait.CanRead(EClass.pc))
if (!LayerChara.Instance)
{
list.Add("invRead", 110, delegate
if (trait.CanRead(EClass.pc))
{
t.DoAct(new AI_Read
list.Add("invRead", 110, delegate
{
target = t
});
}, "remove");
}
if (trait.CanUse(EClass.pc))
{
list.Add(trait.LangUse, 120, delegate
t.DoAct(new AI_Read
{
target = t
});
}, "remove");
}
if (trait.CanUse(EClass.pc))
{
if (trait.OnUse(EClass.pc))
list.Add(trait.LangUse, 120, delegate
{
EClass.player.EndTurn();
}
}, "use");
}
if (trait.CanDrink(EClass.pc))
{
list.Add("invDrink", 130, delegate
if (trait.OnUse(EClass.pc))
{
EClass.player.EndTurn();
}
}, "use");
}
if (trait.CanDrink(EClass.pc))
{
t.DoAct(new AI_Drink
list.Add("invDrink", 130, delegate
{
target = t
});
}, "remove");
}
if (trait.CanEat(EClass.pc))
{
list.Add("invFood", 140, delegate
t.DoAct(new AI_Drink
{
target = t
});
}, "remove");
}
if (trait.CanEat(EClass.pc))
{
t.DoAct(new AI_Eat
list.Add("invFood", 140, delegate
{
cook = false,
target = t
});
}, "remove");
}
if (trait.IsBlendBase)
{
list.Add("invBlend", 150, delegate
t.DoAct(new AI_Eat
{
cook = false,
target = t
});
}, "remove");
}
if (trait.IsBlendBase)
{
LayerDragGrid.Create(new InvOwnerBlend(t));
}, "blend");
list.Add("invBlend", 150, delegate
{
LayerDragGrid.Create(new InvOwnerBlend(t));
}, "blend");
}
}
if (!context)
{
MUTATION
public class MUTATION
{
public const int mutationRegenN = 1517;
public const int etherGravity = 1550;
public const int mutationRegen = 1516;
public const int mutationEyeN = 1513;
public const int mutationDexN = 1515;
public const int mutationEye = 1512;
public const int mutationSkin = 1510;
public const int etherEye = 1553;
public const int mutationEyeN = 1513;
public const int etherWing = 1554;
public const int mutationSkinN = 1511;
public const int etherNeck = 1555;
public const int mutationDex = 1514;
public const int etherViolence = 1556;
public const int mutationSpeed = 1518;
public const int etherUgly = 1551;
public const int mutationEye = 1512;
public const int etherRain = 1558;
public const int mutationStr = 1520;
public const int etherAddict = 1559;
public const int etherPoisonHand = 1565;
public const int etherWeak = 1560;
public const int etherManaBattery = 1564;
public const int etherStupid = 1561;
public const int etherArmor = 1562;
public const int etherProvoke = 1563;
public const int etherArmor = 1562;
public const int mutationSkinN = 1511;
public const int etherStupid = 1561;
public const int mutationSkin = 1510;
public const int etherWeak = 1560;
public const int etherManaBattery = 1564;
public const int etherAddict = 1559;
public const int etherPoisonHand = 1565;
public const int mutationSpeedN = 1519;
public const int mutationDex = 1514;
public const int etherHead = 1557;
public const int mutationDexN = 1515;
public const int etherViolence = 1556;
public const int etherHead = 1557;
public const int etherNeck = 1555;
public const int mutationRegenN = 1517;
public const int etherWing = 1554;
public const int mutationHairN = 1533;
public const int etherEye = 1553;
public const int mutationRegen = 1516;
public const int etherFeet = 1552;
public const int mutationBodyN = 1531;
public const int etherRain = 1558;
public const int mutationBody = 1530;
public const int etherGravity = 1550;
public const int mutationLightningN = 1529;
public const int etherUgly = 1551;
public const int mutationLightning = 1528;
public const int mutationStrN = 1521;
public const int mutationColdN = 1527;
public const int mutationCha = 1522;
public const int mutationCold = 1526;
public const int mutationChaN = 1523;
public const int mutationHair = 1532;
public const int mutationBrain = 1524;
public const int mutationCold = 1526;
public const int mutationColdN = 1527;
public const int mutationChaN = 1523;
public const int mutationBrainN = 1525;
public const int mutationCha = 1522;
public const int mutationLightningN = 1529;
public const int mutationStrN = 1521;
public const int mutationBody = 1530;
public const int mutationStr = 1520;
public const int mutationBodyN = 1531;
public const int mutationSpeedN = 1519;
public const int mutationHair = 1532;
public const int etherFeet = 1552;
public const int mutationHairN = 1533;
public const int mutationSpeed = 1518;
public const int mutationLightning = 1528;
public const int mutationBrainN = 1525;
public static readonly int[] IDS = new int[40]
{
1517, 1516, 1515, 1510, 1513, 1511, 1514, 1518, 1512, 1520,
1565, 1564, 1563, 1562, 1561, 1560, 1559, 1519, 1557, 1556,
1555, 1554, 1553, 1552, 1558, 1550, 1551, 1521, 1522, 1523,
1524, 1526, 1527, 1525, 1529, 1530, 1531, 1532, 1533, 1528
1550, 1513, 1512, 1553, 1554, 1555, 1556, 1551, 1558, 1559,
1560, 1561, 1562, 1563, 1511, 1510, 1564, 1565, 1514, 1515,
1557, 1517, 1533, 1516, 1531, 1530, 1529, 1528, 1527, 1526,
1532, 1524, 1523, 1522, 1521, 1520, 1519, 1552, 1518, 1525
};
}
public class Mutation : Feat
POLICY
public class POLICY
{
public const int license_furniture = 2819;
public const int suite_room = 2813;
public const int license_food = 2818;
public const int store_premium = 2817;
public const int mass_exhibition = 2814;
public const int platinum_ticket = 2815;
public const int store_ripoff = 2816;
public const int store_premium = 2817;
public const int license_furniture = 2819;
public const int license_food = 2818;
public const int store_ripoff = 2816;
public const int license_general = 2820;
public const int license_slaver = 2828;
public const int milk_fan = 2825;
public const int celeb = 2822;
public const int license_stolen = 2824;
public const int milk_fan = 2825;
public const int egg_fan = 2826;
public const int breed_season = 2827;
public const int suite_room = 2813;
public const int license_slaver = 2828;
public const int legendary_heirloom = 2821;
public const int bed_quality = 2812;
public const int self_sufficient = 2511;
public const int speed_growth = 2516;
public const int open_business = 2810;
public const int ban_radio = 2510;
public const int self_sufficient = 2511;
public const int legal_drug = 2505;
public const int impressment = 2504;
public const int tourist_safety = 2811;
public const int resident_tax = 2512;
public const int inquisition = 2507;
public const int resident_tax = 2512;
public const int resident_wanted = 2513;
public const int taxfree = 2514;
public const int stop_growth = 2515;
public const int human_right = 2506;
public const int energy_conservation = 2700;
public const int taxTransfer = 2705;
public const int border_watch = 2704;
public const int weed_no = 2703;
public const int speed_growth = 2516;
public const int taxTransfer = 2705;
public const int stop_growth = 2515;
public const int auto_farm = 2707;
public const int noMother = 2710;
public const int border_watch = 2704;
public static readonly int[] IDS = new int[51]
{
2819, 2814, 2815, 2816, 2817, 2818, 2820, 2828, 2822, 2823,
2824, 2825, 2826, 2827, 2813, 2821, 2812, 2511, 2810, 2508,
2509, 2510, 2505, 2504, 2503, 2502, 2501, 2500, 2811, 2512,
2507, 2513, 2514, 2515, 2506, 2700, 2705, 2703, 2516, 2707,
2708, 2709, 2706, 2711, 2712, 2715, 2800, 2702, 2701, 2710,
2704
2813, 2818, 2817, 2814, 2815, 2819, 2816, 2820, 2825, 2822,
2823, 2824, 2826, 2827, 2828, 2821, 2812, 2516, 2810, 2508,
2509, 2510, 2511, 2505, 2504, 2503, 2502, 2501, 2500, 2811,
2507, 2512, 2513, 2514, 2506, 2700, 2704, 2703, 2705, 2515,
2707, 2708, 2709, 2706, 2711, 2712, 2715, 2800, 2702, 2701,
2710
};
}
public class Policy : EClass
Player
return;
}
}
fame += a;
if (fame > 0 && a > 0 && fame + a < 0)
{
fame = int.MaxValue;
}
else
{
fame += a;
}
if (fame < 0)
{
fame = 0;
Region
public void CheckRandomSites()
TryAddZone("cave_mino");
TryAddZone("village_exile");
TryAddZone("temple_undersea");
TryAddZone("curryruin");
elomap.objmap.UpdateMeshImmediate();
void TryAddZone(string id)
{
SKILL
public const int weaponBlunt = 111;
public const int armorLight = 120;
public const int fishing = 245;
public const int armorHeavy = 122;
public const int weaponAxe = 102;
public const int throwing = 108;
public const int weaponDagger = 107;
public const int END = 71;
public const int WIL = 75;
public const int weaponDagger = 107;
public const int weaponPolearm = 106;
public const int weaponGun = 105;
public const int SPD = 79;
public const int LUC = 78;
public const int CHA = 77;
public const int MAG = 76;
public const int fishing = 245;
public const int throwing = 108;
public const int gathering = 250;
public const int LUC = 78;
public const int armorLight = 120;
public const int blacksmith = 256;
public const int eleNerve = 918;
public const int eleChaos = 920;
public const int eleHoly = 919;
public const int eleMagic = 921;
public const int eleMind = 914;
public const int eleHoly = 919;
public const int eleChaos = 920;
public const int eleLightning = 912;
public const int farming = 286;
public const int cooking = 287;
public const int eleDarkness = 913;
public const int building = 288;
public const int appraising = 289;
public const int anatomy = 290;
public const int investing = 292;
public const int building = 288;
public const int cooking = 287;
public const int regeneration = 300;
public const int eleCold = 911;
public const int disarmTrap = 293;
public const int eleFire = 910;
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 eleFire = 910;
public const int faith = 306;
public const int magicDevice = 305;
public static readonly int[] IDS = new int[133]
{
50, 109, 110, 111, 120, 122, 123, 130, 132, 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, 102,
108, 71, 70, 68, 67, 66, 65, 72, 64, 61,
60, 57, 56, 55, 51, 62, 73, 74, 75, 107,
106, 105, 104, 103, 101, 100, 93, 92, 91, 90,
80, 79, 77, 76, 245, 250, 78, 256, 916, 917,
918, 920, 921, 922, 923, 924, 925, 926, 950, 951,
107, 71, 70, 68, 67, 66, 65, 72, 64, 61,
60, 57, 56, 55, 51, 62, 73, 74, 75, 106,
105, 104, 103, 101, 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,
919, 912, 257, 258, 259, 260, 261, 280, 281, 285,
286, 287, 913, 289, 290, 291, 292, 288, 300, 911,
293, 313, 312, 311, 310, 910, 306, 305, 304, 303,
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
};
}
SLOT
public class SLOT
{
public const int lightsource = 45;
public const int torso = 32;
public const int waist = 37;
public const int tool = 40;
public const int finger = 36;
public const int back = 33;
public const int leg = 38;
public const int arm = 34;
public const int hand = 35;
public const int waist = 37;
public const int leg = 38;
public const int finger = 36;
public const int token = 43;
public const int neck = 31;
public const int lightsource = 45;
public const int foot = 39;
public const int tool = 40;
public const int toolbelt = 44;
public const int ammo = 42;
public const int range = 41;
public const int head = 30;
public const int torso = 32;
public const int token = 43;
public const int foot = 39;
public const int neck = 31;
public const int ammo = 42;
public const int head = 30;
public static readonly int[] IDS = new int[16]
{
45, 32, 40, 33, 38, 34, 35, 37, 36, 31,
39, 44, 42, 41, 30, 43
37, 36, 33, 34, 35, 38, 43, 45, 40, 44,
41, 32, 39, 31, 42, 30
};
}
SPELL
public class SPELL
{
public const int hand_Impact = 50415;
public const int hand_Void = 50416;
public const int bit_Nether = 51106;
public const int ball_Sound = 50107;
public const int bolt_Void = 50316;
public const int bolt_Sound = 50307;
public const int hand_Sound = 50407;
public const int arrow_Sound = 50507;
public const int funnel_Sound = 50607;
public const int miasma_Sound = 50707;
public const int weapon_Sound = 50807;
public const int hand_Mind = 50404;
public const int puddle_Sound = 50907;
public const int sword_Sound = 51007;
public const int bit_Sound = 51107;
public const int ball_Nerve = 50108;
public const int bolt_Nerve = 50308;
public const int miasma_Nerve = 50708;
public const int bolt_Mind = 50304;
public const int weapon_Nerve = 50808;
public const int puddle_Nerve = 50908;
public const int sword_Nerve = 51008;
public const int bit_Nerve = 51108;
public const int ball_Holy = 50109;
public const int miasma_Holy = 50709;
public const int ball_Void = 50116;
public const int bolt_Holy = 50309;
public const int hand_Holy = 50409;
public const int arrow_Void = 50516;
public const int arrow_Holy = 50509;
public const int funnel_Holy = 50609;
public const int sword_Nether = 51006;
public const int ball_Mind = 50104;
public const int weapon_Nether = 50806;
public const int arrow_Sound = 50507;
public const int hand_Mind = 50404;
public const int ball_Poison = 50105;
public const int arrow_Mind = 50504;
public const int hand_Sound = 50407;
public const int funnel_Mind = 50604;
public const int arrow_Mind = 50504;
public const int miasma_Mind = 50704;
public const int bolt_Poison = 50305;
public const int weapon_Mind = 50804;
public const int puddle_Mind = 50904;
public const int sword_Mind = 51004;
public const int bit_Mind = 51104;
public const int ball_Poison = 50105;
public const int puddle_Void = 50916;
public const int weapon_Void = 50816;
public const int bolt_Poison = 50305;
public const int hand_Poison = 50405;
public const int arrow_Poison = 50505;
public const int puddle_Nether = 50906;
public const int funnel_Poison = 50605;
public const int arrow_Poison = 50505;
public const int miasma_Poison = 50705;
public const int sword_Poison = 51005;
public const int ball_Nether = 50106;
public const int bit_Poison = 51105;
public const int puddle_Mind = 50904;
public const int miasma_Void = 50716;
public const int weapon_Mind = 50804;
public const int ball_Nether = 50106;
public const int miasma_Mind = 50704;
public const int funnel_Void = 50616;
public const int bolt_Nether = 50306;
public const int miasma_Nether = 50706;
public const int weapon_Nether = 50806;
public const int funnel_Poison = 50605;
public const int funnel_Mind = 50604;
public const int funnel_Holy = 50609;
public const int puddle_Nether = 50906;
public const int miasma_Holy = 50709;
public const int sword_Nether = 51006;
public const int weapon_Holy = 50809;
public const int ball_Sound = 50107;
public const int puddle_Ether = 50912;
public const int bolt_Sound = 50307;
public const int sword_Ether = 51012;
public const int weapon_Holy = 50809;
public const int bit_Ether = 51112;
public const int ball_Acid = 50113;
public const int weapon_Impact = 50815;
public const int bolt_Mind = 50304;
public const int hand_Acid = 50413;
public const int sword_Holy = 51009;
public const int arrow_Acid = 50513;
public const int funnel_Acid = 50613;
public const int miasma_Acid = 50713;
public const int weapon_Acid = 50813;
public const int sword_Acid = 51013;
public const int ball_Cut = 50114;
public const int weapon_Ether = 50812;
public const int bit_Acid = 51113;
public const int miasma_Impact = 50715;
public const int bolt_Cut = 50314;
public const int sword_Cut = 51014;
public const int ball_Impact = 50115;
public const int bit_Cut = 51114;
public const int miasma_Acid = 50713;
public const int bolt_Impact = 50315;
public const int arrow_Impact = 50515;
public const int ball_Impact = 50115;
public const int funnel_Impact = 50615;
public const int miasma_Impact = 50715;
public const int weapon_Impact = 50815;
public const int puddle_Impact = 50915;
public const int sword_Impact = 51015;
public const int ball_Void = 50116;
public const int bolt_Void = 50316;
public const int hand_Void = 50416;
public const int arrow_Void = 50516;
public const int bolt_Impact = 50315;
public const int funnel_Void = 50616;
public const int ball_Cut = 50114;
public const int miasma_Void = 50716;
public const int miasma_Ether = 50712;
public const int weapon_Void = 50816;
public const int funnel_Ether = 50612;
public const int hand_Impact = 50415;
public const int arrow_Ether = 50512;
public const int funnel_Acid = 50613;
public const int puddle_Holy = 50909;
public const int arrow_Acid = 50513;
public const int sword_Holy = 51009;
public const int sword_Darkness = 51003;
public const int bit_Holy = 51109;
public const int ball_Chaos = 50110;
public const int bit_Impact = 51115;
public const int bolt_Chaos = 50310;
public const int hand_Chaos = 50410;
public const int sword_Chaos = 51010;
public const int bit_Chaos = 51110;
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 sword_Magic = 51011;
public const int bit_Magic = 51111;
public const int ball_Ether = 50112;
public const int puddle_Impact = 50915;
public const int bolt_Ether = 50312;
public const int hand_Ether = 50412;
public const int arrow_Ether = 50512;
public const int funnel_Ether = 50612;
public const int miasma_Ether = 50712;
public const int weapon_Ether = 50812;
public const int puddle_Ether = 50912;
public const int sword_Ether = 51012;
public const int ball_Acid = 50113;
public const int arrow_Impact = 50515;
public const int bolt_Acid = 50313;
public const int puddle_Holy = 50909;
public const int puddle_Darkness = 50903;
public const int hand_Fire = 50400;
public const int miasma_Darkness = 50703;
public const int ball_Cold = 50101;
public const int SpHealHeavy = 8401;
public const int bit_Darkness = 51103;
public const int SpHealCritical = 8402;
public const int SpHero = 8504;
public const int SpResEle = 8506;
public const int SpTelepathy = 8770;
public const int SpBreath = 8507;
public const int SpSpeedDown = 8710;
public const int SpSpeedUp = 8510;
public const int SpGravity = 8708;
public const int SpRebirth = 8550;
public const int SpBerserk = 8707;
public const int SpBrightnessOfLife = 8555;
public const int SpBane = 8706;
public const int SpSilence = 8700;
public const int SpNightmare = 8705;
public const int SpWeakness = 8702;
public const int SpHealHeavy = 8401;
public const int SpWeakResEle = 8704;
public const int SpNightmare = 8705;
public const int SpSilence = 8700;
public const int SpBane = 8706;
public const int SpBrightnessOfLife = 8555;
public const int SpBerserk = 8707;
public const int SpRebirth = 8550;
public const int SpHealLight = 8400;
public const int SpSpeedUp = 8510;
public const int SpGravity = 8708;
public const int SpBreath = 8507;
public const int SpWish = 8390;
public const int SpResEle = 8506;
public const int SpLevitate = 8300;
public const int SpWeakness = 8702;
public const int SpInvisibility = 8775;
public const int SpHealLight = 8400;
public const int SpMutation = 8380;
public const int ball_ = 7001;
public const int sword_ = 7008;
public const int bit_ = 7009;
public const int puddle_ = 7800;
public const int SpTeleport = 8200;
public const int SpIdentifyG = 8232;
public const int SpUncurse = 8240;
public const int SpUncurseG = 8241;
public const int SpEnchantWeapon = 8250;
public const int SpEnchantWeaponGreat = 8251;
public const int SpLevitate = 8300;
public const int SpEnchantArmor = 8255;
public const int SpReconstruction = 8288;
public const int SpEnchantArmorGreat = 8256;
public const int SpChangeMaterialG = 8286;
public const int SpMagicMap = 8260;
public const int SpChangeMaterial = 8285;
public const int SpLighten = 8280;
public const int SpChangeMaterialLesser = 8284;
public const int SpFaith = 8281;
public const int SpChangeMaterialLesser = 8284;
public const int SpWish = 8390;
public const int SpChangeMaterial = 8285;
public const int SpLighten = 8280;
public const int SpChangeMaterialG = 8286;
public const int SpEnchantArmorGreat = 8256;
public const int SpReconstruction = 8288;
public const int SpEnchantArmor = 8255;
public const int SpMutation = 8380;
public const int SpEnchantWeaponGreat = 8251;
public const int SpSpeedDown = 8710;
public const int SpEnchantWeapon = 8250;
public const int SpTelepathy = 8770;
public const int SpUncurseG = 8241;
public const int SpInvisibility = 8775;
public const int SpUncurse = 8240;
public const int arrow_Fire = 50500;
public const int SpMagicMap = 8260;
public const int funnel_Fire = 50600;
public const int SpSeeInvisible = 8776;
public const int miasma_Fire = 50700;
public const int SpIncognito = 8780;
public const int weapon_Fire = 50800;
public const int SpTransmuteBroom = 8790;
public const int puddle_Fire = 50900;
public const int sword_Fire = 51000;
public const int ball_Cold = 50101;
public const int bit_Fire = 51100;
public const int bolt_Cold = 50301;
public const int sword_Cold = 51001;
public const int bit_Cold = 51101;
public const int ball_Lightning = 50102;
public const int bolt_Lightning = 50302;
public const int funnel_Lightning = 50602;
public const int miasma_Lightning = 50702;
public const int sword_Darkness = 51003;
public const int weapon_Lightning = 50802;
public const int puddle_Darkness = 50903;
public const int puddle_Lightning = 50902;
public const int weapon_Darkness = 50803;
public const int sword_Lightning = 51002;
public const int miasma_Darkness = 50703;
public const int ball_Darkness = 50103;
public const int funnel_Darkness = 50603;
public const int bolt_Darkness = 50303;
public const int arrow_Darkness = 50503;
public const int weapon_Fire = 50800;
public const int hand_Darkness = 50403;
public const int arrow_Darkness = 50503;
public const int ball_Darkness = 50103;
public const int funnel_Darkness = 50603;
public const int bit_Lightning = 51102;
public const int bolt_Fire = 50300;
public const int sword_Lightning = 51002;
public const int puddle_Void = 50916;
public const int puddle_Lightning = 50902;
public const int ball_Fire = 50100;
public const int weapon_Lightning = 50802;
public const int SpDrawBacker = 9503;
public const int miasma_Lightning = 50702;
public const int SpSeeInvisible = 8776;
public const int bolt_Darkness = 50303;
public const int SpIncognito = 8780;
public const int miasma_Fire = 50700;
public const int SpTransmuteBroom = 8790;
public const int funnel_Fire = 50600;
public const int SpTransmutePutit = 8791;
public const int arrow_Fire = 50500;
public const int SpTransmuteCat = 8792;
public const int SpSummonTako = 9009;
public const int SpDarkness = 8800;
public const int SpSummonFish = 9008;
public const int SpWeb = 8801;
public const int SpSummonOrc = 9007;
public const int SpSummon = 9000;
public const int SpSummonYeek = 9006;
public const int SpSummonUndeadSister = 9001;
public const int SpSummonPawn = 9005;
public const int SpSummonFire = 9002;
public const int SpSummonMonster = 9004;
public const int SpSummonShubKid = 9010;
public const int SpSummonTentacle = 9003;
public const int SpSummonMonster = 9004;
public const int SpSummonUndeadSister = 9001;
public const int SpSummonPawn = 9005;
public const int SpSummon = 9000;
public const int SpSummonYeek = 9006;
public const int SpWeb = 8801;
public const int weapon_Darkness = 50803;
public const int SpDarkness = 8800;
public const int SpSummonOrc = 9007;
public const int SpTransmuteCat = 8792;
public const int SpSummonTako = 9009;
public const int SpTransmutePutit = 8791;
public const int SpSummonShubKid = 9010;
public const int SpSummonFire = 9002;
public const int SpSummonShadow = 9050;
public const int ball_Mind = 50104;
public const int SpSummonTidalWave = 9051;
public const int SpSummonShadow = 9050;
public const int SpSummonTrooper = 9052;
public const int SpMeteor = 9150;
public const int hand_Fire = 50400;
public const int SpEarthquake = 9151;
public const int bolt_Fire = 50300;
public const int SpMoonSpear = 9155;
public const int sword_Void = 51016;
public const int SpMoonArrow = 9156;
public const int ball_Fire = 50100;
public const int SpExterminate = 9160;
public const int SpDrawBacker = 9503;
public const int SpShutterHex = 9200;
public const int SpDrawMetal = 9502;
public const int SpWardMonster = 9500;
public const int SpSummonTidalWave = 9051;
public const int SpDrawMonster = 9501;
public const int SpDrawMetal = 9502;
public const int SpShutterHex = 9200;
public const int SpSummonFish = 9008;
public const int SpExterminate = 9160;
public const int sword_Void = 51016;
public const int SpMoonArrow = 9156;
public const int SpMoonSpear = 9155;
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[250]
public static readonly int[] IDS = new int[268]
{
50607, 50707, 50807, 50404, 50907, 51007, 50108, 50308, 50408, 50508,
50608, 50708, 50304, 50808, 50908, 51008, 50109, 50709, 50309, 50409,
50509, 50609, 50104, 50507, 50105, 50407, 50504, 50305, 51004, 50405,
50505, 50605, 50705, 50805, 50905, 51005, 50106, 50904, 50804, 50704,
50306, 50406, 50506, 50606, 50706, 50806, 50604, 50906, 51006, 50107,
50307, 50809, 50413, 51009, 50813, 50913, 51013, 50114, 50314, 50414,
50514, 50614, 50714, 50814, 50914, 51014, 50115, 50713, 50315, 50515,
50615, 50715, 50815, 50915, 51015, 50116, 50316, 50416, 50516, 50616,
50716, 50816, 50415, 50613, 50513, 51003, 50110, 50310, 50410, 50510,
50610, 50710, 50810, 50910, 51010, 50111, 50311, 50411, 50511, 50611,
50711, 50811, 50911, 51011, 50112, 50312, 50412, 50512, 50612, 50712,
50812, 50912, 51012, 50113, 50313, 50909, 50903, 50400, 50703, 8401,
8402, 8403, 8404, 8405, 8406, 8430, 8450, 8470, 8471, 8480,
8490, 8491, 8500, 8501, 8502, 8503, 8504, 8506, 8507, 8510,
8550, 8555, 8700, 8702, 8704, 8705, 8706, 8707, 8400, 8708,
8390, 8300, 7001, 7002, 7003, 7004, 7005, 7006, 7007, 7008,
7800, 8200, 8201, 8202, 8220, 8221, 8230, 8232, 8240, 8241,
8250, 8251, 8255, 8256, 8260, 8280, 8281, 8284, 8285, 8286,
8288, 8380, 8710, 8770, 8775, 50500, 50600, 50700, 50800, 50900,
51000, 50101, 50301, 50401, 50501, 50601, 50701, 50801, 50901, 51001,
50102, 50302, 50402, 50502, 50602, 50702, 50802, 50902, 51002, 50103,
50303, 50403, 50503, 50603, 50300, 50916, 50100, 9503, 8776, 8780,
8790, 8791, 8792, 8800, 8801, 9000, 9001, 9002, 9003, 9004,
9005, 9006, 50803, 9007, 9009, 9010, 9050, 9051, 9052, 9150,
9151, 9155, 9156, 9160, 9200, 9500, 9501, 9502, 9008, 51016
50415, 50416, 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,
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
};
}
public class Spell : Ability
ShopType
LoytelMart,
StrangeGirl,
Sweet,
Moyer
Moyer,
Curry
}
SourceElement
public override void OnAfterImportData()
AddRow(ele, num + num2 + 800, "weapon_");
AddRow(ele, num + num2 + 900, "puddle_");
AddRow(ele, num + num2 + 1000, "sword_");
AddRow(ele, num + num2 + 1100, "bit_");
num2++;
}
}
SourceMaterial
public void CreateByProduct(Thing container, int num)
C("gem");
break;
case "ore":
C("scrap");
C("cutstone");
C("ingot");
break;
Trait
Thing thing = CreateStock();
if ((!thing.trait.IsNoShop || (ShopType == ShopType.LoytelMart && (EClass.debug.enable || EClass.player.flags.loytelMartLv >= 2))) && (!(thing.trait is TraitRod) || thing.c_charges != 0) && thing.GetPrice() > 0)
{
t.AddThing(thing);
bool tryStack = true;
if (ShopType == ShopType.Curry)
{
tryStack = false;
}
t.AddThing(thing, tryStack);
}
}
break;
return FromFilter("shop_magic");
case ShopType.Ecopo:
{
Thing thing3 = TraitSeed.MakeRandomSeed(enc: true);
Thing thing2 = TraitSeed.MakeRandomSeed(enc: true);
if (EClass.rnd(2) == 0)
{
TraitSeed.LevelSeed(thing3, (thing3.trait as TraitSeed).row, 1);
TraitSeed.LevelSeed(thing2, (thing2.trait as TraitSeed).row, 1);
}
return thing3;
return thing2;
}
case ShopType.Healer:
{
Thing thing2 = null;
Thing thing3 = null;
for (int i = 0; i < 1000; i++)
{
thing2 = FromFilter("shop_healer");
if (thing2.trait is TraitScroll { source: not null } traitScroll)
thing3 = FromFilter("shop_healer");
if (thing3.trait is TraitScroll { source: not null } traitScroll)
{
if (!(traitScroll.source.aliasParent != "WIL") && !(traitScroll.source.categorySub == "attack"))
{
break;
}
}
else if (thing2.trait is TraitPotionRandom { source: not null } traitPotionRandom)
else if (thing3.trait is TraitPotionRandom { source: not null } traitPotionRandom)
{
if (!(traitPotionRandom.source.aliasParent != "WIL") && !(traitPotionRandom.source.categorySub == "attack"))
{
thing2.SetNum(EClass.rnd(5) + 1);
thing3.SetNum(EClass.rnd(5) + 1);
break;
}
}
else if (thing2.trait is TraitRodRandom { source: not null } traitRodRandom && !(traitRodRandom.source.aliasParent != "WIL") && !(traitRodRandom.source.categorySub == "attack"))
else if (thing3.trait is TraitRodRandom { source: not null } traitRodRandom && !(traitRodRandom.source.aliasParent != "WIL") && !(traitRodRandom.source.categorySub == "attack"))
{
break;
}
}
return thing2;
return thing3;
}
case ShopType.Milk:
if (EClass._zone is Zone_Nefu && EClass.rnd(2) == 0)
return Create("dough");
}
return FromFilter("shop_sweet");
case ShopType.Curry:
if (EClass.rnd(3) == 0)
{
return Create("seasoning");
}
return Create("693");
case ShopType.Food:
if (EClass.rnd(5) == 0)
{
+TraitAmmoRocket
File Created
public class TraitAmmoRocket : TraitAmmo
{
}
+TraitBambi
File Created
public class TraitBambi : TraitUniqueMerchant
{
public override ShopType ShopType => ShopType.Curry;
public override int ShopLv => base.ShopLv + 10;
public override bool CanInvite => false;
}
+TraitToolRangeGunRocket
File Created
public class TraitToolRangeGunRocket : TraitToolRangeGun
{
public override bool IsAmmo(Thing t)
{
return t.trait is TraitAmmoRocket;
}
}
TraitTrolley
public virtual float FadeDuration
public bool CanActivate(Chara c)
{
if (c.host != null || c.IsInCombat)
if (c.host != null || c.IsInCombat || c.isLeashed)
{
return false;
}
+TraitTyche
File Created
public class TraitTyche : TraitUniqueChara
{
public override bool CanInvite => false;
}
+TraitVishnu
File Created
public class TraitVishnu : TraitUniqueChara
{
public override bool CanInvite => false;
}
WidgetStatsBar
}
if (extra.fame)
{
Add(null, "fame", iconFame, () => EMono.player.fame.ToString() ?? "");
Add(null, "fame", iconFame, () => EMono.player.fame.ToFormat());
}
if (extra.influence)
{
Add(null, "influence", iconInfluence, () => EMono._zone.influence.ToString() ?? "", null, () => EMono._zone.influence != 0);
Add(null, "influence", iconInfluence, () => EMono._zone.influence.ToFormat(), null, () => EMono._zone.influence != 0);
}
if (extra.tourism_value)
{
WindowChara
textStyle.text = "_style".lang(Lang._weight(chara.body.GetWeight(armorOnly: true)) ?? "", chara.elements.GetOrCreateElement(chara.GetArmorSkill()).Name, ("style" + chara.body.GetAttackStyle()).lang());
textKarma.text = (chara.IsPC ? (EClass.player.karma.ToString() ?? "") : "???");
textSAN.text = chara.SAN.value.ToString() ?? "";
textFame.text = (chara.IsPC ? (EClass.player.fame.ToString() ?? "") : "???");
textFame.text = (chara.IsPC ? (EClass.player.fame.ToFormat() ?? "") : "???");
textMoney.text = Lang._currency(chara.GetCurrency(), showUnit: true);
textDeposit.text = Lang._currency(chara.IsPC ? EClass.game.cards.container_deposit.GetCurrency() : chara.c_allowance, showUnit: true);
string text = "deepestLv2".lang((chara.IsPCFaction ? EClass.player.stats.deepest : chara.LV).ToString() ?? "");
Zone
public Chara SpawnMob(Point pos = null, SpawnSetting setting = null)
biome = ((EClass.rnd(4) != 0) ? EClass.core.refs.biomes.Water : EClass.core.refs.biomes.Sand);
}
SpawnList spawnList = null;
Debug.Log(setting.idSpawnList + "/" + biome.name + "/" + biome.id);
spawnList = ((setting.idSpawnList != null) ? SpawnList.Get(setting.idSpawnList) : ((EClass._zone is Zone_DungeonYeek && EClass.rnd(5) != 0) ? SpawnListChara.Get("dungeon_yeek", (SourceChara.Row r) => r.race == "yeek" && r.quality == 0) : ((EClass._zone is Zone_DungeonDragon && EClass.rnd(5) != 0) ? SpawnListChara.Get("dungeon_dragon", (SourceChara.Row r) => (r.race == "dragon" || r.race == "drake" || r.race == "wyvern" || r.race == "lizardman" || r.race == "dinosaur") && r.quality == 0) : ((EClass._zone is Zone_DungeonMino && EClass.rnd(5) != 0) ? SpawnListChara.Get("dungeon_mino", (SourceChara.Row r) => r.race == "minotaur" && r.quality == 0) : ((setting.hostility == SpawnHostility.Neutral || (setting.hostility != SpawnHostility.Enemy && Rand.Range(0f, 1f) < ChanceSpawnNeutral)) ? SpawnList.Get("c_neutral") : ((biome.spawn.chara.Count <= 0) ? SpawnList.Get(biome.name, "chara", new CharaFilter
{
ShouldPass = delegate(SourceChara.Row s)
public Playlist CreatePlaylist(ref List<int> list, Playlist mold = null)
{
playlist.list.Add(new Playlist.Item
{
data = EClass.core.refs.dictBGM[item]
data = EClass.core.refs.dictBGM.TryGetValue(item, 1)
});
}
return playlist;
Zone_CurryRuinDungeon
public class Zone_CurryRuinDungeon : Zone_QuestDungeon
{
public const int LvBoss = -8;
public const int LvBoss = -5;
public bool IsBossLv => base.lv == -8;
public bool IsBossLv => base.lv == -5;
public override int DangerLv => 5 + Mathf.Abs(base.lv);
public override int DangerLv => 33 + Mathf.Abs(base.lv);
public override bool LockExit
{
get
{
if (base.lv == -1)
{
return EClass.game.quests.GetPhase<QuestVernis>() < 7;
}
return false;
}
}
public override float OreChance => 4f;
public override bool LockExit => base.lv <= -1;
public override string idExport
{
get
{
if (base.lv != -8)
if (base.lv != -5)
{
return base.idExport;
}
public override string idExport
}
}
public override string GetDungenID()
{
return "DungeonMine";
}
public override void OnGenerateMap()
{
if (IsBossLv)