public static EPlayerHit CalcHitMarker(ItemGunAsset PAsset, ref RaycastInfo ri) { EPlayerHit eplayerHit = EPlayerHit.NONE; bool flag = ri == null || PAsset == null; EPlayerHit result; if (flag) { result = eplayerHit; } else { bool flag2 = ri.animal || ri.player || ri.zombie; if (flag2) { eplayerHit = EPlayerHit.ENTITIY; bool flag3 = ri.limb == ELimb.SKULL; if (flag3) { eplayerHit = EPlayerHit.CRITICAL; } } else { bool flag4 = ri.transform; if (flag4) { bool flag5 = ri.transform.CompareTag("Barricade") && PAsset.barricadeDamage > 1f; if (flag5) { InteractableDoorHinge component = ri.transform.GetComponent <InteractableDoorHinge>(); bool flag6 = component != null; if (flag6) { ri.transform = component.transform.parent.parent; } bool flag7 = !ushort.TryParse(ri.transform.name, out ushort id); if (flag7) { return(eplayerHit); } ItemBarricadeAsset itemBarricadeAsset = (ItemBarricadeAsset)Assets.find(EAssetType.ITEM, id); bool flag8 = itemBarricadeAsset == null || (!itemBarricadeAsset.isVulnerable && !PAsset.isInvulnerable); if (flag8) { return(eplayerHit); } bool flag9 = eplayerHit == EPlayerHit.NONE; if (flag9) { eplayerHit = EPlayerHit.BUILD; } } else { bool flag10 = ri.transform.CompareTag("Structure") && PAsset.structureDamage > 1f; if (flag10) { bool flag11 = !ushort.TryParse(ri.transform.name, out ushort id2); if (flag11) { return(eplayerHit); } ItemStructureAsset itemStructureAsset = (ItemStructureAsset)Assets.find(EAssetType.ITEM, id2); bool flag12 = itemStructureAsset == null || (!itemStructureAsset.isVulnerable && !PAsset.isInvulnerable); if (flag12) { return(eplayerHit); } bool flag13 = eplayerHit == EPlayerHit.NONE; if (flag13) { eplayerHit = EPlayerHit.BUILD; } } else { bool flag14 = ri.transform.CompareTag("Resource") && PAsset.resourceDamage > 1f; if (flag14) { bool flag15 = !ResourceManager.tryGetRegion(ri.transform, out byte x, out byte y, out ushort index); if (flag15) { return(eplayerHit); } ResourceSpawnpoint resourceSpawnpoint = ResourceManager.getResourceSpawnpoint(x, y, index); bool flag16 = resourceSpawnpoint == null || resourceSpawnpoint.isDead || !PAsset.hasBladeID(resourceSpawnpoint.asset.bladeID); if (flag16) { return(eplayerHit); } bool flag17 = eplayerHit == EPlayerHit.NONE; if (flag17) { eplayerHit = EPlayerHit.BUILD; } } else { bool flag18 = PAsset.objectDamage > 1f; if (flag18) { InteractableObjectRubble component2 = ri.transform.GetComponent <InteractableObjectRubble>(); bool flag19 = component2 == null; if (flag19) { return(eplayerHit); } ri.section = component2.getSection(ri.collider.transform); bool flag20 = component2.isSectionDead(ri.section) || (!component2.asset.rubbleIsVulnerable && !PAsset.isInvulnerable); if (flag20) { return(eplayerHit); } bool flag21 = eplayerHit == EPlayerHit.NONE; if (flag21) { eplayerHit = EPlayerHit.BUILD; } } } } } } else { bool flag22 = ri.vehicle && !ri.vehicle.isDead && PAsset.vehicleDamage > 1f; if (flag22) { bool flag23 = ri.vehicle.asset != null && (ri.vehicle.asset.isVulnerable || PAsset.isInvulnerable); if (flag23) { bool flag24 = eplayerHit == EPlayerHit.NONE; if (flag24) { eplayerHit = EPlayerHit.BUILD; } } } } } result = eplayerHit; } return(result); }