1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 package zeus.actors;
25
26 import java.util.*;
27 import zeus.util.*;
28 import zeus.concepts.*;
29
30
31 public class EffectChain {
32 public PlanRecord record = null;
33 public int position = -1;
34 public int amount = -1;
35 public int start = -1;
36 public boolean consumed = true;
37 public String key = null;
38
39
40 public EffectChain () {
41 ;
42 }
43
44
45 public EffectChain(PlanRecord record, int position, int amount,
46 int start, boolean consumed) {
47 Assert.notNull(record);
48 Assert.notFalse(position > -1);
49 Assert.notFalse(amount > 0);
50 Assert.notFalse(start > 0);
51 this.record = record;
52 this.position = position;
53 this.amount = amount;
54 this.start = start;
55 this.consumed = consumed;
56 }
57 public EffectChain(String key, int amount, int start, boolean consumed) {
58 Assert.notNull(key);
59 Assert.notFalse(amount > 0);
60 Assert.notFalse(start > 0);
61 this.key = key;
62 this.amount = amount;
63 this.start = start;
64 this.consumed = consumed;
65 }
66 public EffectChain(EffectChain ch) {
67 if ( ch.isExternal() ) {
68 this.key = ch.key;
69 this.amount = ch.amount;
70 }
71 else {
72 this.record = ch.record;
73 this.position = ch.position;
74 this.amount = ch.amount;
75 }
76 this.start = ch.start;
77 this.consumed = ch.consumed;
78 }
79 public boolean isExternal() { return key != null; }
80 public String toString() {
81 String out = "EffectChain(";
82 if ( isExternal() )
83 out += key + "," + amount + "," + start + "," + consumed;
84 else
85 out += record + "," + position + "," + amount + "," + start + "," +
86 consumed;
87
88 out += ")";
89 return out;
90 }
91 }