Пример #1
0
    void ReceiveFightResultHandle(INotifyArgs notifyArgs)
    {
        if (GameManager.Instance.CurrentState != GameManager.GameState.GAME_STATE_BATTLE)
        {
            return;
        }
        SMsgBattleCalculateEffect_SC fightResult = (SMsgBattleCalculateEffect_SC)notifyArgs;
        bool isHero     = fightResult.uidFighter == PlayerManager.Instance.FindHeroDataModel().UID;
        var  entityInfo = m_entityInfos.SingleOrDefault(P => P.Uid == fightResult.uidFighter);

        if (entityInfo != null)
        {
            if (m_typeMapManager.ContainsKey(entityInfo.EntityType))
            {
                var    entityModel = m_typeMapManager [entityInfo.EntityType].GetEntityMode(fightResult.uidFighter);
                TypeID bulletOwnerEntityType;


                if (entityModel != null)
                {
                    string displayContent  = string.Empty;
                    var    fightEffectType = (FightEffectType)fightResult.EffectType;
                    switch (fightEffectType)
                    {
                    case FightEffectType.BATTLE_EFFECT_CRIT:       //暴击
                        //TraceUtil.Log("CritHit");
                        //displayContent = "-" + fightResult.Value.ToString() ;
                        displayContent = fightResult.Value.ToString();
                        if (GameManager.Instance.CurrentGameMode == GameMode.MULTI_PLAYER)
                        {
                            ShowHurtEffect(entityModel, fightResult.BulletTemplateID, fightResult.uidEffectParam);
                            EntityModel bulletOwnerEntityModel = GetEntityModel(fightResult.uidEffectParam, out bulletOwnerEntityType);
                            if (bulletOwnerEntityModel != null)
                            {
                                ShowHurtUiEffect(bulletOwnerEntityModel, fightResult.BulletTemplateID);
                            }
                        }
                        break;

                    case FightEffectType.BATTLE_EFFECT_DODGE:      //闪避 Miss
                        displayContent = LanguageTextManager.GetString("IDS_D2_15");
                        break;

                    case FightEffectType.BATTLE_EFFECT_HIT:      //命中
                        //displayContent = LanguageTextManager.GetString("IDS_D2_16") + " -" + fightResult.Value.ToString() + "HP";
                        displayContent = fightResult.Value.ToString();
                        //命中效果
                        if (GameManager.Instance.CurrentGameMode == GameMode.MULTI_PLAYER)
                        {
                            ShowHurtEffect(entityModel, fightResult.BulletTemplateID, fightResult.uidEffectParam);
                            EntityModel bulletOwnerEntityModel = GetEntityModel(fightResult.uidEffectParam, out bulletOwnerEntityType);
                            if (bulletOwnerEntityModel != null)
                            {
                                ShowHurtUiEffect(bulletOwnerEntityModel, fightResult.BulletTemplateID);
                            }
                        }
                        if (!GameManager.Instance.m_gameSettings.ShowHurtNum)
                        {
                            return;
                        }
                        break;

                    case FightEffectType.BATTLE_EFFECT_HP:      //HP扣血
                        displayContent = "-" + fightResult.Value;
                        return;

                    case FightEffectType.BATTLE_ADDHP:      //加HP
                        displayContent = "+" + fightResult.Value;
                        break;

                    case FightEffectType.BATTLE_ADDMP:      //加MP
                        if (fightResult.Value > 0)
                        {
                            displayContent = "+" + fightResult.Value;
                        }
                        else
                        {
                            displayContent = fightResult.Value.ToString();
                        }
                        break;

                    case FightEffectType.BATTLE_ADDMONEY:      //加铜钱
                        SoundManager.Instance.PlaySoundEffect("Sound_Button_Pay");
                        displayContent = fightResult.Value.ToString();
                        UI.Battle.BattleMessangeManager.Instance.Show(displayContent, LanguageTextManager.GetString("IDS_D2_17"));
                        break;

                    case FightEffectType.BATTLE_EFFECT_ROLLPOINT:       //Roll点
                        //当前还不需要显示Roll点
                        GameManager.Instance.DamageFactory.PlayDiceAnimation();
                        return;

                    case FightEffectType.BATTLE_EFFECT_EXPSHOW:       //怪物死亡经验显示
                        TraceUtil.Log("获得经验显示");
                        //displayContent = string.Format(LanguageTextManager.GetString("IDS_H1_395"), fightResult.Value);
                        displayContent = fightResult.Value.ToString();
                        break;

                    case FightEffectType.BATTLE_EFFECT_GOODSSHOW:       //获得物品显示
                        DamageManager.Instance.AllocationToPlayer(fightResult.uidFighter, fightResult.uidEffectParam, fightResult.Value);
                        //DamageManager.Instance.AllocationEquip(fightResult.uidFighter, fightResult.uidBeFighted, fightResult.Value);
                        return;

                    case FightEffectType.BATTLE_EFFECT_XIUWEI:    //获得修为显示
                        displayContent = fightResult.Value.ToString();
                        TraceUtil.Log("获得修为显示");
                        break;

                    case FightEffectType.BATTLE_EFFECT_SHILIAN_XIUWEI:
                        TraceUtil.Log("获得试炼副本修为显示");
                        //var m_hostPosition = entityModel.GO.transform.position + UnityEngine.Vector3.up * 18;
                        //displayContent = string.Format(LanguageTextManager.GetString("IDS_H1_471"), fightResult.Value);
                        displayContent = fightResult.Value.ToString();
                        PopupTextController.SettleResultForTime(entityModel, displayContent, fightEffectType);
                        return;

                    case FightEffectType.BATTLE_EFFECT_SHILIAN_EXPSHOW:
                        TraceUtil.Log("获得试炼副本经验值显示");
                        //displayContent = string.Format(LanguageTextManager.GetString("IDS_H1_395"), fightResult.Value);
                        displayContent = fightResult.Value.ToString();
                        break;
                    }
                    //var hostPosition = entityModel.GO.transform.position + new Vector3(CommonDefineManager.Instance.CommonDefine.HitNumber_VectorX, CommonDefineManager.Instance.CommonDefine.HitNumber_VectorY, CommonDefineManager.Instance.CommonDefine.HitNumber_VectorZ);
                    var hostPosition = getUIPosition(entityModel);
                    PopupTextController.SettleResult(hostPosition, displayContent, fightEffectType, isHero);
                }
            }
        }
    }