-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathSector.cs
65 lines (64 loc) · 1.66 KB
/
Sector.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Bulkes
{
class Sector
{
private int basePriority;
private int finishPriority;
private float sumFeed;
private List<Bulk> bulkes;
const int MAX_PRIORITY = 10000;
const int EMPTY = 5;
const int BIG_BULK = 10;
public Sector()
{
bulkes = new List<Bulk>(5 + 1);//1 - for user
sumFeed = 0f;
basePriority = 0;
}
public void restart()
{
bulkes.Clear();
sumFeed = 0f;
basePriority = 0;
}
public void addFeed(float feed)
{
sumFeed += feed;
}
public void checkBulk(Bulk bulk)
{
bulkes.Add(bulk);
}
public void findPriority(Bulk current_bulk)
{
foreach (Bulk bulk in bulkes)
{
if (bulk != current_bulk)
{
if (bulk.getRadius() < current_bulk.getRadius() - Settings.BulkOffsetRadius)
sumFeed += bulk.getFeed();
else
basePriority += BIG_BULK;
}
}
basePriority += (int)Math.Min(Settings.MaxTotalFeed / sumFeed, EMPTY);
}
public int getPriority()
{
return finishPriority;
}
public int getBasePriority()
{
return basePriority;
}
public void updatePriority(int value)
{
finishPriority = basePriority + value;
}
}
}