Wednesday, January 16, 2019

Feature Spotlight: Raid Reporting and Coordination

The next feature I wanted to talk about is the one that's really at the core of the original design goals for Meowth: the ability to report and coordinate raids. Easily the most complex of all the functions of Meowth, this feature is now available to be tested on our support server!

Introduction

The raid system has been completely rewritten. The new system has support for a number of highly requested features, as well as some new surprises. Additionally, it will (hopefully) end up being much more efficient than the old system. Time will tell on that piece, but it certainly looks promising so far. Let's dive in.

What's new?

The following new features are present in the current build of Meowth 3.0:
  • Gym matching (with the old system of location-guessing used as a fallback)
  • Distinction between different forms of Pokemon such as Alola forms
  • Generic counters cached when raid bosses change and displayed on all raid information messages.
  • CP range displayed in the raid information
  • Recommended group size displayed in the raid information (based on Level 20 attackers)
  • Support for multiple raid groups and start times
  • Most RSVP changes can now be done with reactions in addition to commands

Gym Matching Benefits

Gym matching has brought some more benefits besides improved locations. In the last blog post I mentioned that the database stores the ID of the Level 10 S2 Cell containing each gym. Well, here's one benefit to that: we know that the in-game weather is determined at Level 10. So if a user at one gym updates the weather via the !weather command in a raid channel, the weather is also updated for each active raid in the same cell. Pretty neat!

Pokemon Forms

This is a big one and it's pretty complicated, but the short version is that if you want to report an Alolan Exeggutor raid, you will now need to put that in quotation marks. In fact this is true any time the "raid boss" argument is more than one word. The word order won't matter here, so "exeggutor alola" will work just as well as "alolan exeggutor".

Group Size Recommendations

The improved integration of Pokebattler has also made some things possible that I have long hoped to implement. Here are the details. With cached data on each raid boss, Meowth displays a recommended group size. When attempting to use !starting with an undersized group, Meowth sends a warning that you may not be able to defeat the boss. You have the option of going ahead anyway. Also, if you have asked Meowth to give your user-specific counters via Pokebattler, Meowth will take that into account when determining your group's strength. So although the recommended group size for Heatran is 3, if you and a friend have used !counters in a raid channel and Pokebattler thinks the two of you can duo the boss, Meowth won't warn you.

Additionally, if you attempt to start a group that is far above the power requirements for a certain boss, Meowth will suggest splitting into smaller groups in order to maximize rewards. Currently, this threshold is at a factor of 3 - in other words, if a group of 9 or more attempts to start, this warning will be sent. Of course, Meowth will allow you to go on ahead with the large group if you choose to.

Finally, when a group attempts to start a raid using !starting, Meowth checks to see if the users who are still on the way to the raid and the users who have not joined a group are able to defeat the boss without your group. If Meowth calculates that the number of users that you are leaving behind is not sufficient to defeat the boss, Meowth warns you about this and asks you to confirm. So in this situation, if you have a group of 5 about to do a Heatran raid, but there is 1 user that is still on the way, Meowth will warn you that you may be leaving out a user who is on the way but unable to defeat the boss without your group. You have the option of waiting or going on ahead anyway, so no need to worry about users who said they were on the way but never show up.

RSVP Changes

Most RSVP commands can now be done via reactions as well as the regular commands. If you use a reaction, Meowth will assume you are a group of 1, unless you have previously set a group size, even on a previous raid. Meowth will now remember the makeup of your group until you change it yourself. So if you always raid with the same group of people, set it once with a command and then you can use reactions from then on! Also, Meowth now enforces a limit of one raid that you are either "coming" to or "here" at. So if you said you were "here" to one raid but then say you are "coming" to a different raid, Meowth will cancel your RSVP to the first raid. This has been done to more accurately reflect the intention that "coming" is for users who are actively on the way and to help reduce the effect of people forgetting to mention when they leave a raid.

Summary

There's a lot to digest here but here's what is currently available to beta test on the support server.
  • The !raid command (no alias yet). The argument order is the same as it always has been - boss or level, location, time until hatch or expire.
  • RSVP commands and reactions (!interested, !coming, !here, !starting) as well as reactions for backing out or confirming in the case of warning messages.
  • !counters, !weather, !group (in raid channels)
Play around with it! There are quite a few bugs I'm sure but that's why this is a beta. Let me know what bugs you find and what feedback you have! As always, thanks for the support and patience.

Changes to Research

More details on today's changes to the research command are below. A new optional argument has been added to the research command. Thi...