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

1391 Commits

Author SHA1 Message Date
Ivan Savenko
31dff8f8da Add coastVisitable property to rewardables, update schemas 2024-09-12 12:11:18 +00:00
Ivan Savenko
503b87561e Converted all h3 banks to rewardable, remove most of hardcoded checks 2024-09-12 12:11:18 +00:00
Ivan Savenko
cb5df096c1 Added per-team tracking of scouted state of an object 2024-09-12 12:11:17 +00:00
Ivan Savenko
785036836c Rewardable objects may now define guards. Converted Crypt to rewardable. 2024-09-12 12:10:40 +00:00
Xilmi
065125e770 Merge remote-tracking branch 'upstream/develop' into develop 2024-09-10 14:57:27 +02:00
Xilmi
d4ee899565 Merge remote-tracking branch 'upstream/develop' into develop 2024-09-06 17:04:34 +02:00
Xilmi
581a142a20 HeroStrengthForCampaign
Make sure to take our magic-specialist to the next campaign-mission even if he's totally out of mana.
2024-09-05 17:38:27 +02:00
Ivan Savenko
8225eb454e Added GameSettings to gamestate, potentially allowing to define game
settings per map (or in random map template)
2024-09-05 15:16:27 +00:00
Ivan Savenko
6179521364
Merge pull request #4556 from IvanSavenko/town_building_visit
Implemented explicitly visitable town buildings, e.g. hota mana vortex
2024-09-05 17:21:21 +03:00
Ivan Savenko
a72715ad31
Merge pull request #4563 from SoundSSGood/vcmiScrolls
Improvements to the artifact creation
2024-09-05 17:10:13 +03:00
Xilmi
dd5a34d994 Merge remote-tracking branch 'upstream/develop' into develop 2024-09-05 15:54:03 +02:00
SoundSSGood
7466d7452d vcmiscrolls 2024-09-05 15:51:45 +03:00
Ivan Savenko
44fdb71933 Machine Factory and Refugee Camp can't be owned 2024-09-04 19:46:58 +00:00
Ivan Savenko
dae9e1e316 Implement IOwnableObject interface for shipyard 2024-09-04 19:46:36 +00:00
SoundSSGood
30fa2846aa ArtifactUtils::createArtifact ArtifactUtils::createNewArtifactInstance unified 2024-09-04 21:25:55 +03:00
Ivan Savenko
b09d9d501b Pass pointer to actual caller in showBlockingDialog callWith
Fixes activation of all rewardable buildings in town on blocking dialog
answer
2024-09-04 15:14:56 +00:00
SoundSSGood
b06426ac43 CMap removed from CArtifactSet level 2024-09-04 15:12:40 +03:00
Xilmi
3f8a8733a2 Merge remote-tracking branch 'upstream/develop' into develop 2024-09-03 20:33:19 +02:00
Laserlicht
ff65a33d44
fixes bug for 8th creature 2024-09-03 11:03:37 +02:00
Xilmi
5ee7061ab7 Merge remote-tracking branch 'upstream/develop' into develop 2024-09-02 17:27:08 +02:00
Ivan Savenko
39e5ba32f6
Merge pull request #4530 from IvanSavenko/town_fortifications
Support for configurable town fortifications
2024-08-31 13:59:40 +03:00
Ivan Savenko
71c7beb7a5
Merge pull request #4533 from IvanSavenko/town_growth
Change logic of neutral towns garrisons to match H3
2024-08-31 13:52:36 +03:00
Ivan Savenko
82c37573fa Removed save compatibility with 1.4
All save compatibility checks targeting 1.4 saves have now been removed.
Saves from 1.5 can still be loaded in 1.6

Implemeted few TODO's in serialization that were postponed to avoid
breaking save compatibility in MP for 1.5.X releases.

Fixed missed case for loading black market object from 1.5 saves
2024-08-29 18:51:53 +00:00
Ivan Savenko
73459876bf Initial garrison of a town should now match H3 logic 2024-08-29 15:46:22 +00:00
Ivan Savenko
b436290d16 Fix crash on right-clicking a neutral town 2024-08-29 15:45:46 +00:00
Ivan Savenko
21fc80a315 Growth of town garrison in neutral towns now uses H3 logic 2024-08-29 15:22:31 +00:00
Xilmi
aea05b3fb8 Merge remote-tracking branch 'upstream/develop' into develop 2024-08-29 14:42:37 +02:00
Ivan Savenko
36c1ed670f Support for configurable town fortifications
Removed most of hardcoded checks for fort level or for presence of fort/
citadel/castle buildings.

It is now possible to define which parts of town fortifications are
provided by town buildings

Configuration for H3-like fortifications is provided in
buildingsLibrary.json and will be used automatically by mods as long as
mods have buidings named "fort", "citadel" and "castle".

Alternatively, mods can separately define:
- hitpoints of walls (shared value for all sections)
- hitpoints of central, upper and lower towers (separate values)
- presence of moat
- shooters for each tower (separate values)
2024-08-28 19:42:14 +00:00
Ivan Savenko
408a632002 Deprecate artifact-related building types 2024-08-28 13:50:08 +00:00
Ivan Savenko
8ef8ffa5c4 Implemented configurable blacksmith. Deprecated ballistaYard type 2024-08-28 13:49:42 +00:00
Ivan Savenko
d49a61645c All objects that can be owned by player now implement IOwnableObject 2024-08-28 12:51:28 +00:00
Ivan Savenko
a481f07daf PlayerState now stores all objects owned by player 2024-08-28 12:51:27 +00:00
Ivan Savenko
0fd9dbf240 Unified income handling, added IOwnableObject interface 2024-08-28 12:40:44 +00:00
Ivan Savenko
189cb1c762 Moved most of daily income handling to a separate method 2024-08-28 12:40:44 +00:00
Ivan Savenko
20d5b33ea6 Remove marketModes as member
marketModes are now generated in runtime and are not a member of
IMarket. Was not a bad change, but towns load buildings before town type
is randomized, leading to case where market modes are not actually known
when building is added to town (like random towns with market built)

Since altar requires CArtifactSet for work, IMarket will now always
contain it, but it will only be accessible if market supports altar
mode.
2024-08-27 14:07:00 +00:00
Ivan Savenko
f765f212bb Restore save compatibility 2024-08-26 20:52:37 +00:00
Ivan Savenko
ac271c09b9 Add mechanism to provide save compatibility if class is removed or
addded
2024-08-26 20:06:36 +00:00
SoundSSGood
4035ab1550 added CMarketWindow::getMarketTitle() 2024-08-24 13:52:54 +03:00
SoundSSGood
0c5022cae8 Loading market modes from json 2024-08-24 11:51:57 +03:00
SoundSSGood
2e3e6b1553 market->getObjInstanceID() 2024-08-21 01:01:23 +03:00
SoundSSGood
58bb2b58e3 IMarket suggestions
Co-authored-by: Ivan Savenko <saven.ivan@gmail.com>
2024-08-20 18:49:48 +03:00
SoundSSGood
cd7ebea9e3 cleanup unused code 2024-08-20 18:49:47 +03:00
SoundSSGood
39bb6d5f39 IMarket now able to store artifacts 2024-08-20 18:49:47 +03:00
SoundSSGood
fd45b5144d IMarket serializeable 2024-08-20 18:49:47 +03:00
Xilmi
2df293f95d Merge remote-tracking branch 'upstream/develop' into develop 2024-08-19 21:15:34 +02:00
Ivan Savenko
22a126cf2d Restored replacement of town building bonuses via building upgrade 2024-08-19 11:47:13 +00:00
Ivan Savenko
2f3f3c21df Rename town building types to more clear names 2024-08-19 11:47:13 +00:00
Ivan Savenko
01a9509ccb Remove unused code, reduce includes 2024-08-19 11:47:13 +00:00
Ivan Savenko
f1e63792f0 Greatly simplify town buildings logic 2024-08-19 11:47:13 +00:00
Xilmi
e6d907af55 Merge remote-tracking branch 'upstream/develop' into develop 2024-08-18 09:52:59 +02:00
Warzyw647
0f7c9e7657 Fix config setting blackMarketRestockPeriod.
When set to x it was restocking on all days except every x days.
2024-08-17 11:59:15 +02:00
Ivan Savenko
19838e2654 Fix auto-visit of configurable objects on new day 2024-08-14 17:04:42 +00:00
Ivan Savenko
67132b3e7f Fixed visitation of configurable town buildings by newly recruited heroes
and on building construction
2024-08-14 17:03:25 +00:00
Ivan Savenko
49c5f650f7
Merge pull request #4437 from IvanSavenko/battle_sides
Unified handling of battle sides ID's
2024-08-14 18:37:05 +03:00
Ivan Savenko
38311244a4
Merge pull request #4402 from Laserlicht/8th_creature
support for 8th creature (Factory)
2024-08-14 17:04:32 +03:00
Xilmi
d851ca1c74 Merge remote-tracking branch 'upstream/develop' into develop 2024-08-12 17:40:55 +02:00
Ivan Savenko
2a05fbdd50 Unified handling of battle sides ID's
- Replaced BattleSide namespace-enum with enum class
- Merged two different BattleSide enum's into one
- Merged BattlePerspective enum into BattleSide enum
- Changed all places that use integers to represent battle side to use
BattleSide enum
- Added BattleSideArray convenience wrapper for std::array that is
always 2-elements in size and allows access to its elements using
BattleSide enum
2024-08-11 20:54:44 +00:00
Xilmi
a454ecfe38 Merge remote-tracking branch 'upstream/develop' into develop 2024-08-10 11:05:28 +02:00
Laserlicht
170f375179 code review 2024-08-10 00:29:30 +02:00
Laserlicht
b4c25a148a
Merge branch 'develop' into bank_support 2024-08-09 23:36:59 +02:00
Ivan Savenko
85cf33e5a8
Merge pull request #4422 from MichalZr6/fix_unsigned_to_signed
blockingDialog functions: the `answer` parameter can be negative
2024-08-09 15:31:45 +03:00
Ivan Savenko
ffb8efc415
Merge pull request #4225 from godric3/map-editor-town-configuration-improvements
Map editor town configuration improvements (buildings, spells, events)
2024-08-09 15:26:33 +03:00
MichalZr6
ffaaa7da15 blockingDialog functions: the answer parameter can be negative 2024-08-09 00:28:28 +02:00
Xilmi
a7240041ec Merge remote-tracking branch 'upstream/develop' into develop 2024-08-07 16:15:28 +02:00
Laserlicht
14bcfad7b0 fix upgrade 2024-08-06 23:28:45 +02:00
Ivan Savenko
a4dd510735
Merge pull request #4358 from IvanSavenko/integer_divide
Add helper functions for integer division rounding
2024-08-06 18:10:03 +03:00
Laserlicht
ebeeff5aa3 abstraction layer 2024-08-05 23:51:07 +02:00
Laserlicht
3afddbbf29 replaced constant 2024-08-05 23:03:19 +02:00
Xilmi
f4c0bee003 Merge remote-tracking branch 'upstream/develop' into develop 2024-08-05 21:53:59 +02:00
Laserlicht
1a06a2cc44 basic 8th creature support 2024-08-05 21:15:47 +02:00
Ivan Savenko
b7391f49f6 Merge branch 'vcmi/master' into 'vcmi/develop' 2024-08-05 10:36:10 +00:00
Laserlicht
47327e1642 backend 2024-08-04 17:52:40 +02:00
Ivan Savenko
81e6207df0 Add helper functions for integer division rounding
Added set of functions that perform integer division with different
rounding modes:
- divideAndCeil - rounds up to next integer
- divideAndRound - rounds to nearest integer
- divideAndFloor - rounds to previous integer (equivalent to default
division)

Intended for use in library, where usage of floating point might lead to
desync in multiplayer games.

Replaced some cases that I knew of, including recent handicap PR
2024-08-03 13:52:14 +00:00
Ivan Savenko
5023e08ae8 Fix crash on testing for hero faction before deserializing hero type 2024-08-02 16:00:17 +00:00
Ivan Savenko
0ac1ef077d Workaround for hota witch hut preview 2024-08-02 16:00:07 +00:00
Ivan Savenko
8ce6bcdf3b Right-clicking dwellings will now show recruitable creatures (but not
their number) for all players
2024-08-02 15:03:25 +00:00
Laserlicht
3e5df61946 code review 2024-07-29 22:54:42 +02:00
Ivan Savenko
b6c22b2053 Fix typo 2024-07-29 17:13:31 +00:00
godric3
fa3fef8a0f change town events to vector + use getDefaultAllowed for spells 2024-07-28 16:28:21 +02:00
godric3
5578346dac map editor: Allow to customize town events 2024-07-28 16:28:21 +02:00
Laserlicht
2e2d8f8833 fix 2024-07-26 02:24:53 +02:00
Laserlicht
977d8e041a
generate at least one resource / creature 2024-07-26 00:55:47 +02:00
Laserlicht
ec005593d3 growth handicap 2024-07-25 23:04:59 +02:00
Laserlicht
bfd1e8a7c8 calculate income 2024-07-25 02:51:00 +02:00
Xilmi
69efe9cfda Merge remote-tracking branch 'upstream/develop' into develop 2024-07-22 20:15:40 +02:00
Ivan Savenko
4aa73b40c9 Split CTownHandler into smaller chunks 2024-07-21 18:21:48 +00:00
Xilmi
6f9309696d Merge remote-tracking branch 'upstream/develop' into develop 2024-07-21 19:06:14 +02:00
Ivan Savenko
1aa391fdf8 Split CGeneralTextHandler file into 1 file per class form
All text processing code is now located in lib/texts.
No changes other than code being moved around and adjustment of includes

Moved without changes:
Languages.h           -> texts/Languages.h
MetaString.*          -> texts/MetaString.*
TextOperations.*      -> texts/TextOperations.*

Split into parts:
CGeneralTextHandler.* -> texts/CGeneralTextHandler.*
                      -> texts/CLegacyConfigParser.*
                      -> texts/TextLocalizationContainer.*
                      -> texts/TextIdentifier.h
2024-07-20 12:55:17 +00:00
Xilmi
fa2f883361 Merge remote-tracking branch 'upstream/develop' into develop 2024-07-19 15:26:31 +02:00
Ivan Savenko
1c63fefe02 Moved banks randomization to server-side with client netpack 2024-07-16 13:13:39 +00:00
Ivan Savenko
b07408e984 New objects are now created and initialized on server and sent to client 2024-07-16 13:13:39 +00:00
Ivan Savenko
d2839c8e52 Rewardable object randomization is now always server-sided 2024-07-16 13:13:39 +00:00
Ivan Savenko
388d65d6b2 Fix merge 2024-07-16 13:13:39 +00:00
Ivan Savenko
63bcf7d83c Replaced most of usages of CRandomGenerator with vstd::RNG in library 2024-07-16 13:13:07 +00:00
Xilmi
f8f10adb2e Take magic-capability into account for overall strength-estimation of hero-lead-armies
The magic-strength of a hero now checks if the hero has a spellbook and at least one combat-spell.
The impact of knowledge and spellpower to the hero's magic-strength is now also depending on it's current and max mana-pool-size as an empty mana-pool does not exactly contribute well to fights.

Replaced every call of getFightingStrength() with getHeroStrength() which uses both the fightingStrength and the (reworked) magicStrength to guess how much stronger a hero-lead army is.
2024-07-15 17:42:02 +02:00
Ivan Savenko
6b8f94e6e7 Merge remote-tracking branch 'vcmi/master' into develop 2024-07-11 17:43:44 +00:00
Ivan Savenko
dbc227da04 Fix incorrect tooltip when right-clicking Witch Hut if selected hero
already has this skill
2024-07-10 14:36:24 +00:00
Alexander Wilms
02e429e973 Fix typos using https://github.com/crate-ci/typos
Changes were reviewed manually
2024-06-24 03:47:19 +02:00
Ivan Savenko
3bea383b59 Merge branch 'vcmi/beta' into 'vcmi/develop' 2024-06-21 12:58:36 +00:00
Ivan Savenko
38bee87cf4 Do not activate mana vortex if hero already has double mana 2024-06-17 20:22:36 +00:00
Ivan Savenko
4e7809d934 Take resources on quest completion instead of giving them 2024-06-17 20:18:34 +00:00
Ivan Savenko
c68f2da977 Fix initialization of gold pile from random resource with fixed amount 2024-06-17 20:08:07 +00:00
Ivan Savenko
b4c6906471 Merge branch 'vcmi/beta' into 'vcmi/develop' 2024-06-11 19:22:23 +00:00
Ivan Savenko
9c05e80315 Fix Admiral's Hat whirlpool immunity. Reduce usage of
convertFromVisitablePos
2024-06-11 14:31:11 +00:00
Ivan Savenko
a8dcbd8ff9
Merge pull request #4061 from Laserlicht/hota_buildings
Support HotA thives guild
2024-06-05 12:41:35 +03:00
Ivan Savenko
b638b0b679 Fixed possible crash if hero class has no valid commander ID 2024-06-01 07:40:48 +00:00
Ivan Savenko
df83fa33a1 Merge branch 'vcmi/master' into 'vcmi/develop' 2024-05-31 09:34:21 +00:00
Laserlicht
3f9e53acc8 fix typo 2024-05-30 21:57:58 +02:00
Ivan Savenko
5d6470e527
Merge pull request #4025 from IvanSavenko/shared_ptr_lib
[1.6] Use shared_ptr for library entities
2024-05-30 19:14:06 +03:00
Ivan Savenko
5ecb527252
Merge pull request #3997 from IvanSavenko/serialization_refactor
[1.6] Serialization refactor
2024-05-30 19:13:21 +03:00
Ivan Savenko
888149c6f6 Implemented simple versioning system for multiplayer 2024-05-29 20:08:32 +00:00
Tomasz Zieliński
098c88eff4 Update serialization version 2024-05-29 20:52:59 +02:00
Tomasz Zieliński
3ac603767d Basic config for regular unit placement in Black Tower 2024-05-29 20:20:33 +02:00
Ivan Savenko
8754e0ebb3 Code formatting and cleanup 2024-05-17 17:10:29 +00:00
Ivan Savenko
7461df161c lib now uses shared_ptr for entities. Removed manual memory management. 2024-05-17 15:04:05 +00:00
Ivan Savenko
721b15d9de Merge branch 'vcmi/master' into 'vcmi/develop' 2024-05-17 08:26:37 +00:00
Ivan Savenko
42f7a48fa4 Simplified integer serialization code 2024-05-16 18:53:49 +00:00
Ivan Savenko
84bc6c42db Added 'Serializeable' base class for classes serializeable by pointer 2024-05-16 18:40:59 +00:00
Dydzio
f20ef4f1b3 Fix hero order for giving bonuses in town to match H3. 2024-05-11 20:21:02 +02:00
Ivan Savenko
2521557f68 Fixed some newly reported issues from SonarCloud 2024-05-10 13:40:24 +00:00
Ivan Savenko
2ddb41e654 Merge branch 'vcmi/master' into 'vcmi/develop' 2024-05-10 08:09:51 +00:00
Ivan Savenko
8b861fc58f Do not check for guards when teleporting using means other than DD 2024-05-07 20:05:23 +00:00
Tomasz Zieliński
9763ea2ecb Style 2024-05-07 09:14:16 +02:00
Tomasz Zieliński
dd55188b77 Option to define surface or underground level for obstacle set 2024-05-07 07:15:00 +02:00
Ivan Savenko
30e0a16ee9 Fix some 'new' issues reported by Sonar Cloud 2024-05-06 15:33:30 +00:00
Ivan Savenko
47c3e6f4b6 Simplified code 2024-05-02 17:53:36 +03:00
Ivan Savenko
08ce3a8338 Clarified code 2024-05-02 17:32:38 +03:00
Ivan Savenko
f6e5f09d50 Fix possible uninitialized variables 2024-05-02 17:32:27 +03:00
Ivan Savenko
b0effdbbf4
Merge pull request #3836 from vcmi/unpropagate_bonus
Fixes issue of bonuses not correctly removed
2024-04-28 13:10:23 +03:00
Tomasz Zieliński
04691c851f Fixes issue of bonuses not correctly removed 2024-04-26 19:22:20 +02:00
Ivan Savenko
7f732b6d0a Fix thrown exception on random monster initialization 2024-04-24 22:57:13 +03:00
Ivan Savenko
5454d01316 Provide more information in thrown exceptions for unfixed crashes 2024-04-22 16:40:43 +03:00
Ivan Savenko
a6dead7725 Fixed loading of text strings for hota quests 2024-04-22 13:49:17 +03:00
Ivan Savenko
ffec4b9154 Explicitly ban 'large' dwellings from random selection
Old code was relying on specific sorting order leading to easy to break
logic
2024-04-22 12:35:55 +03:00
Ivan Savenko
55756dbc43
Merge pull request #3785 from dydzio0614/bank-revisit-fix
Empty treasure bank does not ask for enter anymore
2024-04-22 11:06:58 +03:00
Ivan Savenko
1b469036a3
Merge pull request #3784 from dydzio0614/quick-dwellings-visit
Add handling for yes/no dialogs that can be safely skipped by player
2024-04-22 11:06:40 +03:00
Andrii Danylchenko
ae69311023 #3788 - fix passing wirlpool with only commander alive 2024-04-20 15:28:57 +03:00
Ivan Savenko
9353e24fa5
Merge pull request #3792 from IvanSavenko/bugfixing
Fixes for minor issues
2024-04-19 12:35:25 +03:00
Ivan Savenko
d8baa3c145
Merge pull request #3789 from dydzio0614/fix-sounds
Fix some missing/redundant sounds to match H3
2024-04-18 21:34:53 +03:00
Ivan Savenko
c87e60740b Fixes hota prisons replacing every h3 prison on h3m maps 2024-04-18 19:13:32 +03:00
Dydzio
98375cc627 Limit showing empty message instantly to creature banks and dragon utopia 2024-04-17 22:08:17 +02:00
Dydzio
1401211145 Fix missing/redundant sounds to match H3 2024-04-17 21:02:43 +02:00
Dydzio
20eaf17a18 Empty treasure bank does not ask for enter anymore 2024-04-17 01:25:58 +02:00
Dydzio
19453aab41 Add handling for yes/no dialogs that can be safely skipped by player 2024-04-17 01:08:27 +02:00
Dydzio
f7dd80c732 Remove redundant double sound play on mine capture 2024-04-16 00:01:37 +02:00
DjWarmonger
0808a8b36f
Merge pull request #3714 from vcmi/biome_system
Biome system implementation
2024-04-13 21:32:13 +02:00
Tomasz Zieliński
f491f10d81 Final tweaks 2024-04-13 19:21:01 +02:00
Tomasz Zieliński
e28fd869aa Remove empty obstacle sets, just in case. 2024-04-13 14:53:00 +02:00
Tomasz Zieliński
a7d0f0626a Docs & final touches 2024-04-12 14:53:07 +02:00
Tomasz Zieliński
4fa7f0e93d Also allow filtering biomes by faction(s) 2024-04-12 10:25:13 +02:00