Example #1
0
  @Override
  public boolean resolve(Combat c, Character target) {
    double m = Global.random(6, 13);
    if (getSelf().has(Trait.disciplinarian)) {
      boolean shamed =
          Global.random(10) >= 5 || !target.is(Stsflag.shamed) && getSelf().canSpend(5);
      if (shamed) {
        getSelf().spendMojo(c, 5);
      }
      writeOutput(c, Result.special, target);
      if (shamed) {
        target.add(c, new Shamed(target));
        target.emote(Emotion.angry, 10);
        target.emote(Emotion.nervous, 15);
      }
      if (target.has(Trait.achilles)) {
        m += 10;
      } else {
        m += 5;
      }
    } else {
      writeOutput(c, Result.normal, target);
    }
    target.pain(c, (int) getSelf().modifyDamage(DamageType.physical, target, m));

    target.emote(Emotion.angry, 25);
    target.emote(Emotion.nervous, 15);
    target.loseMojo(c, 10);
    return true;
  }
Example #2
0
 @Override
 public boolean resolve(Combat c, Character target) {
   if (getSelf().human()) {
     c.write(getSelf(), deal(c, 0, Result.normal, target));
   } else if (target.human()) {
     c.write(getSelf(), receive(c, 0, Result.normal, target));
   }
   double m =
       (6 + Global.random(4) + getSelf().body.getHotness(getSelf(), target))
           * Math.min(2, 1 + getSelf().getExposure());
   if (target.has(Trait.imagination)) {
     m += 4;
     target.tempt(c, getSelf(), (int) Math.round(m));
     if (Global.random(4) >= 1) {
       target.add(c, new Shamed(target));
     }
   } else {
     target.tempt(c, getSelf(), (int) Math.round(m));
     if (Global.random(4) >= 2) {
       target.add(c, new Shamed(target));
     }
   }
   target.emote(Emotion.angry, 30);
   target.emote(Emotion.nervous, 15);
   getSelf().emote(Emotion.dominant, 20);
   target.loseMojo(c, 5);
   return true;
 }