This commit is contained in:
Yorick
2015-04-08 17:32:10 +02:00
parent 89036d27af
commit d0c0b16585
+31 -65
View File
@@ -5,15 +5,10 @@ import java.awt.Image;
import java.awt.Rectangle;
import java.awt.Shape;
import java.awt.geom.AffineTransform;
import java.awt.geom.Point2D;
import java.util.ArrayList;
import java.awt.geom.Area;
import java.awt.geom.Point2D;
import java.util.ArrayList;
import java.util.GregorianCalendar;
import java.util.HashMap;
import java.util.Map;
@@ -22,7 +17,6 @@ import Agenda.Event;
import Objects.DrawObject;
import Objects.Entrance;
import Objects.Path;
import Objects.Stage;
public class Visitor
@@ -368,110 +362,82 @@ public class Visitor
}
@SuppressWarnings("static-access")
public void fillActions()
{
public void fillActions() {
int startTime = 540;
int stopTime = 1260;
while (startTime < stopTime)
{
int random = (int) Math.floor(Math.random() * 21);
if (random < 40)
{
while (startTime < stopTime) {
int random = (int) Math.floor(Math.random() * 51);
if (random < 40) {
Point2D position = null;
DrawObject targetStage = null;
ArrayList<Event> posEvents = new ArrayList<Event>();
for (Event e : agenda.getEvents())
{
if (startTime >= e.getStart() && startTime < e.getStop())
{
for (Event e : agenda.getEvents()) {
if (startTime >= e.getStart() && startTime < e.getStop()) {
posEvents.add(e);
}
}
int totalPopularity = 0;
for (Event ev : posEvents)
{
totalPopularity += ev.getExpectedPopularity();
}
int r = (int) Math.floor(Math.random() * totalPopularity);
int currentPop = 0;
for (Event evs : posEvents)
{
int before = currentPop;
currentPop += evs.getExpectedPopularity();
if (currentPop >= r && before < r)
{
for (DrawObject d : objects)
{
if (d.getFileName().equals("stage"))
{
Stage s = (Stage) d;
if (s.getStage().getName().equals(evs.getStage().getName()))
{
position = s.getPosition();
targetStage = d;
}
if (posEvents.size() != 0) {
int r = (int) Math.floor(Math.random() * posEvents.size());
Event evs = posEvents.get(r);
for (DrawObject d : objects) {
if (d.getFileName().equals("stage")) {
Stage s = (Stage) d;
if (s.getStage().getName()
.equals(evs.getStage().getName())) {
position = s.getPosition();
targetStage = d;
}
}
}
}
int randomtime = (int) (40 + (Math.random() * (60 - 40)));
if (position != null)
{
if (position != null) {
Waypoint w = getClosestWaypoint(position);
actions.add(new Action(position, startTime, randomtime, targetStage, w));
actions.add(new Action(position, startTime, randomtime,
targetStage, w));
}
startTime = startTime + randomtime;
}
else if (random >= 40 && random < 45)
{
} else if (random >= 40 && random < 45) {
Point2D position = null;
DrawObject targetStage = null;
ArrayList<DrawObject> foodPlaces = new ArrayList<DrawObject>();
for (DrawObject d : objects)
{
if (d.getFileName().equals("food"))
{
for (DrawObject d : objects) {
if (d.getFileName().equals("food")) {
foodPlaces.add(d);
}
}
if (foodPlaces.size() != 0)
{
if (foodPlaces.size() != 0) {
int r = (int) Math.floor(Math.random() * foodPlaces.size());
position = foodPlaces.get(r).getPosition();
targetStage = foodPlaces.get(r);
Waypoint w = getClosestWaypoint(position);
actions.add(new Action(position, startTime, 35, targetStage, w));
actions.add(new Action(position, startTime, 35,
targetStage, w));
startTime = startTime + 20;
}
startTime = startTime + 35;
}
else if (random > 45)
{
} else if (random > 45) {
Point2D position = null;
DrawObject targetStage = null;
ArrayList<DrawObject> toilets = new ArrayList<DrawObject>();
for (DrawObject d : objects)
{
if (d.getFileName().equals("wc"))
{
for (DrawObject d : objects) {
if (d.getFileName().equals("wc")) {
toilets.add(d);
}
}
if (toilets.size() != 0)
{
if (toilets.size() != 0) {
int r = (int) Math.floor(Math.random() * toilets.size());
position = toilets.get(r).getPosition();
targetStage = toilets.get(r);
Waypoint w = getClosestWaypoint(position);
actions.add(new Action(position, startTime, 35, targetStage, w));
actions.add(new Action(position, startTime, 35,
targetStage, w));
startTime = startTime + 20;
}
startTime = startTime + 35;