Elin Decompiled Documentation EA 23.102 Nightly
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 }
 
- 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 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 428 of file RecipeCard.cs.

429 {
430 if (mat == -1)
431 {
432 mat = 2;
433 }
434 EClass.pc.PlaySound(EClass.sources.materials.rows[mat].GetSoundImpact());
435 t.SetDir(dir);
436 t.idSkin = idSkin;
437 EClass._zone.AddCard(t, pos);
438 if (t.trait is TraitHouseBoard && ActionMode.Build.houseBoard != null)
439 {
440 (t.trait as TraitHouseBoard).data = IO.DeepCopy(ActionMode.Build.houseBoard.data);
441 }
442 t.SetPlaceState(PlaceState.installed, byPlayer: true);
443 t.altitude = altitude;
444 t.isPlayerCreation = true;
445 if (EClass._zone.idCurrentSubset != null)
446 {
447 t.isSubsetCard = true;
448 }
449 t.ignoreStackHeight = Input.GetKey(KeyCode.LeftControl);
450 if (ActionMode.Build.IsActive && t.trait.MaskOnBuild && EClass.debug.enable)
451 {
452 t.isMasked = true;
453 }
455 {
456 t.isRoofItem = true;
457 t.SetPlaceState(PlaceState.roaming);
458 }
459 t.ForeachPoint(delegate(Point p, bool main)
460 {
461 CheckBlock(p);
462 });
463 t.freePos = freePos;
464 if (freePos)
465 {
466 t.fx = fx;
467 t.fy = fy;
468 }
470 void CheckBlock(Point _pos)
471 {
472 if (_pos.cell.IsBlocked && _pos.HasChara)
473 {
474 foreach (Chara item in _pos.ListCharas().Copy())
475 {
476 chara.Kick(item, ignoreSelf: false, karmaLoss: false);
477 }
478 }
479 }
480 }
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:1957
void SetPlaceState(PlaceState newState, bool byPlayer=false)
Definition: Card.cs:3454
SoundSource PlaySound(string id, float v=1f, bool spatial=true)
Definition: Card.cs:5404
virtual void SetDir(int d)
Definition: Card.cs:5460
void ForeachPoint(Action< Point, bool > action)
Definition: Card.cs:6942
Trait trait
Definition: Card.cs:49
CardRenderer renderer
Definition: Card.cs:57
bool IsBlocked
Definition: Cell.cs:895
Definition: Chara.cs:10
void Kick(Point p, bool ignoreSelf=false)
Definition: Chara.cs:5174
bool enable
Definition: CoreDebug.cs:285
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:1135
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:181
ActionMode actionMode
Definition: Scene.cs:77
SourceMaterial materials
string idCurrentSubset
Definition: Spatial.cs:28
virtual bool MaskOnBuild
Definition: Trait.cs:169
Card AddCard(Card t, Point point)
Definition: Zone.cs:1893

References EClass._zone, Scene.actionMode, Zone.AddCard(), ActionMode.Build, Point.cell, TraitHouseBoard.data, EClass.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 371 of file RecipeCard.cs.

372 {
373 Card card = null;
374 if (task.target != null)
375 {
376 card = task.target;
377 }
378 else if (IngAsProduct)
379 {
380 if (task.resources.Count == 0)
381 {
382 Thing thing = ingredients[0].RefreshThing();
383 if (thing == null)
384 {
385 SE.Beep();
386 return;
387 }
388 Thing item = thing.Split(1);
389 task.resources.Add(item);
390 if (ingredients[0].thing.isDestroyed || ingredients[0].thing.ExistsOnMap)
391 {
392 ingredients[0].thing = null;
393 }
394 }
395 card = task.resources[0];
396 }
397 else if (sourceCard.isChara)
398 {
400 }
401 else
402 {
404 if (!card.IsUnique)
405 {
406 card.ChangeMaterial(GetMainMaterial());
407 }
408 if (base.source.colorIng != 0)
409 {
410 card.Dye(GetColorMaterial());
411 }
412 if (card.IsContainer)
413 {
414 card.RemoveThings();
415 }
416 foreach (Ingredient ingredient in ingredients)
417 {
418 if (ingredient.thing != null && ingredient.thing.HasElement(759))
419 {
420 card.elements.SetBase(759, ingredient.thing.Evalue(759));
421 }
422 }
423 }
424 Build(task.owner, card, task.pos, ingredients[0].mat, task.dir, task.altitude, task.bridgeHeight);
425 card.renderer.PlayAnime(AnimeID.Place);
426 }
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:71
Thing Split(int a)
Definition: Card.cs:3231
int LV
Definition: Card.cs:370
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:164
virtual SourceMaterial.Row GetMainMaterial()
Definition: Recipe.cs:467
virtual SourceMaterial.Row GetColorMaterial()
Definition: Recipe.cs:481
bool IngAsProduct
Definition: Recipe.cs:170
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 }
76 bool flag = ingredients.Count < 3;
77 foreach (Ingredient ingredient in ingredients)
78 {
79 if (ingredient.id == "seasoning")
80 {
81 flag = false;
82 }
83 }
84 if (flag)
85 {
86 ingredients.Add(new Ingredient
87 {
88 id = "seasoning",
89 useCat = true,
90 optional = true,
91 req = 1
92 });
93 }
94 }
int Evalue(int ele)
Definition: Card.cs:2431
Game game
Definition: Core.cs:72
bool IsGameStarted
Definition: Core.cs:84
static Core core
Definition: EClass.cs:6
bool isLoading
Definition: Game.cs:235
bool isDish
Definition: RecipeCard.cs:34

References EClass.core, Card.Evalue(), Core.game, Recipe.Ingredient.id, Recipe.ingredients, isDish, Core.IsGameStarted, Game.isLoading, and EClass.pc.

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

146 {
147 string key = idCard;
148 int num = GetMainMaterial().id;
149 Element reqSkill = base.source.GetReqSkill();
150 int num2 = reqSkill.Value - EClass.pc.Evalue(reqSkill.id);
151 int num3 = GetQualityBonus();
152 int num4 = renderRow.LV + num3;
153 bool flag = num3 < 0;
154 CardRow cardRow = EClass.sources.cards.map.TryGetValue(key);
155 bool flag2 = false;
156 if (ings != null)
157 {
158 foreach (Thing ing in ings)
159 {
160 if (ing != null && ing.IsDecayed)
161 {
162 flag2 = true;
163 }
164 }
165 }
166 if (EClass.debug.godCraft || model)
167 {
168 flag = false;
169 }
170 else if (cardRow != null && cardRow.tag.Contains("no_fail"))
171 {
172 flag = false;
173 }
175 {
176 if (num2 > 0 && EClass.rnd(num2 * 10) > EClass.rnd(100))
177 {
178 key = GetIdFailDish();
179 flag = true;
180 }
181 else
182 {
183 flag = false;
184 }
185 }
186 if (!model)
187 {
188 switch (id)
189 {
190 case "weapon_stone":
191 case "weapon_wood":
192 Rand.SetSeed();
193 key = new string[6] { "dagger", "sword", "axe_hand", "blunt_club", "spear", "staff_long" }.RandomItem();
194 break;
195 case "weapon_anvil":
196 Rand.SetSeed();
197 key = new string[6] { "dagger", "sword", "axe_hand", "blunt_club", "spear", "staff_long" }.RandomItem();
198 num = ings[1].material.id;
199 break;
200 }
201 }
202 bool flag3 = EClass.sources.cards.map[key].tag.Contains("static_craft");
203 if (!isDish && num4 < 1)
204 {
205 num4 = 1;
206 }
207 if (EClass.sources.cards.map[key].tag.Contains("noQuality"))
208 {
209 num4 = -1;
210 }
211 if (EClass.sources.cards.map[key].tag.Contains("noMaterialChange"))
212 {
213 num = -1;
214 }
215 if (flag3)
216 {
217 num3 = 0;
218 flag = false;
219 }
221 {
222 qualityBonus = num3,
223 rarity = (flag ? Rarity.Crude : Rarity.Normal)
224 });
225 Thing thing = (flag3 ? ThingGen.Create(key) : ThingGen.Create(key, num, num4));
226 if (thing.trait.CraftNum > 1)
227 {
228 thing.SetNum(thing.trait.CraftNum);
229 }
230 thing.idSkin = idSkin;
231 if (thing.IsEquipment && ings != null)
232 {
233 foreach (Thing ing2 in ings)
234 {
235 if (ing2.trait is TraitRune)
236 {
237 thing.AddRune(ing2);
238 if (!thing.HasElement(484))
239 {
240 thing.elements.SetBase(484, 1);
241 }
242 }
243 }
244 }
245 thing.Identify(show: false);
246 thing.isCrafted = true;
247 if (!flag3)
248 {
249 if (base.source.colorIng != 0)
250 {
251 thing.Dye(GetColorMaterial());
252 }
253 if (thing.IsContainer)
254 {
255 thing.RemoveThings();
256 thing.c_lockLv = 0;
257 }
258 }
259 thing.SetBlessedState(blessed);
260 if (!flag3)
261 {
262 if (isDish)
263 {
264 if (flag)
265 {
266 thing.ChangeMaterial("meat");
267 }
268 else
269 {
270 MakeDish(thing);
271 }
272 }
273 else
274 {
275 MixIngredients(thing);
276 }
277 if (isDish && flag2)
278 {
279 thing.decay = thing.MaxDecay + 1;
280 }
281 }
282 thing.trait.OnCrafted(this);
283 if (thing.IsAmmo && num2 < 0)
284 {
285 thing.SetEncLv(-num2 / 10);
286 }
287 if (model)
288 {
289 thing.SetNum(1);
290 return thing;
291 }
292 if (EClass.pc.held == null || !thing.TryStackTo(EClass.pc.held.Thing))
293 {
294 EClass.pc.HoldCard(thing);
295 }
296 if (sound)
297 {
298 thing.PlaySoundDrop(spatial: false);
299 }
300 Msg.Say("crafted", thing);
301 if (thing.Num > EClass.rnd(1000) || EClass.debug.enable)
302 {
304 }
305 if (isDish)
306 {
308 {
310 EClass.player.flags.canComupWithFoodRecipe = false;
311 }
312 if (flag && crafter != null && crafter.CanTriggerFire && EClass.rnd(4) == 0)
313 {
314 Point point = (crafter.ExistsOnMap ? crafter.owner.pos : EClass.pc.pos);
315 if (!point.cell.HasFire)
316 {
317 EClass._map.ModFire(point.x, point.z, 10);
318 }
319 }
320 }
321 return thing;
322 }
Rarity
Definition: Rarity.cs:2
virtual bool IsBuildMode
Definition: ActionMode.cs:181
static void Set(CardBlueprint _bp)
bool IsDecayed
Definition: Card.cs:2147
bool IsAmmo
Definition: Card.cs:2107
SocketData AddRune(Card rune)
Definition: Card.cs:3345
ElementContainerCard elements
Definition: Card.cs:37
bool HasElement(int ele, int req=1)
Definition: Card.cs:5214
Card ChangeMaterial(int idNew, bool ignoreFixedMaterial=false)
Definition: Card.cs:2838
Thing SetNum(int a)
Definition: Card.cs:3242
virtual void SetBlessedState(BlessedState s)
Definition: Card.cs:3572
Point pos
Definition: Card.cs:55
void Dye(string idMat)
Definition: Card.cs:5267
bool IsEquipment
Definition: Card.cs:2049
void SetEncLv(int a)
Definition: Card.cs:3567
virtual Thing Thing
Definition: Card.cs:1934
void PlaySoundDrop(bool spatial=true)
Definition: Card.cs:5389
bool TryStackTo(Thing to)
Definition: Card.cs:3144
int Num
Definition: Card.cs:154
SourceCategory.Row category
Definition: Card.cs:1925
bool IsContainer
Definition: Card.cs:1965
void RemoveThings()
Definition: Card.cs:3056
bool HasFire
Definition: Cell.cs:676
Card held
Definition: Chara.cs:67
void HoldCard(Card t, int num=-1)
Definition: Chara.cs:4084
bool godCraft
Definition: CoreDebug.cs:180
static int rnd(int a)
Definition: EClass.cs:50
static Map _map
Definition: EClass.cs:18
static Player player
Definition: EClass.cs:12
Element SetBase(string alias, int v, int potential=0)
int id
Definition: ELEMENT.cs:240
SourceElement.Row source
Definition: ELEMENT.cs:263
void ModFire(int x, int z, int amount)
Definition: Map.cs:1166
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:294
Flags flags
Definition: Player.cs:895
RecipeManager recipes
Definition: Player.cs:898
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:341
string GetIdFailDish()
Definition: RecipeCard.cs:353
void MakeDish(Thing t)
Definition: RecipeCard.cs:324
void ComeUpWithRandomRecipe(string idCat=null, int lvBonus=0)
int GetQualityBonus()
Definition: Recipe.cs:380
string[] tag
Definition: RenderRow.cs:58
Dictionary< string, CardRow > map
Definition: SourceCard.cs:8
SourceCard cards
Thing Identify(bool show=true, IDTSource idtSource=IDTSource.Identify)
Definition: Thing.cs:1959
virtual bool CanTriggerFire
Definition: TraitCrafter.cs:57
virtual int CraftNum
Definition: Trait.cs:127
virtual void OnCrafted(Recipe recipe)
Definition: Trait.cs:614

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

114 {
115 if (_mold != null)
116 {
117 _mold.Destroy();
118 }
119 if (UseStock)
120 {
121 ingredients[0].RefreshThing();
122 }
123 if (UseStock && ingredients[0].thing != null)
124 {
125 _mold = ingredients[0].thing.Duplicate(1);
126 }
127 else
128 {
130 {
132 }
133 else
134 {
136 }
138 }
139 _mold.dir = _dir;
140 _mold.altitude = ActionMode.Build.altitude;
141 _mold.idSkin = idSkin;
142 return _mold;
143 }
int altitude
Definition: AM_Build.cs:8
void Destroy()
Definition: Card.cs:4538
Card _mold
Definition: RecipeCard.cs:18
override void OnChangeIngredient()
Definition: RecipeCard.cs:96
bool UseStock
Definition: Recipe.cs:167
int _dir
Definition: Recipe.cs:175

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

514 {
515 RecipeCard recipeCard = IO.DeepCopy(this);
516 recipeCard._mold = _mold;
517 return recipeCard;
518 }

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

354 {
355 return sourceCard.category switch
356 {
357 "meal_meat" => "fail_meat",
358 "meal_fish" => "fail_fish",
359 "meal_vegi" => "fail_vegi",
360 "meal_fruit" => "fail_fruit",
361 "meal_cake" => "fail_dough_cake",
362 "meal_bread" => "fail_dough_bread",
363 "meal_noodle" => "fail_noodle",
364 "meal_egg" => "fail_egg",
365 "meal_rice" => "fail_rice",
366 "meal_soup" => "fail_drink",
367 _ => "fail_dish",
368 };
369 }

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

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

325 {
327 List<Thing> list = new List<Thing>();
328 foreach (Ingredient ingredient in ingredients)
329 {
330 list.Add(ingredient.thing);
331 }
333 Rand.SetSeed();
334 if (EClass.pc.HasElement(1658))
335 {
336 t.elements.SetBase(757, 1);
337 t.c_dateCooked = EClass.world.date.GetRaw() + (EClass.pc.Evalue(1658) - 1) * 48 * 60;
338 }
339 }
int turn
Definition: Card.cs:61
static void MakeDish(Thing food, int lv, Chara crafter=null)
Definition: CraftUtil.cs:54
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 341 of file RecipeCard.cs.

342 {
344 List<Thing> list = new List<Thing>();
345 foreach (Ingredient ingredient in ingredients)
346 {
347 list.Add(ingredient.thing);
348 }
350 Rand.SetSeed();
351 }
static Thing MixIngredients(string idProduct, List< Thing > ings, MixType type, int idMat=0, Chara crafter=null)
Definition: CraftUtil.cs:132

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

483 {
484 Mold.altitude = a;
485 }

◆ OnChangeIngredient()

override void RecipeCard.OnChangeIngredient ( )
inlinevirtual

Reimplemented from Recipe.

Definition at line 96 of file RecipeCard.cs.

97 {
98 if (!UseStock)
99 {
101 if (base.source.colorIng != 0)
102 {
104 }
105 }
106 }

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:250
float fx
Definition: Card.cs:238
void RenderMarker(Point point, bool active, HitResult result, bool main, int dir, bool useCurrentPosition=false)
Definition: Card.cs:5552
void SetFreePos(Point point)
Definition: Card.cs:5528
bool freePos
Definition: Card.cs:490
bool skipRender
Definition: Cell.cs:270
virtual void OnRenderTile(Point point, HitResult result, int dir)
Definition: Trait.cs:655

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

109 {
110 CreateMold();
111 }
Card CreateMold()
Definition: RecipeCard.cs:113

References CreateMold().

◆ Rotate()

override void RecipeCard.Rotate ( )
inlinevirtual

Reimplemented from Recipe.

Definition at line 487 of file RecipeCard.cs.

488 {
489 Mold.Rotate();
490 _dir = Mold.dir;
491 if ((bool)BuildMenu.Instance)
492 {
494 }
495 }
static BuildMenu Instance
Definition: BuildMenu.cs:77
UIRecipeInfo info1
Definition: BuildMenu.cs:27
virtual void Rotate(bool reverse=false)
Definition: Card.cs:5479
int dir
Definition: Card.cs:142
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 497 of file RecipeCard.cs.

498 {
499 Mold.dir = d;
500 base.SetDir(d);
501 }

◆ WriteNote()

override void RecipeCard.WriteNote ( UINote  n)
inlinevirtual

Reimplemented from Recipe.

Definition at line 503 of file RecipeCard.cs.

504 {
505 n.Clear();
506 if (!Mold.isChara)
507 {
509 }
510 n.Build();
511 }
virtual bool isChara
Definition: Card.cs:1959
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: