Elin Decompiled Documentation EA 23.130 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 rndSeed (int a, int seed)
 
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 442 of file RecipeCard.cs.

443 {
444 if (mat == -1)
445 {
446 mat = 2;
447 }
448 EClass.pc.PlaySound(EClass.sources.materials.rows[mat].GetSoundImpact());
449 t.SetDir(dir);
450 t.idSkin = idSkin;
451 EClass._zone.AddCard(t, pos);
452 if (t.trait is TraitHouseBoard && ActionMode.Build.houseBoard != null)
453 {
454 (t.trait as TraitHouseBoard).data = IO.DeepCopy(ActionMode.Build.houseBoard.data);
455 }
456 t.SetPlaceState(PlaceState.installed, byPlayer: true);
457 t.altitude = altitude;
458 t.isPlayerCreation = true;
459 if (EClass._zone.idCurrentSubset != null)
460 {
461 t.isSubsetCard = true;
462 }
463 t.ignoreStackHeight = Input.GetKey(KeyCode.LeftControl);
464 if (ActionMode.Build.IsActive && t.trait.MaskOnBuild && EClass.debug.enable)
465 {
466 t.isMasked = true;
467 }
469 {
470 t.isRoofItem = true;
471 t.SetPlaceState(PlaceState.roaming);
472 }
473 t.ForeachPoint(delegate(Point p, bool main)
474 {
475 CheckBlock(p);
476 });
477 t.freePos = freePos;
478 if (freePos)
479 {
480 t.fx = fx;
481 t.fy = fy;
482 }
484 void CheckBlock(Point _pos)
485 {
486 if (_pos.cell.IsBlocked && _pos.HasChara)
487 {
488 foreach (Chara item in _pos.ListCharas().Copy())
489 {
490 chara.Kick(item, ignoreSelf: false, karmaLoss: false);
491 }
492 }
493 }
494 }
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:1981
void SetPlaceState(PlaceState newState, bool byPlayer=false)
Definition: Card.cs:3498
SoundSource PlaySound(string id, float v=1f, bool spatial=true)
Definition: Card.cs:5585
virtual void SetDir(int d)
Definition: Card.cs:5641
void ForeachPoint(Action< Point, bool > action)
Definition: Card.cs:7190
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:5209
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:1147
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:173
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 385 of file RecipeCard.cs.

386 {
387 Card card = null;
388 if (task.target != null)
389 {
390 card = task.target;
391 }
392 else if (IngAsProduct)
393 {
394 if (task.resources.Count == 0)
395 {
396 Thing thing = ingredients[0].RefreshThing();
397 if (thing == null)
398 {
399 SE.Beep();
400 return;
401 }
402 Thing item = thing.Split(1);
403 task.resources.Add(item);
404 if (ingredients[0].thing.isDestroyed || ingredients[0].thing.ExistsOnMap)
405 {
406 ingredients[0].thing = null;
407 }
408 }
409 card = task.resources[0];
410 }
411 else if (sourceCard.isChara)
412 {
414 }
415 else
416 {
418 if (!card.IsUnique)
419 {
420 card.ChangeMaterial(GetMainMaterial());
421 }
422 if (base.source.colorIng != 0)
423 {
424 card.Dye(GetColorMaterial());
425 }
426 if (card.IsContainer)
427 {
428 card.RemoveThings();
429 }
430 foreach (Ingredient ingredient in ingredients)
431 {
432 if (ingredient.thing != null && ingredient.thing.HasElement(759))
433 {
434 card.elements.SetBase(759, ingredient.thing.Evalue(759));
435 }
436 }
437 }
438 Build(task.owner, card, task.pos, ingredients[0].mat, task.dir, task.altitude, task.bridgeHeight);
439 card.renderer.PlayAnime(AnimeID.Place);
440 }
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:3275
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:2471
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 thing.idSkin = idSkin;
227 if (thing.IsEquipment && ings != null)
228 {
229 foreach (Thing ing2 in ings)
230 {
231 if (ing2.trait is TraitRune)
232 {
233 thing.AddRune(ing2);
234 if (!thing.HasElement(484))
235 {
236 thing.elements.SetBase(484, 1);
237 }
238 }
239 }
240 }
241 thing.Identify(show: false);
242 thing.isCrafted = true;
243 if (!flag3)
244 {
245 if (base.source.colorIng != 0)
246 {
247 thing.Dye(GetColorMaterial());
248 }
249 if (thing.IsContainer)
250 {
251 thing.RemoveThings();
252 thing.c_lockLv = 0;
253 }
254 }
255 thing.SetBlessedState(blessed);
256 if (!flag3)
257 {
258 if (isDish)
259 {
260 if (flag)
261 {
262 thing.ChangeMaterial("meat");
263 }
264 else
265 {
266 MakeDish(thing);
267 }
268 }
269 else
270 {
271 MixIngredients(thing);
272 }
273 if (isDish && flag2)
274 {
275 thing.decay = thing.MaxDecay + 1;
276 }
277 }
278 thing.trait.OnCrafted(this);
279 if (thing.IsAmmo && num2 < 0)
280 {
281 thing.SetEncLv(-num2 / 10);
282 }
283 if (model)
284 {
285 thing.SetNum(1);
286 return thing;
287 }
288 int num5 = thing.trait.CraftNum;
289 if (crafter != null && EClass.pc.Evalue(1417) > 0 && crafter.WitchDoubleCraftChance(thing) > EClass.rnd(100))
290 {
291 num5 *= 2;
292 }
293 if (thing.trait is TraitFoodFishSlice && thing.c_idRefCard == thing.id && (thing.SelfWeight == 0 || thing.Evalue(10) == 0))
294 {
295 Msg.Say("noMoreSlice");
296 num5 = 1;
297 }
298 if (num5 > 1 && (thing.HasElement(703) || thing.HasElement(704) || thing.HasElement(1229)))
299 {
300 num5 = 1;
301 }
302 if (num5 > 1)
303 {
304 thing.SetNum(num5);
305 }
306 if (EClass.pc.held == null || !thing.TryStackTo(EClass.pc.held.Thing))
307 {
308 EClass.pc.HoldCard(thing);
309 }
310 if (sound)
311 {
312 thing.PlaySoundDrop(spatial: false);
313 }
314 Msg.Say("crafted", thing);
315 if (thing.Num > EClass.rnd(1000) || EClass.debug.enable)
316 {
318 }
319 if (isDish)
320 {
322 {
324 EClass.player.flags.canComupWithFoodRecipe = false;
325 }
326 if (flag && crafter != null && crafter.CanTriggerFire && EClass.rnd(4) == 0)
327 {
328 Point point = (crafter.ExistsOnMap ? crafter.owner.pos : EClass.pc.pos);
329 if (!point.cell.HasFire)
330 {
331 EClass._map.ModFire(point.x, point.z, 10);
332 }
333 }
334 }
335 return thing;
336 }
Rarity
Definition: Rarity.cs:2
virtual bool IsBuildMode
Definition: ActionMode.cs:181
static void Set(CardBlueprint _bp)
bool IsDecayed
Definition: Card.cs:2187
bool IsAmmo
Definition: Card.cs:2147
SocketData AddRune(Card rune)
Definition: Card.cs:3389
ElementContainerCard elements
Definition: Card.cs:37
string id
Definition: Card.cs:31
bool HasElement(int ele, int req=1)
Definition: Card.cs:5395
Card ChangeMaterial(int idNew, bool ignoreFixedMaterial=false)
Definition: Card.cs:2887
Thing SetNum(int a)
Definition: Card.cs:3286
virtual void SetBlessedState(BlessedState s)
Definition: Card.cs:3642
Point pos
Definition: Card.cs:55
void Dye(string idMat)
Definition: Card.cs:5448
bool IsEquipment
Definition: Card.cs:2073
void SetEncLv(int a)
Definition: Card.cs:3611
virtual Thing Thing
Definition: Card.cs:1958
void PlaySoundDrop(bool spatial=true)
Definition: Card.cs:5570
bool TryStackTo(Thing to)
Definition: Card.cs:3188
int Num
Definition: Card.cs:154
SourceCategory.Row category
Definition: Card.cs:1949
bool IsContainer
Definition: Card.cs:1989
string c_idRefCard
Definition: Card.cs:1661
void RemoveThings()
Definition: Card.cs:3101
bool HasFire
Definition: Cell.cs:676
Card held
Definition: Chara.cs:70
void HoldCard(Card t, int num=-1)
Definition: Chara.cs:4104
bool godCraft
Definition: CoreDebug.cs:180
static int rnd(int a)
Definition: EClass.cs:58
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:246
SourceElement.Row source
Definition: ELEMENT.cs:269
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:910
RecipeManager recipes
Definition: Player.cs:913
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:355
string GetIdFailDish()
Definition: RecipeCard.cs:367
void MakeDish(Thing t)
Definition: RecipeCard.cs:338
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
override int SelfWeight
Definition: Thing.cs:62
Thing Identify(bool show=true, IDTSource idtSource=IDTSource.Identify)
Definition: Thing.cs:1976
virtual int WitchDoubleCraftChance(Thing t)
Definition: TraitCrafter.cs:68
virtual bool CanTriggerFire
Definition: TraitCrafter.cs:58
virtual int CraftNum
Definition: Trait.cs:131
virtual void OnCrafted(Recipe recipe)
Definition: Trait.cs:652

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 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:4680
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 527 of file RecipeCard.cs.

528 {
529 RecipeCard recipeCard = IO.DeepCopy(this);
530 recipeCard._mold = _mold;
531 return recipeCard;
532 }

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

368 {
369 return sourceCard.category switch
370 {
371 "meal_meat" => "fail_meat",
372 "meal_fish" => "fail_fish",
373 "meal_vegi" => "fail_vegi",
374 "meal_fruit" => "fail_fruit",
375 "meal_cake" => "fail_dough_cake",
376 "meal_bread" => "fail_dough_bread",
377 "meal_noodle" => "fail_noodle",
378 "meal_egg" => "fail_egg",
379 "meal_rice" => "fail_rice",
380 "meal_soup" => "fail_drink",
381 _ => "fail_dish",
382 };
383 }

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

339 {
341 List<Thing> list = new List<Thing>();
342 foreach (Ingredient ingredient in ingredients)
343 {
344 list.Add(ingredient.thing);
345 }
347 Rand.SetSeed();
348 if (EClass.pc.HasElement(1658))
349 {
350 t.elements.SetBase(757, 1);
351 t.c_dateCooked = EClass.world.date.GetRaw() + (EClass.pc.Evalue(1658) - 1) * 48 * 60;
352 }
353 }
int turn
Definition: Card.cs:61
static void MakeDish(Thing food, int lv, Chara crafter=null)
Definition: CraftUtil.cs:55
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 355 of file RecipeCard.cs.

356 {
358 List<Thing> list = new List<Thing>();
359 foreach (Ingredient ingredient in ingredients)
360 {
361 list.Add(ingredient.thing);
362 }
364 Rand.SetSeed();
365 }
static Thing MixIngredients(string idProduct, List< Thing > ings, MixType type, int idMat=0, Chara crafter=null)
Definition: CraftUtil.cs:144

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

497 {
498 Mold.altitude = a;
499 }

◆ 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:5733
void SetFreePos(Point point)
Definition: Card.cs:5709
bool freePos
Definition: Card.cs:490
bool skipRender
Definition: Cell.cs:270
virtual void OnRenderTile(Point point, HitResult result, int dir)
Definition: Trait.cs:693

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

502 {
503 Mold.Rotate();
504 _dir = Mold.dir;
505 if ((bool)BuildMenu.Instance)
506 {
508 }
509 }
static BuildMenu Instance
Definition: BuildMenu.cs:77
UIRecipeInfo info1
Definition: BuildMenu.cs:27
virtual void Rotate(bool reverse=false)
Definition: Card.cs:5660
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 511 of file RecipeCard.cs.

512 {
513 Mold.dir = d;
514 base.SetDir(d);
515 }

◆ WriteNote()

override void RecipeCard.WriteNote ( UINote  n)
inlinevirtual

Reimplemented from Recipe.

Definition at line 517 of file RecipeCard.cs.

518 {
519 n.Clear();
520 if (!Mold.isChara)
521 {
523 }
524 n.Build();
525 }
virtual bool isChara
Definition: Card.cs:1983
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: