ArseniyShestakov
15273ac0f7
Rumors: avoid repeating of same rumor twice in a row
...
Multiple rumors of same type can go in a row, but not identical rumors.
2015-12-01 02:14:11 +03:00
ArseniyShestakov
98582d628c
Rumors: move code into CGameState and add backward compatability
2015-12-01 00:44:58 +03:00
ArseniyShestakov
879eaa47f8
Rumors: client-side proof of concept implementation
...
Actually information about this week rumor should be stored in gamestate and updated weekly
2015-11-30 20:52:15 +03:00
ArseniyShestakov
6704ea0cff
Rumors: rename getTavernGossip to getTavernRumor for consistency
...
Original game used "Rumors" and not "Gossips" and we already using rumor in CMap.
2015-11-30 17:51:28 +03:00
ArseniyShestakov
f55bfe41d6
Digging: implement digging status on right click. Fix issue 401
...
This is also fix possibility to dig on some non-blockable objects like event.
2015-11-29 12:34:23 +03:00
ArseniyShestakov
ce5b7c73be
CGEvent: avoid permanent event removal after visit. Fix issue 2339
2015-11-28 23:03:26 +03:00
ArseniyShestakov
6bb205b15b
CPathfinder: patrol support using getTilesInRange
...
For now we use getTilesInRange which isn't really correct for patrol, but good enough for first version.
2015-11-28 20:34:50 +03:00
ArseniyShestakov
56c6785bd0
Add backward compatability for patrol and bump save format version
2015-11-28 17:58:59 +03:00
ArseniyShestakov
f6de3f94ca
Teleports: use TTeleportExitsList typedef for exits list
...
There is several ideas that teleportation code have to be shared between object/spells and this way we can avoid changing showTeleportDialog declaration every time.
2015-11-28 02:41:30 +03:00
ArseniyShestakov
d6a142ca3d
CMapLoaderH3M: support for patrol initialPos in readHero
2015-11-27 11:34:03 +03:00
ArseniyShestakov
5d2e47faba
CGHeroInstance::Patrol: add initialPos
2015-11-27 11:04:01 +03:00
ArseniyShestakov
c45cd1f4c2
CGHeroInstance::getOutOffsets: temporary fix for boat summoning
...
Appropriate fix would require to get rid of convertPosition everywhere. Check issue 515 for more details.
2015-11-26 10:55:02 +03:00
ArseniyShestakov
64c6d3c950
CGCreature::takenAction: add neverFlee check. Fix issue 2242
2015-11-25 09:34:49 +03:00
ArseniyShestakov
3d8f67f864
getFreeTiles: filter ROCK tiles. Fix issue 1870
2015-11-25 09:12:09 +03:00
ArseniyShestakov
2276af70dc
PreGame: avoid crashing on random map options
...
Options is still broken, but at least we shouldn't crash there.
2015-11-25 07:25:44 +03:00
DjWarmonger
45d183289d
Merge pull request #142 from edeksumo/Fix-Defence-Ani
...
Fix crash
2015-11-24 21:37:32 +01:00
edeksumo
aab5a05036
Fix crash during auto battle
2015-11-24 20:55:11 +01:00
ArseniyShestakov
a851062891
Merge pull request #133 from vcmi/feature/pathfinderLayers
...
Pathfinder layers and related changes: fly and water walking implemented
2015-11-24 13:09:06 +03:00
ArseniyShestakov
df4515901d
CPathfinder: fix special movement boundary check
...
Forgot to fix it for water walking after fe12b8f664
2015-11-23 14:11:08 +03:00
ArseniyShestakov
f4c06660e4
CPathfinder::evaluateAccessibility: apply more optimizations
2015-11-22 21:31:47 +03:00
ArseniyShestakov
2632389aaf
CPathfinder: bring FoW reference back to avoid performance loss
...
This one is revert 148355908d
2015-11-22 21:06:37 +03:00
ArseniyShestakov
6dacb84404
CPathfinder::addNeighbours: avoid allocating new vector each time
2015-11-22 07:32:33 +03:00
ArseniyShestakov
e1a360408d
GameConstants: move operators into header and always inline them
2015-11-22 07:24:12 +03:00
ArseniyShestakov
5a87f58e09
CPathfinder: optimize checks order in calculatePaths
2015-11-22 06:23:54 +03:00
ArseniyShestakov
8217eb3a82
CPathfinder: split isLayerTransitionPossible into two functions
...
This way we can avoid usage of getNode for layers that clearly can't be used.
2015-11-22 06:16:16 +03:00
ArseniyShestakov
649ebfad2f
TerrainTile::topVisitableObj: avoid costly vector copying
2015-11-22 05:34:37 +03:00
ArseniyShestakov
a1fe2ebc44
Pathfinding: restore gamestate usage to avoid overhead
...
Also when possible pass TerrainTile pointers to getMovementCost instead of using getTile.
2015-11-21 14:31:30 +03:00
ArseniyShestakov
438a444443
CGHeroInstance: move native terrain check into getNativeTerrain
...
That make it easier to use that code independently in TurnInfo
2015-11-21 13:32:45 +03:00
ArseniyShestakov
a375c86ea2
movementPointsAfterEmbark: get max move points from TurnInfo
...
Missed that when originally implemented TurnInfo.
Not pretties code, but boost performance a lot.
2015-11-21 12:46:59 +03:00
ArseniyShestakov
5ae6225ebc
TurnInfo: implement internal bonus cache for most used bonuses
...
Bonus system even with caching add too big overhead so we'll only use it once for these bonuses.
Still I'm like it to be transparent for external code so it's a bit hacky code.
2015-11-21 10:00:09 +03:00
ArseniyShestakov
e91d79414b
PathfinderOptions: use settings and move all defaults into schema
2015-11-21 00:32:23 +03:00
ArseniyShestakov
b48d65ad57
addNewBonus: add turnsRemain check for N_TURNS, N_DAYS and ONE_WEEK
2015-11-20 14:37:57 +03:00
ArseniyShestakov
f99ffbd074
Bonus system: use duration helpers in selecters
2015-11-20 13:24:48 +03:00
ArseniyShestakov
cb61572878
TurnInfo: add cache for bonuses selection
2015-11-20 12:28:35 +03:00
ArseniyShestakov
6d395bcba7
Bonus system: add turnsRemain support for ONE_WEEK duration
2015-11-20 12:11:35 +03:00
ArseniyShestakov
d19cb5ce89
EPathfindingLayer: fix obvious layer over-allocation in CPathsInfo
2015-11-19 04:01:56 +03:00
ArseniyShestakov
adeefe903a
CGPathNode: apply suggested optimizations
...
Also make EPathfindingLayers ui8 too
2015-11-19 03:08:57 +03:00
ArseniyShestakov
7101083a24
CPathfinder: restore transit via garrisons
2015-11-18 00:07:25 +03:00
ArseniyShestakov
ab9680a7d9
CPathfinder: handle event object properly everywhere
...
Also add forgoted check for AdvmapInterface to avoid possible crash.
2015-11-17 07:09:01 +03:00
ArseniyShestakov
e9636a8d37
CPathfinder: add TODO and ideas for available options
2015-11-17 04:33:21 +03:00
ArseniyShestakov
fe12b8f664
Pathfinding: re-introduce EAccessibility::FLYABLE
...
That let us get rid of really hacky code in initializeGraph and also fix flying over tiles that aren't visible.
2015-11-17 03:59:02 +03:00
ArseniyShestakov
c2ba3e3faf
CPathfinderHelper: very firts pass over getNeighbours
2015-11-17 02:41:31 +03:00
ArseniyShestakov
73d8687785
CPathfinder: add some comments and TODO for future changes
2015-11-17 01:38:13 +03:00
ArseniyShestakov
578aa2acd4
Pathfinding: don't use gamestate directly as it's not needed
2015-11-16 21:22:11 +03:00
ArseniyShestakov
d524b4eabe
CPathfinder: get rid of addNeighbours coord argument
2015-11-16 19:54:17 +03:00
ArseniyShestakov
8f72d73241
CPathfinder: update teleport code and use TurnInfo for whirlpools
2015-11-16 19:14:18 +03:00
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
AlexVinS
e82dfb5a85
fixed mantiss 0002254
2015-09-04 18:08:25 +03:00
DjWarmonger
1c14dbf7b2
Cache SectorMaps to evaluate multiple goals -> huge performance boost
2015-08-31 08:25:33 +02:00
DjWarmonger
a3ce1521e5
Cache visible tiles within SectorMap for quicker access.
2015-08-31 07:39:03 +02:00
DjWarmonger
904a66764c
Optimization to getPlayerTeam functions, not very successful :/
2015-08-30 21:42:19 +02:00
DjWarmonger
70801309bd
Optimization for CGameInfoCallback:getPlayer function. It also seems to be called more often than needed.
2015-08-30 20:51:22 +02:00
DjWarmonger
cdad9f88b7
Relaxed Mutex of Logger. Attempt to optimize format function.
2015-08-30 19:26:19 +02:00
AlexVinS
40d3bb40c3
Partial fix for mantiss #2237
2015-08-22 16:22:10 +03:00
AlexVinS
03a295f1a0
Added debug mingw64 build, minimum Windows version set to windows 7, SDL suffixes removed from Build Tagerts
2015-08-20 03:28:04 +03:00
AlexVinS
f24f744f4b
Fix a few warnings
2015-08-19 23:02:37 +03:00
Sandy Carter
bdee647525
CastleInterface: Exclude previous building upgrade in reqs
...
Hide CityHall from Capitol prerequisites in Capitol build window
2015-08-19 12:05:43 -04:00
DjWarmonger
237d3f2624
Refactoring: random spells
2015-08-12 16:40:08 +02:00
DjWarmonger
3863756009
Version bump.
2015-08-01 18:37:14 +02:00
DjWarmonger
50b7b8e47b
Merge branch 'develop' of https://github.com/vcmi/vcmi into develop
2015-07-18 20:15:17 +02:00
DjWarmonger
e9654ef487
Fixed issue when player starting towns were wiped.
2015-07-18 20:14:45 +02:00
AlexVinS
a8c45df732
Merge branch 'SDL1Wipe' into develop
2015-06-22 14:24:00 +03:00
AlexVinS
53b85d16be
Cleanup C::B projects
2015-06-21 01:59:33 +03:00
AlexVinS
56a1805339
Merge branch 'issue/2185' into develop
2015-06-20 19:16:41 +03:00
DjWarmonger
f9781ffb47
Creature abilities won't spawn in random Pandora Boxes.
2015-06-10 14:27:53 +02:00
DjWarmonger
9e7b459882
Partial solution to #2206
...
TODO: add serialized field that contains custom guard config
2015-06-05 11:28:14 +02:00
DjWarmonger
3f1bc7e21c
One more case for Subterranean Gates
2015-06-04 09:42:39 +02:00
DjWarmonger
927dfa5565
Added correct connections for Subterranean Gates
2015-06-04 09:02:56 +02:00
DjWarmonger
63d6cf168f
- Solved problems with sealed-off objects for once and all.
...
- Refactoring
2015-06-03 21:57:22 +02:00
DjWarmonger
923437bf76
Corrected offset check for required objects.
2015-06-03 19:38:53 +02:00
DjWarmonger
55c1a7eade
Clear unused tiles to make more space for roads.
2015-06-03 15:16:11 +02:00
DjWarmonger
e21b2d9cbd
Attempt to use A* algorithm for required objects.
2015-06-02 20:29:37 +02:00
DjWarmonger
a68b58d969
- Use straight paths for some connections
...
- More fixes for template schema
2015-06-02 16:40:32 +02:00
DjWarmonger
8b1641d498
Generate main towns for zones with no player present.
2015-06-02 09:30:56 +02:00
DjWarmonger
1389ae0ea3
Fix Travis build
2015-06-02 07:01:38 +02:00
AlexVinS
2cb6cb7baa
Remove useless durationType selector
...
* duration is a mask, equality comparison is not enough
2015-06-02 07:12:02 +03:00
AlexVinS
b1837d0311
Fix removing STACK_GETS_TURN bonuses
...
* this should fix some crashes with FRENZY spell
2015-06-02 07:12:01 +03:00
AlexVinS
45a3ad94ae
fix autoremoving UNTIL_ATTACK & UNITL_BEING_ATTACKED bonuses
...
* this should fix crashes with paralyze, stonegaze & blind
2015-06-02 07:12:01 +03:00
AlexVinS
a2901cb8f0
Fix RemoveBonus::applyGs
...
* use CBonusSystemNode::removeBonus instead of direct modification of _cashe_
2015-06-02 07:12:00 +03:00
AlexVinS
3a50afe1a3
invalidate bonus cashe on effect actualization
2015-06-02 07:11:59 +03:00
DjWarmonger
c6f714db9c
Fixed generation of CPU teams.
2015-06-01 21:57:43 +02:00
DjWarmonger
34a59a2788
- Fixed issues with number of players selection
...
- Added new template for testing multiple players
2015-05-27 18:58:14 +02:00
DjWarmonger
6890ae9f02
- Fixed improper use of playersCount. Now RMG can generate maps up to 8 players, with CPU players only as well.
...
- Fixes for template scheme
2015-05-27 11:30:46 +02:00
DjWarmonger
2e70d8a084
- VCMI will now read templates from mods
...
- Added partial schema for RMG template
2015-05-26 18:19:41 +02:00
DjWarmonger
4e25d74e74
CRmgTemplateStorage now inherits from IHandlerBase
2015-05-26 15:12:24 +02:00
O01eg
8785e1f53c
Fix compilation with CMake.
2015-05-26 02:02:45 +03:00
DjWarmonger
e08a1f32bd
Some more fixes, updated changelog.
2015-05-25 20:04:24 +02:00
DjWarmonger
c6291412d7
Fixed one case of missing roads.
2015-05-25 19:44:03 +02:00
DjWarmonger
a0ed8e0d6d
An attempt to straighten roads.
2015-05-25 19:25:48 +02:00
DjWarmonger
353f6dc32e
Roads are generated between all nodes.
2015-05-25 19:11:44 +02:00
DjWarmonger
3ec91c550e
Correct road nodes iteration
2015-05-25 19:00:00 +02:00
DjWarmonger
fe6fa895c3
More or less working RMG roads.
2015-05-25 18:06:17 +02:00
DjWarmonger
2c88ddf5ed
Something works it seems
2015-05-25 17:47:32 +02:00
DjWarmonger
bfd4ff8954
Refactoring
2015-05-25 17:04:17 +02:00
DjWarmonger
6d502ef1a1
Implemented A* algorithm to draw shortest roads - but not correct roads yet.
2015-05-25 16:37:57 +02:00
Rohit Nirmal
aa00fdbd0e
Fix building with Boost 1.58.
2015-05-06 19:16:51 -05:00
DjWarmonger
b8a6455b39
Post-release version bump.
2015-05-01 21:56:17 +02: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
6448bc6a50
[gcc] fix build
2015-04-12 08:25:53 +03:00
DjWarmonger
cb394754c3
Merge branch 'develop' of https://github.com/vcmi/vcmi into develop
2015-04-11 17:13:24 +02: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
DjWarmonger
86e2dabdc9
Merge branch 'develop' of https://github.com/vcmi/vcmi into develop
2015-04-11 13:46:32 +02:00
DjWarmonger
a0840100df
Different fractalization algorithm that enforces cycle generation.
2015-04-11 13:46:17 +02:00
DjWarmonger
69c58c6c25
Experiment: fractalize RMG zones before placing important objects. The downside is that it won't be possible to draw road as straight line anymore.
2015-04-11 12:47:41 +02: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
e5b9f76717
Merge branch 'dispellFixes' into develop
2015-04-11 11:02:56 +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
DjWarmonger
f7387becb4
Merge branch 'develop' of https://github.com/vcmi/vcmi into develop
2015-04-11 08:53:14 +02:00
AlexVinS
5b29e800f7
Cleanup: use only CBonusSystemNode::treeHasChanged() when changing treeChanged
2015-04-11 08:13:28 +03:00
AlexVinS
6cf82ceab5
Possible fix for #923
2015-04-11 07:18:40 +03:00
DjWarmonger
3e8c395156
- More fixes for wander targets
...
- SectorMap won't find paths through the rock
2015-04-10 08:50:21 +02:00
Fay
1cb54689cf
Prevents first aid tents from melee attacking;
...
Moves attack possibility checks to battle callback (for consistency with shooting checks);
2015-04-09 21:49:11 +02:00
DjWarmonger
9577ef4bda
Minor tweak.
2015-04-07 13:43:33 +02:00
AlexVinS
84a2623c37
more experiments
2015-04-03 07:06:29 +03:00
AlexVinS
27c46c83d6
describe roads placement in log
2015-04-03 05:50:02 +03:00
AlexVinS
76193c4c5c
More experiments WIP.
2015-04-03 05:47:22 +03:00
AlexVinS
eb60d9737f
more sensible road placement
2015-04-03 05:47:20 +03:00
AlexVinS
896a2b17c0
fix patterns
2015-04-03 05:47:03 +03:00
AlexVinS
4c4ad480c5
added experimental usage of roads
2015-04-03 05:47:01 +03:00
AlexVinS
6520d2a577
fix
2015-04-03 05:46:17 +03:00
AlexVinS
ae2c72ca52
Implemented road transitions.
...
* untested
* still unused
2015-04-03 05:46:16 +03:00
AlexVinS
b1d4ce0474
Road|river patterns are trivial compared to terrain patterns - no need to use json, just define them as a constatnt
2015-04-03 05:46:15 +03:00
AlexVinS
877634b3a3
Define public interface of CDrawRoadsOperation
2015-04-03 05:46:14 +03:00
AlexVinS
e42ca15a0d
Fix BERSERK effect
2015-04-03 05:20:17 +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
DjWarmonger
e529ac62c0
Tagging 0.98 release.
2015-04-01 09:34:55 +02: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
fb707a6576
fix mantiss 2142
2015-04-01 00:28:21 +03:00
Ivan Savenko
376b2436f8
Fixed weird bug in serializer which caused corrupted data in Json map (missing guards entry in banks)
2015-03-31 00:56:33 +03:00
Ivan Savenko
eef45b5ae8
Fixed warnings
2015-03-31 00:55:37 +03:00
DjWarmonger
ed33d99ac7
Silenced some more logs.
2015-03-28 22:17:45 +01:00
DjWarmonger
a0f534146c
Fixed underground Lava terrain.
2015-03-28 22:03:38 +01:00
DjWarmonger
999c2a92e0
Inverted approach - first generate rock all over, then free accessible tiles.
2015-03-28 21:13:22 +01:00
DjWarmonger
9515d51bd2
Generate underground tunnels first to get a bit more of them.
2015-03-28 20:09:54 +01:00
DjWarmonger
a0d9ae4849
Refactoring - create underground rock for whole level at once.
2015-03-28 18:56:28 +01:00
DjWarmonger
a90021364e
Disable logs for better performance.
2015-03-28 17:46:39 +01:00
beegee1
e9b7044c9b
Fix mantis #1859 , unknown pattern in underground
2015-03-28 16:41:26 +01:00
beegee1
dafaf86eef
Add some debug logging, Fix one special case when updating terrain type, Improve visual look of updated terrain types
2015-03-28 16:41:26 +01: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
a1ea551a85
Block summon of elemtals only by ally summoned elementals
2015-03-18 16:48:21 +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
ArseniyShestakov
783dcfea2e
CMapGenOptions: fix crash when computer only limit is used
...
Currently when there is computer only players set resetPlayersMap may try to change settings for more than 8 players which obviously cause crash.
Now if any of "players and computer limit" or "computer limit" is set to random we automatically set total limit to 8 players.
2015-03-14 22:19:24 +03:00
ArseniyShestakov
32009690eb
initTowns: only add Tovern by default to player-owned towns
...
Neutral towns with default buildings set should never get Tovern automatically.
This one fixes issue 2090.
2015-03-12 18:47:32 +03:00
DjWarmonger
d8114fa3fb
Post-release version bump.
2015-03-12 14:44:56 +01:00
DjWarmonger
a1da08f802
Disabled Seer Huts for 0.97c.
2015-03-12 10:45:24 +01:00
DjWarmonger
a832b7efee
Fixed #2026
2015-03-12 10:08:10 +01:00
DjWarmonger
f894abe494
Unified interface for object template.
2015-03-12 08:31:30 +01:00
DjWarmonger
e0134342c8
Merge branch 'develop' of https://github.com/vcmi/vcmi into develop
2015-03-11 22:17:54 +01:00
DjWarmonger
cf74969603
Fixes, logging for Seer Huts
2015-03-11 22:17:35 +01:00
ArseniyShestakov
f2a237ce6c
CPathfinder: move allowed teleport check into lambda
...
This also fix accidental whirlpool usage as previously I messed up code a bit.
2015-03-11 23:53:35 +03:00
DjWarmonger
61071c46e1
Fixed monster amounts in Pandora Box.
2015-03-11 19:21:58 +01:00
DjWarmonger
3cc9705bfe
Minor tweak.
2015-03-11 16:54:42 +01:00
DjWarmonger
01390e0c2c
Optimization for random treasures.
2015-03-11 16:19:03 +01:00
ArseniyShestakov
17f3f94ca6
CGSubterraneanGate: fix pairing and always assign all gates to channel
...
Before gates on underground layer didn't had any channel assigned and of course any function that attempt to check -1 channel caused crash.
Also I find out that at point postInit executed It's possible to get mutable gamestate via gameState() callback so we don't need to pass it there.
2015-03-11 17:17:21 +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
719fcef34e
Merge branch 'develop' of https://github.com/vcmi/vcmi into develop
2015-03-10 19:57:35 +01:00
DjWarmonger
b5c270082b
Added missing files.
2015-03-10 18:32:05 +01:00
ArseniyShestakov
2145be281a
Merge pull request #86 from ArseniyShestakov/fixQuestSaving
...
Fix saving of player's quests and bump save format version
2015-03-10 18:01:38 +03:00
DjWarmonger
ec879046ca
Merge pull request #93 from ArseniyShestakov/feature/pathfindingTeleports
...
Okay let's do this!
2015-03-10 09:04:25 +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
ArseniyShestakov
1801b5eaf4
CGTeleport: use vstd::erase_if_present in getAll functions
2015-03-09 15:44:48 +03:00
ArseniyShestakov
5c6633f8ad
CPathfinder::addTeleportWhirlpool: check that obj isn't nullptr
2015-03-09 15:32:09 +03:00
ArseniyShestakov
00b0af7306
CGameInfoCallback: now actually drop excludeId argument
2015-03-09 14:20:34 +03:00
ArseniyShestakov
861104f493
CGameInfoCallback: refactoring of getTeleportChannelEntraces / getTeleportChannelExits
...
Move shared filtering code into getVisibleTeleportObjects.
Also remove excludeId as it's not currently used.
2015-03-09 05:10:31 +03:00
ArseniyShestakov
930a8b49da
CPathfinder: move complicated check into lambda
2015-03-09 04:24:12 +03:00
ArseniyShestakov
8f8d237d5d
Use isTeleportChannel callback functions to check teleport channel type
2015-03-09 02:13:40 +03:00
ArseniyShestakov
0c1a37e5a7
CGameInfoCallback: more functions to check teleport channel types
2015-03-09 02:01:24 +03:00
ArseniyShestakov
eff4da1d03
ETeleportChannelType: is now strongly typed enumeration
2015-03-09 01:45:39 +03:00
ArseniyShestakov
3b057e0408
CGMonolith: fix switch formatting
2015-03-09 01:27:40 +03:00
ArseniyShestakov
606013c535
CGSubterraneanGate::postInit put const back
...
Originally I removed it when change this code to actually change object.
Though this sorting can work with constant object just fine.
2015-03-08 21:16:30 +03:00
ArseniyShestakov
826a64b579
Pack of tiny code improvements for @alexvins request
2015-03-08 20:19:00 +03:00
ArseniyShestakov
6d77322d6a
CGMonolith: add text dialog when player visit one-way monolith exit
2015-03-08 18:07:06 +03:00
ArseniyShestakov
530b63f7c4
CPathfinder: add all new code for pathfinding via teleporters
...
Each kind of teleporter have own function that determine if it's should or shouldn't be used.
For now Monolith with bidirectional channels and Subterranean Gate are united.
2015-03-08 17:13:26 +03:00
ArseniyShestakov
21aaad6972
MoveHero: add transit movement option
...
Transit is new option for hero movement. If it passed for movement then hero can get get on tile without visiting of object on it.
Currently it's will be only allowed is object under destination is teleport.
2015-03-08 17:04:09 +03:00
ArseniyShestakov
25656aa586
Add showTeleportDialog everywhere except actual code for AI and player
...
Just like TeleportDialog it's based off showBlockingDialog, but as number of package is higher when possible showTeleportDialog will be after other dialogs handling code.
2015-03-08 16:52:50 +03:00
ArseniyShestakov
18535db0ef
Add TeleportDialog and CTeleportDialogQuery
...
TeleportDialog is based off BlockingDialog and it's needed for server to ask client what teleport hero should be teleported to.
It's also contain list of possible exits, identifier of currently used channel and also impassable option.
If impassable set to true then client will remember that current teleport channel is lack of exit point.
2015-03-08 16:37:33 +03:00
ArseniyShestakov
8d7b6d119f
CGameInfoCallback: add functions that gather information about teleport channels
...
This code belongs to callback because both player and AI shouldn't directly access information about teleport channels.
For example pathfinder code need to check teleport channel type only based on information about objects player already seen.
2015-03-08 16:21:14 +03:00
ArseniyShestakov
c9eba40fe6
Updated CGTeleport and new CGMonolith / CGSubterraneanGate / CGWhirlpool
...
Now CGTeleport is not publicly available handler, but generic class for teleport channels usage.
Teleport channels are stored as part of information about the map.
2015-03-08 16:11:23 +03:00
ArseniyShestakov
04a1df29ad
Add TeleportChannel / TeleportChannelID / ETeleportChannelType
...
TeleportChannel is structure that contain two vectors of entrances and exits for certain teleport channel. It's also store passability state independently which almost only useful for Player and AI as they can't know if channel passible or not until enough entrances / exits are visible or server passed them information that certain channel is impassible when they visited entrance.
ETeleportChannelType is determined by checking intersection between entrances and exit vectors or checking their size:
- IMPASSABLE: one of vectors empty or only one entrance id is same as only one exit id.
- BIDIRECTIONAL: contents of both vectors is exactly the same.
- UNIDIRECTIONAL: contents of both vectors do not intersect.
- MIXED: contents of vectors only partially intersect. Not currently used; added for future modding.
2015-03-08 15:18:53 +03:00
ArseniyShestakov
f145c82031
TerrainTile: implement exclusion for topVisitable functions
...
For pathfinder we usually want to check what object hero staying on.
Hero is always top object so we need option to exclude it.
2015-03-08 15:05:24 +03:00