Commit Graph

252 Commits

Author SHA1 Message Date
Deukhoofd 27288563cd
Replace most collections with Arbutils collections for more safety.
continuous-integration/drone/push Build is passing Details
2020-03-22 19:21:40 +01:00
Deukhoofd 475392f9b6
Fixed issue where base stats of a variant got corrupted.
continuous-integration/drone/push Build is passing Details
2020-03-22 15:25:38 +01:00
Deukhoofd 899e432271
Added lots of security using asserts.
continuous-integration/drone/push Build is failing Details
2020-03-22 13:42:26 +01:00
Deukhoofd 970ca8ddd5
Fixed replacementattack not being complete.
continuous-integration/drone/push Build is passing Details
2020-03-22 10:30:45 +01:00
Deukhoofd a7b87ab4f8
Merge Core library into Library, as with its utility functionality merged into Arbutils, it's becoming less and less useful.
continuous-integration/drone/push Build is failing Details
2020-03-22 10:11:53 +01:00
Deukhoofd 5a976e4031
Added display text event hook. 2020-03-09 17:43:36 +01:00
Deukhoofd 06336c64cd
Added canRevive parameter to Heal function, added Faint event. 2020-03-09 16:29:41 +01:00
Deukhoofd ce2fc320bd
Tweaks for Battle and ScriptSet, added Battle C interface.
continuous-integration/drone/push Build is passing Details
2020-03-09 10:16:57 +01:00
Deukhoofd 1afb13cfd1
Added C Interface for BattleParty.
continuous-integration/drone/push Build is passing Details
2020-03-08 15:19:19 +01:00
Deukhoofd bbe99da0f0
Fixes and tweaks for CreatureParty, added C Interface.
continuous-integration/drone/push Build is passing Details
2020-03-08 13:53:58 +01:00
Deukhoofd 1d18066bcc
Made Battle take battleparties as a pointer instead of value for external use.
continuous-integration/drone/push Build is passing Details
2020-03-07 11:00:48 +01:00
Deukhoofd e990c13109
Added Creature C Interface, misc fixes and changes for Creature.
continuous-integration/drone/push Build is passing Details
2020-03-05 11:25:41 +01:00
Deukhoofd 0c1580ade6
Reworked retrieving talent, new method is cleaner and harder to misunderstand.
continuous-integration/drone/push Build was killed Details
2020-03-02 13:59:49 +01:00
Deukhoofd 5a05a2f4d3
Add ConstString to several other places where context isn't changed much during runtime.
continuous-integration/drone/push Build is passing Details
2020-02-28 19:23:24 +01:00
Deukhoofd 412e0a4d63
Implements ConstString in several core places in the library, improving performance.
continuous-integration/drone/push Build is passing Details
2020-02-27 18:23:23 +01:00
Deukhoofd 5e6572aca5
Move several classes from Core to Arbutils.
continuous-integration/drone/push Build is failing Details
2020-02-26 13:51:16 +01:00
Deukhoofd 3802587313
Added HasVolatileScript function to Creature and Battle.
continuous-integration/drone/push Build is failing Details
2020-02-23 16:17:57 +01:00
Deukhoofd 5f891cd4ed
Added Remove Volatile functions for battle and creatures.
continuous-integration/drone/push Build is passing Details
2020-02-23 11:11:47 +01:00
Deukhoofd 645ba95bbc
Performance improvements for battle and creature AddVolatileScript methods when passing a string as parameter.
continuous-integration/drone/push Build is passing Details
Instead of loading a script, then passing it to the ScriptSet class and checking if it already exists before invoking stack, we now check whether the ScriptSet has that script. If one already exists we just invoke stack on it, if not we continue to the process of creating a new script instance.
2020-02-22 16:01:01 +01:00
Deukhoofd 142889ad8a
Add functions to add volatile scripts to Creature.cpp.
continuous-integration/drone/push Build is passing Details
2020-02-22 15:53:51 +01:00
Deukhoofd d4fd7282f5
Move ScriptCategory enum outside of class scope of ScriptResolver.
continuous-integration/drone/push Build is passing Details
2020-02-20 13:05:15 +01:00
Deukhoofd f22c23d593
Make ScriptMacro a header instead of source file.
continuous-integration/drone/push Build is passing Details
2020-02-19 15:32:43 +01:00
Deukhoofd 5e29f50ea1
Mark SetHeldItem with item object as const ptr.
continuous-integration/drone/push Build is passing Details
2020-02-17 17:24:55 +01:00
Deukhoofd ce31309b2a
Functions to set Creature Held Item, and helper function to check whether Creature is holding a specific held item.
continuous-integration/drone/push Build is passing Details
2020-02-17 17:16:28 +01:00
Deukhoofd 75bce0e329
Add virtual destructor to CreatureParty.
continuous-integration/drone/push Build is passing Details
2020-02-17 15:52:59 +01:00
Deukhoofd 445f7eb3d5
Add virtual destructor to Battle. 2020-02-17 15:52:02 +01:00
Deukhoofd da90c3d59e
Reset active scripts on Creature when battle is set.
continuous-integration/drone/push Build is passing Details
2020-02-17 10:05:32 +01:00
Deukhoofd 17552c33ca
Only get active scripts from side if side exists.
continuous-integration/drone/push Build is passing Details
2020-02-17 09:57:15 +01:00
Deukhoofd 65f054bfab
Added functions for battle to manipulate volatile scripts.
continuous-integration/drone/push Build is passing Details
2020-02-16 17:44:41 +01:00
Deukhoofd 428483e73d
Make GetRandom in Battle class a pointer.
continuous-integration/drone/push Build is passing Details
2020-02-16 17:24:33 +01:00
Deukhoofd f3b5f9e8f9
Move reference to cpp file outside of header.
continuous-integration/drone/push Build is passing Details
2020-02-16 16:31:06 +01:00
Deukhoofd 54e366fc1b
Implements BattleRandom class with support for Effect Chance, and script hooks to modify this.
continuous-integration/drone/push Build is passing Details
2020-02-16 15:08:22 +01:00
Deukhoofd 579ee82f02
Pass ExecutingAttack for target as pointer instead of reference.
continuous-integration/drone/push Build is passing Details
2020-02-16 12:02:17 +01:00
Deukhoofd d6ea16b467
Implement basic library class that other libraries inherit from for performance.
continuous-integration/drone/push Build is passing Details
2020-02-15 18:51:21 +01:00
Deukhoofd 8d4860f553
Support for Heal function for Creatures.
continuous-integration/drone/push Build is passing Details
2020-02-13 14:48:09 +01:00
Deukhoofd e45a36d78e
Move Script ownership to script holder, added OnRemove script hook.
continuous-integration/drone/push Build is passing Details
2020-02-05 14:52:50 +01:00
Deukhoofd c4d0a73df6
Remove display script hook functions, replace them with easy to use interface on Creature class.
continuous-integration/drone/push Build is passing Details
2020-02-03 16:49:28 +01:00
Deukhoofd c3b573c7da
Initialize Battle pointers with nullptr in Create class.
continuous-integration/drone/push Build is passing Details
2020-02-02 14:39:57 +01:00
Deukhoofd fc5826edb1
Check whether a battle has been set when calling Damage function.
continuous-integration/drone/push Build is passing Details
2020-02-02 12:34:02 +01:00
Deukhoofd dba271681d
Change LibrarySettings to be a pointer instead of value, to allow for overriding in implementations.
continuous-integration/drone/push Build is passing Details
2020-02-01 13:30:51 +01:00
Deukhoofd 23c4e89c2d
Removed unused function from ExecutingAttack 2020-01-26 13:10:45 +01:00
Deukhoofd 1256d7d2e3
Add virtual modifiers to LearnedAttack.hpp
continuous-integration/drone/push Build is passing Details
2020-01-25 12:37:05 +01:00
Deukhoofd b02577554f
Remove GetProperty macro, as it wasn't that intuitive, and caused issues later.
continuous-integration/drone/push Build is passing Details
2020-01-12 17:04:42 +01:00
Deukhoofd 144d17d859
Fixed changing stat boost by negative actually increasing it.
continuous-integration/drone/push Build is passing Details
2020-01-05 14:57:17 +01:00
Deukhoofd 568232c7a5
Split off initialization of Creature into new function that's not called in the constructor.
continuous-integration/drone/push Build is passing Details
This has to do with specific implementations of stat calculator requiring an inherited type of the Creature class, and by calling it in the constructor casting to this inherited type will fail.
2020-01-05 13:43:47 +01:00
Deukhoofd 18236981ed
Fixed syntax error.
continuous-integration/drone/push Build is passing Details
2020-01-02 18:43:16 +01:00
Deukhoofd 1a246f57e8
Make Creature class variables mostly protected instead of private.
continuous-integration/drone/push Build is failing Details
2020-01-02 18:38:56 +01:00
Deukhoofd f0c3f84a29
Remove use of unused field
continuous-integration/drone/push Build is passing Details
2020-01-02 16:19:32 +01:00
Deukhoofd b3d07f5a0e
Removed unused field from CreateCreature.hpp
continuous-integration/drone/push Build is failing Details
2020-01-02 16:18:46 +01:00
Deukhoofd 243b3a768c
Remove unused fields in CreateCreature class
continuous-integration/drone/push Build is passing Details
2019-12-27 12:36:32 +01:00
Deukhoofd ae4d8f5e12
Removes some variables that are better handled in implementations.
continuous-integration/drone/push Build is failing Details
2019-12-27 12:19:38 +01:00
Deukhoofd 9e0d8d76fb
Change GenericTemplates.cpp to GenericTemplates.hpp, as to include it in header files.
continuous-integration/drone/push Build is passing Details
2019-12-26 12:27:54 +01:00
Deukhoofd 8e53ffb53d
Implements functions for getting display species and variant.
continuous-integration/drone/push Build is passing Details
2019-12-21 14:32:45 +01:00
Deukhoofd db002c784f
Resolve memory issue with Event Hooks.
continuous-integration/drone/push Build is passing Details
2019-12-15 12:27:56 +01:00
Deukhoofd 410487c86b
Initial support for Event Hooks.
continuous-integration/drone/push Build is failing Details
2019-12-15 12:24:08 +01:00
Deukhoofd 6ba708ad12
Implements running from battle.
continuous-integration/drone/push Build is passing Details
2019-12-15 11:52:10 +01:00
Deukhoofd 649de39571
Implements experience gain on opponent faint.
continuous-integration/drone/push Build is failing Details
2019-12-14 13:28:23 +01:00
Deukhoofd 3baed93597
Implements marking opponents as seen.
continuous-integration/drone/push Build is passing Details
2019-12-14 12:40:50 +01:00
Deukhoofd c25d7b865e
Implements creature switching as turn choice.
continuous-integration/drone/push Build is passing Details
2019-12-14 12:15:30 +01:00
Deukhoofd 2ee181bca7
Fixed _onBattleField field of Creature leading to cascading errors on release configuration.
continuous-integration/drone/push Build is passing Details
2019-12-12 11:14:50 +01:00
Deukhoofd dc9296194e
Fixed battle ending after any faint.
continuous-integration/drone/push Build is failing Details
2019-12-07 22:52:43 +01:00
Deukhoofd 7c642f7df5 Fixes for damage calculations always using a base power of 0. 2019-12-07 22:09:06 +01:00
Deukhoofd 262279bd2c Support for ending battles when only one side has creatures that are available for battle. 2019-12-07 21:56:29 +01:00
Deukhoofd 0483e635ea Reworks test suite, tweaks to Cmake config for Windows.
continuous-integration/drone/push Build is failing Details
2019-12-07 13:45:44 +01:00
Deukhoofd 8897f2282f Put the check for slots filled behind the check whether all choices are set.
This because this check can be more expensive, and should run as little times
as possible. In this case it should only run when all choices are set,
which should be in most cases once a turn.
2019-12-07 12:49:18 +01:00
Deukhoofd 57f16bc420
Better handling of filling empty slots.
continuous-integration/drone/push Build is passing Details
2019-12-07 12:13:12 +01:00
Deukhoofd 6f32d1245b
Implemented and fixed all code required to run at least a single turn.
continuous-integration/drone/push Build is passing Details
2019-12-05 12:56:41 +01:00
Deukhoofd 5d6ac316eb
Renamed Target class to CreatureIndex 2019-12-05 09:53:48 +01:00
Deukhoofd a8730d983f
Used ClangFormat style guide I'm happy with.
continuous-integration/drone/push Build is passing Details
2019-11-28 12:55:22 +01:00
Deukhoofd 3b685ae782
Added layout for CreatureParty 2019-11-28 12:16:03 +01:00
Deukhoofd aa356d74d7
Set data for executing attacks.
continuous-integration/drone/push Build is passing Details
2019-11-24 11:06:51 +01:00
Deukhoofd 49bd4813f6 Initialize Creature talent script when battle library is set, allow talent overriding
continuous-integration/drone/push Build is passing Details
2019-11-18 18:41:55 +01:00
Deukhoofd 86f8a1e37b
Adds talent script to Creature class
continuous-integration/drone/push Build is passing Details
2019-11-17 11:25:52 +01:00
Deukhoofd d8332f9e40 Another rework for scripthooks, for better performance.
continuous-integration/drone/push Build is passing Details
This new version caches pointers to the pointers to scripts, so that we can build the data once and then simply iterate over it whenever we want to run a hook.
2019-11-10 17:08:42 +01:00
Deukhoofd df3905fa49 Give Creature a virtual destructor.
continuous-integration/drone/push Build is failing Details
2019-11-10 14:37:06 +01:00
Deukhoofd 2a98f051c9 Give ExecutingAttack a virtual destructor.
continuous-integration/drone/push Build is failing Details
2019-11-10 14:33:26 +01:00
Deukhoofd 3488784409 Furter rework on script hooks, simplifying required logic. 2019-11-10 14:32:05 +01:00
Deukhoofd f72fd5f905 Make ExecutingAttack be a pointer, as we probably want to keep it around after it has finished executing.
continuous-integration/drone/push Build is failing Details
2019-11-09 13:18:45 +01:00
Deukhoofd 658672a246 More handling of script hooks. 2019-11-09 12:55:48 +01:00
Deukhoofd ee14efe22e Implemented better script handling. 2019-11-09 12:15:45 +01:00
Deukhoofd c3bfbb569e Initial setup for script hooks (likely to be revamped)
continuous-integration/drone/push Build is passing Details
2019-11-08 18:45:43 +01:00
Deukhoofd 19e1308f93 Improve performance for setting choices. 2019-11-06 18:08:21 +01:00
Deukhoofd beac87f981 Reset choices on side when executing turn. 2019-11-06 18:06:48 +01:00
Deukhoofd 5fc2bf564a Support turn queue return prematurely when a creature is recalled, and the ability to resume it later. 2019-11-06 18:04:00 +01:00
Deukhoofd efa994c88d Fixes dependency issue, lack of virtual destructor for DamageLibrary
continuous-integration/drone/push Build is failing Details
2019-11-05 16:20:47 +01:00
Deukhoofd 1848d7b617 Implementation of damage calculation.
continuous-integration/drone/push Build was killed Details
2019-11-05 14:31:54 +01:00
Deukhoofd db2a577a85 Further implementation of types. 2019-11-05 08:06:12 +01:00
Deukhoofd b4e08049ce
Handle executing moves.
continuous-integration/drone/push Build is passing Details
2019-11-03 13:47:50 +01:00
Deukhoofd fc675efdf5
More work on basic turn layout.
continuous-integration/drone/push Build is passing Details
2019-11-02 13:57:43 +01:00
Deukhoofd 65f814b006
Implemented better exceptions
continuous-integration/drone/push Build is failing Details
2019-10-31 13:26:56 +01:00
Deukhoofd 42c1623985
Fully handle turn ordering
continuous-integration/drone/push Build is passing Details
2019-10-31 12:31:31 +01:00
Deukhoofd 972af35ecf
Initial support for ordering choices and getting them ready for execution.
continuous-integration/drone/push Build is passing Details
2019-10-31 12:02:23 +01:00
Deukhoofd af611070c5
Fixed syntax error
continuous-integration/drone/push Build is passing Details
2019-10-29 11:30:52 +01:00
Deukhoofd 99315174a8
Initial support for setting battle choices.
continuous-integration/drone/push Build is failing Details
2019-10-29 11:19:25 +01:00
Deukhoofd 7d6de3557c Support learning moves with CreateCreature class
continuous-integration/drone/push Build is passing Details
2019-10-25 20:08:25 +02:00
Deukhoofd 9588236183
Remove creature classes from Library lib, merged with Battling lib.
continuous-integration/drone/push Build is passing Details
2019-10-24 13:37:55 +02:00
Deukhoofd cdaa056810 Initial support for learned moves
continuous-integration/drone/push Build is failing Details
2019-10-23 18:57:50 +02:00
Deukhoofd 1e4f422117 Add changing level API to BattleCreature 2019-10-23 18:51:36 +02:00
Deukhoofd cd21e6c685 Implement stat boosting 2019-10-23 18:41:45 +02:00
Deukhoofd 3e9d030dc4 Automatically recalculate boosted stat after recalculating flat stat 2019-10-23 18:28:58 +02:00
Deukhoofd 65cf190367 Split off battle creature stats into boosted and non-boosted 2019-10-23 18:27:31 +02:00
Deukhoofd d580d81163
Initial work on battling
continuous-integration/drone/push Build is failing Details
2019-10-17 14:33:25 +02:00