From: Katie <ky...@us...> - 2008-02-02 13:40:54
|
Update of /cvsroot/arianne/stendhal/src/games/stendhal/server/entity/mapstuff/portal In directory sc8-pr-cvs11.sourceforge.net:/tmp/cvs-serv24650/src/games/stendhal/server/entity/mapstuff/portal Added Files: QuestCompletedPortal.java QuestCompletedPortalFactory.java Log Message: new portal type, QuestCompletedPortal (as opposed to QuestChecking which looks for hasQuest, it looks for isQuestCompleted). Used in ados wall s before you enter vaults you have to have completed the vampire sword quest --- NEW FILE: QuestCompletedPortal.java --- /*************************************************************************** * (C) Copyright 2003 - Marauroa * *************************************************************************** *************************************************************************** * * * This program is free software; you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * * the Free Software Foundation; either version 2 of the License, or * * (at your option) any later version. * * * ***************************************************************************/ package games.stendhal.server.entity.mapstuff.portal; import games.stendhal.server.entity.RPEntity; import games.stendhal.server.entity.player.Player; public class QuestCompletedPortal extends AccessCheckingPortal { private String questslot; public QuestCompletedPortal(String questslot) { this(questslot, "I am not prepared to go there."); } public QuestCompletedPortal(String questslot, String rejectMessage) { super(rejectMessage); this.questslot = questslot; } // // AccessCheckingPortal // /** * Determine if this portal can be used. * * @param user * The user to be checked. * * @return <code>true</code> if the user can use the portal. */ @Override protected boolean isAllowed(RPEntity user) { if (user instanceof Player) { return ((Player) user).isQuestCompleted(questslot); } else { return false; } } } --- NEW FILE: QuestCompletedPortalFactory.java --- package games.stendhal.server.entity.mapstuff.portal; // // import games.stendhal.server.core.config.factory.ConfigurableFactoryContext; /** * A factory for <code>QuestCompletedPortal</code> objects. */ public class QuestCompletedPortalFactory extends AccessCheckingPortalFactory { // // QuestCompletedPortalFactory // /** * Extract the quest name from a context. * * @param ctx * The configuration context. * @return The quest name. * @throws IllegalArgumentException * If the quest attribute is missing. */ protected String getQuest(ConfigurableFactoryContext ctx) { return ctx.getRequiredString("quest"); } // // AccessCompletedPortalFactory // /** * Create a quest checking portal. * * @param ctx * Configuration context. * * @return A Portal. * * @throws IllegalArgumentException * If there is a problem with the attributes. The exception * message should be a value suitable for meaningful user * interpretation. * * @see LevelCheckingPortal */ @Override protected AccessCheckingPortal createPortal(ConfigurableFactoryContext ctx) { return new QuestCompletedPortal(getQuest(ctx)); } } |