それか武器を持ってないキャラで起こるなら武器を持っていないユニットを考慮していない可能性もあるから
If(weapon == null)みたいな記述がちゃんと入っているかどうか確認してみろ