private static int getNewValue(int currentVal, CardAttributes item) { int newValue = currentVal + item.value; if (newValue < 0) { newValue = 0; if (item.attributes == Attributes.DiamondMines || item.attributes == Attributes.Colliery || item.attributes == Attributes.Menagerie) { newValue = 1; } } return(newValue); }
public static void ApplyDirectDamage(CardAttributes item, Player target) { item.value = item.value > 0 ? -item.value : item.value; //делаю число отрицательным, необходимо в базе переделать все эти значения на отрицательные int remainingDamage = target.PlayerParams[Attributes.Wall] + item.value; target.PlayerParams[Attributes.Wall] = getNewValue(target.PlayerParams[Attributes.Wall], item); if (remainingDamage < 0) { CardAttributes newItem = new CardAttributes() { attributes = Attributes.Tower, value = remainingDamage }; target.PlayerParams[Attributes.Tower] = getNewValue(target.PlayerParams[Attributes.Tower], newItem); } }