Example #1
0
        public static bool BuildMinions(int ob_id, int user_id, int amount)
        {
            using (var db = new MinionWarsEntities())
            {
                OffensiveBuilding ob = db.OffensiveBuilding.Find(ob_id);

                List <MinionOwnership> mol = db.MinionOwnership.Where(x => x.owner_id == user_id && x.minion_id == ob.minion_id).ToList();
                if (mol.Count > 0)
                {
                    bool check = CostManager.ApplyMinionCosts(user_id, amount);
                    if (check)
                    {
                        MinionOwnership mo = mol.First();
                        mo.group_count += amount;
                        mo.available   += amount;
                    }
                    else
                    {
                        return(false);
                    }
                }
            }

            return(true);
        }
Example #2
0
        public static bool AttachMinions(int ob_id, int m_id)
        {
            using (var db = new MinionWarsEntities())
            {
                OffensiveBuilding ob = db.OffensiveBuilding.Find(ob_id);
                ob.minion_id = m_id;

                db.OffensiveBuilding.Attach(ob);
                db.Entry(ob).State = System.Data.Entity.EntityState.Modified;

                db.SaveChanges();
            }

            return(true);
        }
Example #3
0
        public static bool CreateBuilding(int camp_id, int b_id)
        {
            using (var db = new MinionWarsEntities())
            {
                Camp      camp = db.Camp.Find(camp_id);
                Buildings b    = db.Buildings.Find(b_id);

                bool result = CostManager.ApplyBuildingCosts(b.id, camp.owner_id.Value);
                if (!result)
                {
                    return(false);
                }

                switch (b.type)
                {
                case "Resource Building":
                    ResourceBuilding rb = new ResourceBuilding();
                    rb.name     = b.name;
                    rb.camp_id  = camp_id;
                    rb.rtype_id = b.id;
                    db.ResourceBuilding.Add(rb);

                    UserTreasury ut = db.UserTreasury.Where(x => x.user_id == camp.owner_id && x.res_id == rb.rtype_id).First();
                    ut.generation += 5;
                    db.UserTreasury.Attach(ut);
                    db.Entry(ut).State = System.Data.Entity.EntityState.Modified;

                    break;

                case "Offensive Building":
                    OffensiveBuilding ob = new OffensiveBuilding();
                    ob.name      = b.name;
                    ob.minion_id = null;
                    ob.camp_id   = camp_id;
                    db.OffensiveBuilding.Add(ob);
                    break;

                case "Defensive Building":
                    DefensiveBuilding defb = new DefensiveBuilding();
                    defb.camp_id = camp_id;
                    if (b_id == 14)
                    {
                        camp.def_modifier += Int32.Parse(b.description);
                    }
                    else if (b_id == 17)
                    {
                        camp.size += Int32.Parse(b.description);
                    }
                    db.DefensiveBuilding.Add(defb);
                    break;

                case "Utility Building":
                    UtilityBuilding ub = new UtilityBuilding();
                    ub.camp_id     = camp_id;
                    ub.name        = b.name;
                    ub.type        = b_id;
                    ub.description = "";
                    db.UtilityBuilding.Add(ub);
                    break;
                }

                camp.building_count++;
                db.Camp.Attach(camp);
                db.Entry(camp).State = System.Data.Entity.EntityState.Modified;

                db.SaveChanges();

                return(true);
            }
        }