Elin Decompiled Documentation EA 23.229 Stable 1st Anniversary Patch 2
Loading...
Searching...
No Matches
RecipeCard Class Reference
Inheritance diagram for RecipeCard:
Recipe EClass

Public Member Functions

override IRenderer GetRenderer ()
 
override string GetDetail ()
 
override string GetIdThing ()
 
override void OnRenderMarker (Point point, bool active, HitResult result, bool main, int dir, int bridgeHeight)
 
override void BuildIngredientList ()
 
override void OnChangeIngredient ()
 
override void OnSelected ()
 
Card CreateMold ()
 
override Thing Craft (BlessedState blessed, bool sound=false, List< Thing > ings=null, TraitCrafter crafter=null, bool model=false)
 
void MakeDish (Thing t)
 
void MixIngredients (Thing t)
 
string GetIdFailDish ()
 
override void Build (TaskBuild task)
 
override void Build (Chara chara, Card t, Point pos, int mat, int dir, int altitude, int bridgeHeight)
 
override void OnChangeAltitude (int a)
 
override void Rotate ()
 
override void SetDir (int d)
 
override void WriteNote (UINote n)
 
override Recipe Duplicate ()
 
- Public Member Functions inherited from Recipe
bool IsStaticLV ()
 
int GetQualityBonus ()
 
virtual int GetRefVal ()
 
virtual string GetIdThing ()
 
virtual bool ShouldShowHighlight (HitResult r)
 
BaseTileSelector.BoxType GetBoxType ()
 
int GetDefaultColor ()
 
virtual SourceMaterial.Row GetMainMaterial ()
 
virtual SourceMaterial.Row GetColorMaterial ()
 
virtual void BuildIngredientList ()
 
void BuildIngredientList (Thing t)
 
virtual void OnChangeIngredient ()
 
virtual Thing Craft (BlessedState blessed, bool sound=false, List< Thing > ings=null, TraitCrafter crafter=null, bool model=false)
 
bool HasSameTile (Point point, int dir, int altitude, int bridgeHeight)
 
virtual void Build (TaskBuild task)
 
virtual void Build (Chara chara, Card t, Point pos, int mat, int dir, int altitude, int bridgeHeight)
 
virtual void OnRenderMarker (Point point, bool active, HitResult result, bool main, int dir, int bridgeHeight)
 
string GetName ()
 
virtual string GetDetail ()
 
virtual void WriteNote (UINote n)
 
void WriteReqFactory (UINote n, bool hasFactory=true)
 
void WriteReqSkill (UINote n)
 
virtual IRenderer GetRenderer ()
 
virtual void OnSelected ()
 
virtual void OnChangeAltitude (int a)
 
virtual void Rotate ()
 
virtual void SetDir (int d)
 
virtual Recipe Duplicate ()
 
virtual void SetImage (Image icon)
 
bool IsCraftable ()
 
int GetMaxCount ()
 
void SetTextDifficulty (UIText text)
 
int GetSortVal ()
 
bool HasFirstTimeBonus ()
 
void TryGetFirstTimeBonus ()
 
void SaveLastIngredients ()
 
QuestTrackCraft GetQuestTrack ()
 
void ToggleTrack (QuestTrackCraft quest)
 

Public Attributes

CardRow _sourceCard
 
bool freePos
 
float fx
 
float fy
 
Card _mold
 
- Public Attributes inherited from Recipe
string id
 
List< Ingredientingredients = new List<Ingredient>()
 
bool UseStock
 
bool IngAsProduct
 
bool VirtualBlock
 
int _dir
 
int sync
 
int idMat = -1
 
int idSkin
 
State state
 
RecipeSource _source
 

Properties

CardRow sourceCard [get]
 
override RenderRow renderRow [get]
 
override TileType tileType [get]
 
string idCard [get]
 
override bool CanRotate [get]
 
override bool IsThing [get]
 
override Card Mold [get]
 
bool isDish [get]
 
- Properties inherited from Recipe
RecipeSource source [get]
 
SourceMaterial.Row DefaultMaterial [get]
 
virtual TileRow tileRow [get]
 
virtual RenderRow renderRow [get]
 
string Name [get]
 
virtual TileType tileType [get]
 
virtual bool IsFloorOrBridge [get]
 
int MaxAltitude [get]
 
int RecipeLv [get]
 
bool IsFloor [get]
 
bool IsObj [get]
 
virtual bool IsBlock [get]
 
bool IsWallOrFence [get]
 
bool IsBridge [get]
 
virtual bool IsThing [get]
 
virtual Card Mold [get]
 
virtual int W [get]
 
virtual int H [get]
 
virtual bool RequireIngredients [get]
 
bool MultiSize [get]
 
BaseTileSelector tileSelector [get]
 
virtual int CostMoney [get]
 
virtual bool CanRotate [get]
 
- 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]
 

Additional Inherited Members

- Public Types inherited from Recipe
enum  State { Valid , Invalid }
 
enum  IngType { Default , CreativeFood }
 
- Static Public Member Functions inherited from Recipe
static Recipe GetOrCreate (string id)
 
static Recipe Create (RecipeSource _source, int idMat=-1, Thing ing=null)
 
static Recipe Create (Thing t)
 
static void DropIngredients (string id, string idMatMain, int num=1)
 
- 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 (int a, int start, int step, int rate=75)
 
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)
 
- Static Public Attributes inherited from Recipe
static Dictionary< string, ReciperecipeCache = new Dictionary<string, Recipe>()
 
- Static Public Attributes inherited from EClass
static Core core
 

Detailed Description

Definition at line 5 of file RecipeCard.cs.

Member Function Documentation

◆ Build() [1/2]

override void RecipeCard.Build ( Chara  chara,
Card  t,
Point  pos,
int  mat,
int  dir,
int  altitude,
int  bridgeHeight 
)
inlinevirtual

Reimplemented from Recipe.

Definition at line 454 of file RecipeCard.cs.

455 {
456 if (mat == -1)
457 {
458 mat = 2;
459 }
460 EClass.pc.PlaySound(EClass.sources.materials.rows[mat].GetSoundImpact());
461 t.SetDir(dir);
462 t.idSkin = idSkin;
463 EClass._zone.AddCard(t, pos);
464 if (t.trait is TraitHouseBoard && ActionMode.Build.houseBoard != null)
465 {
466 (t.trait as TraitHouseBoard).data = IO.DeepCopy(ActionMode.Build.houseBoard.data);
467 }
468 t.SetPlaceState(PlaceState.installed, byPlayer: true);
469 t.altitude = altitude;
470 t.isPlayerCreation = true;
471 if (EClass._zone.idCurrentSubset != null)
472 {
473 t.isSubsetCard = true;
474 }
475 t.ignoreStackHeight = Input.GetKey(KeyCode.LeftControl);
476 if (ActionMode.Build.IsActive && t.trait.MaskOnBuild && EClass.debug.enable)
477 {
478 t.isMasked = true;
479 }
481 {
482 t.isRoofItem = true;
483 t.SetPlaceState(PlaceState.roaming);
484 }
485 try
486 {
487 t.ForeachPoint(delegate(Point p, bool main)
488 {
489 CheckBlock(p);
490 });
491 }
492 catch
493 {
494 Debug.LogWarning("kokodayo");
495 }
496 t.freePos = freePos;
497 if (freePos)
498 {
499 t.fx = fx;
500 t.fy = fy;
501 }
503 void CheckBlock(Point _pos)
504 {
505 if (_pos.cell.IsBlocked && _pos.HasChara)
506 {
507 foreach (Chara item in _pos.ListCharas().Copy())
508 {
509 chara.Kick(item, ignoreSelf: false, karmaLoss: false);
510 }
511 }
512 }
513 }
PlaceState
Definition: PlaceState.cs:2
TraitHouseBoard houseBoard
Definition: AM_Build.cs:16
virtual bool IsRoofEditMode(Card c=null)
Definition: ActionMode.cs:311
static AM_Build Build
Definition: ActionMode.cs:49
void RefreshSprite()
virtual bool isThing
Definition: Card.cs:2069
void SetPlaceState(PlaceState newState, bool byPlayer=false)
Definition: Card.cs:3677
SoundSource PlaySound(string id, float v=1f, bool spatial=true)
Definition: Card.cs:6038
virtual void SetDir(int d)
Definition: Card.cs:6094
void ForeachPoint(Action< Point, bool > action)
Definition: Card.cs:7704
Trait trait
Definition: Card.cs:53
CardRenderer renderer
Definition: Card.cs:61
bool IsBlocked
Definition: Cell.cs:895
Definition: Chara.cs:10
void Kick(Point p, bool ignoreSelf=false, bool checkWall=true)
Definition: Chara.cs:5677
bool enable
Definition: CoreDebug.cs:286
Definition: EClass.cs:5
static Scene scene
Definition: EClass.cs:30
static Zone _zone
Definition: EClass.cs:20
static SourceManager sources
Definition: EClass.cs:42
static Chara pc
Definition: EClass.cs:14
static CoreDebug debug
Definition: EClass.cs:48
Definition: IO.cs:11
Definition: Point.cs:9
List< Chara > ListCharas()
Definition: Point.cs:1159
Cell cell
Definition: Point.cs:51
bool HasChara
Definition: Point.cs:226
float fy
Definition: RecipeCard.cs:16
float fx
Definition: RecipeCard.cs:13
bool freePos
Definition: RecipeCard.cs:10
int idSkin
Definition: Recipe.cs:199
ActionMode actionMode
Definition: Scene.cs:79
SourceMaterial materials
string idCurrentSubset
Definition: Spatial.cs:28
virtual bool MaskOnBuild
Definition: Trait.cs:176
Card AddCard(Card t, Point point)
Definition: Zone.cs:1959

References EClass._zone, Scene.actionMode, Zone.AddCard(), ActionMode.Build, Point.cell, TraitHouseBoard.data, EClass.debug, Debug, CoreDebug.enable, Card.ForeachPoint(), freePos, fx, fy, Point.HasChara, AM_Build.houseBoard, Spatial.idCurrentSubset, Recipe.idSkin, Cell.IsBlocked, ActionMode.IsRoofEditMode(), Card.isThing, item, Chara.Kick(), Point.ListCharas(), Trait.MaskOnBuild, SourceManager.materials, EClass.pc, Card.PlaySound(), CardRenderer.RefreshSprite(), Card.renderer, EClass.scene, Card.SetDir(), Card.SetPlaceState(), EClass.sources, and Card.trait.

◆ Build() [2/2]

override void RecipeCard.Build ( TaskBuild  task)
inlinevirtual

Reimplemented from Recipe.

Definition at line 397 of file RecipeCard.cs.

398 {
399 Card card = null;
400 if (task.target != null)
401 {
402 card = task.target;
403 }
404 else if (IngAsProduct)
405 {
406 if (task.resources.Count == 0)
407 {
408 Thing thing = ingredients[0].RefreshThing();
409 if (thing == null)
410 {
411 SE.Beep();
412 return;
413 }
414 Thing item = thing.Split(1);
415 task.resources.Add(item);
416 if (ingredients[0].thing.isDestroyed || ingredients[0].thing.ExistsOnMap)
417 {
418 ingredients[0].thing = null;
419 }
420 }
421 card = task.resources[0];
422 }
423 else if (sourceCard.isChara)
424 {
426 }
427 else
428 {
430 if (!card.IsUnique)
431 {
432 card.ChangeMaterial(GetMainMaterial());
433 }
434 if (base.source.colorIng != 0)
435 {
436 card.Dye(GetColorMaterial());
437 }
438 if (card.IsContainer)
439 {
440 card.RemoveThings();
441 }
442 foreach (Ingredient ingredient in ingredients)
443 {
444 if (ingredient.thing != null && ingredient.thing.HasElement(759))
445 {
446 card.elements.SetBase(759, ingredient.thing.Evalue(759));
447 }
448 }
449 }
450 Build(task.owner, card, task.pos, ingredients[0].mat, task.dir, task.altitude, task.bridgeHeight);
451 card.renderer.PlayAnime(AnimeID.Place);
452 }
AnimeID
Definition: AnimeID.cs:2
new Chara owner
Definition: AIAct.cs:14
void Add(Act a, string s="")
Definition: ActPlan.cs:11
bool isChara
Definition: CardRow.cs:55
Definition: Card.cs:11
bool isDestroyed
Definition: Card.cs:75
Thing Split(int a)
Definition: Card.cs:3414
int LV
Definition: Card.cs:386
static Chara Create(string id, int lv=-1)
Definition: CharaGen.cs:17
CardRow sourceCard
Definition: RecipeCard.cs:20
string idCard
Definition: RecipeCard.cs:26
List< Ingredient > ingredients
Definition: Recipe.cs:182
virtual SourceMaterial.Row GetMainMaterial()
Definition: Recipe.cs:485
virtual SourceMaterial.Row GetColorMaterial()
Definition: Recipe.cs:499
bool IngAsProduct
Definition: Recipe.cs:188
int altitude
Definition: TaskBuild.cs:17
Card target
Definition: TaskBuild.cs:35
int bridgeHeight
Definition: TaskBuild.cs:14
int dir
Definition: TaskBuild.cs:11
List< Thing > resources
Definition: TaskBuild.cs:20
Point pos
Definition: TaskPoint.cs:11
static Thing Create(string id, int idMat=-1, int lv=-1)
Definition: ThingGen.cs:53
Definition: Thing.cs:8
override int DangerLv
Definition: Zone.cs:107

References EClass._zone, ActPlan.List.Add(), TaskBuild.altitude, TaskBuild.bridgeHeight, Build, card, ThingGen.Create(), CharaGen.Create(), Zone.DangerLv, TaskBuild.dir, Card.Evalue(), Recipe.GetColorMaterial(), Recipe.GetMainMaterial(), Card.HasElement(), idCard, Recipe.IngAsProduct, Recipe.ingredients, CardRow.isChara, Card.isDestroyed, item, Card.LV, AIAct.owner, EClass.pc, TaskPoint.pos, TaskBuild.resources, sourceCard, Card.Split(), TaskBuild.target, and Recipe.Ingredient.thing.

◆ BuildIngredientList()

override void RecipeCard.BuildIngredientList ( )
inlinevirtual

Reimplemented from Recipe.

Definition at line 65 of file RecipeCard.cs.

66 {
67 if (ingredients.Count != 0)
68 {
69 return;
70 }
71 base.BuildIngredientList();
73 {
74 return;
75 }
77 {
78 ingredients[0].ingType = IngType.CreativeFood;
79 }
80 if (EClass.pc.Evalue(1650) < 2)
81 {
82 return;
83 }
84 bool flag = ingredients.Count < 3;
85 foreach (Ingredient ingredient in ingredients)
86 {
87 if (ingredient.id == "seasoning")
88 {
89 flag = false;
90 }
91 }
92 if (flag)
93 {
94 ingredients.Add(new Ingredient
95 {
96 id = "seasoning",
97 useCat = true,
98 optional = true,
99 req = 1
100 });
101 }
102 }
virtual bool IsBuildMode
Definition: ActionMode.cs:181
bool HasElement(int ele, int req=1)
Definition: Card.cs:5816
int Evalue(int ele)
Definition: Card.cs:2559
Game game
Definition: Core.cs:72
bool IsGameStarted
Definition: Core.cs:84
static Core core
Definition: EClass.cs:6
bool isLoading
Definition: Game.cs:238
bool isDish
Definition: RecipeCard.cs:34
IngType
Definition: Recipe.cs:15

References Scene.actionMode, EClass.core, Card.Evalue(), Core.game, Card.HasElement(), Recipe.Ingredient.id, Recipe.ingredients, ActionMode.IsBuildMode, isDish, Core.IsGameStarted, Game.isLoading, EClass.pc, and EClass.scene.

Referenced by Recipe.Create().

◆ Craft()

override Thing RecipeCard.Craft ( BlessedState  blessed,
bool  sound = false,
List< Thing ings = null,
TraitCrafter  crafter = null,
bool  model = false 
)
inlinevirtual

Reimplemented from Recipe.

Definition at line 153 of file RecipeCard.cs.

154 {
155 string key = idCard;
156 int num = GetMainMaterial().id;
157 Element reqSkill = base.source.GetReqSkill();
158 int num2 = reqSkill.Value - EClass.pc.Evalue(reqSkill.id);
159 int num3 = GetQualityBonus();
160 int num4 = renderRow.LV + num3;
161 bool flag = num3 < 0;
162 CardRow cardRow = EClass.sources.cards.map.TryGetValue(key);
163 bool flag2 = false;
164 if (ings != null)
165 {
166 foreach (Thing ing in ings)
167 {
168 if (ing != null && ing.IsDecayed)
169 {
170 flag2 = true;
171 }
172 }
173 }
174 if (EClass.debug.godCraft || model)
175 {
176 flag = false;
177 }
178 else if (cardRow != null && cardRow.tag.Contains("no_fail"))
179 {
180 flag = false;
181 }
183 {
184 if (num2 > 0 && EClass.rnd(num2 * 10) > EClass.rnd(100))
185 {
186 key = GetIdFailDish();
187 flag = true;
188 }
189 else
190 {
191 flag = false;
192 }
193 }
194 if (!model)
195 {
196 switch (id)
197 {
198 case "weapon_stone":
199 case "weapon_wood":
200 Rand.SetSeed();
201 key = new string[6] { "dagger", "sword", "axe_hand", "blunt_club", "spear", "staff_long" }.RandomItem();
202 break;
203 case "weapon_anvil":
204 Rand.SetSeed();
205 key = new string[6] { "dagger", "sword", "axe_hand", "blunt_club", "spear", "staff_long" }.RandomItem();
206 num = ings[1].material.id;
207 break;
208 }
209 }
210 bool flag3 = EClass.sources.cards.map[key].tag.Contains("static_craft");
211 if (!isDish && num4 < 1)
212 {
213 num4 = 1;
214 }
215 if (EClass.sources.cards.map[key].tag.Contains("noQuality"))
216 {
217 num4 = -1;
218 }
219 if (EClass.sources.cards.map[key].tag.Contains("noMaterialChange"))
220 {
221 num = -1;
222 }
223 if (flag3)
224 {
225 num3 = 0;
226 flag = false;
227 }
229 {
230 qualityBonus = num3,
231 rarity = (flag ? Rarity.Crude : Rarity.Normal),
232 isCraft = true
233 });
234 Thing thing = (flag3 ? ThingGen.Create(key) : ThingGen.Create(key, num, num4));
235 thing.idSkin = idSkin;
236 if (thing.IsEquipment && ings != null)
237 {
238 foreach (Thing ing2 in ings)
239 {
240 if (ing2.trait is TraitRune)
241 {
242 if (thing.CanAddRune(ing2.trait as TraitRune))
243 {
244 thing.AddRune(ing2);
245 }
246 if (!thing.HasElement(484))
247 {
248 thing.elements.SetBase(484, 1);
249 }
250 }
251 }
252 }
253 thing.Identify(show: false);
254 thing.isCrafted = true;
255 if (!flag3)
256 {
257 if (base.source.colorIng != 0)
258 {
259 thing.Dye(GetColorMaterial());
260 }
261 if (thing.IsContainer)
262 {
263 thing.RemoveThings();
264 thing.c_lockLv = 0;
265 }
266 }
267 thing.SetBlessedState(blessed);
268 if (!flag3)
269 {
270 if (isDish)
271 {
272 if (flag)
273 {
274 thing.ChangeMaterial("meat");
275 }
276 else
277 {
278 MakeDish(thing);
279 }
280 }
281 else
282 {
283 MixIngredients(thing);
284 }
285 if (isDish && flag2)
286 {
287 thing.decay = thing.MaxDecay + 1;
288 }
289 }
290 thing.trait.OnCrafted(this, ings);
291 if (thing.IsAmmo && num2 < 0)
292 {
293 thing.SetEncLv(-num2 / 10);
294 }
295 if (model)
296 {
297 thing.SetNum(1);
298 return thing;
299 }
300 int num5 = thing.trait.CraftNum;
301 if (crafter != null && EClass.pc.Evalue(1417) > 0 && crafter.WitchDoubleCraftChance(thing) > EClass.rnd(100))
302 {
303 num5 *= 2;
304 }
305 if (thing.trait is TraitFoodFishSlice && thing.c_idRefCard == thing.id && (thing.SelfWeight == 0 || thing.Evalue(10) == 0))
306 {
307 Msg.Say("noMoreSlice");
308 num5 = 1;
309 }
310 if (num5 > 1 && (thing.HasElement(703) || thing.HasElement(704) || thing.HasElement(1229)))
311 {
312 num5 = 1;
313 }
314 if (num5 > 1)
315 {
316 thing.SetNum(num5);
317 }
318 if (EClass.pc.held == null || !thing.TryStackTo(EClass.pc.held.Thing))
319 {
320 EClass.pc.HoldCard(thing);
321 }
322 if (sound)
323 {
324 thing.PlaySoundDrop(spatial: false);
325 }
326 Msg.Say("crafted", thing);
327 if (thing.Num > EClass.rnd(1000) || EClass.debug.enable)
328 {
330 }
331 if (isDish)
332 {
334 {
336 EClass.player.flags.canComupWithFoodRecipe = false;
337 }
338 if (flag && crafter != null && crafter.CanTriggerFire && EClass.rnd(4) == 0)
339 {
340 Point point = (crafter.ExistsOnMap ? crafter.owner.pos : EClass.pc.pos);
341 if (!point.cell.HasFire)
342 {
343 EClass._map.ModFire(point.x, point.z, 10);
344 }
345 }
346 }
347 return thing;
348 }
Rarity
Definition: Rarity.cs:2
static void Set(CardBlueprint _bp=null)
bool IsDecayed
Definition: Card.cs:2275
bool IsAmmo
Definition: Card.cs:2235
SocketData AddRune(Card rune)
Definition: Card.cs:3528
bool CanAddRune(TraitMod mod)
Definition: Card.cs:3591
ElementContainerCard elements
Definition: Card.cs:41
string id
Definition: Card.cs:35
Card ChangeMaterial(int idNew, bool ignoreFixedMaterial=false)
Definition: Card.cs:3022
Thing SetNum(int a)
Definition: Card.cs:3425
virtual void SetBlessedState(BlessedState s)
Definition: Card.cs:3825
Point pos
Definition: Card.cs:59
void Dye(string idMat)
Definition: Card.cs:5894
bool IsEquipment
Definition: Card.cs:2161
void SetEncLv(int a)
Definition: Card.cs:3794
virtual Thing Thing
Definition: Card.cs:2046
void PlaySoundDrop(bool spatial=true)
Definition: Card.cs:6023
bool TryStackTo(Thing to)
Definition: Card.cs:3327
int Num
Definition: Card.cs:158
SourceCategory.Row category
Definition: Card.cs:2037
bool IsContainer
Definition: Card.cs:2077
string c_idRefCard
Definition: Card.cs:1737
void RemoveThings()
Definition: Card.cs:3240
bool HasFire
Definition: Cell.cs:676
Card held
Definition: Chara.cs:70
void HoldCard(Card t, int num=-1)
Definition: Chara.cs:4398
bool godCraft
Definition: CoreDebug.cs:181
static Map _map
Definition: EClass.cs:18
static int rnd(long a)
Definition: EClass.cs:58
static Player player
Definition: EClass.cs:12
Element SetBase(string alias, int v, int potential=0)
int id
Definition: ELEMENT.cs:250
SourceElement.Row source
Definition: ELEMENT.cs:273
void ModFire(int x, int z, int amount)
Definition: Map.cs:1172
Definition: Msg.cs:5
static string Say(string idLang, string ref1, string ref2=null, string ref3=null, string ref4=null)
Definition: Msg.cs:58
bool canComupWithFoodRecipe
Definition: Player.cs:404
Flags flags
Definition: Player.cs:1091
RecipeManager recipes
Definition: Player.cs:1094
int x
Definition: Point.cs:36
int z
Definition: Point.cs:39
Definition: Rand.cs:4
static void SetSeed(int a=-1)
Definition: Rand.cs:37
void MixIngredients(Thing t)
Definition: RecipeCard.cs:367
string GetIdFailDish()
Definition: RecipeCard.cs:379
void MakeDish(Thing t)
Definition: RecipeCard.cs:350
void ComeUpWithRandomRecipe(string idCat=null, int lvBonus=0)
int GetQualityBonus()
Definition: Recipe.cs:398
string[] tag
Definition: RenderRow.cs:58
Dictionary< string, CardRow > map
Definition: SourceCard.cs:8
SourceCard cards
override int SelfWeight
Definition: Thing.cs:82
Thing Identify(bool show=true, IDTSource idtSource=IDTSource.Identify)
Definition: Thing.cs:2052
virtual int WitchDoubleCraftChance(Thing t)
Definition: TraitCrafter.cs:69
virtual bool CanTriggerFire
Definition: TraitCrafter.cs:59
virtual int CraftNum
Definition: Trait.cs:132
virtual void OnCrafted(Recipe recipe, List< Thing > ings)
Definition: Trait.cs:661

References EClass._map, Scene.actionMode, Card.AddRune(), Card.c_idRefCard, Card.CanAddRune(), Player.Flags.canComupWithFoodRecipe, SourceManager.cards, Card.category, Point.cell, Card.ChangeMaterial(), RecipeManager.ComeUpWithRandomRecipe(), Trait.CraftNum, ThingGen.Create(), EClass.debug, Card.Dye(), Card.elements, CoreDebug.enable, Card.Evalue(), Player.flags, Recipe.GetColorMaterial(), GetIdFailDish(), Recipe.GetMainMaterial(), Recipe.GetQualityBonus(), CoreDebug.godCraft, Card.HasElement(), Cell.HasFire, Chara.held, Chara.HoldCard(), Card.id, Element.id, idCard, Thing.Identify(), Recipe.idSkin, Card.IsAmmo, ActionMode.IsBuildMode, Card.IsContainer, Card.IsDecayed, isDish, Card.IsEquipment, MakeDish(), SourceCard.map, MixIngredients(), Map.ModFire(), Card.Num, Trait.OnCrafted(), EClass.pc, EClass.player, Card.PlaySoundDrop(), Card.pos, Player.recipes, Card.RemoveThings(), EClass.rnd(), Msg.Say(), EClass.scene, Thing.SelfWeight, CardBlueprint.Set(), ElementContainer.SetBase(), Card.SetBlessedState(), Card.SetEncLv(), Card.SetNum(), Rand.SetSeed(), Element.source, EClass.sources, RenderRow.tag, Card.Thing, Card.trait, Card.TryStackTo(), Point.x, and Point.z.

◆ CreateMold()

Card RecipeCard.CreateMold ( )
inline

Definition at line 121 of file RecipeCard.cs.

122 {
123 if (_mold != null)
124 {
125 _mold.Destroy();
126 }
127 if (UseStock)
128 {
129 ingredients[0].RefreshThing();
130 }
131 if (UseStock && ingredients[0].thing != null)
132 {
133 _mold = ingredients[0].thing.Duplicate(1);
134 }
135 else
136 {
138 {
140 }
141 else
142 {
144 }
146 }
147 _mold.dir = _dir;
148 _mold.altitude = ActionMode.Build.altitude;
149 _mold.idSkin = idSkin;
150 return _mold;
151 }
int altitude
Definition: AM_Build.cs:8
void Destroy()
Definition: Card.cs:4996
Card _mold
Definition: RecipeCard.cs:18
override void OnChangeIngredient()
Definition: RecipeCard.cs:104
bool UseStock
Definition: Recipe.cs:185
int _dir
Definition: Recipe.cs:193

References Recipe._dir, _mold, AM_Build.altitude, ActionMode.Build, ThingGen.Create(), CharaGen.Create(), Card.Destroy(), idCard, Recipe.idSkin, Recipe.ingredients, CardRow.isChara, OnChangeIngredient(), sourceCard, and Recipe.UseStock.

Referenced by OnSelected().

◆ Duplicate()

override Recipe RecipeCard.Duplicate ( )
inlinevirtual

Reimplemented from Recipe.

Definition at line 546 of file RecipeCard.cs.

547 {
548 RecipeCard recipeCard = IO.DeepCopy(this);
549 recipeCard._mold = _mold;
550 return recipeCard;
551 }

References _mold.

◆ GetDetail()

override string RecipeCard.GetDetail ( )
inlinevirtual

Reimplemented from Recipe.

Definition at line 41 of file RecipeCard.cs.

42 {
43 return sourceCard.GetDetail();
44 }
string GetDetail()
Definition: SourceData.cs:543

References SourceData< T, T2 >.BaseRow.GetDetail(), and sourceCard.

◆ GetIdFailDish()

string RecipeCard.GetIdFailDish ( )
inline

Definition at line 379 of file RecipeCard.cs.

380 {
381 return sourceCard.category switch
382 {
383 "meal_meat" => "fail_meat",
384 "meal_fish" => "fail_fish",
385 "meal_vegi" => "fail_vegi",
386 "meal_fruit" => "fail_fruit",
387 "meal_cake" => "fail_dough_cake",
388 "meal_bread" => "fail_dough_bread",
389 "meal_noodle" => "fail_noodle",
390 "meal_egg" => "fail_egg",
391 "meal_rice" => "fail_rice",
392 "meal_soup" => "fail_drink",
393 _ => "fail_dish",
394 };
395 }

Referenced by Craft().

◆ GetIdThing()

override string RecipeCard.GetIdThing ( )
inlinevirtual

Reimplemented from Recipe.

Definition at line 46 of file RecipeCard.cs.

47 {
48 return id;
49 }
string id
Definition: Recipe.cs:179

References Recipe.id.

◆ GetRenderer()

override IRenderer RecipeCard.GetRenderer ( )
inlinevirtual

Reimplemented from Recipe.

Definition at line 36 of file RecipeCard.cs.

37 {
38 return Mold.renderer;
39 }
override Card Mold
Definition: RecipeCard.cs:32

References Mold, and Card.renderer.

◆ MakeDish()

void RecipeCard.MakeDish ( Thing  t)
inline

Definition at line 350 of file RecipeCard.cs.

351 {
353 List<Thing> list = new List<Thing>();
354 foreach (Ingredient ingredient in ingredients)
355 {
356 list.Add(ingredient.thing);
357 }
359 Rand.SetSeed();
360 if (EClass.pc.HasElement(1658))
361 {
362 t.elements.SetBase(757, 1);
363 t.c_dateCooked = EClass.world.date.GetRaw() + (EClass.pc.Evalue(1658) - 1) * 48 * 60;
364 }
365 }
int turn
Definition: Card.cs:65
static void MakeDish(Thing food, int lv, Chara crafter=null)
Definition: CraftUtil.cs:61
int GetRaw(int offsetHours=0)
Definition: Date.cs:322
static World world
Definition: EClass.cs:40
GameDate date
Definition: World.cs:6

References World.date, Card.Evalue(), Recipe.GetQualityBonus(), Date.GetRaw(), Card.HasElement(), Recipe.ingredients, CraftUtil.MakeDish(), EClass.pc, Rand.SetSeed(), Recipe.Ingredient.thing, Card.turn, and EClass.world.

Referenced by Craft().

◆ MixIngredients()

void RecipeCard.MixIngredients ( Thing  t)
inline

Definition at line 367 of file RecipeCard.cs.

368 {
370 List<Thing> list = new List<Thing>();
371 foreach (Ingredient ingredient in ingredients)
372 {
373 list.Add(ingredient.thing);
374 }
376 Rand.SetSeed();
377 }
static Thing MixIngredients(string idProduct, List< Thing > ings, MixType type, int idMat=0, Chara crafter=null)
Definition: CraftUtil.cs:261

References Recipe.GetQualityBonus(), Recipe.ingredients, CraftUtil.MixIngredients(), EClass.pc, Rand.SetSeed(), Recipe.Ingredient.thing, and Card.turn.

Referenced by Craft().

◆ OnChangeAltitude()

override void RecipeCard.OnChangeAltitude ( int  a)
inlinevirtual

Reimplemented from Recipe.

Definition at line 515 of file RecipeCard.cs.

516 {
517 Mold.altitude = a;
518 }

◆ OnChangeIngredient()

override void RecipeCard.OnChangeIngredient ( )
inlinevirtual

Reimplemented from Recipe.

Definition at line 104 of file RecipeCard.cs.

105 {
106 if (!UseStock)
107 {
109 if (base.source.colorIng != 0)
110 {
112 }
113 }
114 }

References Card.ChangeMaterial(), Card.Dye(), Recipe.GetColorMaterial(), Recipe.GetMainMaterial(), Mold, and Recipe.UseStock.

Referenced by CreateMold().

◆ OnRenderMarker()

override void RecipeCard.OnRenderMarker ( Point  point,
bool  active,
HitResult  result,
bool  main,
int  dir,
int  bridgeHeight 
)
inlinevirtual

Reimplemented from Recipe.

Definition at line 51 of file RecipeCard.cs.

52 {
53 Mold.ignoreStackHeight = Input.GetKey(KeyCode.LeftControl);
54 Mold.SetFreePos(point);
56 fx = Mold.fx;
57 fy = Mold.fy;
58 Mold.RenderMarker(point, active, result, main, dir);
59 if (!point.cell.skipRender)
60 {
61 Mold.trait.OnRenderTile(point, result, dir);
62 }
63 }
float fy
Definition: Card.cs:266
float fx
Definition: Card.cs:254
void RenderMarker(Point point, bool active, HitResult result, bool main, int dir, bool useCurrentPosition=false)
Definition: Card.cs:6186
void SetFreePos(Point point)
Definition: Card.cs:6162
bool freePos
Definition: Card.cs:518
bool skipRender
Definition: Cell.cs:270
virtual void OnRenderTile(Point point, HitResult result, int dir)
Definition: Trait.cs:702

References Point.cell, Card.freePos, freePos, Card.fx, fx, Card.fy, fy, Mold, Trait.OnRenderTile(), Card.RenderMarker(), Card.SetFreePos(), Cell.skipRender, and Card.trait.

◆ OnSelected()

override void RecipeCard.OnSelected ( )
inlinevirtual

Reimplemented from Recipe.

Definition at line 116 of file RecipeCard.cs.

117 {
118 CreateMold();
119 }
Card CreateMold()
Definition: RecipeCard.cs:121

References CreateMold().

◆ Rotate()

override void RecipeCard.Rotate ( )
inlinevirtual

Reimplemented from Recipe.

Definition at line 520 of file RecipeCard.cs.

521 {
522 Mold.Rotate();
523 _dir = Mold.dir;
524 if ((bool)BuildMenu.Instance)
525 {
527 }
528 }
static BuildMenu Instance
Definition: BuildMenu.cs:77
UIRecipeInfo info1
Definition: BuildMenu.cs:27
virtual void Rotate(bool reverse=false)
Definition: Card.cs:6113
int dir
Definition: Card.cs:146
void OnRotate()

References Recipe._dir, Card.dir, BuildMenu.info1, BuildMenu.Instance, Mold, UIRecipeInfo.OnRotate(), and Card.Rotate().

◆ SetDir()

override void RecipeCard.SetDir ( int  d)
inlinevirtual

Reimplemented from Recipe.

Definition at line 530 of file RecipeCard.cs.

531 {
532 Mold.dir = d;
533 base.SetDir(d);
534 }

◆ WriteNote()

override void RecipeCard.WriteNote ( UINote  n)
inlinevirtual

Reimplemented from Recipe.

Definition at line 536 of file RecipeCard.cs.

537 {
538 n.Clear();
539 if (!Mold.isChara)
540 {
542 }
543 n.Build();
544 }
virtual bool isChara
Definition: Card.cs:2071
void AddNote(UINote n, Func< Element, bool > isValid=null, Action onAdd=null, NoteMode mode=NoteMode.Default, bool addRaceFeat=false, Func< Element, string, string > funcText=null, Action< UINote, Element > onAddNote=null)
void Clear()
Definition: UINote.cs:35
void Build()
Definition: UINote.cs:49

References ElementContainer.AddNote(), UINote.Build(), UINote.Clear(), Card.elements, Card.isChara, and Mold.

Member Data Documentation

◆ _mold

Card RecipeCard._mold

Definition at line 18 of file RecipeCard.cs.

Referenced by CreateMold(), Duplicate(), and ButtonGrid.SetCraftRecipe().

◆ _sourceCard

CardRow RecipeCard._sourceCard

Definition at line 7 of file RecipeCard.cs.

◆ freePos

bool RecipeCard.freePos

Definition at line 10 of file RecipeCard.cs.

Referenced by Build(), and OnRenderMarker().

◆ fx

float RecipeCard.fx

Definition at line 13 of file RecipeCard.cs.

Referenced by Build(), and OnRenderMarker().

◆ fy

float RecipeCard.fy

Definition at line 16 of file RecipeCard.cs.

Referenced by Build(), and OnRenderMarker().

Property Documentation

◆ CanRotate

override bool RecipeCard.CanRotate
get

Definition at line 28 of file RecipeCard.cs.

◆ idCard

string RecipeCard.idCard
get

Definition at line 26 of file RecipeCard.cs.

Referenced by Build(), Craft(), and CreateMold().

◆ isDish

bool RecipeCard.isDish
get

Definition at line 34 of file RecipeCard.cs.

Referenced by BuildIngredientList(), and Craft().

◆ IsThing

override bool RecipeCard.IsThing
get

Definition at line 30 of file RecipeCard.cs.

◆ Mold

override Card RecipeCard.Mold
get

◆ renderRow

override RenderRow RecipeCard.renderRow
get

Definition at line 22 of file RecipeCard.cs.

◆ sourceCard

CardRow RecipeCard.sourceCard
get

Definition at line 20 of file RecipeCard.cs.

Referenced by Build(), CreateMold(), GetDetail(), and BuildMenu.RefreshCategory().

◆ tileType

override TileType RecipeCard.tileType
get

Definition at line 24 of file RecipeCard.cs.


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