1
0
mirror of https://github.com/vcmi/vcmi.git synced 2024-12-22 22:13:35 +02:00
Commit Graph

436 Commits

Author SHA1 Message Date
AlexVinS
2add0e443e [Spells] Added "summonByHealth" option to Summon effect
* with summonByHealth on, effect power (levelPower * SP) treated as HP
* default behavior (effect power = amount) not changed
* tests included
2018-02-20 08:08:34 +03:00
AlexVinS
c94daf6faa Fixed https://bugs.vcmi.eu/view.php?id=2864 2018-02-10 07:31:02 +03:00
AlexVinS
10dd7e8a43 Cleanup 2018-02-10 04:03:17 +03:00
AlexVinS
8220053864 Cleanup 2018-02-09 20:52:56 +03:00
AlexVinS
0b70baa95e Spells configuration version 2 (effect-based)
* Indirect spell effects loading
* Json serializer improvements
* spell->canBeCastAt do not allow useless cast for any spell
* Added proxy caster class for spell-created obstacles
* Handle damage from spell-created obstacles inside mechanics
* Experimental GameState integration/regression tests
* Ignore mod settings and load only "vcmi" mod when running tests
* fixed https://bugs.vcmi.eu/view.php?id=2765 (with tests)
* Huge improvements of BattleAI regarding spell casts
* AI can cast almost any combat spell except TELEPORT, SACRIFICE and obstacle placement spells.
* Possible fix for https://bugs.vcmi.eu/view.php?id=1811
* CStack factored out to several classes
* [Battle] Allowed RETURN_AFTER_STRIKE effect on server side to be optional
* [Battle] Allowed BattleAction have multiple destinations
* [Spells] Converted limit|immunity to target condition
* [Spells] Use partial configuration reload for backward compatibility handling
* [Tests] Started tests for CUnitState
* Partial fixes of fire shield effect
* [Battle] Do HP calculations in 64 bits
* [BattleAI] Use threading for spell cast evaluation
* [BattleAI] Made AI be able to evaluate modified turn order (on hypothetical battle state)
* Implemented https://bugs.vcmi.eu/view.php?id=2811
* plug rare freeze when hypnotized unit shots vertically
* Correctly apply ONLY_MELEE_FIGHT / ONLY_DISTANCE_FIGHT for unit damage, attack & defense
* [BattleAI] Try to not waste a cast if battle is actually won already
* Extended JsonSerializeFormat API
* fixed https://bugs.vcmi.eu/view.php?id=2847
* Any unit effect can be now chained (not only damage like Chain Lightning)
** only damage effect for now actually uses "chainFactor"
* Possible quick fix for https://bugs.vcmi.eu/view.php?id=2860
2018-02-08 11:37:21 +03:00
DjWarmonger
c2a0b13332
Merge pull request #371 from dydzio0614/NewAbilities
Tested and approved. Congrats!
2017-12-29 14:19:05 +01:00
Michał Kalinowski
26a222ac62 Change JsonType to enum class (#393)
Change enum JsonType to enum class JsonType
2017-11-27 00:18:18 +03:00
AlexVinS
270e1b75ce Support for creature 2-hex attack, alternate death and cast animation types
* margin option .json animation
* Use ranged attack animation for spell cast if there is no cast animation, display cast animation only on active casting.
2017-09-12 19:51:54 +03:00
Dydzio
14c07afd3c Merge branch 'develop' into NewAbilities 2017-09-09 21:04:40 +02:00
Dydzio
7cbd9acd67 Add BLOCK_MAGIC_BELOW bonus 2017-09-06 00:03:32 +02:00
Henning Koehler
03b7da93e2 use logMod for all mod-related logging 2017-08-31 09:23:19 +12:00
FeniksFire
f331386b6f Dimension door movement points fix
When hero with one move point make dimension doors then he can have on
graphics full move points. Caused by substraction that make unsigned
variable < 0.
2017-08-18 21:35:48 +02:00
AlexVinS
15138c23de Finished conversion to new logging API
* removed logger streams
* (float3|int3)::operator() -> (float3|int3)::toString(), it was too ugly and confusing.
2017-08-11 23:06:27 +03:00
AlexVinS
3de0fa37f8 Possible fix for https://bugs.vcmi.eu/view.php?id=2759 2017-08-01 17:00:26 +03:00
ArseniyShestakov
9d9c026c85 Code style: serialize everything on own lines for easier debugging (#357) 2017-07-31 16:35:42 +03:00
Piotr
069f295165 Do not summon boat from another boat, fixes #2294 (#353) 2017-07-22 23:47:29 +03:00
AlexVinS
21c0c95049 tweak 2017-07-16 01:53:13 +03:00
AlexVinS
f1a4831813 [Spells] Get rid of SpellTargetingContext. 2017-07-16 01:43:50 +03:00
AlexVinS
7374689301 Fixed https://bugs.vcmi.eu/view.php?id=2715 2017-07-16 00:02:55 +03:00
ArseniyShestakov
a4c0ad94b1 Code style: remove default value hints in definitions (#342)
Some are outdated and this is something IDE are useful for.
2017-07-15 14:08:20 +03:00
ArseniyShestakov
ea0ceb1805 Merge pull request #323 from vcmi/CStackTweaks
CStack tweaks
2017-07-15 00:42:08 +03:00
Arseniy Shestakov
f1e5797834 Code style: move or add licensing information on top of every file 2017-07-14 01:26:03 +03:00
Arseniy Shestakov
dbcd79c48a Code cleanup: remove double and unneded semicolons 2017-07-12 22:01:10 +03:00
AlexVinS
ea3502ed60 Removed CStack::totalHealth() 2017-07-09 20:23:51 +03:00
AlexVinS
44fc0cb57b Broken CHealth dependency on CStack 2017-07-09 19:49:52 +03:00
AlexVinS
f0713c1d36 Better handling of HYPNOTISED stacks in case of spellcasting 2017-07-09 16:55:10 +03:00
AlexVinS
4f14f22d3a Unified CStack ammo, casts and counterattacks
* it is possible now to add casts and shoots OTF (f.e. with spell bonus)

Centralized stack 'ammo' loading from bonus system.
* introduced small proxy class for local bonus cache
(no need to use global cache if particular selector used on node only in one place)
* handle killing resurrected creatures
* use IBonusBearer::MaxHealth() where possible
* Fixed https://bugs.vcmi.eu/view.php?id=2486
* Possible fix for 0 HP after resurrection.
* Hack-fixed https://bugs.vcmi.eu/view.php?id=2584
* Unified CStack health API
* Use CHealth for CStack count and health points
* increased SERIALIZATION_VERSION
2017-07-08 20:29:59 +03:00
ArseniyShestakov
b670bcb46f Merge pull request #313 from vcmi/spellCastQuery
Spell cast query
2017-07-04 02:43:22 +03:00
AlexVinS
dbaf3cb023 Cleanup & formatting 2017-07-04 01:32:40 +03:00
FeniksFire
8577445b10 Simple fix: http://bugs.vcmi.eu/view.php?id=2366 2017-07-03 22:41:16 +03:00
AlexVinS
a65befaa08 Moved town portal logic to mechanics class 2017-07-03 21:43:04 +03:00
AlexVinS
3d1a84875e Queries refactoring
* Moved SUMMON_BOAT special case to mechanics
* Partially moved Town portal logic to mechanics class
* Added generic query reply to CCallback
* Redesigned Queries so that base API do not depends on CGameHandler
* Got rid of CGameHandler::castSpellRequest
* Removed CGameHandler::castSpell
* Added new Query type for town portal dialog (not used yet)
2017-07-03 21:43:04 +03:00
AlexVinS
4f8c7bd4bb CStack refactoring
* removed all occurrences of attackerOwned
* Use BattleSide enum
* more tweaks
2017-07-01 19:17:08 +03:00
FeniksFire
4113bdab01 Moving some files from lib to the battle subdirectory. 2017-06-26 15:26:08 +02:00
FeniksFire
221386a39d Refactoring.
Dividing CBattleCallback into smaller files with classes.
2017-06-24 15:51:07 +02:00
AlexVinS
0f5202689e Cumulative spell effects
* Added experimental support for cumulative effects for ENCHANTED bonus
* Updated and fixed SPECIAL_PECULIAR_ENCHANT processing
* Initial implementation of cumulative spell effects.
* Scheme for new spell feature - cumulative bonus.
2017-06-13 21:50:50 +03:00
AlexVinS
195e979a18 get rid of CBattleInfoCallback::battleCanCastThisSpell 2017-06-05 23:46:55 +03:00
AlexVinS
6c308956f9 get rid of CBattleInfoCallback::battleCanCastThisSpellHere 2017-06-05 23:25:48 +03:00
AlexVinS
1d1519db5c ENCHANTER_CASTING trigger tweak 2017-06-05 21:41:27 +03:00
AlexVinS
66cfc2fef9 CSpell::canBeCast tweaks 2017-06-05 21:30:25 +03:00
FeniksFire
039e3842fc Aesthetic changes in BattleHex (#303) 2017-05-29 10:33:34 +03:00
AlexVinS
a85b4cf2a5 * WIP on event condition format
* Hero portrait serialization
* Fix town spells serialization

* Added support for float exponential part in Json
* Added support for int64 in Json
* Added basic Hero definitions serialization
* Added rumors serialization
* Advanced player info serialization.
* Added Disposed heroes serialization, (!) not covered with tests yet
* Added Local event serialization
* Added Pandoras box serialization
* Added Seer hut reward serialization
* Added CQuest serialization
* Added API for map object instance names serialization.
* Added random dwelling options serialization
* Advanced town options serialization
* Advanced hero options serialization
* More map format tests
* A lot of fixes, cleanup and refactoring
2017-05-27 00:23:19 +03:00
AlexVinS
3c893a6bec Few spell-related tweaks 2017-03-18 14:08:02 +03:00
FeniksFire
3de891b4b4 Moving/dividing classes from BattleState to separate files. 2017-03-17 16:48:44 +01:00
AlexVinS
0b3c1c7185 Fixed http://bugs.vcmi.eu/view.php?id=2639 2017-01-26 10:44:30 +03:00
AlexVinS
60bd54c9b3 Changed playerToSide return type to signed 2016-11-28 03:33:39 +03:00
AlexVinS
609c6f81bd Fixed a few CWE-457 2016-11-27 22:37:41 +03:00
AlexVinS
931656f24a possible fix for http://bugs.vcmi.eu/view.php?id=2612 2016-11-18 14:27:20 +03:00
AlexVinS
dad0569bc7 Relaxed cast requirements for Quicksand 2016-10-31 15:38:53 +03:00
AlexVinS
bc2f0ba6f1 fixed spell school ordering http://bugs.vcmi.eu/view.php?id=91 2016-10-17 03:33:29 +03:00
AlexVinS
5fa9d64d78 Do not allow cast if it affects only "wrong" targets 2016-10-02 16:46:04 +03:00
AlexVinS
cd5c0b3297 Style tweaks. 2016-10-02 15:22:55 +03:00
AlexVinS
c5440a1c6c Fixed http://bugs.vcmi.eu/view.php?id=2541 2016-10-02 01:32:28 +03:00
AlexVinS
f124db9f61 Get rid of Bonus::sourceSpell()
* now bonus API looks more or less clean
2016-10-01 14:47:21 +03:00
AlexVinS
c2a6c268c0 Cleanup terrain overlay bonuses, fixed CURSED_GROUND 2016-10-01 14:10:09 +03:00
AlexVinS
f6bfba0ced Unified Dispell-related bonus selectors 2016-10-01 10:31:59 +03:00
AlexVinS
96c17505ae get rid of IBonusBearer::getSpellBonuses & Selector::anyRange 2016-10-01 09:07:18 +03:00
AlexVinS
902117d812 Get rid of IBonusBearer::getBonusesCount it had only one usage 2016-10-01 06:51:12 +03:00
AlexVinS
2f7e10a06f Use range limit selector when modifying bonus lists and checking for spell bonuses
* fixes http://bugs.vcmi.eu/view.php?id=2532
2016-09-30 17:12:28 +03:00
AlexVinS
8aa31f4073 Fixed http://bugs.vcmi.eu/view.php?id=2529 2016-09-30 01:54:40 +03:00
AlexVinS
72461c5c2e Fixed http://bugs.vcmi.eu/view.php?id=2268 2016-09-29 23:14:22 +03:00
AlexVinS
688dc4c189 tweaks 2016-09-29 19:37:59 +03:00
AlexVinS
d195bfb62d Possibly fixed http://bugs.vcmi.eu/view.php?id=2291 2016-09-29 18:55:07 +03:00
AlexVinS
fed26e1ac9 Merge remote-tracking branch 'remotes/vmarkovtsev/BonusList-shared_ptr' into develop
# Conflicts:
#	lib/spells/CDefaultSpellMechanics.cpp
2016-09-29 17:12:05 +03:00
AlexVinS
7ce33bc07a Dispell fixes 2016-09-29 16:50:33 +03:00
Vadim Markovtsev
2c1dddde33 Fix memory problems with BonusList
Bonus * -> std::shared_ptr<Bonus>

This cures the following problems:

1) Memory corruption at exit. Some Bonus-es were deleted twice (mods?).
2) Memory leaks. Some Bonuses were not deleted.
3) Reduce the number of "Orphaned child" messages.

Valgrind reports 0 leaked memory now and no invalid reads/writes.
2016-09-29 15:08:00 +02:00
AlexVinS
e91a6d45e8 Probably fixed http://bugs.vcmi.eu/view.php?id=2523 2016-09-29 10:45:22 +03:00
AlexVinS
30aa379a9d Fixed http://bugs.vcmi.eu/view.php?id=2521
* show icons at visitable position
* do not duplicate visible objects icons
2016-09-28 07:58:15 +03:00
AlexVinS
a03419e7d9 Fixed http://bugs.vcmi.eu/view.php?id=2269 2016-09-24 11:25:29 +03:00
AlexVinS
7874dffa7d fixed http://bugs.vcmi.eu/view.php?id=2282 2016-09-24 10:06:24 +03:00
AlexVinS
849e3fc04e Fixed http://bugs.vcmi.eu/view.php?id=2506 2016-09-24 09:27:58 +03:00
AlexVinS
7618e294c2 More fixes to not place obstacles on wall parts 2016-09-24 04:55:48 +03:00
AlexVinS
cffc4b2ab5 fixed patch obstacle placement inside walls 2016-09-23 20:27:55 +03:00
AlexVinS
bac0b026e5 Do not place obstacles on wall parts 2016-09-23 13:14:12 +03:00
AlexVinS
374e30c972 Added a few safety checks 2016-09-18 16:30:03 +03:00
AlexVinS
73c7b49eb7 Hide effectValue calculation inside BattleSpellCastParameters 2016-09-18 15:27:22 +03:00
AlexVinS
1fd87ecc4a Simplified offensive spell damage calculation 2016-09-18 14:54:17 +03:00
AlexVinS
53fbf88316 Spell cast logging refactored. 2016-09-17 23:04:23 +03:00
AlexVinS
505e53c17d Merge remote-tracking branch 'remotes/origin/develop' into SpellsRefactoring8
# Conflicts:
#	client/battle/CBattleInterface.cpp
#	lib/spells/BattleSpellMechanics.cpp
2016-09-12 10:13:40 +03:00
AlexVinS
3fa62beb6d Do not allow to cast Cure if there is nothing to cure. 2016-09-11 13:48:14 +03:00
Arseniy Shestakov
fe6c0cf89b Use RandomGeneratorUtil::randomShuffle for reproducible gameplay 2016-09-11 00:10:52 +03:00
AlexVinS
5e0a9d7966 hackfix for commander spells 2016-09-10 22:41:50 +03:00
AlexVinS
4a9978c642 Disabled massive spells fore creatures as they are not fully supported yet.
* (WoG) commanders now cast spells properly.
2016-09-10 21:07:36 +03:00
AlexVinS
62abde6c46 Prepare battle log for spell-cast on server side. 2016-09-10 18:23:55 +03:00
AlexVinS
f8767a6380 cleanup 2016-09-10 09:37:18 +03:00
AlexVinS
f39e619304 More tweaks 2016-09-06 13:51:53 +03:00
AlexVinS
1ce4675df6 Tweaks 2016-09-06 13:33:11 +03:00
AlexVinS
838717dfc1 Magic mirror unified again with normal cast. 2016-09-06 13:05:33 +03:00
AlexVinS
686cd00c68 Cleanup. 2016-09-06 12:26:01 +03:00
AlexVinS
cc4362211c Extracted MagicMirror handling 2016-09-06 11:03:36 +03:00
AlexVinS
f3d9e718bf Handle AcidBreathDamage immunity in standard way. 2016-09-06 10:52:54 +03:00
AlexVinS
0241c6e843 Improved spell range calculation.
* should now support smart custom range AOE spells
2016-09-06 08:56:31 +03:00
AlexVinS
1e32c71e47 Make sure that there is no unwanted stack affect by spells. 2016-09-06 08:20:17 +03:00
AlexVinS
39c2c6cde7 Ensure no immunity to AcidBreathDamage 2016-09-06 07:16:32 +03:00
AlexVinS
f1d0bede11 Moved all affected stacks calculations to mechanics 2016-09-06 07:05:55 +03:00
AlexVinS
18fc94d709 WIP on SpellCastContext 2016-09-06 06:40:23 +03:00
AlexVinS
9ee954edcc WIP on SpellCastContext 2016-09-06 05:11:32 +03:00
AlexVinS
1d840a33a5 Started SpellCastContext rework 2016-09-06 04:11:30 +03:00
AlexVinS
82ac035340 OO design for obstacle spells. 2016-09-05 13:34:48 +03:00
AlexVinS
f3b7fe947c Reworked spell target existence check.
* related to 2269
2016-09-05 11:36:25 +03:00
AlexVinS
a23144b361 Extracted adventure spell mechanics to distinct class hierarchy. 2016-09-04 08:19:28 +03:00
AlexVinS
eb128a0207 More style tweaks 2016-09-04 05:15:37 +03:00
AlexVinS
c0cf5d6956 Style tweaks 2016-09-04 04:59:30 +03:00
AlexVinS
1e7e7a7006 Fixed http://bugs.vcmi.eu/view.php?id=2419 2016-08-30 12:20:17 +03:00
AlexVinS
5d329b40a4 Factored spell action selection for location target. 2016-08-30 12:20:15 +03:00
AlexVinS
d1579ea620 Simplify spell action selection for creature target. 2016-08-30 12:20:13 +03:00
AlexVinS
b09f150e7b Factored out battleCanCastThisSpellHere 2016-08-30 12:20:11 +03:00
AlexVinS
0d5eaa1183 Proper fix for http://bugs.vcmi.eu/view.php?id=2422 2016-08-30 12:20:09 +03:00
AlexVinS
b634482bb0 Fix http://bugs.vcmi.eu/view.php?id=2422 2016-08-30 12:20:07 +03:00
AlexVinS
22d885af22 Fixed http://bugs.vcmi.eu/view.php?id=2302 2016-08-30 12:20:05 +03:00
AlexVinS
be67faad90 Drafts 2016-08-30 12:20:03 +03:00
AlexVinS
f053754653 Advance REMOVE_OBSTACLE mechanics 2016-08-30 12:20:01 +03:00
AlexVinS
40e6e0c143 Move REMOVE_OBSTACLE-related code from callback to where it should be. 2016-08-30 12:19:59 +03:00
AlexVinS
750c114648 Drafts 2016-08-30 12:19:57 +03:00
AlexVinS
d4a35c6839 Simplify getAffectedStacks arguments. casterColor not needed anymore. 2016-08-30 12:14:08 +03:00
AlexVinS
f6715ad787 Use ISpellCaster in CSpell::canBeCast.
* -2 todo notes
2016-08-30 12:12:46 +03:00
AlexVinS
ef05a56e49 cleanup 2016-08-30 05:13:45 +03:00
Alexander Shishkin
5e5ce0bb09 Merge pull request #203 from vcmi/logFormat
boost::format support for CLogger
2016-08-29 17:32:44 +04:00
Arseniy Shestakov
452e28d183 Remove some useless includes found by cppclean
This of course was tested and shouldn't break anything
2016-08-26 04:42:16 +03:00
AlexVinS
74a82c4c9d Moved boost:format log proxy to CLoggerBase 2016-08-13 16:57:18 +03:00
AlexVinS
599f4cfb55 extracted base logger class to vstd 2016-08-13 16:57:16 +03:00
AlexVinS
d6178d0bb5 Implemented boost::format based log proxy. 2016-08-13 16:57:13 +03:00
ArseniyShestakov
7886e8986e Merge pull request #197 from vcmi/issue/2304_2418
Issues/2304/2418/2293
2016-03-01 15:20:59 +03:00
AlexVinS
3873e5047e Attempt to fix 2293 2016-03-01 13:24:46 +03:00
AlexVinS
277211e569 Fix summoning block by clones. 2016-03-01 04:16:51 +03:00
AlexVinS
5df8d1cbd0 Update low level battle stacks accessor for ghost selection support. 2016-02-28 05:10:20 +03:00
AlexVinS
47b619a543 Centralize GHOST state handling 2016-02-28 01:35:23 +03:00
AlexVinS
d2a5e64542 Remove clone of killed or removed creature. Treat summoned creature as clone when killed. 2016-02-27 18:39:37 +03:00
AlexVinS
53b5587c2e Advance map header serialization 2016-02-21 21:21:22 +03:00
AlexVinS
150fcc9422 Merge remote-tracking branch 'remotes/origin/develop' into feature/VCMIMapFormat1 2016-02-15 13:39:00 +03:00
AlexVinS
4d9058e412 Whitespace cleanup. (No code changes.) 2016-02-15 13:34:37 +03:00
AlexVinS
7106c5d1af Fix loading of spell identifier 2016-02-13 19:41:28 +03:00
AlexVinS
6e205a58b4 Merge remote-tracking branch 'remotes/origin/develop' into feature/VCMIMapFormat1
Conflicts:
	lib/VCMI_lib.cbp
	lib/filesystem/CZipLoader.cpp
	lib/filesystem/CZipLoader.h
	lib/mapObjects/CGTownInstance.cpp
2016-02-04 10:27:51 +03:00
Vadim Markovtsev
bdd87be10d Try to fix http://bugs.vcmi.eu/view.php?id=2362 2016-02-02 11:46:33 +03:00
Vadim Markovtsev
3926920103 Rename radious -> radius
There is no such English word, "radious"
Some files get new lines in the end - BSD sed bug + best practices
2016-01-31 18:01:58 +03:00
AlexVinS
37d0dad70a Merge branch 'develop' into feature/VCMIMapFormat1
Conflicts:
	lib/CArtHandler.cpp
2016-01-01 20:28:52 +03:00
Arseniy Shestakov
9fd1cff090 Refactoring: always use std prefix for shared_ptr, unique_ptr and make_shared
Long time ago it's was used without prefix to make future switch from boost to std version easier.
I discusses this with Ivan and decide to drop these using from Global.h now.

This change wouldn't break anything because there was already code with prefix for each of three cases.
2015-12-29 05:43:33 +03:00
ArseniyShestakov
48be566050 Dimension Door: fix movement points cost for expert level 2015-12-21 18:46:52 +03:00
ArseniyShestakov
e872b400b7 Comments save format backward compatability code as Ivan suggested
Also we should always handle RumorState::TYPE_NONE in getTavernRumor properly anyway.
2015-12-06 02:51:54 +03:00
AlexVinS
6f203fb7e2 Save string identifiers for all game objects 2015-12-05 12:36:39 +03:00
Ivan Savenko
faa7cbff18 Fixed gcc/clang warnings 2015-12-04 01:17:43 +02:00
Ivan Savenko
7b5a7f43ad Removed includes of CGameState from headers 2015-12-02 21:39:53 +02:00
Ivan Savenko
c3ce4b25df Removed all #include's of CMap.h from headers.
To all - please, avoid #include's in headers as much as possible
This kills incremental build compile times
2015-12-02 21:05:10 +02:00
AlexVinS
eeb100d6a4 More comments about dispell special cases. 2015-10-13 07:11:49 +03:00
AlexVinS
02c15085be Remove (aready disabled in prev. commit) active stack change in sacrifice mechanics
* stack removing is evil, but changing active stack by spells is more evil ...
2015-10-06 03:59:05 +03:00
AlexVinS
f99bf099ca Made player interface tolerant to active stack removal. 2015-10-06 03:46:35 +03:00
AlexVinS
4e60b4cf53 Fixed 0002280 2015-10-06 01:26:50 +03:00
AlexVinS
6cf220b882 Partial fix for 2272, there are more active stack sacrifice problems. 2015-10-05 20:33:05 +03:00
AlexVinS
b07d272c2a Added new BattleSpellCastParameters support to SACRIFICE spell. 2015-10-01 02:36:00 +03:00
AlexVinS
939a9180e2 Added new BattleSpellCastParameters support to TELEPORT spell. 2015-09-30 22:38:50 +03:00
AlexVinS
57e5b768e8 Allow multiple destinations in BattleSpellCastParameters 2015-09-30 00:31:50 +03:00
AlexVinS
70d9be8447 Use ISpellCaster in battle callback 2015-09-29 17:26:52 +03:00
AlexVinS
75c2566410 "const" tweak 2015-09-29 17:26:51 +03:00
AlexVinS
36e154d9b9 Use ISpellCaster in getAffectedStacks 2015-09-29 17:26:50 +03:00
AlexVinS
947f6089d5 Use ISpellCaster in isImmuneByStack 2015-09-29 17:26:49 +03:00
AlexVinS
a4d4851d80 Fix typo: casted->cast 2015-09-29 17:26:48 +03:00
AlexVinS
d9cbe487c7 remove useless function CSpell::getTargetInfo 2015-09-29 17:26:47 +03:00
AlexVinS
5f41ec912f fix sphereOfPermanence 2015-09-29 17:26:45 +03:00
AlexVinS
3d7435c520 Introduced absolute specific spell immunity. 2015-09-29 17:26:44 +03:00
AlexVinS
253b850ac3 Partial fix for 1791 2015-09-29 17:26:43 +03:00
AlexVinS
a44c606277 Use callback methods 2015-09-29 17:26:42 +03:00
AlexVinS
660203b436 Tweak BattleSpellCastParameters 2015-09-29 17:26:41 +03:00
AlexVinS
2b434111bf More hero|creature casting unification 2015-09-29 17:26:40 +03:00
AlexVinS
e454649886 Use BattleSpellCastParameters for spell parameters override 2015-09-29 17:26:39 +03:00
AlexVinS
10318a3da3 Intoduce PASSIVE_CASTING mode for opening battle spells
* now at least one "caster" object is present
2015-09-29 17:26:39 +03:00
AlexVinS
e552e37cf7 Factored out CDefaultSpellMechanics::battleCast
(-) still huge
2015-09-29 17:26:36 +03:00
AlexVinS
baba3a46e1 Centralize creature spell bonuses handling
* unified heal and damage calculation
* apply SPELL_DAMAGE_REDUCTION, MORE_DAMAGE_FROM_SPELL for Fairy dragon
2015-09-29 17:26:35 +03:00
AlexVinS
67bd698019 Added some debug logging 2015-09-29 17:26:34 +03:00
AlexVinS
873979a300 The only usage of secHero cast parameter is mana channeling - better to get it OTF 2015-09-29 17:26:33 +03:00
AlexVinS
46f99db8d7 Hide some spell mechnaics details 2015-09-29 17:26:32 +03:00
AlexVinS
9ed9075afc Introduce calculateHealedHP again, now in better place. 2015-09-29 17:26:29 +03:00
AlexVinS
0929e009db Remove suspicios code in display damage calculation 2015-09-29 17:26:28 +03:00
AlexVinS
16f0714474 More usage of OOP in HealingSpellMechanics::applyBattleEffects 2015-09-29 17:26:28 +03:00
AlexVinS
0fecb40039 Extract HealingSpellMechanics
* healing effects are too specific to be allowed for any spell
* mixing heal with direct damage does not make sence
* mixing heal with timed effect can be easy allowed if needed
2015-09-29 17:26:27 +03:00
AlexVinS
c050fde3f9 Get rid of DefaultSpellMechanics::calculateHealedHP 2015-09-29 17:26:26 +03:00
AlexVinS
a35b8a46d3 Comment out wrong code 2015-09-29 17:26:25 +03:00
AlexVinS
f66c29ea3b fix comments 2015-09-29 17:26:24 +03:00
AlexVinS
05e52993fd Simplified healed HP calculation 2015-09-29 17:26:23 +03:00
AlexVinS
9e0fd70208 Move isCastableBy logic back to CGHeroInstance - it is Hero-specific
* When and if canCastThisSpell will also be implmented for creatures common part may be moved to CSpell class.
2015-09-16 04:39:44 +03:00
AlexVinS
dc8b05fbd8 Give banned spells only by SPELL bonus 2015-09-16 04:16:46 +03:00
AlexVinS
080244f30e MAXED_SPELL bonus should only affect spell effects
* fixes 2146
2015-09-15 06:00:24 +03:00
AlexVinS
27f2dfc576 Quick fix for SACRIFICE immunity check 2015-09-15 04:31:43 +03:00
AlexVinS
bd70f672c3 fix 1814 2015-09-15 03:08:45 +03:00
AlexVinS
3ed3f1fa13 Use json configuration for special spell effect duration 2015-09-14 13:22:23 +03:00
AlexVinS
3c053e5dd5 Quick fix for 2245 & 2238 2015-09-14 12:35:58 +03:00
AlexVinS
329c1d6b94 Calculate magic mirror effect at same time as magic resistance. 2015-09-14 11:52:56 +03:00
AlexVinS
caf8ae62cc Allow custom effect animation on any stack during spell cast. 2015-09-14 06:21:49 +03:00
AlexVinS
0f0e67dbe3 Do not include resisted stacks in affected 2015-09-14 05:45:05 +03:00
AlexVinS
843a2a39bd Use general dispell algorithm for CURE 2015-09-13 01:06:07 +03:00
AlexVinS
32337102ac Fix a typo 2015-09-13 00:54:39 +03:00
AlexVinS
3029b1a432 Fix initialization of CSpell::AnimationItem 2015-09-12 23:52:04 +03:00
AlexVinS
7776d7bbf7 rename BattleSpellCastParameters::caster 2015-09-12 21:09:54 +03:00
AlexVinS
98ea8bf314 Introduce dummy spell animation/ animation pause configuration
* save format changed with backward compatibility, UNTESTED
2015-09-12 21:09:52 +03:00
AlexVinS
832d69ec11 Hide battle log algorithm in spell classes.
* not finished, to be moved to json of splitted between mechanics classes
2015-09-12 21:09:51 +03:00
AlexVinS
fb5903d610 Initial experiments on hero & creature casting unification 2015-09-12 21:09:44 +03:00
AlexVinS
b347fe5457 fix mantiss 0002147 2015-04-13 16:48:46 +03:00
AlexVinS
11b3426bea Fix 0001331 2015-04-13 06:12:23 +03:00
AlexVinS
0134266fa1 Extract general dispell logic 2015-04-11 16:27:14 +03:00
AlexVinS
b8b9abcc08 Fix 0002169 2015-04-11 15:53:32 +03:00
AlexVinS
736cc14814 Quick fix for mantiss 0001875
* hardcoded permanent effect for animateDead
2015-04-11 15:02:42 +03:00
AlexVinS
41f1d3f21f Quick fix for major spell configuration bug
* clean fix requires save format change
2015-04-11 13:14:26 +03:00
AlexVinS
2d8288d95a Fix mantiss 0002167
* also refactored summon mechanics
2015-04-11 12:09:48 +03:00
AlexVinS
cc8c1aea36 Fix DISPELL effect 2015-04-11 10:19:35 +03:00
AlexVinS
46e7a0f829 Remove no longer needed (and incomplete) explicit target existence check 2015-04-11 10:19:34 +03:00
AlexVinS
6356247108 Add dispell effect to ANTI_MAGIC
* fixes 0002156
2015-04-11 10:19:33 +03:00
AlexVinS
e4220fef82 Formatting 2015-04-11 10:19:33 +03:00
AlexVinS
9d0b29b973 expert DISPELL also removes spell-created obstacles 2015-04-11 10:19:32 +03:00
AlexVinS
2bf63b0ebd log error if DISPELL was resisted 2015-04-11 10:19:31 +03:00
AlexVinS
f30d5612ed Creature is immune to dispell is it has no active effects 2015-04-11 10:19:30 +03:00
AlexVinS
1747b5af9a DISPELL should ignore all immunities 2015-04-11 10:19:29 +03:00
AlexVinS
67f917edbb Partial fix for 0001554 2015-04-11 10:19:28 +03:00
AlexVinS
10668974d6 Move SACRIFICE target existence check to mechanics 2015-04-03 00:35:29 +03:00
AlexVinS
0cce1ef2f1 Move ANOTHER_ELEMENTAL_SUMMONED problem check to SummonMechanics class 2015-04-03 00:02:15 +03:00
AlexVinS
6c334174d9 Use and check movement points in town portal.
* fixes mantiss 0002031
2015-04-01 04:48:50 +03:00
AlexVinS
d564520f04 Allow town portal to ally town.
fixes mantiss 0002064
2015-04-01 04:04:02 +03:00
AlexVinS
733308e8e2 Attack only present wallparts 2015-03-19 10:35:05 +03:00
AlexVinS
e1b9df9d0c formatting 2015-03-19 09:54:53 +03:00
AlexVinS
9600446cf9 +smart target, +hit animation 2015-03-18 17:48:32 +03:00
AlexVinS
c81d4203d7 Do not try to cast EARTHQUAKE with no fort 2015-03-18 16:39:07 +03:00
AlexVinS
cff8ecda46 simplify a bit 2015-03-18 14:28:34 +03:00
AlexVinS
729855ff60 Allow hit on any target including already destroyed, allow multiple hit on same target 2015-03-18 14:12:26 +03:00
AlexVinS
69c458e881 initial implementation. 2015-03-18 13:27:07 +03:00
AlexVinS
53af95f0a6 Few spell tweaks 2015-03-10 23:45:09 +03:00
AlexVinS
1fd4a6daae Fix merge of SpellsRefactoring5 2015-03-10 23:23:28 +03:00
DjWarmonger
b5c270082b Added missing files. 2015-03-10 18:32:05 +01:00
DjWarmonger
f7b5ecf642 Something that compiles. 2015-03-09 20:07:28 +01:00
DjWarmonger
f32849a73e Attempt to compile refactored spells in MSVS. 2015-03-09 19:24:45 +01:00
AlexVinS
5fda2aac9a formatting 2015-02-26 20:59:18 +03:00
AlexVinS
f4c683cd5e Move VievXXX logic to server side (except expert ViewEarth) 2015-02-26 17:15:17 +03:00
AlexVinS
025a00362b Simplify CBattleInterface::spellCast 2015-02-26 08:39:58 +03:00
AlexVinS
36cdb2968b Refactoring 2015-02-26 08:39:54 +03:00
AlexVinS
666d7a4f45 Start implementing VISIONS and DISGUISE 2015-02-26 08:39:53 +03:00
AlexVinS
f6e83685e7 Initial implementation of VIEW_AIR & VIEW_EARTH 2015-02-26 08:39:52 +03:00
AlexVinS
1333f8e410 Split mechanics implementation 2015-02-26 08:39:51 +03:00
AlexVinS
ce19c76324 Added draft of new file structure 2015-02-26 08:39:50 +03:00
AlexVinS
685deddac1 Start spell-relatet files reorganisation
* moved existing files to separate directory
-> todo: split mechanics
2015-02-26 08:39:48 +03:00