Package com.fray.evo.action

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

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;

public final class EcActionMineGas extends EcAction implements Serializable
{
  private static final long serialVersionUID = 7000036942224791220L;

  @Override
  public void execute(final EcBuildOrder s, final GameLog e)
  {
    if (s.settings.pullThreeWorkersOnly)
    {
      s.dronesGoingOnGas += 3;
      s.dronesOnMinerals -= 3;
    }
    else
    {
      s.dronesGoingOnGas += 1;
      s.dronesOnMinerals -= 1;
    }
    s.addFutureAction(2, new RunnableAction()
    {
      @Override
      public void run(GameLog e)
      {
        if (s.settings.pullThreeWorkersOnly)
        {
          if (e.isEnabled())
            e.printMessage(s, GameLog.MessageType.Mining,
                " " + messages.getString("3ongas"));
          s.dronesGoingOnGas -= 3;
          s.dronesOnGas += 3;
        }
        else
        {
          if (e.isEnabled())
            e.printMessage(s, GameLog.MessageType.Mining,
                " " + messages.getString("1ongas"));
          s.dronesGoingOnGas--;
          s.dronesOnGas++;
        }

      }
    });
  }
 
  @Override
  public boolean isInvalid(EcBuildOrder s) {
    return !isPossible(s);
  }

  @Override
  public boolean isPossible(EcBuildOrder s)
  {
    if ((s.dronesOnGas + s.dronesGoingOnGas) >= 3 * s.getMineableGasExtractors())
      return false;
    if (s.dronesOnMinerals == 0 || s.settings.pullThreeWorkersOnly && s.dronesOnMinerals < 3)
      return false;
    return true;
  }

}
TOP

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

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.