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

173 Commits

Author SHA1 Message Date
Andrey Filipenkov
e8396401f9 fetch Extra Resolutions mod path from the settings schema 2022-09-27 11:56:13 +03:00
nordsoft
89d0de53da Merge remote-tracking branch 'upstream/develop' into features/cpp-map-editor
# Conflicts:
#	.github/workflows/github.yml
#	launcher/modManager/cmodlist.cpp
#	lib/CModHandler.cpp
#	lib/CModHandler.h
2022-09-22 17:09:47 +04:00
nordsoft
0b9f601d2c Squashing editor 2022-09-18 03:23:17 +04:00
Nordsoft91
ad01c7ffce
Vlc obstacles [part 1] (#888)
* obstacles content handler, entity service and VLC integration
2022-09-15 11:06:54 +03:00
Andrii Danylchenko
4b4cc3cf4b battlefields in VLC and custom bonuses for terrain patches 2022-09-11 11:31:27 +03:00
Nordsoft91
5862c192b0
Mod from GitHub (#785)
* Make new dialog for checking updates
* update on startup
* Implemented auto-update
2022-09-04 19:32:48 +03:00
Nordsoft91
0b29fec63c Rmg water support (#754)
* Final changes before merge
2022-06-11 18:40:24 +03:00
Nordsoft91
5054ee011a Rmg water support (#751)
* Roads added to shipyard
* Load general rmg parameters from config
* Fix issue with default zone guard
* Move magic numbers related to balance to randomMap.json
2022-06-11 18:40:24 +03:00
Nordsoft91
9d06e51631
Place proper towns in underground (#743)
Implement feature of proper town selection in underground and surface
* Some minor refactoring of rmg
2022-05-28 16:03:50 +03:00
Andrii Danylchenko
55b8aac63e fix missed required fields in settings 2022-05-16 12:09:10 +03:00
Andrii Danylchenko
e220918230 full crash dump 2022-05-14 13:23:09 +03:00
Andrii Danylchenko
2fc7cf02b0 tray notification for windows 2022-05-14 13:23:09 +03:00
kdmcser
10cfefdf9d
fix bug: valid json will failed when object template contains zIndex (#698) 2021-07-18 10:44:44 +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
f4816b0824 Mod system improvement Part I : Special buildings should work in the modders towns 2020-10-07 12:35:11 +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
godric3
8650a8eea8 allow json schema references to use relative file path 2018-10-30 22:30:56 +01:00
Fior.in
cca46e311d Fixed schemas for battle animation overwritting an solo attribute instead images attribute dependant. Now working for replacing battle sprites on pre-existant heroes too (#490) 2018-09-13 02:33:34 +03:00
Fior.in
47ba3b2476 Hero scheme: allow each hero to have a unique battle animation (#480)
* attribute for battle image added on hero class, allowing on hero schemes each hero have a unique battle .def in 'images' structures sided with portraits and specialties images
2018-08-27 09:42:36 +03:00
Dydzio
b37ba8e046 Initial version of AI object value config 2018-07-28 00:43:56 +02:00
Henning Koehler
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
Arseniy Shestakov
f04cbaf539 Settings: add lastMap, lastCampaign, lastSave to schema
Nice to see last used save game after client restart
2018-04-03 22:11:14 +07:00
Henning Koehler
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
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
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
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
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
552bad08b3 added TimesHeroLevelUpdater; renamed ScalingUpdater to GrowsWithLevelUpdater 2018-02-18 20:36: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
2703b035a6 added updater to Bonus json format 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
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
Arseniy Shestakov
e7fa9f8cd6 config: add ambient, visit and removal sounds to schemas / objects 2018-01-02 09:48:17 +01:00
Henning Koehler
37df5c9d88 reworked mod loading to follow standard approach 2017-09-03 23:49:36 +12:00
Henning Koehler
dba5186a6f fixed skill schema definition 2017-08-30 20:01:09 +12:00
Henning Koehler
36d671b093 changed indentation from spaces to tabs 2017-08-30 16:23:03 +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
c0740e3623 fixed crash when loading neutral faction; skills.json no longer requires index values 2017-08-26 10:08:06 +12:00
Henning Koehler
0357a4fe3b enabled config of skill descriptions 2017-08-26 10:08:06 +12:00
Henning Koehler
64e2db6a0f added sufficient debug to diagnose - problem is with lack of original data 2017-08-26 10:08:06 +12:00
Henning Koehler
05cf95400c loading secondary skill bonuses from config/skills.json works (kind of) 2017-08-26 09:33:08 +12:00
Dydzio
c377f594a5 Add optional real fullscreen mode support 2017-07-08 18:43:04 +02:00
AlexVinS
0f5202689e Cumulative spell effects
* Added experimental support for cumulative effects for ENCHANTED bonus
* Updated and fixed SPECIAL_PECULIAR_ENCHANT processing
* Initial implementation of cumulative spell effects.
* Scheme for new spell feature - cumulative bonus.
2017-06-13 21:50:50 +03:00
Fay
01bae590f1 Added swipe support for non-android platforms; 2017-06-07 22:42:41 +02:00
AlexVinS
a31c28ec33 Unified war machine mechanics.
* it is possible to define new war machines
* added warMachine field to artifact configuration
2017-06-06 19:18:26 +03:00
Alexander Shishkin
7e1b0d71c5 Added option for saving generated maps on client side (#307)
* new configuration option 'general.saveRandomMaps'
* maps being saved to 'userCachePath/RandomMaps'
* no deletion of old random maps
* map filename generated based on template name and random seed
2017-06-04 20:33:28 +03:00
Fay
b5daa24982 Android support (#299)
* AI libs registering shenanigans on android;
* Fixed resolution aspect + mouse event scaling;
* Proper server init/deinit (through android IPC);
Enabled threaded init in CMT;
* Prevented a deadlock in logger on some devices;
* Fixed frozen intro frame after interrupting the video;
Added android progressbar displaying during initial data loading;
* Hacky fix for choppy animations during heroes movement (should look better now, but it's definitely not a good solution);
* Changes/fixes for new android launcher building process;
* Fixed app hang after getting SDL_QUIT when activity was destroyed;
* Functioanal, configurable advmap swiping support;
* VCMI changes cleanup;
Added few missing VCMI_ANDROID guards on swipe mechanics;
* Removed unneeded sleep in server startup code for android;
* Removed android ioapi hack (fixed in newest ndk);
* Removed unused android's library loading logic;
* Added android's swipe option to settings schema;
* Moved NO_STD_TOSTRING to be defined in global.h instead of build files;
2017-05-25 20:57:20 +03:00
Michał Kalinowski
4d39f652bf Making more detailed options when choosing AI in launcher: http://
bugs.vcmi.eu/view.php?id=2369
2017-01-17 12:34:28 +01:00
Krzesimir Nowak
32f5033a4d Add a displayIndex setting to the video settings
This setting will control on which display the game window will be
shown.
2016-08-31 11:12:59 +02:00
Arseniy Shestakov
8c39ecf538 moatHexes: add saves and mods compatability 2016-01-28 01:35:01 +03:00
Arseniy Shestakov
ffeb7f253b moatHexes: update faction schema and configuration files 2016-01-06 12:52:52 +03:00
ArseniyShestakov
e91d79414b PathfinderOptions: use settings and move all defaults into schema 2015-11-21 00:32:23 +03:00
AlexVinS
98ea8bf314 Introduce dummy spell animation/ animation pause configuration
* save format changed with backward compatibility, UNTESTED
2015-09-12 21:09:52 +03:00
AlexVinS
83fdce473e Fix mod schema: RMG templates added. 2015-07-27 08:36:19 +03:00
AlexVinS
5f8ecc22d5 Introduce configuration option for editor animation of map object and setup it for hero classes. 2015-06-10 14:21:33 +03:00
DjWarmonger
a68b58d969 - Use straight paths for some connections
- More fixes for template schema
2015-06-02 16:40:32 +02:00
DjWarmonger
d6225f50e1 Fixes for template schema. 2015-06-02 15:26:33 +02:00
DjWarmonger
6890ae9f02 - Fixed improper use of playersCount. Now RMG can generate maps up to 8 players, with CPU players only as well.
- Fixes for template scheme
2015-05-27 11:30:46 +02:00
DjWarmonger
2e70d8a084 - VCMI will now read templates from mods
- Added partial schema for RMG template
2015-05-26 18:19:41 +02:00
AlexVinS
8f84e24aa6 Get rid of mainEffectAnim 2014-11-28 01:03:25 +03:00
AlexVinS
d94f15bdf4 Added configurable animation for SPELL_LIKE_ATTACK 2014-11-28 00:36:14 +03:00
AlexVinS
75b93b070d Implemented configurable hit/affect animation
* need more testing
2014-11-27 16:51:16 +03:00
AlexVinS
16d08b062a First draft of spell animation configuration 2014-11-26 22:25:13 +03:00
AlexVinS
ce8fa33efc Introduced new spell configuration options (not used yet) 2014-11-13 13:37:42 +03:00
josch
b962e11bd7 Launcher: add setting allowing not to automatically check remote repositories
- add a button to the launcher which allows manual downloading
 - add a configuration option autoCheckRepositories to launcher settings
 - add ui elements to settings dialog to change autoCheckRepositories
2014-11-10 08:21:47 +01:00
Ivan Savenko
b551bdb725 Final part of the merge
Merging VCMI Dirs refactoring + GUI refactoring with current develop
2014-09-04 20:59:07 +03:00
Ivan Savenko
e692f3f520 Implemnted enemy turn speed selection:
- implemented switch in settings screen
- implemented "0 speed", animation-free. *may* also work for player-owned heroes
- removed no longer used creature window switch
2014-08-11 19:16:39 +03:00
Ivan Savenko
00cda400a1 Miscellaneous improvements for Launcher UI:
- Implemented "show intro" toggle in settings
- Install/Update/Enable buttons are now visible even when mod info is hidden
- Fixed behaviour of show mod info switch, added more obvious button to enable it
- Removed no longer used "Enable mods on install" switch
- Added buttons to open data, user data and temporary directories
2014-08-04 14:03:57 +03:00
AlexVinS
195eae48ca Merge branch 'develop' into SDL2
Conflicts:
	client/CPlayerInterface.cpp
2014-07-02 17:15:12 +04:00
Ivan Savenko
6e3eaeee21 Minor fix to schema, server will print visited objects in debug log 2014-06-25 00:23:56 +03:00
AlexVinS
3b8d0e44d4 Merge branch 'develop' into SDL2 2014-06-24 14:09:44 +04:00
Ivan Savenko
09d595e385 - Implemented "mapObject" entry for hero classes
- Updated schemas
- Some bugfixing
2014-06-16 19:27:26 +03:00
AlexVinS
3db7fb4f63 Still try to fix opengl backend
- no success
+ make backend selection configurable
2014-06-13 07:55:45 +04:00
AlexVinS
1597254399 just a few tweaks and it works!
* enable video again
* set default bpp to 32 - SDL2 dont like 24 bit resolution
* now almost everything looks as expected (some issues are present though)
2014-06-13 07:55:40 +04:00
Ivan Savenko
7e057b6df8 Bugfixing, game can finally load to main menu without crash 2014-06-04 11:25:13 +03:00
Ivan Savenko
32b6568b65 Merged changes from upstream and fixed compilation caused by API changes 2014-06-03 22:45:18 +03:00
Ivan Savenko
dc7f820161 Implemented object schema. Commiting current progress before sync with
upstream.
2014-06-03 21:43:33 +03:00
AlexVinS
f2b61f7e69 Spell configuration: introduce simplifaction mechanism for level conficuration
* also aviable for other handlers
2014-05-18 18:47:18 +04:00
AlexVinS
3209114393 Spell configuration. Introduce absoluteLimit.
* limit will be made negatable.
* now limit and immunity will look more solid.
* unused ATM
2014-05-18 17:22:02 +04:00
Macron1Robot
4a7a952590 Update faction.json
Added videoFile format to tavernVideo property
2014-04-29 21:55:35 +04:00
Macron1Robot
907caedb13 Added "produce" section in "building" structure. Changed dailyIncome. 2014-04-26 18:23:35 +04:00
Macron1Robot
b7b890acff Added "tavernVideo","guildBackground" to "faction" JSON config and schema. If "primaryResource" is set to "gold", silo will generate 500 gold per day 2014-04-24 23:36:18 +04:00
Ivan Savenko
1cec8d4cfc Some bits towards replacements of objects.txt, first step towards
configurable objects support:
- fixes for object template loader
- schema for current object template format
2014-03-23 20:26:18 +00:00
Ivan Savenko
9c0df68cb8 Fixing spelling mistakes. Patch from josch, fixes #1759 2014-03-23 12:59:03 +00:00
Ivan Savenko
9dda194ed3 Support for new fields in mod format including:
- screenshots, repository-only field, will be used by launcher to d/l
screeenshots
- screenshots will be viewed as thumbnails with switch to full view on
click
- changelog that is now visible in launcher
- somewhat better handling of submods by launcher
2014-03-23 12:08:01 +00:00
alexvins
9cac0af7be [Spells] More spell related refactoring
+ smart target modifier
- CREATURE_EXPERT_MASSIVE target type
* save format changed

spell format changes already documented in http://wiki.vcmi.eu/index.php?title=Spell_Format
2014-03-17 13:11:10 +00:00
alexvins
065b8366fb [Spells] Added basic support for icons and sounds
* few changes in spell format
* save format changed
2014-03-10 16:00:58 +00:00
alexvins
afcb7072eb Implemented #1379
+ added new flag for special spells. Special spells can be obtained only with BONUS::SPELL.
* made Titans` thunder special.
2014-03-07 16:10:20 +00:00
alexvins
4203d69525 Part 2 of new spell configuration
1) spell handler refactored to support modding in general way
2) imunnity icons moved to WoG as they depends on wog`s graphics
3) introduced new class template for handlers (todo: use this in other handlers)
4) save format changed
5) introduced "absolute immunity" - unaffected by "the Orb" etc. (todo: use it in config)
6) new format documented on wiki, added json schema.

* more split of registertypes - fixes 32 mingw build
2014-03-07 13:21:09 +00:00
alexvins
c7f57406eb Fix bonus schema to support array in duration 2014-03-01 18:42:31 +00:00
Ivan Savenko
cd8a0c01e4 Data for campaign win/loss conditions. All campaigns should now have
correct conditions.
All custom conditions are now validated using schema.

Note that some of scenarios may not work due to instant win/loss, mostly
because some placeholders fail to import (Mantis #1643)
2014-01-01 13:30:31 +00:00
Ivan Savenko
7d7e65a316 changes in hero class format:
- new property: affinity (might/magic) since in mods it is impossible to
rely on odd/even numeric indexes
- property commander is now part of hero class
2013-12-13 18:27:54 +00:00
Ivan Savenko
122db9963b More string ID's for buildings:
- town hall slots now use string ID's
- converted building requirements to new format
- "upgrades" property from buildings now uses string ID's
- several fixes for improved support of alternative creatures
- removed no longer needed "id" property from structures

Old mods should still work but will produce error messages during
validation
2013-12-04 10:36:39 +00:00
Ivan Savenko
71d6b0fea9 - Fixed some warnings from cppcheck
- Minor improvements to JSON validation
- Cleanup in SDL_Extensions.cpp
- Implemented new propery for creature format: idle animation duration
- Disabled idle animation of some of conflux creatures (was clearly
broken)
2013-11-06 13:42:58 +00:00
Ivan Savenko
c4716d0a9a - reordered files in cmake so files with long compile times will be
compiled first.
- changed format of modSettings.json, VCMI should properly update file
on the first run.
- implemented property "defaultTavern" that acts as default value for
"tavern" entry in hero class and town formats.
2013-11-03 12:07:23 +00:00
Ivan Savenko
6cb3cb006d Several minor fixes/features
- moved all traslatable strings into one json file, removed threats.txt file
- implemented "spellbook animation" option
- fixed missing central tower when attacking fort
2013-10-27 13:05:01 +00:00
Ivan Savenko
9237e6d97d Improved json validation
- split JsonNode.cpp into JsonNode and JsonDetail files
- validation should be notably faster (at least 10% faster loading)
- support for "format" field, allows checking existance of files.
- minor fixes in schemas
- msk/msg files are now optional
2013-10-26 19:33:34 +00:00
Ivan Savenko
e2c037402c Unicode support.
- boost-locale library is now required (boost 1.48 or higher)
- Unicode namespace that contains UTF-8 handling
- All non-ASCII strings from H3 data will be converted to UTF-8 during loading
- All JSON files MUST use UTF-8. 
- H3 data encoding can be selected via launcher or directly in config file
2013-10-25 21:45:14 +00:00