SoundSSGood
6b7ce798d0
artifactTransitionPos created
2023-01-08 23:24:13 +02:00
SoundSSGood
d5cef0c069
end of battle art assembling fix
2023-01-05 17:37:14 +02:00
Ivan Savenko
a1eaf4d9c8
Do not apply Fire Shield effect that deals 0 damage
2023-01-04 17:55:19 +02:00
Ivan Savenko
85d7b470d4
Access to quests texts is now processed via translator
2023-01-01 14:56:45 +02:00
Ivan Savenko
bdb8e0ee5c
Introduced string identifiers for H3 texts, still WIP
2023-01-01 14:56:44 +02:00
Ivan Savenko
5d80457eda
Merge with vcmi/develop branch
2022-12-30 00:52:23 +02:00
Ivan Savenko
405b2976d5
Renamed getUpgradeInfo -> fillUpgradeInfo
2022-12-25 14:03:43 +02:00
Ivan Savenko
325c29da0d
Merge remote-tracking branch 'vcmi/develop' into battle_improvements
2022-12-23 14:51:34 +02:00
Ivan Savenko
9248e06ae0
Demon summon is now a spell. DEMON_SUMMONING bonus has been removed
2022-12-22 23:11:55 +02:00
Ivan Savenko
b423b3fa6b
Fix dragon breath & fire shield
2022-12-21 18:04:54 +02:00
Ivan Savenko
52fc5b3c39
Exploded mines now send ACTIVATE flag to client to play effect
2022-12-17 19:37:00 +02:00
Ivan Savenko
deffba01b9
All battle effects are now fully client sided
2022-12-17 17:35:15 +02:00
Ivan Savenko
ced2ece954
Fixes #809 - do not print error message after stepping onto mine
2022-12-17 14:40:54 +02:00
Ivan Savenko
a1ab90fb05
Creatures with double strike will not hit 2nd time after blinding
2022-12-16 21:52:46 +02:00
Ivan Savenko
60a00b450e
Multiple fixes & improvements to animation ordering
2022-12-13 21:31:49 +02:00
Ivan Savenko
c79634b6a7
Moved all animation ordering logic to callers
...
Previously, CBattleAnimation & inheritors were controlling animation
ordering - e.g. which animations should play after which.
Now, this is controlled by caller, e.g. BattleInterface & its
controllers.
H3 animations are fairly linear and can be split in stages which are
already somewhat implemented via waitForAnims
2022-12-13 21:31:49 +02:00
Ivan Savenko
b3deea24e0
Earthquake spell: do not target already destroyed sections
2022-12-13 21:31:49 +02:00
Ivan Savenko
25bceda4ea
Added convertToVisitablePos/convertFromVisitablePos to CGHeroInstance
...
This method replaces old convertPosition, but with more clear names and
without hardcoded magic constants.
2022-12-09 14:42:47 +02:00
Ivan Savenko
facf77b3ae
vstd::unique -> std::unique
2022-12-07 23:36:20 +02:00
Ivan Savenko
d85ee019ec
Removed CGHeroInstance::convertPosition method
2022-12-07 22:51:32 +02:00
Ivan Savenko
49cbd5adc9
CGHeroInstance::convertPosition is no longer static method
2022-12-07 22:34:08 +02:00
Ivan Savenko
908e6892f3
Removed CGHeroInstance::getPosition pseudo-override
...
Now access to hero visible position is always done via visitablePos
2022-12-07 22:10:08 +02:00
Ivan Savenko
2855606a88
Enabled & fixed -Woverloaded-virtual warning from gcc/cland
...
- fixed almost all instances of overloaded-virtual warning
- cleared up inheritance & method overrides in code affected by warning
2022-12-07 21:50:45 +02:00
Ivan Savenko
848454d48a
Check for end-of-battle after opening spells are cast, fixes potentially
...
infinite battle
2022-12-02 21:38:59 +02:00
nordsoft
b7cab0e01d
Merge remote-tracking branch 'upstream/develop' into battle-dialog
2022-11-30 01:03:57 +04:00
nordsoft
e865f484ff
Fix some problems with network game
2022-11-30 00:10:40 +04:00
nordsoft
e9e172164c
Implemented correct logic for battle queries
2022-11-25 03:02:34 +04:00
SoundSSGood
e6e669d024
ArtifactUtils::isSlotBackpack() func + refactoring
2022-11-18 23:13:44 +02:00
SoundSSGood
e9ab894638
backpack assemble
2022-11-18 01:55:29 +02:00
SoundSSGood
2d078132bf
assemble in backpack initial
2022-11-17 19:43:54 +02:00
nordsoft
b253b19dc3
Support draw scenario (doesnt work properly)
2022-11-16 02:50:47 +04:00
nordsoft
9b597fc8d4
Merge remote-tracking branch 'upstream/develop' into battle-dialog
2022-11-15 23:08:20 +04:00
Andrii Danylchenko
6974d4ea53
Merge pull request #1130 from IvanSavenko/banned_skills_fix
...
Fixes #1096 - do not propose banned skills on levelup
2022-11-15 09:32:12 +02:00
Ivan Savenko
729357824b
Added common method for secondary skill availability checks
2022-11-14 19:08:49 +02:00
SoundSSGood
f9738f0d0b
nullptr checks
2022-11-13 16:28:26 +02:00
SoundSSGood
aef87dd482
Apply suggested cosmetic changes
2022-11-13 15:28:09 +02:00
SoundSSGood
3142f32cbb
Fix for callback return. More code optimization
2022-11-11 01:28:04 +02:00
SoundSSGood
30db38c0fe
Unified CGameHandler::bulkMoveArtifacts and CGameHandler::bulkSwapArtifacts to one
2022-11-10 20:11:26 +02:00
SoundSSGood
ad47a7573c
Code style. Typo. Code clean up.
2022-11-10 18:29:39 +02:00
SoundSSGood
b9087e2d63
Apply suggestions from code review
...
Co-authored-by: Nordsoft91 <nordsoft@yahoo.com>
2022-11-10 17:45:54 +02:00
SoundSSGood
f2afd9e831
Update server/CGameHandler.cpp
...
Co-authored-by: Nordsoft91 <nordsoft@yahoo.com>
2022-11-10 17:37:50 +02:00
SoundSSGood
3a3b559a0b
attempt to fix the build
2022-11-07 14:20:28 +02:00
SoundSSGood
203c54e956
BulkMoveArtifacts structure optimization
2022-11-07 14:13:36 +02:00
SoundSSGood
f72a3e3884
function ArtifactUtils::checkSpellbookIsNeeded for the artifacts like a Titan's thunder
2022-11-07 00:18:05 +02:00
SoundSSGood
0f391e19d5
server side funcs
2022-11-06 23:59:30 +02:00
nordsoft
4ccad9178e
Fix potential BattleInfo destruction before usage
2022-11-06 21:46:56 +04:00
nordsoft
e9cf3ede2a
Try to handle queries by ai
2022-11-05 06:34:38 +04:00
nordsoft
0c4e50b63c
Initial prototype works
2022-11-05 03:35:51 +04:00
nordsoft
48925a50f2
Development
2022-11-05 03:35:46 +04:00
nordsoft
219a282916
First step
2022-11-05 03:35:32 +04:00
nordsoft
63b29cbaea
Code review tweaks
2022-10-08 19:52:53 +04:00
nordsoft
16e185343a
Add host commands to control game
2022-10-06 15:54:46 +04:00
nordsoft
895ec2d302
Make console available during other players' turn
2022-10-05 19:04:51 +04:00
nordsoft
77ff6a64e6
Show message about client connecting and disconnecting
2022-10-05 00:51:34 +04:00
nordsoft
0ea5a8fbe7
Merge remote-tracking branch 'upstream/develop' into mp-disconnection
...
# Conflicts:
# server/CVCMIServer.cpp
2022-10-04 17:41:43 +04:00
Andrii Danylchenko
5c44c8f4da
Merge pull request #1011 from kambala-decapitator/fix-multiple-heals
...
allow healing ability only before first turn of each round
2022-10-03 21:43:08 +03:00
nordsoft
f4b7cf8196
Transfer player ownership to AI
2022-10-03 20:47:00 +04:00
Andrey Filipenkov
52371a4d3e
allow healing ability before first turn attempt of each round
2022-10-03 15:48:39 +03:00
Tomasz Zieliński
20c102e648
Remove T prefix from new typedefs
2022-09-29 11:44:46 +02:00
Tomasz Zieliński
f386f42166
Merge remote-tracking branch 'origin/develop' into terrain-rewrite
...
# Conflicts:
# lib/Terrain.cpp
# lib/Terrain.h
# lib/battle/CBattleInfoEssentials.cpp
# lib/rmg/ObstaclePlacer.cpp
# lib/rmg/RiverPlacer.cpp
2022-09-27 07:50:17 +02:00
Nordsoft91
d4f97aadf0
Merge branch 'develop' into incomatibility-response
2022-09-25 13:26:07 +04:00
Tomasz Zieliński
4ea57ea7fc
A variety of suggested style tweaks
2022-09-25 09:33:56 +02:00
Andrey Filipenkov
ff635edc0b
wrap all library code into namespace if VCMI_LIB_NAMESPACE is defined
...
preparation for having client and server in a single process
2022-09-24 15:55:21 +03:00
Tomasz Zieliński
a5077245a8
Merge remote-tracking branch 'origin/develop' into terrain-rewrite
...
# Conflicts:
# lib/Terrain.cpp
# lib/Terrain.h
2022-09-23 20:01:13 +02:00
nordsoft
8f6f9707a6
Read error message from translate.json
2022-09-23 15:20:11 +04:00
nordsoft
e74890c4b1
Add system message about mods incompatibility
2022-09-23 15:02:45 +04:00
Andrii Danylchenko
328fe4a556
Merge pull request #952 from kambala-decapitator/fix-vampire-drain-effect
...
server-side fixes to battle events
2022-09-22 18:37:29 +03:00
Andrii Danylchenko
b4d3445559
Merge pull request #971 from kambala-decapitator/fix-warnings
...
Fix most project warnings
2022-09-22 16:05:32 +03:00
Andrey Filipenkov
1d57c40740
wrap && conditions in parentheses when near ||
2022-09-22 11:54:09 +03:00
Andrey Filipenkov
7e6ed0583c
disable all scripting code when configuring without scripting modules
2022-09-21 19:31:42 +03:00
Tomasz Zieliński
494b0f0226
First version that compiles
2022-09-21 11:34:23 +02:00
Andrey Filipenkov
87a88da3a9
add Fire Shield damage to the battle log
2022-09-21 10:42:42 +03:00
Andrey Filipenkov
b95841dabb
fix creating "creatures perished" battle log entry
2022-09-21 10:38:42 +03:00
Andrey Filipenkov
1313da191b
trigger Drain Life effects after the attack
...
- animation and sound are played after the attack
- amount of drained life appears after damage dealt in the battle log
2022-09-20 18:00:00 +03:00
DjWarmonger
7ba271edf1
Rotation rebase2 ( #912 )
...
* Instead of [x][y][z] coordinates, map will be stored as [z][x][y].
* Nullkiller AI can get it too.
* Use boost::multi_array instead of nested vectors
* In MapHandler too
* Rotate foreach algorithms, too
* VCAI gets rotated, too
2022-09-18 17:39:10 +03:00
Tomasz Zieliński
40585a66c0
Style, commend - requested
2022-09-11 11:31:28 +03:00
Tomasz Zieliński
6fb7301e8e
Fixed issue with taking creatures from a Bank, Pandora or joiners
2022-09-11 11:31:27 +03:00
Andrii Danylchenko
4b4cc3cf4b
battlefields in VLC and custom bonuses for terrain patches
2022-09-11 11:31:27 +03:00
Nordsoft91
c4035134e5
New battlegrounds ( #758 )
2022-09-11 11:31:26 +03:00
Nordsoft91
aaa07e4d2e
New terrain support - part 1 ( #755 )
...
Initial support of new terrains
2022-09-11 11:31:26 +03:00
Andrii Danylchenko
0d15089dd4
Do not remove hero if left only with commander
2022-05-01 09:30:30 +03:00
Arseniy Lartsev
bfd57ab5b5
Fixed scholar skill icon in the scholar dialog
...
The icon was for one level higher than the actuall skill level,
especially problematic for expert where right-clicking the icon
woould cause a crash
2022-03-13 16:47:52 +02:00
Dmitry Orlov
8cae3398ba
Feature: Army Management Shortcuts should work as in HD+ Mod
2021-11-28 20:00:43 +02:00
Dmitry Orlov
7cfd1fe0ca
Fix: Captured town should not be duplicated on the UI
2021-10-31 17:33:26 +02:00
Dmitry Orlov
e4c2f0c822
Fix: Skyship Grail should work immediately after capturing without battle
2021-10-31 09:01:49 +02:00
Dmitry Orlov
30b879ae5d
Fixed: duplicated bonusing building. Improved: opposite bonus propagation
2021-09-12 14:30:54 +03:00
Dmitry Orlov
2a39c401b8
Feature: Opposite Side Limiter. Added: Old saves support.
2021-09-04 14:15:38 +03:00
Dmitry Orlov
25d9ea1ddf
Feature: Opposite Side Limiter
2021-09-04 14:15:38 +03:00
Andrii Danylchenko
9c8d776398
Merge branch 'develop' into handlersAbstraction
...
# Conflicts:
# CI/linux/before_install.sh
# CI/mac/before_install.sh
# CI/mxe/before_install.sh
# lib/CModHandler.cpp
# lib/mapObjects/CObjectClassesHandler.cpp
# lib/mapObjects/CObjectClassesHandler.h
# lib/mapObjects/CommonConstructors.cpp
# server/CGameHandler.cpp
# test/CMakeLists.txt
# test/spells/effects/TeleportTest.cpp
2021-07-16 00:32:13 +03:00
Andrey Filipenkov
7f3b06eb86
fix server crash on unexpected client disconnect
2021-03-20 17:12:56 +03:00
AlexVinS
483a4689ce
Fixes for code review issues
2021-02-20 04:57:50 +03:00
AlexVinS
ecaa9f5d0b
Entities redesign and a few ERM features
...
* Made most Handlers derived from CHandlerBase and moved service API there.
* Declared existing Entity APIs.
* Added basic script context caching
* Started Lua script module
* Started Lua spell effect API
* Started script state persistence
* Started battle info callback binding
* CommitPackage removed
* Extracted spells::Caster to own header; Expanded Spell API.
* implemented !!MC:S, !!FU:E, !!FU:P, !!MA, !!VR:H, !!VR:C
* !!BU:C, !!BU:E, !!BU:G, !!BU:M implemented
* Allow use of "MC:S@varName@" to declare normal variable (technically v-variable with string key)
* Re-enabled VERM macros.
* !?GM0 added
* !?TM implemented
* Added !!MF:N
* Started !?OB, !!BM, !!HE, !!OW, !!UN
* Added basic support of w-variables
* Added support for ERM indirect variables
* Made !?FU regular trigger
* !!re (ERA loop receiver) implemented
* Fixed ERM receivers with zero args.
2021-02-14 19:05:43 +03:00
Dmitry Orlov
854a2e6c39
Feature: Mods system improvement, Part III. Bunusing buildings customization.
2021-01-14 01:02:13 +03:00
Andrii Danylchenko
3614330b3d
moat bypass when no targets to attack
2020-12-02 19:40:24 +02:00
Andrii Danylchenko
4e359cd2a3
fix automatic towers when out of ammo
2020-12-02 08:38:31 +02:00
Dmitry Orlov
39de2f6435
Fix: Morale bonus should be shown correctly
2020-11-11 22:43:40 +03:00
Dmitry Orlov
b25baf66be
Fix level up crashes: 1) Crash on double level up. 2) Crash on custom class level up.
2020-10-19 22:39:57 +03:00
Dmitry Orlov
934c4e511d
Special buildings support : Patch 1
2020-10-15 15:03:01 +03:00
Dmitry Orlov
bf07cd0ad9
Mod system improvement Part I : Old saves support & MSVS build fix
2020-10-07 15:12:32 +03:00
Dmitry Orlov
f4816b0824
Mod system improvement Part I : Special buildings should work in the modders towns
2020-10-07 12:35:11 +03:00
John Bolton
a05ae78e67
Fixed lots of warnings.
...
Disabled the following (for MSVC only) that couldn't (or shouldn't) be fixed.
4003: not enough actual parameters for macro 'identifier'
4250: 'class1' : inherits 'class2::member' via dominance
4251: 'type' : class 'type1' needs to have dll-interface to be used by clients of class 'type2'
4275: non dll-interface class 'type1' used as base for dll-interface class 'type2'
2020-10-04 02:20:18 -07:00
John Bolton
6d8f1e4530
Fixed incorrect usage of const std::shared_ptr. Resolves 0003142.
...
Replaced const TBonusListPtr with TConstBonusListPtr where necessary
Replaced const std::shared_ptr<T> with std::shared_ptr<const T> where necessary.
Removed superfluous use of const.
Replaced const std::shared_ptr<T> with const std::shared_ptr<T> & in function parameters and ranged for-loops.
2020-09-30 22:56:28 -07:00
Dmitry Orlov
38fd05f655
Minor fix: apply Monday bonuses to heroes who have slept overnight
2020-09-28 01:32:33 +03:00
Toney Sui
dca5d86e7a
Fix bug: LandMine is not exploding to enemies. ( #630 )
...
* The reason is,
the mine has attribute hidden=true;
when enemy unit moves, the code in BattleInfo.cpp MoveUnit() (line 817) will update the revealed to true;
then in the CGameHandler.cpp handleDamageFromObstacle() (line 4846) is checking , and the condition battleIsObstacleVisibleForSide() will return true, so the effect will not be triggerred.
Resolution:
1. Remove the "revealed=true" in moveUnit(), and in handleDamageFromObstacle, remove the "const" restrict for obstacle, and then update revealed to true;
2. After the takeDamage function, add a pack "BattleObstaclesChanged" to update the obstacle to be "revealed=true".
2020-02-12 20:12:12 +03:00
Dydzio
2f15ca9406
Do not build pseudo-buildings explicitly with events
2019-06-04 22:29:07 +02:00
Dydzio
e1b72ead6e
Update CGameHandler.cpp
...
Fix hero recruit serverside check
2019-06-01 20:29:49 +03:00
Dydzio
f49bd3f18b
Do not display warning if player already lost
2019-05-28 22:34:55 +02:00
Ewilhan
ec4797d856
Fix Neutral Creatures Weekly Growth
...
Made it so neutral creatures could not be picked as "Flavour of the Week".
It is checking neutral creatures hometown to do so.
Fixes #3046 .
2019-05-06 14:12:14 +01:00
Dydzio
e1857df4bb
Fix defense battle action logic ( #563 )
...
* Fix defense battle action logic
2019-03-25 02:16:47 +03:00
Alexander Shishkin
549d8c97df
Merge pull request #557 from dydzio0614/CrystalDragonAbility
...
Fix crystal dragon ability to match H3
2019-03-21 17:02:20 +03:00
Dydzio
53f4ba6464
Fix crystal dragon ability to match H3
2019-03-17 19:48:47 +01:00
Dydzio
36cb9f11c4
Hardcoded feature: no random week/month effects
2019-03-17 18:27:05 +01:00
Alexander Shishkin
b00e935e4d
Warnings fixes ( #538 )
...
Warnings fixes
* Suppress `missing-braces` for Clang
* Fixed many C4275 warnings
* Fixed almost all Clang/GCC warnings
* Silence most frequent MSVC warning.
* Fixed some pessimizing-move warnings
* Fixed some unused capture warnings
2019-01-19 13:52:02 +03:00
AlexVinS
da20aa2388
Use the same cost value in Pathfinder and fuzzy evaluations.
2019-01-17 10:54:41 +03:00
Andrii Danylchenko
035d279ae8
Refactor CGHeroInstance, make spells private
2018-12-23 15:49:26 +03:00
Andrii Danylchenko
6ac987794c
AI: first rule extracted for pathfinder
2018-09-23 15:26:53 +03:00
Konstantin Vukolov
96215233bc
macOS: fix packet deserialization ( #479 )
2018-08-14 01:03:45 +03:00
Alexander Shishkin
84be667363
Merge pull request #463 from dydzio0614/skel_transformer_fix
...
Fix bone/ghost dragon handling in skeleton transformer
2018-07-19 00:03:32 +03:00
Dydzio
301b70ddd8
Fix bone/ghost dragon handling in skeleton transformer
2018-07-18 20:21:19 +02:00
Dydzio
d5d2c65c4b
Fix counterattack wrong mechanics
2018-07-18 15:52:33 +02:00
Arseniy Shestakov
74e5c5bf05
CGameHandler: rename CPackForClient argument and add network logging
2018-04-04 14:24:32 +07:00
Arseniy Shestakov
ac66fc7f42
Full rework of pre-game interface and networking
...
New features for players:
* Loading for multiplayer. Any save could be used for multiplayer.
* Restart for multiplayer. All clients will restart together.
* Loading from single save.
* Hotseat mixed with network game. Multiple players per client.
* Now connection to server could be cancelled.
* Return to menu on disconnections instead of crashes.
* Restoring of last selected map, save or campaign on next run.
TLDR on important changes in engine code:
* UI: work with server separated from UI
* UI: all explitic blitting replaced with IntObject's
* UI: all new code use smart pointers instead of DISPOSE
* Gameplay always start through lobby controlled by server.
* Threads receiving netpacks now shared for lobby and gameplay.
* Campaigns: heroes for crossover now serialized as JsonNode.
2018-04-04 14:24:26 +07:00
AlexVinS
03cfd2cb78
Do not use StackLocation in netpacks
2018-03-17 13:24:12 +08:00
AlexVinS
8cec07afbd
Replaced CGHeroInstance and CGObjectInstance with ObjectInstanceID in NetPacks
2018-03-17 13:24:12 +08:00
Henning Koehler
7f76648a7c
Extend Bonus.addInfo to integer vector ( #427 )
...
* changed Bonus::additionalInfo to integer vector
* fixed deserialization for old savegames
* removed newline from JsonNode::toJson()
* updated bonus schema; SPELL_AFTER_ATTACK and SPELL_BEFORE_ATTACK use new addInfo format
* removed unnecessary init in Bonus constructor
2018-03-12 08:20:18 +03:00
ArseniyShestakov
079cd470c2
Merge pull request #425 from vcmi/CatapultRework
...
Catapult rework
2018-03-06 01:16:53 +08:00
Dydzio
07cf59592b
Updated catapult spell effect to match new code
2018-03-05 12:55:44 +01:00
AlexVinS
f126a34a5e
Fixed https://bugs.vcmi.eu/view.php?id=2904
2018-03-04 11:15:24 +03:00
Dydzio
fb9ee9ddf7
Visual fix - destroy shooters together with tower
2018-03-02 15:36:44 +01:00
Dydzio
e68a2e7ef5
Fix arrow tower destruction mechanics
2018-03-02 15:23:07 +01:00
Dydzio
b55d506e22
Grant advanced catapult proficiency with CATAPULT_EXTRA_SHOTS
2018-03-02 13:46:14 +01:00
Alexander Shishkin
8b002ad774
Issue2888 ( #421 )
...
Fixed issue 2888
* Merged AFTER_ATTACK & BEFORE_ATTACK cast modes.
* Introduced new caster class for creature ability usage
* Added few tests
2018-03-02 13:22:51 +03:00
Arseniy Shestakov
8bbe747e8e
Cleanup undef for min / max. NOMINMAX is already in Global.h
2018-02-11 05:42:49 +03:00
Ivan Romanov
eea50a044c
Hide "this statement may fall through" warnings
2018-02-10 22:27:00 +05:00
AlexVinS
35b01eb379
Fixed https://bugs.vcmi.eu/view.php?id=2466
2018-02-10 08:37:15 +03:00
AlexVinS
c94daf6faa
Fixed https://bugs.vcmi.eu/view.php?id=2864
2018-02-10 07:31:02 +03:00
AlexVinS
b194f8f13b
Fixed https://bugs.vcmi.eu/view.php?id=2865
2018-02-10 00:02: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
Arseniy Shestakov
7c77249d37
Refactoring: get rid of macro in server-side request validation code
2018-01-28 08:03:48 +03:00
Arseniy Shestakov
da117e9255
Code style: remove void from constructors without arguments
2018-01-13 11:51:47 +03:00
DjWarmonger
c2a0b13332
Merge pull request #371 from dydzio0614/NewAbilities
...
Tested and approved. Congrats!
2017-12-29 14:19:05 +01:00
Dydzio
da6d01b0c7
Ability rename + bugfix + changelog extend
2017-11-13 01:59:41 +01:00
Alexander Shishkin
fd4ecbd40b
Merge pull request #385 from Chocimier/altar
...
Fixed "Altar of Sacrifice only sacrifices creatures one kind at a time"
* https://bugs.vcmi.eu/view.php?id=2607
2017-10-28 14:04:34 +03:00
Piotr Wójcik
7171fa7ad4
Formatting
2017-10-28 11:04:55 +02:00
AlexVinS
c39cd5f951
Town building build mode fixes
...
* CGameHandler::buildStructure was using wrong requirements for buildings in auto mode.
* Build mode loading was wrong in case of omitted value
* Show town hall slot for not built building only if it have normal build mode
2017-10-28 03:27:39 +03:00
Piotr Wójcik
58b427345f
Constify
2017-10-18 21:39:04 +02:00
Piotr Wójcik
f9ed952869
Properly calculate experience on altar
2017-10-14 22:10:59 +02:00
Piotr Wójcik
f145b4be91
Correctly sacrifice many stacks or many atrifacts, fixes #2607
2017-10-14 21:30:56 +02:00
Dydzio
14c07afd3c
Merge branch 'develop' into NewAbilities
2017-09-09 21:04:40 +02:00
Dydzio
3eef689005
Add TERMINATOR ability support, small fixes
2017-09-09 21:01:12 +02:00
Dydzio
d2e9848443
Fix RANGED_RETALIATION bug
2017-09-04 23:35:48 +02:00
Dydzio
4cab76900f
Add SYNERGY_TARGET and [wip]-SHOOTS_ALL_ADJACENT
2017-09-04 23:32:24 +02:00
Henning Koehler
31ca4db8bd
fixed manual control for arrow towers
2017-09-05 00:30:43 +12:00
Henning Koehler
654ca96e9d
fixed code format and other minor issues
2017-08-30 19:19:54 +12:00
Henning Koehler
69a538a600
added bonus type MANUAL_CONTROL
2017-08-28 20:09:27 +12:00
Henning Koehler
7e5c1ec7f8
made artillery bonus-based; supports multiple bonus shots
2017-08-27 21:05:17 +12:00
Henning Koehler
8bdb8f01ca
made scholar skill bonus-based
2017-08-27 20:10:25 +12:00
Henning Koehler
25e6b5cc07
added bonus type SECONDARY_SKILL_VAL2; refactored CSkillHandler::defaultBonus; made eagleEye level bonus-based
2017-08-27 17:40:52 +12:00
Henning Koehler
fc77c40a82
made ballistics bonus-based
2017-08-26 21:16:05 +12:00
Henning Koehler
19e619f61e
wisdom is now bonus-based
2017-08-26 20:49:29 +12:00
Dydzio
1df939bf70
Working FIRST_STRIKE ability
2017-08-19 20:39:24 +02:00
AlexVinS
8c0fab1dcf
fixes
2017-08-12 14:36:37 +03: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
046e1a7c29
Prepared JsonNode for new logging API.
2017-08-11 16:27:42 +03:00
ArseniyShestakov
cb40c093f8
Avoid boost::optional assignment for Boost 1.64 compatibility ( #360 )
...
Two options here: to use emplace from 1.56 or boost::make_optional.
Unfortunately Ubuntu 14.04 is using 1.54 and I'd rather not to break it.
2017-08-05 16:09:29 +03:00
Arseniy Shestakov
6d9f99d4de
Code style: and one more pass on lambda expressions parameter list
2017-07-19 02:11:17 +03:00
ArseniyShestakov
b52cfe5283
Code style: use parentheses for creating heap-based objects ( #344 )
2017-07-16 12:58:05 +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
ArseniyShestakov
006fa6c6df
Merge pull request #332 from FeniksFire/SmallBugFix
...
Fix handling damage from obstacles
2017-07-15 00:09:37 +03:00
AlexVinS
df13851176
fixed wrong battle result
2017-07-14 23:43:03 +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
e677373241
tweak
2017-07-10 08:53:29 +03:00
AlexVinS
1fe01b7254
Moved defensive stance log message building to server side.
2017-07-10 04:05:36 +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
FeniksFire
43d324b561
Fix handling damage when stack wait in moat.
...
Currently stack don't take any damage from moat when he stay in same
place.
2017-07-09 15:07:20 +02:00
FeniksFire
ce09da783a
Fix taking double damage from the same moat.
...
When stack move to the double moat in the fortress, he will be damaged
twice. I fixed it like in original h3, now stack will be damaged once a
time.
2017-07-08 21:44:26 +02: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
FeniksFire
45a63e003c
Fix: getting additional damage from destination obstacles
...
When the stack was selected to pass through 2 field in moat, first hex
stopped him but then he got also additional damage from destination
obstacle.
2017-07-08 17:40:27 +02:00
ArseniyShestakov
b670bcb46f
Merge pull request #313 from vcmi/spellCastQuery
...
Spell cast query
2017-07-04 02:43:22 +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
ArseniyShestakov
5dfb7a5771
Merge pull request #317 from vcmi/attackerOwned
...
Refactored CStack::attackerOwned to CStack::side
2017-07-03 16:19:54 +03:00
AlexVinS
e4c14c4cc2
avoid assertions in stack position checks
2017-07-03 12:59:33 +03:00
AlexVinS
4f8c7bd4bb
CStack refactoring
...
* removed all occurrences of attackerOwned
* Use BattleSide enum
* more tweaks
2017-07-01 19:17:08 +03:00
ArseniyShestakov
2f305cc68d
Remove code related to duel mode ( #312 )
...
Remove code related to duel mode
2017-07-01 16:30:13 +03:00
FeniksFire
4113bdab01
Moving some files from lib to the battle subdirectory.
2017-06-26 15:26:08 +02:00
AlexVinS
bb0f388f23
Cheat 'vcminahar' now give FREE_SHIP_BOARDING bonus
...
https://bugs.vcmi.eu/view.php?id=2092
2017-06-14 11:41:36 +03:00
AlexVinS
754d63f7a5
hack-fixed ENCHANTED trigger for first 2 rounds
2017-06-13 21:50:59 +03: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
0190c9804e
formatting
2017-06-06 19:45:34 +03:00
AlexVinS
a31c28ec33
Unified war machine mechanics.
...
* it is possible to define new war machines
* added warMachine field to artifact configuration
2017-06-06 19:18:26 +03:00
Arseniy Shestakov
a2284c3209
Automated testing: graceful shutdown for when game is ended
...
Before when CloseServer / LeaveGame applied there was no thread sync on server.
Now server use std::atomic bool for synchronization and graceful shutdown.
2017-06-06 07:30:16 +03:00
Arseniy Shestakov
18161d3688
Client: implement spectator mode via command-line options
...
If running with --spectate/-s CPlayerInterface will appear even without human players.
Following command-line options also available:
--spectate-ignore-hero
--spectate-hero-speed=N
--spectate-battle-speed=N
--spectate-skip-battle
--spectate-skip-battle-result
Boolean options can also be changed in runtime via client console:
set spectate-ignore-hero on / off
Spectator mode also:
- Work with --onlyAI option when starting game or loading saves.
- Allow to use any cheat codes.
- Give recon on towns and heroes.
2017-06-06 07:30:16 +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
Arseniy Shestakov
bc6f65af04
PlayerCheated: new netpack to apply losing / winning cheat code
2017-06-02 03:34:50 +03:00
Arseniy Shestakov
4b0f702e7e
Add LeaveGame netpack and avoid replying on it and CloseServer
2017-06-02 02:51:44 +03:00
Arseniy Shestakov
cc163c4e05
Refactoring of networking code on server and client
...
* Avoid server crash on dummy connect / disconnect.
* Avoid server crash when host left from PreGame.
* Server print it's state with name when it's waiting for connection or in pregame.
* Server will use random port if specified port is busy.
2017-06-02 02:44:39 +03:00
Arseniy Shestakov
9b867808a7
Multiplayer: threat disconnected player just like if he lost
...
Now even if player disconnected on it's own turn game will continue.
2017-05-31 08:04:31 +03:00
Arseniy Shestakov
db5a52a0f8
Multiplayer: gracefully handle player loss unless it's a host
...
We don't want server to shutdown after just one of players lost the game.
2017-05-31 08:04:26 +03:00
FeniksFire
039e3842fc
Aesthetic changes in BattleHex ( #303 )
2017-05-29 10:33:34 +03:00
AlexVinS
25d06c8d70
Fixed CID 1375686
2017-05-28 15:00:55 +03:00
AlexVinS
3c893a6bec
Few spell-related tweaks
2017-03-18 14:08:02 +03:00
AlexVinS
5da109ad30
tweaks
2017-03-18 13:25:12 +03:00
FeniksFire
3de891b4b4
Moving/dividing classes from BattleState to separate files.
2017-03-17 16:48:44 +01:00
Michał Janiszewski
f5ebc763b4
Add override
keyword where applicable
2017-02-17 14:39:16 +01:00
Dydzio
86fe44d9ac
Counterattack correction. Fixes bug #2501
...
Creatures should not be able to counterattack multiple times during one opponent attack under any circumstances.
2017-02-10 00:36:15 +01:00
dydzio
21f4a0ba60
Implement ranged counterattack
2017-02-04 10:33:45 +01:00
Dydzio
6c8ef79727
Merge branch 'develop' into MakeWOGGreatAgain
2017-02-01 23:14:36 +01:00
dydzio
cffa616bf1
Refactor SOUL_STEAL bonus handler
2017-02-01 22:58:31 +01:00
dydzio
4c4539b00e
Rename ADVANCED_CATAPULT bonus to reflect the purpose better
2017-02-01 15:05:46 +01:00
dydzio
a8f04aede7
Extend creature siege support. Fix bug #2600
2017-02-01 11:25:57 +01:00
dydzio
b5bfb763fd
Allow different subtypes of SOUL_STEAL work concurrently
2017-01-29 14:45:36 +01:00
dydzio
330c0961b7
Add missing code fix
2017-01-29 12:52:18 +01:00
dydzio
2f1f725ae6
Code improvements, minor fixes
2017-01-29 11:50:37 +01:00
dydzio
f447e44427
Add missing skill description, handler refactoring
2017-01-26 21:24:01 +01:00
dydzio
3e285c2004
Add santa gremlin missing creature ability, fix shooter init bug
2017-01-26 20:53:28 +01:00
dydzio
daec6d933c
Add "WoG werewolf"-like ability support
2017-01-22 20:28:08 +01:00
dydzio
c310138fc3
Add WoG ghost ability support
2017-01-20 15:48:45 +01:00
AlexVinS
eeb21d2446
fixed regression
2016-11-28 05:19:44 +03:00
AlexVinS
2a62ca9522
Fixed CID 1197353
2016-11-28 02:50:43 +03:00
AlexVinS
60b1a9ac52
Fixed CID 1197370, CID 1197369, CID 1197371, CID 1197372, CID 1197374, CID 1288881, CID 1197376
2016-11-27 23:18:21 +03:00
AlexVinS
609c6f81bd
Fixed a few CWE-457
2016-11-27 22:37:41 +03:00
AlexVinS
abe4beebc6
Fixed CID 1197516
2016-11-27 19:13:40 +03:00
AlexVinS
4b2bbd0d76
Fixed CID 1288864
2016-11-26 22:06:12 +03:00
AlexVinS
7befacfb1e
Simplify CGameHandler::makeBattleAction
2016-11-26 20:50:05 +03:00
AlexVinS
86e33a4c45
[Refactoring] Unified SetResources NetPack API.
2016-11-26 15:14:43 +03:00
AlexVinS
0e57825679
Fixed CID 1197463
2016-11-25 21:17:24 +03:00
DjWarmonger
9db3bfcbf2
Merge pull request #212 from vcmi/refactoring/serialization2
...
Apparently it works - both new and old saves load at least.
2016-11-01 17:25:39 +01:00
Vadim Markovtsev
24793e115c
Fix formatting
2016-10-29 13:45:08 +02:00
Vadim Markovtsev
dccc25268c
Fix the initial creature spells at battle start
...
Before: built-in spells appear on first move of the creature
After: all built-in spells appear before the first move but after tactics
Example: Air Shield for experienced skeletons
2016-10-28 23:37:45 +02:00
Ivan Savenko
5b76c3f4eb
Rebase of codebase changes for refactored serializer
...
Some of newer fixes not yet merged there and save compatibility a bit off.
2016-10-27 18:12:20 +03:00
Vadim Markovtsev
6fe5f2a7f6
Fix segfault / assertion failure during battle
...
The cause of the assertion failure at BattleStackAttacked::applyGs "at"
was shooting and casting some spell in handleAttackBeforeCasting() and
eventually killing the whole stack. Fix: filter dead stacks in the end of
handleAttackBeforeCasting().
2016-10-12 19:11:12 +02:00
Vadim Markovtsev
76ac9991ed
Format code
2016-10-12 17:22:35 +02:00
Vadim Markovtsev
34cf92cb9b
Change logging style
2016-10-03 20:32:01 +02:00
Vadim Markovtsev
eac5aab396
Survive client<->server ABI mismatch
2016-10-02 22:45:00 +02:00
AlexVinS
723734fd04
Fixed commander always dies.
2016-10-02 17:15:25 +03:00
Arseniy Shestakov
7b7958c548
Cheat codes: add option to apply cheats on different players
...
All suitable codes can now be used with "ai", "all" color or with object ID:
vcminahar all - will apply cheat to all heroes of all players
vcminahar ai - will apply cheat to all heroes of AI players
vcminahar blue - will apply it to all heroes of blue player
vcminahar 553 - will apply cheat to hero with instance id of 553 if it's exist
Cheats without options work as before.
2016-10-02 16:21:46 +03:00
AlexVinS
cd5c0b3297
Style tweaks.
2016-10-02 15:22:55 +03:00
AlexVinS
a1ff409080
Tweak
...
* handle BIND_EFFECT by bonus type
2016-10-01 08:04:39 +03:00
AlexVinS
72461c5c2e
Fixed http://bugs.vcmi.eu/view.php?id=2268
2016-09-29 23:14:22 +03:00
AlexVinS
9097ffbd8a
Handle HYPNOTIZE effect in case of FEAR and ENCHANTED effects
2016-09-29 22:26:28 +03:00
AlexVinS
83b3c700dd
Handle HYPNOTIZE effect in case of mana drain
2016-09-29 21:47:41 +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