public void PickUp(Customer customer)
 {
     fareResponse       = null;
     fare               = customer.fare;
     lastPickupTime     = Time.time;
     lastPosition       = transform.position;
     lastPickupPosition = lastPosition;
     pathDistance       = 0;
 }
Example #2
0
    public FareResponse GetResponse(float directDistance, float journeyTime, float price)
    {
        FareResponse response = new FareResponse();
        float        speed    = FareTools.getSpeedMph(directDistance, journeyTime);

        if (speed >= ReasonableSpeed)
        {
            response.Payment = price * FastRideMultiple;
            response.verbal  = "Thanks a bunch!";
        }
        else
        {
            response.Payment = price * SlowRideMultiple;
            response.verbal  = "Thanks.";
        }
        return(response);
    }
    public void DropOff()
    {
        float price          = pathDistance * pricePerMile;
        float journeyTime    = Time.time - lastPickupTime;
        float directDistance = Vector3.Distance(transform.position, lastPickupPosition);

        pathDistance += Vector3.Distance(transform.position, lastPosition);
        fareResponse  = fare.GetResponse(directDistance, journeyTime, price);
        money        += fareResponse.Payment;
        fare          = null;
        // Printing to console - this is visible when running in Unity
        //          print ("directDistance: " + directDistance + "miles\n" +
        //              "pathDistance: " + pathDistance + "miles\n" +
        //              "journeyTime: " + journeyTime + "hrs\n" +
        //              "average speed direct: " + FareTools.getSpeedMph (directDistance, journeyTime) + "mph\n" +
        //              "average speed path: " + FareTools.getSpeedMph (pathDistance, journeyTime) + "mph\n" +
        //              "price: $" + price + "\n" +
        //              "fareResponse.Payment: $" + fareResponse.Payment + "\n" +
        //              "fareResponse.Verbal: \"" + fareResponse.Verbal + "\"");
    }
Example #4
0
    public FareResponse GetResponse(float directDistance, float journeyTime, float price)
    {
        FareResponse response = new FareResponse();
        float        speed    = FareTools.getSpeedMph(directDistance, journeyTime);

        if (speed >= ReasonableSpeed)
        {
            response.Payment = price * speed / ReasonableSpeed;
            response.verbal  = "Keep the change!";
        }
        else if (speed >= 0.5f * ReasonableSpeed)
        {
            response.Payment = price;
            response.verbal  = "That was adequate.";
        }
        else
        {
            response.Payment = 0.5f * price;
            response.verbal  = "Forget it! You're lucky I'm paying you at all!";
        }
        return(response);
    }