コード例 #1
0
ファイル: WeakParalysis.java プロジェクト: JEBailey/CoffeeMud
  public void affectPhyStats(Physical affected, PhyStats affectableStats) {
    super.affectPhyStats(affected, affectableStats);
    if (affected == null) return;
    if (!(affected instanceof MOB)) return;

    affectableStats.setSensesMask(affectableStats.sensesMask() | PhyStats.CAN_NOT_MOVE);
  }
コード例 #2
0
 @Override
 public void affectPhyStats(Physical aff, PhyStats affectableStats) {
   if ((aff instanceof MOB)
       && (affected instanceof Item)
       && (((Item) affected).amWearingAt(Wearable.WORN_NECK))
       && (((MOB) aff).isMine(affected)))
     affectableStats.setSensesMask(affectableStats.sensesMask() | PhyStats.CAN_NOT_BREATHE);
 }
コード例 #3
0
ファイル: Plant.java プロジェクト: bozimmerman/CoffeeMud
 @Override
 public void affectPhyStats(Physical affected, PhyStats affectableStats) {
   affectableStats.setDisposition(affectableStats.disposition() | PhyStats.IS_GOLEM);
   affectableStats.setSensesMask(
       affectableStats.sensesMask()
           | PhyStats.CAN_NOT_SPEAK
           | PhyStats.CAN_NOT_TASTE
           | PhyStats.CAN_NOT_MOVE);
 }
コード例 #4
0
 @Override
 public void affectPhyStats(Physical E, PhyStats stats) {
   super.affectPhyStats(E, stats);
   if ((E instanceof MOB)
       && (E != invoker())
       && (((MOB) E).charStats().getCurrentClass().baseClass().equals("Bard"))) {
     int lvl = adjustedLevel(invoker(), 0) / 10;
     if (lvl < 1) lvl = 1;
     stats.setLevel(stats.level() + lvl);
   }
 }
コード例 #5
0
 @Override
 public void affectPhyStats(Physical affected, PhyStats affectableStats) {
   super.affectPhyStats(affected, affectableStats);
   if (!(affected instanceof MOB)) return;
   if (lycanRace() != null) {
     if (affected.name().indexOf(' ') > 0)
       affectableStats.setName(L("a @x1 called @x2", lycanRace().name(), affected.name()));
     else affectableStats.setName(L("@x1 the @x2", affected.name(), lycanRace().name()));
     lycanRace().setHeightWeight(affectableStats, 'M');
   }
 }
コード例 #6
0
ファイル: Fish.java プロジェクト: JEBailey/CoffeeMud
 public void affectPhyStats(Physical affected, PhyStats affectableStats) {
   final MOB mob = (MOB) affected;
   final Room R = mob.location();
   if ((R != null)
       && ((R.domainType() == Room.DOMAIN_INDOORS_WATERSURFACE)
           || (R.domainType() == Room.DOMAIN_OUTDOORS_WATERSURFACE)
           || (R.domainType() == Room.DOMAIN_INDOORS_UNDERWATER)
           || (R.domainType() == Room.DOMAIN_OUTDOORS_UNDERWATER)
           || ((RawMaterial.CODES.GET(R.getAtmosphere()) & RawMaterial.MATERIAL_MASK)
               == RawMaterial.MATERIAL_LIQUID)))
     affectableStats.setDisposition(affectableStats.disposition() | PhyStats.IS_SWIMMING);
 }
コード例 #7
0
ファイル: Stone.java プロジェクト: kingdavid127/MUD
 @Override
 public void affectPhyStats(Physical affected, PhyStats affectableStats) {
   affectableStats.setDisposition(affectableStats.disposition() | PhyStats.IS_GOLEM);
   affectableStats.setSensesMask(
       affectableStats.sensesMask() | PhyStats.CAN_NOT_SPEAK | PhyStats.CAN_NOT_TASTE);
   affectableStats.setArmor(affectableStats.armor() + affectableStats.armor());
   affectableStats.setAttackAdjustment(0);
   affectableStats.setDamage(0);
 }
コード例 #8
0
 public void affectPhyStats(Physical affected, PhyStats affectableStats) {
   super.affectPhyStats(affected, affectableStats);
   if (affected instanceof MOB) {
     Item myWeapon = ((MOB) affected).fetchWieldedItem();
     if ((myWeapon instanceof Weapon)
         && (((Weapon) myWeapon).weaponClassification() == Weapon.CLASS_THROWN))
       affectableStats.setAttackAdjustment(
           affectableStats.attackAdjustment()
               + (int)
                   Math.round(
                       (15.0 + getXLEVELLevel(invoker())) * (CMath.div(proficiency(), 100.0))));
   }
 }
コード例 #9
0
 @Override
 public void affectPhyStats(Physical affected, PhyStats affectableStats) {
   super.affectPhyStats(affected, affectableStats);
   affectableStats.setSpeed(affectableStats.speed() + 0.25);
   int oldDisposition = affectableStats.disposition();
   oldDisposition =
       oldDisposition
           & (~(PhyStats.IS_SLEEPING
               | PhyStats.IS_SNEAKING
               | PhyStats.IS_SITTING
               | PhyStats.IS_CUSTOM));
   affectableStats.setDisposition(oldDisposition);
 }
コード例 #10
0
ファイル: Prancer.java プロジェクト: renokun/CoffeeMud
 @Override
 public void affectPhyStats(Physical affected, PhyStats affectableStats) {
   super.affectPhyStats(affected, affectableStats);
   if (affected instanceof MOB) {
     if (CMLib.flags().isStanding((MOB) affected)) {
       final MOB mob = (MOB) affected;
       final int attArmor =
           (((int) Math.round(CMath.div(mob.charStats().getStat(CharStats.STAT_DEXTERITY), 9.0)))
                   + 1)
               * (mob.charStats().getClassLevel(this) - 1);
       affectableStats.setArmor(affectableStats.armor() - attArmor);
     }
   }
 }
コード例 #11
0
ファイル: Prop_Hidden.java プロジェクト: JEBailey/CoffeeMud
 public void affectPhyStats(Physical affected, PhyStats affectableStats) {
   super.affectPhyStats(affected, affectableStats);
   if (affected instanceof MOB) {
     affectableStats.setSensesMask(affectableStats.sensesMask() | PhyStats.CAN_SEE_HIDDEN);
     if (ticksSinceLoss > 30)
       affectableStats.setDisposition(affectableStats.disposition() | PhyStats.IS_HIDDEN);
   } else {
     if (unLocatable)
       affectableStats.setSensesMask(affectableStats.sensesMask() | PhyStats.SENSE_UNLOCATABLE);
     if (affected instanceof Item) {
       if ((((Item) affected).owner() instanceof Room)
           && ((!(affected instanceof Container))
               || (!((Container) affected).hasALid())
               || (!((Container) affected).isOpen())))
         affectableStats.setDisposition(affectableStats.disposition() | PhyStats.IS_HIDDEN);
     } else affectableStats.setDisposition(affectableStats.disposition() | PhyStats.IS_HIDDEN);
   }
 }
コード例 #12
0
ファイル: Song_Ode.java プロジェクト: bozimmerman/CoffeeMud
 @Override
 public void affectPhyStats(Physical affected, PhyStats affectableStats) {
   if ((whom != null) && (song != null)) {
     final Hashtable<Integer, Integer> H = getSongBenefits(song);
     for (final Enumeration<Integer> e = H.keys(); e.hasMoreElements(); ) {
       final Integer I = e.nextElement();
       final String[] chk = stuff[I.intValue()];
       if ((chk != null) && (chk[1].startsWith("e"))) {
         int ticks = H.get(I).intValue();
         if (ticks <= 0) ticks = 1;
         switch (chk[2].charAt(0)) {
           case 'a':
             if (ticks > 25) ticks = 25;
             affectableStats.setAttackAdjustment(
                 affectableStats.attackAdjustment() + ticks + getXLEVELLevel(invoker()));
             break;
           default:
             break;
         }
       }
     }
   }
 }
コード例 #13
0
 @Override
 public void affectPhyStats(Physical affected, PhyStats affectableStats) {
   super.affectPhyStats(affected, affectableStats);
   if (affected == null) return;
   if (levelsDown < 0) return;
   final int attacklevel = affectableStats.attackAdjustment() / affectableStats.level();
   affectableStats.setLevel(affectableStats.level() - (levelsDown * direction));
   if (affectableStats.level() <= 0) {
     levelsDown = -1;
     CMLib.combat().postDeath(invoker(), (MOB) affected, null);
   }
   affectableStats.setAttackAdjustment(
       affectableStats.attackAdjustment() - (attacklevel * (levelsDown * direction)));
 }
コード例 #14
0
  @Override
  public void affectPhyStats(Physical affected, PhyStats affectableStats) {
    super.affectPhyStats(affected, affectableStats);
    if (affected == null) return;
    if (!(affected instanceof MOB)) return;
    final MOB mob = (MOB) affected;

    if (mob == invoker) return;

    final int xlvl = super.getXLEVELLevel(invoker());
    if (CMLib.flags().isEvil(mob)) {
      affectableStats.setArmor(affectableStats.armor() - 15 - (6 * xlvl));
      affectableStats.setAttackAdjustment(affectableStats.attackAdjustment() + 20 + (4 * xlvl));
    } else if (CMLib.flags().isGood(mob)) {
      affectableStats.setArmor(affectableStats.armor() + 15 + (6 * xlvl));
      affectableStats.setAttackAdjustment(affectableStats.attackAdjustment() - 20 - (4 * xlvl));
    }
  }
コード例 #15
0
 public void affectPhyStats(Physical affected, PhyStats affectableStats) {
   super.affectPhyStats(affected, affectableStats);
   if ((invoker == null) && (affected instanceof MOB)) invoker = (MOB) affected;
   if (invoker != null) {
     float f = (float) CMath.mul(0.2, getXLEVELLevel(invoker));
     affectableStats.setDamage(
         affectableStats.damage()
             - (int) Math.round(CMath.div(affectableStats.damage(), 2.0 + f)));
     affectableStats.setAttackAdjustment(
         affectableStats.attackAdjustment()
             - (int) Math.round(CMath.div(affectableStats.attackAdjustment(), 2.0 + f)));
   }
 }
コード例 #16
0
  public void affectPhyStats(Physical affected, PhyStats affectableStats) {
    super.affectPhyStats(affected, affectableStats);
    if (affected == null) return;
    if (!(affected instanceof MOB)) return;
    MOB mob = (MOB) affected;
    int xlvl = super.getXLEVELLevel(invoker());
    affectableStats.setAttackAdjustment(
        affectableStats.attackAdjustment() + ((affected.phyStats().level() + (2 * xlvl)) / 5) + 1);
    affectableStats.setDamage(
        affectableStats.damage() + ((affected.phyStats().level() + (2 * xlvl)) / 5) + 1);

    if (mob.isInCombat()) {
      MOB victim = mob.getVictim();
      if (CMLib.flags().isEvil(victim))
        affectableStats.setArmor(affectableStats.armor() - 5 - xlvl);
    }
  }
コード例 #17
0
ファイル: Prayer_Refuge.java プロジェクト: renokun/CoffeeMud
 @Override
 public void affectPhyStats(Physical host, PhyStats affectableStats) {
   affectableStats.setDisposition(affectableStats.disposition() | PhyStats.IS_BONUS);
 }
コード例 #18
0
ファイル: Dance_Grass.java プロジェクト: JEBailey/CoffeeMud
 public void affectPhyStats(Physical affected, PhyStats affectableStats) {
   super.affectPhyStats(affected, affectableStats);
   if (affected == null) return;
   affectableStats.setDisposition(affectableStats.disposition() | PhyStats.IS_BONUS);
   affectableStats.setArmor(affectableStats.armor() - (2 * adjustedLevel(invoker(), 0)));
 }
コード例 #19
0
ファイル: Spell_Shrink.java プロジェクト: JEBailey/CoffeeMud
 public void affectPhyStats(Physical host, PhyStats affectedStats) {
   super.affectPhyStats(host, affectedStats);
   int height = (int) Math.round(affectedStats.height() * 0.10);
   if (height == 0) height = 1;
   affectedStats.setHeight(height);
 }
コード例 #20
0
ファイル: Spell_Slow.java プロジェクト: bozimmerman/CoffeeMud
 @Override
 public void affectPhyStats(Physical affected, PhyStats affectableStats) {
   super.affectPhyStats(affected, affectableStats);
   affectableStats.setSpeed(CMath.div(affectableStats.speed(), 2.0));
 }
コード例 #21
0
 @Override
 public void affectPhyStats(Physical affected, PhyStats affectableStats) {
   super.affectPhyStats(affected, affectableStats);
   affectableStats.setSensesMask(affectableStats.sensesMask() | PhyStats.CAN_SEE_SNEAKERS);
 }
コード例 #22
0
ファイル: Demon.java プロジェクト: JEBailey/CoffeeMud
 public void affectPhyStats(Physical affected, PhyStats affectableStats) {
   super.affectPhyStats(affected, affectableStats);
   affectableStats.setSensesMask(affectableStats.sensesMask() | PhyStats.CAN_SEE_INFRARED);
 }
コード例 #23
0
ファイル: Falling.java プロジェクト: bozimmerman/CoffeeMud
 @Override
 public void affectPhyStats(Physical affected, PhyStats affectableStats) {
   super.affectPhyStats(affected, affectableStats);
   if ((affectableStats.disposition() & PhyStats.IS_FLYING) == 0)
     affectableStats.setDisposition(affectableStats.disposition() | PhyStats.IS_FALLING);
 }
コード例 #24
0
 @Override
 public void affectPhyStats(Physical affected, PhyStats affectableStats) {
   super.affectPhyStats(affected, affectableStats);
   affectableStats.setSensesMask(mask & mask2);
 }
コード例 #25
0
 public void affectPhyStats(Physical affected, PhyStats affectableStats) {
   super.affectPhyStats(affected, affectableStats);
   affectableStats.setLevel(affectableStats.level() + 1);
 }
コード例 #26
0
 @Override
 public void affectPhyStats(Physical affected, PhyStats affectableStats) {
   super.affectPhyStats(affected, affectableStats);
   affectableStats.setDisposition(affectableStats.disposition() | PhyStats.IS_SNEAKING);
 }
コード例 #27
0
ファイル: AirElemental.java プロジェクト: JEBailey/CoffeeMud
 public void affectPhyStats(Physical affected, PhyStats affectableStats) {
   affectableStats.setDisposition(affectableStats.disposition() | PhyStats.IS_GOLEM);
 }