Releases: koisland/SuperAutoTest
v0.5.0
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
Toystruct and records toSapDB. - Added persistent effects and counters for the
Teamstruct. - Added persistent golden retriever effect.
- Added tier 1 golden pack pets.
Changes
- Updates effects from Puppy Pack rework.
- Removed entity field from
Effectstruct. - Migrated links from outdated/unmaintained fandom wiki to wiki.gg.
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
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
log4rsandreqwestas dependencies. - Replaced
reqwestwithureq's blocking api. - Changed pets and teams to be thread-safe by refactoring
Rc<Refcell<T>>intoArc<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
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 forPositionto check if it is non-specific to the current position. - Added
check_activate()forEffectto check if anOutcometrigger activates it.
Changes
- Renamed
TeamViewertrait'scheck_eq_cond()tofilter_matching_pets() - Included
Statisticsof afflicting and affected pets to graphs inTeamverbose dags. - Changed
Teamnames 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.
- Certain
Bug-Fixes
- Fixed
Mosquitoeffect not scaling with level. - Fixes
Chilieffect not triggering pets withKnockoutabilities likeRhinoorHippo. - Fixed bug where cycles in
TeamEffects::trigger_all_effect()were reset.
v0.4.0
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.tomlto disable graphs for performance.
- Includes feature in
- Added team names to
SapDBfrom the Team Names SAP wiki page. - Added random generation of team names for
Team. - Added
teamfield toPet. - Added
soldfield toTeamto store sold pets. - Added condition in
Team::fight()that preventsTeams 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
Actionlike theExperienceandProfitvariants to take args soMultiplenot required. - Changed
Cloneimpl forTeamadds "_copy" suffix so each team always has a unique name. - Changed
TeamEffects::trigger_effects()to be only for pet effects. Split item effects intoTeamEffects::trigger_items(). - Fixed
Team::restore()to not invalidate previousPetreferences. - Fixed bug where new
Tigerabilities fromrepeat_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
Chilinot activating Knockout effects withRhino/Hippo. - Removed some hard-coded actions like
Action::TapirandAction::VulturewithAction::Conditionalactions. - Removed
idarg forPet::new()as uniquePetids are now required. - Updated docs and benchmarks.
v0.3.0
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
Shopstruct which is a modifiable shop. - Added the
TeamShoppingtrait which enablesTeams to shop and scale as theTeambattles. - Added
Position::AheadandPosition::Nearestpositions to select pets.- Replaced
Position::Relativefor certain pets (ex. Kangaroo) as the introduction of empty slots means these can miss.
- Replaced
- 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
Statisticsmuloperation with percentages to act more as expected. - Changed effect triggering functions to not require another
Teamas a required argument. - Reorganized project so cleaner separation of related code.
- Fixed bug where Weekly pack items were missed.
v0.2.0
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.iounder the namesaptest. - Easier access to the game information with a dedicated struct,
SapDB, to initialize theSQLitedatabase.- Before this, a user was required to run the compiled binary to set everything up.
- Serialize and deserialize
Pets andTeams as JSON strings. - All pets (with non-shop related abilities) from the Puppy, Tiger, and Star packs are supported!
v0.1.0
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
Rocketframework and can receive requests from three endpoints. - Builds a
SQLitedatabase (./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/.