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)); } }