Kael said:Did you just suggest that our mod is boring?![]()
Let me backpedal!

I'd hate to add up how many hours I've played....

Kael said:Did you just suggest that our mod is boring?![]()
Kael said:Did you just suggest that our mod is boring?![]()
woodelf said:I second (or third) the desire to play some scenarios once 1.0 is out. Sometimes random maps get boring and I can't wait to see what other people do with the FfH universe.![]()
onedreamer said:with FFH, I always play Highlands with thin peaks, seas and twice the players of the proposed number. That kind of map gives a nice fantasy feel IMO.
Btw, scenario maps are way more boring than random maps... or do you think static vs random is better to fight monotony ?![]()
onedreamer said:with FFH, I always play Highlands with thin peaks, seas and twice the players of the proposed number. That kind of map gives a nice fantasy feel IMO.
Btw, scenario maps are way more boring than random maps... or do you think static vs random is better to fight monotony ?![]()
Kael said:Ive been playing with maps that have under the normal amount of players lately. It makes the wilderness sitck around longer and increases the amount of barbarians and animals.
Kael said:Im guessing that Stirrups weren't researched and the computer was trying to make a horse archer. So the computer first checks to see if it can build a horse archer (do you have stirrups?) and it cant so it drops down to a horseman (do you have horseback riding?) and it can so it builds that.
def FFHgetRecruit(self, pCity):
pPlayer = gc.getPlayer(pCity.getOwner())
eTeam = gc.getTeam(pPlayer.getTeam())
iRand = CyGame().getSorenRandNum(100, "Bob")
iUnit = -1
if iRand <= 10:
iUnit = gc.getInfoTypeForString('UNIT_SCOUT')
if eTeam.isHasTech(gc.getInfoTypeForString('TECH_HUNTING')):
iUnit = gc.getInfoTypeForString('UNIT_HUNTER')
if eTeam.isHasTech(gc.getInfoTypeForString('TECH_ANIMAL_HANDLING')):
iUnit = gc.getInfoTypeForString('UNIT_RANGER')
elif eTeam.isHasTech(gc.getInfoTypeForString('TECH_POISONS')):
iUnit = gc.getInfoTypeForString('UNIT_ASSASSIN')
elif iRand <= 20:
iUnit = gc.getInfoTypeForString('UNIT_SCOUT')
if eTeam.isHasTech(gc.getInfoTypeForString('TECH_HUNTING')):
iUnit = gc.getInfoTypeForString('UNIT_HUNTER')
if eTeam.isHasTech(gc.getInfoTypeForString('TECH_POISONS')):
iUnit = gc.getInfoTypeForString('UNIT_ASSASSIN')
elif eTeam.isHasTech(gc.getInfoTypeForString('TECH_ANIMAL_HANDLING')):
iUnit = gc.getInfoTypeForString('UNIT_RANGER')
elif iRand <= 30:
iUnit = gc.getInfoTypeForString('UNIT_SCOUT')
if eTeam.isHasTech(gc.getInfoTypeForString('TECH_HORSEBACK_RIDING')):
iUnit = gc.getInfoTypeForString('UNIT_HORSEMAN')
if eTeam.isHasTech(gc.getInfoTypeForString('TECH_STIRRUPS')):
iUnit = gc.getInfoTypeForString('UNIT_HORSE_ARCHER')
elif eTeam.isHasTech(gc.getInfoTypeForString('TECH_TRADE')):
iUnit = gc.getInfoTypeForString('UNIT_HORSE_CHARIOT')
elif iRand <= 40:
iUnit = gc.getInfoTypeForString('UNIT_SCOUT')
if eTeam.isHasTech(gc.getInfoTypeForString('TECH_HORSEBACK_RIDING')):
iUnit = gc.getInfoTypeForString('UNIT_HORSEMAN')
if eTeam.isHasTech(gc.getInfoTypeForString('TECH_TRADE')):
iUnit = gc.getInfoTypeForString('UNIT_HORSE_CHARIOT')
elif eTeam.isHasTech(gc.getInfoTypeForString('TECH_STIRRUPS')):
iUnit = gc.getInfoTypeForString('UNIT_HORSE_ARCHER')
elif iRand <= 50:
iUnit = gc.getInfoTypeForString('UNIT_WARRIOR')
if eTeam.isHasTech(gc.getInfoTypeForString('TECH_BRONZE_WORKING')):
iUnit = gc.getInfoTypeForString('UNIT_AXEMAN')
if eTeam.isHasTech(gc.getInfoTypeForString('TECH_IRON_WORKING')):
iUnit = gc.getInfoTypeForString('UNIT_MACEMAN')
elif eTeam.isHasTech(gc.getInfoTypeForString('TECH_METAL_CASTING')):
iUnit = gc.getInfoTypeForString('UNIT_PIKEMAN')
elif iRand <= 60:
iUnit = gc.getInfoTypeForString('UNIT_WARRIOR')
if eTeam.isHasTech(gc.getInfoTypeForString('TECH_BRONZE_WORKING')):
iUnit = gc.getInfoTypeForString('UNIT_AXEMAN')
if eTeam.isHasTech(gc.getInfoTypeForString('TECH_METAL_CASTING')):
iUnit = gc.getInfoTypeForString('UNIT_PIKEMAN')
elif eTeam.isHasTech(gc.getInfoTypeForString('TECH_IRON_WORKING')):
iUnit = gc.getInfoTypeForString('UNIT_MACEMAN')
elif iRand <= 70:
iUnit = gc.getInfoTypeForString('UNIT_WARRIOR')
if eTeam.isHasTech(gc.getInfoTypeForString('TECH_ARCHERY')):
iUnit = gc.getInfoTypeForString('UNIT_ARCHER')
if eTeam.isHasTech(gc.getInfoTypeForString('TECH_FEUDALISM')):
iUnit = gc.getInfoTypeForString('UNIT_LONGBOWMAN')
elif eTeam.isHasTech(gc.getInfoTypeForString('TECH_MONARCHY')):
iUnit = gc.getInfoTypeForString('UNIT_CROSSBOWMAN')
elif iRand <= 80:
iUnit = gc.getInfoTypeForString('UNIT_WARRIOR')
if eTeam.isHasTech(gc.getInfoTypeForString('TECH_ARCHERY')):
iUnit = gc.getInfoTypeForString('UNIT_ARCHER')
if eTeam.isHasTech(gc.getInfoTypeForString('TECH_MONARCHY')):
iUnit = gc.getInfoTypeForString('UNIT_CROSSBOWMAN')
elif eTeam.isHasTech(gc.getInfoTypeForString('TECH_FEUDALISM')):
iUnit = gc.getInfoTypeForString('UNIT_LONGBOWMAN')
elif iRand <= 90:
iUnit = gc.getInfoTypeForString('UNIT_PROPHET2')
if eTeam.isHasTech(gc.getInfoTypeForString('TECH_WRITING')):
iUnit = gc.getInfoTypeForString('UNIT_ADEPT')
if eTeam.isHasTech(gc.getInfoTypeForString('TECH_SORCERY')):
iUnit = gc.getInfoTypeForString('UNIT_MAGE')
elif eTeam.isHasTech(gc.getInfoTypeForString('TECH_SUMMONING')):
iUnit = gc.getInfoTypeForString('UNIT_CONJURER')
elif iRand <= 100:
iUnit = gc.getInfoTypeForString('UNIT_PROPHET2')
if eTeam.isHasTech(gc.getInfoTypeForString('TECH_WRITING')):
iUnit = gc.getInfoTypeForString('UNIT_ADEPT')
if eTeam.isHasTech(gc.getInfoTypeForString('TECH_SUMMONING')):
iUnit = gc.getInfoTypeForString('UNIT_CONJURER')
elif eTeam.isHasTech(gc.getInfoTypeForString('TECH_SORCERY')):
iUnit = gc.getInfoTypeForString('UNIT_MAGE')
if iUnit != -1:
newUnit = pPlayer.initUnit(iUnit, pCity.getX(), pCity.getY(), UnitAITypes.NO_UNITAI)
Xuenay said:I'd suggest altering the code so that it tries the alternative top upgrade paths in case the originally picked one isn't available, to make the Great Commander more useful. (Just three units seems pretty weak to me in the first place, but I suppose it has its uses in really dire situations)
How about:
immanuel said:I too dig Highlands for FfH, especially for my dwarves. Lots of snow and nice long extended wilderness exploration. Anyone else noticed a marked lack of resources, though? I played one map that had not one pile of copper.
Incidentally, made the mistake of playing with raging barbarians, once. Boy was that a mistake!
can someone help me on this we really want to play this vs each otherMyre said:ok a while back i talk about my friend having problems with letters missing in game
he reinstalled 4 to 5 times and this is what he gets
![]()
Myre said:can someone help me on this we really want to play this vs each other
Kael said:Im guessing that Stirrups weren't researched and the computer was trying to make a horse archer. So the computer first checks to see if it can build a horse archer (do you have stirrups?) and it cant so it drops down to a horseman (do you have horseback riding?) and it can so it builds that.
Ok my suggestion is the random number at the start (iRand = CyGame().getSorenRandNum(100, "Bob"). You can have for example bronze working and barracks but if you roll a 70 you still only get a warrior, right? Not sure if i read this code correctly though. Although You would get an axemen if you would have rolled a 50. Its all not that bad because you can manually upgrade the lowest tier anyway...
Solution would be possibly to make Mr. Not appearing the first choice, not the lowest tier. And if not possible to choose any unit at all new random number until a valid unit is selectable (make seperate choices for warrior,scout and prophet)
Edit(quick test result) Using world builded commanders in my capital just now gave me: 3 Macemen 2 Rangers 1 X-Bowman 3 Horse archers 1 Axeman 3 Mages 3 Archers 2 Hunters) Just to explain what I mean (Mace > Axe, X-Bow> Archer etc. but still manually upgradeable in the same turn as they were created) I personally like it this way anyway because it adds the bummer factor (doh I got a warrior) I just want to know if this is the way it is meant to be.
Kael said:I always kinda liked the fact that you got random units. They are recruits after all, not nessesarily the best and the brightest (or the best equiped). How about if I change it to grant a random 3-6 recruits instead of the fixed 3?
yup ony with FfH when he plays normal civ4 it all works fineKael said:It looks like a font problem. The same letters are missing when displayed at that size. Does this only happen with Fall from heaven?
Myre said:yup ony with FfH when he plays normal civ4 it all works fine
Furin said:Ok my suggestion is the random number at the start (iRand = CyGame().getSorenRandNum(100, "Bob"). You can have for example bronze working and barracks but if you roll a 70 you still only get a warrior, right? Not sure if i read this code correctly though. Although You would get an axemen if you would have rolled a 50. Its all not that bad because you can manually upgrade the lowest tier anyway...
Solution would be possibly to make Mr. Not appearing the first choice, not the lowest tier. And if not possible to choose any unit at all new random number until a valid unit is selectable (make seperate choices for warrior,scout and prophet)
Edit(quick test result) Using world builded commanders in my capital just now gave me: 3 Macemen 2 Rangers 1 X-Bowman 3 Horse archers 1 Axeman 3 Mages 3 Archers 2 Hunters) Just to explain what I mean (Mace > Axe, X-Bow> Archer etc. but still manually upgradeable in the same turn as they were created) I personally like it this way anyway because it adds the bummer factor (doh I got a warrior) I just want to know if this is the way it is meant to be.
Kael said:Yeah FfH already has double the normal barbarian activity, I couldn't imagine playing with raging barbarians.
I haven't noticed any resource problem lately, they seem to be pretty well distributed. What does everyone else think?