Henning Koehler and ArseniyShestakov
2ede3783dd
Settings: savefrequency is now configurable in launcher
...
* Client command-line can modify arbitrary settings now
* Only launcher auto-saves to settings.json
2018-04-08 17:12:29 +07:00
Henning Koehler and ArseniyShestakov
82f334b503
Enable Limiter nesting with AllOf, AnyOf, NoneOf ( #439 )
...
* Renamed LimiterList to AllOfLimiter and added AnyOfLimiter, NoneOfLimiter
* Updated bonus schema to new limiter format
2018-04-01 18:17:34 +07:00
Henning Koehler and ArseniyShestakov
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 and ArseniyShestakov
02b5a5e830
Make bonus stacking configurable + fix duplicate propagation/inheritance ( #433 )
...
Addresses several related problems:
* Propagation / unpropagation of duplicate bonuses is inconsistent, causing bugs
* Duplicate bonuses never stack, which is not always intended behaviour (e.g. multiple copies of resource generating artifacts)
* Different bonuses always stack, which is not always intended behaviour (e.g. Angel + Archangel morale bonuses)
This is addressed as follows:
* Duplicate bonuses are never eliminated during propagation/inheritance.
* Unpropagation eliminates only a single copy of duplicated bonus
* Bonus receives a new field stacking that determines stacking behaviour:
* * empty string = no stacking with duplicates (default)
* * "ALWAYS" = stacks with duplicates & everything else
* * some other value = no stacking with bonuses with same stacking value
Also Morale/Luck window now hides non-stacking bonuses.
2018-03-27 14:54:58 +07:00
Henning Koehler and ArseniyShestakov
2b64bf29ed
Fix Issue 2214 ( #437 )
...
CGameInfoCallback::getAvailableHeroes: add checks for tavern
2018-03-22 18:14:43 +07:00
Henning Koehler
591928fc4b
fixed bug introduced in last CAddInfo fix
2018-03-20 12:58:02 +13:00
Henning Koehler and ArseniyShestakov
1685641357
Flexible necromancy ( #430 )
...
* made IMPROVED_NECROMANCY bonus configurable
* updated cloak of the undead king
2018-03-17 16:46:16 +08:00
Henning Koehler
8e7aa910cb
spacing fix
2018-03-17 11:32:30 +13:00
Henning Koehler
68b757eb53
fixed CAddInfo::operator[] (mutable version)
2018-03-17 11:03:02 +13:00
Henning Koehler and Alexander Shishkin
7f76648a7c
Extend Bonus.addInfo to integer vector ( #427 )
...
* changed Bonus::additionalInfo to integer vector
* fixed deserialization for old savegames
* removed newline from JsonNode::toJson()
* updated bonus schema; SPELL_AFTER_ATTACK and SPELL_BEFORE_ATTACK use new addInfo format
* removed unnecessary init in Bonus constructor
2018-03-12 08:20:18 +03:00
Henning Koehler and ArseniyShestakov
e455d97fc7
cleanup of CBonusSystemNode::removeBonusesRecursive
2018-03-05 22:13:23 +08:00
Henning Koehler and ArseniyShestakov
6263c4c3eb
renamed CGHeroInstance::updateSkill to updateSkillBonus
2018-03-05 22:13:23 +08:00
Henning Koehler and ArseniyShestakov
d3e4fc6e7a
renamed CBonusSystemNode::popBonuses to removeBonusesRecursive
2018-03-05 22:13:23 +08:00
Henning Koehler and ArseniyShestakov
4c0a67041b
secondary skill bonuses get updated via replacement (issue 2796)
2018-03-05 22:13:23 +08:00
Henning Koehler and ArseniyShestakov
4ee9d7f65a
Configure JSON merge behaviour via #override flag ( #423 )
...
* added json flags; override flag affects how structs are merged
2018-03-05 11:30:10 +08:00
Henning Koehler
e683f0f74e
fixed hero config indentation
2018-02-21 10:02:12 +13: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
Henning Koehler
89cb7b2780
formatting fix and code simplification in HeroBonus
2018-02-20 23:36:00 +13:00
Henning Koehler
e76efff0c3
added comment on Adrienne's specialty
2018-02-20 20:00:29 +13:00
Henning Koehler
9a70e82dc8
fixed catherine's specialty to swordsman
2018-02-20 11:51:15 +13:00
Henning Koehler
04925314f8
findKey returns success in found parameter
2018-02-19 08:50:43 +13:00
Henning Koehler
9850e7254e
updated serialization version to 781
2018-02-18 23:32:52 +13:00
Henning Koehler
e2f2568221
added extra debug info for Json parsing
2018-02-18 20:59:05 +13:00
Henning Koehler
c3d8500cf9
fixed specialty format for ingham
2018-02-18 20:59:05 +13:00
Henning Koehler
2ca6eab543
updated config files to use one-line creature specialty format
2018-02-18 20:59:05 +13:00
Henning Koehler
6442842731
added one-line option for standard creature specialty; also fixes bug for creatures where upgrades have different attack/defense
2018-02-18 20:59:05 +13:00
Henning Koehler
7a69bd1559
updated Authors and Changelog
2018-02-18 20:36:24 +13:00
Henning Koehler
95e2b44319
added TimesStackLevelUpdater
2018-02-18 20:36:24 +13:00
Henning Koehler
af00c29858
converted updaters for secondary skill specialties to TIMES_HERO_LEVEL
2018-02-18 20:36:24 +13:00
Henning Koehler
552bad08b3
added TimesHeroLevelUpdater; renamed ScalingUpdater to GrowsWithLevelUpdater
2018-02-18 20:36:24 +13:00
Henning Koehler
2abbe5ab19
fixed specialty for Calh
2018-02-18 20:22:23 +13:00
Henning Koehler
be913cfa41
fixed specialty for Fiur
2018-02-18 20:22:23 +13:00
Henning Koehler
5543631c19
fixed bug with mysticism specialty
2018-02-18 20:22:23 +13:00
Henning Koehler
f9a8cb2876
fixed formatting and other small issues
2018-02-18 20:22:23 +13:00
Henning Koehler
73f782aa39
fixed various specialty bugs retained during conversion
2018-02-18 20:22:23 +13:00
Henning Koehler
2b8f111a81
converted special.json; fixed bugs in specialty json construction
2018-02-18 20:22:23 +13:00
Henning Koehler
4f099393f7
converted conflux.json and fortress.json
2018-02-18 20:22:23 +13:00
Henning Koehler
62cb2f9063
converted dungeon.json and stronghold.json
2018-02-18 20:22:23 +13:00
Henning Koehler
0fe9211135
converted inferno.json and necropolis.json
2018-02-18 20:22:23 +13:00
Henning Koehler
78ed7cc0d6
converted rampart.json and tower.json
2018-02-18 20:22:23 +13:00
Henning Koehler
dc7132d8b7
converted castle.json; fixed bugs in Bonus::toJsonNode()
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
20172dba7c
indentation fix
2018-02-18 20:08:34 +13:00
Henning Koehler
ee46862784
replaced JsonNode::isEmpty() with JsonNode::containsBaseData()
2018-02-18 20:08:34 +13:00
Henning Koehler
6414cd18e8
fixed bug with old specialty conversion
2018-02-18 20:08:34 +13:00
Henning Koehler
de6d4d8367
fixed indentation for switch statements
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
ab7ce6625e
moved nameForBonus into Bonus class
2018-02-18 19:47:37 +13:00
Henning Koehler
ba7709da50
middle-aged specialty format is converted properly and logged
2018-02-18 19:27:24 +13:00
Henning Koehler
16f59fb213
fixed base merging and limiter creation
2018-02-18 19:27:24 +13:00
Henning Koehler
6ae103dd63
print json in compact format
2018-02-18 19:27:24 +13:00
Henning Koehler
a002df399e
updated json loading and schema to fit new specialty format
2018-02-18 19:27:24 +13:00
Henning Koehler
038cb4bf19
remove base json from specialty bonuses
2018-02-18 19:27:24 +13:00
Henning Koehler
eb02ce0f31
changed specialty json format to struct with base (WIP)
2018-02-18 19:27:24 +13:00
Henning Koehler
d7942fd929
fixed typo in specialty log
2018-02-18 18:53:01 +13:00
Henning Koehler
c31950612c
convert spec format in afterLoadFinalization
2018-02-18 18:53:01 +13:00
Henning Koehler
26862b4c51
improved/fixed specialty json encoding
2018-02-18 18:25:49 +13:00
Henning Koehler
05838b3827
Bonuse::toJsonNode uses string constants for type/subtype
2018-02-18 17:33:23 +13:00
Henning Koehler
c79b776f3c
Limiters (at least creature type limiters) are printed as well
2018-02-18 17:33:23 +13:00
Henning Koehler
89b1ba7538
added basics for specialty format updating
2018-02-18 17:33:23 +13:00
Henning Koehler
5d3f6c3b91
removed CHeroInstance::specialty
2018-02-18 17:33:23 +13:00
Henning Koehler
2703b035a6
added updater to Bonus json format
2018-02-18 17:33:23 +13:00
Henning Koehler
f8a8f6ac72
re-fixed type registration bug properly
2018-02-18 17:33:23 +13:00
Henning Koehler
9a335cdb59
fixed type registration bug (order matters\!)
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
d594845c32
fixed serialization issues
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
Henning Koehler
f867b1a37e
invalidate bonus caching on update
2018-02-18 16:55:15 +13:00
Henning Koehler
f1fd00f005
renamed & reused CBonusSystemNode::updateBonuses; tweaked updater signature
2018-02-18 16:55:15 +13:00
Henning Koehler
67330efa4a
added basics for Bonus updater
2018-02-18 16:34:15 +13:00
Henning Koehler and ArseniyShestakov
feba7e1979
tactics distance increased to 1 + bonus ( #375 )
2017-09-10 00:26:56 +03:00
Henning Koehler and ArseniyShestakov
a7104377d6
fixed CREATURE_TYPE_LIMITER for creatures without a stack instance ( #374 )
2017-09-06 15:27:26 +03:00
Henning Koehler
31ca4db8bd
fixed manual control for arrow towers
2017-09-05 00:30:43 +12:00
Henning Koehler
bbc087b723
updated authors and changelog
2017-09-04 00:25:37 +12:00
Henning Koehler
37df5c9d88
reworked mod loading to follow standard approach
2017-09-03 23:49:36 +12:00
Henning Koehler
cd35ece10c
fixed DLL_LINKAGE for << operators
2017-08-31 10:29:25 +12:00
Henning Koehler
233ead5671
fixed Estates description to match original format
2017-08-31 09:44:01 +12:00
Henning Koehler
03b7da93e2
use logMod for all mod-related logging
2017-08-31 09:23:19 +12:00
Henning Koehler
abdca71828
skill names and descriptions are fully managed by CSkillHandler
2017-08-30 22:35:23 +12:00
Henning Koehler
dba5186a6f
fixed skill schema definition
2017-08-30 20:01:09 +12:00
Henning Koehler
3764ec8be1
more code format issues
2017-08-30 19:47:06 +12:00
Henning Koehler
654ca96e9d
fixed code format and other minor issues
2017-08-30 19:19:54 +12:00
Henning Koehler
36d671b093
changed indentation from spaces to tabs
2017-08-30 16:23:03 +12:00
Henning Koehler
aadb5d93f7
added comment (and commented-out code) about skill legacy data
2017-08-30 16:03:24 +12:00
Henning Koehler
5e28202f94
dropped requirements for base in skill.json
2017-08-30 14:09:02 +12:00
Henning Koehler
899e8403f7
skills.json uses base and struct for effects
2017-08-30 10:25:36 +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
Henning Koehler
69a538a600
added bonus type MANUAL_CONTROL
2017-08-28 20:09:27 +12:00
Henning Koehler
5091b117e2
fixed serialization for older savegames
2017-08-28 13:56:00 +12:00
Henning Koehler
03c18ff691
added remaining skills to skills.json
2017-08-28 10:41:32 +12:00
Henning Koehler
aa15feba62
moved SECONDARY_SKILL_VAL2 to end of list
2017-08-28 00:17:59 +12:00
Henning Koehler
7e5c1ec7f8
made artillery bonus-based; supports multiple bonus shots
2017-08-27 21:05:17 +12:00
Henning Koehler
8bdb8f01ca
made scholar skill bonus-based
2017-08-27 20:10:25 +12:00
Henning Koehler
0153d0fc78
made fire/air/water/earth magic skills bonus-based
2017-08-27 19:37:54 +12:00
Henning Koehler
25e6b5cc07
added bonus type SECONDARY_SKILL_VAL2; refactored CSkillHandler::defaultBonus; made eagleEye level bonus-based
2017-08-27 17:40:52 +12:00
Henning Koehler
9bbfb57b93
cleaned up secondary skill bonus merging
2017-08-27 15:35:04 +12:00
Henning Koehler
06d2507371
log file loading
2017-08-27 12:59:09 +12:00