Elin Decompiled Documentation EA 23.200 Stable
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 450 of file RecipeCard.cs.

451 {
452 if (mat == -1)
453 {
454 mat = 2;
455 }
456 EClass.pc.PlaySound(EClass.sources.materials.rows[mat].GetSoundImpact());
457 t.SetDir(dir);
458 t.idSkin = idSkin;
459 EClass._zone.AddCard(t, pos);
460 if (t.trait is TraitHouseBoard && ActionMode.Build.houseBoard != null)
461 {
462 (t.trait as TraitHouseBoard).data = IO.DeepCopy(ActionMode.Build.houseBoard.data);
463 }
464 t.SetPlaceState(PlaceState.installed, byPlayer: true);
465 t.altitude = altitude;
466 t.isPlayerCreation = true;
467 if (EClass._zone.idCurrentSubset != null)
468 {
469 t.isSubsetCard = true;
470 }
471 t.ignoreStackHeight = Input.GetKey(KeyCode.LeftControl);
472 if (ActionMode.Build.IsActive && t.trait.MaskOnBuild && EClass.debug.enable)
473 {
474 t.isMasked = true;
475 }
477 {
478 t.isRoofItem = true;
479 t.SetPlaceState(PlaceState.roaming);
480 }
481 try
482 {
483 t.ForeachPoint(delegate(Point p, bool main)
484 {
485 CheckBlock(p);
486 });
487 }
488 catch
489 {
490 Debug.LogWarning("kokodayo");
491 }
492 t.freePos = freePos;
493 if (freePos)
494 {
495 t.fx = fx;
496 t.fy = fy;
497 }
499 void CheckBlock(Point _pos)
500 {
501 if (_pos.cell.IsBlocked && _pos.HasChara)
502 {
503 foreach (Chara item in _pos.ListCharas().Copy())
504 {
505 chara.Kick(item, ignoreSelf: false, karmaLoss: false);
506 }
507 }
508 }
509 }
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:2043
void SetPlaceState(PlaceState newState, bool byPlayer=false)
Definition: Card.cs:3645
SoundSource PlaySound(string id, float v=1f, bool spatial=true)
Definition: Card.cs:5939
virtual void SetDir(int d)
Definition: Card.cs:5995
void ForeachPoint(Action< Point, bool > action)
Definition: Card.cs:7571
Trait trait
Definition: Card.cs:51
CardRenderer renderer
Definition: Card.cs:59
bool IsBlocked
Definition: Cell.cs:895
Definition: Chara.cs:10
void Kick(Point p, bool ignoreSelf=false, bool checkWall=true)
Definition: Chara.cs:5557
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:1155
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:1943

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 393 of file RecipeCard.cs.

394 {
395 Card card = null;
396 if (task.target != null)
397 {
398 card = task.target;
399 }
400 else if (IngAsProduct)
401 {
402 if (task.resources.Count == 0)
403 {
404 Thing thing = ingredients[0].RefreshThing();
405 if (thing == null)
406 {
407 SE.Beep();
408 return;
409 }
410 Thing item = thing.Split(1);
411 task.resources.Add(item);
412 if (ingredients[0].thing.isDestroyed || ingredients[0].thing.ExistsOnMap)
413 {
414 ingredients[0].thing = null;
415 }
416 }
417 card = task.resources[0];
418 }
419 else if (sourceCard.isChara)
420 {
422 }
423 else
424 {
426 if (!card.IsUnique)
427 {
428 card.ChangeMaterial(GetMainMaterial());
429 }
430 if (base.source.colorIng != 0)
431 {
432 card.Dye(GetColorMaterial());
433 }
434 if (card.IsContainer)
435 {
436 card.RemoveThings();
437 }
438 foreach (Ingredient ingredient in ingredients)
439 {
440 if (ingredient.thing != null && ingredient.thing.HasElement(759))
441 {
442 card.elements.SetBase(759, ingredient.thing.Evalue(759));
443 }
444 }
445 }
446 Build(task.owner, card, task.pos, ingredients[0].mat, task.dir, task.altitude, task.bridgeHeight);
447 card.renderer.PlayAnime(AnimeID.Place);
448 }
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:73
Thing Split(int a)
Definition: Card.cs:3382
int LV
Definition: Card.cs:372
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:5725
int Evalue(int ele)
Definition: Card.cs:2533
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 });
233 Thing thing = (flag3 ? ThingGen.Create(key) : ThingGen.Create(key, num, num4));
234 thing.idSkin = idSkin;
235 if (thing.IsEquipment && ings != null)
236 {
237 foreach (Thing ing2 in ings)
238 {
239 if (ing2.trait is TraitRune)
240 {
241 thing.AddRune(ing2);
242 if (!thing.HasElement(484))
243 {
244 thing.elements.SetBase(484, 1);
245 }
246 }
247 }
248 }
249 thing.Identify(show: false);
250 thing.isCrafted = true;
251 if (!flag3)
252 {
253 if (base.source.colorIng != 0)
254 {
255 thing.Dye(GetColorMaterial());
256 }
257 if (thing.IsContainer)
258 {
259 thing.RemoveThings();
260 thing.c_lockLv = 0;
261 }
262 }
263 thing.SetBlessedState(blessed);
264 if (!flag3)
265 {
266 if (isDish)
267 {
268 if (flag)
269 {
270 thing.ChangeMaterial("meat");
271 }
272 else
273 {
274 MakeDish(thing);
275 }
276 }
277 else
278 {
279 MixIngredients(thing);
280 }
281 if (isDish && flag2)
282 {
283 thing.decay = thing.MaxDecay + 1;
284 }
285 }
286 thing.trait.OnCrafted(this, ings);
287 if (thing.IsAmmo && num2 < 0)
288 {
289 thing.SetEncLv(-num2 / 10);
290 }
291 if (model)
292 {
293 thing.SetNum(1);
294 return thing;
295 }
296 int num5 = thing.trait.CraftNum;
297 if (crafter != null && EClass.pc.Evalue(1417) > 0 && crafter.WitchDoubleCraftChance(thing) > EClass.rnd(100))
298 {
299 num5 *= 2;
300 }
301 if (thing.trait is TraitFoodFishSlice && thing.c_idRefCard == thing.id && (thing.SelfWeight == 0 || thing.Evalue(10) == 0))
302 {
303 Msg.Say("noMoreSlice");
304 num5 = 1;
305 }
306 if (num5 > 1 && (thing.HasElement(703) || thing.HasElement(704) || thing.HasElement(1229)))
307 {
308 num5 = 1;
309 }
310 if (num5 > 1)
311 {
312 thing.SetNum(num5);
313 }
314 if (EClass.pc.held == null || !thing.TryStackTo(EClass.pc.held.Thing))
315 {
316 EClass.pc.HoldCard(thing);
317 }
318 if (sound)
319 {
320 thing.PlaySoundDrop(spatial: false);
321 }
322 Msg.Say("crafted", thing);
323 if (thing.Num > EClass.rnd(1000) || EClass.debug.enable)
324 {
326 }
327 if (isDish)
328 {
330 {
332 EClass.player.flags.canComupWithFoodRecipe = false;
333 }
334 if (flag && crafter != null && crafter.CanTriggerFire && EClass.rnd(4) == 0)
335 {
336 Point point = (crafter.ExistsOnMap ? crafter.owner.pos : EClass.pc.pos);
337 if (!point.cell.HasFire)
338 {
339 EClass._map.ModFire(point.x, point.z, 10);
340 }
341 }
342 }
343 return thing;
344 }
Rarity
Definition: Rarity.cs:2
static void Set(CardBlueprint _bp)
bool IsDecayed
Definition: Card.cs:2249
bool IsAmmo
Definition: Card.cs:2209
SocketData AddRune(Card rune)
Definition: Card.cs:3496
ElementContainerCard elements
Definition: Card.cs:39
string id
Definition: Card.cs:33
Card ChangeMaterial(int idNew, bool ignoreFixedMaterial=false)
Definition: Card.cs:2994
Thing SetNum(int a)
Definition: Card.cs:3393
virtual void SetBlessedState(BlessedState s)
Definition: Card.cs:3793
Point pos
Definition: Card.cs:57
void Dye(string idMat)
Definition: Card.cs:5795
bool IsEquipment
Definition: Card.cs:2135
void SetEncLv(int a)
Definition: Card.cs:3762
virtual Thing Thing
Definition: Card.cs:2020
void PlaySoundDrop(bool spatial=true)
Definition: Card.cs:5924
bool TryStackTo(Thing to)
Definition: Card.cs:3295
int Num
Definition: Card.cs:156
SourceCategory.Row category
Definition: Card.cs:2011
bool IsContainer
Definition: Card.cs:2051
string c_idRefCard
Definition: Card.cs:1711
void RemoveThings()
Definition: Card.cs:3208
bool HasFire
Definition: Cell.cs:676
Card held
Definition: Chara.cs:70
void HoldCard(Card t, int num=-1)
Definition: Chara.cs:4368
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:398
Flags flags
Definition: Player.cs:1050
RecipeManager recipes
Definition: Player.cs:1053
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:363
string GetIdFailDish()
Definition: RecipeCard.cs:375
void MakeDish(Thing t)
Definition: RecipeCard.cs:346
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:2048
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:659

References EClass._map, Scene.actionMode, Card.AddRune(), Card.c_idRefCard, 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:4931
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 542 of file RecipeCard.cs.

543 {
544 RecipeCard recipeCard = IO.DeepCopy(this);
545 recipeCard._mold = _mold;
546 return recipeCard;
547 }

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 375 of file RecipeCard.cs.

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

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 346 of file RecipeCard.cs.

347 {
349 List<Thing> list = new List<Thing>();
350 foreach (Ingredient ingredient in ingredients)
351 {
352 list.Add(ingredient.thing);
353 }
355 Rand.SetSeed();
356 if (EClass.pc.HasElement(1658))
357 {
358 t.elements.SetBase(757, 1);
359 t.c_dateCooked = EClass.world.date.GetRaw() + (EClass.pc.Evalue(1658) - 1) * 48 * 60;
360 }
361 }
int turn
Definition: Card.cs:63
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 363 of file RecipeCard.cs.

364 {
366 List<Thing> list = new List<Thing>();
367 foreach (Ingredient ingredient in ingredients)
368 {
369 list.Add(ingredient.thing);
370 }
372 Rand.SetSeed();
373 }
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 511 of file RecipeCard.cs.

512 {
513 Mold.altitude = a;
514 }

◆ 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:252
float fx
Definition: Card.cs:240
void RenderMarker(Point point, bool active, HitResult result, bool main, int dir, bool useCurrentPosition=false)
Definition: Card.cs:6087
void SetFreePos(Point point)
Definition: Card.cs:6063
bool freePos
Definition: Card.cs:504
bool skipRender
Definition: Cell.cs:270
virtual void OnRenderTile(Point point, HitResult result, int dir)
Definition: Trait.cs:700

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 516 of file RecipeCard.cs.

517 {
518 Mold.Rotate();
519 _dir = Mold.dir;
520 if ((bool)BuildMenu.Instance)
521 {
523 }
524 }
static BuildMenu Instance
Definition: BuildMenu.cs:77
UIRecipeInfo info1
Definition: BuildMenu.cs:27
virtual void Rotate(bool reverse=false)
Definition: Card.cs:6014
int dir
Definition: Card.cs:144
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 526 of file RecipeCard.cs.

527 {
528 Mold.dir = d;
529 base.SetDir(d);
530 }

◆ WriteNote()

override void RecipeCard.WriteNote ( UINote  n)
inlinevirtual

Reimplemented from Recipe.

Definition at line 532 of file RecipeCard.cs.

533 {
534 n.Clear();
535 if (!Mold.isChara)
536 {
538 }
539 n.Build();
540 }
virtual bool isChara
Definition: Card.cs:2045
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: