package com.planet_ink.coffee_mud.Commands; import com.planet_ink.coffee_mud.core.interfaces.*; import com.planet_ink.coffee_mud.core.*; import com.planet_ink.coffee_mud.Abilities.interfaces.*; import com.planet_ink.coffee_mud.Areas.interfaces.*; import com.planet_ink.coffee_mud.Behaviors.interfaces.*; import com.planet_ink.coffee_mud.CharClasses.interfaces.*; import com.planet_ink.coffee_mud.Commands.interfaces.*; import com.planet_ink.coffee_mud.Common.interfaces.*; import com.planet_ink.coffee_mud.Exits.interfaces.*; import com.planet_ink.coffee_mud.Items.interfaces.*; import com.planet_ink.coffee_mud.Locales.interfaces.*; import com.planet_ink.coffee_mud.MOBS.interfaces.*; import com.planet_ink.coffee_mud.Races.interfaces.*; import java.util.*; /** * <p>Portions Copyright (c) 2003 Jeremy Vyska</p> * <p>Portions Copyright (c) 2004 Bo Zimmerman</p> * <p>Licensed under the Apache License, Version 2.0 (the "License"); * <p>you may not use this file except in compliance with the License. * <p>You may obtain a copy of the License at * * <p> http://www.apache.org/licenses/LICENSE-2.0 * * <p>Unless required by applicable law or agreed to in writing, software * <p>distributed under the License is distributed on an "AS IS" BASIS, * <p>WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * <p>See the License for the specific language governing permissions and * <p>limitations under the License. */ public class FactionList extends StdCommand { public FactionList(){} private String[] access={"FACTIONS","FAC"}; public String[] getAccessWords(){return access;} public boolean execute(MOB mob, Vector commands) throws java.io.IOException { StringBuffer msg=new StringBuffer("\n\r^HFaction Standings:^?^N\n\r"); boolean none=true; for(Enumeration e=mob.fetchFactions();e.hasMoreElements();) { String name=(String)e.nextElement(); Faction F=CMLib.factions().getFaction(name); if((F!=null)&&(F.showinfactionscommand())) { none=false; msg.append(formatFactionLine(name,mob.fetchFaction(name))); } } if(!mob.isMonster()) if(none) mob.session().colorOnlyPrintln("\n\r^HNo factions apply.^?^N"); else mob.session().colorOnlyPrintln(msg.toString()); return false; } public String formatFactionLine(String name,int faction) { StringBuffer line=new StringBuffer(); line.append(" "+CMStrings.padRight(CMStrings.capitalizeAndLower(CMLib.factions().getName(name).toLowerCase()),21)+" "); Faction.FactionRange FR=CMLib.factions().getRange(name,faction); if(FR==null) line.append(CMStrings.padRight(""+faction,17)+" "); else line.append(CMStrings.padRight(FR.name(),17)+" "); line.append("["); line.append(CMStrings.padRight(calcRangeBar(name,faction),25)); line.append("]\n\r"); return line.toString(); } public String calcRangeBar(String factionID, int faction) { StringBuffer bar=new StringBuffer(); Double fill=new Double(CMath.div(CMLib.factions().getRangePercent(factionID,faction),4)); for(int i=0;i<fill.intValue();i++) { bar.append("*"); } return bar.toString(); } public boolean canBeOrdered(){return true;} }