public override void Initialise(RoomObjectGO roomObject, ObjectInteraction objectInteraction)
    {
        Logger.Log("initalise characters options menu");

        _objectInteraction = objectInteraction;
        RoomObject         = roomObject;
        List <Character> possibleInteractionCharacters = CharacterManager.Instance.Characters;

        AddRoomObjectName(roomObject.RoomObjectBlueprint.Name);
        for (int i = 0; i < possibleInteractionCharacters.Count; i++)
        {
            if (!possibleInteractionCharacters[i].PossibleObjectInteractions.Contains(_objectInteraction.ObjectInteractionType))
            {
                Logger.Log("{0} can not be done by {1}", _objectInteraction.ObjectInteractionType, possibleInteractionCharacters[i].FullName());
                continue;
            }

            GameObject InteractionOptionGO = Instantiate(ObjectInteractionOptionsContainerGO.InteractionOptionPrefab, InteractionOptionsContainer.transform);
            InteractionOptionGO.name = CharacterNameGenerator.GetName(possibleInteractionCharacters[i].CharacterName);

            ObjectInteractionOptionButton objectInteractionOptionButton = CreateInteractionOptionButton(InteractionOptionGO, i, possibleInteractionCharacters.Count);
            objectInteractionOptionButton.SetInteractingCharacter(possibleInteractionCharacters[i]);
            objectInteractionOptionButton.SetInteractionOptionText(possibleInteractionCharacters[i].FullName());
        }
    }
Ejemplo n.º 2
0
    public void BuildCharacter(List <string> allArguments)
    {
        List <string> arguments = allArguments.Where((v, i) => i != 0).ToList();

        if (arguments.Count > 0)
        {
            Console.Instance.PrintToReportText("Argument '" + arguments[0] + "' was invalid. Could not create character");
            return;
        }

        CharacterStats characterStats = new CharacterStats(
            CharacterRoleGenerator.Generate(),
            CharacterAgeGenerator.Generate(),
            CharacterNameGenerator.PickGender());

        Vector2 startingPosition = new Vector2(15, 15);

        CharacterManager.Instance.GenerateCharacter(
            characterStats,
            startingPosition);

        Character character     = CharacterManager.Instance.Characters[CharacterManager.Instance.Characters.Count - 1];
        string    characterName = CharacterNameGenerator.GetName(character.CharacterName);

        Console.Instance.PrintToReportText(characterName + " was just born");
    }
        public void it_should_set_up_dislikes_and_likes_for_characters()
        {
            RandomNumberGenerator      randomNumberGenerator      = new SystemRandomNumberGenerator();
            TagFactory                 tagFactory                 = new TagFactory(randomNumberGenerator);
            ItemFactory                itemFactory                = new ItemFactory(tagFactory);
            CharacterNameGenerator     characterNameGenerator     = new CharacterNameGenerator(randomNumberGenerator);
            CharacterSafeCodeGenerator characterSafeCodeGenerator = new CharacterSafeCodeGenerator(randomNumberGenerator);

            for (int i = 1; i < 51; i++)
            {
                itemFactory.CreateItem("item" + i, "", "", "", new List <String> {
                    "item" + i + "tag1", "commonTag1", "commonTag2"
                });
            }

            CharacterFactory characterFactory = new CharacterFactory(randomNumberGenerator, itemFactory, tagFactory, characterNameGenerator, characterSafeCodeGenerator);
            List <Character> characters       = characterFactory.GenerateCharactersForGame(5);

            Assert.AreEqual(5, characters.Count);
            Assert.AreEqual(5, characters[0].LikeTags.Count);

            Console.WriteLine("Characters:\n");
            foreach (Character character in characters)
            {
                Console.WriteLine(character);
            }
        }
    public void GenerateCharacter(CharacterStats characterStats, Vector2 position)
    {
        GameObject characterGO = GameManager.Instance.InstantiatePrefab(CharacterPrefab, SceneObjectsGO.transform, position);

        Character character = SetupCharacter(characterGO, characterStats);

        characterGO.name = CharacterNameGenerator.GetName(characterStats.Name);
    }
 public CharacterStats(Role role, int age, Gender gender)
 {
     Role   = role;
     Name   = CharacterNameGenerator.Generate(gender);
     Age    = age;
     Gender = gender;
     Image  = CharacterImageGenerator.Generate(gender);
 }
Ejemplo n.º 6
0
 void Awake()
 {
     spriteHelper  = SpriteHelper.instance;
     nameGenerator = CharacterNameGenerator.instance;
     // Init resources of gold and diamond
     _goldRes               = Resources.Load <Transform>("Prefabs/Shared/Gold");
     _diamondRes            = Resources.Load <Transform>("Prefabs/Shared/Diamond");
     _reduceAmountMotionRes = Resources.Load <ReduceAmountMotion>("Prefabs/Shared/Reduce Amount Motion");
 }
Ejemplo n.º 7
0
        public void it_should_be_able_to_generate_a_room_of_items()
        {
            for (int k = 0; k < 1000; k++)
            {
                RandomNumberGenerator randomNumberGenerator = new SystemRandomNumberGenerator();

                TagFactory tagFactory = new TagFactory(randomNumberGenerator);

                ItemFactory itemFactory = new ItemFactory(tagFactory);

                CharacterNameGenerator     characterNameGenerator     = new CharacterNameGenerator(randomNumberGenerator);
                CharacterSafeCodeGenerator characterSafeCodeGenerator = new CharacterSafeCodeGenerator(randomNumberGenerator);

                for (int i = 1; i < 51; i++)
                {
                    itemFactory.CreateItem("item" + i, "", "", "", new List <String> {
                        "item" + i + "tag1", "common"
                    });
                }

                CharacterFactory characterFactory = new CharacterFactory(
                    randomNumberGenerator,
                    itemFactory,
                    tagFactory,
                    characterNameGenerator,
                    characterSafeCodeGenerator
                    );

                List <Character> characters = characterFactory.GenerateCharactersForGame(5);

                RoomFactory roomFactory = new RoomFactory(
                    characterFactory,
                    itemFactory,
                    randomNumberGenerator
                    );

                Room room = roomFactory.GenerateRoomForCharacter(characters[1]);
                //Assert.AreEqual(10, room.Items.Count);

                foreach (Tag tag in characters[1].DislikeTags)
                {
                    foreach (Item item in room.Items)
                    {
                        Console.WriteLine(tag.Name);
                        Assert.False(item.Tags.Contains(tag));
                    }
                }

                Console.WriteLine("Characters:");
                foreach (Character c in characters)
                {
                    Console.WriteLine(c + "\n");
                }
                Console.Write("Room:\n" + room);
            }
        }
        private CharacterNameGenerator CreateCharacterNameGenerator(AncestryModel[] ancestryModels)
        {
            var mockRepository = new Mock <ICharacterNameRepository>();

            mockRepository.Setup(x => x.ListAncestries()).ReturnsAsync(ancestryModels);
            var mockItemSelector    = new Mock <IRandomItemSelector>();
            var mockNumberGenerator = new Mock <IRandomNumberGenerator>();

            var generator = new CharacterNameGenerator(mockRepository.Object, mockItemSelector.Object, mockNumberGenerator.Object);

            return(generator);
        }
        private CharacterNameGenerator CreateCharacterNameGenerator(AncestryDetailsModel detailModel)
        {
            var mockRepository = new Mock <ICharacterNameRepository>();

            mockRepository.Setup(x => x.GetAncestry(detailModel.Code)).ReturnsAsync(detailModel);

            var rng = new RandomNumberGenerator();
            var ris = new RandomItemSelector(rng);

            var mockNumberGenerator = new Mock <IRandomNumberGenerator>();

            var generator = new CharacterNameGenerator(mockRepository.Object, ris, rng);

            return(generator);
        }
Ejemplo n.º 10
0
    public void Setup(Character character)
    {
        Character = character;

        if (Character.Gender == Gender.Male)
        {
            AvatarImage.sprite = CharacterManager.Instance.AvatarsMale.Single(s => s.name == character.Image);
        }
        if (Character.Gender == Gender.Female)
        {
            AvatarImage.sprite = CharacterManager.Instance.AvatarsFemale.Single(s => s.name == character.Image);
        }

        Name.text       = CharacterNameGenerator.GetName(character.CharacterName);
        Profession.text = character.GetType().ToString();
    }
    void Start()
    {
        _avatarContainer = AvatarContainer.Instance;

        GenerateCharacter(
            new CharacterStats(
                CharacterRoleGenerator.Generate(),
                CharacterAgeGenerator.Generate(),
                CharacterNameGenerator.PickGender()),
            new Vector2(0, 15));
        GenerateCharacter(
            new CharacterStats(
                CharacterRoleGenerator.Generate(),
                CharacterAgeGenerator.Generate(),
                CharacterNameGenerator.PickGender()),
            new Vector2(5, 10));
    }
Ejemplo n.º 12
0
    private Character FindCharacter(string satanisedName, NameType nameType)
    {
        List <Character> charactersInGame = CharacterManager.Instance.Characters;

        Character characterToDelete = null;

        Logger.Log("Trying to find {0}", satanisedName);
        if (nameType == NameType.FullName)
        {
            characterToDelete = charactersInGame.Find(i => CharacterNameGenerator.GetName(i.CharacterName).ToLower() == satanisedName);
        }
        if (characterToDelete == null && (nameType == NameType.FirstName || nameType == NameType.FullName))
        {
            characterToDelete = charactersInGame.Find(i => i.CharacterName.FirstName.ToLower() == satanisedName);
        }
        if (characterToDelete == null && (nameType == NameType.LastName || nameType == NameType.FullName))
        {
            characterToDelete = charactersInGame.Find(i => i.CharacterName.LastName.ToLower() == satanisedName);
        }

        return(characterToDelete);
    }
Ejemplo n.º 13
0
        /** Creates the UI componenets required to display the gui */
        private void CreateUIComponents()
        {
            var window = new GuiWindow(800, 560);

            window.Background.Sprite = ResourceManager.GetSprite("Gui/InnerWindow");
            window.Background.Color  = new Color(0.5f, 0.5f, 0.5f);
            PositionComponent(window, 0, 0);
            Add(window);

            // ------------------

            nameInput               = new GuiTextField(0, 0, 200);
            nameInput.Value         = CharacterNameGenerator.GenerateName();
            nameInput.LabelText     = "Name";
            nameInput.LabelPosition = LabelPosition.Left;
            window.Add(nameInput, 0, 20);

            var randomButton = new GuiButton("random", -1, 20);

            window.Add(randomButton, (int)nameInput.Bounds.xMax + 10, 25);

            // ------------------

            var genderListFrame = new FramedListBox <MDRGender>(200, 100, "Gender");

            window.Add(genderListFrame, 260, 100);

            portraitSelector          = new GuiPictureSeletor();
            portraitSelector.Pictures = CoM.Instance.Portraits.GetEntries().ToArray();
            window.Add(portraitSelector, 460, 70 + 18 + 20);

            allRacesToggle                 = new GuiToggleButton();
            allRacesToggle.LabelText       = "Show All";
            allRacesToggle.LabelPosition   = LabelPosition.Right;
            allRacesToggle.X               = (int)portraitSelector.Bounds.xMax + 10;
            allRacesToggle.Y               = (int)portraitSelector.Bounds.y + 30;
            allRacesToggle.Value           = false;
            allRacesToggle.OnValueChanged += delegate {
                updatePortraits();
            };
            window.Add(allRacesToggle);

            // ------------------

            var raceListFrame = new FramedListBox <MDRRace>(200, 240, "Race");

            window.Add(raceListFrame, 20, 240);

            statList = new GuiStatList(new MDRStats());
            window.Add(statList, 220 + 20, 240);

            var characterInfo = new GuiWindow(250, 240, "Info");

            window.Add(characterInfo, 470 + 40, 240);

            characterInfoText          = new GuiLabel(0, 0, "");
            characterInfoText.Align    = GuiAlignment.Full;
            characterInfoText.WordWrap = true;
            characterInfo.Add(characterInfoText);

            // ------------------

            // ------------------

            GuiButton cancelButton = new GuiButton("Cancel", 100);

            window.Add(cancelButton, 20, -20);

            GuiButton doneButton = new GuiButton("Save", 100);

            window.Add(doneButton, -20, -20);


            raceList = raceListFrame.ListBox;
            foreach (MDRRace race in CoM.Races)
            {
                raceList.Add(race);
            }

            genderList = genderListFrame.ListBox;
            genderList.Add(MDRGender.Male);
            genderList.Add(MDRGender.Female);

            genderList.OnSelectedChanged += delegate {
                updateGender();
            };
            raceList.OnSelectedChanged += delegate {
                updateRace();
            };

            doneButton.OnMouseClicked += delegate {
                if (statList.FreePoints != 0)
                {
                    Engine.ConfirmAction(saveAndClose, "This character still has " + Util.Colorise(statList.FreePoints, Color.green) + " stat points left to spend.\nAre you sure you want to save the character without spending them?");
                }
                else
                {
                    saveAndClose();
                }
            };

            cancelButton.OnMouseClicked += delegate {
                Engine.PopState();
            };
            randomButton.OnMouseClicked += delegate {
                nameInput.Value = CharacterNameGenerator.GenerateName();
            };

            updateRace();
            updateGender();
        }
Ejemplo n.º 14
0
 public string FullName()
 {
     return(CharacterNameGenerator.GetName(CharacterName));
 }