// 执行删除 override public void processOneAttack() { Ctx.m_instance.m_logSys.fightLog(string.Format("[Fight] 开始处理死亡 {0}", m_card.getDesc())); // 死亡 DieItem dieItem = null; dieItem = m_card.fightData.hurtData.createItem(EHurtType.eDie) as DieItem; dieItem.initDieItemData(m_card, m_msg); m_card.fightData.hurtData.allHurtExecEndDisp.uniqueId = UniqueId.DEBUG_ID_1; m_card.fightData.hurtData.allHurtExecEndDisp.addEventHandle(onDieEndHandle); }
// 攻击者攻击被击者 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); } }
// 生成攻击数据,普通攻击 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); } }
// 法术攻击有攻击木目标,如果不用选择攻击目标的法术攻击,服务器发送过来的攻击者是释放一边的英雄,技能攻击可能给自己回血,也可能给对方伤血 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); } } }