Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class ActionBlowCB : ActionSingleUseBaseCB
- {
- override void CreateActionComponent()
- {
- m_ActionData.m_ActionComponent = new CAContinuousQuantityEdible(UAQuantityConsumed.EAT_SMALL,UATimeSpent.DEFAULT);
- }
- };
- class ActionBlow: ActionSingleUseBase
- {
- const int CONSUMED_TEMPERATURE = 20;
- protected EffectSound blowSound;
- void ActionBlow()
- {
- m_CallbackClass = ActionBlowCB;
- m_CommandUID = DayZPlayerConstants.CMD_ACTIONMOD_LICKBATTERY;
- //m_CommandUIDProne = DayZPlayerConstants.CMD_ACTIONFB_LICKBATTERY;
- //m_CommandUID = DayZPlayerConstants.CMD_ACTIONMOD_DRINK;
- //m_CommandUIDProne = DayZPlayerConstants.CMD_ACTIONFB_DRINK;
- //m_SpecialtyWeight = UASoftSkillsWeight.PRECISE_LOW;
- //m_CommandUID = DayZPlayerConstants.CMD_ACTIONMOD_EAT;
- //m_CommandUIDProne = DayZPlayerConstants.CMD_ACTIONFB_EAT;
- }
- override void CreateConditionComponents()
- {
- m_ConditionItem = new CCINonRuined;
- m_ConditionTarget = new CCTSelf;
- }
- override bool HasProneException()
- {
- return true;
- }
- override bool HasTarget()
- {
- return false;
- }
- override string GetText()
- {
- return "Остудить";
- }
- override bool ActionCondition(PlayerBase player, ActionTarget target, ItemBase item)
- {
- if (player.CheckMaskHeadGear())
- {
- return false;
- }
- //преобразуем в еду
- Edible_Base food;
- if(Class.CastTo(food, item))
- {
- //получаем температуру
- int food_temperature = food.GetTemperature();
- if(food_temperature > GameConstants.FOOD_TEMP_NORMAL)
- {
- return true;
- }
- }
- Bottle_Base bottle;
- if(Class.CastTo(bottle, item))
- {
- int bottle_temperature = bottle.GetTemperature();
- if(bottle.GetTemperature() > GameConstants.FOOD_TEMP_NORMAL)
- {
- return true;
- }
- }
- return false;
- }
- /*
- override void OnExecuteServer(ActionData action_data)
- {
- PlayerBase player = action_data.m_Player;
- if ( player && action_data.m_MainItem )
- {
- player.Consume(action_data.m_MainItem, GetConsumedQuantity(), EConsumeType.ITEM_SINGLE_TIME);
- }
- }
- */
- override void OnStartClient(ActionData action_data)
- {
- TStringArray male_BlowSound = {"male_blow1_sound","male_blow2_sound","male_blow3_sound","male_blow4_sound"};
- TStringArray female_BlowSound = {"female_blow1_sound","female_blow2_sound","female_blow3_sound","female_blow4_sound"};
- PlayerBase player = PlayerBase.Cast(action_data.m_Player);
- EntityAI item = EntityAI.Cast(action_data.m_MainItem);
- if(player && item)
- {
- if(player.GetType().Contains("SurvivorM"))
- action_data.m_MainItem.PlaySoundSet(blowSound, male_BlowSound.GetRandomElement(), 0, 0 );
- else
- action_data.m_MainItem.PlaySoundSet(blowSound, female_BlowSound.GetRandomElement(), 0, 0 );
- }
- //bool soundstate = action_data.m_Player.PlaySoundSetLoop(blowSound, "male_blow_sound", 0, 0 );
- //Print(":::Server :: ActionBlow Sound : " + soundstate);
- }
- override void OnEndClient(ActionData action_data) //method called on finish main animation loop (before out animation part )
- {
- //if (blowSound) action_data.m_MainItem.StopSoundSet(blowSound);
- }
- override void OnStartServer(ActionData action_data)
- {
- }
- override void OnEndServer(ActionData action_data)
- {
- int temp = action_data.m_MainItem.GetTemperature();
- action_data.m_MainItem.SetTemperature(temp - GameConstants.FOOD_TEMP_BLOW);
- if(temp == GameConstants.FOOD_TEMP_NORMAL)
- {
- SendMessageToClient(action_data.m_Player, "Подходящая температура чтобы съесть...");
- }
- action_data.m_MainItem.SetSynchDirty();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement