Can we increase range of Machine gun by 1?

Yes, I'd be interested in a mod that changes all ranged units to 2. I'm not sure how to mod it myself so that I can 'turn it on' or 'leave it off'. A mod in Additional Content would seem to be the best way to accomplish that (if I knew how to do it myself).

_ALL_ ranged units? Even Ships and Bombard units? I mean, it's not hard to make, wouldn't take too long either, but... why all? And is that range of 2 strict? i.e. no bonus from the balloon or anything else?
 
I simply changed the range of machine guns from 1 to 2. Simple and it worked fine. Same as a cannon but stronger.

I'm sure it is simple... if you know what you're doing. Which I don't.

_ALL_ ranged units? Even Ships and Bombard units? I mean, it's not hard to make, wouldn't take too long either, but... why all? And is that range of 2 strict? i.e. no bonus from the balloon or anything else?

Aren't most ranged units already set to 2? This is why I need help with modding... I'm afraid my ignorance will screw up the game. I just want to balance the units (not overpower them or mess up existing mechanics).
 
Max Effective/Lethal Ranges
M60 Machine Gun - 1200 meters
50 Caliber MG - 1800-2300 meters
M240 SAW (Squad Antipersonell Weapon) - 1100-1800 meters

M16 Rifle - 984 meters
AK47 - 350 meters
.306 - 800-1000 meters (varies by manufacturer)

M252 Mortar - 4500-5600 meters

Sniper rifles are a different category and not widespread use, so I didn't include them (but they can range from 1100 to 2000 meters).

So no, Machine guns do not, and rarely ever, have had shorter distances than rifles.

As for implementation in CiVI... Maybe try giving machine guns a range of 2 and mortars a range of 3? If that seems too powerful for the game, then stick with 1 and 2.

Taken from various sources, for what I couldn't remember (I've fired all of those weapons when I was in the Marines), and there is a distinct difference between Maximum Range and Effective Range.
Agreed.
It would be cool if the machine gun had a range of 2 but was a lot more powerful if firing at range 1. Also, as they are usually used to support and suppress, they could have a "zone of control" extending 2 tiles in each direction that reduces all enemy movement by one.

To make sure it's not too OP, make it pretty weak when it's firing at its maximum range (2 tiles). It would also make sense if it had less movement than infantry, although I'm not sure how'd this go in actual gameplay.
 
I'm sure it is simple... if you know what you're doing. Which I don't.
Aren't most ranged units already set to 2? This is why I need help with modding... I'm afraid my ignorance will screw up the game. I just want to balance the units (not overpower them or mess up existing mechanics).

No, Slingers are Range 1 for example. Don't be afraid to screw up your game, you won't learn if you don't have to reinstall at least once! :D

Seriously, don't fret it... If you're going to make a mod, make simple ones first. Ones that aren't huge changes, but ones you like. Hell all my mods are exactly that! :D

If you're not a programmer then stick to xml files to start, then move to sql when you get comfortable with that.

First step though? Download every single mod you can and look at each and every one of them! Focus on getting your .modinfo files done correctly (those are still xml)... there's a log of moving parts that CAN be in the .modinfo file, but most aren't needed for simple mods. :)
 
Agreed.
It would be cool if the machine gun had a range of 2 but was a lot more powerful if firing at range 1. Also, as they are usually used to support and suppress, they could have a "zone of control" extending 2 tiles in each direction that reduces all enemy movement by one.

To make sure it's not too OP, make it pretty weak when it's firing at its maximum range (2 tiles). It would also make sense if it had less movement than infantry, although I'm not sure how'd this go in actual gameplay.

Actually... Keeping it a range of 1 and giving it a ZoC = 2 might be a damned good way to balance that out. Or, you could ZoC=2 and Range =2, but drop the damage it does by 5 (or 10) period, and drop movement to the same as infantry.

*ponder* hell I might just add that into one of my mods and test it out... that sounds like it might be fairly well balanced there. :D
 
Actually... Keeping it a range of 1 and giving it a ZoC = 2 might be a damned good way to balance that out. Or, you could ZoC=2 and Range =2, but drop the damage it does by 5 (or 10) period, and drop movement to the same as infantry.

*ponder* hell I might just add that into one of my mods and test it out... that sounds like it might be fairly well balanced there. :D
Nice! ZoC =2 and range=2 with lower damage period sounds great to me. I'd happily test your mod. I'd try making this mod myself but don't have the skills.
 
ZoC - maybe and it probably would. :D

Hmmm... that's a pretty hefty Def Bonus, but then again, it can always be changed if it's too powerful.

I didn't think of that for the AT, but I can see it.

There's a mod out there already that's changing up the upgrade paths of units that actually makes sense.. Can't recall the name at the moment, but it's on here... I think I glossed over it because it was doing something more than that... Adding units to fill gaps maybe? Can't recall where I may have seen that before. Any ideas about that Olleus? *grin*

Anyways, I've had that pesky RL crop up today, so I haven't done too much to play around with this... yet. ;)
 
Yes, I'd be interested in a mod that changes all ranged units to 2. I'm not sure how to mod it myself so that I can 'turn it on' or 'leave it off'. A mod in Additional Content would seem to be the best way to accomplish that (if I knew how to do it myself).

Thats interesting, I'm interested in a mod that makes all non indirect fire support
(Arty and Naval Guns) ranged units range 1.

I think it would do heaps more for game balance with regard to range vs melee.
 
This below makes FAR better sense in my opinion. I like a ranged mid to late game unit. Both ideas sound good and I agree the values seem a bit OP for now but would be fun to test them.

Changing the ZoC radius probably can't be done easily at the moment, and would probably completely mess up the already bad AI path finding.

I was thinking replace the current machine gun by a range 2 mortar and add the machine gun back in as a support unit. Gives +15 combat strength when defending vs infantry type units to all adjacent units, and on top gives a +15 attack vs infantry to the unit it's attached to. Allow the defensive effect to stack.

I would probably also turn AT units into supports with the same stats but vs tanks, but that would involve bigger changes (have pikes upgrade to infantry->mech and have a new line for melee units like musket->marine->something else).
 
Just as an FYI, if you use the REQUIREMENT_PLOT_ADJACENT_TO_OWNER_AT_WAR requirement you can set the range of the requirement to whatever you want, so you could easily create a modifier that is attached to hostile units within 2 range of your Machine Guns. It wouldn't be hard to do.

As an example (I haven't tested this to see if negative number work, but this theoretically works) you could use MODIFIER_UNIT_ADJUST_COMBAT_STRENGTH to reduce all hostile units' defensive and/or offensive strength by -5 or something similar when within two range of a Machine Gun. With some further tweaking you should be able to specify what unit class it applies to as well, if you wanted to specify that.

As another example you could use EFFECT_ADJUST_UNIT_MOVEMENT to reduce unit movement within that same radius. This would have a somewhat different effect from ZOC (AFAIK the origination point and range of ZOC effects are hardcoded), but would similarly reduce unit mobility. For lower movement units it would probably "pin" them, which might be fun vs a human but way overpowered vs an AI.

I think you could also reduce unit healing rates (again, assuming negative numbers are allowed).
 
When I made this change in teh Units.xml file it changed the range to 2 as shown in the building list when you want to build a new machine gun, but the description for my already existing machine gun units (out in the field) still shows a range of 1.

Any idea why?
 
IIRC: unit attributes are fixed when you build them, the game doesn't fish them out form the unit type it is every time.

So the solution is to delete your units and build new ones. Or start a new game. Generally changing what a mod does mid-game causes more headaches than it's worth.

You're right. I only had to load a save game about 8-turns earlier when I paid gold to upgrade all my Minutemen to Machine Guns, this time with the Units.xml file already changed to Range = "2" when I upgraded and they all ended up with a range of 2.
 
This is my first time seeing this thread.

My "Combined Tweaks" mod does have a kind-of enlarged large Zone of Control ability. Pike units (anti-calvary) receive an ability that reduces by 1 the movement of any Calvary unit within 2 tiles.

There are some caveats associated with this:
  • I used a method similar to the Indian Varu unit. Basically it broadcasts a debuff over every unit on the map and only turns it on if the unit is adjacent. I am unclear on whether this creates a performance hit due to all the debuffs everywhere.
  • Because there is no way I know of to set Movement to a specific value, I had to settle for subtracting move points. If a unit's Move points drop below 1, it literally can do nothing that turn. It can't attack, move, etc. I just went with it since Pikes are otherwise so underwhelming. But basically in my mod Horse units have around 5 move points, and if there are enough Pikes nearby they can halted in their tracks completely.

Here is how the code works. One modifier (QUO_MOD_PIKEMAN_DEBUFF) broadcasts the debuff, the second modifier (QUO_MOD_PIKEMAN_DEBUFF_2) applies it. Because 2 modifiers are used I can have a different requirement set for each. The broadcast modifier checks for adjacency, and the debuff modifier checks the unit's class.

Code:
INSERT INTO Requirements
    (RequirementId,         RequirementType,     Likeliness,    Inverse,     Triggered)
VALUES    ('QUO_REQ_PIKEMAN_ADJACENT',     'REQUIREMENT_PLOT_ADJACENT_TO_OWNER_AT_WAR',    0,0,0)  ,
    ('QUO_REQ_OWNER_HEAVY_CALVARY',     'REQUIREMENT_UNIT_PROMOTION_CLASS_MATCHES',    0,0,0) ,
    ('QUO_REQ_OWNER_LIGHT_CALVARY',     'REQUIREMENT_UNIT_PROMOTION_CLASS_MATCHES',    0,0,0) ;


INSERT INTO RequirementArguments
    (RequirementId,            Name,             Type,             Value,                 Extra,     SecondExtra)
VALUES     ('QUO_REQ_PIKEMAN_ADJACENT',    'MaxDistance',    'ARGTYPE_IDENTITY',    '1',    NULL,    NULL     ) ,
    ('QUO_REQ_PIKEMAN_ADJACENT',    'MinDistance',    'ARGTYPE_IDENTITY',    '2',    NULL,    NULL     ) ,
    ('QUO_REQ_OWNER_HEAVY_CALVARY',    'UnitPromotionClass',    'ARGTYPE_IDENTITY',    'PROMOTION_CLASS_HEAVY_CAVALRY',    NULL,    NULL     ) ,
    ('QUO_REQ_OWNER_LIGHT_CALVARY',    'UnitPromotionClass',    'ARGTYPE_IDENTITY',    'PROMOTION_CLASS_LIGHT_CAVALRY',    NULL,    NULL     );


INSERT INTO RequirementSets
    (RequirementSetId,         RequirementSetType)
VALUES     ('QUO_REQSET_PIKEMAN_ADJACENT',     'REQUIREMENTSET_TEST_ALL') ,
    ('QUO_REQSET_OWNER_IS_CALVARY',     'REQUIREMENTSET_TEST_ANY') ;
 

INSERT INTO RequirementSetRequirements
    (RequirementSetId,    RequirementId)
VALUES    ('QUO_REQSET_PIKEMAN_ADJACENT',     'QUO_REQ_PIKEMAN_ADJACENT') ,
    ('QUO_REQSET_OWNER_IS_CALVARY',     'QUO_REQ_OWNER_HEAVY_CALVARY') ,
    ('QUO_REQSET_OWNER_IS_CALVARY',     'QUO_REQ_OWNER_LIGHT_CALVARY') ;


INSERT INTO Modifiers
    (ModifierId, ModifierType, RunOnce, Permanent, OwnerRequirementSetId, SubjectRequirementSetId)
VALUES    ('QUO_MOD_PIKEMAN_DEBUFF', 'MODIFIER_ALL_UNITS_ATTACH_MODIFIER', 0, 0, NULL, 'QUO_REQSET_PIKEMAN_ADJACENT') ,
    ('QUO_MOD_PIKEMAN_DEBUFF_2', 'MODIFIER_PLAYER_UNIT_ADJUST_MOVEMENT', 0, 0, NULL, 'QUO_REQSET_OWNER_IS_CALVARY') ;


INSERT INTO ModifierArguments
    (ModifierId,             Name,         Type,             Value,         Extra,     SecondExtra)
VALUES    ('QUO_MOD_PIKEMAN_DEBUFF',     'ModifierId',     'ARGTYPE_IDENTITY',     'QUO_MOD_PIKEMAN_DEBUFF_2',        NULL,     NULL) ,
    ('QUO_MOD_PIKEMAN_DEBUFF_2',         'Amount',     'ARGTYPE_IDENTITY',     '-1',        NULL,     NULL) ;
INSERT INTO Types
    (Type,                 Kind)
VALUES     ('QUO_ABI_PIKEMAN_DEBUFF',    'KIND_ABILITY'    ) ;


-- Create the ability
INSERT INTO UnitAbilities
    (UnitAbilityType,         Name,                     Description,                     Inactive)
VALUES     ('QUO_ABI_PIKEMAN_DEBUFF',     'LOC_QUO_ABI_PIKEMAN_DEBUFF_NAME',    'LOC_QUO_ABI_PIKEMAN_DEBUFF_DESCRIPTION',     0) ;


INSERT INTO UnitAbilityModifiers
    (UnitAbilityType,     ModifierId)
VALUES     ('QUO_ABI_PIKEMAN_DEBUFF',    'QUO_MOD_PIKEMAN_DEBUFF') ;


INSERT INTO TypeTags
    (Type,                    Tag)
VALUES  ('QUO_ABI_PIKEMAN_DEBUFF',         'CLASS_ANTI_CAVALRY') ;
 
Back
Top Bottom