コード例 #1
0
    public void Show(FightEffectType fightEffectType, string addNumber)
    {
        if (CreatIconPoint.childCount > 0)
        {
            CreatIconPoint.ClearChild();
        }
        GetNumberLabel.SetText(addNumber);
        switch (fightEffectType)
        {
        case FightEffectType.BATTLE_ADDMONEY:
            UI.CreatObjectToNGUI.InstantiateObj(IconPrefabManager.Instance.getIcon("BattleGet_GameMoney"), CreatIconPoint);
            break;

        case FightEffectType.BATTLE_EFFECT_SHILIAN_EXPSHOW:
            UI.CreatObjectToNGUI.InstantiateObj(IconPrefabManager.Instance.getIcon("BattleGet_Exp"), CreatIconPoint);
            break;

        case FightEffectType.BATTLE_EFFECT_SHILIAN_XIUWEI:
            UI.CreatObjectToNGUI.InstantiateObj(IconPrefabManager.Instance.getIcon("BattleGet_Practice"), CreatIconPoint);
            break;

        case FightEffectType.BATTLE_EFFECT_EXPSHOW:
            UI.CreatObjectToNGUI.InstantiateObj(IconPrefabManager.Instance.getIcon("BattleGet_Exp"), CreatIconPoint);
            break;

        case FightEffectType.TOWN_EFFECT_ZHANLI:
            UI.CreatObjectToNGUI.InstantiateObj(IconPrefabManager.Instance.getIcon("TownGet_ZhanLi"), CreatIconPoint);
            break;

        default:
            break;
        }
    }
コード例 #2
0
        /// <summary>
        /// ¸ù¾ÝÉ˺¦ÀàÐÍ»ñÈ¡ÌØÊâµÄÕ½¶·×´Ì¬
        /// </summary>
        /// <param name="effect"></param>
        /// <returns></returns>
        public static FightEffectType GetFightEffectTypeByDamageEffect(Damage.EDamageEffect effect)
        {
            FightEffectType result = FightEffectType.none;

            switch (effect)
            {
            case Damage.EDamageEffect.DE_BLOCK:
                result = FightEffectType.Parry;
                break;

            case Damage.EDamageEffect.DE_CRITIC:
                result = FightEffectType.CriticEnemyDamage;
                break;

            case Damage.EDamageEffect.DE_DODGE:
                result = FightEffectType.Dodge;
                break;

            case Damage.EDamageEffect.DE_HP_STEAL:
                result = FightEffectType.AddHp;
                break;

            case Damage.EDamageEffect.DE_EN_STEAL:
                result = FightEffectType.AddMp;
                break;

            case Damage.EDamageEffect.DE_RE_HURT:
                result = FightEffectType.BounceDamage;
                break;

            case Damage.EDamageEffect.DE_HURT_RELIEF:
                result = FightEffectType.DamageDrain;
                break;

            case Damage.EDamageEffect.DE_EN_SHIELD:
                //result = FightEffectType.Parry;(ÔÝʱ²»´¦Àí)
                break;

            case Damage.EDamageEffect.DE_SUPER:
                result = FightEffectType.Invincible;
                break;

            case Damage.EDamageEffect.DE_KILL:
                result = FightEffectType.OneHitKill;
                break;

            case Damage.EDamageEffect.DE_ABSOLUTE_DOGE:     // ¾ø¶ÔÉÁ±Ü
                result = FightEffectType.AbsoluteDoge;
                break;

            case Damage.EDamageEffect.DB_FOLLOW_ATTACK:    // ×·ÃüÒ»»÷
                result = FightEffectType.FollowAttack;
                break;

            default:
                break;
            }

            return(result);
        }
コード例 #3
0
 public static void SettleResultForTime(EntityModel entityModel, string content, FightEffectType fightEffectType)
 {
     PopUpInfoList.Enqueue(new PopUpInfo()
     {
         entityModel = entityModel, content = content, fightEffectType = fightEffectType
     });
     TweenFloat.Begin(1, 0, 1, null, PopUpForTime);
 }
コード例 #4
0
    public void playEffect(FightEffectType type, int value)
    {
        damageEffect = type == FightEffectType.DAMAGE;
        switch (type)
        {
        case FightEffectType.HEAL:
            effectRender.sprite = healSprite;
            effectTxt.color     = green;
            effectTxt.text      = "Здоровье +" + value;
            break;

        case FightEffectType.REGENERATION:
            effectRender.sprite = regenerateSprite;
            effectTxt.color     = green;
            effectTxt.text      = "Регенерация";
            break;

        case FightEffectType.ARMORED:
            effectRender.sprite = armorSprite;
            effectTxt.color     = blue;
            effectTxt.text      = "Защита +" + value;
            break;

        case FightEffectType.SPEED:
            effectRender.sprite = speedSprite;
            effectTxt.color     = blue;
            effectTxt.text      = "Ускорение";
            break;

        case FightEffectType.BLIND:
            effectRender.sprite = blindSprite;
            effectTxt.color     = red;
            effectTxt.text      = "Ослепление";
            break;

        case FightEffectType.DAMAGE:
            effectRender.sprite = damageSprite;
            effectTxt.color     = red;
            effectTxt.text      = "-" + value;
            break;

        case FightEffectType.PARALIZED:
            effectRender.sprite = paralizeSprite;
            effectTxt.color     = red;
            effectTxt.text      = "Паралич";
            break;

        case FightEffectType.POISON:
            effectRender.sprite = poisonSprite;
            effectTxt.color     = red;
            effectTxt.text      = "Отравление";
            break;

        default: Debug.Log("Unknown effect type: " + type); break;
        }

        effectSetup();
    }
コード例 #5
0
        public static int GetLayoutLevel(FightEffectType type)
        {
            if (m_db_layout == null)
            {
                m_db_layout = DBManager.Instance.GetDB <DBFightEfffectLayout>();
            }
            int result = 0;
            var item   = m_db_layout.GetOneItem(type.ToString());

            if (item != null)
            {
                result = item.Level;
            }
            return(result);
        }
コード例 #6
0
    //public GameObject OneNumberPopUpObj;
    //public GameObject TowNumberPopUpObj;
    //public GameObject ThreeNumberPopUpObj;
    //public GameObject FourNumberPopUPObj;
    //public GameObject FiveNumberPopUpObj;

    //public UILabel OneNumberLabel;
    //public UILabel[] TowNumberLabel;
    //public UILabel[] ThreeNumberLabel;
    //public UILabel[] FourNumberLabel;
    //public UILabel[] FiveNumberLabel;

    //public UIFont NorMalFont;
    //public UIFont CritFont;
    //Vector3 NorMalFontScale = new Vector3(1,1,1);
    //Vector3 CritFontScale = new Vector3(2,2,2);

    public void Show(FightEffectType fightEffectType, string showNumber, bool isHero)
    {
        int     prefabIndex = Random.Range(0, PopUpObjPrefab.Length);
        UILabel textLabel   = UI.CreatObjectToNGUI.InstantiateObj(PopUpObjPrefab[prefabIndex], transform).GetComponentInChildren <UILabel>();

        textLabel.text = showNumber;
        if (isHero)
        {
            textLabel.color = new Color(1f, 0.184f, 0.184f);
        }
        else
        {
            textLabel.color = Color.white;
        }
        StartCoroutine(DestroyObjForTime(1));
    }
コード例 #7
0
    /// <summary>
    /// 弹出结算信息 PopupObjManager挂在在BattleUI场景中
    /// </summary>
    /// <param name="hostPosition"></param>
    /// <param name="content"></param>
    /// <param name="fightEffectType"></param>
    public static void SettleResult(Vector3 hostPosition, string content, FightEffectType fightEffectType, bool isHero)
    {
        Vector3 uiPos = GetPopupPos(hostPosition, PopupObjManager.Instance.UICamera);

        //TraceUtil.Log("GetPopUPTitle:"+fightEffectType);
        switch (fightEffectType)
        {
        case FightEffectType.BATTLE_EFFECT_CRIT:
            GetPopupWidget(content, uiPos, PopupObjManager.Instance.PopUpCritObj, hostPosition, fightEffectType);
            break;

        case FightEffectType.BATTLE_EFFECT_HIT:
            GetPopupWidget(content, uiPos, PopupObjManager.Instance.PopUpHpObj, hostPosition, fightEffectType, isHero);
            //GetPopupWidget(content, uiPos, PopupObjManager.Instance.PopupObj, hostPosition, fightEffectType);
            break;

        case FightEffectType.BATTLE_ADDHP:
            GetPopupWidget(content, uiPos, PopupObjManager.Instance.AddHPPopupObj, hostPosition, fightEffectType);
            break;

        case FightEffectType.BATTLE_ADDMONEY:
        case FightEffectType.BATTLE_EFFECT_SHILIAN_EXPSHOW:
        case FightEffectType.BATTLE_EFFECT_SHILIAN_XIUWEI:
        case FightEffectType.BATTLE_EFFECT_EXPSHOW:
            GetPopupWidget(content, uiPos, PopupObjManager.Instance.PopUpIconObj, hostPosition, fightEffectType);
            break;

        case FightEffectType.BATTLE_ADDMP:
            GetPopupWidget(content, uiPos, PopupObjManager.Instance.AddMPPopupObj, hostPosition, fightEffectType);
            break;

        case FightEffectType.BATTLE_EFFECT_DODGE:
        //case FightEffectType.BATTLE_EFFECT_HIT:
        case FightEffectType.BATTLE_EFFECT_HP:
            GetPopupWidget(content, uiPos, PopupObjManager.Instance.NormalPopupObj, hostPosition, fightEffectType);
            break;

        case FightEffectType.TOWN_EFFECT_ZHANLI:
            GetPopupWidget(content, uiPos, PopupObjManager.Instance.PopUpIconObj, hostPosition, fightEffectType);
            break;
        }
    }
コード例 #8
0
        public static void SetEffectValue(FightEffectType effectType, Text valueLabel, long value = 0, bool show_percent = false, string push_str = "")
        {
            bool must_be_damage = false;

            if (effectType == FightEffectType.BounceDamage)
            {
                must_be_damage = true;
                if (value > 0)
                {
                    value = -value;
                }
            }
            string value_string;

            if (show_percent)
            {
                if (value > 0)
                {
                    value_string = string.Format("+{0}%", value);
                }
                else
                {
                    value_string = string.Format("{0}%", value);
                }
            }
            else
            {
                if (value > 0)
                {
                    value_string = string.Format("+{0}", value);
                }
                else
                {
                    value_string = string.Format("{0}", value);
                }
            }

            switch (effectType)
            {
            //ÓÐÊý×Ö£¬²»°üº¬¡°ÎÄ×Ö¡±
            case FightEffectType.EnemyDamage:  //¼¼ÄÜÉ˺¦
            case FightEffectType.OurDamage:    //×ÔÉíÉ˺¦
            case FightEffectType.BounceDamage: //É˺¦·´µ¯
            case FightEffectType.AddHp:        //¼ÓѪ
            case FightEffectType.AddMp:        //ȯ˦
            case FightEffectType.AddSp:        //SP»ñµÃ
                if (valueLabel != null)
                {
                    valueLabel.text = value_string;
                }
                break;

            case FightEffectType.Attendant_damage:       //ħÆÍÉ˺¦
                if (valueLabel != null)
                {
                    valueLabel.text = xc.TextHelper.GetConstText("CODE_TEXT_LOCALIZATION_25") + value_string;    // Ó¡ÓÃÀ´±íʾ½ÅӡͼƬ
                }
                break;

            //ÓС°ÎÄ×Ö¡±£¨²»ÐèÒªÐ޸ģ©£¬ÓÐÊý×Ö
            case FightEffectType.CriticEnemyDamage:     //±©»÷É˺¦
            case FightEffectType.CriticAttendantDamage: //ħÆͱ©»÷É˺¦
            case FightEffectType.Accelerate:            //Òƶ¯¼ÓËÙ
            case FightEffectType.AddExp:                //¾­Ñé»ñµÃ
            case FightEffectType.AttackSp:              //¹¥ËÙ
            case FightEffectType.FollowAttack:          // ×·ÃüÒ»»÷
                if (valueLabel != null)
                {
                    valueLabel.text = value_string;
                }
                break;

            //Ö»ÓС°ÎÄ×Ö¡±£¬²»°üº¬ÈκÎÊý×Ö
            case FightEffectType.Dodge:        //ÉÁ±Ü
            case FightEffectType.AbsoluteDoge: // ¾ø¶ÔÉÁ±Ü
            case FightEffectType.Parry:        //¸ñµ²
            case FightEffectType.Invincible:   //ÎÞµÐ
            case FightEffectType.Immune:       //ÃâÒß
            case FightEffectType.OneHitKill:   //նɱ
            case FightEffectType.DamageDrain:  //É˺¦ÎüÊÕ
                break;

            default:
                Debug.LogError(string.Format("undefined FightEffectType {0}", effectType.ToString()));
                break;
            }

            if (push_str != null && push_str != "" && valueLabel != null)
            {
                valueLabel.text = valueLabel.text + push_str;
            }
        }
コード例 #9
0
	public void playEffect (FightEffectType type, int value) {
		if (type == FightEffectType.DAMAGE) {
			damageEffect = true;
			effectRender.sprite = damageSprite;
			effectTxt.color = red;
			effectTxt.text = "-" + value;
		}
		effectSetup();
	}
コード例 #10
0
ファイル: FightScreen.cs プロジェクト: aintech/Brooks_Star
    public void useSupply(SupplySlot slot)
    {
        if (slot.item != null)
        {
            SupplyData data = (SupplyData)slot.item.itemData;
            if (fightProcessor.canUseSupply(data.type))
            {
                bool            toPlayer        = data.type != SupplyType.GRENADE_FLASH && data.type != SupplyType.GRENADE_PARALIZE;
                StatusEffect    statusEffect    = getStatusEffectByType(data.type.toStatusEffectType(), toPlayer);
                FightEffectType fightEffectType = data.type.toFightEffectType();

                if (data.type.isMedkit())
                {
                    fightEffectPlayer.playEffect(fightEffectType, Player.heal(data.value));
                }
                else if (data.type.isGrenade())
                {
                    fightEffectPlayer.playEffectOnEnemy(fightEffectType, 0);
                    statusEffect.addStatus(data.value, data.duration);
                }
                else if (data.type.isInjection())
                {
                    fightEffectPlayer.playEffect(fightEffectType, data.value);
                    statusEffect.addStatus(data.value, data.duration);
                }
                else
                {
                    Debug.Log("Unknown status effect type");
                }

                Vector3 effectPos = toPlayer? playerStatusStartPosition: enemyStatusStartPosition;

                int activeEffects = -1;                //вычитаем добавляемый эффект

                effList = toPlayer? playerStatusEffects: enemyStatusEffects;

                for (int i = 0; i < effList.Count; i++)
                {
                    if (effList[i].isFired)
                    {
                        activeEffects++;
                    }
                }

                if (toPlayer)
                {
                    effectPos.x += activeEffects * playerStatusStep;
                }
                else
                {
                    effectPos.y += activeEffects * enemyStatusStep;
                }

                statusEffect.transform.localPosition = effectPos;

                fightProcessor.skipMove();
                FightProcessor.FIGHT_ANIM_PLAYER_DONE = false;
                slot.takeItem().destroy();
            }
        }
    }
コード例 #11
0
    /*
     * Вместо медкита и армора - эффект от разных зелий
     */

//	public void playMedkitEffect (MedkitElementType type, int value) {
//		switch(type) {
//			case MedkitElementType.SMALL: effectRender.sprite = medkitSmallSprite; break;
//			case MedkitElementType.MEDIUM: effectRender.sprite = medkitMediumSprite; break;
//			case MedkitElementType.LARGE: effectRender.sprite = medkitLargeSprite; break;
//			case MedkitElementType.SUPERIOR: effectRender.sprite = medkitSuperiorSprite; break;
//		}
//		effectTxt.color = green;
//		effectTxt.text = "+" + value;
//		effectSetup();
//	}
//
//	public void playArmorEffect (ArmorElementType type, int value) {
//		switch (type) {
//			case ArmorElementType.LIGHT: effectRender.sprite = armorLightSprite; break;
//			case ArmorElementType.MODERATE: effectRender.sprite = armorModerateSprite; break;
//			case ArmorElementType.HEAVY: effectRender.sprite = armorHeavySprite; break;
//			case ArmorElementType.ULTRA: effectRender.sprite = armorUltraSprite; break;
//		}
//
//		effectTxt.color = blue;
//		effectTxt.text = "+" + value;
//		effectSetup();
//	}

    public void playEffectOnEnemy(FightEffectType type, int value)
    {
        playEffect(type, value);
    }
コード例 #12
0
    private static GameObject GetPopupWidget(string content, Vector3 position, GameObject popupLabelPrefab, Vector3 hostPosition, FightEffectType fightEffectType, bool isHero)
    {
        var m_popupWidget = GameObjectPool.Instance.AcquireLocal(popupLabelPrefab, position, Quaternion.identity);
        var scale         = m_popupWidget.transform.localScale;

        m_popupWidget.transform.parent = PopupObjManager.Instance.UICamera.transform;
        //TraceUtil.Log("popUp:" + fightEffectType+","+content);
        m_popupWidget.transform.localScale = scale;
        switch (fightEffectType)
        {
        case FightEffectType.BATTLE_EFFECT_HIT:
        case FightEffectType.BATTLE_EFFECT_CRIT:
            m_popupWidget.GetComponent <CritPopUpObj>().Show(fightEffectType, content, isHero);
            //TraceUtil.Log("PopUPHP:" + content);
            break;

        case FightEffectType.BATTLE_ADDMONEY:
        case FightEffectType.BATTLE_EFFECT_SHILIAN_EXPSHOW:
        case FightEffectType.BATTLE_EFFECT_SHILIAN_XIUWEI:
        case FightEffectType.BATTLE_EFFECT_EXPSHOW:
            m_popupWidget.GetComponent <PopupIconObj>().Show(fightEffectType, content);
            var popBahaviour_icon = m_popupWidget.GetComponent <PopupFinish>();
            if (popBahaviour_icon != null)
            {
                popBahaviour_icon.FightEffectType = fightEffectType;
                popBahaviour_icon.HostPosition    = hostPosition;
            }
            break;

        case FightEffectType.TOWN_EFFECT_ZHANLI:
            m_popupWidget.GetComponent <PopupIconObj>().Show(fightEffectType, content);
            var popBahaviour_icon2 = m_popupWidget.GetComponent <PopupFinish>();
            if (popBahaviour_icon2 != null)
            {
                popBahaviour_icon2.FightEffectType = fightEffectType;
                popBahaviour_icon2.HostPosition    = hostPosition;
            }
            break;

        default:
            var uilabel = m_popupWidget.GetComponent <UILabel>();
            uilabel.text = content;
            var popBahaviour = m_popupWidget.GetComponent <PopupFinish>();
            if (popBahaviour != null)
            {
                popBahaviour.FightEffectType = fightEffectType;
                popBahaviour.HostPosition    = hostPosition;
            }
            break;
        }
        return(m_popupWidget);
    }
コード例 #13
0
 private static GameObject GetPopupWidget(string content, Vector3 position, GameObject popupLabelPrefab, Vector3 hostPosition, FightEffectType fightEffectType)
 {
     return(GetPopupWidget(content, position, popupLabelPrefab, hostPosition, fightEffectType, false));
 }