<commit_before>package city;

import gui.trace.AlertLog;
import gui.trace.AlertTag;

import java.util.*;

// TODO the gui packages are basically only here for the setOccupation() function. We will move the gui instantiation elsewhere, probably to the roles' respective constructors.
import city.home.*;
import city.interfaces.Person;
import city.bank.*;
import city.bank.gui.*;
import city.market.*;
import city.market.gui.*;
import city.restaurant.*;
import city.transportation.CommuterRole;
import agent.*;

public class PersonAgent extends Agent implements Person
{
	// Constants:
	public static final Integer RICH_LEVEL = 250;
	public static final Integer POOR_LEVEL = 10;
	
	// --------------------------------------- DATA -------------------------------------------
	// Personal data:
	private String _name;
	
	// Role data:
	private List<Role> _roles; // these are roles that you have had do when you're at a place e.g. EricCustomerRole, MarketCustomerRole
	private Role _currentRole; // this should never be null
	private boolean _sentCmdFinishAndLeave = false;
	private Role _nextRole; // this is the Role that will become active once the current transportation finishes.
	private CommuterRole _commuterRole = null;
	private Role _occupation;
	private boolean _weekday_notWeekend;
	private HomeOccupantRole _homeOccupantRole;
	private HomeBuyingRole _homeBuyingRole; // Will handle buying an apartment or house (now, just pays rent on apartment)
	
	// Commands for scenarios
	private List<String> _actionsToDo = new ArrayList<String>();
	
	// State data:
	public double _money;
	enum WealthState { RICH, NORMAL, BROKE, POOR } // the word "deadbeat" courtesy of Wilczynski lol
	boolean _deadbeat = false; // if true, means this person doesn't pay loans
	enum NourishmentState { HUNGRY, FULL }
	/** Contains state data about this person; this data can change (some parts, like wealth, don't change often). */
	class State
	{
		NourishmentState nourishment = NourishmentState.FULL; //TODO implement value for hunger<commit_msg>small change<commit_after>package city;

import gui.trace.AlertLog;
import gui.trace.AlertTag;

import java.util.*;

// TODO the gui packages are basically only here for the setOccupation() function. We will move the gui instantiation elsewhere, probably to the roles' respective constructors.
import city.home.*;
import city.interfaces.Person;
import city.bank.*;
import city.bank.gui.*;
import city.market.*;
import city.market.gui.*;
import city.restaurant.*;
import city.transportation.CommuterRole;
import agent.*;

public class PersonAgent extends Agent implements Person
{
	// Constants:
	public static final int RICH_LEVEL = 250;
	public static final int POOR_LEVEL = 10;
	
	// --------------------------------------- DATA -------------------------------------------
	// Personal data:
	private String _name;
	
	// Role data:
	private List<Role> _roles; // these are roles that you have had do when you're at a place e.g. EricCustomerRole, MarketCustomerRole
	private Role _currentRole; // this should never be null
	private boolean _sentCmdFinishAndLeave = false;
	private Role _nextRole; // this is the Role that will become active once the current transportation finishes.
	private CommuterRole _commuterRole = null;
	private Role _occupation;
	private boolean _weekday_notWeekend;
	private HomeOccupantRole _homeOccupantRole;
	private HomeBuyingRole _homeBuyingRole; // Will handle buying an apartment or house (now, just pays rent on apartment)
	
	// Commands for scenarios
	private List<String> _actionsToDo = new ArrayList<String>();
	
	// State data:
	public double _money;
	enum WealthState { RICH, NORMAL, BROKE, POOR } // the word "deadbeat" courtesy of Wilczynski lol
	boolean _deadbeat = false; // if true, means this person doesn't pay loans
	enum NourishmentState { HUNGRY, FULL }
	/** Contains state data about this person; this data can change (some parts, like wealth, don't change often). */
	class State
	{
		NourishmentState nourishment = NourishmentState.FULL; //TODO implement value for hunger
{'fraction_non_alphanumeric': 0.11584914961794429, 'fraction_numerical': 0.002464875523786049, 'mean_word_length': 3.643020594965675, 'pattern_counts': {'":': 0, '<': 9, '<?xml version=': 0, '>': 9, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '1755381', 'n_tokens_mistral': 1138, 'n_tokens_neox': 1093, 'n_words': 446}