here's a few questions:
1) inside of CombatTools.bsf there are a number of functions referenced that must be in some other file, so far I haven't found the definitions for:
do you know where these (and presumably other functions that are used in CombatTools but not defined there) are defined? Do bsf files have some standard reference syntax somewhere?
2) Inside of GetImpactPOA() in CombatTools.BSF, under the Pike section
there are some percent disordered variables near line 4419 like so:
Code: Select all
percent_disordered = Min(PercentDisordered(me, enemy, charging), 100);
percent_severely_disordered = Max(PercentDisordered(me, enemy, charging) - 100, 0);
and the referenced PercentDisordered() function is on line 646 and appears to return whichever disordered state is worse, your terrain or the enemy's terrain if you attacked them, or disorder from elephant proximity
What does it mean to have a percent of disorder? I thought those were discrete values? or are they on a gradient under the hood?
Also, what do GetUnitX() and GetUnitY() do? just get a reference to a unit? it looks like 'me' and 'enemy' can have both an X and Y?
2b) If I wanted to get rid of the pike ranks deep effect in here I could just test for terrain disorder and morale disruption and get rid of references to (percent_12ranks > 0) and (percent_16ranks > 0)? Or I guess I could just comment out the lines like:
increment *= percent_12ranks;
which seem to be responsible for scaling down POAs based on losses
It also checks if enemy = -1, where enemy is a parameter passed into GetImpactPOA(). What does it mean for enemy to be -1? Like if this is being called on yours or an enemy unit? If the enemy unit exists?
It seems to do something similar either way but just print something different?
There's also a check for if percent > 0 where:
percent = GetAttrib(me,"Pike");
what is that percent? percent men remaining or lost? Oh wait I think that's actually the Squads.csv value for percent? As in if a unit is 100% pikes or not?
3) what is all the print stuff all over the place? like, for example:
Code: Select all
PrintStringIndexedX(1, test, "IDS_CAPABILITY", 11);
PrintStringLiteralX(1, test, " +");
PrintIntX(1, test, increment);
any_printed = 1;
4) in the offensive spearmen section of impact poa we see this:
Code: Select all
// Only get POA if not FRAGMENTED or Severely Disordered
if (GetAttrib(me,"MoraleState") < 2) // If not FRAGMENTED
{
increment = 100;
multiplier = Max(0, percent - percent_severely_disordered);
increment *= multiplier;
increment /= 100;
}
so it looks like if (GetAttrib(me,"MoraleState") < 2) checks that the unit is not fragmented(2 = fragmented and 1=disrupted and 0=steady it seems)
But where is severely disordered checked? in this line:
Code: Select all
multiplier = Max(0, percent - percent_severely_disordered);
?
Percent should be 100 if it's a normal 100% offensive spear unit I guess, but what sort of values do you get from percent_severely_disordered? because it seems like it should just be discrete values corresponding to slightly, moderately or severely disordered like how morale is 0,1, or 2, but instead it's a percent? what percent range corresponds to slight, moderate, and severe disorder?
Also based on this offensive spear section it looks like (enemy == -1) means that the enemy is charging you? Because for offensive spears if enemy ==-1 then the offensive spears get their normal 100 POA (scaled for disorder and negated for fragmentation) but otherwise they only get their POA if the enemy is not a mounted shocktroop. But then there are also calls to if(charging == 1) so I dunno.
5) in sections like the below for offensive spearmen:
Code: Select all
if (IsMounted(enemy) == 1)
{
if ((IsShockTroops(enemy) == 1) && (charging == 1))
{
increment = 0;
}
}
the POA is cancelled if charging a certain unit type (in this case IsShockTroops and IsMounted, so basically lancers and I think heavy chariots), that is increment is set to 0, and increment is what's added to POA
I think I would like to do something like that to negate POAs on both sides for Pikes in order to make early disruptions unlikely, but also to prevent pikes from inflicting much damage either. Any ideas for what those values should be and against who? Like should impact foot and pikes cancel each other's POAs?
And on that point, is there a difference between both sides having +200 POA on impact and both sides having +0 POA on impact? Is the disparity and thus the result the same?
sorry this response is already over long so I'll wrap it up even though I have more questions