コード例 #1
0
ファイル: SpellInfo.cs プロジェクト: ww386362087/MoyuHero
    private void SwithResourceType(int Type, int ID, int Num, ObjectCreature value)
    {
        switch (Type)
        {
        case (int)EM_EXTRAITEM_TYPE.EM_EXTRAITEM_TYPE_INVALID:
            break;

        case (int)EM_EXTRAITEM_TYPE.EM_EXTRAITEM_MP:
            if (!ObjectSelf.GetInstance().isSkillShow)
            {
                FightControler.Inst.OnUpdatePowerValue(value.GetGroupType(), -Num);
            }
            break;

        case (int)EM_EXTRAITEM_TYPE.EM_EXTRAITEM_MP_PERCENT:
            FightControler.Inst.OnUpdatePowerValue(value.GetGroupType(), -(FightControler.Inst.GetPowerValue(value.GetGroupType()) * Num / 100));
            break;

        case (int)EM_EXTRAITEM_TYPE.EM_EXTRAITEM_HP:
            value.SetHP((value.GetHP() - Num));
            break;

        case (int)EM_EXTRAITEM_TYPE.EM_EXTRAITEM_CURRENTHP_PERCENT:
            value.SetHP((value.GetHP() - (value.GetHP() * (Num / 100))));
            break;

        case (int)EM_EXTRAITEM_TYPE.EM_EXTRAITEM_MAXHP_PERCENT:
            value.SetHP((value.GetHP() - (value.GetMaxHP() * (Num / 100))));
            break;

        case (int)EM_EXTRAITEM_TYPE.EM_EXTRAITEM_COMMON:
            break;

        case (int)EM_EXTRAITEM_TYPE.EM_EXTRAITEM_GOLD:
            break;

        case (int)EM_EXTRAITEM_TYPE.EM_EXTRAITEM_RONGHUN:
            break;

        case (int)EM_EXTRAITEM_TYPE.EM_EXTRAITEM_RUNEPOINT:
            break;

        case (int)EM_EXTRAITEM_TYPE.EM_EXTRAITEM_PARTNER:
            break;

        case (int)EM_EXTRAITEM_TYPE.EM_EXTRAITEM_ITEM:
            break;

        case (int)EM_EXTRAITEM_TYPE.EM_EXTRAITEM_EQUIP:
            break;
        }
    }
コード例 #2
0
        /// <summary>
        /// 血量变化
        /// </summary>
        private void onHpChangeCall(GameEvent e)
        {
            UI_HurtInfo info = (UI_HurtInfo)e.data;

            if (info != null)
            {
                ObjectCreature obj = info.pTarget;
                mBloodControl.UpdateBloodValue(obj.GetGuid(), (float)obj.GetHP() / obj.GetMaxHP());
                if (obj.GetHP() < 0)
                {
                    return;
                }
                if (obj.GetGroupType() == EM_OBJECT_TYPE.EM_OBJECT_TYPE_HERO)
                {
                    // hero
                    Transform trans = ((ObjectHero)obj).GetAnimation().EventControl.Pre_Head_T_EffectPoint;
                    if (info.nHurt > 0)
                    {
                        // 英雄加血
                        mNumberMgr.showNumber(System.Math.Abs(info.nHurt), HPNumberType.HP_HEAL, trans.position);
                    }
                    else
                    {
                        // 英雄掉血
                        mNumberMgr.showNumber(System.Math.Abs(info.nHurt), HPNumberType.HP_SELF_HURT, trans.position);
                    }
                }
                else if (obj.GetGroupType() == EM_OBJECT_TYPE.EM_OBJECT_TYPE_MONSTER)
                {
                    // monster
                    Transform trans = ((ObjectMonster)obj).GetAnimation().EventControl.Pre_Head_T_EffectPoint;
                    if (info.nHurt < 0)
                    {
                        //敌人掉血
                        if (info.bCritical)
                        {
                            // 暴击
                            mNumberMgr.showNumber(System.Math.Abs(info.nHurt), HPNumberType.HP_HEAVY, trans.position);
                        }
                        else
                        {
                            mNumberMgr.showNumber(System.Math.Abs(info.nHurt), HPNumberType.HP_ENEMY_HURT, trans.position);
                        }
                    }
                    else
                    {
                        // 敌人加血
                        mNumberMgr.showNumber(System.Math.Abs(info.nHurt), HPNumberType.HP_HEAL, trans.position);
                    }
                }
            }
        }
コード例 #3
0
ファイル: SpellInfo.cs プロジェクト: ww386362087/MoyuHero
    private bool IsEnoughHp(ObjectCreature value)
    {
        switch (m_pTableRowSpell.getHpConditionType())
        {
        case (int)EM_SPELL_CONDITION_TYPE.EM_SPELL_CONDITION_TYPE_INVALID:
            return(true);

        case (int)EM_SPELL_CONDITION_TYPE.EM_SPELL_CONDITION_TYPE_LESSVALUE:
            if (value.GetHP() <= m_pTableRowSpell.getHpConditionNum())
            {
                return(true);
            }
            break;

        case (int)EM_SPELL_CONDITION_TYPE.EM_SPELL_CONDITION_TYPE_MOREVALUE:
            if (value.GetHP() >= m_pTableRowSpell.getHpConditionNum())
            {
                return(true);
            }
            break;

        case (int)EM_SPELL_CONDITION_TYPE.EM_SPELL_CONDITION_TYPE_LESSPERCENT:
            if ((value.GetHP() / value.GetMaxHP()) <= (m_pTableRowSpell.getHpConditionNum() / 100))
            {
                return(true);
            }
            break;

        case (int)EM_SPELL_CONDITION_TYPE.EM_SPELL_CONDITION_TYPE_MOREPERCENT:
            if ((value.GetHP() / value.GetMaxHP()) >= (m_pTableRowSpell.getHpConditionNum() / 100))
            {
                return(true);
            }
            break;
        }
        return(false);
    }
コード例 #4
0
ファイル: SpellInfo.cs プロジェクト: ww386362087/MoyuHero
    public bool CheckHurtInterrupt(ObjectCreature pObject, int nValue)
    {
        LogManager.LogAssert(IsValid());
        LogManager.LogAssert(pObject);
        if (m_pTableRowSpell.getDamageInterruptType() == 1)
        {
            if (m_pTableRowSpell.getRpConditionNum() <= nValue)
            {
                return(true);
            }
        }

        else if (m_pTableRowSpell.getDamageInterruptType() == 2)
        {
            if (m_pTableRowSpell.getRpConditionNum() <= pObject.GetHP() * 100 / pObject.GetMaxHP())
            {
                return(true);
            }
        }

        return(false);
    }
コード例 #5
0
ファイル: SpellAILogic.cs プロジェクト: ww386362087/MoyuHero
 private bool CheckCondition21(int[] Param)
 {
     return(((float)m_ReleaseObj.GetHP() / (float)m_ReleaseObj.GetMaxHP() < (float)Param[0] / 100) ? true : false);
 }