public void setXpCalculationFormulaStr(String newXpCalculationFormula) { if (newXpCalculationFormula == null) newXpCalculationFormula = ""; xpCalculationFormulaStr = newXpCalculationFormula; if (xpCalculationFormulaStr.trim().length() == 0) this.xpCalculationFormula = CMath.compileMathExpression(DEFAULT_XP_FORMULA); else try { this.xpCalculationFormula = CMath.compileMathExpression(xpCalculationFormulaStr); } catch (Exception e) { Log.errOut("DefaultClanGovernment", e.getMessage()); } }
protected List<List<String>> loadRecipes() { String filename = parametersFile(); List<List<String>> recipes = (List<List<String>>) Resources.getResource("PARSED_RECIPE: " + filename); if (recipes == null) { StringBuffer str = new CMFile(Resources.buildResourcePath("skills") + filename, null, true).text(); recipes = loadList(str); if (recipes.size() == 0) Log.errOut("LeatherWorking", "Recipes not found!"); else { List<List<String>> pleaseAdd = new Vector(); for (int r = 0; r < recipes.size(); r++) { List<String> V = recipes.get(r); if (V.size() > 0) { String name = (String) V.get(RCP_FINALNAME); int baseLevel = CMath.s_int((String) V.get(RCP_LEVEL)) + 2; List<String> V1 = new XVector<String>(V); V1.set(RCP_FINALNAME, "Cuirbouli " + name); V1.set(RCP_LEVEL, "" + (baseLevel + 37)); pleaseAdd.add(V1); V1 = new XVector<String>(V); V1.set(RCP_FINALNAME, "Reinforced " + name); V1.set(RCP_LEVEL, "" + (baseLevel + 45)); pleaseAdd.add(V1); V1 = new XVector<String>(V); V1.set(RCP_FINALNAME, "Masterwork " + name); V1.set(RCP_LEVEL, "" + (baseLevel + 54)); pleaseAdd.add(V1); V1 = new XVector<String>(V); V1.set(RCP_FINALNAME, "Laminar " + name); V1.set(RCP_LEVEL, "" + (baseLevel + 63)); pleaseAdd.add(V1); V1 = new XVector<String>(V); V1.set(RCP_FINALNAME, "Battlemoulded " + name); V1.set(RCP_LEVEL, "" + (baseLevel + 72)); pleaseAdd.add(V1); V.set(RCP_FINALNAME, "Designer " + name); V.set(RCP_LEVEL, "" + (baseLevel + 30)); } } for (int i = 0; i < pleaseAdd.size(); i++) recipes.add(pleaseAdd.get(i)); } Resources.submitResource("PARSED_RECIPE: " + filename, recipes); } return recipes; }
public boolean invoke(MOB mob, Vector commands, Physical givenTarget, boolean auto, int asLevel) { MOB target = getTargetAnywhere(mob, commands, givenTarget, false, true, false); if (target == null) return false; Ability A = target.fetchEffect(ID()); if (A != null) { A.unInvoke(); mob.tell(target.Name() + " is released from his freezedness."); return true; } if (!super.invoke(mob, commands, givenTarget, auto, asLevel)) return false; boolean success = proficiencyCheck(mob, 0, auto); if (success) { CMMsg msg = CMClass.getMsg( mob, target, this, CMMsg.MASK_MOVE | CMMsg.TYP_JUSTICE | (auto ? CMMsg.MASK_ALWAYS : 0), auto ? "A frozen chill falls upon <T-NAME>!" : "^F<S-NAME> freeze(s) <T-NAMESELF>.^?"); CMLib.color().fixSourceFightColor(msg); if (mob.location().okMessage(mob, msg)) { mob.location().send(mob, msg); mob.location().show(target, null, CMMsg.MSG_OK_VISUAL, "<S-NAME> <S-IS-ARE> frozen!"); beneficialAffect(mob, target, asLevel, Ability.TICKS_ALMOST_FOREVER); Log.sysOut("Freeze", mob.name() + " freezed " + target.name() + "."); } } else return beneficialVisualFizzle( mob, target, "<S-NAME> attempt(s) to freeze <T-NAMESELF>, but fail(s)."); return success; }
public void setStat(String code, String val) { int num = 0; int numDex = code.length(); while ((numDex > 0) && (Character.isDigit(code.charAt(numDex - 1)))) numDex--; if (numDex < code.length()) { num = CMath.s_int(code.substring(numDex)); code = code.substring(0, numDex); } final GOVT_STAT_CODES stat = getStatIndex(code); if (stat == null) { return; } switch (stat) { case NAME: name = val; break; case AUTOROLE: { ClanPosition P = getPosition(val); if (P != null) autoRole = P.getRoleID(); break; } case ACCEPTPOS: { ClanPosition P = getPosition(val); if (P != null) acceptPos = P.getRoleID(); break; } case SHORTDESC: shortDesc = val; break; case LONGDESC: longDesc = val; break; case XPLEVELFORMULA: setXpCalculationFormulaStr(val); break; case REQUIREDMASK: requiredMaskStr = val; break; case ISPUBLIC: isPublic = CMath.s_bool(val); break; case ISFAMILYONLY: isFamilyOnly = CMath.s_bool(val); break; case OVERRIDEMINMEMBERS: { if (val.length() == 0) overrideMinMembers = null; else overrideMinMembers = Integer.valueOf(CMath.s_int(val)); break; } case CONQUESTENABLED: conquestEnabled = CMath.s_bool(val); break; case CONQUESTITEMLOYALTY: conquestItemLoyalty = CMath.s_bool(val); break; case CONQUESTDEITYBASIS: conquestByWorship = CMath.s_bool(val); break; case MAXVOTEDAYS: maxVoteDays = CMath.s_int(val); break; case VOTEQUORUMPCT: voteQuorumPct = CMath.s_int(val); break; case AUTOPROMOTEBY: { Clan.AutoPromoteFlag flag = (Clan.AutoPromoteFlag) CMath.s_valueOf(Clan.AutoPromoteFlag.values(), val); if (flag != null) autoPromoteBy = flag; break; } case VOTEFUNCS: { final Vector<String> funcs = CMParms.parseCommas(val.toUpperCase().trim(), true); for (ClanPosition pos : positions) { for (int a = 0; a < Function.values().length; a++) if (pos.getFunctionChart()[a] == Authority.MUST_VOTE_ON) pos.getFunctionChart()[a] = Authority.CAN_NOT_DO; for (final String funcName : funcs) { Authority auth = (Authority) CMath.s_valueOf(Function.values(), funcName); if (auth != null) pos.getFunctionChart()[auth.ordinal()] = Authority.MUST_VOTE_ON; } } break; } case NUMRABLE: clanAbilityMap = null; if (CMath.s_int(val) == 0) { clanAbilityNames = null; clanAbilityProficiencies = null; clanAbilityQuals = null; clanAbilityLevels = null; } else { clanAbilityNames = new String[CMath.s_int(val)]; clanAbilityProficiencies = new int[CMath.s_int(val)]; clanAbilityQuals = new boolean[CMath.s_int(val)]; clanAbilityLevels = new int[CMath.s_int(val)]; } break; case GETRABLE: { if (clanAbilityNames == null) clanAbilityNames = new String[num + 1]; clanAbilityNames[num] = val; break; } case GETRABLEPROF: { if (clanAbilityProficiencies == null) clanAbilityProficiencies = new int[num + 1]; clanAbilityProficiencies[num] = CMath.s_parseIntExpression(val); break; } case GETRABLEQUAL: { if (clanAbilityQuals == null) clanAbilityQuals = new boolean[num + 1]; clanAbilityQuals[num] = CMath.s_bool(val); break; } case GETRABLELVL: { if (clanAbilityLevels == null) clanAbilityLevels = new int[num + 1]; clanAbilityLevels[num] = CMath.s_parseIntExpression(val); break; } case NUMREFF: clanEffectMap = null; if (CMath.s_int(val) == 0) { clanEffectNames = null; clanEffectParms = null; clanEffectLevels = null; } else { clanEffectNames = new String[CMath.s_int(val)]; clanEffectParms = new String[CMath.s_int(val)]; clanEffectLevels = new int[CMath.s_int(val)]; } break; case GETREFF: { if (clanEffectNames == null) clanEffectNames = new String[num + 1]; clanEffectNames[num] = val; break; } case GETREFFPARM: { if (clanEffectParms == null) clanEffectParms = new String[num + 1]; clanEffectParms[num] = val; break; } case GETREFFLVL: { if (clanEffectLevels == null) clanEffectLevels = new int[num + 1]; clanEffectLevels[num] = CMath.s_int(val); break; } default: Log.errOut("Clan", "setStat:Unhandled:" + stat.toString()); break; } }
public String getStat(String code) { int num = 0; int numDex = code.length(); while ((numDex > 0) && (Character.isDigit(code.charAt(numDex - 1)))) numDex--; if (numDex < code.length()) { num = CMath.s_int(code.substring(numDex)); code = code.substring(0, numDex); } final GOVT_STAT_CODES stat = getStatIndex(code); if (stat == null) { return ""; } switch (stat) { case NAME: return name; case AUTOROLE: return (autoRole < 0 || autoRole > positions.length) ? "" : positions[autoRole].getID(); case ACCEPTPOS: return (acceptPos < 0 || acceptPos > positions.length) ? "" : positions[acceptPos].getID(); case SHORTDESC: return shortDesc; case LONGDESC: return longDesc; case XPLEVELFORMULA: return xpCalculationFormulaStr == null ? "" : xpCalculationFormulaStr; case REQUIREDMASK: return requiredMaskStr; case ISPUBLIC: return Boolean.toString(isPublic); case ISFAMILYONLY: return Boolean.toString(isFamilyOnly); case OVERRIDEMINMEMBERS: return overrideMinMembers == null ? "" : overrideMinMembers.toString(); case CONQUESTENABLED: return Boolean.toString(conquestEnabled); case CONQUESTITEMLOYALTY: return Boolean.toString(conquestItemLoyalty); case CONQUESTDEITYBASIS: return Boolean.toString(conquestByWorship); case MAXVOTEDAYS: return Integer.toString(maxVoteDays); case VOTEQUORUMPCT: return Integer.toString(voteQuorumPct); case AUTOPROMOTEBY: return autoPromoteBy.toString(); case VOTEFUNCS: { final StringBuilder str = new StringBuilder(""); for (ClanPosition pos : positions) { for (int a = 0; a < Function.values().length; a++) if (pos.getFunctionChart()[a] == Authority.MUST_VOTE_ON) { if (str.length() > 0) str.append(","); str.append(Function.values()[a]); } break; } return str.toString(); } case NUMRABLE: return (clanAbilityNames == null) ? "0" : ("" + clanAbilityNames.length); case GETRABLE: return (clanAbilityNames == null) ? "" : ("" + clanAbilityNames[num]); case GETRABLEPROF: return (clanAbilityProficiencies == null) ? "0" : ("" + clanAbilityProficiencies[num]); case GETRABLEQUAL: return (clanAbilityQuals == null) ? "false" : ("" + clanAbilityQuals[num]); case GETRABLELVL: return (clanAbilityLevels == null) ? "0" : ("" + clanAbilityLevels[num]); case NUMREFF: return (clanEffectNames == null) ? "0" : ("" + clanEffectNames.length); case GETREFF: return (clanEffectNames == null) ? "" : ("" + clanEffectNames[num]); case GETREFFPARM: return (clanEffectParms == null) ? "0" : ("" + clanEffectParms[num]); case GETREFFLVL: return (clanEffectLevels == null) ? "0" : ("" + clanEffectLevels[num]); default: Log.errOut("Clan", "getStat:Unhandled:" + stat.toString()); break; } return ""; }