예제 #1
0
        public Space(int _levelIndex)
        {
            unitPlayer = new Unit[MAX_UNITS];
            unitEnemy  = new Unit[MAX_UNITS];

            cursor       = new Cursor(new Point(0, 0));
            isRunning    = true;
            isShowPhase  = true;
            phase        = SpacePhase.SET_UFO;
            actionPhase  = ActionPhase.SELECT_UNIT;
            selectedUnit = -1;


            turnNo         = 1;
            isPlayerTurn   = true;
            isShowTurnInfo = false;

            actionCursor = 1;

            phaseDelegate     = (string _text) => Console.WriteLine(_text);
            clsScreenDelegate = () => { Console.WriteLine("     Жми любую клавишу для продолжения"); Console.ReadKey(); Console.Clear(); };


            for (int i = 0; i < MAX_UNITS; ++i)
            {
                unitPlayer[i].SetData(UnitType.NO_UNIT, new Point(0, 0));
                unitEnemy[i].SetData(UnitType.NO_UNIT, new Point(0, 0));
            }
            elements = null;

            switch (_levelIndex)
            {
            default:
            {
                /*nothing to do*/
            }
            break;

            case 1:
            {
                elements = new Element[3];

                elements[0] = new Element(new Point(0, 0), "Зира", Type.STAR, Status.NO_STATUS);         // 40  9
                elements[1] = new Element(new Point(0, Settings.SPACE_HEIGHT - 1), "Унив", Type.PLANET, Status.OPONENT_OWNER);
                elements[2] = new Element(new Point(Settings.SPACE_WIDTH - 1, Settings.SPACE_HEIGHT - 1), "Кло", Type.PLANET, Status.OPONENT_OWNER);

                unitPlayer[0].SetData(UnitType.AVENGER, new Point(0, 3));
                unitPlayer[1].SetData(UnitType.BATTLE_WAGON, new Point(10, 3));
                unitPlayer[2].SetData(UnitType.BOMBER, new Point(20, 3));
                unitPlayer[3].SetData(UnitType.UFO, new Point(30, 3));
                unitPlayer[4].SetData(UnitType.ROBO_WARRIOR, new Point(40, 3));
                unitPlayer[5].SetData(UnitType.SOCIALIST, new Point(50, 3));

                unitEnemy[0].SetData(UnitType.AVENGER, new Point(5, 0));
                unitEnemy[1].SetData(UnitType.BATTLE_WAGON, new Point(10, 0));
                unitEnemy[2].SetData(UnitType.BOMBER, new Point(15, 0));
                unitEnemy[3].SetData(UnitType.UFO, new Point(20, 0));
            }
            break;


            case 2:
            {
                elements = new Element[3];

                elements[0] = new Element(new Point(40, 9), "Зира", Type.STAR, Status.NO_STATUS);
                elements[1] = new Element(new Point(20, 5), "Унив", Type.PLANET, Status.OPONENT_OWNER);
                elements[2] = new Element(new Point(60, 10), "Кло", Type.PLANET, Status.OPONENT_OWNER);
            }
            break;

            case 3:
            {
                elements = new Element[3];

                elements[0] = new Element(new Point(40, 10), "Зира", Type.STAR, Status.NO_STATUS);
                elements[1] = new Element(new Point(20, 5), "Унив", Type.PLANET, Status.OPONENT_OWNER);
                elements[2] = new Element(new Point(60, 15), "Кло", Type.PLANET, Status.OPONENT_OWNER);
            }
            break;
            }
        }
예제 #2
0
 public DelegateBlock(HaxeEmitterContext context, PhaseDelegate type)
     : base(context)
 {
     _type = type;
 }