You're most probably right. I just took the initial stats as the right ones.
However, that second armour (6DR), it was crafted by me first time at lvl 15, as it required crafting 45 on Sam. For attacking facilities we mostly used the ones with the first two levels of upgrades (3DR). But I guess he can practice crafting early on to be able to do it earlier?
Hm, yeah 3DR and 6DR is probably a lot. On the other hand, then you really feel it when loosing protection...
Edit: This I had in the log the other day when upgrading after the mission with survivalist spawn issue, may be related to what you said:
CraftAndRepairManager.CraftItem. Method called for armour.
CraftAndRepairManager.CraftItem. Upgrading armour resistance to damage type: -1
ArgumentOutOfRangeException: Argument is out of range.
Parameter name: index
at System.Collections.Generic.List`1[System.Boolean].CheckIndex (Int32 index) [0x00000] in <filename unknown>:0
at System.Collections.Generic.List`1[System.Boolean].set_Item (Int32 index, Boolean value) [0x00000] in <filename unknown>:0
at Item.UpgradeArmourDamageResistance (Int32 damageTypeUpgrade) [0x00000] in <filename unknown>:0
at CraftAndRepairManager.CraftItem () [0x00000] in <filename unknown>:0
at UnityEngine.Events.InvokableCall.Invoke (System.Object[] args) [0x00000] in <filename unknown>:0
at UnityEngine.Events.InvokableCallList.Invoke (System.Object[] parameters) [0x00000] in <filename unknown>:0
at UnityEngine.Events.UnityEventBase.Invoke (System.Object[] parameters) [0x00000] in <filename unknown>:0
at UnityEngine.Events.UnityEvent.Invoke () [0x00000] in <filename unknown>:0
at UnityEngine.UI.Button.Press () [0x00000] in <filename unknown>:0
at UnityEngine.UI.Button.OnPointerClick (UnityEngine.EventSystems.PointerEventData eventData) [0x00000] in <filename unknown>:0
at UnityEngine.EventSystems.ExecuteEvents.Execute (IPointerClickHandler handler, UnityEngine.EventSystems.BaseEventData eventData) [0x00000] in <filename unknown>:0
at UnityEngine.EventSystems.ExecuteEvents.Execute[IPointerClickHandler] (UnityEngine.GameObject target, UnityEngine.EventSystems.BaseEventData eventData, UnityEngine.EventSystems.EventFunction`1 functor) [0x00000] in <filename unknown>:0
UnityEngine.DebugLogHandler:Internal_LogException(Exception, Object)
UnityEngine.DebugLogHandler:LogException(Exception, Object)
UnityEngine.Logger:LogException(Exception, Object)
UnityEngine.Debug:LogException(Exception)
UnityEngine.EventSystems.ExecuteEvents:Execute(GameObject, BaseEventData, EventFunction`1)
UnityEngine.EventSystems.StandaloneInputModule:ProcessMousePress(MouseButtonEventData)
UnityEngine.EventSystems.StandaloneInputModule:ProcessMouseEvent(Int32)
UnityEngine.EventSystems.StandaloneInputModule:ProcessMouseEvent()
UnityEngine.EventSystems.StandaloneInputModule:Process()
UnityEngine.EventSystems.EventSystem:Update()