public void updateWeedStateInTile(int i, int j, TypeWeed weed) { uint row = chunkTilesPos [i] [j].First; uint col = chunkTilesPos [i] [j].Second; riceTerrains [row, col].changeWeedState(weed); }
public Weed(RiceTerrainTile theParent) { type = TypeWeed.NONE; instance = null; day = 1; PenalizationDay = 0; _parent = theParent; }
public void delete() { type = TypeWeed.NONE; if (instance != null) { GameObject.Destroy(instance); instance = null; } day = 1; PenalizationDay = 0; }
public void changeWeedState(TypeWeed weed) { _weed.type = weed; WorldTerrain worldTerrain = WorldTerrain.GetInstance(); Vector3 worldPosition = worldTerrain.getTileWorldPosition((uint)this.getRow(), (uint)this.getCol()); worldPosition.z = WorldTerrain.PLANTS_Z_LAYER; if (_weed.instance != null) { GameObject.Destroy(_weed.instance); } Debug.Assert(_weed != null); Debug.Assert(_resourcesWeed.ContainsKey(weed)); worldPosition += _resourcesWeed [weed].transform.position; _weed.instance = (GameObject)GameObject.Instantiate(_resourcesWeed[weed], worldPosition, Quaternion.identity); if (!Tutorial_Plagas.init && !isDisabled()) { _tutMan.startTuto(new Tutorial_Plagas()); } }
public void produceWeeds() { //return; foreach (int i in _currentWeed.Keys) { // --- PRODUCE NEW WEED ---- // if (ActionManager.GetInstance().isActionInProgressInAChunk(i)) { continue; } //--GROW WEED --// foreach (int tile in _currentWeed[i]) { _parent.growWeedOnTile(i, tile); } if (_currentWeed[i].Count < _tilesPerChunk) { float randomNumber = UnityEngine.Random.value; float probability = WEED_PROBABILITY_CHUNK; if (_parent.hasChunkAppliedHerbicide(i)) { probability *= WEED_HERBICIDE_MODIFIER; } if (_parent.hasChunkAppliedFangueig(i)) { probability *= WEED_FANGUEJAR_MODIFIER; } probability *= (1 - ((float)InvestigationManager.GetInstance().getBadWeedDecreaseBonus() / 100.0f)); if (randomNumber <= probability) { uint randomTile = (uint)((UnityEngine.Random.value) * (float)(_tilesPerChunk)); while (_currentWeed[i].Contains(randomTile)) { randomTile = (uint)((UnityEngine.Random.value) * (float)(_tilesPerChunk)); foreach (uint tile in _currentWeed[i]) { Debug.Log("tiles::" + tile); } } int randomWeed = (int)((UnityEngine.Random.value) * (float)(TYPES_OF_WEED - 1)); TypeWeed weed = TypeWeed.NONE; switch (randomWeed) { case 0: weed = TypeWeed.WILD_RICE_PHASE_1; break; case 1: weed = TypeWeed.CIPERACEA; break; } _parent.updateWeedStateInTile(i, (int)randomTile, weed); _currentWeed[i].Add(randomTile); } } // --- EXPAND WEED ---- // if (_currentWeed[i].Count < _tilesPerChunk) { float randomNumber = UnityEngine.Random.value; float probability = WEED_PROBABILITY_EXPANSION; if (_parent.hasChunkAppliedHerbicide(i)) { probability *= WEED_HERBICIDE_MODIFIER; } if (_parent.hasChunkAppliedFangueig(i)) { probability *= WEED_FANGUEJAR_MODIFIER; } probability *= (1 - ((float)InvestigationManager.GetInstance().getBadWeedDecreaseBonus() / 100.0f)); if (randomNumber <= probability) { uint randomTile = (uint)((UnityEngine.Random.value) * (float)(_tilesPerChunk)); while (_currentWeed[i].Contains(randomTile)) { randomTile = (uint)((UnityEngine.Random.value) * (float)(_tilesPerChunk)); } int randomWeed = (int)((UnityEngine.Random.value) * (float)(TYPES_OF_WEED - 1)); TypeWeed weed = TypeWeed.NONE; switch (randomWeed) { case 0: weed = TypeWeed.WILD_RICE_PHASE_1; break; case 1: weed = TypeWeed.CIPERACEA; break; } _parent.updateWeedStateInTile(i, (int)randomTile, weed); _currentWeed[i].Add(randomTile); } } } }
public WeedData(TypeWeed type, int day, int penalizationDay) { Type = type; Day = day; PenalizationDay = penalizationDay; }
//this one is for loading public void changeWeedState(TypeWeed weed, int day, int penalizationDay) { _weed.day = day; _weed.PenalizationDay = penalizationDay; changeWeedState(weed); }