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

262 Commits

Author SHA1 Message Date
Ivan Savenko
ee59bc4e71 Add bonus description generation for map objects 2024-10-25 18:36:02 +00:00
Ivan Savenko
3dd4fa2528 Reduce usage of pointers to VLC entities
Final goal (of multiple PR's) is to remove all remaining pointers from
serializeable game state, and replace them with either identifiers or
with shared/unique pointers.

CGTownInstance::town and CGHeroInstance::type members have been removed.
Now this data is computed dynamically using subID member.

VLC entity of a town can now be accessed via following methods:
- getFactionID() returns ID of a faction
- getFaction() returns pointer to a faction
- getTown() returns pointer to a town

VLC entity of a hero can now be accessed via following methods:
- getHeroTypeID() returns ID of a hero
- getHeroClassID() returns ID of a hero class
- getHeroType() returns pointer to a hero
- getHeroClass() returns pointer to a hero class
2024-10-10 12:28:08 +00:00
Ivan Savenko
a8f8c3f4b1 Replaced most of accesses to CGObjectInstance::pos with anchorPoint() 2024-10-09 15:43:46 +00:00
Ivan Savenko
c0f5c7c0ea Replace pointer with reference in pack apply functions 2024-10-07 14:59:46 +00:00
Laserlicht
9c6bd20159 code review 2024-10-01 16:32:28 +02:00
Laserlicht
713fcd6543 research per day & seperate config 2024-09-30 02:40:28 +02:00
Laserlicht
d929bfb9d1 rename; introduce factor 2024-09-28 15:05:13 +02:00
Laserlicht
2052a26031 code review 2024-09-28 14:25:11 +02:00
Laserlicht
7707adc44f checks on server 2024-09-28 01:18:10 +02:00
Ivan Savenko
39a2c29c97 Removed creatureBank flag from battle, battles now receive BattleLayout
struct that defines how units are placed in combat
2024-09-12 12:11:18 +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
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
Laserlicht
ff65a33d44
fixes bug for 8th creature 2024-09-03 11:03:37 +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
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
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
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
39bb6d5f39 IMarket now able to store artifacts 2024-08-20 18:49:47 +03: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
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
38311244a4
Merge pull request #4402 from Laserlicht/8th_creature
support for 8th creature (Factory)
2024-08-14 17:04:32 +03: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
Laserlicht
14bcfad7b0 fix upgrade 2024-08-06 23:28:45 +02: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
Laserlicht
1a06a2cc44 basic 8th creature support 2024-08-05 21:15:47 +02: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
Laserlicht
3e5df61946 code review 2024-07-29 22:54:42 +02:00