EliminateInfo GetEliminateResult(List <ANode> resultNode, List <ANode> unpairNode) { var eliminateInfo = new EliminateInfo(); var type = resultNode[0].Type; foreach (var o in resultNode) { unpairNode[unpairNode.IndexOf(o)] = null; switch (type) { case NodeType.ATTACK: eliminateInfo.Atk += (o as AttackNode).Atk; break; case NodeType.MANA: eliminateInfo.Mana += (o as ManaNode).Mana; break; case NodeType.ENERGY: eliminateInfo.EnergyTime += (o as EnergyNode).TimePlus; break; case NodeType.DEFENSE: eliminateInfo.Def += (o as DefenseNode).Def; break; case NodeType.CHEST: var node = (o as ChestNode); switch (node.ChestType) { case ChestType.ATK_UP: eliminateInfo.Atk += node.Attr.AtkUp; break; case ChestType.DEF_UP: eliminateInfo.Def += node.Attr.DefUp; break; case ChestType.ENERGY_UP: eliminateInfo.EnergyTime += node.Attr.EnergyUp; break; case ChestType.HP_RECOVER: eliminateInfo.HPRecover += node.Attr.HPRecover; break; } break; } } return(eliminateInfo); }
public OnNodeEliminate(EliminateInfo info) => Info = info;