Ejemplo n.º 1
0
        public static bool ApplyCampCost(int user_id)
        {
            using (var db = new MinionWarsEntities())
            {
                List <CostObject>   col = GetCampCosts();
                List <UserTreasury> utl = db.UserTreasury.Where(x => x.user_id == user_id).ToList();
                foreach (CostObject co in col)
                {
                    UserTreasury ut = utl.Where(x => x.res_id == co.cost.r_id).First();
                    if (co.cost.amount.Value > ut.amount)
                    {
                        return(false);
                    }
                    else
                    {
                        ut.amount -= co.cost.amount.Value;
                        db.UserTreasury.Attach(ut);
                        db.Entry(ut).State = System.Data.Entity.EntityState.Modified;
                    }
                }

                db.SaveChanges();

                return(true);
            }
        }
Ejemplo n.º 2
0
        public static bool ApplyBuildingCosts(int b_id, int user_id)
        {
            using (var db = new MinionWarsEntities())
            {
                List <CostsBuilding> cbl = db.CostsBuilding.Where(x => x.b_id == b_id).ToList();
                List <UserTreasury>  utl = db.UserTreasury.Where(x => x.user_id == user_id).ToList();
                foreach (CostsBuilding cb in cbl)
                {
                    UserTreasury ut = utl.Where(x => x.res_id == cb.r_id).First();
                    if (cb.amount.Value > ut.amount)
                    {
                        return(false);
                    }
                    else
                    {
                        ut.amount -= cb.amount.Value;
                        db.UserTreasury.Attach(ut);
                        db.Entry(ut).State = System.Data.Entity.EntityState.Modified;
                    }
                }

                db.SaveChanges();

                return(true);
            }
        }
Ejemplo n.º 3
0
        public static void ConsumeResourceNode(int user_id, int node_id)
        {
            using (var db = new MinionWarsEntities())
            {
                ResourceNode node = db.ResourceNode.Find(node_id);
                UserTreasury ut   = db.UserTreasury.Where(x => x.user_id == user_id && x.res_id == node.rtype_id).First();
                ut.amount += 30;

                db.UserTreasury.Attach(ut);
                db.Entry(ut).State = System.Data.Entity.EntityState.Modified;

                db.ResourceNode.Remove(node);

                db.SaveChanges();
            }
        }
Ejemplo n.º 4
0
        public static void DestroyBuilding(int camp_id, int b_id, int type)
        {
            /*
             * 1 - resource
             * 2 - offensive
             * 3 - defensive
             * 4 - utility
             */

            using (var db = new MinionWarsEntities())
            {
                Camp camp = db.Camp.Find(camp_id);

                switch (type)
                {
                case 1:
                    ResourceBuilding rb = db.ResourceBuilding.Find(b_id);

                    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;

                    db.ResourceBuilding.Remove(rb);

                    break;

                case 2:
                    db.OffensiveBuilding.Remove(db.OffensiveBuilding.Find(b_id));
                    break;

                case 3:
                    db.DefensiveBuilding.Remove(db.DefensiveBuilding.Find(b_id));
                    break;

                case 4:
                    db.UtilityBuilding.Remove(db.UtilityBuilding.Find(b_id));
                    break;
                }

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

                db.SaveChanges();
            }
        }
Ejemplo n.º 5
0
        public static void GenerateNewUserResources(int id)
        {
            using (var db = new MinionWarsEntities())
            {
                List <ResourceType> list = db.ResourceType.ToList();
                foreach (ResourceType rt in list)
                {
                    UserTreasury ut = new UserTreasury();
                    ut.user_id    = id;
                    ut.res_id     = rt.id;
                    ut.amount     = 50;
                    ut.generation = 3;

                    db.UserTreasury.Add(ut);
                }
                db.SaveChanges();
            }
        }
Ejemplo n.º 6
0
        public static string ConsumeCaravan(int user_id, int car_id)
        {
            string res = "";

            using (var db = new MinionWarsEntities())
            {
                Caravan car         = db.Caravan.Find(car_id);
                Camp    camp        = db.Camp.Find(car.source_id);
                Camp    destination = db.Camp.Find(car.destination_id);

                /*Random r = new Random();
                 * List<CampTreasury> ctl = db.CampTreasury.Where(x => x.camp_id == camp.id).ToList();
                 * CampTreasury ct = ctl.OrderBy(x => r.Next()).First();
                 * ResourceType rt = db.ResourceType.Find(ct.res_id);*/
                ResourceType rt = ResourceManager.getRandomRes().First();

                res = rt.name;

                UserTreasury ut = db.UserTreasury.Where(x => x.user_id == user_id && x.res_id == rt.id).First();
                ut.amount += 30;

                db.UserTreasury.Attach(ut);
                db.Entry(ut).State = System.Data.Entity.EntityState.Modified;

                camp.richness        -= 1;
                destination.richness -= 1;

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

                db.Caravan.Remove(car);

                db.SaveChanges();
            }

            return(res);
        }
Ejemplo n.º 7
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);
            }
        }