Esempio n. 1
0
 void UpgradeTurret(Entity e)
 {
     if (money >= hoverTar.GetValue("upgradePrice"))
     {
         EntityCollection.AddEntity(GetUpgrade(e));
         e.exists = false;
         money   -= hoverTar.GetValue("upgradePrice");
     }
 }
Esempio n. 2
0
 void CreateGod()
 {
     EntityCollection.AddEntity(
         new God(
             new DrawerCollection(new List <TextureDrawer>()
     {
         SpriteSheetCollection.GetTex("idle", "god", "god"),
         SpriteSheetCollection.GetTex("attack", "god", "god"),
         SpriteSheetCollection.GetTex("swipe", "swipe", "swipe")
     }, "tex"),
             new PositionManager(new Vector2(40, 20)),
             new List <Property>(), "god", "god"));
 }
Esempio n. 3
0
        } //update the clicky things

        void CreateVillager(string type_)
        {
            if (GameData.availableCitizens > 0)
            {
                EntityCollection.AddEntity(new Villager(
                                               new DrawerCollection(new List <TextureDrawer>()
                {
                    SpriteSheetCollection.GetTex("normal", "villager", "villager")
                }, "texes"),
                                               new PositionManager(new Vector2(360, 100)),
                                               new List <Property>(),
                                               "c**t",
                                               type_
                                               ));
            }
        }
Esempio n. 4
0
        public void HandleNewBgSpawns(float camPos_)
        {
            Random r = new Random();
            int    x;

            do
            {
                x = r.Next(1, 6);
            } while (x == prevBg);
            prevBg = x;
            Entity ent = ebuilder.CreateEntity("bg", GetDrawerCollection(x), new Vector2((float)(Math.Floor(camPos_ / 16) * 16), 64), new List <Property>()
            {
                new Property("isBG", "isBG", "isBG")
            }, "bg");

            EntityCollection.AddEntity(ent);
        }
Esempio n. 5
0
        public void SetupTiles()
        {
            List <Entity> ents = new List <Entity>();

            ents.Add(ebuilder.CreateEntity("tile", GetDrawerCollection(12), new Vector2(0, 96), new List <Property>()
            {
                new Property("isTile", "isTile", "isTile")
            }, "tile"));
            ents.Add(ebuilder.CreateEntity("tile", GetDrawerCollection(12), new Vector2(160, 96), new List <Property>()
            {
                new Property("isTile", "isTile", "isTile")
            }, "tile"));
            for (int i = -10; i <= 30; i++)
            {
                ents.Add(ebuilder.CreateEntity("tile", GetDrawerCollection(6), new Vector2(32 * i, 0), new List <Property>()
                {
                    new Property("isTile", "isTile", "isTile")
                }, "tile"));
            }
            for (int i = -2; i <= 6; i++)
            {
                ents.Add(ebuilder.CreateEntity("tile", GetDrawerCollection(12), new Vector2(160 * i, 96), new List <Property>()
                {
                    new Property("isTile", "isTile", "isTile")
                }, "tile"));
            }
            for (int i = 0; i < 5; i++)
            {
                Random r   = new Random();
                int    x   = r.Next(1, 5);
                Entity ent = ebuilder.CreateEntity("bg", GetDrawerCollection(x), new Vector2(i * 96 + 48, 64), new List <Property>()
                {
                    new Property("isBG", "isBG", "isBG")
                }, "bg");
                EntityCollection.AddEntity(ent);
            }
            EntityCollection.AddEntities(ents);
        }
Esempio n. 6
0
        } //update things based on game state

        void UpdateGame(float es_)
        {
            ParticleSystem.UpdateAll(es_);

            EntityCollection.UpdateAll(es_);
            gameTick.Update(es_);
            if (gameTick.Complete())
            {
                GameData.Tick();
                gameTick.Reset();
            }

            villagerTick.Update(es_);
            if (villagerTick.Complete())
            {
                if (GameData.citizensOutside < GameData.MaxVillagers)
                {
                    CreateVillager("c**t");
                }

                villagerTick.time = (float)rng.Next(3, 15);
                villagerTick.Reset();
            }

            UpdateHoveredLocation();

            if (GameData.madness >= 90 && !GameData.cultExists)
            {
                GameData.cultExists = true;
                Building cult = new Building(
                    new DrawerCollection(
                        new List <TextureDrawer>()
                {
                    SpriteSheetCollection.GetTex("idle", "defBuildings", "cult"),
                    SpriteSheetCollection.GetTex("idle", "defBuildings", "cult"),
                    SpriteSheetCollection.GetTex("idle", "defBuildings", "cult")
                },
                        "cult"),
                    new PositionManager(new Vector2(46, 24)),
                    new List <Property>(),
                    5,
                    "cult",
                    ""
                    );
                EntityCollection.AddEntity(cult);
            }

            changeTooltipText = true;
            bool x = false;

            foreach (Building building in EntityCollection.GetGroup("buildings"))
            {
                if (building.Name == "cult")
                {
                    building.hoveredText = "";
                }
                else if (building.Name == "bridge")
                {
                    building.hoveredText = "the god's anger is at " + GameData.godAnger.ToString() + " and his hunger is at " + GameData.godHunger.ToString() + ". you currently have " + GameData.TotalCitizens.ToString() + " villagers. Appease the god?";
                }
                else
                {
                    building.hoveredText = GameData.UpgradeCost(building.Name) + ". Level:" + GameData.LevelOfBuilding(building.Name).ToString();
                }
                if (!x && new Rectangle(building.posman.pos.ToPoint(), building.GetBounds().Size).Contains(scenes.GetScene("base").ToVirtualPos(cursor.RawPos())))
                {
                    if (cursor.GetClicked() && GameData.CanUpgrade(building.Name))
                    {
                        if (!building.wasClicked)
                        {
                            switch (building.Name)
                            {
                            case "field":
                                //CreateVillager("farmer");
                                if (GameData.CanUpgrade("field"))
                                {
                                    GameData.Upgrade("field");
                                }
                                SoundManager.PlayEffect("build");
                                break;

                            case "mine":
                                //CreateVillager("miner");
                                if (GameData.CanUpgrade("mine"))
                                {
                                    GameData.Upgrade("mine");
                                }
                                SoundManager.PlayEffect("build");
                                break;

                            case "forest":
                                //CreateVillager("lumberjack");
                                if (GameData.CanUpgrade("forest"))
                                {
                                    GameData.Upgrade("forest");
                                }
                                SoundManager.PlayEffect("build");
                                break;

                            case "city":
                                if (GameData.CanUpgrade("city"))
                                {
                                    GameData.Upgrade("city");
                                }
                                SoundManager.PlayEffect("build");
                                break;

                            case "church":
                                if (GameData.CanUpgrade("church"))
                                {
                                    GameData.Upgrade("church");
                                }
                                SoundManager.PlayEffect("build");
                                break;

                            case "bridge":
                                foreach (God god in EntityCollection.GetGroup("god"))
                                {
                                    god.Attack();
                                }
                                break;
                            }
                        }
                        building.Click();
                    }
                    else
                    {
                        if (building.hoveredText != null)
                        {
                            tooltipText = building.hoveredText; changeTooltipText = false;
                        }
                        if (GameData.CanUpgrade(building.Name))
                        {
                            building.isHovered = true;
                        }
                    }
                    x = true;
                }
                else
                {
                    building.isHovered = false;
                }
            }

            if (new Rectangle(10, 165, 100, 10).Contains(scenes.GetScene("base").ToVirtualPos(cursor.RawPos())))
            {
                tooltipText       = "The village's madness is at " + GameData.madness.ToString() + "/100";
                changeTooltipText = false;
            }
            else if (new Rectangle(135, 165, 50, 10).Contains(scenes.GetScene("base").ToVirtualPos(cursor.RawPos())) && GameData.cultExists)
            {
                tooltipText       = GameData.daysUntilDoom.ToString() + " days until doom.";
                changeTooltipText = false;
            }
            else if (new Rectangle(260, 165, 100, 10).Contains(scenes.GetScene("base").ToVirtualPos(cursor.RawPos())))
            {
                tooltipText       = "Next day in " + Math.Ceiling(gameTick.timer).ToString() + " s";
                changeTooltipText = false;
            }
        } //update the movey things