예제 #1
0
        void sugar_Removed(Item item)
        {
            var sugar = new SugarItem(new Core.Vector2(Random.Next(150, 300), Random.Next(50, 200)), Random.Next(100, 2000));

            InsertItem(sugar);
            sugar.Removed += sugar_Removed;
        }
예제 #2
0
        protected override void OnUpdate()
        {
            // Gewinnbedingung
            if (Engine.Round >= 4800 && Mode == LevelMode.Running)
            {
                Faction winner = null;
                foreach (var faction in Factions)
                {
                    if (faction == null)
                    {
                        continue;
                    }

                    if (winner == null)
                    {
                        winner = faction;
                    }
                }

                if (winner != null)
                {
                    FinishPlayer(winner.SlotIndex);
                }
                else
                {
                    Draw();
                }
            }

            Index2 cells = Engine.Map.GetCellCount();

            if (sugar == null)
            {
                Vector2 pos = new Vector2(
                    ((float)Random.NextDouble() * (cells.X - 1)) * Map.CELLSIZE,
                    ((float)Random.NextDouble() * (cells.Y - 1)) * Map.CELLSIZE);
                sugar = new SugarItem(Context, pos, 1000);
                Engine.InsertItem(sugar);
            }

            if (apple == null)
            {
                Vector2 pos = new Vector2(
                    ((float)Random.NextDouble() * (cells.X - 1)) * Map.CELLSIZE,
                    ((float)Random.NextDouble() * (cells.Y - 1)) * Map.CELLSIZE);
                apple = new AppleItem(Context, pos, 250);
                Engine.InsertItem(apple);
            }

            if (bugs.Count < 3)
            {
                Vector2 pos = new Vector2(
                    ((float)Random.NextDouble() * (cells.X - 1)) * Map.CELLSIZE,
                    ((float)Random.NextDouble() * (cells.Y - 1)) * Map.CELLSIZE);
                Angle          orientation = Angle.FromDegree(Random.Next(0, 359));
                ClassicBugItem bug         = new ClassicBugItem(Context, pos, orientation);
                bugs.Add(bug);
                Engine.InsertItem(bug);
            }
        }
예제 #3
0
        protected override void OnInit()
        {
            SugarItem sugar = new SugarItem(new Core.Vector2(300, 100), 1000);

            InsertItem(sugar);
            sugar.Removed += sugar_Removed;

            AppleItem apple = new AppleItem(new Core.Vector2(300, 300), 250);

            InsertItem(apple);
            apple.Removed += apple_Removed;
        }
예제 #4
0
 protected override void OnRemoveItem(Item item)
 {
     if (item == sugar)
     {
         sugar = null;
     }
     if (item == apple)
     {
         apple = null;
     }
     if (item is ClassicBugItem)
     {
         bugs.Remove(item as ClassicBugItem);
     }
 }