Elin Decompiled Documentation EA 23.355 Stable
Loading...
Searching...
No Matches
RecipeManager Class Reference
Inheritance diagram for RecipeManager:
EClass

Public Types

enum  LearnState { Unavailable , InsufficientSkill , AlreadyLearned , Learnable }
 

Public Member Functions

RecipeSource GetSource (string id)
 
void Add (string id, bool showEffect=true)
 
bool IsKnown (string id)
 
List< RecipeSource > ListSources (Thing factory, List< RecipeSource > newRecipes=null)
 
void OnSleep (bool ehe=false)
 
void ComeUpWithRandomRecipe (string idCat=null, int lvBonus=0)
 
LearnState GetRecipeLearnState (string idRecipe)
 
void ComeUpWithRecipe (string idRecipe, int chanceForRandomRecipe=0)
 
void OnVersionUpdate ()
 

Static Public Member Functions

static void BuildList ()
 
static void Create (RenderRow row, string type, string suffix="")
 
static RecipeSource Get (string id)
 
static RecipeSource GetUnlearnedRecipe (int lvBonus, string cat, bool onlyUnlearned)
 
static RecipeSource GetLearnedRecipe (string cat=null)
 
static string GetRandomRecipe (int lvBonus, string cat=null, bool onlyUnlearned=false)
 
- Static Public Member Functions inherited from EClass
static int rndSeed (int a, int seed)
 
static int rnd (long a)
 
static int rnd (int a)
 
static int curve (long _a, int start, int step, int rate=75)
 
static int sqrt (int a)
 
static int rndHalf (int a)
 
static float rndf (float a)
 
static int rndSqrt (int a)
 
static void Wait (float a, Card c)
 
static void Wait (float a, Point p)
 
static int Bigger (int a, int b)
 
static int Smaller (int a, int b)
 

Public Attributes

HashSet< string > knownIngredients = new HashSet<string>()
 
HashSet< string > craftedRecipes = new HashSet<string>()
 
Dictionary< string, int > knownRecipes = new Dictionary<string, int>()
 
HashSet< string > hoveredRecipes = new HashSet<string>()
 
HashSet< string > newRecipes = new HashSet<string>()
 
Dictionary< string, List< int > > lastIngredients = new Dictionary<string, List<int>>()
 

Static Public Attributes

static bool rebuild
 
static List< RecipeSource > list = new List<RecipeSource>()
 
static Dictionary< string, RecipeSource > dict = new Dictionary<string, RecipeSource>()
 
- Static Public Attributes inherited from EClass
static Core core
 

Additional Inherited Members

- Properties inherited from EClass
static Game game [get]
 
static bool AdvMode [get]
 
static Player player [get]
 
static Chara pc [get]
 
static UI ui [get]
 
static Map _map [get]
 
static Zone _zone [get]
 
static FactionBranch Branch [get]
 
static FactionBranch BranchOrHomeBranch [get]
 
static Faction Home [get]
 
static Faction Wilds [get]
 
static Scene scene [get]
 
static BaseGameScreen screen [get]
 
static GameSetting setting [get]
 
static GameData gamedata [get]
 
static ColorProfile Colors [get]
 
static World world [get]
 
static SourceManager sources [get]
 
static SourceManager editorSources [get]
 
static SoundManager Sound [get]
 
static CoreDebug debug [get]
 

Detailed Description

Definition at line 6 of file RecipeManager.cs.

Member Enumeration Documentation

◆ LearnState

Enumerator
Unavailable 
InsufficientSkill 
AlreadyLearned 
Learnable 

Definition at line 8 of file RecipeManager.cs.

Member Function Documentation

◆ Add()

void RecipeManager.Add ( string  id,
bool  showEffect = true 
)
inline

Definition at line 141 of file RecipeManager.cs.

142 {
143 if (id.IsEmpty())
144 {
145 return;
146 }
147 RecipeSource recipeSource = Get(id);
148 if (recipeSource == null)
149 {
150 return;
151 }
152 if (!knownRecipes.ContainsKey(id))
153 {
154 newRecipes.Add(id);
155 knownRecipes[id] = 0;
156 }
157 knownRecipes[id]++;
158 int num = knownRecipes[id];
159 if (showEffect)
160 {
161 EClass.pc.PlaySound("idea");
162 EClass.pc.ShowEmo(Emo.idea, 0.5f, skipSame: false);
163 }
164 EClass.pc.Say("learnRecipe" + ((num == 1) ? "New" : ""), dict[id].Name.ToTitleCase(), num.ToString() ?? "");
165 if (num == 1 && !recipeSource.isBridgePillar)
166 {
167 if (recipeSource.NeedFactory)
168 {
169 EClass.pc.Say("recipe_factory", recipeSource.NameFactory);
170 }
171 else
172 {
173 EClass.pc.Say("recipe_nofactory");
174 }
175 }
176 recipeSource = Get(id + "-p");
177 if (recipeSource != null && !knownRecipes.ContainsKey(recipeSource.id))
178 {
179 Add(recipeSource.id, showEffect: false);
180 }
181 recipeSource = Get(id.Replace("-p", ""));
182 if (recipeSource != null && !knownRecipes.ContainsKey(recipeSource.id))
183 {
184 Add(recipeSource.id, showEffect: false);
185 }
186 if (recipeSource.row.category == "floor")
187 {
188 recipeSource = Get(id + "-b");
189 if (recipeSource != null && !knownRecipes.ContainsKey(recipeSource.id))
190 {
191 Add(recipeSource.id, showEffect: false);
192 }
193 recipeSource = Get(id.Replace("-b", ""));
194 if (recipeSource != null && !knownRecipes.ContainsKey(recipeSource.id))
195 {
196 Add(recipeSource.id, showEffect: false);
197 }
198 }
199 }
Emo
Definition: Emo.cs:2
SoundSource PlaySound(string id, float v=1f, bool spatial=true)
Definition: Card.cs:6645
void ShowEmo(Emo _emo=Emo.none, float duration=0f, bool skipSame=true)
Definition: Card.cs:6613
void Say(string lang, string ref1=null, string ref2=null)
Definition: Card.cs:7324
Definition: EClass.cs:6
static Chara pc
Definition: EClass.cs:15
static RecipeSource Get(string id)
static Dictionary< string, RecipeSource > dict
Dictionary< string, int > knownRecipes
void Add(string id, bool showEffect=true)
HashSet< string > newRecipes
RenderRow row
Definition: RecipeSource.cs:5
string NameFactory
Definition: RecipeSource.cs:75
bool isBridgePillar
Definition: RecipeSource.cs:15
bool NeedFactory
Definition: RecipeSource.cs:63
string category
Definition: RenderRow.cs:46

References Add(), RenderRow.category, dict, Get(), RecipeSource.id, RecipeSource.isBridgePillar, knownRecipes, RecipeSource.NameFactory, RecipeSource.NeedFactory, newRecipes, EClass.pc, Card.PlaySound(), RecipeSource.row, Card.Say(), and Card.ShowEmo().

Referenced by Add(), ComeUpWithRandomRecipe(), ComeUpWithRecipe(), ListSources(), TraitRecipe.OnRead(), TraitRecipeCat.OnRead(), OnSleep(), ResearchPlan.ParseReward(), and DramaOutcome.reward_sorin().

◆ BuildList()

static void RecipeManager.BuildList ( )
inlinestatic

Definition at line 40 of file RecipeManager.cs.

41 {
42 if (!rebuild && list.Count > 0)
43 {
44 return;
45 }
46 Debug.Log("Rebuilding recipe list");
47 list.Clear();
48 dict.Clear();
49 Recipe.recipeCache.Clear();
50 foreach (CardRow row in EClass.sources.cards.rows)
51 {
52 if (!row.isOrigin)
53 {
54 Create(row, "", row.isChara ? "-c" : "");
55 }
56 }
57 foreach (SourceBlock.Row row2 in EClass.sources.blocks.rows)
58 {
59 Create(row2, "Block");
60 if (row2.tileType == TileType.Pillar)
61 {
62 Create(row2, "BridgePillar", "-p");
63 }
64 }
65 foreach (SourceFloor.Row row3 in EClass.sources.floors.rows)
66 {
67 if (!row3.tag.Contains("noFloor"))
68 {
69 Create(row3, "Floor");
70 }
71 }
72 foreach (SourceFloor.Row row4 in EClass.sources.floors.rows)
73 {
74 if (!row4.tag.Contains("noBridge") && !row4.factory.IsEmpty() && row4.factory[0] != "x")
75 {
76 Create(row4, "Bridge", "-b");
77 }
78 }
79 foreach (SourceDeco.Row row5 in EClass.sources.decos.rows)
80 {
81 Create(row5, "Deco");
82 }
83 foreach (SourceObj.Row row6 in EClass.sources.objs.rows)
84 {
85 Create(row6, "Obj");
86 }
87 foreach (SourceCellEffect.Row row7 in EClass.sources.cellEffects.rows)
88 {
89 Create(row7, "Liquid");
90 }
91 rebuild = false;
92 }
bool isChara
Definition: CardRow.cs:55
bool isOrigin
Definition: CardRow.cs:52
static SourceManager sources
Definition: EClass.cs:43
static bool rebuild
static List< RecipeSource > list
static void Create(RenderRow row, string type, string suffix="")
Definition: Recipe.cs:7
static Dictionary< string, Recipe > recipeCache
Definition: Recipe.cs:175
List< CardRow > rows
Definition: SourceCard.cs:7
SourceCard cards
SourceObj objs
SourceDeco decos
SourceCellEffect cellEffects
SourceBlock blocks
SourceFloor floors
static TileTypePillar Pillar
Definition: TileType.cs:41

References SourceManager.blocks, SourceManager.cards, SourceManager.cellEffects, Create(), Debug, SourceManager.decos, dict, SourceManager.floors, CardRow.isChara, CardRow.isOrigin, list, SourceManager.objs, TileType.Pillar, rebuild, Recipe.recipeCache, SourceCard.rows, and EClass.sources.

Referenced by BuildMenu._Search(), BuildMenu.Activate(), Map.DropBlockComponent(), Recipe.DropIngredients(), GetUnlearnedRecipe(), ListSources(), CraftUtil.MakeDish(), Game.OnGameInstantiated(), HotItemHeld.OnSetCurrentItem(), LayerCraft.RefreshCategory(), and WidgetCodex.Search().

◆ ComeUpWithRandomRecipe()

void RecipeManager.ComeUpWithRandomRecipe ( string  idCat = null,
int  lvBonus = 0 
)
inline

Definition at line 270 of file RecipeManager.cs.

271 {
272 string randomRecipe = GetRandomRecipe(lvBonus, idCat, onlyUnlearned: true);
273 if (randomRecipe != null)
274 {
275 Msg.Say("learnRecipeIdea");
276 Add(randomRecipe);
277 }
278 }
Definition: Msg.cs:5
static string Say(string idLang, string ref1, string ref2=null, string ref3=null, string ref4=null)
Definition: Msg.cs:58
static string GetRandomRecipe(int lvBonus, string cat=null, bool onlyUnlearned=false)

References Add(), GetRandomRecipe(), and Msg.Say().

Referenced by TraitShrine._OnUse(), ComeUpWithRecipe(), and RecipeCard.Craft().

◆ ComeUpWithRecipe()

void RecipeManager.ComeUpWithRecipe ( string  idRecipe,
int  chanceForRandomRecipe = 0 
)
inline

Definition at line 303 of file RecipeManager.cs.

304 {
305 if (idRecipe.IsEmpty())
306 {
307 return;
308 }
309 RecipeSource recipeSource = Get(idRecipe);
310 int num = EClass.pc.Evalue(1661);
311 if (EClass.rnd((num >= 2) ? 5 : ((num == 1) ? 8 : 10)) != 0 && !EClass.debug.enable)
312 {
313 return;
314 }
315 if (recipeSource == null || EClass.player.recipes.knownRecipes.ContainsKey(idRecipe) || (!recipeSource.NeedFactory && !recipeSource.IsQuickCraft))
316 {
317 if (recipeSource != null && chanceForRandomRecipe > 0 && EClass.rnd(EClass.debug.enable ? 1 : chanceForRandomRecipe) == 0)
318 {
319 ComeUpWithRandomRecipe(recipeSource.row.Category.id);
320 }
321 return;
322 }
323 int id = recipeSource.GetReqSkill().id;
324 if (EClass.pc.Evalue(id) + 5 < recipeSource.row.LV)
325 {
326 Msg.Say("recipeReqLv", EClass.sources.elements.map[id].GetName());
327 return;
328 }
329 Msg.Say("learnRecipeIdea");
330 Add(idRecipe);
331 }
int Evalue(int ele)
Definition: Card.cs:2704
bool enable
Definition: CoreDebug.cs:302
static int rnd(long a)
Definition: EClass.cs:59
static Player player
Definition: EClass.cs:13
static CoreDebug debug
Definition: EClass.cs:49
int id
Definition: ELEMENT.cs:259
RecipeManager recipes
Definition: Player.cs:1167
void ComeUpWithRandomRecipe(string idCat=null, int lvBonus=0)
Element GetReqSkill()
bool IsQuickCraft
Definition: RecipeSource.cs:51
SourceCategory.Row Category
Definition: RenderRow.cs:123
int LV
Definition: RenderRow.cs:22
SourceElement elements

References Add(), RenderRow.Category, ComeUpWithRandomRecipe(), EClass.debug, SourceManager.elements, CoreDebug.enable, Card.Evalue(), Get(), RecipeSource.GetReqSkill(), Element.id, RecipeSource.IsQuickCraft, knownRecipes, RenderRow.LV, RecipeSource.NeedFactory, EClass.pc, EClass.player, Player.recipes, EClass.rnd(), RecipeSource.row, Msg.Say(), and EClass.sources.

Referenced by TaskHarvest.OnCreateProgress(), TaskDig.OnProgressComplete(), and TaskMine.OnProgressComplete().

◆ Create()

static void RecipeManager.Create ( RenderRow  row,
string  type,
string  suffix = "" 
)
inlinestatic

Definition at line 94 of file RecipeManager.cs.

95 {
96 RecipeSource recipeSource = new RecipeSource();
97 recipeSource.id = row.RecipeID + suffix;
98 recipeSource.isBridge = type == "Bridge";
99 recipeSource.isBridgePillar = type == "BridgePillar";
100 recipeSource.type = type;
101 recipeSource.row = row;
102 recipeSource.isChara = row is SourceChara.Row;
103 if (!row.factory.IsEmpty() && !recipeSource.isBridge && !recipeSource.isBridgePillar)
104 {
105 string text = row.factory[0];
106 if (text != "x" && text != "none" && text != "None" && text != "self" && !EClass.sources.cards.map.ContainsKey(text))
107 {
108 Debug.LogWarning("Recipe '" + recipeSource.id + "' (" + row.GetAlias + ") has unknown factory '" + text + "'");
109 recipeSource.noListing = true;
110 }
111 }
112 if (!row.factory.IsEmpty() && row.factory[0] == "x")
113 {
114 recipeSource.noListing = true;
115 }
116 list.Add(recipeSource);
117 dict[recipeSource.id] = recipeSource;
118 _ = row.components;
119 try
120 {
121 Recipe.Create(recipeSource).BuildIngredientList();
122 }
123 catch (Exception ex)
124 {
125 list.Remove(recipeSource);
126 dict.Remove(recipeSource.id);
127 Debug.LogWarning($"Failed to create recipe '{row.RecipeID}' '{type}{suffix}'\n{ex}");
128 }
129 }
static Recipe Create(RecipeSource _source, int idMat=-1, Thing ing=null)
Definition: Recipe.cs:325
virtual void BuildIngredientList()
Definition: Recipe.cs:539
string[] factory
Definition: RenderRow.cs:54
string[] components
Definition: RenderRow.cs:52
Dictionary< string, CardRow > map
Definition: SourceCard.cs:9
virtual string GetAlias
Definition: SourceData.cs:655

References $, Recipe.BuildIngredientList(), SourceManager.cards, RenderRow.components, Recipe.Create(), Debug, dict, RenderRow.factory, SourceData< T, T2 >.BaseRow.GetAlias, RecipeSource.id, RecipeSource.isBridge, RecipeSource.isBridgePillar, list, SourceCard.map, and EClass.sources.

Referenced by BuildList().

◆ Get()

static RecipeSource RecipeManager.Get ( string  id)
inlinestatic

Definition at line 131 of file RecipeManager.cs.

132 {
133 return dict.TryGetValue(id);
134 }

References dict.

Referenced by Add(), ComeUpWithRecipe(), Map.DropBlockComponent(), GetLearnedRecipe(), GetRecipeLearnState(), CraftUtil.MakeDish(), and LayerCraftFloat.RefreshDisassemble().

◆ GetLearnedRecipe()

static RecipeSource RecipeManager.GetLearnedRecipe ( string  cat = null)
inlinestatic

Definition at line 347 of file RecipeManager.cs.

348 {
349 List<RecipeSource> list = new List<RecipeSource>();
350 foreach (string key in EClass.player.recipes.knownRecipes.Keys)
351 {
352 RecipeSource recipeSource = Get(key);
353 if (recipeSource != null && recipeSource.row is SourceThing.Row && !recipeSource.noRandomRecipe && (recipeSource.NeedFactory || recipeSource.IsQuickCraft) && (cat == null || recipeSource.row.Category.IsChildOf(cat)))
354 {
355 list.Add(recipeSource);
356 }
357 }
358 return list.RandomItemWeighted((RecipeSource r) => (r.row.chance == 0) ? 100 : r.row.chance);
359 }
bool noRandomRecipe
Definition: RecipeSource.cs:25
int chance
Definition: RenderRow.cs:24

References RenderRow.Category, RenderRow.chance, Get(), RecipeSource.IsQuickCraft, knownRecipes, list, RecipeSource.NeedFactory, RecipeSource.noRandomRecipe, EClass.player, Player.recipes, and RecipeSource.row.

Referenced by GetRandomRecipe().

◆ GetRandomRecipe()

static string RecipeManager.GetRandomRecipe ( int  lvBonus,
string  cat = null,
bool  onlyUnlearned = false 
)
inlinestatic

Definition at line 361 of file RecipeManager.cs.

362 {
363 RecipeSource recipeSource = null;
364 recipeSource = GetUnlearnedRecipe(lvBonus, cat, onlyUnlearned);
365 if (recipeSource == null)
366 {
367 recipeSource = GetLearnedRecipe(cat);
368 }
369 return recipeSource?.id;
370 }
static RecipeSource GetLearnedRecipe(string cat=null)
static RecipeSource GetUnlearnedRecipe(int lvBonus, string cat, bool onlyUnlearned)

References GetLearnedRecipe(), GetUnlearnedRecipe(), and RecipeSource.id.

Referenced by ComeUpWithRandomRecipe(), TraitRecipe.OnCreate(), TraitRecipeCat.OnRead(), and OnSleep().

◆ GetRecipeLearnState()

LearnState RecipeManager.GetRecipeLearnState ( string  idRecipe)
inline

Definition at line 280 of file RecipeManager.cs.

281 {
282 if (idRecipe.IsEmpty())
283 {
284 return LearnState.Unavailable;
285 }
286 RecipeSource recipeSource = Get(idRecipe);
287 if (recipeSource == null || (!recipeSource.NeedFactory && !recipeSource.IsQuickCraft))
288 {
289 return LearnState.Unavailable;
290 }
291 if (EClass.player.recipes.knownRecipes.ContainsKey(idRecipe))
292 {
293 return LearnState.AlreadyLearned;
294 }
295 int id = recipeSource.GetReqSkill().id;
296 if (EClass.pc.Evalue(id) + 5 < recipeSource.row.LV)
297 {
298 return LearnState.InsufficientSkill;
299 }
300 return LearnState.Learnable;
301 }

References Card.Evalue(), Get(), RecipeSource.GetReqSkill(), Element.id, RecipeSource.IsQuickCraft, knownRecipes, RenderRow.LV, RecipeSource.NeedFactory, EClass.pc, EClass.player, Player.recipes, and RecipeSource.row.

Referenced by BaseTaskHarvest.GetText().

◆ GetSource()

RecipeSource RecipeManager.GetSource ( string  id)
inline

Definition at line 136 of file RecipeManager.cs.

137 {
138 return dict.TryGetValue(id);
139 }

References dict.

Referenced by AM_Picker.TryGetRecipe().

◆ GetUnlearnedRecipe()

static RecipeSource RecipeManager.GetUnlearnedRecipe ( int  lvBonus,
string  cat,
bool  onlyUnlearned 
)
inlinestatic

Definition at line 333 of file RecipeManager.cs.

334 {
335 BuildList();
336 List<RecipeSource> list = new List<RecipeSource>();
338 {
339 if (!item.alwaysKnown && !item.noRandomRecipe && (item.NeedFactory || item.IsQuickCraft) && (EClass.game.IsSurvival || !item.row.tag.Contains("oneblock_only")) && (cat == null || item.row.Category.IsChildOf(cat)) && (!onlyUnlearned || !EClass.player.recipes.knownRecipes.ContainsKey(item.id)) && EClass.pc.Evalue(item.GetReqSkill().id) + 5 + lvBonus >= item.row.LV && !item.row.ContainsTag("hiddenRecipe"))
340 {
341 list.Add(item);
342 }
343 }
344 return list.RandomItemWeighted((RecipeSource r) => (r.row.chance == 0) ? 100 : r.row.chance);
345 }
static Game game
Definition: EClass.cs:9
bool IsSurvival
Definition: Game.cs:276
static void BuildList()

References BuildList(), RenderRow.chance, Card.Evalue(), EClass.game, Game.IsSurvival, item, knownRecipes, list, EClass.pc, EClass.player, Player.recipes, and RecipeSource.row.

Referenced by GetRandomRecipe().

◆ IsKnown()

bool RecipeManager.IsKnown ( string  id)
inline

Definition at line 201 of file RecipeManager.cs.

202 {
204 {
205 return EClass.player.recipes.knownRecipes.ContainsKey(id);
206 }
207 return true;
208 }
bool allRecipe
Definition: CoreDebug.cs:249

References CoreDebug.allRecipe, EClass.debug, knownRecipes, EClass.player, and Player.recipes.

Referenced by AM_Picker.Result.GetText(), BuildMenu.RefreshCategory(), and DramaOutcome.reward_sorin().

◆ ListSources()

List< RecipeSource > RecipeManager.ListSources ( Thing  factory,
List< RecipeSource >  newRecipes = null 
)
inline

Definition at line 210 of file RecipeManager.cs.

211 {
212 BuildList();
213 List<RecipeSource> list = new List<RecipeSource>();
215 {
216 if (item.isBridgePillar || (factory == null && item.idFactory != "self") || (factory != null && !factory.trait.Contains(item)) || item.isChara || !item.ShouldList())
217 {
218 continue;
219 }
220 if (!EClass.debug.godCraft && !EClass.player.recipes.knownRecipes.ContainsKey(item.id))
221 {
222 bool flag = false;
223 if (item.row.recipeKey != null && item.row.recipeKey.Length != 0 && item.row.recipeKey[0].Length > 0 && item.row.recipeKey[0][0] == '*')
224 {
225 flag = true;
226 }
227 string id = item.id;
228 if (!(id == "waystone"))
229 {
230 if (id == "container_shipping" && EClass.game.quests.GetPhase<QuestShippingChest>() >= 0)
231 {
232 flag = true;
233 }
234 }
235 else if (EClass.game.quests.GetPhase<QuestExploration>() >= 6)
236 {
237 flag = true;
238 }
239 if (!flag)
240 {
241 continue;
242 }
243 if (newRecipes != null)
244 {
246 if (EClass.player.recipes.newRecipes.Contains(item.id))
247 {
248 newRecipes.Add(item);
250 }
251 }
252 }
253 list.Add(item);
254 }
255 return list;
256 }
Trait trait
Definition: Card.cs:54
bool godCraft
Definition: CoreDebug.cs:197
QuestManager quests
Definition: Game.cs:183
int GetPhase(string id)
virtual bool Contains(RecipeSource r)
Definition: Trait.cs:619

References Add(), BuildList(), EClass.debug, EClass.game, QuestManager.GetPhase(), CoreDebug.godCraft, item, knownRecipes, list, newRecipes, EClass.player, Game.quests, and Player.recipes.

Referenced by TraitCrafter.OnUse(), LayerCraft.RefreshCategory(), and TraitCrafter.TrySetAct().

◆ OnSleep()

void RecipeManager.OnSleep ( bool  ehe = false)
inline

Definition at line 258 of file RecipeManager.cs.

259 {
260 int slept = EClass.player.stats.slept;
261 Rand.SetSeed(EClass.game.seed + slept);
262 if ((slept <= 3 || EClass.rnd(ehe ? 777 : 3) != 0) && (EClass.rnd(EClass.pc.Evalue(1642) + 1) > 0 || ((slept <= 15 || EClass.rnd(3) != 0) && (slept <= 30 || EClass.rnd(3) != 0) && (slept <= 60 || EClass.rnd(3) != 0))))
263 {
264 Msg.Say("learnRecipeSleep");
265 Rand.SetSeed();
266 Add(GetRandomRecipe((ehe ? 5 : 0) + EClass.rnd(EClass.rnd(EClass.rnd(10)))));
267 }
268 }
int seed
Definition: Game.cs:201
int slept
Definition: Player.cs:99
Stats stats
Definition: Player.cs:1086
Definition: Rand.cs:4
static void SetSeed(int a=-1)
Definition: Rand.cs:44

References Add(), Card.Evalue(), EClass.game, GetRandomRecipe(), EClass.pc, EClass.player, EClass.rnd(), Msg.Say(), Game.seed, Rand.SetSeed(), Player.Stats.slept, and Player.stats.

Referenced by ConSleep.OnRemoved().

◆ OnVersionUpdate()

void RecipeManager.OnVersionUpdate ( )
inline

Definition at line 372 of file RecipeManager.cs.

373 {
374 EClass.pc.things.Foreach(delegate(Thing t)
375 {
376 knownIngredients.Add(t.id);
377 });
378 knownIngredients.Add("flower");
379 }
string id
Definition: Card.cs:36
ThingContainer things
Definition: Card.cs:39
HashSet< string > knownIngredients
void Foreach(Action< Thing > action, bool onlyAccessible=true)
Definition: Thing.cs:8

References ThingContainer.Foreach(), Card.id, knownIngredients, EClass.pc, and Card.things.

Referenced by Game.OnLoad().

Member Data Documentation

◆ craftedRecipes

HashSet<string> RecipeManager.craftedRecipes = new HashSet<string>()

Definition at line 26 of file RecipeManager.cs.

Referenced by Recipe.HasFirstTimeBonus(), and Recipe.TryGetFirstTimeBonus().

◆ dict

Dictionary<string, RecipeSource> RecipeManager.dict = new Dictionary<string, RecipeSource>()
static

◆ hoveredRecipes

HashSet<string> RecipeManager.hoveredRecipes = new HashSet<string>()

◆ knownIngredients

HashSet<string> RecipeManager.knownIngredients = new HashSet<string>()

Definition at line 23 of file RecipeManager.cs.

Referenced by Card.AddThing(), and OnVersionUpdate().

◆ knownRecipes

◆ lastIngredients

Dictionary<string, List<int> > RecipeManager.lastIngredients = new Dictionary<string, List<int>>()

◆ list

◆ newRecipes

HashSet<string> RecipeManager.newRecipes = new HashSet<string>()

Definition at line 35 of file RecipeManager.cs.

Referenced by Add(), and ListSources().

◆ rebuild

bool RecipeManager.rebuild
static

Definition at line 16 of file RecipeManager.cs.

Referenced by BuildList().


The documentation for this class was generated from the following file: