示例#1
0
    //________________________________________________________________________________________________
    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
        }
    }