Probably Improved Gameplay Mod

A question: Does anyone know how to mod machine guns so Shock is not available to them?

I am hoping no one will object to this change, as I know many hate it when they accidentally promote a MG with shock.
 
Regarding post 185,

CyInfoInterface1.cpp

For completeness, expose it to Python. You should also add checks for it in CvPediaPromotion.py from the original game and SevoPediaPromotion.py and UnitUpgradeGraph.py from BUG. All those changes look to be simple one-or-two-liners.
What do I have to do in UnitUpgradesGraph.py?

Code:
	def getGraphEdges(self, graph):
		for unitA in graph.iterkeys():
			unitD = gc.getPromotionInfo(unitA).getPrereqPromotion()
			self.addUpgradePath(graph, unitD, unitA)
			unitB = gc.getPromotionInfo(unitA).getPrereqOrPromotion1()
			self.addUpgradePath(graph, unitB, unitA)
			unitC = gc.getPromotionInfo(unitA).getPrereqOrPromotion2()
			self.addUpgradePath(graph, unitC, unitA)

I'm not sure what logic is going on there.
 
This thread (some discussion on unit healing, and "supermedics") made me happy that you allow Woodsman 3 to scouts and explorers, as it really does make them more interesting overall. :)
It might be slightly easy to acquire, but the way the Medic line is handled in the vanilla game is "hokey" to me anyway. For one thing you don't want your Medic to EVER have to defend, so why should combat I be a prerequisite? Maybe there should be a Medic 0 promo that offers 5% healing instead heh. Also, contrary to all (outside of game) logic, a chariot seems to be the ultimate medic unit. Go figure.
 
In CvPediaPromotion.py, there is this section of code. I'm wondering how to include the third promo
Code:
		ePromoOr3 = gc.getPromotionInfo(self.iPromotion).getPrereqOrPromotion3()
		if (ePromoOr1 > -1):
			if (ePromo > -1):
				screen.attachLabel(panelName, "", localText.getText("TXT_KEY_AND", ()))
			
				if (ePromoOr2 > -1):
					screen.attachLabel(panelName, "", "(")

			screen.attachImageButton( panelName, "", gc.getPromotionInfo(ePromoOr1).getButton(), GenericButtonSizes.BUTTON_SIZE_CUSTOM, WidgetTypes.WIDGET_PEDIA_JUMP_TO_PROMOTION, ePromoOr1, 1, False )

			if (ePromoOr2 > -1):
				screen.attachLabel(panelName, "", localText.getText("TXT_KEY_OR", ()))
				screen.attachImageButton( panelName, "", gc.getPromotionInfo(ePromoOr2).getButton(), GenericButtonSizes.BUTTON_SIZE_CUSTOM, WidgetTypes.WIDGET_PEDIA_JUMP_TO_PROMOTION, ePromoOr2, 1, False )

				if (ePromo > -1):
					screen.attachLabel(panelName, "", ")")
								
		eTech = gc.getPromotionInfo(self.iPromotion).getTechPrereq()
 
Without even trying it yet I feel that it pretty much couldn't be overpowered: it's a realitively modest change (+ 1 :commerce:) and comes with a penalty (-25% GP generation). But the real argument for it being balanced imo is the extreme power of its competing options, Caste and Slavery.

Also, it make at best farm at 2f and 2 c (if financial). Compare to about any other improvment and you will seewhy it can't be really overpowered.

Edit : instead of woodman III, if you want some sensible healing unit, juste create an unit called "field medecine" or red cross, and give to it and only it medic 2 and 3 and a woodman III-like ability. I can't understand why by all hell peoples can be glad to have something even more ridiculous than chariot healer.

Edit, bis : is the version downlodable on the site the last one, or should we wait a little to see thoses changes ?
 
Er it's just my opinion you don't have to lose your cool over it. What makes it so OP in your opinion?

As to your first point I guess riverside farms would yield + 3 under Financial. Don't know if that changes your point or not.
 
Code:
	def getGraphEdges(self, graph):
		for unitA in graph.iterkeys():
			unitD = gc.getPromotionInfo(unitA).getPrereqPromotion()
			self.addUpgradePath(graph, unitD, unitA)
			unitB = gc.getPromotionInfo(unitA).getPrereqOrPromotion1()
			self.addUpgradePath(graph, unitB, unitA)
			unitC = gc.getPromotionInfo(unitA).getPrereqOrPromotion2()
			self.addUpgradePath(graph, unitC, unitA)
[B]			unitE = gc.getPromotionInfo(unitA).getPrereqOrPromotion3()
			self.addUpgradePath(graph, unitE, unitA)[/B]

and

Code:
		[B]ePromoOr3 = gc.getPromotionInfo(self.iPromotion).getPrereqOrPromotion3()[/B]
		if (ePromoOr1 > -1):
			if (ePromo > -1):
				screen.attachLabel(panelName, "", localText.getText("TXT_KEY_AND", ()))
			
				if (ePromoOr2 > -1):
					screen.attachLabel(panelName, "", "(")

				screen.attachImageButton( panelName, "", gc.getPromotionInfo(ePromoOr1).getButton(), GenericButtonSizes.BUTTON_SIZE_CUSTOM, WidgetTypes.WIDGET_PEDIA_JUMP_TO_PROMOTION, ePromoOr1, 1, False )

			if (ePromoOr2 > -1):
				screen.attachLabel(panelName, "", localText.getText("TXT_KEY_OR", ()))
				screen.attachImageButton( panelName, "", gc.getPromotionInfo(ePromoOr2).getButton(), GenericButtonSizes.BUTTON_SIZE_CUSTOM, WidgetTypes.WIDGET_PEDIA_JUMP_TO_PROMOTION, ePromoOr2, 1, False )

[B]				[s]if (ePromo > -1):[/s]
					[s]screen.attachLabel(panelName, "", ")")[/s][/B]

[B]			if (ePromoOr3 > -1):
				screen.attachLabel(panelName, "", localText.getText("TXT_KEY_OR", ()))
				screen.attachImageButton( panelName, "", gc.getPromotionInfo(ePromoOr3).getButton(), GenericButtonSizes.BUTTON_SIZE_CUSTOM, WidgetTypes.WIDGET_PEDIA_JUMP_TO_PROMOTION, ePromoOr3, 1, False )

			if (ePromo > -1 and ePromoOr2 > -1):
				screen.attachLabel(panelName, "", ")")[/B]
								
		eTech = gc.getPromotionInfo(self.iPromotion).getTechPrereq()

Also, it make at best farm at 2f and 2 c (if financial). Compare to about any other improvment and you will seewhy it can't be really overpowered.

With Biology and Financial and Serfdom a Farm could add +2:food: and +2:commerce:. Without Bio and Fin, an early game riverside Plains Farm (2:food:1:hammers:2:commerce:) beats a mid-late game pre-Railroad riverside Grassland Lumbermill (2:food:1:hammers:1:commerce:). I'm not saying that's overpowered, just adding a comparison.
 
Er it's just my opinion you don't have to lose your cool over it. What makes it so OP in your opinion?

As to your first point I guess riverside farms would yield + 3 under Financial. Don't know if that changes your point or not.

Riverside farm give +3 commerce but +2 compared to unimproved. That's what I mean.

For the scout medic, the problem for me is :
* first, it's real easy to get WIII explorer. They came with WI at the start so it's a the very least easy.
* second, they are absolutely ridiculous. Scout, and explorer are people that go before the army to see what's up. They are not the people that drag people, tend them, give them new weapon, and such.

A chariot especially before mechanized unit, is tenfold more logical as healer. Because to bring consummable, new ammo, new weapon and such, at the very least a chariot is convenient, it's somewhat fast and better than a horse to take up stuff and bring wounded far from the battle. And as I already said, the fact that GG are primaly used as medic III unit is more a logical thing than other thing. A lot of good general are those who know how keep an army in a somewhat good state rather than the occasionnal genius that know how to trick the opponent, and that exactly what Medic III do.

As opposed to a scouting unit, that you want to use for healing because you don't use it for scouting. What about, for example, giving it a way to have sentry, and mobility for scout ?
 
This mod is kind of intended for the people who enjoy the unmodded BtS (as I do) and are only looking for a little bit more. Many of these reasons are outlined in the first post of the thread, if I remember rightly.

Right on! I love this mod and the subtle "Probably Improved Gameplay" name is modest and honest which I find appealing as opposed to "Oh my god, greatest ever mod!" OmGGEM, the acronym ain't as good either.

Keep up the great work PoM!
 
What about bumping W3 down to 10% healing? Would certainly make it very slightly less powerful, but still useful.

I don't see a problem with having a scout healer. I'd love it for them to be able to get sentry/mobility as well (maybe allow it after W2/G2 but only for recon units?). But for a healer, scouts are supposed to be good at maneuvering around, and might be able to get supplies out to heal troops. Or if you think of W3 as knowing which roots and herbs help mend injuries, why couldn't a scout or explorer learn that just as well as a musketman or swordsman?
 
What about bumping W3 down to 10% healing? Would certainly make it very slightly less powerful, but still useful.
Well, my problem is not WIII being overpowered by itself, but it being too easy to get. West point + red cross = explorer that begin with medic 1, woodman 3.
I don't see a problem with having a scout healer. I'd love it for them to be able to get sentry/mobility as well (maybe allow it after W2/G2 but only for recon units?). But for a healer, scouts are supposed to be good at maneuvering around, and might be able to get supplies out to heal troops.

And they have to be rather light, so they can go fast and unnoticed. They lack the manpower to do this, because you won't be using 1.000 people to make a scouting party.

The unnoticed part is well beyond what I expect from PIG mod, it would not be a little change, but the light part make me think that healing is really not for them. And GG to explorer is not good too. I can see for a long time a chariot GG because it's a prestige unit for a long time. Caesar were using a chariot to parade, and chariot warfare were obsolete well before Roma was founded. And then agaibn, making it so obsolete unit cannot be used to heal efficiently is too large a thing to demand for PIG mod.

I don't pretend to have the perfect solution for medic, but for me it does NOT imply to rename recon unit to healing unit.
 
For the scout medic, the problem for me is :
* first, it's real easy to get WIII explorer. They came with WI at the start so it's a the very least easy.
* second, they are absolutely ridiculous. Scout, and explorer are people that go before the army to see what's up. They are not the people that drag people, tend them, give them new weapon, and such.

Your first point is logical.
Your second point, eh, just because you find this change "ridiculous" in your mind is pretty irrelevant: I think our focus should be on how it affects gameplay. I personally don't care if a goat heals my troops by eating grass next to them as long as it works for gameplay.

I don't see a problem with having a scout healer. I'd love it for them to be able to get sentry/mobility as well (maybe allow it after W2/G2 but only for recon units?). But for a healer, scouts are supposed to be good at maneuvering around, and might be able to get supplies out to heal troops. Or if you think of W3 as knowing which roots and herbs help mend injuries, why couldn't a scout or explorer learn that just as well as a musketman or swordsman?

If we must have a rationale behind it, this works for me.

Well, my problem is not WIII being overpowered by itself, but it being too easy to get. West point + red cross = explorer that begin with medic 1, woodman 3.

This is a very late game consideration, but you bring up a good point. I'm going to cop out and say that really it doesn't even make sense that you can build an "explorer" unit (little conquistador looking dude for goodness sakes) for the full span of the game.
(If it does in face obsolete then ignore that lol)
 
Code:
	def getGraphEdges(self, graph):
		for unitA in graph.iterkeys():
			unitD = gc.getPromotionInfo(unitA).getPrereqPromotion()
			self.addUpgradePath(graph, unitD, unitA)
			unitB = gc.getPromotionInfo(unitA).getPrereqOrPromotion1()
			self.addUpgradePath(graph, unitB, unitA)
			unitC = gc.getPromotionInfo(unitA).getPrereqOrPromotion2()
			self.addUpgradePath(graph, unitC, unitA)
[B]			unitE = gc.getPromotionInfo(unitA).getPrereqOrPromotion3()
			self.addUpgradePath(graph, unitE, unitA)[/B]

and

Code:
		[B]ePromoOr3 = gc.getPromotionInfo(self.iPromotion).getPrereqOrPromotion3()[/B]
		if (ePromoOr1 > -1):
			if (ePromo > -1):
				screen.attachLabel(panelName, "", localText.getText("TXT_KEY_AND", ()))
			
				if (ePromoOr2 > -1):
					screen.attachLabel(panelName, "", "(")

				screen.attachImageButton( panelName, "", gc.getPromotionInfo(ePromoOr1).getButton(), GenericButtonSizes.BUTTON_SIZE_CUSTOM, WidgetTypes.WIDGET_PEDIA_JUMP_TO_PROMOTION, ePromoOr1, 1, False )

			if (ePromoOr2 > -1):
				screen.attachLabel(panelName, "", localText.getText("TXT_KEY_OR", ()))
				screen.attachImageButton( panelName, "", gc.getPromotionInfo(ePromoOr2).getButton(), GenericButtonSizes.BUTTON_SIZE_CUSTOM, WidgetTypes.WIDGET_PEDIA_JUMP_TO_PROMOTION, ePromoOr2, 1, False )

[B]				[s]if (ePromo > -1):[/s]
					[s]screen.attachLabel(panelName, "", ")")[/s][/B]

[B]			if (ePromoOr3 > -1):
				screen.attachLabel(panelName, "", localText.getText("TXT_KEY_OR", ()))
				screen.attachImageButton( panelName, "", gc.getPromotionInfo(ePromoOr3).getButton(), GenericButtonSizes.BUTTON_SIZE_CUSTOM, WidgetTypes.WIDGET_PEDIA_JUMP_TO_PROMOTION, ePromoOr3, 1, False )

			if (ePromo > -1 and ePromoOr2 > -1):
				screen.attachLabel(panelName, "", ")")[/B]
								
		eTech = gc.getPromotionInfo(self.iPromotion).getTechPrereq()



With Biology and Financial and Serfdom a Farm could add +2:food: and +2:commerce:. Without Bio and Fin, an early game riverside Plains Farm (2:food:1:hammers:2:commerce:) beats a mid-late game pre-Railroad riverside Grassland Lumbermill (2:food:1:hammers:1:commerce:). I'm not saying that's overpowered, just adding a comparison.

Thanks for the code EF. Always appreciated. :goodjob:

I thought I'd addressed everything in the Python that needed to be changed but either I missed something or did something wrong because the sevopedia stuff relating to promotions is still all disappeared.

What I'm going to do is attach the current version of the PIG mod in its pre-release form.

If you EF or anyone else knows what the problem is here (why promotions in pedia are empty) please let me know. Apart from the pedia, the new changes to the promotions appear to be working correctly. March can now come with Drill 3 and Sentry can now come with Drill 3 as well.

Anyone else is welcome to download and use this version but be mindful the promotions in the pedia are broken.
 

Attachments

  • PIG Mod v0.5 pre-release1.7z
    3.5 MB · Views: 47
Are you getting Python exceptions in PythonErr.log? I have very little time nowadays (just enough to catch up on the forum), but I could help if given the log.
 
With Biology and Financial and Serfdom a Farm could add +2:food: and +2:commerce:. Without Bio and Fin, an early game riverside Plains Farm (2:food:1:hammers:2:commerce:) beats a mid-late game pre-Railroad riverside Grassland Lumbermill (2:food:1:hammers:1:commerce:). I'm not saying that's overpowered, just adding a comparison.

Note that a riverside grassland lumbermill would be 2:food:2:hammers:1:commerce: since the Forest hammer bonus is also intact. So you're still looking at +2:hammers: compared to a farmed tile, but less food and (under Serfdom) commerce.
 
A quick question: I have BUG mod installed already. Do I need to uninstall it before installing PIG mod?
Followed the link in PieceofMind's sig and PIG mod sounds great. I just want to be sure that I'm not setting up any weirdness between two versions of BUG.
 
Note that a riverside grassland lumbermill would be 2:food:2:hammers:1:commerce: since the Forest hammer bonus is also intact.

Oops, right. It's 1:hammers: vs. 1:commerce:, but the Serfdom Farm comes much earlier in the game than the Lumbermill.
 
A quick question: I have BUG mod installed already. Do I need to uninstall it before installing PIG mod?

If you installed BUG using the multi-player install method (it's in the Mods folder rather than CustomAssets folder), you don't need to do anything at all. If you used the single-player install method, you should change PIG's INI file to set NoCustomAssets to 1.
 
Top Bottom