EA 23.101 Nightly Patch 1
March 12, 2025
40 files modified. 2 new files created.
Important Changes
Possible breaking changes. Click the filename to view the chunk.
CodexCreature (1)
public void SetImage(Image image, bool nativeSize = false)
public void SetImage(Image image, int idSkin = 0, bool nativeSize = true)
Point (1)
public List<Chara> ListCharasInRadius(Chara cc, int dist, Func<Chara, bool> func)
public List<Chara> ListCharasInRadius(Chara cc, int dist, Func<Chara, bool> func, bool onlyVisible = true)
ABILITY
@@ -4,8 +4,6 @@ public class ABILITY
{
public const int ActChat = 5044;
public const int ActNoItem = 5037;
public const int ActThrow = 5038;
public const int AI_Fish = 5039;
@@ -32,11 +30,11 @@ public class ABILITY
public const int ActZap = 5051;
public const int TaskMoveInstalled = 5036;
public const int ActBash = 5052;
public const int AI_Bladder = 5054;
public const int ActNoItem = 5037;
public const int TaskHarvest = 5053;
public const int ActRestrain = 5055;
@@ -64,15 +62,15 @@ public class ABILITY
public const int ActSuicide = 6410;
public const int TaskHarvest = 5053;
public const int ActDuplicate = 6420;
public const int TaskBuild = 5035;
public const int AI_Bladder = 5054;
public const int ActCancelTask = 5033;
public const int ActCrabBreathe = 6500;
public const int Ranged = 5003;
public const int TaskMoveInstalled = 5036;
public const int GoalIdle = 5034;
public const int Sleep = 5004;
@@ -100,11 +98,11 @@ public class ABILITY
public const int TaskTame = 5016;
public const int GoalIdle = 5034;
public const int TaskTalk = 5017;
public const int TaskReadBoard = 5019;
public const int TaskBuild = 5035;
public const int TaskPick = 5018;
public const int TaskFarm = 5020;
@@ -132,15 +130,15 @@ public class ABILITY
public const int AI_Equip = 5032;
public const int TaskPick = 5018;
public const int ActCancelTask = 5033;
public const int ActCrabBreathe = 6500;
public const int TaskReadBoard = 5019;
public const int ActRush = 6450;
public const int ActCurse = 6600;
public const int ActEntangle = 6601;
public const int ActRush = 6450;
public const int ActHeadpat = 6904;
public const int ActDraw = 6602;
public const int breathe_ = 7000;
@@ -154,17 +152,17 @@ public class ABILITY
public const int breathe_Mind = 50204;
public const int ActCurse = 6600;
public const int breathe_Poison = 50205;
public const int breathe_Nether = 50206;
public const int ActEntangle = 6601;
public const int breathe_Sound = 50207;
public const int ActKizuamiTrick = 6903;
public const int breathe_Nerve = 50208;
public const int breathe_Chaos = 50210;
public const int ActHeadpat = 6904;
public const int breathe_Holy = 50209;
public const int breathe_Magic = 50211;
@@ -184,34 +182,40 @@ public class ABILITY
public const int Melee = 5002;
public const int breathe_Holy = 50209;
public const int Ranged = 5003;
public const int ActLulwyTrick = 6902;
public const int breathe_Chaos = 50210;
public const int breathe_Poison = 50205;
public const int ActKizuamiTrick = 6903;
public const int ActGazeMana = 6623;
public const int breathe_Nether = 50206;
public const int ActJureHeal = 6901;
public const int ActWeaken = 6610;
public const int ActDraw = 6602;
public const int ActLulwyTrick = 6902;
public const int ActFear = 6611;
public const int ActNTR = 6603;
public const int ActTouchSleep = 6612;
public const int ActTouchDrown = 6613;
public const int ActGazeDim = 6620;
public const int ActGazeInsane = 6621;
public const int ActGazeMutation = 6622;
public const int ActNTR = 6603;
public const int ActGazeMana = 6623;
public const int ActDrainBlood = 6626;
public const int ActFear = 6611;
public const int ActInsult = 6630;
public const int ActDrainBlood = 6626;
public const int ActSteal = 6640;
public const int ActStealFood = 6641;
@@ -232,22 +236,20 @@ public class ABILITY
public const int ActScream = 6631;
public const int ActJureHeal = 6901;
public static readonly int[] IDS = new int[116]
public static readonly int[] IDS = new int[117]
{
5044, 5037, 5038, 5039, 5040, 5041, 5042, 5043, 5045, 5046,
5047, 5048, 5049, 5050, 5051, 5036, 5052, 5054, 5055, 6001,
6003, 6011, 6012, 6013, 6015, 6018, 6019, 6020, 6050, 6400,
6410, 5053, 6420, 5035, 5033, 5003, 5004, 5005, 5006, 5007,
5008, 5009, 5010, 5011, 5012, 5013, 5014, 5015, 5016, 5034,
5017, 5019, 5020, 5021, 5022, 5023, 5024, 5025, 5026, 5027,
5028, 5029, 5030, 5031, 5032, 5018, 6500, 6450, 6601, 6904,
7000, 50200, 50201, 50202, 50203, 50204, 6600, 50206, 50207, 6903,
50208, 50210, 50211, 50212, 50213, 50214, 50215, 50216, 5000, 5001,
5002, 50209, 6902, 50205, 6623, 6610, 6602, 6611, 6612, 6620,
6621, 6622, 6603, 6626, 6630, 6640, 6641, 6642, 6650, 6660,
6661, 6700, 6720, 6900, 6631, 6901
5044, 5038, 5039, 5040, 5041, 5042, 5043, 5045, 5046, 5047,
5048, 5049, 5050, 5051, 5052, 5037, 5053, 5055, 6001, 6003,
6011, 6012, 6013, 6015, 6018, 6019, 6020, 6050, 6400, 6410,
6420, 5054, 6500, 5036, 5034, 5004, 5005, 5006, 5007, 5008,
5009, 5010, 5011, 5012, 5013, 5014, 5015, 5016, 5017, 5035,
5018, 5020, 5021, 5022, 5023, 5024, 5025, 5026, 5027, 5028,
5029, 5030, 5031, 5032, 5033, 5019, 6600, 6450, 6602, 7000,
50200, 50201, 50202, 50203, 50204, 50205, 6601, 50207, 50208, 6904,
50209, 50211, 50212, 50213, 50214, 50215, 50216, 5000, 5001, 5002,
5003, 50210, 6903, 50206, 6901, 6610, 6902, 6603, 6612, 6613,
6620, 6621, 6622, 6623, 6611, 6630, 6626, 6640, 6641, 6642,
6650, 6660, 6661, 6700, 6720, 6900, 6631
};
}
public class Ability : Act
AI_Fuck
@@ -68,7 +68,7 @@ public override IEnumerable<Status> Run()
{
cc.SetTempHand(1104, -1);
}
maxProgress = (ntr ? 15 : 25);
maxProgress = (ntr ? 10 : 25);
if (succubus)
{
cc.Talk("seduce");
@@ -292,7 +292,7 @@ public void Finish()
}
else if (chara2.ExistsOnMap)
{
chara2.stamina.Mod(-1000000);
chara2.stamina.Mod((!chara2.IsPCFaction) ? (-10000) : (chara2.IsPC ? (-25) : (-50)));
}
break;
}
AI_Idle
@@ -370,6 +370,22 @@ public override IEnumerable<Status> Run()
{
owner.TryAssignBed();
}
if (owner.id == "geist" && EClass.rnd(20) == 0)
{
Point nearestPoint = EClass.pc.pos.GetNearestPoint(allowBlock: false, allowChara: false);
if (nearestPoint != null)
{
foreach (Chara item3 in nearestPoint.ListCharasInRadius(owner, 6, (Chara _c) => _c != owner && !_c.IsPCFactionOrMinion))
{
item3.Teleport(nearestPoint.GetNearestPoint(allowBlock: false, allowChara: false) ?? nearestPoint);
}
if (owner != null)
{
owner.Teleport(nearestPoint);
}
yield return Success();
}
}
if (EClass._zone.IsPCFaction)
{
Room room = owner.pos.cell.room;
ActEffect
{
break;
}
int hex = 0;
int hex2 = 0;
foreach (Condition condition4 in TC.conditions)
{
if (condition4.Type == ConditionType.Debuff)
{
hex++;
hex2++;
}
}
if (hex == 0)
if (hex2 == 0)
{
CC.SayNothingHappans();
break;
{
break;
}
int dmg2 = Dice.Create("SpShutterHex", power * hex, CC, (actRef.refThing != null) ? null : actRef.act).Roll();
int dmg2 = Dice.Create("SpShutterHex", power * hex2, CC, (actRef.refThing != null) ? null : actRef.act).Roll();
item3.DamageHP(dmg2, 919, power, AttackSource.None, CC);
}
});
break;
}
Thing thing6 = null;
bool flag7 = actRef.n1 == "food";
bool flag9 = actRef.n1 == "food";
if (actRef.n1 == "money")
{
int currency = TC.GetCurrency();
else
{
Func<Thing, bool> func = (Thing t) => true;
if (flag7)
if (flag9)
{
func = (Thing t) => t.IsFood;
}
List<Thing> list5 = TC.things.List(delegate(Thing t)
List<Thing> list7 = TC.things.List(delegate(Thing t)
{
if (t.parentCard?.trait is TraitChestMerchant || t.trait is TraitTool || t.IsThrownWeapon)
{
}
return t.trait.CanBeDestroyed && t.things.Count == 0 && t.invY != 1 && t.trait.CanBeStolen && !t.trait.CanOnlyCarry && !t.IsUnique && !t.isEquipped && t.blessedState == BlessedState.Normal && func(t);
}, onlyAccessible: true);
if (list5.Count > 0)
if (list7.Count > 0)
{
thing6 = list5.RandomItem();
thing6 = list7.RandomItem();
if (thing6.Num > 1)
{
thing6 = thing6.Split(1);
{
break;
}
List<Thing> list3 = TC.things.List(delegate(Thing t)
List<Thing> list5 = TC.things.List(delegate(Thing t)
{
if (!t.isEquipped || t.blessedState == BlessedState.Doomed || t.IsToolbelt)
{
}
return (t.blessedState < BlessedState.Blessed || EClass.rnd(10) == 0) ? true : false;
});
if (list3.Count == 0)
if (list5.Count == 0)
{
CC.SayNothingHappans();
break;
}
Thing thing4 = list3.RandomItem();
TC.Say("curse_hit", TC, thing4);
thing4.SetBlessedState((thing4.blessedState == BlessedState.Cursed) ? BlessedState.Doomed : BlessedState.Cursed);
LayerInventory.SetDirty(thing4);
Thing thing5 = list5.RandomItem();
TC.Say("curse_hit", TC, thing5);
thing5.SetBlessedState((thing5.blessedState == BlessedState.Cursed) ? BlessedState.Doomed : BlessedState.Cursed);
LayerInventory.SetDirty(thing5);
break;
}
case EffectId.UncurseEQ:
case EffectId.KizuamiTrick:
{
EClass.game.religions.Trickery.Talk("ability");
bool hex2 = CC.IsHostile(TC);
List<SourceStat.Row> list6 = EClass.sources.stats.rows.Where((SourceStat.Row con) => con.tag.Contains("random") && con.group == (hex2 ? "Debuff" : "Buff")).ToList();
bool hex = CC.IsHostile(TC);
List<SourceStat.Row> list4 = 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++)
for (int k = 0; k < 4 + EClass.rnd(2); k++)
{
SourceStat.Row row2 = list6.RandomItem();
list6.Remove(row2);
Proc(hex2 ? EffectId.Debuff : EffectId.Buff, CC, TC, power2, new ActRef
SourceStat.Row row2 = list4.RandomItem();
list4.Remove(row2);
Proc(hex ? EffectId.Debuff : EffectId.Buff, CC, TC, power2, new ActRef
{
n1 = row2.alias
});
CC.DoHostileAction(TC);
bool isPowerful = TC.IsPowerful;
string n = actRef.n1;
if (n == "ConSuffocation")
{
power = power * 2 / 3;
}
int a2 = power;
int num7 = TC.WIL * (isPowerful ? 20 : 5);
int num6 = TC.WIL * (isPowerful ? 20 : 5);
ConHolyVeil condition = TC.GetCondition<ConHolyVeil>();
if (condition != null)
{
num7 += condition.power * 5;
num6 += condition.power * 5;
}
if (EClass.rnd(a2) < num7 / EClass.sources.stats.alias[n].hexPower && EClass.rnd(10) != 0)
if (EClass.rnd(a2) < num6 / EClass.sources.stats.alias[n].hexPower && EClass.rnd(10) != 0)
{
TC.Say("debuff_resist", TC);
CC.DoHostileAction(TC);
break;
case EffectId.Revive:
{
List<KeyValuePair<int, Chara>> list7 = 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>> list6 = 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 && list7.Count == 0)
if (TC.IsPC && list6.Count == 0)
{
list7 = 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();
list6 = 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 (list7.Count > 0)
if (list6.Count > 0)
{
list7.RandomItem().Value.Chara.GetRevived();
list6.RandomItem().Value.Chara.GetRevived();
break;
}
}
case EffectId.DamageMindGreat:
case EffectId.Weaken:
{
bool flag8 = id == EffectId.DamageBody || id == EffectId.DamageBodyGreat;
bool flag7 = id == EffectId.DamageBody || id == EffectId.DamageBodyGreat;
bool mind = id == EffectId.DamageMind || id == EffectId.DamageMindGreat;
int num6 = ((id == EffectId.DamageBody || id == EffectId.DamageMind) ? 1 : (4 + EClass.rnd(4)));
int num7 = ((id == EffectId.DamageBody || id == EffectId.DamageMind) ? 1 : (4 + EClass.rnd(4)));
if (id == EffectId.Weaken)
{
flag8 = EClass.rnd(2) == 0;
mind = !flag8;
num6 = 1;
flag7 = EClass.rnd(2) == 0;
mind = !flag7;
num7 = 1;
}
else
{
TC.PlayEffect("debuff");
TC.PlaySound("debuff");
}
TC.Say(flag8 ? "damageBody" : "damageMind", TC);
for (int k = 0; k < num6; k++)
TC.Say(flag7 ? "damageBody" : "damageMind", TC);
for (int l = 0; l < num7; l++)
{
TC.DamageTempElements(power, flag8, mind);
TC.DamageTempElements(power, flag7, mind);
}
if (TC.IsPC)
{
case EffectId.EnhanceBodyGreat:
case EffectId.EnhanceMindGreat:
{
bool flag9 = id == EffectId.EnhanceBody || id == EffectId.EnhanceBodyGreat;
bool flag8 = id == EffectId.EnhanceBody || id == EffectId.EnhanceBodyGreat;
bool mind2 = id == EffectId.EnhanceMind || id == EffectId.EnhanceMindGreat;
int num8 = ((id == EffectId.EnhanceBody || id == EffectId.EnhanceMind) ? 1 : (4 + EClass.rnd(4)));
TC.Say(flag9 ? "enhanceBody" : "enhanceMind", TC);
TC.Say(flag8 ? "enhanceBody" : "enhanceMind", TC);
TC.PlayEffect("buff");
TC.PlaySound("buff");
for (int m = 0; m < num8; m++)
{
TC.EnhanceTempElements(power, flag9, mind2);
TC.EnhanceTempElements(power, flag8, mind2);
}
break;
}
{
EClass.game.religions.Healing.Talk("ability");
}
if (actRef.act != null)
{
Debug.Log(actRef.act.id);
}
int num9 = Dice.Create((actRef.act != null && EClass.sources.calc.map.ContainsKey(actRef.act.ID)) ? actRef.act.ID : "SpHealLight", power, CC, (actRef.refThing != null) ? null : actRef.act).Roll();
if (flag)
{
{
power /= 4;
}
List<Thing> list4 = TC.things.List((Thing t) => (t.Num <= 1 && t.IsEquipmentOrRanged && !t.IsToolbelt && !t.IsLightsource && t.isEquipped) ? true : false);
if (list4.Count != 0)
List<Thing> list3 = TC.things.List((Thing t) => (t.Num <= 1 && t.IsEquipmentOrRanged && !t.IsToolbelt && !t.IsLightsource && t.isEquipped) ? true : false);
if (list3.Count != 0)
{
Thing thing5 = list4.RandomItem();
Thing thing4 = list3.RandomItem();
TC.Say("acid_hit", TC);
if (thing5.isAcidproof)
if (thing4.isAcidproof)
{
TC.Say("acid_nullify", thing5);
TC.Say("acid_nullify", thing4);
}
else if (thing5.encLV > -5)
else if (thing4.encLV > -5)
{
TC.Say("acid_rust", TC, thing5);
thing5.ModEncLv(-1);
LayerInventory.SetDirty(thing5);
TC.Say("acid_rust", TC, thing4);
thing4.ModEncLv(-1);
LayerInventory.SetDirty(thing4);
}
if (TC.IsPCParty)
{
ActMelee
@@ -329,12 +329,15 @@ void Attack(Card _tc, Point _tp, float mtp, bool subAttack)
{
Act.TP.ForeachNeighbor(delegate(Point p)
{
if (p.Equals(Act.TP) || p.Equals(Act.CC.pos) || p.IsBlocked)
if (p.Equals(Act.TP) || p.Equals(Act.CC.pos))
{
return;
}
p.PlayEffect("smoke_shockwave");
p.Copy().Animate(AnimeID.QuakeMini, animeBlock: true);
if (!p.IsBlocked)
{
p.PlayEffect("smoke_shockwave");
p.Copy().Animate(AnimeID.QuakeMini, animeBlock: true);
}
foreach (Card item4 in p.ListCards())
{
if (item4.trait.CanBeAttacked || (item4.isChara && item4.Chara.IsHostile(Act.CC)))
AttackProcess
@@ -648,7 +648,7 @@ public bool Perform(int count, bool hasHit, float dmgMulti = 1f, bool maxRoll =
{
break;
}
if (item.source.categorySub == "eleAttack")
if (item.IsActive(weapon) && item.source.categorySub == "eleAttack")
{
int num10 = 25;
int dmg = EClass.rnd(num * (100 + item.Value * 10) / 500 + 5);
BaseTileMap
@@ -188,6 +188,8 @@ public enum ScreenHighlight
public MeshPass passCharaL;
public MeshPass passCharaLW;
public MeshPass passCharaLL;
public MeshPass passShore;
CardFilter
@@ -98,6 +98,8 @@ public bool Pass(CardRow source)
{
return false;
}
bool flag = false;
bool flag2 = false;
for (int i = 0; i < tags.Count; i++)
{
FilterItem filterItem = tags[i];
@@ -107,12 +109,18 @@ public bool Pass(CardRow source)
{
return false;
}
continue;
}
else if (!ContainsTag(source, filterItem.name))
flag2 = true;
if (!flag && ContainsTag(source, filterItem.name))
{
return false;
flag = true;
}
}
if (flag2 && !flag)
{
return false;
}
for (int j = 0; j < filters.Count; j++)
{
FilterItem filterItem2 = filters[j];
@@ -134,19 +142,19 @@ public bool Pass(CardRow source)
}
if (categories.Count > 0)
{
bool flag = false;
bool flag3 = false;
foreach (FilterCategory category in categories)
{
if ((!flag || category.exclude) && EClass.sources.categories.map[source.category].IsChildOf(category.row))
if ((!flag3 || category.exclude) && EClass.sources.categories.map[source.category].IsChildOf(category.row))
{
if (category.exclude)
{
return false;
}
flag = true;
flag3 = true;
}
}
if (!flag)
if (!flag3)
{
return false;
}
CardRenderer
@@ -211,6 +211,10 @@ public override void Draw(RenderParam p, ref Vector3 v, bool drawShadow)
}
else
{
if (EClass.core.config.game.antiSpider && row.race == "spider" && row._tiles.Length > 1)
{
owner.refVal = 1;
}
p.tile = row._tiles[owner.refVal % row._tiles.Length] * ((owner.dir % 2 == 0) ? 1 : (-1));
p.matColor = traitFigure.GetMatColor();
drawShadow = traitFigure.ShowShadow;
Chara
@@ -2953,7 +2953,16 @@ public void TryPush(Point point)
c.PlayEffect("push");
}
c.MoveByForce(newPoint, this, checkWall: true);
if (IsPC && !c.IsPCParty && !c.IsUnique && c.IsHuman && EClass.rnd(5) == 0)
if (!c.IsPC && c.trait is TraitRogue && EClass.rnd(3) == 0 && GetCurrency() > 20)
{
int num = EClass.rndHalf(10 + Mathf.Min(GetCurrency() / 100, 1000));
c.Talk("pushed");
Say("pushed_money", this, c);
ModCurrency(-num);
c.ModCurrency(num);
c.PlaySound("steal_money");
}
else if (IsPC && !c.IsPCParty && !c.IsUnique && c.IsHuman && EClass.rnd(5) == 0)
{
c.Talk("pushed");
}
@@ -3910,7 +3919,7 @@ public void PickOrDrop(Point p, Thing t, bool msg = true)
public Thing Pick(Thing t, bool msg = true, bool tryStack = true)
{
if (t.trait is TraitCard && t.isNew && EClass.game.config.autoCollectCard)
if (t.trait is TraitCard && t.isNew && EClass.game.config.autoCollectCard && !t.c_idRefCard.IsEmpty())
{
ContentCodex.Collect(t);
return t;
@@ -5982,6 +5991,7 @@ public bool IsFriendOrAbove(Chara c)
public override CardRenderer _CreateRenderer()
{
CardRenderer cardRenderer = renderer;
CharaRenderer charaRenderer = new CharaRenderer();
if (race.id == "spider" && source.tiles.Length > 1)
{
@@ -6017,6 +6027,10 @@ public override CardRenderer _CreateRenderer()
}
renderer = charaRenderer;
renderer.SetOwner(this);
if (cardRenderer != null)
{
renderer.SetFirst(first: false, cardRenderer.position);
}
return charaRenderer;
}
CodexCreature
@@ -85,9 +85,9 @@ public bool droppedCard
}
}
public void SetImage(Image image, bool nativeSize = false)
public void SetImage(Image image, int idSkin = 0, bool nativeSize = true)
{
source.SetImage(image, null, 0, nativeSize);
source.SetImage(image, null, 0, nativeSize, 0, idSkin);
image.SetActive(enable: true);
}
ContentCodex
@@ -78,7 +78,8 @@ public void RefreshList()
{
b.icon.transform.localScale = new Vector3(1f / EClass.core.uiScale, 1f / EClass.core.uiScale, 1f);
}
a.SetImage(b.icon, nativeSize: true);
int idSkin = ((EClass.core.config.game.antiSpider && a.source.race == "spider" && a.source.tiles.Length > 1) ? 1 : 0);
a.SetImage(b.icon, idSkin);
},
onList = delegate
{
@@ -118,7 +119,8 @@ public void RefreshInfo()
SourceChara.Row source = codexCreature.source;
uINote.Clear();
UIItem uIItem = uINote.AddHeader("HeaderCodex", codexCreature.Name.Replace("『", Environment.NewLine + "『"));
codexCreature.SetImage(uIItem.image1, nativeSize: true);
int idSkin = ((EClass.core.config.game.antiSpider && codexCreature.source.race == "spider" && codexCreature.source.tiles.Length > 1) ? 1 : 0);
codexCreature.SetImage(uIItem.image1, idSkin);
uIItem.text2.text = "Lv." + source.LV + Environment.NewLine + EClass.sources.races.map[source.race].GetName().ToTitleCase(wholeText: true) + Environment.NewLine + EClass.sources.jobs.map[source.job].GetName().ToTitleCase(wholeText: true);
uIItem.image1.rectTransform.pivot = pivot;
uIItem.image1.rectTransform.localPosition = localPos;
CoreDebug
@@ -537,6 +537,17 @@ public void QuickStart()
}
EClass.pc.AddCard(thing);
thing.Dye("rubinus");
thing = ThingGen.Create("backpack");
foreach (SourceObj.Row row3 in EClass.sources.objs.rows)
{
if (row3.tag.Contains("seed"))
{
Thing c = TraitSeed.MakeSeed(row3).SetNum(100);
thing.AddCard(c);
}
}
EClass.pc.AddCard(thing);
thing.Dye("silver");
thing = ThingGen.Create("pouch");
for (int num4 = 0; num4 < 30; num4++)
{
DOMAIN
public class DOMAIN
{
public const int domEyth = 814;
public const int domEarth = 812;
public const int domHealing = 811;
public const int domEyth = 814;
public const int domOblivion = 813;
public const int domTest = 800;
public const int domEarth = 812;
public const int domSurvival = 801;
public const int domHarvest = 808;
public const int domElement = 806;
public const int domMiracle = 803;
public const int domFaith = 802;
public const int domLuck = 810;
public const int domMachine = 809;
public const int domWind = 807;
public const int domHarvest = 808;
public const int domElement = 806;
public const int domWind = 807;
public const int domComm = 805;
public const int domFaith = 802;
public const int domArcane = 804;
public const int domMiracle = 803;
public const int domHarmony = 815;
public const int domArcane = 804;
public const int domSurvival = 801;
public static readonly int[] IDS = new int[16]
{
814, 811, 813, 800, 812, 801, 808, 803, 810, 809,
807, 806, 805, 802, 815, 804
812, 811, 814, 813, 800, 806, 802, 810, 809, 808,
807, 805, 804, 803, 815, 801
};
}
public class Domain : EClass
ELEMENT
public class ELEMENT
{
public const int antidote = 753;
public const int rare = 751;
public const int comfort = 750;
public const int cute = 752;
public const int antidote = 753;
public const int nerve = 754;
@@ -17,9 +19,7 @@ public class ELEMENT
public const int purity = 759;
public const int cute = 752;
public const int rare = 751;
public const int comfort = 750;
public const int _void = 0;
@@ -69,7 +69,7 @@ public class ELEMENT
public static readonly int[] IDS = new int[31]
{
753, 750, 754, 755, 756, 759, 752, 751, 0, 2,
751, 752, 753, 754, 755, 756, 759, 750, 0, 2,
1, 3, 5, 10, 11, 12, 13, 14, 16, 17,
18, 15, 21, 22, 23, 24, 25, 26, 29, 85,
20
@@ -440,6 +440,15 @@ public virtual Sprite GetIcon(string suffix = "")
return SpriteSheet.Get("Media/Graphics/Icon/Element/icon_elements", "ele_" + source.alias + suffix) ?? SpriteSheet.Get("Media/Graphics/Icon/Element/icon_elements", "ele_" + source.aliasParent + suffix) ?? SpriteSheet.Get("Media/Graphics/Icon/Element/icon_elements", "cat_" + source.category);
}
public bool IsActive(Card c)
{
if (IsGlobalElement && c != null && !c.c_idDeity.IsEmpty() && c.c_idDeity != EClass.pc.idFaith)
{
return false;
}
return Value != 0;
}
public int SortVal(bool charaSheet = false)
{
int num = ((source.sort != 0) ? source.sort : id);
ENC
@@ -54,7 +54,7 @@ public class ENC
public const int mod_scatter = 607;
public const int bane_animal = 463;
public const int slowCorruption = 412;
public const int mod_precision = 605;
@@ -68,7 +68,7 @@ public class ENC
public const int negateConfusion = 425;
public const int mod_drill = 606;
public const int negateSleep = 424;
public const int negateFear = 423;
@@ -82,8 +82,6 @@ public class ENC
public const int invisibility = 415;
public const int sustain_STR = 440;
public const int encHit = 414;
public const int encSpell = 411;
@@ -96,7 +94,7 @@ public class ENC
public const int travelSpeed = 407;
public const int resMutation = 406;
public const int mod_drill = 606;
public const int slowDecay = 405;
@@ -110,24 +108,20 @@ public class ENC
public const int negateTeleport = 400;
public const int slowCorruption = 412;
public const int sustain_STR = 440;
public const int sustain_END = 441;
public const int negateSleep = 424;
public const int resMutation = 406;
public const int slot_rune = 484;
public const int mod_ammo_recover = 604;
public const int mod_ammo_knockback = 603;
public const int mod_rapid = 602;
public const int mod_reload = 601;
public const int mod_ammo = 600;
public const int mod_ammo_recover = 604;
public const int optimizeMana = 483;
public const int force_weapon = 482;
@@ -140,40 +134,46 @@ public class ENC
public const int bane_fish = 467;
public const int bane_god = 466;
public const int bane_machine = 465;
public const int bane_man = 464;
public const int mod_rapid = 602;
public const int bane_god = 466;
public const int bane_man = 464;
public const int bane_fairy = 462;
public const int sustain_DEX = 442;
public const int bane_undead = 461;
public const int sustain_PER = 443;
public const int bane_dragon = 460;
public const int sustain_WIL = 445;
public const int sustain_CHA = 447;
public const int sustain_MAG = 446;
public const int sustain_WIL = 445;
public const int sustain_LER = 444;
public const int bane_dragon = 460;
public const int sustain_PER = 443;
public const int bane_undead = 461;
public const int sustain_DEX = 442;
public const int sustain_CHA = 447;
public const int bane_animal = 463;
public const int mod_ammo_knockback = 603;
public static readonly int[] IDS = new int[82]
{
652, 651, 650, 641, 640, 621, 620, 623, 622, 653,
624, 654, 851, 656, 660, 661, 662, 663, 664, 665,
666, 850, 608, 865, 852, 655, 607, 463, 605, 429,
428, 427, 426, 425, 606, 423, 422, 421, 420, 416,
415, 440, 414, 411, 410, 409, 408, 407, 406, 405,
404, 403, 402, 401, 400, 412, 441, 424, 484, 604,
603, 602, 601, 600, 483, 482, 481, 480, 468, 467,
465, 464, 466, 462, 442, 443, 445, 446, 444, 460,
461, 447
666, 850, 608, 865, 852, 655, 607, 412, 605, 429,
428, 427, 426, 425, 424, 423, 422, 421, 420, 416,
415, 414, 411, 410, 409, 408, 407, 606, 405, 404,
403, 402, 401, 400, 440, 441, 406, 484, 601, 600,
604, 483, 482, 481, 480, 468, 467, 466, 465, 602,
464, 462, 461, 460, 447, 446, 445, 444, 443, 442,
463, 603
};
}
ElementContainer
@@ -781,7 +781,7 @@ public void AddNote(UINote n, Func<Element, bool> isValid = null, Action onAdd =
if (e.IsGlobalElement)
{
text = text + " " + (e.IsFactionWideElement ? "_factionWide" : "_partyWide").lang();
if (Card != null && !Card.c_idDeity.IsEmpty() && Card.c_idDeity != EClass.pc.idFaith)
if (!e.IsActive(Card))
{
continue;
}
FACTION
public class FACTION
{
public const int bfSea = 3605;
public const int bfHill = 3603;
public const int bfFertile = 3700;
public const int bfSnow = 3602;
public const int bfHill = 3603;
public const int bfForest = 3601;
public const int bfBeach = 3604;
public const int bfPlain = 3600;
public const int fRation = 2207;
public const int bfSea = 3605;
public const int bfGeyser = 3701;
public const int bfCave = 3500;
public const int bfRuin = 3702;
public const int bfFertile = 3700;
public const int bfSnow = 3602;
public const int bfGeyser = 3701;
public const int bfForest = 3601;
public const int bfRuin = 3702;
public const int bfPlain = 3600;
public const int bfBeach = 3604;
public const int bfCave = 3500;
public const int fRation = 2207;
public const int fAttraction = 2206;
public const int actBuildRecipe = 4005;
public const int fLoyal = 2117;
public const int fSafety = 2205;
public const int fFood = 2204;
@@ -40,39 +40,35 @@ public class FACTION
public const int fSoil = 2200;
public const int fLuck = 2118;
public const int fConstruction = 2003;
public const int bfTranquil = 3703;
public const int fHeirloom = 2120;
public const int fTaxEvasion = 2119;
public const int fAdmin = 2115;
public const int fLuck = 2118;
public const int fEducation = 2116;
public const int fLoyal = 2117;
public const int fSafety = 2205;
public const int fAttraction = 2206;
public const int bfTranquil = 3703;
public const int bfVolcano = 3704;
public const int bfHunt = 3705;
public const int bfMushroom = 3801;
public const int bfFish = 3706;
public const int actBuildInspect = 4006;
public const int actBuildRecipe = 4005;
public const int actBuildCollect = 4004;
public const int actBuildAnywhere = 4003;
public const int actBuildTerrain = 4002;
public const int fEducation = 2116;
public const int actBuildMine = 4001;
public const int bfVolcano = 3704;
public const int actBuildCut = 4000;
public const int bfStart = 3900;
@@ -82,40 +78,44 @@ public class FACTION
public const int bfGum = 3803;
public const int actBuildCut = 4000;
public const int bfMushroom = 3801;
public const int bfHunt = 3705;
public const int bfSilica = 3802;
public const int bfFreshAir = 3708;
public const int bfCoal = 3800;
public const int bfBasin = 3709;
public const int bfLandmark5 = 3784;
public const int bfBreed = 3710;
public const int bfLandmark4 = 3783;
public const int bfLandmark3 = 3782;
public const int bfLandmark2 = 3781;
public const int bfLandmark1 = 3780;
public const int bfMonster = 3707;
public const int bfBreed = 3710;
public const int bfLandmark3 = 3782;
public const int bfBasin = 3709;
public const int bfLandmark4 = 3783;
public const int bfFreshAir = 3708;
public const int bfLandmark5 = 3784;
public const int bfMonster = 3707;
public const int bfCoal = 3800;
public const int actBuildCollect = 4004;
public const int bfLandmark2 = 3781;
public const int fAdmin = 2115;
public const int fConstruction = 2003;
public static readonly int[] IDS = new int[52]
{
3605, 3700, 3603, 3604, 2207, 3701, 3702, 3602, 3601, 3600,
3500, 2206, 2117, 2204, 2203, 2202, 2201, 2200, 2118, 2003,
2120, 2119, 2115, 2116, 2205, 3703, 3705, 3706, 4006, 4005,
4004, 4003, 4002, 4001, 3704, 3900, 3805, 3804, 3803, 4000,
3801, 3802, 3708, 3709, 3710, 3780, 3707, 3782, 3783, 3784,
3800, 3781
3603, 3602, 3601, 3600, 3605, 3500, 3700, 3701, 3702, 3604,
2207, 4005, 2205, 2204, 2203, 2202, 2201, 2200, 3703, 2120,
2119, 2118, 2117, 2206, 3704, 3801, 3706, 4006, 4003, 4002,
2116, 4001, 4000, 3900, 3805, 3804, 3803, 3705, 3802, 3800,
3784, 3783, 3782, 3781, 3780, 3710, 3709, 3708, 3707, 4004,
2115, 2003
};
}
public class Faction : EClass
@@ -511,7 +511,12 @@ public int GetBaseTax(bool evasion)
public int GetFameTax(bool evasion)
{
int v = EClass.curve(EClass.player.fame * 2, 10000, 2000, 80);
return EvadeTax(v, evasion);
v = EvadeTax(v, evasion);
if (v < 0)
{
v = 50000;
}
return v;
}
public int EvadeTax(int v, bool evasion)
@@ -525,7 +530,7 @@ public int EvadeTax(int v, bool evasion)
{
num += child.Evalue(2119);
}
return (int)((float)(v * 100) / (100f + Mathf.Sqrt(num * 5)));
return (int)(long)((float)(v * 100) / (100f + Mathf.Sqrt(num * 5)));
}
public void SetTaxTooltip(UINote n)
FEAT
public class FEAT
{
public const int featSnail = 1211;
public const int featFaith = 1636;
public const int featMartial = 1635;
public const int featNegotiate = 1634;
public const int featSpotting = 1633;
public const int featEvade = 1632;
public const int featDefense = 1631;
public const int featHardy = 1630;
public const int featSPD = 1629;
public const int featLuck = 1628;
public const int featCHA = 1627;
public const int featWIL = 1626;
public const int featMAG = 1625;
public const int featAnimalLover = 1640;
public const int featLER = 1624;
public const int featMAG = 1625;
public const int featPER = 1623;
@@ -23,7 +43,7 @@ public class FEAT
public const int featMana = 1611;
public const int featEarthStrength = 1411;
public const int featLife = 1610;
public const int featManaMeat = 1421;
@@ -33,31 +53,37 @@ public class FEAT
public const int featSwordsage = 1418;
public const int featWitch = 1417;
public const int featLER = 1624;
public const int featInquisitor = 1416;
public const int featResCurse = 1641;
public const int featFoxMaid = 1415;
public const int featSleeper = 1642;
public const int featWhiteVixen = 1414;
public const int featSorter = 1643;
public const int featFairysan = 1413;
public const int featUndead = 1210;
public const int featLuckyCat = 1412;
public const int featSlowFood = 1200;
public const int featLuck = 1628;
public const int featManaBond = 1201;
public const int featLife = 1610;
public const int featFastLearner = 1202;
public const int featSPD = 1629;
public const int featGrowParts = 1203;
public const int featParty = 1645;
public const int featFairyWeak = 1204;
public const int featDefense = 1631;
public const int featCannibalism = 1205;
public const int featReboot = 1410;
public const int featMelilithCurse = 1206;
public const int featManaCost = 1657;
public const int featFoxBless = 1207;
public const int featFoxLearn = 1208;
public const int featFluffyTail = 1209;
public const int featChef = 1658;
public const int featScavenger = 1656;
@@ -81,53 +107,17 @@ public class FEAT
public const int featLonelySoul = 1646;
public const int featBodyParts = 1644;
public const int featSorter = 1643;
public const int featSleeper = 1642;
public const int featResCurse = 1641;
public const int featAnimalLover = 1640;
public const int featFaith = 1636;
public const int featMartial = 1635;
public const int featNegotiate = 1634;
public const int featSpotting = 1633;
public const int featEvade = 1632;
public const int featHardy = 1630;
public const int featBoost = 1409;
public const int featChef = 1658;
public const int featPaladin = 1407;
public const int featShiva = 1224;
public const int featLoyal = 1225;
public const int featUnderground = 1226;
public const int featServant = 1227;
public const int featDemigod = 1228;
public const int featParty = 1645;
public const int featLittleOne = 1229;
public const int featBodyParts = 1644;
public const int featAdam = 1230;
public const int featWitch = 1417;
public const int featNirvana = 1231;
public const int featInquisitor = 1416;
public const int featCosmicHorror = 1233;
public const int featManaCost = 1657;
public const int featHeavyEater = 1234;
public const int featWhiteVixen = 1414;
public const int featLightEater = 1235;
@@ -143,49 +133,41 @@ public class FEAT
public const int featGod_earth1 = 1305;
public const int featGod_wind1 = 1310;
public const int featGod_machine1 = 1315;
public const int featGod_healing1 = 1320;
public const int featGod_harvest1 = 1325;
public const int featAcidBody = 1223;
public const int featGod_luck1 = 1330;
public const int featSplit = 1222;
public const int featHeavyEater = 1234;
public const int featFate = 1220;
public const int featGod_harvest1 = 1325;
public const int featPaladin2 = 1408;
public const int featGod_harmony1 = 1335;
public const int featSlowFood = 1200;
public const int featGod_oblivion1 = 1340;
public const int featManaBond = 1201;
public const int featGod_trickery1 = 1345;
public const int featFastLearner = 1202;
public const int featGod_moonshadow1 = 1350;
public const int featGrowParts = 1203;
public const int featGod_strife1 = 1355;
public const int featFairyWeak = 1204;
public const int featWarrior = 1400;
public const int featCannibalism = 1205;
public const int featThief = 1401;
public const int featMelilithCurse = 1206;
public const int featWizard = 1402;
public const int featFoxBless = 1207;
public const int featFarmer = 1403;
public const int featFoxLearn = 1208;
public const int featGod_luck1 = 1330;
public const int featFluffyTail = 1209;
public const int featArcher = 1404;
public const int featUndead = 1210;
public const int featCosmicHorror = 1233;
public const int featSnail = 1211;
public const int featNirvana = 1231;
public const int featFairyResist = 1212;
public const int featFoxMaid = 1415;
public const int featElea = 1213;
@@ -201,48 +183,66 @@ public class FEAT
public const int featElderCrab = 1219;
public const int featFate = 1220;
public const int featBaby = 1232;
public const int featSpike = 1221;
public const int featGod_harmony1 = 1335;
public const int featAcidBody = 1223;
public const int featBaby = 1232;
public const int featFairyResist = 1212;
public const int featGod_trickery1 = 1345;
public const int featShiva = 1224;
public const int featGod_oblivion1 = 1340;
public const int featLoyal = 1225;
public const int featGod_moonshadow1 = 1350;
public const int featUnderground = 1226;
public const int featGod_strife1 = 1355;
public const int featServant = 1227;
public const int featWarrior = 1400;
public const int featDemigod = 1228;
public const int featWizard = 1402;
public const int featLittleOne = 1229;
public const int featFarmer = 1403;
public const int featAdam = 1230;
public const int featArcher = 1404;
public const int featSplit = 1222;
public const int featPianist = 1405;
public const int featThief = 1401;
public const int featGod_wind1 = 1310;
public const int featPaladin = 1407;
public const int featTourist = 1406;
public const int featBoost = 1409;
public const int featEarthStrength = 1411;
public const int featLuckyCat = 1412;
public const int featReboot = 1410;
public const int featFairysan = 1413;
public const int featPaladin2 = 1408;
public static readonly int[] IDS = new int[113]
{
1627, 1626, 1625, 1624, 1623, 1622, 1621, 1620, 1612, 1611,
1411, 1421, 1420, 1419, 1418, 1417, 1416, 1415, 1414, 1413,
1412, 1628, 1610, 1629, 1645, 1631, 1410, 1657, 1656, 1655,
1654, 1653, 1652, 1651, 1650, 1649, 1648, 1647, 1646, 1644,
1643, 1642, 1641, 1640, 1636, 1635, 1634, 1633, 1632, 1630,
1409, 1658, 1407, 1224, 1225, 1226, 1227, 1228, 1229, 1230,
1231, 1233, 1234, 1235, 1236, 1237, 1238, 1239, 1300, 1305,
1310, 1315, 1320, 1325, 1223, 1330, 1222, 1220, 1408, 1200,
1201, 1202, 1203, 1204, 1205, 1206, 1207, 1208, 1209, 1210,
1211, 1212, 1213, 1214, 1215, 1216, 1217, 1218, 1219, 1221,
1335, 1232, 1345, 1340, 1350, 1355, 1400, 1402, 1403, 1404,
1405, 1401, 1406
1211, 1636, 1635, 1634, 1633, 1632, 1631, 1630, 1629, 1628,
1627, 1626, 1640, 1625, 1623, 1622, 1621, 1620, 1612, 1611,
1610, 1421, 1420, 1419, 1418, 1624, 1641, 1642, 1643, 1210,
1200, 1201, 1202, 1203, 1204, 1205, 1206, 1207, 1208, 1209,
1658, 1656, 1655, 1654, 1653, 1652, 1651, 1650, 1649, 1648,
1647, 1646, 1645, 1644, 1417, 1416, 1657, 1414, 1235, 1236,
1237, 1238, 1239, 1300, 1305, 1315, 1320, 1234, 1325, 1335,
1340, 1345, 1350, 1355, 1400, 1401, 1402, 1403, 1330, 1404,
1233, 1231, 1415, 1213, 1214, 1215, 1216, 1217, 1218, 1219,
1220, 1232, 1221, 1223, 1212, 1224, 1225, 1226, 1227, 1228,
1229, 1230, 1222, 1405, 1310, 1407, 1406, 1409, 1411, 1412,
1410, 1413, 1408
};
}
public class Feat : Element
FOOD
public class FOOD
{
public const int food_CHA = 700;
public const int food_cat = 701;
public const int gainWeight = 705;
public const int food_god = 758;
public const int food_bug = 704;
public const int justcooked = 757;
public const int food_love = 703;
public const int food_poison = 702;
public const int gainWeight = 705;
public const int food_cat = 701;
public const int food_bug = 704;
public const int justcooked = 757;
public const int food_love = 703;
public const int food_god = 758;
public const int loseWeight = 706;
public static readonly int[] IDS = new int[9] { 700, 701, 758, 757, 702, 705, 704, 703, 706 };
public const int food_CHA = 700;
public static readonly int[] IDS = new int[9] { 705, 704, 703, 702, 701, 757, 758, 706, 700 };
}
Game
@@ -462,6 +462,14 @@ public void OnLoad()
}
}
TryAddQuest("into_darkness", "exile_kettle");
if (version.IsBelow(0, 23, 100))
{
int num = player.recipes.knownRecipes.TryGetValue("trainingDummy_heavy", 0);
if (num != 0)
{
player.recipes.knownRecipes["trainingDummy_heavy1"] = num;
}
}
if (version.IsBelow(0, 23, 96))
{
EClass.game.principal = IO.DeepCopy(EClass.setting.start.principals[0]);
GrowSystem
@@ -80,6 +80,8 @@ public int Convert(int tile)
protected virtual bool CanRegrow => true;
public virtual bool CanLevelSeed => true;
public virtual int ShadowStage => 1;
public virtual bool IsTree => false;
+GrowSystemDeco
File Created
public class GrowSystemDeco : GrowSystem
{
public override bool CanLevelSeed => false;
protected override bool WitherOnLastStage => false;
protected override bool UseGenericFirstStageTile => false;
public override int StageLength => 2;
public override void OnExceedLastStage()
{
SetStage(1);
}
public override int GetStageTile()
{
return source._tiles[GrowSystem.cell.objDir % source._tiles.Length];
}
}
HotItemHeld
@@ -221,6 +221,10 @@ public override bool TrySetAct(ActPlan p)
{
flag = false;
}
if (thing.trait is TraitTent && EClass._zone is Zone_Tent)
{
flag = false;
}
Chara tg;
if (flag)
{
ItemGeneral
@@ -36,7 +36,7 @@ public void SetChara(Chara c)
{
c2 = FontColor.Good;
}
else if (c.hp < c.MaxHP / 2)
else if (c.hp < c.MaxHP / 2 && c.currentZone == EClass._zone)
{
c2 = FontColor.Warning;
}
MUTATION
public class MUTATION
{
public const int mutationRegen = 1516;
public const int mutationSpeedN = 1519;
public const int etherPoisonHand = 1565;
public const int mutationSpeed = 1518;
public const int mutationSkin = 1510;
public const int mutationRegenN = 1517;
public const int mutationRegen = 1516;
public const int mutationSkinN = 1511;
public const int mutationDex = 1514;
public const int mutationEye = 1512;
public const int mutationEyeN = 1513;
public const int mutationSkin = 1510;
public const int mutationDex = 1514;
public const int mutationStr = 1520;
public const int mutationDexN = 1515;
public const int mutationRegenN = 1517;
public const int mutationStrN = 1521;
public const int etherManaBattery = 1564;
public const int mutationEyeN = 1513;
public const int mutationSpeedN = 1519;
public const int mutationChaN = 1523;
public const int etherPoisonHand = 1565;
public const int mutationCha = 1522;
public const int etherProvoke = 1563;
public const int etherArmor = 1562;
public const int mutationSpeed = 1518;
public const int etherStupid = 1561;
public const int etherWeak = 1560;
@@ -42,46 +50,38 @@ public class MUTATION
public const int etherWing = 1554;
public const int etherEye = 1553;
public const int etherFeet = 1552;
public const int etherUgly = 1551;
public const int etherStupid = 1561;
public const int mutationStrN = 1521;
public const int mutationStr = 1520;
public const int mutationCha = 1522;
public const int etherManaBattery = 1564;
public const int mutationChaN = 1523;
public const int etherEye = 1553;
public const int mutationBrainN = 1525;
public const int mutationBrain = 1524;
public const int mutationCold = 1526;
public const int mutationBrain = 1524;
public const int mutationColdN = 1527;
public const int mutationLightning = 1528;
public const int mutationLightningN = 1529;
public const int mutationBody = 1530;
public const int mutationBrainN = 1525;
public const int mutationBodyN = 1531;
public const int mutationColdN = 1527;
public const int etherGravity = 1550;
public const int etherUgly = 1551;
public const int etherFeet = 1552;
public const int mutationBody = 1530;
public static readonly int[] IDS = new int[38]
{
1516, 1565, 1510, 1511, 1512, 1513, 1514, 1515, 1517, 1564,
1519, 1563, 1562, 1518, 1560, 1559, 1558, 1557, 1556, 1555,
1554, 1553, 1552, 1551, 1561, 1521, 1520, 1522, 1523, 1525,
1526, 1524, 1528, 1529, 1530, 1531, 1527, 1550
1519, 1518, 1517, 1516, 1511, 1514, 1512, 1510, 1520, 1515,
1521, 1513, 1523, 1565, 1522, 1563, 1562, 1561, 1560, 1559,
1558, 1557, 1556, 1555, 1554, 1564, 1553, 1524, 1526, 1527,
1528, 1529, 1525, 1531, 1550, 1551, 1552, 1530
};
}
public class Mutation : Feat
POLICY
public class POLICY
{
public const int bed_quality = 2812;
public const int platinum_ticket = 2815;
public const int mass_exhibition = 2814;
public const int store_ripoff = 2816;
public const int suite_room = 2813;
public const int livestock_priv = 2715;
public const int forcePanty = 2712;
public const int home_discount = 2800;
public const int open_business = 2810;
public const int home_discount = 2800;
public const int tourist_safety = 2811;
public const int livestock_priv = 2715;
public const int bed_quality = 2812;
public const int store_ripoff = 2816;
public const int suite_room = 2813;
public const int tourist_safety = 2811;
public const int mass_exhibition = 2814;
public const int platinum_ticket = 2815;
public const int store_premium = 2817;
public const int license_stolen = 2824;
public const int celeb = 2822;
public const int license_furniture = 2819;
@@ -33,10 +31,12 @@ public class POLICY
public const int legendary_heirloom = 2821;
public const int celeb = 2822;
public const int forcePanty = 2712;
public const int legendary_exhibition = 2823;
public const int license_stolen = 2824;
public const int milk_fan = 2825;
public const int egg_fan = 2826;
@@ -49,14 +49,16 @@ public class POLICY
public const int incomeTransfer = 2711;
public const int nocturnal_life = 2508;
public const int self_sufficient = 2511;
public const int noAnimal = 2709;
public const int prohibition = 2503;
public const int noMother = 2710;
public const int wealth_tax = 2500;
public const int prohibition = 2503;
public const int food_for_people = 2502;
public const int faith_tax = 2501;
@@ -65,23 +67,21 @@ public class POLICY
public const int legal_drug = 2505;
public const int human_right = 2506;
public const int inquisition = 2507;
public const int wealth_tax = 2500;
public const int nocturnal_life = 2508;
public const int vaccination = 2509;
public const int ban_radio = 2510;
public const int self_sufficient = 2511;
public const int resident_tax = 2512;
public const int inquisition = 2507;
public const int human_right = 2506;
public const int taxfree = 2514;
public const int noDM = 2708;
public const int auto_farm = 2707;
public const int resident_wanted = 2513;
@@ -89,7 +89,7 @@ public class POLICY
public const int taxTransfer = 2705;
public const int auto_farm = 2707;
public const int noDM = 2708;
public const int weed_no = 2703;
@@ -107,11 +107,11 @@ public class POLICY
public static readonly int[] IDS = new int[51]
{
2812, 2815, 2814, 2813, 2712, 2810, 2800, 2715, 2816, 2811,
2817, 2824, 2819, 2820, 2821, 2822, 2823, 2825, 2826, 2827,
2828, 2818, 2711, 2508, 2709, 2503, 2710, 2502, 2501, 2504,
2505, 2506, 2500, 2509, 2510, 2511, 2512, 2507, 2514, 2708,
2513, 2706, 2705, 2707, 2703, 2704, 2701, 2700, 2516, 2515,
2816, 2715, 2800, 2810, 2811, 2812, 2813, 2814, 2815, 2817,
2822, 2819, 2820, 2821, 2712, 2823, 2824, 2825, 2826, 2827,
2828, 2818, 2711, 2511, 2709, 2710, 2500, 2503, 2502, 2501,
2504, 2505, 2507, 2508, 2509, 2510, 2512, 2506, 2514, 2707,
2513, 2706, 2705, 2708, 2703, 2704, 2701, 2700, 2516, 2515,
2702
};
}
Point
@@ -1181,12 +1181,12 @@ public List<Chara> ListCharasInNeighbor(Func<Chara, bool> func)
return listChara;
}
public List<Chara> ListCharasInRadius(Chara cc, int dist, Func<Chara, bool> func)
public List<Chara> ListCharasInRadius(Chara cc, int dist, Func<Chara, bool> func, bool onlyVisible = true)
{
listChara.Clear();
foreach (Chara chara in EClass._map.charas)
{
if (func(chara) && chara.Dist(cc) < dist && Los.IsVisible(chara, cc))
if (func(chara) && chara.Dist(cc) < dist && (!onlyVisible || Los.IsVisible(chara, cc)))
{
listChara.Add(chara);
}
PostEffectProfile
@@ -60,11 +60,13 @@ public void Apply(Camera cam)
{
EClass.scene.screenElin.tileMap.passChara.mat.EnableKeyword("AA_ON");
EClass.scene.screenElin.tileMap.passCharaL.mat.EnableKeyword("AA_ON");
EClass.scene.screenElin.tileMap.passCharaLW.mat.EnableKeyword("AA_ON");
}
else
{
EClass.scene.screenElin.tileMap.passChara.mat.DisableKeyword("AA_ON");
EClass.scene.screenElin.tileMap.passCharaL.mat.DisableKeyword("AA_ON");
EClass.scene.screenElin.tileMap.passCharaLW.mat.DisableKeyword("AA_ON");
}
}
}
SKILL
@@ -8,19 +8,21 @@ public class SKILL
public const int armorHeavy = 122;
public const int fireproof = 50;
public const int armorLight = 120;
public const int weaponBlunt = 111;
public const int acidproof = 51;
public const int weaponScythe = 110;
public const int weaponCrossbow = 109;
public const int acidproof = 51;
public const int fireproof = 50;
public const int PDR = 55;
public const int tactics = 132;
public const int armorLight = 120;
public const int weaponBlunt = 111;
public const int marksman = 133;
@@ -42,13 +44,11 @@ public class SKILL
public const int parasite = 227;
public const int eyeofmind = 134;
public const int PDR = 55;
public const int lumberjack = 225;
public const int mining = 220;
public const int spotting = 210;
public const int fishing = 245;
public const int weightlifting = 207;
@@ -60,15 +60,15 @@ public class SKILL
public const int evasion = 150;
public const int lumberjack = 225;
public const int eyeofmind = 134;
public const int EDR = 56;
public const int weaponSword = 101;
public const int life = 60;
public const int throwing = 108;
public const int fishing = 245;
public const int life = 60;
public const int mana = 61;
@@ -114,6 +114,8 @@ public class SKILL
public const int antiMagic = 93;
public const int martial = 100;
public const int weaponAxe = 102;
public const int weaponStaff = 103;
@@ -126,13 +128,11 @@ public class SKILL
public const int weaponDagger = 107;
public const int throwing = 108;
public const int CHA = 77;
public const int gathering = 250;
public const int martial = 100;
public const int spotting = 210;
public const int blacksmith = 256;
@@ -268,13 +268,13 @@ public class SKILL
public static readonly int[] IDS = new int[133]
{
131, 130, 123, 122, 50, 111, 110, 109, 51, 132,
120, 133, 226, 135, 242, 241, 240, 237, 235, 230,
227, 134, 55, 220, 210, 207, 200, 152, 151, 150,
225, 56, 101, 60, 245, 61, 62, 64, 65, 66,
131, 130, 123, 122, 120, 51, 110, 109, 50, 55,
132, 111, 133, 226, 135, 242, 241, 240, 237, 235,
230, 227, 225, 220, 245, 207, 200, 152, 151, 150,
134, 56, 101, 108, 60, 61, 62, 64, 65, 66,
67, 68, 70, 71, 72, 73, 74, 75, 57, 76,
78, 79, 80, 90, 91, 92, 93, 102, 103, 104,
105, 106, 107, 108, 77, 250, 100, 256, 916, 917,
78, 79, 80, 90, 91, 92, 93, 100, 102, 103,
104, 105, 106, 107, 77, 250, 210, 256, 916, 917,
918, 919, 920, 921, 922, 923, 924, 925, 926, 950,
951, 952, 915, 953, 955, 956, 957, 958, 959, 960,
961, 962, 963, 964, 965, 970, 972, 255, 954, 914,
TCOrbitChara
@@ -132,7 +132,7 @@ public void RefreshAll()
showHP = num < 0.9f && (owner.IsPCParty || owner.IsHostile() || (owner.enemy != null && owner.enemy.IsPCParty));
if (showHP)
{
barHP.transform.SetLocalScaleX(num);
barHP.transform.SetLocalScaleX(Mathf.Max(0f, num));
barHP.SetActive(enable: true);
bgHP.SetActive(enable: true);
}
@@ -147,7 +147,7 @@ public void RefreshAll()
showHP2 = num2 < 0.9f;
if (showHP2)
{
barHP2.transform.SetLocalScaleX(num2);
barHP2.transform.SetLocalScaleX(Mathf.Max(0f, num2));
barHP2.SetActive(enable: true);
bgHP2.SetActive(enable: true);
}
TextureManager
@@ -43,6 +43,7 @@ public void Init()
Add(tileMap.passAutoTileWater, textureData.floor);
Add(tileMap.passFloorMarker, textureData.floor);
Add(tileMap.passCharaL, textureData.objs_C);
Add(tileMap.passCharaLW, textureData.objs_C);
Add(tileMap.passIcon, textureData.objs_S);
AddList(textureData.world, "world.png");
AddList(textureData.bird, "bird1.png");
Thing
}
if (base.isDyed)
{
AddText("isDyed".lang(), FontColor.Default);
AddText("isDyed".lang(base.DyeMat.GetName() ?? ""), FontColor.Default);
}
if (base.IsEquipment)
{
TraitDrink
@@ -28,6 +28,8 @@ public virtual int IdEle
}
}
public virtual SourceElement.Row source => null;
public virtual string AliasEle => N1;
public virtual string N1 => GetParam(3);
@@ -153,7 +155,8 @@ public override void OnDrink(Chara c)
{
n1 = N1,
isPerfume = (this is TraitPerfume),
refThing = owner.Thing
refThing = owner.Thing,
act = ((source != null) ? ACT.Create(source) : null)
});
}
TraitPerfume
@@ -8,7 +8,7 @@ public class TraitPerfume : TraitPotionRandom
public override int GetValue()
{
return base.source.value * 1200 / 100;
return source.value * 1200 / 100;
}
public override void OnCreate(int lv)
@@ -18,6 +18,6 @@ public override void OnCreate(int lv)
public override string GetName()
{
return Lang.TryGet("perfume_" + base.source.alias) ?? "perfume_".lang(base.source.GetName().ToLower());
return Lang.TryGet("perfume_" + source.alias) ?? "perfume_".lang(source.GetName().ToLower());
}
}
TraitPlamoBox
@@ -15,7 +15,7 @@ public override bool OnUse(Chara c)
return false;
}
EClass.pc.Say("openDoor", EClass.pc, owner);
Thing thing = ThingGen.Create("plamo");
Thing thing = ThingGen.Create((EClass.rnd(5) == 0) ? "plamo_stand" : ((EClass.rnd(4) == 0) ? "plamo_bird" : "plamo"));
thing.DyeRandom();
EClass.pc.Pick(thing);
owner.ModNum(-1);
TraitPotionRandom
@@ -6,7 +6,7 @@ public class TraitPotionRandom : TraitPotion
lvMod = 10
};
public SourceElement.Row source => EClass.sources.elements.map[owner.refVal];
public override SourceElement.Row source => EClass.sources.elements.map[owner.refVal];
public override string AliasEle => source.aliasRef;
+TraitRogue
File Created
public class TraitRogue : TraitCitizen
{
}
TraitSeed
@@ -50,6 +50,10 @@ public override void WriteNote(UINote n, bool identified)
{
n.AddText("isNeedSun");
}
if (row.growth == null || !row.growth.CanLevelSeed)
{
n.AddText("isDecoSeed", FontColor.Warning);
}
}
public void TrySprout(bool force = false, bool sucker = false, VirtualDate date = null)
@@ -57,7 +61,7 @@ public void TrySprout(bool force = false, bool sucker = false, VirtualDate date
Point pos = owner.pos;
if (!pos.HasObj && pos.cell.CanGrow(row, date ?? new VirtualDate()))
{
pos.SetObj(row.id);
pos.SetObj(row.id, 1, owner.dir);
EClass._map.AddPlant(pos, owner.Thing);
if (sucker)
{
@@ -79,7 +83,7 @@ public static Thing MakeSeed(SourceObj.Row obj, PlantData plant = null)
}
Thing thing2 = ThingGen.Create("seed");
ApplySeed(thing2, obj.id);
if (thing != null)
if (thing != null && obj.growth != null && obj.growth.CanLevelSeed)
{
foreach (Element value in thing.elements.dict.Values)
{
@@ -124,6 +128,10 @@ public static Thing MakeSeed(SourceObj.Row obj, PlantData plant = null)
public static void LevelSeed(Thing t, SourceObj.Row obj, int num)
{
if (obj == null || obj.growth == null || !obj.growth.CanLevelSeed)
{
return;
}
for (int i = 0; i < num; i++)
{
if (obj == null || obj.objType == "crop")
UIInventory
@@ -333,7 +333,7 @@ public void SwitchTab(Tab tab)
}
if ((bool)layer.uiCurrency)
{
tab.owner.BuildUICurrency(layer.uiCurrency, tab.owner.owner.trait.CostRerollShop != 0);
tab.owner.BuildUICurrency(layer.uiCurrency, tab.owner.owner.trait.CostRerollShop != 0 || EMono.debug.enable);
}
layer.TryShowHint("h_inv" + tab.mode);
if ((bool)headerRow)
Zone
@@ -2583,6 +2583,8 @@ public Chara SpawnMob(Point pos = null, SpawnSetting setting = null)
num = ((dangerLv - 1) % 50 + 5) * 150 / 100;
}
CardRow cardRow = (setting.id.IsEmpty() ? spawnList.Select(num, setting.levelRange) : EClass.sources.cards.map[setting.id]);
Debug.Log(cardRow);
Debug.Log(cardRow.id);
int num2 = ((setting.fixedLv == -1) ? cardRow.LV : setting.fixedLv);
if (ScaleMonsterLevel)
{
Zone_RandomDungeon
@@ -10,17 +10,7 @@ public class Zone_RandomDungeon : Zone_Dungeon
public override int MinLv => LvBoss;
public override bool ScaleMonsterLevel
{
get
{
if (!EClass.player.flags.KilledBossInVoid || DangerLv < 50)
{
return DangerLv >= 200;
}
return true;
}
}
public override bool ScaleMonsterLevel => DangerLv >= 200;
public override string IDPlayList
{