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(); } } }
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(); } }
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(); } }*/ } }
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();*/ }