/*
 * MissionGroupAssign.java
 *
 * Created on October 1, 2003, 10:12 PM
 */

/**
 *
 * @author  lross
 */
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.util.*;

public class MissionGroupAssign extends JFrame implements ActionListener{
    private char MissionChosen;
    private Vector planetswrebels;
    private Vector MCharButtons;
    private Vector MGroupButtons;
    private Vector MissionGroups;
    
    private static int HEIGHT = 517;
    private static int WIDTH = 648;
    private JRadioButton Diplomacy;
    private JRadioButton Get_Character;
    private JRadioButton Gather_Information;
    private JRadioButton Coup;
    private JRadioButton Sabotage;
    private JRadioButton Start_Stop_Rebellion;
    private JRadioButton Scavenge;
    private JRadioButton Free_Prisoners;
    private JRadioButton Assassination;
    private JRadioButton Start_Rebel_Camp;
    private JRadioButton Subvert_Troops;
    private JRadioButton Summon_Sovereign;
    private JRadioButton Space_Quest;
    private JRadioButton Steal_Resources;
    private JRadioButton Question_Prisoner;
    private JPanel EnvironPanel;
    private JComboBox EnvironCombo;
    private JPanel CharSelectPanel;
    private JPanel GroupSelectPanel;
    private JButton DeleteGroup;
    private JButton CreateGroup;
    private JPanel MissionsPanel;
    private ButtonGroup MissionGroup;
    private JPanel PlanetPanel;
    private JComboBox PlanetCombo;
    private JPanel InfoPanel;
    private JButton Done;
    private Container content;
    private ActionListener MButtonListener;
    
    /** Creates new form JFrame */
    public MissionGroupAssign() {
	super();
//        if(g.PhasingPlayer=='i')
//        {
//            //Handle imperial missions here
//            return;
//        }
	setSize(WIDTH, HEIGHT);
	setTitle("Assign Mission Groups");

        MissionChosen=0;
        MissionGroups=new Vector();
        MCharButtons=new Vector();
        MGroupButtons=new Vector();

        EnvironPanel = new JPanel();
        EnvironCombo = new JComboBox();
        CharSelectPanel = new JPanel();
        GroupSelectPanel = new JPanel();
        DeleteGroup = new JButton();
        CreateGroup = new JButton();
        MissionsPanel = new JPanel();
        
        PlanetPanel = new JPanel();
        PlanetCombo = new JComboBox();
        InfoPanel = new JPanel();
        Done = new JButton();
	content=getContentPane();
	content.setLayout(null);
        setForeground(new Color(0, 0, 0));
        setBackground(new Color(0, 0, 0));
        addWindowListener(new WindowAdapter() {
            public void windowClosing(WindowEvent evt) {
                Game.setDone();
                exitForm(evt);
            }
        });
        MButtonListener=new ActionListener(){
            public void actionPerformed(ActionEvent evt){
                MButtonActionPerformed(evt);
            }
        };
        EnvironPanel.setLayout(null);
        EnvironPanel.setBackground(new java.awt.Color(0, 0, 0));
        EnvironCombo.setForeground(new java.awt.Color(255, 255, 255));
        EnvironCombo.setBackground(new java.awt.Color(0, 0, 0));
        EnvironCombo.setBorder(new javax.swing.border.TitledBorder(null, "Select Environ", javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION, javax.swing.border.TitledBorder.DEFAULT_POSITION, new java.awt.Font("Dialog", 1, 12), new java.awt.Color(255, 255, 255)));
        EnvironPanel.add(EnvironCombo);
        EnvironCombo.setBounds(0, 0, 140, 40);
        EnvironCombo.addActionListener(new ActionListener(){
            public void actionPerformed(ActionEvent evt) {
                environComboActionPerformed(evt);
            }
        });

        content.add(EnvironPanel);
        EnvironPanel.setBounds(140, 0, 140, 160);

        CharSelectPanel.setLayout(null);
        CharSelectPanel.setBorder(new javax.swing.border.TitledBorder(null,
            "Select Characters for Mission", javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION,
            javax.swing.border.TitledBorder.DEFAULT_POSITION, 
            new java.awt.Font("Dialog", 1, 12), new java.awt.Color(255, 255, 255)));
        CharSelectPanel.setForeground(new java.awt.Color(255, 255, 255));
        CharSelectPanel.setBackground(new java.awt.Color(0, 0, 0));
        content.add(CharSelectPanel);
        CharSelectPanel.setBounds(0, 160, 230, 330);

        GroupSelectPanel.setLayout(null);

        GroupSelectPanel.setBorder(new javax.swing.border.TitledBorder(null, "Character Group", javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION, javax.swing.border.TitledBorder.DEFAULT_POSITION, new java.awt.Font("Dialog", 1, 12), new java.awt.Color(255, 255, 255)));
        GroupSelectPanel.setForeground(new java.awt.Color(255, 255, 255));
        GroupSelectPanel.setBackground(new java.awt.Color(0, 0, 0));
        DeleteGroup.setForeground(new java.awt.Color(255, 255, 255));
        DeleteGroup.setText("Delete Group");
        DeleteGroup.setBackground(new java.awt.Color(0, 0, 0));
        DeleteGroup.setBorder(new javax.swing.border.LineBorder(new java.awt.Color(255, 255, 255)));
        GroupSelectPanel.add(DeleteGroup);
        DeleteGroup.setBounds(10, 240, 200, 20);
        DeleteGroup.addActionListener(new ActionListener(){
            public void actionPerformed(ActionEvent evt){
                DeleteGroupActionPerformed(evt);
            }
        });


        CreateGroup.setForeground(new java.awt.Color(255, 255, 255));
        CreateGroup.setText("Create Group");
        CreateGroup.setBackground(new java.awt.Color(0, 0, 0));
        CreateGroup.setBorder(new javax.swing.border.LineBorder(new java.awt.Color(255, 255, 255)));
        GroupSelectPanel.add(CreateGroup);
        CreateGroup.setBounds(10, 20, 200, 23);
        CreateGroup.addActionListener(new ActionListener(){
            public void actionPerformed(ActionEvent evt){
                CreateGroupActionPerformed(evt);
            }
        });

        content.add(GroupSelectPanel);
        GroupSelectPanel.setBounds(420, 160, 220, 280);

        MissionsPanel.setLayout(null);

        MissionsPanel.setBorder(new javax.swing.border.TitledBorder(null, "Missions", javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION, javax.swing.border.TitledBorder.DEFAULT_POSITION, new java.awt.Font("Dialog", 1, 12), new java.awt.Color(255, 255, 255)));
        MissionsPanel.setForeground(new java.awt.Color(255, 255, 255));
        MissionsPanel.setBackground(new java.awt.Color(0, 0, 0));
        
        String msavailable=MissionsAvailable();
        MissionGroup = new ButtonGroup();
        for(int i=0;i<msavailable.length();i++)
        {
            switch(msavailable.charAt(i))
            {
                case 'D':
                    Diplomacy = new JRadioButton();
                    Diplomacy.setForeground(new java.awt.Color(255, 255, 255));
                    Diplomacy.setFont(new java.awt.Font("Dialog", 1, 11));
                    Diplomacy.setText("Diplomacy");
                    Diplomacy.setBackground(new java.awt.Color(0, 0, 0));
                    MissionsPanel.add(Diplomacy);
                    MissionGroup.add(Diplomacy);
                    Diplomacy.setBounds(10, 20, 92, 21);
                    Diplomacy.addActionListener(this);
                    break;
                case 'G':
                    Get_Character = new JRadioButton();
                    Get_Character.setForeground(new java.awt.Color(255, 255, 255));
                    Get_Character.setFont(new java.awt.Font("Dialog", 1, 11));
                    Get_Character.setText("Get Character");
                    Get_Character.setBackground(new java.awt.Color(0, 0, 0));
                    MissionsPanel.add(Get_Character);
                    MissionGroup.add(Get_Character);
                    Get_Character.setBounds(10, 40, 112, 21);
                    Get_Character.addActionListener(this);
                    break;
                case 'I':
                    Gather_Information = new JRadioButton();
                    Gather_Information.setForeground(new java.awt.Color(255, 255, 255));
                    Gather_Information.setText("Gather Information");
                    Gather_Information.setBackground(new java.awt.Color(0, 0, 0));
                    MissionsPanel.add(Gather_Information);
                    MissionGroup.add(Gather_Information);
                    Gather_Information.setBounds(10, 61, 162, 20);
                    Gather_Information.addActionListener(this);
                    break;
                case 'C':
                    Coup = new JRadioButton();
                    Coup.setForeground(new java.awt.Color(255, 255, 255));
                    Coup.setFont(new java.awt.Font("Dialog", 1, 11));
                    Coup.setText("Coup");
                    Coup.setBackground(new java.awt.Color(0, 0, 0));
                    MissionsPanel.add(Coup);
                    MissionGroup.add(Coup);
                    Coup.setBounds(10, 80, 58, 21);
                    Coup.addActionListener(this);
                    break;
                case 'S':
                    Sabotage = new JRadioButton();
                    Sabotage.setForeground(new java.awt.Color(255, 255, 255));
                    Sabotage.setFont(new java.awt.Font("Dialog", 1, 11));
                    Sabotage.setText("Sabotage");
                    Sabotage.setBackground(new java.awt.Color(0, 0, 0));
                    MissionsPanel.add(Sabotage);
                    MissionGroup.add(Sabotage);
                    Sabotage.setBounds(10, 100, 82, 21);
                    Sabotage.addActionListener(this);
                    break;
                case 'R':
                    Start_Stop_Rebellion = new JRadioButton();
                    Start_Stop_Rebellion.setForeground(new java.awt.Color(255, 255, 255));
                    Start_Stop_Rebellion.setFont(new java.awt.Font("Dialog", 1, 11));
                    Start_Stop_Rebellion.setText("Start/Stop Rebellion");
                    Start_Stop_Rebellion.setBackground(new java.awt.Color(0, 0, 0));
                    MissionGroup.add(Start_Stop_Rebellion);
                    MissionsPanel.add(Start_Stop_Rebellion);
                    Start_Stop_Rebellion.setBounds(10, 120, 170, 21);
                    Start_Stop_Rebellion.addActionListener(this);
                    break;
                case 'P':
                    Scavenge = new JRadioButton();
                    Scavenge.setForeground(new java.awt.Color(255, 255, 255));
                    Scavenge.setFont(new java.awt.Font("Dialog", 1, 11));
                    Scavenge.setText("Scavenge");
                    Scavenge.setBackground(new java.awt.Color(0, 0, 0));
                    MissionsPanel.add(Scavenge);
                    MissionGroup.add(Scavenge);
                    Scavenge.setBounds(10, 140, 83, 21);
                    Scavenge.addActionListener(this);
                    break;
                case 'F':
                    Free_Prisoners = new JRadioButton();
                    Free_Prisoners.setForeground(new java.awt.Color(255, 255, 255));
                    Free_Prisoners.setFont(new java.awt.Font("Dialog", 1, 11));
                    Free_Prisoners.setText("Free Prisoners");
                    Free_Prisoners.setBackground(new java.awt.Color(0, 0, 0));
                    MissionsPanel.add(Free_Prisoners);
                    MissionGroup.add(Free_Prisoners);
                    Free_Prisoners.setBounds(10, 160, 117, 21);
                    Free_Prisoners.addActionListener(this);
                    break;
                case 'A':
                    Assassination = new JRadioButton();
                    Assassination.setForeground(new java.awt.Color(255, 255, 255));
                    Assassination.setFont(new java.awt.Font("Dialog", 1, 11));
                    Assassination.setText("Assassination");
                    Assassination.setBackground(new java.awt.Color(0, 0, 0));
                    MissionsPanel.add(Assassination);
                    MissionGroup.add(Assassination);
                    Assassination.setBounds(10, 180, 113, 21);
                    Assassination.addActionListener(this);
                    break;
                case 'B':
                    Start_Rebel_Camp = new JRadioButton();
                    Start_Rebel_Camp.setForeground(new java.awt.Color(255, 255, 255));
                    Start_Rebel_Camp.setFont(new java.awt.Font("Dialog", 1, 11));
                    Start_Rebel_Camp.setText("Start Rebel Camp");
                    Start_Rebel_Camp.setBackground(new java.awt.Color(0, 0, 0));
                    MissionsPanel.add(Start_Rebel_Camp);
                    MissionGroup.add(Start_Rebel_Camp);
                    Start_Rebel_Camp.setBounds(10, 200, 133, 21);
                    Start_Rebel_Camp.addActionListener(this);
                    break;
                case 'T':
                    Subvert_Troops = new JRadioButton();
                    Subvert_Troops.setForeground(new java.awt.Color(255, 255, 255));
                    Subvert_Troops.setFont(new java.awt.Font("Dialog", 1, 11));
                    Subvert_Troops.setText("Subvert Troops");
                    Subvert_Troops.setBackground(new java.awt.Color(0, 0, 0));
                    MissionsPanel.add(Subvert_Troops);
                    MissionGroup.add(Subvert_Troops);
                    Subvert_Troops.setBounds(10, 260, 122, 21);
                    Subvert_Troops.addActionListener(this);
                    break;
                case 'E':
                    Summon_Sovereign = new JRadioButton();
                    Summon_Sovereign.setForeground(new java.awt.Color(255, 255, 255));
                    Summon_Sovereign.setFont(new java.awt.Font("Dialog", 1, 11));
                    Summon_Sovereign.setText("Summon Sovereign");
                    Summon_Sovereign.setBackground(new java.awt.Color(0, 0, 0));
                    MissionsPanel.add(Summon_Sovereign);
                    MissionGroup.add(Summon_Sovereign);
                    Summon_Sovereign.setBounds(10, 240, 160, 21);
                    Summon_Sovereign.addActionListener(this);
                    break;
                case 'J':
                    Space_Quest = new JRadioButton();
                    Space_Quest.setForeground(new java.awt.Color(255, 255, 255));
                    Space_Quest.setFont(new java.awt.Font("Dialog", 1, 11));
                    Space_Quest.setText("Space Quest");
                    Space_Quest.setBackground(new java.awt.Color(0, 0, 0));
                    MissionsPanel.add(Space_Quest);
                    MissionGroup.add(Space_Quest);
                    Space_Quest.setBounds(10, 220, 102, 21);
                    Space_Quest.addActionListener(this);
                    break;
                case 'H':
                    Steal_Resources = new JRadioButton();
                    Steal_Resources.setForeground(new java.awt.Color(255, 255, 255));
                    Steal_Resources.setFont(new java.awt.Font("Dialog", 1, 11));
                    Steal_Resources.setText("Steal Resources");
                    Steal_Resources.setBackground(new java.awt.Color(0, 0, 0));
                    MissionsPanel.add(Steal_Resources);
                    MissionGroup.add(Steal_Resources);
                    Steal_Resources.setBounds(10, 280, 124, 21);
                    Steal_Resources.addActionListener(this);
                    break;
                case 'Q':
                    Question_Prisoner = new JRadioButton();
                    Question_Prisoner.setForeground(new java.awt.Color(255, 255, 255));
                    Question_Prisoner.setFont(new java.awt.Font("Dialog", 1, 11));
                    Question_Prisoner.setText("Question Prisoner");
                    Question_Prisoner.setBackground(new java.awt.Color(0, 0, 0));
                    MissionsPanel.add(Question_Prisoner);
                    MissionGroup.add(Question_Prisoner);
                    Question_Prisoner.setBounds(10, 300, 162, 20);
                    Question_Prisoner.addActionListener(this);
                    break;
            }
        }
        content.add(MissionsPanel);
        MissionsPanel.setBounds(230, 160, 190, 330);

        PlanetPanel.setLayout(null);

        PlanetPanel.setBackground(new java.awt.Color(0, 0, 0));
        PlanetCombo.setForeground(new java.awt.Color(255, 255, 255));
        PlanetCombo.setBackground(new java.awt.Color(0, 0, 0));
        PlanetCombo.setBorder(new javax.swing.border.TitledBorder(null, "Select Planet", javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION, javax.swing.border.TitledBorder.DEFAULT_POSITION, new java.awt.Font("Dialog", 1, 12), new java.awt.Color(255, 255, 255)));
        PlanetPanel.add(PlanetCombo);
        PlanetCombo.setBounds(0, 0, 140, 40);
        PlanetCombo.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent evt) {
                planetComboActionPerformed(evt);
            }
        });

        content.add(PlanetPanel);
        PlanetPanel.setBounds(0, 0, 140, 160);

        InfoPanel.setLayout(null);

        InfoPanel.setBorder(new javax.swing.border.TitledBorder(null, "Info", javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION, javax.swing.border.TitledBorder.DEFAULT_POSITION, new java.awt.Font("Dialog", 1, 12), new java.awt.Color(255, 255, 255)));
        InfoPanel.setForeground(new java.awt.Color(255, 255, 255));
        InfoPanel.setBackground(new java.awt.Color(0, 0, 0));
        content.add(InfoPanel);
        InfoPanel.setBounds(280, 0, 360, 160);

        Done.setForeground(new java.awt.Color(255, 255, 255));
        Done.setText("Done!");
        Done.setBackground(new java.awt.Color(0, 0, 0));
        Done.setBorder(new javax.swing.border.LineBorder(new java.awt.Color(255, 255, 255)));
        content.add(Done);
        Done.setBounds(420, 440, 220, 50);
        Done.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent evt){
                DoneActionPerformed(evt);
            }
        });
        
//change this line so that it passes the side of the phasing player
        planetswrebels=Galaxy.getMissionChars(fitg.thisGame.getPhasingPlayer());
        String [] pwrstring=new String[planetswrebels.size()+1];
        int i;
        pwrstring[0]="Choose";
        for(i=0;i<planetswrebels.size();i++)
            pwrstring[i+1]=((Planet)(planetswrebels.elementAt(i))).getName();
        PlanetCombo.setModel(new DefaultComboBoxModel(pwrstring));
        
        setVisible(true);
    }
    
    /** Exit the Application */
    private void exitForm(java.awt.event.WindowEvent evt) {
        this.dispose();
    }
    
          /*
           *planetComboActionPerformed(ActionEvent e)
           *Implements the listener for the PlanetCombo menu box
           */
    public void planetComboActionPerformed(ActionEvent e) {
        int i;
        int index=PlanetCombo.getSelectedIndex();
        if(index==0)
        {
            //MCharButtons
            return;
        }
        Planet chosen=(Planet)planetswrebels.elementAt(index-1);
        Vector Cenvirons=chosen.getEnvirons();
        Vector environlist=new Vector();//String[chosen.getNumEnvirons()];
        for(i=0;i<chosen.getNumEnvirons();i++)
        {
            if(((Environ)(Cenvirons.elementAt(i))).hasMissionChars(fitg.thisGame.getPhasingPlayer()))
            {
                environlist.add(new String(((Environ)(Cenvirons.elementAt(i))).name()));
            }
        }
        EnvironCombo.setModel(new DefaultComboBoxModel(environlist));
    }
    
    /**
     *environComboActionPerformed(ActionEvent evt)
     *Implements the listener for the EnvironCombo menu box
     */
    public void environComboActionPerformed(ActionEvent evt)
    {
        while(MCharButtons.size()!=0)
        {
            ((MButton)(MCharButtons.elementAt(0))).select(false);
            MCharButtons.removeElementAt(0);
        }
        CharSelectPanel.removeAll();
        CharSelectPanel.repaint();
        int planetindex=PlanetCombo.getSelectedIndex();
        int environindex=EnvironCombo.getSelectedIndex();
        if(planetindex<=0 || environindex<0)
            return;
        Vector environs=((Planet)(planetswrebels.elementAt(planetindex-1))).getEnvirons();
        for(int i=0;i<environs.size();i++)
        {
            if(!((Environ)(environs.elementAt(i))).hasMissionChars(fitg.thisGame.getPhasingPlayer()))
            {
                environs.removeElementAt(i);
                i--;
            }
        }
        
        // Some condition checks from James of Galaxy and Province Team
        if (fitg.thisGame.gameType!='s')
        {
           Summon_Sovereign.setEnabled(false);
           Space_Quest.setEnabled(false);
           Steal_Resources.setEnabled(false);
           Question_Prisoner.setEnabled(false);
           int cid=((Environ)(environs.elementAt(environindex))).environID;
           if (cid==4411 || cid==5111 || cid==1411 || cid==3122 ||
               cid==2311 || cid==2232 || cid==4122 || cid==2121 ||
               cid==3411 || cid==5411 || cid==5211 || cid==3221)
              Summon_Sovereign.setEnabled(true);
        }

        Vector rebels=(((Environ)(environs.elementAt(environindex))).getRebelCharGroup()).getGroup();
        String buttontext;
        int nullgroups=0;
        for(int i=0;i<rebels.size();i++)
        {
            boolean showchar=true;
            for(int j=0;MissionGroups!=null && j<MissionGroups.size();j++)
            {
                MissionGroup tempmg=((MissionGroup)(MissionGroups.elementAt(j)));
                for(int k=0;k<tempmg.getNumUnits();k++)
                {
                    Charactr c=((Charactr)(tempmg.getGroup().elementAt(k)));
                    if(c==((Charactr)(rebels.elementAt(i))))
                    {
                        showchar=false;
                        nullgroups++;
                        break;
                    }
                }
                if(showchar==false)
                    break;
            }
            if(showchar==false)
                continue;
            MCharButton mcbtemp=new MCharButton(((Charactr)(rebels.elementAt(i))));
            MCharButtons.addElement(mcbtemp);
            mcbtemp.addTo(CharSelectPanel);
            mcbtemp.addActionListener(MButtonListener);
        }
        return;
    }
    
    /**
     *MCharButtonActionPerformed(ActionEvent evt)
     *This handles the event of a character button
     *being clicked
     */
    public void MButtonActionPerformed(ActionEvent evt)
    {
        for(int i=0;i<MCharButtons.size();i++)
        {
            if(evt.getSource()==((MButton)(MCharButtons.elementAt(i))).b)
            {
                ((MCharButton)(MCharButtons.elementAt(i))).select();
                return;
            }
        }
        for(int i=0;i<MGroupButtons.size();i++)
        {
            if(evt.getSource()==((MButton)(MGroupButtons.elementAt(i))).b)
            {
                ((MButton)(MGroupButtons.elementAt(i))).select();
                return;
            }
        }
    }
    
    public void CreateGroupActionPerformed(ActionEvent evt){
        if(MissionChosen==0)
        {
            //Put no mission chosen code here
            return;
        }
        int planetindex=PlanetCombo.getSelectedIndex();
        int environindex=EnvironCombo.getSelectedIndex();
        MissionGroup mg=new MissionGroup('r', MissionChosen);
        for(int i=0;i<MCharButtons.size();i++)
        {
            if(((MCharButton)(MCharButtons.elementAt(i))).selected)
            {
                MCharButton tempmcb=((MCharButton)(MCharButtons.elementAt(i)));
                mg.add(tempmcb.c);
                mg.planet=tempmcb.c.getEnviron().getPlanet();
                mg.environ=tempmcb.c.getEnviron();
                tempmcb.removeFrom(CharSelectPanel);
            }
        }
        if(mg.getGroup().size()==0)
        {
            return;
        }
        MissionGroups.addElement(mg);
        MGroupButton mgb=new MGroupButton(mg);
        MGroupButtons.add(mgb);
        mgb.addTo(GroupSelectPanel);
        mgb.b.setBounds(5, 25+(GroupSelectPanel.getComponentCount()-2)*25, 210, 20);
        mgb.addActionListener(MButtonListener);
        EnvironCombo.setSelectedIndex(EnvironCombo.getSelectedIndex());
    }
    
    public void DeleteGroupActionPerformed(ActionEvent evt)
    {
        for(int i=0;i<MGroupButtons.size();i++)
            if(((MGroupButton)(MGroupButtons.elementAt(i))).selected)
            {
                MGroupButton tempmgb=((MGroupButton)(MGroupButtons.elementAt(i)));
                tempmgb.removeFrom(GroupSelectPanel);
                MGroupButtons.removeElementAt(i);
                MissionGroups.removeElement(tempmgb.g);
            }
        EnvironCombo.setSelectedIndex(EnvironCombo.getSelectedIndex());
    }
    
    /**
     * @param args the command line arguments
     */
    public static void main(String args[]) {
        fitg.thisGame=new Game("datfiles/egrix.dat");
        fitg.thisGame.MissionTestPlayerTurnEquals1();
        //Galaxy.init();
        StarSystem.init();
        MissionCard.init();
        int provno, sysno, planno, envno, charno;
        provno=3;
        sysno=0;
        planno=1;
        envno=1;
        charno=11;
        Galaxy.getProvinces()[provno].getStarSystems()[sysno].getsystemplanets()[planno].getPlanetEnvirons()[envno].addCharacter(Charactr.getCharInitArray()[charno]);
        provno=3;
        sysno=0;
        planno=1;
        envno=1;
        charno=0;
        Galaxy.getProvinces()[provno].getStarSystems()[sysno].getsystemplanets()[planno].getPlanetEnvirons()[envno].addCharacter(Charactr.getCharInitArray()[charno]);
        provno=3;
        sysno=0;
        planno=1;
        envno=1;
        charno=5;
        Galaxy.getProvinces()[provno].getStarSystems()[sysno].getsystemplanets()[planno].getPlanetEnvirons()[envno].addCharacter(Charactr.getCharInitArray()[charno]);
        provno=2;
        sysno=1;
        planno=2;
        envno=1;
        charno=30;
        //This guy is imperial--he's not supposed to show up for this REBEL test
        Galaxy.getProvinces()[provno].getStarSystems()[sysno].getsystemplanets()[planno].getPlanetEnvirons()[envno].addCharacter(Charactr.getCharInitArray()[charno]);
        provno=2;
        sysno=1;
        planno=2;
        envno=1;
        charno=8;
        Galaxy.getProvinces()[provno].getStarSystems()[sysno].getsystemplanets()[planno].getPlanetEnvirons()[envno].addCharacter(Charactr.getCharInitArray()[charno]);
        provno=2;
        sysno=1;
        planno=2;
        envno=0;
        charno=9;
        Galaxy.getProvinces()[provno].getStarSystems()[sysno].getsystemplanets()[planno].getPlanetEnvirons()[envno].addCharacter(Charactr.getCharInitArray()[charno]);
        provno=1;
        sysno=2;
        planno=1;
        envno=1;
        charno=1;
        Galaxy.getProvinces()[provno].getStarSystems()[sysno].getsystemplanets()[planno].getPlanetEnvirons()[envno].addCharacter(Charactr.getCharInitArray()[charno]);
        provno=0;
        sysno=4;
        planno=0;
        envno=0;
        charno=19;
        Galaxy.getProvinces()[provno].getStarSystems()[sysno].getsystemplanets()[planno].getPlanetEnvirons()[envno].addCharacter(Charactr.getCharInitArray()[charno]);
        provno=3;
        sysno=3;
        planno=0;
        envno=0;
        charno=15;
        Galaxy.getProvinces()[provno].getStarSystems()[sysno].getsystemplanets()[planno].getPlanetEnvirons()[envno].addCharacter(Charactr.getCharInitArray()[charno]);
        MissionGroupAssign MGA = new MissionGroupAssign();
        while(!fitg.thisGame.done);
        System.out.println("The Missions Phase is over");
        System.exit(0);
    }
    
    // private class handling radio button events
	public void actionPerformed( ActionEvent event )
	{
	    if( event.getSource() == Diplomacy )
            {
                MissionChosen='D';
            }
            if( event.getSource() == Sabotage )
            {
                MissionChosen='S';
            }
	    if( event.getSource() == Start_Stop_Rebellion )
	    {
		MissionChosen='R';
	    }
	    if( event.getSource() == Scavenge )
	    {
		MissionChosen='P';
	    }
	    if( event.getSource() == Get_Character )
	    {
		MissionChosen='G';
	    }
	    if( event.getSource() == Gather_Information )
	    {
		MissionChosen='I';
	    }
	    if( event.getSource() == Free_Prisoners )
	    {
		MissionChosen='F';
	    }
	    if( event.getSource() == Assassination )
	    {
		MissionChosen='A';
	    }
	    if( event.getSource() == Start_Rebel_Camp )
	    {
		MissionChosen='B';
	    }
	    if( event.getSource() == Subvert_Troops )
	    {
		MissionChosen='T';
	    }	    
	    if( event.getSource() == Coup )
	    {
		MissionChosen='C';
	    }
	    if( event.getSource() == Summon_Sovereign )
	    {
		MissionChosen='E';
	    }
	    if( event.getSource() == Space_Quest )
	    {
		MissionChosen='J';
	    }
	    if( event.getSource() == Steal_Resources )
	    {
		MissionChosen='H';
	    }
	    if( event.getSource() == Question_Prisoner )
	    {
		MissionChosen='Q';
            }
	}
        
    
    //    public static void Assign_MG(Stack s, char Mission)
    // {}

 public static void displayInfoChar(Character c)
   {}
 
 /**
  *MissionsAvailable()
  *returns a string of missions available to go on
  */
 private String MissionsAvailable()
 {
    if (fitg.thisGame.gameType=='s') 
       return "DSRPGIFABTC";
    else if (fitg.thisGame.gameType=='p')
       return "DSRPGIFABTCEJ";
    else
       return "DSRPGIFABTCEJHQ";
//     String ms=new String();
//     if(true /*Check if loyalty is completely in phasing player's favor*/)
//         ms=ms.concat("D");
//     if(true /*See rules*/)
//         ms=ms.concat("S");
//     if(
 }
    
    public static void displayInfoMission(char c)
    {}

    public static void selectTarget()
    {}

    public void DoneActionPerformed(ActionEvent evt)
    {
        setVisible(false);
        MissionAction MA=new MissionAction(MissionGroups);
        exitForm(null);
    }

}


