class ActionDisinfectPlantCB : ActionContinuousBaseCB { override void CreateActionComponent() { m_ActionData.m_ActionComponent = new CAContinuousDisinfectPlant(UAQuantityConsumed.GARDEN_DISINFECT_PLANT); } }; class ActionDisinfectPlant: ActionContinuousBase { PlantBase m_Plant; void ActionDisinfectPlant() { m_CallbackClass = ActionDisinfectPlantCB; m_SpecialtyWeight = UASoftSkillsWeight.PRECISE_LOW; m_CommandUID = DayZPlayerConstants.CMD_ACTIONFB_SPRAYPLANT; //m_StanceMask = DayZPlayerConstants.STANCEMASK_CROUCH; m_FullBody = true; m_Text = "#apply"; } override void CreateConditionComponents() { m_ConditionTarget = new CCTNonRuined(UAMaxDistances.DEFAULT); m_ConditionItem = new CCINotRuinedAndEmpty; } override bool ActionCondition( PlayerBase player, ActionTarget target, ItemBase item ) { GardenBase garden_base; if ( Class.CastTo(garden_base, target.GetObject())) { Slot slot; array selections = new array; garden_base.GetActionComponentNameList(target.GetComponentIndex(), selections); string selection; for (int s = 0; s < selections.Count(); s++) { selection = selections[s]; slot = garden_base.GetSlotBySelection( selection ); if (slot) break; } if ( slot && slot.GetPlant() ) { m_Plant = PlantBase.Cast(slot.GetPlant()); if ( m_Plant.IsGrowing() && m_Plant.NeedsSpraying() ) { if ( m_Plant.GetPlantStateIndex() < 1 ) return false; if ( item.GetQuantity() > 0 ) { return true; } } } } return false; } };