@Override public boolean resolve(Combat c, Character target) { int m = 10 + Global.random(8); boolean facesitting = c.getStance().enumerate() == Stance.facesitting; if (getSelf().has(Trait.silvertongue)) { m += 4; } if (isVaginal(c)) { m += 4; if (target.human()) { c.write(getSelf(), receive(c, m, Result.intercourse, target)); } else if (getSelf().human()) { c.write(getSelf(), deal(c, m, Result.intercourse, target)); } target.body.pleasure( getSelf(), getSelf().body.getRandom("pussy"), target.body.getRandom("c**k"), m, c); } else if (facesitting) { if (target.human()) { c.write(getSelf(), receive(c, m, Result.reverse, target)); } else if (getSelf().human()) { c.write(getSelf(), deal(c, m, Result.reverse, target)); } target.body.pleasure( getSelf(), getSelf().body.getRandom("mouth"), target.body.getRandom("c**k"), m, c); target.buildMojo(c, 10); } else if (c.getStance().mobile(target) && target.roll(this, c, accuracy(c))) { if (getSelf().has(Trait.silvertongue)) { if (target.human()) { c.write(getSelf(), receive(c, m, Result.special, target)); } else if (getSelf().human()) { c.write(getSelf(), deal(c, m, Result.special, target)); } } else { if (target.human()) { c.write(getSelf(), receive(c, m, Result.normal, target)); } else if (getSelf().human()) { c.write(getSelf(), deal(c, m, Result.normal, target)); } } BodyPart mouth = getSelf().body.getRandom("mouth"); BodyPart c**k = target.body.getRandom("c**k"); target.body.pleasure(getSelf(), mouth, c**k, m, c); if (mouth.isErogenous()) { getSelf().body.pleasure(getSelf(), c**k, mouth, m, c); } if (ReverseMount.class.isInstance(c.getStance())) { c.setStance(new SixNine(getSelf(), target)); } } else { if (getSelf().human()) { c.write(deal(c, 0, Result.miss, target)); } else if (target.human()) { c.write(receive(c, 0, Result.miss, target)); } return false; } return true; }