JanusTalaiini
Prince
- Joined
- Dec 12, 2005
- Messages
- 340
Do I spot a fix to the game options being wiped every time too? Those 2 fixes alone are awesome.
...Seriously? As in, for real?! Oh. My. God. It's like Christmas in June!
Do I spot a fix to the game options being wiped every time too? Those 2 fixes alone are awesome.
Finally. Working on miscast effects should be fun. Any idea how I might go about adding a new river? Sometimes spring should turn up more water than expected.Patch "g": (unreleased)
1. Fixed an issues that would cause spells with any miscast chance to always miscast.
How does this work? Do you make the equipment units barb?2. Fixed an issue that would cause equipment to dissapear if it is owned by a player that leaves the game.
Does it do 3-5 effects out of a larger number of possibilities, or are they 3-5 possible effects for this too choose one from? 3-5 possibilities doesn't seem random enough to me. I'll probably add about 50 in my version (if I can think of enough. That might be slight hyperbole.)3. Added the Wonder spell (Chaos 3, does 3-5 random effects).
I'd personally prefer if it were still called Enervation/Enervated. That just sounds cooler. I also still like my idea of making it remove courage (and maybe valor, loyalty, morale, etc), since that makes having more spirit casters more important.4. Removed the Enervated promotion (effect combined with the withered promotion).
5. Removed the Enervation spell (Wither spell does a combo effect of the two).
12. The Withered promotion gives -10% combat,-50% xp and is dispellable in addition to its other effects.
14. Wither spell is now Entropy 3 and does everything the old Enervation and Withered spell used to do plus an additional -10% strength.
I forgot this was still around after the spell was removed. Just wondering, how/where were they blocked from attacking good civs? Is that capacity still present, or was it not deemed worthy of including in BtS FfH? The ability to block attacks like that that could be very useful in my modmod...6. Removed the Law Bringer unit.
I still don't really consider this to fit that well in Entropy...oh well.11. Rust spell moved from Entropy 2 to Entropy 1.
15. Valor promotion never wears off and it grants +10% magic resistance.
16. Valor spell changed form a rank 2 Law spell to a rank 3 Law spell.
These are all fine with me9. Summon Pit Beast moved from a Chaos3 spell to an Entropy 2 spell.
10. Pit Beasts moves reduced from 2 to 1 and strength reduced from 10 to 5.
17. Summon Hosts of the Einherjar spell changed from a rank 3 Law spell to a rank 2 Law spell.
18. Charm Person spell moved to a rank 2 mind spell and resistance lowered from +40% to +20%.
19. Inspiration spell moved to a rank 1 mind spell and research bonus lowered from +4 to +2 and it now gives +1 sage GPP.
Has the Courage spell been replaced with something else? If not, you just seriously nerfed spirit 1. I sure hope you'll consider adding some other spell to make up for this. Perhaps as a second spell, so you could still get the promotion while in the field far from your cities. (I also think that courage should really wear off eventually, and I don;t see the point of it healing)20. Hope spell now gives courage for free to all units that pass through the city (so the caster doesn't have to cast it).
Both excellent.23. Religous units that abandon you will now be re-buildable by other empires with that state religion.
24. Infernals get all their free buildigns (demonic citizens, elder council, training yard, obsidion gate, forge, mage guild) in citys they capture.
I still think that Life III could use a second spell, so it will be useful to the Grigori. Letting resurrection kill undead units (preferable converint them to living unis under your control) could be cool too. (I also think that Destroy undead really needs to destroy the undead, or at least have no damage cap.)25. Ressurection no longer requires or consumes a life mana node.
When do we get to see this new art?26. New Wizard model by seZereth (Govannon now uses the old wizard art).
27. New Amurite Archmage model by seZereth.
28. New water art by seZereth.
29. New Dwarven cannon model by AA.
30. Made the following unit attributes into ints so multiple promotions can grant the effects (for modmods): alive, boarding, doublefortifybonus, fear, flying, hiddennationality, ignorebuildingdefense, immortal, immunetocapture, immunetofear, immunetomagic, onlydefensive, targetweakestunit, targetweakestunitcount, twincast and waterwalking.
Well, its about time Firaxis fixed these.31. Converted to BtS 3.17 (fixed racial models in the unitpane, game options now default to the last way you had them set, and other issues).
Finally. Working on miscast effects should be fun. Any idea how I might go about adding a new river? Sometimes spring should turn up more water than expected.
Concerning patch g... I don't see the withdrawal bug in the list. Is it going to be included?
OK, I found what's causing the withdrawal bug.
Look at the lines in bold (from CvUnit.cpp):
The move order for the winning unit should only be given if there are no more defending units on the plot (even if the third argument of groupMove is NULL, the attacking stack will sometimes push the defending one away). Here's the fixed code:Spoiler :Code:if (pDefender->isFleeImmortal()) { pDefender->joinGroup(NULL); pDefender->setFleeImmortal(false); pDefender->doImmortalRebirth(); changeMoves(std::max(GC.getMOVE_DENOMINATOR(), pPlot->movementCost(this, plot()))); [B]getGroup()->groupMove(pPlot, true, ((canAdvance(pPlot, 0)) ? this : NULL));[/B] getGroup()->clearMissionQueue(); } if (pDefender->isFleeWithdrawl()) { pDefender->joinGroup(NULL); pDefender->setFleeWithdrawl(false); pDefender->jumpToNearestValidPlot(); changeMoves(std::max(GC.getMOVE_DENOMINATOR(), pPlot->movementCost(this, plot()))); [B]getGroup()->groupMove(pPlot, true, ((canAdvance(pPlot, 0)) ? this : NULL));[/B] getGroup()->clearMissionQueue(); szBuffer = gDLL->getText("TXT_KEY_MISC_YOU_UNIT_FLED", pDefender->getNameKey(), getNameKey()); gDLL->getInterfaceIFace()->addMessage(pDefender->getOwnerINLINE(), true, GC.getEVENT_MESSAGE_TIME(), szBuffer, "AS2D_OUR_WITHDRAWL", MESSAGE_TYPE_INFO, NULL, (ColorTypes)GC.getInfoTypeForString("COLOR_GREEN"), pPlot->getX_INLINE(), pPlot->getY_INLINE()); szBuffer = gDLL->getText("TXT_KEY_MISC_ENEMY_UNIT_FLED", pDefender->getNameKey(), getNameKey()); gDLL->getInterfaceIFace()->addMessage(getOwnerINLINE(), true, GC.getEVENT_MESSAGE_TIME(), szBuffer, "AS2D_THEIR_WITHDRAWL", MESSAGE_TYPE_INFO, NULL, (ColorTypes)GC.getInfoTypeForString("COLOR_RED"), pPlot->getX_INLINE(), pPlot->getY_INLINE()); }
Spoiler :Code:if (pDefender->isFleeImmortal()) { pDefender->joinGroup(NULL); pDefender->setFleeImmortal(false); pDefender->doImmortalRebirth(); changeMoves(std::max(GC.getMOVE_DENOMINATOR(), pPlot->movementCost(this, plot()))); [B]if (pPlot->getNumVisibleEnemyDefenders(this) == 0)[/B] [B]{[/B] [B]getGroup()->groupMove(pPlot, true, ((canAdvance(pPlot, 0)) ? this : NULL));[/B] [B]}[/B] getGroup()->clearMissionQueue(); } if (pDefender->isFleeWithdrawl()) { pDefender->joinGroup(NULL); pDefender->setFleeWithdrawl(false); pDefender->jumpToNearestValidPlot(); changeMoves(std::max(GC.getMOVE_DENOMINATOR(), pPlot->movementCost(this, plot()))); [B]if (pPlot->getNumVisibleEnemyDefenders(this) == 0)[/B] [B]{[/B] [B]getGroup()->groupMove(pPlot, true, ((canAdvance(pPlot, 0)) ? this : NULL));[/B] [B]}[/B] getGroup()->clearMissionQueue(); szBuffer = gDLL->getText("TXT_KEY_MISC_YOU_UNIT_FLED", pDefender->getNameKey(), getNameKey()); gDLL->getInterfaceIFace()->addMessage(pDefender->getOwnerINLINE(), true, GC.getEVENT_MESSAGE_TIME(), szBuffer, "AS2D_OUR_WITHDRAWL", MESSAGE_TYPE_INFO, NULL, (ColorTypes)GC.getInfoTypeForString("COLOR_GREEN"), pPlot->getX_INLINE(), pPlot->getY_INLINE()); szBuffer = gDLL->getText("TXT_KEY_MISC_ENEMY_UNIT_FLED", pDefender->getNameKey(), getNameKey()); gDLL->getInterfaceIFace()->addMessage(getOwnerINLINE(), true, GC.getEVENT_MESSAGE_TIME(), szBuffer, "AS2D_THEIR_WITHDRAWL", MESSAGE_TYPE_INFO, NULL, (ColorTypes)GC.getInfoTypeForString("COLOR_RED"), pPlot->getX_INLINE(), pPlot->getY_INLINE()); }
Traceback (most recent call last):
File "CvSpellInterface", line 16, in cast
File "<string>", line 0, in ?
File "CvSpellInterface", line 1073, in spellInquisition
AttributeError: 'NoneType' object has no attribute 'getStateReligion'
ERR: Python function cast failed, module CvSpellInterface
Not sure if this has been reported, but the Guardian of Pristinus Pass seems to not be spawning. Even with UF spawn chance set to 100% on a map with lots of peaks, it doesn't show up.
Can't see it either, time for a friendly bump.![]()
I think there is a misunderstanding about which unit(s) the code applies to.
The updateCombat and resolveCombat functions are always called by the attacking unit. This means that getGroup()->groupMove is not the withdrawal command for the defending unit, but the move command for the attacking one (pDefender->jumpToNearestValidPlot() and pDefender->doImmortalRebirth(), which make the defending unit withdraw, remain unchanged).
The code that actually moves the defending stack is not in the combat functions, but in CvUnit::setXY. If for some reason, a unit is ordered to move on a plot with enemy units on it (and if they cannot coexist), jumpToNearestValidPlot is called for this unit.
Save games can be found here.
Concerning your bug #2 (the plot a unit withdraws to), you'd have to modify CvUnit::jumpToNearestValidPlot, since that is the function that selects the plot the unit withdraws to.
Just wondering when we will see the new unit art and the water art? unless you're going to be releasing it today. I'm not trying to rush you or anything.
edit: things seem to be just fine for me, could you put up a savegame?
Certainly. I remember seeing a preview for the new art; it was a cool looking guy with an antler hat (or was it a staff?). What I'm seeing in my game is a gray skinned woman in skimpy clothes.