Bazaar developer reference

CvPlot::defenseModifier(TeamTypes, bool, bool) const

Defined in
CvPlot.cpp, line 3068
Class
CvPlot
Hook name
CivHooks::CvPlot_defenseModifier

Hooks

static bool BeforeCvPlot_defenseModifier(const CvPlot* self, TeamTypes eDefender, bool arg1, bool bHelp, int& result);static void AfterCvPlot_defenseModifier(const CvPlot* self, TeamTypes eDefender, bool arg1, bool bHelp, int& result);static int ReplaceCvPlot_defenseModifier(int (*original)(const CvPlot*, TeamTypes, bool, bool), const CvPlot* self, TeamTypes eDefender, bool arg1, bool bHelp);CivRegisterBefore<CivHooks::CvPlot_defenseModifier>(host, &BeforeCvPlot_defenseModifier);CivRegisterAfter<CivHooks::CvPlot_defenseModifier>(host, &AfterCvPlot_defenseModifier);CivRegisterReplace<CivHooks::CvPlot_defenseModifier>(host, &ReplaceCvPlot_defenseModifier);

Code

3068int CvPlot::defenseModifier(TeamTypes eDefender, bool, bool bHelp) const3069{3070	CvCity* pCity;3071	ImprovementTypes eImprovement;3072	int iModifier;30733074	CvAssertMsg(getTerrainType() != NO_TERRAIN, "TerrainType is not assigned a valid value");30753076	// Can only get Defensive Bonus from ONE thing - they don't stack30773078	// Hill (and mountain)3079	if(isHills() || isMountain())3080	{3081		iModifier = /*25*/ GC.getHILLS_EXTRA_DEFENSE();3082	}3083	// Feature3084	else if(getFeatureType() != NO_FEATURE)3085	{3086		iModifier = GC.getFeatureInfo(getFeatureType())->getDefenseModifier();3087	}3088	// Terrain3089	else3090	{3091		iModifier = GC.getTerrainInfo(getTerrainType())->getDefenseModifier();30923093		// Flat land gives defensive PENALTY3094		if(!isWater())3095		{3096			iModifier += /*-25*/ GC.getFLAT_LAND_EXTRA_DEFENSE();3097		}3098	}30993100	if(bHelp)3101	{3102		eImprovement = getRevealedImprovementType(GC.getGame().getActiveTeam());3103	}3104	else3105	{3106		eImprovement = getImprovementType();3107	}31083109	if(eImprovement != NO_IMPROVEMENT && !IsImprovementPillaged())3110	{3111		if(eDefender != NO_TEAM && (getTeam() == NO_TEAM || GET_TEAM(eDefender).isFriendlyTerritory(getTeam())))3112		{3113			CvImprovementEntry* pkImprovement = GC.getImprovementInfo(eImprovement);3114			if (pkImprovement)3115				iModifier += pkImprovement->GetDefenseModifier();3116		}3117	}31183119	if(!bHelp)3120	{3121		pCity = getPlotCity();31223123		if(pCity != NULL)3124		{3125		}3126	}31273128	return iModifier;3129}

Calls

Called by