public static IAttributeModifier GetModifier(AttributModifierType p_modifierType, GameObject p_owner, BaseAttributeParam p_param) { IAttributeModifier modifierFactor = null; switch (p_modifierType) { case AttributModifierType.Resource: modifierFactor = new ResourceModifier(); break; case AttributModifierType.DurationRatio: modifierFactor = new DurationRatioModifier(); break; case AttributModifierType.Duration: modifierFactor = new DurationModifier(); break; case AttributModifierType.SingleValue: modifierFactor = new SingleValueModifier(); break; default: Debug.Log("The type " + p_modifierType.ToString() + " is not implemented."); return(null); } modifierFactor.SetAttributeParam(p_param); modifierFactor.OnStart(p_owner); return(modifierFactor); }
public bool Handle(IAttributeModifier modifier, ObjectCardContext context) { var isObjectModification = context.EditiedObject != null; if (context.IsReadOnly) { return(false); } if (_tripleNumberTextAttr == null) { return(false); } foreach (var item in _tripleNumberTextAttr) { if (context.AttributesValues.TryGetValue(item.NumberAttr, out var attr)) { if (attr is decimal n) { var st = n.ToString(CultureInfo.CurrentCulture); var kop = string.Empty; var split = st.Split('.'); if (split.Length == 2) { kop = split[1]; } var split1 = st.Split(','); if (split1.Length == 2) { kop = split1[1]; } var t = Math.Truncate(n); var j = decimal.ToInt32(t); var s = RusNumber.Str(j).Trim(); if (!string.IsNullOrEmpty(kop)) { s = s + " " + kop + " копеек"; } var s2 = n.ToString("N"); var pos = s2.LastIndexOf(','); var substring = s2.Substring(0, pos); modifier.SetValue(item.StrAttr, s); modifier.SetValue(item.StrNumberAttr, substring + " рублей " + kop + " копеек"); } } } return(true); }
public ComposedElementModifier( IElementSelector elementSelector, IElementAttributeSelector attributeSelector, IAttributeModifier attributeModifier) { if (elementSelector == null) { throw new ArgumentNullException("elementSelector"); } if (attributeSelector == null) { throw new ArgumentNullException("attributeSelector"); } if (attributeModifier == null) { throw new ArgumentNullException("attributeModifier"); } this.elementSelector = elementSelector; this.attributeSelector = attributeSelector; this.attributeModifier = attributeModifier; }
public bool Handle(IAttributeModifier modifier, ObjectCardContext context) { var isObjectModification = context.EditiedObject != null; if (isObjectModification || context.IsReadOnly) { return(false); } if (_doc == null) { return(false); } var docProp = _doc.GetProps(); foreach (var pairPilotKompasAttr in _pairPilotKompasAttrs) { var val = docProp.FirstOrDefault(x => x.Name == pairPilotKompasAttr.NamePropKompas)?.Value; if (val != null) { modifier.SetValue(pairPilotKompasAttr.NameAttrPilot, ValueTextClear(val)); } } return(true); }
public void AddAbsoluteModifier(IAttributeModifier modifier) { _absoluteModifiers.Add(modifier); }
public void AddRelativeModifier(IAttributeModifier modifier) { _relativeModifiers.Add(modifier); }
public void AddModifier(IAttributeModifier modifier) { _modifiers.Add(modifier); }
public bool OnValueChanged(IAttribute sender, AttributeValueChangedEventArgs args, IAttributeModifier modifier) { return(false); }
public bool OnValueChanged(IAttribute sender, AttributeValueChangedEventArgs args, IAttributeModifier modifier) { throw new NotImplementedException(); }
public bool Handle(IAttributeModifier modifier, ObjectCardContext context) { throw new NotImplementedException(); }