Esempio n. 1
0
        public Pest(Vector2 pos, HoeDirt hd)
        {
            this.pos = pos;
            this.hd  = hd;

            /*
             * this.adjacentTiles.Add(new Vector2(pos.X - 1, pos.Y));
             * this.adjacentTiles.Add(new Vector2(pos.X - 1, pos.Y - 1));
             * this.adjacentTiles.Add(new Vector2(pos.X - 1, pos.Y + 1));
             * this.adjacentTiles.Add(new Vector2(pos.X, pos.Y - 1));
             * this.adjacentTiles.Add(new Vector2(pos.X, pos.Y + 1));
             * this.adjacentTiles.Add(new Vector2(pos.X + 1, pos.Y));
             * this.adjacentTiles.Add(new Vector2(pos.X + 1, pos.Y - 1));
             * this.adjacentTiles.Add(new Vector2(pos.X + 1, pos.Y + 1));
             */
            this.adjacentTiles = ModComponent.GetAdjacentTiles(pos);

            bfList = new List <PestFly>();
            bfList.Add(new PestFly(pos));
            if (Pests.CheckChance(50))
            {
                bfList.Add(new PestFly(pos));
            }
            if (Pests.CheckChance(50))
            {
                bfList.Add(new PestFly(pos));
            }
            //ModEntry.GetMonitor().Log("pos is " + pos + " and pestfly pos is" + pos * Game1.tileSize);
        }
Esempio n. 2
0
        public List <Pest> InfestAdjacent(double chance)
        {
            List <Pest> pests = new List <Pest>();

            foreach (KeyValuePair <Vector2, TerrainFeature> pair in GetAdjacentCrops())
            {
                if (pair.Key is Vector2 vec && pair.Value is HoeDirt hd && Pests.CheckChance(chance))
                {
                    Pest pest = Pests.TryInfestCrop(vec, hd);
                    if (pest != null)
                    {
                        ModEntry.GetMonitor().Log("Infested adjacent crop at " + vec, LogLevel.Trace);
                        pests.Add(pest);
                    }
                }
            }
            return(pests);
        }