Exemplo n.º 1
0
        // 接收到消息
        public void psstNotifyBattleCardPropertyUserCmd(stNotifyBattleCardPropertyUserCmd msg)
        {
            Ctx.m_instance.m_logSys.fightLog("[Fight] 接收到攻击数据");

            m_curParseRound.psstNotifyBattleCardPropertyUserCmd(msg);
            //nextOneAttactRound();
        }
Exemplo n.º 2
0
        override public void initItemData(BeingEntity att, BeingEntity def, stNotifyBattleCardPropertyUserCmd msg)
        {
            base.initItemData(att, def, msg);

            m_being = att;

            Ctx.m_instance.m_logSys.fightLog(string.Format("[Fight] 攻击者攻击前属性值 {0}", msg.m_origAttObject.log()));
            Ctx.m_instance.m_logSys.fightLog(string.Format("[Fight] 攻击者攻击后属性值 {0}", 0));
        }
Exemplo n.º 3
0
        // 技能攻击攻击者不会伤血 m_damage = 0
        override public void initItemData(BeingEntity att, BeingEntity def, stNotifyBattleCardPropertyUserCmd msg)
        {
            base.initItemData(att, def, msg);

            skillId = msg.dwMagicType;
            foreach(var item in msg.defList)
            {
                m_hurtIdList.Add(item.qwThisID);
            }
        }
Exemplo n.º 4
0
        // 技能攻击攻击者不会伤血 m_damage = 0
        override public void initItemData(SceneCardBase att, SceneCardBase def, stNotifyBattleCardPropertyUserCmd msg)
        {
            base.initItemData(att, def, msg);

            skillId = msg.dwMagicType;
            foreach(var item in msg.defList)
            {
                m_hurtIdList.Add(item.qwThisID);
            }
            m_attThisId = att.sceneCardItem.svrCard.qwThisID;
        }
Exemplo n.º 5
0
        override public void initItemData(BeingEntity att, BeingEntity def, stNotifyBattleCardPropertyUserCmd msg)
        {
            base.initItemData(att, def, msg);

            // 普通被击伤血是对方的伤血值,不是血量的减少
            m_bDamage = true;
            if (m_bDamage)
            {
                m_damage = 10;
            }

            Ctx.m_instance.m_logSys.fightLog(string.Format("[Fight] 被击者掉血 {0}", m_damage));

            m_hurtEffectId = 7;         // 普通被击,根据攻击力播放不同的特效,并且播放掉血特效
        }
Exemplo n.º 6
0
        override public void initItemData(SceneCardBase att, SceneCardBase def, stNotifyBattleCardPropertyUserCmd msg)
        {
            base.initItemData(att, def, msg);

            // 普通被击伤血是对方的伤血值,不是血量的减少
            m_bDamage = att.sceneCardItem.svrCard.damage > 0;
            if (m_bDamage)
            {
                m_damage = (int)att.sceneCardItem.svrCard.damage;
            }

            Ctx.m_instance.m_logSys.fightLog(string.Format("[Fight] 被击者掉血 {0}", m_damage));

            m_hurtEffectId = 7;         // 普通被击,根据攻击力播放不同的特效,并且播放掉血特效
        }
Exemplo n.º 7
0
        override public void initItemData(BeingEntity att, BeingEntity def, stNotifyBattleCardPropertyUserCmd msg)
        {
            base.initItemData(att, def, msg);

            skillId = msg.dwMagicType;
            this.delayTime = m_skillTableItem.m_effectMoveTime;

            // 技能被击伤血是血量值差
            m_bDamage = true;
            if (m_bDamage)
            {
                m_damage = 10;
            }

            Ctx.m_instance.m_logSys.fightLog(string.Format("[Fight] 被击者掉血 {0}", m_damage));
        }
Exemplo n.º 8
0
        override public void initItemData(BeingEntity att, BeingEntity def, stNotifyBattleCardPropertyUserCmd msg)
        {
            base.initItemData(att, def, msg);

            // 播放 Fly 数字,攻击者和被击者都有可能伤血,播放掉血数字
            // 普通攻击者掉血是被击者的伤血量
            m_bDamage = true;
            if (m_bDamage)        // 攻击力可能为 0 
            {
                m_damage = 11;
            }

            Ctx.m_instance.m_logSys.fightLog(string.Format("[Fight] 攻击者掉血 {0}", m_damage));

            m_hurterId = 11;
            m_attackEffectId = 0; // 普通攻击没有攻击特效
        }
Exemplo n.º 9
0
        override public void initItemData(SceneCardBase att, SceneCardBase def, stNotifyBattleCardPropertyUserCmd msg)
        {
            base.initItemData(att, def, msg);

            // 播放 Fly 数字,攻击者和被击者都有可能伤血,播放掉血数字
            // 普通攻击者掉血是被击者的伤血量
            m_bDamage = def.sceneCardItem.svrCard.damage > 0;
            if (m_bDamage)        // 攻击力可能为 0 
            {
                m_damage = (int)def.sceneCardItem.svrCard.damage;
            }

            Ctx.m_instance.m_logSys.fightLog(string.Format("[Fight] 攻击者掉血 {0}", m_damage));

            m_hurterId = def.sceneCardItem.svrCard.qwThisID;
            m_attackEffectId = 0; // 普通攻击没有攻击特效
        }
Exemplo n.º 10
0
        override public void initItemData(SceneCardBase att, SceneCardBase def, stNotifyBattleCardPropertyUserCmd msg)
        {
            base.initItemData(att, def, msg);

            m_svrCard = def.sceneCardItem.svrCard;  // 保存这次被击的属性,可能这个会被后面的给改掉

            skillId = msg.dwMagicType;
            this.delayTime = m_skillTableItem.m_effectMoveTime;

            // 技能被击伤血是血量值差
            m_bDamage = hasDamageHp(msg.m_origDefObject, def.sceneCardItem.svrCard);
            if (m_bDamage)
            {
                m_damage = (int)(msg.m_origDefObject.hp - def.sceneCardItem.svrCard.hp);
            }

            Ctx.m_instance.m_logSys.fightLog(string.Format("[Fight] 被击者掉血 {0}", m_damage));
        }
Exemplo n.º 11
0
        override public void initItemData(SceneCardBase att, SceneCardBase def, stNotifyBattleCardPropertyUserCmd msg)
        {
            base.initItemData(att, def, msg);

            m_card = def;
            m_svrCard = def.sceneCardItem.svrCard;  // 保存这次被击的属性,可能这个会被后面的给改掉

            Ctx.m_instance.m_logSys.fightLog(string.Format("[Fight] 被击者被击前属性值 {0}", msg.m_origDefObject.log()));
            Ctx.m_instance.m_logSys.fightLog(string.Format("[Fight] 被击者被击后属性值 {0}", def.sceneCardItem.svrCard.log()));
            
            // 回血统一接口
            m_bAddHp = hasAddHp(msg.m_origDefObject, def.sceneCardItem.svrCard);
            m_addHp = (int)(def.sceneCardItem.svrCard.hp - msg.m_origDefObject.hp);

            if(m_bAddHp)
            {
                Ctx.m_instance.m_logSys.fightLog(string.Format("[Fight] 被击者加血 {0}", m_addHp));
            }

            updateStateChange(msg.m_origDefObject.state, def.sceneCardItem.svrCard.state);
        }
Exemplo n.º 12
0
        // 普通攻击,必然造成伤害
        protected void commonAttack(stNotifyBattleCardPropertyUserCmd msg)
        {
            Ctx.m_instance.m_logSys.fightLog("[Fight] 开始一次普通攻击");

            SceneCardBase att = null;
            SceneCardBase def = null;

            if (!attackCheck(msg.A_object.qwThisID, ref att) || !attackCheck(msg.defList[0].qwThisID, ref def))
            {
                Ctx.m_instance.m_logSys.fightLog("[Fight] 普通攻击攻击失败");
            }
            else
            {
                msg.m_origAttObject = att.sceneCardItem.svrCard;
                msg.m_origDefObject = def.sceneCardItem.svrCard;

                att.sceneCardItem.svrCard = msg.A_object;
                def.sceneCardItem.svrCard = msg.defList[0];

                startAtt(att, def, EAttackType.eCommon, msg);
                attackTo(att, def, EAttackType.eCommon, msg);
            }
        }
Exemplo n.º 13
0
        // 法术攻击有攻击木目标,如果不用选择攻击目标的法术攻击,服务器发送过来的攻击者是释放一边的英雄,技能攻击可能给自己回血,也可能给对方伤血
        protected void skillAttack(stNotifyBattleCardPropertyUserCmd msg)
        {
            Ctx.m_instance.m_logSys.fightLog("[Fight] 开始一次技能攻击");

            SceneCardBase att = null;
            SceneCardBase def = null;

            if (!attackCheck(msg.A_object.qwThisID, ref att))
            {
                Ctx.m_instance.m_logSys.fightLog("[Fight] 技能攻击攻击者无效");
            }

            if (att == null || att.sceneCardItem == null)
            {
                Ctx.m_instance.m_logSys.fightLog(string.Format("[Fight] 技能攻击攻击者卡牌 {0} 数据为null", att.getDesc()));
            }

            msg.m_origAttObject = att.sceneCardItem.svrCard;
            att.sceneCardItem.svrCard = msg.A_object;

            startAtt(att, null, EAttackType.eSkill, msg);

            foreach (var svrCard in msg.defList)
            {
                if (!attackCheck(svrCard.qwThisID, ref def))
                {
                    Ctx.m_instance.m_logSys.fightLog("[Fight] 技能攻击被击者无效");
                }
                else
                {
                    msg.m_origDefObject = def.sceneCardItem.svrCard;
                    def.sceneCardItem.svrCard = svrCard;

                    attackTo(att, def, EAttackType.eSkill, msg);
                }
            }
        }
Exemplo n.º 14
0
        virtual public void psstNotifyBattleCardPropertyUserCmd(stNotifyBattleCardPropertyUserCmd msg)
        {

        }
Exemplo n.º 15
0
        override public void initItemData(BeingEntity att, BeingEntity def, stNotifyBattleCardPropertyUserCmd msg)
        {
            base.initItemData(att, def, msg);

            m_being = def;
        }
Exemplo n.º 16
0
        // 攻击者攻击被击者
        protected void attackTo(SceneCardBase att, SceneCardBase def, EAttackType attackType, stNotifyBattleCardPropertyUserCmd msg)
        {
            if (att != null && def != null)
            {
                Ctx.m_instance.m_logSys.fightLog(string.Format("[Fight] 被击者详细信息 {0}", def.getDesc()));
                // 受伤
                HurtItemBase hurtItem = null;
                hurtItem = def.fightData.hurtData.createItem((EHurtType)attackType);
                hurtItem.initItemData(att, def, msg);
                def.fightData.hurtData.allHurtExecEndDisp.addEventHandle(onOneAttackAndHurtEndHandle);

                m_hurtList.Add(def.fightData.hurtData);
            }
        }
Exemplo n.º 17
0
 // 生成攻击数据,普通攻击 def 是有值的,技能攻击没有值
 protected void startAtt(SceneCardBase att, SceneCardBase def, EAttackType attackType, stNotifyBattleCardPropertyUserCmd msg)
 {
     if (att != null)
     {
         Ctx.m_instance.m_logSys.fightLog(string.Format("[Fight] 攻击者详细信息 {0}", att.getDesc()));
         // 攻击
         AttackItemBase attItem = null;
         attItem = att.fightData.attackData.createItem(attackType);
         attItem.initItemData(att, def, msg);
     }
 }
Exemplo n.º 18
0
        // 初始化数据
        virtual public void initItemData(BeingEntity att, BeingEntity def, stNotifyBattleCardPropertyUserCmd msg)
        {

        }
Exemplo n.º 19
0
 override public void psstNotifyBattleCardPropertyUserCmd(stNotifyBattleCardPropertyUserCmd msg)
 {
     m_attCmd = msg;
 }
Exemplo n.º 20
0
        // 攻击返回
        protected void psstNotifyBattleCardPropertyUserCmd(ByteBuffer bu)
        {
            stNotifyBattleCardPropertyUserCmd cmd = new stNotifyBattleCardPropertyUserCmd();
            cmd.derialize(bu);

            UISceneDZ uiSceneDZ = Ctx.m_instance.m_uiSceneMgr.getSceneUI<UISceneDZ>(UISceneFormID.eUISceneDZ);
            if (uiSceneDZ != null && uiSceneDZ.isVisible())
            {
                uiSceneDZ.psstNotifyBattleCardPropertyUserCmd(cmd);
            }
        }
Exemplo n.º 21
0
 public void psstNotifyBattleCardPropertyUserCmd(stNotifyBattleCardPropertyUserCmd msg)
 {
     m_sceneDZData.m_fightMsgMgr.psstNotifyBattleCardPropertyUserCmd(msg);
 }
Exemplo n.º 22
0
        // 初始化数据
        virtual public void initItemData(SceneCardBase att, SceneCardBase def, stNotifyBattleCardPropertyUserCmd msg)
        {

        }
Exemplo n.º 23
0
        public void psstNotifyBattleCardPropertyUserCmd(stNotifyBattleCardPropertyUserCmd msg)
        {
            m_bHasFightData = true;
            FightRoundItemBase attItem = null;
            if (0 == msg.type)      // 攻击
            {
                attItem = new FightRoundAttItem(m_sceneDZData);
            }
            else if (1 == msg.type)     // 召唤
            {
                attItem = new FightRoundSummonItem(m_sceneDZData);
            }
            else if (2 == msg.type)     // 抽牌
            {
                attItem = new FightRoundGetItem(m_sceneDZData);
            }

            attItem.addOneAttackAndHurtEndHandle(onOneAttackAndHurtEndHandle);
            attItem.psstNotifyBattleCardPropertyUserCmd(msg);
            m_cacheList.Add(attItem);
            //nextOneAttact();
        }