CommandCallbackType ReceiveDefenceEctypeResultHandle(byte[] dataBuffer, int socketID) { SMSGECTYPEDEFINE_RESULT_SC defenceEctypeResult = SMSGECTYPEDEFINE_RESULT_SC.ParsePackage(dataBuffer); GameDataManager.Instance.AddData(DataType.DefenceEctypeResult, defenceEctypeResult); RaiseEvent(EventTypeEnum.DefenceEctypeSettleAccount.ToString(), defenceEctypeResult); return(CommandCallbackType.Continue); }
private void CalcSettleInfoData(int ectypeContainerId, SMSGECTYPEDEFINE_RESULT_SC defenceEctypeResult) { float doorBloodPercent = defenceEctypeResult.dwBossPH; float doubleHitPercent = defenceEctypeResult.dwBatterCount; float beHitPercent = defenceEctypeResult.dwHitCount; float initValue, endValue; //大门血量 initValue = CommonDefineManager.Instance.CommonDefine.DefenceLevelJudgeGateHPLeft; endValue = EctypeConfigManager.Instance.EctypeContainerConfigList[ectypeContainerId].GateHPRemain; m_doorValue = Mathf.Clamp(doorBloodPercent / (endValue - initValue), 0, 1); //连击数 initValue = CommonDefineManager.Instance.CommonDefine.DefenceLevelJudgeHitPointLeft; endValue = EctypeConfigManager.Instance.EctypeContainerConfigList[ectypeContainerId].dwBasicHitPoint; m_doubleHitVal = Mathf.Clamp(doubleHitPercent / (endValue - initValue), 0, 1); //受击数 initValue = CommonDefineManager.Instance.CommonDefine.DefenceLevelJudgeBeHitParam1; endValue = CommonDefineManager.Instance.CommonDefine.DefenceLevelJudgeBeHitParam2; var basicBeHit = EctypeConfigManager.Instance.EctypeContainerConfigList[ectypeContainerId].BasicBeHit; m_beHitVal = Mathf.Clamp(1 - beHitPercent / basicBeHit, 0, 1); }
public void InitSliders(int ectypeContainerId) { SMSGECTYPEDEFINE_RESULT_SC defenceEctypeResult = (SMSGECTYPEDEFINE_RESULT_SC)GameDataManager.Instance.GetData(DataType.DefenceEctypeResult); m_posAnim.Play(true); m_spriteId = 1; CalcSettleInfoData(ectypeContainerId, defenceEctypeResult); m_sliders.Clear(); float threshold1 = CommonDefineManager.Instance.CommonDefine.DefenceLevelJudgeThreshold1; float threshold2 = CommonDefineManager.Instance.CommonDefine.DefenceLevelJudgeThreshold2; GameObject slider; DefenceSliderBehaviour sliderBehaviour; slider = NGUITools.AddChild(SliderParentNode, DefenceSlider); sliderBehaviour = slider.GetComponent <DefenceSliderBehaviour>(); sliderBehaviour.InitThumnb("IDS_I15_5", DefenceSliderType.DoorBlood, threshold1, threshold2, m_doorValue * 100); sliderBehaviour.transform.localPosition = new Vector3(0, 45, 0); m_sliders.Add(DefenceSliderType.DoorBlood, sliderBehaviour); slider = NGUITools.AddChild(SliderParentNode, DefenceSlider); sliderBehaviour = slider.GetComponent <DefenceSliderBehaviour>(); sliderBehaviour.InitThumnb("IDS_I15_6", DefenceSliderType.DoubleHit, threshold1, threshold2, defenceEctypeResult.dwBatterCount); sliderBehaviour.transform.localPosition = new Vector3(0, 10, 0); m_sliders.Add(DefenceSliderType.DoubleHit, sliderBehaviour); slider = NGUITools.AddChild(SliderParentNode, DefenceSlider); sliderBehaviour = slider.GetComponent <DefenceSliderBehaviour>(); sliderBehaviour.InitThumnb("IDS_I15_7", DefenceSliderType.BeHit, threshold1, threshold2, defenceEctypeResult.dwHitCount); sliderBehaviour.transform.localPosition = new Vector3(0, -25, 0); m_sliders.Add(DefenceSliderType.BeHit, sliderBehaviour); m_sliders.Values.ApplyAllItem(P => { P.ReachThresholdCallBack = SliderReachThreshold; P.FinishCallBack = SliderFinish; }); m_sliders[DefenceSliderType.DoorBlood].StartProcess(m_doorValue); }