//private float timeToCheckCollision; void Start() { directions = new Vector3[4]; directions[0] = Vector3.up; directions[1] = Vector3.down; directions[2] = Vector3.left; directions[3] = Vector3.right; //rngTime = new IntRange(1, 2); //rngDir = new IntRange(0, 4); //rngChangeState = new IntRange(0, 2); manager = transform.parent.GetComponent <Wolf_Statemanager>(); roamingTime = 0; //if (rngTime != null) // timeToStopRoaming = rngTime.Random; //if (rngDir != null) // whichDir = rngDir.Random; //if(rngChangeState != null) // toChangeState = rngChangeState.Random; damageTimer = 0; manager.changeAnim(whichDir); if (thePlayer == null) { thePlayer = GameObject.FindGameObjectWithTag("Player"); } manager.healthBeforeDamaged = health.max_health; }
// public CircleCollider2D circleCollider; // Use this for initialization void Start() { if (thePlayer == null) { thePlayer = GameObject.FindGameObjectWithTag("Player"); } manager = transform.parent.GetComponent <Wolf_Statemanager>(); damageTimer = 1; }
//float timeToCheckCollision; // Use this for initialization void Start() { initOnUpdate = false; hasReached = false; astar.setSeeker(monsterTransform); manager = transform.parent.GetComponent <Wolf_Statemanager>(); timeToCheckCollision = 0.0f; timeBeforeChangeState = 0.0f; if (thePlayer == null) { thePlayer = GameObject.FindGameObjectWithTag("Player"); } }
void Start() { timeAwayToRoam = 0; if (rng == null) { rng = new IntRange(1, 5); } if (rng != null) { timeToRoam = rng.Random; } //rng = new IntRange(1, 5); //if(rng ) //timeToRoam = rng.Random; manager = transform.parent.GetComponent <Wolf_Statemanager>(); //Debug.Log(timeToRoam.ToString()); }
public override void UpdateState() { if (directions == null) { directions = new Vector3[4]; directions[0] = Vector3.up; directions[1] = Vector3.down; directions[2] = Vector3.left; directions[3] = Vector3.right; } if (manager == null) { manager = transform.parent.GetComponent <Wolf_Statemanager>(); } if (thePlayer == null) { thePlayer = GameObject.FindGameObjectWithTag("Player"); } if (rngTime == null) { rngTime = new IntRange(1, 3); timeToStopRoaming = rngTime.Random; } if (rngDir == null) { rngDir = new IntRange(0, 4); whichDir = rngDir.Random; } if (rngChangeState == null) { rngChangeState = new IntRange(0, 2); toChangeState = rngChangeState.Random; } roamingTime += Time.deltaTime; damageTimer += Time.deltaTime; timeToCheckCollision += Time.deltaTime; //Vector3 tempToCheckCollision = transform.TransformDirection(directions[whichDir]); Vector3 tempToCheckCollision = (directions[whichDir]); tempToCheckCollision *= monsterInfo.speed * Time.deltaTime; monsterRigidbody2D.velocity = tempToCheckCollision; if (monsterInfo.speed == monsterInfo.maxSpeed) { manager.changeAnim(whichDir); } else { manager.changeAnim(whichDir + 4); } //Debug.Log(whichDir.ToString()); //if (timeToCheckCollision > 1)//check and do damage every one second //{ // if (checkForCollision()) // { // timeToCheckCollision = 0; // } //} //if (!Physics.Raycast(monsterTransform.position, tempToCheckCollision, monsterSprite.bounds.size.x)) //{ // monsterRigidbody2D.velocity = tempToCheckCollision; // //monsterTransform.position += tempToCheckCollision; //} if (roamingTime > timeToStopRoaming && toChangeState == 0) { whichDir = rngDir.Random; roamingTime = 0;//reset the time timeToStopRoaming = rngTime.Random; toChangeState = rngChangeState.Random; monsterRigidbody2D.velocity = Vector3.zero; //manager.changeAnim(whichDir); manager.changeState("search");//change state } else if (roamingTime > timeToStopRoaming && toChangeState == 1) { whichDir = rngDir.Random; roamingTime = 0;//reset the time timeToStopRoaming = rngTime.Random; toChangeState = rngChangeState.Random; monsterRigidbody2D.velocity = Vector3.zero; manager.changeAnim(whichDir); } if (health.m_health != manager.healthBeforeDamaged) { manager.healthBeforeDamaged = health.m_health; whichDir = rngDir.Random; roamingTime = 0;//reset the time timeToStopRoaming = rngTime.Random; toChangeState = rngChangeState.Random; monsterRigidbody2D.velocity = Vector3.zero; //manager.changeAnim(whichDir); manager.changeState("growl");//change state } if (health.m_health / health.max_health <= 0.2f && checkForPlayerInRange(thePlayer.transform.position, 3)) { monsterRigidbody2D.velocity = Vector3.zero; manager.changeState("escape");//change state } //check if the player is in the range else if (checkForPlayerInRange(thePlayer.transform.position, 3)) { monsterRigidbody2D.velocity = Vector3.zero; manager.changeState("follow");//change state } //When Health < 0, change to dead state else if (health.m_health <= 0) { monsterRigidbody2D.velocity = Vector3.zero; manager.changeState("dead");//change state } }