Exemple #1
0
        /// <summary>
        ///     Creates a new village and gives it to a player.
        /// </summary>
        /// <param name="id">Village id.</param>
        /// <param name="isMyVillage">MyVillage or not.</param>
        /// <returns>Returns the created village.</returns>
        public Village CreateVillage(
            int id,
            bool isMyVillage = false)
        {
            Village v = GetVillage(id);

            if (v != null)
            {
                return(v);
            }

            if (isMyVillage)
            {
                Logger.Trace("Creating a myvillage id:{0}", id);
                v = new MyVillage(id);
            }
            else
            {
                Logger.Trace("Creating a village id:{0}", id);
                v = new Village(id);
            }

            Villages.Add(id, v);

            if (VillageAdded != null)
            {
                VillageAdded.Invoke(v);
            }

            return(v);
        }
Exemple #2
0
        /// <summary>
        ///     Gets missing buildings for given village.
        /// </summary>
        /// <param name="mv">My village object.</param>
        /// <returns>Missing buildings list.</returns>
        public IList <BuildingData> MissingBuildings(MyVillage mv)
        {
            var missingBuildings = new List <BuildingData>();

            foreach (BuildingData req in BuildingRequirements)
            {
                Building b = mv.Buildings
                             .FirstOrDefault(i => i.Type == req.Type);
                if ((b == null) || (b.Level != req.Level))
                {
                    missingBuildings.Add(req);
                }
            }

            return(missingBuildings);
        }
Exemple #3
0
        /// <summary>
        ///     Gets missing researches for given village.
        /// </summary>
        /// <param name="mv">My village object.</param>
        /// <returns>Missing researches list.</returns>
        public IList <Research> MissingResearches(MyVillage mv)
        {
            var missingResearches = new List <Research>();

            foreach (Research req in ResearchRequirements)
            {
                if (mv.Researches.ContainsKey(req.TroopType))
                {
                    Research r = mv.Researches[req.TroopType];

                    if ((r.Armoury != req.Armoury) ||
                        (r.Blacksmith != req.Blacksmith))
                    {
                        missingResearches.Add(req);
                    }
                }
                else
                {
                    missingResearches.Add(req);
                }
            }

            return(missingResearches);
        }