Пример #1
0
        public static Camp CreateCamp(int user_id, DbGeography loc, string name)
        {
            using (var db = new MinionWarsEntities())
            {
                Camp camp = new Camp();
                if (user_id == -1)
                {
                    camp.owner_id       = null;
                    camp.type           = "neutral";
                    camp.name           = name;
                    camp.size           = 30;
                    camp.building_count = 3;
                }
                else
                {
                    camp.owner_id       = user_id;
                    camp.type           = "owned";
                    camp.name           = name;
                    camp.size           = CalculateCampCapacity(user_id);
                    camp.building_count = 0;
                    bool result = CostManager.ApplyCampCost(camp.owner_id.Value);
                    if (!result)
                    {
                        return(null);
                    }
                }
                camp.location     = loc;
                camp.mapped_type  = "restaurant";
                camp.richness     = 0;
                camp.def_modifier = 0;
                camp.bg_id        = null;

                db.Camp.Add(camp);
                db.SaveChanges();

                if (user_id == -1)
                {
                    List <ResourceType> res = ResourceManager.getRandomRes();
                    for (int i = 0; i < 2; i++)
                    {
                        CampTreasury ct = new CampTreasury();
                        ct.camp_id = camp.id;
                        ct.amount  = 100;
                        ct.res_id  = res[i].id;
                        db.CampTreasury.Add(ct);

                        ResourceBuilding rb       = new ResourceBuilding();
                        Buildings        building = db.Buildings.Find(res[i].id); //db.Buildings.Where(x => x.name.Contains(res[i].name.ToLower())).First();
                        rb.camp_id  = camp.id;
                        rb.name     = building.name;
                        rb.rtype_id = res[i].id;
                        db.ResourceBuilding.Add(rb);
                    }

                    UtilityBuilding ub = new UtilityBuilding();
                    Buildings       b2 = db.Buildings.Find(16);
                    ub.camp_id     = camp.id;
                    ub.name        = b2.name;
                    ub.type        = 2;
                    ub.description = null;
                    db.UtilityBuilding.Add(ub);

                    db.SaveChanges();
                }

                return(camp);
            }
        }