public override ItemModel Clone() { AbilityItemModel clone = new AbilityItemModel(); clone.CopyFrom(this, true); return(clone); }
protected override void copyExtendedProperties(ItemModel sourceItemModel) { AbilityItemModel abilityItemModel = sourceItemModel as AbilityItemModel; if (abilityItemModel == null) { throw new InvalidCastException("Invalid type."); } AbilityEffectType = abilityItemModel.AbilityEffectType; AbilityTargetType = abilityItemModel.AbilityTargetType; AbilityDurationType = abilityItemModel.AbilityDurationType; CastTurns = abilityItemModel.CastTurns; CoolDownTurns = abilityItemModel.CoolDownTurns; CoolDownTurnsElapsed = abilityItemModel.CoolDownTurnsElapsed; ImmediateAmout = abilityItemModel.ImmediateAmout; IsSpellBased = abilityItemModel.IsSpellBased; if (AbilityDurationType == AbilityDurationType.MultiTurn) { AbilityDurationData = abilityItemModel.AbilityDurationData.Clone(false); } }