示例#1
0
        static void Main(string[] args)
        {
            Vehicle BasicVehicle = new Vehicle();

            BasicVehicle.Move();
            AirVehicle Helicopter = new AirVehicle();

            Helicopter.Move();
            WaterVehicle Boat = new WaterVehicle();

            Boat.Move();
            LandVehicle Tank = new LandVehicle();

            Tank.Move();
            Weapon BasicWeapon = new Weapon();

            BasicWeapon.Shoot();
            SmallCaliberWeapon M9 = new SmallCaliberWeapon();

            M9.Shoot();
            IndirectFireWeapon M203 = new IndirectFireWeapon();

            M203.Shoot();
            DirectFireWeapon M82 = new DirectFireWeapon();

            M82.Shoot();
        }
示例#2
0
    //******************************************************************************************************************************
    //
    //      FUNCTIONS
    //
    //******************************************************************************************************************************

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////

    /// <summary>
    //  Called before Start().
    /// </summary>
    void Start()
    {
        capsuleCollider           = this.gameObject.AddComponent <CapsuleCollider>();
        capsuleCollider.radius    = healRadius;
        capsuleCollider.isTrigger = true;
        capsuleCollider.height    = healRadiusHeight;
        capsuleCollider.center    = new Vector3(0, yOffset, 0);
        _AirVehicle = GetComponent <AirVehicle>();
    }
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////

    /// <summary>
    //  Adds a WorldObject to the weighted target list
    /// </summary>
    /// <param name="target"></param>
    public override void AddPotentialTarget(WorldObject target)
    {
        // Target can ONLY be a air vehicle
        AirVehicle air = target.GetComponent <AirVehicle>();

        if (air != null)
        {
            base.AddPotentialTarget(air);
        }
    }
示例#4
0
    //******************************************************************************************************************************
    //
    //      FUNCTIONS
    //
    //******************************************************************************************************************************

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////

    /// <summary>
    //  Adds a WorldObject to the weighted target list
    /// </summary>
    /// <param name="target"></param>.
    public override void AddPotentialTarget(WorldObject target)
    {
        // The siege engine CANNOT fire at air units so never allow it to reach the target list
        AirVehicle air = target.GetComponent <AirVehicle>();

        if (air == null)
        {
            base.AddPotentialTarget(target);
        }
    }
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////

    /// <summary>
    //
    /// </summary>
    /// <param name="worldObject"></param>
    public override bool ForceChaseTarget(WorldObject objTarget, bool playerCommand = false)
    {
        // Target can ONLY be a air vehicle
        AirVehicle air = objTarget.GetComponent <AirVehicle>();

        if (air != null)
        {
            return(base.ForceChaseTarget(objTarget, playerCommand));
        }
        return(false);
    }
示例#6
0
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////

    /// <summary>
    //
    /// </summary>
    /// <param name="worldObject"></param>
    public override bool TryToChaseTarget(WorldObject objTarget)
    {
        // Target can ONLY be a air vehicle
        AirVehicle air = objTarget.GetComponent <AirVehicle>();

        if (air == null)
        {
            return(base.ForceChaseTarget(objTarget));
        }
        return(false);
    }
示例#7
0
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////

    /// <summary>
    //
    /// </summary>
    /// <param name="worldObject"></param>
    public override bool ForceChaseTarget(WorldObject objTarget, bool playerCommand = false)
    {
        // The siege engine CANNOT fire at air units so never allow it to reach the target list
        AirVehicle air = objTarget.GetComponent <AirVehicle>();

        if (air == null)
        {
            return(base.ForceChaseTarget(objTarget, playerCommand));
        }
        return(false);
    }
示例#8
0
        static void Main(string[] args)
        {
            var airplane = new AirVehicle
            {
                Wheels            = 10,
                Doors             = 9,
                PassengerCapacity = 50,
                Winged            = true,
                MaxAirSpeed       = 500
            };

            var cessna = new AirVehicle
            {
                Wheels            = 3,
                Doors             = 3,
                PassengerCapacity = 2,
                Winged            = true,
                MaxAirSpeed       = 300,
                MaxWaterSpeed     = 200
            };

            var motorcycle = new LandVehicle
            {
                Wheels            = 2,
                PassengerCapacity = 2,
                MaxLandSpeed      = 150,
            };

            var bus = new LandVehicle
            {
                Wheels            = 6,
                Doors             = 4,
                PassengerCapacity = 50,
                MaxLandSpeed      = 80,
                TransmissionType  = "automatic",
            };

            var jetski = new WaterVehicle
            {
                PassengerCapacity = 2,
                MaxWaterSpeed     = 60,
            };

            var yacht = new WaterVehicle
            {
                Doors             = 25,
                PassengerCapacity = 100,
                TransmissionType  = "manual",
                MaxWaterSpeed     = 100,
                EngineVolume      = 50
            };


            // Build a collection of all vehicles that operate on water
            var airVehicles = new List <AirVehicle>();

            airVehicles.Add(airplane);
            airVehicles.Add(cessna);

            // Build a collection of all vehicles that operate on roads
            var landVehicles = new List <LandVehicle>();

            landVehicles.Add(motorcycle);
            landVehicles.Add(bus);

            // Build a collection of all vehicles that fly
            var waterVehicles = new List <WaterVehicle>();

            waterVehicles.Add(jetski);
            waterVehicles.Add(yacht);

            // With a single `foreach`, have each water vehicle Drive()
            foreach (var waterThing in waterVehicles)
            {
                waterThing.Start();
                waterThing.Drive();
            }


            // With a single `foreach`, have each vehicle Fly()
            foreach (var airThing in airVehicles)
            {
                airThing.Start();
                airThing.Fly();
            }


            // With a single `foreach`, have each road vehicle Drive()
            foreach (var landThing in landVehicles)
            {
                landThing.Start();
                landThing.Drive();
            }
            Console.ReadLine();
        }
示例#9
0
 public ulong RegisterVehicle(AirVehicle vehicle)
 {
     return(base.RegisterVehicle(vehicle));
 }
示例#10
0
        static void Main(string[] args)
        {
            var jumbojet = new AirVehicle
            {
                Name              = "747",
                Wheels            = 3,
                Doors             = 4,
                PassengerCapacity = 200,
                Winged            = true,
                MaxAirSpeed       = 300
            };

            var airforceone = new AirVehicle
            {
                Name              = "Air Force One",
                Wheels            = 3,
                Doors             = 4,
                PassengerCapacity = 20,
                Winged            = true,
                MaxAirSpeed       = 400
            };

            var ferrari = new LandVehicle
            {
                Name              = "Ferrari",
                Wheels            = 4,
                Doors             = 2,
                PassengerCapacity = 2,
                TransmissionType  = "Manual",
                MaxLandSpeed      = 120
            };

            var minivan = new LandVehicle
            {
                Name              = "Mini Van",
                Wheels            = 4,
                Doors             = 4,
                PassengerCapacity = 7,
                TransmissionType  = "Auotmatic",
                MaxLandSpeed      = 50
            };

            var jetski = new WaterVehicle
            {
                Name = "Jetski",
                PassengerCapacity = 2,
                MaxWaterSpeed     = 60.2
            };

            var speedboat = new WaterVehicle
            {
                Name = "Speedboat",
                PassengerCapacity = 6,
                MaxWaterSpeed     = 86.3
            };

            // Build a collection of all vehicles that fly

            var flyingthings = new List <AirVehicle>();

            flyingthings.Add(jumbojet);
            flyingthings.Add(airforceone);

            // With a single `foreach`, have each vehicle Fly()

            foreach (var aircraft in flyingthings)
            {
                aircraft.Fly();
            }

            // Build a collection of all vehicles that operate on roads

            var landvehicles = new List <LandVehicle>();

            landvehicles.Add(ferrari);
            landvehicles.Add(minivan);

            // With a single `foreach`, have each road vehicle Drive()

            foreach (var car in landvehicles)
            {
                car.Drive();
            }

            // Build a collection of all vehicles that operate on water

            var watervehicles = new List <WaterVehicle>();

            watervehicles.Add(jetski);
            watervehicles.Add(speedboat);

            // With a single `foreach`, have each water vehicle Drive()

            foreach (var vehicle in watervehicles)
            {
                vehicle.Drive();
            }

            Console.ReadLine();
        }