Add GameEvents.CombatResult(iAttackingPlayer, iAttackingUnit, attackerDamage, attackerFinalDamage, attackerMaxHP, iDefendingPlayer, iDefendingUnit, defenderDamage, defenderFinalDamage, defenderMaxHP, iInterceptingPlayer, iInterceptingUnit, interceptorDamage, plotX, plotY) that is fired just before the combat is resolved.
Add GameEvents.CombatEnded() fired after the combat, with same parameters as GameEvents.CombatResult().
Add GameEvents.CanRangeStrikeAt(iPlayer, iUnit, x, y)
Balance embarked units combat by considering them DOMAIN_SEA (they were considered DOMAIN_LAND) and ignore all other bonus/penalties except a 100% bonus vs aircraft.
Add GameEvents.MustAbortAttack() with same parameters as GameEvents.CombatResult(), it's checked just before it and if false it will not resolve the planned combat. Be warned that it may have an influence on the Tactical AI, as it remove one of the planned attacking units of an objective. In R.E.D. it does so at such ratio that the unit should not have had a big impact anyway.
Add GameEvents.CombatResult(iAttackingPlayer, iAttackingUnit, attackerDamage, attackerFinalDamage, attackerMaxHP, iDefendingPlayer, iDefendingUnit, defenderDamage, defenderFinalDamage, defenderMaxHP, iInterceptingPlayer, iInterceptingUnit, interceptorDamage, plotX, plotY) that is fired just before the combat is resolved.
Add GameEvents.CombatEnded() fired after the combat, with same parameters as GameEvents.CombatResult().
Add GameEvents.CanRangeStrikeAt(iPlayer, iUnit, x, y)
Balance embarked units combat by considering them DOMAIN_SEA (they were considered DOMAIN_LAND) and ignore all other bonus/penalties except a 100% bonus vs aircraft.
Add GameEvents.MustAbortAttack() with same parameters as GameEvents.CombatResult(), it's checked just before it and if true it will not resolve the planned combat. Be warned that it may have an influence on the Tactical AI, as it remove one of the planned attacking units of an objective. In R.E.D. it does so at such ratio that the unit should not have had a big impact anyway.
Merge branch 'RED' into RED_Combat
Merge branch 'RED_Combat' of https://github.com/Gedemon/Civ5-DLL into RED_Combat
Add team:IsClosedBorder() and team:SetClosedBorder(bNewValue) to allow movement restriction to any unit on a civilization territory. R.E.D. WWII will use this to prevent entering neutral City States territory without allied level (>60 influence).
Add an option to allow re-basing of aircraft in friendly cities (need open borders for Civilizations or allied level for City-States).
Add GameEvents.CanSendDiploStatement(iPlayer) that allows to prevent AI contact to the human player using the diplo screen.
Add a hack to allow loading of WB maps with more than 255 unit types.
Add define SUPPLY_PRODMOD_PER_UNIT used to calculate production penalty modifier per unit above the supply limit (was hardcoded at 10)
Merge branch 'RED_Eco' into RED_Base
Add unit->isSpecialType(), unit->setIsSpecialType(bNewValue) to C++ and unit:IsSpecialType(), unit:SetIsSpecialType() to Lua. That allows a specific unit to stack with unit of same type (but not others "special type" units)
Allow stacking of different civs units only for air units.
Add GameEvents.PlayerEndTurnInitiated(iPlayer) which is called after end turn is pressed but before various reset functions are called (DoUnitReset, RespositionInvalidUnits, ...)and unitsGameEvents.PlayerEndTurnCompleted(iPlayer) which is called after those functions.
Fix: Allow stacking of different civs units only for air units.
Crash fix: On move thought, don't allow embarked special units to stack, and prevent AI sea units to stack with embarked units to prevent a crash occurring during auto-mission.
Fix: Truly allow stacking of different civs units only for air units.
Add GameEvents.TurnComplete (iActivePlayer)
Make Embarked units double strength against air attack an option (GAMEOPTION_DOUBLE_EMBARKED_DEFENSE_AGAINST_AIR) to set via XML, SQL or Lua.

SQL example:
INSERT INTO GameOptions (Type, Default, Visible) VALUES ( 'GAMEOPTION_DOUBLE_EMBARKED_DEFENSE_AGAINST_AIR', 1, 0 );
Crash fix: even more restriction on naval unit stacking...
Add GameEvents.PushingMissionTo(iPlayer, iUnit, x, y, iMission) and GameEvents.TacticalAILaunchUnitAttack(iPlayer, iUnit, x, y) to catch an attack just before it's launched. Used for Supporting Fire feature in R.E.D. WWII.
Merge branch 'RED_Combat' into RED_PreRelease
Merge branch 'RED_SpecialStack' into RED_PreRelease

Conflicts:
	CvGameCoreDLL/CvPlot.cpp