Added Yield production
This commit is contained in:
parent
bb144275d5
commit
4acb02fb33
@ -11,7 +11,7 @@ GameObject:
|
||||
- component: {fileID: 7635908653065262707}
|
||||
- component: {fileID: 4893380182456950857}
|
||||
- component: {fileID: 5051996996752872273}
|
||||
- component: {fileID: 3252807573666191813}
|
||||
- component: {fileID: -1239601138929197919}
|
||||
m_Layer: 0
|
||||
m_Name: CorruptedFactory
|
||||
m_TagString: Ally
|
||||
@ -84,7 +84,7 @@ Rigidbody2D:
|
||||
m_SleepingMode: 1
|
||||
m_CollisionDetection: 0
|
||||
m_Constraints: 4
|
||||
--- !u!114 &3252807573666191813
|
||||
--- !u!114 &-1239601138929197919
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
@ -93,18 +93,25 @@ MonoBehaviour:
|
||||
m_GameObject: {fileID: 1038659306882990064}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 1edffd18a1fa37246afd15d5dc6a18f0, type: 3}
|
||||
m_Script: {fileID: 11500000, guid: f02fef000728c82449ae7993a564e37c, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
_lifeBar: {fileID: 4795252161776368380}
|
||||
_hp: 0
|
||||
_speed: 0
|
||||
_attack_damage: 0
|
||||
_attack_interval: 0
|
||||
_attack_damage: 2
|
||||
_attack_interval: 2
|
||||
_enemy: {fileID: 0}
|
||||
rangeOutline: {fileID: 4877144423808268021}
|
||||
_range: 1
|
||||
_multiplier: 10
|
||||
rangeOutline: {fileID: 0}
|
||||
_range: 0
|
||||
_multiplier: 0
|
||||
_yieldPrefabs:
|
||||
- {fileID: 6962989255644195630, guid: a2dc5d9672c10074fa9c35c12f6339c1, type: 3}
|
||||
- {fileID: 6962989255644195630, guid: 484f0eca1c74ae34694692de56a36739, type: 3}
|
||||
- {fileID: 6962989255644195630, guid: f20569b5452c2b341a95d656b7534b7e, type: 3}
|
||||
_randomPositionConfig: 0.5
|
||||
_harvestDuration: 5
|
||||
_yieldAmountPerResource: 5
|
||||
--- !u!1 &5799165302180276253
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
@ -176,7 +183,7 @@ MonoBehaviour:
|
||||
m_Script: {fileID: 11500000, guid: 531d7966d86bd0c4d83baf58bcb56cd5, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
_entityLinked: {fileID: 3252807573666191813}
|
||||
_entityLinked: {fileID: 0}
|
||||
--- !u!1 &6453988705367329854
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
|
||||
@ -1,7 +1,61 @@
|
||||
using UnityEngine;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
|
||||
public class CorruptedFactory : ProductionBuilding
|
||||
{
|
||||
//TODO: Si ceci détermine la resource produite, modifier pour que ce soit un tableau des trois différent types de resources.
|
||||
protected override Enum.ResourceNodeType[] RessourceNodeType { get { return new Enum.ResourceNodeType [] { Enum.ResourceNodeType.Forest, Enum.ResourceNodeType.Rock, Enum.ResourceNodeType.BerryBush}; } }
|
||||
protected override Enum.ResourceNodeType[] RessourceNodeType { get { return new Enum.ResourceNodeType [] { Enum.ResourceNodeType.Forest, Enum.ResourceNodeType.Rock, Enum.ResourceNodeType.BerryBush, Enum.ResourceNodeType.Farm}; } }
|
||||
|
||||
/**
|
||||
* Yield Production
|
||||
*/
|
||||
[SerializeField]
|
||||
private List<GameObject> _yieldPrefabs = new List<GameObject>(3);
|
||||
[SerializeField]
|
||||
[Range(0.0f, 5.0f)]
|
||||
private float _randomPositionConfig = 0.5f;
|
||||
[SerializeField]
|
||||
private float _harvestDuration = 5.0f;
|
||||
|
||||
[SerializeField]
|
||||
private int _yieldAmountPerResource = 1;
|
||||
private float _yieldCounter = 0;
|
||||
|
||||
private float _yieldSpeedMultiplier = 1.0f;
|
||||
|
||||
public override void LevelStart()
|
||||
{
|
||||
base.LevelStart();
|
||||
ResetYieldDuration();
|
||||
}
|
||||
public override void Update()
|
||||
{
|
||||
base.Update();
|
||||
_yieldCounter -= Time.deltaTime;
|
||||
if (_yieldCounter > 0) return;
|
||||
|
||||
ResetYieldDuration();
|
||||
|
||||
if (_yieldPrefabs.Count > 0)
|
||||
{
|
||||
for (int i = 0; i < _yieldPrefabs.Count; i++)
|
||||
{
|
||||
for (int j = 0; j < _yieldAmountPerResource; j++)
|
||||
{
|
||||
YieldResource(_yieldPrefabs[i]);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
private void YieldResource(GameObject yield)
|
||||
{
|
||||
float rangeConfig = 0.5f + _randomPositionConfig;
|
||||
Vector3 yieldPosition = new Vector3(Position.x + Random.Range(-rangeConfig, rangeConfig), Position.y, Position.z);
|
||||
var yielded = Instantiate(yield, yieldPosition, Quaternion.identity);
|
||||
yielded.transform.SetParent(LevelManager.Instance.LevelTransform);
|
||||
}
|
||||
private void ResetYieldDuration()
|
||||
{
|
||||
_yieldCounter = _harvestDuration / _yieldSpeedMultiplier;
|
||||
}
|
||||
}
|
||||
Loading…
x
Reference in New Issue
Block a user