Esempio n. 1
0
        private void DiveClick(object sender, EventArgs e)
        {
            IDive idive = (IDive)objectComboBox.SelectedItem;

            idive.Dive(5);
            panel.GetChildAtPoint(new Point(0, 25)).Text = "Height: " + idive.getHeight();
        }
Esempio n. 2
0
        private void selectedList_SelectedIndexChanged(object sender, EventArgs e)
        {
            object toy = selectedList.SelectedItem;

            speedLabel.Text    = "0";
            depthLabel.Text    = "0";
            altitudeLabel.Text = "0";

            speedTable.Enabled    = false;
            depthTable.Enabled    = false;
            altitudeTable.Enabled = false;

            if (toy is IAccelerate)
            {
                IAccelerate accelerate = toy as IAccelerate;
                speedLabel.Text    = accelerate.Speed.ToString();
                speedTable.Enabled = true;
            }

            if (toy is IDive)
            {
                IDive dive = toy as IDive;
                depthTable.Text    = dive.Submersion.ToString();
                depthTable.Enabled = true;
            }

            if (toy is IRise)
            {
                IRise rise = toy as IRise;
                altitudeTable.Text    = rise.Altitude.ToString();
                altitudeTable.Enabled = true;
            }
        }
Esempio n. 3
0
        private void depthUpButton_Click(object sender, EventArgs e)
        {
            object toy = selectedList.SelectedItem;

            IDive dive = toy as IDive;

            dive.Dive(dive.Submersion + 1);

            depthLabel.Text = dive.Submersion.ToString();
        }
Esempio n. 4
0
        private void decreaseDepth_Click(object sender, EventArgs e)
        {
            object toy = toyOwned.SelectedItem;

            IDive dive = toy as IDive;

            dive.Dive(dive.Depth - 1);

            depthValue.Text = dive.Depth.ToString();
        }
Esempio n. 5
0
 public void wyswietlGlebokosc()
 {
     foreach (Zabawki zabawka in listaZabawek)
     {
         if (zabawka is IDive)
         {
             IDive wartosc = zabawka as IDive;
             Console.WriteLine(wartosc.GetType().Name + " " + wartosc.glebokosc);
         }
     }
 }
Esempio n. 6
0
 public void zmienGlebokosc(int change)
 {
     foreach (Zabawki zabawka in listaZabawek)
     {
         if (zabawka is IDive)
         {
             IDive depth = zabawka as IDive;
             depth.Dive(change);
         }
     }
 }
Esempio n. 7
0
 public void setDive(int dive)
 {
     foreach (Zabawka z in zabawki)
     {
         IDive test = z as IDive;
         if (test != null)
         {
             test.Dive = dive;
             Console.WriteLine("Zmiana glebokosci dla zabawki: " + z.Name);
         }
     }
 }
Esempio n. 8
0
        private void toyInstanceCombo_SelectionChangeCommitted(object sender, EventArgs e)
        {
            controlsPanel.Controls.Clear();
            object toy = toyInstanceCombo.SelectedItem;

            //to wbrew mojej godności
            if (toy is IAccelerate)
            {
                IAccelerate accelerator   = toy as IAccelerate;
                Label       propertyLabel = new Label();
                propertyLabel.Text = "przyśpieszenie";
                NumericUpDown propertySpinner = new NumericUpDown();
                propertySpinner.Value         = accelerator.speed;
                propertySpinner.ValueChanged += new EventHandler(delegate(Object o, EventArgs a)
                {
                    accelerator.Accelerate(Convert.ToInt32(propertySpinner.Value));
                });
                controlsPanel.Controls.Add(propertyLabel);
                controlsPanel.Controls.Add(propertySpinner);
            }

            if (toy is IDive)
            {
                IDive diver         = toy as IDive;
                Label propertyLabel = new Label();
                propertyLabel.Text = "zanurzenie";
                NumericUpDown propertySpinner = new NumericUpDown();
                propertySpinner.Value         = diver.submersion;
                propertySpinner.ValueChanged += new EventHandler(delegate(Object o, EventArgs a)
                {
                    diver.Dive(Convert.ToInt32(propertySpinner.Value));
                });
                controlsPanel.Controls.Add(propertyLabel);
                controlsPanel.Controls.Add(propertySpinner);
            }

            if (toy is IRise)
            {
                IRise         riser           = toy as IRise;
                NumericUpDown propertySpinner = new NumericUpDown();
                Label         propertyLabel   = new Label();
                propertyLabel.Text            = "wzniesienie";
                propertySpinner.Value         = riser.altitude;
                propertySpinner.ValueChanged += new EventHandler(delegate(Object o, EventArgs a)
                {
                    riser.Rise(Convert.ToInt32(propertySpinner.Value));
                });
                controlsPanel.Controls.Add(propertyLabel);
                controlsPanel.Controls.Add(propertySpinner);
            }
        }
Esempio n. 9
0
 public void pokazZabawki()
 {
     foreach (Zabawka z in zabawki)
     {
         Console.WriteLine("Zabawka: " + z.Name);
         IAccelerate IAtest = z as IAccelerate;
         if (IAtest != null)
         {
             Console.WriteLine("Accelerate: " + IAtest.Accelerate);
         }
         IDive IDtest = z as IDive;
         if (IDtest != null)
         {
             Console.WriteLine("Dive: " + IDtest.Dive);
         }
         IRise IRtest = z as IRise;
         if (IRtest != null)
         {
             Console.WriteLine("Rise: " + IRtest.Rise);
         }
     }
 }
Esempio n. 10
0
        private void objectList_SelectedIndexChanged(object sender, EventArgs e)
        {
            label1.Text = objectComboBox.SelectedItem.GetType().Name;
            panel.Controls.Clear();
            panel2.Controls.Clear();

            Type   t            = objectComboBox.SelectedItem.GetType();
            Object selectedItem = objectComboBox.SelectedItem;

            var   interfaces  = t.GetInterfaces();
            int   x           = 0;
            int   y           = 0;
            Point labelPoint  = new Point(x, y);
            Point buttonPoint = new Point(x, y);

            bool isSpeedDisplayed = false;
            bool isHeighDisplayed = false;

            foreach (Type i in interfaces)
            {
                if (i.Equals(typeof(IAccelerate)))
                {
                    IAccelerate iAccelerate = (IAccelerate)selectedItem;

                    if (!isSpeedDisplayed)
                    {
                        CreateLabel("Speed: " + iAccelerate.getSpeed(), labelPoint);
                        isSpeedDisplayed = true;
                        labelPoint.Y    += 25;
                    }
                    Button accelerate = new Button();
                    accelerate.Click   += AccelerateClick;
                    accelerate.Text     = "Accelerate";
                    accelerate.Location = buttonPoint;
                    panel2.Controls.Add(accelerate);
                    buttonPoint.Y += 25;
                }
                else if (i.Equals(typeof(ISlowDown)))
                {
                    ISlowDown iSlowDown = (ISlowDown)selectedItem;
                    if (!isSpeedDisplayed)
                    {
                        CreateLabel("Speed: " + iSlowDown.getSpeed(), labelPoint);
                        isSpeedDisplayed = true;
                        labelPoint.Y    += 25;
                    }

                    Button slowDown = new Button();
                    slowDown.Click   += SlowDownClick;
                    slowDown.Text     = "SlowDown";
                    slowDown.Location = buttonPoint;
                    panel2.Controls.Add(slowDown);
                    buttonPoint.Y += 25;
                }
                else if (i.Equals(typeof(IRise)))
                {
                    IRise iRise = (IRise)selectedItem;
                    if (!isHeighDisplayed)
                    {
                        CreateLabel("Height: " + iRise.getHeight(), labelPoint);
                        isHeighDisplayed = true;
                        labelPoint.Y    += 25;
                    }

                    isHeighDisplayed = true;
                    Button rise = new Button();
                    rise.Click   += RiseClick;
                    rise.Text     = "Rise";
                    rise.Location = buttonPoint;
                    panel2.Controls.Add(rise);
                    buttonPoint.Y += 25;
                }
                else if (i.Equals(typeof(IDive)))
                {
                    IDive iDive = (IDive)selectedItem;
                    if (!isHeighDisplayed)
                    {
                        CreateLabel("Height: " + iDive.getHeight(), labelPoint);
                        isHeighDisplayed = true;
                        labelPoint.Y    += 25;
                    }

                    Button dive = new Button();
                    dive.Click   += DiveClick;
                    dive.Text     = "Dive";
                    dive.Location = buttonPoint;
                    panel2.Controls.Add(dive);
                    buttonPoint.Y += 25;
                }
            }
        }
Esempio n. 11
0
        public static Bug DoEnemyDive(
            List <Bug> bugs,
            AnimationService animationService,
            Ship ship,
            int speed,
            Bug bug              = null,
            bool captureship     = false,
            bool capturehappened = false,
            IDive overriddive    = null,
            bool canmorph        = false
            )

        {
            int loopcount = 0;

            while (bug == null || bug.IsMoving ||
                   bug.CaptureState == Bug.enCaptureState.Started ||
                   bug.CaptureState == Bug.enCaptureState.FlyingBackHome ||
                   bug.CaptureState == Bug.enCaptureState.RecaptureStarted ||
                   bug.MorphState == Bug.enMorphState.Started ||
                   bug.DrawPath)
            {
                bug = bugs[Utils.Rnd(0, bugs.Count - 1)];
                loopcount++;
                if (loopcount > 50)
                {
                    return(null);
                }
            }

            //if the captured ship bug is selected,
            //set the selected bug to the parent bug
            if (bug.Sprite.SpriteType == Sprite.SpriteTypes.CapturedShip)
            {
                var parentgreenbug = bugs.FirstOrDefault(a => a.CapturedBug != null);
                if (parentgreenbug != null)
                {
                    bug = parentgreenbug;
                }
            }

            //if morphing is enabled, 20% of the time morph instead of dive
            if (canmorph && Utils.Rnd(1, 100) < 20)
            {
                if ((bug.Sprite.SpriteType == Sprite.SpriteTypes.BlueBug || bug.Sprite.SpriteType == Sprite.SpriteTypes.RedBug) &&
                    !bug.IsMorphedBug)
                {
                    bug.MorphState = Bug.enMorphState.Started;
                    bug.IsDiving   = true;
                    SoundManager.PlaySound(SoundManager.SoundManagerSounds.morph);
                    return(null);
                }
            }

            IDive dive = null;

            if (bug.Sprite.SpriteType == Sprite.SpriteTypes.BlueBug || bug.IsMorphedBug)
            {
                if (Utils.Rnd(0, 10) % 2 == 0)
                {
                    dive = new BlueBugDive1();
                }
                else
                {
                    dive = new BlueBugDive2();
                }
            }
            else if (bug.Sprite.SpriteType == Sprite.SpriteTypes.RedBug)
            {
                if (Utils.Rnd(0, 10) % 2 == 0)
                {
                    dive = new RedBugDive1();
                }
                else
                {
                    dive = new RedBugDive2();
                }
            }
            else if (bug.Sprite.SpriteType == Sprite.SpriteTypes.GreenBug)
            {
                if (!captureship && !capturehappened)
                {
                    if (ship.Sprite.SpriteType != Sprite.SpriteTypes.DoubleShip &&
                        bugs.Count(a => a.Sprite.SpriteType == Sprite.SpriteTypes.GreenBug || a.Sprite.SpriteType == Sprite.SpriteTypes.GreenBug_Blue) > 1 &&
                        bugs.Count(a => a.CaptureState != Bug.enCaptureState.NotStarted) == 0)
                    {
                        captureship = true;
                    }
                }

                if (captureship)
                {
                    dive = new CaptureDive();

                    bug.RotateWhileStill = true;
                    bug.CaptureState     = Bug.enCaptureState.Started;
                }
                else
                {
                    if (bug.CapturedBug == null)
                    {
                        var childbugs = bugs.Where(a =>
                                                   (a.HomePoint == new Point(2, bug.HomePoint.Y + 1) ||
                                                    a.HomePoint == new Point(2, bug.HomePoint.Y + 2)) &&
                                                   !a.IsMoving);

                        bug.ChildBugs.AddRange(childbugs);
                        bug.ChildBugOffset = new Point(45, 35);
                    }

                    if (Utils.Rnd(0, 10) % 2 == 0)
                    {
                        dive = new GreenBugDive1();
                    }
                    else
                    {
                        dive = new GreenBugDive2();
                    }
                }
            }
            else
            {
                dive = new RedBugDive1();
            }

            animationService.Animatables.ForEach(a => a.ZIndex = 0);

            if (overriddive != null)
            {
                dive = overriddive;
            }

            var paths = dive.GetPaths(bug, ship);

            bug.SpriteBankIndex = null;
            bug.IsDiving        = true;
            bug.RotateAlongPath = true;
            bug.ZIndex          = 100;
            bug.Speed           = speed;
            bug.Paths.AddRange(paths);

            paths.ForEach(p => {
                bug.PathPoints.AddRange(animationService.ComputePathPoints(p, false));
            });

            if (bug != null && !bug.IsMorphedBug)
            {
                SoundManager.PlaySound(SoundManager.SoundManagerSounds.dive);
            }

            return(bug);
        }