Dayz Explorer 1.28.160049
Loading...
Searching...
No Matches
cutoutseeds.c
Go to the documentation of this file.
1class CutOutSeeds extends RecipeBase
2{
4 override bool CanDo(ItemBase ingredients[], PlayerBase player)
5 {
6 return !ingredients[0].GetIsFrozen();
7 }
8
9 override void Do(ItemBase ingredients[], PlayerBase player, array<ItemBase> results, float specialty_weight)//gets called upon recipe's completion
10 {
11 // Adjusts quantity of results to the quantity of the 1st ingredient
12 Edible_Base item_ingredient = Edible_Base.Cast(ingredients[0]);
13
14 float MaxQuantity = item_ingredient.GetQuantityMax();
15 float CurrentQuantity = item_ingredient.GetQuantity();
16 float qtPercentage = CurrentQuantity / MaxQuantity;
17
18 FoodStageType stage = item_ingredient.GetFoodStageType();
19
20 float seedMultiplier = Math.RandomFloat(0.5, 1);
21
22 //Set seeds amount proportional to ingredient quantity. No seeds if the is less that 30% of ingredient
23 if(qtPercentage < 0.3)
24 seedMultiplier = 0;
25 else
26 seedMultiplier *= qtPercentage;
27
28 //Set seeds amount based on the stage of the ingredient
29 switch(stage)
30 {
31 case FoodStageType.BURNED:
32 case FoodStageType.BOILED:
33 case FoodStageType.BAKED:
34 seedMultiplier *= 0;
35 break;
36 case FoodStageType.DRIED:
37 case FoodStageType.ROTTEN:
38 seedMultiplier *= 0.5;
39 break;
40 case FoodStageType.RAW:
41 default:
42 seedMultiplier *= 1;
43 break;
44 }
45
46 ItemBase result = results[0];
47 float maxQuantity = result.GetQuantityMax();
48 float resultQty = m_ResultSetQuantity[0]/ maxQuantity;
49 resultQty *= seedMultiplier * maxQuantity;
50
51 resultQty = Math.Ceil(resultQty);
52
53 result.SetQuantity(resultQty);
54 }
55}
FoodStageType GetFoodStageType()
Definition enmath.c:7
Result for an object found in CGame.IsBoxCollidingGeometryProxy.
FoodStageType
Definition foodstage.c:2
float m_ResultSetQuantity[MAXIMUM_RESULTS]
Definition recipebase.c:56
bool CanDo(PlayerBase player, TStringVectorMap surfaceTypes)