Package com.fray.evo.action

Source Code of com.fray.evo.action.EcActionExtractorTrick

package com.fray.evo.action;
import static com.fray.evo.ui.swingx.EcSwingXMain.messages;
import java.io.Serializable;

import com.fray.evo.EcBuildOrder;
import com.fray.evo.util.GameLog;
import com.fray.evo.util.RunnableAction;
import com.fray.evo.util.ZergUnitLibrary;

public final class EcActionExtractorTrick extends EcAction implements Serializable
{
  private static final long serialVersionUID = 8713629742335543863L;

  @Override
  public void execute(final EcBuildOrder s, final GameLog e)
  {
    s.minerals -= 25;
    s.removeUnits(ZergUnitLibrary.Drone, 1);
    s.dronesOnMinerals -= 1;
    s.supplyUsed -= 1;
    s.extractorsBuilding++;
    s.addFutureAction(2, new RunnableAction()
    {
      @Override
      public void run(GameLog e)
      {
        if (e.isEnabled())
          e.printMessage(s, GameLog.MessageType.Obtained,
              " " + messages.getString("finished.extractortrick"));
        s.minerals += 19;
        s.addUnits(ZergUnitLibrary.Drone, 1);
        s.dronesOnMinerals += 1;
        s.supplyUsed += 1;
        s.extractorsBuilding--;
      }
    });
  }

  @Override
  public boolean isInvalid(EcBuildOrder s)
  {
    if (s.supplyUsed > s.settings.maximumExtractorTrickSupply)
      return true;
    if (s.getGasExtractors() + s.extractorsBuilding >= s.extractors())
      return true;
    if (s.supplyUsed < s.supply() - 1)
      return true;
    return false;
  }

  @Override
  public boolean isPossible(EcBuildOrder s)
  {
    if (s.minerals < 75)
      return false;
    if (s.getDrones() < 1)
      return false;
    return true;
  }

}
TOP

Related Classes of com.fray.evo.action.EcActionExtractorTrick

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.