mirror of
https://github.com/OMGeeky/andors-trail.git
synced 2026-02-23 15:38:29 +01:00
Renamed "ViewContext" -> "ControllerContext" to better reflect its responsibility.
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
package com.gpl.rpg.AndorsTrail;
|
||||
|
||||
import com.gpl.rpg.AndorsTrail.context.ViewContext;
|
||||
import com.gpl.rpg.AndorsTrail.context.ControllerContext;
|
||||
import com.gpl.rpg.AndorsTrail.context.WorldContext;
|
||||
|
||||
import android.app.Activity;
|
||||
@@ -23,12 +23,12 @@ public final class AndorsTrailApplication extends Application {
|
||||
|
||||
private final AndorsTrailPreferences preferences = new AndorsTrailPreferences();
|
||||
private final WorldContext world = new WorldContext();
|
||||
private final ViewContext view = new ViewContext(this, world);
|
||||
private final WorldSetup setup = new WorldSetup(world, view, this);
|
||||
private final ControllerContext controllers = new ControllerContext(this, world);
|
||||
private final WorldSetup setup = new WorldSetup(world, controllers, this);
|
||||
public WorldContext getWorld() { return world; }
|
||||
public WorldSetup getWorldSetup() { return setup; }
|
||||
public AndorsTrailPreferences getPreferences() { return preferences; }
|
||||
public ViewContext getViewContext() { return view; }
|
||||
public ControllerContext getControllerContext() { return controllers; }
|
||||
|
||||
public static AndorsTrailApplication getApplicationFromActivity(Activity activity) {
|
||||
return ((AndorsTrailApplication) activity.getApplication());
|
||||
|
||||
@@ -36,7 +36,7 @@ import com.gpl.rpg.AndorsTrail.activity.Preferences;
|
||||
import com.gpl.rpg.AndorsTrail.activity.ShopActivity;
|
||||
import com.gpl.rpg.AndorsTrail.activity.SkillInfoActivity;
|
||||
import com.gpl.rpg.AndorsTrail.activity.StartScreenActivity;
|
||||
import com.gpl.rpg.AndorsTrail.context.ViewContext;
|
||||
import com.gpl.rpg.AndorsTrail.context.ControllerContext;
|
||||
import com.gpl.rpg.AndorsTrail.context.WorldContext;
|
||||
import com.gpl.rpg.AndorsTrail.model.ability.ActorConditionType;
|
||||
import com.gpl.rpg.AndorsTrail.model.actor.Monster;
|
||||
@@ -48,10 +48,10 @@ import com.gpl.rpg.AndorsTrail.view.ItemContainerAdapter;
|
||||
|
||||
public final class Dialogs {
|
||||
|
||||
private static void showDialogAndPause(Dialog d, final ViewContext context) {
|
||||
private static void showDialogAndPause(Dialog d, final ControllerContext context) {
|
||||
showDialogAndPause(d, context, null);
|
||||
}
|
||||
private static void showDialogAndPause(Dialog d, final ViewContext context, final OnDismissListener onDismiss) {
|
||||
private static void showDialogAndPause(Dialog d, final ControllerContext context, final OnDismissListener onDismiss) {
|
||||
context.gameRoundController.pause();
|
||||
d.setOnDismissListener(new OnDismissListener() {
|
||||
@Override
|
||||
@@ -70,15 +70,15 @@ public final class Dialogs {
|
||||
}
|
||||
*/
|
||||
|
||||
public static void showKeyArea(final MainActivity currentActivity, final ViewContext context, String phraseID) {
|
||||
public static void showKeyArea(final MainActivity currentActivity, final ControllerContext context, String phraseID) {
|
||||
showConversation(currentActivity, context, phraseID, null);
|
||||
}
|
||||
|
||||
public static void showMapSign(final MainActivity currentActivity, final ViewContext context, String phraseID) {
|
||||
public static void showMapSign(final MainActivity currentActivity, final ControllerContext context, String phraseID) {
|
||||
showConversation(currentActivity, context, phraseID, null);
|
||||
}
|
||||
|
||||
public static void showConversation(final MainActivity currentActivity, final ViewContext context, final String phraseID, final Monster npc) {
|
||||
public static void showConversation(final MainActivity currentActivity, final ControllerContext context, final String phraseID, final Monster npc) {
|
||||
context.gameRoundController.pause();
|
||||
Intent intent = new Intent(currentActivity, ConversationActivity.class);
|
||||
intent.setData(Uri.parse("content://com.gpl.rpg.AndorsTrail/conversation/" + phraseID));
|
||||
@@ -101,7 +101,7 @@ public final class Dialogs {
|
||||
return world.model.currentMap.getMonsterAt(x, y);
|
||||
}
|
||||
|
||||
public static void showMonsterEncounter(final MainActivity currentActivity, final ViewContext context, final Monster monster) {
|
||||
public static void showMonsterEncounter(final MainActivity currentActivity, final ControllerContext context, final Monster monster) {
|
||||
context.gameRoundController.pause();
|
||||
Intent intent = new Intent(currentActivity, MonsterEncounterActivity.class);
|
||||
intent.setData(Uri.parse("content://com.gpl.rpg.AndorsTrail/monsterencounter"));
|
||||
@@ -154,18 +154,18 @@ public final class Dialogs {
|
||||
}
|
||||
}
|
||||
|
||||
public static void showMonsterLoot(final MainActivity mainActivity, final ViewContext view, final WorldContext world, final Collection<Loot> lootBags, final Loot combinedLoot, final String msg) {
|
||||
public static void showMonsterLoot(final MainActivity mainActivity, final ControllerContext controllers, final WorldContext world, final Collection<Loot> lootBags, final Loot combinedLoot, final String msg) {
|
||||
// CombatController will do killedMonsterBags.clear() after this method has been called,
|
||||
// so we need to keep the list of objects. Therefore, we create a shallow copy of the list of bags.
|
||||
ArrayList<Loot> bags = new ArrayList<Loot>(lootBags);
|
||||
showLoot(mainActivity, view, world, combinedLoot, bags, R.string.dialog_monsterloot_title, msg);
|
||||
showLoot(mainActivity, controllers, world, combinedLoot, bags, R.string.dialog_monsterloot_title, msg);
|
||||
}
|
||||
|
||||
public static void showGroundLoot(final MainActivity mainActivity, final ViewContext view, final WorldContext world, final Loot loot, final String msg) {
|
||||
showLoot(mainActivity, view, world, loot, Collections.singletonList(loot), R.string.dialog_groundloot_title, msg);
|
||||
public static void showGroundLoot(final MainActivity mainActivity, final ControllerContext controllers, final WorldContext world, final Loot loot, final String msg) {
|
||||
showLoot(mainActivity, controllers, world, loot, Collections.singletonList(loot), R.string.dialog_groundloot_title, msg);
|
||||
}
|
||||
|
||||
private static void showLoot(final MainActivity mainActivity, final ViewContext view, final WorldContext world, final Loot combinedLoot, final Iterable<Loot> lootBags, final int title, final String msg) {
|
||||
private static void showLoot(final MainActivity mainActivity, final ControllerContext controllers, final WorldContext world, final Loot combinedLoot, final Iterable<Loot> lootBags, final int title, final String msg) {
|
||||
final ListView itemList = new ListView(mainActivity);
|
||||
itemList.setLayoutParams(new ListView.LayoutParams(ListView.LayoutParams.MATCH_PARENT, ListView.LayoutParams.WRAP_CONTENT));
|
||||
itemList.setPadding(20, 0, 20, 20);
|
||||
@@ -176,7 +176,7 @@ public final class Dialogs {
|
||||
final String itemTypeID = ((ItemContainerAdapter) parent.getAdapter()).getItem(position).itemType.id;
|
||||
for (Loot l : lootBags) {
|
||||
if (l.items.removeItem(itemTypeID)) {
|
||||
view.itemController.removeLootBagIfEmpty(l);
|
||||
controllers.itemController.removeLootBagIfEmpty(l);
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -199,17 +199,17 @@ public final class Dialogs {
|
||||
db.setPositiveButton(R.string.dialog_loot_pickall, new DialogInterface.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(DialogInterface dialog, int which) {
|
||||
view.itemController.pickupAll(lootBags);
|
||||
controllers.itemController.pickupAll(lootBags);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
final Dialog d = db.create();
|
||||
|
||||
showDialogAndPause(d, view, new OnDismissListener() {
|
||||
showDialogAndPause(d, controllers, new OnDismissListener() {
|
||||
@Override
|
||||
public void onDismiss(DialogInterface arg0) {
|
||||
view.itemController.removeLootBagIfEmpty(lootBags);
|
||||
controllers.itemController.removeLootBagIfEmpty(lootBags);
|
||||
}
|
||||
});
|
||||
}
|
||||
@@ -230,29 +230,29 @@ public final class Dialogs {
|
||||
currentActivity.startActivityForResult(intent, MainActivity.INTENTREQUEST_LEVELUP);
|
||||
}
|
||||
|
||||
public static void showConfirmRest(final Activity currentActivity, final ViewContext viewContext, final MapObject area) {
|
||||
public static void showConfirmRest(final Activity currentActivity, final ControllerContext controllerContext, final MapObject area) {
|
||||
Dialog d = new AlertDialog.Builder(currentActivity)
|
||||
.setTitle(R.string.dialog_rest_title)
|
||||
.setMessage(R.string.dialog_rest_confirm_message)
|
||||
.setPositiveButton(android.R.string.yes, new DialogInterface.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(DialogInterface dialog, int which) {
|
||||
viewContext.controller.rest(area);
|
||||
controllerContext.mapController.rest(area);
|
||||
}
|
||||
})
|
||||
.setNegativeButton(android.R.string.no, null)
|
||||
.create();
|
||||
|
||||
showDialogAndPause(d, viewContext);
|
||||
showDialogAndPause(d, controllerContext);
|
||||
}
|
||||
public static void showRested(final Activity currentActivity, final ViewContext viewContext) {
|
||||
public static void showRested(final Activity currentActivity, final ControllerContext controllerContext) {
|
||||
Dialog d = new AlertDialog.Builder(currentActivity)
|
||||
.setTitle(R.string.dialog_rest_title)
|
||||
.setMessage(R.string.dialog_rest_message)
|
||||
.setNeutralButton(android.R.string.ok, null)
|
||||
.create();
|
||||
|
||||
showDialogAndPause(d, viewContext);
|
||||
showDialogAndPause(d, controllerContext);
|
||||
}
|
||||
|
||||
public static void showNewVersion(final Activity currentActivity) {
|
||||
@@ -268,12 +268,12 @@ public final class Dialogs {
|
||||
currentActivity.startActivityForResult(intent, MainActivity.INTENTREQUEST_PREFERENCES);
|
||||
}
|
||||
|
||||
public static void showSave(final MainActivity mainActivity, final ViewContext viewContext, final WorldContext world) {
|
||||
public static void showSave(final MainActivity mainActivity, final ControllerContext controllerContext, final WorldContext world) {
|
||||
if (world.model.uiSelections.isInCombat) {
|
||||
mainActivity.showToast(mainActivity.getResources().getString(R.string.menu_save_saving_not_allowed_in_combat), Toast.LENGTH_SHORT);
|
||||
return;
|
||||
}
|
||||
viewContext.gameRoundController.pause();
|
||||
controllerContext.gameRoundController.pause();
|
||||
Intent intent = new Intent(mainActivity, LoadSaveActivity.class);
|
||||
intent.setData(Uri.parse("content://com.gpl.rpg.AndorsTrail/save"));
|
||||
mainActivity.startActivityForResult(intent, MainActivity.INTENTREQUEST_SAVEGAME);
|
||||
|
||||
@@ -6,7 +6,7 @@ import android.content.Context;
|
||||
import android.content.res.Resources;
|
||||
import android.os.AsyncTask;
|
||||
|
||||
import com.gpl.rpg.AndorsTrail.context.ViewContext;
|
||||
import com.gpl.rpg.AndorsTrail.context.ControllerContext;
|
||||
import com.gpl.rpg.AndorsTrail.context.WorldContext;
|
||||
import com.gpl.rpg.AndorsTrail.model.ModelContainer;
|
||||
import com.gpl.rpg.AndorsTrail.resource.ResourceLoader;
|
||||
@@ -15,7 +15,7 @@ import com.gpl.rpg.AndorsTrail.savegames.Savegames;
|
||||
public final class WorldSetup {
|
||||
|
||||
private final WorldContext world;
|
||||
private final ViewContext view;
|
||||
private final ControllerContext controllers;
|
||||
private final WeakReference<Context> androidContext;
|
||||
private boolean isResourcesInitialized = false;
|
||||
private boolean isInitializingResources = false;
|
||||
@@ -29,9 +29,9 @@ public final class WorldSetup {
|
||||
public String newHeroName;
|
||||
private int loadResult;
|
||||
|
||||
public WorldSetup(WorldContext world, ViewContext view, Context androidContext) {
|
||||
public WorldSetup(WorldContext world, ControllerContext controllers, Context androidContext) {
|
||||
this.world = world;
|
||||
this.view = view;
|
||||
this.controllers = controllers;
|
||||
this.androidContext = new WeakReference<Context>(androidContext);
|
||||
}
|
||||
|
||||
@@ -139,9 +139,9 @@ public final class WorldSetup {
|
||||
|
||||
private int continueWorld() {
|
||||
Context ctx = androidContext.get();
|
||||
int result = Savegames.loadWorld(world, view, ctx, loadFromSlot);
|
||||
int result = Savegames.loadWorld(world, controllers, ctx, loadFromSlot);
|
||||
if (result == Savegames.LOAD_RESULT_SUCCESS) {
|
||||
view.movementController.cacheCurrentMapData(ctx.getResources(), world.model.currentMap);
|
||||
controllers.movementController.cacheCurrentMapData(ctx.getResources(), world.model.currentMap);
|
||||
}
|
||||
return result;
|
||||
}
|
||||
@@ -151,9 +151,9 @@ public final class WorldSetup {
|
||||
world.model = new ModelContainer();
|
||||
world.model.player.initializeNewPlayer(world.itemTypes, world.dropLists, newHeroName);
|
||||
|
||||
view.actorStatsController.recalculatePlayerStats(world.model.player);
|
||||
view.movementController.respawnPlayer(ctx.getResources());
|
||||
view.controller.lotsOfTimePassed();
|
||||
controllers.actorStatsController.recalculatePlayerStats(world.model.player);
|
||||
controllers.movementController.respawnPlayer(ctx.getResources());
|
||||
controllers.mapController.lotsOfTimePassed();
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -32,7 +32,7 @@ import android.widget.TextView.BufferType;
|
||||
import com.gpl.rpg.AndorsTrail.AndorsTrailApplication;
|
||||
import com.gpl.rpg.AndorsTrail.Dialogs;
|
||||
import com.gpl.rpg.AndorsTrail.R;
|
||||
import com.gpl.rpg.AndorsTrail.context.ViewContext;
|
||||
import com.gpl.rpg.AndorsTrail.context.ControllerContext;
|
||||
import com.gpl.rpg.AndorsTrail.context.WorldContext;
|
||||
import com.gpl.rpg.AndorsTrail.controller.ConversationController;
|
||||
import com.gpl.rpg.AndorsTrail.conversation.ConversationCollection;
|
||||
@@ -51,7 +51,7 @@ public final class ConversationActivity extends Activity implements OnKeyListene
|
||||
private static final int NPCConversationColor = Color.argb(255, 0xbb, 0xbb, 0x22);
|
||||
|
||||
private WorldContext world;
|
||||
private ViewContext view;
|
||||
private ControllerContext controllers;
|
||||
private Player player;
|
||||
private String phraseID;
|
||||
private Phrase phrase;
|
||||
@@ -74,7 +74,7 @@ public final class ConversationActivity extends Activity implements OnKeyListene
|
||||
AndorsTrailApplication app = AndorsTrailApplication.getApplicationFromActivity(this);
|
||||
if (!app.isInitialized()) { finish(); return; }
|
||||
this.world = app.getWorld();
|
||||
this.view = app.getViewContext();
|
||||
this.controllers = app.getControllerContext();
|
||||
this.player = world.model.player;
|
||||
|
||||
requestWindowFeature(Window.FEATURE_NO_TITLE);
|
||||
@@ -241,7 +241,7 @@ public final class ConversationActivity extends Activity implements OnKeyListene
|
||||
|
||||
ConversationController.PhraseRewards phraseRewards = null;
|
||||
if (applyPhraseRewards) {
|
||||
phraseRewards = view.conversationController.applyPhraseRewards(player, phrase);
|
||||
phraseRewards = controllers.conversationController.applyPhraseRewards(player, phrase);
|
||||
}
|
||||
|
||||
if (phrase.message == null) {
|
||||
|
||||
@@ -9,19 +9,19 @@ import android.widget.Toast;
|
||||
|
||||
import com.gpl.rpg.AndorsTrail.AndorsTrailApplication;
|
||||
import com.gpl.rpg.AndorsTrail.R;
|
||||
import com.gpl.rpg.AndorsTrail.context.ViewContext;
|
||||
import com.gpl.rpg.AndorsTrail.context.ControllerContext;
|
||||
import com.gpl.rpg.AndorsTrail.context.WorldContext;
|
||||
import com.gpl.rpg.AndorsTrail.model.map.PredefinedMap;
|
||||
|
||||
@SuppressWarnings("unused")
|
||||
public final class DebugInterface {
|
||||
private final ViewContext viewContext;
|
||||
private final ControllerContext controllerContext;
|
||||
private final MainActivity mainActivity;
|
||||
private final Resources res;
|
||||
private final WorldContext world;
|
||||
|
||||
public DebugInterface(ViewContext view, WorldContext world, MainActivity mainActivity) {
|
||||
this.viewContext = view;
|
||||
public DebugInterface(ControllerContext controllers, WorldContext world, MainActivity mainActivity) {
|
||||
this.controllerContext = controllers;
|
||||
this.world = world;
|
||||
this.res = mainActivity.getResources();
|
||||
this.mainActivity = mainActivity;
|
||||
@@ -97,13 +97,13 @@ public final class DebugInterface {
|
||||
player.addQuestProgress(new QuestProgress("bwm_agent", 50));
|
||||
player.addQuestProgress(new QuestProgress("bwm_agent", 60));
|
||||
|
||||
viewContext.movementController.placePlayerAt(MapObject.MAPEVENT_NEWMAP, "blackwater_mountain45", "south", 0, 0);
|
||||
controllerContext.movementController.placePlayerAt(MapObject.MAPEVENT_NEWMAP, "blackwater_mountain45", "south", 0, 0);
|
||||
}
|
||||
})*/
|
||||
/*,new DebugButton("prim", new OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View arg0) {
|
||||
viewContext.movementController.placePlayerAt(MapObject.MAPEVENT_NEWMAP, "blackwater_mountain29", "south", 0, 0);
|
||||
controllerContext.movementController.placePlayerAt(MapObject.MAPEVENT_NEWMAP, "blackwater_mountain29", "south", 0, 0);
|
||||
}
|
||||
})*/
|
||||
/*,new DebugButton("exp+=10000", new OnClickListener() {
|
||||
@@ -128,7 +128,7 @@ public final class DebugInterface {
|
||||
public void onClick(View arg0) {
|
||||
world.model.player.baseTraits.maxHP = 200;
|
||||
world.model.player.health.max = world.model.player.baseTraits.maxHP;
|
||||
viewContext.actorStatsController.setActorMaxHealth(world.model.player);
|
||||
controllerContext.actorStatsController.setActorMaxHealth(world.model.player);
|
||||
world.model.player.conditions.clear();
|
||||
mainActivity.showToast("DEBUG: hp set to max", Toast.LENGTH_SHORT);
|
||||
}
|
||||
@@ -137,37 +137,37 @@ public final class DebugInterface {
|
||||
,new DebugButton("cg", new OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View arg0) {
|
||||
viewContext.movementController.placePlayerAt(MapObject.MAPEVENT_NEWMAP, "crossglen", "hall", 0, 0);
|
||||
controllerContext.movementController.placePlayerAt(MapObject.MAPEVENT_NEWMAP, "crossglen", "hall", 0, 0);
|
||||
}
|
||||
})
|
||||
,new DebugButton("vg", new OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View arg0) {
|
||||
viewContext.movementController.placePlayerAt(MapObject.MAPEVENT_NEWMAP, "vilegard_s", "tavern", 0, 0);
|
||||
controllerContext.movementController.placePlayerAt(MapObject.MAPEVENT_NEWMAP, "vilegard_s", "tavern", 0, 0);
|
||||
}
|
||||
})
|
||||
,new DebugButton("cr", new OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View arg0) {
|
||||
viewContext.movementController.placePlayerAt(MapObject.MAPEVENT_NEWMAP, "houseatcrossroads4", "down", 0, 0);
|
||||
controllerContext.movementController.placePlayerAt(MapObject.MAPEVENT_NEWMAP, "houseatcrossroads4", "down", 0, 0);
|
||||
}
|
||||
})
|
||||
,new DebugButton("lf", new OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View arg0) {
|
||||
viewContext.movementController.placePlayerAt(MapObject.MAPEVENT_NEWMAP, "loneford9", "south", 0, 0);
|
||||
controllerContext.movementController.placePlayerAt(MapObject.MAPEVENT_NEWMAP, "loneford9", "south", 0, 0);
|
||||
}
|
||||
})
|
||||
,new DebugButton("fh", new OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View arg0) {
|
||||
viewContext.movementController.placePlayerAt(MapObject.MAPEVENT_NEWMAP, "fallhaven_ne", "clothes", 0, 0);
|
||||
controllerContext.movementController.placePlayerAt(MapObject.MAPEVENT_NEWMAP, "fallhaven_ne", "clothes", 0, 0);
|
||||
}
|
||||
})
|
||||
,new DebugButton("rc", new OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View arg0) {
|
||||
viewContext.movementController.placePlayerAt(MapObject.MAPEVENT_NEWMAP, "roadtocarntower1", "left3", 0, 0);
|
||||
controllerContext.movementController.placePlayerAt(MapObject.MAPEVENT_NEWMAP, "roadtocarntower1", "left3", 0, 0);
|
||||
}
|
||||
})
|
||||
*/
|
||||
|
||||
@@ -3,7 +3,7 @@ package com.gpl.rpg.AndorsTrail.activity;
|
||||
import com.gpl.rpg.AndorsTrail.Dialogs;
|
||||
import com.gpl.rpg.AndorsTrail.AndorsTrailApplication;
|
||||
import com.gpl.rpg.AndorsTrail.R;
|
||||
import com.gpl.rpg.AndorsTrail.context.ViewContext;
|
||||
import com.gpl.rpg.AndorsTrail.context.ControllerContext;
|
||||
import com.gpl.rpg.AndorsTrail.context.WorldContext;
|
||||
import com.gpl.rpg.AndorsTrail.controller.ItemController;
|
||||
import com.gpl.rpg.AndorsTrail.model.actor.Player;
|
||||
@@ -31,7 +31,7 @@ import android.widget.AdapterView.OnItemClickListener;
|
||||
|
||||
public final class HeroinfoActivity_Inventory extends Activity {
|
||||
private WorldContext world;
|
||||
private ViewContext view;
|
||||
private ControllerContext controllers;
|
||||
private TileCollection wornTiles;
|
||||
|
||||
private Player player;
|
||||
@@ -52,7 +52,7 @@ public final class HeroinfoActivity_Inventory extends Activity {
|
||||
AndorsTrailApplication app = AndorsTrailApplication.getApplicationFromActivity(this);
|
||||
if (!app.isInitialized()) { finish(); return; }
|
||||
this.world = app.getWorld();
|
||||
this.view = app.getViewContext();
|
||||
this.controllers = app.getControllerContext();
|
||||
this.player = world.model.player;
|
||||
|
||||
setContentView(R.layout.heroinfo_inventory);
|
||||
@@ -116,12 +116,12 @@ public final class HeroinfoActivity_Inventory extends Activity {
|
||||
ItemType itemType = world.itemTypes.getItemType(data.getExtras().getString("itemTypeID"));
|
||||
int actionType = data.getExtras().getInt("actionType");
|
||||
if (actionType == ItemInfoActivity.ITEMACTION_UNEQUIP) {
|
||||
view.itemController.unequipSlot(itemType, data.getExtras().getInt("inventorySlot"));
|
||||
controllers.itemController.unequipSlot(itemType, data.getExtras().getInt("inventorySlot"));
|
||||
} else if (actionType == ItemInfoActivity.ITEMACTION_EQUIP) {
|
||||
int slot = suggestInventorySlot(itemType);
|
||||
view.itemController.equipItem(itemType, slot);
|
||||
controllers.itemController.equipItem(itemType, slot);
|
||||
} else if (actionType == ItemInfoActivity.ITEMACTION_USE) {
|
||||
view.itemController.useItem(itemType);
|
||||
controllers.itemController.useItem(itemType);
|
||||
}
|
||||
break;
|
||||
case MainActivity.INTENTREQUEST_BULKSELECT_DROP:
|
||||
@@ -149,7 +149,7 @@ public final class HeroinfoActivity_Inventory extends Activity {
|
||||
|
||||
private void dropItem(String itemTypeID, int quantity) {
|
||||
ItemType itemType = world.itemTypes.getItemType(itemTypeID);
|
||||
view.itemController.dropItem(itemType, quantity);
|
||||
controllers.itemController.dropItem(itemType, quantity);
|
||||
}
|
||||
|
||||
private void update() {
|
||||
@@ -227,7 +227,7 @@ public final class HeroinfoActivity_Inventory extends Activity {
|
||||
switch (item.getItemId()) {
|
||||
case R.id.inv_menu_info:
|
||||
showInventoryItemInfo(getSelectedItemType(info));
|
||||
//context.controller.itemInfo(this, getSelectedItemType(info));
|
||||
//context.mapController.itemInfo(this, getSelectedItemType(info));
|
||||
break;
|
||||
case R.id.inv_menu_drop:
|
||||
String itemTypeID = getSelectedItemType(info).id;
|
||||
@@ -240,29 +240,29 @@ public final class HeroinfoActivity_Inventory extends Activity {
|
||||
break;
|
||||
case R.id.inv_menu_equip:
|
||||
itemType = getSelectedItemType(info);
|
||||
view.itemController.equipItem(itemType, itemType.category.inventorySlot);
|
||||
controllers.itemController.equipItem(itemType, itemType.category.inventorySlot);
|
||||
break;
|
||||
case R.id.inv_menu_equip_offhand:
|
||||
itemType = getSelectedItemType(info);
|
||||
view.itemController.equipItem(itemType, itemType.category.inventorySlot + 1);
|
||||
controllers.itemController.equipItem(itemType, itemType.category.inventorySlot + 1);
|
||||
break;
|
||||
/*case R.id.inv_menu_unequip:
|
||||
context.controller.unequipItem(this, getSelectedItemType(info));
|
||||
context.mapController.unequipItem(this, getSelectedItemType(info));
|
||||
break;*/
|
||||
case R.id.inv_menu_use:
|
||||
view.itemController.useItem(getSelectedItemType(info));
|
||||
controllers.itemController.useItem(getSelectedItemType(info));
|
||||
break;
|
||||
case R.id.inv_menu_assign:
|
||||
lastSelectedItem = getSelectedItemType(info);
|
||||
break;
|
||||
case R.id.inv_assign_slot1:
|
||||
view.itemController.setQuickItem(lastSelectedItem, 0);
|
||||
controllers.itemController.setQuickItem(lastSelectedItem, 0);
|
||||
break;
|
||||
case R.id.inv_assign_slot2:
|
||||
view.itemController.setQuickItem(lastSelectedItem, 1);
|
||||
controllers.itemController.setQuickItem(lastSelectedItem, 1);
|
||||
break;
|
||||
case R.id.inv_assign_slot3:
|
||||
view.itemController.setQuickItem(lastSelectedItem, 2);
|
||||
controllers.itemController.setQuickItem(lastSelectedItem, 2);
|
||||
break;
|
||||
case R.id.inv_menu_movetop:
|
||||
player.inventory.sortToTop(getSelectedItemType(info).id);
|
||||
|
||||
@@ -11,14 +11,14 @@ import android.widget.TextView;
|
||||
import com.gpl.rpg.AndorsTrail.AndorsTrailApplication;
|
||||
import com.gpl.rpg.AndorsTrail.Dialogs;
|
||||
import com.gpl.rpg.AndorsTrail.R;
|
||||
import com.gpl.rpg.AndorsTrail.context.ViewContext;
|
||||
import com.gpl.rpg.AndorsTrail.context.ControllerContext;
|
||||
import com.gpl.rpg.AndorsTrail.context.WorldContext;
|
||||
import com.gpl.rpg.AndorsTrail.model.actor.Player;
|
||||
import com.gpl.rpg.AndorsTrail.view.SkillListAdapter;
|
||||
|
||||
public final class HeroinfoActivity_Skills extends Activity {
|
||||
private WorldContext world;
|
||||
private ViewContext view;
|
||||
private ControllerContext controllers;
|
||||
|
||||
private Player player;
|
||||
|
||||
@@ -30,7 +30,7 @@ public final class HeroinfoActivity_Skills extends Activity {
|
||||
AndorsTrailApplication app = AndorsTrailApplication.getApplicationFromActivity(this);
|
||||
if (!app.isInitialized()) { finish(); return; }
|
||||
this.world = app.getWorld();
|
||||
this.view = app.getViewContext();
|
||||
this.controllers = app.getControllerContext();
|
||||
this.player = world.model.player;
|
||||
|
||||
setContentView(R.layout.heroinfo_skill_list);
|
||||
@@ -60,7 +60,7 @@ public final class HeroinfoActivity_Skills extends Activity {
|
||||
if (resultCode != RESULT_OK) break;
|
||||
|
||||
int skillID = data.getExtras().getInt("skillID");
|
||||
view.skillController.levelUpSkillManually(player, world.skills.getSkill(skillID));
|
||||
controllers.skillController.levelUpSkillManually(player, world.skills.getSkill(skillID));
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -11,7 +11,7 @@ import android.widget.TextView;
|
||||
|
||||
import com.gpl.rpg.AndorsTrail.AndorsTrailApplication;
|
||||
import com.gpl.rpg.AndorsTrail.R;
|
||||
import com.gpl.rpg.AndorsTrail.context.ViewContext;
|
||||
import com.gpl.rpg.AndorsTrail.context.ControllerContext;
|
||||
import com.gpl.rpg.AndorsTrail.context.WorldContext;
|
||||
import com.gpl.rpg.AndorsTrail.controller.ActorStatsController;
|
||||
import com.gpl.rpg.AndorsTrail.controller.Constants;
|
||||
@@ -19,7 +19,7 @@ import com.gpl.rpg.AndorsTrail.model.actor.Player;
|
||||
|
||||
public final class LevelUpActivity extends Activity {
|
||||
private WorldContext world;
|
||||
private ViewContext view;
|
||||
private ControllerContext controllers;
|
||||
private Player player;
|
||||
private TextView levelup_description;
|
||||
private TextView levelup_title;
|
||||
@@ -31,7 +31,7 @@ public final class LevelUpActivity extends Activity {
|
||||
AndorsTrailApplication app = AndorsTrailApplication.getApplicationFromActivity(this);
|
||||
if (!app.isInitialized()) { finish(); return; }
|
||||
this.world = app.getWorld();
|
||||
this.view = app.getViewContext();
|
||||
this.controllers = app.getControllerContext();
|
||||
this.player = world.model.player;
|
||||
|
||||
requestWindowFeature(Window.FEATURE_NO_TITLE);
|
||||
@@ -103,7 +103,7 @@ public final class LevelUpActivity extends Activity {
|
||||
public void levelup(int selectionID) {
|
||||
if (LevelUpActivity.this.isFinishing()) return;
|
||||
|
||||
view.actorStatsController.addLevelupEffect(player, selectionID);
|
||||
controllers.actorStatsController.addLevelupEffect(player, selectionID);
|
||||
finish();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -7,8 +7,8 @@ import com.gpl.rpg.AndorsTrail.AndorsTrailPreferences;
|
||||
import com.gpl.rpg.AndorsTrail.Dialogs;
|
||||
import com.gpl.rpg.AndorsTrail.AndorsTrailApplication;
|
||||
import com.gpl.rpg.AndorsTrail.R;
|
||||
import com.gpl.rpg.AndorsTrail.context.ControllerContext;
|
||||
import com.gpl.rpg.AndorsTrail.savegames.Savegames;
|
||||
import com.gpl.rpg.AndorsTrail.context.ViewContext;
|
||||
import com.gpl.rpg.AndorsTrail.context.WorldContext;
|
||||
import com.gpl.rpg.AndorsTrail.controller.CombatController;
|
||||
import com.gpl.rpg.AndorsTrail.controller.MovementController;
|
||||
@@ -61,7 +61,7 @@ public final class MainActivity extends Activity implements PlayerMovementListen
|
||||
public static final int INTENTREQUEST_BULKSELECT_DROP = 11;
|
||||
public static final int INTENTREQUEST_SKILLINFO = 12;
|
||||
|
||||
private ViewContext view;
|
||||
private ControllerContext controllers;
|
||||
private WorldContext world;
|
||||
|
||||
private MainView mainview;
|
||||
@@ -86,7 +86,7 @@ public final class MainActivity extends Activity implements PlayerMovementListen
|
||||
if (!app.isInitialized()) { finish(); return; }
|
||||
AndorsTrailPreferences preferences = app.getPreferences();
|
||||
this.world = app.getWorld();
|
||||
this.view = app.getViewContext();
|
||||
this.controllers = app.getControllerContext();
|
||||
app.setWindowParameters(this);
|
||||
|
||||
setContentView(R.layout.main);
|
||||
@@ -94,7 +94,7 @@ public final class MainActivity extends Activity implements PlayerMovementListen
|
||||
statusview = (StatusView) findViewById(R.id.main_statusview);
|
||||
combatview = (CombatView) findViewById(R.id.main_combatview);
|
||||
quickitemview = (QuickitemView) findViewById(R.id.main_quickitemview);
|
||||
activeConditions = new DisplayActiveActorConditionIcons(view, world, this, (RelativeLayout) findViewById(R.id.statusview_activeconditions));
|
||||
activeConditions = new DisplayActiveActorConditionIcons(controllers, world, this, (RelativeLayout) findViewById(R.id.statusview_activeconditions));
|
||||
dpad = (VirtualDpadView) findViewById(R.id.main_virtual_dpad);
|
||||
toolboxview = (ToolboxView) findViewById(R.id.main_toolboxview);
|
||||
statusview.registerToolboxViews(toolboxview, quickitemview);
|
||||
@@ -109,7 +109,7 @@ public final class MainActivity extends Activity implements PlayerMovementListen
|
||||
clearMessages();
|
||||
|
||||
if (AndorsTrailApplication.DEVELOPMENT_DEBUGBUTTONS)
|
||||
new DebugInterface(view, world, this).addDebugButtons();
|
||||
new DebugInterface(controllers, world, this).addDebugButtons();
|
||||
|
||||
quickitemview.setVisibility(View.GONE);
|
||||
quickitemview.registerForContextMenu(this);
|
||||
@@ -130,9 +130,9 @@ public final class MainActivity extends Activity implements PlayerMovementListen
|
||||
switch (requestCode) {
|
||||
case INTENTREQUEST_MONSTERENCOUNTER:
|
||||
if (resultCode == Activity.RESULT_OK) {
|
||||
view.combatController.enterCombat(CombatController.BEGIN_TURN_PLAYER);
|
||||
controllers.combatController.enterCombat(CombatController.BEGIN_TURN_PLAYER);
|
||||
} else {
|
||||
view.combatController.exitCombat(false);
|
||||
controllers.combatController.exitCombat(false);
|
||||
}
|
||||
break;
|
||||
case INTENTREQUEST_CONVERSATION:
|
||||
@@ -142,13 +142,13 @@ public final class MainActivity extends Activity implements PlayerMovementListen
|
||||
Monster m = world.model.currentMap.getMonsterAt(p);
|
||||
if (m == null) return; //Shouldn't happen.
|
||||
m.forceAggressive();
|
||||
view.combatController.setCombatSelection(m, p);
|
||||
view.combatController.enterCombat(CombatController.BEGIN_TURN_PLAYER);
|
||||
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;
|
||||
view.monsterSpawnController.remove(world.model.currentMap, m);
|
||||
controllers.monsterSpawnController.remove(world.model.currentMap, m);
|
||||
}
|
||||
break;
|
||||
case INTENTREQUEST_PREFERENCES:
|
||||
@@ -178,8 +178,8 @@ public final class MainActivity extends Activity implements PlayerMovementListen
|
||||
@Override
|
||||
protected void onPause() {
|
||||
super.onPause();
|
||||
view.gameRoundController.pause();
|
||||
view.movementController.stopMovement();
|
||||
controllers.gameRoundController.pause();
|
||||
controllers.movementController.stopMovement();
|
||||
|
||||
unsubscribeFromModel();
|
||||
|
||||
@@ -193,11 +193,11 @@ public final class MainActivity extends Activity implements PlayerMovementListen
|
||||
|
||||
subscribeToModelChanges();
|
||||
|
||||
view.gameRoundController.resume();
|
||||
controllers.gameRoundController.resume();
|
||||
|
||||
if (world.model.uiSelections.isInCombat) {
|
||||
view.combatController.setCombatSelection(world.model.uiSelections.selectedMonster, world.model.uiSelections.selectedPosition);
|
||||
view.combatController.enterCombat(CombatController.BEGIN_TURN_CONTINUE);
|
||||
controllers.combatController.setCombatSelection(world.model.uiSelections.selectedMonster, world.model.uiSelections.selectedPosition);
|
||||
controllers.combatController.enterCombat(CombatController.BEGIN_TURN_CONTINUE);
|
||||
}
|
||||
updateStatus();
|
||||
}
|
||||
@@ -208,17 +208,17 @@ public final class MainActivity extends Activity implements PlayerMovementListen
|
||||
mainview.unsubscribe();
|
||||
quickitemview.unsubscribe();
|
||||
statusview.unsubscribe();
|
||||
view.movementController.playerMovementListeners.remove(this);
|
||||
view.combatController.combatActionListeners.remove(this);
|
||||
view.combatController.combatTurnListeners.remove(this);
|
||||
view.controller.worldEventListeners.remove(this);
|
||||
controllers.movementController.playerMovementListeners.remove(this);
|
||||
controllers.combatController.combatActionListeners.remove(this);
|
||||
controllers.combatController.combatTurnListeners.remove(this);
|
||||
controllers.mapController.worldEventListeners.remove(this);
|
||||
}
|
||||
|
||||
private void subscribeToModelChanges() {
|
||||
view.controller.worldEventListeners.add(this);
|
||||
view.combatController.combatTurnListeners.add(this);
|
||||
view.combatController.combatActionListeners.add(this);
|
||||
view.movementController.playerMovementListeners.add(this);
|
||||
controllers.mapController.worldEventListeners.add(this);
|
||||
controllers.combatController.combatTurnListeners.add(this);
|
||||
controllers.combatController.combatActionListeners.add(this);
|
||||
controllers.movementController.playerMovementListeners.add(this);
|
||||
statusview.subscribe();
|
||||
quickitemview.subscribe();
|
||||
mainview.subscribe();
|
||||
@@ -242,7 +242,7 @@ public final class MainActivity extends Activity implements PlayerMovementListen
|
||||
.setOnMenuItemClickListener(new OnMenuItemClickListener() {
|
||||
@Override
|
||||
public boolean onMenuItemClick(MenuItem arg0) {
|
||||
Dialogs.showSave(MainActivity.this, view, world);
|
||||
Dialogs.showSave(MainActivity.this, controllers, world);
|
||||
return true;
|
||||
}
|
||||
});
|
||||
@@ -282,13 +282,13 @@ public final class MainActivity extends Activity implements PlayerMovementListen
|
||||
QuickButtonContextMenuInfo menuInfo;
|
||||
if(item.getGroupId() == R.id.quick_menu_assign_group){
|
||||
menuInfo = (QuickButtonContextMenuInfo) lastSelectedMenu;
|
||||
view.itemController.setQuickItem(world.model.player.inventory.items.get(item.getItemId()).itemType, menuInfo.index);
|
||||
controllers.itemController.setQuickItem(world.model.player.inventory.items.get(item.getItemId()).itemType, menuInfo.index);
|
||||
return true;
|
||||
}
|
||||
switch(item.getItemId()){
|
||||
case R.id.quick_menu_unassign:
|
||||
menuInfo = (QuickButtonContextMenuInfo) item.getMenuInfo();
|
||||
view.itemController.setQuickItem(null, menuInfo.index);
|
||||
controllers.itemController.setQuickItem(null, menuInfo.index);
|
||||
break;
|
||||
case R.id.quick_menu_assign:
|
||||
menuInfo = (QuickButtonContextMenuInfo) item.getMenuInfo();
|
||||
@@ -405,38 +405,38 @@ public final class MainActivity extends Activity implements PlayerMovementListen
|
||||
|
||||
@Override
|
||||
public void onPlayerStartedConversation(Monster m, String phraseID) {
|
||||
Dialogs.showConversation(this, view, phraseID, m);
|
||||
Dialogs.showConversation(this, controllers, phraseID, m);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onPlayerSteppedOnMonster(Monster m) {
|
||||
Dialogs.showMonsterEncounter(this, view, m);
|
||||
Dialogs.showMonsterEncounter(this, controllers, m);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onPlayerSteppedOnMapSignArea(MapObject area) {
|
||||
Dialogs.showMapSign(this, view, area.id);
|
||||
Dialogs.showMapSign(this, controllers, area.id);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onPlayerSteppedOnKeyArea(MapObject area) {
|
||||
Dialogs.showKeyArea(this, view, area.id);
|
||||
Dialogs.showKeyArea(this, controllers, area.id);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onPlayerSteppedOnRestArea(MapObject area) {
|
||||
Dialogs.showConfirmRest(this, view, area);
|
||||
Dialogs.showConfirmRest(this, controllers, area);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onPlayerSteppedOnGroundLoot(Loot loot) {
|
||||
final String msg = Dialogs.getGroundLootMessage(this, loot);
|
||||
Dialogs.showGroundLoot(this, view, world, loot, msg);
|
||||
Dialogs.showGroundLoot(this, controllers, world, loot, msg);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onPlayerPickedUpGroundLoot(Loot loot) {
|
||||
if (view.preferences.displayLoot == AndorsTrailPreferences.DISPLAYLOOT_NONE) return;
|
||||
if (controllers.preferences.displayLoot == AndorsTrailPreferences.DISPLAYLOOT_NONE) return;
|
||||
|
||||
final String msg = Dialogs.getGroundLootMessage(this, loot);
|
||||
showToast(msg, Toast.LENGTH_LONG);
|
||||
@@ -446,12 +446,12 @@ public final class MainActivity extends Activity implements PlayerMovementListen
|
||||
public void onPlayerFoundMonsterLoot(Collection<Loot> loot, int exp) {
|
||||
final Loot combinedLoot = Loot.combine(loot);
|
||||
final String msg = Dialogs.getMonsterLootMessage(this, combinedLoot, exp);
|
||||
Dialogs.showMonsterLoot(this, view, world, loot, combinedLoot, msg);
|
||||
Dialogs.showMonsterLoot(this, controllers, world, loot, combinedLoot, msg);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onPlayerPickedUpMonsterLoot(Collection<Loot> loot, int exp) {
|
||||
if (view.preferences.displayLoot == AndorsTrailPreferences.DISPLAYLOOT_NONE) return;
|
||||
if (controllers.preferences.displayLoot == AndorsTrailPreferences.DISPLAYLOOT_NONE) return;
|
||||
|
||||
final Loot combinedLoot = Loot.combine(loot);
|
||||
final String msg = Dialogs.getMonsterLootMessage(this, combinedLoot, exp);
|
||||
@@ -460,7 +460,7 @@ public final class MainActivity extends Activity implements PlayerMovementListen
|
||||
|
||||
@Override
|
||||
public void onPlayerRested() {
|
||||
Dialogs.showRested(this, view);
|
||||
Dialogs.showRested(this, controllers);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -11,7 +11,7 @@ import android.widget.TextView;
|
||||
import com.gpl.rpg.AndorsTrail.Dialogs;
|
||||
import com.gpl.rpg.AndorsTrail.AndorsTrailApplication;
|
||||
import com.gpl.rpg.AndorsTrail.R;
|
||||
import com.gpl.rpg.AndorsTrail.context.ViewContext;
|
||||
import com.gpl.rpg.AndorsTrail.context.ControllerContext;
|
||||
import com.gpl.rpg.AndorsTrail.context.WorldContext;
|
||||
import com.gpl.rpg.AndorsTrail.model.actor.Monster;
|
||||
|
||||
@@ -23,7 +23,7 @@ public final class MonsterEncounterActivity extends Activity {
|
||||
AndorsTrailApplication app = AndorsTrailApplication.getApplicationFromActivity(this);
|
||||
if (!app.isInitialized()) { finish(); return; }
|
||||
final WorldContext world = app.getWorld();
|
||||
final ViewContext view = app.getViewContext();
|
||||
final ControllerContext controllers = app.getControllerContext();
|
||||
|
||||
requestWindowFeature(Window.FEATURE_NO_TITLE);
|
||||
|
||||
@@ -35,7 +35,7 @@ public final class MonsterEncounterActivity extends Activity {
|
||||
|
||||
setContentView(R.layout.monsterencounter);
|
||||
|
||||
CharSequence difficulty = getText(MonsterInfoActivity.getMonsterDifficultyResource(view, monster));
|
||||
CharSequence difficulty = getText(MonsterInfoActivity.getMonsterDifficultyResource(controllers, monster));
|
||||
|
||||
TextView tv = (TextView) findViewById(R.id.monsterencounter_title);
|
||||
tv.setText(monster.getName());
|
||||
|
||||
@@ -11,7 +11,7 @@ import android.widget.TextView;
|
||||
import com.gpl.rpg.AndorsTrail.AndorsTrailApplication;
|
||||
import com.gpl.rpg.AndorsTrail.Dialogs;
|
||||
import com.gpl.rpg.AndorsTrail.R;
|
||||
import com.gpl.rpg.AndorsTrail.context.ViewContext;
|
||||
import com.gpl.rpg.AndorsTrail.context.ControllerContext;
|
||||
import com.gpl.rpg.AndorsTrail.context.WorldContext;
|
||||
import com.gpl.rpg.AndorsTrail.model.actor.Monster;
|
||||
import com.gpl.rpg.AndorsTrail.view.ItemEffectsView;
|
||||
@@ -21,7 +21,7 @@ import com.gpl.rpg.AndorsTrail.view.TraitsInfoView;
|
||||
public final class MonsterInfoActivity extends Activity {
|
||||
|
||||
private WorldContext world;
|
||||
private ViewContext view;
|
||||
private ControllerContext controllers;
|
||||
|
||||
private TextView monsterinfo_title;
|
||||
private TextView monsterinfo_difficulty;
|
||||
@@ -37,7 +37,7 @@ public final class MonsterInfoActivity extends Activity {
|
||||
AndorsTrailApplication app = AndorsTrailApplication.getApplicationFromActivity(this);
|
||||
if (!app.isInitialized()) { finish(); return; }
|
||||
this.world = app.getWorld();
|
||||
this.view = app.getViewContext();
|
||||
this.controllers = app.getControllerContext();
|
||||
requestWindowFeature(Window.FEATURE_NO_TITLE);
|
||||
|
||||
setContentView(R.layout.monsterinfo);
|
||||
@@ -77,7 +77,7 @@ public final class MonsterInfoActivity extends Activity {
|
||||
private void updateTitle(Monster monster) {
|
||||
monsterinfo_title.setText(monster.getName());
|
||||
world.tileManager.setImageViewTile(getResources(), monsterinfo_title, monster);
|
||||
monsterinfo_difficulty.setText(getMonsterDifficultyResource(view, monster));
|
||||
monsterinfo_difficulty.setText(getMonsterDifficultyResource(controllers, monster));
|
||||
}
|
||||
|
||||
private void updateTraits(Monster monster) {
|
||||
@@ -92,8 +92,8 @@ public final class MonsterInfoActivity extends Activity {
|
||||
monsterinfo_max_ap.setText(Integer.toString(monster.getMaxAP()));
|
||||
}
|
||||
|
||||
public static int getMonsterDifficultyResource(ViewContext viewContext, Monster monster) {
|
||||
final int difficulty = viewContext.combatController.getMonsterDifficulty(monster);
|
||||
public static int getMonsterDifficultyResource(ControllerContext controllerContext, Monster monster) {
|
||||
final int difficulty = controllerContext.combatController.getMonsterDifficulty(monster);
|
||||
if (difficulty >= 80) return R.string.monster_difficulty_veryeasy;
|
||||
if (difficulty >= 60) return R.string.monster_difficulty_easy;
|
||||
if (difficulty >= 40) return R.string.monster_difficulty_normal;
|
||||
|
||||
@@ -8,7 +8,7 @@ import com.gpl.rpg.AndorsTrail.AndorsTrailApplication;
|
||||
import com.gpl.rpg.AndorsTrail.AndorsTrailPreferences;
|
||||
import com.gpl.rpg.AndorsTrail.controller.ActorStatsController;
|
||||
import com.gpl.rpg.AndorsTrail.controller.CombatController;
|
||||
import com.gpl.rpg.AndorsTrail.controller.Controller;
|
||||
import com.gpl.rpg.AndorsTrail.controller.MapController;
|
||||
import com.gpl.rpg.AndorsTrail.controller.ConversationController;
|
||||
import com.gpl.rpg.AndorsTrail.controller.GameRoundController;
|
||||
import com.gpl.rpg.AndorsTrail.controller.MonsterSpawningController;
|
||||
@@ -19,9 +19,9 @@ import com.gpl.rpg.AndorsTrail.controller.MonsterMovementController;
|
||||
import com.gpl.rpg.AndorsTrail.controller.MovementController;
|
||||
import com.gpl.rpg.AndorsTrail.controller.InputController;
|
||||
|
||||
public final class ViewContext {
|
||||
public final class ControllerContext {
|
||||
//Controllers
|
||||
public final Controller controller;
|
||||
public final MapController mapController;
|
||||
public final GameRoundController gameRoundController;
|
||||
public final CombatController combatController;
|
||||
public final ConversationController conversationController;
|
||||
@@ -37,11 +37,11 @@ public final class ViewContext {
|
||||
public final AndorsTrailPreferences preferences;
|
||||
private final WeakReference<AndorsTrailApplication> app;
|
||||
|
||||
public ViewContext(AndorsTrailApplication app, WorldContext world) {
|
||||
public ControllerContext(AndorsTrailApplication app, WorldContext world) {
|
||||
this.app = new WeakReference<AndorsTrailApplication>(app);
|
||||
this.preferences = app.getPreferences();
|
||||
|
||||
this.controller = new Controller(this, world);
|
||||
this.mapController = new MapController(this, world);
|
||||
this.gameRoundController = new GameRoundController(this, world);
|
||||
this.combatController = new CombatController(this, world);
|
||||
this.conversationController = new ConversationController(this, world);
|
||||
@@ -3,7 +3,7 @@ package com.gpl.rpg.AndorsTrail.controller;
|
||||
import java.util.ArrayList;
|
||||
|
||||
import com.gpl.rpg.AndorsTrail.VisualEffectCollection;
|
||||
import com.gpl.rpg.AndorsTrail.context.ViewContext;
|
||||
import com.gpl.rpg.AndorsTrail.context.ControllerContext;
|
||||
import com.gpl.rpg.AndorsTrail.context.WorldContext;
|
||||
import com.gpl.rpg.AndorsTrail.model.listeners.PlayerStatsListeners;
|
||||
import com.gpl.rpg.AndorsTrail.model.ability.ActorCondition;
|
||||
@@ -25,14 +25,14 @@ import com.gpl.rpg.AndorsTrail.model.map.PredefinedMap;
|
||||
import com.gpl.rpg.AndorsTrail.model.map.MonsterSpawnArea;
|
||||
|
||||
public final class ActorStatsController {
|
||||
private final ViewContext view;
|
||||
private final ControllerContext controllers;
|
||||
private final WorldContext world;
|
||||
public final ActorConditionListeners actorConditionListeners = new ActorConditionListeners();
|
||||
public final ActorStatsListeners actorStatsListeners = new ActorStatsListeners();
|
||||
public final PlayerStatsListeners playerStatsListeners = new PlayerStatsListeners();
|
||||
|
||||
public ActorStatsController(ViewContext context, WorldContext world) {
|
||||
this.view = context;
|
||||
public ActorStatsController(ControllerContext controllers, WorldContext world) {
|
||||
this.controllers = controllers;
|
||||
this.world = world;
|
||||
}
|
||||
|
||||
@@ -193,8 +193,8 @@ public final class ActorStatsController {
|
||||
public void recalculatePlayerStats(Player player) {
|
||||
player.resetStatsToBaseTraits();
|
||||
player.recalculateLevelExperience();
|
||||
view.itemController.applyInventoryEffects(player);
|
||||
view.skillController.applySkillEffects(player);
|
||||
controllers.itemController.applyInventoryEffects(player);
|
||||
controllers.skillController.applySkillEffects(player);
|
||||
applyEffectsFromCurrentConditions(player);
|
||||
ItemController.recalculateHitEffectsFromWornItems(player);
|
||||
capActorHealthAtMax(player);
|
||||
@@ -217,7 +217,7 @@ public final class ActorStatsController {
|
||||
|
||||
applyStatsEffects(player, isFullRound);
|
||||
if (player.isDead()) {
|
||||
view.controller.handlePlayerDeath();
|
||||
controllers.mapController.handlePlayerDeath();
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -269,7 +269,7 @@ public final class ActorStatsController {
|
||||
if (monster.conditions.isEmpty()) return;
|
||||
applyStatsEffects(monster, isFullRound);
|
||||
if (monster.isDead()) {
|
||||
view.combatController.playerKilledMonster(monster);
|
||||
controllers.combatController.playerKilledMonster(monster);
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -344,7 +344,7 @@ public final class ActorStatsController {
|
||||
|
||||
private void startVisualEffect(Actor actor, VisualEffect effectToStart) {
|
||||
if (effectToStart == null) return;
|
||||
view.effectController.startEffect(
|
||||
controllers.effectController.startEffect(
|
||||
actor.position
|
||||
, effectToStart.visualEffectID
|
||||
, effectToStart.effectValue
|
||||
|
||||
@@ -8,7 +8,7 @@ import android.util.FloatMath;
|
||||
|
||||
import com.gpl.rpg.AndorsTrail.AndorsTrailPreferences;
|
||||
import com.gpl.rpg.AndorsTrail.VisualEffectCollection;
|
||||
import com.gpl.rpg.AndorsTrail.context.ViewContext;
|
||||
import com.gpl.rpg.AndorsTrail.context.ControllerContext;
|
||||
import com.gpl.rpg.AndorsTrail.context.WorldContext;
|
||||
import com.gpl.rpg.AndorsTrail.controller.VisualEffectController.VisualEffectCompletedCallback;
|
||||
import com.gpl.rpg.AndorsTrail.controller.listeners.CombatActionListeners;
|
||||
@@ -26,7 +26,7 @@ import com.gpl.rpg.AndorsTrail.model.map.MonsterSpawnArea;
|
||||
import com.gpl.rpg.AndorsTrail.util.Coord;
|
||||
|
||||
public final class CombatController implements VisualEffectCompletedCallback {
|
||||
private final ViewContext view;
|
||||
private final ControllerContext controllers;
|
||||
private final WorldContext world;
|
||||
public final CombatSelectionListeners combatSelectionListeners = new CombatSelectionListeners();
|
||||
public final CombatActionListeners combatActionListeners = new CombatActionListeners();
|
||||
@@ -36,8 +36,8 @@ public final class CombatController implements VisualEffectCompletedCallback {
|
||||
private final ArrayList<Loot> killedMonsterBags = new ArrayList<Loot>();
|
||||
private int totalExpThisFight = 0;
|
||||
|
||||
public CombatController(ViewContext view, WorldContext world) {
|
||||
this.view = view;
|
||||
public CombatController(ControllerContext controllers, WorldContext world) {
|
||||
this.controllers = controllers;
|
||||
this.world = world;
|
||||
}
|
||||
|
||||
@@ -61,10 +61,10 @@ public final class CombatController implements VisualEffectCompletedCallback {
|
||||
world.model.uiSelections.selectedPosition = null;
|
||||
world.model.uiSelections.selectedMonster = null;
|
||||
if (killedMonsterBags.isEmpty()) {
|
||||
view.gameRoundController.resume();
|
||||
controllers.gameRoundController.resume();
|
||||
} else {
|
||||
if (pickupLootBags) {
|
||||
view.itemController.lootMonsterBags(killedMonsterBags, totalExpThisFight);
|
||||
controllers.itemController.lootMonsterBags(killedMonsterBags, totalExpThisFight);
|
||||
}
|
||||
killedMonsterBags.clear();
|
||||
}
|
||||
@@ -115,7 +115,7 @@ public final class CombatController implements VisualEffectCompletedCallback {
|
||||
}
|
||||
|
||||
private boolean useAPs(int cost) {
|
||||
if (view.actorStatsController.useAPs(world.model.player, cost)) {
|
||||
if (controllers.actorStatsController.useAPs(world.model.player, cost)) {
|
||||
return true;
|
||||
} else {
|
||||
combatActionListeners.onPlayerDoesNotHaveEnoughAP();
|
||||
@@ -149,7 +149,7 @@ public final class CombatController implements VisualEffectCompletedCallback {
|
||||
|
||||
private void executeFlee(int dx, int dy) {
|
||||
// avoid monster fields when fleeing
|
||||
if (!view.movementController.findWalkablePosition(dx, dy, AndorsTrailPreferences.MOVEMENTAGGRESSIVENESS_DEFENSIVE)) return;
|
||||
if (!controllers.movementController.findWalkablePosition(dx, dy, AndorsTrailPreferences.MOVEMENTAGGRESSIVENESS_DEFENSIVE)) return;
|
||||
Monster m = world.model.currentMap.getMonsterAt(world.model.player.nextPosition);
|
||||
if (m != null) return;
|
||||
executeCombatMove(world.model.player.nextPosition);
|
||||
@@ -157,7 +157,7 @@ public final class CombatController implements VisualEffectCompletedCallback {
|
||||
|
||||
private AttackResult lastAttackResult;
|
||||
private void executePlayerAttack() {
|
||||
if (view.effectController.isRunningVisualEffect()) return;
|
||||
if (controllers.effectController.isRunningVisualEffect()) return;
|
||||
if (!useAPs(world.model.player.getAttackCost())) return;
|
||||
final Monster target = world.model.uiSelections.selectedMonster;
|
||||
|
||||
@@ -198,18 +198,18 @@ public final class CombatController implements VisualEffectCompletedCallback {
|
||||
Loot loot = world.model.currentMap.getBagOrCreateAt(killedMonster.position);
|
||||
killedMonster.createLoot(loot, player);
|
||||
|
||||
view.monsterSpawnController.remove(world.model.currentMap, killedMonster);
|
||||
view.effectController.addSplatter(world.model.currentMap, killedMonster);
|
||||
controllers.monsterSpawnController.remove(world.model.currentMap, killedMonster);
|
||||
controllers.effectController.addSplatter(world.model.currentMap, killedMonster);
|
||||
|
||||
view.actorStatsController.addActorAP(player, player.getSkillLevel(SkillCollection.SKILL_CLEAVE) * SkillCollection.PER_SKILLPOINT_INCREASE_CLEAVE_AP);
|
||||
view.actorStatsController.addActorHealth(player, player.getSkillLevel(SkillCollection.SKILL_EATER) * SkillCollection.PER_SKILLPOINT_INCREASE_EATER_HEALTH);
|
||||
controllers.actorStatsController.addActorAP(player, player.getSkillLevel(SkillCollection.SKILL_CLEAVE) * SkillCollection.PER_SKILLPOINT_INCREASE_CLEAVE_AP);
|
||||
controllers.actorStatsController.addActorHealth(player, player.getSkillLevel(SkillCollection.SKILL_EATER) * SkillCollection.PER_SKILLPOINT_INCREASE_EATER_HEALTH);
|
||||
|
||||
world.model.statistics.addMonsterKill(killedMonster.getMonsterTypeID());
|
||||
view.actorStatsController.addExperience(loot.exp);
|
||||
controllers.actorStatsController.addExperience(loot.exp);
|
||||
|
||||
totalExpThisFight += loot.exp;
|
||||
loot.exp = 0;
|
||||
view.actorStatsController.applyKillEffectsToPlayer(player);
|
||||
controllers.actorStatsController.applyKillEffectsToPlayer(player);
|
||||
|
||||
if (!loot.hasItems()) {
|
||||
world.model.currentMap.removeGroundLoot(loot);
|
||||
@@ -248,7 +248,7 @@ public final class CombatController implements VisualEffectCompletedCallback {
|
||||
}
|
||||
|
||||
world.model.player.nextPosition.set(dest);
|
||||
view.movementController.moveToNextIfPossible(false);
|
||||
controllers.movementController.moveToNextIfPossible(false);
|
||||
|
||||
if (canExitCombat()) exitCombat(true);
|
||||
|
||||
@@ -268,22 +268,22 @@ public final class CombatController implements VisualEffectCompletedCallback {
|
||||
}
|
||||
};
|
||||
private void waitForNextMonsterAction() {
|
||||
if (view.preferences.attackspeed_milliseconds <= 0) {
|
||||
if (controllers.preferences.attackspeed_milliseconds <= 0) {
|
||||
handleNextMonsterAction();
|
||||
} else {
|
||||
monsterTurnHandler.sendEmptyMessageDelayed(0, view.preferences.attackspeed_milliseconds);
|
||||
monsterTurnHandler.sendEmptyMessageDelayed(0, controllers.preferences.attackspeed_milliseconds);
|
||||
}
|
||||
}
|
||||
|
||||
public void beginMonsterTurn(boolean isFirstRound) {
|
||||
view.actorStatsController.setActorMinAP(world.model.player);
|
||||
controllers.actorStatsController.setActorMinAP(world.model.player);
|
||||
world.model.uiSelections.isPlayersCombatTurn = false;
|
||||
for (MonsterSpawnArea a : world.model.currentMap.spawnAreas) {
|
||||
for (Monster m : a.monsters) {
|
||||
view.actorStatsController.setActorMaxAP(m);
|
||||
controllers.actorStatsController.setActorMaxAP(m);
|
||||
}
|
||||
}
|
||||
if (!isFirstRound) view.gameRoundController.onNewMonsterRound();
|
||||
if (!isFirstRound) controllers.gameRoundController.onNewMonsterRound();
|
||||
handleNextMonsterAction();
|
||||
}
|
||||
|
||||
@@ -312,7 +312,7 @@ public final class CombatController implements VisualEffectCompletedCallback {
|
||||
endMonsterTurn();
|
||||
return;
|
||||
}
|
||||
view.actorStatsController.useAPs(currentActiveMonster, currentActiveMonster.getAttackCost());
|
||||
controllers.actorStatsController.useAPs(currentActiveMonster, currentActiveMonster.getAttackCost());
|
||||
|
||||
combatTurnListeners.onMonsterIsAttacking(currentActiveMonster);
|
||||
AttackResult attack = monsterAttacks(currentActiveMonster);
|
||||
@@ -343,18 +343,18 @@ public final class CombatController implements VisualEffectCompletedCallback {
|
||||
|
||||
private void monsterAttackCompleted() {
|
||||
if (lastAttackResult.targetDied) {
|
||||
view.controller.handlePlayerDeath();
|
||||
controllers.mapController.handlePlayerDeath();
|
||||
return;
|
||||
}
|
||||
handleNextMonsterAction();
|
||||
}
|
||||
|
||||
private void startAttackEffect(AttackResult attack, final Coord position, VisualEffectCompletedCallback callback, int callbackValue) {
|
||||
if (view.preferences.attackspeed_milliseconds <= 0) {
|
||||
if (controllers.preferences.attackspeed_milliseconds <= 0) {
|
||||
callback.onVisualEffectCompleted(callbackValue);
|
||||
return;
|
||||
}
|
||||
view.effectController.startEffect(
|
||||
controllers.effectController.startEffect(
|
||||
position
|
||||
, VisualEffectCollection.EFFECT_BLOOD
|
||||
, attack.damage
|
||||
@@ -367,8 +367,8 @@ public final class CombatController implements VisualEffectCompletedCallback {
|
||||
}
|
||||
|
||||
private void newPlayerTurn(boolean isFirstRound) {
|
||||
view.actorStatsController.setActorMaxAP(world.model.player);
|
||||
if (!isFirstRound) view.gameRoundController.onNewPlayerRound();
|
||||
controllers.actorStatsController.setActorMaxAP(world.model.player);
|
||||
if (!isFirstRound) controllers.gameRoundController.onNewPlayerRound();
|
||||
world.model.uiSelections.isPlayersCombatTurn = true;
|
||||
combatTurnListeners.onNewPlayerTurn();
|
||||
}
|
||||
@@ -413,13 +413,13 @@ public final class CombatController implements VisualEffectCompletedCallback {
|
||||
|
||||
private AttackResult playerAttacks(Monster currentMonster) {
|
||||
AttackResult result = attack(world.model.player, currentMonster);
|
||||
view.skillController.applySkillEffectsFromPlayerAttack(result, currentMonster);
|
||||
controllers.skillController.applySkillEffectsFromPlayerAttack(result, currentMonster);
|
||||
return result;
|
||||
}
|
||||
|
||||
private AttackResult monsterAttacks(Monster currentMonster) {
|
||||
AttackResult result = attack(currentMonster, world.model.player);
|
||||
view.skillController.applySkillEffectsFromMonsterAttack(result, currentMonster);
|
||||
controllers.skillController.applySkillEffectsFromMonsterAttack(result, currentMonster);
|
||||
return result;
|
||||
}
|
||||
|
||||
@@ -447,7 +447,7 @@ public final class CombatController implements VisualEffectCompletedCallback {
|
||||
}
|
||||
damage -= target.getDamageResistance();
|
||||
if (damage < 0) damage = 0;
|
||||
view.actorStatsController.removeActorHealth(target, damage);
|
||||
controllers.actorStatsController.removeActorHealth(target, damage);
|
||||
|
||||
applyAttackHitStatusEffects(attacker, target);
|
||||
|
||||
@@ -459,7 +459,7 @@ public final class CombatController implements VisualEffectCompletedCallback {
|
||||
if (onHitEffects == null) return;
|
||||
|
||||
for (ItemTraits_OnUse e : onHitEffects) {
|
||||
view.actorStatsController.applyUseEffect(attacker, target, e);
|
||||
controllers.actorStatsController.applyUseEffect(attacker, target, e);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
package com.gpl.rpg.AndorsTrail.controller;
|
||||
|
||||
import com.gpl.rpg.AndorsTrail.context.ViewContext;
|
||||
import com.gpl.rpg.AndorsTrail.context.ControllerContext;
|
||||
import com.gpl.rpg.AndorsTrail.context.WorldContext;
|
||||
import com.gpl.rpg.AndorsTrail.conversation.Phrase;
|
||||
import com.gpl.rpg.AndorsTrail.conversation.Phrase.Reply;
|
||||
@@ -20,11 +20,11 @@ import java.util.ArrayList;
|
||||
|
||||
public final class ConversationController {
|
||||
|
||||
private final ViewContext view;
|
||||
private final ControllerContext controllers;
|
||||
private final WorldContext world;
|
||||
|
||||
public ConversationController(ViewContext view, WorldContext world) {
|
||||
this.view = view;
|
||||
public ConversationController(ControllerContext controllers, WorldContext world) {
|
||||
this.controllers = controllers;
|
||||
this.world = world;
|
||||
}
|
||||
|
||||
@@ -51,13 +51,13 @@ public final class ConversationController {
|
||||
|
||||
ActorConditionType conditionType = world.actorConditionsTypes.getActorConditionType(reward.rewardID);
|
||||
ActorConditionEffect e = new ActorConditionEffect(conditionType, magnitude, duration, always);
|
||||
view.actorStatsController.applyActorCondition(player, e);
|
||||
controllers.actorStatsController.applyActorCondition(player, e);
|
||||
result.actorConditions.add(e);
|
||||
break;
|
||||
case Reward.REWARD_TYPE_SKILL_INCREASE:
|
||||
int skillID = Integer.parseInt(reward.rewardID);
|
||||
SkillInfo skill = world.skills.getSkill(skillID);
|
||||
boolean addedSkill = view.skillController.levelUpSkillByQuest(player, skill);
|
||||
boolean addedSkill = controllers.skillController.levelUpSkillByQuest(player, skill);
|
||||
if (addedSkill) {
|
||||
result.skillIncrease.add(skill);
|
||||
}
|
||||
@@ -83,7 +83,7 @@ public final class ConversationController {
|
||||
}
|
||||
|
||||
player.inventory.add(result.loot);
|
||||
view.actorStatsController.addExperience(result.loot.exp);
|
||||
controllers.actorStatsController.addExperience(result.loot.exp);
|
||||
return result;
|
||||
}
|
||||
|
||||
|
||||
@@ -1,19 +1,19 @@
|
||||
package com.gpl.rpg.AndorsTrail.controller;
|
||||
|
||||
import com.gpl.rpg.AndorsTrail.context.ViewContext;
|
||||
import com.gpl.rpg.AndorsTrail.context.ControllerContext;
|
||||
import com.gpl.rpg.AndorsTrail.context.WorldContext;
|
||||
import com.gpl.rpg.AndorsTrail.controller.listeners.GameRoundListeners;
|
||||
import com.gpl.rpg.AndorsTrail.util.TimedMessageTask;
|
||||
|
||||
public final class GameRoundController implements TimedMessageTask.Callback {
|
||||
|
||||
private final ViewContext view;
|
||||
private final ControllerContext controllers;
|
||||
private final WorldContext world;
|
||||
private final TimedMessageTask roundTimer;
|
||||
public final GameRoundListeners gameRoundListeners = new GameRoundListeners();
|
||||
|
||||
public GameRoundController(ViewContext context, WorldContext world) {
|
||||
this.view = context;
|
||||
public GameRoundController(ControllerContext controllers, WorldContext world) {
|
||||
this.controllers = controllers;
|
||||
this.world = world;
|
||||
this.roundTimer = new TimedMessageTask(this, Constants.TICK_DELAY, true);
|
||||
}
|
||||
@@ -64,9 +64,9 @@ public final class GameRoundController implements TimedMessageTask.Callback {
|
||||
}
|
||||
|
||||
public void onNewFullRound() {
|
||||
view.controller.resetMapsNotRecentlyVisited();
|
||||
view.actorStatsController.applyConditionsToMonsters(world.model.currentMap, true);
|
||||
view.actorStatsController.applyConditionsToPlayer(world.model.player, true);
|
||||
controllers.mapController.resetMapsNotRecentlyVisited();
|
||||
controllers.actorStatsController.applyConditionsToMonsters(world.model.currentMap, true);
|
||||
controllers.actorStatsController.applyConditionsToPlayer(world.model.player, true);
|
||||
gameRoundListeners.onNewFullRound();
|
||||
}
|
||||
|
||||
@@ -76,18 +76,18 @@ public final class GameRoundController implements TimedMessageTask.Callback {
|
||||
gameRoundListeners.onNewRound();
|
||||
}
|
||||
public void onNewPlayerRound() {
|
||||
view.actorStatsController.applyConditionsToPlayer(world.model.player, false);
|
||||
view.actorStatsController.applySkillEffectsForNewRound(world.model.player, world.model.currentMap);
|
||||
controllers.actorStatsController.applyConditionsToPlayer(world.model.player, false);
|
||||
controllers.actorStatsController.applySkillEffectsForNewRound(world.model.player, world.model.currentMap);
|
||||
}
|
||||
public void onNewMonsterRound() {
|
||||
view.actorStatsController.applyConditionsToMonsters(world.model.currentMap, false);
|
||||
controllers.actorStatsController.applyConditionsToMonsters(world.model.currentMap, false);
|
||||
}
|
||||
|
||||
private void onNewTick() {
|
||||
view.monsterMovementController.moveMonsters();
|
||||
view.monsterSpawnController.maybeSpawn(world.model.currentMap);
|
||||
view.monsterMovementController.attackWithAgressiveMonsters();
|
||||
view.effectController.updateSplatters(world.model.currentMap);
|
||||
controllers.monsterMovementController.moveMonsters();
|
||||
controllers.monsterSpawnController.maybeSpawn(world.model.currentMap);
|
||||
controllers.monsterMovementController.attackWithAgressiveMonsters();
|
||||
controllers.effectController.updateSplatters(world.model.currentMap);
|
||||
gameRoundListeners.onNewTick();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -5,12 +5,12 @@ import android.view.View;
|
||||
import android.view.View.OnClickListener;
|
||||
import android.view.View.OnLongClickListener;
|
||||
|
||||
import com.gpl.rpg.AndorsTrail.context.ViewContext;
|
||||
import com.gpl.rpg.AndorsTrail.context.ControllerContext;
|
||||
import com.gpl.rpg.AndorsTrail.context.WorldContext;
|
||||
import com.gpl.rpg.AndorsTrail.util.Coord;
|
||||
|
||||
public final class InputController implements OnClickListener, OnLongClickListener{
|
||||
private final ViewContext view;
|
||||
private final ControllerContext controllers;
|
||||
private final WorldContext world;
|
||||
|
||||
private final Coord lastTouchPosition_tileCoords = new Coord();
|
||||
@@ -18,8 +18,8 @@ public final class InputController implements OnClickListener, OnLongClickListen
|
||||
private int lastTouchPosition_dy = 0;
|
||||
private long lastTouchEventTime = 0;
|
||||
|
||||
public InputController(ViewContext view, WorldContext world) {
|
||||
this.view = view;
|
||||
public InputController(ControllerContext controllers, WorldContext world) {
|
||||
this.controllers = controllers;
|
||||
this.world = world;
|
||||
}
|
||||
|
||||
@@ -52,14 +52,14 @@ public final class InputController implements OnClickListener, OnLongClickListen
|
||||
public void onRelativeMovement(int dx, int dy) {
|
||||
if (!allowInputInterval()) return;
|
||||
if (world.model.uiSelections.isInCombat) {
|
||||
view.combatController.executeMoveAttack(dx, dy);
|
||||
controllers.combatController.executeMoveAttack(dx, dy);
|
||||
} else {
|
||||
view.movementController.startMovement(dx, dy, null);
|
||||
controllers.movementController.startMovement(dx, dy, null);
|
||||
}
|
||||
}
|
||||
|
||||
public void onKeyboardCancel() {
|
||||
view.movementController.stopMovement();
|
||||
controllers.movementController.stopMovement();
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -76,7 +76,7 @@ public final class InputController implements OnClickListener, OnLongClickListen
|
||||
if (Math.abs(lastTouchPosition_dx) > 1) return false;
|
||||
if (Math.abs(lastTouchPosition_dy) > 1) return false;
|
||||
|
||||
view.combatController.setCombatSelection(lastTouchPosition_tileCoords);
|
||||
controllers.combatController.setCombatSelection(lastTouchPosition_tileCoords);
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
@@ -90,7 +90,7 @@ public final class InputController implements OnClickListener, OnLongClickListen
|
||||
}
|
||||
|
||||
public void onTouchCancell() {
|
||||
view.movementController.stopMovement();
|
||||
controllers.movementController.stopMovement();
|
||||
}
|
||||
|
||||
public boolean onTouchedTile(int tile_x, int tile_y) {
|
||||
@@ -100,7 +100,7 @@ public final class InputController implements OnClickListener, OnLongClickListen
|
||||
|
||||
if (world.model.uiSelections.isInCombat) return false;
|
||||
|
||||
view.movementController.startMovement(lastTouchPosition_dx, lastTouchPosition_dy, lastTouchPosition_tileCoords);
|
||||
controllers.movementController.startMovement(lastTouchPosition_dx, lastTouchPosition_dy, lastTouchPosition_tileCoords);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4,7 +4,7 @@ import java.util.ArrayList;
|
||||
import java.util.Collection;
|
||||
|
||||
import com.gpl.rpg.AndorsTrail.AndorsTrailPreferences;
|
||||
import com.gpl.rpg.AndorsTrail.context.ViewContext;
|
||||
import com.gpl.rpg.AndorsTrail.context.ControllerContext;
|
||||
import com.gpl.rpg.AndorsTrail.context.WorldContext;
|
||||
import com.gpl.rpg.AndorsTrail.controller.listeners.LootBagListeners;
|
||||
import com.gpl.rpg.AndorsTrail.controller.listeners.QuickSlotListeners;
|
||||
@@ -21,13 +21,13 @@ import com.gpl.rpg.AndorsTrail.model.item.ItemContainer.ItemEntry;
|
||||
|
||||
public final class ItemController {
|
||||
|
||||
private final ViewContext view;
|
||||
private final ControllerContext controllers;
|
||||
private final WorldContext world;
|
||||
public final QuickSlotListeners quickSlotListeners = new QuickSlotListeners();
|
||||
public final LootBagListeners lootBagListeners = new LootBagListeners();
|
||||
|
||||
public ItemController(ViewContext context, WorldContext world) {
|
||||
this.view = context;
|
||||
public ItemController(ControllerContext controllers, WorldContext world) {
|
||||
this.controllers = controllers;
|
||||
this.world = world;
|
||||
}
|
||||
|
||||
@@ -41,7 +41,7 @@ public final class ItemController {
|
||||
if (!type.isEquippable()) return;
|
||||
final Player player = world.model.player;
|
||||
if (world.model.uiSelections.isInCombat) {
|
||||
boolean changed = view.actorStatsController.useAPs(player, player.getReequipCost());
|
||||
boolean changed = controllers.actorStatsController.useAPs(player, player.getReequipCost());
|
||||
if (!changed) return;
|
||||
}
|
||||
|
||||
@@ -55,8 +55,8 @@ public final class ItemController {
|
||||
}
|
||||
|
||||
player.inventory.wear[slot] = type;
|
||||
view.actorStatsController.addConditionsFromEquippedItem(player, type);
|
||||
view.actorStatsController.recalculatePlayerStats(player);
|
||||
controllers.actorStatsController.addConditionsFromEquippedItem(player, type);
|
||||
controllers.actorStatsController.recalculatePlayerStats(player);
|
||||
}
|
||||
|
||||
public void unequipSlot(ItemType type, int slot) {
|
||||
@@ -65,12 +65,12 @@ public final class ItemController {
|
||||
if (player.inventory.isEmptySlot(slot)) return;
|
||||
|
||||
if (world.model.uiSelections.isInCombat) {
|
||||
boolean changed = view.actorStatsController.useAPs(player, player.getReequipCost());
|
||||
boolean changed = controllers.actorStatsController.useAPs(player, player.getReequipCost());
|
||||
if (!changed) return;
|
||||
}
|
||||
|
||||
unequipSlot(player, slot);
|
||||
view.actorStatsController.recalculatePlayerStats(player);
|
||||
controllers.actorStatsController.recalculatePlayerStats(player);
|
||||
}
|
||||
|
||||
private void unequipSlot(Player player, int slot) {
|
||||
@@ -78,20 +78,20 @@ public final class ItemController {
|
||||
if (removedItemType == null) return;
|
||||
player.inventory.addItem(removedItemType);
|
||||
player.inventory.wear[slot] = null;
|
||||
view.actorStatsController.removeConditionsFromUnequippedItem(player, removedItemType);
|
||||
controllers.actorStatsController.removeConditionsFromUnequippedItem(player, removedItemType);
|
||||
}
|
||||
|
||||
public void useItem(ItemType type) {
|
||||
if (!type.isUsable()) return;
|
||||
final Player player = world.model.player;
|
||||
if (world.model.uiSelections.isInCombat) {
|
||||
boolean changed = view.actorStatsController.useAPs(player, player.getUseItemCost());
|
||||
boolean changed = controllers.actorStatsController.useAPs(player, player.getUseItemCost());
|
||||
if (!changed) return;
|
||||
}
|
||||
|
||||
if (!player.inventory.removeItem(type.id, 1)) return;
|
||||
|
||||
view.actorStatsController.applyUseEffect(player, null, type.effects_use);
|
||||
controllers.actorStatsController.applyUseEffect(player, null, type.effects_use);
|
||||
world.model.statistics.addItemUsage(type);
|
||||
|
||||
//TODO: provide feedback that the item has been used.
|
||||
@@ -100,29 +100,29 @@ public final class ItemController {
|
||||
|
||||
public void playerSteppedOnLootBag(Loot loot) {
|
||||
if (loot.isVisible && pickupLootBagWithoutConfirmation()) {
|
||||
view.controller.worldEventListeners.onPlayerPickedUpGroundLoot(loot);
|
||||
controllers.mapController.worldEventListeners.onPlayerPickedUpGroundLoot(loot);
|
||||
pickupAll(loot);
|
||||
removeLootBagIfEmpty(loot);
|
||||
} else {
|
||||
view.controller.worldEventListeners.onPlayerSteppedOnGroundLoot(loot);
|
||||
controllers.mapController.worldEventListeners.onPlayerSteppedOnGroundLoot(loot);
|
||||
consumeNonItemLoot(loot);
|
||||
}
|
||||
}
|
||||
|
||||
public void lootMonsterBags(Collection<Loot> killedMonsterBags, int totalExpThisFight) {
|
||||
if (pickupLootBagWithoutConfirmation()) {
|
||||
view.controller.worldEventListeners.onPlayerPickedUpMonsterLoot(killedMonsterBags, totalExpThisFight);
|
||||
controllers.mapController.worldEventListeners.onPlayerPickedUpMonsterLoot(killedMonsterBags, totalExpThisFight);
|
||||
pickupAll(killedMonsterBags);
|
||||
removeLootBagIfEmpty(killedMonsterBags);
|
||||
view.gameRoundController.resume();
|
||||
controllers.gameRoundController.resume();
|
||||
} else {
|
||||
view.controller.worldEventListeners.onPlayerFoundMonsterLoot(killedMonsterBags, totalExpThisFight);
|
||||
controllers.mapController.worldEventListeners.onPlayerFoundMonsterLoot(killedMonsterBags, totalExpThisFight);
|
||||
consumeNonItemLoot(killedMonsterBags);
|
||||
}
|
||||
}
|
||||
|
||||
private boolean pickupLootBagWithoutConfirmation() {
|
||||
if (view.preferences.displayLoot == AndorsTrailPreferences.DISPLAYLOOT_DIALOG) return false;
|
||||
if (controllers.preferences.displayLoot == AndorsTrailPreferences.DISPLAYLOOT_DIALOG) return false;
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -163,7 +163,7 @@ public final class ItemController {
|
||||
if (SkillController.isDualWielding(mainHandItem, type)) return;
|
||||
}
|
||||
if (type.effects_equip != null && type.effects_equip.stats != null)
|
||||
view.actorStatsController.applyAbilityEffects(player, type.effects_equip.stats, 1);
|
||||
controllers.actorStatsController.applyAbilityEffects(player, type.effects_equip.stats, 1);
|
||||
}
|
||||
|
||||
public static void recalculateHitEffectsFromWornItems(Player player) {
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
package com.gpl.rpg.AndorsTrail.controller;
|
||||
|
||||
import com.gpl.rpg.AndorsTrail.context.ViewContext;
|
||||
import com.gpl.rpg.AndorsTrail.context.ControllerContext;
|
||||
import com.gpl.rpg.AndorsTrail.context.WorldContext;
|
||||
import com.gpl.rpg.AndorsTrail.controller.listeners.WorldEventListeners;
|
||||
import com.gpl.rpg.AndorsTrail.model.ability.SkillCollection;
|
||||
@@ -10,14 +10,14 @@ import com.gpl.rpg.AndorsTrail.model.map.PredefinedMap;
|
||||
import com.gpl.rpg.AndorsTrail.model.map.MapObject;
|
||||
import com.gpl.rpg.AndorsTrail.util.Coord;
|
||||
|
||||
public final class Controller {
|
||||
public final class MapController {
|
||||
|
||||
private final ViewContext view;
|
||||
private final ControllerContext controllers;
|
||||
private final WorldContext world;
|
||||
public final WorldEventListeners worldEventListeners = new WorldEventListeners();
|
||||
|
||||
public Controller(ViewContext context, WorldContext world) {
|
||||
this.view = context;
|
||||
public MapController(ControllerContext controllers, WorldContext world) {
|
||||
this.controllers = controllers;
|
||||
this.world = world;
|
||||
}
|
||||
|
||||
@@ -31,7 +31,7 @@ public final class Controller {
|
||||
if (o.map == null || o.place == null) return;
|
||||
int offset_x = position.x - o.position.topLeft.x;
|
||||
int offset_y = position.y - o.position.topLeft.y;
|
||||
view.movementController.placePlayerAsyncAt(MapObject.MAPEVENT_NEWMAP, o.map, o.place, offset_x, offset_y);
|
||||
controllers.movementController.placePlayerAsyncAt(MapObject.MAPEVENT_NEWMAP, o.map, o.place, offset_x, offset_y);
|
||||
break;
|
||||
case MapObject.MAPEVENT_REST:
|
||||
steppedOnRestArea(o);
|
||||
@@ -40,7 +40,7 @@ public final class Controller {
|
||||
}
|
||||
|
||||
private void steppedOnRestArea(MapObject area) {
|
||||
if (view.preferences.confirmRest) {
|
||||
if (controllers.preferences.confirmRest) {
|
||||
worldEventListeners.onPlayerSteppedOnRestArea(area);
|
||||
} else {
|
||||
rest(area);
|
||||
@@ -49,11 +49,11 @@ public final class Controller {
|
||||
|
||||
public void steppedOnMonster(Monster m, Coord p) {
|
||||
if (m.isAgressive()) {
|
||||
view.combatController.setCombatSelection(m, p);
|
||||
if (view.preferences.confirmAttack) {
|
||||
controllers.combatController.setCombatSelection(m, p);
|
||||
if (controllers.preferences.confirmAttack) {
|
||||
worldEventListeners.onPlayerSteppedOnMonster(m);
|
||||
} else {
|
||||
view.combatController.enterCombat(CombatController.BEGIN_TURN_PLAYER);
|
||||
controllers.combatController.enterCombat(CombatController.BEGIN_TURN_PLAYER);
|
||||
}
|
||||
} else {
|
||||
worldEventListeners.onPlayerStartedConversation(m, m.getPhraseID());
|
||||
@@ -61,29 +61,29 @@ public final class Controller {
|
||||
}
|
||||
|
||||
public void handlePlayerDeath() {
|
||||
view.combatController.exitCombat(false);
|
||||
controllers.combatController.exitCombat(false);
|
||||
final Player player = world.model.player;
|
||||
int lostExp = player.getCurrentLevelExperience() * Constants.PERCENT_EXP_LOST_WHEN_DIED / 100;
|
||||
lostExp -= lostExp * player.getSkillLevel(SkillCollection.SKILL_LOWER_EXPLOSS) * SkillCollection.PER_SKILLPOINT_INCREASE_EXPLOSS_PERCENT / 100;
|
||||
|
||||
if (lostExp < 0) lostExp = 0;
|
||||
view.actorStatsController.addExperience(-lostExp);
|
||||
controllers.actorStatsController.addExperience(-lostExp);
|
||||
world.model.statistics.addPlayerDeath(lostExp);
|
||||
view.movementController.respawnPlayerAsync();
|
||||
controllers.movementController.respawnPlayerAsync();
|
||||
lotsOfTimePassed();
|
||||
worldEventListeners.onPlayerDied(lostExp);
|
||||
}
|
||||
|
||||
public void lotsOfTimePassed() {
|
||||
final Player player = world.model.player;
|
||||
view.actorStatsController.removeAllTemporaryConditions(player);
|
||||
view.actorStatsController.recalculatePlayerStats(player);
|
||||
view.actorStatsController.setActorMaxAP(player);
|
||||
view.actorStatsController.setActorMaxHealth(player);
|
||||
controllers.actorStatsController.removeAllTemporaryConditions(player);
|
||||
controllers.actorStatsController.recalculatePlayerStats(player);
|
||||
controllers.actorStatsController.setActorMaxAP(player);
|
||||
controllers.actorStatsController.setActorMaxHealth(player);
|
||||
for (PredefinedMap m : world.maps.predefinedMaps) {
|
||||
m.resetTemporaryData();
|
||||
}
|
||||
view.monsterSpawnController.spawnAll(world.model.currentMap);
|
||||
controllers.monsterSpawnController.spawnAll(world.model.currentMap);
|
||||
}
|
||||
|
||||
public void rest(MapObject area) {
|
||||
@@ -1,6 +1,6 @@
|
||||
package com.gpl.rpg.AndorsTrail.controller;
|
||||
|
||||
import com.gpl.rpg.AndorsTrail.context.ViewContext;
|
||||
import com.gpl.rpg.AndorsTrail.context.ControllerContext;
|
||||
import com.gpl.rpg.AndorsTrail.context.WorldContext;
|
||||
import com.gpl.rpg.AndorsTrail.controller.listeners.MonsterMovementListeners;
|
||||
import com.gpl.rpg.AndorsTrail.model.ability.SkillCollection;
|
||||
@@ -12,12 +12,12 @@ import com.gpl.rpg.AndorsTrail.util.Coord;
|
||||
import com.gpl.rpg.AndorsTrail.util.CoordRect;
|
||||
|
||||
public final class MonsterMovementController {
|
||||
private final ViewContext view;
|
||||
private final ControllerContext controllers;
|
||||
private final WorldContext world;
|
||||
public final MonsterMovementListeners monsterMovementListeners = new MonsterMovementListeners();
|
||||
|
||||
public MonsterMovementController(ViewContext context, WorldContext world) {
|
||||
this.view = context;
|
||||
public MonsterMovementController(ControllerContext controllers, WorldContext world) {
|
||||
this.controllers = controllers;
|
||||
this.world = world;
|
||||
}
|
||||
|
||||
@@ -42,7 +42,7 @@ public final class MonsterMovementController {
|
||||
int aggressionChanceBias = world.model.player.getSkillLevel(SkillCollection.SKILL_EVASION) * SkillCollection.PER_SKILLPOINT_INCREASE_EVASION_MONSTER_ATTACK_CHANCE_PERCENTAGE;
|
||||
if (Constants.roll100(Constants.MONSTER_AGGRESSION_CHANCE_PERCENT - aggressionChanceBias)) {
|
||||
monsterMovementListeners.onMonsterSteppedOnPlayer(m);
|
||||
view.combatController.monsterSteppedOnPlayer(m);
|
||||
controllers.combatController.monsterSteppedOnPlayer(m);
|
||||
return;
|
||||
}
|
||||
}
|
||||
@@ -90,7 +90,7 @@ public final class MonsterMovementController {
|
||||
return;
|
||||
}
|
||||
monsterMovementListeners.onMonsterSteppedOnPlayer(m);
|
||||
view.combatController.monsterSteppedOnPlayer(m);
|
||||
controllers.combatController.monsterSteppedOnPlayer(m);
|
||||
} else {
|
||||
CoordRect previousPosition = new CoordRect(new Coord(m.position), m.rectPosition.size);
|
||||
m.position.set(m.nextPosition.topLeft);
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
package com.gpl.rpg.AndorsTrail.controller;
|
||||
|
||||
import com.gpl.rpg.AndorsTrail.context.ViewContext;
|
||||
import com.gpl.rpg.AndorsTrail.context.ControllerContext;
|
||||
import com.gpl.rpg.AndorsTrail.context.WorldContext;
|
||||
import com.gpl.rpg.AndorsTrail.controller.listeners.MonsterSpawnListeners;
|
||||
import com.gpl.rpg.AndorsTrail.model.actor.Monster;
|
||||
@@ -12,12 +12,12 @@ import com.gpl.rpg.AndorsTrail.util.CoordRect;
|
||||
import com.gpl.rpg.AndorsTrail.util.Size;
|
||||
|
||||
public final class MonsterSpawningController {
|
||||
private final ViewContext view;
|
||||
private final ControllerContext controllers;
|
||||
private final WorldContext world;
|
||||
public final MonsterSpawnListeners monsterSpawnListeners = new MonsterSpawnListeners();
|
||||
|
||||
public MonsterSpawningController(ViewContext view, WorldContext world) {
|
||||
this.view = view;
|
||||
public MonsterSpawningController(ControllerContext controllers, WorldContext world) {
|
||||
this.controllers = controllers;
|
||||
this.world = world;
|
||||
}
|
||||
|
||||
@@ -26,7 +26,7 @@ public final class MonsterSpawningController {
|
||||
final boolean wasAbleToSpawn = spawnInArea(map, area, null);
|
||||
if (!wasAbleToSpawn) break;
|
||||
}
|
||||
view.actorStatsController.healAllMonsters(area);
|
||||
controllers.actorStatsController.healAllMonsters(area);
|
||||
}
|
||||
|
||||
public void maybeSpawn(PredefinedMap map) {
|
||||
|
||||
@@ -4,7 +4,7 @@ import android.content.res.Resources;
|
||||
import android.os.AsyncTask;
|
||||
|
||||
import com.gpl.rpg.AndorsTrail.AndorsTrailPreferences;
|
||||
import com.gpl.rpg.AndorsTrail.context.ViewContext;
|
||||
import com.gpl.rpg.AndorsTrail.context.ControllerContext;
|
||||
import com.gpl.rpg.AndorsTrail.context.WorldContext;
|
||||
import com.gpl.rpg.AndorsTrail.controller.listeners.PlayerMovementListeners;
|
||||
import com.gpl.rpg.AndorsTrail.model.ModelContainer;
|
||||
@@ -22,13 +22,13 @@ import com.gpl.rpg.AndorsTrail.util.L;
|
||||
import com.gpl.rpg.AndorsTrail.util.TimedMessageTask;
|
||||
|
||||
public final class MovementController implements TimedMessageTask.Callback {
|
||||
private final ViewContext view;
|
||||
private final ControllerContext controllers;
|
||||
private final WorldContext world;
|
||||
private final TimedMessageTask movementHandler;
|
||||
public final PlayerMovementListeners playerMovementListeners = new PlayerMovementListeners();
|
||||
|
||||
public MovementController(ViewContext context, WorldContext world) {
|
||||
this.view = context;
|
||||
public MovementController(ControllerContext controllers, WorldContext world) {
|
||||
this.controllers = controllers;
|
||||
this.world = world;
|
||||
this.movementHandler = new TimedMessageTask(this, Constants.MINIMUM_INPUT_INTERVAL, false);
|
||||
}
|
||||
@@ -40,7 +40,7 @@ public final class MovementController implements TimedMessageTask.Callback {
|
||||
protected Void doInBackground(Void... arg0) {
|
||||
stopMovement();
|
||||
|
||||
placePlayerAt(view.getResources(), objectType, mapName, placeName, offset_x, offset_y);
|
||||
placePlayerAt(controllers.getResources(), objectType, mapName, placeName, offset_x, offset_y);
|
||||
|
||||
return null;
|
||||
}
|
||||
@@ -50,11 +50,11 @@ public final class MovementController implements TimedMessageTask.Callback {
|
||||
super.onPostExecute(result);
|
||||
stopMovement();
|
||||
playerMovementListeners.onPlayerEnteredNewMap(world.model.currentMap, world.model.player.position);
|
||||
view.gameRoundController.resume();
|
||||
controllers.gameRoundController.resume();
|
||||
}
|
||||
|
||||
};
|
||||
view.gameRoundController.pause();
|
||||
controllers.gameRoundController.pause();
|
||||
task.execute();
|
||||
}
|
||||
|
||||
@@ -84,19 +84,19 @@ public final class MovementController implements TimedMessageTask.Callback {
|
||||
else playerVisitsMapFirstTime(newMap);
|
||||
|
||||
refreshMonsterAggressiveness(newMap, model.player);
|
||||
view.effectController.updateSplatters(newMap);
|
||||
controllers.effectController.updateSplatters(newMap);
|
||||
|
||||
}
|
||||
|
||||
private void playerVisitsMapFirstTime(PredefinedMap m) {
|
||||
m.reset();
|
||||
view.monsterSpawnController.spawnAll(m);
|
||||
controllers.monsterSpawnController.spawnAll(m);
|
||||
m.createAllContainerLoot();
|
||||
m.visited = true;
|
||||
}
|
||||
private void playerVisitsMap(PredefinedMap m) {
|
||||
// Respawn everything if a certain time has elapsed.
|
||||
if (!m.isRecentlyVisited()) view.monsterSpawnController.spawnAll(m);
|
||||
if (!m.isRecentlyVisited()) controllers.monsterSpawnController.spawnAll(m);
|
||||
}
|
||||
|
||||
private boolean mayMovePlayer() {
|
||||
@@ -111,7 +111,7 @@ public final class MovementController implements TimedMessageTask.Callback {
|
||||
|
||||
Monster m = world.model.currentMap.getMonsterAt(world.model.player.nextPosition);
|
||||
if (m != null) {
|
||||
view.controller.steppedOnMonster(m, world.model.player.nextPosition);
|
||||
controllers.mapController.steppedOnMonster(m, world.model.player.nextPosition);
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -120,15 +120,15 @@ public final class MovementController implements TimedMessageTask.Callback {
|
||||
|
||||
private boolean findWalkablePosition(int dx, int dy) {
|
||||
// try to move with movementAggresiveness, if that fails fall back to MOVEMENTAGGRESSIVENESS_NORMAL
|
||||
if (findWalkablePosition(dx, dy, view.preferences.movementAggressiveness)) return true;
|
||||
if (findWalkablePosition(dx, dy, controllers.preferences.movementAggressiveness)) return true;
|
||||
|
||||
if (view.preferences.movementAggressiveness == AndorsTrailPreferences.MOVEMENTAGGRESSIVENESS_NORMAL) return false;
|
||||
if (controllers.preferences.movementAggressiveness == AndorsTrailPreferences.MOVEMENTAGGRESSIVENESS_NORMAL) return false;
|
||||
|
||||
return findWalkablePosition(dx, dy, AndorsTrailPreferences.MOVEMENTAGGRESSIVENESS_NORMAL);
|
||||
}
|
||||
|
||||
public boolean findWalkablePosition(int dx, int dy, int aggressiveness) {
|
||||
if (view.preferences.movementMethod == AndorsTrailPreferences.MOVEMENTMETHOD_STRAIGHT) {
|
||||
if (controllers.preferences.movementMethod == AndorsTrailPreferences.MOVEMENTMETHOD_STRAIGHT) {
|
||||
return findWalkablePosition_straight(dx, dy, aggressiveness);
|
||||
} else {
|
||||
return findWalkablePosition_directional(dx, dy, aggressiveness);
|
||||
@@ -209,26 +209,26 @@ public final class MovementController implements TimedMessageTask.Callback {
|
||||
for (MapObject o : currentMap.eventObjects) {
|
||||
if (o.type == MapObject.MAPEVENT_KEYAREA) {
|
||||
if (o.position.contains(newPosition)) {
|
||||
if (!view.controller.canEnterKeyArea(o)) return;
|
||||
if (!controllers.mapController.canEnterKeyArea(o)) return;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
player.lastPosition.set(player.position);
|
||||
player.position.set(newPosition);
|
||||
view.combatController.setCombatSelection(null, null);
|
||||
controllers.combatController.setCombatSelection(null, null);
|
||||
playerMovementListeners.onPlayerMoved(newPosition, player.lastPosition);
|
||||
|
||||
if (handleEvents) {
|
||||
MapObject o = currentMap.getEventObjectAt(newPosition);
|
||||
if (o != null) {
|
||||
if (!o.position.contains(player.lastPosition)) { // Do not trigger event if the player already was on the same MapObject before.
|
||||
view.controller.handleMapEvent(o, newPosition);
|
||||
controllers.mapController.handleMapEvent(o, newPosition);
|
||||
}
|
||||
}
|
||||
|
||||
Loot loot = currentMap.getBagAt(newPosition);
|
||||
if (loot != null) view.itemController.playerSteppedOnLootBag(loot);
|
||||
if (loot != null) controllers.itemController.playerSteppedOnLootBag(loot);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
package com.gpl.rpg.AndorsTrail.controller;
|
||||
|
||||
import com.gpl.rpg.AndorsTrail.context.ViewContext;
|
||||
import com.gpl.rpg.AndorsTrail.context.ControllerContext;
|
||||
import com.gpl.rpg.AndorsTrail.context.WorldContext;
|
||||
import com.gpl.rpg.AndorsTrail.model.AttackResult;
|
||||
import com.gpl.rpg.AndorsTrail.model.ability.ActorConditionEffect;
|
||||
@@ -16,11 +16,11 @@ import com.gpl.rpg.AndorsTrail.model.item.DropList.DropItem;
|
||||
import com.gpl.rpg.AndorsTrail.util.ConstRange;
|
||||
|
||||
public final class SkillController {
|
||||
private final ViewContext view;
|
||||
private final ControllerContext controllers;
|
||||
private final WorldContext world;
|
||||
|
||||
public SkillController(ViewContext view, WorldContext world) {
|
||||
this.view = view;
|
||||
public SkillController(ControllerContext controllers, WorldContext world) {
|
||||
this.controllers = controllers;
|
||||
this.world = world;
|
||||
}
|
||||
|
||||
@@ -38,7 +38,7 @@ public final class SkillController {
|
||||
if (player.hasCriticalMultiplierEffect()) {
|
||||
player.criticalMultiplier += player.criticalMultiplier * SkillCollection.PER_SKILLPOINT_INCREASE_BETTER_CRITICALS_PERCENT * player.getSkillLevel(SkillCollection.SKILL_BETTER_CRITICALS) / 100;
|
||||
}
|
||||
view.actorStatsController.addActorMaxAP(player, SkillCollection.PER_SKILLPOINT_INCREASE_SPEED * player.getSkillLevel(SkillCollection.SKILL_SPEED), false);
|
||||
controllers.actorStatsController.addActorMaxAP(player, SkillCollection.PER_SKILLPOINT_INCREASE_SPEED * player.getSkillLevel(SkillCollection.SKILL_SPEED), false);
|
||||
/*final int berserkLevel = player.getSkillLevel(Skills.SKILL_BERSERKER);
|
||||
if (berserkLevel > 0) {
|
||||
final int berserkHealth = player.health.max * Skills.BERSERKER_STARTS_AT_HEALTH_PERCENT / 100;
|
||||
@@ -112,7 +112,7 @@ public final class SkillController {
|
||||
public void addSkillLevel(int skillID) {
|
||||
Player player = world.model.player;
|
||||
player.skillLevels.put(skillID, player.skillLevels.get(skillID) + 1);
|
||||
view.actorStatsController.recalculatePlayerStats(player);
|
||||
controllers.actorStatsController.recalculatePlayerStats(player);
|
||||
}
|
||||
|
||||
public static int getActorConditionEffectChanceRollBias(ActorConditionEffect effect, Player player) {
|
||||
@@ -153,7 +153,7 @@ public final class SkillController {
|
||||
private void addConditionToActor(Actor target, String conditionName, int magnitude, int duration) {
|
||||
ActorConditionType conditionType = world.actorConditionsTypes.getActorConditionType(conditionName);
|
||||
ActorConditionEffect effect = new ActorConditionEffect(conditionType, magnitude, duration, null);
|
||||
view.actorStatsController.applyActorCondition(target, effect);
|
||||
controllers.actorStatsController.applyActorCondition(target, effect);
|
||||
}
|
||||
|
||||
public void applySkillEffectsFromPlayerAttack(AttackResult result, Monster monster) {
|
||||
@@ -181,7 +181,7 @@ public final class SkillController {
|
||||
public void applySkillEffectsFromMonsterAttack(AttackResult result, Monster monster) {
|
||||
if (!result.isHit) {
|
||||
if (rollForSkillChance(world.model.player, SkillCollection.SKILL_TAUNT, SkillCollection.PER_SKILLPOINT_INCREASE_TAUNT_CHANCE)) {
|
||||
view.actorStatsController.changeActorAP(monster, -SkillCollection.TAUNT_AP_LOSS, false, false);
|
||||
controllers.actorStatsController.changeActorAP(monster, -SkillCollection.TAUNT_AP_LOSS, false, false);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -7,7 +7,7 @@ import android.os.Handler;
|
||||
|
||||
import com.gpl.rpg.AndorsTrail.VisualEffectCollection;
|
||||
import com.gpl.rpg.AndorsTrail.VisualEffectCollection.VisualEffect;
|
||||
import com.gpl.rpg.AndorsTrail.context.ViewContext;
|
||||
import com.gpl.rpg.AndorsTrail.context.ControllerContext;
|
||||
import com.gpl.rpg.AndorsTrail.context.WorldContext;
|
||||
import com.gpl.rpg.AndorsTrail.controller.listeners.VisualEffectFrameListeners;
|
||||
import com.gpl.rpg.AndorsTrail.model.actor.Monster;
|
||||
@@ -21,14 +21,14 @@ import com.gpl.rpg.AndorsTrail.util.Size;
|
||||
public final class VisualEffectController {
|
||||
private int effectCount = 0;
|
||||
|
||||
private final ViewContext view;
|
||||
private final ControllerContext controllers;
|
||||
private final WorldContext world;
|
||||
private final VisualEffectCollection effectTypes;
|
||||
|
||||
public final VisualEffectFrameListeners visualEffectFrameListeners = new VisualEffectFrameListeners();
|
||||
|
||||
public VisualEffectController(ViewContext view, WorldContext world) {
|
||||
this.view = view;
|
||||
public VisualEffectController(ControllerContext controllers, WorldContext world) {
|
||||
this.controllers = controllers;
|
||||
this.world = world;
|
||||
this.effectTypes = world.visualEffectTypes;
|
||||
}
|
||||
@@ -132,11 +132,11 @@ public final class VisualEffectController {
|
||||
BloodSplatter b = map.splatters.get(i);
|
||||
if (b.removeAfter <= now) {
|
||||
map.splatters.remove(i);
|
||||
view.monsterSpawnController.monsterSpawnListeners.onSplatterRemoved(map, b.position);
|
||||
controllers.monsterSpawnController.monsterSpawnListeners.onSplatterRemoved(map, b.position);
|
||||
} else if (!b.reducedIcon && b.reduceIconAfter <= now) {
|
||||
b.reducedIcon = true;
|
||||
b.iconID++;
|
||||
view.monsterSpawnController.monsterSpawnListeners.onSplatterChanged(map, b.position);
|
||||
controllers.monsterSpawnController.monsterSpawnListeners.onSplatterChanged(map, b.position);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -145,7 +145,7 @@ public final class VisualEffectController {
|
||||
int iconID = getSplatterIconFromMonsterClass(m.getMonsterClass());
|
||||
if (iconID > 0) {
|
||||
map.splatters.add(new BloodSplatter(iconID, m.position));
|
||||
view.monsterSpawnController.monsterSpawnListeners.onSplatterAdded(map, m.position);
|
||||
controllers.monsterSpawnController.monsterSpawnListeners.onSplatterAdded(map, m.position);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -4,7 +4,7 @@ import java.io.DataInputStream;
|
||||
import java.io.DataOutputStream;
|
||||
import java.io.IOException;
|
||||
|
||||
import com.gpl.rpg.AndorsTrail.context.ViewContext;
|
||||
import com.gpl.rpg.AndorsTrail.context.ControllerContext;
|
||||
import com.gpl.rpg.AndorsTrail.context.WorldContext;
|
||||
import com.gpl.rpg.AndorsTrail.model.actor.Player;
|
||||
import com.gpl.rpg.AndorsTrail.model.map.LayeredTileMap;
|
||||
@@ -26,8 +26,8 @@ public final class ModelContainer {
|
||||
|
||||
// ====== PARCELABLE ===================================================================
|
||||
|
||||
public ModelContainer(DataInputStream src, WorldContext world, ViewContext view, int fileversion) throws IOException {
|
||||
this.player = Player.readFromParcel(src, world, view, fileversion);
|
||||
public ModelContainer(DataInputStream src, WorldContext world, ControllerContext controllers, int fileversion) throws IOException {
|
||||
this.player = Player.readFromParcel(src, world, controllers, fileversion);
|
||||
this.currentMap = world.maps.findPredefinedMap(src.readUTF());
|
||||
this.uiSelections = new InterfaceData(src, world, fileversion);
|
||||
if (uiSelections.selectedPosition != null) {
|
||||
|
||||
@@ -11,7 +11,7 @@ import android.util.FloatMath;
|
||||
import android.util.SparseIntArray;
|
||||
|
||||
import com.gpl.rpg.AndorsTrail.AndorsTrailApplication;
|
||||
import com.gpl.rpg.AndorsTrail.context.ViewContext;
|
||||
import com.gpl.rpg.AndorsTrail.context.ControllerContext;
|
||||
import com.gpl.rpg.AndorsTrail.context.WorldContext;
|
||||
import com.gpl.rpg.AndorsTrail.controller.Constants;
|
||||
import com.gpl.rpg.AndorsTrail.model.ability.ActorCondition;
|
||||
@@ -253,9 +253,9 @@ public final class Player extends Actor {
|
||||
|
||||
// ====== PARCELABLE ===================================================================
|
||||
|
||||
public static Player readFromParcel(DataInputStream src, WorldContext world, ViewContext view, int fileversion) throws IOException {
|
||||
public static Player readFromParcel(DataInputStream src, WorldContext world, ControllerContext controllers, int fileversion) throws IOException {
|
||||
Player player = new Player(src, world, fileversion);
|
||||
LegacySavegameFormatReaderForPlayer.upgradeSavegame(player, world, view, fileversion);
|
||||
LegacySavegameFormatReaderForPlayer.upgradeSavegame(player, world, controllers, fileversion);
|
||||
return player;
|
||||
}
|
||||
|
||||
|
||||
@@ -7,7 +7,7 @@ import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
|
||||
import com.gpl.rpg.AndorsTrail.AndorsTrailApplication;
|
||||
import com.gpl.rpg.AndorsTrail.context.ViewContext;
|
||||
import com.gpl.rpg.AndorsTrail.context.ControllerContext;
|
||||
import com.gpl.rpg.AndorsTrail.context.WorldContext;
|
||||
import com.gpl.rpg.AndorsTrail.util.L;
|
||||
|
||||
@@ -43,12 +43,12 @@ public final class MapCollection {
|
||||
|
||||
// ====== PARCELABLE ===================================================================
|
||||
|
||||
public void readFromParcel(DataInputStream src, WorldContext world, ViewContext view, int fileversion) throws IOException {
|
||||
public void readFromParcel(DataInputStream src, WorldContext world, ControllerContext controllers, int fileversion) throws IOException {
|
||||
int size;
|
||||
if (fileversion == 5) size = 11;
|
||||
else size = src.readInt();
|
||||
for(int i = 0; i < size; ++i) {
|
||||
predefinedMaps.get(i).readFromParcel(src, world, view, fileversion);
|
||||
predefinedMaps.get(i).readFromParcel(src, world, controllers, fileversion);
|
||||
if (i >= 40) {
|
||||
if (fileversion < 15) predefinedMaps.get(i).visited = false;
|
||||
}
|
||||
|
||||
@@ -6,7 +6,7 @@ import java.io.IOException;
|
||||
import java.util.ArrayList;
|
||||
|
||||
import com.gpl.rpg.AndorsTrail.AndorsTrailApplication;
|
||||
import com.gpl.rpg.AndorsTrail.context.ViewContext;
|
||||
import com.gpl.rpg.AndorsTrail.context.ControllerContext;
|
||||
import com.gpl.rpg.AndorsTrail.context.WorldContext;
|
||||
import com.gpl.rpg.AndorsTrail.controller.Constants;
|
||||
import com.gpl.rpg.AndorsTrail.controller.VisualEffectController.BloodSplatter;
|
||||
@@ -192,7 +192,7 @@ public final class PredefinedMap {
|
||||
|
||||
// ====== PARCELABLE ===================================================================
|
||||
|
||||
public void readFromParcel(DataInputStream src, WorldContext world, ViewContext view, int fileversion) throws IOException {
|
||||
public void readFromParcel(DataInputStream src, WorldContext world, ControllerContext controllers, int fileversion) throws IOException {
|
||||
final int loadedSpawnAreas = src.readInt();
|
||||
for(int i = 0; i < loadedSpawnAreas; ++i) {
|
||||
this.spawnAreas[i].readFromParcel(src, world, fileversion);
|
||||
@@ -226,7 +226,7 @@ public final class PredefinedMap {
|
||||
|
||||
for(int i = loadedSpawnAreas; i < spawnAreas.length; ++i) {
|
||||
MonsterSpawnArea area = this.spawnAreas[i];
|
||||
if (area.isUnique && visited) view.monsterSpawnController.spawnAllInArea(this, area, true);
|
||||
if (area.isUnique && visited) controllers.monsterSpawnController.spawnAllInArea(this, area, true);
|
||||
else area.reset();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -5,7 +5,7 @@ import java.io.IOException;
|
||||
|
||||
import android.util.FloatMath;
|
||||
|
||||
import com.gpl.rpg.AndorsTrail.context.ViewContext;
|
||||
import com.gpl.rpg.AndorsTrail.context.ControllerContext;
|
||||
import com.gpl.rpg.AndorsTrail.context.WorldContext;
|
||||
import com.gpl.rpg.AndorsTrail.controller.Constants;
|
||||
import com.gpl.rpg.AndorsTrail.model.ability.ActorConditionEffect;
|
||||
@@ -66,7 +66,7 @@ public final class LegacySavegameFormatReaderForPlayer {
|
||||
player.addQuestProgress(new QuestProgress(questID, progress));
|
||||
}
|
||||
|
||||
public static void upgradeSavegame(Player player, WorldContext world, ViewContext view, int fileversion) {
|
||||
public static void upgradeSavegame(Player player, WorldContext world, ControllerContext controllers, int fileversion) {
|
||||
|
||||
if (fileversion <= 12) {
|
||||
player.useItemCost = 5;
|
||||
@@ -89,9 +89,9 @@ public final class LegacySavegameFormatReaderForPlayer {
|
||||
}
|
||||
|
||||
if (fileversion <= 27) {
|
||||
correctActorConditionsFromItemsPre0611b1(player, "bless", world, view, "elytharan_redeemer");
|
||||
correctActorConditionsFromItemsPre0611b1(player, "blackwater_misery", world, view, "bwm_dagger");
|
||||
correctActorConditionsFromItemsPre0611b1(player, "regen", world, view, "ring_shadow0");
|
||||
correctActorConditionsFromItemsPre0611b1(player, "bless", world, controllers, "elytharan_redeemer");
|
||||
correctActorConditionsFromItemsPre0611b1(player, "blackwater_misery", world, controllers, "bwm_dagger");
|
||||
correctActorConditionsFromItemsPre0611b1(player, "regen", world, controllers, "ring_shadow0");
|
||||
}
|
||||
|
||||
if (fileversion <= 30) {
|
||||
@@ -105,7 +105,7 @@ public final class LegacySavegameFormatReaderForPlayer {
|
||||
return 1 + (int) FloatMath.floor((float) level / Constants.NEW_SKILL_POINT_EVERY_N_LEVELS);
|
||||
}
|
||||
|
||||
private static void correctActorConditionsFromItemsPre0611b1(Player player, String conditionTypeID, WorldContext world, ViewContext view, String itemTypeIDWithCondition) {
|
||||
private static void correctActorConditionsFromItemsPre0611b1(Player player, String conditionTypeID, WorldContext world, ControllerContext controllers, String itemTypeIDWithCondition) {
|
||||
if (!player.hasCondition(conditionTypeID)) return;
|
||||
boolean hasItemWithCondition = false;
|
||||
for (ItemType t : player.inventory.wear) {
|
||||
@@ -120,7 +120,7 @@ public final class LegacySavegameFormatReaderForPlayer {
|
||||
}
|
||||
if (hasItemWithCondition) return;
|
||||
|
||||
view.actorStatsController.removeConditionsFromUnequippedItem(player, world.itemTypes.getItemType(itemTypeIDWithCondition));
|
||||
controllers.actorStatsController.removeConditionsFromUnequippedItem(player, world.itemTypes.getItemType(itemTypeIDWithCondition));
|
||||
}
|
||||
|
||||
public static void readCombatTraitsPreV034(DataInputStream src, int fileversion) throws IOException {
|
||||
|
||||
@@ -22,7 +22,7 @@ import android.content.Context;
|
||||
import android.os.Environment;
|
||||
|
||||
import com.gpl.rpg.AndorsTrail.AndorsTrailApplication;
|
||||
import com.gpl.rpg.AndorsTrail.context.ViewContext;
|
||||
import com.gpl.rpg.AndorsTrail.context.ControllerContext;
|
||||
import com.gpl.rpg.AndorsTrail.context.WorldContext;
|
||||
import com.gpl.rpg.AndorsTrail.controller.Constants;
|
||||
import com.gpl.rpg.AndorsTrail.model.ModelContainer;
|
||||
@@ -53,10 +53,10 @@ public final class Savegames {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
public static int loadWorld(WorldContext world, ViewContext view, Context androidContext, int slot) {
|
||||
public static int loadWorld(WorldContext world, ControllerContext controllers, Context androidContext, int slot) {
|
||||
try {
|
||||
FileInputStream fos = getInputFile(androidContext, slot);
|
||||
int result = loadWorld(world, view, fos);
|
||||
int result = loadWorld(world, controllers, fos);
|
||||
fos.close();
|
||||
return result;
|
||||
} catch (IOException e) {
|
||||
@@ -110,24 +110,24 @@ public final class Savegames {
|
||||
dest.close();
|
||||
}
|
||||
|
||||
public static int loadWorld(WorldContext world, ViewContext view, InputStream inState) throws IOException {
|
||||
public static int loadWorld(WorldContext world, ControllerContext controllers, InputStream inState) throws IOException {
|
||||
DataInputStream src = new DataInputStream(inState);
|
||||
final FileHeader header = new FileHeader(src);
|
||||
if (header.fileversion > AndorsTrailApplication.CURRENT_VERSION) return LOAD_RESULT_FUTURE_VERSION;
|
||||
|
||||
world.maps.readFromParcel(src, world, view, header.fileversion);
|
||||
world.model = new ModelContainer(src, world, view, header.fileversion);
|
||||
world.maps.readFromParcel(src, world, controllers, header.fileversion);
|
||||
world.model = new ModelContainer(src, world, controllers, header.fileversion);
|
||||
src.close();
|
||||
|
||||
onWorldLoaded(world, view);
|
||||
onWorldLoaded(world, controllers);
|
||||
|
||||
return LOAD_RESULT_SUCCESS;
|
||||
}
|
||||
|
||||
private static void onWorldLoaded(WorldContext world, ViewContext view) {
|
||||
view.actorStatsController.recalculatePlayerStats(world.model.player);
|
||||
view.controller.resetMapsNotRecentlyVisited();
|
||||
view.movementController.moveBlockedActors();
|
||||
private static void onWorldLoaded(WorldContext world, ControllerContext controllers) {
|
||||
controllers.actorStatsController.recalculatePlayerStats(world.model.player);
|
||||
controllers.mapController.resetMapsNotRecentlyVisited();
|
||||
controllers.movementController.moveBlockedActors();
|
||||
}
|
||||
|
||||
public static FileHeader quickload(Context androidContext, int slot) {
|
||||
|
||||
@@ -17,7 +17,7 @@ import com.gpl.rpg.AndorsTrail.AndorsTrailPreferences;
|
||||
import com.gpl.rpg.AndorsTrail.Dialogs;
|
||||
import com.gpl.rpg.AndorsTrail.AndorsTrailApplication;
|
||||
import com.gpl.rpg.AndorsTrail.R;
|
||||
import com.gpl.rpg.AndorsTrail.context.ViewContext;
|
||||
import com.gpl.rpg.AndorsTrail.context.ControllerContext;
|
||||
import com.gpl.rpg.AndorsTrail.context.WorldContext;
|
||||
import com.gpl.rpg.AndorsTrail.controller.CombatController;
|
||||
import com.gpl.rpg.AndorsTrail.controller.listeners.CombatSelectionListener;
|
||||
@@ -38,7 +38,7 @@ public final class CombatView extends RelativeLayout implements CombatSelectionL
|
||||
private final TextView monsterActionText;
|
||||
|
||||
private final WorldContext world;
|
||||
private final ViewContext view;
|
||||
private final ControllerContext controllers;
|
||||
private final Resources res;
|
||||
private final AndorsTrailPreferences preferences;
|
||||
private final Player player;
|
||||
@@ -52,7 +52,7 @@ public final class CombatView extends RelativeLayout implements CombatSelectionL
|
||||
AndorsTrailApplication app = AndorsTrailApplication.getApplicationFromActivityContext(context);
|
||||
this.world = app.getWorld();
|
||||
this.player = world.model.player;
|
||||
this.view = app.getViewContext();
|
||||
this.controllers = app.getControllerContext();
|
||||
this.preferences = app.getPreferences();
|
||||
this.res = getResources();
|
||||
|
||||
@@ -60,7 +60,7 @@ public final class CombatView extends RelativeLayout implements CombatSelectionL
|
||||
inflate(context, R.layout.combatview, this);
|
||||
this.setBackgroundResource(R.drawable.ui_gradientshape_translucent);
|
||||
|
||||
final CombatController c = view.combatController;
|
||||
final CombatController c = controllers.combatController;
|
||||
attackMoveButton = (Button) findViewById(R.id.combatview_moveattack);
|
||||
attackMoveButton.setOnClickListener(new OnClickListener() {
|
||||
@Override
|
||||
@@ -179,14 +179,14 @@ public final class CombatView extends RelativeLayout implements CombatSelectionL
|
||||
}
|
||||
|
||||
public void subscribe() {
|
||||
view.combatController.combatSelectionListeners.add(this);
|
||||
view.combatController.combatTurnListeners.add(this);
|
||||
view.actorStatsController.actorStatsListeners.add(this);
|
||||
controllers.combatController.combatSelectionListeners.add(this);
|
||||
controllers.combatController.combatTurnListeners.add(this);
|
||||
controllers.actorStatsController.actorStatsListeners.add(this);
|
||||
}
|
||||
public void unsubscribe() {
|
||||
view.actorStatsController.actorStatsListeners.remove(this);
|
||||
view.combatController.combatTurnListeners.remove(this);
|
||||
view.combatController.combatSelectionListeners.remove(this);
|
||||
controllers.actorStatsController.actorStatsListeners.remove(this);
|
||||
controllers.combatController.combatTurnListeners.remove(this);
|
||||
controllers.combatController.combatSelectionListeners.remove(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -16,7 +16,7 @@ import android.widget.RelativeLayout.LayoutParams;
|
||||
|
||||
import com.gpl.rpg.AndorsTrail.AndorsTrailPreferences;
|
||||
import com.gpl.rpg.AndorsTrail.R;
|
||||
import com.gpl.rpg.AndorsTrail.context.ViewContext;
|
||||
import com.gpl.rpg.AndorsTrail.context.ControllerContext;
|
||||
import com.gpl.rpg.AndorsTrail.context.WorldContext;
|
||||
import com.gpl.rpg.AndorsTrail.model.ability.ActorCondition;
|
||||
import com.gpl.rpg.AndorsTrail.model.actor.Actor;
|
||||
@@ -27,20 +27,20 @@ public final class DisplayActiveActorConditionIcons implements ActorConditionLis
|
||||
|
||||
private final AndorsTrailPreferences preferences;
|
||||
private final TileManager tileManager;
|
||||
private final ViewContext view;
|
||||
private final ControllerContext controllers;
|
||||
private final WorldContext world;
|
||||
private final RelativeLayout activeConditions;
|
||||
private final ArrayList<ActiveConditionIcon> currentConditionIcons = new ArrayList<ActiveConditionIcon>();
|
||||
private final WeakReference<Context> androidContext;
|
||||
|
||||
public DisplayActiveActorConditionIcons(
|
||||
final ViewContext view,
|
||||
final ControllerContext controllers,
|
||||
final WorldContext world,
|
||||
Context androidContext,
|
||||
RelativeLayout activeConditions) {
|
||||
this.view = view;
|
||||
this.controllers = controllers;
|
||||
this.world = world;
|
||||
this.preferences = view.preferences;
|
||||
this.preferences = controllers.preferences;
|
||||
this.tileManager = world.tileManager;
|
||||
this.androidContext = new WeakReference<Context>(androidContext);
|
||||
this.activeConditions = activeConditions;
|
||||
@@ -83,7 +83,7 @@ public final class DisplayActiveActorConditionIcons implements ActorConditionLis
|
||||
}
|
||||
|
||||
public void unsubscribe() {
|
||||
view.actorStatsController.actorConditionListeners.remove(this);
|
||||
controllers.actorStatsController.actorConditionListeners.remove(this);
|
||||
for (ActiveConditionIcon icon : currentConditionIcons) icon.condition = null;
|
||||
}
|
||||
|
||||
@@ -92,7 +92,7 @@ public final class DisplayActiveActorConditionIcons implements ActorConditionLis
|
||||
for (ActorCondition condition : world.model.player.conditions) {
|
||||
getFirstFreeIcon().setActiveCondition(condition);
|
||||
}
|
||||
view.actorStatsController.actorConditionListeners.add(this);
|
||||
controllers.actorStatsController.actorConditionListeners.add(this);
|
||||
}
|
||||
|
||||
private final class ActiveConditionIcon implements AnimationListener {
|
||||
|
||||
@@ -2,7 +2,7 @@ package com.gpl.rpg.AndorsTrail.view;
|
||||
|
||||
import com.gpl.rpg.AndorsTrail.AndorsTrailApplication;
|
||||
import com.gpl.rpg.AndorsTrail.AndorsTrailPreferences;
|
||||
import com.gpl.rpg.AndorsTrail.context.ViewContext;
|
||||
import com.gpl.rpg.AndorsTrail.context.ControllerContext;
|
||||
import com.gpl.rpg.AndorsTrail.context.WorldContext;
|
||||
import com.gpl.rpg.AndorsTrail.controller.InputController;
|
||||
import com.gpl.rpg.AndorsTrail.controller.VisualEffectController.BloodSplatter;
|
||||
@@ -53,7 +53,7 @@ public final class MainView extends SurfaceView
|
||||
|
||||
private final ModelContainer model;
|
||||
private final WorldContext world;
|
||||
private final ViewContext view;
|
||||
private final ControllerContext controllers;
|
||||
private final InputController inputController;
|
||||
private final AndorsTrailPreferences preferences;
|
||||
|
||||
@@ -74,11 +74,11 @@ public final class MainView extends SurfaceView
|
||||
this.holder = getHolder();
|
||||
|
||||
AndorsTrailApplication app = AndorsTrailApplication.getApplicationFromActivityContext(context);
|
||||
this.view = app.getViewContext();
|
||||
this.controllers = app.getControllerContext();
|
||||
this.world = app.getWorld();
|
||||
this.model = world.model;
|
||||
this.tileSize = world.tileManager.tileSize;
|
||||
this.inputController = view.inputController;
|
||||
this.inputController = controllers.inputController;
|
||||
this.preferences = app.getPreferences();
|
||||
|
||||
holder.addCallback(this);
|
||||
@@ -399,22 +399,22 @@ public final class MainView extends SurfaceView
|
||||
}
|
||||
|
||||
public void subscribe() {
|
||||
view.gameRoundController.gameRoundListeners.add(this);
|
||||
view.effectController.visualEffectFrameListeners.add(this);
|
||||
view.itemController.lootBagListeners.add(this);
|
||||
view.movementController.playerMovementListeners.add(this);
|
||||
view.combatController.combatSelectionListeners.add(this);
|
||||
view.monsterSpawnController.monsterSpawnListeners.add(this);
|
||||
view.monsterMovementController.monsterMovementListeners.add(this);
|
||||
controllers.gameRoundController.gameRoundListeners.add(this);
|
||||
controllers.effectController.visualEffectFrameListeners.add(this);
|
||||
controllers.itemController.lootBagListeners.add(this);
|
||||
controllers.movementController.playerMovementListeners.add(this);
|
||||
controllers.combatController.combatSelectionListeners.add(this);
|
||||
controllers.monsterSpawnController.monsterSpawnListeners.add(this);
|
||||
controllers.monsterMovementController.monsterMovementListeners.add(this);
|
||||
}
|
||||
public void unsubscribe() {
|
||||
view.monsterMovementController.monsterMovementListeners.remove(this);
|
||||
view.monsterSpawnController.monsterSpawnListeners.remove(this);
|
||||
view.combatController.combatSelectionListeners.remove(this);
|
||||
view.movementController.playerMovementListeners.remove(this);
|
||||
view.itemController.lootBagListeners.remove(this);
|
||||
view.effectController.visualEffectFrameListeners.remove(this);
|
||||
view.gameRoundController.gameRoundListeners.remove(this);
|
||||
controllers.monsterMovementController.monsterMovementListeners.remove(this);
|
||||
controllers.monsterSpawnController.monsterSpawnListeners.remove(this);
|
||||
controllers.combatController.combatSelectionListeners.remove(this);
|
||||
controllers.movementController.playerMovementListeners.remove(this);
|
||||
controllers.itemController.lootBagListeners.remove(this);
|
||||
controllers.effectController.visualEffectFrameListeners.remove(this);
|
||||
controllers.gameRoundController.gameRoundListeners.remove(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -14,7 +14,7 @@ import android.widget.LinearLayout;
|
||||
import com.gpl.rpg.AndorsTrail.AndorsTrailApplication;
|
||||
import com.gpl.rpg.AndorsTrail.R;
|
||||
import com.gpl.rpg.AndorsTrail.activity.MainActivity;
|
||||
import com.gpl.rpg.AndorsTrail.context.ViewContext;
|
||||
import com.gpl.rpg.AndorsTrail.context.ControllerContext;
|
||||
import com.gpl.rpg.AndorsTrail.context.WorldContext;
|
||||
import com.gpl.rpg.AndorsTrail.controller.listeners.QuickSlotListener;
|
||||
import com.gpl.rpg.AndorsTrail.model.item.Inventory;
|
||||
@@ -25,7 +25,7 @@ public final class QuickitemView extends LinearLayout implements OnClickListener
|
||||
private static final int NUM_QUICK_SLOTS = Inventory.NUM_QUICK_SLOTS;
|
||||
|
||||
private final WorldContext world;
|
||||
private final ViewContext view;
|
||||
private final ControllerContext controllers;
|
||||
private final QuickButton[] buttons = new QuickButton[NUM_QUICK_SLOTS];
|
||||
private final HashSet<Integer> loadedTileIDs = new HashSet<Integer>();
|
||||
private TileCollection tiles = null;
|
||||
@@ -34,7 +34,7 @@ public final class QuickitemView extends LinearLayout implements OnClickListener
|
||||
super(context, attrs);
|
||||
AndorsTrailApplication app = AndorsTrailApplication.getApplicationFromActivityContext(context);
|
||||
this.world = app.getWorld();
|
||||
this.view = app.getViewContext();
|
||||
this.controllers = app.getControllerContext();
|
||||
setFocusable(false);
|
||||
setOrientation(LinearLayout.HORIZONTAL);
|
||||
|
||||
@@ -65,7 +65,7 @@ public final class QuickitemView extends LinearLayout implements OnClickListener
|
||||
QuickButton button = (QuickButton)v;
|
||||
if(button.isEmpty())
|
||||
return;
|
||||
view.itemController.quickitemUse(button.getIndex());
|
||||
controllers.itemController.quickitemUse(button.getIndex());
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -123,9 +123,9 @@ public final class QuickitemView extends LinearLayout implements OnClickListener
|
||||
}
|
||||
|
||||
public void subscribe() {
|
||||
view.itemController.quickSlotListeners.add(this);
|
||||
controllers.itemController.quickSlotListeners.add(this);
|
||||
}
|
||||
public void unsubscribe() {
|
||||
view.itemController.quickSlotListeners.remove(this);
|
||||
controllers.itemController.quickSlotListeners.remove(this);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4,7 +4,7 @@ import android.content.res.Resources;
|
||||
import com.gpl.rpg.AndorsTrail.AndorsTrailApplication;
|
||||
import com.gpl.rpg.AndorsTrail.R;
|
||||
import com.gpl.rpg.AndorsTrail.activity.HeroinfoActivity;
|
||||
import com.gpl.rpg.AndorsTrail.context.ViewContext;
|
||||
import com.gpl.rpg.AndorsTrail.context.ControllerContext;
|
||||
import com.gpl.rpg.AndorsTrail.context.WorldContext;
|
||||
import com.gpl.rpg.AndorsTrail.model.listeners.PlayerStatsListener;
|
||||
import com.gpl.rpg.AndorsTrail.model.actor.Actor;
|
||||
@@ -24,7 +24,7 @@ import android.widget.ImageButton;
|
||||
|
||||
public final class StatusView extends RelativeLayout implements PlayerStatsListener, ActorStatsListener {
|
||||
|
||||
private final ViewContext view;
|
||||
private final ControllerContext controllers;
|
||||
private final WorldContext world;
|
||||
private final Player player;
|
||||
|
||||
@@ -39,7 +39,7 @@ public final class StatusView extends RelativeLayout implements PlayerStatsListe
|
||||
public StatusView(final Context context, AttributeSet attr) {
|
||||
super(context, attr);
|
||||
AndorsTrailApplication app = AndorsTrailApplication.getApplicationFromActivityContext(context);
|
||||
this.view = app.getViewContext();
|
||||
this.controllers = app.getControllerContext();
|
||||
this.world = app.getWorld();
|
||||
this.player = world.model.player;
|
||||
|
||||
@@ -93,12 +93,12 @@ public final class StatusView extends RelativeLayout implements PlayerStatsListe
|
||||
}
|
||||
|
||||
public void subscribe() {
|
||||
view.actorStatsController.actorStatsListeners.add(this);
|
||||
view.actorStatsController.playerStatsListeners.add(this);
|
||||
controllers.actorStatsController.actorStatsListeners.add(this);
|
||||
controllers.actorStatsController.playerStatsListeners.add(this);
|
||||
}
|
||||
public void unsubscribe() {
|
||||
view.actorStatsController.playerStatsListeners.remove(this);
|
||||
view.actorStatsController.actorStatsListeners.remove(this);
|
||||
controllers.actorStatsController.playerStatsListeners.remove(this);
|
||||
controllers.actorStatsController.actorStatsListeners.remove(this);
|
||||
}
|
||||
|
||||
private void updateHealth() {
|
||||
|
||||
@@ -12,7 +12,7 @@ import android.widget.RelativeLayout;
|
||||
import com.gpl.rpg.AndorsTrail.AndorsTrailApplication;
|
||||
import com.gpl.rpg.AndorsTrail.AndorsTrailPreferences;
|
||||
import com.gpl.rpg.AndorsTrail.R;
|
||||
import com.gpl.rpg.AndorsTrail.context.ViewContext;
|
||||
import com.gpl.rpg.AndorsTrail.context.ControllerContext;
|
||||
import com.gpl.rpg.AndorsTrail.context.WorldContext;
|
||||
import com.gpl.rpg.AndorsTrail.controller.InputController;
|
||||
|
||||
@@ -35,8 +35,8 @@ public final class VirtualDpadView extends ImageView implements OnClickListener
|
||||
super(context, attr);
|
||||
AndorsTrailApplication app = AndorsTrailApplication.getApplicationFromActivityContext(context);
|
||||
this.world = app.getWorld();
|
||||
final ViewContext view = app.getViewContext();
|
||||
this.inputController = view.inputController;
|
||||
final ControllerContext controllers = app.getControllerContext();
|
||||
this.inputController = controllers.inputController;
|
||||
|
||||
setImageResource(R.drawable.ui_dpad);
|
||||
setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));
|
||||
|
||||
Reference in New Issue
Block a user