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

206 Commits

Author SHA1 Message Date
DjWarmonger
8683c8c0eb - Added and improved some propagators, including Crystal Dragons ability (#1232)
- Minor refactoring in AI
2014-03-29 21:39:19 +00:00
DjWarmonger
6ee823298a - Various improvements for exploration
* Heroes will try to use SectorMap if there are no accessible tiles
* Remove some loopholes and pitfalls when all the ways are blocked
* Fixed AI not conquering some (reserved) objects
Still missing: SectorMap does not use Subterranean Gates :(

- Improvements for army exchange
* Fixed exchange condition
* Bidirectional exchange is possible
2014-02-17 07:36:03 +00:00
Ivan Savenko
3560bbb7f3 two patches/pull requests from janisozaur
- replace our custom bmap with std::map::at()
- compile fixes for editor
2013-11-12 10:45:42 +00:00
DjWarmonger
4ec9faa789 Fixed #1367. Removed confusing code for speed calculation. 2013-07-22 17:06:32 +00:00
DjWarmonger
4fd9bcfedc Fixed #1345 2013-07-22 10:39:11 +00:00
Ivan Savenko
096d6ebf9c refactoring of CBattleInterface::show() and all related code
fixes most of blit order-related bugs in battles (#1200, #1238, #226)

known issues, will fix soon:
- there are still some minor blitting issues during movement
- destruction of walls in siege is out of sync with catapult projectile movement
2013-07-19 16:35:16 +00:00
Michał W. Urbańczyk
68603245c4 Or should not be the same way as And. 2013-07-03 20:18:41 +00:00
Michał W. Urbańczyk
4576719abe Visual Studio 2013 Preview compile fixes:
* 0 is not convertible to std::function, nullptr should be used
* std::ref(rand) is not convertible to function<int()>, used lambdas (why we dont just pass "rand" ? )
* CFunctionList needs to be constructible from nullptr
* move constructor for CMapInfo (Visual cannot generate them :( )
* #ifdefed some stuff that is not needed anymore since cmath is updated with C99 stuff
* using std::make_unique instead of our vstd implementation

CSelector: 
* introduced a class in place of typedef
* Having an overloaded && || operators over sth that is convertible to bool… Wasn't a good idea after all. Purged the operators, replaced  with And/Or methods (chaining-style).
* constructor that is present only when constructing from class or function (SFINAE). std::function has an implicit converting constructor from T causing ambiguities (even if the overload would cause compile error in the body)
2013-07-02 12:08:30 +00:00
Ivan Savenko
f82122d9be second part of c++11 update. gcc 4.5 and VS 2010 are no longer supported
- BOOST_FOREACH -> for
- replaced several boost classes with std (e.g. unordered)
- removed gcc-4.5 workarounds
- ran clang c++11 migration tool to detect some cases:
- - pointer initialized with "0" to nullptr
- - replace for with iterators with range-based for
- - use auto in some situations (type name specified twice, avoid long iterators type names)
2013-06-29 13:05:48 +00:00
Ivan Savenko
2b45e13c5c c++03 -> c++11 switch:
- use std versions of function, bind and ref
- OVERRIDE -> override
- NULL -> nullptr
- use std versions of random distributions

NOTE: this may be last revision that supports gcc-4.5
2013-06-26 11:18:27 +00:00
Michał W. Urbańczyk
6a88604937 * fixed crash related to cammander's SPELL_AFTER_ATTACK spell id not initialized properly (text id was resolved on copy of bonus)
* fixed duels, added no-GUI mode for automatic AI testing
* minor things
2013-06-17 15:45:55 +00:00
mateuszb
dbec99ffc7 * PlayerColor and TeamID refactoring 2013-03-03 17:06:03 +00:00
Ivan Savenko
b78c4c19ea - compile fix 2013-02-26 15:07:21 +00:00
DjWarmonger
928d1d2121 - Some work on bonus system, effect range can be ignored. TODO: usage of bonus with any subtype.
- Fixed #1156
2013-02-26 09:36:21 +00:00
alexvins
2cb86d84fa [refactor]
+ crexp parser: parse mind immunity
2013-02-25 12:18:45 +00:00
mateuszb
560315bc48 * SlotID refactoring 2013-02-16 14:03:47 +00:00
mateuszb
86dc9386d6 * refactoring, including a generic solution for IDs 2013-02-10 23:24:57 +00:00
mateuszb
f1c78e3260 * creature ID refactoring
* double week creatures are configurable now
2013-02-07 17:34:50 +00:00
mateuszb
3958364884 * a bit more work on campaigns; hero crossover still buggy 2013-02-06 10:16:44 +00:00
DjWarmonger
1ef205e5f1 Various tweaks / enchancements to bonus mechanics
- Added CREATURE_SPELL_POWER for commanders
- Added spell modifiers to various spells: Hypnotize (Astral), Firewall (Luna), Landmine 
- Fixed ENEMY_DEFENCE_REDUCTION, GENERAL_ATTACK_REDUCTION
- Extended usefulness of ONLY_DISTANCE_FIGHT, ONLY_MELEE_FIGHT ranges
2013-02-06 08:02:46 +00:00
mateuszb
ba3075317f * proper bool serialization
* refactoring towards more enums/typedefs
2013-02-02 19:28:39 +00:00
mateuszb
c4e03ef0de * enum serialization/deserialization (si32 as basetype ought to be enough for anybody)
* some fields in classes refactored to use appropriate enums (not yet finished)
2013-02-01 22:04:25 +00:00
DjWarmonger
fff7909958 - Fix for hero specialties (creature type limiters)
- Improved handling of new heroes / arts, check forum for fresh mod packages :)
2013-01-20 16:31:18 +00:00
Michał W. Urbańczyk
0e826915ed Fixed #1176. 2013-01-20 12:06:18 +00:00
DjWarmonger
79062eb15c - Parsing hero specialty is working (though complicated)
- Some obvious fixed for limiters, more work needed
2013-01-19 17:38:37 +00:00
DjWarmonger
97db289d3c Parsing for CREATURE_TYPE_LIMITER 2013-01-18 11:49:15 +00:00
DjWarmonger
ce15eb37c2 - Fixed serialization of limiters
- Hero can now can have several separate specialty nodes
- Fixed typo (speciality->specialty)
- Fixed several crashes related to commanders
- Improvements to specialty handling, bugfixes and temporary solutions for upcoming hero specialties in mods
2013-01-17 18:15:00 +00:00
DjWarmonger
d7c9377843 - Parsing propagators and limiters
- Experimental support for chaining limiters
- Added missing abilities, propagators and limiters to artifacts
- Sketch of Calculator for bonuses, ignore it for now
2013-01-16 13:02:01 +00:00
Ivan Savenko
ffe8b99369 - reorganized hero classes
- artifact iconIndex should work
- new file with hardcoded string constants: lib/StringConstants.h

Note: some minor bugs, will fix soon:
- slow to open hero window
- hero adventure map images serialization is broken\incorrect
2012-12-14 15:32:53 +00:00
DjWarmonger
62a281a665 Complete parsing for new Artifacts. iconIndex needs to be handled.
Otherwise, they are ready for test.
2012-12-13 14:27:33 +00:00
DjWarmonger
71cbde7bbc Bonus limiters are now implemented using Decorator design pattern, which allows to chain them. 2012-12-13 10:49:12 +00:00
DjWarmonger
ca9033d0e4 - Support for "Enchanted" WoG ability.
- Precision will not be cast on non-shooters
2012-12-01 18:30:03 +00:00
mateuszb
652ea4036e * artifact bonuses are read from config file now
* removed two commented-out methods
2012-10-03 18:11:19 +00:00
mateuszb
af133ae758 * experimental support for bonus limiter/propagator loading from json (not turned on yet) 2012-09-27 16:48:46 +00:00
mateuszb
59fcc15254 * last revision reverted, mysterious bug 2012-09-24 18:52:30 +00:00
mateuszb
55f1c47c16 * more TPlayerColor/TResource 2012-09-24 17:00:18 +00:00
Michał W. Urbańczyk
62e63d45b1 Work in progress on BattleAI. Related changes:
* battle AIs receive ptr to CBattleCallback (not sure why it was CPlayerBattleCallback, likely mistake)
* reworked some battle callback methods to be more generic and able to handle some hypothetic scenarios
* for testing purposes in duel mode the first AI will be taken fro mconfig and the second will remain stupid ai
* minor changes
2012-09-20 16:55:21 +00:00
alexvins
369f0ae9c6 [PLATFORM] MinGW support added
* disabled features unsupported by MinGW
* fixed issues with DLL_LINKAGE
! BOOST_THREAD_VERSION in now 3 workaround for existing code added, consider refactoring.
* some small tweaks ("-fpedantic" warnings)
2012-09-15 19:16:16 +00:00
Michał W. Urbańczyk
38b6435ee4 Shackles of War implementation uses bonus system propagation instead of looking into enemy hero. Silences some warnings. 2012-08-29 15:27:24 +00:00
Michał W. Urbańczyk
d390113c23 * New files for lib: CBattleCallback.cpp and CBattleCallback.h
* Updated MSVC project files
* Filesystem: My version of .SND archive does not have \0 after WAV extension. Fixed (though hardcoded 3-char extension length).
* New bonus types: BLOCK_MAGIC_ABOVE for blocking casting spells above given level and BLOCK_ALL_MAGIC for blocking all magic.
* Heavy rewrite of battle callbacks. Fixed some minor bugs. Code reusage between lib/client/server (removed proxy calls). Better access control and support for various perspectives.
* Fixed #1031
* Fixed Orb of Inhibition and Recanter's Cloak (they were incorrectly implemented). Fixed #97.
* Fleeing hero won't lose artifacts. Spellbook won't be captured. Fixed #980.
* Fixed crash when attacking stack dies before counterattack (ie. because of Fire Shield)
* Server does some basic checks if action requests during battle are valid
* Minor stuff.
2012-08-26 09:07:48 +00:00
DjWarmonger
d56e7c568a Added full parser for Bonus structure, as described in http://wiki.vcmi.eu/index.php?title=Bonus_Format
Untested.
Limiters / propagators are not yet supported.
2012-08-23 18:46:43 +00:00
DjWarmonger
cf45239332 Fixed #1035.
Support for commander artifacts that accumulate bonus after battle.
2012-07-16 16:18:02 +00:00
Ivan Savenko
faaf799d95 - fixed some extra warnings. Mostly harmless.
NOTE: Please check changes in BattleState.cpp and GameHandler.cpp for possible bugs
2012-05-28 19:29:32 +00:00
DjWarmonger
9c9301a495 Various fixes. 2012-04-22 19:56:03 +00:00
DjWarmonger
96d198758c - More commanders
- Improved finding closest tiles on battlefield
2012-04-22 17:38:36 +00:00
DjWarmonger
81e74f8c33 - Config settings & parsing for Commanders.
- Fix for Regeneration icon
2012-04-22 13:28:46 +00:00
Michał W. Urbańczyk
722ec55384 Redid stack artifacts. Broken save compatibility. Added serializer support for boost::variant and sending CStackInstace* over network by implicitly passing IDs. Moved seeds and checksum to StartInfo. Various minor changes. 2012-04-14 02:20:22 +00:00
DjWarmonger
038d105bcc - first sketch of Commanders
- accumulateBonus should make mechanics simpler
2012-04-04 17:41:55 +00:00
Michał W. Urbańczyk
d0e259864e * Replaced boost::shared_ptr with std::shared_ptr.
* Brought shared_ptr and unique_ptr and their factories (make_shared, make_unique) to the global scope. 
* Removed excessive usage of shared_ptr in bonus system interface. 
* Fixed bonus system limiters/caching interactions. That covers #823, #859 and a number of rare edge-cases. 
* Implemented multiple-step limiters applying, fixing hasAnotherBonusLimiter  and allowing transitional dependencies between bonuses. 
* Bonus system should be slightly faster, since we cache limited bonuses. Some rare usages (limiting query against a foreign node) however can't use caching.
2012-03-06 16:59:55 +00:00
DjWarmonger
386ac80cf9 Fixed #855 & 861. Unsigned values were bad idea to prevent overflow. 2012-02-20 16:26:14 +00:00
DjWarmonger
329f39bb2a Fixed #837 2012-02-20 11:02:19 +00:00
DjWarmonger
855cebfe81 - MIND_IMMUNITY bonus replaces separate protectons from various spells
- Creature Window can handle descriptions of spellcasting abilities
2012-01-27 07:25:29 +00:00
DjWarmonger
1cbd7e94e4 - Extended cap or removed sign for some values that may potentially overflow
- Fixed #851
2012-01-26 16:48:53 +00:00
beegee1
7f04ed990b Major refactoring. First part: BattleInterface
Introduction of pre compiled headers,...
2011-12-13 21:23:17 +00:00
DjWarmonger
10fce0025a Support for wall penalty & No Wall Penalty ability.
All creature abilities should now be more or less working.
2011-10-20 17:41:40 +00:00
DjWarmonger
5e40d3da72 Support for Enchanter ability. 2011-10-09 07:20:23 +00:00
DjWarmonger
f4fc77ccb8 Creature spells are now functional.
It includes Master Genie, Archangel, Faerie Dragon & Elementals
2011-10-08 09:11:36 +00:00
DjWarmonger
fa6bddcad5 A bunch of mechanics & refactorings. 2011-10-03 19:29:36 +00:00
Frank Zago
c4b8039c1e Added a missing rturn in CGameHandler::isAllowedExchangeForQuery. Fixed several typos. 2011-09-24 01:15:36 +00:00
Michał W. Urbańczyk
9621cbcaa7 * fixed crash on calculating dmg dealt by stack under Curse
* fixed crash on sea battles (obstacles data got corrupted during conversion)
* fixed crash when StupidAI had a catapult
* minor fixes and refactorings (typename for bonus list under shared ptr)
2011-09-06 13:59:26 +00:00
Michał W. Urbańczyk
18444fc72f Rewritten code handling growth to eliminate duplication and make it conformant to OH3 mechanics. Proper support for Statue of Legion.
Displaying shield over minimap during AI turn.
2011-08-26 20:32:05 +00:00
DjWarmonger
16e7241fbd Support for WoG's Defense bonus. 2011-07-16 16:40:38 +00:00
beegee1
62c43451ef * Updated bonus caching -> faster in particular cases, operations by limiter objects aren't cached 2011-07-16 13:57:25 +00:00
DjWarmonger
79a453f442 Support for WoG "cast before attack" bonus. Minor fixes. 2011-07-16 06:42:44 +00:00
Ivan Savenko
706510f12f - gcc compile fixes 2011-07-13 23:36:37 +00:00
beegee1
55e7959fd9 * Bonus system caching updated, partially rewritten, much more robust, thread-safe
* Adjusted projectile speed, trebuchet canon speed
2011-07-13 18:39:02 +00:00
DjWarmonger
5269e845fd handling of Rebirth ability for Phoenix.
However, I've got no idea how to restore its animation to alive state.
2011-07-08 14:54:20 +00:00
DjWarmonger
f33fbdc43b Support for Thunderbolt (Thunderbirds).
General framework for handling creatures casting spells with arbitrary spell power.
2011-07-08 07:00:11 +00:00
DjWarmonger
51943e5f1e Partial support for Death Cloud & Magog's Fire Ball.
Lots of refactoring is needed to handle this and multiple-target attacks.
2011-07-02 16:49:22 +00:00
Ivan Savenko
a89895452a - (linux) fixed searching/loading of scripting libraries
- (linux) moved AI libraries to /lib/vcmi/AI/lib*, ERM lib to /lib/vcmi/Scripting/*
- gcc compile and warnings fixes
2011-06-28 14:19:16 +00:00
DjWarmonger
9ca5d9048a Fixed total spell immunity granted by 2212.
Improvements for Life Drain.
2011-06-25 15:05:01 +00:00
beegee1
5fdb5aa494 * Improved battle and bonus system performance (significantly faster in debug build, tip: use vs 2008, turn of hex field presentation)
* Implemented caching for the bonus system
2011-06-25 13:53:15 +00:00
DjWarmonger
bdce46ab60 Minor refactorings, fixes & improvements.
Moved CArtifactSet to ArtHandler. ObjectHandler is already too messed.
2011-06-24 17:43:02 +00:00
DjWarmonger
e7bbfb615c Removed odd "no shoting penalty" bonus. It seems to be confused with No Distance Penalty. 2011-06-20 06:42:53 +00:00
DjWarmonger
936005aa1c Correct, yet ugly handling of Magic Resistance. 2011-05-29 18:28:50 +00:00
DjWarmonger
d4c2e55a00 Fixed #421 & #480. Some work on animations & sounds. Minor changes.
TODO: Interface should check game state before it's changed by triggered abilities of creatures.
2011-05-15 06:37:57 +00:00
DjWarmonger
bc114a89f4 Partial support for immunities & receptive ability.
TODO: Immunity to direct damage spells.
2011-05-13 17:51:12 +00:00
DjWarmonger
515ab7e7c1 Support for Acid Breath (both effects are now separate).
Minor fixes.
2011-05-13 09:02:16 +00:00
Frank Zago
91dc7a0dd4 Include proper boost header. 2011-05-04 02:37:27 +00:00
DjWarmonger
a4d845688a Support for Poison, Age, Disease
Partial support for Stone Gaze, Paralyze, Mana drain
Partial fix for #134 - animation triggers only for our own stacks, not enemy's
Lots of tweaks & fixes.
2011-04-25 09:03:13 +00:00
DjWarmonger
7591d06b05 Support for Death Stare.
Some tweaks are still needed. Level 0 spell-like abilities won't work correctly.
2011-04-23 17:10:54 +00:00
DjWarmonger
3c5a0fd4ce Creatures now use SHOTS Bonus to express their total ammo count. Support for "additional shots" exp premy. 2011-04-12 08:59:18 +00:00
DjWarmonger
dc0eb37da6 New creature window works in general, covering old functionalities and displaying new info. It's far from finished though. 2011-03-03 18:25:48 +00:00
Michał W. Urbańczyk
c5930893fd Fixed #682. 2011-03-01 10:19:05 +00:00
Michał W. Urbańczyk
03fdd22b1a Version set to 0.83c, to be released as development build.
Code reorganizations in bonus system, allowing defining bonusNode-like classes.
Fixed some issues with artifact handling (proper updating of GUI when moving, minor fixes). 
Restoring battle AI for neutrals after loading game.
2011-02-27 19:58:14 +00:00
Michał W. Urbańczyk
d7b586f1fd Eliminating duplicated bonuses. Smarter getting [no code duplication]. 2011-02-27 11:26:18 +00:00
mateuszb
8e7b855478 BLOCK_SPELLS_ABOVE_LEVEL was removed on purpose 2011-02-23 10:01:23 +00:00
Michał W. Urbańczyk
cab8f9e11d AI for neutral creatures and battles and player AIs can be different. StupidAI will handle neutrals by default.
Fixes for issues with deserialization and handling Tactics secondary skill.
2011-02-23 03:57:45 +00:00
DjWarmonger
9d313d3d2c Minor fixes and tweaks. 2011-02-22 14:23:09 +00:00
mateuszb
b4edd10e6c * beegee's comments patch
* very minor changes
2011-02-22 11:52:36 +00:00
mateuszb
1458cf64c2 * fixed bug 298
* fixed INDEPENDENT_MIN bonus value type
* minor changes
2011-02-21 16:53:23 +00:00
mateuszb
43468e16e1 * bug 97 fixed
* better handling of BLOCK_SPELLS_ABOVE_LEVEL bonus
2011-02-21 13:27:31 +00:00
Michał W. Urbańczyk
d36f8087aa minor fix — duration has to be passed as ui16. 2011-02-21 04:24:46 +00:00
Michał W. Urbańczyk
4c9edd3f06 Many fixes around bonus system. Some basic propagation mechanism (not clever but works). 2011-02-21 04:13:00 +00:00
mateuszb
519a4186de * fixed bugs 470 and 523
* minor improvements
2011-02-20 18:32:39 +00:00
DjWarmonger
7a49240520 Some additional info for Stack Experience, fixes. 2011-02-12 16:21:48 +00:00
mateuszb
fcdc3f0bdd Various changes, including exprank limiter and development towards Tactics secondary skill support. 2011-02-12 16:12:48 +00:00
DjWarmonger
c0f2b3f32b Now parsing CREXPBON into Bonus System, with limiters. StackExperience class removed.
Exp ranks are now calculated, though exp is never set.
2011-02-11 08:20:26 +00:00
Michał W. Urbańczyk
979f77d900 Some preparations towards handling stack experience by the new bonus system. New nodes for controlling premies for creatures of given tier (level). Minor changes. 2011-02-10 13:12:53 +00:00
DjWarmonger
454beba90c Backup of last modifications in stack experience. 2011-02-09 14:58:15 +00:00