이전 포스팅에 이어 나머지 알바생을 구현해보았다. 아래는 알바생 리스트이다.
이 두마리의 알바생은 FixedUpdate()에 두지 않고 피그마는 트럭에서 딸기를 판매할 때, 루비아는 소나기가 내릴 때 적용되는 함수로 구현했다!!
이 때 ArbeitMgr에 있는 Figma()와 lluvia()를 참조하므로 필자는 Arbeit 오브젝트의 태그를 Arbeit로 설정한 뒤 태그로 오브젝트를 참조하는 방식을 사용했다.
arbeit = GameObject.FindGameObjectWithTag("Arbeit").GetComponent<ArbeitMgr>();
피그마는 고용 시 횟수를 차감해 트럭에 저장된 딸기 가치를 변경한다.
public float Pigma() // 돼지 2
{
if (DataController.instance.gameData.PTJNum[2] > 0)
{
float coEffi = Random.Range(0.7f, 1.8f);
DataController.instance.gameData.PTJNum[2]--;
Debug.Log(coEffi);
return coEffi;
}
else return 1.0f;
}
피그마는 고용 됐을 때, 0.7~1.8까지의 랜덤범위 수를 선택하고 반환하여 총 딸기 판매 가격을 결정하고, 고용이 되어있지 않다면 그대로 1.0f를 반환한다.
public void ReceiveCoinNormal()
{
...
float coEffi = arbeit.Pigma();
float totalCoin = (DataController.instance.gameData.truckCoin
+ GameManager.instance.bonusTruckCoin) * coEffi;
GameManager.instance.GetCoin((int)totalCoin);
...
}
따라서 totalCoin에 피그마가 정한 계수를 곱해준다!
루비아는 고용 시 횟수를 차감해 소나기가 내릴 시 더 딸기의 성장 속도를 더 빠르게 해준다.
public int lluvia() // 고양이 5
{
if (DataController.instance.gameData.PTJNum[5] > 0)
{
DataController.instance.gameData.PTJNum[5]--;
return 4;
}
else return 2;
}
루비아는 고용중이라면 소나기의 배속 계수를 반환해준다! 이 때 계수의 기본값은 2이고 고용중이라면 4이다.
void Raining()
{
rainPanel.gameObject.SetActive(true);
rainPanel.GetComponent<Image>().DOFade(0.3f, 0.3f);
//기존 계수에 루비아 함수 추가
mult = arbeit.lluvia();
rainTime = 0;
rainParticle.Play();
}
mult에 루비아의 반환값을 넘겨 계수를 정해준다!