EA 23.83
January 29, 2025
12 files modified.
Important Changes
None.
AI_Torture
@@ -87,6 +87,7 @@ public override void OnCancelOrSuccess()
{
return;
}
owner.AddCondition<ConInvulnerable>();
foreach (Chara chara in EClass._map.charas)
{
if (chara != _owner && (chara.enemy == _owner || chara.enemy == _owner.parasite || chara.enemy == _owner.ride))
AM_Adv
@@ -534,6 +534,7 @@ public override void _OnUpdateInput()
{
EClass.player.lastTurn = EClass.pc.turn;
EClass.player.invlunerable = false;
EClass.pc.RemoveCondition<ConInvulnerable>();
OnBecomeNoGoal();
if (!EClass.pc.HasNoGoal)
{
ActPlan
@@ -696,7 +696,14 @@ public void _Update(PointTarget target)
Color lightColor = t.LightColor;
EClass.ui.AddLayer<LayerColorPicker>().SetColor(lightColor, lightColor, delegate(PickerState state, Color _c)
{
t.c_lightColor = (byte)Mathf.Clamp(_c.r * 32f, 1f, 31f) * 1024 + (byte)Mathf.Clamp(_c.g * 32f, 1f, 31f) * 32 + (byte)Mathf.Clamp(_c.b * 32f, 1f, 31f);
if (state == PickerState.Cancel)
{
t.c_lightColor = 0;
}
else
{
t.c_lightColor = (byte)Mathf.Clamp(_c.r * 32f, 1f, 31f) * 1024 + (byte)Mathf.Clamp(_c.g * 32f, 1f, 31f) * 32 + (byte)Mathf.Clamp(_c.b * 32f, 1f, 31f);
}
t.RecalculateFOV();
t.renderer.GetTC<TCExtra>()?.RefreshColor();
});
AttackProcess
@@ -574,7 +574,7 @@ public bool Perform(int count, bool hasHit, float dmgMulti = 1f, bool maxRoll =
conWeapon = CC.GetCondition<ConWeapon>();
num4 = conWeapon.sourceElement.id;
num5 = conWeapon.power / 2;
num6 = 40 + (int)Mathf.Min(MathF.Sqrt(conWeapon.power), 80f);
num6 = (int)Mathf.Min(40f + MathF.Sqrt(conWeapon.power), 80f);
}
if (conWeapon == null && weapon == null && (CC.MainElement != Element.Void || CC.HasElement(1565)))
{
@@ -657,7 +657,7 @@ public bool Perform(int count, bool hasHit, float dmgMulti = 1f, bool maxRoll =
{
num10 = 0;
}
if (num10 >= EClass.rnd(100))
if (num10 > EClass.rnd(100))
{
TC.DamageHP(dmg, item.id, isThrow ? (100 + item.Value * 5) : (30 + item.Value), AttackSource.WeaponEnchant, CC);
}
@@ -802,7 +802,7 @@ void Proc(List<Element> list)
{
int num12 = 10 + item2.Value / 5;
int power = EClass.curve((100 + item2.Value * 10) * (100 + weaponSkill.Value) / 100, 400, 100);
if (num12 >= EClass.rnd(100))
if (num12 > EClass.rnd(100))
{
Act obj = item2 as Act;
Card card = (obj.TargetType.CanSelectSelf ? CC : TC);
BaseCondition
@@ -435,7 +435,14 @@ public override void _WriteNote(UINote n, bool asChild = false)
for (int j = 0; j < base.source.elements.Length; j += 2)
{
Element element = Element.Create(GetElementSource(j).id, base.source.elements[j + 1].Calc(power, 0, P2));
list.Add("modValue".lang(element.Name, ((element.Value < 0) ? "" : "+") + element.Value));
if (elements != null && elements.Has(element.id) && elements.Value(element.id) != element.Value)
{
list.Add("modValue".lang(element.Name, ((element.Value < 0) ? "" : "+") + elements.Value(element.id) + " (" + element.Value + ")"));
}
else
{
list.Add("modValue".lang(element.Name, ((element.Value < 0) ? "" : "+") + element.Value));
}
}
if (list.Count <= 0)
{
CTAG
@@ -32,5 +32,6 @@ public enum CTAG
godArtifact,
noWish,
dish_bonus,
dish_fail
dish_fail,
random_color
}
Card
}
if (IsPCParty && EClass.pc.ai is GoalAutoCombat)
{
dmg = dmg * 100 / Mathf.Min(105 + EClass.pc.Evalue(135) / 10, 110);
dmg = dmg * 100 / Mathf.Clamp(105 + EClass.pc.Evalue(135) / 10, 10, 110);
}
if (HasElement(1218))
{
if (EClass.player.invlunerable)
{
EvadeDeath();
goto IL_0a84;
goto IL_0a86;
}
}
if (IsPC && Evalue(1220) > 0 && Chara.stamina.value >= Chara.stamina.max / 2)
}
}
}
goto IL_0a84;
IL_0a84:
goto IL_0a86;
IL_0a86:
if (trait.CanBeAttacked)
{
renderer.PlayAnime(AnimeID.HitObj);
@@ -5083,7 +5083,7 @@ public virtual void SetRenderParam(RenderParam p)
public void DyeRandom()
{
Dye(EClass.sources.materials.rows.RandomItem().alias);
Dye(EClass.sources.materials.rows.Where((SourceMaterial.Row r) => r.matColor.r != r.matColor.g || r.matColor.g != r.matColor.b || r.matColor.b != r.matColor.r).RandomItem().alias);
}
public void Dye(string idMat)
Chara
@@ -1452,7 +1452,7 @@ public override void OnCreate(int genLv)
}
break;
}
if (source.tag.Contains("random_color"))
if (HasTag(CTAG.random_color))
{
DyeRandom();
}
CoreDebug
@@ -913,13 +913,18 @@ public void UpdateInput()
EClass.pc.Pick(targetChara.MakeBraineCell());
EClass.pc.Pick(targetChara.MakeEgg(effect: true, 10));
}
if (EClass.game.quests.Get<QuestDebt>() == null)
{
foreach (Chara chara in EClass._map.charas)
{
chara.hunger.value = 100;
}
return;
Chara chara = CharaGen.Create("loytel");
EClass._zone.AddCard(chara, EClass.pc.pos);
chara.SetGlobal();
Quest q = EClass.game.quests.Add("debt", "loytel");
EClass.game.quests.Start(q);
EClass.pc.party.RemoveMember(chara);
Hostility hostility2 = (chara.c_originalHostility = Hostility.Ally);
chara.hostility = hostility2;
}
return;
}
if (Input.GetKeyDown(KeyCode.F3))
{
Game
@@ -392,6 +392,10 @@ public void OnLoad()
{
value.memberType = FactionMemberType.Default;
}
if (!value.isDyed && value.HasTag(CTAG.random_color))
{
value.DyeRandom();
}
}
foreach (FactionBranch child in EClass.pc.faction.GetChildren())
{
TraitBaseSpellbook
@@ -122,7 +122,7 @@ public static void ReadFailEffect(Chara c)
c.Say("spell_fail_confuse", c);
c.AddCondition<ConConfuse>();
}
else if (EClass.rnd(3) == 0)
else if (((c.IsPCFaction && c.memberType == FactionMemberType.Default) || !EClass._zone.IsPCFaction) && EClass.rnd(3) == 0)
{
c.Say("spell_fail_monster", c);
c.PlaySound("spell_funnel");
Zone
@@ -903,6 +903,10 @@ public void Activate()
if (card.isChara)
{
Chara chara = card.Chara;
if (!card.isDyed && card.HasTag(CTAG.random_color))
{
card.DyeRandom();
}
if (card.IsUnique && !card.IsPCFaction && !card.IsPCParty)
{
Point point = chara.orgPos ?? card.pos;