Reclassification of Battlerider-Type Weapons

Moderator: Makail

Post Reply
Erebus Alpha
Posts: 9
Joined: Wed Aug 29, 2018 7:41 am

Reclassification of Battlerider-Type Weapons

Post by Erebus Alpha » Thu Nov 01, 2018 10:08 pm

So, I'm making a mod, mostly to make some balance changes & gameplay optimization. One of which includes making biowarfare highly effective, in direct competition with the Siege Driver.

To this end, I have successfully made biomissiles operate exactly like polaris missiles instead of battleriders. They are no longer one-shot weapons, and they cause population damage just like any normal weapon (except more of it). Some variations like the nanovirus and beast bomb also do infrastructure damage on every hit.

Visually speaking, the biomissiles are not displayed on the exterior of the ship. They are just floating firepoints, like this:

Image

Turret weapons, of course, render on the exterior of the ship, and are highlighted blue when moused over:

Image

Curiously, polaris missiles & IOBM's also highlight blue as well:

Image

This leads me to believe that Polaris missiles (even though physically enclosed inside the ship) are being rendered. If the firepoints for the polaris missiles were not buried deep inside the ship, then these missiles would be visible on the exterior of the ship.

So far, the code to make the polaris-style biomissiles visible on the exterior of the ship has eluded me.

Now, the missiles are only invisible when they are sitting on the ship, inert, with no current targets. After they have been fired, the missile projectile models are indeed visible:

Image

Here is the .xml data for one of these new biomissiles. Note also that the banks on the biowar ship sections have been changed accordingly:

Code: Select all

<Weapon>
  <Name>Biomissile Plague</Name>
  <PassableShields />
  <RequiredTechnologies>
    <Technology>
      <Name>BIO_Plague</Name>
    </Technology>
  </RequiredTechnologies>
  <Attributes>
    <Attribute>
      <Name>Explosive</Name>
    </Attribute>
    <Attribute>
      <Name>Tracking</Name>
    </Attribute>
    <Attribute>
      <Name>Upgradable</Name>
    </Attribute>
    <Attribute>
      <Name>StandOff</Name>
    </Attribute>
    <Attribute>
      <Name>Bombardment</Name>
    </Attribute>
  </Attributes>
  <CompatibleSections>
    <Section>
      <Name>lv_invasion</Name>
    </Section>
    <Section>
      <Name>cr_mis_biowar</Name>
    </Section>
    <Section>
      <Name>dn_mis_BioWar</Name>
    </Section>
    <Section>
      <Name>dn_mis_biowar</Name>
    </Section>
    <Section>
      <Name>dn_mis_bio_war</Name>
    </Section>
  </CompatibleSections>
  <TurretClasses>
    <TurretClass>
      <TurretClass>PolarisMissile</TurretClass>
      <TurretClassSizes>
        <TurretClassSize>
          <TurretSize>VeryHeavy</TurretSize>
          <Turret>turret_dummy</Turret>
          <Barrel>barrel_iobm_2_vheavy</Barrel>
          <Base>base_dummy</Base>
        </TurretClassSize>
      </TurretClassSizes>
    </TurretClass>
  </TurretClasses>
  <DeployableSections />
  <CompatibleFactions />
  <PayloadType>Missile</PayloadType>
  <PlagueType>BASIC</PlagueType>
  <WeaponSize>VeryHeavy</WeaponSize>
  <Animation>
  </Animation>
  <AnimationDelay>0</AnimationDelay>
  <Cost>10000</Cost>
  <Crew>6</Crew>
  <CrewPerBank>False</CrewPerBank>
  <Power>2</Power>
  <PowerPerBank>False</PowerPerBank>
  <Supply>14</Supply>
  <SupplyPerBank>False</SupplyPerBank>
  <Signature>2</Signature>
  <SignaturePerBank>False</SignaturePerBank>
  <HpBonus>0</HpBonus>
  <Health>8</Health>
  <TrackingSpeed>0</TrackingSpeed>
  <TimeToLive>95</TimeToLive>
  <DumbfireTime>10</DumbfireTime>
  <CritHitBonus>0</CritHitBonus>
  <MalfunctionPercent>5</MalfunctionPercent>
  <MalfunctionDamage>150</MalfunctionDamage>
  <SubweaponType />
  <IsVisible>True</IsVisible>
  <IsAbductor>False</IsAbductor>
  <DisruptorValue>0</DisruptorValue>
  <DrainValue>0</DrainValue>
  <DOT>0</DOT>
  <Submunition />
  <SubmunitionAmount>0</SubmunitionAmount>
  <SubmunitionBlastType />
  <SubmunitionConeDeviation>0</SubmunitionConeDeviation>
  <ExplosiveMinEffectRange>0</ExplosiveMinEffectRange>
  <ExplosiveMaxEffectRange>0</ExplosiveMaxEffectRange>
  <DetonationRange>0</DetonationRange>
  <EMPRange>0</EMPRange>
  <EMPDuration>0</EMPDuration>
  <ArmorPiercingLevel>0</ArmorPiercingLevel>
  <NumArcs>0</NumArcs>
  <ArcRange>0</ArcRange>
  <CritHitRolls>0</CritHitRolls>
  <MaxGravityForce>0</MaxGravityForce>
  <GravityAffectRange>0</GravityAffectRange>
  <PbGrid>
    <Dimensions>10,10</Dimensions>
    <CollisionPoint>4,0</CollisionPoint>
    <Data>0001110000
0001110000
0000100000
0000000000
0000000000
0000000000
0000000000
0000000000
0000000000
0000000000
</Data>
  </PbGrid>
  <EffectiveGrid>
    <Dimensions>10,10</Dimensions>
    <CollisionPoint>5,0</CollisionPoint>
    <Data>0000111000
0000111000
0000010000
0000000000
0000000000
0000000000
0000000000
0000000000
0000000000
0000000000
</Data>
  </EffectiveGrid>
  <MaxGrid>
    <Dimensions>10,10</Dimensions>
    <CollisionPoint>5,0</CollisionPoint>
    <Data>0000111000
0000111000
0000010000
0000000000
0000000000
0000000000
0000000000
0000000000
0000000000
0000000000
</Data>
  </MaxGrid>
  <TrackSpeedModifier>0</TrackSpeedModifier>
  <BeamDamagePeriod>0</BeamDamagePeriod>
  <Volleys>1</Volleys>
  <VolleyPeriod>0</VolleyPeriod>
  <VolleyDelay>1</VolleyDelay>
  <BuildupDelay>0</BuildupDelay>
  <BaseVolleyDeviationName>10</BaseVolleyDeviationName>
  <BaseRechargeTime>30</BaseRechargeTime>
  <MuzzleSpeed>250</MuzzleSpeed>
  <ShotAcceleration>100</ShotAcceleration>
  <Duration>0</Duration>
  <MuzzleDescription>
    <MuzzleType />
    <Width>0</Width>
    <Height>0</Height>
  </MuzzleDescription>
  <Model>Bio_Missile.scene</Model>
  <DecalMaterial>Bullet hole07</DecalMaterial>
  <DecalSize>20</DecalSize>
  <MuzzleEffect>effects\Weapons\polarismissile_muzzle.effect</MuzzleEffect>
  <BuildupEffect>
  </BuildupEffect>
  <ImpactEffect>effects\Weapons\biomissile_impact.effect</ImpactEffect>
  <PlanetImpactEffect>
  </PlanetImpactEffect>
  <BulletEffect>effects\Weapons\PolarisMissile_Bullet.effect</BulletEffect>
  <RicochetEffect>
  </RicochetEffect>
  <isMuzzleEffectLooping>False</isMuzzleEffectLooping>
  <isBuildupEffectLooping>False</isBuildupEffectLooping>
  <isBulletEffectLooping>False</isBulletEffectLooping>
  <isImpactEffectLooping>False</isImpactEffectLooping>
  <isRicochetEffectLooping>False</isRicochetEffectLooping>
  <MuzzleSound>Mis_PolarisMissile_muzzle</MuzzleSound>
  <BuildupSound>
  </BuildupSound>
  <ImpactSound>Mis_PolarisMissile_impact</ImpactSound>
  <PlanetImpactSound>
  </PlanetImpactSound>
  <ExpireSound>
  </ExpireSound>
  <BulletSound>Mis_PolarisMissile_travel</BulletSound>
  <RicochetSound>
  </RicochetSound>
  <Icon>bio_plague</Icon>
  <RangeTable>
    <PbRange>7000</PbRange>
    <PbDeviation>5</PbDeviation>
    <PbDamage>7</PbDamage>
    <EffectiveRange>12500</EffectiveRange>
    <EffectiveDeviation>5</EffectiveDeviation>
    <EffectiveDamage>7</EffectiveDamage>
    <MaxRange>25000</MaxRange>
    <MaxDeviation>5</MaxDeviation>
    <MaxDamage>7</MaxDamage>
    <PlanetRange>25000</PlanetRange>
  </RangeTable>
  <BaseRicochetModifier>-10</BaseRicochetModifier>
  <RecoilFactor>0</RecoilFactor>
  <RoundMass>0</RoundMass>
  <PopDamage>7000000</PopDamage>
  <InfraDamage>0</InfraDamage>
  <TerraDamage>0</TerraDamage>
  <SolutionTolerance>220</SolutionTolerance>
  <RatingDamageEstimate>0</RatingDamageEstimate>
  <FiringRate>0</FiringRate>
  <Accuracy>0</Accuracy>
  <Range>0</Range>
</Weapon>
===============================================================

Mechanically speaking, the new bio-weapons work great and are incredibly useful - and I began to think about how much more reliable and useful other 'battlerider' type weapons might be, if reclassed & reconfigured as polaris-type weapons...

What if Zuul slave disks behaved like polaris missiles, and the disk-launcher ships manufactured and 'fired' a disk at a planet every 60 seconds or so, inflicting heavy population damage in the process? I'm not sure how the slavery mechanics work, but slave micromanagement is a pain in the butt anyway. And the Zuul have no biowarfare options available.

What if boarding pods behaved like polaris missiles, inflicting structural damage and critical strikes instead of taking over a hostile ship? Is it possible to make a weapon inflict critical strikes through armor? Could this be made into a DOT effect, like the corrosive missile clouds? If they did damage to planet populations, it could even mimic planetary invasion.

More exotically, could drones be spawned using <Submunition>, from a weapon that can fire repeatedly? This could actually make drone carriers competitive alongside barrage, blazer, armor, and war sections, in the mid to late game.

User avatar
Rossinna-Sama
Posts: 1746
Joined: Sun Nov 11, 2012 5:38 am

Re: Reclassification of Battlerider-Type Weapons

Post by Rossinna-Sama » Fri Nov 02, 2018 2:02 am

Remember to edit and add to your list the Zuul BloodWeaver Suul'ka (The Shaper) as he uses Bioweapons and is how Zuul technically get access to them.

I'll look into the bio missiles not displaying; fairly sure that's just a mount issue. And for the record, all Polaris and IOBM weapons are rendered inside the ships, even battleriders, drones and actual biomissiles are. If they are not, that's the mount themselves forcing them to not render.

Slave Disks require a return trip and they have special code which enables most of their functions; you won't be able to do anything but borrow the model for the disk\abductor for a zuul-only weapon as all weapons search for models within every separate faction file. This is why some Loa mines are invisible; they are missing those models.

Critical strikes through armor should be possible but its a double edged sword as the weapon will then bypass all armor. This is done via the StructOnly attribute which makes the weapon always act as if it hit structure instead of armor.

If you make a custom corrosive cloud and found a suitable effect for it, you should be able to make a DOT which damages planets - I think I use a system like this for some of my older bioweapons. Not sure if DOT effects can cause a critical hit though; easiest way to find out is to park a ship inside a corrosive cloud modded to have high crit chances and see what occurs.

As for drones spawning, nope. They'll just act like suicide drones do (more or less) as they will technically be remodeled missiles. Battleriders which includes drones have a ton of dedicated code attached to their Battlerider Classification and the BR_tag itself.
Sword of the Stars 2 : Project Hiver Modder
Creator of the Work-In-Progress Seimei Visual Novel series.
My dream game: Combination of Sword of the Stars 2, Angels Fall First, Conquest: Frontier Wars and Warzone 2100.

User avatar
Rossinna-Sama
Posts: 1746
Joined: Sun Nov 11, 2012 5:38 am

Re: Reclassification of Battlerider-Type Weapons

Post by Rossinna-Sama » Fri Nov 02, 2018 2:23 am

Image

Image

Nothing to do with mounts - for once. Its missing models.

So the way <Model>Bio_Missile.scene</Model> works is that it only checks in one spot, the weapons folder contained within each factions model folder. No where else.

Easiest way to solve it is to copy the biomissile\bio_missile .scene file from the Battlerider folder into the weapon folder and rename the copy to Bio_Missile.

And yes, I did remove restrictions for this test run but you can see that they are IOBM sized weapons.

For the record, this is also how you use other models as weapons. Though launching a star may be frowned upon. :googly:
Sword of the Stars 2 : Project Hiver Modder
Creator of the Work-In-Progress Seimei Visual Novel series.
My dream game: Combination of Sword of the Stars 2, Angels Fall First, Conquest: Frontier Wars and Warzone 2100.

Erebus Alpha
Posts: 9
Joined: Wed Aug 29, 2018 7:41 am

Re: Reclassification of Battlerider-Type Weapons

Post by Erebus Alpha » Sat Nov 03, 2018 1:59 am

I successfully got my non-battlerider biomissiles to render (more) properly:

Image

Interestingly, it was not a missing model issue. I had already copy-pasted the Bio_Missile.scene files into the weapon folders for each faction - that was how I got the biomissiles to render while in-flight.

I ended up comparing the .xml syntax for a barrage mission section (with native polaris missiles) to my edited biowar mission sections. And sure enough, there were differences. The banks for the biowar sections now look like this:

Code: Select all

    <Bank>
      <Id>b79fa5e6-b737-4d24-bcd3-8d8bdc9b62b4</Id>
      <TurretSize>VeryHeavy</TurretSize>
      <TurretClass>PolarisMissile</TurretClass>
      <WeaponGroup>
      </WeaponGroup>
      <DefaultWeapon>
      </DefaultWeapon>
      <FrameX>0</FrameX>
      <FrameY>0</FrameY>
      <Mounts>
        <Mount>
          <NodeName>battlerider_01</NodeName>
          <TurretOverload>
          </TurretOverload>
          <BarrelOverload>
          </BarrelOverload>
          <BaseOverload>
          </BaseOverload>
          <YawMin>0</YawMin>
          <YawMax>0</YawMax>
          <PitchMin>0</PitchMin>
          <PitchMax>0</PitchMax>
          <SectionFireAnimation>
          </SectionFireAnimation>
          <SectionReloadAnimation>
          </SectionReloadAnimation>
        </Mount>
        <Mount>
          <NodeName>battlerider_02</NodeName>
          <TurretOverload>
          </TurretOverload>
          <BarrelOverload>
          </BarrelOverload>
          <BaseOverload>
          </BaseOverload>
          <YawMin>0</YawMin>
          <YawMax>0</YawMax>
          <PitchMin>0</PitchMin>
          <PitchMax>0</PitchMax>
          <SectionFireAnimation>
          </SectionFireAnimation>
          <SectionReloadAnimation>
          </SectionReloadAnimation>
        </Mount>
        <Mount>
          <NodeName>battlerider_03</NodeName>
          <TurretOverload>
          </TurretOverload>
          <BarrelOverload>
          </BarrelOverload>
          <BaseOverload>
          </BaseOverload>
          <YawMin>0</YawMin>
          <YawMax>0</YawMax>
          <PitchMin>0</PitchMin>
          <PitchMax>0</PitchMax>
          <SectionFireAnimation>
          </SectionFireAnimation>
          <SectionReloadAnimation>
          </SectionReloadAnimation>
        </Mount>
      </Mounts>
    </Bank>
Copy-pasting the formatting for <TurretOverload>, <BarrelOverload>, and <BaseOverload> did it, though another step was necessary as well, in the bio missile's own xml:

Code: Select all

  <TurretClasses>
    <TurretClass>
      <TurretClass>PolarisMissile</TurretClass>
      <TurretClassSizes>
        <TurretClassSize>
          <TurretSize>VeryHeavy</TurretSize>
          <Turret>turret_dummy</Turret>
          <Barrel>Bio_Missile</Barrel>
          <Base>base_dummy</Base>
        </TurretClassSize>
      </TurretClassSizes>
    </TurretClass>
  </TurretClasses>
<Barrel> had to be changed to Bio_Missile to get the weapons to render correctly.

Admittedly, it's easy to tell that this solution is only a minimally-working hack. When the missiles fire, they don't animate like regular missiles. The projectiles do not visually disappear from their launchers, and then reappear later when reloaded.

I suspect that this was never an issue with the base game's polaris missiles, since they are always fully enclosed.

That being said, I'm not too picky about doing this. If it turns out to be possible to make the missiles disappear for a few moments before reappearing on their launchers, like regular missiles do, then fantastic.

...But if not, my biomissiles currently fire multiple times in combat, and are fun to use, and are pretty effective at exterminating planets, often within one turn. And the missiles are even visible too!

Erebus Alpha
Posts: 9
Joined: Wed Aug 29, 2018 7:41 am

Re: Reclassification of Battlerider-Type Weapons

Post by Erebus Alpha » Sat Nov 03, 2018 2:48 am

Another topic of interest: Is it possible to make a missile inflict damage over time to a single target upon impact, instead of targets in a specified area? A small corrosive-missile-style 'bubble' may successfully hit only one target, but it would also be very easy for that target to fly out of range of the DOT.

I remember seeing a list of all the SOTS2 weapon attributes somewhere. But I seem to be unable to find it now. In hindsight, I should have bookmarked it.

ZedF
Board Ninja
Board Ninja
Posts: 12581
Joined: Sun Aug 27, 2006 7:13 pm

Re: Reclassification of Battlerider-Type Weapons

Post by ZedF » Sat Nov 03, 2018 4:00 am

In SotS1 a small DOT bubble could be given the 'sticky' property; I imagine something similar might be done in SotS2.
Zed's TARs (sample):
Fractious Allies -- Hiver vs. Hiver, with allies
Who Let The Bugs Out -- Hiver vs. Tarka and Zuul
Tarka Ascendant -- Tarka vs. Hiver and Zuul

Strategy & Tactics Forum Archive -- More posts on strategy, tactics, and TARs

Erebus Alpha
Posts: 9
Joined: Wed Aug 29, 2018 7:41 am

Re: Reclassification of Battlerider-Type Weapons

Post by Erebus Alpha » Tue Nov 06, 2018 7:01 pm

In theory, the 'sticky' and 'structonly' attributes should work well together for a boarding pod DOT. Instead of overtaking hostile ships, the boarding parties will be planting charges and blowing things up from the inside-out. Because powered exoskeletons exist in the SOTSverse, it's not necessarily a suicide mission either!

Mechanically speaking, a long DOT will favor extended engagements; a cruiser would probably be destroyed by conventional weapon fire before the boarding DOT inflicts much damage, but dreadnoughts would live long enough for such a DOT to become practical. Leviathans could be weak against such a weapon. The 'structonly' attribute also increases its relative effectiveness against sturdier, more heavily armored targets.

I still need to test it against moving targets, and test to see if a DOT can inflict critical strikes, but so far, it appears to work in the weapon testing area.

User avatar
willdieh
Posts: 235
Joined: Mon May 08, 2017 4:41 pm

Re: Reclassification of Battlerider-Type Weapons

Post by willdieh » Tue Nov 06, 2018 8:17 pm

Sounds awesome!

Post Reply

Return to “Modding”

Who is online

Users browsing this forum: No registered users and 3 guests