EA 23.203 Nyaightly
September 22, 2025
20 files modified. 2 new files created.
Important Changes
None.
ActEffect
public static bool DamageEle(Card CC, EffectId id, int power, Element e, List<Po
{
return;
}
Thing thing = ThingGen.Create("mine");
thing.c_idRefCard = "dog_mine";
Thing thing2 = ThingGen.Create("mine");
thing2.c_idRefCard = "dog_mine";
Zone.ignoreSpawnAnime = true;
EClass._zone.AddCard(thing, CC.pos).Install();
EClass._zone.AddCard(thing2, CC.pos).Install();
break;
}
case EffectId.LittleSisterMigration:
{
if (!(EClass._zone is Zone_LittleGarden))
{
Msg.SayNothingHappen();
return;
}
List<Chara> list3 = new List<Chara>();
bool flag6 = false;
foreach (Chara chara2 in EClass._map.charas)
{
if (!chara2.IsPCFactionOrMinion && chara2.id == "littleOne")
{
if (flag6)
{
flag6 = false;
continue;
}
list3.Add(chara2);
flag6 = true;
}
}
if (list3.Count == 0)
{
Msg.SayNothingHappen();
return;
}
EClass.pc.PlaySound("chime_angel");
foreach (Chara item2 in list3)
{
item2.PlayEffect("revive");
item2.Destroy();
}
Msg.Say("little_migration", list3.Count.ToString() ?? "");
EClass._zone.ModInfluence(list3.Count);
EClass.player.stats.sistersDepart += list3.Count;
break;
}
case EffectId.MagicMap:
public static bool DamageEle(Card CC, EffectId id, int power, Element e, List<Po
case EffectId.EnchantArmorGreat:
{
bool armor = id == EffectId.EnchantArmor || id == EffectId.EnchantArmorGreat;
bool flag4 = id == EffectId.EnchantWeaponGreat || id == EffectId.EnchantArmorGreat;
bool flag3 = id == EffectId.EnchantWeaponGreat || id == EffectId.EnchantArmorGreat;
if (!tc.isThing)
{
LayerDragGrid.CreateEnchant(CC, armor, flag4, state);
LayerDragGrid.CreateEnchant(CC, armor, flag3, state);
return;
}
cc.PlaySound("identify");
public static bool DamageEle(Card CC, EffectId id, int power, Element e, List<Po
tc.ModEncLv(-1);
break;
}
int num4 = (flag4 ? 4 : 2) + (blessed ? 1 : 0);
int num4 = (flag3 ? 4 : 2) + (blessed ? 1 : 0);
if (tc.encLV >= num4)
{
cc.Say("enc_resist", tc);
public static bool DamageEle(Card CC, EffectId id, int power, Element e, List<Po
case EffectId.Identify:
case EffectId.GreaterIdentify:
{
bool flag2 = id == EffectId.GreaterIdentify;
bool flag4 = id == EffectId.GreaterIdentify;
if (flag)
{
Redirect(EffectId.ForgetItems, flag2 ? BlessedState.Cursed : BlessedState.Normal, default(ActRef));
Redirect(EffectId.ForgetItems, flag4 ? BlessedState.Cursed : BlessedState.Normal, default(ActRef));
break;
}
if (!tc.isThing)
{
int count = ((!blessed) ? 1 : (flag2 ? (2 + EClass.rnd(2)) : (3 + EClass.rnd(3))));
LayerDragGrid.CreateIdentify(CC, flag2, state, 0, count);
int count = ((!blessed) ? 1 : (flag4 ? (2 + EClass.rnd(2)) : (3 + EClass.rnd(3))));
LayerDragGrid.CreateIdentify(CC, flag4, state, 0, count);
return;
}
cc.PlaySound("identify");
cc.PlayEffect("identify");
tc.Thing.Identify(cc.IsPCParty, (!flag2) ? IDTSource.Identify : IDTSource.SuperiorIdentify);
tc.Thing.Identify(cc.IsPCParty, (!flag4) ? IDTSource.Identify : IDTSource.SuperiorIdentify);
break;
}
case EffectId.Uncurse:
public static bool DamageEle(Card CC, EffectId id, int power, Element e, List<Po
LayerDragGrid.CreateUncurse(CC, state);
return;
}
Thing thing2 = tc.Thing;
if (thing2.blessedState == BlessedState.Cursed)
Thing thing3 = tc.Thing;
if (thing3.blessedState == BlessedState.Cursed)
{
thing2.SetBlessedState(BlessedState.Normal);
thing3.SetBlessedState(BlessedState.Normal);
}
else if (thing2.blessedState == BlessedState.Doomed)
else if (thing3.blessedState == BlessedState.Doomed)
{
thing2.SetBlessedState(BlessedState.Normal);
thing3.SetBlessedState(BlessedState.Normal);
}
thing2.GetRootCard()?.TryStack(thing2);
LayerInventory.SetDirty(thing2);
thing3.GetRootCard()?.TryStack(thing3);
LayerInventory.SetDirty(thing3);
break;
}
case EffectId.Lighten:
public static bool DamageEle(Card CC, EffectId id, int power, Element e, List<Po
cc.PlayEffect("identify");
cc.Say("reconstruct", cc, tc);
EClass.game.cards.uidNext += EClass.rnd(30);
Thing thing3 = ThingGen.Create(tc.id, -1, tc.LV * power / 100);
thing3.SetBlessedState(state);
Thing thing = ThingGen.Create(tc.id, -1, tc.LV * power / 100);
thing.SetBlessedState(state);
tc.Destroy();
CC.Pick(thing3, msg: false);
CC.Pick(thing, msg: false);
if (!CC.IsPC)
{
CC.TryEquip(thing3);
CC.TryEquip(thing);
}
break;
}
public static bool DamageEle(Card CC, EffectId id, int power, Element e, List<Po
if (row == null)
{
bool num2 = id == EffectId.ChangeMaterialGreater;
bool flag3 = id == EffectId.ChangeMaterialLesser;
bool flag2 = id == EffectId.ChangeMaterialLesser;
string text2 = tc.Thing.source.tierGroup;
Dictionary<string, SourceMaterial.TierList> tierMap = SourceMaterial.tierMap;
int num3 = 1;
public static bool DamageEle(Card CC, EffectId id, int power, Element e, List<Po
{
num3++;
}
if (flag3)
if (flag2)
{
num3 -= 2;
}
public static bool DamageEle(Card CC, EffectId id, int power, Element e, List<Po
cc.PlayEffect("buff");
if ((tc.id == "log" || tc.id == "branch") && tc.material.alias == "carbone")
{
foreach (Element item2 in tc.elements.dict.Values.ToList())
foreach (Element item3 in tc.elements.dict.Values.ToList())
{
if (item2.IsTrait && item2.vBase != 0)
if (item3.IsTrait && item3.vBase != 0)
{
tc.elements.ModBase(item2.id, -item2.vBase);
tc.elements.ModBase(item3.id, -item3.vBase);
}
}
}
public static bool DamageEle(Card CC, EffectId id, int power, Element e, List<Po
}
if (id == EffectId.Gate && CC.IsPC)
{
foreach (Chara chara2 in EClass._map.charas)
foreach (Chara chara3 in EClass._map.charas)
{
if (!chara2.HasHost && chara2 != tc && (chara2.IsPCParty || chara2.IsPCPartyMinion))
if (!chara3.HasHost && chara3 != tc && (chara3.IsPCParty || chara3.IsPCPartyMinion))
{
chara2.Teleport(tc.pos.GetNearestPoint(allowBlock: false, allowChara: false) ?? tc.pos);
chara3.Teleport(tc.pos.GetNearestPoint(allowBlock: false, allowChara: false) ?? tc.pos);
}
}
}
public static bool DamageEle(Card CC, EffectId id, int power, Element e, List<Po
TC.Say("abShutterHex", TC);
TC.pos.ForeachNeighbor(delegate(Point p)
{
foreach (Chara item3 in p.ListCharas())
foreach (Chara item4 in p.ListCharas())
{
if (!item3.IsFriendOrAbove(CC))
if (!item4.IsFriendOrAbove(CC))
{
int num9 = Dice.Create("SpShutterHex", power, CC, (actRef.refThing != null) ? null : actRef.act).Roll();
item3.DamageHP(num9 * hex2, 919, power, AttackSource.None, CC);
item4.DamageHP(num9 * hex2, 919, power, AttackSource.None, CC);
}
}
});
public static bool DamageEle(Card CC, EffectId id, int power, Element e, List<Po
break;
}
Thing thing4 = null;
bool flag7 = actRef.n1 == "food";
bool flag8 = actRef.n1 == "food";
if (actRef.n1 == "money")
{
int currency = TC.GetCurrency();
public static bool DamageEle(Card CC, EffectId id, int power, Element e, List<Po
else
{
Func<Thing, bool> func = (Thing t) => true;
if (flag7)
if (flag8)
{
func = (Thing t) => t.IsFood;
}
List<Thing> list4 = TC.things.List(delegate(Thing t)
List<Thing> list5 = TC.things.List(delegate(Thing t)
{
if (t.parentCard?.trait is TraitChestMerchant || t.trait is TraitTool || t.IsThrownWeapon)
{
public static bool DamageEle(Card CC, EffectId id, int power, Element e, List<Po
}
return t.trait.CanBeDestroyed && t.things.Count == 0 && t.invY != 1 && t.trait.CanBeStolen && !t.trait.CanOnlyCarry && !t.IsUnique && !t.isEquipped && t.blessedState == BlessedState.Normal && func(t);
}, onlyAccessible: true);
if (list4.Count > 0)
if (list5.Count > 0)
{
thing4 = list4.RandomItem();
thing4 = list5.RandomItem();
if (thing4.Num > 1)
{
thing4 = thing4.Split(1);
public static bool DamageEle(Card CC, EffectId id, int power, Element e, List<Po
{
break;
}
List<Thing> list7 = TC.things.List(delegate(Thing t)
List<Thing> list8 = TC.things.List(delegate(Thing t)
{
if (!t.isEquipped || t.blessedState == BlessedState.Doomed || t.IsToolbelt)
{
public static bool DamageEle(Card CC, EffectId id, int power, Element e, List<Po
}
return (t.blessedState < BlessedState.Blessed || EClass.rnd(10) == 0) ? true : false;
});
if (list7.Count == 0)
if (list8.Count == 0)
{
CC.SayNothingHappans();
break;
}
Thing thing6 = list7.RandomItem();
Thing thing6 = list8.RandomItem();
TC.Say("curse_hit", TC, thing6);
thing6.SetBlessedState((thing6.blessedState == BlessedState.Cursed) ? BlessedState.Doomed : BlessedState.Cursed);
LayerInventory.SetDirty(thing6);
public static bool DamageEle(Card CC, EffectId id, int power, Element e, List<Po
}
}
});
foreach (Thing item4 in list)
foreach (Thing item5 in list)
{
item4.GetRootCard()?.TryStack(item4);
item5.GetRootCard()?.TryStack(item5);
}
if (success == 0 && fail == 0)
{
public static bool DamageEle(Card CC, EffectId id, int power, Element e, List<Po
{
EClass.game.religions.Trickery.Talk("ability");
bool hex = CC.IsHostile(TC);
List<SourceStat.Row> list6 = EClass.sources.stats.rows.Where((SourceStat.Row con) => con.tag.Contains("random") && con.group == (hex ? "Debuff" : "Buff")).ToList();
List<SourceStat.Row> list7 = EClass.sources.stats.rows.Where((SourceStat.Row con) => con.tag.Contains("random") && con.group == (hex ? "Debuff" : "Buff")).ToList();
int power2 = power;
for (int l = 0; l < 4 + EClass.rnd(2); l++)
{
SourceStat.Row row2 = list6.RandomItem();
list6.Remove(row2);
SourceStat.Row row2 = list7.RandomItem();
list7.Remove(row2);
Proc(hex ? EffectId.DebuffKizuami : EffectId.Buff, CC, TC, power2, new ActRef
{
n1 = row2.alias
public static bool DamageEle(Card CC, EffectId id, int power, Element e, List<Po
break;
case EffectId.Revive:
{
List<KeyValuePair<int, Chara>> list3 = EClass.game.cards.globalCharas.Where((KeyValuePair<int, Chara> a) => a.Value.isDead && a.Value.faction == EClass.pc.faction && !a.Value.isSummon && a.Value.c_wasInPcParty).ToList();
List<KeyValuePair<int, Chara>> list4 = EClass.game.cards.globalCharas.Where((KeyValuePair<int, Chara> a) => a.Value.isDead && a.Value.faction == EClass.pc.faction && !a.Value.isSummon && a.Value.c_wasInPcParty).ToList();
if (TC.IsPCFaction || TC.IsPCFactionMinion)
{
if (TC.IsPC && list3.Count == 0)
if (TC.IsPC && list4.Count == 0)
{
list3 = EClass.game.cards.globalCharas.Where((KeyValuePair<int, Chara> a) => a.Value.CanRevive() && a.Value.isDead && a.Value.faction == EClass.pc.faction && !a.Value.isSummon).ToList();
list4 = EClass.game.cards.globalCharas.Where((KeyValuePair<int, Chara> a) => a.Value.CanRevive() && a.Value.isDead && a.Value.faction == EClass.pc.faction && !a.Value.isSummon).ToList();
}
if (list3.Count > 0)
if (list4.Count > 0)
{
list3.RandomItem().Value.Chara.GetRevived();
list4.RandomItem().Value.Chara.GetRevived();
break;
}
}
public static bool DamageEle(Card CC, EffectId id, int power, Element e, List<Po
case EffectId.DamageMindGreat:
case EffectId.Weaken:
{
bool flag8 = id == EffectId.DamageBody || id == EffectId.DamageBodyGreat;
bool flag9 = id == EffectId.DamageBody || id == EffectId.DamageBodyGreat;
bool mind = id == EffectId.DamageMind || id == EffectId.DamageMindGreat;
int num8 = ((id == EffectId.DamageBody || id == EffectId.DamageMind) ? 1 : (4 + EClass.rnd(4)));
if (id == EffectId.Weaken)
{
flag8 = EClass.rnd(2) == 0;
mind = !flag8;
flag9 = EClass.rnd(2) == 0;
mind = !flag9;
num8 = 1;
}
else
public static bool DamageEle(Card CC, EffectId id, int power, Element e, List<Po
TC.PlayEffect("debuff");
TC.PlaySound("debuff");
}
TC.Say(flag8 ? "damageBody" : "damageMind", TC);
TC.Say(flag9 ? "damageBody" : "damageMind", TC);
for (int k = 0; k < num8; k++)
{
TC.DamageTempElements(power, flag8, mind, id != EffectId.Weaken);
TC.DamageTempElements(power, flag9, mind, id != EffectId.Weaken);
}
if (TC.IsPC)
{
public static bool DamageEle(Card CC, EffectId id, int power, Element e, List<Po
case EffectId.EnhanceBodyGreat:
case EffectId.EnhanceMindGreat:
{
bool flag9 = id == EffectId.EnhanceBody || id == EffectId.EnhanceBodyGreat;
bool flag10 = id == EffectId.EnhanceBody || id == EffectId.EnhanceBodyGreat;
bool mind2 = id == EffectId.EnhanceMind || id == EffectId.EnhanceMindGreat;
if (id != EffectId.EnhanceBody && id != EffectId.EnhanceMind)
{
EClass.rnd(4);
}
TC.Say(flag9 ? "enhanceBody" : "enhanceMind", TC);
TC.Say(flag10 ? "enhanceBody" : "enhanceMind", TC);
TC.PlayEffect("buff");
TC.PlaySound("buff");
TC.EnhanceTempElements(power, flag9, mind2, onlyRenew: true);
TC.EnhanceTempElements(power, flag10, mind2, onlyRenew: true);
break;
}
case EffectId.RestoreBody:
case EffectId.RestoreMind:
{
bool flag6 = id == EffectId.RestoreBody;
bool flag7 = id == EffectId.RestoreBody;
if (flag)
{
Redirect(flag6 ? EffectId.DamageBodyGreat : EffectId.DamageMindGreat, BlessedState.Normal, default(ActRef));
Redirect(flag7 ? EffectId.DamageBodyGreat : EffectId.DamageMindGreat, BlessedState.Normal, default(ActRef));
break;
}
TC.Say(flag6 ? "restoreBody" : "restoreMind", TC);
TC.Say(flag7 ? "restoreBody" : "restoreMind", TC);
TC.PlaySound("heal");
TC.PlayEffect("heal");
TC.CureHost(flag6 ? CureType.CureBody : CureType.CureMind, power, state);
TC.CureHost(flag7 ? CureType.CureBody : CureType.CureMind, power, state);
if (blessed)
{
Redirect(flag6 ? EffectId.EnhanceBodyGreat : EffectId.EnhanceMindGreat, BlessedState.Normal, default(ActRef));
Redirect(flag7 ? EffectId.EnhanceBodyGreat : EffectId.EnhanceMindGreat, BlessedState.Normal, default(ActRef));
}
break;
}
public static bool DamageEle(Card CC, EffectId id, int power, Element e, List<Po
Redirect(EffectId.CurseEQ, BlessedState.Normal, default(ActRef));
break;
}
foreach (Condition item5 in TC.conditions.Copy())
foreach (Condition item6 in TC.conditions.Copy())
{
if (item5.Type == ConditionType.Debuff && !item5.IsKilled && EClass.rnd(power * 2) > EClass.rnd(item5.power))
if (item6.Type == ConditionType.Debuff && !item6.IsKilled && EClass.rnd(power * 2) > EClass.rnd(item6.power))
{
CC.Say("removeHex", TC, item5.Name.ToLower());
item5.Kill();
CC.Say("removeHex", TC, item6.Name.ToLower());
item6.Kill();
if (id == EffectId.RemoveHex)
{
break;
public static bool DamageEle(Card CC, EffectId id, int power, Element e, List<Po
{
power /= 4;
}
List<Thing> list5 = TC.things.List((Thing t) => (t.Num <= 1 && t.IsEquipmentOrRanged && !t.IsToolbelt && !t.IsLightsource && t.isEquipped) ? true : false);
if (list5.Count != 0)
List<Thing> list6 = TC.things.List((Thing t) => (t.Num <= 1 && t.IsEquipmentOrRanged && !t.IsToolbelt && !t.IsLightsource && t.isEquipped) ? true : false);
if (list6.Count != 0)
{
Thing thing5 = list5.RandomItem();
Thing thing5 = list6.RandomItem();
TC.Say("acid_hit", TC);
if (thing5.isAcidproof)
{
ActMelee
public bool Attack(float dmgMulti = 1f)
{
Act.CC.RemoveCondition<ConInvisibility>();
}
if (orgTC.isChara && orgTC.ExistsOnMap && orgTC != cC && !orgTC.IsRestrainedResident && ACT.Melee.CanPerform(orgTC.Chara, cC))
if (orgTC.isChara && orgTC.ExistsOnMap && orgTC != cC && !orgTC.IsRestrainedResident && !orgTC.IsDisabled && ACT.Melee.CanPerform(orgTC.Chara, cC))
{
if (parried)
{
void Attack(Card _tc, Point _tp, float mtp, bool subAttack)
}
if (k > 0)
{
Act.CC.Say("attack_chaser");
Act.CC.Say(Act.CC.IsHostile() ? "attack_chaser_enemy" : "attack_chaser");
}
flag = AttackProcess.Current.Perform(count, hasHit, dmgMulti * mtp * BaseDmgMTP, maxRoll, subAttack);
if (!flag && frustration > 0 && !Act.TC.HasElement(439) && 10f + 2f * Mathf.Sqrt(frustration) > (float)EClass.rnd(100))
ActionMode
public void DoFunc(CoreConfig.GameFunc func)
}
break;
}
case CoreConfig.GameFunc.ToggleLog:
WidgetMainText.ToggleLog();
break;
case CoreConfig.GameFunc.ShowInv:
EClass.ui.ToggleInventory(delay: true);
break;
AttackProcess
public void Prepare(Chara _CC, Thing _weapon, Card _TC = null, Point _TP = null,
dMulti = 0.6f + (float)(weaponSkill.GetParent(CC).Value + weaponSkill.Value / 2 + CC.Evalue(flag3 ? 304 : (IsRanged ? 133 : 132))) / 50f;
dMulti += 0.05f * (float)CC.Evalue(IsRanged ? 1404 : 1400);
toHitBase = EClass.curve((IsCane ? CC.WIL : CC.DEX) / 4 + weaponSkill.GetParent(CC).Value / 3 + weaponSkill.Value, 50, 25) + 50;
if (CC.HasElement(1208) && weaponSkill.id == 101)
{
toHitBase = toHitBase * 115 / 100;
}
toHitFix = CC.HIT + weapon.HIT;
penetration = weapon.Penetration + CC.Evalue(92);
if (IsRanged)
Biography
return int.Parse(array[1]);
}
}
if (!c.IsPC && EClass.game.principal.noAging)
{
return EClass.game.Prologue.year - birthYear;
}
return EClass.world.date.year - birthYear;
}
Card
public void DamageHP(int dmg, int ele, int eleP = 100, AttackSource attackSource
}
}
}
if (origin != null && origin.HasElement(1208))
{
switch (attackSource)
{
case AttackSource.MagicHand:
dmg = dmg * 130 / 100;
eleP = eleP * 150 / 100;
break;
case AttackSource.MagicSword:
dmg = dmg * 120 / 100;
eleP = eleP * 150 / 100;
break;
}
}
Element e;
if (ele == 0 || ele == 926)
{
public void DamageHP(int dmg, int ele, int eleP = 100, AttackSource attackSource
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_0ead;
goto IL_0f1d;
}
}
if (zoneInstanceBout != null && (bool)LayerDrama.Instance)
public void DamageHP(int dmg, int ele, int eleP = 100, AttackSource attackSource
if (EClass.player.invlunerable)
{
EvadeDeath(null);
goto IL_0ead;
goto IL_0f1d;
}
}
if (Evalue(1220) > 0 && Chara.stamina.value >= (IsPC ? (Chara.stamina.max / 2) : (Chara.stamina.max / 3 * 2)))
public void DamageHP(int dmg, int ele, int eleP = 100, AttackSource attackSource
}
}
}
goto IL_0ead;
IL_0ead:
goto IL_0f1d;
IL_0f1d:
if (trait.CanBeAttacked)
{
renderer.PlayAnime(AnimeID.HitObj);
CoreConfig
EmptyHand,
Fire,
SwitchHotbar,
PropertySearch
PropertySearch,
ToggleLog
}
public enum GameFuncBuild
CoreDebug
}
if (Input.GetKeyDown(KeyCode.F4))
{
EClass.player.karma = EScriptable.rnd(200) - 100;
Msg.Say("k:" + EClass.player.karma + " ");
if (EClass.player.karma < 80 && EClass.pc.HasElement(1270))
{
EClass.pc.SetFeat(1270, 0, msg: true);
}
if (EClass.player.karma > -80 && EClass.pc.HasElement(1271))
{
EClass.pc.SetFeat(1271, 0, msg: true);
}
if (EClass.player.karma >= 80)
{
if (EScriptable.rnd(EClass.debug.enable ? 1 : 5) == 0 && !EClass.pc.HasElement(1270))
{
EClass.pc.SetFeat(1270, 1, msg: true);
}
}
else if (EClass.player.karma <= -80 && EScriptable.rnd(EClass.debug.enable ? 1 : 2) == 0 && !EClass.pc.HasElement(1271))
{
EClass.pc.SetFeat(1271, 1, msg: true);
}
EClass.game.quests.Start("into_darkness");
EClass.game.quests.Start("negotiation_darkness").ChangePhase(5);
return;
}
if (Input.GetKeyDown(KeyCode.F5))
EffectId
EternalYouth = 301,
MoonSpear = 302,
BurnMana = 303,
MoonArrow = 304
MoonArrow = 304,
LittleSisterMigration = 305
}
GameDate
public void AdvanceYear()
{
base.year++;
EClass.player.flags.santa = 0;
EClass.player.wellWished = false;
EClass.player.nums.OnAdvanceYear();
EClass.world.SendPackage(ThingGen.Create("gift_newyear"));
GamePrincipal
{
Oath,
Workaround,
Legacy
Legacy,
Flavor
}
public class Item
[JsonProperty]
public bool realAdv;
[JsonProperty]
public bool noAging;
[JsonProperty]
public bool dropRate;
{
enableDamageReduction = a;
});
Add(-1, Type.Flavor, "noAging", () => noAging, delegate(bool a)
{
noAging = a;
});
return list;
void Add(int grade, Type type, string id, Func<bool> _get, Action<bool> _set)
{
LayerWorldSetting
public class LayerWorldSetting : ELayer
public List<Sprite> sprites;
public Sprite spriteNoToken;
private bool started;
public int IdxCustom => 3;
{
AddCategory(GamePrincipal.Type.Workaround);
AddCategory(GamePrincipal.Type.Legacy);
AddCategory(GamePrincipal.Type.Flavor);
}
transCustom.RebuildLayout();
void AddCategory(GamePrincipal.Type type)
void AddCategory(GamePrincipal.Type type)
}
bool flag = item.id == "permadeath" && !IsEmbark && !item.WasSealed();
b.mainText.SetText(("pp_" + item.id).lang());
b.icon.SetActive(item.grade >= 0 && (item.IsSealed() || item.WasSealed()));
b.icon.SetAlpha(item.IsSealed() ? 1f : 0.3f);
b.icon.sprite = ((item.grade < 0) ? null : sprites[item.grade]);
b.icon.SetActive(item.grade < 0 || item.IsSealed() || item.WasSealed());
b.icon.SetAlpha((item.grade < 0 || item.IsSealed()) ? 1f : 0.3f);
b.icon.sprite = ((item.grade < 0) ? spriteNoToken : sprites[item.grade]);
b.icon.SetNativeSize();
b.GetOrCreate<CanvasGroup>().alpha = (flag ? 0.5f : 1f);
string text = "pp_" + item.id + "_hint";
void AddCategory(GamePrincipal.Type type)
pp.id = -1;
RefreshTemplate();
}
b.icon.SetActive(item.grade >= 0 && (item.IsSealed() || item.WasSealed()));
b.icon.SetAlpha(item.IsSealed() ? 1f : 0.3f);
b.icon.SetActive(item.grade < 0 || item.IsSealed() || item.WasSealed());
b.icon.SetAlpha((item.grade < 0 || item.IsSealed()) ? 1f : 0.3f);
});
}
}
Player
[JsonProperty]
public int gambleChestOpen;
[JsonProperty]
public int sistersDepart;
[JsonProperty]
public long shipMoney;
}
}
public int santa
{
get
{
return ints[9];
}
set
{
ints[9] = value;
}
}
public int start
{
get
PlayStory(availableStories[0]);
availableStories.RemoveAt(0);
}
if (!LayerDrama.Instance && !EClass.game.isLoading && EClass.debug.enable && EClass._zone.IsPCFaction && EClass.game.quests.GetPhase<QuestIntoDarkness>() == 0 && EClass.game.quests.GetPhase<QuestNegotiationDarkness>() == 5)
{
EClass.game.cards.globalCharas.Find("kettle");
EClass.game.quests.Get<QuestNegotiationDarkness>().Complete();
EClass.game.quests.Get<QuestIntoDarkness>().UpdateOnTalk();
}
}
public void OnLeaveZone()
{
if (QuestMain.Phase == 700)
if (!EClass.player.simulatingZone && QuestMain.Phase == 700)
{
PlayStory(40);
}
Quest
public virtual void OnEnterZone()
public virtual void OnClickQuest()
{
Chara chara = this.chara;
if (chara == null && !source.drama[0].IsEmpty())
{
chara = EClass.game.cards.globalCharas.Find(source.drama[0]);
}
if (!source.drama.IsEmpty())
{
LayerDrama.currentQuest = this;
QuestNegotiationDarkness
public override bool CanUpdateOnTalk(Chara c)
{
return false;
}
public override void ShowCompleteText()
{
Msg.Say("completeQuest", GetTitle());
}
}
QuestSupplySpecific
public override void SetIdThing()
{
foreach (SourceThing.Row row in EClass.sources.things.rows)
{
if ((i != 0 || !(this is QuestMeal) || row.LV <= num || EClass.rnd(4) == 0) && row.category == idCat && !row.isOrigin)
if ((i != 0 || !(this is QuestMeal) || row.LV <= num || EClass.rnd(4) == 0) && row.category == idCat && !row.isOrigin && row.chance > 0)
{
list.Add(row);
}
Region
public void CheckRandomSites()
TryAddZone("foxtown_nefu");
TryAddZone("little_garden");
TryAddZone("cave_yeek");
TryAddZone("cave_dragon");
TryAddZone("cave_mino");
TryAddZone("village_exile");
TryAddZone("temple_undersea");
Scene
public void Init(Mode newMode)
{
EMono.pc.RecalculateFOV();
}
EMono.player.flags.OnEnterZone();
flock.SetSpawnType(EMono._zone.FlockType);
if (!EMono.player.simulatingZone)
{
EMono.player.flags.OnEnterZone();
if (EMono._zone == EMono.pc.homeZone)
{
EMono.pc.faith.Revelation("welcome");
Trait
if (num12 > 10)
{
Add("syringe_heaven", num12 / 5, 0);
Add("1276", 1, 0);
}
break;
}
+TraitSpit
File Created
public class TraitSpit : TraitItem
{
public override bool IsAnimeOn => owner.isOn;
public override ToggleType ToggleType => ToggleType.Custom;
public override bool CanUseFromInventory => false;
public override bool OnUse(Chara c)
{
Toggle(!owner.isOn);
return true;
}
}
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;
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_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
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 Chara SpawnMob(Point pos = null, SpawnSetting setting = null)
}
return s.biome == biome.name || s.biome.IsEmpty();
}
}) : SpawnList.Get(biome.spawn.GetRandomCharaId()))))));
}) : SpawnList.Get(biome.spawn.GetRandomCharaId())))))));
int num = ((setting.dangerLv == -1) ? DangerLv : setting.dangerLv);
CardBlueprint cardBlueprint = new CardBlueprint
{
public Chara SpawnMob(Point pos = null, SpawnSetting setting = null)
}
}
CardRow cardRow = (setting.id.IsEmpty() ? spawnList.Select(num2, setting.levelRange) : EClass.sources.cards.map[setting.id]);
if (EClass.world.date.month == 12 && setting.rarity == Rarity.Random && EClass._zone.IsNefia && EClass._zone.isRandomSite && EClass.world.date.day >= 24 && EClass.world.date.day <= 26 && EClass.rnd(50 * (1 + EClass.player.flags.santa) * (1 + EClass.player.flags.santa)) == 0)
{
cardRow = EClass.sources.cards.map["santa"];
EClass.player.flags.santa++;
}
int num3 = ((setting.fixedLv == -1) ? cardRow.LV : setting.fixedLv);
if (ScaleType == ZoneScaleType.Void)
{
+Zone_DungeonDragon
File Created
public class Zone_DungeonDragon : Zone_DungeonUnfixed
{
public override bool LockExit => base.lv <= -6;
}