Beispiel #1
0
    public void RemoveBuff(BaseBuff buff)
    {
        BaseBuff temp = buff;

        Destroy(temp.gameObject);
        buffs.Remove(temp);
    }
Beispiel #2
0
        public GumpBuff(NubiaPlayer _owner) : base(50, 50)
        {
            m_owner = _owner;

            Closable = false;

            int largeur = 300;
            int hauteur = 150;
            int _x      = 50;
            int _y      = 50;


            int y       = 75 + _y;
            int colonne = 0;
            int scaley  = 48;


            AddImage(_x + 45, _y + 2, 0x2C7E, 94);
            for (int i = 0; i < m_owner.BuffList.Count; i++)
            {
                BaseBuff buff = m_owner.BuffList[i] as BaseBuff;
                //AddImage( _x-50, y+(colonne*scaley), buff.Icone );
                AddButton(_x + 55 + (colonne * scaley), _y, buff.Icone, buff.Icone, 50 + i, GumpButtonType.Reply, 0);
                colonne++;
            }
            //AddImage( _x+40,_y, 0x7580, 94 );
        }
Beispiel #3
0
    public virtual void EffectOnActor(BaseActorObj targetActor, Collider2D TargetCollider)
    {
        m_AttackDict.Add(targetActor, 1);
        Vector3 effectPs = CountHurtPs(m_ActorObj.SkillHurtBox, TargetCollider);

        GenEffect(effectPs);
        SetCutMeet(targetActor);
        //产生伤害
        float moveDir = 1;

        if ((targetActor.transform.position.x - m_ActorObj.transform.position.x) < 0)
        {
            moveDir *= -1;
        }
        BaseBuff buff = null;

        switch (m_SkillInfo.HitType)
        {
        case HitEffectType.ClickFly:
            buff = new HitFlyBuff(this.m_SkillInfo, moveDir, this.m_ActorObj);
            break;

        default:
            buff = new HitBuff(this.m_SkillInfo, moveDir, this.m_ActorObj);
            break;
        }
        buff.AddToActor(targetActor);
        this.SetHardTime(this.m_SkillInfo.AttackHardTime);
    }
Beispiel #4
0
    public void AddBuff(GameObject buffObj, Role caster)
    {
        bool     exist = false;
        BaseBuff buff  = buffObj.GetComponent <BaseBuff>();

        buff.caster = caster;

        foreach (BaseBuff baseBuff in buffs)
        {
            if (baseBuff.buffName == buff.buffName && !buff.canDuplicate)
            {
                exist             = true;
                baseBuff.duration = buff.duration;
                baseBuff.value    = buff.value;
                baseBuff.factor   = buff.factor;
                baseBuff.RenewBuff();

                Destroy(buffObj);
                break;
            }
        }

        if (!exist)
        {
            buffObj.transform.SetParent(this.transform);
            buffObj.transform.position = this.transform.position;
            buff.notifyBuffRemoved    += OnBuffDestory;
            buffs.Add(buff);
        }
    }
Beispiel #5
0
    public void AddBuff(GameObject buffPrafab, Role caster)
    {
        bool     exist = false;
        BaseBuff buff  = buffPrafab.GetComponent <BaseBuff>();
        Vector3  scale = buffPrafab.transform.localScale;

        buff.fromRoleId = caster.GetInstanceID();
        buff.SetCaster(caster);
        foreach (BaseBuff baseBuff in GetBuffs())
        {
            if (baseBuff.buffName == buff.buffName && baseBuff.fromRoleId == caster.GetInstanceID())
            {
                buff.order = baseBuff.order;
                exist      = true;
                ReplaceBuff(baseBuff, buffPrafab);
            }
        }

        if (!exist)
        {
            buffPrafab.transform.SetParent(this.transform);
            buffPrafab.transform.position = this.transform.position;
            buff.order = buffs.Count;
            buffs.Add(buffPrafab);
        }
        correctBuffPosition(buffPrafab);
        buffPrafab.transform.localScale = scale;
    }
Beispiel #6
0
    public void AddBuff(BaseBuff buff)
    {
        bool hasSameBuff = false;
        int  index       = -1;

        //遍历buff列表寻找是否已有相同类型的buff
        for (int i = 0; i < buffList.Count; i++)
        {
            if (buffList[i].buffType == buff.buffType)
            {
                hasSameBuff = true;
                index       = i;
                break;
            }
        }

        //如果没有相同buff,就添加
        if (!hasSameBuff)
        {
            buffList.Add(buff);
            buff.OnAdd();
        }
        //如果有了,重置已有的buff
        else
        {
            buffList[index].OnInit();
        }
    }
Beispiel #7
0
    /// <summary>
    /// 移除Buff
    /// </summary>
    /// <param name="buf"></param>
    public void RemoveBuff(BaseBuff buf)
    {
        ShowType curType = buf.BuffShowType;

        if (!m_mountDict.ContainsKey(curType))
        {
            Debug.Log("Dict缺少key=" + curType);
            return;
        }

        if (!m_mountDict[curType].ContainsKey(buf.OnlyID))
        {
            Debug.Log("Buff->" + buf.OnlyID + "不存在");
            return;
        }
        m_mountDict[curType].Remove(buf.OnlyID);
        if (buf.Check(1))
        {
            OnPreAttackFunc -= buf.OnPreAttack;
        }
        if (buf.Check(2))
        {
            OnNextAttackFunc -= buf.OnNextAttack;
        }
        if (buf.Check(3))
        {
            OnPreHurtFunc -= buf.OnPreHurted;
        }
        if (buf.Check(4))
        {
            OnNextHurtFunc -= buf.OnNextHurted;
        }
        buf.Remove();
    }
Beispiel #8
0
    void OnAttackSucc(FighterEvent e)
    {
        BaseBuff buff = BuffFactory.GetBuffByID(BuffID, skillLevel);

        card.attacker.AddBuff(buff);
        card.Actions.Add(SkillStartAction.GetAction(card.ID, skillID, GetTargetID(card)));
    }
Beispiel #9
0
    public void AddBuff(BaseBuff.BuffType type, float time, float val)
    {
        for (int i = 0; i < buffList.Count; i++)
        {
            if (buffList[i].GetBuffType() == type)
            {
                buffList[i].Reset(time, val);
                return;
            }
        }

        BaseBuff buff = null;

        switch (type)
        {
        case BaseBuff.BuffType.speed:
            buff = new BuffSpeed();
            break;

        default:
            Debug.LogError("no buff :" + type);
            break;
        }
        buff.Init(type, time, val);
        addList.Add(buff);
    }
Beispiel #10
0
    //同id的buff不能叠加,只能覆盖
    public bool AddBuff(Creature target, BuffId id)
    {
        BaseBuff newBuff = null;

        switch (id)
        {
        case BuffId.Invincible:
            newBuff = new InvincibleBuff();
            break;
        }
        if (newBuff != null)
        {
            if (buffDict.ContainsKey(id))
            {   //移除原来的buff
                if (buffDict[id] != null)
                {
                    buffDict[id].Stop();
                }
                buffDict[id] = newBuff;
            }
            else
            {
                buffDict.Add(id, newBuff);
            }

            newBuff.Start(target);
        }


        return(true);
    }
Beispiel #11
0
    public override void activateAbility(CardDetails details)
    {
        GameObject buffGO = Instantiate(abilityPrefab, details.character.transform);
        BaseBuff   buff   = buffGO.GetComponent <BaseBuff>();

        buff.createBuff(details.character, details.character);
    }
Beispiel #12
0
    public void AddBuff(BaseBuff buff)
    {
        // Adding the buff to the list
        Buffs.AllBuffs.Add(buff);

        // Firing OnAdded for that buff
        buff.OnAdded(Minion);
    }
Beispiel #13
0
    public BaseBuff AddBuff(BaseBuff buff)
    {
        BaseBuff temp = Instantiate(buff, this.transform);

        buffs.Add(temp);
        temp.Activate(this);
        return(temp);
    }
Beispiel #14
0
        public static Dictionary <BuffCode, BaseBuff> GetBuffInfoDict()
        {
            MySqlConnection conn = Connect();
            Dictionary <BuffCode, BaseBuff> BuffInfoDict = new Dictionary <BuffCode, BaseBuff>();
            MySqlDataReader reader = null;

            try
            {
                MySqlCommand cmd = new MySqlCommand("select * from buff", conn);
                reader = cmd.ExecuteReader();
                if (reader.HasRows)
                {
                    while (reader.Read())
                    {
                        int    buff_id      = reader.GetInt32("buff_id");
                        string buff_name    = reader.GetString("buff_name");
                        string buff_ename   = reader.GetString("buff_ename");
                        string element_type = reader.GetString("element_type");
                        string dispel       = reader.GetString("dispel");
                        string type         = reader.GetString("type");
                        string flag         = reader.GetString("flag");

                        float v1 = reader.GetFloat("v1");
                        float v2 = reader.GetFloat("v2");
                        float v3 = reader.GetFloat("v3");
                        float v4 = reader.GetFloat("v4");
                        float v5 = reader.GetFloat("v5");
                        float v6 = reader.GetFloat("v6");
                        float v7 = reader.GetFloat("v7");
                        float v8 = reader.GetFloat("v8");

                        float duration    = reader.GetFloat("duration");
                        float action_time = reader.GetFloat("action_time");
                        int   max_tier    = reader.GetInt32("max_tier");


                        BaseBuff buff = new BaseBuff(buff_id, buff_name, (BuffCode)Enum.Parse(typeof(BuffCode), buff_ename), (ElementType)Enum.Parse(typeof(ElementType), element_type),
                                                     (BuffDispelType)Enum.Parse(typeof(BuffDispelType), dispel), (BuffType)Enum.Parse(typeof(BuffType), type), (BuffFlag)Enum.Parse(typeof(BuffFlag), flag),
                                                     v1, v2, v3, v4, v5, v6, v7, v8, duration, action_time, max_tier);

                        BuffInfoDict.Add((BuffCode)Enum.Parse(typeof(BuffCode), buff_ename), buff);
                    }
                }
            }
            catch (Exception e)
            {
                Console.WriteLine("在GetBuffInfoDict的时候出现异常:" + e);
            }
            finally
            {
                if (reader != null)
                {
                    reader.Close();
                }
                CloseConnection(conn);
            }
            return(BuffInfoDict);
        }
Beispiel #15
0
 // 攻击成功后提示攻击力
 void OnAttackSucc(FighterEvent e)
 {
     if (card.lastAttackValue > 0)
     {
         card.Actions.Add(SkillStartAction.GetAction(card.ID, skillID, GetTargetID(card)));
         BaseBuff buff = BuffFactory.GetBuffByID(BuffID, skillLevel);
         card.target.AddBuff(buff);
     }
 }
Beispiel #16
0
 public void SlowDown(BaseBuff buff)
 {
     if (!isSlowDown)
     {
         moveSpeed -= buff.buffValue;
         shitGo.SetActive(true);
     }
     isSlowDown = true;
 }
Beispiel #17
0
    private void ReplaceBuff(BaseBuff baseBuff, GameObject buffPrafab)
    {
        GameObject oldBuff = baseBuff.transform.gameObject;

        buffPrafab.transform.position = oldBuff.transform.position;
        buffPrafab.transform.SetParent(oldBuff.transform.parent);
        buffs[baseBuff.order] = buffPrafab;
        Destroy(oldBuff);
    }
Beispiel #18
0
 public void Respawn(BaseBuff buff)
 {
     if (buff.KindType == BuffKind)
     {
         buff.Despawned();
         Buffs.Push(buff);
         CurCount++;
     }
 }
Beispiel #19
0
    /// <summary>
    /// 添加一个buff
    /// </summary>
    public void AddBuff(BaseBuff buff)
    {
        if (!buff.SuperPositon && HasBuff(buff.ID))
        {
            return;
        }

        buff.AddBuff(this);
        buffs.Add(buff);
    }
 public void Respawn(BaseBuff buff)
 {
     if (BuffPools.ContainsKey(buff.KindType))
     {
         BuffPools[buff.KindType].Respawn(buff);
     }
     else
     {
         TinyLogger.Instance.DebugLog("$ can not respawn skill");
     }
 }
Beispiel #21
0
    public void AddBuff(BaseBuff buff)
    {
        // Adding the buff to the list
        Buffs.AllBuffs.Add(buff);

        // Firing OnAdded for that buff
        buff.OnAdded(this);

        // Updating controller numbers
        Controller.UpdateNumbers();
    }
Beispiel #22
0
 public Buff(BaseBuff b)
 {
     BuffName     = b.BuffName;
     BuffIcon     = b.BuffIcon;
     SkillIcon    = b.SkillIcon;
     BuffCategory = b.BuffCategory;
     Description  = b.Description;
     RoomType     = ArknightUtil.GetRoom(b.BuffIcon);
     Phase        = b.Phase;
     Lvl          = b.Lvl;
 }
Beispiel #23
0
    public virtual void AddToActor(BaseActorObj Actor)
    {
        BaseBuff curBuff = Actor.GetBuffByType(BuffType.Hit);

        if (curBuff != null)
        {
            curBuff.RemoveSelf();
        }
        m_Actor = Actor;
        Actor.AddBuff(this);
    }
Beispiel #24
0
    public void RemoveBuff(BaseBuff buff)
    {
        // Checking if the minion has the buff
        if (Buffs.AllBuffs.Contains(buff))
        {
            // Removing the buff from the list
            Buffs.AllBuffs.Remove(buff);

            // Firing OnRemoved for that buff
            buff.OnRemoved(Minion);
        }
    }
Beispiel #25
0
    protected override void _DoSkill(BaseFighter target)
    {
        // 卡牌存在,攻击卡牌
        target.OnSkillHurt(this, damage);

        // 判定成功增加Buff
        if (target.canDoSkill && BuffID > 0 && !target.IsDead && Random.Range(0, 100) < rate)
        {
            BaseBuff buff = BuffFactory.GetBuffByID(BuffID, skillLevel);
            (target as CardFighter).AddBuff(buff);
        }
    }
Beispiel #26
0
    public HitAction(BaseActorObj baseActorObj, SkillInfo skillInfo) : base(baseActorObj, skillInfo)
    {
        SetFaceLock(true);
        BaseBuff baseBuff = baseActorObj.GetBuffByType(BuffType.Hit);

        m_HitBuff = baseBuff == null? new HitBuff(): baseBuff as HitBuff;
        float hardTime = m_HitBuff.hardTime;

        SetHardTime(hardTime);

        m_ActorObj.Physic.SetSpeed(Vector2.right * m_HitBuff.addSpeed);
        m_ActorObj.ActionCtrl.AnimSpeed = 0;
    }
Beispiel #27
0
    public void RemoveBuff(BaseBuff buff)
    {
        // Checking if the minion has the buff
        if (Buffs.AllBuffs.Contains(buff))
        {
            // Removing the buff from the list
            Buffs.AllBuffs.Remove(buff);

            // Firing OnRemoved for that buff
            buff.OnRemoved(this);

            // Updating controller numbers
            Controller.UpdateNumbers();
        }
    }
Beispiel #28
0
 public virtual void ApplyBuffsToRole(List <SkillAttachedBuff> buffDefs, Role role)
 {
     foreach (SkillAttachedBuff buffDef in buffDefs)
     {
         GameObject buffObj = Instantiate(buffDef.buffObj);
         if (buffDef.overrideExisting)
         {
             BaseBuff baseBuff = buffObj.GetComponent <BaseBuff>();
             baseBuff.duration  = buffDef.duration;
             baseBuff.frequency = buffDef.frequency;
             baseBuff.value     = buffDef.value;
             baseBuff.factor    = buffDef.factor;
         }
         role.AddBuff(buffObj, owner.GetComponent <Role>());
     }
 }
Beispiel #29
0
        //计算角色数值
        private FightHero SetFightHeroInfoByBuff(FightHero fightHero)
        {
            fightHero.OrgFightHeroInfo();
            List <BuffCode> buffDictIndex = new List <BuffCode>();

            buffDictIndex.AddRange(fightHero.BuffDict.Keys);
            foreach (BuffCode key in buffDictIndex)
            {
                if (fightHero.BuffDict.ContainsKey(key))
                {
                    BaseBuff buff = fightHero.BuffDict[key];
                    buff.MoreAssistEffect(fightHero);
                }
            }
            return(fightHero);
        }
Beispiel #30
0
 /// <summary>
 /// 将所有非空buff加入对应角色上
 /// </summary>
 /// <param name="source">buff发起者</param>
 /// <param name="target">buff承受者</param>
 /// <param name="buff1">buff数据</param>
 /// <param name="buffcode">buff码</param>
 /// <param name="tier">层数</param>
 /// <param name="buff_target">对敌、对己</param>
 public void SetCardEffectBuff(FightHero source, FightHero target, BaseBuff buffdata, int tier, BuffTarget buff_target)
 {
     if (buffdata.Buff_Ename != BuffCode.None)
     {
         Assembly assembly = Assembly.GetExecutingAssembly();
         //参数列表,对应buff的构造函数
         object[] parameters = new object[1];
         parameters[0] = buffdata;
         object obj = assembly.CreateInstance("GameServer.Buff.Buff_" + buffdata.Buff_Id.ToString(), true, System.Reflection.BindingFlags.Default, null, parameters, null, null);
         //BaseBuff buff =new BaseBuff(obj as BaseBuff);
         BaseBuff buff = obj as BaseBuff;
         buff.Tier        = tier;
         buff.Damage_Type = DamageType.Element;
         buff.BuffSource  = source;
         buff.fightRoom   = this;
         if (buff_target == BuffTarget.Self)
         {
             if (source.IsInmmune == true && buff.Buff_Type == BuffType.NegativeState)
             {
                 return;
             }
             if (source.BuffDict.ContainsKey(buff.Buff_Ename))
             {
                 source.BuffDict[buff.Buff_Ename].AddBuffRule(tier);
             }
             else
             {
                 source.BuffDict.Add(buff.Buff_Ename, buff);
             }
         }
         if (buff_target == BuffTarget.Other)
         {
             if (target.IsInmmune == true && buff.Buff_Type == BuffType.NegativeState)
             {
                 return;
             }
             if (target.BuffDict.ContainsKey(buff.Buff_Ename))
             {
                 target.BuffDict[buff.Buff_Ename].AddBuffRule(tier);
             }
             else
             {
                 target.BuffDict.Add(buff.Buff_Ename, buff);
             }
         }
     }
 }