Beispiel #1
0
 private void DoCurrentThing(CurrentDecor currentThing, Level lvl)
 {
     switch (lvl.Things[currentThing.LayerIndex][currentThing.TileIndex].Kind)
     {
     case Toolbox.EntityType.Resource:
         if (lvl.Things[currentThing.LayerIndex][currentThing.TileIndex].GetType() == typeof(Tree))
         {
             ((GameMapScreen)ToT.screenManager.Screens[Toolbox.ScreenType.GameMap]).GameMap.player.Resources[Toolbox.ResourceType.Wood]++;
             ((Tree)lvl.Things[currentThing.LayerIndex][currentThing.TileIndex]).ResourceQty--;
             if (((Tree)lvl.Things[currentThing.LayerIndex][currentThing.TileIndex]).ResourceQty <= 0)
             {
                 lvl.Things[currentThing.LayerIndex].Remove(currentThing.TileIndex);
             }
         }
         else if (lvl.Things[currentThing.LayerIndex][currentThing.TileIndex].GetType() == typeof(Rock))
         {
             ((GameMapScreen)ToT.screenManager.Screens[Toolbox.ScreenType.GameMap]).GameMap.player.Resources[Toolbox.ResourceType.Rock]++;
             ((Rock)lvl.Things[currentThing.LayerIndex][currentThing.TileIndex]).ResourceQty--;
             if (((Rock)lvl.Things[currentThing.LayerIndex][currentThing.TileIndex]).ResourceQty <= 0)
             {
                 lvl.Things[currentThing.LayerIndex].Remove(currentThing.TileIndex);
             }
         }
         else if (lvl.Things[currentThing.LayerIndex][currentThing.TileIndex].GetType() == typeof(Crystal))
         {
             ((GameMapScreen)ToT.screenManager.Screens[Toolbox.ScreenType.GameMap]).GameMap.player.Resources[Toolbox.ResourceType.Crystal]++;
             ((Crystal)lvl.Things[currentThing.LayerIndex][currentThing.TileIndex]).ResourceQty--;
             if (((Crystal)lvl.Things[currentThing.LayerIndex][currentThing.TileIndex]).ResourceQty <= 0)
             {
                 lvl.Things[currentThing.LayerIndex].Remove(currentThing.TileIndex);
             }
         }
         break;
     }
 }
Beispiel #2
0
 private void UpdateHover(Rectangle mouseRect, Level level)
 {
     CurrentThing = null;
     foreach (KeyValuePair <int, Dictionary <Vector2, Thing> > tTs in level.Things)
     {
         foreach (KeyValuePair <Vector2, Thing> tT in tTs.Value)
         {
             if (mouseRect.Intersects(tT.Value.Anime.LevelRectangle(tT.Key, ToT.Settings.LevelTileSize)))
             {
                 tT.Value.IsHover = true;
                 CurrentThing     = new CurrentDecor()
                 {
                     LayerIndex = tTs.Key, TileIndex = tT.Key
                 };
             }
             else
             {
                 tT.Value.IsHover = false;
             }
         }
     }
 }