Exemple #1
0
        private void UpdateMap()
        {
            foreach (Unit u in map.Units)
            {
                if (u.GetType() == typeof(MeleeUnit))
                {
                    MeleeUnit m = (MeleeUnit)u;
                    if (m.Health < 5)
                    {
                        switch (R.Next(0, 5))
                        {
                        case 0: m.Move(Direction.North); break;

                        case 1: m.Move(Direction.West); break;

                        case 2: m.Move(Direction.South); break;

                        case 3: m.Move(Direction.East); break;
                        }
                    }
                    else
                    {
                        bool inCombat = false;
                        foreach (Unit e in map.Units)
                        {
                            if (u.Range(e))
                            {
                                u.Combat(e);
                                inCombat = true;
                            }
                        }
                        if (inCombat)
                        {
                            Unit c = m.Close(map.Units);
                            m.Move(m.Directionto(c));
                        }
                    }
                }
                else if (u.GetType() == typeof(RangesUnit))
                {
                    RangesUnit r = (RangesUnit)u;
                    if (r.Health < 20)
                    {
                        switch (R.Next(0, 4))
                        {
                        case 0: r.Move(Direction.North); break;

                        case 1: r.Move(Direction.West); break;

                        case 2: r.Move(Direction.South); break;

                        case 3: r.Move(Direction.East); break;
                        }
                    }
                    else
                    {
                        bool inCombat = false;
                        foreach (Unit e in map.Units)
                        {
                            if (u.Range(e))
                            {
                                u.Combat(e);
                                inCombat = true;
                            }
                        }
                        if (inCombat)
                        {
                            Unit c = r.Close(map.Units);
                            r.Move(r.Directionto(c));
                        }
                    }
                }
                else if (u.GetType() == typeof(Grubs))
                {
                    Grubs g = (Grubs)u;
                    if (g.Health < 20)
                    {
                        switch (R.Next(0, 4))
                        {
                        case 0: g.Move(Direction.North); break;

                        case 1: g.Move(Direction.West); break;

                        case 2: g.Move(Direction.South); break;

                        case 3: g.Move(Direction.East); break;
                        }
                    }
                    else
                    {
                        bool inCombat = false;
                        foreach (Unit e in map.Units)
                        {
                            if (u.Range(e))
                            {
                                u.Combat(e);
                                inCombat = true;
                            }
                        }
                        if (inCombat)
                        {
                            Unit c = g.Close(map.Units);
                            g.Move(g.Directionto(c));
                        }
                    }
                }

                //else if (u.GetType() == typeof(deadshot))
                //{
                //    deadshot ds = (deadshot)u;
                //    if (ds.Health < 20)
                //    {
                //        switch (R.Next(0, 4))
                //        {
                //            case 0: ds.Move(Direction.North); break;
                //            case 1: ds.Move(Direction.West); break;
                //            case 2: ds.Move(Direction.South); break;
                //            case 3: ds.Move(Direction.East); break;
                //        }
                //    }
                //    else
                //    {
                //        bool inCombat = false;
                //        foreach (Unit e in map.Units)
                //        {
                //            if (u.Range(e))
                //            {
                //                u.Combat(e);
                //                inCombat = true;

                //            }
                //        }
                //        if (inCombat)
                //        {
                //            Unit c = ds.Close(map.Units);
                //            ds.Move(ds.Directionto(c));
                //        }
                //    }

                //}
            }

            //foreach (Building y in map.buildings)
            //{
            //    if (y.GetType() == typeof(ResourceBuilding))
            //    {
            //        ResourceBuilding rb = (ResourceBuilding)y;


            //    }
            //}
        }