I was trying to mod a shipyard to see if I could produce hyperion [$whatever] type effects where ships built from that shipyard would be granted a configurable bonus.. While my results were ultimately quite unsuccessful & resulted in "no errors or effect" at best, I cae across ModifierEffectTypes.xsd in GalcivIII\data\schema with a lot of very cool looking modder doors spotlighted
<xs:simpleType name="OnEventTypes">
<xs:restriction base="xs:string">
<xs:enumeration value="OnConstructShip"/>
<xs:enumeration value="OnConstructImprovment"/>
<xs:enumeration value="OnPlanetTileOwnerChangeToForeign"/>
<xs:enumeration value="OnPlanetTileOwnerChangeToSelf"/>
<xs:enumeration value="OnGenocidePlanet"/>
<xs:enumeration value="OnCollideAtAnomaly"/>
<xs:enumeration value="OnArriveAtAnomaly"/>
<xs:enumeration value="OnEventChoice"/>
<xs:enumeration value="OnUPResolutionPassed"/>
<xs:enumeration value="OnCultureTraitUnlock"/>
</xs:restriction>
</xs:simpleType>
The hyperion $whatever improvements make use of the OnConstructShip event & the ideological ones onConstructImprovement and give an example of how we might be able to use some others in that grouping. What about UPResolutionFails?! I can't quite figure out what the difference between arrive & collide at anomaly either
. I
<xs:simpleType name="ValueTypes">
<xs:restriction base="xs:string">
<xs:enumeration value="Value"/>
<xs:enumeration value="Range"/>
<xs:enumeration value="Special"/>
<xs:enumeration value="BestOf"/>
<xs:enumeration value="ModifierInstance"/>
</xs:restriction>
</xs:simpleType>
The BestOf/Special tags are in use on one of the anomalies & they work as a pair.. But LeastOf is conspicuously absent & would allow things to be created with a cap as well/instead.
I just wish there were more of these to go with them. I wish we had the ability to create/choose from more options, PercentOfFaction/PlanetPopulation for instance. GetValueFromStarbase does not appear to be in use anywhere
<xs:simpleType name="SpecialValueTypes">
<xs:restriction base="xs:string">
<xs:enumeration value="PercentOfFactionCredits"/>
<xs:enumeration value="PercentOfResearchCost"/>
<xs:enumeration value="NumTurnsCultureBenevolent"/>
<xs:enumeration value="NumTurnsCultureNeutral"/>
<xs:enumeration value="NumTurnsCultureMerciless"/>
<xs:enumeration value="GetValueFromStarbase"/>
<xs:enumeration value="TradeRouteRaidBonus"/>
<xs:enumeration value="ResearchTag"/>
<!--VALUES BELOW USED BY UP VOTING LOGIC-->
<xs:enumeration value="Stat"/>
<xs:enumeration value="Tech"/>
<xs:enumeration value="Colonies"/>
</xs:restriction>
</xs:simpleType>
This right here is another block with some huge glaring holes, FactionAtPeace/NotInWar
<xs:simpleType name="TargetQualifierType">
<xs:restriction base="xs:string">
<xs:enumeration value="TradingWithAllUPMembersNotAtWar"/>
</xs:restriction>
</xs:simpleType>
on and on and on, very interesting options among the completely bewildering ones
Cross referencing some of the types in the file that I don't readily recognize eith places they get used makes me giddy with possibilities (Trojan Horse structures that generate negative influence and some benefit that makes destroying them an iffy choice after planettileownerchange), research pathways that give the researcher a prototype(?)... Can I do a RangeMin/Max with math using SpecialValues as a variable?on and on