Mod-Modders Guide to Fall Further

I've been looking at doing something similar to the Archos - a leader with a unique trait and Organized, and calling it the Hive Mind.

A lot of Fall Flat's new leaders assume something "very Bad" happened to the civs normal leader and they rose to power - kind of an alternate timeline scenario. That way, I can be lazier with my lore! :D

So if you're really concerned, just say your new leader killed/ate Daraacat.
 
I have finally managed to compile the .dll and apply the MootPoint's fix.
I have managed through turn 250 with no crashes....Yes! :woohoo:
 
I have finally managed to compile the .dll and apply the MootPoint's fix.
I have managed through turn 250 with no crashes....Yes! :woohoo:

Any chance you could post that somewhere so those of us who are horrifically impatient can have a crash free patch I?
 
Here it is! Enjoy! It is great to play FF without crashes!!

Excellent. High five and whatnot. This will let me do actual testing on fall flat :eek:
 
Or you could just use Patch J :mischief:

Crud. Now I actually have to move quickly, before you release patch K! :D

(I seriously JUST finished porting everything over to patch I)
 
Ignore this! Silly forum exploding-thingie.
 
python IDEs - what are people using? I'm more of a C++ head, so I'm used to Visual Studio & Xcode (still waiting for it to get better), but I've heard good things about Komodo, and Wing IDE also seems to get props...
 
I'm using whatever came with the python version I installed. Because it works, and I'm lazy.
 
Targetted how? As in it only hits a certain (type of) unit? Just check for a match to your criteria at the start of the python function. If you mean that the person who moves into range then gets to choose a target, that gets more complicated.
 
How are you wanting it to work? If you just place spellPillarofFire(caster) in <PythonAtRange> then it should make the unit approaching the improvement cast the spell. That should work, but I doubt it is what you want because it wouldn't attack enemies that approach your special fort (or whatever) but would let then attack you or whatever tile has the most enemies nearby.

I'd guess you'd want to also pass pPlot into the function (as the other at range functions do) and set iX and iY based on the plot's location instead of the casters. You'd then probably want to decide who owns the improvement, perhaps based on whose borders it is in or by cycling through the units on the plot. After finding the proper pPlayer the rest of the Pillar of Fire spell should be fine.

Of course, it would be a lot easier to just make the enemy units moving into improvement be the targets of the effect. (You'd still need to decide who is an enemy though.)
 
No, I want it to work in the same way as the citadel of light. When an enemy unit approaches, it will blast them with the spell.... If nothing else, I'll have to have it spawn a fort commander unit when it upgrades, and have that unit be able to cast the spell. I just don't like that solution though.
 
Write a function from scratch to handle it. You can probably copy quite a bit of it FROM the Citadel of Light to get you started though. Just trying to call up pillar of fire or some other spell won't work so well unless you have someone to actually count as the caster of the spell. But writing your own "If enemy, take Fire Damage" routine wouldn't be hard at all.
 
By pillar effect, do you just mean the graphics? That should be easy. Right after dealing the damage just say CyEngine().triggerEffect(gc.getInfoTypeForString('EFFECT_PILLAR_OF_FIRE'),pPlot.getPoint())


If you've already found the controlling civ then adding if eTeam.isAtWar(pUnit.getTeam()): right before doing damage should be easy.


I don't think it would really make sense to try to copy the citadel of light exactly. For one thing, that would mean it would only run once a turn and would be fairly processor intensive. The PythonAtRange wouldn't be all that useful there. Simply damaging any enemy unit that tries to move into an adjacent tile is much simpler. That would also mean enemies get damaged during their turn instead of yours. I guess that's what you probably ended up doing.
 
I've got this right now, if that's what you mean. I'll have to tone down the damage, as it effects the entire stack, but that's for later.

Edit: Got it checking to see if you're at war. Had an issue when I was testing it, because it had been working when unowned originally. Now, it does not... The moment I put it in a Barb city's borders, it worked. If I had tried that earlier, I'd have had it working right 5 or 6 revisions ago....

Code:
def atRangeCitadel(pCaster, pPlot):
	iPlayer = pPlot.getOwner()
	pPlayer = gc.getPlayer(iPlayer)
	eTeam = gc.getTeam(pPlayer.getTeam())
	if pPlayer != pCaster.getOwner():
		if eTeam.isAtWar(pCaster.getTeam()):
			pCaster.doDamageNoCaster(20, 40, gc.getInfoTypeForString('DAMAGE_FIRE'), False)
 
Back
Top Bottom