public static ItemClass mushroomSporeToItemClass(MushroomSporeCode msc)
        {
            List<ItemClass> choices = new List<ItemClass>();
            switch(msc)
            {
                case MushroomSporeCode.DEATH_CAP:
                return ItemClass.DEATH_CAP;

                case MushroomSporeCode.PUFFBALL:
                return ItemClass.PUFFBALL;

                case MushroomSporeCode.FLY_AGARIC:
                return ItemClass.FLY_AGARIC;

                case MushroomSporeCode.MOREL:
                return ItemClass.MOREL;

                case MushroomSporeCode.BUTTON_MUSHROOM:
                return ItemClass.BUTTON_MUSHROOM;

                case MushroomSporeCode.GHOST_FUNGUS:
                return ItemClass.GHOST_FUNGUS;

                case MushroomSporeCode.POISON:
                choices.Add(ItemClass.DEATH_CAP);
                choices.Add(ItemClass.FLY_AGARIC);
                choices.Add(ItemClass.GHOST_FUNGUS);
                return choices[RandomNumber.RandomInteger(choices.Count)];

                case MushroomSporeCode.EDIBLE:
                default:
                choices.Add(ItemClass.PUFFBALL);
                choices.Add(ItemClass.MOREL);
                choices.Add(ItemClass.BUTTON_MUSHROOM);
                return choices[RandomNumber.RandomInteger(choices.Count)];
            }
        }
        public void spreadSpore(int x, int y, MushroomSporeCode msc)
        {
            Region region = quinoa.getCurrentRegionHeader().getRegion();
            List<Terrain> terrains = new List<Terrain>();
            if(y > 0 && TerrainManager.growable(region.getTerrain(x, y - 1), x, y-1, quinoa.getLightMap(), TerrainParameter.HAS_MUSHROOM_SPORES))
            {
                terrains.Add(region.getTerrain(x, y - 1));
            }

            if(y < region.getHeight()-1 && TerrainManager.growable(region.getTerrain(x, y + 1), x, y+1, quinoa.getLightMap(), TerrainParameter.HAS_MUSHROOM_SPORES))
            {
                terrains.Add(region.getTerrain(x, y + 1));
            }

            if(x > 0 && TerrainManager.growable(region.getTerrain(x - 1, y), x - 1, y, quinoa.getLightMap(), TerrainParameter.HAS_MUSHROOM_SPORES))
            {
                terrains.Add(region.getTerrain(x - 1, y));
            }

            if(x < region.getWidth()-1 && TerrainManager.growable(region.getTerrain(x + 1, y), x + 1, y, quinoa.getLightMap(), TerrainParameter.HAS_MUSHROOM_SPORES))
            {
                terrains.Add(region.getTerrain(x + 1, y));
            }

            if(terrains.Count > 0)
            {
                Terrain targetTerrain = terrains[((int)(RandomNumber.RandomDouble() * terrains.Count))];
                targetTerrain.getParameters().Add(TerrainParameter.HAS_MUSHROOM_SPORES, EnumUtil.EnumName<MushroomSporeCode>(msc));
            }
        }