public virtual void Produce() { int production = CalculateProduction(); GameObject popUpObject = Instantiate(popUpPrefab, transform.position, Quaternion.identity, transform); NumberPopUp popUp = popUpObject.GetComponent <NumberPopUp>(); popUp.text.text = production.ToString(); Instantiate(Treasury.instance.collectEffectPrefab, transform.position, Quaternion.identity); Treasury.instance.AddMoney(production); }
public static NumberPopUp Create(Vector3 position, int NumberAmount, int PopUpType, GameObject parentObject) { GameObject numberPopUpTransform = Instantiate(Resources.Load("Prefabs/NumberPopUp") as GameObject); NumberPopUp numberPopUp = numberPopUpTransform.GetComponent <NumberPopUp>(); numberPopUp.setup(NumberAmount, PopUpType); numberPopUp.transform.position = position; numberPopUp.transform.SetParent(parentObject.transform); Destroy(numberPopUpTransform, 1f); return(numberPopUp); }
// ..........................................// //-------------- START OF UPDATE --------------// // ..........................................// void Update() { // set Sprite SpriteRenderer SR = gameObject.GetComponent <SpriteRenderer>(); SR.sprite = CellScriptableObject.CellSprite; // ------- set Behaviour ------- // //...............................// // ------------- Idle Cell ------------ // if (CellScriptableObject.CellID == 0) { if (transform.position != RandomPosition) { transform.position = Vector3.MoveTowards(transform.position, RandomPosition, IdleSpeed); } else { randomizePos(); } } // ---------- Red Blood Cell --------- // else if (CellScriptableObject.CellID == 1) { mlookDirection = (Target.position - transform.position).normalized; if ((transform.position - Target.position).magnitude > Epsilon) { transform.Translate(mlookDirection * MoveSpeed * Time.deltaTime); } } // ---------- White Blood Cell --------- // else if (CellScriptableObject.CellID == 2) { GameObject target = FindClosestEnemy(); //check if there are eneimes if (target != null) { //check if is inside body Enemy enemy = target.GetComponent <Enemy>(); if (enemy.IsInsideBody == true) { float step = speed * Time.deltaTime; transform.position = Vector3.MoveTowards(transform.position, target.transform.position, step); //check if is in attack range if (Vector3.Distance(transform.position, target.transform.position) < 0.2f) { speed = 0; if (isAttacking == false) { Enemy EnemyCS = target.GetComponent <Enemy>(); EnemyCS.TakeDamage(CellScriptableObject.CellID, CellScriptableObject.Damage); NumberPopUp.Create(transform.position, CellScriptableObject.Damage, 2, this.gameObject); StartCoroutine(restartAttack()); isAttacking = true; } } else { if (speed < 1) { speed += 0.01f; } } } else { if (InPatrol <= PatrolPoints.Length - 1) { transform.position = Vector3.MoveTowards(transform.position, PatrolPoints[InPatrol].position, IdleSpeed); if (Vector3.Distance(transform.position, PatrolPoints[InPatrol].position) < 0.2f) { InPatrol++; } } else { InPatrol = 0; } } } else { if (InPatrol <= PatrolPoints.Length - 1) { transform.position = Vector3.MoveTowards(transform.position, PatrolPoints[InPatrol].position, IdleSpeed); if (Vector3.Distance(transform.position, PatrolPoints[InPatrol].position) < 0.2f) { InPatrol++; } } else { InPatrol = 0; } } } //---------------- palette cell ------------- // }
//---------------------- Red blood cell functions -----------------// public void showPointsGained() { //StartCoroutine(RedBloodCellPlusOneOn()); NumberPopUp.Create(transform.position + new Vector3(0, .2f, 0), 1, 1, this.gameObject); }