public Python() { super(); username = "******"; setDescription("A humungous snake that is known for squeezing you to DEATH."); setDisplayText("A python wants to give you a hug."); CMLib.factions().setAlignment(this, Faction.Align.NEUTRAL); setMoney(0); basePhyStats().setDamage(7); baseCharStats().setStat(CharStats.STAT_INTELLIGENCE, 1); basePhyStats().setAbility(0); basePhyStats().setLevel(1); basePhyStats().setArmor(90); baseCharStats().setMyRace(CMClass.getRace("Snake")); baseCharStats().getMyRace().startRacing(this, false); baseState.setHitPoints(CMLib.dice().roll(basePhyStats().level(), 20, basePhyStats().level())); recoverMaxState(); resetToMaxState(); recoverPhyStats(); recoverCharStats(); }
public Rabbit() { super(); final Random randomizer = new Random(System.currentTimeMillis()); username = "******"; setDescription("It\\`s small, cute, and fluffy with a cute cotton-ball tail."); setDisplayText("A rabbit hops by."); CMLib.factions().setAlignment(this, Faction.Align.NEUTRAL); setMoney(0); basePhyStats.setWeight(5 + Math.abs(randomizer.nextInt() % 5)); setWimpHitPoint(2); basePhyStats().setDamage(2); baseCharStats().setStat(CharStats.STAT_INTELLIGENCE, 1); baseCharStats().setMyRace(CMClass.getRace("Rabbit")); baseCharStats().getMyRace().startRacing(this, false); basePhyStats().setAbility(0); basePhyStats().setLevel(1); basePhyStats().setArmor(90); baseState.setHitPoints(CMLib.dice().roll(basePhyStats().level(), 20, basePhyStats().level())); recoverMaxState(); resetToMaxState(); recoverPhyStats(); recoverCharStats(); }
public Panther() { super(); final Random randomizer = new Random(System.currentTimeMillis()); username = "******"; setDescription( "A powerful cat with a deep chest and muscular limbs, covered in midnight black fur."); setDisplayText("A panther slowly stalks prey."); CMLib.factions().setAlignment(this, Faction.Align.NEUTRAL); setMoney(0); basePhyStats.setWeight(20 + Math.abs(randomizer.nextInt() % 45)); setWimpHitPoint(2); basePhyStats.setWeight(200 + Math.abs(randomizer.nextInt() % 55)); baseCharStats().setStat(CharStats.STAT_INTELLIGENCE, 1); baseCharStats().setStat(CharStats.STAT_STRENGTH, 12); baseCharStats().setStat(CharStats.STAT_DEXTERITY, 17); baseCharStats().setMyRace(CMClass.getRace("GreatCat")); baseCharStats().getMyRace().startRacing(this, false); basePhyStats().setDamage(8); basePhyStats().setSpeed(2.0); basePhyStats().setAbility(0); basePhyStats().setLevel(4); basePhyStats().setArmor(80); baseState.setHitPoints(CMLib.dice().roll(basePhyStats().level(), 20, basePhyStats().level())); recoverMaxState(); resetToMaxState(); recoverPhyStats(); recoverCharStats(); }
public Cow() { super(); username = "******"; setDescription("A large lumbering beast that looks too slow to get out of your way."); setDisplayText("A fat happy cow wanders around here."); CMLib.factions().setAlignment(this, Faction.Align.NEUTRAL); setMoney(0); setWimpHitPoint(0); basePhyStats().setDamage(1); basePhyStats().setSpeed(1.0); basePhyStats().setAbility(0); basePhyStats().setLevel(2); basePhyStats().setArmor(90); baseCharStats().setStat(CharStats.STAT_GENDER, 'F'); baseCharStats().setMyRace(CMClass.getRace("Cow")); baseCharStats().getMyRace().startRacing(this, false); baseState.setHitPoints(CMLib.dice().roll(basePhyStats().level(), 20, basePhyStats().level())); recoverMaxState(); resetToMaxState(); recoverPhyStats(); recoverCharStats(); }
public Lion() { super(); final Random randomizer = new Random(System.currentTimeMillis()); username = "******"; setDescription("Lions have reddish-orange fur and great furry manes."); setDisplayText("A lion watches you."); CMLib.factions().setAlignment(this, Faction.Align.NEUTRAL); setMoney(0); basePhyStats.setWeight(300 + Math.abs(randomizer.nextInt() % 55)); baseCharStats().setStat(CharStats.STAT_INTELLIGENCE, 1); baseCharStats().setStat(CharStats.STAT_STRENGTH, 13); baseCharStats().setStat(CharStats.STAT_DEXTERITY, 17); baseCharStats().setMyRace(CMClass.getRace("GreatCat")); baseCharStats().getMyRace().startRacing(this, false); basePhyStats().setDamage(10); basePhyStats().setSpeed(2.0); basePhyStats().setAbility(0); basePhyStats().setLevel(5); basePhyStats().setArmor(80); baseState.setHitPoints(CMLib.dice().roll(basePhyStats().level(), 20, basePhyStats().level())); recoverMaxState(); resetToMaxState(); recoverPhyStats(); recoverCharStats(); }
public Monkey() { super(); username = "******"; setDescription("The monkey is brown with a big pink butt."); setDisplayText("A silly monkey lops around here."); CMLib.factions().setAlignment(this, Faction.Align.NEUTRAL); setMoney(0); setWimpHitPoint(2); basePhyStats().setDamage(1); baseCharStats().setMyRace(CMClass.getRace("Monkey")); baseCharStats().getMyRace().startRacing(this, false); basePhyStats().setAbility(0); basePhyStats().setLevel(2); basePhyStats().setArmor(90); baseState.setHitPoints(CMLib.dice().roll(basePhyStats().level(), 20, basePhyStats().level())); recoverMaxState(); resetToMaxState(); recoverPhyStats(); recoverCharStats(); }
public HeavenlyServent() { super(); Random randomizer = new Random(System.currentTimeMillis()); username = "******"; setDescription( "An angelic form in gowns of white, with golden hair, and an ever present smile."); setDisplayText("A servant of the Archons is running errands."); CMLib.factions().setAlignment(this, Faction.ALIGN_NEUTRAL); setMoney(0); basePhyStats.setWeight(20 + Math.abs(randomizer.nextInt() % 55)); setWimpHitPoint(2); addBehavior(CMClass.getBehavior("Mobile")); addBehavior(CMClass.getBehavior("MudChat")); basePhyStats().setDamage(25); basePhyStats().setAbility(0); basePhyStats().setLevel(10); basePhyStats().setArmor(0); baseCharStats().setMyRace(CMClass.getRace("Human")); baseCharStats().getMyRace().startRacing(this, false); baseState.setHitPoints(CMLib.dice().roll(basePhyStats().level(), 20, basePhyStats().level())); recoverMaxState(); resetToMaxState(); recoverPhyStats(); recoverCharStats(); }
public Toad() { super(); username = "******"; setDescription("A stubby little dry amphibian with short legs."); setDisplayText("A toad is squatting here."); CMLib.factions().setAlignment(this, Faction.Align.NEUTRAL); setMoney(0); basePhyStats().setDamage(6); baseCharStats().setStat(CharStats.STAT_INTELLIGENCE, 1); basePhyStats().setAbility(0); basePhyStats().setLevel(1); basePhyStats().setArmor(90); baseCharStats().setMyRace(CMClass.getRace("Frog")); baseCharStats().getMyRace().startRacing(this, false); baseState.setHitPoints(CMLib.dice().rollHP(basePhyStats.level(), 20)); recoverMaxState(); resetToMaxState(); recoverPhyStats(); recoverCharStats(); }
@Override public CMObject newInstance() { try { final DefaultCharStats newStats = getClass().newInstance(); if (newStats.myRace == null) newStats.myRace = CMClass.getRace("StdRace"); return newStats; } catch (final Exception e) { return new DefaultCharStats(); } }
@Override public void reset() { setAllBaseValues(VALUE_ALLSTATS_DEFAULT); stats[STAT_GENDER] = 'M'; // myClasses; // never null myLevels = null; // myRace; // never null raceName = null; genderName = null; displayClassName = null; displayClassLevel = null; bodyAlterations = null; unwearableBitmap = 0; breathables = null; arriveStr = null; leaveStr = null; profAdj = null; proficiencies = emptyFiltererArray; setMyRace(CMClass.getRace("StdRace")); setCurrentClass(CMClass.getCharClass("StdCharClass")); }
public PegasusGreater() { super(); rideBasis = Rideable.RIDEABLE_AIR; final Random randomizer = new Random(System.currentTimeMillis()); username = "******"; setDescription("a beautiful, white stallion with wings."); setDisplayText("A regal Pegasus flaps its wings."); CMLib.factions().setAlignment(this, Faction.Align.NEUTRAL); setMoney(0); setWimpHitPoint(0); basePhyStats.setWeight(1500 + Math.abs(randomizer.nextInt() % 200)); baseCharStats().setStat(CharStats.STAT_INTELLIGENCE, 8 + Math.abs(randomizer.nextInt() % 3)); baseCharStats().setStat(CharStats.STAT_STRENGTH, 11); baseCharStats().setStat(CharStats.STAT_DEXTERITY, 17); baseCharStats().setMyRace(CMClass.getRace("Horse")); baseCharStats().getMyRace().startRacing(this, false); basePhyStats().setDamage(8); basePhyStats().setSpeed(3.0); basePhyStats().setAbility(0); basePhyStats().setLevel(6); basePhyStats().setArmor(60); basePhyStats().setDisposition(basePhyStats().disposition() | PhyStats.IS_FLYING); baseState.setHitPoints(CMLib.dice().roll(basePhyStats().level(), 20, basePhyStats().level())); recoverMaxState(); resetToMaxState(); recoverPhyStats(); recoverCharStats(); }
protected Race lycanRace() { if (!changed) return null; if (theRace == null) theRace = CMClass.getRace("WereWolf"); return theRace; }
public boolean invoke( MOB mob, Vector commands, Environmental givenTarget, boolean auto, int asLevel) { MOB target = this.getTarget(mob, commands, givenTarget); if (target == null) return false; if (!super.invoke(mob, commands, givenTarget, auto, asLevel)) return false; boolean success = proficiencyCheck(mob, 0, auto); if (success) { // it worked, so build a copy of this ability, // and add it to the affects list of the // affected MOB. Then tell everyone else // what happened. CMMsg msg = CMClass.getMsg( mob, target, this, verbalCastCode(mob, target, auto), auto ? "" : (mob == target) ? "^S<S-NAME> close(s) <T-HIS-HER> eyes and peer(s) into <T-HIS-HER> own nostrils.^?" : "^S<S-NAME> peer(s) into the nostrils of <T-NAMESELF>.^?"); if (mob.location().okMessage(mob, msg)) { mob.location().send(mob, msg); Ability A = target.fetchEffect("Allergies"); if (A == null) mob.tell( mob, target, null, "<T-NAME> seem(s) like <T-HE-SHE> is not allergic to anything."); else { Vector allergies = new Vector(); Vector V = CMParms.parse(A.text().toUpperCase().trim()); for (int i = 0; i < V.size(); i++) { if (CMParms.contains(RawMaterial.RESOURCE_DESCS, (String) V.elementAt(i))) allergies.addElement(((String) V.elementAt(i)).toLowerCase()); else { Race R = CMClass.getRace((String) V.elementAt(i)); if (R != null) allergies.addElement(R.name()); } } mob.tell( mob, target, null, "<T-NAME> seem(s) like <T-HE-SHE> is allergic to " + CMParms.toStringList(V) + "."); } } } else if (mob == target) beneficialWordsFizzle( mob, target, auto ? "" : "<S-NAME> close(s) <T-HIS-HER> eyes and peer(s) into <T-HIS-HER> own nostrils, but then blink(s)."); else beneficialWordsFizzle( mob, target, auto ? "" : "<S-NAME> peer(s) into the nostrils of <T-NAMESELF>, but then blink(s)."); // return whether it worked return success; }
@Override public boolean invoke( MOB mob, List<String> commands, Physical givenTarget, boolean auto, int asLevel) { final Physical target = getAnyTarget(mob, commands, givenTarget, Wearable.FILTER_UNWORNONLY); if (target == null) return false; if (target == mob) { mob.tell(L("@x1 doesn't look dead yet.", target.name(mob))); return false; } if (!(target instanceof DeadBody)) { mob.tell(L("You can't animate that.")); return false; } final DeadBody body = (DeadBody) target; if (body.isPlayerCorpse() || (body.getMobName().length() == 0) || ((body.charStats() != null) && (body.charStats().getMyRace() != null) && (body.charStats().getMyRace().racialCategory().equalsIgnoreCase("Undead")))) { mob.tell(L("You can't animate that.")); return false; } String race = "a"; if ((body.charStats() != null) && (body.charStats().getMyRace() != null)) race = CMLib.english().startWithAorAn(body.charStats().getMyRace().name()).toLowerCase(); String description = body.getMobDescription(); if (description.trim().length() == 0) description = "It looks dead."; else description += "\n\rIt also looks dead."; if (body.basePhyStats().level() < 7) { mob.tell(L("This creature is too weak to create a ghast from.")); return false; } if (!super.invoke(mob, commands, givenTarget, auto, asLevel)) return false; final boolean success = proficiencyCheck(mob, 0, auto); if (success) { final CMMsg msg = CMClass.getMsg( mob, target, this, verbalCastCode(mob, target, auto), auto ? "" : L("^S<S-NAME> @x1 to animate <T-NAMESELF> as a ghast.^?", prayForWord(mob))); if (mob.location().okMessage(mob, msg)) { mob.location().send(mob, msg); int undeadLevel = this.getUndeadLevel(mob, 6, body.phyStats().level()); final MOB newMOB = CMClass.getMOB("GenUndead"); newMOB.setName(L("@x1 ghast", race)); newMOB.setDescription(description); newMOB.setDisplayText(L("@x1 ghast is here", race)); newMOB.basePhyStats().setLevel(undeadLevel); newMOB .baseCharStats() .setStat(CharStats.STAT_GENDER, body.charStats().getStat(CharStats.STAT_GENDER)); newMOB.baseCharStats().setMyRace(CMClass.getRace("Undead")); newMOB .baseCharStats() .setBodyPartsFromStringAfterRace(body.charStats().getBodyPartsAsString()); final Ability P = CMClass.getAbility("Prop_StatTrainer"); if (P != null) { P.setMiscText("NOTEACH STR=20 INT=10 WIS=10 CON=10 DEX=15 CHA=2"); newMOB.addNonUninvokableEffect(P); } newMOB.recoverCharStats(); newMOB.basePhyStats().setAttackAdjustment(CMLib.leveler().getLevelAttack(newMOB)); newMOB.basePhyStats().setDamage(CMLib.leveler().getLevelMOBDamage(newMOB)); newMOB.basePhyStats().setSensesMask(PhyStats.CAN_SEE_DARK); CMLib.factions().setAlignment(newMOB, Faction.Align.EVIL); newMOB.baseState().setHitPoints(25 * newMOB.basePhyStats().level()); newMOB.baseState().setMovement(CMLib.leveler().getLevelMove(newMOB)); newMOB.basePhyStats().setArmor(CMLib.leveler().getLevelMOBArmor(newMOB)); newMOB.baseState().setMana(100); newMOB.recoverCharStats(); newMOB.recoverPhyStats(); newMOB.recoverMaxState(); newMOB.resetToMaxState(); newMOB.addAbility(CMClass.getAbility("Paralysis")); Behavior B = CMClass.getBehavior("CombatAbilities"); if (B != null) newMOB.addBehavior(B); B = CMClass.getBehavior("Aggressive"); if (B != null) { B.setParms("+NAMES \"-" + mob.Name() + "\" -LEVEL +>" + newMOB.basePhyStats().level()); newMOB.addBehavior(B); } newMOB.addNonUninvokableEffect(CMClass.getAbility("Spell_CauseStink")); newMOB.addNonUninvokableEffect(CMClass.getAbility("Prop_ModExperience")); newMOB.text(); newMOB.bringToLife(mob.location(), true); CMLib.beanCounter().clearZeroMoney(newMOB, null); // newMOB.location().showOthers(newMOB,null,CMMsg.MSG_OK_ACTION,L("<S-NAME> appears!")); int it = 0; while (it < newMOB.location().numItems()) { final Item item = newMOB.location().getItem(it); if ((item != null) && (item.container() == body)) { final CMMsg msg2 = CMClass.getMsg(newMOB, body, item, CMMsg.MSG_GET, null); newMOB.location().send(newMOB, msg2); final CMMsg msg4 = CMClass.getMsg(newMOB, item, null, CMMsg.MSG_GET, null); newMOB.location().send(newMOB, msg4); final CMMsg msg3 = CMClass.getMsg(newMOB, item, null, CMMsg.MSG_WEAR, null); newMOB.location().send(newMOB, msg3); if (!newMOB.isMine(item)) it++; else it = 0; } else it++; } body.destroy(); mob.location().show(newMOB, null, CMMsg.MSG_OK_ACTION, L("<S-NAME> begin(s) to rise!")); newMOB.setStartRoom(null); beneficialAffect(mob, newMOB, 0, 0); mob.location().recoverRoomStats(); } } else return beneficialWordsFizzle( mob, target, L("<S-NAME> @x1 to animate <T-NAMESELF>, but fail(s) miserably.", prayForWord(mob))); // return whether it worked return success; }