Skip to content

Commit

Permalink
sc2: Added Zerg Creep Stomach upgrade
Browse files Browse the repository at this point in the history
  • Loading branch information
MatthewMarinets committed Jun 17, 2024
1 parent eefe601 commit 9c42a08
Show file tree
Hide file tree
Showing 12 changed files with 98 additions and 3 deletions.
13 changes: 12 additions & 1 deletion Mods/ArchipelagoPlayer.SC2Mod/Base.SC2Data/GameData/AbilData.xml
Original file line number Diff line number Diff line change
Expand Up @@ -6616,7 +6616,7 @@
</InfoArray>
</CAbilMorph>
<CAbilMorphPlacement id="AP_SpineCrawlerRoot">
<EditorCategories value="Race:Protoss,AbilityorEffectType:MorphsandBurrows"/>
<EditorCategories value="Race:Zerg,AbilityorEffectType:MorphsandBurrows"/>
<CmdButtonArray index="Execute" DefaultButtonFace="AP_SpineCrawlerRoot"/>
<CmdButtonArray index="Cancel" DefaultButtonFace="Cancel"/>
<ActorKey value="Root"/>
Expand All @@ -6641,6 +6641,17 @@
</InfoArray>
<ProgressButton value="AP_SpineCrawlerRootCancel"/>
</CAbilMorphPlacement>
<CAbilMorph id="AP_AutoMorphToSpineCrawler">
<EditorCategories value="Race:Zerg,AbilityorEffectType:Structures"/>
<CmdButtonArray index="Execute" DefaultButtonFace="Raise" Requirements="AP_HaveZergCreepStomach"/>
<CmdButtonArray index="Cancel" DefaultButtonFace="Cancel"/>
<Flags index="Automatic" value="1"/>
<Flags index="IgnorePlacement" value="1"/>
<Flags index="IgnoreFacing" value="1"/>
<Flags index="IgnoreUnitCost" value="1"/>
<Flags index="IgnoreFood" value="1"/>
<InfoArray Unit="AP_SpineCrawler" CollideRange="0"/>
</CAbilMorph>
<CAbilMorphPlacement id="AP_SporeCrawlerRoot">
<EditorCategories value="Race:Protoss,AbilityorEffectType:MorphsandBurrows"/>
<CmdButtonArray index="Execute" DefaultButtonFace="AP_SporeCrawlerRoot"/>
Expand Down
19 changes: 19 additions & 0 deletions Mods/ArchipelagoPlayer.SC2Mod/Base.SC2Data/GameData/ActorData.xml
Original file line number Diff line number Diff line change
Expand Up @@ -22777,6 +22777,8 @@
<Remove Terms="WeaponStop.*.AttackStop" Send="AnimBracketStop Attack"/>
<Remove Terms="Abil.attack.ReadyStop" Send="AnimGroupRemove Ready"/>
<On Terms="UnitBirth.AP_SpineCrawler" Send="AnimGroupApply Burrow {} {} Instant"/>
<On Terms="UnitBirth.AP_SpineCrawlerRootableAnywhere" Send="Create"/>
<On Terms="UnitBirth.AP_SpineCrawlerRootableAnywhere" Send="AnimGroupApply Burrow {} {} Instant"/>
<On Terms="AbilMorph.*.Start; AbilKey Root" Send="Create LargeBurrowDownEffects"/>
<On Terms="AbilMorph.*.Start; AbilKey Root" Send="Create BurrowDownLarge"/>
<On Terms="AbilMorph.*.Start; AbilKey Uproot" Send="Create LargeBurrowUpEffects"/>
Expand All @@ -22799,6 +22801,15 @@
<On Terms="AbilMorph.*.Cancel; MorphTo AP_SpineCrawler" Target="SpineCrawlerBurrowLoop" Send="Destroy"/>
<On Terms="AbilMorph.*.Start; MorphFrom AP_SpineCrawler" Send="AnimClear AttackEnd"/>
<On Terms="AbilMorph.*.Finish; MorphTo AP_SpineCrawler" Send="AnimBlendTimeApply 0.400000"/>
<On Terms="AbilMorph.*.Cancel; MorphTo AP_SpineCrawlerRootableAnywhere" Send="AnimBracketStop Morph Instant"/>
<On Terms="AbilMorph.*.Start; MorphTo AP_SpineCrawlerRootableAnywhere" Send="Create BuildingTerrainFlatten"/>
<On Terms="AbilMorph.*.Start; MorphTo AP_SpineCrawlerRootableAnywhere" Send="Create SpineCrawlerBurrowLoop"/>
<On Terms="AbilMorph.*.Finish; MorphTo AP_SpineCrawlerRootableAnywhere" Send="AnimGroupApply Burrow"/>
<On Terms="AbilMorph.*.Finish; MorphTo AP_SpineCrawlerRootableAnywhere" Send="AnimBracketStop Morph"/>
<On Terms="AbilMorph.*.Finish; MorphTo AP_SpineCrawlerRootableAnywhere" Target="SpineCrawlerBurrowLoop" Send="Destroy"/>
<On Terms="AbilMorph.*.Cancel; MorphTo AP_SpineCrawlerRootableAnywhere" Target="SpineCrawlerBurrowLoop" Send="Destroy"/>
<On Terms="AbilMorph.*.Start; MorphFrom AP_SpineCrawlerRootableAnywhere" Send="AnimClear AttackEnd"/>
<On Terms="AbilMorph.*.Finish; MorphTo AP_SpineCrawlerRootableAnywhere" Send="AnimBlendTimeApply 0.400000"/>
<On Terms="Behavior.Corruption.On" Send="AnimSetPaused Morph"/>
<On Terms="Behavior.Corruption.Off" Send="AnimSetPaused Morph 0"/>
<On Terms="WeaponStart.AP_ImpalerTentacle.AttackStart; AnimPlaying Burrow" Send="AnimClear Burrow"/>
Expand All @@ -22812,11 +22823,15 @@
<On Terms="UnitDeathCustomize.AP_SpineCrawlerUprooted" Send="DeathCustomize Uprooted"/>
<On Terms="UnitDeathCustomize; AnimPlaying Morph" Send="DeathCustomize Uprooted"/>
<On Terms="UnitDeathCustomize.AP_SpineCrawler" Send="AnimSetTimeScaleGlobal 1.000000"/>
<On Terms="UnitDeathCustomize.AP_SpineCrawlerRootableAnywhere" Send="AnimSetTimeScaleGlobal 1.000000"/>
<On Terms="AbilMorph.*.Start; MorphTo AP_SpineCrawler" Send="AnimBracketStart Morph IGNORE Burrow,Superior Stand,Burrow ContentPlayOnce"/>
<On Terms="AbilMorph.*.Start; MorphTo AP_SpineCrawler" Send="AnimBracketStart Morph IGNORE Burrow,Superior Stand,Burrow ContentPlayOnce"/>
<On Terms="AbilMorph.*.Start; MorphTo AP_SpineCrawlerRootableAnywhere" Send="AnimBracketStart Morph IGNORE Burrow,Superior Stand,Burrow ContentPlayOnce"/>
<On Terms="AbilMorph.*.Start; MorphTo AP_SpineCrawlerRootableAnywhere" Send="AnimBracketStart Morph IGNORE Burrow,Superior Stand,Burrow ContentPlayOnce"/>
<On Terms="UnitBirth.AP_SpineCrawlerUprooted" Send="TerrainSquibActivateGroup RippleStandard"/>
<On Terms="AbilMorph.*.Finish; MorphTo AP_SpineCrawlerUprooted" Send="TerrainSquibActivateGroup RippleStandard"/>
<On Terms="AbilMorph.*.Finish; MorphTo AP_SpineCrawler" Send="TerrainSquibDeactivate"/>
<On Terms="AbilMorph.*.Finish; MorphTo AP_SpineCrawlerRootableAnywhere" Send="TerrainSquibDeactivate"/>
<Model value="SpineCrawler"/>
<AnimBlendTime value="0.400000"/>
<HostedAttaches Name="TentacleAttack">
Expand Down Expand Up @@ -22908,13 +22923,17 @@
<CActorSplat id="AP_SpineCrawlerSplat" parent="BurrowedSplatBase">
<On Terms="UnitBirth.AP_SpineCrawler" Send="Create"/>
<On Terms="AbilMorph.*.Start; MorphTo AP_SpineCrawler" Send="Create"/>
<On Terms="AbilMorph.*.Start; MorphTo AP_SpineCrawlerRootableAnywhere" Send="Create"/>
<On Terms="AbilMorph.*.Start; MorphFrom AP_SpineCrawler" Send="RefClear ::Host"/>
<On Terms="AbilMorph.*.Start; MorphFrom AP_SpineCrawler" Send="TimerSet 5.000000 DelayDestroy"/>
<On Terms="AbilMorph.*.Start; MorphFrom AP_SpineCrawlerRootableAnywhere" Send="RefClear ::Host"/>
<On Terms="AbilMorph.*.Start; MorphFrom AP_SpineCrawlerRootableAnywhere" Send="TimerSet 5.000000 DelayDestroy"/>
<On Terms="TimerExpired; TimerName DelayDestroy" Send="Destroy"/>
</CActorSplat>
<CActorSound id="AP_SpineCrawler_Death" parent="SoundOneShot">
<On Terms="UnitDeath.AP_SpineCrawler; PassChance 25.000000" Send="Create"/>
<On Terms="UnitDeath.AP_SpineCrawlerUprooted; PassChance 25.000000" Send="Create"/>
<On Terms="UnitDeath.AP_SpineCrawlerRootableAnywhere; PassChance 25.000000" Send="Create"/>
<Sound value="SpineCrawler_Death"/>
</CActorSound>
<CActorTurret id="AP_SpineCrawlerTurret">
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4307,7 +4307,7 @@
<CBehaviorBuff id="AP_ZergBuildingNotOnCreep">
<EditorCategories value="Race:Zerg,AbilityorEffectType:Structures"/>
<InfoFlags index="Hidden" value="1"/>
<Requirements value="NotOnCreep"/>
<Requirements value="AP_NotOnCreepAndNotHaveZergCreepStomach"/>
<Period value="0.3332"/>
<PeriodicEffect value="AP_ZergBuildingNotOnCreepDamage"/>
</CBehaviorBuff>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3304,6 +3304,11 @@
<AlertIcon value="Assets\Textures\btn-ability-zerg-root-color.dds"/>
<EditorCategories value="Race:Zerg"/>
</CButton>
<CButton id="AP_ZergCreepStomach">
<Icon value="Assets\Textures\btn-ability-zerg-creepspread.dds"/>
<AlertIcon value="Assets\Textures\btn-ability-zerg-creepspread.dds"/>
<EditorCategories value="Race:Zerg"/>
</CButton>
<CButton id="AP_SpineCrawler">
<Icon value="Assets\Textures\btn-building-zerg-spinecrawler.dds"/>
<AlertIcon value="Assets\Textures\btn-building-zerg-spinecrawler.dds"/>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -151,4 +151,25 @@
<Rows value=".....ooooo....."/>
</Layers>
</CFootprint>
<CFootprint id="AP_Footprint2x2ZergSpineCrawlerIgnoreCreep">
<Layers index="Check">
<Sets index="0">
<Negative index="Creep" value="0"/>
</Sets>
<Rows value="xx"/>
<Rows value="xx"/>
</Layers>
<Layers index="Place">
<Sets index="0">
<Negative index="Creep" value="0"/>
</Sets>
<Rows value="xx"/>
<Rows value="xx"/>
</Layers>
<Shape>
<Radius value="1.1181"/>
<Offsets value="-0.5,-1;0.5,-1;-0.5,1;0.5,1;-1,-0.5;-1,0.5;1,-0.5;1,0.5"/>
<Borders value="0,4,2;1,0,2;2,3,2;3,7,2;4,5,2;5,2,2;6,1,2;7,6,2"/>
</Shape>
</CFootprint>
</Catalog>
Original file line number Diff line number Diff line change
Expand Up @@ -3095,6 +3095,12 @@
<CRequirement id="AP_HaveHotSImprovedSporeTracking">
<NodeArray index="Show" Link="AP_CountUpgradeHotSImprovedSporeTrackingCompleteOnly"/>
</CRequirement>
<CRequirement id="AP_HaveZergCreepStomach">
<NodeArray index="Show" Link="AP_CountUpgradeZergCreepStomachCompleteOnly"/>
</CRequirement>
<CRequirement id="AP_NotOnCreepAndNotHaveZergCreepStomach">
<NodeArray index="Use" Link="AP_NotOnCreepAndNotHaveZergCreepStomach"/>
</CRequirement>
<CRequirement id="AP_HaveGuardianAspect">
<NodeArray index="Use" Link="AP_CountUnitGreaterSpireCompleteOnly291495724TechTreeCheat"/>
<NodeArray index="Show" Link="AP_CountUpgradeGuardianAspectCompleteOnly"/>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5484,6 +5484,17 @@
<Count Link="AP_HotSImprovedSporeTracking" State="CompleteOnly"/>
<Flags index="TechTreeCheat" value="0"/>
</CRequirementCountUpgrade>
<CRequirementCountUpgrade id="AP_CountUpgradeZergCreepStomachCompleteOnly">
<Count Link="AP_ZergCreepStomach" State="CompleteOnly"/>
<Flags index="TechTreeCheat" value="0"/>
</CRequirementCountUpgrade>
<CRequirementNot id="AP_NotCountUpgradeZergCreepStomachCompleteOnly">
<OperandArray index="0" value="AP_CountUpgradeZergCreepStomachCompleteOnly"/>
</CRequirementNot>
<CRequirementAnd id="AP_NotOnCreepAndNotHaveZergCreepStomach">
<OperandArray value="NotCountBehaviorOnCreepCompleteOnlyAtUnit"/>
<OperandArray value="AP_NotCountUpgradeZergCreepStomachCompleteOnly"/>
</CRequirementAnd>
<CRequirementCountUpgrade id="AP_CountUpgradeGuardianAspectCompleteOnly">
<Count Link="AP_GuardianAspect" State="CompleteOnly"/>
<Flags index="TechTreeCheat" value="0"/>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20528,6 +20528,7 @@
<AbilArray Link="stop"/>
<AbilArray Link="attack"/>
<AbilArray Link="AP_SpineCrawlerUproot"/>
<AbilArray Link="AP_AutoMorphToSpineCrawler"/>
<BehaviorArray Link="OnCreep"/>
<BehaviorArray Link="AP_ZergBuildingNotOnCreep"/>
<BehaviorArray Link="AP_CreepFrenzy13Crawler"/>
Expand All @@ -20536,6 +20537,7 @@
<LayoutButtons Face="CancelBuilding" Type="AbilCmd" AbilCmd="BuildInProgress,Cancel" Row="2" Column="4"/>
<LayoutButtons Face="Stop" Type="AbilCmd" AbilCmd="stop,Stop" Row="0" Column="1"/>
<LayoutButtons Face="AttackBuilding" Type="AbilCmd" AbilCmd="attack,Execute" Row="0" Column="4"/>
<LayoutButtons Face="AP_ZergCreepStomach" Type="Passive" Requirements="AP_HaveZergCreepStomach" Row="1" Column="4"/>
<LayoutButtons Face="AP_SpineCrawlerUproot" Type="AbilCmd" AbilCmd="AP_SpineCrawlerUproot,0" Row="2" Column="0"/>
</CardLayouts>
<Radius value="0.875"/>
Expand All @@ -20556,6 +20558,10 @@
<KillDisplay value="Always"/>
<RankDisplay value="Always"/>
</CUnit>
<CUnit id="AP_SpineCrawlerRootableAnywhere" parent="AP_SpineCrawler">
<Footprint value="AP_Footprint2x2ZergSpineCrawlerIgnoreCreep"/>
<PlacementFootprint value="AP_Footprint2x2ZergSpineCrawlerIgnoreCreep"/>
</CUnit>
<CUnit id="AP_SpineCrawlerUprooted">
<DeathRevealRadius value="3"/>
<Race value="Zerg"/>
Expand Down Expand Up @@ -20593,6 +20599,7 @@
<AbilArray Link="stop"/>
<AbilArray Link="move"/>
<AbilArray Link="AP_SpineCrawlerRoot"/>
<AbilArray Link="AP_SpineCrawlerRootAnywhere"/>
<BehaviorArray Link="AP_CreepFrenzy13Crawler"/>
<WeaponArray Turret="AP_SpineCrawlerUprooted"/>
<CardLayouts>
Expand All @@ -20602,6 +20609,7 @@
<LayoutButtons Face="MoveHoldPosition" Type="AbilCmd" AbilCmd="move,HoldPos" Row="0" Column="2"/>
<LayoutButtons Face="MovePatrol" Type="AbilCmd" AbilCmd="move,Patrol" Row="0" Column="3"/>
<LayoutButtons Face="Stop" Type="AbilCmd" AbilCmd="stop,Stop" Row="0" Column="1"/>
<LayoutButtons Face="AP_ZergCreepStomach" Type="Passive" Requirements="AP_HaveZergCreepStomach" Row="1" Column="4"/>
<LayoutButtons Face="AP_SpineCrawlerRoot" Type="AbilCmd" AbilCmd="AP_SpineCrawlerRoot,0" Row="2" Column="0"/>
<LayoutButtons Face="Cancel" Type="AbilCmd" AbilCmd="AP_SpineCrawlerRoot,1" Row="2" Column="4"/>
</CardLayouts>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7563,6 +7563,11 @@
<EditorCategories value="Race:Protoss,UpgradeType:Talents"/>
<AffectedUnitArray value="AP_WarpGate"/>
</CUpgrade>
<CUpgrade id="AP_ZergCreepStomach">
<EffectArray Operation="Set" Reference="Abil,AP_SpineCrawlerRoot,InfoArray[0].Unit" Value="AP_SpineCrawlerRootableAnywhere"/>
<AffectedUnitArray value="AP_SporeCrawler"/>
<AffectedUnitArray value="AP_SpineCrawler"/>
</CUpgrade>
<CUpgrade id="AP_HotSMetabolicBoost">
<Flags index="UpgradeCheat" value="0"/>
<EffectArray Reference="Unit,AP_Zergling,Speed" Value="1.746000"/>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -1689,6 +1689,7 @@ Button/Name/AP_ZealotShakuras=Warp in Centurion
Button/Name/AP_ZealotShieldCapacity=Shield Capacity
Button/Name/AP_ZergBuild=Basic Mutation
Button/Name/AP_ZergBuildAdvanced=Advanced Mutation
Button/Name/AP_ZergCreepStomach=Creep Stomach
Button/Name/AP_Zergling=Morph to Zergling
Button/Name/AP_ZerglingArmorShred=Shredding Claws
Button/Name/AP_ZerglingPassive=Zergling
Expand Down Expand Up @@ -2781,6 +2782,7 @@ Button/Tooltip/AP_ZealotShakuras=Nerazim Faction<n/>Powerful melee warrior. Has
Button/Tooltip/AP_ZealotShieldCapacity=Increases Shields by 30.
Button/Tooltip/AP_ZergBuild=A list of basic structures.
Button/Tooltip/AP_ZergBuildAdvanced=A list of advanced structures.
Button/Tooltip/AP_ZergCreepStomach=This structure can survive off creep.
Button/Tooltip/AP_Zergling=Fast melee creature. Can morph into a Baneling.<n/><n/><c val="FFFF8A">Can attack ground units.</c>
Button/Tooltip/AP_ZerglingArmorShred=Zergling attacks reduce their target's armor to 0 for <d ref="Behavior,AP_ZerglingArmorShredTarget,Duration"/> seconds.
Button/Tooltip/AP_ZerglingPassive=Spawning Pool enables you to morph Zerglings.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -1055,7 +1055,7 @@ void libABFE498B_gf_AP_Triggers_unlockZergEvolutionPit (int lp_player, int lp_bi
libABFE498B_gf_AP_Triggers_Zerg_OverlordGenerateCreep, // 7
libABFE498B_gf_AP_Triggers_Zerg_OverlordAntennae, // 8
libABFE498B_gf_AP_Triggers_Zerg_OverlordPneumatizedCarapace, // 9
ap_triggers_PlayerConsumer_sig, // 10
libABFE498B_gf_AP_Triggers_Zerg_CreepStomach, // 10
ap_triggers_PlayerConsumer_sig, // 11
ap_triggers_PlayerConsumer_sig, // 12
ap_triggers_PlayerConsumer_sig, // 13
Expand Down Expand Up @@ -4941,6 +4941,12 @@ void libABFE498B_gf_AP_Triggers_Zerg_OverlordPneumatizedCarapace (int lp_player)
libNtve_gf_SetUpgradeLevelForPlayer(lp_player, "AP_OverlordSpeed", 1);
}

void libABFE498B_gf_AP_Triggers_Zerg_CreepStomach (int lp_player) {
// Automatic Variable Declarations
// Implementation
libNtve_gf_SetUpgradeLevelForPlayer(lp_player, "AP_ZergCreepStomach", 1);
}

void libABFE498B_gf_AP_Triggers_Zerg_CorruptorCausticSpray (int lp_player) {
// Automatic Variable Declarations
// Implementation
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -504,6 +504,7 @@ void libABFE498B_gf_AP_Triggers_Zerg_OverlordVentralSacs (int lp_player);
void libABFE498B_gf_AP_Triggers_Zerg_OverlordGenerateCreep (int lp_player);
void libABFE498B_gf_AP_Triggers_Zerg_OverlordAntennae (int lp_player);
void libABFE498B_gf_AP_Triggers_Zerg_OverlordPneumatizedCarapace (int lp_player);
void libABFE498B_gf_AP_Triggers_Zerg_CreepStomach (int lp_player);
void libABFE498B_gf_AP_Triggers_Zerg_CorruptorCausticSpray (int lp_player);
void libABFE498B_gf_AP_Triggers_Zerg_CorruptorCorruption (int lp_player);
void libABFE498B_gf_AP_Triggers_Zerg_CorruptorMonstrousResilience (int lp_player);
Expand Down

0 comments on commit 9c42a08

Please sign in to comment.