string cRivalManager::rivals_plunder_pc_gold(cRival* rival) { if (g_Gold.ival() <= 0) return ""; // no gold to sieze? nothing to do. long pc_gold = g_Gold.ival(); // work out how much they take. make a note of how much we have long gold = g_Dice.random(min((long)2000, pc_gold)); if (gold < 45) gold = 45; // make sure there's at least 45 gold taken if (pc_gold < gold) gold = pc_gold; // unless the pc has less than that, in which case take the lot g_Gold.rival_raids(gold); // deduct the losses against rival raid losses rival->m_Gold += gold; // add the aount to rival coffers stringstream ss; ss << gettext("\nThey get away with ") << gold << gettext(" gold."); // format a message and store it in the string that was passed to us return ss.str(); }