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

1819 Commits

Author SHA1 Message Date
Andrii Danylchenko
e66ceff154 NKAI: object graph improved and optimized 2024-03-21 12:13:36 +02:00
Andrii Danylchenko
bec2c0cac2 NKAI: fix sonar and refactoring 2024-03-10 15:14:15 +02:00
Andrii Danylchenko
6245adb9a4 NKAI: configurable object graph 2024-03-08 14:39:16 +02:00
Andrii Danylchenko
5f8a157c6d NKAI: rollback changes with removing scan depth 2024-03-03 10:21:17 +02:00
Andrii Danylchenko
fb6fd63a58 NKAI: water paths in graph 2024-03-02 15:55:36 +02:00
Andrii Danylchenko
b236384356 NKAI: graph add battle layer 2024-03-02 15:54:05 +02:00
Andrii Danylchenko
a090441672 NKAI: object graph second layer not operational yet 2024-03-02 15:54:03 +02:00
Andrii Danylchenko
376a17409f NKAI: initial implementation of object graph 2024-03-02 15:52:45 +02:00
Andrii Danylchenko
35429eab52 NKAI: moddable configuration 2024-03-01 22:03:07 +02:00
Alexander Wilms
2ea78a5883 Fix float comparisons
Replace this "==" with a more tolerant comparison operation.
Floating point numbers should not be tested for equality cpp:S1244
2024-02-14 23:30:29 +01:00
Ivan Savenko
c23953eac5 Remove custom casts 2024-02-14 12:56:37 +02:00
Ivan Savenko
45c971a405 Replace throws() with nothrow 2024-02-14 12:07:07 +02:00
Ivan Savenko
7359b66f99 Do not use floating point equality checks 2024-02-14 12:07:07 +02:00
Ivan Savenko
9ebd194ab1
Merge pull request #3609 from IvanSavenko/single_process
Allow running server as part of client process
2024-02-14 12:06:22 +02:00
Alexander Wilms
678cacbd25 Remove more redundant virtual specifiers
`grep -nr "virtual " | grep -v googletest | grep " override" | grep -v overriden > ../redundant_virtual.txt`

```python
import os

with open("../redundant_virtual.txt") as f:
    for line in f:
        print()
        line: str = line.strip()
        print(line)
        tmp = line.split(":",2)
        file = tmp[0].strip()
        code = tmp[-1].strip()
        print(file)
        print(code)
        new_code = code.replace("virtual ", "", 1)
        # https://superuser.com/a/802490/578501
        command = f"export FIND='{code}' && export REPLACE='{new_code}' && ruby -p -i -e \"gsub(ENV['FIND'], ENV['REPLACE'])\" {file}"
        os.system(command)
```
2024-02-13 15:21:30 +01:00
Ivan Savenko
4c70abbeb5 Reduced usage of global variables - removed or made const / constexpr 2024-02-12 13:49:45 +02:00
Ivan Savenko
c03196257f Fix "identical expressions on both sides of comparison" 2024-02-12 12:32:35 +02:00
Ivan Savenko
c577ea3e8d Fix potentially uninitialized values 2024-02-12 12:31:27 +02:00
Ivan Savenko
a909d7ddde Removed cmake_modules/VCMI_lib macro, use it directly in place 2024-02-11 20:38:24 +02:00
Ivan Savenko
f08c9f4d59 Renamed ENABLE_STATIC_AI_LIBS option to match its actual effect 2024-02-11 17:55:02 +02:00
Alexander Wilms
522cb571b3 Remove redundant virtual specifiers
`grep -nr virtual | grep -v googletest | grep override > ../redundant_virtual.txt`

```python
import os

with open("../redundant_virtual.txt") as f:
    for line in f:
        print()
        line: str = line.strip()
        print(line)
        tmp = line.split(":")
        file = tmp[0].strip()
        code = tmp[-1].strip()
        print(file)
        print(code)
        new_code = code.replace("virtual ", "", 1)
        # https://superuser.com/a/802490/578501
        command = f"export FIND='{code}' && export REPLACE='{new_code}' && ruby -p -i -e \"gsub(ENV['FIND'], ENV['REPLACE'])\" {file}"
        os.system(command)
```
2024-02-10 20:46:13 +01:00
Andrii Danylchenko
ec5c44bb92
Merge pull request #3594 from vcmi/fix-3550
#3550 - fix case when unit is in reachability map but only next turn
2024-02-04 10:07:44 +02:00
Andrii Danylchenko
c66de29550 #3550 - fix case when unit is in reachability map but only next turn 2024-02-03 17:48:52 +02:00
Ivan Savenko
f329bfbe71
Merge pull request #3582 from IvanSavenko/campaign_fixes
Campaign fixes
2024-02-01 11:30:38 +02:00
Ivan Savenko
626087ab14
Merge pull request #3561 from MnHebi/develop
Try to improve VCAI building build order
2024-01-31 21:48:36 +02:00
Ivan Savenko
2e4895766a Implemented tracking of objects destroyed by players 2024-01-31 01:37:33 +02:00
Ivan Savenko
a9866bb5c6 Added RandomGeneratorUtil::nextItemWeighted convenience method 2024-01-31 00:17:40 +02:00
MnHebi
8b24b0e9a7 Add Marketplace, Blacksmith into extra buildings category to ensure they get built. Misc changes. 2024-01-26 00:56:36 +02:00
Laserlicht
7f58333ef9
quick combat vs ai 2024-01-25 23:44:41 +01:00
MnHebi
4318b25399
Merge branch 'vcmi:develop' into develop 2024-01-25 21:27:06 +02:00
Ivan Savenko
2a193effcc Merge branch 'master' into 'develop' 2024-01-25 16:23:13 +02:00
MnHebi
a668dc2721 Try to improve VCAI building build order. Testing reveals extra structures still get done before intended build order(seen Market being built when Dwellings were expected). 2024-01-25 03:26:42 +02:00
Ivan Savenko
284273379e
Merge pull request #3536 from IvanSavenko/serialization_refactor
Refactoring of serialization versioning handling
2024-01-22 19:49:24 +02:00
Andrii Danylchenko
bf54a6a7d3
Merge pull request #3537 from vcmi/nkai-fix-pathfinder-commited-tiles
NKAI: avoid writing to commited tiles when calculating hero chain
2024-01-21 14:51:33 +02:00
Andrii Danylchenko
708e0d1107 NKAI: avoid writing to commited tiles when calculating hero chain 2024-01-21 10:18:39 +02:00
Andrii Danylchenko
cb297793e0 NKAI: fix lock 2024-01-21 10:05:40 +02:00
Andrii Danylchenko
0c1664dbe7 NKAI: various AI fixes after tests in headless 2024-01-20 22:55:30 +02:00
Andrii Danylchenko
1db43a509e NKAI: fix casting FLY several times during path calculation 2024-01-20 22:55:28 +02:00
Andrii Danylchenko
36bc9ddcec NKAI: mutex for internal AI state 2024-01-20 22:55:27 +02:00
Andrii Danylchenko
cc7fc4a2c6 Fix headless mode 2024-01-20 22:55:27 +02:00
Ivan Savenko
0c07384293 Refactoring of serialization versioning handling
- Removed 'version' field from serialize() method
- Handler classes - Binary(De)Serializer now have 'version' field
- Serialization versioning now uses named enum

Save compatibility with 1.4.X saves should be intact
2024-01-20 20:34:51 +02:00
Ivan Savenko
62935b4ba4 Fix crash on using StupidAI for player actions 2024-01-20 17:15:51 +02:00
Ivan Savenko
d04241b10a Code cleanup 2024-01-19 23:02:00 +02:00
Ivan Savenko
ea1f05d15a Stabilization 2024-01-19 13:55:22 +02:00
Ivan Savenko
60ffb81b33 Replaced remaining placeholder code with callbacks 2024-01-19 13:55:22 +02:00
Ivan Savenko
a15366f5a5 Make IObjectInterface::cb non-static 2024-01-19 13:55:21 +02:00
Ivan Savenko
2c4cad7d9c Slight simplification of bonus system node class 2024-01-19 13:54:49 +02:00
Ivan Savenko
d5c4478816 Remove most of non-const access to VLC entities 2024-01-19 13:54:49 +02:00
Ivan Savenko
bd5682ecc3 Merge remote-tracking branch 'vcmi/master' into develop 2024-01-19 13:49:54 +02:00
Alexander Wilms
73019c204d Replace redundant types with auto for the lvalues of template factory functions for smart pointers
grep -r --include \*.h --include \*.cpp "= std::" * | grep -v auto | grep -Po ".*[^ ]+ [^ ]+ [^ ]*[ ]*=.*;" | grep -v "auto\|int\|char\|bool\|float|\double\|for\|if\|googletest\|fuzzylite\|size_t\|using\|return" | grep -v double | grep -v si64 | grep -v si32 | grep -v ui32 | grep \< | grep -v float | tr -d '\t' | grep -v assert > redundant_types.txt

import re

with open("redundant_types.txt") as f:
    for line in f:
        line = line.strip()
        path = line.split(":", 1)[0]
        original_code = ":".join(line.split(":")[1:]).strip()

        print()
        print(path)
        print(original_code)
        prefix = "auto "
        if original_code.startswith("static"):
            static = True
        else:
            static = False

        cpp_type = " ".join(original_code.split("=")[0].strip().split(" ")[0:-1])
        print(cpp_type)

        if static:
            new_code = "static auto "+ " ".join(original_code.split(" ")[2:])
        else:
            new_code = "auto "+ " ".join(original_code.split(" ")[1:])
        print(new_code)

        if True:
            with open(path, "r") as f:
                filedata = f.read()

            filedata = filedata.replace(original_code, new_code)

            with open(path, "w") as f:
                f.write(filedata)
2024-01-17 12:50:00 +00:00
Ivan Savenko
e849e4170a
Merge pull request #3486 from Alexander-Wilms/replace-redundant-types-with-auto
Replace redundant types with `auto`
2024-01-17 13:31:05 +02:00
Alexander Wilms
1b85abb508 Use auto instead of redundant type in initializations using new
grep -r --include \*.h --include \*.cpp "=" * | grep -v "auto\|int\|char\|bool\|float|\double\|for\|if\|googletest\|fuzzylite\|size_t\|using\|return\|{\|}\|= \"\|= tr(\|virtual\|void" | grep -Po ".*[^ ]+ [^ ]+ [^ ]*[ ]*=.*;" | grep -v "float\|nullptr" | grep "new" | grep -v "AI/FuzzyLite" | grep \( | grep "= new" > redundant_types.txt

import re

with open("redundant_types.txt") as f:
    for line in f:
        line = line.strip()
        path = line.split(":", 1)[0]
        original_code = line.split(":")[1].strip()
        if "new " in original_code:

            cpp_type = original_code.split(" ")[0]
            if original_code.count(cpp_type) == 2:
                print()
                print(path)
                print(original_code)
                new_code = "auto "+" ".join(original_code.split(" ")[1:])
                print(new_code)

                with open(path, "r") as f:
                    filedata = f.read()

                filedata = filedata.replace(original_code, new_code)

                with open(path, "w") as f:
                    f.write(filedata)
2024-01-16 21:40:53 +00:00
Alexander Wilms
cca08e29da Remove duplicate semicolons 2024-01-16 19:02:39 +00:00
Ivan Savenko
a582cb554e
Merge pull request #3500 from IvanSavenko/fix_dendroid_bind
[1.4.3] Fix handling of Dendroid's Bind ability
2024-01-15 12:02:06 +02:00
Ivan Savenko
b4a1a755a4
Merge pull request #3498 from IvanSavenko/simturns_pathfinder
[1.4.3] Fixes for simultaneous turns
2024-01-15 12:00:54 +02:00
Ivan Savenko
0d0d3d8c80 Renamed speed -> getMovementRange, remove misleading default parameter 2024-01-14 17:14:36 +02:00
Alexander Wilms
bc781c28e0 Remove trailing semicolon from NET_EVENT_HANDLER macro 2024-01-14 14:49:25 +00:00
Andrii Danylchenko
3602be5eab BattleAI: remove adjustPositions method as it gives more troubles than usefulness 2024-01-14 10:23:44 +02:00
Ivan Savenko
8303ce5d13 Added option to ignore guards in pathfinder
Used for simturns contact detection, by default disabled for player
pathfinding
2024-01-13 19:44:37 +02:00
Alexander Wilms
f3277b7953 Define each identifier in a dedicated statement 2024-01-10 00:22:23 +00:00
Andrii Danylchenko
1a1ae5cd8b BattleAI: fixes 2024-01-02 17:35:10 +02:00
Joakim Thorén
daf9f9f7f5
Re-add const that was erronously removed with 88ec4fa
Co-authored-by: Andrey Filipenkov <kambaladecapitator@gmail.com>
2023-12-30 11:01:21 +01:00
Joakim Thorén
88ec4fa0e7 Use getTileThreat-helper instead of directly accessing hitMap with tile coordinates 2023-12-29 23:12:06 +01:00
Joakim Thorén
61314a36f6 Fix copy-paste mistake 2023-12-27 22:35:43 +01:00
Joakim Thorén
406d136cdc Fixes warnings about possibly dangling references 2023-12-27 22:24:58 +01:00
Ivan Savenko
85de3143ff Fixed Genie spellcasting logic to account for spell immunities 2023-12-24 01:13:19 +02:00
Dydzio
fe39faf36c Add UNTIL_OWN_ATTACK bonus duration and use for berserk 2023-12-19 19:52:40 +01:00
Andrii Danylchenko
26b6d1cf74 NKAI: fix capturing shipyards 2023-12-02 14:03:54 +02:00
Ivan Savenko
d326c53b9a AI will now respect current value of "Use spells in autocombat" setting 2023-11-28 15:48:35 +02:00
Ivan Savenko
60ca6f968c Fix hero limit check in AI 2023-11-27 14:08:49 +02:00
Ivan Savenko
ff6260e5c5
Merge pull request #3195 from IvanSavenko/identifier_string_serialization
Serialize Identifiers that can be added by mods as strings
2023-11-20 14:07:24 +02:00
Ivan Savenko
b58301849b Pass functor via reference to avoid costly copies 2023-11-18 19:43:11 +02:00
Ivan Savenko
9b8145f522 Compute creature speed only once during evaluation 2023-11-18 19:41:29 +02:00
Ivan Savenko
9f906ff1d2 Remove pointer to CGObjectInstance from map header 2023-11-17 16:39:15 +02:00
Ivan Savenko
76956cfe3a
Merge pull request #3188 from IvanSavenko/remove_identifier_implicit_int_conversion2
Remove implicit conversion of identifier to integer
2023-11-16 17:26:32 +02:00
Ivan Savenko
52050d0ef1 Fix build 2023-11-15 15:55:19 +02:00
Ivan Savenko
96c81be68e Win/loss conditions now use VariantIdentifier. Removed non-implemented
options
2023-11-15 15:55:19 +02:00
Ivan Savenko
20ef3a69e7 Fix most of memleaks discovered by valgrind 2023-11-13 16:27:15 +02:00
Ivan Savenko
4a7fa9bf8c Simplified CTypeList class 2023-11-08 22:05:36 +02:00
Ivan Savenko
6b81012f31 Use variant identifier in netpacks where applicable 2023-11-08 14:00:23 +02:00
Ivan Savenko
10e50548e7 Converted Component class to use VariantIdentifier instead of int 2023-11-02 12:00:04 +02:00
Ivan Savenko
8346d71c98 Remove more subID access 2023-11-01 14:44:05 +02:00
Ivan Savenko
7107b3202f
Merge pull request #3069 from SoundSSGood/artifact-location-id
ArtifactLocation now use ID for artHolder identification
2023-11-01 14:41:36 +02:00
SoundSSGood
ab2f6abb87 ArtifactLocation now use ID for artHolder identification part2 2023-10-29 17:46:13 +02:00
SoundSSGood
61fc236d79 ArtifactLocation now use ID for artHolder identification part1 2023-10-29 17:46:13 +02:00
Alexander Wilms
5cbc75d3b7 Merge remote-tracking branch 'upstream/develop' into develop 2023-10-29 13:35:37 +00:00
Alexander Wilms
ed86a917eb AI/BattleAI/BattleAI.cpp: Use Class template argument deduction for wallParts array
Co-authored-by: Ivan Savenko <saven.ivan@gmail.com>
2023-10-29 13:34:19 +00:00
Alexander Wilms
0232ae5327 AI/BattleAI/BattleEvaluator.cpp: Convert this integer literal to a bool literal.
Integer literals should not be cast to bool
2023-10-29 13:34:19 +00:00
Alexander Wilms
bfddc90ff4 AI/BattleAI.cpp: Use "std::array" or "std::vector" instead of a C-style array.
Variables of array type should not be declared cpp:M23_356
2023-10-29 13:34:19 +00:00
Ivan Savenko
0169c65937
Merge pull request #3100 from IvanSavenko/split_net_packs
Split netpacks.h into multiple files
2023-10-29 13:46:40 +02:00
Alexander Wilms
0a6c82c639 AI/Nullkiller/Behaviors/DefenceBehavior.{h,cpp}: treat -> threat 2023-10-27 23:34:11 +00:00
Alexander Wilms
457e73ed12 AI/BattleAI/BattleExchangeVariant.cpp: Do not assign data members in a constructor. Initialize members in an initialization list.
Member data should be initialized in-class or in a constructor initialization list
2023-10-27 23:34:11 +00:00
Alexander Wilms
b10b1a5444 AI/BattleAI/BattleExchangeVariant.cpp: This function should be declared "const".
Member functions that don't mutate their objects should be declared "const"
2023-10-27 23:34:11 +00:00
Alexander Wilms
af330ff038 AI/BattleAI/BattleEvaluator.cpp: Remove this redundant cast.
Redundant casts should not be used
2023-10-27 18:19:17 +00:00
Alexander Wilms
f01ec55d21 Use the "nullptr" literal.
"nullptr" should be used to denote the null pointer
2023-10-27 18:18:59 +00:00
Alexander Wilms
bcaa2e5966 AI/VCAI/VCAI.cpp: Remove "e" from "throw" statement to rethrow the original exception.
The original exception object should be rethrown
2023-10-27 14:29:44 +00:00
Ivan Savenko
5cbf5031ea move SetStackEffect to a separate file 2023-10-24 01:27:52 +03:00
Ivan Savenko
b88a8da4e8 Split off some netpack structures into separate files 2023-10-23 13:59:15 +03:00
Andrii Danylchenko
f74daa2e1f BattleAI: fix health bounty calculation 2023-10-22 22:06:42 +03:00
Andrii Danylchenko
870fbd50e3 BattleAI: bigger reachability map 2023-10-22 21:37:55 +03:00
Andrii Danylchenko
9eb9404f28 BattleAI: divide only positive part of score onto turns count 2023-10-22 21:37:54 +03:00
Ivan Savenko
3880ea58b9 Merge branch 'josch/dos2unix' into develop 2023-10-22 18:39:03 +03:00
Ivan Savenko
4f47555977 Split OBJECT bonus source into OBJECT_TYPE and OBJECT_INSTANCE 2023-10-22 16:55:19 +03:00
Ivan Savenko
ac925bb786 Renamed new types for consistency with code style 2023-10-22 16:55:19 +03:00
Ivan Savenko
80e6485965 MetaIdentifier now uses std::variant internally 2023-10-22 16:55:19 +03:00
Ivan Savenko
b394158dc9 Bonus Source ID now uses metaidentifier 2023-10-22 16:55:18 +03:00
Ivan Savenko
77facf9387 Implement missing functions, fixes linking errors 2023-10-22 16:54:56 +03:00
Ivan Savenko
910ad50417 Fix client & server compilation 2023-10-22 16:54:48 +03:00
Ivan Savenko
0a10fc30b8 (lib) Bonus subtype is now stored as metaidentifier that can store any
other identifier inside it
2023-10-22 16:54:43 +03:00
Ivan Savenko
454ba44ac5
Merge pull request #2988 from IvanSavenko/configurable_extensions
Extension of configurable object functionality
2023-10-22 16:24:47 +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
Johannes Schauer Marin Rodrigues
f9e1b302c7
some spelling fixes 2023-10-18 01:41:02 +02:00
Ivan Savenko
fd01a25352 Implemented basic version of configurable Witch Hut 2023-10-16 00:12:38 +03:00
nordsoft
fadf086e61 Fix review comments 2023-10-12 13:30:01 +02:00
nordsoft
7ccd4cdcb2 Refactor quests progress 2023-10-11 21:10:42 +02:00
nordsoft
5b10b457cf Fix code review suggestions 2023-10-11 00:47:19 +02:00
nordsoft
5eeda3cd25 Quests mostly work 2023-10-10 23:44:29 +02:00
nordsoft
bb238f9b72 New quests work 2023-10-10 23:44:29 +02:00
nordsoft
1460541ee5 New limiter based quests 2023-10-10 23:44:29 +02:00
Ivan Savenko
46e4d862a5 Fix AI recruitment 2023-10-04 17:47:12 +03:00
Ivan Savenko
39a92cdde3 Add query for dwellings dialog 2023-10-04 17:47:12 +03:00
Ivan Savenko
898733eed7 Added Query to track visit duration for Taverns and Markets 2023-10-04 17:47:12 +03:00
Andrii Danylchenko
ebe155fa95 NKAI: mana recovery 2023-09-30 10:37:36 +03:00
Andrii Danylchenko
2dd0d76412 NKAI: water and air walking 2023-09-30 10:37:32 +03:00
Maxim Korotkov
56061d116e vcai: Combined cases with the same actions 2023-09-27 09:05:58 +03:00
Maxim Korotkov
f874d27797 AI: removed redundant checks
The pointers "up" and "down" were checked against nullptr
but it's always non-null
Also added curly braces for if statement. It's good practice
for avoiding shooting yourself to the foot

Signed-off-by: Maxim Korotkov <korotkov.maxim.s@gmail.com>
2023-09-27 09:05:58 +03:00
nordsoft
5f2023c8d5 Fix typo 2023-09-23 04:33:08 +02:00
Ivan Savenko
8c0d78f1d9 Added initiator-player to packs that add/remove/move objects 2023-09-19 19:24:34 +03:00
Ivan Savenko
c8e6a7cd27 Fixed most common cases of movement actions 2023-09-16 20:07:26 +03:00
Andrii Danylchenko
988531c6cb
Merge pull request #2845 from Alexander-Wilms/fuzzylite
Support include path of more recent fuzzylite versions
2023-09-16 11:05:55 +03:00
Andrii Danylchenko
a005829a57 NKAI: cancel checking building which needs itself as prerequisite 2023-09-16 11:04:28 +03:00
Alexander Wilms
6c15e5b426 Add include path of a more recent version of fuzzylite, which is required to build it with gcc 12.2.0
a651f3d13e
2023-09-16 05:13:16 +00:00
Ivan Savenko
f39fbe5151
Merge pull request #2757 from IvanSavenko/filesystem_refactor
Filesystem refactor - part 1
2023-09-07 10:51:02 +03:00
Ivan Savenko
ef94e7a78a Fix build 2023-09-06 16:03:47 +03:00
Ivan Savenko
9fa7a93fb0 Properly pass battleID in all battle netpack's 2023-09-06 16:03:47 +03:00
Ivan Savenko
41210c1dbf Client-side support for multiple battles 2023-09-06 16:03:47 +03:00
Ivan Savenko
036df2e0ad Support multiple battles in AI 2023-09-06 16:03:46 +03:00
Ivan Savenko
3a88180494 Separated game and battle callback (server & client only) 2023-09-06 16:03:39 +03:00
Ivan Savenko
86a7f5f5cd Removed getStr(bool), replaced with similar toString() 2023-09-04 22:21:02 +03:00
Ivan Savenko
8dfdfffd87 Use ResourcePath for audio files 2023-09-04 18:22:34 +03:00
Ivan Savenko
823ffa7a07 Always use ResourcePath for referencing images and animations 2023-09-04 18:22:34 +03:00
Evgeniy Meshcheryakov
ecf9b1aa2f Fix NKAI compilation with NKAI_PATHFINDER_TRACE_LEVEL>=2 2023-09-04 10:08:56 +03:00
Ivan Savenko
f6a4a1ae0c
Merge pull request #2686 from vcmi/fix-battle-freeze
BattleAI: fix freeze
2023-08-31 01:06:47 +03:00
Ivan Savenko
695a51d8c8 Merge remote-tracking branch 'vcmi/beta' into develop 2023-08-28 21:19:53 +03:00
nordsoft
98f7ed9dfd Implement player start turn query 2023-08-28 18:56:36 +04:00
Andrii Danylchenko
4b807e01f1 BattleAI: fix freeze 2023-08-27 21:03:55 +03:00
Ivan Savenko
ce20d913e0 Fix checking PlayerColor's for validness 2023-08-27 01:35:38 +03:00
Andrii Danylchenko
5f13a0bbda BattleAI: spellcast fixes and floating point score 2023-08-26 14:17:33 +03:00
Andrii Danylchenko
dc88f14e0b BattleAI: positive/negative effect multiplier 2023-08-26 13:06:51 +03:00
Andrii Danylchenko
03395a3d8a TBB for battle AI spellcast an fixes 2023-08-26 13:06:51 +03:00
Andrii Danylchenko
274bf739b8 BattleAI: damage cache and switch to different model of spells evaluation 2023-08-26 13:06:51 +03:00
Ivan Savenko
e54287ea5d Converted remaining identifier to new system 2023-08-25 13:38:02 +03:00
Ivan Savenko
0240ee886d Converted (almost) all namespace enum's to enum classes 2023-08-25 13:38:02 +03:00
Ivan Savenko
62cd8b12d4 Converted several namespace enums to enum class 2023-08-25 13:38:02 +03:00
Ivan Savenko
17d3d663ee Converted creature ID and spell ID to new form 2023-08-25 13:38:02 +03:00
Ivan Savenko
ec8d31bbfc First step at unifying game identifiers code 2023-08-25 13:38:01 +03:00
Ivan Savenko
d83aa828f6 Fix turn ending 2023-08-24 23:34:33 +03:00
Ivan Savenko
44d16b32fe Use API identical to std classes where possible 2023-08-23 16:32:29 +03:00
Ivan Savenko
87957e74c1 Replaced boost::thread_specific_ptr with thread_local 2023-08-23 16:32:29 +03:00
Ivan Savenko
2be9664d26 Remove no longer used code 2023-08-21 17:55:49 +03:00
Ivan Savenko
013417fb7e Code cleanup 2023-08-21 17:55:49 +03:00
Ivan Savenko
a1d3181a98 Unified spellcasting handling with other actions 2023-08-21 17:55:49 +03:00
Ivan Savenko
6297140bf5 Start of stabilization - battles now start correctly 2023-08-21 17:55:49 +03:00
Dydzio
d8eef4905a Implement new callback in stupidAI 2023-08-20 13:53:25 +02:00
Dydzio
6bfbe80cc9 Allow toggling quick combat spells usage 2023-08-19 17:23:55 +02:00
Andrii Danylchenko
1eabb738dc NKAI: fix heroes not recruited 2023-08-13 09:08:30 +03:00
Ivan Savenko
92ce97bbc7 Merge remote-tracking branch 'vcmi/master' into beta 2023-08-12 16:20:06 +03:00
DjWarmonger
654489d5d3
Merge pull request #2525 from vcmi/battle-fast-targets
Battle fast targets
2023-08-12 09:22:25 +02:00
Ivan Savenko
67b7c39761 Fix possible nullptr dereference 2023-08-11 18:50:39 +03:00
Andrii Danylchenko
ba9998ac66 BattleAI: fast targets optimization 2023-08-08 20:10:29 +03:00
Andrii Danylchenko
e7394ad20c BattleAI: log time to make a decission 2023-08-08 18:54:49 +03:00
Ivan Savenko
e57f8742cd Rename ambiguos 'clear' to 'clearSlots'
A lot of map objects inherit from CCreatureSet and as result - get
clean() method that resets object army
2023-08-07 19:13:02 +03:00
Andrii Danylchenko
1eb58bcc32 NKAI: fix potential concurrency and town treat calculation 2023-08-07 17:29:27 +03:00
Andrii Danylchenko
04fe78d31c NKAI: fix freeze on army gathering 2023-08-07 17:29:17 +03:00
Ivan Savenko
3f6cbc6312
Merge pull request #2484 from vcmi/nkai-fix-freeze
NKAI: fix freeze on army gathering
2023-08-07 16:52:59 +03:00
Andrii Danylchenko
60f0a4553a NKAI: fix freeze on army gathering 2023-08-06 09:03:29 +03:00
Andrii Danylchenko
a4297ebdf6 NKAI: fix potential concurrency and town treat calculation 2023-08-06 08:57:14 +03:00
Tomasz Zieliński
3b238ff15e Fix weekly visitable check 2023-08-01 17:30:47 +03:00
Andrii Danylchenko
4c0aae6fbd NKAI: fix crash for specific map 2023-07-31 22:01:12 +03:00
Andrii Danylchenko
ccfc6f5716 NKAI: increase towns priority, buy heroes more often 2023-07-31 22:01:12 +03:00
Andrii Danylchenko
ec0596f3dd NKAI: fix error message can not take away last stack 2023-07-31 22:01:12 +03:00
Andrii Danylchenko
f1a9ae99ee NKAI: various behavior fixes, undo max_gold_preasure 2023-07-31 22:01:12 +03:00
Andrii Danylchenko
fb7477047a NKAI: loosen gold presure on build system. 2023-07-31 22:01:12 +03:00
Andrii Danylchenko
6490c65490 nkai: fix freezes 2023-07-31 22:01:12 +03:00
Andrii Danylchenko
c93bb0a502 nkai: fixes and skill rewards 2023-07-31 22:01:11 +03:00
Andrii Danylchenko
202e13ce2e NKAI: log paths scan depth 2023-07-31 22:01:11 +03:00
Andrii Danylchenko
5083100d3b NKA: fix accessing removed hero and heroExchangeCount 2023-07-31 22:01:11 +03:00
Tomasz Zieliński
db2be3ee05 Anoother unused variable 2023-07-31 22:01:11 +03:00
Tomasz Zieliński
850da65f80 Another build fix 2023-07-31 22:01:11 +03:00
Tomasz Zieliński
88178567b1 Remove unused variable 2023-07-31 22:01:11 +03:00
Tomasz Zieliński
e483f06e0f Remove unused variable 2023-07-31 22:01:11 +03:00
Tomasz Zieliński
5bffea0aac Use new interface 2023-07-31 22:01:11 +03:00
Andrii Danylchenko
69ceee5dd6 NKAI: penalty for extra chains 2023-07-31 22:01:11 +03:00
Andrii Danylchenko
0fd118d3ce NKAI: gold reward 2023-07-31 22:01:11 +03:00
Andrii Danylchenko
6ba74f02bc NKAI: playing around with defence 2023-07-31 22:01:11 +03:00
Andrii Danylchenko
b19ac01bf9 Fuzzy rework, added more defence and gather army routines 2023-07-31 22:01:10 +03:00
Andrii Danylchenko
b1ca663eb6 Fuzzy rework 2023-07-31 22:01:10 +03:00
Andrii Danylchenko
38a98387e4 Temp fix for blocked in garrison ai. 2023-07-31 22:01:10 +03:00
Ivan Savenko
aed8c411fc Minor rework & cleanup of combat replays 2023-07-27 19:25:55 +03:00
Ivan Savenko
e23166df88 Fix locking of mutexes by StupidAI 2023-07-24 23:01:18 +03:00
Ivan Savenko
639880a426 Fix handling of tactics by AI 2023-07-23 14:03:22 +03:00
Ivan Savenko
58dd87d727 Fix AI spellcasting 2023-07-19 12:54:23 +03:00
Ivan Savenko
556763fb7b Fixed handling of tactics 2023-07-18 22:02:35 +03:00
Ivan Savenko
1bf6bbd9b6 Significantly simplified threading model in battles 2023-07-18 19:55:59 +03:00
Ivan Savenko
f27f5ebc7c Split BattleAI::activeStack into several smaller methods 2023-07-18 17:35:19 +03:00
Ivan Savenko
9acab48bc3
Merge pull request #2268 from SoundSSGood/CArtifactInstance-rework
CArtifact CArtifactInstance refactoring
2023-07-11 14:36:08 +03:00
Andrii Danylchenko
b1ef0f6301 #1912 Some logging and fix for allied garrison 2023-07-09 10:21:58 +03:00
SoundSSGood
9b5f6ec7cf CArtifact getters setters 2023-07-05 15:48:08 +03:00
Ivan Savenko
1cbc6457ce Fix possible assertion failure on removing non-owned town 2023-07-04 20:28:02 +03:00
Ivan Savenko
85262cf4f5 Moved CGameState files into a separate directory 2023-06-26 17:15:59 +03:00
Ivan Savenko
e0ea994656 Moved some pathfinding options to game settings 2023-06-25 17:42:36 +03:00
Ivan Savenko
08cfbe79cf Added encapsulation for movement points access 2023-06-25 17:42:36 +03:00
Ivan Savenko
f7b27da00e Implemented support for "coast visitable" objects:
- objects marked as coast visitable can be visited from land even when
placed in water
- added isBlockedVisitable and isCoastVisitable method to
CGObjectInstance
- implemented json config for these properties in banks
2023-06-25 17:42:33 +03:00
Ivan Savenko
69dc95c3c8
Merge pull request #2235 from IvanSavenko/hota_h3m_support
Hota h3m support
2023-06-23 13:32:10 +03:00
Ivan Savenko
ebc7a82c2e Converted pathfinder enum's to enum class 2023-06-21 15:38:57 +03:00
Ivan Savenko
f78470a301 Fix build 2023-06-21 14:55:25 +03:00
Ivan Savenko
bd4d2788ed Split pathfinder into multiple smaller files 2023-06-21 13:46:09 +03:00
Ivan Savenko
87fcfa4add Removed excessive pathfinder includes 2023-06-21 12:00:44 +03:00
Ivan Savenko
d51fe62804 Win/loss condition texts use MetaString 2023-06-20 19:37:27 +03:00
Ivan Savenko
6f743916db Moved CGCreature to a new file 2023-06-20 19:37:27 +03:00
Ivan Savenko
6aedb99117 Cleaned up IShipyard interface 2023-06-16 17:59:10 +03:00
Ivan Savenko
5cfbdd2967 Partially split CommonConstructors.cpp into few separate files 2023-06-16 17:59:10 +03:00
Evgeniy Meshcheryakov
6591508618 Fix crash in VCAI 2023-06-15 14:22:33 +03:00
Ivan Savenko
97b3b2e147 Fix build 2023-06-03 00:48:32 +03:00
Ivan Savenko
d6a357fd17 Split some map object files into smaller files. Reduced includes usage. 2023-06-02 21:47:37 +03:00
Ivan Savenko
acac42291e Remove excessive CMap.h includes 2023-05-31 23:18:38 +03:00
Andrii Danylchenko
fe65edd55d BattleAI: stacks should not measure damage against turret 2023-05-10 09:22:13 +03:00
Andrii Danylchenko
0829593356 NKAI: composite pathfinder actions and fix for guarded bordergate 2023-05-07 09:15:37 +03:00
Konstantin
05eccbc2bb vcmi: split bonus to enumerator and HeroBonus.h 2023-05-03 18:01:06 +03:00
Konstantin
fbc05c70ac vcmi: camelCase methods of new classes
Also use EGameSettings for clamping morale and luck
2023-05-02 12:09:13 +03:00
Konstantin
a6de9097be vcmi: rename HeroBonus.h to Bonus.h 2023-05-02 11:20:58 +03:00
Konstantin
1d34c73c2d vcmi: split CBonusSystemNode, BonusParams and prop
More splitting of HeroBonus.h
2023-05-02 00:54:53 +03:00
Konstantin
713e3004df vcmi: rename updater and limiter files 2023-05-02 00:53:51 +03:00
Konstantin
e37f798a68 vcmi: split bonus updaters 2023-05-02 00:53:50 +03:00
Konstantin
416faf521e vcmi: move limiters outside of HeroBonus.cpp
This will help for recompilation.
2023-05-02 00:53:50 +03:00
Konstantin
6fa1b2b19f vcmi: move bonuses to its own folder 2023-05-02 00:53:50 +03:00
Konstantin
af25ad0866 vcmi: split creatures and faction members 2023-05-02 00:53:50 +03:00
Nordsoft91
c9b59735cf
Merge pull request #2101 from Nordsoft91/rewardable-expand
Part 2: refactoring for rewardable object
2023-05-02 01:19:57 +04:00
Ivan Savenko
916b41d9a7
Merge pull request #2078 from IvanSavenko/shortcuts
Basic shortcuts system
2023-05-01 21:45:52 +03:00
nordsoft
97a1758e8e Merge remote-tracking branch 'upstream/develop' into rewardable-expand 2023-05-01 21:51:10 +04:00
nordsoft
eb577a03b5 Deprecating enum constants 2023-05-01 21:49:37 +04:00
nordsoft
4b1b58b617 Change Callback to abstract 2023-05-01 21:49:37 +04:00
nordsoft
59bc9326e9 Remove excess pointer from market interface 2023-05-01 21:49:37 +04:00
Ivan Savenko
a654cc2391 Removed vstd::advance. Added vstd::next to handle similar cases. 2023-05-01 17:58:18 +03:00
nordsoft
203d0a4f91 Merge remote-tracking branch 'upstream/develop' into rewardable-expand
# Conflicts:
#	lib/JsonRandom.cpp
2023-05-01 02:07:20 +04:00
nordsoft
1b4d117790 deeper decoupling 2023-04-30 17:13:07 +04:00
Konstantin
86f5d6de69 vcmi: modernize headers 2023-04-30 13:35:54 +03:00
nordsoft
e47bb3f1f9 Separate configuration and object 2023-04-30 00:59:02 +04:00
Ivan Savenko
346b8a4619
Merge pull request #2079 from rilian-la-te/cstack-some-private
vcmi: make some CStack properties private
2023-04-28 22:18:20 +03:00
Konstantin
cf2304d8c7 vcmi: new commits in submodules 2023-04-27 20:59:55 +03:00