Skip to content

Releases: RoyaleGym/RoyaleSim

v0.1.7

Choose a tag to compare

@github-actions github-actions released this 03 Oct 22:44

RoyaleSim 0.1.7

Install:

pip install royalesim --find-links https://github.com/RoyaleGym/RoyaleSim/releases/expanded_assets/v0.1.7

Calling the engine

  • Levels per side and per card. In a real match the two sides, and the cards in one deck, often have different
    levels. Battle.reset now takes levels=[blue, red] (each empty, or one level per deck card) and
    tower_levels=[blue, red]. A play is at its card's level: an evolution or a hero form at its base card's, and a
    Mirror's copy at the Mirror's level plus one. Leave both out and both sides play at one level, as before.
  • Battle.step_commands_run() lists every delayed command that ran or was dropped during the last step, over
    all its ticks: (tick, team, kind, what, reason). A command still waiting when a level overtime ends is now
    reported dropped, with reason GAME_OVER.

No battle logic changed.

See CHANGELOG.md and docs/api.md.

v0.1.6

Choose a tag to compare

@github-actions github-actions released this 03 Oct 15:39

RoyaleSim 0.1.6

Install:

pip install royalesim --find-links https://github.com/RoyaleGym/RoyaleSim/releases/expanded_assets/v0.1.6

No change to installing or calling the engine.

Battle logic

Crown-tower target ties, jump landings, Evo Musketeer snipes, a hooked unit's release (it now idles one tick after
the hook lets go, as in the game), chase limits, death bombs and headings while casting, as measured in the game.

See CHANGELOG.md.

v0.1.5

Choose a tag to compare

@github-actions github-actions released this 03 Oct 12:29

RoyaleSim 0.1.5

Install:

pip install royalesim --find-links https://github.com/RoyaleGym/RoyaleSim/releases/expanded_assets/v0.1.5

Calling the engine

  • state_json(): an entity's card_id is now the card whose play put the unit on the board, all the way down its
    chain. A Tombstone's Skeletons report the Tombstone, a Barbarian Hut's Barbarians the hut, the Goblin Drill's
    Goblins the Drill, and the Tri-Wizards' Electro and Ice Wizards the Tri-Wizards. Before, a unit several cards can
    make reported the first such card in the catalogue (every Skeleton reported the Witch).
  • Evolved and hero forms, and every unit they put down, report their base card. No unit reports -1 any more.
  • A projectile's firer_card_id is unchanged: the unit that fired it.

Battle logic

Knockback and death pushback, units that strike and move in the same tick, kamikaze contact, cage shots, barrages,
dash and chain-hop timing, ghost pairs, hidden buildings, equal-distance targets and pulls at the water's edge, as
measured in the game.

See CHANGELOG.md.

RoyaleSim 0.1.4

Choose a tag to compare

@github-actions github-actions released this 03 Oct 04:53
pip install royalesim --find-links https://github.com/RoyaleGym/RoyaleSim/releases/expanded_assets/v0.1.4
  • A level overtime now ends as in the game. When overtime runs out with the crowns level, play stops: no more cards
    can be played, and every troop, building and spell leaves the board. From tick 6067 every crown tower loses the same
    hit points each tick, and the first tower to fall decides the match (1-0, or 2-1 from 1-1). If both sides' weakest
    towers are exactly level, the match is a draw at tick 6147. The longest match is now about 5 minutes 10 seconds at
    level-11 towers.
  • state_json(): each spell row gains a 12th value, ticks_flown, the ticks a flying spell has moved.
  • catalogue_json(): each card row gains a 12th value, champion, true for a champion card.
  • Wheels are tested on CPython 3.10, 3.11, 3.12, 3.13 and 3.14.
  • Battle logic: illegal troop taps, Furnace spirits, first hits, random delays, death rings and chases after a kill,
    as measured in the game.

Wheels for Windows x86_64, Linux x86_64 and aarch64, and macOS x86_64 and arm64.

RoyaleSim 0.1.3

Choose a tag to compare

@github-actions github-actions released this 02 Oct 22:28
pip install royalesim --find-links https://github.com/RoyaleGym/RoyaleSim/releases/expanded_assets/v0.1.3
  • A played card's slot can stay empty for a moment, as in the game. Each player has one refill timer: a new card
    enters the hand at most once every 1 s (0.5 s in double elixir, 0.35 s in triple). Play two cards quickly and the
    second slot is empty until the timer lets the next card in. An empty slot reads -1 in state_json()'s "hand",
    and playing it is refused with EMPTY_SLOT.
  • Battle logic: shots, Skeleton King copies, placement ties, the targets of knocked-back and slapped units, death
    spawns, containers and building scans, as measured in the game.

Wheels for Windows x86_64, Linux x86_64 and aarch64, and macOS x86_64 and arm64; CPython 3.10 and later.

RoyaleSim 0.1.2

Choose a tag to compare

@github-actions github-actions released this 02 Oct 13:40

Battle logic changes only; installing and calling the engine are unchanged.

pip install royalesim --find-links https://github.com/RoyaleGym/RoyaleSim/releases/expanded_assets/v0.1.2
  • The Skeleton King's copies are placed, and take their first step, as in the game.

Wheels for Windows x86_64, Linux x86_64 and aarch64, and macOS x86_64 and arm64; CPython 3.10 and later.

RoyaleSim 0.1.1

Choose a tag to compare

@github-actions github-actions released this 02 Oct 08:18

Battle logic changes only; installing and calling the engine are unchanged.

pip install royalesim --find-links https://github.com/RoyaleGym/RoyaleSim/releases/expanded_assets/v0.1.1
  • A unit keeps a target that is just past its sight range but still inside its chase limit, as in the game.
  • The Skeleton Barrel flies straight at its target, as in the game.
  • Each player's "evo" rows in state_json() carry the evolution's cycle count as a fourth value (since 0.1.0).

Wheels for Windows x86_64, Linux x86_64 and aarch64, and macOS x86_64 and arm64; CPython 3.10 and later.

RoyaleSim 0.1.0

Choose a tag to compare

@JinxTheCatto JinxTheCatto released this 02 Oct 07:10

The first RoyaleSim release with prebuilt wheels. You no longer need Rust to install the engine.

pip install royalesim --find-links https://github.com/RoyaleGym/RoyaleSim/releases/expanded_assets/v0.1.0
  • One wheel per platform: Windows x86_64, Linux x86_64 and aarch64 (manylinux 2.28), macOS x86_64 and arm64.
    Each runs on CPython 3.10 and later.
  • The engine carries its card table and data files inside the wheel.
  • New: royalesim.data_dir(), royalesim.card_table_source(), royalesim.__version__.

See CHANGELOG.md for the details.