how exactly do siege weapons work in C2C

arthas125

Chieftain
Joined
Nov 4, 2011
Messages
41
as the tittle says, i recently updated the mod after years of not playing it and as i tried to use siege weapons such as the Lithobos (earliest catapult you can get) i noticed them working differently than in vanilla or every other BTS mod

lets say i have a stack of 10 catapults against some 20ish units from the enemy, in the vanilla game, i would attack with one of the catapults, either win or lose the engagement (or retreat if that's a possibility promotion wise) and said catapult would inflict colateral damage and have a chance of damaging the unit it was attacking if it lost or retreated, then after this i could pick the rest of my 9 catapults and attack the stack again, the best defender unit in said stack would come to meet my catapult if it previous defender was too damaged to act, another round of combat, some more collateral damage, and the aftermath, regardless of what it was, you could just keep doing the same process and assuming you had enough siege units, most of the stack would be too weak to fight against the last catapults so they would almost always win, retreat, and inflict collateral damage, wich is the main reason why the stack is so weakened in the first place, i renember the damage cap for siege weapons was added in one of the original game expansions for this exact reason, so units had at least a chance to act instead of being outright killed by the catapults after their colateral damage weakened them, still, with this system assuming you had enough siege you could win any engagement as im sure you are all very familiar with how the usual civ 4 combat goes

now lets say i have the same scenario as above in C2C, after i attack with my first catapult and win, i cannot attack the same stack again with ANY siege weapon, and by not being able to attack i mean that im not able to engage in the usual battle that would take place as it normally would in the vanilla game if i tell another siege unit to attack the enemy stack, instead, the only option i have to inflicting further collateral damage after the first round of combat is by Ranged Bombardment, because the game will not let me engage the stack with another siege weapon.

being able to attack from range makes a lot more sence for this kind of unit ,however, i didn't saw any change or significant information that told me this was the case in the game and that they now work diferently from the original game, asides from the Ranged damage promotions units now get, you would assume that you could still cause collateral damage the old way by actually engaging your siege units in normal combat, but you really can't, at least not from what i've seen so far, basically it seems to work more like in civ 3/5 where siege units can attack from a distance without engaging in direct combat with the enemy, i do like this approach a bit better than the original, however when you think about it the end result is the same, the more siege units you have the better you are, but with them being able to inflict damage from a distance without the risk of dying, its obviously much better in the end for their survivavility, also scales better in favor of the siege weapons by the endgame when you can amass a lot more of them, and from what i've seen from their promotions, wich get better as their units develop, also makes these units much more effective at said ranged bombardment

what i wanna know basically is if the above behavior is intended and if there is any way to go back to the original if possible
 
as the tittle says, i recently updated the mod after years of not playing it and as i tried to use siege weapons such as the Lithobos (earliest catapult you can get) i noticed them working differently than in vanilla or every other BTS mod

lets say i have a stack of 10 catapults against some 20ish units from the enemy, in the vanilla game, i would attack with one of the catapults, either win or lose the engagement (or retreat if that's a possibility promotion wise) and said catapult would inflict colateral damage and have a chance of damaging the unit it was attacking if it lost or retreated, then after this i could pick the rest of my 9 catapults and attack the stack again, the best defender unit in said stack would come to meet my catapult if it previous defender was too damaged to act, another round of combat, some more collateral damage, and the aftermath, regardless of what it was, you could just keep doing the same process and assuming you had enough siege units, most of the stack would be too weak to fight against the last catapults so they would almost always win, retreat, and inflict collateral damage, wich is the main reason why the stack is so weakened in the first place, i renember the damage cap for siege weapons was added in one of the original game expansions for this exact reason, so units had at least a chance to act instead of being outright killed by the catapults after their colateral damage weakened them, still, with this system assuming you had enough siege you could win any engagement as im sure you are all very familiar with how the usual civ 4 combat goes

now lets say i have the same scenario as above in C2C, after i attack with my first catapult and win, i cannot attack the same stack again with ANY siege weapon, and by not being able to attack i mean that im not able to engage in the usual battle that would take place as it normally would in the vanilla game if i tell another siege unit to attack the enemy stack, instead, the only option i have to inflicting further collateral damage after the first round of combat is by Ranged Bombardment, because the game will not let me engage the stack with another siege weapon.

being able to attack from range makes a lot more sence for this kind of unit ,however, i didn't saw any change or significant information that told me this was the case in the game and that they now work diferently from the original game, asides from the Ranged damage promotions units now get, you would assume that you could still cause collateral damage the old way by actually engaging your siege units in normal combat, but you really can't, at least not from what i've seen so far, basically it seems to work more like in civ 3/5 where siege units can attack from a distance without engaging in direct combat with the enemy, i do like this approach a bit better than the original, however when you think about it the end result is the same, the more siege units you have the better you are, but with them being able to inflict damage from a distance without the risk of dying, its obviously much better in the end for their survivavility, also scales better in favor of the siege weapons by the endgame when you can amass a lot more of them, and from what i've seen from their promotions, wich get better as their units develop, also makes these units much more effective at said ranged bombardment

what i wanna know basically is if the above behavior is intended and if there is any way to go back to the original if possible
The description of your experience suggests there may be a calculation bug in the amount of damage being dealt by collateral and to how many units it's being applied. That or it's a matter of the same defender coming up again and therefore denying the ability to continue pressing with further attacks because the damage limit to that defender has been reached. If it's not recalculating the best defender each time that could be a bug that could cause this as well. I know both areas were manipulated a bit recently by a modder looking to improve the efficiency and simplicity of the code so it's possible a bug was introduced. It's supposed to still work basically as you explained so I'd have to evaluate what's taking place in the game. Obviously, yes the ranged bombardment is not only another option but often a good one because it's not risking the unit to do it. It probably isn't quite as aggressive at dishing out damage though so it may not be the most ideal in all situations over a move in to engage with the attacking siege weapon.

I'm curious to see what's taking place here at some point soon.

Few questions:
1) Are you on the latest SVN assets or a release version?
2) IF you are, can you upload a save with instructions on how to replicate that shows what you're talking about?
 
The description of your experience suggests there may be a calculation bug in the amount of damage being dealt by collateral and to how many units it's being applied. That or it's a matter of the same defender coming up again and therefore denying the ability to continue pressing with further attacks because the damage limit to that defender has been reached. If it's not recalculating the best defender each time that could be a bug that could cause this as well. I know both areas were manipulated a bit recently by a modder looking to improve the efficiency and simplicity of the code so it's possible a bug was introduced. It's supposed to still work basically as you explained so I'd have to evaluate what's taking place in the game. Obviously, yes the ranged bombardment is not only another option but often a good one because it's not risking the unit to do it. It probably isn't quite as aggressive at dishing out damage though so it may not be the most ideal in all situations over a move in to engage with the attacking siege weapon.

I'm curious to see what's taking place here at some point soon.

Few questions:
1) Are you on the latest SVN assets or a release version?
2) IF you are, can you upload a save with instructions on how to replicate that shows what you're talking about?

the same defender coming up everytime is exactly what's happening for some reason, the collateral damage is dealt fine by the first catapult, but after, im basically stuck trying to attack that one unit that JUST defended the stack and none of my other catapults will attack any other defender in that stack because they won't cycle throught their other units, only the one that has reached the damage cap (and therefore, can't be attacked any further) will be targeted, visually you can see another unit in the stack defending it, but the catapults keep targeting the damaged one and therefore can't continue their attack

im using the lastest SVN version, and all i did to replicate the problem was just open the world editor in a new game and put some siege units against any other unit and i encountered this, that's why i was asking if the siege system was changed, because i renember encountering this in a previous version of the SVN aswell (before v38 or 37 i believe) and since it still working the same way in my game i thought this was intended

i just started a new game and haven't got far enough to see if the AI is affected by this aswell , also i haven't played a build that's not the SVN one after i first downloaded it a few years back, so maybe it could be a problem on my end? like a corrupt file or so, i'll download the fresh v40.1 and tests if siege weapons still behave the same way aswell

i should also point out that i have the debug menu activated, and i did some further testing, and attacking cities seems to work fine, like my siege weapons won't get stuck attacking the same defender, but stack of units in the open will get them stuck eventually and not let me continue a direct attack on them and instead leave me with ranged bombardment as the only way to damage them further with said siege weapons
 
Last edited:
If it's not recalculating the best defender each time that could be a bug that could cause this as well. I know both areas were manipulated a bit recently by a modder looking to improve the efficiency and simplicity of the code so it's possible a bug was introduced.
Nobody touched the code the picks that defender. You were wrong about think that, I broke a tag when I removed building class. 0 strength units need to be the defender to get captured.
You guys have no clue what I've changed and havn't changed... I can tell people just read the github feed and think every commit message from me goes to mod. Everything that goes to mod gets a blue message, if there is no blue message then the commit was to my branch and I like to close them sometimes. Closing pull requests actually became a way to keep modding and see what other modders think, without having to deal with this stuff.
I lost my freind billw, but don't forget Alberts2 is still around. He has found mistakes from me and he likes to point out when my ideas are bad. To find the mistake I made that he found, he must have looked close at everything I did.
 
Nobody touched the code the picks that defender. You were wrong about think that, I broke a tag when I removed building class. 0 strength units need to be the defender to get captured.
You guys have no clue what I've changed and havn't changed... I can tell people just read the github feed and think every commit message from me goes to mod. Everything that goes to mod gets a blue message, if there is no blue message then the commit was to my branch and I like to close them sometimes. Closing pull requests actually became a way to keep modding and see what other modders think, without having to deal with this stuff.
I lost my freind billw, but don't forget Alberts2 is still around. He has found mistakes from me and he likes to point out when my ideas are bad. To find the mistake I made that he found, he must have looked close at everything I did.
Well I wasn't blaming you. Bill was working on some things there a while ago. It had to have been changed recently (and by recently I mean since v38's initial release) otherwise the bug wouldn't exist because the last time I checked it it didn't.

Maybe you'd be willing to further investigate the problem and sort it out though? My problem in following what you do is half the time I don't understand the rationale in it in the first place but I don't get into data management matters in programming as much as processing logic on game rules. What I mean is I have little to no interest in trying to just improve the program for the sake of improving the program. My focus is on the game itself. I do worry with some of the things I see you doing but I'd rarely know if it was a good idea or not because I'm not trying to be a computer scientist here.

I simply have to assume that if you think its a good idea, hopefully one of the more senior programmer types like Bill or Alberts2 will care to take a look at it and know one way or the other because I usually have no idea what you're trying to achieve.
 
0 strength units need to be the defender to get captured
This is false by the way and it's a problem that the code currently assumes this because it sends them through the normal capture system and it's really not supposed to. I mean, it WAS something that was being considered as a way to make it only possible to capture one such unit at a time but right now we have the worst of both worlds. In CvUnit::setXY there was a mechanism to capture any hostile player 0 str units on the tile that your combat unit just moved into - it was never originally supposed to initiate a combat with a 0 str unit. Because it does, the 0 str unit is potentially going through the 'capture' system reserved for units that were in battle, which is a different mechanism rather than the automatic capturing that the 0 str unit is supposed to experience.

You can review the firaxis design on that - we hadn't changed it until recently and I would've thought that was Bill's doing but I don't know who did it for sure and it doesn't really matter. I left plenty of bugs for others to fix myself so we're all human. But I'm pointing out that as it currently stands, it's still a bit buggy for various reasons, targeting issues being one of them.

This isn't the problem he's having though. This isn't about a bad unit being selected for best defender, it's about the game not releasing the selection - I suspect it's a caching issue, as in caching of the best defender is too stiff and not recalculating after a battle took place. That might open up a LOT of turn delay again that we haven't had previously but it is leading to incorrect gameplay issues so I'm not sure what we can do exactly - perhaps there's a better way still to be found here somehow.
 
Maybe you'd be willing to further investigate the problem and sort it out though?
I wouldn't mess with the way stuff like that functions. I might switch the for loops or do something where I add code that works the same but that's it. Billw was supposed to do the difficult/important stuff while I did less important stuff on his to-do list. I'm not gonna try to fill his shoes.
 
I wouldn't mess with the way stuff like that functions. I might switch the for loops or do something where I add code that works the same but that's it. Billw was supposed to do the difficult/important stuff while I did less important stuff on his to-do list. I'm not gonna try to fill his shoes.
Well, it falls to me then but I kinda figured it would. I'll have to address that soon.
 
I haven't seen anyone else say that this is broken. I don't know how it supposed to be.
There's 130 issues + more bugs that are not recorded. I'd rather pick something that I know I can fix.
 
I haven't seen anyone else say that this is broken. I don't know how it supposed to be.
There's 130 issues + more bugs that are not recorded. I'd rather pick something that I know I can fix.
That's cool... I'm not complaining really. I'll look into it as soon as I can.
 
i tested this on a fresh download of the lastest stable non SVN version (40.1) and still encountering the same issue, really weird, thankfully its not gamebreaking thanks to the fact that ranged bombarment still works fine so im still able to use these weapons, the only thing im using is the debug menu, i have messed with nothing else in the game instalation nor in the mod files
 
i tested this on a fresh download of the lastest stable non SVN version (40.1) and still encountering the same issue, really weird, thankfully its not gamebreaking thanks to the fact that ranged bombarment still works fine so im still able to use these weapons, the only thing im using is the debug menu, i have messed with nothing else in the game instalation nor in the mod files
hmm... please upload the test save with instructions on how to replicate so we can see if it's still taking place on the latest assets and evaluate what's actually happening in the code. Thanks in advance for finding the problem.
 
hmm... please upload the test save with instructions on how to replicate so we can see if it's still taking place on the latest assets and evaluate what's actually happening in the code. Thanks in advance for finding the problem.

well as i said before, all i did before was just start a new quick game and add some units via the world editor/debug menu to tests if the siege weapons behave this way and that was it, nothing else

that's what i did for this save, i also leaved two stacks of lithobos, one attacking a city and another an enemy stack in the open to test, as you'll see, in each of my stacks, one of the lithobos has already attacked upon each of their adyacent enemy stacks, in my game, i CANNOT attack any further with any of the lithobos in any of the two stacks, im stuck, just as i stated in my previous posts, the only way to cause further collateral damage here is by using ranged bombardment

save is playing on the SVN version 11176
 

Attachments

  • tests.CivBeyondSwordSave
    1,002.5 KB · Views: 109
well as i said before, all i did before was just start a new quick game and add some units via the world editor/debug menu to tests if the siege weapons behave this way and that was it, nothing else

that's what i did for this save, i also leaved two stacks of lithobos, one attacking a city and another an enemy stack in the open to test, as you'll see, in each of my stacks, one of the lithobos has already attacked upon each of their adyacent enemy stacks, in my game, i CANNOT attack any further with any of the lithobos in any of the two stacks, im stuck, just as i stated in my previous posts, the only way to cause further collateral damage here is by using ranged bombardment

save is playing on the SVN version 11176
Upload your user settings too, since some stuff can change it.
 
Top Bottom