fixed mill production boost with farms
This commit is contained in:
parent
cd1ebf968d
commit
0c6a21ba6a
@ -2,5 +2,5 @@
|
|||||||
|
|
||||||
public class Mill : ProductionBuilding
|
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
|
public abstract class ProductionBuilding : House
|
||||||
{
|
{
|
||||||
@ -7,31 +9,24 @@ public abstract class ProductionBuilding : House
|
|||||||
[SerializeField]
|
[SerializeField]
|
||||||
private float _multiplier;
|
private float _multiplier;
|
||||||
|
|
||||||
|
private const float _pollNearbyTilesInterval = 1.0f;
|
||||||
|
|
||||||
public override float PopulationGiven => GlobalConfig.Instance.Current.populationGivenPerHouseUpgrade;
|
public override float PopulationGiven => GlobalConfig.Instance.Current.populationGivenPerHouseUpgrade;
|
||||||
protected abstract Enum.ResourceNodeType RessourceNodeType { get; }
|
protected abstract Enum.ResourceNodeType RessourceNodeType { get; }
|
||||||
private Vector3 _position;
|
private Vector3 _position;
|
||||||
|
private List<ResourceTile> _tilesInRange = new List<ResourceTile>();
|
||||||
|
|
||||||
public override void Start()
|
public override void Start()
|
||||||
{
|
{
|
||||||
base.Start();
|
base.Start();
|
||||||
_position = Position;
|
_position = Position;
|
||||||
ApplyMultiplier(_multiplier);
|
|
||||||
|
StartCoroutine(PollNearbyTiles());
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void LevelStart()
|
IEnumerator PollNearbyTiles()
|
||||||
{
|
|
||||||
base.LevelStart();
|
|
||||||
}
|
|
||||||
|
|
||||||
public override void LevelDestroy()
|
|
||||||
{
|
{
|
||||||
ApplyMultiplier(1 / _multiplier);
|
ApplyMultiplier(1 / _multiplier);
|
||||||
base.LevelDestroy();
|
|
||||||
}
|
|
||||||
|
|
||||||
private void ApplyMultiplier(float multiplier)
|
|
||||||
{
|
|
||||||
int x = 0;
|
|
||||||
for (int i = -_range; i <= _range; i++)
|
for (int i = -_range; i <= _range; i++)
|
||||||
{
|
{
|
||||||
for (int j = -_range; j <= _range; j++)
|
for (int j = -_range; j <= _range; j++)
|
||||||
@ -43,10 +38,28 @@ public abstract class ProductionBuilding : House
|
|||||||
var checkResourceType = tile.ResourceNodeType;
|
var checkResourceType = tile.ResourceNodeType;
|
||||||
if (checkResourceType != RessourceNodeType) continue;
|
if (checkResourceType != RessourceNodeType) continue;
|
||||||
|
|
||||||
tile.YieldSpeedMultiplier *= multiplier;
|
if (!_tilesInRange.Contains(tile))
|
||||||
x++;
|
{
|
||||||
|
_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