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