Skip to content

Releases: koisland/SuperAutoTest

v0.5.0

14 Oct 09:18
f0a2023
Compare
Choose a tag to compare

This release covers v0.4.7 to v0.5.0. To download source code for specific versions, please refer to releases on crates.io.

Done-ish finally. Released to fix outdated data source from SAP wiki's transition from fandom to wiki.gg.

Features

  • Added Toy struct and records to SapDB.
  • Added persistent effects and counters for the Team struct.
  • Added persistent golden retriever effect.
  • Added tier 1 golden pack pets.

Changes

Bug-Fixes

  • Broken benchmarks.
    • Essentially, only one test was run and the state of the team (all fainted) was un-updated.
    • Will be working on redoing this in the coming releases.

v0.4.6

05 May 02:42
2c112fc
Compare
Choose a tag to compare

This release includes changes in v0.4.3 - v0.4.6.

Features

  • Added SAPRecord to hold both types of SAP records.
  • Added SAPQuery to generate queries.

Changes

  • Removed incorrect terminology in docs for directed graphs.
  • Removed log4rs and reqwest as dependencies.
  • Replaced reqwest with ureq's blocking api.
  • Changed pets and teams to be thread-safe by refactoring Rc<Refcell<T>> into Arc<Rwlock<T>>.
    • Only results in a 5% increase in runtime according to benchmarks.
    • This allows users to build teams in parallel across multiple threads. See docs/examples.

Bug-Fixes

  • Fixed dolphin only activating once regardless of level.
  • Fixed bat only activating once regardless of level.
  • Fixed incorrect summon effect for whale (clone vs default pet) and potential panic if a pet was not in front of it.

v0.4.2

09 Mar 04:26
Compare
Choose a tag to compare

This release adds battle_to_df(), a function that converts battle history to a tabular TSV format, and some quality-of-life functions. Read more in the docs. This also tidies up the library and addresses some bugs.

Features

  • Added battle_to_df() to convert battle history to a data frame.
  • Added is_non_specific() method for Position to check if it is non-specific to the current position.
  • Added check_activate() for Effect to check if an Outcome trigger activates it.

Changes

  • Renamed TeamViewer trait's check_eq_cond() to filter_matching_pets()
  • Included Statistics of afflicting and affected pets to graphs in Team verbose dags.
  • Changed Team names to only include alphanumeric characters.
    • This ensures that any data frames produced are always formatted correctly.
  • Changed effect-applying methods to always use the seed of the team invoking the method.
    • Certain Positions would use the team of the pet being affected.

Bug-Fixes

  • Fixed Mosquito effect not scaling with level.
  • Fixes Chili effect not triggering pets with Knockout abilities like Rhino or Hippo.
  • Fixed bug where cycles in TeamEffects::trigger_all_effect() were reset.

v0.4.0

07 Mar 20:21
Compare
Choose a tag to compare

This update fixes bugs with battle effect order and adds battle visualization. These changes can be seen in PR #2.

Features

  • Added better battle visualization with DAGs.
    • Includes feature in .saptest.toml to disable graphs for performance.
  • Added team names to SapDB from the Team Names SAP wiki page.
  • Added random generation of team names for Team.
  • Added team field to Pet.
  • Added sold field to Team to store sold pets.
  • Added condition in Team::fight() that prevents Teams with identical names from fighting.
    • This is necessary for building the digraph.

Changes/Fixes

  • Changed Team::clear_team() to retain empty slots in middle of friends and push up the first pet if empty slots ahead of it.
  • Changed certain Action like the Experience and Profit variants to take args so Multiple not required.
  • Changed Clone impl for Team adds "_copy" suffix so each team always has a unique name.
  • Changed TeamEffects::trigger_effects() to be only for pet effects. Split item effects into TeamEffects::trigger_items().
  • Fixed Team::restore() to not invalidate previous Pet references.
  • Fixed bug where new Tiger abilities from repeat_effects_if_tiger() were not mapped to the effect pet causing the effects to be invalid.
  • Fixed bug in battle effect order where which side invoked Team::fight() would alter the battle outcome.
    • lhs.fight(rhs) != rhs.fight(lhs)
    • Fixed by correctly changing triggers to deplete by the team with the lowest attack pet at the front. Also fixed so item effects activate last.
  • Fixed bug with Chili not activating Knockout effects with Rhino/Hippo.
  • Removed some hard-coded actions like Action::Tapir and Action::Vulture with Action::Conditional actions.
  • Removed id arg for Pet::new() as unique Pet ids are now required.
  • Updated docs and benchmarks.

v0.3.0

06 Mar 04:57
64411c8
Compare
Choose a tag to compare

This release implements shopping mechanics from Super Auto Pets and finishes the remaining pets and foods in the Turtle, Puppy, Star, and Weekly packs.

Features

  • Added the Shop struct which is a modifiable shop.
  • Added the TeamShopping trait which enables Teams to shop and scale as the Team battles.
  • Added Position::Ahead and Position::Nearest positions to select pets.
    • Replaced Position::Relative for certain pets (ex. Kangaroo) as the introduction of empty slots means these can miss.
  • Reintroduced empty slots into Teams to better emulate battle logic.
  • Added configurable database startup allowing users to set specific versions of the wiki to query from.
  • Added programmatic logging configuration.
  • Changed Statistics mul operation with percentages to act more as expected.
  • Changed effect triggering functions to not require another Team as a required argument.
  • Reorganized project so cleaner separation of related code.
  • Fixed bug where Weekly pack items were missed.

v0.2.0

10 Feb 16:22
Compare
Choose a tag to compare

In this release, I decided to remove the binary in favor of a library. This reduces dependencies and allows for a more usable and flexible API.

Features

  • A fully documented crate on crates.io under the name saptest.
  • Easier access to the game information with a dedicated struct, SapDB, to initialize the SQLite database.
    • Before this, a user was required to run the compiled binary to set everything up.
  • Serialize and deserialize Pets and Teams as JSON strings.
  • All pets (with non-shop related abilities) from the Puppy, Tiger, and Star packs are supported!

v0.1.0

20 Jan 18:26
Compare
Choose a tag to compare

This is the first release of SuperAutoTest, a framework built in Rust to create and test Super Auto Pets team combos. In this current version, all pets from the Turtle pack are supported!

Features

A binary executable that:

  • Spins up a server on localhost using the Rocket framework and can receive requests from three endpoints.
  • Builds a SQLite database (./sap.db) in the root directory.

All source code used to compile the binary is located in the src directory.

Endpoints

The first two endpoints comprise the database aspect of the framework that is used to get updated information about pet/s and food/s from the Super Auto Pets Fandom wiki.

The last endpoint, battle/, allows the testing of team combinations. Examples can be checked in docs/examples/.