protected void initializeAllManaged(MOB affected) { if (unmanagedYet.size() == 0) return; initializeManagedObjects(affected); while (unmanagedYet.size() > 0) { Object[] thing = unmanagedYet.removeFirst(); if (thing[0] instanceof Command) { Command C = (Command) thing[0]; try { String cmdparms = C.getAccessWords()[0] + " " + CMStrings.replaceAll((String) thing[1], "<TARGET>", reactToM.Name()); affected.enqueCommand(CMParms.parse(cmdparms), Command.METAFLAG_FORCED, 0); } catch (Exception e) { } managed.add(C); continue; } } }
protected boolean initializeManagedObjects(MOB affected) { if (unmanagedYet.size() == 0) return false; boolean didAnything = false; SLinkedList<Object[]> commands = new SLinkedList<Object[]>(); while (unmanagedYet.size() > 0) { Object[] thing = unmanagedYet.removeFirst(); if (thing[0] instanceof Ability) { if (((Ability) thing[0]).ID().equalsIgnoreCase("Mood")) { previousMood = ""; Ability A = affected.fetchEffect("Mood"); if (A != null) previousMood = A.text(); if (previousMood.trim().length() == 0) previousMood = "NORMAL"; } Ability A = (Ability) thing[0]; A.setAffectedOne(affected); A.setMiscText((String) thing[1]); managed.add(A); didAnything = true; continue; } if (thing[0] instanceof Behavior) { Behavior B = (Behavior) thing[0]; B.startBehavior(affected); B.setParms((String) thing[1]); managed.add(B); didAnything = true; continue; } if (thing[0] instanceof Command) { commands.add(thing); continue; } } unmanagedYet = commands; if (didAnything) { affected.recoverCharStats(); affected.recoverPhyStats(); affected.recoverMaxState(); } return didAnything; }