Commit Graph
71 Commits
Author SHA1 Message Date
Deukhoofd 9efe1b4e22 FFI for Pokemon class 2022-10-14 13:59:04 +02:00
Deukhoofd a840605bf7 FFI for dynamic libraries 2022-10-14 10:33:19 +02:00
Deukhoofd 41b40ef98e Rework of FFI, adding a value identifier, so we can keep knowledge of data even when data moves.
continuous-integration/drone/push Build is passing
2022-10-08 13:15:04 +02:00
Deukhoofd 84ddf0307d Fixes for FFI.
continuous-integration/drone/push Build is failing
continuous-integration/drone Build is passing
2022-10-01 15:40:15 +02:00
Deukhoofd 78fde698ca Adds species_drop FFI method. 2022-09-22 17:33:45 +02:00
Deukhoofd 1070753be7 Fixes for growth rate FFI 2022-09-20 18:04:19 +02:00
Deukhoofd 726e294f11 Initial work on FFI
continuous-integration/drone/push Build is passing
2022-09-18 18:02:13 +02:00
Deukhoofd 39497891e9 Re-add miri ignore flag to things that load WASM to prevent my build agents from dying.
continuous-integration/drone/push Build is passing
2022-09-17 12:11:09 +02:00
Deukhoofd a4fd112a07 A bunch of fixes and improvements
continuous-integration/drone/push Build is failing
2022-09-17 09:38:02 +02:00
Deukhoofd 7bcfd92d45 Registration fixes and improvements.
continuous-integration/drone/push Build is failing
2022-09-16 11:01:37 +02:00
Deukhoofd b1890681a1 A lot more work on WASM script execution
continuous-integration/drone/push Build is passing
2022-09-07 18:01:26 +02:00
Deukhoofd f9761f61da make ChoiceQueue::move_pokemon_choice_next return a bool for success
continuous-integration/drone/push Build is passing
2022-08-28 15:50:39 +02:00
Deukhoofd 4c06dc17e2 Implements ChoiceQueue::move_pokemon_choice_next, micro optimization for BattleRandom::EffectChance.
continuous-integration/drone/push Build is passing
2022-08-28 15:34:40 +02:00
Deukhoofd ba5992e925 Implements every script function
continuous-integration/drone/push Build is passing
2022-08-27 18:04:56 +02:00
Deukhoofd bd62c1ac62 Update to Wasmer 3.0 beta
continuous-integration/drone/push Build is passing
2022-08-27 14:14:58 +02:00
Deukhoofd c5fb81c179 Clippy fixes, additional WASM registration work
continuous-integration/drone/push Build is failing
2022-08-26 18:23:35 +02:00
Deukhoofd 1e43c07d43 Fixes unit tests
continuous-integration/drone/push Build is failing
2022-08-20 13:26:06 +02:00
Deukhoofd 55cc0906c9 Remove lifetime mess, replace a lot of code with Arc instead of borrows.
continuous-integration/drone/push Build is failing
This cleans up the codebase massively, and allows me to maintain some semblance of sanity.
2022-08-20 13:17:20 +02:00
Deukhoofd 2d4253e155 More work on WASM handling.
continuous-integration/drone/push Build is failing
2022-08-20 12:22:12 +02:00
Deukhoofd 703fd2c147 Major fixes for WebAssembly
continuous-integration/drone/push Build is passing
2022-07-18 15:36:03 +02:00
Deukhoofd 0961b199ff Cleans up the WASM environment handling.
Instead of passing the entire script resolver as a pointer to the WebAssemblyEnv, we now have split off the data actually relevant to the environment into it's own class, which is stored inside of an Arc.
2022-07-18 13:18:11 +02:00
Deukhoofd 9472c1cec2 Fixes memory issue
continuous-integration/drone/push Build is passing
2022-07-18 10:49:58 +02:00
Deukhoofd 7682704945 Initial work on wasm scripting backend 2022-07-18 10:16:47 +02:00
Deukhoofd 8eb1159d64 Fixes clippy warning.
continuous-integration/drone/push Build is passing
2022-07-01 18:49:09 +02:00
Deukhoofd cfabd7c790 Removes atomic dependency
continuous-integration/drone/push Build is passing
2022-07-01 18:44:09 +02:00
Deukhoofd 37f0cf8c35 Only use assert_approx_eq in dev 2022-07-01 18:27:56 +02:00
Deukhoofd 379e9d13ca Block missing documentation on private items.
continuous-integration/drone/push Build is passing
2022-07-01 18:20:50 +02:00
Deukhoofd 0d95dcf618 Fixes all clippy warnings
continuous-integration/drone/push Build is passing
2022-07-01 18:20:16 +02:00
Deukhoofd 717fcdefda Finished documenting all public interfaces.
continuous-integration/drone/push Build is passing
2022-07-01 17:52:00 +02:00
Deukhoofd 3c8d633be7 Changes for Statistic Sets, use a new way for Atomic traits.
continuous-integration/drone/push Build is passing
2022-07-01 17:30:36 +02:00
Deukhoofd 8f6ecdd4ad More documentation.
continuous-integration/drone/push Build is passing
2022-07-01 17:07:22 +02:00
Deukhoofd 03f5e3bb5a A lot more documentation, some initial work on the script resolver.
continuous-integration/drone/push Build is passing
2022-06-30 17:34:57 +02:00
Deukhoofd 25e2a0dda1 Documents the ScriptContainer.
continuous-integration/drone/push Build is passing
2022-06-27 19:21:50 +02:00
Deukhoofd cf4d74d898 More documentation for script hooks, reworks stat changes to only be changeable through a function that allows for script hooks, and events.
continuous-integration/drone/push Build is passing
2022-06-27 18:26:27 +02:00
Deukhoofd 1c9edd4d9c Adds more comments.
continuous-integration/drone/push Build is passing
2022-06-20 19:26:33 +02:00
Deukhoofd 314e9dbe1a Initial work on adding documentation, reorganises modules
continuous-integration/drone/push Build is passing
2022-06-19 21:34:08 +02:00
Deukhoofd 715f16e2b8 More work on switching battle data to interior mutability, instead of exterior mutability.
continuous-integration/drone/push Build is passing
2022-06-19 12:07:54 +02:00
Deukhoofd 2e19005a30 Even more work to create a sane way to replace scripts while they're active. This adds a way to await changes, to ensure they were actually made if we quickly need to use them.
continuous-integration/drone/push Build is passing
2022-06-18 19:44:13 +02:00
Deukhoofd dd535b30af Rework setting while active to be slightly less hacky.
continuous-integration/drone/push Build was killed
2022-06-18 18:41:23 +02:00
Deukhoofd a1051d059e We need to be able to remove and change scripts while they're currently being active.
continuous-integration/drone/push Build is failing
2022-06-18 18:08:25 +02:00
Deukhoofd c99b1bf8d9 Fixes a bunch of clippy warnings, adds clippy to CI
continuous-integration/drone/push Build is passing
2022-06-18 16:06:54 +02:00
Deukhoofd 5576bc8b80 More work on using interior mutability instead of exterior mutability for dynamic types (Battle, Pokemon, etc).
continuous-integration/drone/push Build is passing
2022-06-18 15:52:39 +02:00
Deukhoofd c45c7538bf More removal of RwLocks and replace it with Atomics, to prevent locks.
continuous-integration/drone/push Build is passing
2022-06-18 14:17:29 +02:00
Deukhoofd 59d7344729 Don't store the ChoiceQueue as an Arc<RwLock> to prevent locking issues.
continuous-integration/drone/push Build is passing
2022-06-18 10:41:42 +02:00
Deukhoofd 09c2533bf5 Don't store the TurnChoices as Arc<RwLock>>, to prevent locking issues.
continuous-integration/drone/push Build is passing
2022-06-18 09:49:17 +02:00
Deukhoofd 94403e2ca1 Disable Miri isolation in CI
continuous-integration/drone/push Build is passing
2022-06-17 20:42:58 +02:00
Deukhoofd 9e1f8aa50f Fixes for build
continuous-integration/drone/push Build is failing
2022-06-17 20:38:00 +02:00
Deukhoofd 696cab36a2 Remove nextest
continuous-integration/drone/push Build is failing
2022-06-17 19:58:26 +02:00
Deukhoofd b6ddd1ee13 First chunk of battling is now fully working, along with integration tests! 🎉
continuous-integration/drone/push Build is failing
2022-06-17 19:53:33 +02:00
Deukhoofd 59cc150643 Adds style checking to CI, remove debug code
continuous-integration/drone/push Build is passing
2022-06-16 19:05:54 +02:00
Deukhoofd bd646df225 Remove C interface for now pending a full rewrite, adds address sanitizer to CI.
continuous-integration/drone/push Build is passing
2022-06-16 18:25:25 +02:00
Deukhoofd ff541b0696 Loads more work on battling, initial stretch to run a turn done.
continuous-integration/drone/push Build is passing
2022-06-16 17:59:33 +02:00
Deukhoofd a33369afcc Some more functionality for battling, check if choice is valid, implement target resolvers.
continuous-integration/drone/push Build is passing
2022-06-14 19:11:24 +02:00
Deukhoofd 8746f03500 Adds a bunch of script functions, adds parameters to the existing ones.
continuous-integration/drone/push Build is passing
2022-06-13 21:25:30 +02:00
Deukhoofd ca75177354 Fixes build, style fixes.
continuous-integration/drone/push Build is passing
2022-06-12 19:09:07 +02:00
Deukhoofd 880ea55a67 Some work on script function parameters.
continuous-integration/drone/push Build is failing
2022-06-12 19:04:22 +02:00
Deukhoofd 00f66bbf59 Implements the script source methods on all current structs that implement it.
continuous-integration/drone/push Build is passing
2022-06-12 18:41:49 +02:00
Deukhoofd f0bc62ce19 Minor optimization in StringKey, making it from an Arc<String> into an Arc<str>
continuous-integration/drone/push Build is passing
2022-06-12 18:18:26 +02:00
Deukhoofd 55380f631f Rework StringKey to be able to re-use strings for a lower memory footprint.
continuous-integration/drone/push Build is passing
By caching strings we make sure we're using the exact same string everywhere, and creating 100 StringKeys of for example `charmander` will use the exact same memory footprint as creating only one.
2022-06-12 18:11:14 +02:00
Deukhoofd 2aadab5a42 A lot more work on handling scripts properly.
continuous-integration/drone/push Build is passing
2022-06-12 17:57:39 +02:00
Deukhoofd 56e1237c22 Adds more unit tests
continuous-integration/drone/push Build is passing
2022-06-11 20:51:37 +02:00
Deukhoofd 0c076dd711 Force colour in CI
continuous-integration/drone/push Build is passing
2022-06-11 19:27:47 +02:00
Deukhoofd 3c1fc4615f Adds CI support.
continuous-integration/drone/push Build is failing
continuous-integration/drone Build is passing
2022-06-11 18:56:17 +02:00
Deukhoofd 6e8f4dd4a5 A lot more work on a bunch of different parts of the system. 2022-06-11 17:22:46 +02:00
Deukhoofd 10e93949e4 Cleaner handling of tracking seen opponents.
Instead of keeping track of unique identifiers, keep track of weak pointers to the pokemon, so we can just try and upgrade them later.
2022-06-06 16:24:13 +02:00
Deukhoofd c27ea0ae1e Removes derive-getters, as it was incredibly annoying in IDEs, and couldn't figure out borrow lifetimes. 2022-06-06 14:43:41 +02:00
Deukhoofd ce33ec0649 Further massive amounts of work 2022-06-06 13:54:59 +02:00
Deukhoofd df662ce6b5 Change to RwLock over Mutex, so we can read without locking, changes to BattleRandom to allow for cloning, and prevent race conditions. 2022-06-04 12:40:32 +02:00
Deukhoofd 310bf857d2 Major amounts of progress 2022-06-03 16:35:18 +02:00
Deukhoofd c194c5d209 Initial work on outlining the dynamic side of the library. 2021-01-31 17:31:22 +01:00
Deukhoofd 2a08fb2645 Initial commit, implements most of the static_data side. 2021-01-30 22:29:59 +01:00