@Override public void execute(XCFRequest request) throws XCFException { XCFContext context = request.getContext(); XCFLogger logger = context.getFacade().getLogManager().getLogger("combat"); String characterName = getString(request, "character", XCF_TAG); MODEL_CombatCharacter character = getCharacter(request, characterName, XCF_TAG); String best = (String) getProperty("best"); if (best != null) { character = character.getBest(best); } String counterName = getString(request, "counter", XCF_TAG); Integer counter = character.getAttribute(counterName, 0); int min = getInt(request, "min", 0, XCF_TAG); int amount = getInt(request, "amount", XCF_TAG); counter = counter + amount; if (counter < min) counter = min; ICombatLog mlog = UTIL_Helper.getMatchLog(request); ICombatFormulas f = UTIL_Helper.getFormulas(request); logger.logMessage( context, XCFLogger.LogTypes.INFO, "Set " + character.getName() + "'s " + counterName.toUpperCase() + " TO " + counter); mlog.logEvent( character.getID(), 5, 7, new int[] {character.getID(), f.getPropertyID(counterName), counter}); character.setAttribute(counterName, counter); }
@Override public void execute(XCFRequest request) throws XCFException { XCFContext context = request.getContext(); XCFLogger logger = context.getFacade().getLogManager().getLogger("combat"); MODEL_Card damageSource = UTIL_Helper.getDamageSource(request); String damageDealer = getString(request, "damage-dealer", XCF_TAG); String characterName = getString(request, "character", XCF_TAG); String damageType = getString(request, "damage-type", XCF_TAG); int damage = getInt(request, "damage", XCF_TAG); int fatigue = getInt(request, "fatigue", 0, XCF_TAG); MODEL_CombatCharacter character = getCharacter(request, characterName, XCF_TAG); UTIL_Helper.setDamageDealer(request, getCharacter(request, damageDealer, XCF_TAG)); UTIL_Helper.setDamageSource(request, getCard(request, XCF_TAG)); ICombatLog mlog = UTIL_Helper.getMatchLog(request); damage = character.takeDamage(request, damage, 0); logger.logMessage( context, XCFLogger.LogTypes.INFO, character.getName() + " takes " + damage + " damage."); mlog.logEvent(character.getID(), 15, 21, new int[] {character.getID(), damage}); UTIL_Helper.setDamageSource(request, damageSource); mlog.logDamage(request, character, damageType, damage, fatigue); }