public static ItemTooltipArmorStats Create(IProtoItemEquipment protoItem) { return(new ItemTooltipArmorStats() { protoItem = protoItem }); }
public ViewModelItemTooltipArmorStats(IProtoItemEquipment protoItem) { var effects = protoItem.ProtoEffects; var damageTypes = EnumExtensions.GetValues <DamageType>(); var primaryEntriesCount = 3; var arrayPrimary = new DataDefense[primaryEntriesCount]; var arraySecondary = new DataDefense[damageTypes.Length - primaryEntriesCount]; var hasAnyNonZeroProtection = false; for (var index = 0; index < primaryEntriesCount; index++) { AddEntry(index); } for (var index = primaryEntriesCount; index < damageTypes.Length; index++) { AddEntry(index); } this.DefenseEntriesPrimary = arrayPrimary; this.DefenseEntriesSecondary = arraySecondary; this.HasAnyNonZeroProtection = hasAnyNonZeroProtection; void AddEntry(int index) { var damageType = damageTypes[index]; var defenseStatName = WeaponDamageSystem.SharedGetDefenseStatName(damageType); byte defenseValue = 0; if (effects.Values.TryGetValue(defenseStatName, out var defense)) { defenseValue = (byte)MathHelper.Clamp(defense * 100, 0, 100); } var entry = new DataDefense(damageType, defenseValue); if (index < primaryEntriesCount) { arrayPrimary[index] = entry; } else { arraySecondary[index - primaryEntriesCount] = entry; } if (defenseValue > 0) { hasAnyNonZeroProtection = true; } } }
public ProtoItemEquipmentViewModel([NotNull] IProtoItemEquipment equipment) : base(equipment) { }