public override void MouseClick(object sender, MouseButtonEventArgs args)
        {
            if (MapGrid.GetGridRect().Contains(args.Position) &&
                !Container.Contains(MapNameDialog) &&
                !Container.Contains(TileContextMenu) &&
                !Container.Contains(MessageBox))
            {
                int Column = (args.X - MapGrid.X) / MapGrid.boxWidth;
                int Row = (args.Y - MapGrid.Y) / MapGrid.boxHeight;

                UpdateMapPosLabel(Row, Column);

                if (args.Button == MouseButton.PrimaryButton && !Container.Contains(TileTextureMenu))
                {
                    TileContextMenu = new TileMenu(map.Tiles[Row][Column], Garbage);

                    Container.Add(TileContextMenu);
                    TileContextMenu.SetEvents();
                    TileContextMenu.X = args.X;
                    TileContextMenu.Y = args.Y;
                }
                else if (args.Button == MouseButton.SecondaryButton && !Container.Contains(TileContextMenu))
                {
                    TileTextureMenu = new TextureMenu(map.Tiles[Row][Column], TexIndex, Garbage);

                    Container.Add(TileTextureMenu);
                    TileTextureMenu.SetEvents();
                    TileTextureMenu.X = args.X;
                    TileTextureMenu.Y = args.Y;
                }
            }

            String ItemName = GetItemName(args);

            if (!Container.Contains(MapNameDialog) &&
                !Container.Contains(TileContextMenu) &&
                !Container.Contains(TileTextureMenu) &&
                !Container.Contains(MessageBox))
            {
                if (ItemName == "SaveMap")
                {
                    Map.SaveMap(map, "Maps/" + map.MapName + ".xml");
                    MessageBox.Title = "Map Saved !";
                    MessageBox.Caption = map.MapName + " has been saved with success !";
                    MessageBox.SetEvents();
                    Container.Add(MessageBox);
                }
                else if (ItemName == "NewMap")
                {
                    map = new Map();
                    mapRenderer.map = map;
                    Container.Add(MapNameDialog);
                }
                else if (ItemName == "LoadMap")
                {
                    LoadMap();
                }
                else if (ItemName == "ChangeMapName")
                {
                    Container.Add(MapNameDialog);
                }
                else if (ItemName == "SetDefaultTexture")
                {
                    SetAllDefaultTexture("Normal 1");
                }
                else if (ItemName == "Quit")
                {
                    MainMenuWindow window = new MainMenuWindow(Screen);
                    UnsetEvents();
                    window.SetEvents();
                }
            }
        }
示例#2
0
        public override void MouseClick(object sender, MouseButtonEventArgs args)
        {
            String ItemName = GetItemName(args);

            if (ItemName == EasyDiffButton.ButtonName)
            {
                Difficulty = GameDifficulty.Easy;
            }
            else if (ItemName == MediumDiffButton.ButtonName)
            {
                Difficulty = GameDifficulty.Medium;
            }
            else if (ItemName == HardDiffButton.ButtonName)
            {
                Difficulty = GameDifficulty.Hard;
            }
            else if(ItemName == MainMenuButton.ButtonName)
            {
                UnsetEvents();
                MainMenuWindow MainMenuWin = new MainMenuWindow(Screen);
                MainMenuWin.SetEvents();
            }
            else if(ItemName == StartGameButton.ButtonName)
            {
                UnsetEvents();

                MapName = Maps[MapGuiList.SelectedIndex];

                GameWindow GameWin = new GameWindow(Screen, MapName, Difficulty);
                GameWin.SetEvents();
            }
        }
示例#3
0
        public override void MouseClick(object sender, MouseButtonEventArgs args)
        {
            if (args.Button == MouseButton.PrimaryButton)
            {
                String ItemName = GetItemName(args);
                if (ItemName == CloseButton.ButtonName)
                {
                    //Events.QuitApplication();
                    MainMenuWindow mainWindow = new MainMenuWindow(Screen);

                    UnsetEvents();
                    mainWindow.SetEvents();

                }
                else if (ItemName == StartWaveButton.ButtonName && TopLevelContainer.Count == 0)
                {
                    if (GameObj.State == GameState.NoAttack)
                    {
                        GameObj.StartWave();
                        SelectedTile = new MapCoord();
                    }
                }
                else if (ItemName == ResetButton.ButtonName)
                {
                    GameObj.NewGame(GameObj.Difficulty);
                    LastAttackInfo = 0;
                    AskedPlayerName = false;
                }
                else if (ItemName == CombatLogButton.ButtonName)
                {
                    if (GameObj.State == GameState.NoAttack && !TopLevelContainer.Contains(LogBox))
                    {
                        LogBox.Y = GameStartP.Y;
                        LogBox.X = (Width - LogBox.Width) / 2;
                        LogBox.Log = GameObj.LastCombatLog;
                        LogBox.UpdateLabel();
                        TopLevelContainer.Add(LogBox);
                        LogBox.SetEvents();
                    }
                }
                else if (ItemName == BuyUnitButton.ButtonName && TopLevelContainer.Count == 0)
                {
                    if (GameObj.State == GameState.NoAttack)
                    {
                        TopLevelContainer.Add(UnitClassesChooserBox);
                        UnitClassesChooserBox.SetEvents();
                    }
                }
                else if (TopLevelContainer.Contains(PlayerNameDialog) && PlayerNameDialog.GetButtonOkRect().Contains(args.Position))
                {
                    PlayerName = PlayerNameDialog.TextEntry;
                    PlayerNameDialog.UnsetEvents();
                    TopLevelContainer.Remove(PlayerNameDialog);
                }
                else if (GameObj.State == GameState.NoAttack && UnitClassesChooserBox.ChoosenClass != UnitClasses.None && TopLevelContainer.Count == 0)
                {
                    if (GameRectangle.Contains(MousePos))
                    {
                        Point relpoint = new Point(MousePos.X - GameStartP.X, MousePos.Y - GameStartP.Y);

                        MapCoord Coord = new MapCoord(relpoint);

                        GameObj.AddPlayerUnit(Coord, UnitClassesChooserBox.ChoosenClass);

                        UnitClassesChooserBox.Reset();

                        UnitInfoBox.ChangeUnit(GameObj.PlayerUnits.GetUnitAt(Coord));
                    }
                }
                else if (UnitInfoBox.GetIncLvlRect().Contains(args.Position) && GameObj.State == GameState.NoAttack && TopLevelContainer.Count == 0)
                {
                    GameObj.IncreaseUnitLevel(UnitInfoBox.Unit);
                }
                else if (GameRectangle.Contains(args.Position) && TopLevelContainer.Count == 0)
                {
                    SelectedTile = GetCoordFromPoint(args.Position);

                    if (GameObj.PlayerUnits.GetUnitAt(SelectedTile).Class != UnitClasses.None)
                    {
                        UnitInfoBox.ChangeUnit(GameObj.PlayerUnits.GetUnitAt(SelectedTile));
                    }
                    else
                    {
                        UnitInfoBox.ChangeUnit(new PlayerUnit());
                    }

                    if (GameObj.State == GameState.CreepAttack)
                    {
                        foreach (CreepUnit Unit in GameObj.Creeps)
                        {
                            if (!Unit.Position.IsEmpty)
                            {
                                Rectangle rect = new Rectangle(new Point(GameStartP.X + Unit.Position.X, GameStartP.Y + Unit.Position.Y), new Size(CreepUnit.CREEP_WIDTH_PX, CreepUnit.CREEP_HEIGHT_PX));

                                if (rect.Contains(args.Position))
                                {
                                    CreepBox.ChangeUnit(Unit);
                                }

                            }
                        }
                    }

                }
                else if (TopLevelContainer.Contains(WaveBox))
                {
                    Garbage.Add(WaveBox);
                }
                //Removed
                /*else if (GameRectangle.Contains(args.Position) && GameObj.State == GameState.NoAttack && TopLevelContainer.Count == 0 && SelectedTile.SameCoord(GetCoordFromPoint(args.Position)))
                {
                    if (GameObj.PlayerUnits.ContainsCoord(SelectedTile) && GameObj.PlayerUnits.GetUnitAt(SelectedTile).Class != UnitClasses.None)
                    {
                        PlayerUnitMenu m = new PlayerUnitMenu(GameObj, SelectedTile, Garbage);
                        m.X += GameStartP.X;
                        m.Y += GameStartP.Y;
                        TopLevelContainer.Add(m);
                        m.SetEvents();
                    }
                    else if (GameObj.map.Tiles[SelectedTile.Row][SelectedTile.Column].Type == TileType.Normal)
                    {
                        EmptyTileMenu m = new EmptyTileMenu(GameObj, SelectedTile, TopLevelContainer, Garbage);
                        m.X += GameStartP.X;
                        m.Y += GameStartP.Y;
                        TopLevelContainer.Add(m);
                        m.SetEvents();
                    }
                }*/
            }
        }
示例#4
0
        static void Main(string[] args)
        {
            MidiIndex midis = MidiIndex.LoadMidiIndex("../../../../assets/Midi/Music.xml");
            try
            {
                List<Music> musiclist = midis.LoadMidiList();
                MusicPlayer.EnableMusicFinishedCallback();
                musiclist[0].Play();
            }
            catch (SdlException ex)
            {
                Console.WriteLine(ex.StackTrace);
            }

            //player.NextSong();

            Video.WindowCaption = "Tower Defense";
            Video.WindowIcon(new Icon("../../../../assets/Icon/TDMain.ico"));
            //Surface Screen = Video.SetVideoMode(900,700,false,false,false,true);
            Surface Screen = Video.SetVideoMode(900, 700, true);
            /*GameWindow win = new GameWindow(Screen);
            win.SetEvents();*/
            MainMenuWindow win = new MainMenuWindow(Screen);
            win.SetEvents();
            Events.Run();

            /*XmlEnemyList list = XmlEnemyList.LoadList("GameData/map3creep.xml");

            foreach (XmlCreepWave wave in list.Wave)
            {
                wave.GfxName = "creep1";
            }

            XmlEnemyList.SaveList(list, "GameData/map3creep.xml");*/

            /*CreepTextureIndex index = new CreepTextureIndex();

            CreepTextureEntry entry = new CreepTextureEntry();

            entry.Name = "creep1";

            entry.FrameUp.Add("creep1/Up0.png");
            entry.FrameUp.Add("creep1/Up1.png");
            entry.FrameUp.Add("creep1/Up2.png");
            entry.FrameUp.Add("creep1/Up3.png");

            entry.FrameDown.Add("creep1/Down0.png");
            entry.FrameDown.Add("creep1/Down1.png");
            entry.FrameDown.Add("creep1/Down2.png");
            entry.FrameDown.Add("creep1/Down3.png");

            entry.FrameLeft.Add("creep1/Left0.png");
            entry.FrameLeft.Add("creep1/Left1.png");
            entry.FrameLeft.Add("creep1/Left2.png");
            entry.FrameLeft.Add("creep1/Left3.png");

            entry.FrameRight.Add("creep1/Right0.png");
            entry.FrameRight.Add("creep1/Right1.png");
            entry.FrameRight.Add("creep1/Right2.png");
            entry.FrameRight.Add("creep1/Right3.png");

            index.Index.Add(entry);

            entry = new CreepTextureEntry();

            entry.Name = "creep2";

            entry.FrameUp.Add("creep2/Up0.png");
            entry.FrameUp.Add("creep2/Up1.png");
            entry.FrameUp.Add("creep2/Up2.png");
            entry.FrameUp.Add("creep2/Up3.png");

            entry.FrameDown.Add("creep2/Down0.png");
            entry.FrameDown.Add("creep2/Down1.png");
            entry.FrameDown.Add("creep2/Down2.png");
            entry.FrameDown.Add("creep2/Down3.png");

            entry.FrameLeft.Add("creep2/Left0.png");
            entry.FrameLeft.Add("creep2/Left1.png");
            entry.FrameLeft.Add("creep2/Left2.png");
            entry.FrameLeft.Add("creep2/Left3.png");

            entry.FrameRight.Add("creep2/Right0.png");
            entry.FrameRight.Add("creep2/Right1.png");
            entry.FrameRight.Add("creep2/Right2.png");
            entry.FrameRight.Add("creep2/Right3.png");

            index.Index.Add(entry);

            CreepTextureIndex.SaveIndex(index, "text.xml");*/

            /*
            Map m = Map.LoadMap("Maps/firstmap.xml");
            m.CreepListFile = "CreepList1.xml";
            Map.SaveMap(m, "Maps/firstmap.xml");*/

            /*CreepUnit unit;

            XmlEnemyList eList = new XmlEnemyList();

            unit = new CreepUnit("1", 150, 1);
            unit.Level = 1;
            unit.Tips = "No Tips";
            eList.Wave.Add(new XmlCreepWave(unit, 5));

            unit = new CreepUnit("2", 200, 1);
            unit.Level = 1;
            unit.Tips = "No Tips";
            eList.Wave.Add(new XmlCreepWave(unit, 5));

            unit = new CreepUnit("3", 275, 1);
            unit.Level = 1;
            unit.Tips = "No Tips";
            eList.Wave.Add(new XmlCreepWave(unit, 5));

            unit = new CreepUnit("4", 350, 1);
            unit.Level = 1;
            unit.Tips = "No Tips";
            eList.Wave.Add(new XmlCreepWave(unit, 5));

            unit = new CreepUnit("5", 450, 1);
            unit.Level = 1;
            unit.Tips = "No Tips";
            eList.Wave.Add(new XmlCreepWave(unit, 5));

            XmlSerializer Xs = new XmlSerializer(typeof(XmlEnemyList));
            TextWriter writer = new StreamWriter("GameData/CreepList1.xml");

            Xs.Serialize(writer, eList);

            writer.Close();*/

            /*CreepUnit c = new CreepUnit("Oui",800,1);
            XmlEnemyList l = new XmlEnemyList();
            l.Unit = c.ToXml();
            l.Numbers = 20;

            Serializer.SaveCreep(l,"test.xml");*/

            /*Map map = Map.LoadMap("Maps/secondmap.xml");

            MapCoordList list = Pathfinder.FindCreepPath(map);

            GameObject obj = new GameObject();
            obj.CreepPath = list;
            obj.map = map;
            obj.Creeps = new CreepUnitList(new CreepUnit("Test",1000,1),25);

            for (int i = 0; i < 1200; i++ )
            {
                obj.CreepMoveTick();
                obj.CheckCreepAtEnd();
            }

            Console.WriteLine(list);*/

            /*CreepUnit Monster = new CreepUnit("Test", 1000, 1);
            int total = 0;
            Thieft sol = new Thieft();
            sol.LevelUp();
            for (int i = 0; i < 100; i++)
            {
                AttackInfo info = sol.StealGold(Monster);
                total += info.Damage;

                Console.WriteLine("asd");
            }*/

            /*Video.WindowCaption = "HUD Test";
            Video.WindowIcon();
            Surface Screen = Video.SetVideoMode(600, 600, false);

            GuiWindow win = new GuiWindow("SDL Test", 400, 400, Screen);
            BackgroundItem Background = new BackgroundItem(Color.White);
            Background.Width = win.Width;
            Background.Height = win.Height;

            win.AddGuiItem(Background);

            ButtonItem b = new ButtonItem("1", 120, 22, "Button1");
            b.X = 10;
            b.Y = 25;
            win.AddGuiItem(b);

            b = new ButtonItem("2", 120, 22, "Button2");
            b.X = 200;
            b.Y = 25;
            win.AddGuiItem(b);

            b = new ButtonItem("4", 120, 22, "Button2");
            b.X = 200;
            b.Y = 66;
            win.AddGuiItem(b);

            MenuItem mi = new MenuItem("22", "MenuItem Yeah");
            mi.X = 200;
            mi.Y = 200;
            mi.Width = 120;
            mi.Height = 22;
            win.AddGuiItem(mi);

            DialogBox box = new DialogBox("Titre", "Mon message ici !");
            box.X = 20;
            box.Y = 120;
            box.SetEvents();

            DialogBox box2 = new DialogBox("Titre", "Mon message ici !");
            box2.X = 20;
            box2.Y = 320;
            box2.SetEvents();

            TextInputDialogBox box4 = new TextInputDialogBox("Enter Map Name", "Entrez un nom");

            win.AddGuiItem(box4);

            box4.X = 10;
            box4.Y = 160;
            box4.SetEvents();

            win.AddGuiItem(box);
            win.AddGuiItem(box2);

            ContextMenu Menu = new ContextMenu("Not Implemented Yet Baby");

            TextureIndex index = new TextureIndex();

            index.Add("Normal 1", "Textures/nor1.png");

            index.Add("CreepPath 1", "Textures/cp1.png");
            index.Add("CreepPath 2", "Textures/cp2.png");
            index.Add("CreepPath 3", "Textures/cp3.png");
            index.Add("CreepPath 4", "Textures/cp4.png");
            index.Add("CreepPath 5", "Textures/cp5.png");

            index.Add("Obstacle 1", "Textures/obs1.png");
            index.Add("Obstacle 2", "Textures/obs2.png");
            index.Add("Obstacle 3", "Textures/obs3.png");

            Serializer.SaveTextureIndex(index, "Textures/MapTiles.xml");

            /*MidiIndex index = new MidiIndex();

            index.Add("IntoBattle", "Midi/into_the_battle.mid");
            index.Add("TaleOfRevenge", "Midi/tale_of_revenge.mid");
            index.Add("HeroInADream", "Midi/hero_in_a_dream.mid");
            index.Add("BattleSong", "Midi/battle_song.mid");
            index.Add("HuntingSong", "Midi/hunting_song.mid");
            index.Add("BeerBeer", "Midi/beer_beer.mid");
            index.Add("Zeromus", "Midi/ff4_zeromus.mid");

            Serializer.SaveMidiIndex(index, "Midi/Music.xml");

            //MidiDictonary midi = index.LoadMidi();

            //midi["IntoBattle"].Play();

            Menu.X = 20;
            Menu.Y = 300;

            Menu.MenuItems.Add(new MenuItem("m2", "Allo 2"));
            Menu.MenuItems.Add(new MenuItem("me", "Allo 2 rtyt"));
            Menu.MenuItems.Add(new MenuItem("mr", "Allo 2 f ff"));
            Menu.MenuItems.Add(new MenuItem("mt", "Allo 2 fff"));

            Menu.FixAttribute();

            //Test Map

            Map m = new Map("MapTestingYeah");

            m.Tiles[0][0] = new Tile("Oui", TileType.CreepStart);
            m.Tiles[0][1] = new Tile("Oui1", TileType.Normal);
            m.Tiles[0][2] = new Tile("Oui2", TileType.CreepPath);
            m.Tiles[0][3] = new Tile("Oui3", TileType.Normal);
            m.Tiles[0][4] = new Tile("Oui4", TileType.Obstacle);
            m.Tiles[0][5] = new Tile("Oui5", TileType.Normal);
            m.Tiles[11][0] = new Tile("End", TileType.CreepEnd);
            Serializer.SaveMap(m, "map.xml");

            Mage mage = new Mage();
            mage.LevelUp();

            Soldier sol = new Soldier();
            sol.LevelUp();

            win.AddGuiItem(Menu);
            Menu.SetEvents();
            win.SetEvents();*/
        }