12 this.branch = _branch;
15 researchPlan.SetOwner(_branch);
19 researchPlan2.SetOwner(_branch);
24 public void OnSimulateDay()
26 this.newPlans.Clear();
30 public void TryAddPlans(
string idResource,
int lv)
35 if ((predicate = <>9__0) ==
null)
37 predicate = (<>9__0 = ((
SourceResearch.Row r) => r.resource.Length > 1 && r.resource[0] == idResource && r.resource[1].ToInt() == lv));
46 public bool IsListBarter(
string idPlan)
49 return row.money > 0 && !this.branch.researches.HasPlan(row.id);
53 public bool HasPlan(
string idPlan)
55 using (IEnumerator<ResearchPlan> enumerator = this.plans.Concat(this.finished).GetEnumerator())
57 while (enumerator.MoveNext())
59 if (enumerator.Current.id == idPlan)
69 public bool IsComplete(
string id,
int rank = -1)
71 using (List<ResearchPlan>.Enumerator enumerator = this.finished.GetEnumerator())
73 while (enumerator.MoveNext())
75 if (enumerator.Current.source.id ==
id)
85 if (researchPlan.source.id ==
id && researchPlan.rank >= rank)
95 public void AddPlan(
string id)
103 p.SetOwner(this.branch);
105 this.newPlans.Add(p);
106 WidgetPopText.Say(
"rewardPlan".lang(p.Name,
null,
null,
null,
null), FontColor.Default,
null);
112 return this.branch.resources.knowledge.value >= p.source.tech;
118 if (this.focused == p)
123 WidgetPopText.Say(
"completePlan".lang(p.Name,
null,
null,
null,
null), FontColor.Great,
null);
124 if (p.source.maxLv > p.rank)
127 p.exp = (p.lastExp = 0);
131 this.plans.Remove(p);
132 this.finished.Add(p);
137 public void ShowNewPlans(Action onComplete =
null)
139 Rand.SetSeed(
EClass.game.seed +
this.branch.seedPlan);
140 List<ResearchPlan> list =
new List<ResearchPlan>();
151 this.branch.seedPlan++;
152 this.branch.researches.AddPlan(p);
153 Action onComplete2 = onComplete;
154 if (onComplete2 ==
null)
166 public List<ResearchPlan> plans =
new List<ResearchPlan>();
170 public List<ResearchPlan> finished =
new List<ResearchPlan>();
174 public List<ResearchPlan> newPlans =
new List<ResearchPlan>();