Package transientlibs.objects.creatures

Source Code of transientlibs.objects.creatures.Person

/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package transientlibs.objects.creatures;

import transientlibs.bindedobjects.gamecontent.Looks;
import transientlibs.bindedobjects.gamecontent.PersonalName;
import transientlibs.objects.general.Dice;
import transientlibs.objects.general.Node;
import transientlibs.objects.general.PointSet;
import transientlibs.objects.primitives.SmallPoints;
import transientlibs.preui.objects.gui.elements.InfoGroup;
import transientlibs.bindedobjects.gamecontent.Job;
import java.util.ArrayList;
import java.util.Iterator;
import transientlibs.slick2d.util.Log;
import transientlibs.bindedobjects.core.Binding;
import transientlibs.bindedobjects.gamecontent.Domain;
import transientlibs.bindedobjects.core.LinkedValue;
import transientlibs.bindedobjects.gamecontent.PersonalityTraits;

/**
*
* @author kibertoad
*/
public class Person extends Node {

    public static final int maleGender = 0;
    public static final int femaleGender = 1;

    public String LName = "Name";


    public PointSet<SmallPoints> looks = new PointSet<SmallPoints>();
    //PointSet<SmallPoints> stats = new PointSet<SmallPoints>();

    public ArrayList<LinkedValue<PersonalityTraits>> personality = new ArrayList<LinkedValue<PersonalityTraits>>();
    public ArrayList<LinkedValue<Domain>> interests = new ArrayList<LinkedValue<Domain>>();


    public int gender;
    public int nation;
    public Job job;




    public static Person PCPerson = new Person();



    public int returnLookValue(int getType) {
        return looks.get(getType).now.value;
    }

    public Person() {
        if (!PersonalityTraits.personalityTraits.isEmpty()) {
            for (PersonalityTraits pt : PersonalityTraits.personalityTraits) {
                personality.add(new LinkedValue<PersonalityTraits> (pt.ID));
            }
        }

        if (!Domain.domains.isEmpty()) {
            for (Domain d : Domain.domains) {
                interests.add(new LinkedValue<Domain> (d.ID));
            }
        }



    }


    public LinkedValue<PersonalityTraits> getPersonalityTraitByCode (String byCode) {
        return personality.get(Binding.readBinding(Binding.personalityTraitBinding, byCode.toLowerCase()));
    }

    public LinkedValue<PersonalityTraits> getPersonalityTraitByID (int byID) {
        return personality.get(byID);
    }


    public void fillLooks (InfoGroup infoTable) {

        Iterator<LookType> i = Looks.lookTypes.iterator();

        LookType nowLookType;


//draw hair
       nowLookType = i.next();
       //infoTable.addOption(nowLookType.LName + ": " +
               infoTable.addOption(Looks.returnLookName(nowLookType.ID, returnLookValue(nowLookType.ID)) + " "
                + Looks.returnLookName(nowLookType.ID + 1, returnLookValue(nowLookType.ID + 1)) + " hair");
        i.next();
//end draw hair

        while ((i.hasNext())) {
            nowLookType = i.next();

            //infoTable.addOption(nowLookType.LName + ": " + Looks.returnLookName(nowLookType.ID, looks.get(nowLookType.ID).now));
            infoTable.addOption(Looks.returnLookName(nowLookType.ID, looks.get(nowLookType.ID).now.value)+" "+nowLookType.LName.value.toLowerCase());


            //Log.info("Loaded "+nowLookType.LName + ": " + Looks.returnLookName(nowLookType.ID, looks.get(nowLookType.ID).now));

            //Log.info("Displaying looks by ID "+nowLookType.ID);
        }
    }

    public void drawLooks() {

        Iterator<LookType> i = Looks.lookTypes.iterator();

        LookType nowLookType;

        nowLookType = i.next();

        //Log.info(nowLookType.LName + ": "
        //        + Looks.returnLookName(nowLookType.ID, returnLookValue(nowLookType.ID)) + " "
        //        + Looks.returnLookName(nowLookType.ID + 1, returnLookValue(nowLookType.ID + 1)) + " hair");
        i.next();

        while ((i.hasNext())) {
            nowLookType = i.next();

            //Log.info(nowLookType.LName + ": " + Looks.returnLookName(nowLookType.ID, looks.get(nowLookType.ID).now));
        }
//                nowInterval = i.next();


        //Iterator<LookType> i = fromList.iterator()



    }

    public void setRandomName() {

        //Log.info("Random name for Gender "+gender+", nation "+nation);

        LName = PersonalName.returnNameList(gender, nation).get(Dice.rng.nextInt(PersonalName.returnNameList(gender, nation).size())).LName;

        //Log.info(LName);
    }

    public void rollLooks (){
     Dice dice = new Dice();

        //Iterator<Interval> i = fromList.iterator();

        //while ((i.hasNext()) && (result == null)) {
//                nowInterval = i.next();

//        dice.addOption(Gender, ID);

        ArrayList<Looks> nowGroup;
        LookType nowLookType;
        Looks nowLook;
        int nowType;
        int nowID;

        //fill all look types
        //Log.info("Look types count: " + Looks.lookTypes.size());

        for (nowType = 0; nowType < Looks.lookTypes.size(); nowType++) {

            //nowLookType = Looks.lookTypes.get(nowType);

            nowGroup = Looks.looks.get(nowType);
            //Log.info(nowLookType+": "+LName);

            //fill all looks of this type
            for (nowID = 0; nowID < nowGroup.size(); nowID++) {
                dice.addOption(nowGroup.get(nowID).frequency, nowID);

                //Log.info("Filling chances for look " + nowGroup.get(nowID).LName);
            }

            dice.rollDice();

            looks.add(new SmallPoints(dice.resultID, 100));

            //Log.info("Rolled "+nowGroup.get(dice.resultID).LName);

            dice.reset();

        }
    }

    public void rollJob (){

        Dice dice = new Dice();
        int nowID;

for (nowID = 0; nowID < Job.jobs.size(); nowID++) {
                dice.addOption(Job.jobs.get(nowID).frequency, nowID);
            }

            dice.rollDice();

            job = Job.jobs.get(dice.resultID);


    }

    public void rollRandom() {

      rollLooks();
      rollJob();

    }
}
TOP

Related Classes of transientlibs.objects.creatures.Person

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.