123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111 |
- class ActionCheckPulseTargetCB : ActionContinuousBaseCB
- {
- override void CreateActionComponent()
- {
- m_ActionData.m_ActionComponent = new CAContinuousTime(UATimeSpent.CHECK_PULSE);
- }
- };
- class ActionCheckPulseTarget: ActionContinuousBase
- {
- const int TARGET_IRREGULAR_PULSE_BIT = 1 << 31;
-
- void ActionCheckPulseTarget()
- {
- m_CallbackClass = ActionCheckPulseTargetCB;
- m_CommandUID = DayZPlayerConstants.CMD_ACTIONFB_CHECKPULSE;
- m_FullBody = true;
- m_StanceMask = DayZPlayerConstants.STANCEMASK_CROUCH;
- m_SpecialtyWeight = UASoftSkillsWeight.ROUGH_HIGH;
- m_Text = "#check_pulse_target";
- }
-
- static string GetPulseMessage(EPulseType pulse_type, int blood_level)
- {
- //builds string table keys:
-
- //pulse_strong
- //pulse_decent
- //pulse_moderate
- //pulse_weak
- //pulse_faint
- //pulse_strong_irregular
- //pulse_decent_irregular
- //pulse_moderate_irregular
- //pulse_weak_irregular
- //pulse_faint_irregular
-
- string blood_msg = "strong";
- string pulse_msg = "";
-
- if(pulse_type == EPulseType.IRREGULAR)
- {
- pulse_msg = "_irregular";
- }
- if( blood_level == EStatLevels.HIGH )
- {
- blood_msg = "decent";
- }
- if( blood_level == EStatLevels.MEDIUM )
- {
- blood_msg = "moderate";
- }
- if( blood_level == EStatLevels.LOW )
- {
- blood_msg = "weak";
- }
- if( blood_level == EStatLevels.CRITICAL )
- {
- blood_msg = "faint";
- }
- //string message = blood_msg + " " + pulse_msg + " pulse";
- string message = "#"+ "pulse_" + blood_msg + pulse_msg;
- return message;
-
- }
- override bool ActionCondition( PlayerBase player, ActionTarget target, ItemBase item )
- {
- PlayerBase ntarget = PlayerBase.Cast( target.GetObject() );
- if( ntarget && ntarget.IsAlive())
- {
- return true;
- }
- return false;
- }
- override typename GetInputType()
- {
- return ContinuousInteractActionInput;
- }
-
- override void CreateConditionComponents()
- {
- m_ConditionItem = new CCINone;
- m_ConditionTarget = new CCTMan(UAMaxDistances.DEFAULT);
- }
- override void OnFinishProgressServer( ActionData action_data )
- {
- PlayerBase target_player = PlayerBase.Cast(action_data.m_Target.GetObject());
- if (target_player)
- {
- PlayerBase player = action_data.m_Player;
- CachedObjectsParams.PARAM1_INT.param1 = target_player.GetStatLevelBlood();
- bool pulse_type = target_player.GetPulseType();
- if (pulse_type == EPulseType.IRREGULAR)
- CachedObjectsParams.PARAM1_INT.param1 = CachedObjectsParams.PARAM1_INT.param1 | (1 << TARGET_IRREGULAR_PULSE_BIT);
- GetGame().RPCSingleParam( player ,ERPCs.RPC_CHECK_PULSE, CachedObjectsParams.PARAM1_INT, true, player.GetIdentity() );
- }
- }
-
- override void OnFinishProgressClient( ActionData action_data )
- {
- PlayerBase ntarget = PlayerBase.Cast( action_data.m_Target.GetObject() );
- if(ntarget)
- {
- action_data.m_Player.m_CheckPulseLastTarget = ntarget;
- }
- }
- };
|