Complete.Org: Mailing Lists: Archives: freeciv-dev: March 2005:
[Freeciv-Dev] (PR#12638) Remove reputation from the game
Home

[Freeciv-Dev] (PR#12638) Remove reputation from the game

[Top] [All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index] [Thread Index]
Subject: [Freeciv-Dev] (PR#12638) Remove reputation from the game
From: "Per I. Mathisen" <per@xxxxxxxxxxx>
Date: Fri, 25 Mar 2005 06:44:56 -0800
Reply-to: bugs@xxxxxxxxxxx

<URL: http://bugs.freeciv.org/Ticket/Display.html?id=12638 >

I have always felt that reputation was a dangling game mechanic without
any real foundation and not sufficient reason to exist. It takes up
valuable real estate in the already overcrowded player dialog. We should
instead simplify and focus on improving the core game concepts. So this
patch removes reputation from the game completely.

As a consequence, I had to make a choice on what to do with the senate.
Currently it will throw Republic/Democracy into anarchy if you declare war
without due reason and your reputation is low enough. With this patch, it
will always throw your Republic/Democracy into anarchy if you declare war
without due reason. That should balance Republic and Democracy a bit (and
make Statue of Liberty better).

Comments... flames... ridicule... all welcome :)

  - Per

Index: ai/advdiplomacy.c
===================================================================
RCS file: /home/freeciv/CVS/freeciv/ai/advdiplomacy.c,v
retrieving revision 1.72
diff -u -r1.72 advdiplomacy.c
--- ai/advdiplomacy.c   18 Mar 2005 11:26:23 -0000      1.72
+++ ai/advdiplomacy.c   25 Mar 2005 14:35:47 -0000
@@ -323,19 +323,6 @@
       break;
     }
 
-    /* Check if we can trust this guy. If we have to crash spacerace leader,
-     * we don't care, though. */
-    if (ai->diplomacy.acceptable_reputation > aplayer->reputation
-        && ai->diplomacy.strategy != WIN_CAPITAL
-       && (pclause->type != CLAUSE_CEASEFIRE
-           || ai->diplomacy.acceptable_reputation_for_ceasefire > 
-              aplayer->reputation)) {
-      notify(aplayer, _("*%s (AI)* Begone scoundrel, we all know that"
-             " you cannot be trusted!"), pplayer->name);
-      worth = -BIG_NUMBER;
-      break;
-    }
-
     /* Reduce treaty level?? */
     {
       enum diplstate_type ds = pplayer_get_diplstate(pplayer, aplayer)->type;
@@ -1127,8 +1114,7 @@
   /*** If we are greviously insulted, go to war immediately. ***/
 
   players_iterate(aplayer) {
-    if (ai->diplomacy.acceptable_reputation > aplayer->reputation
-        && pplayer->ai.love[aplayer->player_no] < 0
+    if (pplayer->ai.love[aplayer->player_no] < 0
         && pplayer->diplstates[aplayer->player_no].has_reason_to_cancel >= 2) {
       DIPLO_LOG(LOG_DIPL2, pplayer, ai, "Declaring war on %s in revenge",
                  target->name);
Index: ai/aicity.c
===================================================================
RCS file: /home/freeciv/CVS/freeciv/ai/aicity.c,v
retrieving revision 1.206
diff -u -r1.206 aicity.c
--- ai/aicity.c 24 Mar 2005 16:41:40 -0000      1.206
+++ ai/aicity.c 25 Mar 2005 14:35:47 -0000
@@ -559,11 +559,6 @@
                - game.incite_cost.unit_factor * 5, 0);
          }
          break;
-       case EFT_REGEN_REPUTATION:
-         v += (GAME_MAX_REPUTATION - pplayer->reputation) * 50 / 
-                 GAME_MAX_REPUTATION + 
-               amount * 4;
-         break;
        case EFT_GAIN_AI_LOVE:
          players_iterate(aplayer) {
            if (aplayer->ai.control) {
Index: ai/aidata.c
===================================================================
RCS file: /home/freeciv/CVS/freeciv/ai/aidata.c,v
retrieving revision 1.61
diff -u -r1.61 aidata.c
--- ai/aidata.c 21 Mar 2005 14:10:53 -0000      1.61
+++ ai/aidata.c 25 Mar 2005 14:35:47 -0000
@@ -555,15 +555,6 @@
     ai_diplomacy_begin_new_phase(pplayer, ai);
   }
 
-  /* Question: What can we accept as the reputation of a player before
-   * we start taking action to prevent us from being suckered?
-   * Answer: Very little. */
-  ai->diplomacy.acceptable_reputation =
-           GAME_DEFAULT_REPUTATION -
-           GAME_DEFAULT_REPUTATION / 4;
-  ai->diplomacy.acceptable_reputation_for_ceasefire =
-           GAME_DEFAULT_REPUTATION / 3;
-
   /* Set per-player variables. We must set all players, since players 
    * can be created during a turn, and we don't want those to have 
    * invalid values. */
Index: ai/aidata.h
===================================================================
RCS file: /home/freeciv/CVS/freeciv/ai/aidata.h,v
retrieving revision 1.27
diff -u -r1.27 aidata.h
--- ai/aidata.h 25 Mar 2005 10:20:48 -0000      1.27
+++ ai/aidata.h 25 Mar 2005 14:35:47 -0000
@@ -83,8 +83,6 @@
 
   /* AI diplomacy and opinions on other players */
   struct {
-    int acceptable_reputation;
-    int acceptable_reputation_for_ceasefire;
     struct ai_dip_intel player_intel[MAX_NUM_PLAYERS + MAX_NUM_BARBARIANS];
     enum winning_strategy strategy;
     int timer; /* pursue our goals with some stubbornness, in turns */
Index: ai/aitools.c
===================================================================
RCS file: /home/freeciv/CVS/freeciv/ai/aitools.c,v
retrieving revision 1.142
diff -u -r1.142 aitools.c
--- ai/aitools.c        21 Mar 2005 12:28:00 -0000      1.142
+++ ai/aitools.c        25 Mar 2005 14:35:48 -0000
@@ -110,9 +110,9 @@
 
 /**********************************************************************
   There are some signs that a player might be dangerous: We are at 
-  war with him, he has lousy reputation, he has done lots of ignoble 
-  things to us, he is an ally of one of our enemies (a ticking bomb
-  to be sure), or he is our war target.
+  war with him, he has done lots of ignoble things to us, he is an 
+  ally of one of our enemies (a ticking bomb to be sure), or he is 
+  our war target.
 ***********************************************************************/
 bool is_player_dangerous(struct player *pplayer, struct player *aplayer)
 {
@@ -120,13 +120,10 @@
   struct ai_dip_intel *adip = &ai->diplomacy.player_intel[aplayer->player_no];
   int reason = pplayer->diplstates[aplayer->player_no].has_reason_to_cancel;
 
-  /* Have to check if aplayer == pplayer explicitly because our reputation
-   * can be so low that we'd fear being stabbed in the back by ourselves */ 
   return (pplayer != aplayer
           && (pplayers_at_war(pplayer, aplayer)
               || ai->diplomacy.target == aplayer
               || reason != 0
-              || ai->diplomacy.acceptable_reputation > aplayer->reputation
               || adip->is_allied_with_enemy));
 }
 
Index: client/helpdata.c
===================================================================
RCS file: /home/freeciv/CVS/freeciv/client/helpdata.c,v
retrieving revision 1.96
diff -u -r1.96 helpdata.c
--- client/helpdata.c   14 Mar 2005 20:26:24 -0000      1.96
+++ client/helpdata.c   25 Mar 2005 14:35:48 -0000
@@ -1379,9 +1379,9 @@
   }
   if (government_has_flag(gov, G_HAS_SENATE)) {
     sprintf(buf + strlen(buf),
-           _("* Has a senate that may throw "
-             "the government into anarchy if war is declared while "
-             "reputation is low.\n"));
+           _("* Has a senate that will throw "
+             "the government into anarchy if war is declared without "
+             "good reason.\n"));
   }
   if (government_has_flag(gov, G_NO_UNHAPPY_CITIZENS)) {
     sprintf(buf + strlen(buf), _("* Has no unhappy citizens.\n"));
Index: client/packhand.c
===================================================================
RCS file: /home/freeciv/CVS/freeciv/client/packhand.c,v
retrieving revision 1.480
diff -u -r1.480 packhand.c
--- client/packhand.c   24 Mar 2005 16:41:41 -0000      1.480
+++ client/packhand.c   25 Mar 2005 14:35:48 -0000
@@ -1496,8 +1496,6 @@
     pplayer->diplstates[i].has_reason_to_cancel =
       pinfo->diplstates[i].has_reason_to_cancel;
   }
-  pplayer->reputation = pinfo->reputation;
-
   pplayer->is_connected = pinfo->is_connected;
 
   for (i = 0; i < B_LAST/*game.num_impr_types*/; i++) {
Index: client/plrdlg_common.c
===================================================================
RCS file: /home/freeciv/CVS/freeciv/client/plrdlg_common.c,v
retrieving revision 1.17
diff -u -r1.17 plrdlg_common.c
--- client/plrdlg_common.c      23 Feb 2005 03:34:05 -0000      1.17
+++ client/plrdlg_common.c      25 Mar 2005 14:35:48 -0000
@@ -165,14 +165,6 @@
 }
 
 /******************************************************************
-  Returns a translated string telling the player's reputation.
-*******************************************************************/
-static const char *col_reputation(const struct player *player)
-{
-  return reputation_text(player->reputation);
-}
-
-/******************************************************************
   Returns a translated string giving the player's "state".
 
   FIXME: These terms aren't very intuitive for new players.
@@ -233,7 +225,6 @@
   {TRUE, COL_TEXT, N_("Embassy"), col_embassy, NULL, "embassy"},
   {TRUE, COL_TEXT, N_("Dipl.State"), col_diplstate, NULL, "diplstate"},
   {TRUE, COL_TEXT, N_("Vision"), col_vision, NULL, "vision"},
-  {TRUE, COL_TEXT, N_("Reputation"), col_reputation, NULL, "reputation"},
   {TRUE, COL_TEXT, N_("State"), col_state, NULL, "state"},
   {FALSE, COL_TEXT, N_("?Player_dlg:Host"), col_host, NULL, "host"},
   {FALSE, COL_RIGHT_TEXT, N_("?Player_dlg:Idle"), col_idle, NULL, "idle"},
Index: common/capstr.c
===================================================================
RCS file: /home/freeciv/CVS/freeciv/common/capstr.c,v
retrieving revision 1.224
diff -u -r1.224 capstr.c
--- common/capstr.c     24 Mar 2005 16:41:41 -0000      1.224
+++ common/capstr.c     25 Mar 2005 14:35:49 -0000
@@ -82,7 +82,7 @@
  *     as long as possible.  We want to maintain network compatibility with
  *     the stable branch for as long as possible.
  */
-#define CAPABILITY "+Freeciv.Devel.2004.Mar.23"
+#define CAPABILITY "+Freeciv.Devel.2005.Mar.25"
 
 void init_our_capability(void)
 {
Index: common/effects.c
===================================================================
RCS file: /home/freeciv/CVS/freeciv/common/effects.c,v
retrieving revision 1.24
diff -u -r1.24 effects.c
--- common/effects.c    9 Mar 2005 18:37:52 -0000       1.24
+++ common/effects.c    25 Mar 2005 14:35:49 -0000
@@ -116,7 +116,6 @@
   "Air_Defend",
   "Missile_Defend",
   "No_Incite",
-  "Regen_Reputation",
   "Gain_AI_Love"
 };
 
Index: common/effects.h
===================================================================
RCS file: /home/freeciv/CVS/freeciv/common/effects.h,v
retrieving revision 1.14
diff -u -r1.14 effects.h
--- common/effects.h    2 Feb 2005 02:44:31 -0000       1.14
+++ common/effects.h    25 Mar 2005 14:35:49 -0000
@@ -103,7 +103,6 @@
   EFT_AIR_DEFEND,
   EFT_MISSILE_DEFEND,
   EFT_NO_INCITE,
-  EFT_REGEN_REPUTATION,
   EFT_GAIN_AI_LOVE,
   EFT_LAST     /* keep this last */
 };
Index: common/game.h
===================================================================
RCS file: /home/freeciv/CVS/freeciv/common/game.h,v
retrieving revision 1.179
diff -u -r1.179 game.h
--- common/game.h       24 Mar 2005 16:41:41 -0000      1.179
+++ common/game.h       25 Mar 2005 14:35:49 -0000
@@ -498,10 +498,6 @@
 #define GAME_MAX_COMPRESS_LEVEL     9
 #define GAME_NO_COMPRESS_LEVEL      0
 
-#define GAME_DEFAULT_REPUTATION 1000
-#define GAME_MAX_REPUTATION 1000
-#define GAME_REPUTATION_INCR 2
-
 #define GAME_DEFAULT_WATCHTOWER_EXTRA_VISION 2
 #define GAME_MIN_WATCHTOWER_EXTRA_VISION 0
 #define GAME_MAX_WATCHTOWER_EXTRA_VISION 4
Index: common/packets.def
===================================================================
RCS file: /home/freeciv/CVS/freeciv/common/packets.def,v
retrieving revision 1.98
diff -u -r1.98 packets.def
--- common/packets.def  24 Mar 2005 16:41:41 -0000      1.98
+++ common/packets.def  25 Mar 2005 14:35:49 -0000
@@ -563,7 +563,6 @@
   TURN nturns_idle;
   BOOL is_alive;
 
-  UINT32 reputation;
   diplstate(struct player_diplstate) diplstates[MAX_NUM_PLAYERS + 
MAX_NUM_BARBARIANS];
   
   GOLD gold;
Index: common/player.c
===================================================================
RCS file: /home/freeciv/CVS/freeciv/common/player.c,v
retrieving revision 1.170
diff -u -r1.170 player.c
--- common/player.c     18 Mar 2005 11:26:24 -0000      1.170
+++ common/player.c     25 Mar 2005 14:35:52 -0000
@@ -120,7 +120,6 @@
   plr->is_alive=TRUE;
   plr->is_dying = FALSE;
   plr->embassy=0;
-  plr->reputation=GAME_DEFAULT_REPUTATION;
   for(i = 0; i < MAX_NUM_PLAYERS + MAX_NUM_BARBARIANS; i++) {
     plr->diplstates[i].type = DS_NO_CONTACT;
     plr->diplstates[i].has_reason_to_cancel = 0;
@@ -577,31 +576,6 @@
 }
 
 /**************************************************************************
-Return a reputation level as a human-readable string
-**************************************************************************/
-const char *reputation_text(const int rep)
-{
-  if (rep == -1)
-    return "-";
-  else if (rep > GAME_MAX_REPUTATION * 0.95)
-    return _("Spotless");
-  else if (rep > GAME_MAX_REPUTATION * 0.85)
-    return _("Excellent");
-  else if (rep > GAME_MAX_REPUTATION * 0.75)
-    return _("Honorable");
-  else if (rep > GAME_MAX_REPUTATION * 0.55)
-    return _("Questionable");
-  else if (rep > GAME_MAX_REPUTATION * 0.30)
-    return _("Dishonorable");
-  else if (rep > GAME_MAX_REPUTATION * 0.15)
-    return _("Poor");
-  else if (rep > GAME_MAX_REPUTATION * 0.07)
-    return _("Despicable");
-  else
-    return _("Atrocious");
-}
-
-/**************************************************************************
   Return a diplomatic state as a human-readable string
 **************************************************************************/
 const char *diplstate_text(const enum diplstate_type type)
Index: common/player.h
===================================================================
RCS file: /home/freeciv/CVS/freeciv/common/player.h,v
retrieving revision 1.142
diff -u -r1.142 player.h
--- common/player.h     18 Mar 2005 11:26:24 -0000      1.142
+++ common/player.h     25 Mar 2005 14:35:52 -0000
@@ -200,7 +200,6 @@
 
   bool capital; /* used to give player init_buildings in first city. */
   int embassy;
-  int reputation;
   struct player_diplstate diplstates[MAX_NUM_PLAYERS + MAX_NUM_BARBARIANS];
   int city_style;
   struct unit_list *units;
@@ -275,7 +274,6 @@
 bool ai_handicap(const struct player *pplayer, enum handicap_type htype);
 bool ai_fuzzy(const struct player *pplayer, bool normal_decision);
 
-const char *reputation_text(const int rep);
 const char *diplstate_text(const enum diplstate_type type);
 const char *love_text(const int love);
 
Index: server/diplhand.h
===================================================================
RCS file: /home/freeciv/CVS/freeciv/server/diplhand.h,v
retrieving revision 1.11
diff -u -r1.11 diplhand.h
--- server/diplhand.h   3 Sep 2004 04:22:37 -0000       1.11
+++ server/diplhand.h   25 Mar 2005 14:35:52 -0000
@@ -13,8 +13,6 @@
 #ifndef FC__DIPLHAND_H
 #define FC__DIPLHAND_H
 
-#define REPUTATION_LOSS_NUKE (GAME_MAX_REPUTATION * 0.03)
-
 #include "fc_types.h"
 
 #include "hand_gen.h"
Index: server/diplomats.c
===================================================================
RCS file: /home/freeciv/CVS/freeciv/server/diplomats.c,v
retrieving revision 1.70
diff -u -r1.70 diplomats.c
--- server/diplomats.c  21 Mar 2005 12:21:28 -0000      1.70
+++ server/diplomats.c  25 Mar 2005 14:35:52 -0000
@@ -1312,11 +1312,7 @@
     die("No victim in call to maybe_cause_incident()");
   }
 
-  if (!pplayers_at_war(offender, victim_player) &&
-      (myrand(GAME_MAX_REPUTATION) - offender->reputation >
-       GAME_MAX_REPUTATION/2 - victim_player->reputation)) {
-    enum diplstate_type ds = pplayer_get_diplstate(offender, 
victim_player)->type;
-    int punishment = 0;
+  if (!pplayers_at_war(offender, victim_player)) {
     switch (action) {
     case DIPLOMAT_BRIBE:
       notify_player_ex(offender, victim_tile, E_DIPLOMATIC_INCIDENT,
@@ -1361,29 +1357,7 @@
         get inside this "if" */
       die("Bug in maybe_cause_incident()");
     }
-    switch (ds) {
-    case DS_WAR:
-    case DS_NO_CONTACT:
-      freelog(LOG_VERBOSE,"Trying to cause an incident between players at 
war");
-      punishment = 0;
-      break;
-    case DS_NEUTRAL:
-      punishment = GAME_MAX_REPUTATION/20;
-      break;
-    case DS_CEASEFIRE:
-    case DS_PEACE:
-      punishment = GAME_MAX_REPUTATION/10;
-      break;
-    case DS_ALLIANCE:
-      punishment = GAME_MAX_REPUTATION/5;
-      break;
-    default:
-      die("Illegal diplstate in maybe_cause_incident.");
-    }
-    offender->reputation = MAX(offender->reputation - punishment, 0);
     victim_player->diplstates[offender->player_no].has_reason_to_cancel = 2;
-    /* FIXME: Maybe we should try to cause a revolution is the offender's
-       government has a senate */
     send_player_info(offender, NULL);
     send_player_info(victim_player, NULL);
   }
Index: server/plrhand.c
===================================================================
RCS file: /home/freeciv/CVS/freeciv/server/plrhand.c,v
retrieving revision 1.361
diff -u -r1.361 plrhand.c
--- server/plrhand.c    18 Mar 2005 11:26:24 -0000      1.361
+++ server/plrhand.c    25 Mar 2005 14:35:53 -0000
@@ -1067,7 +1067,6 @@
   enum diplstate_type old_type;
   enum diplstate_type new_type;
   struct player *pplayer2;
-  int reppenalty = 0;
   bool has_senate, repeat = FALSE;
 
   if (!is_valid_player_id(other_player_id)) {
@@ -1102,8 +1101,7 @@
   /* else, breaking a treaty */
 
 repeat_break_treaty:
-  /* check what the new status will be, and what will happen to our
-     reputation */
+  /* check what the new status will be */
   switch(old_type) {
   case DS_NO_CONTACT: /* possible if someone declares war on our ally */
   case DS_NEUTRAL:
@@ -1111,15 +1109,12 @@
     break;
   case DS_CEASEFIRE:
     new_type = DS_NEUTRAL;
-    reppenalty += GAME_MAX_REPUTATION/6;
     break;
   case DS_PEACE:
     new_type = DS_NEUTRAL;
-    reppenalty += GAME_MAX_REPUTATION/5;
     break;
   case DS_ALLIANCE:
     new_type = DS_PEACE;
-    reppenalty += GAME_MAX_REPUTATION/4;
     break;
   default:
     freelog(LOG_ERROR, "non-pact diplstate in handle_player_cancel_pact");
@@ -1165,23 +1160,12 @@
                          "constant provocations of the %s."),
                        get_nation_name_plural(pplayer2->nation));
     }
-  }
-  /* no reason to cancel, apply penalty (and maybe suffer a revolution) */
-  /* FIXME: according to civII rules, republics and democracies
-     have different chances of revolution; maybe we need to
-     extend the govt rulesets to mimic this -- pt */
-  else {
-    pplayer->reputation = MAX(pplayer->reputation - reppenalty, 0);
-    notify_player_ex(pplayer, NULL, E_TREATY_BROKEN,
-                     _("Your reputation is now %s."),
-                     reputation_text(pplayer->reputation));
+  } else {
     if (has_senate && pplayer->revolution_finishes < 0) {
-      if (myrand(GAME_MAX_REPUTATION) > pplayer->reputation) {
         notify_player_ex(pplayer, NULL, E_ANARCHY,
                          _("The senate decides to dissolve "
                          "rather than support your actions any longer."));
        handle_player_change_government(pplayer, pplayer->government);
-      }
     }
   }
 
@@ -1451,7 +1435,6 @@
     packet->love[i] = plr->ai.love[i];
   }
   packet->barbarian_type = plr->ai.barbarian_type;
-  packet->reputation=plr->reputation;
 
   packet->phase_done = plr->phase_done;
   packet->nturns_idle=plr->nturns_idle;
Index: server/savegame.c
===================================================================
RCS file: /home/freeciv/CVS/freeciv/server/savegame.c,v
retrieving revision 1.229
diff -u -r1.229 savegame.c
--- server/savegame.c   22 Mar 2005 04:03:35 -0000      1.229
+++ server/savegame.c   25 Mar 2005 14:35:53 -0000
@@ -1858,8 +1858,6 @@
 
   update_research(plr);
 
-  plr->reputation=secfile_lookup_int_default(file, GAME_DEFAULT_REPUTATION,
-                                            "player%d.reputation", plrno);
   for (i=0; i < game.nplayers; i++) {
     plr->diplstates[i].type = 
       secfile_lookup_int_default(file, DS_WAR,
@@ -2541,7 +2539,6 @@
   invs[game.num_tech_types] = '\0';
   secfile_insert_str(file, invs, "player%d.invs_new", plrno);
 
-  secfile_insert_int(file, plr->reputation, "player%d.reputation", plrno);
   for (i = 0; i < MAX_NUM_PLAYERS+MAX_NUM_BARBARIANS; i++) {
     secfile_insert_int(file, plr->diplstates[i].type,
                       "player%d.diplstate%d.type", plrno, i);
Index: server/srv_main.c
===================================================================
RCS file: /home/freeciv/CVS/freeciv/server/srv_main.c,v
retrieving revision 1.236
diff -u -r1.236 srv_main.c
--- server/srv_main.c   22 Mar 2005 04:03:35 -0000      1.236
+++ server/srv_main.c   25 Mar 2005 14:35:53 -0000
@@ -398,8 +398,7 @@
 }
 
 /**************************************************************************
- check for cease-fires running out; update reputation; update cancelling
- reasons
+ check for cease-fires running out; update cancelling reasons
 **************************************************************************/
 static void update_diplomatics(void)
 {
@@ -435,11 +434,6 @@
        }
         }
     } players_iterate_end;
-    player1->reputation = 
-      MIN((get_player_bonus(player1, EFT_REGEN_REPUTATION) * 
-           GAME_MAX_REPUTATION / 1000) + 
-         player1->reputation + GAME_REPUTATION_INCR,
-          GAME_MAX_REPUTATION);
   } players_iterate_end;
 }
 
Index: server/unittools.c
===================================================================
RCS file: /home/freeciv/CVS/freeciv/server/unittools.c,v
retrieving revision 1.330
diff -u -r1.330 unittools.c
--- server/unittools.c  24 Mar 2005 17:48:49 -0000      1.330
+++ server/unittools.c  25 Mar 2005 14:35:54 -0000
@@ -2082,8 +2082,7 @@
 
 /**************************************************************************
   Nuke all the squares in a 3x3 square around the center of the explosion
-  pplayer is the player that caused the explosion. You lose reputation
-  each time.
+  pplayer is the player that caused the explosion.
 **************************************************************************/
 void do_nuclear_explosion(struct player *pplayer, struct tile *ptile)
 {
@@ -2091,10 +2090,6 @@
     do_nuke_tile(pplayer, ptile1);
   } square_iterate_end;
 
-  /* Give reputation penalty to nuke users */
-  pplayer->reputation = MAX(pplayer->reputation - REPUTATION_LOSS_NUKE, 0);
-  send_player_info(pplayer, NULL);
-
   notify_conn_ex(game.game_connections, ptile, E_NUKE,
                 _("%s detonated a nuke!"), pplayer->name);
 }

[Prev in Thread] Current Thread [Next in Thread]