- //==================================================================================================
- // Protoss Melee Very Easy
- //==================================================================================================
- static void LateGround (int player);
- //--------------------------------------------------------------------------------------------------
- // ProtossOpenGnd0
- //--------------------------------------------------------------------------------------------------
- void ProtossOpenGnd0 (int player) {
- AIClearStock(player);
- AISetStock( player, 1, c_PB_Nexus );
- AISetStock( player, 8, c_PU_Probe );
- AISetStock( player, 1, c_PB_Pylon );
- // around 100 resources in about 2 units
- AISetStock( player, 1, c_PU_Zealot );
- ProtossTechUp(player, 1);
- if (AIEnableVeryEasyStockOpen(player, c_PU_Probe)) {
- return;
- }
- // around 300 resources in about 3 unit
- AIAddStringInt(player, c_PU_Stalker, 1);
- AIAddStringInt(player, AIPickFrom2(c_PU_Zealot, c_PU_Disruptor), 1);
- }
- //--------------------------------------------------------------------------------------------------
- // ProtossMidGndA
- //--------------------------------------------------------------------------------------------------
- static void ProtossMidGndA (int player) {
- AIClearStock(player);
- AIDefaultEconomy(player, c_PB_Nexus, c_PB_Assimilator, c_PB_Pylon, c_PU_Probe, 8, c_stockAlways);
- if (AISawCloakedUnit(player)) {
- AISetStock( player, 2, c_PB_PhotonCannon );
- AISetStock( player, 1, c_PU_Observer );
- }
- AISetStockUserData(player);
- ProtossTechUp(player, 2);
- if (AIEnableVeryEasyStockMidA(player, c_PU_Probe, 4)) {
- return;
- }
- // around 600 resources in about 4 unit
- AIAddStringInt(player, c_PU_Stalker, 1);
- AIAddStringInt(player, AIPickFrom2(c_PU_Zealot, c_PU_Disruptor), 1);
- }
- //--------------------------------------------------------------------------------------------------
- // ProtossMidGndB
- //--------------------------------------------------------------------------------------------------
- static void ProtossMidGndB (int player) {
- AIClearStock(player);
- AIDefaultEconomy(player, c_PB_Nexus, c_PB_Assimilator, c_PB_Pylon, c_PU_Probe, 8, c_stockAlways);
- if (AISawCloakedUnit(player)) {
- AISetStock( player, 2, c_PB_PhotonCannon );
- AISetStock( player, 1, c_PU_Observer );
- }
- AISetStockUserData(player);
- ProtossTechUp(player, 3);
- if (AIEnableVeryEasyStockMidB(player, c_PU_Probe, 4)) {
- return;
- }
- // around 900 resources in about 5 unit
- LateGround(player);
- }
- //--------------------------------------------------------------------------------------------------
- // LateGround
- //--------------------------------------------------------------------------------------------------
- static void LateGround (int player) {
- AIAddStringInt(player, c_PU_Stalker, 1);
- AIAddStringInt(player, c_PU_Disruptor, 1);
- AIAddStringInt(player, AIPickFrom2(c_PU_Zealot, c_PU_Stalker), 1);
- AIAddStringInt(player, AIPickFrom2(c_PU_Zealot, c_PU_Disruptor), 1);
- }
- //--------------------------------------------------------------------------------------------------
- // LateGnd
- //--------------------------------------------------------------------------------------------------
- static void LateGnd (int player) {
- AIClearStock(player);
- AIDefaultEconomy(player, c_PB_Nexus, c_PB_Assimilator, c_PB_Pylon, c_PU_Probe, 8, c_stockAlways);
- AIDefaultExpansion(player, c_PB_Nexus, 6000, 0, c_expandDefault);
- AISetStockUserData(player);
- AISetStock( player, 4, c_PU_Observer );
- AISetStock( player, 1, c_PU_WarpPrism );
- ProtossTechUp(player, 4);
- AISetStock( player, 4, c_PU_Observer );
- if (AIEnableVeryEasyStockLate(player, c_TU_SCV, 4)) {
- return;
- }
- LateGround(player);
- }
- //--------------------------------------------------------------------------------------------------
- // ProtossOpenAir0
- //--------------------------------------------------------------------------------------------------
- void ProtossOpenAir0 (int player) {
- AIClearStock(player);
- AISetStock( player, 1, c_PB_Nexus );
- AISetStock( player, 8, c_PU_Probe );
- AISetStock( player, 1, c_PB_Pylon );
- AISetStock( player, 1, c_PB_Assimilator );
- AISetStock( player, 1, c_PB_Gateway );
- AISetStock( player, 1, c_PB_CyberneticsCore );
- AISetStock( player, 1, c_PB_Stargate );
- AISetStock( player, 1, c_PU_VoidRay );
- AISetStock( player, 2, c_PU_Stalker );
- AIEnableStock(player);
- //stock 3
- //---------------------------------------------------------
- if (AITechCount(player, c_PU_VoidRay, c_techCountCompleteOnly) < 1) {
- return;
- }
- AIWaveMerge(player, c_waveMain, c_waveAttack);
- AISetAttackState(player, e_attackState_Attack);
- AISetMainState(player, e_mainState_Mid1, e_mainSubState_AirA);
- }
- //--------------------------------------------------------------------------------------------------
- // ProtossMidAirA
- //--------------------------------------------------------------------------------------------------
- static void ProtossMidAirA (int player) {
- AIClearStock(player);
- AIDefaultEconomy(player, c_PB_Nexus, c_PB_Assimilator, c_PB_Pylon, c_PU_Probe, 8, c_stockAlways);
- AISetStock( player, 2, c_PU_Stalker );
- AISetStock( player, 1, c_PU_VoidRay );
- AISetStock( player, 2, c_PB_Pylon );
- AISetStock( player, 1, c_PB_RoboticsFacility );
- AISetStock( player, 1, c_PU_Phoenix );
- AISetStock( player, 1, c_PU_Observer );
- AISetStock( player, 1, c_PU_WarpPrism );
- AISetStock( player, 2, c_PU_VoidRay );
- AISetStock( player, 1, c_PB_Forge );
- AIEnableStock(player);
- //---------------------------------------------------------
- if (AIGetTime() < 700) {
- return;
- }
- AIWaveMerge(player, c_waveMain, c_waveAttack);
- AISetAttackState(player, e_attackState_Attack);
- AISetMainState(player, e_mainState_Mid1, e_mainSubState_AirB);
- }
- //--------------------------------------------------------------------------------------------------
- // ProtossMidAirB
- //--------------------------------------------------------------------------------------------------
- static void ProtossMidAirB (int player) {
- AIClearStock(player);
- AIDefaultEconomy(player, c_PB_Nexus, c_PB_Assimilator, c_PB_Pylon, c_PU_Probe, 8, c_stockAlways);
- AIDefaultExpansion(player, c_PB_Nexus, 6000, 1000, c_expandDefault);
- AISetStock( player, 2, c_PU_Stalker );
- AISetStock( player, 1, c_PU_VoidRay );
- AISetStock( player, 2, c_PB_Pylon );
- AISetStock( player, 1, c_PU_Phoenix );
- AISetStock( player, 1, c_PU_Observer );
- AISetStock( player, 1, c_PU_WarpPrism );
- AISetStock( player, 3, c_PU_VoidRay );
- AISetStock( player, 2, c_PU_Observer );
- AISetStock( player, 2, c_PU_Phoenix );
- AISetStock( player, 3, c_PB_PhotonCannon );
- AIEnableStock(player);
- //---------------------------------------------------------
- if (AIGetTime() < 1200) {
- return;
- }
- AIWaveMerge(player, c_waveMain, c_waveAttack);
- AISetAttackState(player, e_attackState_Attack);
- AISetMainState(player, e_mainState_Late1, e_mainSubState_AirA);
- AISetFlag(player, e_flagsScouting, true);
- AISetFlag(player, e_flagsClearObs, true);
- }
- //--------------------------------------------------------------------------------------------------
- // LateAir
- //--------------------------------------------------------------------------------------------------
- static void LateAir (int player) {
- AIClearStock(player);
- AIDefaultEconomy(player, c_PB_Nexus, c_PB_Assimilator, c_PB_Pylon, c_PU_Probe, 8, c_stockAlways);
- AIDefaultExpansion(player, c_PB_Nexus, 6000, 1000, c_expandDefault);
- AISetStock( player, 2, c_PU_Stalker );
- AISetStock( player, 1, c_PU_VoidRay );
- AISetStock( player, 2, c_PB_Pylon );
- AISetStock( player, 1, c_PU_Phoenix );
- AISetStock( player, 1, c_PU_Observer );
- AISetStock( player, 1, c_PU_WarpPrism );
- AISetStock( player, 3, c_PU_VoidRay );
- AISetStock( player, 2, c_PU_Observer );
- AISetStock( player, 2, c_PU_Phoenix );
- AISetStock( player, 1, c_PU_Carrier );
- AISetStock( player, 4, c_PU_Observer );
- AIEnableStock(player);
- //---------------------------------------------------------
- if (AIGetTime() % 300 > 5) {
- return;
- }
- AIWaveMerge(player, c_waveMain, c_waveAttack);
- AISetAttackState(player, e_attackState_Attack);
- AISetFlag(player, e_flagsScouting, true);
- AISetFlag(player, e_flagsClearObs, true);
- }
- //--------------------------------------------------------------------------------------------------
- // ProtossMid0
- //--------------------------------------------------------------------------------------------------
- void ProtossMid0 (int player) {
- int mainSubState = AIState(player, e_mainSubState);
- if (mainSubState == e_mainSubState_GndA) { ProtossMidGndA(player); }
- else if (mainSubState == e_mainSubState_GndB) { ProtossMidGndB(player); }
- else if (mainSubState == e_mainSubState_AirA) { ProtossMidAirA(player); }
- else if (mainSubState == e_mainSubState_AirB) { ProtossMidAirB(player); }
- else { ErrorMeleeScript(player, "Invalid Mid mainSubState"); }
- }
- //--------------------------------------------------------------------------------------------------
- // ProtossLate0
- //--------------------------------------------------------------------------------------------------
- void ProtossLate0 (int player) {
- int mainSubState = AIState(player, e_mainSubState);
- if (mainSubState == e_mainSubState_GndA) { LateGnd(player); }
- else if (mainSubState == e_mainSubState_AirA) { LateAir(player); }
- else { ErrorMeleeScript(player, "Invalid Late mainSubState"); }
- }
- Sprache wählen
- Style wählen
goto: