Пример #1
0
        public void AddResistance(Modifier resistance)
        {
            if (_resistances == null)
                _resistances = new List<Modifier>();

            _resistances.Add(resistance);
        }
Пример #2
0
        public void AddWeakness(Modifier weakness)
        {
            if (_weaknesses == null)
                _weaknesses = new List<Modifier>();

            _weaknesses.Add(weakness);
        }
Пример #3
0
        private void SaveControlsData()
        {
            _race.Name = txtRaceName.Text;
            _race.Description = txtRaceDescription.Text;

            // Add stat modifiers and weakness/resistances
            if (lstStatModifiers.Items.Count > 0)
            {
                if (_race.StatModifiersCount > 0)
                    _race.ClearStatModifiers();

                string stat, id;
                int val;

                for (int i = 0; i < lstStatModifiers.Items.Count; i++)
                {
                    stat = lstStatModifiers.Items[i].ToString();
                    val = Convert.ToInt32(stat.Substring(stat.IndexOf(":") + 2));  // + 2 here due to the space between the number and the ":"
                    id = GetStatID(stat.Substring(0, stat.IndexOf(":")));

                    if (id != "")
                        _race.AddStatModifier(id, val);
                    else
                        MessageBox.Show("Error getting stat ID for item " + i.ToString() + " in stat modifier list");
                }
            }

            if (lstWRs.Items.Count > 0)
            {
                if (_race.WRsCount > 0)
                    _race.ClearWRs();

                string item, type, name;
                int val;
                Modifier modifier;

                for (int i = 0; i < lstWRs.Items.Count; i++)
                {
                    item = lstWRs.Items[i].ToString();
                    type = item.Substring(0, item.IndexOf("-")).Trim();
                    name = item.Substring(item.IndexOf("-") + 2, item.IndexOf(":") - item.IndexOf("-") - 2).Trim();

                    val = Convert.ToInt32(item.Substring(item.IndexOf(":") + 2));

                    modifier = new Modifier();
                    modifier.Amount = val;
                    modifier.Type = (ModifierType)Enum.Parse(typeof(ModifierType), name);

                    switch (type)
                    {
                        case "Resistance":
                            {
                                _race.AddResistance(modifier);
                                break;
                            }
                        case "Weakness":
                            {
                                _race.AddWeakness(modifier);
                                break;
                            }
                    }
                }
            }
        }