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

1218 Commits

Author SHA1 Message Date
Tomasz Zieliński
190244369c Fix empty Pandora message 2023-06-15 22:06:31 +02:00
Tomasz Zieliński
adec58f5bf - Set fixed boat type for Tavern / Prison
- Move magical boat offset to static function
2023-06-15 17:53:18 +02:00
Tomasz Zieliński
f1356dd5bf Merge remote-tracking branch 'origin/develop' into water_prison_tavern 2023-06-14 20:58:02 +02:00
Tomasz Zieliński
651b1a8bea Remove unused variable. 2023-06-08 09:27:55 +02:00
Tomasz Zieliński
351d596bdc Handle water Prisons and Taverns. 2023-06-08 09:17:08 +02:00
SoundSSGood
f6c2d5cba7 hotfix 2023-06-07 13:08:04 +03:00
Ivan Savenko
1e9eea30e1 Merge remote-tracking branch 'soundsgood/CArtHandler-rework' into develop 2023-06-05 18:53:17 +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
b04b11b9d1
Merge pull request #2175 from IvanSavenko/map_format_mappings
HotA map format support  - object mapping
2023-06-01 22:06:18 +03:00
Ivan Savenko
312b703a78 Fixed mapping of hota objects 2023-05-31 23:18:39 +03:00
Ivan Savenko
acac42291e Remove excessive CMap.h includes 2023-05-31 23:18:38 +03:00
Ivan Savenko
8d0dcd6ad7 All h3m bitsets are now loaded inside mapReader 2023-05-31 23:01:57 +03:00
Konstantin
e82acf4840 CGHeroInstance: always add obligatory skills
Fixes #2198
2023-05-31 20:03:59 +03:00
SoundSSGood
1366825f08 final fixup 2023-05-24 16:10:06 +03:00
SoundSSGood
021f94a579 artifact utils 2023-05-17 17:00:31 +03:00
Ivan Savenko
cb8201876b
Merge pull request #1822 from rilian-la-te/spell-mechanics-v3
Bonus refactoring, part3 (save-incompatible)
2023-05-09 13:10:04 +03:00
Konstantin P
057a33c508 SpellSchool: use identifier instead of int
Needs redifinition of MAGIC_SCHOOL_SKILL in all mods
2023-05-07 20:37:32 +03:00
nordsoft
059ccdc9bc Fix for serialization bug 2023-05-07 04:02:52 +04:00
nordsoft
7c029bccba Show info nin modal window always 2023-05-07 03:19:18 +04:00
Konstantin P
9e1cdc410f vcmi: replace school bonuses to unified ones
Except immunity now
2023-05-05 21:30:45 +03:00
Konstantin P
8764765dcf Bonus: complex duration as bitset
Fixes #2125
2023-05-05 21:30:45 +03:00
nordsoft
67331c5520 Fix after merge 2023-05-05 00:14:44 +04:00
nordsoft
ce80c83ca2 Merge remote-tracking branch 'upstream/develop' into town-buildings
# Conflicts:
#	lib/CTownHandler.cpp
#	lib/rewardable/Interface.cpp
2023-05-04 22:23:44 +04:00
nordsoft
9984351302 Fix object clearing 2023-05-04 15:03:18 +04:00
Konstantin
05eccbc2bb vcmi: split bonus to enumerator and HeroBonus.h 2023-05-03 18:01:06 +03:00
nordsoft
92dcfd1f68 Fix garrisons hero 2023-05-02 15:09:02 +04:00
nordsoft
7996123dfa Rename constant 2023-05-02 14:45:53 +04:00
Konstantin
a6de9097be vcmi: rename HeroBonus.h to Bonus.h 2023-05-02 11:20:58 +03:00
nordsoft
c4cf2a100b Fix behavior for hero bought in town tavern 2023-05-02 04:44:09 +04:00
Konstantin
b6eb2dc060 vcmi: rename IFactionMember and ICreature 2023-05-02 00:54:53 +03:00
Konstantin
1d34c73c2d vcmi: split CBonusSystemNode, BonusParams and prop
More splitting of HeroBonus.h
2023-05-02 00:54:53 +03:00
Konstantin
34c1d4f3e9 vcmi: move CBonusProxy and friends to new file
To decouple HeroBonus.h more
2023-05-02 00:53:51 +03:00
Konstantin
6fa1b2b19f vcmi: move bonuses to its own folder 2023-05-02 00:53:50 +03:00
Konstantin
4f7035d3ff vcmi: add IFactionMember abstract class 2023-05-02 00:53:50 +03:00
nordsoft
0250e6fb92 Merge branch 'develop-upstream' into town-buildings
# Conflicts:
#	client/CPlayerInterface.cpp
#	client/windows/CTradeWindow.cpp
#	config/objects/generic.json
#	lib/mapObjects/CGMarket.cpp
#	lib/mapObjects/CGMarket.h
#	lib/mapObjects/CGTownInstance.cpp
#	lib/mapObjects/CommonConstructors.cpp
#	lib/mapObjects/CommonConstructors.h
2023-05-02 01:48:13 +04: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
87ff31531f Rename parameter and remove extra check 2023-05-01 21:49:37 +04:00
nordsoft
07b2052679 Bit refactoring 2023-05-01 21:49:37 +04:00
nordsoft
68fa7aaf35 Remove limitations for amount of skills 2023-05-01 21:49:37 +04:00
nordsoft
a4fd6c1c92 Move trading window title to config 2023-05-01 21:49:37 +04:00
nordsoft
b29fc1a5f4 Fix movement bonus subtype 2023-05-01 21:49:37 +04:00
nordsoft
3d20538c1e Implement markets 2023-05-01 21:49:37 +04:00
nordsoft
35a505288b Fix json value reader 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
d2e0d6a754 Fix none-Of operator for skills 2023-05-01 01:35:01 +04:00
nordsoft
c7ade44d07 Fix skills loading from mods 2023-05-01 01:35:01 +04:00
nordsoft
e9279cfbc4 Blocking dialogs supported 2023-05-01 00:14:53 +04:00
nordsoft
c4242c16ad Compiling code 2023-05-01 00:14:53 +04:00
nordsoft
f9767a3179 Initial implementation for rewardable town building 2023-05-01 00:14:53 +04:00
nordsoft
2adcc89a0d Rewardable town buildings prototype 2023-05-01 00:14:53 +04:00
nordsoft
cc4277748d Fix movement bonus subtype 2023-05-01 00:14:53 +04:00
nordsoft
67e6920e23 Implement markets 2023-05-01 00:14:53 +04:00
nordsoft
30967b2813 Remove excess pointer from market interface 2023-05-01 00:14:53 +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
ac8f390cf8 Dividing rewarbadle objects into separate files 2023-04-30 04:39:31 +04:00
nordsoft
67bfacfcf7 Create of rewardable interface 2023-04-30 03:15:59 +04:00
nordsoft
c39a9cac63 Minor changes 2023-04-30 01:43:02 +04:00
nordsoft
e47bb3f1f9 Separate configuration and object 2023-04-30 00:59:02 +04:00
Ivan Savenko
d985ac90d3 Merge master -> develop 2023-04-28 22:57:25 +03:00
Ivan Savenko
3dde827a9d
Merge pull request #2070 from rilian-la-te/make-tests-compile-pass-h3
vcmi: fix test compiling and passing
2023-04-28 22:18:00 +03:00
nordsoft
f6d91cab35 Fix portrait serialization
# Conflicts:
#	lib/mapObjects/CGHeroInstance.cpp
2023-04-28 05:34:59 +04:00
nordsoft
421bbab1cc Split CGTownInstance file 2023-04-28 05:30:49 +04:00
Konstantin P
54e4db3819 vcmi: fix abandoned mine resource loading
It was overshadowed by local variable
2023-04-27 20:59:55 +03:00
Ivan Savenko
fb739e7186 Merge beta -> develop 2023-04-26 22:48:08 +03:00
Nordsoft91
f39f208e05
Merge pull request #1915 from Nordsoft91/vcmi-campaign
VCMI campaigns format
2023-04-23 19:09:59 +04:00
Nordsoft91
a553a4aa66
Merge pull request #2030 from Nordsoft91/boats 2023-04-22 03:27:00 +04:00
nordsoft
de159df481 Rename boats 2023-04-20 21:20:51 +04:00
nordsoft
9ecf16ca23 Fix minor bugs 2023-04-20 03:20:00 +04:00
Ivan Savenko
5a5aced67e Fixed empty Black Market on game start 2023-04-19 23:11:17 +03:00
Ivan Savenko
4bb4d7e7a5
Merge pull request #1989 from SoundSSGood/refactoring-arts-p1
Artifact related code refactoring part1 (initial)
2023-04-19 15:31:11 +03:00
Ivan Savenko
505a78a638
Merge pull request #2035 from rilian-la-te/native-fix-beta
vcmi: fix terrain penalties
2023-04-19 13:39:54 +03:00
Konstantin P
d94ce22e70 vcmi: fix terrain penalties
Fixes #2028
2023-04-19 12:41:54 +03:00
nordsoft
0a28262c15 Merge remote-tracking branch 'upstream/develop' into boats
# Conflicts:
#	AI/VCAI/Pathfinding/AINodeStorage.cpp
2023-04-19 02:22:19 +04:00
nordsoft
008db447e7 Minor changes 2023-04-19 02:11:24 +04:00
nordsoft
22da7a931d Boat as bonus system node 2023-04-19 01:11:51 +04:00
nordsoft
d1dacd45e2 Animations from config 2023-04-19 00:14:15 +04:00
nordsoft
ddcdfb643a Try to enable air/land movement 2023-04-18 17:36:42 +04:00
nordsoft
d83566bc74 Add constructor for boat 2023-04-18 17:27:39 +04:00
nordsoft
ed798b06da Prepare transport enum 2023-04-18 13:04:49 +04:00
Konstantin
7a5775a9f9 vcmi: use std::optional 2023-04-17 00:43:13 +03:00
Ivan Savenko
87647cd02a Do not propose banned skills in witch huts 2023-04-15 17:20:38 +03:00
Ivan Savenko
ea8aeef8c0 Implemeted parsing of HotA Seer Huts 2023-04-15 17:20:38 +03:00
Ivan Savenko
f93335d678 Cleanup and formatting of H3M loader code 2023-04-15 17:20:38 +03:00
Ivan Savenko
3738171b21 Refactoring of H3M loader to make HotA format support easier
- extracted low-level reader from MapFormatH3M class
- added separate structure to define version-specific values
- cleared up some H3M format edge cases
- replaced witch hut skill vector with set
- converted several fields to enum type
2023-04-15 17:20:38 +03:00
SoundSSGood
9a838598a6 arts refactoring part1 2023-04-15 00:10:39 +03:00
Ivan Savenko
b354f99cc3
Merge pull request #1936 from IvanSavenko/cpp_17_upgrade
Upgrade c++ standard to c++17
2023-04-14 19:21:17 +03:00
Ivan Savenko
44b83b2e11 Merge master -> develop 2023-04-14 16:51:35 +03:00
Ivan Savenko
35ac4d88ac Fix Seer Hut right-click text 2023-04-13 19:06:44 +03:00
Ivan Savenko
506c3d29bc Replaced vstd clamp with std version 2023-04-12 01:03:14 +03:00
Ivan Savenko
dfa2e2a349 Merge beta into develop 2023-04-11 19:37:35 +03:00
Ivan Savenko
ff66592fad
Merge pull request #1882 from rilian-la-te/native-terrain-refactor
Native terrain refactor
2023-04-11 02:14:37 +03:00
DjWarmonger
4bd3cc1679
Update lib/mapObjects/ObjectTemplate.h
Co-authored-by: Nordsoft91 <nordsoft@yahoo.com>
2023-04-10 20:45:41 +02:00
Tomasz Zieliński
3c87b3934d Do not place object visible tiles over the top of the map. 2023-04-10 19:26:53 +02:00
nordsoft
9371f013e9 Rename outer caster 2023-04-10 20:56:50 +04:00
Konstantin
4da97682be vcmi: remove code duplication for native terrain 2023-04-10 19:28:17 +03:00
Konstantin
fedf7d377c vcmi: remove TFaction
This is a huge change and will break save compatibility
2023-04-10 19:28:16 +03:00
Konstantin
7326980bd4 vcmi: rename WithXXX to IXXXProvider 2023-04-10 19:28:16 +03:00
Konstantin
f8eba58003 vcmi: remove ALL_CREATURES propagator
Now unneded, because it handled by GLOBAL_EFFECT with
CREATURE_LEVEL_LIMITER (when range set to UINT_MIN and UINT_MAX).
2023-04-10 19:28:16 +03:00
Konstantin
0f5f4c69ec vcmi: specialize native terrain entity
Specialize native terrain entity for all object that have
native terrain. Allow creatures to take global bonuses into
account when checking for native terrain.
2023-04-10 19:28:16 +03:00
Konstantin
1760d2295c HeroBonus: add CreatureLevelLimiter 2023-04-10 19:28:16 +03:00
Konstantin
01f5571342 CGHeroInstance: remove old struct
Saves where struct is used is incompatible anyway
2023-04-10 19:28:16 +03:00
nordsoft
b9cabef179 Fixes issues related to spell mechanics 2023-04-10 17:08:24 +04:00
nordsoft
1a63f44dab Minor change 2023-04-10 05:53:20 +04:00
nordsoft
464ad63749 Implement behavior 2023-04-10 05:46:45 +04:00
nordsoft
7041950ae1 Don't show empty window 2023-04-10 05:06:05 +04:00
nordsoft
e440343921 Bypass initial version of spell callback 2023-04-10 04:34:24 +04:00
nordsoft
0093a44889 Added abstract method to caster interface 2023-04-10 01:31:41 +04:00
nordsoft
72b2a09f0b Boat summon spell rewritten 2023-04-10 01:06:02 +04:00
nordsoft
69ad62ef58 Fixes from code review 2023-04-09 23:00:20 +04:00
nordsoft
a8f31fabd1 Fix bug 2023-04-09 23:00:20 +04:00
nordsoft
67c0d29478 Fix header 2023-04-09 23:00:20 +04:00
nordsoft
e7c6f596ee Little code improvement 2023-04-09 23:00:20 +04:00
nordsoft
ab7d316c3f Rename fields 2023-04-09 23:00:20 +04:00
nordsoft
b40a3a1b14 Banned arts and skills cannot be randomly rewarded 2023-04-09 23:00:20 +04:00
nordsoft
26c3277895 New format for skills selection 2023-04-09 23:00:20 +04:00
nordsoft
b7ccc4d649 Revert "Random selection for secondary skills"
This reverts commit 6e538dab30.
2023-04-09 23:00:20 +04:00
nordsoft
6c5f3f21a5 Extend loadKey function 2023-04-09 23:00:20 +04:00
nordsoft
fe21acb0d0 Revert "Random selection for resources"
This reverts commit 0e4ff3e2bf.
2023-04-09 23:00:20 +04:00
nordsoft
dce5a924b0 Random selection for secondary skills 2023-04-09 23:00:20 +04:00
nordsoft
53e16c7e22 Random selection for primary skills 2023-04-09 23:00:20 +04:00
nordsoft
bb915b0e7e Random selection for resources 2023-04-09 23:00:20 +04:00
Ivan Savenko
a6ce99573c Added fallback identifiers for reading older vcmi maps 2023-04-09 12:27:33 +03:00
Ivan Savenko
50da080130 Fixed UI of objects that provide one reward that can be refused 2023-04-08 00:13:38 +03:00
Konstantin
11b237a23c vcmi: massive refactoring v1 2023-04-05 22:33:12 +03:00
Konstantin
8968f0ef0e vcmi: change EAlignment to enum class 2023-04-05 01:22:04 +03:00
Konstantin
22dd97ad18 vcmi: use entilites when possible part 1 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
c661419897
Merge pull request #1700 from rilian-la-te/resource-array
Modernize resourceSet.
2023-04-02 20:12:45 +03:00
Ivan Savenko
6dac15c5b2
Merge pull request #1706 from rilian-la-te/moats-landmines
Proper moats: mechanincs
2023-04-02 20:12:33 +03:00
nordsoft
1e5362cb07 Fix crash with cutting random town 2023-04-02 14:06:16 +04:00
Tomasz Zieliński
308b42549b Merge remote-tracking branch 'origin/beta' into object_distribution 2023-03-31 15:44:14 +02:00
Konstantin
3bbff0588d CSpell: !isMagical() -> no sorcery and no generic spell dmg reduction
Other bonus are still applied.
2023-03-31 01:01:25 +03:00
Ivan Savenko
508d68f77c Rewardables will use per-object name, if available 2023-03-30 22:29:58 +03:00
Konstantin
5716925b47 NetPacks: change GiveBonus enum to enum class. 2023-03-30 12:41:17 +03:00
Tomasz Zieliński
b184e80b72 Use the most suitable template for object 2023-03-28 17:53:08 +02:00
Ivan Savenko
8d0d5341db Refactoring of hero specialty loading code:
- removed no longer used code
- follow creature upgrade chains (e.g. third upgrades)
2023-03-28 17:09:54 +03:00
Ivan Savenko
b875da108b
Merge pull request #1717 from SoundSSGood/backpack-limit-size
Introducing backpack size limit functionality
2023-03-27 17:17:49 +03:00
Tomasz Zieliński
18a87d1ec0 Distribute limited objects evenly in zones with matching terrain 2023-03-27 09:09:58 +02:00
Ivan Savenko
6f631a0aa7
Merge pull request #1759 from IvanSavenko/kills_in_tooltip
Show potential kill amount in attack tooltip
2023-03-25 20:03:27 +02:00
DjWarmonger
2c4cde060a
Merge pull request #1694 from vcmi/extra_rmg_monoliths
This could be controversial solution, but since there were no objections, I'll give it a shot.
2023-03-25 18:38:06 +01:00
Ivan Savenko
31147ac83b refactoring: TDmgRange pair -> DamageRange struct 2023-03-23 17:49:33 +02:00
SoundSSGood
19096f39f0 Backpack limit. Amount of fixes. 2023-03-21 22:11:42 +02:00
SoundSSGood
f0f9eecf97 Backpack limit part5. End of battle. Other stuff 2023-03-21 12:14:33 +02:00
SoundSSGood
9f8aa25297 Backpack limit part4 (Using cheats, buying) 2023-03-21 12:14:33 +02:00
SoundSSGood
ca5c9910a4 Backpack limit part3 finishQuest 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
Andrey Filipenkov
a0cd69e944 Slight refactoring of CGHeroInstance::movementPointsAfterEmbark() 2023-03-20 11:35:20 +03:00
Andrey Filipenkov
bfb0dc26d5 fix movement cost on roads 2023-03-20 11:35:19 +03:00
Tomasz Zieliński
eabcbfc25a Fix all stacks being capped at 10 units 2023-03-17 22:32:05 +01:00
Konstantin
6de042657c fix Ignissa bug the old way 2023-03-17 20:09:18 +03:00
Konstantin
bbbbfe00f0 Modernize resourceSet 2023-03-17 02:26:54 +03:00
Ivan Savenko
a0e9e01b48 Renamed & reorganized all game mechanics settings names 2023-03-16 18:11:35 +02:00
Ivan Savenko
383387ef29 Integrated defaultMods into mod system 2023-03-16 17:55:09 +02:00
Konstantin
580268bfd4 vcmi: fix logistics specialist movement regression
There was incorrect calculations introduced earlier.
2023-03-16 16:46:42 +03:00
Konstantin
0adffc824f vcmi: allow to configure army movement counter
It is not hardcoded now. MOVEMENT.TXT is still not read,
but ARMY_MOVEMENT updater parameters can be specified in json.
There is a 4 parameters:
1. Base - base value (firstly lowest speed is multiplied by it)
2. Divider - base value is integrally divided by it
3. Multiplier - result value will be multiplied by it
4. Max - maximum allowed movement from army.

Vanilla values is in defaultMods.json

Fixes: https://bugs.vcmi.eu/view.php?id=3209
2023-03-16 16:46:42 +03:00
Konstantin
b91d7418dd vcmi: remove ONLY_ENEMY_ARMY range
It should be used directly instead of alias, propagation updater
also can be useful for any other updaters can be added.
2023-03-16 16:46:42 +03:00
Konstantin
95503d0623 vcmi: unify movement
1. Now there is only one bonus: MOVEMENT, with 2 subtypes: 0 is sea, 1 is land
   For movement value on land depends on creature speed we use a new
   ARMY_MOVEMENT updater with global bonus. If we does not like such
   dependency, we can just remove this updater from json.
2. All specialities and secondary skills for movement moved to new
   system AFAIK
2023-03-16 16:46:41 +03:00
Konstantin
20a9332a3f vcmi: translate wisdom
Make wisdom as separate bonus. It will be enough for now. But
next is should be done as IsLearnable for each spell.
2023-03-16 16:46:41 +03:00
Konstantin
ddcff9dc36 vcmi: convert magic schools to MAGIC_SCHOOL_SKILL
It is already used by battlefields.
2023-03-16 16:46:41 +03:00
Konstantin
a0987313ba vcmi: convert intelligence
Intelligence is converted to both global effect and skill bonus

Bonus name HERO_MANA_PER_TEN_KNOWLEDGE is a little weird, but works
like old SECONDARY_SKILL_PREMY bonus
2023-03-16 16:46:41 +03:00
Konstantin
a86e12cd42 vcmi: convert necromancy
Now it is 3 bonuses to cover necromancy.
1. IMPROVED_NECROMANCY = possible creatures raized (affected by cloak)
2. UNDEAD_RAISE_CHANCE = raise chance (affected by artifacts)
3. UNDEAD_RAISE_POWER = helper to select creature from first
2023-03-16 16:46:41 +03:00
Konstantin
84eece1d8b vcmi: convert mysticism to MANA_REGENERATION
With PERCENT_TO_TARGET_TYPE it was easy.
2023-03-16 16:46:41 +03:00
Konstantin
f641ed2015 vcmi: convert learning to global effect
Now hero experience is a global effect, and secondary
skill gives exactly same bonus. Can be modified by
PERCENT_TO_TARGET_TYPE.
2023-03-16 16:46:41 +03:00
Konstantin
a85f3b63ec vcmi: reuse SPELL_DAMAGE for sorcery
Now there is no need for specific spell bonus, and
we need to simply reuse SPELL_DAMAGE, and by using
PERCENT_TO_TARGET_TYPE speciality will work.
2023-03-16 16:46:41 +03:00
Konstantin
6b987275eb vcmi: use global bonuses for sight radius and mana
We do not need to hardcode constants for there. We can just
use default bonuses.
2023-03-16 16:46:41 +03:00
Konstantin
5d4bcb3c78 vcmi: fix scouting bonus spelling error
With fallback for old mods.
2023-03-16 16:46:41 +03:00
Konstantin
c64d05c419 vcmi: skill-agnostic diplomacy
This is simple and will work.
2023-03-16 16:46:41 +03:00
Konstantin
6e4372176a vcmi: skill-agnostic pathfinding
For now, works exactly as in VCMI and H3.
I think we should add some BONUS_TERRAIN_DISCOUNT_PERCENT bonus
to discount by percent, like written in pathfinding description
2023-03-16 16:46:41 +03:00
Konstantin
f26fac5562 vcmi: move obligatory marker to CSkillHandler
It is working, now it is possible to
define other obligatory skills than wisdom or magic schools,
but only 2 types of obligatory skills exists - like wisdom and
like magic school
2023-03-16 16:46:41 +03:00
Konstantin
4acf3778ef vcmi: allow adding global bonuses
I will use it to implement some H3 base features like
mana regen and base movement.
2023-03-16 16:46:41 +03:00
Konstantin
d9496dd9f7 vcmi: remove vector speciality format
It is deprecated and will not be used anymore.
2023-03-16 16:46:41 +03:00
Ivan Savenko
129b5313c5
Merge pull request #1663 from Adriankhl/fix_load_sleeping_heroes
Fix client data deserialization, such as sleepingHeroes
2023-03-16 15:05:18 +02:00
Tomasz Zieliński
5b267f9cbd - Duplicate Monolith templates to ensure at least 100 are available to RMG
- Do not use Monoliths which can't be placed at any land
2023-03-16 06:58:25 +01:00
Ivan Savenko
d2152d387f Fix processing of VCMI_Tests map 2023-03-14 21:48:39 +02:00
Ivan Savenko
06e5d37fbd Fixed incorrect error messages from translations 2023-03-14 19:55:08 +02:00
Adriankhl
626721cbba Fix serialization of ObjectClass 2023-03-12 21:41:46 +01:00
Konstantin
45dcd95f20 miscObjects: fix whirpool display
It should display negative numbers, not positive
2023-03-11 21:41:58 +03:00
Konstantin
fafe352f93 vcmi: bump max serialization version
And also - now we can choose between 3 states for rewardables
actually.
2023-03-11 21:41:57 +03:00
Konstantin
bc228a938a vcmi: use enum class for EComponentType
There is really no reason not to use it
2023-03-11 21:41:57 +03:00
Konstantin
716dd9a43b vcmi: remove a bunch of duplicated showInfoDialog
These methods duplicated in almost every map object
Just replace it by one such method
2023-03-11 21:41:57 +03:00
Konstantin
8edba4fb06 vcmi: use MODAL by default
Convert only some objects to AUTO, need futher testing
than no non-adventure objects will not use AUTO or INFO
2023-03-11 21:41:57 +03:00
Konstantin
c759400767 vcmi: allow showing simple rewardables in infobox 2023-03-11 21:41:57 +03: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
Konstantin
d503c875a4 vcmi: fix mana points displayed 2023-03-11 21:41:57 +03:00
Ivan Savenko
0c847c85cc Fix serialization of rewardable objects 2023-03-07 00:06:58 +02:00
Ivan Savenko
0b3c10d990 Fix crash on hovering Market of Time (unfinished H3 object) 2023-03-07 00:06:58 +02:00
Ivan Savenko
7ef5163d9d
Merge pull request #1581 from IvanSavenko/map_render_rewrite
Adventure Map - rendering rewrite
2023-03-05 19:51:07 +02:00
Ivan Savenko
5905dd6111 Grail digging check is now in library 2023-03-05 17:48:02 +02:00
Ivan Savenko
ca13e7dedf Implemented terrain palette animatiions. Removed old code 2023-03-05 17:48:02 +02:00
Ivan Savenko
bd70b6fabd Unicode conversion functions now require source encoding 2023-03-05 17:39:27 +02:00
Ivan Savenko
8b3309b47d Fixed custom hero names text ID's 2023-03-05 17:39:27 +02:00
Ivan Savenko
623cae7d47 All translatable strings now have language identifier 2023-03-05 17:30:38 +02:00
Ivan Savenko
84fa19dadf
Merge pull request #1547 from dydzio0614/game-start-unrandomization
Hardcoded features for HotA-like starting conditions
2023-03-05 17:29:49 +02:00
Ivan Savenko
8c52cbcd00
Merge pull request #1429 from dydzio0614/creature-numeric-quantities
Implement numeric creature descriptions with config toggle on/off
2023-02-26 22:57:01 +02:00
Dydzio
e48a4185ed Use config values from new settings 2023-02-15 23:36:09 +01:00
Andrii Danylchenko
c6feafc367 Hack to fix campaigns 2023-02-15 20:37:18 +02:00
Ivan Savenko
f65c6ad275 fix regressions from modernization 2023-02-15 14:27:12 +02:00
Konstantin
5f181e25af vcmi: modernize lib/mapObjects 2023-02-14 14:39:56 +03:00
DjWarmonger
94bc418e34
Update CRewardableConstructor.cpp
Fixed swapped identifiers in Limiter.
2023-02-11 08:28:29 +01:00
Dydzio
8604bde69e
Apply suggestions from code review
Commit code review changes

Co-authored-by: Ivan Savenko <saven.ivan@gmail.com>
2023-02-09 19:20:41 +01:00
Dydzio
7095e9d8f9 Allow heroes to start with empty armies if configured properly 2023-02-05 00:36:51 +01:00
Dydzio
3f79a9806c Allow flexible configuration - starter dwellings and max stacks count 2023-02-04 23:40:02 +01:00
Konstantin
7b8aebe4e3 vcmi: deprecate MAXED_SPELL
It is almost identical to SPECIAL_FIXED_VALUE_ENCHANT.

Replace its usage in JSON and inside deprecated converter
to SPECIAL_FIXED_VALUE_ENCHANT. Remove buggy string inside
getEffectLevel.
2023-02-04 16:23:03 +03:00
Dydzio
4f4660e82d Hardcoded feature to allow new heroes always have 3 stacks like in HotA 2023-02-02 22:28:14 +01:00
Ivan Savenko
34772ef830 Fixed includes 2023-02-01 21:45:06 +02:00
Ivan Savenko
c5508d33fc
Merge pull request #1514 from IvanSavenko/rewardable_fixes
Minor fixes to rewardable objects
2023-01-31 12:47:24 +02:00
Ivan Savenko
57df0a6995 Fix crash on hovering prison 2023-01-30 19:00:51 +02:00
Ivan Savenko
57ee9a9bf3 Merge vcmi/beta into vcmi/develop 2023-01-29 18:21:55 +02:00
Ivan Savenko
a2cd17197e Fix Campfire Gold reward amount. Now always one of 400/500/600 2023-01-28 13:12:03 +02:00
Ivan Savenko
d82822d37a Fix reset of rewardable objects with reset period of 1 day 2023-01-28 13:12:03 +02:00
Ivan Savenko
e87adf334d Fix loading of vcmi json maps 2023-01-26 23:32:56 +02:00
Ivan Savenko
8b2d336562 Fix initialization of visitDir in templates 2023-01-26 23:32:56 +02:00
Ivan Savenko
a3846f1b31 Fix incorrect identifiers format 2023-01-26 23:32:56 +02:00
Ivan Savenko
eebc6fd625 Map object use format mod:object (or mod:object.subobject) 2023-01-26 23:32:56 +02:00
Ivan Savenko
7b82387a49 Dwellings & Banks will register custom names for their objects 2023-01-26 23:32:56 +02:00
Ivan Savenko
bc27faea57 All objects will register single name per object type 2023-01-26 23:32:55 +02:00
Ivan Savenko
f71cbc5d9b Fixed loading of object names 2023-01-26 23:27:26 +02:00
Ivan Savenko
b13637cdd5 Fix regressions in RMG & map editor 2023-01-26 23:27:26 +02:00
Ivan Savenko
6f324216db Bugfixing 2023-01-26 23:27:24 +02:00
Ivan Savenko
6c472339ce Refactoring of ObjectClassesHandler 2023-01-26 23:26:49 +02:00
Ivan Savenko
c5f72ccdc7 Names for object supertypes are passed through translator 2023-01-26 23:19:53 +02:00
DjWarmonger
25ef065dbe
Merge pull request #1486 from IvanSavenko/configurable_rewardables
Well, it works for my brand new objects with arbitrary bonus, so likely will work with everything else.
2023-01-26 17:01:01 +01:00
Andrii Danylchenko
94f483c1e7
Merge pull request #1481 from kambala-decapitator/owner-tooltip
display owner of ownable objects in tooltip
2023-01-25 10:38:13 +02:00
Ivan Savenko
7a9e5e4e30 Cleanup & consistency changes 2023-01-25 00:38:50 +02:00
Ivan Savenko
af5ff0c9df Remove no longer used code 2023-01-24 23:34:02 +02:00
Ivan Savenko
44bdd2cbf3 Implemented selectable messages for visited & empty state 2023-01-24 23:31:07 +02:00
Andrey Filipenkov
90cb0cdc9b fix displaying growth bonus from Statue of Legion 2023-01-24 18:35:30 +03:00
Andrey Filipenkov
5b10903116 reorder growth bonuses display to match oh3 2023-01-24 18:35:07 +03:00
Ivan Savenko
ca6947b2cc Fixed Tree of Knowledge component 2023-01-24 17:35:06 +02:00
Ivan Savenko
c793527b44 Added "days since start of the game" limiter. Fixes Water Wheel 2023-01-24 16:54:14 +02:00
Ivan Savenko
ca521fb129 Removed incomplete functionality from rewardable object 2023-01-24 16:29:05 +02:00
Ivan Savenko
c9dcb921ab Implemented "changeCreatures" option for Stables 2023-01-24 16:18:59 +02:00
Ivan Savenko
ecbcafefbc It is now possible to configure what exactly will be reset in object 2023-01-24 13:54:03 +02:00
Ivan Savenko
0c70822928 Implemented logical expression (allOf/anyOf/noneOf) for limiters 2023-01-23 23:54:54 +02:00
Ivan Savenko
f8f6df02f3 Removed remaining hardcoded objects 2023-01-23 15:27:27 +02:00
Ivan Savenko
62e127fb59 Bonusing objects are now configured in json 2023-01-23 01:05:10 +02:00
Ivan Savenko
bfd6c40f25 Moved all once-per-hero visitable (sans Tree) to config 2023-01-22 22:58:53 +02:00
Ivan Savenko
a6bda58276 Moved CGOnceVisitable to config 2023-01-22 20:26:19 +02:00
Ivan Savenko
fcb455b7f4 Fixed remaining bugs with converted objects 2023-01-22 18:37:26 +02:00
Ivan Savenko
695a94c3c8 Fixed all major bugs with newly converted objects 2023-01-22 18:17:26 +02:00
Ivan Savenko
9f3f9cc563 Added some missing functionality for configurable object 2023-01-22 02:08:58 +02:00
Ivan Savenko
83bb70cd8a All CGPickable objects are now fully configurable 2023-01-21 16:45:04 +02:00
Ivan Savenko
9565cae3cb Fix potential assertion failure on map load 2023-01-21 15:57:25 +02:00
Dydzio
685d63603d Merge branch 'develop' into creature-numeric-quantities 2023-01-21 12:57:29 +01:00
Andrey Filipenkov
2a43b7cfbc display owner of ownable objects in tooltip
also displays owner of towns (deviation from oh3)
2023-01-21 14:25:43 +03:00
Ivan Savenko
47c1803c42 Finalization of refactoring:
- Entity interface now has getNameTranslated & getNameTextID methods
- Entity interface no longer has getName method
- removed (most) usages of normalizeIndentifier workaround method
- all moddable objects have identifier in form of mod:name
- all moddable object register strings in form of mod.type.name
2023-01-20 15:18:36 +02:00
Ivan Savenko
05a1d7c6e3 All text for factions/towns/building are passed through translator 2023-01-20 15:18:36 +02:00
Ivan Savenko
388ed88b5d All artifact strings now pass through translator 2023-01-20 15:18:36 +02:00
Ivan Savenko
d2b837b116 All creature-related texts go through translator 2023-01-20 15:18:36 +02:00
Ivan Savenko
fa6f7513e8 All heroes-related strings are passed through translator 2023-01-20 15:18:36 +02:00
Ivan Savenko
e22f6283c2 Secondary skills strings are now passed through translator 2023-01-20 15:18:36 +02:00
Ivan Savenko
5da407e822 All spell texts are now passed through translator 2023-01-20 15:18:36 +02:00
Ivan Savenko
30d7bdc884 Moved tower damage computation to town instance 2023-01-20 15:18:10 +02:00
Ivan Savenko
05ac217b0f Merge with vcmi/develop 2023-01-17 23:02:25 +02:00
Ivan Savenko
633b9ef3be Native terrain is now required for faction, opt-out with value "none" 2023-01-17 22:59:14 +02:00
Ivan Savenko
246281e62a Merged vcmi/beta with vcmi/develop 2023-01-15 17:46:42 +02:00
Dydzio
8248feebf7 Implement numeric creature descriptions with config toggle on/off 2023-01-14 15:55:08 +01:00
Ivan Savenko
e48bd39b9c Moved road & river handlers into a separate file 2023-01-11 15:17:24 +02:00
Ivan Savenko
5e72ef76cf Fix quest texts accessing 2023-01-11 15:10:44 +02:00
Ivan Savenko
1e37e66e6c Replaced Terrain::BORDER and WRONG with NONE 2023-01-10 20:09:09 +02:00
Ivan Savenko
4f3ea0d1d9 Renamed Terrain.h/cpp -> TerrainHandler.h/cpp 2023-01-10 00:01:35 +02:00
Ivan Savenko
f51b3bca57 use JsonKey or NameTranslated instead of ambiguos Name 2023-01-10 00:01:35 +02:00
Ivan Savenko
7c7ae26e67 Map/Road/River identifiers are now private members 2023-01-10 00:01:35 +02:00
Ivan Savenko
64885bdf6b Better names for terrain parameters. Support for new movement sounds. 2023-01-10 00:01:35 +02:00
Ivan Savenko
4e4dae854f Final stabilization changes 2023-01-10 00:01:35 +02:00
Ivan Savenko
2de3178158 Fixed game startup 2023-01-10 00:01:35 +02:00
Ivan Savenko
e1799379dd Terrain/Road/River handler are now in compileable state 2023-01-10 00:01:35 +02:00
Ivan Savenko
1468f6aded Converted terrainTypeHandler into proper handler class 2023-01-10 00:01:35 +02:00
Ivan Savenko
bde988ca43
Merge pull request #1329 from IvanSavenko/translate_game
Translations support - base functionality for main game texts
2023-01-09 20:33:56 +02:00
Ivan Savenko
2f5ee44cbe Fixes patrol position initialization on H3M load 2023-01-09 18:34:13 +02:00
Ivan Savenko
7e8516f927 Changed Sirens behavior to match H3 logic 2023-01-09 13:04:56 +02:00
Ivan Savenko
c479504646 Formatting cleanup 2023-01-01 22:50:38 +02:00
Ivan Savenko
7c0d5666a0 Return string by copy to fix cases when string is constructed on stack 2023-01-01 20:55:43 +02:00
Ivan Savenko
9a620a9091 Refactoring of GeneralTextHandler to reduce boilerplate code in callers 2023-01-01 15:13:02 +02:00
Ivan Savenko
84493e1bff Translate received string identifier before storing 2023-01-01 14:56:45 +02:00
Ivan Savenko
1979b3e97f Fixes typo 2023-01-01 14:56:45 +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
Dydzio
2c09bfb22a Fix code formatting 2022-12-30 15:51:13 +01:00
M
23de4a188b Change cartographer tile reveal logic to match H3 2022-12-30 15:09:09 +01:00
Ivan Savenko
7a35bcc812
Merge pull request #1221 from IvanSavenko/warnings_fix
Fix remaining compiler warnings
2022-12-29 21:51:55 +02:00
Andrey Filipenkov
b030a88ca5 fix gold check for School of War 2022-12-29 01:45:51 +04:00
Ivan Savenko
eb20a4b208 Merge remote-tracking branch 'vcmi/develop' into warnings_fix 2022-12-23 14:40:45 +02:00
Ivan Savenko
26985600b2 Fixed several more cases of incorrect scope for identifiers resolving 2022-12-21 23:02:19 +04:00
Ivan Savenko
23cb47b457 Fixed several scenarios with incorrect scope for requesting identifiers 2022-12-21 23:02:19 +04:00
Ivan Savenko
5f8cfadc4d Better formatting for not found terrains ID's 2022-12-20 01:55:59 +04:00
Ivan Savenko
b13723305d Better error reporting for usages of invalid terrain in mods
TODO: switch to proper mechanism via identifier requests
2022-12-20 01:55:59 +04: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
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
65802d958b Integrated valid fixes from PR #1143 2022-12-07 18:13:54 +02:00
Andrii Danylchenko
89f0cc66e8
Merge pull request #1213 from IvanSavenko/clone_fix
Fix crash on casting clone on modded creature
2022-12-07 17:34:52 +02:00
Ivan Savenko
2cbe6bcb47 Added common method to get names of hardcoded mod scopes 2022-12-07 15:18:19 +02:00
Ivan Savenko
17f9c3af23 Library of Enlightenment fix
Do not offer choice between multiple identical option if hero is qualified
to receive multiple of them due to diplomacy skill
2022-12-06 18:08:10 +02:00
Andrii Danylchenko
40e55e2788
Merge pull request #1196 from IvanSavenko/hero_positioning_fix
Fixes incorrect positioning of heroes on spawn/release from prison
2022-12-05 10:35:24 +02:00
Ivan Savenko
b6b6063505 Fix positioning of heroes after release from prisons 2022-12-04 22:00:33 +02:00
nordsoft
bbe51bfaf4 Fix hero experience deserialization 2022-12-04 16:58:46 +04:00
nordsoft
8d1024fcfc Clear error message 2022-12-03 20:56:05 +04:00
Andrii Danylchenko
d9c4b28ccc
Merge pull request #1177 from IvanSavenko/fix_mod_identifiers
Fix mod identifiers registration & incorrect mod validation
2022-12-02 09:20:49 +02:00
SoundSSGood
45a3064e5d suggested changes 2022-11-30 18:28:33 +02:00
Ivan Savenko
5cd405bce8 Fixed meta field handling in JsonUtils::inherit function, removed
workarounds
2022-11-30 17:38:53 +02:00
Ivan Savenko
79c96e94fa Cleared up comments 2022-11-30 17:37:36 +02:00
Ivan Savenko
36ae26bc37 Fixed several scenarios which could lead to json with incorrectly set
mod origin info, leading to non-resolving identifiers
2022-11-29 22:34:32 +02:00
Ivan Savenko
abe11aaf54 Introduced "map" scope for accessing identifier on map loading.
Currently it allows access to all mods, should be restricted to mods
that map depends on
2022-11-29 22:33:08 +02:00
SoundSSGood
96d8e952c4 attempt to fix the build 2022-11-29 21:45:37 +02:00
SoundSSGood
909dcb82fa use ArtifactID 2022-11-29 00:32:18 +02: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
Andrii Danylchenko
8b964be71f
Merge pull request #1111 from GermanAizek/develop
Code refactor and fix condition bug
2022-11-15 09:23:16 +02:00
lainon
7fdad4e0f6 Code refactor following C++ standard and condition fixes 2022-11-15 03:20:55 +03:00
Ivan Savenko
729357824b Added common method for secondary skill availability checks 2022-11-14 19:08:49 +02:00
Ivan Savenko
e06db2365d Fixes #1096 - do not propose banned skills on levelup
Remove possibility to get banned skill on levelup as "obligatory skill"
if all other such skills have been learned before.

May happen under some conditions, e.g. if hero quickly learns other
magic schools - in witch hut/university, leading to case where banned
skill is the only obligatory skill that can be offered on levelup
2022-11-14 17:16:49 +02:00
nordsoft
0f35082024 Fix crash with objects belonging players without state 2022-11-06 03:26:13 +04:00
Andrii Danylchenko
6cbaa40e29 #1065 - fix random hero initial position 2022-10-13 11:58:32 +03:00
Tomasz Zieliński
8c481dff46 Fix incorrect templates for mines in HoTA 2022-10-08 12:42:10 +03:00
Andrey Filipenkov
b26db479d7 don't add Necromancy to Witch Hut on random maps 2022-10-01 16:01:47 +03:00
Andrey Filipenkov
acfdbe87fe remove duplicate entry 2022-10-01 16:01:02 +03:00
Andrey Filipenkov
aa217236b3 check amount of artifacts on hero when checking requirements of a quest that requires artifact(s)
fixes case when 2 or more identical artifacts are required
2022-10-01 09:28:32 +03:00
Andrey Filipenkov
86708841f8 code improvement 2022-10-01 09:24:58 +03:00
Tomasz Zieliński
127d7ec40b Fixed asserts (only for debug build) 2022-09-29 21:10:44 +02:00
Andrii Danylchenko
557512b308
Merge pull request #1006 from AgostonSzepessy/dev/agos/small-fixes
Small misc fixes
2022-09-29 19:53:27 +03:00
Tomasz Zieliński
20c102e648 Remove T prefix from new typedefs 2022-09-29 11:44:46 +02:00
Tomasz Zieliński
475f835769 More style tweaks 2022-09-28 11:38:08 +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
Tomasz Zieliński
2bd30556a3 Store TerrainType by havlue and handle by reference 2022-09-26 09:17:55 +02:00
Tomasz Zieliński
4ea57ea7fc A variety of suggested style tweaks 2022-09-25 09:33:56 +02:00
Agoston Szepessy
0718acdb6d Use tuple instead of vector for comparing values
There are only 3 values, and they're only used for doing a comparison,
so it's wasteful to create a whole vector for that. std::tuple is better
suited for this use case.
2022-09-24 23:50:31 -07: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
Tomasz Zieliński
ebe45d512d Moved roads and rivers to TerrainTypeHandler, by analogy to TerrainType. 2022-09-23 16:24:01 +02:00
Tomasz Zieliński
e53613caa7 Fixed crash in pathfinder 2022-09-21 21:44:39 +02:00
Andrey Filipenkov
6cd810e065 fix showing "visited" message for Warrior's Tomb 2022-09-21 15:19:04 +03:00
Tomasz Zieliński
c9c4603f75 Firts working version that launches original maps 2022-09-21 13:43:57 +02:00
Tomasz Zieliński
494b0f0226 First version that compiles 2022-09-21 11:34:23 +02:00
Tomasz Zieliński
b20f649521 stash 2022-09-19 16:13:58 +02: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
Nordsoft91
e4ac0d4370
Editor prerequisites [part 2] (#889) 2022-09-17 14:04:01 +03:00
nordsoft
a598925a0b Support pickable objects 2022-09-16 09:41:23 +03:00
nordsoft
7dc05d8e81 Support rewardable objects 2022-09-15 11:05:13 +03:00
Tomasz Zieliński
77e43cb36f Cache Pathfinding skill 2022-09-14 15:24:24 +02:00
Tomasz Zieliński
d0f857c3c4 - Generate caching string with sprintf
- Reserve BonusList space to avoid costly vector reallocation
- Tweaks in int3 and UNDEAD bonus
2022-09-14 11:00:40 +02:00
DjWarmonger
3d2dc2335b Switch ObjectTemplate to shared_ptr<const> (#870) 2022-09-11 16:13:53 +03:00
Tomasz Zieliński
22b4795f86 Well, we should have some sensible exception handling in VCMI 2022-09-11 11:31:28 +03:00
Tomasz Zieliński
1649cf2bb9 misc comments 2022-09-11 11:31:27 +03:00
Tomasz Zieliński
efb6580958 Fix for mislaced hero rescued from Prison - https://bugs.vcmi.eu/view.php?id=3227 2022-09-11 11:31:27 +03:00
Andrii Danylchenko
665bd4346e Fix getting battlefield crash 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
Andrii Danylchenko
3b1d271ae0 allow configurable battleground graphics 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
Nordsoft91
5c1a66ab69 Rmg water support (#745)
* RMG: water support and refactoring
* Fix seers hut bug
2022-06-11 18:40:24 +03:00
Nordsoft91
a8265c7052
[0002285] Implement feature with extra resources near mines (#742)
* RMG: clear start position
* [0002285] some heaps of resources are placed nearby mines
* Fix leak in case of inability to place resource
* Fix indentation according to vcmi style
* Add constant for random amount of resources
* Code review fixes
2022-05-23 13:08:36 +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
Andrii Danylchenko
0d15089dd4 Do not remove hero if left only with commander 2022-05-01 09:30:30 +03:00
Agoston Szepessy
5080f26235 Fix 3184
Taken from !684. This fixes a bug with primary skills that results in
heroes not being able to interact with objects, or skills being
incorrect when moving from mission to mission.
2022-03-14 09:18:57 +02:00
Dmitry Orlov
9e3c4b69c4 Minor fixes 2021-12-22 21:37:56 +02:00
Dmitry Orlov
0427fa45dd Fix: Terrain description should be shown correctly 2021-11-08 21:01:30 +02:00
Dmitry Orlov
e4c2f0c822 Fix: Skyship Grail should work immediately after capturing without battle 2021-10-31 09:01:49 +02:00
Andrii Danylchenko
e219e1febf 3187 - fix whirlpool crash when exits are blocked 2021-10-23 21:40:52 +03:00
Andrii Danylchenko
98c6215ab6 fix negative tile cost from pathfinding skill 2021-10-06 08:45:06 +03: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
Dmitry Orlov
6f0864b47c Feature: Town Negative Bonuses. Fix: Negative bonus bearers should not be affected 2021-09-04 14:15:37 +03:00
Dmitry Orlov
3cb88b6964 Feature: Magic Well should work in the fan towns 2021-09-04 14:15:37 +03:00
Dmitry Orlov
b1db6e26d1 Fix: nextPrimarySkill crash in case when probability values are incorrect 2021-07-30 12:10:33 +03:00
Andrii Danylchenko
d47564955e Nullkiller: fix/refactor temporary bonus nodes, fix gather army quest completion 2021-07-26 21:02:50 +03:00
Andrii Danylchenko
3fa7e0976f Nullkiller: update / fix build, core changes required for Nullkiller AI 2021-07-26 21:02:50 +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
Dmitry Orlov
8b08973283 Fix: ID-collisions when processing large mods collections 2021-04-25 15:07:06 +03:00
AlexVinS
483a4689ce Fixes for code review issues 2021-02-20 04:57:50 +03:00
AlexVinS
a59e12ca5f tweaks 2021-02-15 15:03:32 +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
Dmitry Orlov
8f331dce31 Feature: Lodestar Grail should work. 2020-12-10 04:05:37 +03:00
Dmitry Orlov
39de2f6435 Fix: Morale bonus should be shown correctly 2020-11-11 22:43:40 +03:00
Dmitry Orlov
d6a4767865 Mod system improvement: Patch 2 2020-10-25 01:04:34 +03:00
Dmitry Orlov
3cb0dfb143 Fix: RMG issues: 1) hota 2) assertions 2020-10-25 01:03:32 +03:00
Dmitry Orlov
643cc00db6 Mod system improvement: Special buildings should work in the modders towns. Part II 2020-10-19 22:38:06 +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
6a7296fbe9 Mod system improvement Part I : Fix redefined content handler assertion 2020-10-07 12:35:12 +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
Andrii Danylchenko
d782ee39df hacks to optimize a few bonus requests 2020-07-04 17:52:22 +03:00
Andrii Danylchenko
42cab00c38 Fix quest handling 2020-01-31 00:48:01 +02:00
Alexander Shishkin
49404bfa24
Merge pull request #579 from vcmi/dydzio0614-patch-1
Hackfix crash on "victory by town capture"
2019-05-04 10:35:13 +03:00
Ewilhan
91177c412c Fixed Crypt/Pyramid double visit sound.
Removed sound call from CBank to avoid two sounds from being launched at same time. Gave priority to JSON files.
2019-05-02 23:46:18 +01:00
Dydzio
a79f11bed2
Hackfix crash on "victory by town capture" 2019-04-23 20:04:07 +02:00
Michał Kalinowski
ac6b477aa2 Simplify statements
-Simplify return statements across the code
2019-03-31 09:43:14 +03:00
Dydzio
5718048752 Fix magic school gold payment 2019-03-11 18:56: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
AlexVinS
4b5910c2f4 VCAI performance improvements
* Node graph initialization optimized.
* Fixed "Unathorized obstacle access".
* Pathfinding tracing disabled with ifdef.
* Misc bonus calculation optimizations.
* Removed timestamp from log lines. Date formatting eats too much CPU.
* Paths for all heroes in Client are now cached
2019-01-17 10:50:56 +03:00
Andrii Danylchenko
035d279ae8 Refactor CGHeroInstance, make spells private 2018-12-23 15:49:26 +03:00
Arseniy Shestakov
708705aa96 CGLighthouse: workaround crash on map initialization. Fix issue 3020
Dirty hack here since proper fix would require to break saves
2018-11-01 23:31:23 +03:00
godric3
f9ac46576b Add description for bonuses from hero specialty 2018-10-29 21:33:13 +01:00
Dydzio
2288e9b8aa
Merge branch 'develop' into AIMapObjectEvaluation 2018-07-30 01:33:49 +02:00
Dydzio
393b25eb7f Minor tweaks/fixes 2018-07-29 19:31:01 +02:00
Dydzio
b37ba8e046 Initial version of AI object value config 2018-07-28 00:43:56 +02:00
Dydzio
615df6203d Oprator overload correction... 2018-07-26 16:43:40 +02:00
DJWarmonger
273802c92c I have no idea what I'm doing 2018-07-26 12:14:29 +02:00
Dydzio
21c1f47a78 Fixes 2018-07-22 19:12:11 +02:00
Dydzio
2c1d91e2ff Move object ID struct to lib 2018-07-22 18:38:45 +02:00
Karlis Senko
69330de89c Avoid integer overflow and conversion related UB. 2018-05-01 00:02:07 +03: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
Henning Koehler
6ddcb079a4 Enabled new secondary skills to be created (#438)
* Universities, Scholars and Witch Huts may offer new skills
* Moved encode/decodeSkill to CSkillHandler
* Refactored CSkill interface and CSkill::LevelInfo image storage
* Legacy game constants renamed to ORIGINAL_XXX_QUANTITY
2018-03-31 12:56:40 +07:00
Henning Koehler
1685641357 Flexible necromancy (#430)
* made IMPROVED_NECROMANCY bonus configurable
* updated cloak of the undead king
2018-03-17 16:46:16 +08: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
6263c4c3eb renamed CGHeroInstance::updateSkill to updateSkillBonus 2018-03-05 22:13:23 +08:00
Henning Koehler
4c0a67041b secondary skill bonuses get updated via replacement (issue 2796) 2018-03-05 22:13:23 +08:00
AlexVinS
f126a34a5e Fixed https://bugs.vcmi.eu/view.php?id=2904 2018-03-04 11:15:24 +03: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
ArseniyShestakov
7fd090786c
Merge pull request #379 from henningkoehlernz/hero_specialty_scaling
Hero specialty scaling
2018-02-28 15:03:24 +08:00
Henning Koehler
6c443d7094 SPECIAL_SPELL_LEV and SPECIAL_BLESS_DAMAGE no longer scale with hero level 2018-02-21 09:56:20 +13:00
AlexVinS
6d8536b12a Fixed https://bugs.vcmi.eu/view.php?id=2882 2018-02-20 14:29:06 +03:00
Henning Koehler
9850e7254e updated serialization version to 781 2018-02-18 23:32:52 +13:00
Henning Koehler
f9a8cb2876 fixed formatting and other small issues 2018-02-18 20:22:23 +13:00
Henning Koehler
00f51e0f98 Updaters replace bonuses during inheritance 2018-02-18 20:22:23 +13:00
Henning Koehler
ad5a9f7205 made HeroSpecial public again 2018-02-18 20:08:34 +13:00
Henning Koehler
6037c19b9a removed specialtyDeprecated from CGHeroInstance; improved savegame compatibility 2018-02-18 19:47:38 +13:00
Henning Koehler
81c44dac41 minor fixes 2018-02-18 19:47:38 +13:00
Henning Koehler
5d3f6c3b91 removed CHeroInstance::specialty 2018-02-18 17:33:23 +13:00
Henning Koehler
ef7900d0a2 added support for older saves (fails) 2018-02-18 17:33:23 +13:00
Henning Koehler
3e0022be27 added support for new specialty json format; old format is converted to bonuses with updaters 2018-02-18 17:33:23 +13:00
Ivan Romanov
eea50a044c Hide "this statement may fall through" warnings 2018-02-10 22:27:00 +05: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
AlexVinS
6033d32b5b Fixed https://bugs.vcmi.eu/view.php?id=2845 2018-01-09 10:14:56 +03:00
Arseniy Shestakov
c5ca75bc53 CRewardableObject: remove now unused soundID 2018-01-02 09:49:04 +01:00
Arseniy Shestakov
f15cadc87b Implement configurable object sounds: ambient, visit and removal
* If there more than one sound for visit or removal random is played
* At moment only the first ambient sound will be used
2018-01-02 09:49:03 +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
godric3
5a01aba9c8 fix for banks(crypt, ships) not giving morale penalty (#384)
* fix for banks(crypt, ships) not giving morale penalty
also texts should be closer to original now
2017-11-15 23:16:44 +03:00
AlexVinS
d93ef36750 Fixed https://bugs.vcmi.eu/view.php?id=2818 2017-11-15 15:54:54 +03:00
Hao Hu
9cc2464cf6 Fixing bugs for external dwelling bonus of Golem Factory (#382)
* Fixing bugs for external dwelling bonus of Golem Factory.

[Problem]
  The occupied Golem Factory on adventure map doesn't give
  the player corresponding weekly growth bonus.

[Solution]
  1. Add the dwelling (of multiple generators) to a player's dewelling set.
  2. Created helper function to calculate external dwelling bonus
  points.

[Test]
  Manual testing on the map, works fine.

https://bugs.vcmi.eu/view.php?id=2789
2017-10-07 17:42:33 +03:00
godric3
e3f0126e41 Removed unnecessary code, fix #2737
bonus value is added to desciption inside Bonus
2017-10-05 16:50:39 +02:00
godric3
7d8adcc083 Add missing artifact name in wagon text, fix #2763 2017-10-05 14:52:51 +02:00
ArseniyShestakov
ca066841f1 Merge pull request #370 from vcmi/issue/2780
Issue/2780
2017-09-05 01:21:58 +03:00
AlexVinS
2f7968b803 Fixed wrong animation paths 2017-09-04 18:41:22 +03:00
Henning Koehler
abdca71828 skill names and descriptions are fully managed by CSkillHandler 2017-08-30 22:35:23 +12:00
Henning Koehler
3fe9bc34b8 CGHeroInstance::recreateSecondarySkillsBonuses() restores bonuses for all levels 2017-08-28 23:59:01 +12:00
Henning Koehler
9b3c61616f made diplomacy join chance bonus-based 2017-08-28 23:33:19 +12:00