Larsenex
King
I simply changed the range of machine guns from 1 to 2. Simple and it worked fine. Same as a cannon but stronger.
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).
I simply changed the range of machine guns from 1 to 2. Simple and it worked fine. Same as a cannon but stronger.
_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?
Agreed.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.
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).
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.
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.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.![]()
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).
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).
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.
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') ;