Commit Graph
100 Commits
Author SHA1 Message Date
Henning KoehlerandArseniyShestakov 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 KoehlerandArseniyShestakov 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 KoehlerandArseniyShestakov 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 KoehlerandArseniyShestakov 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 KoehlerandArseniyShestakov 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 KoehlerandArseniyShestakov 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 KoehlerandAlexander 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 KoehlerandArseniyShestakov e455d97fc7 cleanup of CBonusSystemNode::removeBonusesRecursive 2018-03-05 22:13:23 +08:00
Henning KoehlerandArseniyShestakov 6263c4c3eb renamed CGHeroInstance::updateSkill to updateSkillBonus 2018-03-05 22:13:23 +08:00
Henning KoehlerandArseniyShestakov d3e4fc6e7a renamed CBonusSystemNode::popBonuses to removeBonusesRecursive 2018-03-05 22:13:23 +08:00
Henning KoehlerandArseniyShestakov 4c0a67041b secondary skill bonuses get updated via replacement (issue 2796) 2018-03-05 22:13:23 +08:00
Henning KoehlerandArseniyShestakov 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 KoehlerandArseniyShestakov feba7e1979 tactics distance increased to 1 + bonus (#375) 2017-09-10 00:26:56 +03:00
Henning KoehlerandArseniyShestakov 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