Hercules
Hercules copied to clipboard
Tarot Card "The Sun" lets all successive tarot casts fail until card effect ends
Describe the bug Tarot Card "The Sun" lets all successive tarot casts fail until card effect ends.
To Reproduce Steps to reproduce the behavior:
- Checkout clean herc
- Cast Tarot until "The Sun" applied
- Try casting tarot again
- See it will fail
Expected behavior It should be able to cast tarot
Additional context Verified on aegis.
in herc i think this behavior is intended look into skill.c > CG_TAROTCARD
case 13: // atk,matk,hit,flee,def reduced sc_start(src,bl,SC_INCATKRATE,100,-20,skill->get_time2(skill_id,skill_lv)); sc_start(src,bl,SC_INCMATKRATE,100,-20,skill->get_time2(skill_id,skill_lv)); sc_start(src,bl,SC_INCHITRATE,100,-20,skill->get_time2(skill_id,skill_lv)); sc_start(src,bl,SC_INCFLEERATE,100,-20,skill->get_time2(skill_id,skill_lv)); sc_start(src,bl,SC_INCDEFRATE,100,-20,skill->get_time2(skill_id,skill_lv)); sc_start(src,bl,type,100,skill_lv,skill->get_time2(skill_id,skill_lv)); break;
Remove this line
sc_start(src,bl,type,100,skill_lv,skill->get_time2(skill_id,skill_lv));
is there any hint why that is the case? offical behavior is not like that
In rAthena it says:
#ifdef RENEWAL
//In renewal, this card gives the SC_TAROTCARD status change which makes you immune to other cards
sc_start(src, target, SC_TAROTCARD, 100, skill_lv, skill_get_time2(skill_id, skill_lv));
#endif
Seems like a pretty concious decision based on information. But it also only applies to Renewal, so I'm out.
Tests were only done for pre-Renewal by @Noooil
I couldn't find any proof that The Sun stops one from re-using Tarot Card on someone, checked via pre-renewal Aegis in GHIDRA.
Yes, this change was added in renewal, it should not apply to pre-renewal.