From 263fda3071f9c4832427a104d4862661d48806b2 Mon Sep 17 00:00:00 2001
From: Chris Kearney <chris@kearneymail.com>
Date: Sun, 14 May 2017 22:07:40 -0700
Subject: [PATCH] basics of random attack messages

---
 .../java/com/comandante/creeper/npc/Npc.java  | 19 ++++++++++++++-----
 .../com/comandante/creeper/player/Player.java |  2 +-
 2 files changed, 15 insertions(+), 6 deletions(-)

diff --git a/src/main/java/com/comandante/creeper/npc/Npc.java b/src/main/java/com/comandante/creeper/npc/Npc.java
index 7b6a51c6..159973a7 100644
--- a/src/main/java/com/comandante/creeper/npc/Npc.java
+++ b/src/main/java/com/comandante/creeper/npc/Npc.java
@@ -2,6 +2,7 @@ package com.comandante.creeper.npc;
 
 
 import com.comandante.creeper.common.AttackMessage;
+import com.comandante.creeper.common.ColorizedTextTemplate;
 import com.comandante.creeper.core_game.GameManager;
 import com.comandante.creeper.core_game.SentryManager;
 import com.comandante.creeper.entity.CreeperEntity;
@@ -65,11 +66,6 @@ public class Npc extends CreeperEntity {
     private final Experience experience = new Experience();
     private final Set<AttackMessage> attackMessages;
 
-
-    public Set<AttackMessage> getAttackMessages() {
-        return attackMessages;
-    }
-
     protected Npc(GameManager gameManager, String name, String colorName, long lastPhraseTimestamp, Stats stats, String dieMessage, Temperament temperament, Set<Area> roamAreas, Set<String> validTriggers, Loot loot, Set<SpawnRule> spawnRules, Set<AttackMessage> attackMessages) {
         this.gameManager = gameManager;
         this.name = name;
@@ -459,4 +455,17 @@ public class Npc extends CreeperEntity {
         }
         return null;
     }
+
+    public Set<AttackMessage> getAttackMessages() {
+        return attackMessages;
+    }
+
+    public String buildAttackMessage(String playerName) {
+        AttackMessage randomAttackMessage = getRandomAttackMessage();
+        Map<String, String> valueMap = Maps.newHashMap();
+        valueMap.put("player-name", playerName);
+        valueMap.put("npc-name", this.getName());
+        valueMap.put("npc-color-name", this.getColorName());
+        return ColorizedTextTemplate.renderFromTemplateLanguage(valueMap, randomAttackMessage.getAttackMessage());
+    }
 }
diff --git a/src/main/java/com/comandante/creeper/player/Player.java b/src/main/java/com/comandante/creeper/player/Player.java
index f58812c3..ac16c928 100644
--- a/src/main/java/com/comandante/creeper/player/Player.java
+++ b/src/main/java/com/comandante/creeper/player/Player.java
@@ -1372,7 +1372,7 @@ public class Player extends CreeperEntity {
             int chanceToHitBack = npcDamageProcessor.getChanceToHit(this, npc);
             long damageBack = npcDamageProcessor.getAttackAmount(this, npc);
             if (randInt(0, 100) < chanceToHitBack) {
-                final String fightMsg = Color.BOLD_ON + Color.RED + "[attack] " + Color.RESET + npc.getColorName() + Color.BOLD_ON + Color.RED + " DAMAGES" + Color.RESET + " you for " + Color.RED + "-" + NumberFormat.getNumberInstance(Locale.US).format(damageBack) + Color.RESET;
+                final String fightMsg = Color.BOLD_ON + Color.RED + "[attack] " + Color.RESET + npc.buildAttackMessage(this.getPlayerName()) + " -" + NumberFormat.getNumberInstance(Locale.US).format(damageBack) + Color.RESET;
                 npcStatsChangeBuilder.setPlayerStatsChange(new StatsBuilder().setCurrentHealth(-damageBack).createStats());
                 npcStatsChangeBuilder.setPlayerDamageStrings(Collections.singletonList(fightMsg));
 
-- 
GitLab