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); } } }
public static void ApplyDamageTypeList(TakeDamage takeDamage, ref DamageEvent damage, DamageTypeList damageType) { ProtectionTakeDamage damage2 = takeDamage as ProtectionTakeDamage; string str = damage.victim.idMain.name.Replace("(Clone)", ""); for (int i = 0; i < 6; i++) { DamageTypeFlags flags = (DamageTypeFlags)(((int)1) << i); float result = (damage2 != null) ? damage2.GetArmorValue(i) : 0f; string key = str + "." + flags.ToString().Replace("damage_", ""); if (!(damage.victim.idMain is Character)) { Config.Get("OVERRIDE.ARMOR", key, ref result, true); } if ((result > 0f) && (damageType[i] > 0f)) { DamageTypeList list; int num3; (list = damageType)[num3 = i] = list[num3] * Mathf.Clamp01(1f - (result / 200f)); } if (!Mathf.Approximately(damageType[i], 0f)) { damage.damageTypes |= flags; damage.amount += damageType[i]; } } }
protected void ArmorData(byte[] data) { DamageTypeList armor = new DamageTypeList(); BitStream stream = new BitStream(data, false); for (int i = 0; i < 6; i++) { armor[i] = stream.ReadSingle(); } ProtectionTakeDamage takeDamage = this.takeDamage; if (takeDamage != null) { takeDamage.SetArmorValues(armor); } if (base.localPlayerControlled) { RPOS.SetEquipmentDirty(); } }
protected void ArmorData(byte[] data) { DamageTypeList damageTypeList = new DamageTypeList(); uLink.BitStream bitStream = new uLink.BitStream(data, false); for (int i = 0; i < 6; i++) { damageTypeList[i] = bitStream.ReadSingle(); } ProtectionTakeDamage protectionTakeDamage = this.takeDamage; if (protectionTakeDamage) { protectionTakeDamage.SetArmorValues(damageTypeList); } if (base.localPlayerControlled) { RPOS.SetEquipmentDirty(); } }
public void CalculateArmor() { InventoryHolder inventoryHolder = this.inventoryHolder; ProtectionTakeDamage takeDamage = this.takeDamage; if ((inventoryHolder != null) && (takeDamage != null)) { DamageTypeList damageList = new DamageTypeList(); for (int i = 0x24; i < 40; i++) { ArmorDataBlock block; IInventoryItem item; if (inventoryHolder.inventory.GetItem(i, out item) && ((block = item.datablock as ArmorDataBlock) != null)) { block.AddToDamageTypeList(damageList); } } if (takeDamage != null) { takeDamage.SetArmorValues(damageList); } } }