示例#1
0
    public void CalculateArmor()
    {
        IInventoryItem       inventoryItem;
        InventoryHolder      inventoryHolder      = this.inventoryHolder;
        ProtectionTakeDamage protectionTakeDamage = this.takeDamage;

        if (inventoryHolder && protectionTakeDamage)
        {
            DamageTypeList damageTypeList = new DamageTypeList();
            for (int i = 36; i < 40; i++)
            {
                if (inventoryHolder.inventory.GetItem(i, out inventoryItem))
                {
                    ArmorDataBlock armorDataBlock  = inventoryItem.datablock as ArmorDataBlock;
                    ArmorDataBlock armorDataBlock1 = armorDataBlock;
                    if (armorDataBlock)
                    {
                        armorDataBlock1.AddToDamageTypeList(damageTypeList);
                    }
                }
            }
            if (protectionTakeDamage)
            {
                protectionTakeDamage.SetArmorValues(damageTypeList);
            }
        }
    }
示例#2
0
    public static ArmorModel GetArmorModelByUniqueID(int uniqueID, ArmorModelSlot slot)
    {
        ArmorDataBlock byUniqueID = GetByUniqueID(uniqueID) as ArmorDataBlock;

        if (byUniqueID == null)
        {
            return(null);
        }
        return(byUniqueID.GetArmorModel(slot));
    }
示例#3
0
    public static TArmorModel GetArmorModelByUniqueID <TArmorModel>(int uniqueID) where TArmorModel : ArmorModel, new()
    {
        ArmorDataBlock byUniqueID = GetByUniqueID(uniqueID) as ArmorDataBlock;

        if (byUniqueID == null)
        {
            return(null);
        }
        return(byUniqueID.GetArmorModel <TArmorModel>());
    }
示例#4
0
    public static ArmorModel GetArmorModelByUniqueID(int uniqueID, ArmorModelSlot slot)
    {
        ArmorDataBlock byUniqueID = DatablockDictionary.GetByUniqueID(uniqueID) as ArmorDataBlock;

        if (!byUniqueID)
        {
            return(null);
        }
        return(byUniqueID.GetArmorModel(slot));
    }
示例#5
0
    public static TArmorModel GetArmorModelByUniqueID <TArmorModel>(int uniqueID)
        where TArmorModel : ArmorModel, new()
    {
        ArmorDataBlock byUniqueID = DatablockDictionary.GetByUniqueID(uniqueID) as ArmorDataBlock;

        if (!byUniqueID)
        {
            return((TArmorModel)null);
        }
        return(byUniqueID.GetArmorModel <TArmorModel>());
    }
示例#6
0
 private static bool BindArmorMap <TArmorModel>(ArmorDataBlock armor, ref ArmorModelMemberMap map) where TArmorModel : ArmorModel, new()
 {
     if (armor != null)
     {
         TArmorModel armorModel = armor.GetArmorModel <TArmorModel>();
         if (armorModel != null)
         {
             map.SetArmorModel <TArmorModel>(armorModel);
             return(true);
         }
     }
     return(false);
 }
示例#7
0
 protected void SAAM(int footArmorUID, int legArmorUID, int torsoArmorUID, int headArmorUID)
 {
     if (footArmorUID == 0)
     {
         this.footArmor = null;
     }
     else
     {
         this.footArmor = (ArmorDataBlock)DatablockDictionary.GetByUniqueID(footArmorUID);
     }
     if (legArmorUID == 0)
     {
         this.legArmor = null;
     }
     else
     {
         this.legArmor = (ArmorDataBlock)DatablockDictionary.GetByUniqueID(legArmorUID);
     }
     if (torsoArmorUID == 0)
     {
         this.torsoArmor = null;
     }
     else
     {
         this.torsoArmor = (ArmorDataBlock)DatablockDictionary.GetByUniqueID(torsoArmorUID);
     }
     if (headArmorUID == 0)
     {
         this.headArmor = null;
     }
     else
     {
         this.headArmor = (ArmorDataBlock)DatablockDictionary.GetByUniqueID(headArmorUID);
     }
     this.RebindRenderers();
 }
示例#8
0
    private static void BindRenderer <TArmorModel>(ArmorModelRenderer prefabRenderer, ArmorDataBlock armor, MeshFilter filter, MeshRenderer renderer) where TArmorModel : ArmorModel <TArmorModel>, new()
    {
        TArmorModel armorModel;

        if (armor != null)
        {
            armorModel = armor.GetArmorModel <TArmorModel>();
            if ((armorModel == null) && (prefabRenderer != null))
            {
                armorModel = prefabRenderer.GetArmorModel <TArmorModel>();
            }
        }
        else if (prefabRenderer != null)
        {
            armorModel = prefabRenderer.GetArmorModel <TArmorModel>();
        }
        else
        {
            return;
        }
        if (armorModel != null)
        {
            Mesh mesh;
            if (ArmorModelRenderer.Censored && (armorModel.censoredModel != null))
            {
                armorModel = armorModel.censoredModel;
            }
            if ((armorModel != null) && armorModel.actorMeshInfo.FindPose("sleep", out mesh))
            {
                filter.sharedMesh        = mesh;
                renderer.sharedMaterials = armorModel.sharedMaterials;
            }
        }
    }