public static void analyseBuff_Effect(Buff buff, eBuffEvent buff_event) { if (buff.my_buff_info.my_event != buff_event) { if (buff.my_buff_info.my_event == eBuffEvent.Buff_Exist && (buff_event == eBuffEvent.Buff_Add || buff_event == eBuffEvent.Buff_Remove) ) { //如果是持续效果,则在增加和删除时触发效果 } else if (buff.my_buff_info.my_event == eBuffEvent.Phase_Prepare && buff_event == eBuffEvent.Buff_Add) { //如果是每回合造成一次效果的,会在添加时触发效果 } else { return; } } // continue switch (buff.my_buff_info.effect) { case eBuff_Effect.DOT: if (buff.owner_ch != null) { DamageInfo new_dmg = new DamageInfo(buff.my_buff_info.values[0]); buff.owner_ch.on_damage(new_dmg); } break; case eBuff_Effect.Move_BAN: //无 //经过无数坑踩过后,决定这边在添加时做逻辑处理,仅显示表现 // if (buff.owner_chc != null && (buff_event == eBuffEvent.Buff_Add/* || buff_event == eBuffEvent.Phase_Prepare*/)) // { // BK_AnimEvts av = BKTools.addVFX(buff.owner_chc.Main.Instance.bg_unmovable_start); // av.transform.position = buff.owner_chc.transform.position + new Vector3(0, 0, -0.8f); // } // if (buff.owner_chc != null) // { // if (buff_event == eBuffEvent.Buff_Add) // { // switch (buff.my_buff_info.my_TargetBelong) // { // case eSkill_TargetBelong.Both_Player: // buff.owner_chc.setMoveBan(ePlayer.Max); // break; // case eSkill_TargetBelong.Opponent: // ePlayer target = ePlayer.Player1; // if (buff.stand_side == ePlayer.Player1) // { // target = ePlayer.Player2; // } // buff.owner_chc.setMoveBan(target); // break; // case eSkill_TargetBelong.Teammate: // buff.owner_chc.setMoveBan(ePlayer.Max); // break; // default: // break; // } // // } else if (buff_event == eBuffEvent.Buff_Remove) // { // buff.owner_chc.setMoveBan(ePlayer.None); // } // } break; case eBuff_Effect.Attack_BAN: break; case eBuff_Effect.Halo: List <ChessContainer> list = BKTools.GetSkillScope(buff, buff.owner.getContainer()); foreach (ChessContainer cc in list) { if (cc.my_chess != null) { //检查目标类型是否符合 if (BKTools.IsTargetFit(buff.my_buff_info.my_TargetBelong, cc.my_chess.belong, buff.stand_side)) { foreach (int id in buff.my_buff_info.values) { cc.my_chess.AddBuff(new BuffAdder(buff.stand_side, id)); Debug.Log("哎呀~~~又加了一个 card_id:" + cc.my_chess.attribute.card_id); } } } if ((int)buff.my_buff_info.my_TargetBelong > 2) // 3、4、5地面效果 { foreach (int id in buff.my_buff_info.values) { cc.AddBuff(new BuffAdder(buff.stand_side, id)); Debug.Log("哎呀~~~又加了一个格子_id:" + cc.number); } // switch (buff.my_buff_info.my_TargetBelong) // { // case eSkill_TargetBelong.地面中立: // cc.B_unmovable = true; // break; // default: // Debug.Log("warning 填写的BUFF 目标类型尚未实现,填你妈逼。 buff id : " + buff.my_buff_info.id); // break; // } } } break; default: Debug.Log("buff效果ID错误。buff id-" + buff.my_buff_info.id); break; } }