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

2808 Commits

Author SHA1 Message Date
ArseniyShestakov
0949283cb9 Pathfinding: pass PathfinderOptions to helper and avoid changing them
Original idea behind options is that options should only be set on pathfinder object creation (or via some special method in case pathfinder become persistent).
2015-11-16 18:43:02 +03:00
ArseniyShestakov
3185b64fb0 CPathfinder: rename cObj and dObjt to ctObj and dtObj
This way it's more clear that it's pointer to object on tile and not path node.
It's important because air layer nodes don't have visitable objects while tile under them can have one.
2015-11-16 17:41:23 +03:00
ArseniyShestakov
6dd9572644 CPathfinder: cleanup checks for source node visitable object 2015-11-16 17:36:58 +03:00
ArseniyShestakov
aa59ad05ed CPathfinder: don't access map->guardingCreaturePositions directly 2015-11-13 23:32:52 +03:00
ArseniyShestakov
324cf5490c CPathfinder: fix movement into guardian tile 2015-11-13 23:07:56 +03:00
ArseniyShestakov
0be9d21132 CPathfinder: add rule that hero in boat can't visit empty boats 2015-11-13 10:28:44 +03:00
ArseniyShestakov
d2baa5b0d0 Pathfinding: move isLayerAvailable into TurnInfo 2015-11-12 14:40:56 +03:00
ArseniyShestakov
abc4ea272f TurnInfo: store all bonuses and use TileInfo for everything
Currently this going to break ONE_WEEK bonuses because those don't work with CWillLastDays selector.
2015-11-12 14:30:29 +03:00
ArseniyShestakov
9ed9d94009 TurnInfo: first step towards better abstraction 2015-11-12 05:20:32 +03:00
ArseniyShestakov
4e11d81673 CGWhirlpool: fix random exit chooser 2015-11-12 01:23:27 +03:00
ArseniyShestakov
942c0cd718 CPathfinder: improve support for whirlpools 2015-11-12 01:16:06 +03:00
ArseniyShestakov
d76b2b7ca8 CPathsInfo: rework nodes multi_array allocation 2015-11-12 00:05:20 +03:00
ArseniyShestakov
09473f6648 CPathfinder: move embark special case to isMovementToDestPossible 2015-11-11 22:29:20 +03:00
ArseniyShestakov
46b923713b Pathfinding: rework isLayerTransitionPossible and fix formatting 2015-11-11 22:08:15 +03:00
ArseniyShestakov
f1311abd0b CPathfinder: move node action code into getDestAction 2015-11-11 19:51:08 +03:00
DjWarmonger
5fadb239f2 Merge pull request #134 from edeksumo/Fix-Defence-Ani
Let's try this.
2015-11-11 09:43:51 +01:00
ArseniyShestakov
4aaf6191a5 CPathfinder: implemented originalMovementRules option 2015-11-10 21:07:27 +03:00
ArseniyShestakov
2b6851b3d2 Pathfinding: use unique_ptr for hlp and fix few rules 2015-11-10 19:15:59 +03:00
ArseniyShestakov
9a63735c24 CPathfinderHelper: implement TurnInfo to avoid bonus re-checking
TurnInfo contain information about what movement-related bonuses and MP hero going to have on certain turn.
This way we can collect this information once for each turn so it's huge performance boost.
2015-11-10 14:26:45 +03:00
ArseniyShestakov
2ef9d7c3ec Rename getCost back to getMovementCost
Initially wanter to name main class differently and back then getCost make sense.
Then renamed class to CPathfinderHelper, but forgot to rename function back.
2015-11-10 02:30:05 +03:00
ArseniyShestakov
b2e1ee5363 CGameState: move two pathfinding-related functions to CPathfinderHelper
Both getMovementCost and getNeighbours have nothing to do with gamestate.
2015-11-10 02:15:27 +03:00
ArseniyShestakov
d3c8ca7c1c Pathfinding: implement duration checking for fly and water walking
Now pathfinder take into account different bonuses for different tuns. So if you only have FLYING_MOVEMENT bonus from Fly spell for one turn then pathfinder will only let you use air layer within one turn only.

That work for cost calculations too. Let's say you have two bonuses:
 - FLYING_MOVEMENT with 20% penalty for next 2 turns
 - FLYING_MOVEMENT with 40% penalty for 5 turns
Now pathfinder using correct penalty for each turn so movements in air layer going to be more expensive on 3-5 turns.
2015-11-09 19:57:26 +03:00
ArseniyShestakov
5106738160 Merge branch 'develop' into feature/pathfinderLayers 2015-11-09 19:20:13 +03:00
ArseniyShestakov
96897acc46 CWillLastDays: add condition for permanent durations
Accidentally missed them in pull request
2015-11-09 19:05:22 +03:00
ArseniyShestakov
7f0b0bd1b5 Bonus system: use updateBonuses in battleTurnPasseed 2015-11-09 15:48:07 +03:00
ArseniyShestakov
ee1c5e452f Bonus system: add CWillLastDays selector 2015-11-09 15:01:58 +03:00
ArseniyShestakov
5bfbd8526b Bonus system: fix N_DAYS bonus duration 2015-11-09 14:18:36 +03:00
ArseniyShestakov
45e4cf354e Revert "Pathfinding: do path calculation in separate thread"
This reverts commit f376b27999.
2015-11-09 09:35:56 +03:00
ArseniyShestakov
f376b27999 Pathfinding: do path calculation in separate thread 2015-11-08 19:19:48 +03:00
ArseniyShestakov
9cf35d1bfd CPathfinder: support for Castle Gate
No support for client / server implemented yet.
2015-11-08 10:06:24 +03:00
ArseniyShestakov
be37e1cd8b CPathfinder: add const to appropriate methods 2015-11-08 08:39:00 +03:00
ArseniyShestakov
f590b364c5 Pathfinder: shorten EPathfindingLayer to ELayer 2015-11-08 08:27:51 +03:00
ArseniyShestakov
4af9c7c29d CPathfinder: add one turn boundary for flying and water walking
Now when oneTurnSpecialLayersLimit is enabled hero won't be able to stop on blocked or water tiles between turns.
It's default H3 mechanics so it's enabled by default.
2015-11-08 07:44:00 +03:00
ArseniyShestakov
2fb73c55e1 CPathfinder: use node action in isMovementAfterDestPossible checks 2015-11-08 04:41:06 +03:00
ArseniyShestakov
4973a1ec90 CGPathNode: get rid of land member as it's now obsolete
CTerrainRect::showPath behaviour changed so it's will only add cross path graphics on embark/disembark and path ending.
We want continuous paths for flying and water walking even when land<-> water transition occur.
2015-11-08 04:01:58 +03:00
ArseniyShestakov
160fa38254 Client: change cursor using node action information of pathfinder 2015-11-08 03:10:48 +03:00
edeksumo
ba1062ed3c Formating2
Change ani to anim
2015-11-07 23:30:01 +01:00
ArseniyShestakov
82048cbf2d Pathfinder: implement new feature - node action
No action going to simplify isMovementAfterDestPossible and should be as well useful for cost calculations.
It's can be also used by client interface to show appropriate cursors and path.
2015-11-08 00:26:41 +03:00
ArseniyShestakov
bd8eec7fb8 CGPathNode: move resetting code into separate function 2015-11-07 22:16:45 +03:00
ArseniyShestakov
d8a612f5d6 CPathsInfo: use boost::multi_array for storing graph of nodes 2015-11-07 22:02:57 +03:00
ArseniyShestakov
3f2cdf3137 CPathfinder: implement priority queue and node locking 2015-11-07 21:11:07 +03:00
ArseniyShestakov
7eebcb9d60 Artifacts: replace few more ints by ArtifactID 2015-11-07 11:46:58 +03:00
AlexVinS
e645b46aed Revert "Merge pull request #124 from vcmi/issue/1372"
This reverts commit da01af319b, reversing
changes made to 8b6b4e2e0b.
2015-11-07 11:35:02 +03:00
ArseniyShestakov
bd12989ad6 Artifacts: use ArtifactID instead of ints 2015-11-06 21:54:51 +03:00
ArseniyShestakov
148355908d CPathfinder: get rid of FoW variable and bunch of small fixes 2015-11-05 15:04:56 +03:00
ArseniyShestakov
9fe442537b Pass on EPathfindingLayer and small fixes for code around it 2015-11-05 12:46:44 +03:00
ArseniyShestakov
5f3e9deda7 CPathfinder: deny transit over whirlpools when hero not protected 2015-11-05 11:34:01 +03:00
ArseniyShestakov
a1290f548b CPathfinder: only allow water walking over accessible tiles 2015-11-05 11:25:41 +03:00
ArseniyShestakov
3de94a8b99 CPathfinder: don't allow future movement after guarded tile
There is two exceptions:
 - Hero start movement from guarded tile.
 - Hero that embarking into boat that standing on guarded tile.
In other cases future movement is impossible.
2015-11-05 10:22:38 +03:00
edeksumo
dd525da153 Formatting 2015-11-04 23:37:53 +01:00
ArseniyShestakov
f4dea88e3b CPathfinder: get rid of hero object usage when it's not needed 2015-11-04 15:38:15 +03:00
ArseniyShestakov
1bc335323d CPathfinder: add lightweightFlyingMode option suggested by @alexvins 2015-11-04 15:05:22 +03:00
ArseniyShestakov
330c1666fc CPathfinder: move isLayerTransitionPossible and remove outdated comment 2015-11-04 12:29:51 +03:00
ArseniyShestakov
934c682733 CPathfinder: always add air and water layer nodes to queue
It's should be possible to go into air layer from visitable object (but opposite isn't allowed).
And when walking on water player can't really interact with any object at all so future movement always possible.
2015-11-04 11:53:52 +03:00
ArseniyShestakov
595deda270 CPathfinder: rename functions to better represent what they doing 2015-11-04 11:47:43 +03:00
Alexander Shishkin
da01af319b Merge pull request #124 from vcmi/issue/1372
Issue/1372
2015-11-04 10:39:40 +03:00
edeksumo
75a76c0bf0 FixDefenceAni 2015-11-04 00:19:40 +01:00
ArseniyShestakov
8b6b4e2e0b Fix header case for Linux to Windows cross compilation using MingGW 2015-11-03 14:40:36 +03:00
ArseniyShestakov
dfd70849e9 CPathfinder: restore selective tile initialization to initializeGraph
This way we can avoid layer checks when calculating paths by ignoring unitialized tiles entirely.
Also at this point pathfinder and movement actually works for everything except flying.
2015-11-03 03:25:12 +03:00
AlexVinS
f6b9015324 Use constant for summoned creature slot 2015-11-03 02:18:34 +03:00
ArseniyShestakov
c85c7f4b61 CPathfinder: always initialize all nodes within initializeGraph 2015-11-03 01:29:43 +03:00
DjWarmonger
349f16a359 Version bump. 2015-11-02 17:28:54 +01:00
ArseniyShestakov
400152caee CPathfinder: draft implementation of layers logic; not yet works 2015-11-02 16:03:03 +03:00
ArseniyShestakov
9c1c7d0caf Pathfinding: move getNode into CPathsInfo 2015-11-02 14:04:26 +03:00
ArseniyShestakov
4b64bec711 EPathfindingLayer: copy other code from ETerrainType for debugging 2015-11-02 13:25:01 +03:00
ArseniyShestakov
2b6e1498d2 Pathfinding: change argument order for getPath and AUTO layer as default
This still need investigation, but likely most of external code shouldn't be aware of layers in order to work properly because only LAND and SAIL can be targeted and single tile can't have both of these layers.
2015-11-02 11:14:32 +03:00
ArseniyShestakov
b8253206c7 Pathfinding: make related code aware that layers exist 2015-11-02 11:06:06 +03:00
ArseniyShestakov
118039a368 Pathfinding: add copy-pasted EPathfindingLayer 2015-11-02 11:05:26 +03:00
AlexVinS
1bcfa986e4 Apply fixes to pathfinder 2015-11-01 01:52:43 +03:00
AlexVinS
d46364c4c3 Merge branch 'develop' into issue/2306
Need to reapply changes to pathfiner

Conflicts:
	AI/VCAI/VCAI.cpp
	lib/CGameState.cpp
	lib/CGameStateFwd.h
2015-11-01 01:49:57 +03:00
AlexVinS
34cc9c78f7 [c::b] update projects 2015-11-01 00:01:41 +03:00
DjWarmonger
621c62b44e Don't crash when spell school level is higher than 3 (which is another bug) 2015-10-31 21:15:40 +01:00
Vadim Markovtsev
e6e975e9ef Fix adventure map movement segfault in some scenarios 2015-10-31 20:23:13 +03:00
DjWarmonger
5ef02aaf88 Updated MSVS project. 2015-10-31 15:08:13 +01:00
DjWarmonger
17071c6ec8 Merge pull request #125 from ArseniyShestakov/newMovementSystem
Okay, time to merge this.
2015-10-31 13:56:22 +01:00
ArseniyShestakov
c4ea0c7ff2 CPathfinder: don't include RegisterTypes 2015-10-27 17:42:31 +03:00
Vadim Markovtsev
c5ebec0d1f Fix the second crash (dynamic_cast failure) 2015-10-27 09:09:42 +03:00
ArseniyShestakov
92fee1bdbf CPathfinder: shorten options struct declaration 2015-10-27 03:50:38 +03:00
ArseniyShestakov
6b34eb729e Move all pathfinding-related code into new file 2015-10-27 03:34:47 +03:00
ArseniyShestakov
9e8427a078 CPathfinder: update comment for isSourceGuarded condition 2015-10-27 00:22:40 +03:00
ArseniyShestakov
01257efc02 CPathfinder: get rid of curPos and pass on initializeGraph 2015-10-26 20:17:10 +03:00
ArseniyShestakov
68bd37aa45 Store penalty in value of FLYING_MOVEMENT and WATER_WALKING 2015-10-26 18:30:11 +03:00
ArseniyShestakov
44ca00cd16 CPathfinder: rename functions 2015-10-25 19:11:00 +03:00
ArseniyShestakov
a536691781 CPathfinder: fix typos and more code cleanups 2015-10-25 17:01:28 +03:00
Vadim Markovtsev
79fb5b0c7b Fix typeid ordering bug on MacOSX 2015-10-25 13:08:59 +03:00
AlexVinS
cfb5853689 Just a bit of black magic 2015-10-25 03:29:16 +03:00
AlexVinS
0f9de1c560 Made CTypeList threadsafe 2015-10-25 03:26:48 +03:00
AlexVinS
687a82886f cleanup CTypeList interface 2015-10-25 01:38:30 +03:00
AlexVinS
92ae56b369 Mingw build fix 2015-10-24 22:21:54 +03:00
DjWarmonger
a6ea0981b6 Merge branch 'develop' into mutexRelax 2015-10-24 18:30:43 +02:00
DjWarmonger
641aa13526 Some fixes for previous commit. 2015-10-24 17:02:00 +02:00
DjWarmonger
716c324695 Don't give a turn to player who is about to lose (days without town). 2015-10-24 16:21:30 +02:00
DjWarmonger
abe88ea890 - Refactoring legacy code
- Some checks for #2311
2015-10-24 15:09:46 +02:00
ArseniyShestakov
4f7c3ec60f Minor formatting fixes within pathfinder-related code 2015-10-24 15:50:00 +03:00
ArseniyShestakov
939b3c05a1 CPathfinder: use struct instead of enum for options
Suggested by @DjWarmonger as better alternative from performance standpoint while struct still more organized than bunch of variables.
Other reason of change it's that in future we may need non-boolean options, e.g for patrol movement and some new pathfinder usages.
2015-10-24 15:34:27 +03:00
ArseniyShestakov
6934c6bc95 CPathfinder: move check into isBetterWay lambda
It's must be of course used for teleporters too.
2015-10-24 14:54:15 +03:00
ArseniyShestakov
5a04f05b9b CPathfinder: move one more check into isMovementPossible 2015-10-24 12:09:57 +03:00
ArseniyShestakov
6ebe2abc1a Fix penalties for FLYING_MOVEMENT and WATER_WALKING 2015-10-23 20:50:52 +03:00
ArseniyShestakov
fc6f62e633 getMovementCost: get rid of useless flying parameter 2015-10-19 07:27:00 +03:00
ArseniyShestakov
498eb1d032 Fix typos 2015-10-19 05:16:18 +03:00
DjWarmonger
8c9f8f22d9 Merge pull request #123 from ArseniyShestakov/mantis-1230
Okay, now we shouldn't get broken savegames. Merging.
2015-10-17 08:31:44 +02:00
ArseniyShestakov
3663b952ea Fix issue 2276. Refugee Camp shouldn't be guarded 2015-10-16 06:45:06 +03:00
ArseniyShestakov
226650582d Move base movement cost to GameConstants 2015-10-16 03:03:40 +03:00
ArseniyShestakov
3466e0fae7 getTileCost: one more pass over code and formatting fix 2015-10-15 15:17:21 +03:00
ArseniyShestakov
46c7e8e36d Add list ending comment as suggested by @alexvins
This way we can add new bonuses without changing last line in list and avoid possible issues of extra concatenating.
2015-10-15 12:20:53 +03:00
ArseniyShestakov
25da9f249e Move NO_TERRAIN_PENALTY to the end of list to avoid save breakage 2015-10-15 11:44:59 +03:00
ArseniyShestakov
52a52dcfd9 Implement NO_TERRAIN_PENALTY bonus
Penalty of specified terrain type is ignored if hero have this bonus
2015-10-15 01:09:02 +03:00
Alexander Shishkin
fca4deaad2 Merge pull request #122 from vmarkovtsev/feature/warnings
Fix warnings produced by recent Clang build
2015-10-14 07:28:47 +03:00
Vadim Markovtsev
b701835de0 Fix wrong comparison 2015-10-13 21:05:46 +03:00
Vadim Markovtsev
e4b1ef1405 Add "override" to virtual overriden methods 2015-10-13 21:05:36 +03:00
AlexVinS
b94432b4ba Fixed http://bugs.vcmi.eu/view.php?id=2297
* allow banned spells by Tomes (XXX_SPELLS bonus), Spelbinders Hat (SPELLS_OF_LEVEL bonus)
* allow banned spells by cheat-code (now also SPELLS_OF_LEVEL bonus)
2015-10-13 13:16:46 +03:00
AlexVinS
eeb100d6a4 More comments about dispell special cases. 2015-10-13 07:11:49 +03:00
ArseniyShestakov
9954dfb33a CPathfinder: move flying into options and add walk on sea 2015-10-12 19:03:08 +03:00
ArseniyShestakov
41c4323818 CGHeroInstance: add canFly and update canWalkOnSea
canWalkOnSea shouldn't check for FLYING_MOVEMENT because it's two separate mechanics that apply different limitations.
2015-10-12 18:52:23 +03:00
ArseniyShestakov
0faedde6b9 CPathfinder: store pathfinding options in set instead of variables
There is plenty of variables now and in future I'm going to add more more once pathfinder become usable for all kind of things.
2015-10-12 10:29:39 +03:00
ArseniyShestakov
886042dc11 CPathfinder: clean calculatePaths of code unsused for pathfinding
Map graph initialization should be there as well because it's needed for path checking.
This change wouldn't affect anything since currently CPathfinder object created from scratch every time.
2015-10-12 08:31:35 +03:00
ArseniyShestakov
213d8c2258 CPathfinder: turn checkDestinationTile into function
This code was only kept as lamba to access guard related variables that is now gone.
2015-10-12 08:22:31 +03:00
ArseniyShestakov
1beacf2260 CPathfinder: move guard checks into functions 2015-10-12 08:13:10 +03:00
ArseniyShestakov
cd7c5acbc4 CPathfinder: move embark special case code down
It's not affect cost calculations any way so let it's be in same order as it's used in condition under it.
2015-10-12 07:26:13 +03:00
ArseniyShestakov
c6f9cd1e52 CPathfinder: move passability checks into renamed goodForLandSeaTransition
There no need in dedicated function for embark / disembark and other conditions belong there perfectly.
This function is going to check what movements are plain impossible so we don't have to bother check their cost.
2015-10-12 07:10:33 +03:00
ArseniyShestakov
ee4305cd6d CPathfinder: move destTopVisObjID where it's belongs to 2015-10-10 19:02:21 +03:00
ArseniyShestakov
13c2b5e2d8 CPathfinder: separate teleporter exits and neighbour tile code
This way code that handle real neighbour tiles is more readable and teleport exits don't have to go via all checks they ignore anyway.
2015-10-10 17:17:41 +03:00
ArseniyShestakov
f15065fdc5 CPathfinder: separate neighbours code into getNeighbours
This is first step to make this code usable outside of calculatePaths.
2015-10-10 16:09:40 +03:00
AlexVinS
2677d4a677 Fixed action cancel on active stack remove 2015-10-08 08:15:29 +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
f1d9e15783 [Tweak] Magic values-- 2015-10-06 00:33:46 +03:00
AlexVinS
6cf220b882 Partial fix for 2272, there are more active stack sacrifice problems. 2015-10-05 20:33:05 +03:00
AlexVinS
fa06e05487 Merge branch 'develop' into SpellsRefactoring7 2015-10-05 00:45:57 +03:00
DjWarmonger
abe02247b5 Fixed bank randomization. 2015-10-02 17:28:33 +02:00
DjWarmonger
2733927527 Version bump. 2015-10-01 17:22:07 +02: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
72587a8299 Removed hardcoded check for ANIMATE_DEAD absolute imminity - there is json configuration for that 2015-09-29 17:26:46 +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
6010bbe7ba More correct usage of battleGetFightingHero
* this should fix "FIXME: battleGetFightingHero wrong argument!"
2015-09-29 17:26:38 +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
2c3a607497 Tweak StacksHealedOrResurrected
* flags should be bool
2015-09-29 17:26:31 +03:00
AlexVinS
a1e06aa217 Unify LIFE_DRAIN and Tent healing with magic healing 2015-09-29 17:26:30 +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
eb1753851e Fix comment 2015-09-29 17:25:04 +03:00
DjWarmonger
f81b46088a Fixed #2218 2015-09-29 11:01:59 +02:00
AlexVinS
108d4c39b5 Fix build 2015-09-24 11:55:23 +03:00
DjWarmonger
6b45f323ea Fixed logic regression from previous commit. 2015-09-23 21:38:16 +02:00
DjWarmonger
971f6d1c1f Removed WoG dependency for random artifacts. WoG version in repository updated. 2015-09-23 21:14:41 +02:00
DjWarmonger
e2165a33a0 - Updated MSVS project
- Artifacts added via mods now work correctly without WoG
2015-09-23 19:34:12 +02:00
DjWarmonger
def56051fc Merge branch 'develop' of https://github.com/vcmi/vcmi into develop 2015-09-23 19:03:48 +02:00
ArseniyShestakov
76cd002f07 Remove unused variable found by valgrind 2015-09-23 11:09:15 +03:00
DjWarmonger
57637dd71a Added some checks & logs for empty def names, but it only delays the crash. 2015-09-20 13:02:13 +02:00
DjWarmonger
e14faea181 Merge branch 'develop' of https://github.com/vcmi/vcmi into mutexRelax 2015-09-20 09:46:52 +02: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
f2605e059c Fix 2042 2015-09-16 02:20:57 +03:00
AlexVinS
395070b584 Fix 1974 2015-09-15 08:51:05 +03:00
AlexVinS
017b4c308c Enable crashhandler for mingw. It works for mingw 4.0. 2015-09-15 07:27:18 +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
466ddb37b3 fix 1556 2015-09-14 18:38:41 +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
f310be5d5f Fix pasring csv cells with multiple quoted parts 2015-09-12 23:03:10 +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
786acad70b project update 2015-09-12 21:09:49 +03:00
AlexVinS
fb5903d610 Initial experiments on hero & creature casting unification 2015-09-12 21:09:44 +03:00
AlexVinS
8f2da66a18 fix mantiss 1967 + some refactoring
* remove TModDescr and realted APIs - they were only used in one place
2015-09-04 22:29:20 +03:00