View Full Version : [MODCOMP]Broader Alignment
Grey Fox Apr 07, 2008, 04:31 AM __________________________________________________
Fall from Heaven 2: Broader Alignments by Grey Fox
for Fall from Heaven 2 v031e
version: 1.1
Download Fall from Heaven 2: Broader Alignments (http://forums.civfanatics.com/downloads.php?do=file&id=9034)
__________________________________________________
On demand from the fellow FfH2 modding community (Magister in particular :P),
I am now releasing my Broader Alignments mod.
What is Broader Alignments?Broader Alignment adds a new Alignment attribute to players, called Broad Alignment.
It is a value from -511 to +511, where -511 to -171 is Evil, -170 to +170 is Neutral, and 171 to 511 is Good, this makes 341 steps per alignment.
Each leader then start with a certain base alignment value, and it can then change in multiple ways during the game. By religion, civics, training units, constructing buildings, researching techs, using promotions, casting spells and events.
The biggest difference between this system and the original is that more actions matter. Religion changes isn't so strict in alignment changes. Not every Neutral player turns Evil by going OO, and not every Evil civ turns Good from going for the Order for example. Some civics change your alignment a bit, and eventually Events can change your alignment as well.
NEW! (and unrelated to alignments)
Version 1.1 also includes PyPostCombatLost and PyPostCombatWon on promotions. And PyPerTurn on units.
Techs can require bonuses (not tested yet though).
NotesEven though Events CAN change your alignment, I haven't added any changes to the events yet,
there are just so many events. I will do this sometime later, unless someone does it for me first. ;)
The Global Defines added to the mod determine the range which the Alignment spans. BROADER_ALIGNMENT_EVIL_MIN, BROADER_ALIGNMENT_EVIL_MAX, BROADER_ALIGNMENT_GOOD_MIN and BROADER_ALIGNMENT_GOOD_MAX have been added. The Neutral range is the span between BROADER_ALIGNMENT_EVIL_MIN, and BROADER_ALIGNMENT_GOOD_MIN.
BROADER_RAZE_BASE_MODIFIER - Used as the base for the population part of the formula. Only counts if population is above 1 or the city have culture.
BROADER_RAZE_MODIFIER - Counts for every 2 population, same conditions as the Base modifier.
BROADER_POPRUSH_BASE_MODIFIER - The base for the Alignment modifier when pop rushing.
BROADER_POPRUSH_MODIFIER - Alignment modifier per population point rushed
Important Notice: The values I've used for the leaders, religions and civics etc, are just what I felt was right atm and I haven't put much thought into them. Please come with your own suggestions. I also need help with what Events choices need to modify the Alignment.
INSTALLATION GUIDE
1) Copy the Fall from Heaven 2 031 folder and rename it properly
2) Copy all the contents of this mod into the folder, overwrite when it asks
3) Make a shortcut to the mod or start the mod like you start any other mod. (Or load mod in Civ4 BTS menu)(Or load mod in Civ4 BTS menu)
Changed SDK Files
CvCity.cpp
CvGameTextMgr.cpp
CvInfos.cpp
CvInfos.h
CvPlayer.cpp
CvPlayer.h
CvTeam.cpp
CvUnit.cpp
CvUnit.h
CyInfoInterface1.cpp
CyInfoInterface3.cpp
CyPlayer.cpp
CyPlayer.h
CyPlayerInterface2.cpp
CyUnit.cpp
CyUnit.h
These files are located in the folder [Changed SDK Files].
Check the changelog for exposed functions to Python.
__________________________________________________ Changelog
__________________________________________________
______________________________________________
Version 1.1 - Started 04/08/2008
Notes:
Conversion to 031e went smoothly.
Additions:
1. Added an alignment meter to the interface in CvMainInterface.py.
2. Added BROADER_RAZE_BASE_MODIFIER to the Defines. Defines how much razing a city changes your alignment.
3. Added BROADER_RAZE_MODIFIER to the Defines. Defines how much razing a city changes your alignment per every other population point (this*population/2).
4. Added BROADER_POPRUSH_BASE_MODIFIER to the Defines. Defines how much poprushing changes your alignment.
5. Added BROADER_POPRUSH_MODIFIER to the Defines. Defines how much poprushing changes your alignment.
6. Added iAlignmentModifier to CIV4UnitInfos.xml, CIV4PromotionInfos.xml, CIV4SpellInfos.xml, CIV4BuildingInfos.xml, CIV4ProjectInfo.xml, and CIV4TechInfos.xml
7. Added iPrereqBroadAlignment to CIV4UnitInfos.xml, CIV4PromotionInfos.xml, CIV4SpellInfos.xml, CIV4BuildingInfos.xml, and CIV4ProjectInfo.xml
8. BROADER_RAZE_BASE_MODIFIER set to -2
9. BROADER_RAZE_MODIFIER set to -1
10. BROADER_POPRUSH_BASE_MODIFIER set to -1
11. BROADER_POPRUSH_MODIFIER set to -1
12. SPELL_CONSUME_SOUL iAlignmentModifier set to -3
13. SPELL_FEAST iAlignmentModifier set to -3
14. Started adding game text.
15. Added iPrereqBroadAlignment to Civ4TechInfos.xml
16. Added iFirstToTechAlignmentModifier to Civ4TechInfos.xml
17. Added BonusPrereq to Civ4TechInfos.xml
18. Exposed getAlignmentModifier() to python from CvLeaderHeadInfo
19. Exposed getAlignmentModifier() to python from CvCivicInfo
20. Exposed getPrereqBroadAlignment() to python from CvBuildingInfo
21. Exposed getAlignmentModifier() to python from CvBuildingInfo
22. Exposed getPrereqBroadAlignment() to python from CvTechInfo
23. Exposed getAlignmentModifier() to python from CvTechInfo
24. Exposed getFirstToTechAlignmentModifier() to python from CvTechInfo
25. Exposed getBonusPrereq() to python from CvTechInfo
26. Exposed getPrereqBroadAlignment() to python from CvPromotionInfo
27. Exposed getAlignmentModifier() to python from CvPromotionInfo
28. Exposed getPrereqBroadAlignment() to python from CvUnitInfo
29. Exposed getAlignmentModifier() to python from CvUnitInfo
30. Exposed getPrereqBroadAlignment() to python from CvProjectInfo
31. Exposed getAlignmentModifier() to python from CvProjectInfo
32. Exposed changeBroadEventModifier(int iChange) to python from CvPlayer
33. Exposed updateAlignment() to python from CvPlayer
34. Added PyPostCombatLost and PyPostCombatWon to Civ4PromotionInfos.xml
35. Added iSpellExtraRange to Civ4PromotionInfos.xml
36. Added PyPerTurn to Civ4UnitInfos.xml
37. Exposed int getSpellExtraRange() to python from CvUnit
38. unloadAll() added before kill() in doTurn() if duration == 0 - as requested by MagisterCultuum
Python Help
use pPlayer.changeBroadEventModifier(iChange) to change a players alignment
use pPlayer.updateAlignment() to update a players alignment on demand (it will update next turn otherwise)
Changes:
- Set USE_ON_UPDATE_CALLBACK to 1 in PythonCallbackDefines.xml
- Put some Screen update code in onUpdate() to show the change in alignment as it changes.
- LEADER_BASIUM iAlignmentModifier set to 400
- LEADER_SABATHIEL iAlignmentModifier set to 370
- LEADER_CAPRIA iAlignmentModifier set to 330
- LEADER_CARDITH iAlignmentModifier set to 320
- LEADER_VARN iAlignmentModifier set to 310
- LEADER_EINION iAlignmentModifier set to 300
- LEADER_ETHNE iAlignmentModifier set to 290
- LEADER_GARRIM iAlignmentModifier set to 185
- LEADER_BEERI iAlignmentModifier set to 185
- LEADER_ARENDEL iAlignmentModifier set to 180
- LEADER_ARTURUS iAlignmentModifier set to 150
- LEADER_KANDROS iAlignmentModifier set to 150
- LEADER_DAIN iAlignmentModifier set to 60
- LEADER_RHOANNA iAlignmentModifier set to 50
- LEADER_FALAMAR iAlignmentModifier set to 40
- LEADER_AMELANCHIER iAlignmentModifier set to 20
- LEADER_SANDALPHON iAlignmentModifier set to 10
- LEADER_CASSIEL iAlignmentModifier set to 0
- LEADER_THESSA iAlignmentModifier set to -20
- LEADER_TASUNKE iAlignmentModifier set to -50
- LEADER_VALLEDIA iAlignmentModifier set to -60
- LEADER_HANNAH iAlignmentModifier set to -160
- LEADER_MAHALA iAlignmentModifier set to -175
- LEADER_AURIC iAlignmentModifier set to -180
- LEADER_KEELYN iAlignmentModifier set to -190
- LEADER_SHEELBA iAlignmentModifier set to -200
- LEADER_CHARADON iAlignmentModifier set to -220
- LEADER_JONAS iAlignmentModifier set to -230
- LEADER_PERPENTACH iAlignmentModifier set to -290
- LEADER_FAERYL iAlignmentModifier set to -300
- LEADER_FLAUROS iAlignmentModifier set to -310
- LEADER_ALEXIS iAlignmentModifier set to -330
- LEADER_OS-GABELLA iAlignmentModifier set to -360
- LEADER_TEBRYN iAlignmentModifier set to -365
- LEADER_HYBOREM iAlignmentModifier set to -400
- LEADER_BARBARIAN iAlignmentModifier set to -245
---------------------------------------------------
- RELIGION_THE_ORDER iAlignmentModifier set to 512
- RELIGION_OCTOPUS_OVERLORDS iAlignmentModifier set to -256
- RELIGION_RUNES_OF_KILMORPH iAlignmentModifier set to 256
- RELIGION_THE_EMPYREAN iAlignmentModifier set to 384
- RELIGION_COUNCIL_OF_ESUS iAlignmentModifier set to -384
- RELIGION_ASHEN_VEIL iAlignmentModifier set to -512
---------------------------------------------------
- CIVIC_CONSUMPTION iAlignmentModifier set to -6
- CIVIC_LIBERTY iAlignmentModifier set to 10
- CIVIC_CONSUMPTION iAlignmentModifier set to -6
- CIVIC_SACRIFICE_THE_WEAK iAlignmentModifier set to -32
- CIVIC_OVERCOUNCIL iAlignmentModifier set to 24
- CIVIC_UNDERCOUNCIL iAlignmentModifier set to -24
---------------------------------------------------
- BUILDING_ASYLUM iAlignmentModifier set to -5
- BUILDING_CITY_OF_A_THOUSAND_SLUMS iAlignmentModifier set to -8
- BUILDING_DEMONS_ALTAR iAlignmentModifier set to -10
- BUILDING_DUNGEON iAlignmentModifier set to -5
- BUILDING_DWARF_CAGE iAlignmentModifier set to -5
- BUILDING_ELF_CAGE iAlignmentModifier set to -5
- BUILDING_HUMAN_CAGE iAlignmentModifier set to -5
- BUILDING_ORC_CAGE iAlignmentModifier set to -5
- BUILDING_HOPE iAlignmentModifier set to 1
- BUILDING_INFIRMARY iAlignmentModifier set to 1
- BUILDING_INFERNAL_GRIMOIRE iAlignmentModifier set to -5
- BUILDING_MERCURIAN_GATE iAlignmentModifier set to 10
- BUILDING_MOKKAS_CAULDRON iAlignmentModifier set to -5
- BUILDING_PILLAR_OF_CHAINS iAlignmentModifier set to -10
- BUILDING_PROPHECY_OF_RAGNAROK iAlignmentModifier set to -15
- BUILDING_SHRINE_OF_SIRONA iAlignmentModifier set to 10
- BUILDING_SMUGGLERS_PORT iAlignmentModifier set to -1
- BUILDING_SOUL_FORGE iAlignmentModifier set to -10
- BUILDING_TOWER_OF_COMPLACENCY iAlignmentModifier set to -10
- BUILDING_TOWER_OF_NECROMANCY iAlignmentModifier set to -5
---------------------------------------------------
- TECH_CORRUPTION_OF_SPIRIT iAlignmentModifier set to -10
- TECH_DECEPTION iAlignmentModifier set to -7
- TECH_DIVINATION iAlignmentModifier set to 3
- TECH_HONOR iAlignmentModifier set to 7
- TECH_INFERNAL_PACT iAlignmentModifier set to -10
- TECH_INFERNAL_PACT iFirstToTechAlignmentModifier set to -10
- TECH_MALEVOLENT_DESIGNS iAlignmentModifier set to -10
- TECH_MESSAGE_FROM_THE_DEEP iAlignmentModifier set to -5
- TECH_MIND_STAPLING iAlignmentModifier set to -5
- TECH_NECROMANCY iAlignmentModifier set to -3
- TECH_ORDERS_FROM_HEAVEN iAlignmentModifier set to 15
- TECH_POISONS iAlignmentModifier set to -3
- TECH_RIGHTEOUSNESS iAlignmentModifier set to 15
- TECH_WAY_OF_THE_EARTHMOTHER iAlignmentModifier set to 5
- TECH_WAY_OF_THE_WICKED iAlignmentModifier set to -5
- TECH_WAY_OF_THE_WISE iAlignmentModifier set to 5
---------------------------------------------------
- Notes on units: I was unsure of what to set these too, so I just set em at a relatively low value
- UNIT_DISEASED_CORPSE iAlignmentModifier set to -1
- UNIT_PYRE_ZOMBIE iAlignmentModifier set to -1
- UNIT_DROWN iAlignmentModifier set to -1
- UNIT_DEATH_KNIGHT iAlignmentModifier set to -1
- UNIT_DUIN iAlignmentModifier set to -2
- UNIT_DONAL iAlignmentModifier set to 4
- UNIT_CORLINDALE iAlignmentModifier set to 5
- UNIT_CHALID iAlignmentModifier set to 4
- UNIT_BEAST_OF_AGARES iAlignmentModifier set to -5
- UNIT_ROSIER iAlignmentModifier set to -4
- UNIT_ABASHI iAlignmentModifier set to -4
- UNIT_EIDOLAN iAlignmentModifier set to -4
- UNIT_EUROBATRES iAlignmentModifier set to 4
- UNIT_HEMAH iAlignmentModifier set to -2
- UNIT_MARDERO iAlignmentModifier set to -5
- UNIT_MARY iAlignmentModifier set to -2
- UNIT_MESHABBER iAlignmentModifier set to -6
- UNIT_PALADIN iAlignmentModifier set to 4
- UNIT_PARAMANDER iAlignmentModifier set to 2
- UNIT_SHADOWRIDER iAlignmentModifier set to -2
- UNIT_SPHENER iAlignmentModifier set to 6
- UNIT_STYGIAN_GUARD iAlignmentModifier set to -2
- UNIT_TEUTORIX iAlignmentModifier set to 2
- UNIT_VALIN iAlignmentModifier set to 4
- Raze formula takes in acount the effect the city has on the AC.
(Lowers the evil score by the amount the city affects the AC, so if razing the city
would give you -5 evil, and the city had a +5 AC effect, your alignment won't change)
______________________________________________
Version 1.0 - Started 04/03/2008
Notes: Started work on Broader Alignments, Broad Alignment is a value from
-511 to +511, where -511 to -171 is Evil, -170 to +170 is Neutral,
171 to 511 is Good, this makes 341 steps per alignment
Even though Events CAN change your alignment, I havn't added any changes
to the events yet. There are just so many events. I will do this sometime
later, unless someone does it for me first. ;)
Additions:
- Added the iAlignmentModifier attribute to Civ4LeaderHeadInfos.xml, CIV4ReligionInfos.xml,
CIV4CivicInfos.xml, and to CIV4EventInfos.xml
- Added the iAlignmentModTowardsNeutral attribute to CIV4EventInfos.xml
- Added the iPrereqBroadAlignment attribute to CIV4EventTriggerInfos.xml
The following attributes need to be modified based on input from Kael, the developement team
and the rest of the FfH2 community. I based them on how the religions change alignments in the current implementation.
- RELIGION_LEAVES iAlignmentModifier set to 0 (meaning it won't change your alignment)
- RELIGION_THE_ORDER iAlignmentModifier set to 256
- RELIGION_OCTOPUS_OVERLORDS iAlignmentModifier set to -128
- RELIGION_RUNES_OF_KILMORPH iAlignmentModifier set to 128
- RELIGION_THE_ASHEN_VEIL iAlignmentModifier set to -256
- RELIGION_THE_EMPYREAN iAlignmentModifier set to 192
- RELIGION_COUNCIL_OF_ESUS iAlignmentModifier set to -192
Basically, Leaves won't change your religion, Order and Veil will bring you quite a bit towards
their alignments, RoK and OO will bring you half as far, and Empyrean and CoE in between.
With the leaders I set Sabathiel at halfway from neutral to max good, every good leader after
Sabathiel I reduced with 24, which is 1/7th of 170. And 170 is half of
341, and each alignment has 341 steps (check Notes above).
These will also need input, but I based these values on what order the
civs are placed in the selection list, which obviously is from Good to
Evil.
- LEADER_BARBARIAN iAlignmentModifier set to -245 (Same as Sheelba)
- LEADER_SABATHIEL iAlignmentModifier set to 341
- LEADER_CAPRIA iAlignmentModifier set to 341
- LEADER_VARN iAlignmentModifier set to 317
- LEADER_ETHNE iAlignmentModifier set to 293
- LEADER_EINION iAlignmentModifier set to 293
- LEADER_BASIUM iAlignmentModifier set to 269
- LEADER_GARRIM iAlignmentModifier set to 245
- LEADER_BEERI iAlignmentModifier set to 245
- LEADER_CARDITH iAlignmentModifier set to 221
- LEADER_ARENDEL iAlignmentModifier set to 197
- LEADER_THESSA iAlignmentModifier set to 161
- LEADER_AMELANCHIER iAlignmentModifier set to 149
- LEADER_ARTURUS iAlignmentModifier set to 72 (Should Arturus be closer to good than Kandros?)
- LEADER_KANDROS iAlignmentModifier set to 72
- LEADER_SANDALPHON iAlignmentModifier set to 48
- LEADER_FALAMAR iAlignmentModifier set to 24
- LEADER_CASSIEL iAlignmentModifier set to 0
- LEADER_RHOANNA iAlignmentModifier set to -24
- LEADER_TASUNKE iAlignmentModifier set to -24
- LEADER_VALLEDIA iAlignmentModifier set to -48
- LEADER_DAIN iAlignmentModifier set to -48
- LEADER_HANNAH iAlignmentModifier set to -72 (Should Hannah and Falamar have the exact same alignment, it feels right to have Hannah more towards evil?)
- LEADER_AURIC iAlignmentModifier set to -197
- LEADER_CHARADON iAlignmentModifier set to -218
- LEADER_MAHALA iAlignmentModifier set to -218
- LEADER_KEELYN iAlignmentModifier set to -239
- LEADER_PERPENTACH iAlignmentModifier set to -239
- LEADER_JONAS iAlignmentModifier set to -260
- LEADER_SHEELBA iAlignmentModifier set to -260
- LEADER_FAERYL iAlignmentModifier set to -281
- LEADER_ALEXIS iAlignmentModifier set to -302 (Should Alexis be more evil than Flauros?)
- LEADER_FLAUROS iAlignmentModifier set to -302
- LEADER_TEBRYN iAlignmentModifier set to -323
- LEADER_OS-GABELLA iAlignmentModifier set to -323
- LEADER_HYBOREM iAlignmentModifier set to -341
All leaders above follow the pattern I described, somewhat.
There is also a small gap between Neutral and the other two. But that is as it should
I think. The odd one in this group is Hannah, which differ quite alot in alignment from
her leader partner. But I feel I got her alignment down quite right. With Octopus Overlords, she'll
go Evil, but Falamar won't. Everyone at 24 to -24 won't change from neutral with just
RoK or OO.
For Civics I did the following: (As with the others these need input and testing)
- CIVIC_CONSUMPTION iAlignmentModifier set to -4
- CIVIC_LIBERTY iAlignmentModifier set to +4
- CIVIC_SLAVERY iAlignmentModifier set to -16
- CIVIC_MILITARY_STATE iAlignmentModifier set to -4
- CIVIC_CONQUEST iAlignmentModifier set to -4
- CIVIC_SACRIFICE_THE_WEAK iAlignmentModifier set to -24
- CIVIC_FEND_FOR_THEMSELVES iAlignmentModifier set to -12
- CIVIC_PROTECT_THE_MEEK iAlignmentModifier set to +12
- CIVIC_PUBLIC_HEALERS iAlignmentModifier set to +24
- CIVIC_OVERCOUNCIL iAlignmentModifier set to +16
- CIVIC_UNDERCOUNCIL iAlignmentModifier set to -16
Grey Fox Apr 07, 2008, 05:15 AM Do you lose druids (and similar units) if you change alignment?
If so, might need to change how alignment specific units work...
Tarquelne Apr 07, 2008, 06:46 AM Excellent!
Is there a function for alignment "drift"? A per-turn alignment change?
How do you add alignment changes to events?
Hmm... what do I have to do to be "Good" with Ashen Veil as my state religion? :) "New Family Friendly Mass-Sacrifice Policy!" "Come and see what diseased corpses can do for you!"
Grey Fox Apr 07, 2008, 07:15 AM I think it's impossible atm, but if you are Sabathiel or Capria, you would probably only be neutral (Actually, all good leaders will be neutral with Veil). And when events are added, you could possibly become good. And then you could use Public Healers to solidify it a bit.
But I think it would be pretty hard to achieve and would require quite a lot of good choices in events.
MagisterCultuum Apr 07, 2008, 07:41 AM Very nice. Too bad I won't have any time to play or mod for a while, maybe not until this school year is over.
Currently, no units abandon you because of alignment changes. You just can't build more.
Having Dain be more evil than Valledia is definitely wrong (ok, I think I misread their alignments, but still, Valledia is much more evil than Dain). Kael himself has stated that he is afraid of Valledia. Don't you remember Valledia's pedia entry? She freed the convicted necromancer Sammuel and ordered him to use his forbidden knowledge to do some pretty horrible things to Einion Logos's wife. She was tortured, driven insane, made to curse her husband, and made unable to die until Einion killed her my removing the rune on her chest. She is ruthlessly efficient and unhindered by morals, although not evil for the sake of being evil or from a huge ego. (I consider the Council of Esus to be the most appropriate religion for her.0 This was done to encourage the Elohim to keep fighting the Infernals, since she believed that the demons would attack the Amuites next. Calling to the Order to help doesn't redeem such an action (although in your system it could have been done to keep her alignment neutral, I guess). She should be more evil in this system. Dain was outraged at this, although he had no idea how bad her actions really were. He is a much kinder, more philosophical individual. (I always consider the Empyrean to be the best religion for him.) His alignment should be closer to good than evil. I consider him a little more good than Falamar.
I would definitely think that Tasunke is a neutral-evil leader while Rhoanna is neutral-good. Tasunke's is fiercely competitive, and his views are not that different from Charadon's. He is a very jealous and violent person who will hurt almost anyone to make himself better off. As evidenced by the race both leaders were involved in as children, where Rhoanna was easily beating Tasunke but stopped to help him back onto his horse, Rhoanna is not interested in hurting others. She is trying to unite and civilize a fractured people. Although a better rider than Tasunke, she is a diplomat rather than a warrior.
I don;t consider Sheelba as evil as Jonas. I don;t consider Mahala as evil as Charadon. In both cases, the famale leader is trying to bring civilization to her people.
Thessa should probably be less good than Amelanchier. Thessa is an archmage (which according to one of Kael's campaigns basically requires an individual believe the end justifies the means) who has studies forbidden texts on necromancy that were captured from the Calabim. On her wedding night she murdered her husband in a necromantic ritual in order to use his soul to increase the power of a spell to cleanse the forests of the strange corruption. I also think that Amelanchier should be no more good than the Dwarven leaders. They are merely not very ardent in their fight against evil, while Amelanchier violently combats both good and evil if they encroach on his land.
Good Veil should be really hard to achieve. I'm going to add a really nice Good-only AV-only hero to encourage people to try for it.
Evil Order seems like it would make more sense; this religion did become corrupt after all. Would it be possible to make this religion not inherently make you more good, but to make other alignment changes more significant? It seems like its fanaticism could easily lead to them being strongly good or evil, never neutral. Evil Order probably fits the Calabim pretty well.
I think I'm going to make priests always buildable, but have state religion and alignment requirements for their spells. A good god would not give spells to evil men who are acting in his name.
Grey Fox Apr 07, 2008, 07:45 AM Great input Magister, and I agree with it all.
EDIT:
Should Sabathiel be even more good? The problem I see here is that he is not the one implementing his leadership. Should Capria be even less good, or kept at the same level as Sabathiel?
Who is the more Good dwarven leader? (Of both civs). In my mind Arturus is more of a traditionalists who holds true to the Khazad honour and culture. Kandros is more someone who would do almost anything if he believes it to be the right thing to do. Still true to the Khazad way, but if he believes something is done the wrong way, even if it is ancient tradition, he won't agree to it.
I am right when I say that Beeri Bawl feels slightly more good than Garrim Gyr?
How evil is Faeryl really? She is truly an egoist, and powermonger. She'd lie to, sleep with, play with feelings, torture, anyone or anything without regret it seems. Even when the elves were united she faked her feelings towards Arendel and schemed and always saw more behind what Arendel said than actually was there. Suspicious and deceiving. A backstabber if there ever was one.
Alexis and Flauros. Two different kinds of personalities. Equally amounts of evil? Just different? Alexis is a bit like Faeryl, only perhaps more of a jealous person. A greedy child who wants what others have just cause they have it and she don't. Kills without regret. Will do anything to not die.
Flauros. Carefree, planner. Smart. Plays with his "food". He is the kind of guy who would be able to plan and execute the Holocaust. Doesn't necessarily kill without hesitation like his sister. Able to cooperate with anyone if it suits his objectives.
Perpentach and Keelyn. Perpentach doesn't seem to have an agenda. But maybe that's what he wants you to believe? This guy is smart, but insane. But he likes to be insane. He got alot of friends in his head, and enemies. They are all copies of course, and probably distorted by his own mind. He would probably be a wise person if he wasn't insane, and he probably still is, in his own way.
Can change his mind in an instant, but possibly planned it that way from the beginning. Sees the world as a stage and himself as the leading role and writer.
Keelyn however, isn't insane, not like Perpentach anyways. Deranged perhaps, and childish. But to take control of an empire when the king is away? Clearly she is capable.
Sandalphon seems very neutral. Wants to be left alone by friends and enemies alike.
xienwolf Apr 07, 2008, 07:49 AM You do not lose Druid/Pally/Eidolon on alignment changes.
EDIT: Yeah so I am slow in the mornings :p
Grey Fox Apr 07, 2008, 10:19 AM Ok, I finally reached a result I am satisfied with. Here is a screenshot of the alignment meter I've been working on:
http://forums.civfanatics.com/attachment.php?attachmentid=173535&stc=1&d=1207584989
Like it? What should I change otherwise? Post what you think.
stp Apr 07, 2008, 11:00 AM I think that Perpentach should be more evil than Keelyn. He was one of the corrupt Archmages of Patria and there is a text where Kylorin himself mentions his wickedness.
Keelyn simply lacks the concepts of good or evil. When your only friends are demons and other summons, you will likely not learn a lot about good ideologies.
Another thought: It might be cool that Perpentach randomly changes his alignment around his base value. He randomly shows some mercy in his insanity (see Beri Brawl).
By the way: Why do you see Beri more good than Garrim?
Grey Fox Apr 07, 2008, 11:35 AM By the way: Why do you see Beri more good than Garrim?
That's just a hunch I have. But Garrim seems more into the arcane, and that usually means a characteristic that is driven by the end justify the means. But I am not sure at all.
xienwolf Apr 07, 2008, 12:36 PM I like the alignment bar. How does it look in City Zoom though?
Grey Fox Apr 07, 2008, 12:40 PM I like the alignment bar. How does it look in City Zoom though?
It doesn't show in city zoom.
xienwolf Apr 07, 2008, 12:46 PM Sweetness :) In that case I think I just plain love it :) What will the indicator of your current location be?
Grey Fox Apr 07, 2008, 12:49 PM It's that tiny line almost at the center (it's not at the center if thats what you thought it was). You can't miss it really if you know what to look for. :p
xienwolf Apr 07, 2008, 01:05 PM Ah, I saw that but since it was centered I thought it was just to mark the middle of the road :) I do like that it is chunked into 6 portions, makes it 2 bars per alignment and allows you to know when you are about to switch over.
MagisterCultuum Apr 07, 2008, 03:05 PM I think it would be a good idea to make research effect alignment too. Researching Way of the Wicked, Corruption of Spirit, Necromancy, Deception, Malevolent Designs, etc., would move you towards evil (especially if you were the first to research them). Researching Way of the Wise, Honor, Righteousness, etc, would move you towards good.
Building units (mostly heroes) and buildings (mostly wonders) should effect alignment too.
I also think that casting spells should be able to alter your alignment. Something like raise skeleton could could move you 1 towards evil, while spells like summon Balor should move slightly more. (Only something like Worldbreak would have a huge effect though.) I also think that certain spells should require you have an alignment in a certain range.
Making the player's contribution to the AV count towards their alignment would probably be good (this could actually take care of most of the buildings/unit changes)
I think that population rushing moving you slightly towards evil could be good too.
Grey Fox Apr 07, 2008, 03:16 PM Probably need to increase the alignment range for that, but that's no real problem (only the alignment meter would have more points per pixel, it's already at 4.78 points per pixel).
JDexter Apr 07, 2008, 04:12 PM Nice indicator graphic (and of course modmod), I like it and think it's functional.
MagisterCultuum Apr 07, 2008, 04:17 PM Why does Slavery make you move towards good? I think the <iAlignmentModifier>16 is meant to be -16
Grey Fox Apr 07, 2008, 04:43 PM Ah yeah. Typo. Suggestions for civic alignment modifiers btw?
And anyone dared to start on the events? :p
Btw, next version I will open up more functions to python so python modders can get more to work with. And add the alignment modifier to techs, units, spells, buildings, add some Defines for various stuff like alignment change at pop-rush, and stuff like that. Also, I'll add broadAlignmentRequirement to most stuff so that it can require a certain value instead of the strict alignment.
I'll also start adding GameText stuff, so you can see how much you change your alignment through the choices you make. (Playing blindly is never good in my experience)
Any requests for the next version?
MagisterCultuum Apr 07, 2008, 05:28 PM Beyond what you already said you'd be adding? Not really, at least nothing big.
Maybe making it so that units also abandon you if you get out of a unit-specific alignment range? I can easily see some heroes not minding if they serve a good(/evil) or neutral civ, but being quite unwilling to serve evil(/good). Different units might have different thresholds of what they consider to good or evil.
You know what might be cooler (but may be beyond the modmod's scope, as I doubt it could be made modular)? Replacing the current abandonment mechanic with a python function determining if and when unit will abandon you or not. For instance, Arthendain is a RoK hero, but the civilopedia mentions he gave his soul to and was given new life by Sucellus; thus I don't think he would have a problem serving in an FoL civ. Of course, this could get confusing since I doubt the python function determining when the unit would defect would be automatically documented like somehting in XML/SDK would be.
(I said defect because I'm still hoping that the abandonment mechanism will be changed so that instead of killing them it would trigger an event that allows a rival that still meet the unit's religion/alignment/civic requirements to take control of the unit)
I'd like for spells to have alignment prereqs and the ability to change alignment too, but if this can be done easily enough through python there probably isn't much point in adding new tags. (There are other tags I'd like to add or changed the spell schema, like allowing more than 2 prereq promotions, removing more than 3 promotions, and letting most of the tags have or requirements, but I guess that isn't relevant to this modmod and not particularly important since python could be used for these too, albeit more awkwardly)
Oh, this is probably beyond the scope of the modmod, but I'd really like it if alignment (as well as religion, civics, leaders, and civs) changed the AI weighting towards researching different techs (and maybe also buildings units/heroes/buildings/wonders/rituals). I despise the coding in CvGameUtils.py that forces the Ljosalfar go straight for Way of the Forests, the Khazad for Way of the Earthmother, The Luchuirp for Construction, Good civs with Philosophy for Orders from Heaven, Evil civs with Philosophy for Corruption of Spirit, AV civs for Infernal Pact. I really think that this is holding the AI back, and making games too predictable. It is the main reason people complain about Evil civs always turning neutral. I also hate how this file makes it impossible for Neutral civs to found the Order or AV, and how it stops you from trading religion founding techs with them. I really think that all of these things need to be replaced with thematically and strategically appropriate weightings; for things that really are unthematic (e.g., the Corruption of Spirit or Malevolent Design tech for the very goos Elohim or Bannor) would have a negative weighting high enough to make the leader refuse to even accept the tech as a gift. Still, you might be able to get them to take it if you offer it in conjunction with somehting they really want. This would be a great way to try to corrupt (or redeem) a neighboring civ.
Grey Fox Apr 07, 2008, 05:42 PM Good good. I can't say I will add everything you want, but I will see what I make time for. In my opinion, if something can be done via SDK and a tag in XML, I'd rather do that over python. First it's more in line with what Kael already did with Shadow, and secondly it's faster. But I will also add the python functionality, cause sometimes it's easier to use python and sometimes you need to do something more complex during the development of your mod. Something that could be added to the SDK at a later time if warranting.
I love working on stuff that might be useful for the real mod eventually, and having alignment affect the weighting is something that the game needs. I guess the Flavor weighting on techs and Leaders is already supposed to do this, but they are too weak I guess.
What would be the smartest way to make the religion dependent civs prioritize their favorite religion instead of being hardcoded to tech for it?
MagisterCultuum Apr 07, 2008, 06:26 PM Yeah, SDK is better in general, but if you want something kinda complicated and particular to individual units that will have to be hardcoded then python is probably better. (Plus, I just started teaching myself C++ and haven't had much time to spend on it, while I've been using python for over a year)
I mostly just mentioned python for things I thought no one else would really need to use. The alignment(/civ/leader/religion/civic) weighting was the main thing.
(I'm actually thinking that the way I was thinking of changing how units abandon might be better dealt with entirely though random events that have a 100% chance of happening when their python prereqs are met, so now new tags or functions are really needed.)
As for how.... Leader specific religious tech weightings could probably be based on the same <ReligionWeightModifiers> that affect how the AI views the percentage of its population to follow a religion, thus the likelihood the leader will convert. (Overall, I think most of these need to be increased.) It think it makes perfect sense for civs to prioritize researching the techs that found the religions they would like to convert to, and to avoid those that found religion they hate. This wouldn't work as well in Unrestricted Leaders games (as it is actually a leader weight system , not civ specific), but in a normal game it could be pretty effective.
I'm not sure how to make sure a civ is weighted towards researching techs that allow UUs and UBs, but now that I think of it I believe I've heard that is already the case; thus, we may not actually have to do anything to make civs prioritize these, just to make them choose techs appropriate for their religion/alignment.
It may be appropriate to create tags new in CIV4TechInfos.xml (and maybe CIV4UnitInfos.xml and CIV4BuildingInfos.xml) that modify the tech's value based on alignment and religion (and possibly civics, although this probably isn't as important). You may need one tag per religion, since a tech may be important for more than one religion. Obviously civs would consider techs with a higher weighting towards their state religion more important, but if you wish you could also make leaders put greater value on techs based on the same <ReligionWeightModifiers> values. That could, for example, make the Svartalfar value the techs (and the prereqs to the techs) that allow Esus UUs before they manage to found the religion (or have it spread to them), so that they will be more effective once they convert. This would allow civs not only to prioritize the religion founding tech once they can research it, but also the techs that will help them reach the point.
One tag that determines how good or evil a tech is would probably suffice for the alignment weightings. The closer the leaders alignment to this value the more he/she/it would want the tech. I still think it should be set up so that good civs will avoid evil techs and vice versa. Obviously, most techs would have a neutral alignment weighting.
xienwolf Apr 07, 2008, 07:58 PM Well since alignment is a number now, and a fairly large one, you should be able to have it just add to the weighting factor to decide what tech to research, but you could possibly also grant certain technologies an Alignment Weight multiplier if they are especially flavorful for certain alignments (so Way of the Wicked would have a *(-5) Alignment Modifier, thus ensuring that someone heavily good will almost never research it, and someone very evil will be almost guaranteed once able). To weight a Neutral tech so that people heavily on either side would be less likely to research it you would need something like [ 1000 - 3*Abs|Alignment| ], that would be a bit tricky to work out nice and clean though I imagine...
For religion oriented Civs going after their religion... that one do be a bit more tricky :( Unless you write an entire section with formulas specific to each individual tech, then you just make an entry for each civ to get a bonus value to that tech. Could be a worthwhile thing to do for the SDK, but would need updated formulas any time that Techs, Religions or Civs get changed. So basically every patch :P
Grey Fox Apr 08, 2008, 08:21 AM I'm adding an alignment modifier when razing cities. Should it be a strict value (-5 atm). Or depend on the population count, or both? (i.e. X+Y*Pop)
EDIT:
How much should alignment be modified per population point rushed?
Should Conscription be considered evil? (Citizens do get angry at least)
MagisterCultuum Apr 08, 2008, 09:43 AM I'm thinking conscription shouldn't really effect alignment. Frankly, conscription fits Order civs better than the AV ones.
I'd probably just make pop rushing move you 1 or 2 towards evil for now, since the civic that allows it already moves you 16 towards evil (or will when you fix the typo) and you would typically kill about 6 pop each time you rush anyway. We'll see about adjusting it after we've played with it for a while.
For razing, I'm thinking it may be best to use a formula based on the one used to determine changes to the AC; it might be better not to even bother changing alignment when razing, but to just incorporate each leader's contribution to the AC as part of their alignment. (It might be appropriate for pop rushing to effect the AC, in which case you wouldnlt need to deal with that separately either)
Spells like Feast and Consume Soul need to effect your alignment even more than pop rushing does. I think that drown should move you towards evil too. (In my modmod, drowns are not buildable and do not upgrade to anything; any living, non-immortal melee unit (I may also allow recon and archer units) can be drowned, and the unit created will have its base strength adjusted accordingly. Stygain Guards will start with Water Walking but are limited to the coasts.)
It may be appropriate for your alignment to move towards evil for every Demon or undead unit you build or summon. Some other Heroes (Rosier, Hemah, Mary Morbus, Gibbon, Abashi, Losha, Baron von Halfmourn, ect) should probably make you more evil too, while others (Sphenor, Chalid, Valin Phanuel,
Grey Fox Apr 08, 2008, 10:28 AM I'm thinking conscription shouldn't really effect alignment. Frankly, conscription fits Order civs better than the AV ones. Yeah that was what I was thinking too. If anything it might move you towards neutral. But nah.
I'd probably just make pop rushing move you 1 or 2 towards evil for now, since the civic that allows it already moves you 16 towards evil (or will when you fix the typo) and you would typically kill about 6 pop each time you rush anyway. We'll see about adjusting it after we've played with it for a while.
Typically kill 6? I usually kill one, but we're not discussing playstyle here. :p
You mean 1 or 2 per population then?
For razing, I'm thinking it may be best to use a formula based on the one used to determine changes to the AC; it might be better not to even bother changing alignment when razing, but to just incorporate each leader's contribution to the AC as part of their alignment. (It might be appropriate for pop rushing to effect the AC, in which case you wouldnlt need to deal with that separately either)
You mean so that razing Veil actually move you towards good, etc?
Spells like Feast and Consume Soul need to effect your alignment even more than pop rushing does. I think that drown should move you towards evil too. (In my modmod, drowns are not buildable and do not upgrade to anything; any living, non-immortal melee unit (I may also allow recon and archer units) can be drowned, and the unit created will have its base strength adjusted accordingly. Stygain Guards will start with Water Walking but are limited to the coasts.)
Feast only eat 1 pop per cast right? So that is easily added in the iAlignmentModifier xml tag for spells. I'm unsure what Consume Soul does without checking, but maybe it will require python.
It may be appropriate for your alignment to move towards evil for every Demon or undead unit you build or summon. Some other Heroes (Rosier, Hemah, Mary Morbus, Gibbon, Abashi, Losha, Baron von Halfmourn, ect) should probably make you more evil too, while others (Sphenor, Chalid, Valin Phanuel,
This can be easily added through the iAlignmentModifier xml tag I've added in the next version on units.
MagisterCultuum Apr 08, 2008, 11:03 AM I tend to mostly rush buildings that give extra food, health, or happiness. Typically I stick to gold rushing (I'm usually good), but in my last game I found that killing off 5-10 pop at a time for buildings that help your cities grow more quickly is very effective. It allows more rushing in the future, and actually makes your cities more productive in the mean time.
I guess. Well, from what I've heard razing cities tends to raise the AC anyway, the the decrease from it having AV in it tends to just make things break even (exception: razing the AV holy city). Assuming that is the case, then basing the alignment change on this makes sense. (Plus, Good here is Anti-Evil, right?)
Consume Soul is just like Feast, except that instead of giving you xp it makes the caster able to cast another spell that turn.
If I had known you had already added iAlignmentModifier tags in the CIV4SpellInfos.xml and CIV4UnitInfos.xml I probably wouldn't have mentioned it again. Is there also such a tag in CIV4BuildingInfos.xml? What about prequisite alignment ranges in all three files?
Perhaps you should have the changes in the next version posted in the changelog in the first post.
Oh, I have a non-mechanics-related suggestion; change the religion screen to show the religions in order from good good to evil (or evil to good if you prefer) instead of the apparently random order thay have now (FoL-Order-OO-RoK-AV-Empyrean-CoE). This is easy to do by changing the order in which they occur in C:\Program Files\Firaxis Games\Sid Meier's Civilization 4\Beyond the Sword\Mods\Fall from Heaven 2 031\Assets\XML\Gameinfo\CIV4ReligionInfos.xml, but there is one problem: I think that some of the icons are handled in the SDK, so unless you change this too they will display incorrectly (Order will have a leaf icon, RoK an octopus, etc)
You may also want to reconsider how each religion changes your alignment first. While your current system seems more symmetrical (Empyrean should definitely be more good that RoK, and the Empyrean-Esus rivalry mirrors the Order-AV rivalry), the Octopus Overlords seems more evil than the Council of Esus to me.
Is this modmod going to stay modular? It seems like it is getting to the point where it would make more sense for it not to be. Besides, if you turn off modular loading the different DLL already changes the main game significantly; everyone is always neutral.
Grey Fox Apr 08, 2008, 11:10 AM Should losing a building/unit which gave you an alignment change, reverse that change?
Grey Fox Apr 08, 2008, 11:25 AM If I had known you had already added iAlignmentModifier tags in the CIV4SpellInfos.xml and CIV4UnitInfos.xml I probably wouldn't have mentioned it again. Is there also such a tag in CIV4BuildingInfos.xml? What about prequisite alignment ranges in all three files?
I've added iAlignmentModifier in CIV4UnitInfos.xml, CIV4PromotionInfos.xml, CIV4SpellInfos.xml, CIV4BuildingInfos.xml, CIV4ProjectInfo.xml, and CIV4TechInfos.xml
and iPrereqBroadAlignment in in CIV4UnitInfos.xml, CIV4PromotionInfos.xml, CIV4SpellInfos.xml, CIV4BuildingInfos.xml, and CIV4ProjectInfo.xml
Perhaps you should have the changes in the next version posted in the changelog in the first post.
I'll do that, but then again, I might release a version later tonight.
Oh, I have a non-mechanics-related suggestion; change the religion screen to show the religions in order from good good to evil (or evil to good if you prefer) instead of the apparently random order thay have now (FoL-Order-OO-RoK-AV-Empyrean-CoE). This is easy to do by changing the order in which they occur in C:\Program Files\Firaxis Games\Sid Meier's Civilization 4\Beyond the Sword\Mods\Fall from Heaven 2 031\Assets\XML\Gameinfo\CIV4ReligionInfos.xml, but there is one problem: I think that some of the icons are handled in the SDK, so unless you change this too they will display incorrectly (Order will have a leaf icon, RoK an octopus, etc)
I'll look into it.
You may also want to reconsider how each religion changes your alignment first. While your current system seems more symmetrical (Empyrean should definitely be more good that RoK, and the Empyrean-Esus rivalry mirrors the Order-AV rivalry), the Octopus Overlords seems more evil than the Council of Esus to me.
My theory was that OO was RoK's counterpart, Esus/Empyrean and Veil/Order. But I can see why Esus would be less evil.
Is this modmod going to stay modular? It seems like it is getting to the point where it would make more sense for it not to be. Besides, if you turn off modular loading the different DLL already changes the main game significantly; everyone is always neutral.
Yeah, I think it's pointless for it to be modular. I started making it modular cause I didn't want to copy the main folder (was low on disc space).
marioflag Apr 08, 2008, 11:42 AM If the alignment numbers are added or subtracted, I would personally see greater alignment numbers modifiers for civics, they are too small to be meaningful.
I would also further increase the negative modifier toward adopting AV so that some good civs won't become neutral adopting AV.
MagisterCultuum Apr 08, 2008, 11:45 AM Looks Awesome.
Feel free to take your time though, since I'll probably want to play a game right after it comes out and I should be studying for a test tomorrow. I should probably be working on the group project I'm behind on instead of playing anyways, but I suspect I'll have to play a quick game to test the changes anyway once it is out. (If it comes out tonight I may not have anything ready for when our group meets tomorrow evening.)
Not exactly relevant to the main point of the mod, but could you add a religionPrereq tag to CIV4PromotionInfos.xml while you are at it? There is already a <StateReligionPrereq> tag, but several promotions I have planned for my modmod should really depend on the religion of the individual unit instead of or in addition to the civ's state religion. Alternately, I could just go back to having religious promotions like in pre-BtS FfH, but I've yet to find the code which randomly assigns a religion to units based on the religions present in the city that built it.
Edit: Also, I think I agree with Marioflag that some modifiers should probably be made larger. I'm thinking that Overcouncil, Undercouncil, and Sacrifice the Weak should have a bigger effect, but the others seems fine as they are. I also think that both Order and AV should have a larger effect on alignment.
xienwolf Apr 08, 2008, 11:45 AM Well, if the Civic modifier is added each turn for which you run the Civic that makes small numbers work fairly well. Then you can use a counter-alignment Civic briefly without affecting your overall score too heavily. Could be kinda cool.
MagisterCultuum Apr 08, 2008, 11:51 AM Well, if the Civic modifier is added each turn for which you run the Civic that makes small numbers work fairly well. Then you can use a counter-alignment Civic briefly without affecting your overall score too heavily. Could be kinda cool.
If that is the case, the modifiers are likely too large. (Especially if the same is true for religions.)
Grey Fox Apr 08, 2008, 11:58 AM I don't think that 16 or 24 is small number, when a single alignment covers 341, 24 is a 7% alignment change.
And the ones that are at 4 are low cause they shouldn't change you much. (And if you changed 4 per turn that would quickly become a lot)
But the numbers aren't definite, as I've said, I am counting on you guys (the community, and the team (and Kael in particular) if they want to help) to help shape these numbers.
MagisterCultuum Apr 08, 2008, 12:06 PM Have you tried PMing Kael about this yet? He back from Los Vegas now, you know.
Grey Fox Apr 08, 2008, 12:11 PM Should losing a building/unit which gave you an alignment change, reverse that change?
I repeat myself.
My first thought is that logically, if it was a bonus or penalty(like a building that adds food), or a state of being (religion, civic) it would be reversed. But creating this unit or building is an Act and shouldn't be reversed even if lost.
Have you tried PMing Kael about this yet? He back from Los Vegas now, you know.
I didn't want to be pushy :P
xienwolf Apr 08, 2008, 12:17 PM Yeah I would say we probably ought to lay off any PMs to Kael until he has had time to catch up on posts, and maybe till someone actually posts "Welcome Back, Kael!" It is nice to greet someone first :p
Besides, If I haven't just missed seeing it before, he updated his Avatar incorrectly, but meant to set it to have a 43 day countdown... (look at his profile).
MagisterCultuum Apr 08, 2008, 12:27 PM I think I agree. Alignment changes from the act of building buildings or training units should not be removed when they are destroyed, but religion/civic alignment changes shouldn't last after you switch religions/civic.
I'm not sure, but I think that the way Prophecy marks work is they increase the AC contribution of the player that builds the units, and then decrease the contribution of the player to destroy the unit an equal amount. I could be wrong about this, but it could be a good way for both AC effects and alignment modifiers to work. (So, building Mardero would make you more evil, and defeating an enemy Mardero would make you more Good. Not sure what it would do if you captured such a unit instead, probably leave the building civ like it was and apply both the positive and negative modifer to you, so the net effect would be none.)
So long as you're polite in your wording I think it is ok to be a little pushy. Of course, this doesn't mean you should PM him every 5 minutes until you get a response. :p (see, if you don't capitalize the p in :P it shows up as an animated smilie)
Edit: Besides, If I haven't just missed seeing it before, he updated his Avatar incorrectly, but meant to set it to have a 43 day countdown... (look at his profile).
That has been there for a while. I think it has been like that ever since he removed went back to his normal avatar after the countdown to the release of Shadow ran out.
xienwolf Apr 08, 2008, 12:34 PM Well the question which would arise from the buildings having alignment modifiers is what happens when you capture a city with such buildings in it? Does it count like you just built them? If so that is bad (I think I recall this being the case with the AV Holy Shrine once, so every time that city changed hands the AC went up).
Also, any chance of changing your alignment opposite of the buildings in a city when you raze it? Not sure if that is a good idea though since you don't always check what buildings exist when attacking a city.
MagisterCultuum Apr 08, 2008, 12:51 PM Yeah, if it counts towards the conquerer's alignment that could cause problems. I'm thinking that destroying a building should have the opposite alignment effect as building it (the same for killing units).
I'll probably merge this with the Abandon City/Raze Building mod (and the Unit Stats FfH modmod) as a basis for my modmod, in which case you would be able to raze the evil buildings yourself (or even the entire city) to make you less evil (of course razing the city would make you more evil instead.) (I should probably check to make sure that cities razed this way still effect alignment, grant manes, etc.)
I don't suppose you'd want to include those in this modmod to begin with, to save me a little work, would you?
Edit: (The abandon city mod is actually just a few python files that don't even replace anything FfH uses. It is already compatible with FfH and I think it worked fine with UnitStats, although for some reason it stopped working when I used it with the DLL I compiled based on UnitStats. The only merging work you (or I) would really have to do is to merge yours with UnitStats.)
I guess I might as well do it myself though, as there are a few other changes I'd really like to make too. In additon to the things I've suggested here already, I want to add the <PyPerTurn> tag/function to CIV4UnitInfos.xml instead of just CIV4PromotionInfos.xml, to add the <PythonPostCombatLost> and <PythonPostCombatWon> tag/function to CIV4PromotionInfos.xml instead of just CIV4UnitInfos.xml, to allow HN units to capture/spawn units (but not capture cities), to allow unowned Forests to sometimes (but more rarely) turn Ancient, to make units unload all their cargo before their limited duration kills them, to allow units with cargo to also be cargo, to allow birds to rebase like they did in vanilla instead of BtS, to be able to liberate individual cities as colonies instead of needing multiple cites on a separate continent from your capital (I found a code that supposedly lets you do this, but when I added it to the FfH DLL it made liberating colonies completely impossible. Most people on that thread seemed to have had the same result in their mods), and to include the SDK portions of Vehem's Doviello Icehouse modmod (but use different python calls an an Illian UB)
Grey Fox Apr 08, 2008, 02:38 PM Probably not.
Grey Fox Apr 09, 2008, 02:22 PM Here's the current changelog so far. Come with suggestions before I release it. (I might have forgotten to add some stuff here)
______________________________________________
Changelog
______________________________________________
Version 1.1 - Started 04/08/2008
Additions:
- Added an alignment meter to the interface.
- Added BROADER_RAZE_BASE_MODIFIER to the Defines. Defines how much razing a city changes your alignment.
- Added BROADER_RAZE_MODIFIER to the Defines. Defines how much razing a city changes your alignment per every other population point (this*population/2).
- Added BROADER_POPRUSH_BASE_MODIFIER to the Defines. Defines how much poprushing changes your alignment.
- Added BROADER_POPRUSH_MODIFIER to the Defines. Defines how much poprushing changes your alignment.
- Added iAlignmentModifier to CIV4UnitInfos.xml, CIV4PromotionInfos.xml, CIV4SpellInfos.xml, CIV4BuildingInfos.xml, CIV4ProjectInfo.xml, and CIV4TechInfos.xml
- Added iPrereqBroadAlignment to CIV4UnitInfos.xml, CIV4PromotionInfos.xml, CIV4SpellInfos.xml, CIV4BuildingInfos.xml, and CIV4ProjectInfo.xml
- BROADER_RAZE_BASE_MODIFIER set to -2
- BROADER_RAZE_MODIFIER set to -1
- BROADER_POPRUSH_BASE_MODIFIER set to -1
- BROADER_POPRUSH_MODIFIER set to -1
- SPELL_CONSUME_SOUL iAlignmentModifier set to -3
- SPELL_FEAST iAlignmentModifier set to -3
- Added BUILDING_DEMONIC_CITIZENS as a Define, used at Raze calculation. (Will ignore the cities with Demonic Citizens)
- Started adding game text.
Changes:
- Set USE_ON_UPDATE_CALLBACK to 1 in PythonCallbackDefines.xml
- Put some Screen update code in onUpdate() to show the change in alignment as it changes.
- LEADER_SABATHIEL iAlignmentModifier set to 370
- LEADER_CAPRIA iAlignmentModifier set to 330
- LEADER_VARN iAlignmentModifier set to 310
- LEADER_ETHNE iAlignmentModifier set to 290
- LEADER_EINION iAlignmentModifier set to 300
- LEADER_BASIUM iAlignmentModifier set to 400
- LEADER_GARRIM iAlignmentModifier set to 185
- LEADER_BEERI iAlignmentModifier set to 185
- LEADER_CARDITH iAlignmentModifier set to 320
- LEADER_ARENDEL iAlignmentModifier set to 180
- LEADER_THESSA iAlignmentModifier set to -20
- LEADER_AMELANCHIER iAlignmentModifier set to 20
- LEADER_ARTURUS iAlignmentModifier set to 150
- LEADER_KANDROS iAlignmentModifier set to 150
- LEADER_SANDALPHON iAlignmentModifier set to -10
- LEADER_FALAMAR iAlignmentModifier set to 40
- LEADER_CASSIEL iAlignmentModifier set to 0
- LEADER_RHOANNA iAlignmentModifier set to 50
- LEADER_TASUNKE iAlignmentModifier set to -50
- LEADER_VALLEDIA iAlignmentModifier set to -60
- LEADER_DAIN iAlignmentModifier set to 60
- LEADER_HANNAH iAlignmentModifier set to -160
- LEADER_AURIC iAlignmentModifier set to -180
- LEADER_CHARADON iAlignmentModifier set to -220
- LEADER_MAHALA iAlignmentModifier set to -175
- LEADER_KEELYN iAlignmentModifier set to -190
- LEADER_PERPENTACH iAlignmentModifier set to -290
- LEADER_JONAS iAlignmentModifier set to -230
- LEADER_SHEELBA iAlignmentModifier set to -200
- LEADER_FAERYL iAlignmentModifier set to -300
- LEADER_ALEXIS iAlignmentModifier set to -330
- LEADER_FLAUROS iAlignmentModifier set to -310
- LEADER_TEBRYN iAlignmentModifier set to -365
- LEADER_OS-GABELLA iAlignmentModifier set to -360
- LEADER_HYBOREM iAlignmentModifier set to -400
- LEADER_BARBARIAN iAlignmentModifier set to -245
---------------------------------------------------
- RELIGION_THE_ORDER iAlignmentModifier set to 512
- RELIGION_OCTOPUS_OVERLORDS iAlignmentModifier set to -256
- RELIGION_RUNES_OF_KILMORPH iAlignmentModifier set to 256
- RELIGION_THE_EMPYREAN iAlignmentModifier set to 384
- RELIGION_COUNCIL_OF_ESUS iAlignmentModifier set to -384
- RELIGION_ASHEN_VEIL iAlignmentModifier set to -512
---------------------------------------------------
- CIVIC_CONSUMPTION iAlignmentModifier set to -6
- CIVIC_LIBERTY iAlignmentModifier set to 10
- CIVIC_SACRIFICE_THE_WEAK iAlignmentModifier set to -32
- CIVIC_OVERCOUNCIL iAlignmentModifier set to 24
- CIVIC_UNDERCOUNCIL iAlignmentModifier set to -24
---------------------------------------------------
- BUILDING_ASYLUM iAlignmentModifier set to -5
- BUILDING_CITY_OF_A_THOUSAND_SLUMS iAlignmentModifier set to -8
- BUILDING_DEMONS_ALTAR iAlignmentModifier set to -10
- BUILDING_DUNGEON iAlignmentModifier set to -5
- BUILDING_DWARF_CAGE iAlignmentModifier set to -5
- BUILDING_ELF_CAGE iAlignmentModifier set to -5
- BUILDING_HUMAN_CAGE iAlignmentModifier set to -5
- BUILDING_ORC_CAGE iAlignmentModifier set to -5
- BUILDING_HOPE iAlignmentModifier set to 1
- BUILDING_INFIRMARY iAlignmentModifier set to 1
- BUILDING_INFERNAL_GRIMOIRE iAlignmentModifier set to -5
- BUILDING_MERCURIAN_GATE iAlignmentModifier set to 10
- BUILDING_MOKKAS_CAULDRON iAlignmentModifier set to -5
- BUILDING_PILLAR_OF_CHAINS iAlignmentModifier set to -10
- BUILDING_PROPHECY_OF_RAGNAROK iAlignmentModifier set to -15
- BUILDING_SHRINE_OF_SIRONA iAlignmentModifier set to 10
- BUILDING_SMUGGLERS_PORT iAlignmentModifier set to -1
- BUILDING_SOUL_FORGE iAlignmentModifier set to -10
- BUILDING_TOWER_OF_COMPLACENCY iAlignmentModifier set to -10
- BUILDING_TOWER_OF_NECROMANCY iAlignmentModifier set to -5
---------------------------------------------------
- TECH_CORRUPTION_OF_SPIRIT iAlignmentModifier set to -10
- TECH_DECEPTION iAlignmentModifier set to -7
- TECH_DIVINATION iAlignmentModifier set to 3
- TECH_HONOR iAlignmentModifier set to 7
- TECH_INFERNAL_PACT iAlignmentModifier set to -10
- TECH_MALEVOLENT_DESIGNS iAlignmentModifier set to -10
- TECH_MESSAGE_FROM_THE_DEEP iAlignmentModifier set to -5
- TECH_MIND_STAPLING iAlignmentModifier set to -5
- TECH_NECROMANCY iAlignmentModifier set to -3
- TECH_ORDERS_FROM_HEAVEN iAlignmentModifier set to 15
- TECH_POISONS iAlignmentModifier set to -3
- TECH_RIGHTEOUSNESS iAlignmentModifier set to 15
- TECH_WAY_OF_THE_EARTHMOTHER iAlignmentModifier set to 5
- TECH_WAY_OF_THE_WICKED iAlignmentModifier set to -5
- TECH_WAY_OF_THE_WISE iAlignmentModifier set to 5
---------------------------------------------------
- UNIT_DISEASED_CORPSE iAlignmentModifier set to -1
^^-- just to test the text, I haven't really decided upon any of the units yet
MagisterCultuum Apr 09, 2008, 03:48 PM Looks Great.
I don't suppose you think that maybe adding alignment requirements to techs would be a good idea, do you? I'm mostly thinking that this could be a good temporary measure until the AI properly weighs techs according to alignment, religion, civ, etc. It never seemed right to me that Evil civs could research righteousness, and truly good civs do not tolerate necromancy.
Actually, it might be good if you could make a civ loose knowledge of a tech they used to know if the alignment changed too much. Again, the main example I can think of here is that you would not stay righteous if you become evil.
It might also (instead?) be good if knowledge of certain techs could block the research of others (for example, those with Corruption of Spirit could not have Righteousness), or cause a civ to forget another tech (so you could research Corruption of Spirit but would lose your Righteousness in the process, and later could give up Corruption of Spirit to regain your Righteousness)
That isn't exactly the main point of the modmod, but I think it could be extremely useful. You could add many more techs, but you would have to make decisions about the direction you want to follow and it could be impossible for you to ever run out of things to research. I was considering adding such things in python for a few specific techs, but if it can be done in the DLL it might be clearer to the player what is going on. (Of course, python would still handle more complex requirements better like if you needed 3 techs and a certain alignment in order for a fourth tech to be blocked or forgotten)
On a similar (probably unnecessary and not particularly useful to this mod) note, it could be nice if researching technologies could require access to resources. Since I started playing civ III I've always wondered how you are supposed to be able to develop horseback riding when you've never even heard of horses, or iron working without iron.
Grey Fox Apr 09, 2008, 04:07 PM Looks Great.
I don't suppose you think that maybe adding alignment requirements to techs would be a good idea, do you? I'm mostly thinking that this could be a good temporary measure until the AI properly weighs techs according to alignment, religion, civ, etc. It never seemed right to me that Evil civs could research righteousness, and truly good civs do not tolerate necromancy.
I don't see why not, even if I don't use it. But could use it the way you describe as well.
Actually, it might be good if you could make a civ loose knowledge of a tech they used to know if the alignment changed too much. Again, the main example I can think of here is that you would not stay righteous if you become evil.
Never say never. I don't see what you say as impossible. (I don't see much as impossible with the SDK anymore). The way I would do it would probably be that you would lose beakers in the tech gradually as long as you have the wrong alignment (which would immediate loss of the tech, but you could more easily regain it the shorter time you have been without it).
It might also (instead?) be good if knowledge of certain techs could block the research of others (for example, those with Corruption of Spirit could not have Righteousness), or cause a civ to forget another tech (so you could research Corruption of Spirit but would lose your Righteousness in the process, and later could give up Corruption of Spirit to regain your Righteousness) Seems like a more hacky way to do it however. And not as streamlined as the above suggestion. (And in the later part of your suggestion I could see the AI going through an endless loop)
On a similar (probably unnecessary and not particularly useful to this mod) note, it could be nice if researching technologies could require access to resources. Since I started playing civ III I've always wondered how you are supposed to be able to develop horseback riding when you've never even heard of horses, or iron working without iron.
Yeah, I think someone has done a similar mod, or was planning one. But I think he made techs get cheaper with some resources. Or maybe it was just techs getting cheaper from other techs.
Btw, any input on the different values? I know some are a bit low (Infirmary), and some are a bit high. And xienwolf suggested having an extra tag on techs for the first one to research the tech. (For example: Would be more evil to be the first to Infernal Pact and summon Hyborem)
Grey Fox Apr 09, 2008, 05:20 PM Changelog updated in first post. (Gonna keep updating it in first post so check some times)
Now I'm going to bed, so don't expect a release today. ;)
MagisterCultuum Apr 09, 2008, 06:32 PM Are we going to be able to see just how good or evil our rival are? I'm thinking it would be good to show the numerical value when you mouseover a leader's score, in the same place as where it shows the diplomatic breakdown.
It might also be good to have the diplomatic alignment modifiers be based on the broader alignment value instead of just the good-neutral-evil distinction.
Are you going to release this for patch d, or wait for patch e to be released? It looks like e will contain lots of good changes, including some SDK changes, so it may be better to wait.
I thought I'd go ahead and see if I can get you to add the SDK changes I just suggested in the 0.31 changelog thread (here (http://forums.civfanatics.com/showpost.php?p=6700636&postcount=620) ) , in case Kael doesn't add them in time for my modmod. I believe changes that involve adding new XML tags are currently beyond me, and are really needed for my modmod. They aren't really necessary to this modmod, but if they were included anyway it would make my job a lot easier.
Grey Fox Apr 10, 2008, 02:06 AM I might not be able to release it for E since I will be going home tomorrow. But I will release the source as well, so anyone can combine the mods.
I believe I read that the SDK doesn't let units with base movement of 1 get blitz. Could you change this so that units with promotions that give added movement can still get blitz (or just remove this check entirely)?
Actually, I think Blitz works on all units with movement more than 1, and the movement from promotions should count. It has always done in my memory anyways.
Of course, I'm still hoping that you'll put <PythonPostCombatLost> and <PythonPostCombatWon> in CIV4PromotionInfos.xml file and <pyPerTurn> in CIV4UnitInfos.xml, and if I can't convince you (or maybe Grey Fox ) than I'll have to figure out how to do it myself (I've yet to figure out how to add new tags to the schema) or else leave out lots of promotions (mostly equipment) which I have planned.
I'll check how easily this is to add. I added these to the units in 0.30 without knowing how they were coded when I made my makeshift upgrade to 0.31 (I forgot to download the source last time I was here :p). So maybe I can do it. I guess I will have to do a loop through all promotions during post combat and see if any of the units have anything in their promotions to be run.
I really think that you need to go ahead and make Spell Extension promotions increase the range of ranged spells. This should of course be in the SDK now, instead of having all the ranged spells hardcoded in python like back before BtS. There should be a tag that adds x (which would probably always be 0 or 1, but an equipment promotion that boosts range further could be cool) to the range of all spells that already have a range greater than 0 (or if you prefer, you could add a tag in the spell defines that determines if the range will be increased). Maelstrom should probably have a range of 1 but be boosted by this spell.
This shouldn't be too hard to add, but I'm not sure what you mean by the last sentence. You want a spell to add range? Wouldn't just adding a range tag to promotions solve that as well?
Grey Fox Apr 10, 2008, 06:34 AM You were right xienwolf, I couldn't use the Demonic citizens building the way I planned. Not the way the code works now. I thought it worked differently, but it seems I would have to do a lot of rewriting to make that work.
So I just check if the old owner is the Infernals instead. I'm suspecting that if the city has no culture at all, it won't work, but ah well.
MagisterCultuum Apr 10, 2008, 06:39 AM If Blitz works now, then no problem. I do remember reading that though, and I've noticed lately that I can't seem to get blitz even when I have the tech and promotions prereqs (I'm not even sure if this was limited to only move 1 + mobility units. I think I've only been able to get it on cavalry units, even though it s supposed to be availible with archer, melee, beast, recon, and disciple too)
Hopefully the xml tags/python functions won't be hard to add; Kael has stated that he specifically wrote them in such a way to make adding them to promotions too easy. He said that he may do so himself, but (as usual) wants to wait until he actually adds a promotion that uses the functions, so as not to slow the game unnecessarily.
Not sure why I wrote "this spell" when I meant to say "these promotions." :p
Grey Fox Apr 10, 2008, 07:07 AM 34. Added PyPostCombatLost and PyPostCombatWon to Civ4PromotionInfos.xml
Though I haven't tested them yet, they are fully implemented. I will test them later today. But now I am about to run some errands.
Slvynn Apr 10, 2008, 07:40 AM Grey Fox, while Erebus being D&D world - why not to add D&D aligments (Lawfull-chaotic, Good - Evil matrix)?
It will actually fit in your mod well, and also will add some flavor to it.
Same Scale as you did for Lawfull-Chaotic.
Each race get 2 values.
Bannor Lawfull good, Sheaim Chaotic Evil, Calabim Lawfull Evil (see difference between Calabim and sheaim ) , Auric Ulvin (Lawfull Evil), Perpentach (Chaotic Semi-Neutral - Evil close to Neutrality), Cardith Lorda , Dain - Lawfull Neutral, Valledia - Chaotic Neutral, Hanah and Falamar Chaotic Neutral while Falamar close to be Good. Beeri Bawl is experementator so can get Chaotic Good, Tasunke is chaotic neutral, Rhoanna is True Neutral, as is Cassiel, Sandalphon should be lawfull, as should be Dwarves.,
So when , Lets say Mahala converts to Order, she still will have some minnor issues with Bannor because she is still chaotic, while Calabim have chance to become Lawfull Goods and take role of Vampire Order protectors.
MagisterCultuum Apr 10, 2008, 07:50 AM Awesome. Now I probably won't really need to do any SDK work for my modmod. :) I guess you didn't want to add pyPerTurn to units too? Thats really not as important anyway, since one can easily make a promotion that only one unit will ever have.
Just checking, but did you put the unloadAll() statement before the kill(true) statement when duration runs out (in line 1002 in an unedited CvUnit.cpp)? That is a very minor change, but is essential to my modmod, as without it allowing summons to carry cargo is a very bad idea (since the cargo dies when duration runs out. I'd hate to have to recompile just to add a single statement.
Of course, if you don't release it for patch e and if I really want to merge this with UnitStats (and if I can't convince you to do the merge work for me ;) ) then I'd have to recompile anyway, so making this one change while I am at it would be no problem.
Grey Fox Apr 10, 2008, 08:16 AM Awesome. Now I probably won't really need to do any SDK work for my modmod. :) I guess you didn't want to add pyPerTurn to units too? Thats really not as important anyway, since one can easily make a promotion that only one unit will ever have.If you check my changelog, you'll see that pyPerTurn is in the TODO list, which I will continue with now.
Just checking, but did you put the unloadAll() statement before the kill(true) statement when duration runs out (in line 1002 in an unedited CvUnit.cpp)? That is a very minor change, but is essential to my modmod, as without it allowing summons to carry cargo is a very bad idea (since the cargo dies when duration runs out. I'd hate to have to recompile just to add a single statement.Uhm, what happens to regular ship cargo then? I know from experience that if units for some reason can walk on water, but are not really able to walk on water (yes strange situation), they will be teleported to nearest land next turn. What happens to the unloaded units, on water, when a ship dies if you move that code?
Grey Fox, while Erebus being D&D world - why not to add D&D aligments (Lawfull-chaotic, Good - Evil matrix)?
It will actually fit in your mod well, and also will add some flavor to it.
Same Scale as you did for Lawfull-Chaotic.
Each race get 2 values.
Bannor Lawfull good, Sheaim Chaotic Evil, Calabim Lawfull Evil (see difference between Calabim and sheaim ) , Auric Ulvin (Lawfull Evil), Perpentach (Chaotic Semi-Neutral - Evil close to Neutrality), Cardith Lorda , Dain - Lawfull Neutral, Valledia - Chaotic Neutral, Hanah and Falamar Chaotic Neutral while Falamar close to be Good. Beeri Bawl is experementator so can get Chaotic Good, Tasunke is chaotic neutral, Rhoanna is True Neutral, as is Cassiel, Sandalphon should be lawfull, as should be Dwarves.,
So when , Lets say Mahala converts to Order, she still will have some minnor issues with Bannor because she is still chaotic, while Calabim have chance to become Lawfull Goods and take role of Vampire Order protectors.
I was planning to do something like that but I don't really see the point.
MagisterCultuum Apr 10, 2008, 08:24 AM If you check my changelog, you'll see that pyPerTurn is in the TODO list, which I will continue with now.
Well, it wasn't there when I made my last post. Having promotions effect spell range is much more important, since (as I said) you can easily make a promotion for only one unit to have. I'd focus on the range change and not bother with the pyPerTurn if it gives you trouble.
Uhm, what happens to regular ship cargo then?
What I asked was that you change this
if (getDuration() > 0)
{
changeDuration(-1);
if (getDuration() == 0)
{
kill(true);
}
} in void CvUnit::doTurn() to this
if (getDuration() > 0)
{
changeDuration(-1);
if (getDuration() == 0)
{
unloadAll();
kill(true);
}
}
These changes will have no effect on regular ships or their cargo, since it only effects units killed by limited duration. I know of no way for a ship to get limited duration, at least none that don't require some serious cheating or modmoding. I've tested this change pretty thoroughly, and it doesn't seem to cause any problems (although something I changed latter on caused my modmod to crash when loading. I don't think that was from SDK changes though, since it still crashes with the original DLL. I think the problem was graphical or XML).
It may also be good to remove the requirement that units be in a city in order to paradrop, to make my Dimensional 3 summon more useful. Now that I think of it, I also had to commant out the "if (!pPlot->isFriendlyCity(*this, true))" statement in "bool CvUnit::canParadrop(const CvPlot* pPlot) const" and the "if (!canMoveInto(pTargetPlot, false, false, true))" statement in "bool CvUnit::canParadropAt(const CvPlot* pPlot, int iX, int iY) const" in order to get my Tesseract (This is a summon that is domain_immoble but can carry cargo with as it paradrops) to work the way I want it to. Since no FfH unit uses paradropping, these changes won't effect anything either. I have tested them pretty thoroughly too without problems.
Grey Fox, while Erebus being D&D world - why not to add D&D aligments (Lawfull-chaotic, Good - Evil matrix)?
It will actually fit in your mod well, and also will add some flavor to it.
Same Scale as you did for Lawfull-Chaotic.
Each race get 2 values.
Bannor Lawfull good, Sheaim Chaotic Evil, Calabim Lawfull Evil (see difference between Calabim and sheaim ) , Auric Ulvin (Lawfull Evil), Perpentach (Chaotic Semi-Neutral - Evil close to Neutrality), Cardith Lorda , Dain - Lawfull Neutral, Valledia - Chaotic Neutral, Hanah and Falamar Chaotic Neutral while Falamar close to be Good. Beeri Bawl is experementator so can get Chaotic Good, Tasunke is chaotic neutral, Rhoanna is True Neutral, as is Cassiel, Sandalphon should be lawfull, as should be Dwarves.,
So when , Lets say Mahala converts to Order, she still will have some minnor issues with Bannor because she is still chaotic, while Calabim have chance to become Lawfull Goods and take role of Vampire Order protectors.
I'm undecided about whether such a system should be implemented, but I'm leaning towards opposing it. Also, if such a system is added, the Order should have a much larger effect on your Lawful-Chaotic alignment than the Good-Evil one; an Order Mahala should become lawful, but maybe not really good. Order Calabim should be extremely Lawful, but probably still Evil.
If we were to add more alignment types, I might also add another value-Fanatisicm. This would effect how much the other values effect diplomacy. I guess it could just be a leader specific thing, although it might be nice if it too could change. Hyborem and Basium would have the highest fanaticism, with Cassiel having the lowest value. The Empyrean would be a more good religion than the Order, but the Order would greatly boost both Lawful and Fanatical "alignments"
Oh, I though of one more change that may be essential in my modmod: creating a promotion tag that boosts the duration of the caster's (non-permanent) summons. I can't think of a non-SDK way to do this that would not involve changing all summons to work through python, and I still haven't gotten around learning how to making new xml tags yet. I would love it if you did this for me too. :please:
(I'm planning on removing the summoning trait, and making each dimensional promotion boost duration by 1 turn. I may have some equipment with similar effects too.)
I also don't like how <bTwincast> works: It doesn't matter how many promotion it has that allow Twincasting it has, it will still only summon 2 units. I would like these abilities to stack (since I'd like to add equipment that causes twincasting too), so that a unit with 0 <bTwincast> would summon 1 unit, one with 1 <bTwincast> promotion would summon 2 units, one with 2 <bTwincast>'s would summon 4, one with 3 <bTwincast>'s would summon 8 units, etc. I would also be fine if each promotion just made it summon 1 more instead of doubling the number, if that is too powerful. Multiple promotions with this tag should definately have some effect though.
Twincast should really effect non-summoning spells too. Maybe cause direct damage spells to do twice the damage, or to actually strike twice instead of once. The latter might be better, since it would allow auto-targeting spells to hit multiple units or stacks. It would also mean that you could just put the whole spell casting part of the code in a loop, as increasing the number of times the spell is cast would also increase the number of summons. Obviously, spells that just grant promotions wouldn't have to be cast again (although it wouldn't really hurt anything for it to be, except maybe speed), nor spells that kill the caster of convert it to another unit. It would probably be good to check to make sure the casting requirements are still valid before each cast. That would also mean that you couldn't use this promotion to get around the limit on the number of permanent summons (is twincast taken into account in determining how many permanent units you can have an still summon more? I seem to remember it not being, but that might have been a while ago). Could you change how Twincasting works too?:please:
One more thing just came to mind. Could you make units that are upgraded in citeis with buildings that grant promotions get these free promotions too? I'm mostly thinking this should be done for Hippus Stables/Horselord, Svartalfar Hunting Lodge/Sinister, and Ljosalfar Archer Range/Dexterous. I could make it so that the elven civs can get their promotions anyway by setting their racial promotions as prereqs, but the Hippus have no race to base this on. I guess I could just make spells that let mounted units in cities with Hippus stables get Horselord, but I'd rather not have to. It might also be appropriate to only let units owned by your team get the free promotions from buildings that have the <bApplyFreePromotionOnMove>1 tag, in which case these buildings can just get this tag. That could have the added bonus of letting your permanent allies get the promotions, but not helping out rival civs with open borders (or rival units with the ability to move in your territory without open borders)
Patch e is out now. Is that soon enough for you to make the modmod patch e compatible? Personally I'd rather you wait to release it until you've made it compatible (and preferably also added the suggestions in this post ;) ) but that it largely because I'll be too busy with school work to play for a while anyway. I guess others might be more impatient though.
I just started thinking it might be good to include sto's [Mini MOD _ MOD Comp] Alignment Options in yours. That is certainly more alignment based than most of the suggestions I have been making, and I convinced you to add some of those. :) I haven't actually tried it yet (I don't really have time), but it seems like it could be good to include it. Besides, everything it adds is a option, so if you don't like it you can turn it off. (And if your going to include this one modmod, why not go ahead and include UnitStats too? ;))
Grey Fox Apr 10, 2008, 04:35 PM Version 1.1 has been uploaded. Check the first post for download and changelog, etc. (http://forums.civfanatics.com/showpost.php?p=6690119&postcount=1)
(It's for v031e)
Be quick to notice any serious errors cause I will be going home again tomorrow, and won't be online for a while.
And if you want to, please work on the values of the different variables in the mod! (Like events, which have no changes yet)
EDIT: Sorry didn't notice your post before. And I don't feel like modding atm, so I'm not sure if I will be able to make any of the changes you want before I leave.
MagisterCultuum Apr 10, 2008, 04:59 PM Very nice. I wish I had time to play.
Its probably my fault that you didn't see the post in time, since I just kept editing the old one whenever I came up with something new. There's no pressure to get it all done at once, since I'll probably be too busy to mod for the rest of the semester. While I would really like a <iSummonExtraDuration> tag in CIV4PromotionInfos.xml and some SDK changes in Twincast and the paradropping requirements, I likely won't have the time to use them before May 1 anyway.
How exactly do the <iPrereqBroadAlignment> tags work? It seems to me like you would need 2 tags for this, one for the maximum and one for the minimum alignment value.
I've started glancing though the files and I don't see any new tags in CIV4PromotionInfos.xml files except <iPrereqBroadAlignment>and <iAlignmentModifier>. There are no new tags in CIV4BuildingsInfos.xml at all.
Did you accidentally forget to change the XML files since last version?
Edit: They do seem to be in the Schema though. Are these tags that just don't have to appear in the file unless used.
Edit2: I guess they do have to be in the the file only if used, since the extension promotions do have the tag. I went ahead a played a game on quick on a tiny map just to test it. It seemed to work fine, but late in the game I got an unexplained CtD. I didn't pay attention to what turn it was, but I had already reached Guilds and Strength of Will. Also, popups seemed a little weird. I think that normally it only shows one (new tech popup, research popup, event popup, religion screen, civic screen, etc) at a time, but this time they seemed to come up at the same time. This didn't cause actual problem though.
Also, your mod undoes at least one change in patch e; Kael moved the free great sage from Writing to Arcane Lore, but your tech file does not.
Edit3: Oh, could you change the <PromotionCombatType> tag so that you can give a promotion a bonus versus multiple (preferably an arbitrary number of) promotions? I was wanting to add promotions that work against both elven promotions, a against both angels and demons, against all levels of a spell sphere, all "evil" promotions, etc.(Kael said this could be difficult, as it would require changing this to use a list, but that he has come across circumstances whee he wished he could use this and so might eventually add it to the main mod anyway.)
Edit4: I went ahead and started one more game, after making a few minor xml changes, and it now seems like every unit is exploding like a Pyre Zombie when it dies.
Edit5: I hadn't razed anything yet as of the last post, but like xalien says every city razed creates a Syliven's Perfect Lyre, Dragon's Horde, Infernal Grimorie, and Crown of Akharien (all the equipment that can be made by razing a city with the wonder form of the equipment in it)
xalien Apr 13, 2008, 09:35 AM Edit4: I went ahead and started one more game, after making a few minor xml changes, and it now seems like every unit is exploding like a Pyre Zombie when I dies.
That and more - every city you raze/destroy spawns Syliven's Perfect Lyre, Dragon's Hoard, Infernal Grimoire and Akharien's crown.
MagisterCultuum Apr 14, 2008, 04:12 PM A cursory look through CIV4PromotionInfos.xml reveals why everything is exploding: combat 1 has <PythonPostCombatLost>postCombatExplode(pCaster,pOpponent)</PythonPostCombatLost>. I'm guessing you added this to test the SDK changes, and forgot to remove it. This explains why not every unit explode, but most do. Perhaps you should have tested with a less common promotion.
It seems that you removed the "if (pCity->getNumRealBuilding((BuildingTypes)iI) > 0)" conditional in "void CvPlayer::raze(CvCity* pCity)" in CvPlayer.cpp, thus whenever a city is razed it creates every piece of equipment that could be in the city in building form, without ever testing to see if it is actually there.
I think you only meant for the "if (GET_PLAYER(eHighestCulturePlayer).getCivilization Type() != (CivilizationTypes)GC.getInfoTypeForString("CIVILIZATION_INFERNAL"))" (which you have in the place of " if (pCity->getNumRealBuilding((BuildingTypes)iI) > 0) ") to apply to your addition to this loop, the "iGlobalCounter += GC.getBuildingInfo((BuildingTypes)iI).getModifyGlo balCounter();" statement. However, as it is written razing any city will apply the Global Counter changes from all buildings, regardless of whether they are being destroyed.
Edit: And now back to making suggestions, instead of addressing bugs ;)
I really think that the weapons promotions need tech requirements. (Although I am considering bypassing the way weapons promotions currently work altogether, having them work through spells instead.)
I'd really like it if buildings/wonders could provide different numbers of different types of resources, instead of an equal number of up to 3 resources. I'd prefer something like this:
<FreeBonuses>
<FreeBonus>
<FreeBonusType>BONUS_MANA_SPIRIT</FreeBunusType>
<iNumBonus>2</iNumBonus>
</FreeBonus>
<FreeBonus>
<FreeBonusType>BONUS_MANA_LIFE</FreeBunusType>
<iNumBonus>1</iNumBonus>
</FreeBonus>
<FreeBonus>
<FreeBonusType>BONUS_MANA_WATER</FreeBunusType>
<iNumBonus>1</iNumBonus>
</FreeBonus>
</FreeBonuses>, but I'd be willing to settle for just opening up more resource prereq tags (at least for now). I think I'd need at least 5 or 6 resource bonus tags instead of just 3 (since you can make it provide the same resource multiple times if you put it in multiple tags).
I'd like more "or" type prereqs in general, and would usually prefer using a schema like I proposed for the resources rather than more tags that always have to be there.
To avoid resorting to python for lots of my new spells, I would need to add more <RemovePromotionType#> tags. If I end up using spells for an extended version of weapons promotions and don't want to use python for both the prereq and effect, I'll probably need 7 such tags.
I'll also need at least 3 (preferably more) <PromotionPrereq#> tags.
A tag that checked for a specific building or buildingclass in a city (obviously only to be used together with <bInCityOnly>1</bInCityOnly>) would probably be quite useful.
Not that it is needed, but I think it could be nice if xml-only spells could target only units with specific promotions, religions, unit, unitclass, unitcombat, ect.
Also, it could be nice if the xml/SDK portion of a spell could pass a list of valid targets (tiles within range, units within range who did not resist the spell) to <PyResult> and <PyRequirement>. Since C++ can cycle through the nearby tiles/units more quickly, this might make lots of spells more efficient. Also, it would allow the <iSpellExtraRange>1</iSpellExtraRange> tags to be taken into account without hardcoding them into each spell's for loops.
MagisterCultuum Apr 16, 2008, 09:47 PM Ok, this is getting really off the modmod's main theme, but it would be really good for another modmod.
Looking at your Unit Fuel modcomp, I was thinking you might be the right one to ask about making a Unit Mana modmod. It would be very nice if individual casters has their own mana point value.
This value would go each turn up based on the caster's promotions (channeling1-3, mostly, maybe also metamagic1-3, arcane, unholy taint, spellstaff, and some equipment), the amount of mana you control, and maybe other factors like the total number of casters in the world. Spells would have different mana-point prereqs and costs (higher for stronger spell, of course. It might be good if the ability to cast most spells depended only on the mana points, not a "one spell per turn" limit (non-magical abilities would probably still have the current restriction). Perhaps the mana points based on mana types should be tied to the appropriate spell sphere promotions?
An archmage might be able to choose between summoning 2 fire elementals in one turn, or casting spring on almost every tile in the empire at once (if he were somehow fast enough :p). Either way, he would probably not be able to cast much the next turn, but would have to wait to be useful again. That way you could choose between using your magic a little at a time for lots of spells, or saving the energy for something grand. Thematically, this makes a lot more sense.
It would probablt fit even better if mana points were split into one value per mana resource, and maybe also one per religion. For starters though, a single mana point value could be a big improvement.
loocas Apr 19, 2008, 07:55 PM I noticed that the Great Sage is still available from Writing, while other xml changes in patch e are as they should be.
Also this happened:http://forums.civfanatics.com/attachment.php?attachmentid=174757&stc=1&d=1208656261I don't know if this has to do with your mod but I thought I'd run it by here before posting in the bug thread.
btw I love this!
EDIT: Sorry, I did a bad job of skimming the posts before me. At least now there's a picture of exploding people.
MagisterCultuum Apr 19, 2008, 08:09 PM I noticed that the Great Sage is still available from Writing, while other xml changes in patch e are as they should be.
Also this happened:
I don't know if this has to do with your mod but I thought I'd run it by here before posting in the bug thread.
btw I love this!
Yeah, I already mentioned both of these problems. I think that Grey Fox just overlooked the Great Sage change, since there were no schema changes and he just used the xml file he had made for patch d. This is very easy to fix.
The problem in the screen shot is because the Combat 1 promotion in CIV4PromotionInfos.xml has <PythonPostCombatLost>postCombatExplode(pCaster,pOpponent)</PythonPostCombatLost>, instead of just <PythonPostCombatLost></PythonPostCombatLost>. This tag is new to this modmod (added by my request, since I wasn't sure how to do it myself and need it for things I have planned for my modmod). I think this call was added to test this new tag, and that he just forgot to remove it after testing. You can easily fix this.
There is one significant bug that is harder to fix though; Grey Fox made a change in the DLL related to razing cities. Instead of giving you equipment for all building-form equipment present in the city, it gives you all pieces of equipment that can be in building form. Every raze gives you a Crown of Akarien, Slyvien Perfect Lyre, Infernal Grimoire, and Dragon's Horde. Also, this code applies the alignment changes for all buildings that could be in the city, not just for those actually there.
Grey Fox May 21, 2008, 05:32 AM Yeah, I forgot to remove that code from the Combat 1 promotion.
The big bug, as Magister mentions isn't that hard to fix actually. I just accidently added the check for the infernal civilization in the equipment loop as well. To fix this problem, just copy the old code for this part in the ::raze function in CvPlayer.cpp.
I didnt notice this during my brief testing cause I only tested razing Infernal cities. doh! :p
But that's it for my comments for now. I will post a fixed and slightly updated version this weekend. I've fixed all mentioned bugs and removed the need for the onUpdate() function, so it should run faster as well.
I'm also releasing a package of Interface Upgrades, including better popups, better pedia, and an Armageddon Counter meter, similar to the alignment meter.
And the big news is, that I'm possibly releasing an early version of Commanding Officers. All the foundation has been done, and some commanders have been designed. Check it's thread for more specifics.
xalien May 22, 2008, 02:00 AM Will that update be compatible with 0.32 that comes out tomorrow?
Grey Fox May 22, 2008, 02:06 AM I'll probably take the time to update to it first, yes.
Arctem May 27, 2008, 09:11 PM This sounds really fun! With Perpentach, why not have him randomly gain or lose 5 alignment points each turn? This would mean that the player doesn't have complete control of his alignment, but it likely wouldn't interfere too much with the player's strategy (except, of course, when they most need to be a certain alignment, in which case Murphy's Law would intervene).
Honor Aug 05, 2008, 08:57 AM This sounds really fun! With Perpentach, why not have him randomly gain or lose 5 alignment points each turn? This would mean that the player doesn't have complete control of his alignment, but it likely wouldn't interfere too much with the player's strategy (except, of course, when they most need to be a certain alignment, in which case Murphy's Law would intervene).
Actually that wouldn't have any effect at all because we expect the random negative and positive changes to even each other out in the long run.
That, and this thread seriously needed necroing.
|
|