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]; } } }
public static bool Convert(string[] names, out DamageTypeFlags flags) { DamageTypeIndex damageTypeIndex; for (int i = 0; i < (int)names.Length; i++) { if (DamageTypeNames.Values.TryGetValue(names[i], out damageTypeIndex)) { flags = (DamageTypeFlags)((int)DamageTypeIndex.damage_bullet << (int)(damageTypeIndex & (DamageTypeIndex.damage_bullet | DamageTypeIndex.damage_melee | DamageTypeIndex.damage_explosion | DamageTypeIndex.damage_radiation | DamageTypeIndex.damage_cold | DamageTypeIndex.damage_last))); while (true) { int num = i + 1; i = num; if (num >= (int)names.Length) { break; } if (DamageTypeNames.Values.TryGetValue(names[i], out damageTypeIndex)) { flags = (DamageTypeFlags)((int)flags | (int)DamageTypeIndex.damage_bullet << (int)(damageTypeIndex & (DamageTypeIndex.damage_bullet | DamageTypeIndex.damage_melee | DamageTypeIndex.damage_explosion | DamageTypeIndex.damage_radiation | DamageTypeIndex.damage_cold | DamageTypeIndex.damage_last))); } } return(true); } } flags = (DamageTypeFlags)0; return(false); }
public static bool Convert(string name, out DamageTypeFlags flags) { DamageTypeIndex damageTypeIndex; if (DamageTypeNames.Values.TryGetValue(name, out damageTypeIndex)) { flags = (DamageTypeFlags)((int)DamageTypeIndex.damage_bullet << (int)(damageTypeIndex & (DamageTypeIndex.damage_bullet | DamageTypeIndex.damage_melee | DamageTypeIndex.damage_explosion | DamageTypeIndex.damage_radiation | DamageTypeIndex.damage_cold | DamageTypeIndex.damage_last))); return(true); } if (name.Length == 0 || name == "none") { flags = (DamageTypeFlags)0; return(true); } return(DamageTypeNames.Convert(name.Split(DamageTypeNames.SplitCharacters, StringSplitOptions.RemoveEmptyEntries), out flags)); }
public static bool Convert(string name, out DamageTypeFlags flags) { DamageTypeIndex index; if (Values.TryGetValue(name, out index)) { flags = (DamageTypeFlags)(((int)1) << index); return(true); } if ((name.Length != 0) && !(name == "none")) { return(Convert(name.Split(SplitCharacters, StringSplitOptions.RemoveEmptyEntries), out flags)); } flags = 0; return(true); }
static DamageTypeNames() { for (DamageTypeIndex index = DamageTypeIndex.damage_generic; index < DamageTypeIndex.damage_last; index += 1) { string str2; Strings[(int)index] = str2 = index.ToString().Substring("damage_".Length); Values.Add(str2, index); } uint num = 0x3f; Mask = (DamageTypeFlags)num; Flags = new string[num]; Flags[0] = "none"; for (uint i = 1; i < num; i++) { uint num3 = i; for (int j = 0; j < 6; j++) { if ((i & (((int)1) << j)) == (((int)1) << j)) { string str = Strings[j]; num3 &= (uint)~(((int)1) << j); if (num3 != 0) { while (++j < 6L) { if ((i & (((int)1) << j)) == (((int)1) << j)) { str = str + "|" + Strings[j]; num3 &= (uint)~(((int)1) << j); if (num3 == 0) { break; } } } } break; } } } }
public static bool Convert(string[] names, out DamageTypeFlags flags) { for (int i = 0; i < names.Length; i++) { DamageTypeIndex index; if (Values.TryGetValue(names[i], out index)) { flags = (DamageTypeFlags)(((int)1) << index); while (++i < names.Length) { if (Values.TryGetValue(names[i], out index)) { flags |= ((int)1) << index; } } return(true); } } flags = 0; return(false); }
static DamageTypeNames() { DamageTypeNames.SplitCharacters = new char[] { '|' }; DamageTypeNames.Strings = new string[6]; DamageTypeNames.Values = new Dictionary <string, DamageTypeIndex>(6); for (DamageTypeIndex i = DamageTypeIndex.damage_generic; i < DamageTypeIndex.damage_last; i = (DamageTypeIndex)((int)i + (int)DamageTypeIndex.damage_bullet)) { Dictionary <string, DamageTypeIndex> values = DamageTypeNames.Values; string[] strings = DamageTypeNames.Strings; string str = i.ToString().Substring("damage_".Length); string str1 = str; strings[(int)i] = str; values.Add(str1, i); } uint num = 63; DamageTypeNames.Mask = (DamageTypeFlags)num; DamageTypeNames.Flags = new string[num]; DamageTypeNames.Flags[0] = "none"; for (uint j = 1; j < num; j++) { uint num1 = j; int num2 = 0; while (num2 < 6) { if ((j & 1 << (num2 & 31)) != 1 << (num2 & 31)) { num2++; } else { string strings1 = DamageTypeNames.Strings[num2]; UInt32 num3 = num1 & ~(1 << (num2 & 31 & 31)); num1 = num3; if (num3 != 0) { while (true) { int num4 = num2 + 1; num2 = num4; if ((long)num4 >= (long)6) { break; } if ((j & 1 << (num2 & 31)) == 1 << (num2 & 31)) { strings1 = string.Concat(strings1, "|", DamageTypeNames.Strings[num2]); num1 = num1 & ~(1 << (num2 & 31 & 31)); if (num1 == 0) { break; } } } break; } else { break; } } } } }
public static bool Convert(DamageTypeIndex index, out DamageTypeFlags flags) { flags = (DamageTypeFlags)((int)DamageTypeIndex.damage_bullet << (int)(index & (DamageTypeIndex.damage_bullet | DamageTypeIndex.damage_melee | DamageTypeIndex.damage_explosion | DamageTypeIndex.damage_radiation | DamageTypeIndex.damage_cold | DamageTypeIndex.damage_last))); return(((int)flags & (int)DamageTypeNames.Mask) == (int)flags); }
public static bool Convert(DamageTypeIndex index, out DamageTypeFlags flags) { flags = (DamageTypeFlags)(((int)1) << index); return((flags & Mask) == flags); }
public static bool Convert(string[] names, out DamageTypeFlags flags) { DamageTypeIndex damageTypeIndex; for (int i = 0; i < (int)names.Length; i++) { if (DamageTypeNames.Values.TryGetValue(names[i], out damageTypeIndex)) { flags = (DamageTypeFlags)((int)DamageTypeIndex.damage_bullet << (int)(damageTypeIndex & (DamageTypeIndex.damage_bullet | DamageTypeIndex.damage_melee | DamageTypeIndex.damage_explosion | DamageTypeIndex.damage_radiation | DamageTypeIndex.damage_cold | DamageTypeIndex.damage_last))); while (true) { int num = i + 1; i = num; if (num >= (int)names.Length) { break; } if (DamageTypeNames.Values.TryGetValue(names[i], out damageTypeIndex)) { flags = (DamageTypeFlags)((int)flags | (int)DamageTypeIndex.damage_bullet << (int)(damageTypeIndex & (DamageTypeIndex.damage_bullet | DamageTypeIndex.damage_melee | DamageTypeIndex.damage_explosion | DamageTypeIndex.damage_radiation | DamageTypeIndex.damage_cold | DamageTypeIndex.damage_last))); } } return true; } } flags = (DamageTypeFlags)0; return false; }
static DamageTypeNames() { DamageTypeNames.SplitCharacters = new char[] { '|' }; DamageTypeNames.Strings = new string[6]; DamageTypeNames.Values = new Dictionary<string, DamageTypeIndex>(6); for (DamageTypeIndex i = DamageTypeIndex.damage_generic; i < DamageTypeIndex.damage_last; i = (DamageTypeIndex)((int)i + (int)DamageTypeIndex.damage_bullet)) { Dictionary<string, DamageTypeIndex> values = DamageTypeNames.Values; string[] strings = DamageTypeNames.Strings; string str = i.ToString().Substring("damage_".Length); string str1 = str; strings[(int)i] = str; values.Add(str1, i); } uint num = 63; DamageTypeNames.Mask = (DamageTypeFlags)num; DamageTypeNames.Flags = new string[num]; DamageTypeNames.Flags[0] = "none"; for (uint j = 1; j < num; j++) { uint num1 = j; int num2 = 0; while (num2 < 6) { if ((j & 1 << (num2 & 31)) != 1 << (num2 & 31)) { num2++; } else { string strings1 = DamageTypeNames.Strings[num2]; UInt32 num3 = num1 & ~(1 << (num2 & 31 & 31)); num1 = num3; if (num3 != 0) { while (true) { int num4 = num2 + 1; num2 = num4; if ((long)num4 >= (long)6) { break; } if ((j & 1 << (num2 & 31)) == 1 << (num2 & 31)) { strings1 = string.Concat(strings1, "|", DamageTypeNames.Strings[num2]); num1 = num1 & ~(1 << (num2 & 31 & 31)); if (num1 == 0) { break; } } } break; } else { break; } } } } }
public static bool Convert(DamageTypeIndex index, out DamageTypeFlags flags) { flags = (DamageTypeFlags)((int)DamageTypeIndex.damage_bullet << (int)(index & (DamageTypeIndex.damage_bullet | DamageTypeIndex.damage_melee | DamageTypeIndex.damage_explosion | DamageTypeIndex.damage_radiation | DamageTypeIndex.damage_cold | DamageTypeIndex.damage_last))); return ((int)flags & (int)DamageTypeNames.Mask) == (int)flags; }
public static bool Convert(string name, out DamageTypeFlags flags) { DamageTypeIndex damageTypeIndex; if (DamageTypeNames.Values.TryGetValue(name, out damageTypeIndex)) { flags = (DamageTypeFlags)((int)DamageTypeIndex.damage_bullet << (int)(damageTypeIndex & (DamageTypeIndex.damage_bullet | DamageTypeIndex.damage_melee | DamageTypeIndex.damage_explosion | DamageTypeIndex.damage_radiation | DamageTypeIndex.damage_cold | DamageTypeIndex.damage_last))); return true; } if (name.Length == 0 || name == "none") { flags = (DamageTypeFlags)0; return true; } return DamageTypeNames.Convert(name.Split(DamageTypeNames.SplitCharacters, StringSplitOptions.RemoveEmptyEntries), out flags); }