DayZ 1.27
DayZ Explorer by KGB
 
Загрузка...
Поиск...
Не найдено
CutOutSeeds.c
См. документацию.
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
Определения FoodStage.c:2
Определения CutOutPepperSeeds.c:2
FoodStageType GetFoodStageType()
Определения Edible_Base.c:531
Определения Edible_Base.c:2
override bool SetQuantity(float value, bool destroy_config=true, bool destroy_forced=false, bool allow_client=false, bool clamp_to_stack_max=true)
Определения PileOfWoodenPlanks.c:88
Определения InventoryItem.c:731
Определения EnMath.c:7
Определения PlayerBaseClient.c:2
override bool CanDo(ItemBase ingredients[], PlayerBase player)
final check for recipe's validity
Определения CutOutSeeds.c:4
float m_ResultSetQuantity[MAXIMUM_RESULTS]
Определения RecipeBase.c:40
override void Do(ItemBase ingredients[], PlayerBase player, array< ItemBase > results, float specialty_weight)
Определения CutOutSeeds.c:9
Определения RecipeBase.c:6
Result for an object found in CGame.IsBoxCollidingGeometryProxy.
static proto float RandomFloat(float min, float max)
Returns a random float number between and min[inclusive] and max[exclusive].
static proto float Ceil(float f)
Returns ceil of value.