I have an advanced guard tower, that I would like to fire a missile from 3 slots on each of the 4 sides.
How would I go about getting this to work efficiently?
I tried setting up 4 turrets (one for each side), coding it so they do not move.
Setting up 4 different natural turret angles.
And finally having a weapon that could target 45d that was given to each turret.
Relevant Draw code:
<scriptedModelDraw id="ModuleTag_Draw" OkToChangeModelColor="true" ExtraPublicBone="Weapon_FXA01 Weapon_FXA02 Weapon_FXA03 Weapon_FXB01 Weapon_FXB02 Weapon_FXB03 Weapon_FXC01 Weapon_FXC02 Weapon_FXC03 Weapon_FXD01 Weapon_FXD02 Weapon_FXD03"> <ModelConditionState ParseCondStateType="PARSE_DEFAULT"> <Model Name="GB_AGT" /> <WeaponFireFXBone WeaponSlotID="1" WeaponSlotType="PRIMARY_WEAPON" BoneName="FX_Weapon" /> <WeaponFireFXBone WeaponSlotID="2" WeaponSlotType="PRIMARY_WEAPON" BoneName="FX_Weapon" /> <WeaponFireFXBone WeaponSlotID="3" WeaponSlotType="PRIMARY_WEAPON" BoneName="FX_Weapon" /> <WeaponFireFXBone WeaponSlotID="4" WeaponSlotType="PRIMARY_WEAPON" BoneName="FX_Weapon" /> <WeaponLaunchBone WeaponSlotType="PRIMARY_WEAPON" BoneName="Weapon_FXA" WeaponSlotID="1" /> <WeaponLaunchBone WeaponSlotType="PRIMARY_WEAPON" BoneName="Weapon_FXB" WeaponSlotID="2" /> <WeaponLaunchBone WeaponSlotType="PRIMARY_WEAPON" BoneName="Weapon_FXC" WeaponSlotID="3" /> <WeaponLaunchBone WeaponSlotType="PRIMARY_WEAPON" BoneName="Weapon_FXD" WeaponSlotID="4" /> <Turret TurretNameKey="Weapon_FXA02" TurretID="1" TurretArtPitch="40d" /> <Turret TurretNameKey="Weapon_FXB02" TurretID="2" TurretArtPitch="40d" /> <Turret TurretNameKey="Weapon_FXC02" TurretID="3" TurretArtPitch="40d" /> <Turret TurretNameKey="Weapon_FXD02" TurretID="4" TurretArtPitch="40d" />
Relevant WeaponSet Update:
<WeaponSetUpdate id="ModuleTag_Weapon01SetUpdate"> <WeaponSlotTurret ID="1"> <Weapon Ordering="PRIMARY_WEAPON" Template="AGTRocketWeapon" /> <TurretSettings MaxDeflectionAntiClockwise="0d" MaxDeflectionClockwise="0d"> <TurretAITargetChooserData /> </TurretSettings> </WeaponSlotTurret> </WeaponSetUpdate> <WeaponSetUpdate id="ModuleTag_Weapon02SetUpdate"> <WeaponSlotTurret ID="2"> <Weapon Ordering="PRIMARY_WEAPON" Template="AGTRocketWeapon" /> <TurretSettings MaxDeflectionAntiClockwise="0d" MaxDeflectionClockwise="0d" NaturalTurretAngle="270d"> <TurretAITargetChooserData /> </TurretSettings> </WeaponSlotTurret> </WeaponSetUpdate> <WeaponSetUpdate id="ModuleTag_Weapon03SetUpdate"> <WeaponSlotTurret ID="3"> <Weapon Ordering="PRIMARY_WEAPON" Template="AGTRocketWeapon" /> <TurretSettings MaxDeflectionAntiClockwise="0d" MaxDeflectionClockwise="0d" NaturalTurretAngle="180d"> <TurretAITargetChooserData /> </TurretSettings> </WeaponSlotTurret> </WeaponSetUpdate> <WeaponSetUpdate id="ModuleTag_Weapon04SetUpdate"> <WeaponSlotTurret ID="4"> <Weapon Ordering="PRIMARY_WEAPON" Template="AGTRocketWeapon" /> <TurretSettings MaxDeflectionAntiClockwise="0d" MaxDeflectionClockwise="0d" NaturalTurretAngle="90d"> <TurretAITargetChooserData /> </TurretSettings> </WeaponSlotTurret> </WeaponSetUpdate>
Weapon code:
<WeaponTemplate id="AGTRocketWeapon" Name="AGTRocketWeapon" AttackRange="350.0" WeaponSpeed="200" MinWeaponSpeed="300" MaxWeaponSpeed="310" FireFX="FX_GDIMissileManFire" FireSound="GDI_MissileSoldier_MissileFire" AcceptableAimDelta="45d" PreAttackType="PER_TARGET" ReAcquireDetailType="PER_CLIP" ClipSize="3" AntiMask="ANTI_GROUND ANTI_AIRBORNE_VEHICLE ANTI_AIRBORNE_INFANTRY" CanFireWhileMoving="true" AutoReloadWhenIdleSeconds="2s"> <PreAttackDelay MinSeconds=".5s" MaxSeconds=".5s" /> <FiringDuration MinSeconds="1.0s" MaxSeconds="1.2s" /> <ClipReloadTime MinSeconds="0.8s" MaxSeconds="1.2s" /> <Nuggets> <ProjectileNugget WarheadTemplate="NODRocketWarhead" ProjectileTemplate="RocketSoldierRocketProjectile"></ProjectileNugget>
What happens with this set-up is that it fires at a target 3 turrets are able to fire at the motionless target. I of course wanted it so that a motionless target can only get hit by the turret whose side it is facing.
What are my best options?
Also I've about having a parse_transition from a firing to a default state, but I am unsure how to do this, any coding tips please?
Covering flap Draw code:
<!-- DRAW FLAPS--> <scriptedModelDraw id="ModuleTag_Draw_Flaps" OkToChangeModelColor="true"> <ModelConditionState ParseCondStateType="PARSE_DEFAULT"> <Model Name="GB_AGTFlaps" /> </ModelConditionState> <AnimationState ParseCondStateType="PARSE_NORMAL" ConditionsYes="PREATTACK_A"> <Animation AnimationName="GB_AGTFlaps_ATTA" AnimationMode="ONCE" /> </AnimationState> <AnimationState ParseCondStateType="PARSE_NORMAL" ConditionsYes="FIRING_OR_RELOADING_A" Flags="START_FRAME_LAST"> <Animation AnimationName="GB_AGTFlaps_ATTA" AnimationMode="MANUAL" /> </AnimationState> </ScriptedModelDraw>
Thanks for any help!