diff --git a/AndorsTrail/src/com/gpl/rpg/AndorsTrail/activity/MainActivity.java b/AndorsTrail/src/com/gpl/rpg/AndorsTrail/activity/MainActivity.java index bf6e67cf7..998fe0772 100644 --- a/AndorsTrail/src/com/gpl/rpg/AndorsTrail/activity/MainActivity.java +++ b/AndorsTrail/src/com/gpl/rpg/AndorsTrail/activity/MainActivity.java @@ -137,19 +137,6 @@ public final class MainActivity extends Activity implements PlayerMovementListen break; case INTENTREQUEST_CONVERSATION: MovementController.refreshMonsterAggressiveness(world.model.currentMap, world.model.player); - if (resultCode == ConversationActivity.ACTIVITYRESULT_ATTACK) { - final Coord p = world.model.player.nextPosition; - Monster m = world.model.currentMap.getMonsterAt(p); - if (m == null) return; //Shouldn't happen. - m.forceAggressive(); - controllers.combatController.setCombatSelection(m, p); - controllers.combatController.enterCombat(CombatController.BEGIN_TURN_PLAYER); - } else if (resultCode == ConversationActivity.ACTIVITYRESULT_REMOVE) { - final Coord p = world.model.player.nextPosition; - Monster m = world.model.currentMap.getMonsterAt(p); - if (m == null) return; - controllers.monsterSpawnController.remove(world.model.currentMap, m); - } break; case INTENTREQUEST_PREFERENCES: AndorsTrailApplication app = AndorsTrailApplication.getApplicationFromActivity(this); diff --git a/AndorsTrail/src/com/gpl/rpg/AndorsTrail/controller/ConversationController.java b/AndorsTrail/src/com/gpl/rpg/AndorsTrail/controller/ConversationController.java index 7c666c6fc..654924205 100644 --- a/AndorsTrail/src/com/gpl/rpg/AndorsTrail/controller/ConversationController.java +++ b/AndorsTrail/src/com/gpl/rpg/AndorsTrail/controller/ConversationController.java @@ -20,6 +20,7 @@ import com.gpl.rpg.AndorsTrail.model.item.Loot; import com.gpl.rpg.AndorsTrail.model.quest.QuestLogEntry; import com.gpl.rpg.AndorsTrail.model.quest.QuestProgress; import com.gpl.rpg.AndorsTrail.util.ConstRange; +import com.gpl.rpg.AndorsTrail.util.Coord; import java.util.ArrayList; @@ -218,10 +219,10 @@ public final class ConversationController { listener.onConversationEndedWithShop(npc); return; } else if (phraseID.equalsIgnoreCase(ConversationCollection.PHRASE_ATTACK)) { - listener.onConversationEndedWithCombat(npc); + endConversationWithCombat(); return; } else if (phraseID.equalsIgnoreCase(ConversationCollection.PHRASE_REMOVE)) { - listener.onConversationEndedWithRemoval(npc); + endConversationWithRemovingNPC(); return; } @@ -247,7 +248,19 @@ public final class ConversationController { requestReplies(); } - private void requestReplies() { + private void endConversationWithRemovingNPC() { + controllers.monsterSpawnController.remove(world.model.currentMap, npc); + listener.onConversationEndedWithRemoval(npc); + } + + private void endConversationWithCombat() { + npc.forceAggressive(); + controllers.combatController.setCombatSelection(npc); + controllers.combatController.enterCombat(CombatController.BEGIN_TURN_PLAYER); + listener.onConversationEndedWithCombat(npc); + } + + private void requestReplies() { if (hasOnlyOneNextReply()) { listener.onConversationCanProceedWithNext(); return;