public static void addDebugModifications(Thing h) { h.set("IsImmortal", 1); h.set("IsDebugMode", 1); if ("QuickTester".equals(h.getString("HeroName"))) { h.addThing(Spell.create("Annihilation")); h.addThing(Spell.create("Blaze")); h.addThing(Spell.create("Ultimate Destruction")); Wish.makeWish("skills", 100); } }
public void unInvoke() { // undo the affects of this spell if ((affected == null) || (!(affected instanceof MOB))) { super.unInvoke(); return; } MOB mob = (MOB) affected; if (canBeUninvoked()) mob.tell("Your summoning ward dissipates."); super.unInvoke(); }
@Override public void unInvoke() { // undo the affects of this spell if (!(affected instanceof MOB)) { super.unInvoke(); return; } final MOB mob = (MOB) affected; if (canBeUninvoked()) mob.tell(L("Your teleportation ward dissipates.")); super.unInvoke(); }
public void unInvoke() { // undo the affects of this spell if ((affected == null) || (!(affected instanceof MOB))) { super.unInvoke(); return; } MOB mob = (MOB) affected; super.unInvoke(); if (canBeUninvoked()) if ((mob.location() != null) && (!mob.amDead())) mob.location().show(mob, null, CMMsg.MSG_OK_VISUAL, "<S-NAME> fade(s) back into view."); }
public void unInvoke() { if ((affected == null) || (!(affected instanceof MOB))) return; MOB mob = (MOB) affected; super.unInvoke(); if (canBeUninvoked()) mob.tell("You begin to feel more like your regular cranky self."); }
@Override public void affectCharStats(MOB affected, CharStats affectableStats) { super.affectCharStats(affected, affectableStats); affectableStats.setStat( CharStats.STAT_STRENGTH, (int) Math.round(CMath.div(affectableStats.getStat(CharStats.STAT_STRENGTH), 2.0))); }
public void affectPhyStats(Physical affected, PhyStats affectableStats) { super.affectPhyStats(affected, affectableStats); // when this spell is on a MOBs Affected list, // it should consistantly put the mob into // a sleeping state, so that nothing they do // can get them out of it. affectableStats.setDisposition(affectableStats.disposition() | PhyStats.IS_INVISIBLE); }
@Override public void unInvoke() { if (!(affected instanceof MOB)) return; final MOB mob = (MOB) affected; super.unInvoke(); if (canBeUninvoked()) mob.tell(L("Your sight becomes less keen.")); }
@Override public void unInvoke() { final Physical affected = super.affected; super.unInvoke(); if (canBeUninvoked()) { if (affected instanceof MOB) ((MOB) affected).tell(L("Your anti-plant shell fades.")); } }
public void unInvoke() { // undo the affects of this spell if ((affected == null) || (!(affected instanceof MOB))) return; MOB mob = (MOB) affected; if (canBeUninvoked()) mob.tell("Your magic missile protection dissipates."); super.unInvoke(); }
@Override public void unInvoke() { if (!(affected instanceof MOB)) return; final MOB mob = (MOB) affected; super.unInvoke(); if (canBeUninvoked()) mob.tell(L("You begin to feel more like your regular cranky self.")); }
@Override public void unInvoke() { // undo the affects of this spell if (!(affected instanceof MOB)) return; final MOB mob = (MOB) affected; if (canBeUninvoked()) mob.tell(L("Your uninhibiting protection dissipates.")); super.unInvoke(); }
@Override public void unInvoke() { // undo the affects of this spell if (!(affected instanceof MOB)) return; final MOB mob = (MOB) affected; super.unInvoke(); if (canBeUninvoked()) mob.tell(L("You begin to feel better.")); }
@Override public void unInvoke() { if ((affected != null) && (affected instanceof Item) && (((Item) affected).owner() != null) && (((Item) affected).owner() instanceof Room)) ((Room) ((Item) affected).owner()) .showHappens(CMMsg.MSG_OK_ACTION, L("@x1 stops moving.", affected.name())); super.unInvoke(); }
@Override public void unInvoke() { if (!(affected instanceof MOB)) return; final MOB mob = (MOB) affected; super.unInvoke(); if (canBeUninvoked()) if ((mob.location() != null) && (!mob.amDead())) mob.location() .show( mob, null, CMMsg.MSG_OK_VISUAL, L("<S-YOUPOSS> ability to breathe underwater fades.")); }
@Override public void affectCharStats(MOB affected, CharStats affectableStats) { super.affectCharStats(affected, affectableStats); final int[] breatheables = affectableStats.getBreathables(); if (breatheables.length == 0) return; if ((lastSet != breatheables) || (newSet == null)) { newSet = Arrays.copyOf( affectableStats.getBreathables(), affectableStats.getBreathables().length + 2); newSet[newSet.length - 1] = RawMaterial.RESOURCE_SALTWATER; newSet[newSet.length - 2] = RawMaterial.RESOURCE_FRESHWATER; Arrays.sort(newSet); lastSet = breatheables; } affectableStats.setBreathables(newSet); }
public void unInvoke() { // undo the affects of this spell if ((affected == null) || (!(affected instanceof MOB))) return; MOB mob = (MOB) affected; super.unInvoke(); if (canBeUninvoked()) { mob.location() .show( mob, null, CMMsg.MSG_NOISYMOVEMENT, "<S-NAME> manage(s) to break <S-HIS-HER> way free of the repulsion field."); CMLib.commands().postStand(mob, true); } }
public void unInvoke() { if ((canBeUninvoked()) && (affected != null)) { if (affected instanceof Exit) { Exit exit = (Exit) affected; exit.setDoorsNLocks( exit.hasADoor(), !exit.hasADoor(), exit.defaultsClosed(), exit.hasALock(), exit.hasALock(), exit.defaultsLocked()); } else if (affected instanceof Container) { Container container = (Container) affected; container.setLidsNLocks( container.hasALid(), !container.hasALid(), container.hasALock(), container.hasALock()); } } super.unInvoke(); }
public void affectCharStats(MOB affectedMOB, CharStats affectedStats) { super.affectCharStats(affectedMOB, affectedStats); affectedStats.setStat( CharStats.STAT_SAVE_FIRE, affectedStats.getStat(CharStats.STAT_SAVE_FIRE) + 100); }
private static void applyProfession(Thing h, String p) { h.set("Profession", p); if (p.equals("fighter")) { h.set("Image", 7); h.incStat(RPG.ST_SK, RPG.r(5)); h.incStat(RPG.ST_ST, RPG.r(5)); h.incStat(RPG.ST_AG, RPG.r(4)); h.incStat(RPG.ST_TG, RPG.r(6)); h.incStat(RPG.ST_IN, RPG.r(0)); h.incStat(RPG.ST_WP, RPG.r(0)); h.incStat(RPG.ST_CH, RPG.r(0)); h.incStat(RPG.ST_CR, RPG.r(0)); h.incStat(Skill.ATTACK, 1); h.incStat(Skill.DEFENCE, 1); h.incStat(Skill.UNARMED, RPG.d(2)); h.incStat(Skill.WEAPONLORE, RPG.d(2)); } else if (p.equals("wizard")) { h.set("Image", 6); h.incStat(RPG.ST_SK, RPG.r(0)); h.incStat(RPG.ST_ST, RPG.r(0)); h.incStat(RPG.ST_AG, RPG.r(0)); h.incStat(RPG.ST_TG, RPG.r(0) - 1); h.incStat(RPG.ST_IN, RPG.r(7)); h.incStat(RPG.ST_WP, RPG.r(5)); h.incStat(RPG.ST_CH, RPG.r(2)); h.incStat(RPG.ST_CR, RPG.r(4)); h.incStat(Skill.IDENTIFY, RPG.r(2)); h.incStat(Skill.LITERACY, RPG.d(3)); h.incStat(Skill.TRUEMAGIC, RPG.d(2)); h.incStat(Skill.CASTING, RPG.d(2)); h.incStat(Skill.FOCUS, RPG.d(2)); h.addThing(Spell.randomOffensiveSpell(Skill.TRUEMAGIC, 3)); h.incStat("Luck", -5); // book and scroll h.addThing(SpellBook.create(Skill.TRUEMAGIC, RPG.d(6))); h.addThing(Lib.create("[IsScroll]")); } else if (p.equals("shaman")) { h.set("Image", 6); h.incStat(RPG.ST_SK, RPG.r(0)); h.incStat(RPG.ST_ST, RPG.r(0)); h.incStat(RPG.ST_AG, RPG.r(0)); h.incStat(RPG.ST_TG, RPG.r(0)); h.incStat(RPG.ST_IN, RPG.r(4)); h.incStat(RPG.ST_WP, RPG.r(4)); h.incStat(RPG.ST_CH, RPG.r(5)); h.incStat(RPG.ST_CR, RPG.r(6)); h.incStat(Skill.IDENTIFY, RPG.r(2)); h.incStat(Skill.LITERACY, RPG.r(2)); h.incStat(Skill.BLACKMAGIC, RPG.d(3)); h.incStat(Skill.CASTING, RPG.d(2)); h.incStat(Skill.HERBLORE, RPG.d(2)); h.addThing(Spell.randomSpell(Skill.BLACKMAGIC, 3)); h.incStat("Luck", 15); // herbs and monster parts for (int i = 0; i < 10; i++) h.addThingWithStacking(Lib.createType("IsHerb", RPG.d(10))); for (int i = 0; i < 6; i++) h.addThingWithStacking(Lib.createType("IsMonsterPart", RPG.d(10))); } else if (p.equals("witch")) { h.set("Image", 32); h.incStat(RPG.ST_SK, RPG.r(0)); h.incStat(RPG.ST_ST, RPG.r(0)); h.incStat(RPG.ST_AG, RPG.r(0)); h.incStat(RPG.ST_TG, RPG.r(0)); h.incStat(RPG.ST_IN, RPG.r(5)); h.incStat(RPG.ST_WP, RPG.r(4)); h.incStat(RPG.ST_CH, RPG.r(4)); h.incStat(RPG.ST_CR, RPG.r(6)); h.incStat(Skill.LITERACY, 1); h.incStat(Skill.BLACKMAGIC, 1); h.incStat(Skill.CASTING, 1); h.incStat(Skill.HERBLORE, RPG.r(3)); h.incStat(Skill.COOKING, RPG.r(3)); for (int i = 0; i < 10; i++) h.addThingWithStacking(Lib.createType("IsHerb", RPG.d(10))); h.addThing(Spell.randomSpell(Skill.BLACKMAGIC, 3)); h.incStat("Luck", 10); h.addThing(Lib.create("[IsScroll]")); h.addThing(SpellBook.create(Skill.BLACKMAGIC, RPG.d(8))); } else if (p.equals("war-mage")) { h.set("Image", 6); h.incStat(RPG.ST_SK, RPG.r(2)); h.incStat(RPG.ST_ST, RPG.r(2)); h.incStat(RPG.ST_AG, RPG.r(2)); h.incStat(RPG.ST_TG, RPG.r(2)); h.incStat(RPG.ST_IN, RPG.r(2)); h.incStat(RPG.ST_WP, RPG.r(4)); h.incStat(RPG.ST_CH, RPG.r(2)); h.incStat(RPG.ST_CR, RPG.r(4)); h.incStat(Skill.LITERACY, 1); h.incStat(Skill.TRUEMAGIC, RPG.r(3)); h.incStat(Skill.HEALING, RPG.d(2)); h.incStat(Skill.CASTING, RPG.d(2)); h.addThing(Spell.randomSpell(Skill.TRUEMAGIC, 3)); h.incStat("Luck", 0); } else if (p.equals("runecaster")) { h.set("Image", 6); h.incStat(RPG.ST_SK, RPG.r(0)); h.incStat(RPG.ST_ST, RPG.r(0)); h.incStat(RPG.ST_AG, RPG.r(0)); h.incStat(RPG.ST_TG, RPG.r(0)); h.incStat(RPG.ST_IN, RPG.r(6)); h.incStat(RPG.ST_WP, RPG.r(5)); h.incStat(RPG.ST_CH, RPG.r(4)); h.incStat(RPG.ST_CR, RPG.r(8)); h.incStat(Skill.ALCHEMY, RPG.r(3)); h.incStat(Skill.HERBLORE, RPG.r(2)); h.incStat(Skill.IDENTIFY, RPG.d(2)); h.incStat(Skill.LITERACY, RPG.d(4)); h.incStat(Skill.RUNELORE, RPG.d(2)); h.incStat("Luck", -10); { Thing n = Lib.create("scroll of Teleport Self"); Item.identify(n); h.addThing(n); } { Thing n = Lib.createType("IsWeaponRunestone", RPG.d(17)); Item.identify(n); h.addThing(n); } for (int i = RPG.d(6); i > 0; i--) { Thing n = Lib.createType("IsRunestone", RPG.d(10)); Item.identify(n); h.addThing(n); } for (int i = RPG.r(3); i > 0; i--) { Thing n = Lib.createType("IsRuneRecipeScroll", RPG.d(10)); Item.identify(n); h.addThing(n); } } else if (p.equals("priest")) { h.set("Image", 11); h.incStat(RPG.ST_SK, RPG.r(0)); h.incStat(RPG.ST_ST, RPG.r(0)); h.incStat(RPG.ST_AG, RPG.r(0)); h.incStat(RPG.ST_TG, RPG.r(3)); h.incStat(RPG.ST_IN, RPG.r(4)); h.incStat(RPG.ST_WP, RPG.r(8)); h.incStat(RPG.ST_CH, RPG.r(5)); h.incStat(RPG.ST_CR, RPG.r(0)); h.incStat(Skill.PRAYER, RPG.d(2)); h.incStat(Skill.LITERACY, RPG.d(2)); h.incStat(Skill.HOLYMAGIC, RPG.d(2)); h.incStat(Skill.HEALING, RPG.r(3)); h.incStat(Skill.MEDITATION, RPG.r(2)); h.incStat(Skill.FOCUS, RPG.r(2)); h.incStat("Luck", 5); h.addThing(Spell.randomSpell(Skill.HOLYMAGIC, 5)); Thing n = Lib.create("potion of healing"); Item.identify(n); h.addThing(n); } else if (p.equals("healer")) { h.set("Image", 11); h.incStat(RPG.ST_SK, RPG.r(0)); h.incStat(RPG.ST_ST, RPG.r(0)); h.incStat(RPG.ST_AG, RPG.r(0)); h.incStat(RPG.ST_TG, RPG.r(3)); h.incStat(RPG.ST_IN, RPG.r(4)); h.incStat(RPG.ST_WP, RPG.r(4)); h.incStat(RPG.ST_CH, RPG.r(5)); h.incStat(RPG.ST_CR, RPG.r(4)); h.incStat(Skill.IDENTIFY, RPG.d(2)); h.incStat(Skill.LITERACY, RPG.d(2)); h.incStat(Skill.HEALING, RPG.d(3)); h.incStat(Skill.HERBLORE, RPG.d(2)); h.incStat(Skill.MEDITATION, RPG.r(2)); h.incStat(Skill.FOCUS, RPG.r(2)); h.incStat("Luck", 15); Thing n = Lib.create("potion of healing"); Item.identify(n); h.addThing(n); h.addThing(Lib.create("potion of healing")); h.addThing(Lib.create("potion of healing")); h.addThing(Lib.createType("IsHerb", RPG.d(10))); h.addThing(Lib.createType("IsHerb", RPG.d(10))); h.addThing(Lib.createType("IsHerb", RPG.d(10))); h.addThing(Lib.createType("IsHerb", RPG.d(10))); h.addThing(Lib.createType("IsHerb", RPG.d(10))); } else if (p.equals("bard")) { h.set("Image", 7); h.incStat(RPG.ST_SK, RPG.r(3)); h.incStat(RPG.ST_ST, RPG.r(0)); h.incStat(RPG.ST_AG, RPG.r(3)); h.incStat(RPG.ST_TG, RPG.r(0)); h.incStat(RPG.ST_IN, RPG.r(3)); h.incStat(RPG.ST_WP, RPG.r(3)); h.incStat(RPG.ST_CH, RPG.r(6)); h.incStat(RPG.ST_CR, RPG.r(6)); h.incStat(Skill.MUSIC, RPG.po(0.5)); h.incStat(Skill.PERCEPTION, 1); h.incStat(Skill.SLEIGHT, RPG.po(0.5)); h.incStat(Skill.STORYTELLING, RPG.po(0.5)); h.incStat(Skill.SEDUCTION, RPG.po(1.2)); h.incStat(Skill.LITERACY, RPG.po(0.8)); h.incStat("Luck", 20); Thing n = Lib.createType("IsRing", 5); Item.identify(n); h.addThing(n); } else if (p.equals("paladin")) { h.set("Image", 7); h.incStat(RPG.ST_SK, RPG.r(4)); h.incStat(RPG.ST_ST, RPG.r(4)); h.incStat(RPG.ST_AG, RPG.r(0)); h.incStat(RPG.ST_TG, RPG.r(4)); h.incStat(RPG.ST_IN, RPG.r(4)); h.incStat(RPG.ST_WP, RPG.r(4)); h.incStat(RPG.ST_CH, RPG.r(0)); h.incStat(RPG.ST_CR, RPG.r(0)); h.incStat(Skill.PRAYER, RPG.d(2)); h.incStat(Skill.ATTACK, RPG.r(2)); h.incStat(Skill.DEFENCE, RPG.r(2)); h.incStat(Skill.BRAVERY, RPG.d(3)); h.addThing(Weapon.createWeapon(RPG.d(4))); Thing n = Lib.createType("IsWand", RPG.d(4)); Item.identify(n); h.addThing(n); } else if (p.equals("barbarian")) { h.set("Image", 3); h.incStat(RPG.ST_SK, RPG.r(3)); h.incStat(RPG.ST_ST, RPG.r(3)); h.incStat(RPG.ST_AG, RPG.r(5)); h.incStat(RPG.ST_TG, RPG.r(5)); h.incStat(RPG.ST_IN, RPG.r(0)); h.incStat(RPG.ST_WP, RPG.r(0)); h.incStat(RPG.ST_CH, RPG.r(0)); h.incStat(RPG.ST_CR, RPG.r(0)); h.incStat(RPG.ST_ATTACKSPEED, 10); h.incStat(Skill.ATTACK, RPG.r(2)); h.incStat(Skill.FEROCITY, 1); h.incStat(Skill.ATHLETICS, 1); h.incStat(Skill.ALERTNESS, RPG.r(3)); h.incStat(Skill.SURVIVAL, RPG.d(2)); h.incStat(Skill.PICKPOCKET, RPG.r(2)); h.incStat(Skill.UNARMED, 1); h.incStat(Skill.TRACKING, RPG.r(2)); Thing n = Lib.create("potion of speed"); Item.identify(n); h.addThing(n); } else if (p.equals("thief")) { h.set("Image", 10); h.incStat(RPG.ST_SK, RPG.r(5)); h.incStat(RPG.ST_ST, RPG.r(0)); h.incStat(RPG.ST_AG, RPG.r(6)); h.incStat(RPG.ST_TG, RPG.r(0)); h.incStat(RPG.ST_IN, RPG.r(0)); h.incStat(RPG.ST_WP, RPG.r(0)); h.incStat(RPG.ST_CH, RPG.r(4)); h.incStat(RPG.ST_CR, RPG.r(3)); h.incStat(RPG.ST_ATTACKSPEED, 120); h.incStat(Skill.ALERTNESS, RPG.d(3)); h.incStat(Skill.PICKPOCKET, RPG.r(3)); h.incStat(Skill.PICKLOCK, RPG.r(3)); h.incStat(Skill.DISARM, RPG.r(2)); Thing n = Lib.create("wand of Teleport Self"); Item.identify(n); h.addThing(n); } else if (p.equals("ranger")) { h.set("Image", 10); h.incStat(RPG.ST_SK, RPG.r(8)); h.incStat(RPG.ST_ST, RPG.r(3)); h.incStat(RPG.ST_AG, RPG.r(6)); h.incStat(RPG.ST_TG, RPG.r(0)); h.incStat(RPG.ST_IN, RPG.r(0)); h.incStat(RPG.ST_WP, RPG.r(0)); h.incStat(RPG.ST_CH, RPG.r(4)); h.incStat(RPG.ST_CR, RPG.r(0)); h.incStat(Skill.ARCHERY, RPG.r(3)); h.incStat(Skill.THROWING, RPG.r(3)); h.incStat(Skill.SURVIVAL, RPG.d(1)); h.incStat(Skill.SWIMMING, RPG.r(2)); h.incStat(Skill.RIDING, RPG.r(2)); h.incStat(Skill.TRACKING, RPG.d(3)); Thing n = Lib.create("healing potion"); h.addThing(n); } else if (p.equals("farmer")) { h.set("Image", 10); h.incStat(RPG.ST_SK, RPG.r(0)); h.incStat(RPG.ST_ST, RPG.r(4)); h.incStat(RPG.ST_AG, RPG.r(0)); h.incStat(RPG.ST_TG, RPG.r(4)); h.incStat(RPG.ST_IN, RPG.r(0)); h.incStat(RPG.ST_WP, RPG.r(6)); h.incStat(RPG.ST_CH, RPG.r(4)); h.incStat(RPG.ST_CR, RPG.r(6)); h.incStat(Skill.THROWING, RPG.r(3)); h.incStat(Skill.SURVIVAL, RPG.r(3)); h.incStat(Skill.SWIMMING, RPG.r(2)); h.incStat(Skill.COOKING, RPG.r(3)); h.incStat(Skill.HERBLORE, RPG.d(2)); // a healing potion Thing n = Lib.create("potion of healing"); Item.identify(n); h.addThing(n); } else { throw new Error("Profession [" + p + "] not recognised"); } }
@Override public void affectPhyStats(Physical affected, PhyStats affectableStats) { super.affectPhyStats(affected, affectableStats); affectableStats.setSensesMask(affectableStats.sensesMask() | PhyStats.CAN_SEE_INVISIBLE); }
@Override public void affectPhyStats(Physical affected, PhyStats affectableStats) { super.affectPhyStats(affected, affectableStats); affectableStats.setDisposition(affectableStats.disposition() | PhyStats.IS_FLYING); }
@Override public void setAffectedOne(Physical affected) { if (super.affected != affected) pointsRemaining = 3 + (adjustedLevel(invoker(), 0) / 5); super.setAffectedOne(affected); }
@Override public void affectPhyStats(Physical affected, PhyStats affectableStats) { super.affectPhyStats(affected, affectableStats); affectableStats.setSpeed(CMath.div(affectableStats.speed(), 2.0)); }
@Override public void affectPhyStats(Physical affected, PhyStats affectableStats) { super.affectPhyStats(affected, affectableStats); affectableStats.setSensesMask(mask & mask2); }
@Override public void affectCharStats(MOB affected, CharStats affectableStats) { super.affectCharStats(affected, affectableStats); affectableStats.setStat( CharStats.STAT_CHARISMA, affectableStats.getStat(CharStats.STAT_CHARISMA) + 6); }