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); }
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); }
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); } }