Exemple #1
0
        public override void renewtoStart()
        {
#if DEBUG
            Console.WriteLine("renewtoStart for CombatVehcile");
            Console.WriteLine(this.strID);
            Console.WriteLine(StartVehicle.Name);
#endif
            Vehicle ship = StartVehicle.Copy();
            ship.IsMemory = true;
            if (ship.Owner != StartVehicle.Owner && ship.Owner != null)
            {
                ship.Owner.Dispose();                 // don't need extra empires!
            }
            ship.Owner = StartVehicle.Owner;
#if DEBUG
            Console.WriteLine(ship.Name);
#endif
            // copy over the components individually so they can take damage without affecting the starting state
            ship.Components.Clear();
#if DEBUG
            Console.WriteLine("copying components");
#endif
            foreach (var comp in (StartVehicle.Components))
            {
                var ccopy = comp.Copy();
                ship.Components.Add(ccopy);
                ccopy.Container = ship;
#if DEBUG
                Console.WriteLine(ccopy.Name);
                Console.WriteLine("Container is " + ccopy.Container);
#endif
            }
#if DEBUG
            Console.WriteLine("Done");
#endif

            WorkingVehicle = ship;
            RefreshWeapons();

            foreach (var w in Weapons)
            {
                w.nextReload = 1;
            }

            base.renewtoStart();

            SpaceVehicle start_v = (SpaceVehicle)this.StartCombatant;
            if (start_v.Design.Strategy == null)
            {
                strategy = new StragegyObject_Default();
            }
            else
            {
                strategy = start_v.Design.Strategy.Copy();
            }
#if DEBUG
            Console.WriteLine("Done");
#endif
        }
Exemple #2
0
        static void Main(string[] args)
        {
            IVehicle       newVehicle = Vehicles.GetCar();
            StartVehicle   start      = new StartVehicle(newVehicle);
            StopVehicle    stop       = new StopVehicle(newVehicle);
            BrakeVehicle   brake      = new BrakeVehicle(newVehicle);
            SpeedUpVehicle speedUp    = new SpeedUpVehicle(newVehicle);


            CarInvoker carInvoker = new CarInvoker(start);

            carInvoker.InvokeCarCommand();

            carInvoker = new CarInvoker(stop);
            carInvoker.InvokeCarCommand();

            carInvoker = new CarInvoker(brake);
            carInvoker.InvokeCarCommand();

            carInvoker = new CarInvoker(speedUp);
            carInvoker.InvokeCarCommand();

            carInvoker.InvokeCarCommand();
            carInvoker.InvokeCarCommand();
            carInvoker.InvokeCarCommand();
            carInvoker.InvokeCarCommand(); //---Notice MPH



            newVehicle = Vehicles.GetMotorcycle();

            StartVehicle      startMotorCycle   = new StartVehicle(newVehicle);
            MotorcycleInvoker motorcycleInvoker = new MotorcycleInvoker(startMotorCycle);

            motorcycleInvoker.InvokeMotorcycleCommand();
        }