RevolutionDCM for BTS

What is the latest version of RevDCM, is it 2.8, or 2.72? The download link, where is it?
 
What is the latest version of RevDCM, is it 2.8, or 2.72? The download link, where is it?

As always, the download link is in the first post, which also tells you that the latest version is 2.72.

2.8 is still in the making.
 
I see some of you downloaded my merge.
I found an error which I corrected in QC, in CvSelectionGroup.cpp a ranged bombard case was missing from a switch case.
If interested, drop me a pm or check the source attached to my QC mod. (it's included in patch v7.01, it's enough to download only that one)
 
@Avian
Keldath and I continue to spell your user name incorrectly. For me Avian sounds nice and musical so I will continue to misspell your name if you do not mind :mischief:

Looks like the gods of Real Life cause and effect will offer to give me a solid slab of time somewhere in August to bring this mod up to date. If I rush them I get punished :bowdown::evil::trouble:

In the mean time thank you for keeping the changes I need to make noted down and coming here on this forum. I will get back to it even if it does not appear so right now. As I have said before, I will continue with this mod until Jdog gives Civ5 the green light of goodness.

Cheers
 
;)
I do not mind, I just might not realize you are talking to me;)

I'm just happy if I could help you in any way, glider1, happy to be of service.
Although as BetterAI and BUG are going on with corrections/features it's becoming obsolete, and I can only keep fresh my personal copy for my mod (which is a changed version of RevDCM)...
 
version 522 seems to have broken ranged bombardment. MY battleship cant range bombard the stack of barb cav a WB next to it.
 
Hi there. Great Mod!

I just wanted to inform you that the AI takeover event during empire wide revolt does not appear to work in the newest release.
 
Greetings,

I first downloaded RevolutionDCM (ver 2.61) last year as a means of incorporating inquisitions
and DCM's air bomb options into my own personal mod, and have since been impressed by the other
features of the mod. Before I get into my review, a bug (though perhaps it has been fixed in
recent versions). During a very long huge map marathon game with approx 15 or so AIs, rebel
units failed to spawn by the early industrial age. An error message saying something about an
array index out of bounds would appear, followed by elimination of the rebel civ (barbarian
rebels still spawned). Cities affected by this (all conquered cities) would pretty much be in a
permanent state of revolt, going straight into another revolution once the previous one was
quelled. I had to grant independence, and then reconquer them, which either left them safe, or
in a warning state (depending on individual circumstances).


I currently play the latest, but have not played any huge or marathon map. Thus far, I have not
seen the error. A new error has surfaced, which causes the game to hang during the AI turn. I
tracked the problem to specific units spawned by a rebel AI. I had 3 cases in my test game
during the ancient to middle ages, but nothing occured afterwards. The problem units were both
custom units I created; 2 assassins and 1 ballista. The assassin is a spy unit that can attack,
while the ballista is a siege unit with ranged attack which is effectively immobile (has 1 move
but is unable to enter any terrain or feature). Deleting these problem units or changing their
script AI in worldbuilding allowed the game to proceed normally. In all cases, changing the AI
from attack or attack city to spy, explore or reserve fixed it (I did not try all possibilites,
just enough to fix it). I must point out that many assassin and ballista units were spawned by
rebels, but only those 3 were troublesome.


Now for my review. RevolutionDCM is an excellent mod that adds so much to game play. The core
revolution is particularly interesting because I have always found domination and conquest to be
too easy; the worst that could happen was a revolt in a newly conquered city causing it to flip
(rare for me with a large garrison and focus on culture in newly conquered cities), or a loss of
city defenses making it more difficult to defend. Revolutions add a whole new meaning to
widespread expansion and military conquest, making the game more realistic. Also, I like the
added emphasis on happiness and healthiness. In vaninlla, letting a city slide into unhappiness
or unhealthiness is just a relatively minor annoyance. With revolutions, even the capital and
nearby cities can go into revolt. Something as simple as moving garrisoned units out to be
upgraded or getting a poisoned water supply can lead to a revolt.
However, there are some features of the mod which I do not like. According to the mod, with my
playstyle, I am nearly always in financial trouble. I try to keep my gold per turn close to 0,
focusing on research as much as possible. I consider getting less than 10 gold per turn in any
era, or even a small amount of gold loss per turn to be perfectly acceptable. This irritated me
so much that I edited the code.

if( iGoldRate > 0 and not pPlayer.isMinorCiv() and not pPlayer.isAnarchy() ) :
# Great long-term financial situation
finIdx = 2
if( bIsRevWatch ) :
posList.append( (finIdx,

localText.getText("TXT_KEY_REV_WATCH_FINANCIAL_POS",())) )
if( self.LOG_DEBUG and (bVerbose or iGameTurn%25 == 0) ) :

CvUtil.pyPrint(" Revolt - The %s is in a good long-term financial situation")

elif( iGoldRate < 1 ) :
iPercentShort = iThresholdPercent - iFundedPercent


if( iGold > iGoldRate*-10 ) :
# Civ has enough reserves to last several more turns
finIdx = 1
elif( iGold > iGoldRate*-5 ) :
# Civ has enough reserves to last a few more turns
finIdx = -1
elif( iGold < iGoldRate*-5 ) :
# Civ in danger of running out of gold soon
finIdx = -5
if( self.LOG_DEBUG and (bVerbose or iGameTurn%25 == 0) ) :

CvUtil.pyPrint(" Revolt - The %s is in serious financial trouble")
elif( iGold <= 0 and iGoldRate < 0 ) :
# Civ is bankrupt, units on strike
finIdx = -10
if( self.LOG_DEBUG and (bVerbose or iGameTurn%25 == 0) ) :

CvUtil.pyPrint(" Revolt - The %s is in serious financial trouble")



I think the original code tries to account for far too many things, when how to choose to set
your commerce sliders is irrevelent. I also think that the state of war, relations, era, etc are
irrevelent. The only thing that matters is whether or not your can support your current setup
without going bankrupt and suffering strikes. To explain my code: if your gold rate is positive,
you are in good financial situation (but this will never be more than a minor bonus). If your
gold rate is negative but you have enough gold reserves to not go bankrupt in at least 10 turns,
you have neutral finances (this ends up with no bonus or penalty to revolution). If you have
enough gold to last between 5-9 turns, you get a slight revolution penalty. Less than 5 turns
and you have a moderate revolution penalty. If you manage to get your units on strike, you have
a serious revolution penalty. A special note to anyone who tries to use this code; a copy paste
of the whole block will not work, you have to go line by line (not sure why, probably something
to do with white space or tabs).


My second problem with revolutions is about which units the rebels spawn. It frustrates me when
the rebels get cutting edge technology to attack my cities when I just recently discovered the
tech for new units, but have either not built any, or only built 1 or 2. I have been looking
over the code for this trying to change it, but it is very complicated and difficult to read.
From my understanding, it searches the nearly area for the most powerful unit types and spawns
those, while also spawning some obsolete units if some are owned by the player. From my
experience of the most recent game, garrisoning revolution cities with longbowmen (despite being
able to build riflemen) causes the rebels to get some riflemen and some longbowmen. Later in the
modern era, I had a stack of 15+ cavalry stationed just outside of the revolution area, and the
rebels were getting some infantry, artillery, and cavalry; they were very easy to kill after
being range attacked by my artillery. Which brings me to another point; with the invention of
flight, rebels are trivial to defeat because they cannot counter air bombings (or naval bombings
for that matter, but that only applies to coastal areas). It seems the rebels would only have
any chance of fending off air attack if nearly cities have SAM type units. The bottom line is
that I find rebels to be too powerful during the ancient to modern tech race (due to getting
access to cutting edge units), and I find rebels to be too weak post flight.


I think rebel units should be more restricted in terms of tech level, resource requirements and
building requirements (most good units in my mod require special buildings to build), but should
have more options in the late game. If I can figure out how to code it (I am not very skilled at
programming by the way) I would set rebel units to spawn from a fixed list with the percent
chance for each unit varying by the player's tech level, and allowing units to spawn which the
player does not have. For example, axemen would be unlikely to spawn because they require a
resource. Increased tech level (say to iron working) would increase the liklihood of axemen
spawning. Similarly, longbowmen (which require a military encampment in my mod) would be
unlikely to spawn until crossbowmen, knights and muskets are available. As the tech level
progresses, obsolete units would be less likely to spawn. For example, if the player has
longbowmen, rebels get a high chance of archers. If the player has muskets, rebels havea lower
chance of archers. If the player has infantry, rebels would be very unlikely to have archers.
The intent here is to have most rebel units be slightly obsolete, with some older obsolete and
some cutting edge.


Further on this concept as it relates to my mod, certain special units should be more like to
spawn as rebels than regular units. For example, I have a line of land hidden nationality always
hostile terrorist type units that are slightly weaker then comparable regular units. I also have
a militia unit (slighter better than riflemen), which is the best unit you can get from
conscription and the only modern era unit you can build without special buildings. Both of these
would make excellent rebel units, whereas other units (like the ballista) not so much. The
beauty of the current code is that it works with custom units. I think code to do what I would
like would have to be mod specific and probably longer and more complicated. Any help coding
this would be much appreciated.


Another issue is the xp of rebel units. According to the code, units get a random amount of xp.
Early on, I find some rebel units have higher levels than my units, which only exascerbates the
difficulty of revolutions. Later in the game, with great generals and such, my military city can
produce units with vastly superiour xp than rebel units, which make revolution in the modern era
even more easy. It does not look like it in the code, but does the code take into account xp
bonus from civics, buildings, etc? It would be interesting (and more balanced in my opinion) if
rebels could have xp levels anywhere from 0 to the max the player can produce, or even up to the
xp level of local units.


Lastly, I think the spawning of great generals and settlers for rebels is overpowered. On one of
my first revolution games (on ver 2.61), I built a city near the border of a rival (we were at
war since I was using start as minor civ). Soon after, every several turns that AI was getting a
free settler; at no penalty and faster than they could normally be built. I could not stop their
settlers from getting away and founding cities without cheating (which I did, and soon edited the
code). Free settlers may be fine for a rebel civ, but it is overpowered for an established civ.
I also think free great generals are overpowered. While it may be fine for a rebel civ to have
warlords, an established civ could simply farm and settle great generals for a ridiculous
advantage. I tried making a warlord unit (which was a great general that could only join as a
warlord) for my mod, but it would randomly be created instead of a great general (this was prior
to first trying revolutiondcm). I think something like that would be a fair idea, if the latter
problem were fixed.


In conclusion, this is a wonderful mod that I honestly would not wish to play without, despite
the aspects which irritate me. Though in my quest for a better personal mod, I hope to fix those
issues.
 
Range bombardment fix:
in CvSelectionGroup.cpp, the current lines are
Code:
                             case MISSION_BOMBARD:
						if (pLoopUnit->bombard())
						{
							bAction = true;
						}
						break;

					case MISSION_RANGE_ATTACK:
/************************************************************************************************/
/* DCM                                     04/19/09                                Johny Smith  */
/************************************************************************************************/
						// Dale - RB: Field Bombard START
						if(GC.getDCM_RANGE_BOMBARD() || GC.getDefineINT("DCM_NAVAL_BOMBARD"))
						{
							if (pLoopUnit->bombardRanged(headMissionQueueNode()->m_data.iData1, headMissionQueueNode()->m_data.iData2))
							{
								bAction = true;
							}
						}
/************************************************************************************************/
/* DCM                                     END                                                  */
/************************************************************************************************/
						if (pLoopUnit->rangeStrike(headMissionQueueNode()->m_data.iData1, headMissionQueueNode()->m_data.iData2))
						{
							bAction = true;
						}
						break;
should be:
Code:
                               case MISSION_BOMBARD:
						if (pLoopUnit->bombard())
						{
							bAction = true;
						}
						break;

					case MISSION_RBOMBARD:
/************************************************************************************************/
/* DCM                                     04/19/09                                Johny Smith  */
/************************************************************************************************/
						// Dale - RB: Field Bombard START
						if(GC.getDCM_RANGE_BOMBARD() || GC.getDefineINT("DCM_NAVAL_BOMBARD"))
						{
							if (pLoopUnit->bombardRanged(headMissionQueueNode()->m_data.iData1, headMissionQueueNode()->m_data.iData2))
							{
								bAction = true;
							}
						}
/************************************************************************************************/
/* DCM                                     END                                                  */
/************************************************************************************************/
						break;
					case MISSION_RANGE_ATTACK:
						if (pLoopUnit->rangeStrike(headMissionQueueNode()->m_data.iData1, headMissionQueueNode()->m_data.iData2))
						{
							bAction = true;
						}
						break;
 
Is this a new bug? :confused: I haven't got this bug in CCV (2.722) as it seems. Or should I have noticed this one when merging?
 
Hi there good people
Great news. August looks clearer for some development work. Even better is that Afforess has volunteered to help with RevDCM development!!! That is excellent news considering that Afforess does computer science and really knows his stuff while most everyone else in RevDCM has dropped out except Jdog who is in the middle of moving house.

I too am in the middle of moving house but it soon should get sorted. Just have to whipper snipper and mow half an acre of grass so that we can find the entrance. Then just have to remove the current occupants and move in. There is a snake skin hanging from a rafter where the animal has shed it's skin and lived for unknown period of time. No human has lived in the house for two years. Set up chair and table plug in PC and wireless connection and should be good to go.

I said that I would try to get out a comprehensive release of RevDCM with six weeks to go before Civ5. We are now at 52/7 = 7.5 weeks and so already this arbitrary dead line is threatened. Anyway, something should start happening and if we are lucky, Jdog might make a last minute appearance to add some Revolutions touches if needed.

Big thanks to all who have kept posting on this forum. I will read through in detail. Thanks Admiral Armada for that range bombardment post as well.

Cheers
 
oh great to hear from you glider,

sounds like your moving into a real piece of heaven, hope its not a taipan snakes skin...i learned (yesterday on natinal geo') that its the most venomus snake in the world, and its native to Australia..
that was a fun fact.

g'luck with the move , hope things go smooth for ya.

afforess in revdcm is more then perfect, hes one of the more skilled modders ever to be on fanatics, yey!
maybe he can add some of his very game enhancing mods.

counting the days to civ5 and revdcm 2.8.

cheers.
 
I was wondering if I can just drop the updated 2.722 RevDCM into 2.92 as it's running 2.721 atm.

Is this possible or has it been tweaked to work better with ROM?

I do appologise if this is in the wrong place :blush:
 
Back
Top Bottom