-
Notifications
You must be signed in to change notification settings - Fork 0
/
turn.js
104 lines (82 loc) · 2.29 KB
/
turn.js
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
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
//Class representing turns
var create_turn = function (info) {
that = {};
var rushCount = 9;
var info = info || events[Math.floor(Math.random()*events.length)];
that.title = info.descript;
that.categories = {};
for (category in info.categories) {
that.categories[category] = create_threshold(info.categories[category]);
}
that.getThresholds = function() {
return [this.partyThresh, this.csThresh, this.rushThresh, this.studyThresh];
}
that.run = function(frat) {
var play = frat.getPlayValues();
var i = 0;
var effect;
var rushCount;
var repMult = 0.6;
var scoreMult = 0.4;
console.log("Running " + this.title);
var results = {};
var rushScore = 0;
for (var cat in this.categories) {
curThresh = this.categories[cat];
effect = curThresh.get_effect(play[cat]);
rushCount += effect.rush;
effect.apply(frat);
results[cat] = effect;
i++;
}
// Add bids after Rush
if(info.descript == "Rush Weekend"){
game.frat.bids += 10;
}
return results;
}
return that;
}
//Class for determining what reward a play gets
var create_threshold = function(spec) {
var that = {};
that.get_effect = function(score) {
var i = 0;
for (i = spec.cutoffs.length - 1; i >= 0; i--) {
if (score >= parseInt(spec.cutoffs[i])) {
return create_effect(spec.rewards[i], spec.msgs[i], score);
}
}
return create_effect({}, "Nothing happened", score);
}
return that;
}
//Class for storing the effect of a turn
function create_effect(values, msg, score) {
var that = {};
values = values || {};
if (values.cash) {
that.cash = parseInt(values.cash.base) + score*parseInt(values.cash.mult);
}
if (values.rep) {
that.rep = parseInt(values.rep.base) + score*parseInt(values.rep.mult);
}
if (values.rush) {
that.rush = Math.round(parseInt(values.rush.base) + score*parseInt(values.rush.mult));
}
that.cash = that.cash || 0;
that.rep = that.rep || 0;
that.rush = that.rush || 0;
that.apply = function(frat) {
frat.cash += that.cash;
frat.rep += that.rep;
for (var i = 0; i < that.rush; i++) {
var rushee = create_member(frat.rep);
frat.rushees[rushee.id] = rushee;
}
}
that.string = function() {
return msg + " Rep: " + this.rep + " Cash : " + this.cash + " Rush: " + this.rush;
}
return that;
}