/
codebase/src/net/sourceforge/pain/admin/console/command/
codebase/src/net/sourceforge/pain/data/role/
codebase/src/net/sourceforge/pain/network/console/telnet/
codebase/src/net/sourceforge/pain/network/guitool/
codebase/src/net/sourceforge/pain/plugin/
codebase/src/net/sourceforge/pain/util/
db/src/net/sourceforge/pain/util/
gui/
gui/lib/
gui/src/net/sourceforge/pain/tools/guitool/dbbrowse/
gui/src/net/sourceforge/pain/tools/guitool/dialog/
gui/src/net/sourceforge/pain/tools/guitool/menu/
gui/src/net/sourceforge/pain/tools/guitool/resources/
gui/src/net/sourceforge/pain/tools/guitool/resources/images/
gui/src/net/sourceforge/pain/tools/guitool/resources/images/explorer/
mudlibs/tinylib/
mudlibs/tinylib/area/
mudlibs/tinylib/etc/
mudlibs/tinylib/src/net/sourceforge/pain/tinylib/
mudlibs/tinylib/src/net/sourceforge/pain/tinylib/data/affect/
mudlibs/tinylib/src/net/sourceforge/pain/tinylib/data/prototype/
mudlibs/tinylib/src/net/sourceforge/pain/tinylib/data/trigger/
mudlibs/tinylib/src/net/sourceforge/pain/tinylib/logic/affect/
mudlibs/tinylib/src/net/sourceforge/pain/tinylib/logic/event/
mudlibs/tinylib/src/net/sourceforge/pain/tinylib/logic/event/deploy/
mudlibs/tinylib/src/net/sourceforge/pain/tinylib/logic/event/guitool/
mudlibs/tinylib/src/net/sourceforge/pain/tinylib/logic/event/guitool/event/
mudlibs/tinylib/src/net/sourceforge/pain/tinylib/logic/fn/util/
mudlibs/tinylib/src/net/sourceforge/pain/tinylib/logic/trigger/
mudlibs/tinylib/src/net/sourceforge/pain/tinylib/logic/trigger/impl/
mudlibs/tinylib/src/net/sourceforge/pain/tinylib/plugin/command/
mudlibs/tinylib/src/net/sourceforge/pain/tinylib/plugin/reset/
mudlibs/tinylib/src/net/sourceforge/pain/tinylib/plugin/shutdown/
mudlibs/tinylib/src/net/sourceforge/pain/tinylib/plugin/social/
mudlibs/tinylib/src/net/sourceforge/pain/tinylib/util/
tests/
tests/src/
tests/src/net/sourceforge/pain/db/data/
package net.sourceforge.pain.tinylib.logic.factory;

import net.sourceforge.pain.data.*;
import net.sourceforge.pain.tinylib.data.prototype.*;
import net.sourceforge.pain.tinylib.data.type.*;
import net.sourceforge.pain.util.*;

/**
 * User: fmike  Date: Sep 13, 2003   Time: 8:38:14 PM
 */
public class CreatureFactory {

    public static void init(CreaturePrototype proto, Creature obj) throws Exception {
        int lifePoints = proto.getHPDice().roll();
        obj.setHitPoints(lifePoints);
        obj.setMaxHitPoints(lifePoints);
        int sex = proto.getSex();
        switch (sex) {
            case CreaturePrototype.SEX_FEMALE:
                sex = Creature.SEX_FEMALE;
                break;
            case CreaturePrototype.SEX_MALE:
                sex = Creature.SEX_MALE;
                break;
            case CreaturePrototype.SEX_UNDEFINED:
                sex = Creature.SEX_UNDEFINED;
                break;
            case CreaturePrototype.SEX_EITHER:
                sex = (System.currentTimeMillis() & 0x1) == 0 ? Creature.SEX_FEMALE : Creature.SEX_MALE;
                break;
            default:
                throw new RuntimeException("BUG!, life form prototype sex:" + sex);
        }
        Log.debug("setting sex to:" + sex);
        obj.setSex(sex);
        obj.setRace(proto.getRace());

        int moves = proto.getMovePointsDice().roll();
        obj.setMaxMoves(moves);
        obj.setMoves(moves);


        Space inventory = (Space) ObjectFactory.createObject(proto.getInventoryPrototype()).getRole(Space.class);
        inventory.setDesc("Inside inventory");
        obj.setInventory(inventory);
    }

}