Elin Decompiled Documentation EA 23.265 Nightly 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 (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)
 
- 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 456 of file RecipeCard.cs.

457 {
458 if (mat == -1)
459 {
460 mat = 2;
461 }
462 EClass.pc.PlaySound(EClass.sources.materials.rows[mat].GetSoundImpact());
463 t.SetDir(dir);
464 t.idSkin = idSkin;
465 EClass._zone.AddCard(t, pos);
466 if (t.trait is TraitHouseBoard && ActionMode.Build.houseBoard != null)
467 {
468 (t.trait as TraitHouseBoard).data = IO.DeepCopy(ActionMode.Build.houseBoard.data);
469 }
470 t.SetPlaceState(PlaceState.installed, byPlayer: true);
471 t.altitude = altitude;
472 t.isPlayerCreation = true;
473 if (EClass._zone.idCurrentSubset != null)
474 {
475 t.isSubsetCard = true;
476 }
477 t.ignoreStackHeight = Input.GetKey(KeyCode.LeftControl);
478 if (ActionMode.Build.IsActive && t.trait.MaskOnBuild && EClass.debug.enable)
479 {
480 t.isMasked = true;
481 }
483 {
484 t.isRoofItem = true;
485 t.SetPlaceState(PlaceState.roaming);
486 }
487 try
488 {
489 t.ForeachPoint(delegate(Point p, bool main)
490 {
491 CheckBlock(p);
492 });
493 }
494 catch
495 {
496 Debug.LogWarning("kokodayo");
497 }
498 t.freePos = freePos;
499 if (freePos)
500 {
501 t.fx = fx;
502 t.fy = fy;
503 }
505 void CheckBlock(Point _pos)
506 {
507 if (_pos.cell.IsBlocked && _pos.HasChara)
508 {
509 foreach (Chara item in _pos.ListCharas().Copy())
510 {
511 chara.Kick(item, ignoreSelf: false, karmaLoss: false);
512 }
513 }
514 }
515 }
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:2082
void SetPlaceState(PlaceState newState, bool byPlayer=false)
Definition: Card.cs:3772
SoundSource PlaySound(string id, float v=1f, bool spatial=true)
Definition: Card.cs:6314
virtual void SetDir(int d)
Definition: Card.cs:6370
void Kick(Point p, bool ignoreSelf=false, bool checkWall=true)
Definition: Card.cs:5996
void ForeachPoint(Action< Point, bool > action)
Definition: Card.cs:8003
Trait trait
Definition: Card.cs:54
CardRenderer renderer
Definition: Card.cs:62
bool IsBlocked
Definition: Cell.cs:895
Definition: Chara.cs:10
bool enable
Definition: CoreDebug.cs:286
Definition: EClass.cs:6
static Scene scene
Definition: EClass.cs:31
static Zone _zone
Definition: EClass.cs:21
static SourceManager sources
Definition: EClass.cs:43
static Chara pc
Definition: EClass.cs:15
static CoreDebug debug
Definition: EClass.cs:49
Definition: IO.cs:11
Definition: Point.cs:9
List< Chara > ListCharas()
Definition: Point.cs:1171
Cell cell
Definition: Point.cs:51
bool HasChara
Definition: Point.cs:238
float fy
Definition: RecipeCard.cs:16
float fx
Definition: RecipeCard.cs:13
bool freePos
Definition: RecipeCard.cs:10
int idSkin
Definition: Recipe.cs:198
ActionMode actionMode
Definition: Scene.cs:79
SourceMaterial materials
string idCurrentSubset
Definition: Spatial.cs:28
virtual bool MaskOnBuild
Definition: Trait.cs:189
Card AddCard(Card t, Point point)
Definition: Zone.cs:1992

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, Card.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 399 of file RecipeCard.cs.

400 {
401 Card card = null;
402 if (task.target != null)
403 {
404 card = task.target;
405 }
406 else if (IngAsProduct)
407 {
408 if (task.resources.Count == 0)
409 {
410 Thing thing = ingredients[0].RefreshThing();
411 if (thing == null)
412 {
413 SE.Beep();
414 return;
415 }
416 Thing item = thing.Split(1);
417 task.resources.Add(item);
418 if (ingredients[0].thing.isDestroyed || ingredients[0].thing.ExistsOnMap)
419 {
420 ingredients[0].thing = null;
421 }
422 }
423 card = task.resources[0];
424 }
425 else if (sourceCard.isChara)
426 {
428 }
429 else
430 {
432 if (!card.IsUnique)
433 {
434 card.ChangeMaterial(GetMainMaterial());
435 }
436 if (base.source.colorIng != 0)
437 {
438 card.Dye(GetColorMaterial());
439 }
440 if (card.IsContainer)
441 {
442 card.RemoveThings();
443 }
444 foreach (Ingredient ingredient in ingredients)
445 {
446 if (ingredient.thing != null && ingredient.thing.HasElement(759))
447 {
448 card.elements.SetBase(759, ingredient.thing.Evalue(759));
449 }
450 }
451 }
452 Build(task.owner, card, task.pos, ingredients[0].mat, task.dir, task.altitude, task.bridgeHeight);
453 card.renderer.PlayAnime(AnimeID.Place);
454 }
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:76
Thing Split(int a)
Definition: Card.cs:3509
int LV
Definition: Card.cs:387
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:181
virtual SourceMaterial.Row GetMainMaterial()
Definition: Recipe.cs:484
virtual SourceMaterial.Row GetColorMaterial()
Definition: Recipe.cs:498
bool IngAsProduct
Definition: Recipe.cs:187
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:110

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
int Evalue(int ele)
Definition: Card.cs:2574
bool HasElement(int ele, bool includeNagative=false)
Definition: Card.cs:6061
Game game
Definition: Core.cs:72
bool IsGameStarted
Definition: Core.cs:84
static Core core
Definition: EClass.cs:7
bool isLoading
Definition: Game.cs:242
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 154 of file RecipeCard.cs.

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

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;
151 return _mold;
152 }
int altitude
Definition: AM_Build.cs:8
virtual CardRenderer _CreateRenderer()
Definition: Card.cs:6114
void Destroy()
Definition: Card.cs:5103
Card _mold
Definition: RecipeCard.cs:18
override void OnChangeIngredient()
Definition: RecipeCard.cs:104
bool UseStock
Definition: Recipe.cs:184
int _dir
Definition: Recipe.cs:192

References Card._CreateRenderer(), 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 548 of file RecipeCard.cs.

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

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

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

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:178

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

352 {
354 List<Thing> list = new List<Thing>();
355 foreach (Ingredient ingredient in ingredients)
356 {
357 list.Add(ingredient.thing);
358 }
360 Rand.SetSeed();
361 if (EClass.pc.HasElement(1658))
362 {
363 t.elements.SetBase(757, 1);
364 t.c_dateCooked = EClass.world.date.GetRaw() + (EClass.pc.Evalue(1658) - 1) * 48 * 60;
365 }
366 }
int turn
Definition: Card.cs:66
static void MakeDish(Thing food, int lv, Chara crafter=null, int seed=-1)
Definition: CraftUtil.cs:61
int GetRaw(int offsetHours=0)
Definition: Date.cs:326
static World world
Definition: EClass.cs:41
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 368 of file RecipeCard.cs.

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

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

518 {
519 Mold.altitude = a;
520 }

◆ 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:267
float fx
Definition: Card.cs:255
void RenderMarker(Point point, bool active, HitResult result, bool main, int dir, bool useCurrentPosition=false)
Definition: Card.cs:6466
void SetFreePos(Point point)
Definition: Card.cs:6442
bool freePos
Definition: Card.cs:519
bool skipRender
Definition: Cell.cs:270
virtual void OnRenderTile(Point point, HitResult result, int dir)
Definition: Trait.cs:727

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

523 {
524 Mold.Rotate();
525 _dir = Mold.dir;
526 if ((bool)BuildMenu.Instance)
527 {
529 }
530 }
static BuildMenu Instance
Definition: BuildMenu.cs:77
UIRecipeInfo info1
Definition: BuildMenu.cs:27
virtual void Rotate(bool reverse=false)
Definition: Card.cs:6389
int dir
Definition: Card.cs:147
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 532 of file RecipeCard.cs.

533 {
534 Mold.dir = d;
535 base.SetDir(d);
536 }

◆ WriteNote()

override void RecipeCard.WriteNote ( UINote  n)
inlinevirtual

Reimplemented from Recipe.

Definition at line 538 of file RecipeCard.cs.

539 {
540 n.Clear();
541 if (!Mold.isChara)
542 {
544 }
545 n.Build();
546 }
virtual bool isChara
Definition: Card.cs:2084
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: