fixed mill production boost with farms
This commit is contained in:
parent
cd1ebf968d
commit
0c6a21ba6a
@ -2,5 +2,5 @@
|
||||
|
||||
public class Mill : ProductionBuilding
|
||||
{
|
||||
protected override Enum.ResourceNodeType RessourceNodeType { get { return Enum.ResourceNodeType.BerryBush; } }
|
||||
protected override Enum.ResourceNodeType RessourceNodeType { get { return Enum.ResourceNodeType.Farm; } }
|
||||
}
|
||||
@ -1,4 +1,6 @@
|
||||
using UnityEngine;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
|
||||
public abstract class ProductionBuilding : House
|
||||
{
|
||||
@ -7,31 +9,24 @@ public abstract class ProductionBuilding : House
|
||||
[SerializeField]
|
||||
private float _multiplier;
|
||||
|
||||
private const float _pollNearbyTilesInterval = 1.0f;
|
||||
|
||||
public override float PopulationGiven => GlobalConfig.Instance.Current.populationGivenPerHouseUpgrade;
|
||||
protected abstract Enum.ResourceNodeType RessourceNodeType { get; }
|
||||
private Vector3 _position;
|
||||
private List<ResourceTile> _tilesInRange = new List<ResourceTile>();
|
||||
|
||||
public override void Start()
|
||||
{
|
||||
base.Start();
|
||||
_position = Position;
|
||||
ApplyMultiplier(_multiplier);
|
||||
|
||||
StartCoroutine(PollNearbyTiles());
|
||||
}
|
||||
|
||||
public override void LevelStart()
|
||||
{
|
||||
base.LevelStart();
|
||||
}
|
||||
|
||||
public override void LevelDestroy()
|
||||
IEnumerator PollNearbyTiles()
|
||||
{
|
||||
ApplyMultiplier(1 / _multiplier);
|
||||
base.LevelDestroy();
|
||||
}
|
||||
|
||||
private void ApplyMultiplier(float multiplier)
|
||||
{
|
||||
int x = 0;
|
||||
for (int i = -_range; i <= _range; i++)
|
||||
{
|
||||
for (int j = -_range; j <= _range; j++)
|
||||
@ -43,10 +38,28 @@ public abstract class ProductionBuilding : House
|
||||
var checkResourceType = tile.ResourceNodeType;
|
||||
if (checkResourceType != RessourceNodeType) continue;
|
||||
|
||||
tile.YieldSpeedMultiplier *= multiplier;
|
||||
x++;
|
||||
if (!_tilesInRange.Contains(tile))
|
||||
{
|
||||
_tilesInRange.Add(tile);
|
||||
}
|
||||
}
|
||||
}
|
||||
Debug.Log(x);
|
||||
ApplyMultiplier(_multiplier);
|
||||
yield return new WaitForSeconds(_pollNearbyTilesInterval);
|
||||
StartCoroutine(PollNearbyTiles());
|
||||
}
|
||||
|
||||
public override void LevelDestroy()
|
||||
{
|
||||
ApplyMultiplier(1 / _multiplier);
|
||||
base.LevelDestroy();
|
||||
}
|
||||
|
||||
private void ApplyMultiplier(float multiplier)
|
||||
{
|
||||
foreach (var tile in _tilesInRange)
|
||||
{
|
||||
tile.YieldSpeedMultiplier *= multiplier;
|
||||
}
|
||||
}
|
||||
}
|
||||
Loading…
x
Reference in New Issue
Block a user