Пример #1
0
    protected override void Awake()
    {
        base.Awake();
        obj_entity.m_Id    = 10000000 + obj_entity.m_Id;
        obj_entity.Fight   = 10;
        obj_entity.Defence = 10;
        obj_entity.Name    = "战舰" + attribute.Name;

        skill           = new Skill();
        skill.Attribute = attribute;
        List <Buff>   list = new List <Buff>();
        AttributeBuff b    = new AttributeBuff();

        b.m_BuffName  = "buff001";
        b.m_DelayTime = 5;
        b.m_BuffTime  = 5;
        b.m_Fight     = 500;
        b.m_Value     = 500;
        list.Add(b);
        AttributeBuff b2 = new AttributeBuff();

        b2.m_BuffName = "buff002";
        b.m_DelayTime = 30;
        b2.m_BuffTime = 5;
        b2.m_Fight    = 20;
        b.m_Value     = 100;
        list.Add(b2);
        skill.Attribute.m_BuffList.AddRange(list);
        obj_entity.AddBuff(b);
        obj_entity.AddBuff(b2);
        sm.InitSkillList();
        Debug.Log("1.初始Hp:" + obj_entity.Hp);
        GlobalEventsMgr.GetInstance().RegEvent(obj_Id, EventsType.Skill_DamageEnd, HpValue);
    }
Пример #2
0
    //Adds a buff(AttributeBuff) to the list of buffs
    public void AddAttribModifier(AttributeBuff mod)
    {
        bool          addingTemp = false;
        bool          searching  = true;
        AttributeBuff temp       = new AttributeBuff();
        int           x          = 0;

        if (_attribBuffs.Count > 0)
        {
            foreach (AttributeBuff att in _attribBuffs)
            {
                if (searching)
                {
                    if (mod.attribute == att.attribute)
                    {
                        //Debug.Log ("Tryna add duplicate buff");
                        temp       = att;
                        addingTemp = true;
                        searching  = false;
                        //_attribBuffs.Remove (att);
                    }
                    x++;
                }
            }

            if (!addingTemp)
            {
                _attribBuffs.Add(mod);
            }
        }
        else
        {
            _attribBuffs.Add(mod);
        }

        if (addingTemp)
        {
            temp.amount += mod.amount;
            _attribBuffs.RemoveAt(x - 1);
            _attribBuffs.Add(temp);
        }
    }