RifE 1.20 Ideas, Requests, and Feedback

I have to say I like it abundant. It is a great step toward making coastal cities competitive with land locked cities.

If anything I think kelp forests are too rare.
 
Forests should spawn normal kelp.

Ideal IMO would be to reduce the initial distribution, increase the spread frequency slightly, and consider adding something to "plant" it. Maybe only for FoL or OO priests, and Lanun.
 
One quick bit of feedback, which I know will change as animals rebalance, is that some really excellent hinterlands are created indirectly through crazy animals running around (and lairing) outside of cultural boundaries. I was recently playing a game where only my Sidar "Trackless" scouts were able to move around the wilds with impunity, the areas between civs were absolutely littered with deadly animals, barbs, etc. I assume anyone who sent out settlers with a typical escort would get them gobbled by things like Cave Bear Packs.

Anyhow, again, I know animals will rebalance, but it's quite something to see growth stifled by really wild wilderness. I liked it for a change.
 
Dwarven Fortresses seem to be built on some mana nodes by the AI.. 'Mechanos Dwarven Fortress', heh. He's not RoK btw, so there are no Soldiers of Kilmorph involved.

Edit: Oh, and it wasn't a previous Khazad City. Its in the BFC of Vaul, and I dont think it's possible for the Khazad (Immortal diff) to get a fortress up in a BFC of a capital before culture expansion. And this isn't the only case either, though Im having trouble finding one on this map, I have seen this before.
 
Maybe ask planetfall folks if you can steal art for ocean fungus. (Or is that where you got this from in the first place? :)
 
Figured so, as soon as I saw it. :D
 
Hi all,

I'm looking at a way to make the "tech chooser screen" appear on demand even when there are no beakers generated and no techs are actually selected, but I cannot seem to find the way...

Any help here? : )
 
upper right there is a tool bar. click the beaker.

There is a F key short cut too but I dont have it memorized... F6? maybe F5?
 
upper right there is a tool bar. click the beaker.

There is a F key short cut too but I dont have it memorized... F6? maybe F5?

Thank you :)
I should have indicated I was trying it from python :D
 
Somehow I thought you did. :lol:

I'm not sure HOW to do it. I know you can, but I don't know the command... I'd check Orbis, to see how they open up 'Mercenary' screen, when you click the button... Fairly sure that will help you.

I can actually open a screen whose name I know, like the Tech Tree, but i cannot find the name of the Tech Advisor Screen somehow ... :mischief:
 
Yeah, I saw the post in the ModModder's thread... I'm actually the one who got Grey Fox to look into it for you, I knew he had used something similiar. ;)

I assume you want the 'What would you like to research next' popup?

The problem with that is it's a POPUP, not a screen. I know how to access it in the DLL (launchChooseTechPopup, in CvDLLButtonPopup), but not how to open it in python.

I'll try to find some code that lets you open a popup in python... Using that, we should be able to call it as we know the name. ;)
 
ok, so I found the ChooseTech

Code:
enum ButtonPopupTypes			// Exposed to Python
{
	BUTTONPOPUP_TEXT,
	BUTTONPOPUP_MAIN_MENU,
	BUTTONPOPUP_CONFIRM_MENU,
	BUTTONPOPUP_DECLAREWARMOVE,
	BUTTONPOPUP_CONFIRMCOMMAND,
	BUTTONPOPUP_LOADUNIT,
	BUTTONPOPUP_LEADUNIT,
	BUTTONPOPUP_DOESPIONAGE,
	BUTTONPOPUP_DOESPIONAGE_TARGET,
	[B][COLOR="Red"]BUTTONPOPUP_CHOOSETECH[/COLOR][/B],
	BUTTONPOPUP_RAZECITY,
	BUTTONPOPUP_DISBANDCITY,
	BUTTONPOPUP_CHOOSEPRODUCTION,
	BUTTONPOPUP_CHANGECIVIC,
	BUTTONPOPUP_CHANGERELIGION,
	BUTTONPOPUP_CHOOSEELECTION,
	BUTTONPOPUP_DIPLOVOTE,
	BUTTONPOPUP_ALARM,
	BUTTONPOPUP_DEAL_CANCELED,
	BUTTONPOPUP_PYTHON,
	BUTTONPOPUP_PYTHON_SCREEN,
	BUTTONPOPUP_DETAILS,
	BUTTONPOPUP_ADMIN,
	BUTTONPOPUP_ADMIN_PASSWORD,
	BUTTONPOPUP_EXTENDED_GAME,
	BUTTONPOPUP_DIPLOMACY,
	BUTTONPOPUP_ADDBUDDY,
	BUTTONPOPUP_FORCED_DISCONNECT,
	BUTTONPOPUP_PITBOSS_DISCONNECT,
	BUTTONPOPUP_KICKED,
	BUTTONPOPUP_VASSAL_DEMAND_TRIBUTE,
	BUTTONPOPUP_VASSAL_GRANT_TRIBUTE,
	BUTTONPOPUP_EVENT,
	BUTTONPOPUP_FREE_COLONY,
	BUTTONPOPUP_LAUNCH,
	BUTTONPOPUP_FOUND_RELIGION,

//FfH: Added by Kael 11/04/2007
	BUTTONPOPUP_CONFIRMCASTGLOBAL,
	BUTTONPOPUP_CONFIRMCASTWAR,
	BUTTONPOPUP_CONFIRMSETTLEMENT,
//FfH: End Add

#ifdef _USRDLL
	NUM_BUTTONPOPUP_TYPES
#endif
};

And the Code to launch a popup

Code:
popupInfo = CyPopupInfo()
popupInfo.setButtonPopupType(ButtonPopupTypes.BUTTONPOPUP_CHANGECIVIC)
popupInfo.addPopup(iPlayer)

I'll try it now. The name was the Power I needed :)
 
Think you found the same code, actually. ;) Hope it works. :goodjob:

OK, so at first it didn't work. So I investigated, following the code path:

Spoiler :
Code:
bool CvDLLButtonPopup::launchChooseTechPopup(CvPopup* pPopup, CvPopupInfo &info)
{
	CyArgsList argsList;
	argsList.add(GC.getGameINLINE().getActivePlayer());
	long lResult=0;

	...

	int iNumTechs = 0;
	for (int iPass = 0; iPass < 2; iPass++)
	{
		for (int iI = 0; iI < GC.getNumTechInfos(); iI++)
		{
			if (((iI == eBestTech) || (iI == eNextBestTech)) == (iPass == 0))
			{
				if ([COLOR="Red"][B]player.canResearch((TechTypes)iI)[/B][/COLOR]):
				{
					...
					iNumTechs++;
				}
			}
		}
	}
	if (0 == iNumTechs)
	{
		// player cannot research anything, so don't show this popup after all
		[COLOR="Red"][B]return (false)[/B][/COLOR];
	}

	gDLL->getInterfaceIFace()->popupSetPopupType(pPopup, POPUPEVENT_TECHNOLOGY, ARTFILEMGR.getInterfaceArtInfo("INTERFACE_POPUPBUTTON_TECH")->getPath());

	gDLL->getInterfaceIFace()->popupLaunch(pPopup, false, ((iDiscover > 0) ? POPUPSTATE_QUEUED : POPUPSTATE_MINIMIZED));

	return (true);
}

Which basically means that at least one tech has to answer true to the canResearch function, whose code is below:

Code:
bool CvPlayer::canResearch(TechTypes eTech, bool bTrade) const
{
	bool bFoundPossible;
	bool bFoundValid;
	int iI;

	if(GC.getUSE_CAN_RESEARCH_CALLBACK())
	{
		CyArgsList argsList;
		argsList.add(getID());
		argsList.add(eTech);
		argsList.add(bTrade);
		long lResult=0;
		gDLL->getPythonIFace()->callFunction(PYGameModule, "canResearch", argsList.makeFunctionArgs(), &lResult);
		if (lResult == 1)
		{
			return true;
		}
	}

	if (![COLOR="DarkOrange"][B]isResearch()[/B][/COLOR] && getAdvancedStartPoints() < 0)
	{
		return false;
	}

	if (GET_TEAM(getTeam()).isHasTech(eTech))
	{
		return false;
	}

	...

	return true;
}

Which mean that isResearch function has to answer true if there not advanced point left, whose code is below:

Code:
bool CvPlayer::isResearch() const
{
	if(GC.getUSE_IS_PLAYER_RESEARCH_CALLBACK())
	{
		CyArgsList argsList;
		long lResult;
		argsList.add(getID());
		lResult = 1;
		gDLL->getPythonIFace()->callFunction(PYGameModule, "isPlayerResearch", argsList.makeFunctionArgs(), &lResult);
		if (lResult == 0)
		{
			return false;
		}
	}

[COLOR="Red"][B]	if (!isFoundedFirstCity())
	{
		return false;
	}
[/B][/COLOR]
	return true;
}

Which means that if no city has been founded, the pop-up will never appear (as isReserach will always be false).

Could this check about city creation be removed ? :)

I tried to go around using activating the canResearch callback in python, which then worked, but the performance become catastrophic if I have to reproduce the filter of which tech to appear from C to python.
Moreover I don't see why you could not choose your tech before founding a city (with in the case of the new version of Tears for RifE will always happen, as no city will ever be founded :p)

Thank you in advance for considering this small change :)
 
Back
Top Bottom