/** * Whether we are disguised as a particular creature... * * @param cr a creature to test (in the case of multiple matches, their birthday is used to * determine which one they're disguised as). * @return A CreatureType, or null. */ static CreatureType inCharacter(final Creature cr) { final List<CreatureType> valid = new ArrayList<CreatureType>(); for (final CreatureType c : Game.type.creature.values()) { if (!c.hasUniform()) { continue; } if (c.uniform != null && c.uniform.inCharacter(cr)) { valid.add(c); } } if (valid.size() == 0) { return cr.type(); } return valid.get(cr.birthDay() % valid.size()); }