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

276 Commits

Author SHA1 Message Date
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
Michał W. Urbańczyk
31fc8f6db3 Merged Warmonger's changes from trunk 2011-02-06 08:32:05 +00:00
Michał W. Urbańczyk
c6db92c0be More development around bonus system: building hierarchy, managing morale bonuses. Fully functional Spell Scroll and Angelic Alliance artifacts. Fixed recruiting hero and moving hero to garrison. 2011-02-04 14:58:14 +00:00
DjWarmonger
a84a95f0ee Partial parsing for CREXPBON.txt table - only basic bonuses are supported
Bonuses will be stored in Creature node and used when Bonus System is ready.
2011-02-03 12:58:46 +00:00
DjWarmonger
c11f7c2020 Some more work on bonus-to-string feature. 2011-02-02 18:49:48 +00:00
DjWarmonger
094bb6fd8f Moving some work in progress from one computer to another. It shall not explode.
Fixed video issue from #670.
2011-02-01 18:10:43 +00:00
Michał W. Urbańczyk
a75a37008f Practically finished combined artifacts changes, many other fixes. 2011-01-28 02:11:58 +00:00
mateuszb
824d2b52db * more or less fixed spells
* certain hero specialties are still broken
2011-01-20 19:57:12 +00:00
mateuszb
98494a5e6f * defensive stance implemented (bug #342 fixed) 2011-01-18 17:23:31 +00:00
mateuszb
23c501b79e some changes 2010-12-17 18:47:07 +00:00
Michał W. Urbańczyk
fc6d6e02a3 More fixes for stacks, some basic macro-based logging for bonus graph operations. 2010-12-11 23:11:26 +00:00
Michał W. Urbańczyk
848a00bc6f Stacks #4 -> giving creatures still needs to be fixed. 2010-12-05 23:10:02 +00:00
Michał W. Urbańczyk
32ce20af15 Moving stack system to pointers, part #1 2010-11-22 00:34:46 +00:00
Michał W. Urbańczyk
9250cc8adf Separated CStack and CStackInstance. 2010-11-20 17:36:02 +00:00
Michał W. Urbańczyk
27f83ea8c3 Further work on bonus system. 2010-11-20 00:03:31 +00:00
Michał W. Urbańczyk
b2a4d857b5 Little more. Doesn't crash on startup. 2010-11-18 22:22:51 +00:00
Michał W. Urbańczyk
cdf7b2b4d9 Bonuses now use pointers.
Things are very broken.
2010-11-18 22:06:56 +00:00
Michał W. Urbańczyk
9028684697 Disemboweling the system.
Things are broken now.
2010-11-13 20:26:15 +00:00
DjWarmonger
717141ab0b Statue of Legion is finally functional.
You can see my attempt to create very generic handling of global effects, but I abandoned it since no other items might actually use it.

However, Statue's constituents are buggy, so may be assembling & dissasembling them. Most likely this issue is general.
2010-09-25 20:23:55 +00:00
mateuszb
608e26b453 * a few fixes for CStack.effects removal - more should come 2010-08-31 10:22:21 +00:00
DjWarmonger
bfe266a377 Moved battle effects to bonus system. May be buggy.
Moved creature damage to bonus system, simplified its handling. Some changes and tweaks.

Support for Adela's bless.
2010-08-30 18:06:17 +00:00
DjWarmonger
ea966a3d21 Creature weeks now work fine. Castle interface still needs to be updated. 2010-08-25 08:40:50 +00:00
DjWarmonger
630dc7f7f2 Next part of creature weeks code. 2010-08-24 14:26:57 +00:00
mateuszb
ec5fa1dc22 * Mutare's special ability
* implemented vial of dragon blood

* problems with teams discovered:
maps with noncontinuous player occupancy (e.g. only red and teal) crash on loading. hideTiles has obvious bugs - loop goes through teams and team numbers, but fw.player is set to team number, as is the 4th argument to getTielsInRange.
2010-08-06 10:46:40 +00:00
mateuszb
f41c85212f * more appropriate calculation of spell level by SPELL bonus 2010-08-05 09:11:38 +00:00
mateuszb
52319f5713 * CBonusSelection will now work on CCampaignState instead of CCampaign; unfortunately there seems to be no elegant way to move that state between bonus selection screen and CGameState::init, so it's not yet moved. 2010-08-04 11:18:13 +00:00
mateuszb
c06de1f1ce * improved campaign handling - bonus selection screen is mostly functional
* preliminary support for giving campaign bonuses (resources and spells, artifacts, skills for generated hero are given)
* differing the amount of resources given to AI and human players
* minor changes
2010-07-31 13:55:05 +00:00
Michał W. Urbańczyk
7ae02b7c5a Fixed #471.
Bonuses from artifacts are now inherited. Some work on artifacts set GUI. CArtifactsOfHero now operates on its own hero copy when picking artifact. Still more fixes are needed though.
2010-07-20 18:34:32 +00:00
DjWarmonger
115b626cfd Support for damage bonus (Ciele, Luna). Creeps won't grow on first day. 2010-07-17 13:11:12 +00:00
DjWarmonger
52c224502c Compilation fix. Creature damage will now be displayed correctly. 2010-07-16 15:52:21 +00:00
DjWarmonger
23d2dec3e5 Further support for specialities - fixed creature bonuses. Minor fixes. 2010-07-15 19:38:15 +00:00
DjWarmonger
ab8e24c490 Hero speciality in creatures (growing with level) is now ready.
Fixed Tree of Knowledge giving only 2^31 XP.
2010-07-13 19:55:13 +00:00
Michał W. Urbańczyk
88e1636250 Fixed #15, #224, #370, #516
Minor changes.
2010-07-13 05:25:40 +00:00
Michał W. Urbańczyk
fa4ee94cf9 Fixed #484. Preliminary support for bonus limiters/ 2010-07-12 10:20:25 +00:00
DjWarmonger
24b47ce006 General tweaking of specialities for general consistency.
Values now grow with level. Warning: they affect entire hero himself, not the specific type of creature.
2010-07-08 19:10:26 +00:00
DjWarmonger
742e80b168 Preliminary distribution of hero specials. Sir Mullich actually works fine. 2010-07-06 07:32:40 +00:00
DjWarmonger
6869551510 Experimental support for Veil of Darkness - messing around with new bonus style. Fixed Cover of Darkness for many players.
Minor fixes, as always.
2010-06-07 05:28:12 +00:00
Michał W. Urbańczyk
9af18cf487 Fixed #464 and #467 2010-05-31 20:38:14 +00:00
mateuszb
edd31ef41b * half-working boots of levitation and angel's wings 2010-05-15 15:00:19 +00:00
Michał W. Urbańczyk
bb80d4bc02 * support for build grail victory condition
* improved formula for necromancy to match better OH3
* Support for new town structures:
- Lighthouse
- Colossus
- Guardian Spirit
- Necromancy Amplifier
- Soul Prison
2010-05-14 02:18:37 +00:00
Frank Zago
df151cceba Various compile and warning fixes. 2010-05-12 02:32:56 +00:00
Michał W. Urbańczyk
a14606f32d New bonus system. Unified HeroBonus and StackFeature. Still early version, will need improvements and development.
If you encounter any new crashes / bugs / unacceptable slowdowns, please PM me.
2010-05-02 18:20:26 +00:00
Michał W. Urbańczyk
9a632246de Changes towards better bonus system. 2010-04-03 03:33:46 +00:00
Michał W. Urbańczyk
80f49badc9 Implemented Scuttle Boat and Dimension Door spells.
Fixed #417 and #418.
Moved / refactored some code. Minor fixes.
2010-03-20 22:17:19 +00:00
Michał W. Urbańczyk
9588e39e84 To be released as 0.75d. Fixed town list with hotseat. Fixed colouring hero window. Minor fixes. 2010-02-26 11:18:09 +00:00
Michał W. Urbańczyk
0fdbe787dc * New file: lib/HeroBonus.cpp - updated project files for MSVC
* Updated changelog
* Support for Lighthosues and Obelisks
* Bonus system extended on players 
* Army speed won't affect movement points when sailing
* Picking grail position (digging not implemented though, puzzle map only partially)
* Minor improvements
2010-02-10 02:56:00 +00:00
OnionKnight
790a77c280 Locks for combination artifacts largely implemented, only one or two bugs when moving them around in a certain way. Artifact assembly still remaining.
To make sure these artifacts get (un)equipped properly the functions CArtHandler::equipArtifact and CArtHandler::unequipArtifact should be used instead of modifying artifWorn manually.
2010-02-08 21:17:22 +00:00
OnionKnight
7a45f707a0 * Giants/Titans now immune to Blind.
* Added hero bonuses for the composite artifacts.
* Angelic Alliance troop mixing implemented.
* Elixir of Life gives regenerating capabilities.
* Power of the Dragon Father gives spell level immunity, though that is still not implemented.
2009-08-23 20:33:05 +00:00
mateuszb
5256038dc3 * restructured changes done in commits #1138 and #1139 2009-08-22 12:50:23 +00:00
mateuszb
1c2edcf496 * support for new objects:
- magic plains
- fiery fields
- rock lands
- magic clouds
- lucid pools
- holy ground
- clover field
- evil fog
2009-07-21 13:53:26 +00:00
Michał W. Urbańczyk
cff70406f1 * enter can be used to open window with selected hero/town
* fixed slider behavior when showing less maps/games than available slots
* added a few missing sounds for creatures
* fixed problems with artifacts info caused by bug in serialization
* fixed bug in Scholar's serializetion
* all stacks features will be serialized (should fix problems with missing premies from artifacts)
* proper serialization of HeroBonus, fixes some problems/crashes
* resource silos won't give resources on the first day
* fixed problems with removing artifacts when all visiblebackpack slots are full
2009-05-30 16:00:26 +00:00
mateuszb
f9ae91d88c * further changes towards support for ranged spells
* added info about author & license in files
2009-04-15 14:03:31 +00:00
mateuszb
aa87e1ff16 * next ubuntux's patch 2009-04-15 10:20:47 +00:00
Michał W. Urbańczyk
1983aee1b2 * resting in town with mage guild will replenih all the mana points
* battle will end when one side has only war machines
* fixed crasbug occurring on revisiting objects (by pressing space)
* started writing support for artifacts
2009-04-03 22:34:31 +00:00
Michał W. Urbańczyk
05b3e3215c * magic well support
* improvements in the recruitment window
* improvements for pregame  
[cf http://vcmi.antypika.aplus.pl/forum/viewtopic.php?t=97 issues 12-15 and 21 - 22]
* minor changes
2009-02-06 11:15:39 +00:00
Michał W. Urbańczyk
e1d6ff54d7 * morale/luck support in battles
* minor improvements/fixes
* updated changelog
More objects supported:
 *	Faerie Ring
 *	Swan Pond
 *	Idol of Fortune
 *	Fountain of Fortune
 *	Rally Flag
 *	Oasis
 *	Temple
 *	Watering Hole
 *	Fountain of Youth
2009-02-05 09:49:45 +00:00
Michał W. Urbańczyk
218a3beaf6 * further changes towards luck/morale support
* partial support for Idol of Fortune, Fountain of Fortune, Faerie Ring, Swan Pond
2009-02-04 13:40:54 +00:00