Пример #1
0
        private void LoadMonsters()
        {
            _monsters = new MonsterCollection("monsters.xml");

            //buttons
            int       idx = 0;
            const int firstMonsterButtonLeft = 429;
            const int firstMonsterButtonTop  = 129;
            const int monstersInRow          = 5;

            foreach (var monster in _monsters)
            {
                //create button
                var monsterButton = new System.Windows.Forms.Button();
                monster.Button = monsterButton;

                monsterButton.Enabled   = false;
                monsterButton.Image     = System.Drawing.Image.FromFile(Path.Combine("Obrázky", monster.Thumbnail));
                monsterButton.Location  = new System.Drawing.Point(firstMonsterButtonLeft + ((idx % monstersInRow) * 86), firstMonsterButtonTop + ((idx / monstersInRow) * 86)); //TODO
                monsterButton.Name      = "button" + monster.Id;
                monsterButton.Size      = new System.Drawing.Size(80, 70);
                monsterButton.TabIndex  = 20 + idx;
                monsterButton.Text      = monster.Name;
                monsterButton.TextAlign = System.Drawing.ContentAlignment.BottomCenter;
                monsterButton.UseVisualStyleBackColor = true;
                monsterButton.Click += (sender, args) => FocusOrBuyAnimal(monster);

                this.Controls.Add(monsterButton);

                idx++;
            }
        }
Пример #2
0
        public void CollisionCheck()
        {
            var gameObjectsToRemove = new HashSet <ILaneObject>();

            foreach (var monster in MonsterCollection)
            {
                foreach (var bullet in BulletCollection)
                {
                    if (monster.LanePosition <= bullet.LanePosition)
                    {
                        if (monster.Color == bullet.Color)
                        {
                            gameObjectsToRemove.Add(monster);

                            // Killed a monster => scored
                            Score.UpdateScore(
                                Score.MonsterKilledPoints);
                        }

                        gameObjectsToRemove.Add(bullet);
                    }
                }
            }

            // Remove the objects
            MonsterCollection.RemoveWhere(
                monster => gameObjectsToRemove.Contains(monster));
            BulletCollection.RemoveWhere(
                bullet => gameObjectsToRemove.Contains(bullet));
        }
Пример #3
0
    // Start is called before the first frame update
    void Start()
    {
        coolTime = 9999999;
        startButton.gameObject.SetActive(true);
        monsterCollection = GameObject.FindGameObjectWithTag("MonsterCollection").GetComponent <MonsterCollection>();
        rounds            = new List <StageRound>();

        MakeStage();
    }
Пример #4
0
    private MonsterCollection monsterCollection; // Récupérer le fichier MonsterCollection

    void Start()
    {
        XmlSerializer serial = new XmlSerializer(typeof(MonsterCollection));                                          //Sérialise et désérialise des objets dans des documents XML ou à partir de documents XML. XmlSerializer permet de contrôler le mode d'encodage des objets en langage XML.
        Stream        stream = new FileStream(Application.dataPath + "/_SCRIPTS/XML/ReadXmlFile.xml", FileMode.Open); // permet de lire le fichier XML

        monsterCollection = (MonsterCollection)serial.Deserialize(stream);                                            // ce qui est définie dans MonsterCollection est maintenant égal à ce qui est dans le XML

        Debug.Log(monsterCollection.Monsters[0].Name);
        Debug.Log(monsterCollection.Monsters[1].Defense);
    }
Пример #5
0
        public void ChangeLanesLength(int newLength)
        {
            Length = newLength;

            // Remove all Bullets outside the lane
            MonsterCollection.RemoveWhere(
                monster => !IsInsideLane(monster));

            // Remove all Bullets outside the lane
            BulletCollection.RemoveWhere(
                bullet => !IsInsideLane(bullet));
        }
Пример #6
0
 public void MoveMonsters()
 {
     foreach (var monster in MonsterCollection)
     {
         monster.LanePosition -= 1;
         if (!IsInsideLane(monster))
         {
             MonsterCollection.Remove(monster);
         }
     }
     MonsterCollection.RemoveWhere(
         monster => !IsInsideLane(monster));
 }
Пример #7
0
        public void SpawnMonster(Monster monster)
        {
            monster.LanePosition = Length;

            // Check if the space is occupied by another bullet
            // Don't add the new one in this case.
            foreach (var otherMonster in MonsterCollection)
            {
                if (otherMonster.LanePosition == monster.LanePosition)
                {
                    return;
                }
            }

            MonsterCollection.Add(monster);
        }
        public void MakeAStory_When_Called_With_Story_Components_A_Single_Story_Is_Produced()
        {
            LootCollection fakeLootCollection = new LootCollection();
            var            LootList           = new List <LootModel>();

            LootList.Add(new LootModel("Loot", 10));
            fakeLootCollection.Loot = LootList;

            var mockLootRepository = new Mock <IRepository>();

            mockLootRepository
            .Setup(x => x.GetLootCollection())
            .Returns(fakeLootCollection);


            var fakeMonsterCollection = new MonsterCollection();
            var monsterList           = new List <MonsterModel>();

            monsterList.Add(new MonsterModel("Monster", 1, 1, 1, 10));
            fakeMonsterCollection.Monsters = monsterList;

            var mockMonsterRepository = new Mock <IRepository>();

            mockMonsterRepository
            .Setup(x => x.GetMonsterCollection())
            .Returns(fakeMonsterCollection);

            var stubStoryElements = new StoryElements(
                new MonsterFactory(mockMonsterRepository.Object),
                new LootFactory(mockLootRepository.Object),
                new RoomFactory(1, 1));

            stubStoryElements.CreateStoryElements();

            var sut         = new DungeonGenerator.StoryMaker();
            var storyResult = sut.MakeAStory(stubStoryElements);

            var TestStory = $"You stand in a room 1' x 1'.\n"
                            + $"On the far side of the room you see a Monster, \n"
                            + $"guarding a Loot";

            Assert.Equal(TestStory, storyResult);
        }
Пример #9
0
    public void OnEnable()
    {
        _monsterCollection = AssetDatabase.LoadAssetAtPath <MonsterCollection>("Assets/ScriptableObjects/Monster/MonsterCollection.asset");
        _root = rootVisualElement;
        var           visualTree    = AssetDatabase.LoadAssetAtPath <VisualTreeAsset>("Assets/ScriptableObjects/Editor/MonsterEditor.uxml");
        VisualElement labelFromUXML = visualTree.CloneTree();

        _root.Add(labelFromUXML);
        _styleSheet = AssetDatabase.LoadAssetAtPath <StyleSheet>("Assets/ScriptableObjects/Editor/MonsterEditor.uss");

        _defaultIcon = AssetDatabase.LoadAssetAtPath <Sprite>("Assets/Sprites/Skill_PlaceHolder.png");

        _title = _root.Q("Title") as Label;

        _removeSkillButton          = _root.Q("RemoveSkillButton") as Button;
        _removeSkillButton.clicked += RemoveSkill;

        _backToSkillsButton          = _root.Q("BackToSkillsButton") as Button;
        _backToSkillsButton.clicked += BackToSkills;

        RefreshCollection();
    }
Пример #10
0
        public void MakeAStory_When_Called_With_A_Single_Monster_The_Singluar_Joining_Word_Will_Be_Used()
        {
            LootCollection fakeLootCollection = new LootCollection();
            var            LootList           = new List <LootModel>();

            LootList.Add(new LootModel("Loot", 10));
            fakeLootCollection.Loot = LootList;

            var mockLootRepository = new Mock <IRepository>();

            mockLootRepository
            .Setup(x => x.GetLootCollection())
            .Returns(fakeLootCollection);


            var fakeMonsterCollection = new MonsterCollection();
            var monsterList           = new List <MonsterModel>();

            monsterList.Add(new MonsterModel("Monster", 1, 1, 1, 10));
            fakeMonsterCollection.Monsters = monsterList;

            var mockMonsterRepository = new Mock <IRepository>();

            mockMonsterRepository
            .Setup(x => x.GetMonsterCollection())
            .Returns(fakeMonsterCollection);

            var stubStoryElements = new StoryElements(
                new MonsterFactory(mockMonsterRepository.Object),
                new LootFactory(mockLootRepository.Object),
                new RoomFactory(10, 10));

            stubStoryElements.CreateStoryElements();

            var sut         = new StoryMaker();
            var storyResult = sut.MakeAStory(stubStoryElements);

            Assert.Contains("a Monster", storyResult);
        }