示例#1
0
    public void AddLevel()
    {
        HeroLevel heroLevel = ScriptableObject.CreateInstance <HeroLevel>();

        ScriptableObjects.Add(heroLevel, this);
        levels.Add(heroLevel);
    }
示例#2
0
 private void WriteDescriptor(XmlWriter writer, Hero hero, HeroLevel level, HeroDescriptor descriptor)
 {
     writer.WriteStartElement("SimulationDescriptor");
     writer.WriteAttributeString("Name", descriptor.GetIdentifier(hero.Name, level.Level));
     writer.WriteAttributeString("Type", XmlTranslation.AsText(descriptor.GetType(level.Level)));
     WriteModifiers(writer, descriptor);
     writer.WriteEndElement();
 }
示例#3
0
        private HeroLevel CreateHeroLevel(XmlNode heroConfig)
        {
            var level = new HeroLevel();

            level.FoodCost = heroConfig.Attribute <int>("FoodCost");
            level.Level    = XmlTranslation.ValueAs <int>(heroConfig.Attribute("Name").Split("_LVL")[1]);
            level.Skills   = heroConfig.Select("Skills/Skill", CreateSkill);
            return(level);
        }
 public HeroInfo(HeroDeath hd)
 {
     this.@class     = hd.HeroClass;
     this.name       = hd.HeroName;
     this.level      = hd.HeroLevel;
     this.deathCause = hd.CauseOfDeath;
     this.affliction = hd.Affliction == null ? global::Affliction.None : hd.Affliction.GetValueOrDefault();
     this.virtue     = hd.Virtue == null ? global::Virtue.None : hd.Virtue.GetValueOrDefault();
 }
示例#5
0
        private void PopulateDescriptor(Hero hero, HeroLevel level, XmlDocument document)
        {
            var xpath = $"Datatable/SimulationDescriptor[@Name='{level.GetIdentifier(hero.Name)}']";
            var node  = document.SelectSingleNode(xpath);

            if (node == null)
            {
                return;
            }
            level.Descriptors.Add(new HeroDescriptor
            {
                Modifiers = CreateModifiers(node),
            });
        }
示例#6
0
        private void WriteSkills(XmlWriter writer, HeroLevel level)
        {
            if (level.Skills.Count == 0)
            {
                return;
            }

            writer.WriteStartElement("Skills");
            level.Skills.ForEach(skill =>
            {
                writer.WriteStartElement("Skill");
                writer.WriteString(skill);
                writer.WriteEndElement();
            });
            writer.WriteEndElement();
        }
        private HeroDeath GetHeroFromGUI()
        {
            string heroName = HeroNameTextBox.Text;

            if (String.IsNullOrWhiteSpace(heroName))
            {
                MessageBox.Show("Please provide a valid name for your hero!");
                return(null);
            }
            HeroClass           @class = (HeroClass)Enum.Parse(typeof(HeroClass), (HeroClassesComboBox.SelectedItem as string).Replace(' ', '_'));
            HeroLevel           level = (HeroLevel)Enum.Parse(typeof(HeroLevel), HeroLevelsComboBox.SelectedItem as string);
            IList <HeroQuirk>   negativeQuirks, positiveQuirks;
            IList <HeroDisease> diseases;

            negativeQuirks = new List <HeroQuirk>(this.ChosenNegativeQuirks);
            positiveQuirks = new List <HeroQuirk>(this.ChosenPositiveQuirks);
            diseases       = new List <HeroDisease>(this.ChosenHeroDiseases);

            string causeOfDeath = CausesOfDeathListView.SelectedItem as string;

            if (causeOfDeath == null)
            {
                MessageBox.Show("Please select a cause of death for your hero!");
                return(null);
            }

            Affliction?affliction = AfflictionComboBox.SelectedIndex == -1 ? null : (Affliction?)Enum.Parse(typeof(Affliction), AfflictionComboBox.SelectedItem as string);
            Virtue?    virtue     = VirtueComboBox.SelectedIndex == -1 ? null : (Virtue?)Enum.Parse(typeof(Virtue), VirtueComboBox.SelectedItem as string);

            HeroDeath hd = new HeroDeath()
            {
                Affliction     = affliction,
                CauseOfDeath   = causeOfDeath,
                Diseases       = diseases,
                HeroClass      = @class,
                HeroLevel      = level,
                PositiveQuirks = positiveQuirks,
                NegativeQuirks = negativeQuirks,
                HeroName       = heroName,
                Virtue         = virtue
            };

            hd.ImagePath = Morgue.GetInstance().ClassPortraits[hd.HeroClass];

            return(hd);
        }
示例#8
0
 private void PopulateLevelDescriptors(Hero hero, HeroLevel level, XmlDocument document)
 {
     level.Descriptors = new Collection <HeroDescriptor>();
     PopulateDescriptor(hero, level, document);
 }
示例#9
0
 private void MakeCharacter(HeroCard card)
 {
     Class = card;
     MaxHp = 3;
     Hp = Random.Range(1, 3);
     SkillPoint = Random.Range(1, 25);
     Level = HeroLevel.Rookie;
     Attributes = new List<Pair<Stat, int>>
     {
         Pairs.Make(card.Main, 3),
         Pairs.Make(card.Secondary, 2)
     };
     Name = "Char " + Random.Range(0, 99999);
     HeroState = State.Free;
 }