1
0
mirror of https://github.com/vcmi/vcmi.git synced 2024-12-16 10:19:47 +02:00
Commit Graph

381 Commits

Author SHA1 Message Date
Ivan Savenko
c21913f661 Fixed initialization of move points and mana for dismissed heroes 2024-01-15 23:16:48 +02:00
Ivan Savenko
4f44276dd3 Add attribute to always-throwing methods 2024-01-13 19:39:45 +02:00
Ivan Savenko
edb2ecd751 Fix possible overflow errors on leveling up beyond int64_t limit
- added separate giveExperience method instead of weird changePrimSkill
- experience is now always used in form of int64_t
- max supported level reduced from 201 to 197 to fit into int64_t
- fixed undefined behavior in experience calculation
2024-01-04 23:57:36 +02:00
Ivan Savenko
dd88220b7c Fixed potentially uninitialized class member 2023-12-17 19:44:45 +02:00
SoundSSGood
57e3abc548 ask assemble regression fixed 2023-11-08 21:59:55 +02:00
Ivan Savenko
6b81012f31 Use variant identifier in netpacks where applicable 2023-11-08 14:00:23 +02:00
SoundSSGood
ab2f6abb87 ArtifactLocation now use ID for artHolder identification part2 2023-10-29 17:46:13 +02:00
Ivan Savenko
3880ea58b9 Merge branch 'josch/dos2unix' into develop 2023-10-22 18:39:03 +03:00
Johannes Schauer Marin Rodrigues
a1a5bc28c2
convert line endings from CRLF (Windows) to LF (Linux/Unix)
Mixed line endings cause problems when exporting patches with
git-format-patch and then trying to "git am" a patch with mixed and
non-matching line endings. In such a situation git will fail to apply
the patch.

This commit runs the dos2unix tools on the remaining files with CRLF
(\r\n) line endings to convert them to line-feeds (\n) only.

Files that are Windows specific like *.vcxproj and *.props files were
not converted.

Closes: #3073
2023-10-19 16:23:21 +02:00
Ivan Savenko
dd841bdaa7 Use enum instead of mix of bool's and int's for tile reveal 2023-10-16 00:12:38 +03:00
Ivan Savenko
898733eed7 Added Query to track visit duration for Taverns and Markets 2023-10-04 17:47:12 +03:00
Ivan Savenko
97097c20ad
Merge pull request #2874 from SoundSSGood/exchange-window-update
Exchange window update
2023-09-27 15:50:52 +03:00
Ivan Savenko
0a0c01d639 Replaced 'isVisitActiveFor' methods with single 'getVisitingHero' 2023-09-26 15:55:07 +03:00
Ivan Savenko
b807c3855b Add proper visitation checks for netpacks 2023-09-26 13:42:20 +03:00
Ivan Savenko
d257fb37f0 Use optional instead of Json for queries 2023-09-26 13:42:20 +03:00
Ivan Savenko
b2f30f78fa Allow one AI and human to act simultaneously 2023-09-26 13:42:20 +03:00
Ivan Savenko
8c0d78f1d9 Added initiator-player to packs that add/remove/move objects 2023-09-19 19:24:34 +03:00
SoundSSGood
a83f290e13 bulk move artifacts only equipped, only backpack 2023-09-19 13:31:42 +03:00
Ivan Savenko
587be4c7d5
Merge pull request #2767 from IvanSavenko/dwelling_recruit_fix
Fixes ownership checks for creature recruitment
2023-09-07 15:09:55 +03:00
Ivan Savenko
747e28947a Fix build 2023-09-06 16:03:47 +03:00
Ivan Savenko
3a88180494 Separated game and battle callback (server & client only) 2023-09-06 16:03:39 +03:00
Ivan Savenko
b159d8a028 Fixes ownership checks for creature recruitment 2023-09-05 23:12:57 +03:00
Ivan Savenko
edd029c79c Replace "currentPlayer" from gamestate with "activePlayers"
- Allows multiple active players at once, e.g. simturns
- Cleared up validation of netpacks by server, e.g. always check for
pack sender
2023-08-25 18:56:15 +03:00
Ivan Savenko
62cd8b12d4 Converted several namespace enums to enum class 2023-08-25 13:38:02 +03:00
Ivan Savenko
c4bc6840ea Moved management of turn order into a new class 2023-08-24 23:34:33 +03:00
Nordsoft91
1bad0e96ef
Merge pull request #2635 from Nordsoft91/loading-bar
Loading progress bar
2023-08-23 17:28:19 +04:00
nordsoft
dfaf778d16 Redesign loading solution 2023-08-22 20:10:20 +04:00
nordsoft
7b4b01a280 Adopt turn timer to battle refactoring 2023-08-22 01:49:50 +04:00
nordsoft
d50edc28ab Merge remote-tracking branch 'upstream/develop' into turn-timer
# Conflicts:
#	server/CGameHandler.cpp
#	server/CGameHandler.h
2023-08-22 00:54:38 +04:00
nordsoft
dbc3a93013 Merge remote-tracking branch 'upstream/develop' into loading-bar
# Conflicts:
#	server/CGameHandler.h
2023-08-22 00:46:54 +04:00
nordsoft
45f13c7964 Progress update on client side 2023-08-21 19:21:27 +04:00
nordsoft
584dd20943 Progress on server side for rmg 2023-08-21 19:21:22 +04:00
Ivan Savenko
323772fc2e Split CQuery file into multiple files 2023-08-21 17:55:07 +03:00
Ivan Savenko
c217d7717a server queries is now stored as unique_ptr 2023-08-21 17:55:07 +03:00
Ivan Savenko
e8e6c02a4a Moved all battle-related functionality of server into a new class 2023-08-21 17:55:06 +03:00
Ivan Savenko
00ac8eb306 Attempt to fix crash on quitApplication on Android 2023-08-15 00:17:59 +03:00
nordsoft
a8e5b32b6a Fix compiling 2023-08-14 04:55:45 +04:00
nordsoft
e414af221b Move turn timer logic from GameHandler class 2023-08-14 03:20:27 +04:00
Andrii Danylchenko
ec8898a0e7 #1965 - treat dwelling defenders as neutrals 2023-07-25 10:13:41 +03:00
Ivan Savenko
baa865d857 Extracted message-related functionality of CGameHandler to separate file 2023-07-15 21:01:13 +03:00
Ivan Savenko
cb16636fce Implemented preserving hero on retreat on 7th day after end of turn 2023-07-15 19:55:30 +03:00
Ivan Savenko
ec7e046617 Fix hero pool persistency between saves 2023-07-15 19:55:30 +03:00
Ivan Savenko
19ace6a849 Moved hero pool logic to the separate files 2023-07-15 19:55:29 +03:00
Ivan Savenko
6a08a96d0c Added createObject call as wrapper around NewObject netpack 2023-06-23 13:42:08 +03:00
Tomasz Zieliński
351d596bdc Handle water Prisons and Taverns. 2023-06-08 09:17:08 +02:00
Konstantin
05eccbc2bb vcmi: split bonus to enumerator and HeroBonus.h 2023-05-03 18:01:06 +03:00
Konstantin
86f5d6de69 vcmi: modernize headers 2023-04-30 13:35:54 +03:00
Ivan Savenko
7db67a3101 int3 now has proper hasher function 2023-04-20 22:04:24 +03:00
Konstantin P
f11fa8f0c8 Teleport: can trigger obstacles now 2023-04-13 11:24:19 +03:00
nordsoft
bfc75ccd39 Merge remote-tracking branch 'upstream/develop' into battle-dialog 2023-04-11 02:22:42 +04:00
Nordsoft91
ebd17c9e4a
Merge pull request #1928 from Nordsoft91/cast-reward
Spell cast reward
2023-04-10 22:49:36 +04:00
Ivan Savenko
42b2be4bbb
Merge pull request #1908 from SoundSSGood/art-client-server-fixes
Artifact related fixes
2023-04-10 18:26:49 +03:00
nordsoft
464ad63749 Implement behavior 2023-04-10 05:46:45 +04:00
nordsoft
c0b90432cb Change callback interface 2023-04-10 05:40:03 +04:00
nordsoft
e440343921 Bypass initial version of spell callback 2023-04-10 04:34:24 +04:00
SoundSSGood
ea7dd14d8b client is able to erase artifact 2023-04-08 00:41:55 +03:00
nordsoft
ce3028bd73 Intermediate commit 2023-04-06 19:34:07 +04:00
Konstantin
11b237a23c vcmi: massive refactoring v1 2023-04-05 22:33:12 +03:00
Konstantin
e946ddcfeb CGameHandler: obstacle trigger does not use CStack 2023-04-04 23:02:54 +03:00
Ivan Savenko
307065a633 Merge beta into develop 2023-04-04 16:06:20 +03:00
Ivan Savenko
820c9be61b Use own resources when buying boat in allied shipyard 2023-03-31 23:18:45 +03:00
Ivan Savenko
3e1506dba3
Merge pull request #1767 from Adriankhl/fix_battle_thread_shutdown
Properly shutdown battle thread
2023-03-29 14:40:15 +03:00
Ivan Savenko
b2f5042942
Merge pull request #1783 from vcmi/beta
Merge beta -> develop
2023-03-27 21:21:25 +03:00
Konstantin
9a229d6e48 vcmi: really correct obstacle trigger
Now obstacle trigger really matches H3
2023-03-27 16:11:17 +03:00
Adriankhl
21a4113fc1 Properly shutdown battle thread in CGameHandler destructor 2023-03-25 20:29:33 +01:00
SoundSSGood
9f8aa25297 Backpack limit part4 (Using cheats, buying) 2023-03-21 12:14:33 +02:00
SoundSSGood
e23766280f Backpack limit part2 (Pick up, Dig up, Object rewards) 2023-03-21 12:14:33 +02:00
Konstantin
4617ce10e5 vcmi: allow showing more than one components in infobar
Up to 8, AFAIK. So, we can show multi-reward in infobox now.
One issue remain - cannot dynamically choose components size
based on text size.
2023-03-11 21:41:57 +03:00
Ivan Savenko
4501036a04 Basic version of hero movement on map. Removed old code. 2023-03-05 17:48:02 +02:00
Andrii Danylchenko
9f55666931 rework netpacks to avoid double typeinfo 2023-02-13 20:26:39 +02:00
SoundSSGood
30db38c0fe Unified CGameHandler::bulkMoveArtifacts and CGameHandler::bulkSwapArtifacts to one 2022-11-10 20:11:26 +02:00
SoundSSGood
0032947735 regression fixed. Artifact assemble dialog shows multiple times. 2022-11-07 00:36:13 +02:00
SoundSSGood
0f391e19d5 server side funcs 2022-11-06 23:59:30 +02:00
nordsoft
895ec2d302 Make console available during other players' turn 2022-10-05 19:04:51 +04:00
Nordsoft91
d4f97aadf0
Merge branch 'develop' into incomatibility-response 2022-09-25 13:26:07 +04: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
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
Andrey Filipenkov
7e6ed0583c disable all scripting code when configuring without scripting modules 2022-09-21 19:31: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
Nordsoft91
aaa07e4d2e New terrain support - part 1 (#755)
Initial support of new terrains
2022-09-11 11:31:26 +03:00
Konstantin
c6b198ce14
Warning fix (I moved C++17 and CI to another branch) (#739)
* clang warning fixes
* use CMake 3.10 due to MXE CI does not have 3.13 yet

Co-authored-by: Konstantin <rilian@niisi.ras.ru>
2022-05-19 15:14:50 +03:00
Dmitry Orlov
8cae3398ba Feature: Army Management Shortcuts should work as in HD+ Mod 2021-11-28 20:00:43 +02:00
Dmitry Orlov
30b879ae5d Fixed: duplicated bonusing building. Improved: opposite bonus propagation 2021-09-12 14:30:54 +03:00
Dmitry Orlov
25d9ea1ddf Feature: Opposite Side Limiter 2021-09-04 14:15:38 +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
ae3b8e4916 Travis errors & warnings fix 2020-09-28 16:39:55 +03:00
Dmitry Orlov
38fd05f655 Minor fix: apply Monday bonuses to heroes who have slept overnight 2020-09-28 01:32:33 +03: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
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
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
Piotr Wójcik
7171fa7ad4 Formatting 2017-10-28 11:04:55 +02:00
Piotr Wójcik
58b427345f Constify 2017-10-18 21:39:04 +02:00
Piotr Wójcik
f145b4be91 Correctly sacrifice many stacks or many atrifacts, fixes #2607 2017-10-14 21:30:56 +02:00
ArseniyShestakov
9d9c026c85 Code style: serialize everything on own lines for easier debugging (#357) 2017-07-31 16:35:42 +03:00
ArseniyShestakov
006fa6c6df Merge pull request #332 from FeniksFire/SmallBugFix
Fix handling damage from obstacles
2017-07-15 00:09:37 +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