I have a set of eclipse and ant based tools for modding with Sins that others may find useful when validating or building their projects.
Current Downloads (older downloads: Downloads)
FAQ
System Requirements
Syntax Wiki - A syntaxual representation of almost all of the Sins editable files.
How To's:How To Install EclipseHow To Setup Entity Validation Eclipse Plugin (Updated for new preference with v0.6)
Video: How to setup and configure the Soase Eclipse Plugin
References:
Mod Development with Eclipse (Forum link providing a general overview of Eclipse)
Eclipse download site (http://eclipse.org/downloads)
Tools Supported:
Entity Editor (Click me for cool stuff about visual Entity Validations)
Eclipse Editor builder/nature extension that provides visual feedback to the following validations.
Entity Definition View - Displays the syntax rules for the currently opened entity file.
Summary of validations currently supported: Boolean: Validates boolean entries contain TRUE or FALSE onlyBrush: Validates a referenced brush entry exists for the value enteredConditional Validation: Allows conditional structures to follow based on a field valueKey word: Validates all entity file key words are spelled correctlyQuotes: Validates any values requiring qoutes have beginning and ending quotation marksInteger: Validates integer entries contain digitsDecimal: Validates decimal entries contain ####.#####Entity References: Validates a referenced entity file exists for the value enteredString Reference: Validates a referenced String entry exists for the value enteredSound Reference: Validates a referenced Sound entry exists for the value enteredEnumeration Validation: Validates an entry confirms to an allowed set of values (i.e. buffInstantActionType)Iteration Validation: Validates repeating elements are correctStructure Validation: Validates entries appear in the correct order in the entity file (configurable to allow unordered structures)Explosion Validation: Validates a referenced explosion entry exists for the value enteredTexture Validation: Validates a referenced texture exists for the value enteredParticle Validation: Validates a referenced effect exists for the value enteredSounddata Validation: Validates sounddata files for correctness including referenced sound filesGalaxyScenarioDef Validation: Validates galaxyScenarioDef files for correctness with 2 pass validationsStringInfo Validation: Validates English.str for correctnessBrushes Validation: Validates brushes files for correctnessGameplay.constants: Validates the Gameplay.constant file for correctnessExplosiondata Validation: Validates sounddata files for correctness including referenced sound filesGalaxy Validation: Validates galaxy files for correctness and performs additional validations on referenced templates and design names.
Content Assistance: [ctrl]+[space bar] on keywords or constants and get suggested completionsSyntax Coloring: change syntax coloring of entity files to suit your preferences (defaults to all black currently)Hover Help: hover over a keyword and get additional details about the value or structureQuick link to wiki syntax
more on previous reply...
Gameplay.constants:
<structure name="TitanExperienceLevelData"> <field name="ExperienceNeededForNextLevel" validation="Decimal" /> <field name="ExperienceGainedForDestroying" validation="Decimal" /> </structure>
<structure name="DiplomaticPointsSpeedData"> <field name="diplomaticPointsRateSpeedScalar" validation="Decimal" /> <field name="occupyVictoryTimeScalar" validation="Decimal" version="Rebellion"/> </structure>
<field name="timeForPeaceTreatyCooldown" validation="Integer" /> <field name="defaultGravWellColor" validation="Color" version="Rebellion"/> <field name="phaseLaneWidth" validation="Decimal" version="Rebellion"/> <field name="unexploredPhaseLaneWidth" validation="Decimal" version="Rebellion"/> <field name="gravWellThickness" validation="Decimal" version="Rebellion"/> <field name="preferNewAssetsGameCountThreshold" validation="Integer" version="Rebellion"/> <structure name="EconomyData">
<field name="scuttleTime" validation="Decimal" /> <field name="stripTime" validation="Decimal" version="Rebellion"/> </structure> <structure name="CapitalShipData">
<structure version="Rebellion" name="TitanData"> <structure_reference name="ExperienceLevelData:0" type="TitanExperienceLevelData" /> <structure_reference name="ExperienceLevelData:1" type="TitanExperienceLevelData" /> <structure_reference name="ExperienceLevelData:2" type="TitanExperienceLevelData" /> <structure_reference name="ExperienceLevelData:3" type="TitanExperienceLevelData" /> <structure_reference name="ExperienceLevelData:4" type="TitanExperienceLevelData" /> <structure_reference name="ExperienceLevelData:5" type="TitanExperienceLevelData" /> <structure_reference name="ExperienceLevelData:6" type="TitanExperienceLevelData" /> <structure_reference name="ExperienceLevelData:7" type="TitanExperienceLevelData" /> <structure_reference name="ExperienceLevelData:8" type="TitanExperienceLevelData" /> <structure_reference name="ExperienceLevelData:9" type="TitanExperienceLevelData" /> <field name="LevelUpEffectName" validation="Particle"/> <field name="LevelUpEffectSoundID" validation="Sound"/> </structure>
<structure_reference name="ChanceToHitTargetType:TITAN" type="ChanceToHitTarget" version="Rebellion"/>
<field name="DamagePercentBonus:ANTIVERYLIGHT:Titan" validation="Decimal" version="Rebellion" />
<field name="DamagePercentBonus:ANTILIGHT:Titan" validation="Decimal" version="Rebellion" />
<field name="DamagePercentBonus:ANTIMEDIUM:Titan" validation="Decimal" version="Rebellion" />
<field name="DamagePercentBonus:ANTIHEAVY:Titan" validation="Decimal" version="Rebellion" />
<field name="DamagePercentBonus:ANTIVERYHEAVY:Titan" validation="Decimal" version="Rebellion" />
<field name="DamagePercentBonus:ANTIMODULE:Titan" validation="Decimal" version="Rebellion" />
<field name="DamagePercentBonus:COMPOSITE:Titan" validation="Decimal" version="Rebellion" />
<field name="DamagePercentBonus:CAPITALSHIP:Titan" validation="Decimal" version="Rebellion" />
<field name="DamagePercentBonus:CAPITALABILITY:Titan" validation="Decimal" version="Rebellion" /> <field name="DamagePercentBonus:TITAN:CapitalShip" validation="Decimal" version="Rebellion" /> <field name="DamagePercentBonus:TITAN:VeryLight" validation="Decimal" version="Rebellion" /> <field name="DamagePercentBonus:TITAN:Light" validation="Decimal" version="Rebellion" /> <field name="DamagePercentBonus:TITAN:Medium" validation="Decimal" version="Rebellion" /> <field name="DamagePercentBonus:TITAN:Heavy" validation="Decimal" version="Rebellion" /> <field name="DamagePercentBonus:TITAN:VeryHeavy" validation="Decimal" version="Rebellion" /> <field name="DamagePercentBonus:TITAN:Module" validation="Decimal" version="Rebellion" /> <field name="DamagePercentBonus:TITAN:Pirate" validation="Decimal" version="Rebellion" /> <field name="DamagePercentBonus:TITAN:Titan" validation="Decimal" version="Rebellion" />
<structure required="false" name="pirateMercenariesInfo"> <field name="minTimeBetweenAttacks" validation="Integer" /> <field name="maxTimeBetweenAttacks" validation="Integer" /> <field name="arrivalDelayTime" validation="Integer" /> <structure name="spawnShips"> <field name="minFleetPoints" validation="Integer" /> <field name="maxFleetPoints" validation="Integer" /> <iterative_field name="requiredShipCount"> <structure required="false" name="requiredShip"> <field name="type" validation="Entity" /> <field name="minCount" validation="Integer"/> <field name="maxCount" validation="Integer"/> </structure> </iterative_field> <iterative_field name="randomShipCount"> <structure required="false" name="randomShip"> <field name="type" validation="Entity" /> <field name="weight" validation="Integer" /> </structure> </iterative_field> </structure> </structure>
<structure_reference name="diplomaticPointsSpeedData-Slow" type="DiplomaticPointsSpeedData" version="DiplomacyOnly"/> <structure_reference name="diplomaticPointsSpeedData-Normal" type="DiplomaticPointsSpeedData" version="DiplomacyOnly"/> <structure_reference name="diplomaticPointsSpeedData-Fast" type="DiplomaticPointsSpeedData" version="DiplomacyOnly"/> <structure_reference name="diplomaticPointsSpeedData-Faster" type="DiplomaticPointsSpeedData" version="DiplomacyOnly"/> <structure_reference name="victorySpeedData-Slow" type="DiplomaticPointsSpeedData" version="Rebellion"/> <structure_reference name="victorySpeedData-Normal" type="DiplomaticPointsSpeedData" version="Rebellion"/> <structure_reference name="victorySpeedData-Fast" type="DiplomaticPointsSpeedData" version="Rebellion"/> <structure_reference name="victorySpeedData-Faster" type="DiplomaticPointsSpeedData" version="Rebellion"/>
<field name="diplomacyPointsForRelationship:Trade" validation="Decimal" version="Rebellion"/> <field name="diplomacyPointsForRelationship:ExternalVision" validation="Decimal" version="Rebellion"/> <field name="diplomacyPointsForRelationship:InternalVision" validation="Decimal" version="Rebellion"/> <field name="diplomacyPointsForRelationship:CeaseFire" validation="Decimal" version="Rebellion"/> <field name="diplomacyPointsForRelationship:PeaceTreaty" validation="Decimal" version="Rebellion"/> <field name="diplomacyPointsForPactCount:1" validation="Decimal" version="Rebellion"/> <field name="diplomacyPointsForPactCount:2" validation="Decimal" version="Rebellion"/> <field name="diplomacyPointsForPactCount:3" validation="Decimal" version="Rebellion"/> <field name="diplomacyPointsForPactCount:4" validation="Decimal" version="Rebellion"/> <field name="diplomacyPointsForPactCount:5" validation="Decimal" version="Rebellion"/> <field name="diplomacyPointsForPactCount:6" validation="Decimal" version="Rebellion"/> <field name="diplomaticVictoryForPlayerCount:2" validation="Decimal" version="Rebellion"/> <field name="diplomaticVictoryForPlayerCount:3" validation="Decimal" version="Rebellion"/> <field name="diplomaticVictoryForPlayerCount:4" validation="Decimal" version="Rebellion"/> <field name="diplomaticVictoryForPlayerCount:5" validation="Decimal" version="Rebellion"/> <field name="diplomaticVictoryForPlayerCount:6" validation="Decimal" version="Rebellion"/> <field name="diplomaticVictoryForPlayerCount:7" validation="Decimal" version="Rebellion"/> <field name="diplomaticVictoryForPlayerCount:8" validation="Decimal" version="Rebellion"/> <field name="diplomaticVictoryForPlayerCount:9" validation="Decimal" version="Rebellion"/> <field name="diplomaticVictoryForPlayerCount:10" validation="Decimal" version="Rebellion"/> <field name="aiDiplomaticPointBonusScalar:Easy" validation="Decimal" version="Rebellion"/> <field name="aiDiplomaticPointBonusScalar:Medium" validation="Decimal" version="Rebellion"/> <field name="aiDiplomaticPointBonusScalar:Hard" validation="Decimal" version="Rebellion"/> <field name="aiDiplomaticPointBonusScalar:Unfair" validation="Decimal" version="Rebellion"/> <field name="aiDiplomaticPointBonusScalar:Nightmare" validation="Decimal" version="Rebellion"/> <field name="aiDiplomaticPointBonusScalar:Impossible" validation="Decimal" version="Rebellion"/>
<field name="factionRelationsIncrement" validation="Decimal" version="Rebellion"/>
<field name="diplomaticVictoryMultiplier" validation="Decimal" version="DiplomacyOnly"/> <field name="positiveDiplomaticPointsPerPoint" validation="Decimal" version="DiplomacyOnly"/> <field name="negativeDiplomaticPointsPerPoint" validation="Decimal" version="DiplomacyOnly"/>
<iterative_field name="FactionCount" version="Rebellion"> <field required="false" name="FactionName" validation="StringInfo"/> </iterative_field>
<structure name="victoryData" version="Rebellion"> <field name="occupationVictoryStarType" validation="Entity"/> <field name="occupationVictoryStarName" validation="Any"/> <field name="occupationVictoryPlanetType" validation="GalaxyDesign"/> <field name="occupationVictoryPlanetName" validation="Any"/> <field name="occupationVictoryPlanetTemplate" validation="GalaxyTemplate"/> <field name="occupationVictoryTime" validation="Integer"/> </structure>
more coming...
finishCondition:
<condition><value version="Rebellion">OwnerNoLongerHasBuff</value> <field required="true" name="buffTypeToQuery" validation="Entity"/> </condition>
<value version="Rebellion">AbilityUsed</value> <value version="Rebellion">AnyOnConditionInstantActionDone</value>
galaxy_scenario_def:
PlayerType:
<field name="isInsurgentPlayer" validation="Boolean" /> <field name="isOccupationPlayer" validation="Boolean" version="Rebellion"/> <field name="themeGroup" validation="Any" />
instantActionTriggerType:
<condition value="OnCondition" version="Rebellion"> <condition_field name="instantActionConditionType"> <condition> <value>IfOwnerIsAboutToDie</value> </condition> <condition> <value>IfFirstSpawnerHasBuff</value> <value>IfOwnerHasBuff</value> <value>IfFirstSpawnerDoesNotHaveBuff</value> <value>IfOwnerDoesNotHaveBuff</value> <field name="conditionBuffType" validation="Entity" /> <field name="conditionBuffShortName" validation="StringInfo" /> </condition> </condition_field> </condition>
levelSourceType:
<condition> <value>TitanUpgradeLevel</value> <field required="true" name="sourcePropertyType" validation="Simple"> <value>AbilityALevel</value> <value>AbilityBLevel</value> <value>AbilityCLevel</value> <value>AbilityDLevel</value> <value>AbilityELevel</value> </field> </condition>
planets:
meshInfoCount:
<field name="shouldPrefer" validation="Boolean" version="Rebellion"/>
<structure name="planetRuinDef" version="Rebellion"> <field name="ruinPlanetType" validation="Entity"/> <field name="attachType" /> <field name="effectName" validation="Particle"/> <field name="startTime" validation="Decimal"/> <field name="soundID" validation="Sound"/> <field name="creditsOnStrippedToTheCore" validation="Decimal"/> <field name="metalOnStrippedToTheCore" validation="Decimal"/> <field name="crystalOnStrippedToTheCore" validation="Decimal"/> </structure>
more on previous...
ResearchSubject:
ResearchField:
<value version="Rebellion">ResearchUnlock</value>
modifierTypeBool:
<value version="Rebellion">CapitalShipsTitansAndStarBasesCountAsPlanetForNoGameLoss</value> <!-- diplomacy 1.3 --> <value version="Rebellion">FriendlyWithPiratesRebelNeutrals</value> <value version="Rebellion">StripPlanetsOnScuttle</value> <value version="Rebellion">StarBasesCanHyperspace</value> <value version="Rebellion">AllowAlliesToUsePhaseGates</value> <value version="Rebellion">ResearchVictory</value> <value version="Rebellion">SpawnCopyOfPirateRaidsAtRandomPlanet</value> <value version="Rebellion">FriendlyInsurgentShipsSpawnedAtHomePlanetWhenEnemyPlanetLiberated</value> <value version="Rebellion">DestabilizationProtection</value>
<condition> <value version="Rebellion">ApplyBuffToPlanetsAfterScuttle</value> <value version="Rebellion">ApplyBuffToAllOwnedShipsWhenOwnedPlanetFalls</value> <value version="Rebellion">ApplyBuffToShipsAfterHyperspace</value> <value version="Rebellion">ApplyBuffToOwnedPlanetAfterLastEnemyShipLeavesOrDies</value> <value version="Rebellion">ApplyBuffToPlanetAfterColonization</value> <value version="Rebellion">ApplyBuffToPlanetAfterPlayerDestroys</value> <field name="buffToApply" validation="Entity"/> </condition> <condition> <value version="Rebellion">SetFaction</value> <field name="factionNameID" validation="StringInfo"/> </condition>
modifierTypeFloat:
<value version="Rebellion">OrbitalCannonPriceAdjustment</value> <value version="Rebellion">BombingCooldownDecrease</value> <value version="Rebellion">TradeGoodsValueAdjustmentWithNonAlliedPlayers</value> <value version="Rebellion">PopulationTaxRateAdjustmentWhenEnemyInGravityWell</value> <value version="Rebellion">StarBasesPerGravityWellAdjustment</value> <value version="Rebellion">TitanConstructionCap</value> <value version="Rebellion">ShipMaxSlotsWhenOnlyAlliedWithSameRaceSameFactionPlayers</value> <value version="Rebellion">LabsPerCapitalShip</value> <value version="Rebellion">LabsPerCapitalShipMax</value> <value version="Rebellion">ChanceToRespawnFrigateAtHomeworldUponDeath</value> <value version="Rebellion">ChanceToTemporarilyCloneEnemyFrigateWhenKilled</value> <value version="Rebellion">ChanceToTemporarilyCloneEnemyFrigateWhenKilledDuration</value> <value version="Rebellion">CultureShieldRegenAmount</value> <value version="Rebellion">CreditsGainedPerPointOfBombingDamageDealt</value> <value version="Rebellion">OrbitalCannonSlotCostAdjustment</value> <value version="Rebellion">ArmorBaseAdjustmentWhenInFriendlyGravityWell</value> <value version="Rebellion">CultureModuleCostAdjustment</value> <value version="Rebellion">CultureSpreadRateBaseAdjustment</value> <value version="Rebellion">HyperspaceAntimatterCostAdjustmentWhenGoingToFriendlyGravityWell</value> <value version="Rebellion">StarBaseUpgradeCostAdjustment</value> <value version="Rebellion">CultureChanceToIgnoreShieldsAsDamageTarget</value> <value version="Rebellion">ChanceToConvertFrigatesHyperspacingFromPlanet</value> <value version="Rebellion">ShipBuildRateAdjustmentWhenEnemyInGravityWell</value> <value version="Rebellion">CapitalShipTaxIncome</value> <value version="Rebellion">CapitalShipAndTitanAngularThrustAdjustment</value> <value version="Rebellion">ExperienceAwardedAdjustmentWhenInFriendlyGravityWell</value> <value version="Rebellion">CultureEnemyAllegianceRateAdjustment</value>
<condition> <value version="Rebellion">WeaponRateOfFireAdjustmentWhenInGravityWellBeingBombed</value> <!-- diplomacy 1.3 --> <value version="Rebellion">WeaponDamageAdjustmentWhenInGravityWellBeingBombed</value> <!-- diplomacy 1.3 --> <value version="Rebellion">WeaponDamageAdjustmentWhenInFriendlyGravityWell</value> <!-- diplomacy 1.3 --> <value version="Rebellion">WeaponDamageAdjustmentForEachAlliedPlayerInGravityWell</value> <value>WeaponRangeAdjustment</value> <value>WeaponRateOfFireAdjustment</value> <value>WeaponDamageAdjustment</value> <value>WeaponIgnoresShieldsAdjustment</value> <field name="baseValue" validation="Decimal"/> <field name="perLevelValue" validation="Decimal"/> <field name="linkedWeaponClass"/> </condition>
Titan Upgrade:
<?xml version="1.0" encoding="UTF-8"?><tns:entity_definitions xmlns:tns="http://www.example.org/element_definitions/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.example.org/element_definitions/ entity_definitions.xsd "> <structure name="TitanUpgrade"> <iterative_field name="stageCount"> <structure required="false" name="stage"> <field name="nameStringID" validation="StringInfo"/> <field name="descStringID" validation="StringInfo"/> <structure_reference name="researchPrerequisites"/> <field name="levelRequirement" validation="Integer"/> <field name="hudIcon" validation="Brush"/> <field name="smallHudIcon" validation="Brush"/> <field name="infoCardIcon" validation="Brush"/> <iterative_field name="upgradePropertyCount"> <structure required="false" name="upgradeProperty"> <field name="propertyType" validation="Simple"> <value>WeaponDamage</value> <value>MaxHullPoints</value> <value>HullPointRestoreRate</value> <value>MaxShieldPoints</value> <value>ShieldPointRestoreRate</value> <value>BaseArmorPoints</value> <value>MaxAntiMatterPoints</value> <value>AntiMatterRestoreRate</value> <value>AbilityCooldownRate</value> <value>AbilityALevel</value> <value>AbilityBLevel</value> <value>AbilityCLevel</value> <value>AbilityDLevel</value> </field> <field name="value" validation="Decimal"/> </structure> </iterative_field> <iterative_field name="upgradeBoolPropertyCount"> <field required="false" name="upgradeBoolProperty" validation="Simple"> <value>CanPreventEnemyColonize</value> <value>CanPreventPlanetLossByBombing</value> <value>CanPreventEnemyColonize</value> <value>CanPreventPlanetLossByBombing</value> </field> </iterative_field> </structure> </iterative_field> </structure></tns:entity_definitions>
Titan:
<?xml version="1.0" encoding="UTF-8"?><tns:entity_definitions xmlns:tns="http://www.example.org/element_definitions/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.example.org/element_definitions/ entity_definitions.xsd "> <structure name="Titan"> <field name="ability:0" validation="Entity"/> <field name="ability:1" validation="Entity"/> <field name="ability:2" validation="Entity"/> <field name="ability:3" validation="Entity"/> <field name="ability:4" validation="Entity" version="Entrenchment"/> <field name="defaultAutoAttackRange" type="defaultAutoAttackRange"/> <field name="defaultAutoAttackOn" validation="Boolean"/> <field name="prefersToFocusFire" validation="Boolean"/> <field name="usesFighterAttack" validation="Boolean" version="Entrenchment"/> <field name="autoJoinFleetDefault" validation="Boolean"/> <field name="canBomb" type="canBomb"/> <field name="mainViewIcon" validation="Brush"/> <structure_reference name="basePrice" type="Cost"/> <field name="slotCount" validation="Decimal"/> <field name="BuildTime" validation="Decimal"/> <structure_reference name="MaxHullPoints" type="LevelIncrease"/> <structure_reference name="MaxShieldPoints" type="LevelIncrease"/> <structure_reference name="HullPointRestoreRate" type="LevelIncrease"/> <structure_reference name="ShieldPointRestoreRate" type="LevelIncrease"/> <structure_reference name="ArmorPointsFromExperience" type="LevelIncrease"/> <structure_reference name="maxMitigation" type="LevelIncrease"/> <structure_reference name="MaxAntiMatter" type="LevelIncrease"/> <structure_reference name="AntiMatterRestoreRate" type="LevelIncrease"/> <structure_reference name="CultureProtectRate" type="LevelIncrease"/> <field name="NameStringID" validation="StringInfo"/> <field name="DescriptionStringID" validation="StringInfo"/> <field name="picture" validation="Brush"/> <structure_reference name="Prerequisites" type="researchPrerequisites"/> <field name="statCountType" type="statCountType"/> <iterative_field name="UpgradeTypeCount"> <field required="false" name="UpgradeType" validation="Entity"/> </iterative_field> <field name="numRandomDebrisLarge" validation="Integer"/> <field name="numRandomDebrisSmall" validation="Integer"/> <iterative_field name="numSpecificDebris"> <field required="false" name="specificDebrisMeshName" validation="Mesh"/> </iterative_field> <field name="armorType" type="armorType"/> <field name="hudIcon" validation="Brush"/> <field name="smallHudIcon" validation="Brush"/> <field name="infoCardIcon" validation="Brush"/> <field name="minZoomDistanceMult" validation="Decimal"/> <iterative_field name="NumWeapons"> <structure_reference required="false" name="Weapon"/> </iterative_field> <field name="m_weaponIndexForRange" validation="Integer"/> <field name="firingAlignmentType" type="firingAlignmentType" version="Entrenchment"/> <field name="TargetCountPerBank:FRONT" validation="Integer" version="Entrenchment"/> <field name="TargetCountPerBank:BACK" validation="Integer" version="Entrenchment"/> <field name="TargetCountPerBank:LEFT" validation="Integer" version="Entrenchment"/> <field name="TargetCountPerBank:RIGHT" validation="Integer" version="Entrenchment"/> <field name="canOnlyTargetStructures" validation="Boolean" version="Entrenchment"/> <field name="mass" validation="Decimal"/> <field name="ShieldMeshName" validation="Mesh"/> <field name="renderShield" validation="Boolean" version="Entrenchment"/> <field name="maxAccelerationLinear" validation="Decimal"/> <field name="maxAccelerationStrafe" validation="Decimal"/> <field name="maxDecelerationLinear" validation="Decimal"/> <field name="maxAccelerationAngular" validation="Decimal"/> <field name="maxDecelerationAngular" validation="Decimal"/> <field name="maxSpeedLinear" validation="Decimal"/> <field name="maxRollRate" validation="Decimal" version="Entrenchment"/> <field name="maxRollAngle" validation="Decimal" version="Entrenchment"/> <field name="squadTypeEntityDef:0" validation="Entity"/> <field name="squadAntiMatterCost:0" validation="Decimal"/> <field name="squadTypeEntityDef:1" validation="Entity"/> <field name="squadAntiMatterCost:1" validation="Decimal"/> <field name="squadTypeEntityDef:2" validation="Entity" version="Entrenchment"/> <field name="squadAntiMatterCost:2" validation="Decimal" version="Entrenchment"/> <field name="squadTypeEntityDef:3" validation="Entity" version="Entrenchment"/> <field name="squadAntiMatterCost:3" validation="Decimal" version="Entrenchment"/> <iterative_field name="NumSoundsFor:ONATTACKORDERISSUED"> <field required="false" name="SoundID" validation="Sound"/> </iterative_field> <iterative_field name="NumSoundsFor:ONCREATION"> <field required="false" name="SoundID" validation="Sound"/> </iterative_field> <iterative_field name="NumSoundsFor:ONGENERALORDERISSUED"> <field required="false" name="SoundID" validation="Sound"/> </iterative_field> <iterative_field name="NumSoundsFor:ONSELECTED"> <field required="false" name="SoundID" validation="Sound"/> </iterative_field> <iterative_field name="NumSoundsFor:ONSTARTPHASEJUMP"> <field required="false" name="SoundID" validation="Sound"/> </iterative_field> <field name="MeshName" validation="Mesh" version="Vanilla"/> <iterative_field name="MeshNameInfoCount" version="Entrenchment"> <structure_reference required="false" name="MeshNameInfo"/> </iterative_field> <field name="meshNameIncreasedEffectName" validation="Particle" version="Entrenchment"/> <field name="meshNameDecreasedEffectName" validation="Particle" version="Entrenchment"/> <field name="ExhaustParticleSystemName" validation="Particle"/> <field name="ExplosionName" validation="Explosion"/> <structure_reference name="CommandPoints" type="LevelIncrease"/> <structure_reference name="weaponCooldownDecreasePerc" type="LevelIncrease"/> <structure_reference name="weaponDamageIncreasePerc" type="LevelIncrease"/> <field name="HyperspaceChargingSoundID" validation="Sound"/> <field name="HyperspaceTravelSoundID" validation="Sound"/> <field name="EngineSoundID" validation="Sound"/> <field name="formationRank" validation="Integer" values="0,1,2,3"/> <field name="minShadow" validation="Decimal"/> <field name="maxShadow" validation="Decimal"/> </structure></tns:entity_definitions>
useCostType:
<condition> <value version="Rebellion">ResourcesAndMustHaveTitan</value> <value>Resources</value> <structure_reference name="resourceCost" type="Cost"/> <structure_reference name="cooldownTime" type="GenericLevel"/> <field name="orderAcknowledgementType" type="orderAcknowledgementType" version="Entrenchment"/> </condition> <condition><value>HullAndAntimatter</value> <structure_reference name="hullCost" type="GenericLevel"/> <structure_reference name="antiMatterCost" type="GenericLevel"/> <structure_reference name="cooldownTime" type="GenericLevel"/> <field name="orderAcknowledgementType" type="orderAcknowledgementType" version="Entrenchment"/> </condition>
Wiki's been updated too for the current Rebellion content (See link in OP).
Looks like no changes with the release of Rebellion so I've uploaded the latest version of the plugin. Install it the same way as before.
This plugin will support the previous versions of sins and rebellion, BUT not in the same workspace. You will need to create another workspace for Rebellion and setup the SOASE preferences for that workspace similar to below.
I got a couple of issue reports today which is nice.
I think they are related with the Strict Version Validation defaulting to Diplomacy. If your using the tool for Rebellion, make sure to go into Windows/Preferences/Sins Preferences and select the Rebellion Strict Version Validation.
Thanks for the quick reply;
I was the one that posted those reports; I did check that i was in fact using the Rebellion validation and I was. Both issues still occur with strict validation set to Rebellion; also note that at least the issue with targetfilter in buffs is not related to Rebellion, since this existed in pre-Rebellion files as well.
edit:
I just checked the xml definitions and they do seem to contain both the targetfilter and the POINTDEFENSELASER;
the targetfilter issue might be that the targetfilter item is not available for all possible buffs that can use it; I'm using it on instantaction buff type: ApplyBuffToLocalOrbitBodyWithTravel; so I suspect targetfilter may be used in more situations than you anticipated (the (dev) game seems to handle it just fine)
I also checked the .pref file and the strictVersion string was Rebellion, so I believe the problem may be that the conditional items are not being handled properly;
edit 2:
I just realized a possible cause for the POINTDEFENSELASER: I use it in linkedWeaponClass as part of a researchModifier; you may have missed those. - just confirmed that the xml is missing the rebellion weapon entries.
Can you post your example here? This is only included because Ironclad said it existed, though no actual entity file exists that uses it currently in the core game.
Fixed internally. I validated against the Rebellion source which didn't include these in any research modifiers. Though this may be a mistake with some of the pacts.
Well, here's an example of the targetfilter usage:
TXTentityType "Buff"onReapplyDuplicateType "PrioritizeOldBuffs"buffStackingLimitType "ForAllPlayers"stackingLimit 1allowFirstSpawnerToStack FALSEbuffExclusivityForAIType "ExclusiveForAllPlayers"isInterruptable FALSEisChannelling FALSEnumInstantActions 1instantAction buffInstantActionType "ApplyBuffToLocalOrbitBodyWithTravel" instantActionTriggerType "OnHyperspaceExit" buffType "BuffInherentPhaseGate" targetFilter numOwnerships 3 ownership "Friendly" ownership "Enemy" ownership "NoOwner" numObjects 2 object "Planet" object "Star" numSpaces 1 space "Normal" numConstraints 0 travelSpeed 1000.000000 hasWeaponEffects TRUE weaponEffectOriginType "Targetter" weaponEffectAttachInfo attachType "Aura" weaponEffectImpactOffsetType "RandomMesh" canWeaponEffectHitHull TRUE canWeaponEffectHitShields TRUE weaponEffectsDef weaponType "Projectile" burstCount 1 burstDelay 1.000000 fireDelay 0.000000 muzzleEffectName "" muzzleSoundMinRespawnTime 0.100000 muzzleSounds soundCount 1 sound "" hitEffectName "" hitHullEffectSounds soundCount 1 sound "" hitShieldsEffectSounds soundCount 1 sound "" projectileTravelEffectName ""numPeriodicActions 0numOverTimeActions 0numEntityModifiers 0numEntityBoolModifiers 0numFinishConditions 0
Thanks, I uploaded a new version that addresses this gap as well as the new weapon class types used in research subjects.
Great,
it's working as expected now; thanks.
I do not know if this has already been reported but I'm trying to update my mod of diplomacy to rebellion and unless I am mistaken there is a new line added at the end of the research that the validator does not report:
uniqueOverlayBrush ""
Thanks for your wonderful tool and sorry for my english
Ah yes, thanks for pointing this out. The tool indeed did not care because it was the last line of the file and it stopped validating at artifactPicture. Hence I did not see any issues with validating against the rebellion reference files.
I'll fix this with my next update.
Unless I missed it you might want to add this to your wiki instillation page.
Thanks, I added that portion to the plugin setup.
This is truly an awesome thread...and sticky too.
Schwaa! When did this get stickied? Does that mean I get to stop updating it like the rest of the stickies?
N0--now you are subject to excessive whining and trolling when you don't update.
En joy.
Awesome! Did you do this plugin all by yourself? Also I'm quite impressed that you force people to work with Eclipse (and thus download the Java JDK/JRE) - it's highly useful Do you program in Java as well?
Thank you!
Yes, it is was designed and developed soley by myself. It started in concept as a batch mod validator, but I soon realized after I had a working prototype created that I could potentially fit it as an Eclipse plugin. After some light researching on how to make Eclipse plugins I set about adding in the hooks to my mod validation tool. Even though I didn't accomplish all the goals I had set out for the Eclipse plugin, all in all it was a fairly satisfying experience.
I consider this the entry price and gateway to using the plugin. Basically if you can't download, extract Eclipse and the Java JDK then this tool is most likely above your head to use.
This tool is probably not for the notepad tinkerers, though if they are competent the content assistance and instant feedback of syntax errors can save a whole lot of hours in debugging. Also the quick openining of referenced entities is a godsend too (i.e. open a capital ship entity, highlight an ability->right click->open entity, and so on through the buffs). Add in the search capabilities of Eclipse, support for SVN, ... I could go on.
Yes, I've been coding in Java for a very long time now.
So are we going to be able to download 2.0.8 anytime soon? The version history says you had an update on June 28th but the latest download is from the 18th.
I've uploaded 2.0.8 today. Thanks for reminding me.
6/28/2012 v2.0.8 # Defect: Changed RequiredFactionNameID from Any to StringInfo # Defect: Added Invalid to WeaponClassType # Enhancement: weaponClassForWeaponPassive now references global WeaponClassType # Defect: PirateStrengthAgainstYouAdjustment changed to NotDiplomacyOrRebellion # Enhancement: Added new version policy NotDiplomacyOrRebellion # Defect: Added xpModifier to star base upgrade
So, I've been meaning to look at some metrics on this tool.
Total Lines of Code: 5380
There are many great features available to you once you register, including:
Sign in or Create Account