//________________________________________________________________________________________________ static void deliverDamage(Human attacker, Human defender, int targetPos) { Bone b = new Bone(); Arm a = new Arm (6, 1); bool severed = false; if (targetPos == 4) { a = defender.LeftArm; b = defender.LeftArm.ArmBones[Random.Range(1,defender.LeftArm.ArmBones.Count)]; } if (targetPos == 6) { a = defender.RightArm; b = defender.RightArm.ArmBones[Random.Range(1,defender.RightArm.ArmBones.Count)]; } if (checkSever (attacker.weapon, b)) { //remove arm if severed foreach(Bone c in a.ArmBones){ if (b.hierarchy < c.hierarchy && c.useHierarchy) { c.removeBone(c); } if (defender.weapon != null && a == defender.RightArm) { defender.weapon = null; } } severed = true; } try{ Debug.Log(a +" has been hit! Severed: " + severed); b.health -= attacker.weapon.avgDamage; b.checkBone (b); } catch {//bone wasnt set successfully probably } }