Package ch.fusun.baron.basic.initialization

Source Code of ch.fusun.baron.basic.initialization.PlayerInitializer

package ch.fusun.baron.basic.initialization;

import java.util.HashMap;
import java.util.Map;

import ch.fusun.baron.basic.messages.Messages;
import ch.fusun.baron.coatofarms.ui.CoatOfArmsData;
import ch.fusun.baron.core.initialization.GameInitializer;
import ch.fusun.baron.core.injection.Configure;
import ch.fusun.baron.core.injection.Inject;
import ch.fusun.baron.core.rmi.User;
import ch.fusun.baron.core.service.UserService;
import ch.fusun.baron.player.Dynasty;
import ch.fusun.baron.player.Gender;
import ch.fusun.baron.player.Player;
import ch.fusun.baron.player.api.Country;
import ch.fusun.baron.player.api.CountryService;
import ch.fusun.baron.player.api.MarriageService;
import ch.fusun.baron.player.api.PlayerService;
import ch.fusun.baron.printing.MessagingService;
import ch.fusun.baron.property.api.PropertyService;

/**
* Adds a player for each user
*/
public class PlayerInitializer implements GameInitializer {

  @Configure(value = "16")
  private int INITIAL_AGE_MAN;
  @Configure(value = "16")
  private int INITIAL_AGE_WOMAN;
  @Inject
  private transient UserService userService;
  @Inject
  private transient PlayerService playerService;
  @Inject
  private transient MessagingService messagingService;
  @Inject
  private transient MarriageService marriageService;
  @Inject
  private transient CountryService countryService;
  @Inject
  private transient PropertyService propertyService;

  private final Map<User, String> userDynastyMap = new HashMap<User, String>();
  private final Map<User, CoatOfArmsData> userCOADynastyMap = new HashMap<User, CoatOfArmsData>();

  /**
   * Constructor
   */
  public PlayerInitializer() {
    // Do nothing
  }

  @Override
  public void initialize() {
    for (User user : userService.getUsers()) {
      createDynastyForUser(user);
    }
    messagingService.addMessage(null,
        Messages.PlayerInitializer_PlayersInitialized);
  }

  private void createDynastyForUser(User user) {
    Dynasty dynasty = new Dynasty(
        userDynastyMap.get(user) == null ? user.getName()
            : userDynastyMap.get(user), userCOADynastyMap.get(user));
    Country country = countryService
        .createCountry(userDynastyMap.get(user));
    Player man = playerService.generateNewPlayer(Gender.MALE);
    man.setAge(INITIAL_AGE_MAN);
    Player woman = playerService.generateNewPlayer(Gender.FEMALE);
    woman.setAge(INITIAL_AGE_WOMAN);
    dynasty.addPlayer(man);
    dynasty.addPlayer(woman);
    marriageService.marry(man, woman);
    playerService.setDynastyForUser(dynasty, user);
    propertyService.setOwnership(man, country);
  }

  /**
   * @param user
   *            The user
   * @param name
   *            The name
   */
  public void setDynastyName(User user, String name) {
    userDynastyMap.put(user, name);
  }

  /**
   * @param user
   *            The user
   * @param data
   *            The data
   */
  public void setDynastyCoatOfArms(User user, CoatOfArmsData data) {
    userCOADynastyMap.put(user, data);
  }
}
TOP

Related Classes of ch.fusun.baron.basic.initialization.PlayerInitializer

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.