public override void ChangeCycle(DayNightCycle newCycle) { if (isNocturnal) { NocturnalCycle(newCycle); } else { switch (newCycle) { case DayNightCycle.Day: shouldSmooth = true; WalkTo(farm.GetClosestWaypoint(transform.position)); fov.ContinueFOV(); break; case DayNightCycle.Afternoon: WalkTo(ocio.GetClosestWaypoint(transform.position)); fov.ContinueFOV(); shouldSmooth = false; shouldPause = true; break; case DayNightCycle.Night: WalkTo(wpHome); fov.StopFOV(); break; } } }
private void STM(iguanaState state, ref float _time) { switch (state) { case iguanaState.gathering: //WalkTo(farm.GetClosestWaypoint(transform.position)); Move(walker.MoveToDirection(shouldSmooth)); if (ProximityRange()) { WalkTo(wpWell); currentState = iguanaState.returning; } break; case iguanaState.returning: Move(walker.MoveToDirection(shouldSmooth)); if (isInWell()) { currentState = iguanaState.waiting; } break; case iguanaState.sleeping: if (!isInWell()) { Move(walker.MoveToDirection(shouldSmooth)); } else { WalkStop(); } break; case iguanaState.waiting: WalkStop(); _time += deltaTime; if (_time > waitingTime) { isFull = false; if (ShouldBeActive()) { WalkTo(farm.GetClosestWaypoint(transform.position)); currentState = iguanaState.gathering; } else { currentState = iguanaState.sleeping; } _time = 0; } break; default: break; } }
public void OnTriggerEnter(Collider other) { ArcadeCarController car = other.gameObject.GetComponent <ArcadeCarController>(); if (car) { Rigidbody rb = car.GetMotionTarget(); Waypoint closestWaypoint = waypointManager.GetClosestWaypoint(rb.position); if (closestWaypoint) { rb.position = closestWaypoint.transform.position + (spawnOffset); rb.velocity = Vector3.zero; } } else if (other.gameObject.layer == LayerMask.NameToLayer("Weapon")) { Destroy(other.gameObject); } }
public void Act_OLD(Transform player, Transform npc) { float arbitrarydisttopoint = 5f; WaypointManager manager = WaypointManager.Instance; //1. Find another random patrol point if the current point is reached if (destination == null) { waitTimer = waitconst; destination = manager.GetRandomWaypoint(manager.GetClosestWaypoint(npc.position)); tank.NavigateToPosition(destination.transform); } if (Vector3.Distance(npc.position, destination.transform.position) < arbitrarydisttopoint) //if final patrolpoint reached; { if (waitTimer > 0 && !tank.TankClasses.Contains("Normal")) { tank.ChangeLightColor(new Color(0, .6f, .6f)); Transform turret = npc.GetComponent <NPCTankController>().turret; Quaternion turretRotation = Quaternion.AngleAxis(60 * Time.deltaTime, Vector3.up); turret.rotation = turretRotation * turret.rotation; waitTimer -= Time.deltaTime; } else { waitTimer = waitconst; destination = null; //reset destination } } else { tank.ChangeLightColor(Color.blue); Quaternion turretRotation = Quaternion.LookRotation(tank.transform.forward, tank.turret.transform.up); tank.turret.rotation = Quaternion.Slerp(tank.turret.rotation, turretRotation, Time.deltaTime * curRotSpeed); } }