Loreinator / Shuffle-Move

Program to help choose moves in the Pokemon Shuffle puzzle game
GNU General Public License v3.0
95 stars 18 forks source link

Account for extra damage from Burn, Spookify, Freeze, and Sleep Charm #29

Closed JustAnotherRandomLad closed 6 years ago

JustAnotherRandomLad commented 9 years ago

Now that turns are counted, this will be much easier to implement.

Perhaps include a spinnerdrop-downs to choose a status effect and a spinner for how long it's lasted, with the effect expiring after 3 turns (which is how long they all last). Burn, Freeze, and Spookify all multiply damage of their respective type except the match that caused the effect by 1.5; Sleep Charm does the same for all types, but with a multiplier of only 1.2.

(IIRC, effects can't overlap or overwrite one another, so maybe you should also include Astonish, Chill, Paralyze, and the stunning part of Quake. Paralyze lasts 3 turns, and the rest only last 1. Oh, and Fire- and Ice- and Ghost-types are immune to their respective effects; Grass-, Ghost-, and Dark-types can't be put to sleep; and Paralyze and Quake don't work on Electric-types. Finally, if it matters, all of the above except Burn stop the disruption timer for one turn longer than their actual duration.)

(Sources: http://www.gamefaqs.com/boards/114531-pokemon-shuffle/71552611, http://www.serebii.net/shuffle/abilities.shtml, several Reddit posts, personal experience, and a test run I did just now with Charizard/Vanilluxe/Raichu/Spiritomb on Darkrai to make sure EB mons weren't immune to everything.)

EDIT: Ghost-types are not immune to Spookify.

Loreinator commented 9 years ago

These are already simulated for the 'current' simulation, but yes they don't carry over or persist yet.

It will take some thinking to identify the right interface location and data storage, but they will probably be best put in the preferences manager like the others. The UI location will be a bit trickier to find the right location, so it might be best suited to something like a new window that is synchronized to the main window - this would allow people to completely ignore it if they wanted.

Do you have any concept pictures of how you think it should be displayed and modified?

JustAnotherRandomLad commented 9 years ago

I was thinking something like this: status concept But if you think it should go in a separate window, maybe just put that extra line in there.

EDIT: Updated image.

Loreinator commented 9 years ago

Seems doable. Good thing the Paint Pallet is scrollable, eh?

i don't see why the status can't go there, it should be a good fit. Although the order of stuff in that area of the interface should probably be sorted around to make it more intuitive.

JustAnotherRandomLad commented 9 years ago

In case it's important: just checked, and the first count of the vertical line in the inverted-T/L match glitch does not get the effect multiplier, but the second one does.

Also, everything is immune to everything the turn any effect expires. In other words, if you burn something, you can't burn it again (or freeze it) until 4 turns later, not 3 - it will always have that one turn of clear status in between effects. (I suspect this is because ability calculations are done before expired status problems are removed.)

avengah commented 9 years ago

The miscellaneous pastebin says Freeze is x1.2 for ice types, not x1.5.

Disruption Delay also prevents all other statuses. Prank and Mind Zap still work as they're different, though. Finally, if you directly make the last match to evolve a Mega, everything to do with disruptions (including these effects) is delayed by one turn.

JustAnotherRandomLad commented 9 years ago

Really? I can't seem to find the pastebin you're referring to.

avengah commented 9 years ago

http://pastebin.com/x7Rxi0Jx

JustAnotherRandomLad commented 9 years ago

Ah, never saw that one, thanks.

Is there one on effect durations, just so I can double-check those? (Also, thanks for reminding me - Disruption Delay essentially works as a type-ignoring paralysis that lasts half the stage's length in moves, rounded up, including any extra moves from Moves+5. And yes, it does block other status effects; yes, Prank and Mind Zap work outside the status mechanic and don't affect any of this; and yes, causing a Mega Evolution as the first match in a combo prevents everything mentioned here from counting down that turn, including DD.)

avengah commented 9 years ago

Not that I'm aware of. The only ones are at http://pastebin.com/u/xJakub.

The reason why the ability list has x1 by Burn etc. is because the actual match where those abilities activate isn't boosted.

JustAnotherRandomLad commented 9 years ago

Fair enough. I've tested all of them except Spookify and Paralyze, anyway - just wanted to be sure on those two. (Spiritomb's ability never activated on Darkrai, but that was probably due to a lack of Spiritomb matches in that run more than anything.)

avengah commented 9 years ago

One other thing I've just remembered: As I'm sure you know, the very first match on the turn when Spookify etc. wears off is boosted normally. However, Mega effects are weird - take Banette, for example: 80 damage plus 16 per icon removed normally, or 120 plus 24 with Spookify active.

You can see the 120 briefly flash up, but as soon as it starts adding the extra Mega damage, it "corrects" it back down again to 96, 112 etc.

This wasn't the case before v1.2 I think - I'm pretty sure it used to give 120 plus 16 per icon (a sort of hybrid: boosted base damage but regular Mega damage).

Just as the L and inverted T didn't work before either.

JustAnotherRandomLad commented 9 years ago

Sorry, I messed up - Ghost-types aren't immune to Spookify. Gastly just spooked itself.

avengah commented 9 years ago

Spookify doesn't stop the timer for its duration; just one turn like Burn. Not sure about Freeze though.

I could have told you Spookify works on Ghosts... I didn't see that bit before. I used it a bit against Giratina before deciding to use Absol instead.

JustAnotherRandomLad commented 9 years ago

Burn doesn't stop it at all, though.

And I tested Freeze on Darkrai, and it froze the disruption timer for its duration (plus the turn it wore off).

avengah commented 9 years ago

I just retested Burn against Ampharos. Second turn, counter 14. Burn activates, counter still 14. So it does delay it by a turn, just as I thought, same as Spookify.

JustAnotherRandomLad commented 9 years ago

That... makes no sense. I tested it on Ampharos myself and it didn't affect the timer. Let me check again...

avengah commented 9 years ago

This may also be useful, because there are more immunities.

https://m.reddit.com/r/PokemonShuffle/comments/37fro9/suspicion_sleep_charm_doesnt_activate_on_rock/

JustAnotherRandomLad commented 9 years ago

Some of those have been disproven, though - for example, Steelix can be put to sleep.

But you were right about Burn and Spookify - both stun for a turn and weaken for 3. (So that's what Freeze has over them...) Not sure how I didn't see that before. :/

avengah commented 9 years ago

Someone mentioned on GameFAQs that Ampharos is immune to Freeze. That seems to be the case. I think it would be a huge pain to manually test every status with every type, but I think it would have to be done at some point to get all the immunities.

JustAnotherRandomLad commented 9 years ago

But why would Electric-types be immune to Freeze? :/

Sent from my Samsung device

-------- Original message -------- From: avengah notifications@github.com Date: 08-29-2015 6:15 PM (GMT-05:00) To: Loreinator/Shuffle-Move Shuffle-Move@noreply.github.com Cc: JustAnotherRandomLad thesecrecyking@hotmail.com Subject: Re: [Shuffle-Move] Account for extra damage from Burn, Spookify, Freeze, and Sleep Charm (#29)

Someone mentioned on GameFAQs that Ampharos is immune to Freeze. That seems to be the case. I think it would be a huge pain to manually test every status with every type, but I think it would have to be done at some point to get all the immunities.


Reply to this email directly or view it on GitHub: https://github.com/Loreinator/Shuffle-Move/issues/29#issuecomment-136056935

avengah commented 9 years ago

Because the game is programmed that way. Why are you surprised? Some of the other immunities don't make sense either! On 29 Aug 2015 23:20, "JustAnotherRandomLad" notifications@github.com wrote:

But why would Electric-types be immune to Freeze? :/

Sent from my Samsung device

-------- Original message -------- From: avengah notifications@github.com Date: 08-29-2015 6:15 PM (GMT-05:00) To: Loreinator/Shuffle-Move Shuffle-Move@noreply.github.com Cc: JustAnotherRandomLad thesecrecyking@hotmail.com Subject: Re: [Shuffle-Move] Account for extra damage from Burn, Spookify, Freeze, and Sleep Charm (#29)

Someone mentioned on GameFAQs that Ampharos is immune to Freeze. That seems to be the case. I think it would be a huge pain to manually test every status with every type, but I think it would have to be done at some point to get all the immunities.


Reply to this email directly or view it on GitHub: https://github.com/Loreinator/Shuffle-Move/issues/29#issuecomment-136056935

— Reply to this email directly or view it on GitHub https://github.com/Loreinator/Shuffle-Move/issues/29#issuecomment-136057329 .

JustAnotherRandomLad commented 9 years ago

So far, they have to me - Electric-types can't be paralyzed, Grass-types are immune to spore-based moves, a lot of Ghost- and Dark-types have Insomnia...

Sent from my Samsung device

-------- Original message -------- From: avengah notifications@github.com Date: 08-29-2015 6:22 PM (GMT-05:00) To: Loreinator/Shuffle-Move Shuffle-Move@noreply.github.com Cc: JustAnotherRandomLad thesecrecyking@hotmail.com Subject: Re: [Shuffle-Move] Account for extra damage from Burn, Spookify, Freeze, and Sleep Charm (#29)

Because the game is programmed that way. Why are you surprised? Some of the other immunities don't make sense either! On 29 Aug 2015 23:20, "JustAnotherRandomLad" notifications@github.com wrote:

But why would Electric-types be immune to Freeze? :/

Sent from my Samsung device

-------- Original message -------- From: avengah notifications@github.com Date: 08-29-2015 6:15 PM (GMT-05:00) To: Loreinator/Shuffle-Move Shuffle-Move@noreply.github.com Cc: JustAnotherRandomLad thesecrecyking@hotmail.com Subject: Re: [Shuffle-Move] Account for extra damage from Burn, Spookify, Freeze, and Sleep Charm (#29)

Someone mentioned on GameFAQs that Ampharos is immune to Freeze. That seems to be the case. I think it would be a huge pain to manually test every status with every type, but I think it would have to be done at some point to get all the immunities.


Reply to this email directly or view it on GitHub: https://github.com/Loreinator/Shuffle-Move/issues/29#issuecomment-136056935

— Reply to this email directly or view it on GitHub https://github.com/Loreinator/Shuffle-Move/issues/29#issuecomment-136057329 .


Reply to this email directly or view it on GitHub: https://github.com/Loreinator/Shuffle-Move/issues/29#issuecomment-136057430

JustAnotherRandomLad commented 9 years ago

...Okay, I take that back - according to the official site, Flying-types are immune to Paralysis as well as Quake.

Loreinator commented 8 years ago

A few questions have come up when I was working on this today:

1) How long does disruption delay activate for, exactly? I've heard its half the max moves, plus 2 or 3 more if you use +5 moves. 2) How long does each effect's activated state last? Burn, Sleep, Freeze, Spookify.

avengah commented 8 years ago

Disruption Delay lasts half the number of turns, rounded up. That means, if there are 15 turns, it will run out when the counter hits 7. The +5 is taken into account before the DD, so that means in this case it will run out at 10 turns left.

With an odd number of turns, +5 adds 2 turns to the DD. With an even number, it adds 3.

15 turns. DD lasts 8 turns, runs out on 7. Use +5: 20 turns. DD lasts 10 turns, runs out on 10.

16 turns: DD lasts 8 turns, runs out on 8. Use +5: 21 turns. DD lasts 11 turns, runs out on 10.

Burn lasts for the current turn, two more full turns then runs out at the start of the turn after that. The first match of that last turn will only be boosted if it's not a Mega that recalculates.

The same applies to all the others. They all last for the current turn and two more full turns before expiring on the first match of the fourth turn.

While Chill, Astonish and Flap disable the enemy for the rest of the turn, the effect expires at the start of the next turn, which means the disruption timer is normally delayed by 2 turns in total. Paralyse and Shock Attack last one more turn for a total of 3.

Since Sleep and Freeze both disable the enemy for 3 turns, the timer is stalled for 4 turns, but since Burn and Spookify don't disable the enemy, the timer is only stalled for a single turn. As the ability activates, the counter doesn't decrease.

All that is as long as the ability activates at the start of a turn. In those rare cases when an ability activates mid-turn, the initial effect of stopping the counter decreasing won't happen.

avengah commented 8 years ago

Oh yeah. Mind Zap and Prank also add an extra turn to the disruption counter in addition to their standard effect, which is of course to reset the disruption timer and randomise it respectively. There was some weirdness regarding Mind Zap on the Qwilfish level recently: it would normally do nothing during the first 5 turns with +5 and it would reset the countdown to 2 during the last 14 turns, but on turn 15 exactly (the point after which the disruptions change), the countdown would reset to 3 for some reason. Then if you triggered Mind Zap again on turn 14 or later, it would reset to 2 so it was strictly a one-off thing and I don't know why it happened.

One last thing: I don't know if you intended things to be functional yet but none of the status effect options are working. Putting the number of turns to any non-zero number causes it to just show "Settle" in the move chooser, which decrements a turn until it hits 0 and then it lets you move again. Of course, while this isn't working properly, Burn doesn't even boost the rest of the turn so I went back to build 204 for the time being. Let me know if you want a bug report but this time it's probably unnecessary.

Oh, and Stabilise+ is still broken, but I think you're probably going to get to that soon, so I won't worry too much.

Loreinator commented 8 years ago

Yea, the current dev version is in progress, after any big change I have to do a fair bit of tweaks to make it all work nicely together. It's probably some little glitch in the 'unstable board' detection code.

-Andrew On Jun 19, 2016 9:19 PM, "avengah" notifications@github.com wrote:

Oh yeah. Mind Zap and Prank also add an extra turn to the disruption counter in addition to their standard effect, which is of course to reset the disruption timer and randomise it respectively. There was some weirdness regarding Mind Zap on the Qwilfish level recently: it would normally do nothing during the first 5 turns with +5 and it would reset the countdown to 2 during the last 14 turns, but on turn 15 exactly (the point after which the disruptions change), the countdown would reset to 3 for some reason. Then if you triggered Mind Zap again on turn 14 or later, it would reset to 2 so it was strictly a one-off thing and I don't know why it happened.

One last thing: I don't know if you intended things to be functional yet but none of the status effect options are working. Putting the number of turns to any non-zero number causes it to just show "Settle" in the move chooser, which decrements a turn until it hits 0 and then it lets you move again. Of course, while this isn't working properly, Burn doesn't even boost the rest of the turn so I went back to build 204 for the time being. Let me know if you want a bug report but this time it's probably unnecessary.

Oh, and Stabilise+ is still broken, but I think you're probably going to get to that soon, so I won't worry too much.

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/Loreinator/Shuffle-Move/issues/29#issuecomment-227032777, or mute the thread https://github.com/notifications/unsubscribe/AI0RQx-NP6PewHDJzi37yaS3T_1IVA1Oks5qNeqVgaJpZM4FwspD .

Loreinator commented 8 years ago

Found the bug, fixed the bug.

Note: the status effects in the current dev version are persistent, but don't affect the simulation yet. There's a lot of groundwork to have persistent state data conveyed through save data and UI as well as the parallel simulation framework. I'll work on it as time permits, but it may not be functional before the weekend.

avengah commented 8 years ago

OK, cool. No problem! Take as long as you need.