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
Nikolay Shalakin
3795985de9
Eliminate warnings / errors. Pull request #388
2018-02-11 15:17:14 +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
Dydzio
38d836d1a5
Update project files to Visual Studio 2017
2018-01-13 16:33:49 +01: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
Michał Kalinowski
26a222ac62
Change JsonType to enum class ( #393 )
...
Change enum JsonType to enum class JsonType
2017-11-27 00:18:18 +03:00
Dydzio
da6d01b0c7
Ability rename + bugfix + changelog extend
2017-11-13 01:59:41 +01:00
AlexVinS
8b5cbf6ba7
fix
2017-11-01 07:42:58 +03: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
Arseniy Shestakov
8180e4d5c5
VCMIDirs: improvements for development on Mac and Linux
...
Also added /usr/share/games in VCMIDirsXDG::dataPaths for mantis#2189.
2017-08-25 08:43:27 +03:00
Dydzio
1df939bf70
Working FIRST_STRIKE ability
2017-08-19 20:39:24 +02:00
Dydzio
ea17b0f458
Major overhaul of VS related files
2017-08-19 15:58:55 +02:00
Dydzio
e3ba491fa1
Use multi-core compile by default, fix VCMI_client path
2017-08-19 13:27:24 +02:00
Arseniy Shestakov
fee999300e
VCMIDirs: add hack to run from single directory on Mac and Linux
...
Also change working directory to where binary is on all platforms except Android
2017-08-16 16:10:08 +03:00
Arseniy Shestakov
40af43c46e
CMake: massive rework for Mac build and other improvements
...
- macOS: RPATH-related code all removed or disabled
- macOS: new osx/CMakeLists.txt to run some install-code running after all subdirectories
- Assets copying into the runtime output directory implemented for Mac and Linux development
2017-08-16 16:10:07 +03:00
Arseniy Shestakov
56f89270db
macOS: full rework of Mac packaging process
...
- Most of outdated CMakeLists code removed.
- All Mac-specific code is removed include Sparkle support and vcmibuilder app.
- DMG buidling reimplemented using macdeployqt command.
2017-08-16 16:10:07 +03:00
Arseniy Shestakov
193f492b99
CMake: cleanup, project generation and other improvements
...
- Use EXCLUDE_FROM_ALL for FuzzyLite and GoogleTest to avoid inclusion of unneded headers and libraries into installers.
- Set minimum CMake version only in main CMakeLists.txt
- Set project name only in main CMakeLists.txt
- Visual Studio: add assign_source_group function to generate proper filesystem tree
- Visual Studio: set PROJECT_LABEL so generated projects have same names binaries on Windows
- Visual Studio: enabled USE_FOLDERS for projects grouping. This also possibly affect other IDEs.
- Added add_subdirectory_with_folder function to make sure 3rd-party libraries are affected by USE_FOLDERS.
2017-08-16 16:10:07 +03: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
a8a3230798
Logging cleanup (server).
2017-08-11 16:50:00 +03:00
AlexVinS
046e1a7c29
Prepared JsonNode for new logging API.
2017-08-11 16:27:42 +03:00
Arseniy Shestakov
21074e13c3
macOS: always change working directory for launcher and server
...
This make relative paths work properly when launched from DMG or from different directory.
2017-08-09 01:33:12 +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
ArseniyShestakov
9d9c026c85
Code style: serialize everything on own lines for easier debugging ( #357 )
2017-07-31 16:35:42 +03:00
Arseniy Shestakov
6d9f99d4de
Code style: and one more pass on lambda expressions parameter list
2017-07-19 02:11:17 +03:00
Arseniy Shestakov
2da3d8a563
Code style: remove senseless comments
2017-07-18 00:04:00 +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
Victor Luchits
30cc2f6a01
Change the output path for cmake so all files go into the same root directory
2017-07-07 13:08:53 +03:00
ArseniyShestakov
b670bcb46f
Merge pull request #313 from vcmi/spellCastQuery
...
Spell cast query
2017-07-04 02:43:22 +03:00
AlexVinS
dbaf3cb023
Cleanup & formatting
2017-07-04 01:32:40 +03:00
FeniksFire
8577445b10
Simple fix: http://bugs.vcmi.eu/view.php?id=2366
2017-07-03 22:41:16 +03:00
AlexVinS
a65befaa08
Moved town portal logic to mechanics class
2017-07-03 21:43:04 +03:00
AlexVinS
3d1a84875e
Queries refactoring
...
* Moved SUMMON_BOAT special case to mechanics
* Partially moved Town portal logic to mechanics class
* Added generic query reply to CCallback
* Redesigned Queries so that base API do not depends on CGameHandler
* Got rid of CGameHandler::castSpellRequest
* Removed CGameHandler::castSpell
* Added new Query type for town portal dialog (not used yet)
2017-07-03 21:43:04 +03:00
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
Arseniy Shestakov
fb19a3a068
CMake: update all CMakeLists to include actual sources and headers
...
This make it easier to use project with newer CMake and Qt Creator.
I decided against using GLOB since we don't rename files that much.
2017-06-29 02:03:37 +03:00
ArseniyShestakov
bd27636cd9
Merge pull request #316 from FeniksFire/improvingTheBattle
...
Refactoring.
2017-06-28 19:55:03 +03:00
FeniksFire
4113bdab01
Moving some files from lib to the battle subdirectory.
2017-06-26 15:26:08 +02:00
Arseniy Shestakov
eeff7ee315
Few minor code improvements
...
* All command line options now case insensetive.
* SDL_VIDEO_X11_DGAMOUS unused in SDL2 so it's removed.
* Added current year into the --help output for client and server.
* Moved DO_NOT_START_SERVER into session settings.
2017-06-26 04:56:28 +03: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
1a60c1a94b
Shared memory refactoring and command line control options
...
Now client accept following options:
--disable-shm - disable shared memory usage
--enable-shm-uuid - use UUID for shared memory identifier
UUID is useful when a lot of clients starting simultaneously.
Needed for testing and was easier to implement than alternatives.
2017-06-06 07:30:16 +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
AlexVinS
c82afe7156
switch CMapService API to ResourceID
2017-06-04 22:42:48 +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
c7e7a4d7be
Make usage of boost::interprocess optional
...
If shared memory allocation failed on client server will be started without shared memory option.
Only downside of this is that server wouldn't be able to fallback to random port if default is busy.
2017-06-02 02:44:41 +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
Fay
b5daa24982
Android support ( #299 )
...
* AI libs registering shenanigans on android;
* Fixed resolution aspect + mouse event scaling;
* Proper server init/deinit (through android IPC);
Enabled threaded init in CMT;
* Prevented a deadlock in logger on some devices;
* Fixed frozen intro frame after interrupting the video;
Added android progressbar displaying during initial data loading;
* Hacky fix for choppy animations during heroes movement (should look better now, but it's definitely not a good solution);
* Changes/fixes for new android launcher building process;
* Fixed app hang after getting SDL_QUIT when activity was destroyed;
* Functioanal, configurable advmap swiping support;
* VCMI changes cleanup;
Added few missing VCMI_ANDROID guards on swipe mechanics;
* Removed unneeded sleep in server startup code for android;
* Removed android ioapi hack (fixed in newest ndk);
* Removed unused android's library loading logic;
* Added android's swipe option to settings schema;
* Moved NO_STD_TOSTRING to be defined in global.h instead of build files;
2017-05-25 20:57:20 +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
DjWarmonger
80d5f7b4a4
Updated project files to MVS 2015 (in fact, it's trivial).
2016-12-12 19:14:45 +01:00
AlexVinS
204ee37ae4
boost/program_options has only 2 uses, and unlikely will be used more -> removed form Global.h.
2016-11-28 21:38:17 +03: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
AlexVinS
e7a0bd690a
Fixed CID 1197453
2016-11-25 17:39:06 +03:00
AlexVinS
dc39fb2d14
Removed useless CPack::type field.
...
* it was an ancient network protocol artifact
2016-11-18 17:45:59 +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
Ivan Savenko
256f43f467
Fixes zero-initialized fileVersion member in deserializer
2016-10-29 19:52:19 +03: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
Arseniy Shestakov
15b4774076
Logging: always print version of client and server in the begining
2016-10-27 17:14:20 +03:00
Arseniy Shestakov
cb3d6a24e7
Cmake: cleanup for commit hash in build version
...
Since it's available in lib we don't need to include it everywhere.
2016-10-27 17:01:29 +03:00
Vadim Markovtsev
da1c9cf249
Fix rebuilding everything on HEAD change
2016-10-23 16:56:53 +02:00
Vadim Markovtsev
d0beb27197
Add git commit hash into the version string
2016-10-23 15:45:47 +02: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
23b7a803b6
cleanup
2016-10-01 20:07:36 +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
AlexVinS
34b8b2c91b
Fixed Berserk spell effect aka Bonus::ATTACKS_NEAREST_CREATURE
...
* issue http://bugs.vcmi.eu/view.php?id=2513
* fix is not retroactive
2016-09-29 14:11:15 +03:00
AlexVinS
8f18dec5e3
Cleanup
2016-09-29 12:13:06 +03:00
AlexVinS
7874dffa7d
fixed http://bugs.vcmi.eu/view.php?id=2282
2016-09-24 10:06:24 +03:00
AlexVinS
62d272f3e5
Cleanup
2016-09-22 21:35:37 +03:00
AlexVinS
ea2e336f54
Merge branch 'develop' into SpellsRefactoring8
2016-09-22 16:40:32 +03:00
Arseniy Shestakov
58f90b736b
New cheat vcmiungoliant: hide all tiles that out of sight radius
2016-09-20 10:51:57 +03:00
Arseniy Shestakov
75cffa7d0b
CGameHandler::arrangeStacks: honour removableUnits of CGGarrison
...
Now server properly check allowed actions for CGGarrison. Fix issue 2303
Server now allow all stack arrangement as long as troops stay inside garrison.
It's possible to put more troops inside using swap/merge/split, but not take anything out if it.
2016-09-19 03:20:44 +03:00
AlexVinS
ef34d21941
Passive cast can be blocked by spell level limit.
2016-09-18 17:21:56 +03:00
AlexVinS
dcb0e8a0c1
Tweak
2016-09-18 13:39:02 +03:00
Arseniy Shestakov
1d45d214e5
CGameHandler refactoring: when possible only use const data
...
We only change gamestate via netpacks so there is absolutely no reason to use non-const pointers and functions in GH.
2016-09-18 11:53:51 +03:00
AlexVinS
d993710f8e
Merge branch 'develop' into SpellsRefactoring8
2016-09-17 20:29:44 +03:00
Arseniy Shestakov
7ae4e70134
CGameHandler: fix player id logging
2016-09-17 00:05:10 +03:00
Arseniy Shestakov
ea65fb15c2
CVCMIServer: do not crash if port not specified
2016-09-16 20:01:07 +03:00
AlexVinS
505e53c17d
Merge remote-tracking branch 'remotes/origin/develop' into SpellsRefactoring8
...
# Conflicts:
# client/battle/CBattleInterface.cpp
# lib/spells/BattleSpellMechanics.cpp
2016-09-12 10:13:40 +03:00
AlexVinS
33d1895d21
Merge branch 'develop' into SpellsRefactoring8
2016-09-11 18:34:18 +03:00
Arseniy Shestakov
fe6c0cf89b
Use RandomGeneratorUtil::randomShuffle for reproducible gameplay
2016-09-11 00:10:52 +03:00
Arseniy Shestakov
c8faca8f39
Refactoring: only use RNGs explicitly to avoid bug prone code in future
...
Now server-side code should always use CRandomGenerator::getDefault which is serialized in GH.
CGameState::getRandomGenerator should be only used from GS code and CPackForClient-based applyGs.
2016-09-11 00:10:46 +03:00
AlexVinS
f8767a6380
cleanup
2016-09-10 09:37:18 +03:00
Arseniy Shestakov
70abae9b51
CGameState::battleGetBattlefieldType: use RNG by ref
...
For now I not sure about proper place for battleGetBattlefieldType so I left it in GS
2016-09-09 23:16:43 +03:00
Arseniy Shestakov
ea63497b19
Move CGameState::setupBattle code to CGameHandler::setupBattle
...
No reason to keep this code in GS.
2016-09-09 23:16:43 +03:00
Arseniy Shestakov
53502e84e3
Add PrepareHeroLevelUp netpack to keep secondary skills RNG in sync
2016-09-09 23:16:43 +03:00
Arseniy Shestakov
ca819b3cda
CGHeroInstance::nextPrimarySkill: don't use GS RNG directly
...
Code used from both GS and CGameHandler.
2016-09-09 23:16:42 +03:00
Arseniy Shestakov
c8bcb14d34
CCallbackBase: add CRandomGenerator to all callbacks
...
This is easiest way to make server RNG available to CBattleInfoCallback.
Now server, client and gamestate have own RNG instance.
Only server and gamestate RNGs are serialized.
2016-09-09 23:16:42 +03:00
Arseniy Shestakov
85f49bc968
CGHeroInstance::initArmy: don't use GS RNG. Get RNG through a ref
...
This function used by both server-side and gamestate so it's must use appropriate random source.
2016-09-09 23:16:42 +03:00
Arseniy Shestakov
2ba3b20928
Multiple changes to RNG usage to both client and server
...
Server should never use RNG from CGameState directly.
Instead server get's own RNG that's state is secret for client.
2016-09-09 23:16:42 +03:00
Arseniy Shestakov
6747555339
CGameHandler: use ObjProperty enum instead of magic numbers
2016-09-09 17:42:16 +03:00
Arseniy Shestakov
d06d07a39b
Add ChangeFormation netpack to avoid MP desyncs
...
Previous code was working fine for single client, but would cause desync in multiplayer. Fix issue 2460.
2016-09-08 19:29:15 +03:00
AlexVinS
1ce4675df6
Tweaks
2016-09-06 13:33:11 +03:00
AlexVinS
686cd00c68
Cleanup.
2016-09-06 12:26:01 +03:00
AlexVinS
18fc94d709
WIP on SpellCastContext
2016-09-06 06:40:23 +03:00
AlexVinS
d4a35c6839
Simplify getAffectedStacks arguments. casterColor not needed anymore.
2016-08-30 12:14:08 +03:00
AlexVinS
85f94676a5
Server: convert logging
2016-08-30 01:13:07 +03:00
Alexander Shishkin
5e5ce0bb09
Merge pull request #203 from vcmi/logFormat
...
boost::format support for CLogger
2016-08-29 17:32:44 +04:00
Arseniy Shestakov
abad3cfb17
PlayerState::daysWithoutCastle: change in netpacks only. Fix issue 2462
...
Moving code from CGameHandler to NetPacksLib without changes.
2016-08-23 08:02:04 +03:00
AlexVinS
439aeecc8b
[c::b] re-enabled PCH, tested with GCC 5.3. (Older versions may not work)
2016-08-18 13:40:35 +03:00
Arseniy Shestakov
948cca02cc
Fixes to some crashes on exit and to have cleaner valgrind output
2016-08-18 06:52:10 +03:00
Arseniy Shestakov
39fe9472b6
CGameHandler::moveArtifact: check lock status by slot instead of id
...
This one fix issue 2455. We still need to do something with ArtifactID::ART_LOCK or ids for artifact from mods since they might conflict with each other.
2016-08-18 06:35:29 +03:00
AlexVinS
e7f2858d33
Use make_unique for TurnInfo in CGameHandler.
...
* Fixes use after free @CGameHandler.cpp:2093
2016-08-17 08:53:36 +03:00
Arseniy Shestakov
b0045fa357
Fix TurnInfo memory leaks
2016-08-16 15:47:21 +03:00
AlexVinS
36c44c2ce7
projects update
2016-08-13 16:57:11 +03:00
AlexVinS
72f79a3ad7
Draft boost::format based log proxy.
2016-08-13 16:57:09 +03:00
Arseniy Shestakov
2e70d29479
CGameHandler::applyBattleEffects: improve Fire Shield support
...
Now damage is limited to total health of defending stack and clone have no file shield damage. In same time damage calculation is likely remain incorrect.
2016-03-14 15:28:17 +03:00
Arseniy Shestakov
605962019b
CGameHandler::giveSpells: improve Conflux grail building support
...
Aurora Borealis give hero spells of all levels even if only first level of mages guild is built. Widsom requirement is still remain in place of course.
2016-03-13 13:26:00 +03:00
Arseniy Shestakov
bee0c6d705
CGameHandler::buildStructure: give spells after gs apply. Fix issue 2425
...
Hero will also immidiately get new spells when Library built in Tower or Grail in Conflux.
2016-03-13 11:31:09 +03:00
Arseniy Shestakov
10dbbead2d
Fix indentation of logging code and around it
...
That wouldn't be as big issue if problem affected few files, but it everywhere in codebase.
Fixed it everywhere since in most files that is the only code with wrong indentation.
2016-03-12 04:46:21 +03:00
AlexVinS
e3e27b9bfe
Move ghost creation to inner battle loop
2016-03-01 11:07:45 +03:00
AlexVinS
4bf9036c7b
Ensure that ghost stacks are created only by BattleStacksRemoved packet.
...
This will allow client to receive notification.
2016-03-01 05:24:35 +03:00
AlexVinS
2c48c95c8d
Fix casualties calculation for commander
2016-03-01 04:06:32 +03:00
AlexVinS
f890037008
Fixes
2016-02-29 04:42:15 +03:00
AlexVinS
5df8d1cbd0
Update low level battle stacks accessor for ghost selection support.
2016-02-28 05:10:20 +03:00
AlexVinS
9036d39241
Do not remove battle stacks, make them ghosts instead.
...
* exclude ghost stacks from (hopefully all) get* results for now
2016-02-28 01:08:56 +03:00
AlexVinS
5d5ad99436
Rename DEAD_CLONE -> GHOST, as this will be possible for any stack
2016-02-28 00:13:34 +03:00
Arseniy Shestakov
f8c6751707
CGameHandler::endBattle: change town ownership when hero lost siege
2016-02-22 03:35:38 +03:00
ArseniyShestakov
c550484613
Merge pull request #181 from vcmi/feature/drawbridgeMechanics
...
Feature/drawbridge mechanics
2016-02-14 16:32:24 +03:00
Arseniy Shestakov
c5cfc8467f
Battles: change naming from drawbridge to gate for everything
...
This way code is shorter and cleaner while in future we may support towns with gate only.
2016-02-13 17:40:31 +03:00
Arseniy Shestakov
11dc428b1e
Battles: move hexes enum to GameConstants and fix wall position
...
Before we had hex 62 marked as destructible wall while actually it's must be 78.
2016-02-09 17:38:59 +03:00
Arseniy Shestakov
01b4d0ae01
Battles: better handling for walking double-wide creatures
...
Request opening of gate even if only second half of double-wide stack going to stop on it.
2016-02-09 15:41:37 +03:00
Arseniy Shestakov
a07761b608
Battles: readable identifiers enum for drawbridge and gate hexes
...
Dont like to locate them in BattleHex, but it's best place I can see so far.
2016-02-09 12:25:13 +03:00
Arseniy Shestakov
731de439eb
Battles: drawbridge support for double-hex flying creatures
2016-02-09 11:59:20 +03:00
Arseniy Shestakov
28aff78f2c
Battles: implement drawbridge support for flying creatures
2016-02-09 11:30:09 +03:00
Arseniy Shestakov
fbb34b8d04
Battles: always update drawbridge state after battle state changed
...
Now gate tower destruction will immidiately affect drawbridge state.
2016-02-09 10:59:33 +03:00
Arseniy Shestakov
47433919ab
Battles: handle drawbridge lowering from stack start position
2016-02-09 10:45:59 +03:00
Arseniy Shestakov
015a57f81c
Battles: more advanced drawbridge mechanics on server-side
...
Everything work as intended except starting point not included in path.
So we send BattleDrawbridgeStateChanged package when already standing on bridge hex.
2016-02-08 12:16:47 +03:00
ArseniyShestakov
890ae43f55
Merge pull request #180 from Zyx-2000/FileInfo
...
Refactored CFileInfo & ResourceID
2016-02-08 04:55:39 +03:00
ArseniyShestakov
7f68124b97
Merge pull request #136 from vcmi/issue/1372-2
...
issue/1372
2016-01-31 20:28:54 +03:00
Vadim Markovtsev
3926920103
Rename radious -> radius
...
There is no such English word, "radious"
Some files get new lines in the end - BSD sed bug + best practices
2016-01-31 18:01:58 +03:00
Vadim Markovtsev
918fbd8530
Refactor hero's mana regain
2016-01-30 13:51:07 +03:00
Vadim Markovtsev
22fc4fd3e9
Fix 2406 reset potentially available heroes
2016-01-30 10:02:33 +03:00
AlexVinS
16e0d18880
Added special slots for war machines and arrow towers
2016-01-30 00:53:53 +03:00
Arseniy Shestakov
57328bdc83
Battles: implement basic drawbridge mechanics
...
Movement to blocking hex 94 not yet properly handled as stack movement code need to be rewritten first.
Also gate destruction not immidiately affect drawbridge state.
2016-01-29 22:43:35 +03:00
AlexVinS
ba017c443d
Start from diff of pull request #124 from vcmi/issue/1372
2016-01-29 21:05:17 +03:00
Zyx-2000
3a1a8e3d47
further refactoring-related changes
2016-01-29 15:16:14 +01:00
Zyx-2000
c3e8c8bc1c
Merge branch 'develop' into FileInfo
2016-01-27 19:21:43 +01:00
AlexVinS
d7c0c3759a
Merge branch 'Zyx-develop' into develop
...
Conflicts:
lib/filesystem/AdapterLoaders.h
2016-01-27 18:53:41 +03:00
Vadim Markovtsev
36eaa399e7
Add hardcodedFeature to switch winner's retreating with no troops
2016-01-27 16:42:17 +03:00
AlexVinS
bffdc2813d
revert some project changes
2016-01-27 15:21:29 +03:00
ArseniyShestakov
4483c45905
Merge pull request #167 from vmarkovtsev/issue/1569
...
Fix 1569 winning hero with no troops shall retreat
2016-01-27 11:48:22 +03:00
Vadim Markovtsev
7772b6de74
Fix 981 reset hero on hiring after retreat/surrender
2016-01-26 22:48:31 +03:00
Zyx-2000
70e3c81b9f
Replaced CFileInfo with more correct and efficient alternative
2016-01-26 14:51:38 +01:00
Vadim Markovtsev
6849ff846c
Fix memory corruption with a draw; race in setBattleResult()
2016-01-25 15:55:32 +03:00
Vadim Markovtsev
afa95312ba
Fix 2139 captured spell scroll descriptions
2016-01-25 08:49:26 +03:00
Vadim Markovtsev
7185890723
Fix double free in battleAfterLevelUp() in case of a draw
2016-01-24 01:31:39 +03:00
ArseniyShestakov
b19e082f37
Merge pull request #166 from vmarkovtsev/issue/1723
...
Fix 1723 quest crash on combined arts
2016-01-23 23:23:07 +03:00
Vadim Markovtsev
2a6a8cd433
Fix segfault when non-hero forces win
2016-01-23 19:42:56 +03:00
Vadim Markovtsev
9ffd0155e6
Fix 1810 suggest artifact assembly
2016-01-23 16:24:43 +03:00
Vadim Markovtsev
99992599db
Partially fix 1416 tavern hero rotation
2016-01-22 22:37:46 +03:00
Vadim Markovtsev
9dfef2186d
Fix 1569 winning hero with no troops shall retreat
2016-01-22 22:29:53 +03:00
Vadim Markovtsev
11bce2908d
Fix 1723 quest crash on combined arts
2016-01-22 12:56:25 +03:00
Arseniy Shestakov
d25372a397
Added vcmiglaurung cheat that add 5000 crystal dragons into each slot
2016-01-21 10:49:09 +03:00
Zyx-2000
a50a702073
switched to -std=gnu++11
2016-01-18 17:49:07 +01:00
Vadim Markovtsev
4a05402c2f
Revert 5cd4e852d4
"Use portable cast in CTeleportDialogQuery also"
...
Actually, this leads to crash on MacOSX, I specially left that intact.
2016-01-18 10:45:09 +03:00