class FlagTendencyActionReciveData : ActionReciveData { bool m_TendencyRecived; } class FlagTendencyActionData : ActionData { bool m_Tendency; }; //!DEPRECATED class ActionWorldFlagActionSwitch: ActionSingleUseBase { bool m_switch_to; void ActionWorldFlagActionSwitch() { m_StanceMask = DayZPlayerConstants.STANCEMASK_ERECT | DayZPlayerConstants.STANCEMASK_CROUCH; } override void CreateConditionComponents() { m_ConditionItem = new CCINone; m_ConditionTarget = new CCTCursor; } /*override string GetText() { if (!m_switch_to) return "#switch_to_flag_raise"; return "#switch_to_flag_lower"; }*/ override bool ActionCondition( PlayerBase player, ActionTarget target, ItemBase item ) { TerritoryFlag totem = TerritoryFlag.Cast( target.GetObject() ); if (!totem) return false; float state = totem.GetAnimationPhase("flag_mast"); if ( totem && totem.FindAttachmentBySlotName("Material_FPole_Flag") ) { if ( player.GetFlagTendencyRaise() && state < 1 ) { m_switch_to = true; return true; } else if ( !player.GetFlagTendencyRaise() && state > 0 ) { m_switch_to = false; return true; } } return false; } override void Start( ActionData action_data ) //Setup on start of action { super.Start( action_data ); bool state = action_data.m_Player.GetFlagTendencyRaise(); action_data.m_Player.SetFlagTendencyRaise(!state); } override bool IsInstant() { return true; } override bool RemoveForceTargetAfterUse() { return false; } override typename GetInputType() { return InteractActionInput; } void SetFlagTendencyOnCurrentActionInvalid(bool state) { } };