package com.bernard.greposimu.source;

import java.util.List;
import java.util.Map;

public class SourcedTown {

	String name;
	int points;
	
	String god;
	SourcedTownResources resources;
	int espstorage;
	
	/* GLOBAL UNITS */
	// unit_id -> number of units
	// TOTAL units defending this city
	Map<String,Integer> unitsTotal;
	// TOTAL units from this city defending another city
	Map<String,Integer> outerTotal;
	// TOTAL units from other cities defending this city
	Map<String,Integer> supportTotal;
		
		
	// building_id -> level
	Map<String,Integer> buildings;
	
	// research_id -> hasBeenResearched
	Map<String,Boolean> researches;
	
	List<SourcedCastedPower> castedPowers;
	
	
	List<SourcedBuildingOrder> buildingOrders;
	List<SourcedRecruitmentOrder> recruitingOrders;
	List<SourcedResearchOrder> researchOrders;
	
	SourcedMilitiaTimes militia;
	
	public String getName() {
		return name;
	}
	public int getPoints() {
		return points;
	}
	public Map<String, Integer> getUnitsTotal() {
		return unitsTotal;
	}
	public Map<String, Integer> getOuterTotal() {
		return outerTotal;
	}
	public Map<String, Integer> getSupportTotal() {
		return supportTotal;
	}
	public Map<String, Integer> getBuildings() {
		return buildings;
	}
	public Map<String, Boolean> getResearches() {
		return researches;
	}
	public List<SourcedCastedPower> getCastedPowers() {
		return castedPowers;
	}
	public List<SourcedBuildingOrder> getBuildingOrders() {
		return buildingOrders;
	}
	public List<SourcedRecruitmentOrder> getRecruitingOrders() {
		return recruitingOrders;
	}
	public List<SourcedResearchOrder> getResearchOrders() {
		return researchOrders;
	}
	public SourcedTownResources getResources() {
		return resources;
	}
	public int getEspstorage() {
		return espstorage;
	}
	public SourcedMilitiaTimes getMilitia() {
		return militia;
	}
	public String getGod() {
		return god;
	}
	@Override
	public String toString() {
		return "SourcedTown [name=" + name + ", points=" + points + ", god=" + god + ", resources=" + resources
				+ ", espstorage=" + espstorage + ", unitsTotal=" + unitsTotal + ", outerTotal=" + outerTotal
				+ ", supportTotal=" + supportTotal + ", buildings=" + buildings + ", researches=" + researches
				+ ", castedPowers=" + castedPowers + ", buildingOrders=" + buildingOrders + ", recruitingOrders="
				+ recruitingOrders + ", researchOrders=" + researchOrders + ", militia=" + militia + "]";
	}
	
	
}
