public void LoadEnumValues <T>() where T : struct, IConvertible { var type = typeof(T); if (!type.IsEnum) { throw new ArgumentException("T must be an enumerated type.", nameof(T)); } ItemsType = type; ItemsSource = new ReadOnlyObservableCollection <NamedEnum>(new ObservableCollection <NamedEnum>(NamedEnum.FromType <T>())); SelectedItem = new NamedEnum(Settings.Current.Dimensions, "Selected Value", true); }
public string ValidateQuery() { NamedEnum NE = this.cmbTest.SelectedItem as NamedEnum; if (NE == null) { return(I18N.GetText("Query:NoQueryType")); } Test T = (Test)NE.Value; switch (T) { case Test.StartsWith: case Test.EndsWith: case Test.Contains: case Test.DoesntContain: if (this.txtTestParameter.Text == String.Empty) { return(I18N.GetText("Query:NoEmptyString")); } return(null); case Test.Equals: return(null); case Test.MatchesRegexp: case Test.DoesntMatchRegexp: if (this.txtTestParameter.Text == String.Empty) { return(I18N.GetText("Query:NoEmptyString")); } try { // Try to parse the regex Regex RE = new Regex(this.txtTestParameter.Text, RegexOptions.Multiline | RegexOptions.ExplicitCapture); } catch { return(I18N.GetText("Query:BadRegexp")); } return(null); } return(I18N.GetText("Query:BadQueryType")); }
public ItemPredicate() { this.InitializeComponent(); { // Add all item fields List <ItemField> ItemFields = new List <ItemField>(); ItemFields.Add(new ItemField(null, I18N.GetText("ItemField:Any"))); { Item I = new Item(); foreach (string Field in I.GetAllFields()) { ItemFields.Add(new ItemField(Field, I.GetFieldName(Field))); } } this.cmbField.DataSource = ItemFields; } this.cmbField.SelectedIndex = 0; // Any Field this.cmbTest.Items.AddRange(NamedEnum.GetAll(typeof(Test))); this.cmbTest.SelectedIndex = 0; // Contains }
private bool MatchString(string S) { if (S == null) { return(false); } NamedEnum NE = this.cmbTest.SelectedItem as NamedEnum; if (NE == null) { return(false); } Test T = (Test)NE.Value; switch (T) { case Test.StartsWith: return(S.StartsWith(this.txtTestParameter.Text)); case Test.EndsWith: return(S.EndsWith(this.txtTestParameter.Text)); case Test.Equals: return(S == this.txtTestParameter.Text); case Test.Contains: case Test.DoesntContain: { int Pos = S.IndexOf(this.txtTestParameter.Text); return((T == Test.Contains) ? (Pos >= 0) : (Pos < 0)); } case Test.MatchesRegexp: case Test.DoesntMatchRegexp: { Regex RE = new Regex(this.txtTestParameter.Text, RegexOptions.Multiline | RegexOptions.ExplicitCapture); return((T == Test.MatchesRegexp) ? RE.IsMatch(S) : !RE.IsMatch(S)); } } return(false); }
private void cmbViewMode_SelectedIndexChanged(object sender, EventArgs e) { NamedEnum NE = this.cmbViewMode.SelectedItem as NamedEnum; this.picImage.SizeMode = (PictureBoxSizeMode)NE.Value; }
public void AddModifiers(string condition, ClientEffect importObject, int valuePos, int deltaPos) { string[] condParts = condition.Split(new string[] { ",", " " }, StringSplitOptions.RemoveEmptyEntries); this.modifiers = new ActionModifiers(); foreach (string cond in condParts) { if (cond.StartsWith("_race_")) { string race = cond.Remove(0, 6); SkillTargetRace targetRace = SkillTargetRace.PC_ALL; if (race == "pc_light") { targetRace = SkillTargetRace.ELYOS; } else if (race == "pc_dark") { targetRace = SkillTargetRace.ASMODIANS; } else { targetRace = (SkillTargetRace)Enum.Parse(typeof(SkillTargetRace), race, true); } if (targetRace != SkillTargetRace.PC_ALL) { if (this.modifiers.targetrace == null) { this.modifiers.targetrace = new List <TargetRaceDamageModifier>(); } var mod = new TargetRaceDamageModifier(); mod.race = targetRace; if (importObject.reserved[valuePos] != null) { mod.value = Int32.Parse(importObject.reserved[valuePos].Trim()); } if (importObject.reserved[deltaPos] != null) { mod.delta = Int32.Parse(importObject.reserved[deltaPos].Trim()); } this.modifiers.targetrace.Add(mod); } } else { try { TargetState targetState = new NamedEnum <TargetState>(cond); if (targetState == TargetState.BACK) { this.modifiers.backdamage = new BackDamageModifier(); this.modifiers.backdamage.value = Int32.Parse(importObject.reserved[valuePos].Trim()); this.modifiers.backdamage.delta = Int32.Parse(importObject.reserved[deltaPos].Trim()); } else if (targetState == TargetState.FRONT) { this.modifiers.frontdamage = new FrontDamageModifier(); this.modifiers.frontdamage.value = Int32.Parse(importObject.reserved[valuePos].Trim()); this.modifiers.frontdamage.delta = Int32.Parse(importObject.reserved[deltaPos].Trim()); } else if (targetState == TargetState.FLYING) { this.modifiers.flyingdamage = new FlyingDamageModifier(); if (importObject.reserved[valuePos] != null) { this.modifiers.flyingdamage.value = Int32.Parse(importObject.reserved[valuePos].Trim()); } if (importObject.reserved[deltaPos] != null) { this.modifiers.flyingdamage.delta = Int32.Parse(importObject.reserved[deltaPos].Trim()); } } else if (targetState == TargetState.NON_FLYING) { this.modifiers.nonflyingdamage = new NonFlyingDamageModifier(); if (importObject.reserved[valuePos] != null) { this.modifiers.nonflyingdamage.value = Int32.Parse(importObject.reserved[valuePos].Trim()); } if (importObject.reserved[deltaPos] != null) { this.modifiers.nonflyingdamage.delta = Int32.Parse(importObject.reserved[deltaPos].Trim()); } } else { if (this.modifiers.abnormaldamage == null) { this.modifiers.abnormaldamage = new List <AbnormalDamageModifier>(); } var abnormaldamage = new AbnormalDamageModifier(); abnormaldamage.type = targetState; if (importObject.reserved[valuePos] != null) { abnormaldamage.value = Int32.Parse(importObject.reserved[valuePos].Trim()); } if (importObject.reserved[deltaPos] != null) { abnormaldamage.delta = Int32.Parse(importObject.reserved[deltaPos].Trim()); } this.modifiers.abnormaldamage.Add(abnormaldamage); } if (condParts.Length > 1) { Debug.Print("WARN: More than 1 modifier for skill: {0}", importObject.Skill.id); } } catch { Debug.Print("Modifier '{0}' not handled", cond); } } } if (!this.modifiers.Present) { this.modifiers = null; } }
public void AddModifiers(string condition, ClientEffect importObject, int valuePos, int deltaPos) { string[] condParts = condition.Split(new string[] { ",", " " }, StringSplitOptions.RemoveEmptyEntries); this.modifiers = new ActionModifiers(); foreach (string cond in condParts) { if (cond.StartsWith("_race_")) { string race = cond.Remove(0, 6); SkillTargetRace targetRace = SkillTargetRace.PC_ALL; if (race == "pc_light") { targetRace = SkillTargetRace.ELYOS; } else if (race == "pc_dark") { targetRace = SkillTargetRace.ASMODIANS; } else { targetRace = (SkillTargetRace)Enum.Parse(typeof(SkillTargetRace), race, true); } if (targetRace != SkillTargetRace.PC_ALL) { if (this.modifiers.targetrace == null) this.modifiers.targetrace = new List<TargetRaceDamageModifier>(); var mod = new TargetRaceDamageModifier(); mod.race = targetRace; if (importObject.reserved[valuePos] != null) mod.value = Int32.Parse(importObject.reserved[valuePos].Trim()); if (importObject.reserved[deltaPos] != null) mod.delta = Int32.Parse(importObject.reserved[deltaPos].Trim()); this.modifiers.targetrace.Add(mod); } } else { try { TargetState targetState = new NamedEnum<TargetState>(cond); if (targetState == TargetState.BACK) { this.modifiers.backdamage = new BackDamageModifier(); this.modifiers.backdamage.value = Int32.Parse(importObject.reserved[valuePos].Trim()); this.modifiers.backdamage.delta = Int32.Parse(importObject.reserved[deltaPos].Trim()); } else if (targetState == TargetState.FRONT) { this.modifiers.frontdamage = new FrontDamageModifier(); this.modifiers.frontdamage.value = Int32.Parse(importObject.reserved[valuePos].Trim()); this.modifiers.frontdamage.delta = Int32.Parse(importObject.reserved[deltaPos].Trim()); } else if (targetState == TargetState.FLYING) { this.modifiers.flyingdamage = new FlyingDamageModifier(); if (importObject.reserved[valuePos] != null) this.modifiers.flyingdamage.value = Int32.Parse(importObject.reserved[valuePos].Trim()); if (importObject.reserved[deltaPos] != null) this.modifiers.flyingdamage.delta = Int32.Parse(importObject.reserved[deltaPos].Trim()); } else if (targetState == TargetState.NON_FLYING) { this.modifiers.nonflyingdamage = new NonFlyingDamageModifier(); if (importObject.reserved[valuePos] != null) this.modifiers.nonflyingdamage.value = Int32.Parse(importObject.reserved[valuePos].Trim()); if (importObject.reserved[deltaPos] != null) this.modifiers.nonflyingdamage.delta = Int32.Parse(importObject.reserved[deltaPos].Trim()); } else { if (this.modifiers.abnormaldamage == null) this.modifiers.abnormaldamage = new List<AbnormalDamageModifier>(); var abnormaldamage = new AbnormalDamageModifier(); abnormaldamage.type = targetState; if (importObject.reserved[valuePos] != null) abnormaldamage.value = Int32.Parse(importObject.reserved[valuePos].Trim()); if (importObject.reserved[deltaPos] != null) abnormaldamage.delta = Int32.Parse(importObject.reserved[deltaPos].Trim()); this.modifiers.abnormaldamage.Add(abnormaldamage); } if (condParts.Length > 1) { Debug.Print("WARN: More than 1 modifier for skill: {0}", importObject.Skill.id); } } catch { Debug.Print("Modifier '{0}' not handled", cond); } } } if (!this.modifiers.Present) this.modifiers = null; }
public virtual void Import(ClientEffect importObject, IEnumerable <FieldInfo> getters) { effectid = importObject.effectid; e = importObject.e; basiclvl = importObject.basiclv; hoptype = importObject.hop_type; hopa = importObject.hop_a; hopb = importObject.hop_b; if (importObject.remain[1].HasValue && importObject.remain[1].Value != 0) { duration = importObject.remain[1].Value; } if (importObject.remain[0].HasValue) { duration += importObject.remain[0].Value; } randomtime = importObject.randomtime; noresist = importObject.noresist; if (importObject.accuracy_modifiers != null && importObject.accuracy_modifiers[1] != null) { acc_mod = importObject.accuracy_modifiers[1].Value; } if (this is OverTimeEffect || this is SpellAtkDrainEffect || this is DiseaseEffect) { checktime = importObject.checktime; } if (importObject.reserved[8] != null) { onfly = importObject.reserved[8].Trim() == "1"; } if (importObject.reserved[9] != null) { try { element = (SkillElement)(Enum.Parse(typeof(SkillElement), importObject.reserved[9].Trim(), true)); if (!Enum.IsDefined(typeof(SkillElement), element)) { element = SkillElement.NONE; } } catch { Debug.Print("R9: {0}", importObject.reserved[9]); } } if (importObject.cond_preeffect != PreeffectNumber.NONE) { this.preeffects_mask = (int)importObject.cond_preeffect; if (importObject.cond_preeffect_prob[1] != null) { this.preeffect_prob = importObject.cond_preeffect_prob[1].Value / 100m; } else { this.preeffect_prob = 1; } } if (this.preeffect_prob != 1 && e > 1) { this.preeffect_probSpecified = true; } if (importObject.critical_prob_modifiers[1] != null) { this.critical_prob = importObject.critical_prob_modifiers[1].Value / 100m; } else { this.critical_prob = 1; } if (!String.IsNullOrEmpty(importObject.cond_status)) { NamedEnum <TargetState> v = new NamedEnum <TargetState>(importObject.cond_status); TargetState state = v; this.cond_effect = state; } }