Ejemplo n.º 1
0
    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;
            }
        }
    }
Ejemplo n.º 2
0
    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;
        }
    }
Ejemplo n.º 3
0
    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);
        }
    }
Ejemplo n.º 4
0
    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);
        }
    }