File tree Expand file tree Collapse file tree 1 file changed +12
-6
lines changed Expand file tree Collapse file tree 1 file changed +12
-6
lines changed Original file line number Diff line number Diff line change @@ -1444,12 +1444,18 @@ void nobMilitary::HitOfCatapultStone()
14441444 // Ein Soldat weniger, falls es noch welche gibt
14451445 if (!troops.empty ())
14461446 {
1447- std::unique_ptr<nofPassiveSoldier> soldier = std::move (*troops.begin ());
1448- helpers::pop_front (troops);
1449- // Shortcut for Die(): No need to remove from world as it is inside and we can delete it right away
1450- soldier->RemoveFromInventory ();
1451- soldier->LeftBuilding ();
1452- soldier->Destroy ();
1447+ // 30 percent chance to not die if the soldier has an armor
1448+ bool die = !(*troops.begin ())->HasArmor () || (RANDOM_RAND (99 ) < 70 );
1449+ if (die)
1450+ {
1451+ std::unique_ptr<nofPassiveSoldier> soldier = std::move (*troops.begin ());
1452+ helpers::pop_front (troops);
1453+ // Shortcut for Die(): No need to remove from world as it is inside and we can delete it right away
1454+ soldier->RemoveFromInventory ();
1455+ soldier->LeftBuilding ();
1456+ soldier->Destroy ();
1457+ } else
1458+ (*troops.begin ())->SetArmor (false );
14531459 }
14541460
14551461 // If there are troops left, order some more, else this will be destroyed
You can’t perform that action at this time.
0 commit comments