All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- Added the possibility to invoke team powers, similarly to actors' abilities.
- New associated type
InvocationinTeamRules. - New methods
invocableandinvokeinTeamRules. - New event
InvokePower. - Added team powers.
- New associated types
Power,PowersSeedandPowersAlterationinTeamRules. - New methods
generate_powersandalter_powersinTeamRules. - New events
AlterPowersandRegeneratePowers.
- Improved the ergonomics of handling errors from
EventProcessor.ProcessOutputhas a new methodresult()to get aWeaselResult.
- Rounds and turns now reflect the most used definition (a round is made of multiple turns).
- Renamed
StartRoundintoStartTurn, swappedEndRoundandEndTurnand renamedEnvironmentRoundintoEnvironmentTurn. - Renamed
check_objectives_on_roundintocheck_objectives_on_turn. - Renamed
on_round_startintoon_turn_startandon_round_endintoon_turn_end. - Renamed
RoundStateintoTurnState.
- Event trigger
RemoveEntityTriggerthat can fire either aRemoveCreatureor aRemoveObject. - Re-exported the most used names.
- Fixed the incorrect name
ConcludeMissionTrigger. It is nowConcludeObjectivesTrigger.
- New methods
on_character_addedandon_character_transmutedinCharacterRules. ClientandServerare nowSend. For this to happen some types requiresSendas well.- Client and Server implements a new trait,
BattleController. - Multiplayer example 'King of the hill'.
- Added accessors to flat event structures.
- Removed metric
ROUNDS_STARTED. Added counters for rounds and turns inRounds. Added also anEndTurnevent. - Introduced
BattleControllertrait.
- Ambiguous metric ids for
CREATURES_CREATEDandOBJECTS_CREATED.
- Implemented
HashandEqforEntityId. - Methods to obtain a mutable access to all rules and models.
- Rounds can now be initiated by multiple actors.
- Support for status effects.
- New methods
generate_statusandalter_statusesinCharacterRules. - New methods
apply_status,update_statusanddelete_statusinFightRules. InflictStatusandClearStatusevents.- Added
StatusNotPresenttoWeaselError. - Mutable iterators over statistics and abilities.
- New event
EnvironmentRound. - New associated type
PotencyinFightRules. - New associated types
StatusandStatusesAlterationinCharacterRules. - Example to showcase status effects.
- Renamed
ActorRules'salterintoalter_abilitiesandCharacterRules'salterintoalter_statistics.
- Event's origin is not overridden anymore by the server if it is already set.
- Example for undo/redo of events.
- Added a
GenericErrorvariant toWeaselError. - Example to showcase passive abilities.
- The methods
activable,on_round_startandon_round_endnow takeBattleStateas argument. - The methods
allow_new_entity,activable,check_movenow return aWeaselResultinstead of a bool.
- Replaced most usages of
HashMapwithIndexMap.
- Doc tests for all events and few other structs.
Originateddecorator.- Introduced inanimate objects.
- New events
CreateObjectandRemoveObject. - Improved public API for
Battleand its submodules. - New associated type
ObjectIdinCharacterRules.
- It's now possible to manually set an event's origin.
- Order of rounds and initiative example.
- Methods to retrieve an iterator over actors or characters.
on_actor_removedmethod inRoundsRules.
AlterSpaceevent.- Example showing different ways to manipulate the space model.
SpaceRules'scheck_moveandmove_entitynow take as argument aPositionClaiminstead of anOption<&dyn Entity<R>>.SpaceRules'smove_entityis used also to move entities out of the space model.RemoveCreaturefrees the entity's position.RoundsRules's andon_startandon_endtake as arguments the entities and the space manager objects.
RemoveTeamevent.- An example showing how to use event sinks.
- Example to demonstrate how to create user defined events and metrics.
RegenerateStatisticsevent.RegenerateAbilitiesevent.EntityIdnow implementsCopy.
- First available version.