public void Hit(ServerGameEntity damageEntity, ServerGameEntity withHp) { ushort parentId = damageEntity.parentWarship.entity.id.value; if (parentId == withHp.id.value) { throw new Exception("Попадание по родителю не должно считаться"); } //Отнять хп float actualHealthPoints = withHp.healthPoints.value - damageEntity.damage.value; withHp.ReplaceHealthPoints(actualHealthPoints); //Уничтожить снаряд damageEntity.isDestroyed = true; }
public void Hit(ServerGameEntity damageEntity, ServerGameEntity warshipEntity) { ushort parentId = damageEntity.parentWarship.entity.id.value; if (parentId == warshipEntity.id.value) { throw new Exception("Попадание по родителю не должно считаться"); } //Отнять хп float actualHealthPoints = warshipEntity.healthPoints.value - damageEntity.damage.value; warshipEntity.ReplaceHealthPoints(actualHealthPoints); //Пометить, если убит if (actualHealthPoints <= 0 && !warshipEntity.hasKilledBy) { int killerAccountId = damageEntity.parentWarship.entity.account.accountId; warshipEntity.AddKilledBy(killerAccountId); } //Уничтожить снаряд damageEntity.isDestroyed = true; }