What do you mean with "it can negate the talent which grants you shield from non-used cards"? Shouldn't Deep Kiss synergize well with it?
The +1 shield per card from Change of Plan only applies when cards are discarded at the end of the turn.
Your change only modifies its buff parameter to 99 (giving the preparation/no-discard buff 99 turns):
Java:
keyValuePair.Value.descTid = "You no longer discard cards from your hand.";
keyValuePair.Value.param[0].valueA = 99;
keyValuePair.Value.propensity = eSpellPropensity.e.Extinct;
keyValuePair.Value.grade = eGradeType.e.Unique;
keyValuePair.Value.creatorName = string.Empty;
keyValuePair.Value.costValue = (keyValuePair.Value.isUpgraded ? 1 : 3);
At BattleFramework.BattleFramework_Internal:
Java:
if (this._player.GetBuffCount(eBuffType.e.PREPERATION) > 0)
{
this._player.AddBuffCount(eBuffType.e.PREPERATION, -1);
}
else
{
yield return base.StartCoroutine(this.DiscardPlayerHand(true));
}
And if we look at BattleFramework.DiscardPlayerHand, we can observe that it's where it applies the bonus shield:
Java:
for (int nInd = activatedCount - 1; nInd >= 0; nInd = num2)
{
if (bByTurnEnd)
{
int talent = GameManager.Data.GetTalent("Survivor_PlanChange");
if (talent > 0)
{
TalentData data = SingletonBase<TalentTable>.Instance.GetData("Survivor_PlanChange");
int num = talent * data.valueInt;
this._player.SetShieldModify(num, true);
}
}
...
}
So yes, preparation doesn't trigger the talent at all because it doesn't invoke DiscardPlayerHand, but passives do. Passives have an extra condition inside the loop to skip them, but the the early talent check is still evaluated and executed as usual.
Java:
if (curSpell.propensity != eSpellPropensity.e.Passive)
{
eSpellPropensity.e propensity = curSpell.propensity;
if (propensity == eSpellPropensity.e.Volatility || propensity == eSpellPropensity.e.Action)
{
this.AddSpellToDelete(uielement_HandCard, curSpell);
SingletonBehaviour<EffectManager>.Instance.CreateCardExtinctEffect(uielement_HandCard.Card);
}
else
{
this.AddSpellToGrave(curSpell, uielement_HandCard.CardRectTransform);
}
if (this._deck_Hand.IsInRange(nInd))
{
this._deck_Hand.RemoveAt(nInd);
}
yield return new WaitForSeconds(0.1f);
}
Hehe, one could argue Immortal + negative extinct card does exactly as advertised. Just consider it a balancing factor.
Eh, I feel like it's a bug, immortals are buffs, not debuffs, and should not penalize you.
I'm fine with bumping the cost for Rising from Ash back up, but I cannot imagine lowering Immortal back to 1. In almost every case, that's so much worse than simply adding another copy of that extinct card! (yes, you might not find another copy, but come on)
I feel like the other way around, keep the reduced cost, but bring it back to 1, then give Heroes Cloak either 2 or 3 immortals.
Didn't know Struggle removes Purify btw, what a nasty bug.
As mentioned, not only does it remove purify, but it also negates the -1 constrained effect, which really sucks in the Slave Trader boss fight, if you don't know about this.
The issue happens because the -1 constrained effect is considered a debuff by the game. I was going to fix this, but meh, barely any gratitude around these parts but plenty of bickering and lecturing.
Which reminds me: Do you use the Bindings Reimagined mod? Because I do and it might have quite an impact on the usefulness of thorns in general.
No. Not only do I find bindings in this game annoying (spamming struggle and limited cards suck), but I always keep Temptation in my deck because of its uniqueness compared to the other cards, even if it's not as useful later in the game. Temptation + bindings on enemies that don't have AnimCombine animations is always going to be glitchy.
That, and many effects were inside private functions IIRC. I don't see myself pouring a lot of time into Last Evil anymore, but thanks for the offer though!
Private methods can be patched with Harmony as usual and you can invoke private methods through reflection in C#.