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;
  }
Example #3
0
  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 "";
 }