Пример #1
0
  @Override
  public int addValue(int value) {
    for (Entity e : getBodyParts()) value = e.addValue(value);

    if (value > 0) {
      value -= 50;
      Vector<Entity> fats = getBodyParts();
      Entity last = fats.get(fats.size() - 1);
      if (fats.size() < MAX_FATS) {
        Fat fat = new Fat();
        fat.setAngle(last.getAngle());
        fat.setFrontX(last.getRearX());
        fat.setY(last.getYFromCenterToRear(FAT_DISTANCE + NECK_RADIUS));
        fat.setMaxVelocity(0);
        addBodyPart(fat);
      } else
        for (int i = 0; i < fats.size(); ++i)
          if (!((Fat) fats.get(i)).getBig()) {
            ((Fat) fats.get(i)).setBig(true);
            break;
          }

      for (int i = 0; i < fats.size(); ++i)
        fats.get(i).setValue(((Fat) fats.get(i)).getBig() ? 50 : 0);
    }
    if (value > 0) spawnExcrement(value);

    return 0;
  }