Beispiel #1
0
    public void AddBuff(int buff_id)
    {
        Config cMagicBuff   = ConfigPool.Load("MagicBuff");
        Config cTriggerBuff = ConfigPool.Load("TriggerBuff");
        Config cAuraBuff    = ConfigPool.Load("AuraBuff");

        if (cMagicBuff.ContainsKey(buff_id))
        {
            MagicBuff buff = new MagicBuff(this.role, buff_id);
            this.magic_buff_map.Add(buff_id, buff);
        }
        else if (cTriggerBuff.ContainsKey(buff_id))
        {
            TriggerBuff buff = new TriggerBuff(this.role, buff_id);
            this.trigger_buff_map.Add(buff_id, buff);
        }
        else if (cAuraBuff.ContainsKey(buff_id))
        {
            AuraBuff buff = new AuraBuff(this.role, buff_id);
            this.aura_buff_map.Add(buff_id, buff);
        }
        else
        {
            Log.Debug(string.Format("Buff Id:{0} Not Exist", buff_id));
        }
    }
Beispiel #2
0
    void OnControllerColliderHit(ControllerColliderHit hit)
    {
        GameObject obj = hit.gameObject;

        switch (obj.tag)
        {
        case nameof(Tag.Buff):
            MagicBuff buff = obj.GetComponent <MagicBuff>();
            buff.BePickUp(myIndex);
            break;

        case nameof(Tag.Ground):
            break;

        default:
            Debug.LogError("人物碰到:" + obj.name + "/" + obj.tag);
            break;
        }
    }
Beispiel #3
0
    /// <summary>
    /// 解析所有帧操作指令并在本客户端复现
    /// </summary>
    /// <param name="xieyi"></param>
    private void SelectFrameInfo(MessageXieYi xieyi)
    {
        byte[]          tempMessageContent = xieyi.MessageContent;
        string          messageInfo        = "";
        CharacterCommon member             = null;
        BuffInfo        buffInfo           = null;

        switch ((MessageConvention)xieyi.XieYiFirstFlag)
        {
        case MessageConvention.moveDirection:
            ActorMoveDirection moveDir = SerializeHelper.Deserialize <ActorMoveDirection>(tempMessageContent);
            member = GameManager.instance.memberGroup[moveDir.userIndex];
            //用上次移动操作到这次操作的时间,算出当前位置,并移动到该点
            //member.transform.DOMove(SerializeHelper.BackVector(moveDir.position), DataController.FrameFixedTime);
            //member.SetPosition(SerializeHelper.BackVector(moveDir.position));
            member.SetNetDirection(moveDir);
            break;

        case MessageConvention.rotateDirection:
            ActorRotateDirection rotateDir = SerializeHelper.Deserialize <ActorRotateDirection>(tempMessageContent);
            //判断用户
            //Debug.LogError("玩家接收方向移动:" + messageInfo);
            member = GameManager.instance.memberGroup[rotateDir.userIndex];
            member.SetNetDirection(rotateDir);
            break;

        case MessageConvention.jump:
            ActorJump netJump = SerializeHelper.Deserialize <ActorJump>(tempMessageContent);
            member = GameManager.instance.memberGroup[netJump.userIndex];
            member.SetJump();
            break;

        case MessageConvention.shootBullet:
            ShootInfo shootInfo = SerializeHelper.Deserialize <ShootInfo>(tempMessageContent);
            member = GameManager.instance.memberGroup[shootInfo.userIndex];
            if (shootInfo.userIndex != DataController.instance.MyLocateIndex)    //自身在收到服务器消息之前已旋转
            {
                member.ShowBullet(shootInfo);
            }
            break;

        case MessageConvention.bulletInfo:
            BulletInfo bulletInfo = SerializeHelper.Deserialize <BulletInfo>(tempMessageContent);
            switch (bulletInfo.shootTag)
            {
            case ShootTag.Box:
                BoxManager.instance.SetBulletInfo(bulletInfo);
                break;

            case ShootTag.Character:
                UpdateMemberShoot(xieyi);
                break;

            case ShootTag.Wall:
                Debug.Log("射中Wall:" + bulletInfo.shootInfo);
                break;

            case ShootTag.Buff:
                Debug.LogError("Buff不算是子弹");
                break;
            }

            break;

        case MessageConvention.createBuff:
            buffInfo = SerializeHelper.Deserialize <BuffInfo>(tempMessageContent);
            GameObject obj = PoolManager.instance.GetPoolObjByType(PreLoadType.Buff, GameManager.instance.transBuff);
            obj.transform.position = BoxManager.instance.GetBoxInfoByIndex(buffInfo.boxIndex).transform.position;
            MagicBuff buff = obj.GetComponent <MagicBuff>();
            buff.Init(buffInfo);
            break;

        case MessageConvention.getBuff:
            buffInfo = SerializeHelper.Deserialize <BuffInfo>(tempMessageContent);
            BoxManager.instance.SetBuffData(buffInfo);
            break;
        }
    }
Beispiel #4
0
    /// <summary>
    /// Replaces text and such with what would happen if the skill was upgraded
    /// </summary>
    /// <param name="allyGrim">Grimoire of the selected</param>
    /// <param name="previewMagicStat">The amount the magic will potentially increase</param>
    public void PreviewSkillUpgrade(AllyGrimoire allyGrim, int amountIncrease)
    {
        // Default values
        string skillName        = " None";
        string skillDescription = "Upgrade magic to gain a skill";
        int    skillDmg         = 0;
        int    skillRange       = 0;
        int    skillCooldown    = 0;
        Sprite skillIcon        = null;

        // For if the values were changed at all
        bool isSkillNameBuff     = false;
        bool isSkillDmgBuff      = false;
        bool isSkillRangeBuff    = false;
        bool isSkillCooldownBuff = false;

        // Get the starting values for the skill
        AllySkillController skillContRef = allyGrim.GetComponent <AllySkillController>();

        if (skillContRef != null)
        {
            Skill activeSkill = skillContRef.SpecialSkill;
            if (activeSkill != null)
            {
                skillName        = " " + SkillHolder.GetSkillName(activeSkill.GetSkillNum());
                skillDescription = SkillHolder.GetSkillDescription(activeSkill.GetSkillNum());
                skillIcon        = SkillHolder.GetSkillImage(activeSkill.GetSkillNum());
                skillDmg         = activeSkill.GetDamage();
                skillRange       = activeSkill.GetRange();
                skillCooldown    = activeSkill.GetCoolDown();
            }


            // Iterate over the buffs
            for (int i = 1; i <= amountIncrease; ++i)
            {
                // Get the next buff
                MagicBuff nextBuff = allyGrim.PeekForward(i);

                switch (nextBuff)
                {
                // If the next buff is to acquire a skill, get that skill and set the defaults
                case (MagicBuff.SKILLACQ):
                    // We are going to temporarily give this character the skill in question to get the starting values
                    Skill gainSkill = _skillHolderRef.GiveSkill(skillContRef, allyGrim.SkillToGain);

                    skillName        = " " + SkillHolder.GetSkillName(allyGrim.SkillToGain);
                    skillDescription = SkillHolder.GetSkillDescription(allyGrim.SkillToGain);
                    skillIcon        = SkillHolder.GetSkillImage(allyGrim.SkillToGain);
                    skillDmg         = gainSkill.GetDamage();
                    skillRange       = gainSkill.GetRange();
                    skillCooldown    = gainSkill.GetCoolDown();

                    isSkillNameBuff     = true;
                    isSkillDmgBuff      = true;
                    isSkillRangeBuff    = true;
                    isSkillCooldownBuff = true;

                    // Get rid of the temporary skill
                    Destroy(gainSkill);
                    break;

                // If the next buff is just an increment, increment them
                case (MagicBuff.DMGINC):
                    ++skillDmg;
                    isSkillDmgBuff = true;
                    break;

                case (MagicBuff.RANGEINC):
                    isSkillRangeBuff = true;
                    ++skillRange;
                    break;

                case (MagicBuff.COOLLWR):
                    isSkillCooldownBuff = true;
                    --skillCooldown;
                    break;

                default:
                    Debug.Log("Unhandled MagicBuff in SkillPreviewController");
                    break;
                }
            }
            // Set the values
            _skillNameText.text        = skillName;
            _skillDescriptionText.text = skillDescription;
            _skillIconImage.sprite     = skillIcon;
            if (skillIcon == null)
            {
                _skillIconImage.color = new Color(0, 0, 0, 0);
            }
            else
            {
                _skillIconImage.color = new Color(1, 1, 1, 1);
            }
            _skillDmgText.text      = skillDmg.ToString();
            _skillRangeText.text    = skillRange.ToString();
            _skillCooldownText.text = skillCooldown.ToString();
            // Set the ones that were buffed to green
            if (isSkillNameBuff)
            {
                _skillNameText.color = CharDetailedMenuController.UpgradeTextCol;
            }
            if (isSkillDmgBuff)
            {
                _skillDmgText.color = CharDetailedMenuController.UpgradeTextCol;
            }
            if (isSkillRangeBuff)
            {
                _skillRangeText.color = CharDetailedMenuController.UpgradeTextCol;
            }
            if (isSkillCooldownBuff)
            {
                _skillCooldownText.color = CharDetailedMenuController.UpgradeTextCol;
            }
        }
    }