예제 #1
0
        // GET: Regiments/Edit/5
        public ActionResult Edit(int?id)
        {
            if (id == null)
            {
                return(RedirectToAction("Default", "Home"));
            }
            if (Session["ID"] != null)
            {
                var typeName = (string)Session["Type"]; var type = db.EmployeeTypes.Where(x => x.Type == typeName).FirstOrDefault();
                if (type.SeeAccToCenter == true)
                {
                    Regiment regiment = db.Regiments.Find(id);
                    if (regiment == null)
                    {
                        return(HttpNotFound());
                    }
                    ViewBag.Periodid     = new SelectList(db.Periods, "id", "Name", regiment.Periodid);
                    ViewBag.TitleSideBar = "Regiments";

                    return(View(regiment));
                }
                return(RedirectToAction("Default", "Home"));
            }
            return(RedirectToAction("Index", "Home"));
        }
예제 #2
0
        private int ApplyDamage(Regiment attacker, Regiment defender)
        {
            var unitsLost = CalculateUnitsLost(attacker, defender);

            defender.UnitCount -= unitsLost;
            return(unitsLost);
        }
        /// <summary>
        ///
        /// </summary>
        /// <param name="g"></param>
        public static void CreateGame(AleaBelliGame g)
        {
            // create the local player
            g.AddPlayer(new Player()
            {
                PlayerId = 1, Name = "Player"
            });

            // create the nations
            g.AddNation(new Nation()
            {
                NationId = NATION_USA, Name = "Union"
            });
            g.AddNation(new Nation()
            {
                NationId = NATION_CSA, Name = "Conferderacy"
            });

            // create an army
            Army armyOfThePotomac = g.AddArmy(new Army()
            {
                ArmyId = ARMY_USA_POTOMAC, Name = "Army Of The Potomac"
            });

            Corps firstCorps = armyOfThePotomac.AddCorps(new Corps()
            {
                CorpId = 1, Name = "First Corps"
            });

            ArmyDivision firstDivision = firstCorps.AddDivision(new ArmyDivision()
            {
                DivisionId = 1, Name = "1st Division"
            });

            Brigade brigade1 = firstDivision.AddBrigade(new Brigade()
            {
                BrigadeId = 1, Name = "Iron Brigade", ShortName = "Iron", MapX = 400, MapY = 400, FacingInDegrees = 0
            });

            Regiment r1 = g.AddRegiment(brigade1,
                                        new Regiment()
            {
                RegimentId = 1, Name = "1st New York", ShortName = "1st NY", RegimentFormation = RegimentFormation.Line2, FacingInDegrees = 45, MapX = 100, MapY = 100
            });
            Regiment r2 = g.AddRegiment(brigade1,
                                        new Regiment()
            {
                RegimentId = 1, Name = "2nd New York", ShortName = "2nd NY", RegimentFormation = RegimentFormation.Line2, FacingInDegrees = 90, MapX = 200, MapY = 150
            });
            Regiment r3 = g.AddRegiment(brigade1,
                                        new Regiment()
            {
                RegimentId = 1, Name = "3rd New York", ShortName = "3rd NY", RegimentFormation = RegimentFormation.Line2, FacingInDegrees = 120, MapX = 300, MapY = 200
            });
            Regiment r4 = g.AddRegiment(brigade1,
                                        new Regiment()
            {
                RegimentId = 1, Name = "4th New York", ShortName = "4th NY", RegimentFormation = RegimentFormation.Line2, FacingInDegrees = 270, MapX = 400, MapY = 230
            });
        }
예제 #4
0
        public IActionResult Edit(Regiment model)
        {
            _context.Regiments.Update(model);
            _context.SaveChanges();

            return(RedirectToAction("Details", new { Id = model.Id }));
        }
예제 #5
0
        /// <summary>
        /// Draws the entire scene in the given render target.
        /// </summary>
        /// <returns>A texture2D with the scene drawn in it.</returns>
        protected static void UpdateRegimentalTexture(Regiment r, RenderTarget2D renderTarget, GraphicsDevice GraphicsDevice, SpriteBatch spriteBatch, SpriteFont CounterFont)
        {
            // Set the render target
            GraphicsDevice.SetRenderTarget(renderTarget);

            GraphicsDevice.DepthStencilState = new DepthStencilState()
            {
                DepthBufferEnable = true
            };

            // Draw the scene
            GraphicsDevice.Clear(Color.CornflowerBlue);
            //DrawModel(model, world, view, projection);


            spriteBatch.Begin(SpriteSortMode.Immediate, BlendState.AlphaBlend,
                              SamplerState.LinearClamp, DepthStencilState.Default,
                              RasterizerState.CullNone);

            GameRenderer.DrawRegimentToTexture(r, spriteBatch, CounterFont);
            spriteBatch.End();

            // Drop the render target
            GraphicsDevice.SetRenderTarget(null);
        }
예제 #6
0
        public ActionResult DeleteConfirmed(int id)
        {
            if (Session["ID"] != null)
            {
                var typeName = (string)Session["Type"]; var type = db.EmployeeTypes.Where(x => x.Type == typeName).FirstOrDefault();
                if (type.SeeAccToCenter == true)
                {
                    Regiment regiment = db.Regiments.Find(id);
                    db.Regiments.Remove(regiment);
                    try
                    {
                        db.SaveChanges();
                    }
                    catch
                    {
                        ViewBag.TitleSideBar = "Regiments";

                        ViewBag.error = "يوجد مدخلات اخرى متعلقة بهذا الفوج يرجى تغييرها قبل الحذف";
                        return(View(regiment));
                    }
                    return(RedirectToAction("Index"));
                }
                return(RedirectToAction("Default", "Home"));
            }
            return(RedirectToAction("Index", "Home"));
        }
        public async Task <IActionResult> Edit(int id, [Bind("Id,Name,Type,Country,Image")] Regiment regiment)
        {
            if (id != regiment.Id)
            {
                return(NotFound());
            }

            if (ModelState.IsValid)
            {
                try
                {
                    _context.Update(regiment);
                    await _context.SaveChangesAsync();
                }
                catch (DbUpdateConcurrencyException)
                {
                    if (!RegimentExists(regiment.Id))
                    {
                        return(NotFound());
                    }
                    else
                    {
                        throw;
                    }
                }
                return(RedirectToAction(nameof(Index)));
            }
            return(View(regiment));
        }
예제 #8
0
    public Regiment CreateRegiment(Player owner, List <Unit> units)
    {
        Regiment regiment = Instantiate(regimentPrefab);

        regiment.owner = owner;
        regiment.SetUnits(units);
        regiment.gameObject.SetActive(true);
        return(regiment);
    }
예제 #9
0
        public void OnClickRegiment(Regiment r)
        {
            if (r != null)
            {
                // something has been clicked
                Console.WriteLine(r.Name);
            }

            UpdateSelection(r);
        }
예제 #10
0
    void Start()
    {
        target               = transform.position;
        agent                = GetComponent <NavMeshAgent>();
        mainCamera           = Camera.main;
        myTargetInst         = Instantiate(targetInst, transform.position, Quaternion.identity) as TargetIndicator;
        myTargetInst.enabled = false;

        regiment = GetComponent <Regiment>();
    }
예제 #11
0
 public ActionResult Edit([Bind(Include = "id,Name,Day1,Day2,Day3,Day4,Day5,Day6,Day7,Desc,Periodid")] Regiment regiment)
 {
     if (ModelState.IsValid)
     {
         db.Entry(regiment).State = EntityState.Modified;
         db.SaveChanges();
         return(RedirectToAction("Index"));
     }
     ViewBag.Periodid = new SelectList(db.Periods, "id", "Name", regiment.Periodid);
     return(View(regiment));
 }
        public async Task <IActionResult> Create([Bind("Id,Name,Type,Country,Image,PosX,PosY,BattleId,StageID")] Regiment regiment)
        {
            if (ModelState.IsValid)
            {
                _context.Add(regiment);
                await _context.SaveChangesAsync();

                return(RedirectToAction(nameof(Create)));
            }
            return(View(regiment));
        }
예제 #13
0
        /*
         * public void DrawScreen(IAleaBelliGame client)
         * {
         *  // Remove all Visuals
         *  m_Visuals.ForEach(delegate (Visual v) { RemoveVisualChild(v); });
         *  m_Visuals.Clear();
         *
         *  //m_Visuals.Add(CreateDrawingVisualRectangle(client));
         *
         *  m_Visuals.ForEach(delegate (Visual v) { AddVisualChild(v); });
         * }*/

        public void UpdateGameVisualsWithChangeList(UIChanges changes)
        {
            if (changes != null)
            {
                // redraw any regimentd
                foreach (int rid in changes.RegimentalIds.ToList())
                {
                    Regiment r = game.GetRegiment(rid);
                    RedrawRegiment(r, true);
                }
            }
        }
예제 #14
0
        internal static void DrawRegimentFromTexture(Regiment r, SpriteBatch spriteBatch, RenderTarget2D renderTarget)
        {
            int width  = r.CurrentWidth;
            int height = r.CurrentHeight + 20;

            spriteBatch.Draw(renderTarget, new Rectangle(r.MapX, r.MapY, width, height), new Rectangle(0, 0, width, height),
                             Color.White,
                             GameRenderer.ConvertDegreesToRadians(r.FacingInDegrees),
                             Vector2.Zero,
                             SpriteEffects.None,
                             0
                             );
        }
예제 #15
0
        // https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/generics/constraints-on-type-parameters
        static void Main(string[] args)
        {
            var popescu  = new Colonel <Romanian>();
            var napoleon = new General <French>();

            var romanianRegiment = new Regiment <Infanterist, Romanian, Colonel <Romanian> >(popescu);

            romanianRegiment.RecruitSoldiers(10);
            romanianRegiment.Attack();

            var frenchRegiment = new Regiment <Tankist, French, General <French> >(napoleon);

            frenchRegiment.RecruitSoldiers(5);
            frenchRegiment.Attack();
        }
예제 #16
0
 public ActionResult DeleteConfirmed(int id)
 {
     if (Session["ID"] != null)
     {
         var typeName = (string)Session["Type"]; var type = db.EmployeeTypes.Where(x => x.Type == typeName).FirstOrDefault();
         if (type.Managment == true)
         {
             Regiment regiment = db.Regiments.Find(id);
             db.Regiments.Remove(regiment);
             db.SaveChanges();
             return(RedirectToAction("Index"));
         }
         return(RedirectToAction("Default", "Home"));
     }
     return(RedirectToAction("Index", "Home"));
 }
예제 #17
0
        private int CalculateDamage(Regiment attacking, Regiment defending)
        {
            if (defending.IsImmuneTo(attacking.Attack))
            {
                return(0);
            }

            var damage = attacking.EffectivePower;

            if (defending.IsWeakTo(attacking.Attack))
            {
                damage *= 2;
            }

            return(damage);
        }
예제 #18
0
        public async Task <IActionResult> Create(CombatFormationViewModel combatForm)
        {
            Regiment regiment = new Regiment()
            {
                Name                  = combatForm.Name,
                Number                = combatForm.Number,
                TotalStrenght         = combatForm.TotalStrenght,
                AdditionalInformation = combatForm.AdditionalInformation,
                Commanders            = combatForm.Commanders,
                WeekId                = combatForm.WeekId,
                BrigadeId             = combatForm.BrigadeId,
                DivisionId            = combatForm.DivisionId,
                Image                 = combatForm.Image,
                Week                  = combatForm.Week,
                CoordinatesXY         = combatForm.Coordinates,
                CoordX                = combatForm.CoordX,
                CoordY                = combatForm.CoordY,
                Adress                = combatForm.Adress
            };

            if (ModelState.IsValid)
            {
                if (combatForm.Coordinates != null)
                {
                    string[] str = combatForm.Coordinates.Split(',', 2, StringSplitOptions.None);
                    regiment.CoordX = str[0];
                    regiment.CoordY = str[1];
                }
                if (combatForm.File != null)
                {
                    byte[] imageData = null;
                    // считываем переданный файл в массив байтов
                    using (var binaryReader = new BinaryReader(combatForm.File.OpenReadStream()))
                    {
                        imageData = binaryReader.ReadBytes((int)combatForm.File.Length);
                    }
                    // установка массива байтов
                    regiment.Image = imageData;
                }
                _context.Add(regiment);
                await _context.SaveChangesAsync();

                return(RedirectToAction("Edit", new { id = regiment.RegimentId }));
            }
            return(View(regiment));
        }
예제 #19
0
        /// <summary>
        /// LoadContent will be called once per game and is the place to load
        /// all of your content.
        /// </summary>
        protected override void LoadContent()
        {
            // Create a new SpriteBatch, which can be used to draw textures.
            spriteBatch = new SpriteBatch(GraphicsDevice);

            // TODO: use this.Content to load your game content here
            HeaderFont  = Content.Load <SpriteFont>("Header");  // Use the name of your sprite font file here instead of 'Score'.
            CounterFont = Content.Load <SpriteFont>("Counter"); // Use the name of your sprite font file here instead of 'Score'.

            // load game data
            Regiment r1 = new Regiment()
            {
                RegimentId        = 1,
                ShortName         = "1st NY",
                MapX              = 100,
                MapY              = 100,
                FacingInDegrees   = 45,
                RegimentType      = RegimentType.LineInfantry,
                RegimentFormation = RegimentFormation.Line2,
            };
            Regiment r2 = new Regiment()
            {
                RegimentId        = 2,
                ShortName         = "2nd NY",
                MapX              = 300,
                MapY              = 150,
                FacingInDegrees   = 0,
                RegimentType      = RegimentType.LineInfantry,
                RegimentFormation = RegimentFormation.Line2,
            };
            Regiment r3 = new Regiment()
            {
                RegimentId        = 3,
                ShortName         = "1st Cav",
                MapX              = 485,
                MapY              = 270,
                FacingInDegrees   = 300,
                RegimentType      = RegimentType.LightCavalry,
                RegimentFormation = RegimentFormation.Line2,
            };

            abgame.AddRegiment(r1);
            abgame.AddRegiment(r2);
            abgame.AddRegiment(r3);
        }
예제 #20
0
        private DrawingVisual CreateRegimentalDrawingVisual(Regiment r)
        {
            DrawingVisual drawingVisual = new DrawingVisual();

            using (DrawingContext dc = drawingVisual.RenderOpen())
            {
                DrawRegiment(dc, r);

                //Rect rect = new Rect(new System.Windows.Point(50, 50), new System.Windows.Size(100, 100));
                //dc.DrawRectangle(System.Windows.Media.Brushes.Blue, (System.Windows.Media.Pen)null, rect);


                //DrawRegiment(dc, 120, 120, 45, new Battalion() { ShortName = "1st NY" });
                // DrawRegiment(dc, 220, 160, 55, new Battalion() { ShortName = "2nd NY" });
                // DrawRegiment(dc, 320, 220, 65, new Battalion() { ShortName = "3rd NY" });
            }
            return(drawingVisual);
        }
예제 #21
0
        private void DrawRegiment(DrawingContext dc, Regiment r)
        {
            int width     = r.GetWidthInPaces();
            int halfwidth = width / 2;
            int height    = r.GetDepthInPaces();

            //int x = 100;
            //int y = 100;
            int x     = r.MapX;
            int y     = r.MapY;
            int angle = r.FacingInDegrees;

            r.ShortName = DateTime.Now.ToLongTimeString();

            dc.PushTransform(new RotateTransform(angle, x + halfwidth, y));

            // Create a rectangle and draw it in the DrawingContext.
            Rect rect = new Rect(new System.Windows.Point(x, y), new System.Windows.Size(width, height));

            dc.DrawRectangle(System.Windows.Media.Brushes.Blue, (System.Windows.Media.Pen)null, rect);

            //Rect rect2 = new Rect(new System.Windows.Point(x, y + height), new System.Windows.Size(width, 10));
            //dc.DrawRectangle(System.Windows.Media.Brushes.Black, (System.Windows.Media.Pen)null, rect2);

            /*
             * Rect rect3 = new Rect(new System.Windows.Point(x + (halfwidth - widgetsize) //150
             * , y - widgetsize), new System.Windows.Size(20, 10));
             * dc.DrawRectangle(System.Windows.Media.Brushes.Red, (System.Windows.Media.Pen)null, rect3);
             */

            dc.DrawText(


                new FormattedText(r.ShortName,
                                  CultureInfo.GetCultureInfo("en-us"),
                                  FlowDirection.LeftToRight,
                                  new Typeface("Verdana"),
                                  12, System.Windows.Media.Brushes.Black),
                new System.Windows.Point(x, y + height));



            dc.Pop();
        }
예제 #22
0
        public static void DrawCavalryRegimentToTexture(Regiment r, SpriteBatch spriteBatch, SpriteFont counterFont)
        {
            int width  = r.CurrentWidth;
            int height = r.CurrentHeight;

            Point topleft    = new Point(0, 0);
            Point bottomleft = new Point(0, 0 + 60);

            Point size = new Point(width, height + 20);

            Primitives2D.FillRectangle(spriteBatch, new Rectangle(topleft, size), Color.White);

            size = new Point(width, height);
            Primitives2D.FillTriangle(spriteBatch, new Rectangle(topleft, size), Color.Red, 0);

            Vector2 textLoc = new Vector2(0, 100);

            spriteBatch.DrawString(counterFont, r.ShortName, textLoc, Color.Black);
        }
예제 #23
0
    public override void Cast()
    {
        Use = true;
        var      list      = Person.curArmy.army;
        float    heal      = 0;
        Regiment sacrifice = null;

        for (int i = 0; i < list.Count; i++)
        {
            if (list[i].count > heal)
            {
                heal      = list[i].count;
                sacrifice = list[i];
            }
        }

        list.Remove(sacrifice);
        Person.curArmy.Heal(heal * Sacrifice.SacrificeEffect(Level));
        SkillAction = new GameAction(CullDown, () => StopUse());
    }
예제 #24
0
        public ActionResult Create([Bind(Include = "Name,Day1,Day2,Day3,Day4,Day5,Day6,Day7,Desc,Periodid")] Regiment regiment)
        {
            try
            {
                regiment.id = db.Regiments.OrderByDescending(x => x.id).FirstOrDefault().id + 1;
            }
            catch (Exception)
            {
                regiment.id = 1;
            }
            if (ModelState.IsValid)
            {
                db.Regiments.Add(regiment);
                db.SaveChanges();
                return(RedirectToAction("Index"));
            }

            ViewBag.Periodid = new SelectList(db.Periods, "id", "Name", regiment.Periodid);
            return(View(regiment));
        }
예제 #25
0
        public static void DrawRegimentToTexture(Regiment r, SpriteBatch spriteBatch, SpriteFont counterFont)
        {
            if (r == null)
            {
                return;
            }
            switch (r.RegimentType)
            {
            case RegimentType.LineInfantry:
                DrawLineRegimentToTexture(r, spriteBatch, counterFont);
                break;

            case RegimentType.HeavyCavalry:
                DrawCavalryRegimentToTexture(r, spriteBatch, counterFont);
                break;

            case RegimentType.LightCavalry:
                DrawCavalryRegimentToTexture(r, spriteBatch, counterFont);
                break;
            }
        }
예제 #26
0
 // GET: Regiments/Details/5
 public ActionResult Details(int?id)
 {
     if (id == null)
     {
         return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
     }
     if (Session["ID"] != null)
     {
         var typeName = (string)Session["Type"]; var type = db.EmployeeTypes.Where(x => x.Type == typeName).FirstOrDefault();
         if (type.Observing == true || type.Managment == true)
         {
             Regiment regiment = db.Regiments.Find(id);
             if (regiment == null)
             {
                 return(HttpNotFound());
             }
             return(View(regiment));
         }
         return(RedirectToAction("Default", "Home"));
     }
     return(RedirectToAction("Index", "Home"));
 }
예제 #27
0
 // GET: Regiments/Edit/5
 public ActionResult Edit(int?id)
 {
     if (id == null)
     {
         return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
     }
     if (Session["ID"] != null)
     {
         var typeName = (string)Session["Type"]; var type = db.EmployeeTypes.Where(x => x.Type == typeName).FirstOrDefault();
         if (type.Managment == true)
         {
             Regiment regiment = db.Regiments.Find(id);
             if (regiment == null)
             {
                 return(HttpNotFound());
             }
             ViewBag.Periodid = new SelectList(db.Periods, "id", "Name", regiment.Periodid);
             return(View(regiment));
         }
         return(RedirectToAction("Default", "Home"));
     }
     return(RedirectToAction("Index", "Home"));
 }
예제 #28
0
    public override void Cast()
    {
        int count = SkeletonArmy.SkeletCount(Level);

        if (count <= KilledRegiment)
        {
            KilledRegiment -= count;
        }
        else
        {
            count          = KilledRegiment;
            KilledRegiment = 0;
        }
        if (count == 0)
        {
            return;
        }
        Regiment[] skeleton = new Regiment[count];
        for (int i = 0; i < count; i++)
        {
            skeleton[i] = SkeletonArmy.GetSkelet(Level);
            Person.curArmy.army.Add(skeleton[i]);
        }
        Person.curArmy.ArmyListChange();
        Use = true;
        Army cur = Person.curArmy;

        new GameAction(ActionTime, () => {
            for (int i = 0; i < count; i++)
            {
                cur.army.Remove(skeleton[i]);
            }
            cur.ArmyListChange();
        });
        SkillAction = new GameAction(CullDown, () => StopUse());
    }
예제 #29
0
        // GET: Regiments/Details/5
        public ActionResult Details(int?id)
        {
            if (id == null)
            {
                return(RedirectToAction("Default", "Home"));
            }
            if (Session["ID"] != null)
            {
                var typeName = (string)Session["Type"]; var type = db.EmployeeTypes.Where(x => x.Type == typeName).FirstOrDefault();
                if (type.SeeAccToCenter == true || type.SeeAccToCity == true || type.SeeAll == true || type.SeeAllButFinance == true || type.SeeTeachers == true)
                {
                    Regiment regiment = db.Regiments.Find(id);
                    if (regiment == null)
                    {
                        return(HttpNotFound());
                    }
                    ViewBag.TitleSideBar = "Regiments";

                    return(View(regiment));
                }
                return(RedirectToAction("Default", "Home"));
            }
            return(RedirectToAction("Index", "Home"));
        }
예제 #30
0
        public void RedrawRegiment(Regiment r, bool removeOldVisuals)
        {
            if (r != null)
            {
                if (removeOldVisuals)
                {
                    // remove the old visual if it exists
                    DrawingVisual oldVisual = null;
                    regimentVisualsById.TryGetValue(r.RegimentId, out oldVisual);
                    if (oldVisual != null)
                    {
                        RemoveVisualChild(oldVisual);
                        m_Visuals.Remove(oldVisual);
                    }
                }

                // render a new visual
                DrawingVisual dv = CreateRegimentalDrawingVisual(r);
                regimentVisuals[dv] = r;
                regimentVisualsById[r.RegimentId] = dv;
                m_Visuals.Add(dv);
                AddVisualChild(dv);
            }
        }