Posted by: Gameanater - Monday, October 29, 2018 2:05:07 AM
[code=plain]
;------------------------------------------------------------------------------
;Airgineer flying Dozer.
;Weaker weapons than Comanche and does not benefit from Stealth upgrade
;But has better armor, heals aircraft and vehicles, and creates buildings.
;Will create TF2 Engineer voice lines for this unit later.
Object AirF_AmericaVehicleAirgineer
; *** ART Parameters ***
SelectPortrait = SACCommanche_L
ButtonImage = SACCommanche_L
UpgradeCameo1 = Upgrade_ComancheRocketPods
UpgradeCameo2 = Upgrade_AmericaAdvancedTraining
UpgradeCameo3 = Upgrade_AmericaCountermeasures
;UpgradeCameo4 = AirF_Upgrade_StealthComanche ;not no more
;UpgradeCameo5 = NONE
Draw = W3DModelDraw ModuleTag_01
DefaultConditionState
Model = AVComanche
HideSubObject = MissileUpgrade
Animation = AVComanche.AVComanche
AnimationMode = LOOP
WeaponMuzzleFlash = PRIMARY TurretFX
WeaponFireFXBone = PRIMARY Muzzle
WeaponFireFXBone = SECONDARY Muzzle
WeaponLaunchBone = SECONDARY Muzzle
End
ConditionState = REALLYDAMAGED
Model = AVComanche_d
Animation = AVComanche_d.AVComanche_d
AnimationMode = LOOP
End
ConditionState = WEAPONSET_PLAYER_UPGRADE
ShowSubObject = MissileUpgrade
Animation = AVComanche.AVComanche
AnimationMode = LOOP
WeaponFireFXBone = TERTIARY WeaponB
WeaponLaunchBone = TERTIARY WeaponB
End
ConditionState = WEAPONSET_PLAYER_UPGRADE REALLYDAMAGED
Model = AVComanche_d
ShowSubObject = MissileUpgrade
Animation = AVComanche_d.AVComanche_d
AnimationMode = LOOP
WeaponFireFXBone = TERTIARY WeaponB
WeaponLaunchBone = TERTIARY WeaponB
End
ConditionState = RUBBLE
Model = AVComanche_d
Animation = AVComanche_d.AVComanche_d
AnimationMode = LOOP
End
ConditionState = RUBBLE SPECIAL_DAMAGED
Model = AVComanche_d
HideSubObject = AVComanche_Prop
End
OkToChangeModelColor = Yes
End
; ***DESIGN parameters ***
DisplayName = OBJECT:Airgineer
EditorSorting = VEHICLE
Side = AmericaAirForceGeneral
TransportSlotCount = 0 ;how many "slots" we take in a transport (0 == not transportable)
VisionRange = 200.0
ShroudClearingRange = 600
Prerequisites
Object = AirF_AmericaAirfield
End
WeaponSet
Conditions = None
; -----
Weapon = PRIMARY DozerComanche20mmCannonWeapon
PreferredAgainst = PRIMARY INFANTRY
AutoChooseSources = PRIMARY FROM_PLAYER FROM_SCRIPT FROM_AI
; -----
Weapon = SECONDARY DozerComancheAntiTankMissileWeapon
PreferredAgainst = SECONDARY VEHICLE STRUCTURE
AutoChooseSources = SECONDARY FROM_PLAYER FROM_SCRIPT FROM_AI
; -----
Weapon = TERTIARY NONE
End
WeaponSet
Conditions = PLAYER_UPGRADE
; -----
Weapon = PRIMARY DozerComanche20mmCannonWeapon
PreferredAgainst = PRIMARY INFANTRY
AutoChooseSources = PRIMARY FROM_PLAYER FROM_SCRIPT FROM_AI
; -----
Weapon = SECONDARY DozerComancheAntiTankMissileWeapon
PreferredAgainst = SECONDARY VEHICLE STRUCTURE
AutoChooseSources = SECONDARY FROM_PLAYER FROM_SCRIPT FROM_AI
; -----
Weapon = TERTIARY DozerComancheRocketPodWeapon
AutoChooseSources = TERTIARY FROM_SCRIPT
End
ArmorSet
Conditions = None
Armor = AFG_ComancheArmor
DamageFX = TankDamageFX
End
ArmorSet
Conditions = PLAYER_UPGRADE
Armor = AFG_CountermeasuresComancheArmor
DamageFX = TankDamageFX
End
BuildCost = 1500
BuildTime = 20 ; in seconds
;Increased a little bit because we're more valuable in other ways
ExperienceValue = 60 60 120 250 ; Experience point value at each level
;Reduced by a little bit since we're not combat-heavy anymore
ExperienceRequired = 0 60 150 275 ; Experience points needed to gain each level
IsTrainable = Yes ; Can gain experience
CommandSet = AirF_AmericaAirDozerCommandSetOne
; *** AUDIO Parameters ***
VoiceSelect = DozerUSAVoiceSelect
VoiceMove = DozerUSAVoiceMove
VoiceGuard = DozerUSAVoiceMove
VoiceTaskComplete = DozerUSAVoiceBuildComplete
VoiceAttack = DozerUSAVoiceAttack
VoiceAttackAir = DozerUSAVoiceAttack
SoundAmbient = ComancheAmbientLoop
SoundAmbientRubble = NoSound
;SoundMoveStart = DozerUSAMoveStart
;SoundMoveStartDamaged = DozerUSAMoveStart
UnitSpecificSounds
; These have the syntax of SomeNameSomewhereInCode = SomeNameSomewhereInLookupINIs
VoiceCreate = DozerUSAVoiceCreate
VoiceNoBuild = DozerUSAVoiceBuildNot
VoiceCrush = DozerUSAVoiceCrush
VoiceRepair = DozerUSAVoiceRepair
VoiceDisarm = DozerUSAVoiceClearMine
SoundEject = PilotSoundEject
VoiceEject = PilotVoiceEject
Afterburner = RaptorAfterburner
VoiceGarrison = DozerUSAVoiceMove
TurretMoveStart = NoSound
TurretMoveLoop = NoSound
VoiceFireRocketPods = DozerUSAVoiceAttack
VoiceEnter = DozerUSAVoiceMove
VoiceBuildResponse = DozerUSAVoiceBuild
End
; *** ENGINEERING Parameters ***
RadarPriority = UNIT
KindOf = PRELOAD CAN_CAST_REFLECTIONS CAN_ATTACK SELECTABLE VEHICLE SCORE AIRCRAFT PRODUCED_AT_HELIPAD DOZER
Behavior = WeaponSetUpgrade ModuleTag_02
TriggeredBy = Upgrade_ComancheRocketPods
End
Behavior = ExperienceScalarUpgrade ModuleTag_03
TriggeredBy = Upgrade_AmericaAdvancedTraining
AddXPScalar = 1.0 ;Increases experience gained by an additional 100%
End
Body = ActiveBody ModuleTag_04
MaxHealth = 300.0
InitialHealth = 300.0
End
Behavior = FXListDie ModuleTag_05
DeathFX = FX_ComancheStartDeath
End
Behavior = JetAIUpdate ModuleTag_06
MinHeight = 5
NeedsRunway = No
KeepsParkingSpaceWhenAirborne = No
AutoAcquireEnemiesWhenIdle = Yes
; note that comanches do not return to base when idle
; this is a bit of a trick... normally, units cannot move-and-fire at
; the same time. we need the comanche to be able to. so we give it
; a "turret" (invisible) and put the two main weapons on it, but with
; no turn rate. voila!
Turret
TurretTurnRate = 0 ; this "turret" does not turn
TurretPitchRate = 0 ; nor does it pitch
ControlledWeaponSlots = PRIMARY SECONDARY
End
End
Locomotor = SET_NORMAL ComancheLocomotor
Locomotor = SET_TAXIING BasicHelicopterTaxiLocomotor
Behavior = PhysicsBehavior ModuleTag_07
Mass = 50.0
End
Behavior = HelicopterSlowDeathBehavior ModuleTag_08
DestructionDelay = 99999999 ; the destruction delay
SpiralOrbitTurnRate = 140.0 ; in degrees per second, bigger # = tighter spiral
SpiralOrbitForwardSpeed = 350.0 ; bigger # = larger spiral
SpiralOrbitForwardSpeedDamping = .9999 ; smaller #'s = slow down faster
MaxBraking = 190 ; max braking we can use during death spiral (lower num = wilder spiral)
SoundDeathLoop = ComancheDamagedLoop
MinSelfSpin = 100 ; in degrees per second
MaxSelfSpin = 300 ; in degrees per second
SelfSpinUpdateDelay = 100 ; in milliseconds
SelfSpinUpdateAmount = 10 ; in degrees
FallHowFast = 12.0% ; fraction of gravity, lower = take longer to fall
MinBladeFlyOffDelay = 1500 ; in milliseconds
MaxBladeFlyOffDelay = 1500 ; in milliseconds
AttachParticle = SootySmokeTrail
AttachParticleBone = Propeller02
BladeObjectName = ComancheBlades
BladeBoneName = Propeller01
; Most things that eject pilots do so immediately upon death,
; via use of EjectPilotDie, but Helicopters are a special case...
; they need to do so after their blades are ejected.
OCLEjectPilot = OCL_EjectPilotViaParachute
FXBlade = FX_HelicopterBladeExplosion
OCLBlade = OCL_HelicopterBladeExplosion
FXHitGround = FX_HelicopterHitGround
OCLHitGround = OCL_HelicopterHitGround
FXFinalBlowUp = FX_GroundedHelicopterBlowUp
OCLFinalBlowUp = OCL_GroundedHelicopterBlowUp
DelayFromGroundToFinalDeath = 1500
FinalRubbleObject = ComancheRubbleHull
End
Behavior = TransitionDamageFX ModuleTag_09
ReallyDamagedParticleSystem1 = Bone:Smoke RandomBone:Yes PSys:SmokeSmallContinuousDown
ReallyDamagedFXList1 = Loc: X:0 Y:0 Z:0 FXList:FX_ComancheDamageTransition
End
Behavior = ArmorUpgrade ModuleTag_Armor01
TriggeredBy = Upgrade_AmericaCountermeasures
End
Behavior = CountermeasuresBehavior ModuleTag_10
TriggeredBy = Upgrade_AmericaCountermeasures
FlareTemplateName = CountermeasureFlare
FlareBoneBaseName = Flare ; Name of the base flare bone (Flare01, Flare02, Flare03)
VolleySize = 2 ; Number of flares launched per volley (requires bones)
VolleyArcAngle = 60.0 ; Max angle of flare relative to forward direction (with VolleySize of 1, flare will always goes straight back).
VolleyVelocityFactor = 2.0 ; Shoots out flares at a stronger velocity with a higher value.
DelayBetweenVolleys = 1000 ; Time between flare volleys
NumberOfVolleys = 3 ; Number of times the volleys will fire before reloading
ReloadTime = 4000 ; After all volleys launched, then reloading must occur. If 0, then reloading occurs at airstrip only.
EvasionRate = 30% ; With active flares, the specified percentage will be diverted.
ReactionLaunchLatency = 0 ; Reaction between getting shot at and the firing of the first volley of countermeasures.
MissileDecoyDelay = 200 ; A reported missile that has been determined to hit a decoy will wait this long before acquiring countermeasures.
End
Behavior = FlammableUpdate ModuleTag_21
AflameDuration = 5000 ; If I catch fire, I'll burn for this long...
AflameDamageAmount = 3 ; taking this much damage...
AflameDamageDelay = 500 ; this often.
End
;Airgineers don't benefit from Stealth Comanche stuffs
;Behavior = StealthUpdate ModuleTag_22
; StealthDelay = 2000 ; msec
; StealthForbiddenConditions = FIRING_PRIMARY ATTACKING USING_ABILITY
; FriendlyOpacityMin = 50.0%
; FriendlyOpacityMax = 100.0%
; InnateStealth = No
; OrderIdleEnemiesToAttackMeUponReveal = Yes
;End
;Behavior = StealthUpgrade ModuleTag_23
; TriggeredBy = AirF_Upgrade_StealthComanche
;End
Behavior = DozerAIUpdate ModuleTag_22
RepairHealthPercentPerSecond = 2% ; % of max health to repair each second
BoredTime = 5000 ; in milliseconds
BoredRange = 150 ; when bored, we look this far away to do something
; the only "enemies" that workers can acquire are mines, to be disarmed...
;AutoAcquireEnemiesWhenIdle = Yes
End
Behavior = AutoHealBehavior ModuleTag_23
HealingAmount = 5
HealingDelay = 1000 ; msec
Radius = 100.0f
StartsActive = Yes
KindOf = AIRCRAFT
ForbiddenKindOf = INFANTRY
SkipSelfForHealing = Yes
End
Geometry = BOX
GeometryMajorRadius = 20.0
GeometryMinorRadius = 3.0
GeometryHeight = 25.0
GeometryIsSmall = No
Shadow = SHADOW_VOLUME
ShadowSizeX = 89 ; minimum elevation angle above horizon. Used to limit shadow length
End
[/code]
Posted by: Gameanater - Monday, October 29, 2018 2:10:33 AM
[code=plain]
- CommandSet.ini -
I realize there's no support code for the GLAWorker commandset switch. I'll add that when I get it otherwise building and attacking fine.
Also Comanches can attack air units in my mod, which explains the GuardFlyingUnitsOnly.
CommandSet AirF_AmericaAirDozerCommandSetOne
1 = Command_AmericaVehicleComancheFireRocketPods
2 = AirF_Command_ConstructAmericaPowerPlant
3 = AirF_Command_ConstructAmericaStrategyCenter
4 = AirF_Command_ConstructAmericaBarracks
5 = AirF_Command_ConstructAmericaSupplyDropZone
6 = AirF_Command_ConstructAmericaSupplyCenter
7 = AirF_Command_ConstructAmericaWarFactory
8 = AirF_Command_ConstructAmericaAirfield
10 = Command_Stop
11 = Command_AttackMove
12 = Command_GuardFlyingUnitsOnly
13 = Command_Guard
14 = Command_UpgradeGLAWorkerFakeCommandSet
End
CommandSet AirF_AmericaAirDozerCommandSetTwo
2 = AirF_Command_ConstructAmericaParticleCannonUplink
3 = AirF_Command_ConstructAmericaPatriotBattery
4 = AirF_Command_ConstructAmericaFireBase
5 = AirF_Command_ConstructAmericaCommandCenter
10 = Command_Stop
11 = Command_AttackMove
12 = Command_GuardFlyingUnitsOnly
13 = Command_Guard
14 = Command_UpgradeGLAWorkerRealCommandSet
End
- Weapon.ini -
;AIR DOZER aka AIRGINEER VERSIONS
;Deals half the damage of the Comanche
Weapon DozerComanche20mmCannonWeapon
PrimaryDamage = 3.0
PrimaryDamageRadius = 1.0 ; 0 primary radius means "hits only intended victim"
AttackRange = 200.0
MinimumAttackRange = 0.0 ;100.0 ; this is to allow for a little "lead" for the helicopter targeting
DamageType = COMANCHE_VULCAN ;used only for this weapon so stinger sites don't lose their guys but otherwise acts just like Small_Arms
DeathType = NORMAL
WeaponSpeed = 999999.0 ; dist/sec (huge value == effectively instant)
ProjectileObject = NONE
FireSound = RedGuardWeapon
FireFX = WeaponFX_Comanche20mmCannonFire
VeterancyFireFX = HEROIC WeaponFX_HeroicComanche20mmCannonFire
RadiusDamageAffects = ALLIES ENEMIES NEUTRALS
DelayBetweenShots = 100 ; time between shots, msec
ClipSize = 0 ; how many shots in a Clip (0 == infinite)
ClipReloadTime = 0 ; how long to reload a Clip, msec
AntiAirborneVehicle = Yes ;No
AntiAirborneInfantry = Yes
End
;------------------------------------------------------------------------------
Weapon DozerComancheAntiTankMissileWeapon
PrimaryDamage = 25
PrimaryDamageRadius = 5.0
SecondaryDamage = 30.0
SecondaryDamageRadius = 25.0
ScatterRadiusVsInfantry = 20.0 ;When this weapon is used against infantry, it can randomly miss by as much as this distance.
AttackRange = 200.0
MinimumAttackRange = 0.0 ;100.0 ; this is to allow for a little "lead" for the helicopter targeting
DamageType = JET_MISSILES ;not so good against base defenses and some other units.
DeathType = EXPLODED
WeaponSpeed = 99999
ProjectileObject = ComancheAntiTankMissile
ProjectileExhaust = MissileExhaust
VeterancyProjectileExhaust = HEROIC HeroicComancheMissileExhaust
RadiusDamageAffects = ALLIES ENEMIES NEUTRALS
DelayBetweenShots = 500 ; time between shots, msec
ClipSize = 4 ; how many shots in a Clip (0 == infinite)
AutoReloadsClip = Yes
ClipReloadTime = 15000 ; how long to reload a Clip, msec
AutoReloadWhenIdle = 15100 ; If I haven't fired in this long, I will reload on my own (rather than only after the last one is fired)
FireSound = StingerMissileWeapon
FireFX = None
ProjectileDetonationFX = WeaponFX_ComancheAntiTankMissileDetonation
ProjectileCollidesWith = STRUCTURES
AntiAirborneVehicle = Yes ;No
AntiAirborneInfantry = No
ShowsAmmoPips = Yes
End
;------------------------------------------------------------------------------
Weapon DozerComancheRocketPodWeapon
PrimaryDamage = 15.0
PrimaryDamageRadius = 5.0
SecondaryDamage = 10.0
SecondaryDamageRadius = 40.0
ScatterRadius = 0;changed to zero, unless you want to soften the results of the table below
; @todo srj -- need better targets; these are copied from Scud Storm
; Instead of a purely random scatter distance, this will divide a clip evenly and randomly at these spots
; These specific points are an even distribution simulating a 150 ScatterRadius.
; With fewer entries than ClipSize, the extra will hit 0,0 as normal shots
; With extra entries, 9 of 12 could be used eg, and then you'd get a different nine next clip.
ScatterTargetScalar = 50; replaces the ScatterRadius, above, for scaling this table, below
ScatterTarget = X: 0.000 Y: 0.133
ScatterTarget = X: 0.133 Y:-0.200
ScatterTarget = X:-0.067 Y: 0.667
ScatterTarget = X: 0.300 Y: 0.300
ScatterTarget = X: 0.767 Y: 0.000
ScatterTarget = X: 0.500 Y:-0.567
ScatterTarget = X:-0.333 Y:-0.800
ScatterTarget = X:-0.600 Y:-0.1333
ScatterTarget = X:-0.567 Y: 0.433
ScatterTarget = X: 0.000 Y: 0.133
ScatterTarget = X: 0.133 Y:-0.200
ScatterTarget = X:-0.067 Y: 0.667
ScatterTarget = X: 0.300 Y: 0.300
ScatterTarget = X: 0.767 Y: 0.000
ScatterTarget = X: 0.500 Y:-0.567
ScatterTarget = X:-0.333 Y:-0.800
ScatterTarget = X:-0.600 Y:-0.1333
ScatterTarget = X:-0.567 Y: 0.433
ScatterTarget = X: 0.000 Y: 0.133
ScatterTarget = X: 0.133 Y:-0.200
ScatterRadiusVsInfantry = 0.0 ;When this weapon is used against infantry, it can randomly miss by as much as this distance.
AttackRange = 200.0
MinimumAttackRange = 0.0 ;100.0 ; this is to allow for a little "lead" for the helicopter targeting
DamageType = EXPLOSION
DeathType = EXPLODED
;WeaponSpeed = 99999
ProjectileObject = ComancheRocketPodRocket
ProjectileExhaust = MissileExhaust
VeterancyProjectileExhaust = HEROIC HeroicComancheMissileExhaust
RadiusDamageAffects = ALLIES ENEMIES NEUTRALS
DelayBetweenShots = 200 ; time between shots, msec
ClipSize = 20 ; how many shots in a Clip (0 == infinite)
AutoReloadsClip = Yes
ClipReloadTime = 30000 ; how long to reload a Clip, msec
FireSound = StingerMissileWeapon
FireFX = None
ProjectileDetonationFX = WeaponFX_ComancheRocketPodRocketDetonation
ProjectileCollidesWith = STRUCTURES
AntiAirborneVehicle = No
AntiAirborneInfantry = No
WeaponBonus = PLAYER_UPGRADE DAMAGE 125%
End
;------------------------------------------------------------------------------
- Voice.ini -
;Placeholder for the Airgineer
;Crush sounds and mine clearing sounds
AudioEvent DozerUSAVoiceAttack
Sounds = vdoucla vdouclc vdoucld vdoucra vdoucrb vdoucrc
Control = random
Volume = 90
Type = ui voice player
End
[/code]
Posted by: AdrianeMapMaker - Monday, October 29, 2018 5:53:16 AM
actually if i remember correctly shockwave already have this .. look onto its code in airf gen
Posted by: SkyMix_RMT - Monday, October 29, 2018 8:52:52 AM
Locomotor must be one of the last things to appear, put it before geometry and after everything else.
Posted by: Annihilationzh - Monday, October 29, 2018 9:23:48 AM
Problems:
1) You have two AIUpdates. DozerAIUpdate and JetAIUpdate. I can't remember what bugs that causes, but I do remember that it's bad.
2) You have your Locomotors before the DozerAIUpdate. Locomotors are linked to AI - they must always come afterwards in the code. This is why the unit won't move.
[quote=SkyMix_RMT;148328]Locomotor must be one of the last things to appear, put it before geometry and after everything else.[/quote]
...? The base game code doesn't even follow that rule.
Posted by: Gameanater - Monday, October 29, 2018 11:05:48 AM
[quote=Annihilationzh;148330]Problems:
2) You have your Locomotors before the DozerAIUpdate. Locomotors are linked to AI - they must always come afterwards in the code. This is why the unit won't move.[/quote]
Thank you, moving the DozerAIUpdate to before the locomotor fixed the issue! [grin] Now I can continue work on the Dozer of the Skies!
[quote]1) You have two AIUpdates. DozerAIUpdate and JetAIUpdate. I can't remember what bugs that causes, but I do remember that it's bad.[/quote]
Hmm... I didn't notice any issues in testing it. he seemed to acquire targets and repair structures just fine. Maybe it's only if you use two of the same AIUpdates?
Posted by: Gameanater - Monday, October 29, 2018 11:35:39 AM
New problem: After adding support code for GLA Worker CommandSet switching, the button no longer says "Conflicting Upgrade cannot be purchased" but is still grayed out and unusable.
[code=plain]
Unit:
BuildCost = 1500
BuildTime = 20 ; in seconds
;Increased a little bit because we're more valuable in other ways
ExperienceValue = 60 60 120 250 ; Experience point value at each level
;Reduced by a little bit since we're not combat-heavy anymore
ExperienceRequired = 0 60 150 275 ; Experience points needed to gain each level
IsTrainable = Yes ; Can gain experience
CommandSet = AirF_AmericaAirDozerCommandSetForBuilding
....
Behavior = CommandSetUpgrade ModuleTag_24
TriggeredBy = Upgrade_GLAWorkerFakeCommandSet
RemovesUpgrades = Upgrade_GLAWorkerRealCommandSet
CommandSet = AirF_AmericaAirDozerCommandSetForCombat
End
Behavior = CommandSetUpgrade ModuleTag_25
TriggeredBy = Upgrade_GLAWorkerRealCommandSet
RemovesUpgrades = Upgrade_GLAWorkerFakeCommandSet Upgrade_GLAWorkerRealCommandSet
CommandSet = AirF_AmericaAirDozerCommandSetForBuilding
End
CommandSet.ini:
CommandSet AirF_AmericaAirDozerCommandSetForBuilding
1 = AirF_Command_ConstructAmericaPowerPlant
2 = AirF_Command_ConstructAmericaStrategyCenter
3 = AirF_Command_ConstructAmericaBarracks
4 = AirF_Command_ConstructAmericaSupplyDropZone
5 = AirF_Command_ConstructAmericaSupplyCenter
6 = AirF_Command_ConstructAmericaParticleCannonUplink
7 = AirF_Command_ConstructAmericaPatriotBattery
8 = AirF_Command_ConstructAmericaCommandCenter
9 = AirF_Command_ConstructAmericaFireBase
11 = AirF_Command_ConstructAmericaWarFactory
13 = AirF_Command_ConstructAmericaAirfield
14 = Command_UpgradeGLAWorkerFakeCommandSet
End
CommandSet AirF_AmericaAirDozerCommandSetForCombat
1 = Command_AmericaVehicleComancheFireRocketPods
10 = Command_Stop
11 = Command_AttackMove
12 = Command_GuardFlyingUnitsOnly
13 = Command_Guard
14 = Command_UpgradeGLAWorkerRealCommandSet
End
[/code]
Posted by: Annihilationzh - Monday, October 29, 2018 12:10:00 PM
[quote=Gameanater;148332]New problem: After adding support code for GLA Worker CommandSet switching, the button no longer says "Conflicting Upgrade cannot be purchased" but is still grayed out and unusable.[/quote]
I take it you're missing a ProductionUpdate?
Posted by: Gameanater - Monday, October 29, 2018 12:26:18 PM
[quote=Annihilationzh;148333][quote=Gameanater;148332]New problem: After adding support code for GLA Worker CommandSet switching, the button no longer says "Conflicting Upgrade cannot be purchased" but is still grayed out and unusable.[/quote]
I take it you're missing a ProductionUpdate?[/quote]
Oh my goodness [joy] [joy] I can't believe I missed that. Thank you, you're a life saver. XD
It works like a charm after adding the ProductionUpdate from the worker. Now I can focus on tweaking the CommandSets and adding effects for when the unit is building something.
Thank you!
Posted by: SkyMix_RMT - Monday, October 29, 2018 8:54:16 PM
[quote=Annihilationzh;148330]Problems:
[quote=SkyMix_RMT;148328]Locomotor must be one of the last things to appear, put it before geometry and after everything else.[/quote]
...? The base game code doesn't even follow that rule.[/quote]
You see, I knew that locomotor had to be placed after something which I had forgotten of (AIUpdate module tag), so I knew that if he placed locomotor in the end of the code it would 100% be after the ai update.