Preparatory commit for the stoutford_roots_love ATCS project

This commit is contained in:
Zukero
2017-03-31 09:26:07 +02:00
parent 74ac7127b4
commit da0663bea6
9 changed files with 45 additions and 25 deletions

View File

@@ -13,7 +13,8 @@
<item>@raw/actorconditions_v0612_2</item>
<item>@raw/actorconditions_v070</item>
<item>@raw/actorconditions_stoutford</item>
</array>
<!-- <item>@raw/actorconditions_stoutford_roots_love</item>
--> </array>
<array name="loadresource_items">
<item>@raw/itemlist_money</item>
@@ -39,7 +40,8 @@
<item>@raw/itemlist_v070_questitems</item>
<item>@raw/itemlist_shortcut_lodar</item>
<item>@raw/itemlist_stoutford</item>
<item>@raw/itemlist_pathway_fallhaven</item>
<!-- <item>@raw/itemlist_stoutford_roots_love</item>
--> <item>@raw/itemlist_pathway_fallhaven</item>
</array>
<array name="loadresource_droplists">
@@ -61,7 +63,8 @@
<item>@raw/droplists_v070_mobs</item>
<item>@raw/droplists_shortcut_lodar</item>
<item>@raw/droplists_stoutford</item>
<item>@raw/droplists_pathway_fallhaven</item>
<!-- <item>@raw/droplists_stoutford_roots_love</item>
--> <item>@raw/droplists_pathway_fallhaven</item>
</array>
<array name="loadresource_quests">
@@ -79,7 +82,8 @@
<item>@raw/questlist_v070_misc</item>
<item>@raw/questlist_shortcut_lodar</item>
<item>@raw/questlist_stoutford</item>
<item>@raw/questlist_pathway_fallhaven</item>
<!-- <item>@raw/questlist_stoutford_roots_love</item>
--> <item>@raw/questlist_pathway_fallhaven</item>
<item>@raw/questlist_halvor_surprise</item>
</array>
@@ -239,7 +243,8 @@
<item>@raw/conversationlist_pathway_fallhaven</item>
<item>@raw/conversationlist_halvor_surprise</item>
<item>@raw/conversationlist_stoutford</item>
</array>
<!-- <item>@raw/conversationlist_stoutford_roots_love</item>
--> </array>
<array name="loadresource_monsters">
<item>@raw/monsterlist_crossglen_animals</item>

View File

@@ -18,7 +18,7 @@ public final class AndorsTrailApplication extends Application {
public static final boolean DEVELOPMENT_FORCE_STARTNEWGAME = false;
public static final boolean DEVELOPMENT_FORCE_CONTINUEGAME = false;
public static final boolean DEVELOPMENT_DEBUGBUTTONS = true;
public static final boolean DEVELOPMENT_FASTSPEED = false;
public static final boolean DEVELOPMENT_FASTSPEED = true;
public static final boolean DEVELOPMENT_VALIDATEDATA = true;
public static final boolean DEVELOPMENT_DEBUGMESSAGES = true;
public static final boolean DEVELOPMENT_INCOMPATIBLE_SAVEGAMES = DEVELOPMENT_DEBUGRESOURCES || DEVELOPMENT_DEBUGBUTTONS || DEVELOPMENT_FASTSPEED;

View File

@@ -11,6 +11,7 @@ import com.gpl.rpg.AndorsTrail.AndorsTrailApplication;
import com.gpl.rpg.AndorsTrail.R;
import com.gpl.rpg.AndorsTrail.context.ControllerContext;
import com.gpl.rpg.AndorsTrail.context.WorldContext;
import com.gpl.rpg.AndorsTrail.model.item.ItemType;
import com.gpl.rpg.AndorsTrail.model.map.PredefinedMap;
public final class DebugInterface {
@@ -46,25 +47,16 @@ public final class DebugInterface {
showToast(mainActivity, "DEBUG: damagePotential=1", Toast.LENGTH_SHORT);
}
})*/
/*,new DebugButton("items", new OnClickListener() {
,new DebugButton("items", new OnClickListener() {
@Override
public void onClick(View arg0) {
world.model.player.inventory.addItem(world.itemTypes.getItemType("elytharan_redeemer"));
world.model.player.inventory.addItem(world.itemTypes.getItemType("ring_shadow0"));
world.model.player.inventory.addItem(world.itemTypes.getItemType("shadow_slayer"));
world.model.player.inventory.addItem(world.itemTypes.getItemType("pot_blind_rage"), 10);
world.model.player.inventory.addItem(world.itemTypes.getItemType("clouded_rage"));
world.model.player.inventory.addItem(world.itemTypes.getItemType("pot_fatigue_restore"), 20);
world.model.player.inventory.addItem(world.itemTypes.getItemType("quickdagger1"));
world.model.player.inventory.addItem(world.itemTypes.getItemType("bonemeal_potion"));
world.model.player.inventory.addItem(world.itemTypes.getItemType("calomyran_secrets"));
world.model.player.inventory.addItem(world.itemTypes.getItemType("tail_caverat"));
world.model.player.inventory.addItem(world.itemTypes.getItemType("bwm_leather_cap"));
world.model.player.inventory.addItem(world.itemTypes.getItemType("chaosreaper"));
for (ItemType item : world.itemTypes.UNITTEST_getAllItemTypes().values()) {
world.model.player.inventory.addItem(item, 10);
}
world.model.player.inventory.gold += 50000;
showToast(mainActivity, "DEBUG: added items", Toast.LENGTH_SHORT);
}
})*/
})
/*,new DebugButton("prim", new OnClickListener() {
@Override
public void onClick(View arg0) {

View File

@@ -144,15 +144,16 @@ public final class ConversationController {
controllers.mapController.activateMapObjectGroup(map, mapObjectGroupID);
}
private void spawnAll(String mapName, String monsterTypeSpawnGroup) {
private void spawnAll(String mapName, String areaId) {
PredefinedMap map = findMapForScriptEffect(mapName);
LayeredTileMap tileMap = null;
if (map == world.model.currentMap) {
tileMap = world.model.currentTileMap;
}
for (MonsterSpawnArea area : map.spawnAreas) {
if (!area.areaID.equals(monsterTypeSpawnGroup)) continue;
if (!area.areaID.equals(areaId)) continue;
controllers.monsterSpawnController.activateSpawnArea(map, tileMap, area, true);
controllers.effectController.asyncUpdateArea(area.area);
}
}
@@ -161,6 +162,7 @@ public final class ConversationController {
for (MonsterSpawnArea area : map.spawnAreas) {
if (!area.areaID.equals(areaID)) continue;
controllers.monsterSpawnController.deactivateSpawnArea(area, removeAllMonsters);
if (removeAllMonsters) controllers.effectController.asyncUpdateArea(area.area);
}
}

View File

@@ -263,6 +263,10 @@ public final class VisualEffectController {
return -1;
}
}
public void asyncUpdateArea(CoordRect area) {
visualEffectFrameListeners.onAsyncAreaUpdate(area);
}
}

View File

@@ -2,10 +2,12 @@ package com.gpl.rpg.AndorsTrail.controller.listeners;
import com.gpl.rpg.AndorsTrail.controller.VisualEffectController.SpriteMoveAnimation;
import com.gpl.rpg.AndorsTrail.controller.VisualEffectController.VisualEffectAnimation;
import com.gpl.rpg.AndorsTrail.util.CoordRect;
public interface VisualEffectFrameListener {
void onNewAnimationFrame(VisualEffectAnimation animation, int tileID, int textYOffset);
void onAnimationCompleted(VisualEffectAnimation animation);
void onNewSpriteMoveFrame(SpriteMoveAnimation animation);
void onSpriteMoveCompleted(SpriteMoveAnimation animation);
void onAsyncAreaUpdate(CoordRect area);
}

View File

@@ -2,6 +2,7 @@ package com.gpl.rpg.AndorsTrail.controller.listeners;
import com.gpl.rpg.AndorsTrail.controller.VisualEffectController.SpriteMoveAnimation;
import com.gpl.rpg.AndorsTrail.controller.VisualEffectController.VisualEffectAnimation;
import com.gpl.rpg.AndorsTrail.util.CoordRect;
import com.gpl.rpg.AndorsTrail.util.ListOfListeners;
public final class VisualEffectFrameListeners extends ListOfListeners<VisualEffectFrameListener> implements VisualEffectFrameListener {
@@ -22,6 +23,10 @@ public final class VisualEffectFrameListeners extends ListOfListeners<VisualEffe
@Override public void call(VisualEffectFrameListener listener, SpriteMoveAnimation animation) { listener.onSpriteMoveCompleted(animation); }
};
private final Function1<VisualEffectFrameListener, CoordRect> onAsyncAreaUpdate = new Function1<VisualEffectFrameListener, CoordRect>() {
@Override public void call(VisualEffectFrameListener listener, CoordRect area) { listener.onAsyncAreaUpdate(area); }
};
@Override
public void onNewAnimationFrame(VisualEffectAnimation animation, int tileID, int textYOffset) {
callAllListeners(this.onNewAnimationFrame, animation, tileID, textYOffset);
@@ -41,4 +46,9 @@ public final class VisualEffectFrameListeners extends ListOfListeners<VisualEffe
public void onSpriteMoveCompleted(SpriteMoveAnimation animation) {
callAllListeners(this.onSpriteMoveCompleted, animation);
}
@Override
public void onAsyncAreaUpdate(CoordRect area) {
callAllListeners(this.onAsyncAreaUpdate, area);
}
}

View File

@@ -61,7 +61,7 @@ public final class TileManager {
public final TileCache tileCache = new TileCache();
public final TileCollection preloadedTiles = new TileCollection(116);
public final TileCollection preloadedTiles = new TileCollection(118);
public TileCollection currentMapTiles;
public TileCollection adjacentMapTiles;
private final HashSet<Integer> preloadedTileIDs = new HashSet<Integer>();

View File

@@ -210,7 +210,7 @@ public final class MainView extends SurfaceView
SurfaceChanged, MapChanged, PlayerMoved, MapScrolling, FilterAnimation
}
private static enum RedrawAreaDebugReason {
MonsterMoved, MonsterKilled, EffectCompleted
MonsterMoved, MonsterKilled, EffectCompleted, AsyncRequest
}
private static enum RedrawTileDebugReason {
SelectionRemoved, SelectionAdded, Bag
@@ -852,6 +852,11 @@ public final class MainView extends SurfaceView
public void onSpriteMoveCompleted(SpriteMoveAnimation animation) {
redrawArea(CoordRect.getBoundingRect(animation.origin, animation.destination, animation.actor.tileSize), RedrawAreaDebugReason.EffectCompleted);
}
@Override
public void onAsyncAreaUpdate(CoordRect area) {
redrawArea(area, RedrawAreaDebugReason.AsyncRequest);
}
@Override
public void onNewTick() {