mirror of
				https://github.com/vcmi/vcmi.git
				synced 2025-10-31 00:07:39 +02:00 
			
		
		
		
	
		
			
				
	
	
		
			55 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			55 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
| /*
 | |
|  * CPlayerBattleCallback.cpp, part of VCMI engine
 | |
|  *
 | |
|  * Authors: listed in file AUTHORS in main folder
 | |
|  *
 | |
|  * License: GNU General Public License v2.0 or later
 | |
|  * Full text of license available in license.txt file, in main folder
 | |
|  *
 | |
|  */
 | |
| #include "StdInc.h"
 | |
| #include "CPlayerBattleCallback.h"
 | |
| #include "../CStack.h"
 | |
| #include "../CGameState.h"
 | |
| 
 | |
| bool CPlayerBattleCallback::battleCanFlee() const
 | |
| {
 | |
| 	RETURN_IF_NOT_BATTLE(false);
 | |
| 	ASSERT_IF_CALLED_WITH_PLAYER
 | |
| 			return CBattleInfoEssentials::battleCanFlee(*player);
 | |
| }
 | |
| 
 | |
| TStacks CPlayerBattleCallback::battleGetStacks(EStackOwnership whose, bool onlyAlive) const
 | |
| {
 | |
| 	if(whose != MINE_AND_ENEMY)
 | |
| 	{
 | |
| 		ASSERT_IF_CALLED_WITH_PLAYER
 | |
| 	}
 | |
| 
 | |
| 	return battleGetStacksIf([=](const CStack * s){
 | |
| 		const bool ownerMatches = (whose == MINE_AND_ENEMY)
 | |
| 								|| (whose == ONLY_MINE && s->owner == player)
 | |
| 								|| (whose == ONLY_ENEMY && s->owner != player);
 | |
| 
 | |
| 		return ownerMatches && s->isValidTarget(!onlyAlive);
 | |
| 	});
 | |
| }
 | |
| 
 | |
| int CPlayerBattleCallback::battleGetSurrenderCost() const
 | |
| {
 | |
| 	RETURN_IF_NOT_BATTLE(-3)
 | |
| 			ASSERT_IF_CALLED_WITH_PLAYER
 | |
| 			return CBattleInfoCallback::battleGetSurrenderCost(*player);
 | |
| }
 | |
| 
 | |
| const CGHeroInstance * CPlayerBattleCallback::battleGetMyHero() const
 | |
| {
 | |
| 	return CBattleInfoEssentials::battleGetFightingHero(battleGetMySide());
 | |
| }
 | |
| 
 | |
| InfoAboutHero CPlayerBattleCallback::battleGetEnemyHero() const
 | |
| {
 | |
| 	return battleGetHeroInfo(!battleGetMySide());
 | |
| }
 | |
| 
 |