mirror of
https://github.com/OMGeeky/andors-trail.git
synced 2026-02-23 15:38:29 +01:00
Compare commits
18 Commits
auto_build
...
OMGeeky-pa
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
7d194535d9 | ||
|
|
5364737471 | ||
|
|
448547c62d | ||
|
|
99ac4bb532 | ||
|
|
b93d3227fb | ||
|
|
d34723ad04 | ||
|
|
b236635735 | ||
|
|
6b66bebc3f | ||
|
|
71eafc368a | ||
|
|
573816dc20 | ||
|
|
0fbc290492 | ||
|
|
1c4290458f | ||
|
|
5b4b537028 | ||
|
|
6946b1f2b3 | ||
|
|
8e60423735 | ||
|
|
f9a752ab8a | ||
|
|
79a1416616 | ||
|
|
8275f0110a |
43
.github/workflows/gradle.yml
vendored
Normal file
43
.github/workflows/gradle.yml
vendored
Normal file
@@ -0,0 +1,43 @@
|
|||||||
|
# This workflow uses actions that are not certified by GitHub.
|
||||||
|
# They are provided by a third-party and are governed by
|
||||||
|
# separate terms of service, privacy policy, and support
|
||||||
|
# documentation.
|
||||||
|
# This workflow will build a Java project with Gradle and cache/restore any dependencies to improve the workflow execution time
|
||||||
|
# For more information see: https://help.github.com/actions/language-and-framework-guides/building-and-testing-java-with-gradle
|
||||||
|
|
||||||
|
name: Build Gradle
|
||||||
|
|
||||||
|
on: workflow_dispatch
|
||||||
|
# on: [pull_request]
|
||||||
|
# push:
|
||||||
|
# branches: ["gradle_auto_copy" ]
|
||||||
|
# pull_request:
|
||||||
|
# branches: ["master" ]
|
||||||
|
|
||||||
|
permissions:
|
||||||
|
contents: read
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
build:
|
||||||
|
|
||||||
|
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v3
|
||||||
|
- name: Set up JDK 11
|
||||||
|
uses: actions/setup-java@v3
|
||||||
|
with:
|
||||||
|
java-version: '11'
|
||||||
|
distribution: 'temurin'
|
||||||
|
- name: Validate Gradle wrapper
|
||||||
|
uses: gradle/wrapper-validation-action@v1.0.4
|
||||||
|
- name: Make gradle wrapper executable
|
||||||
|
run: chmod +x ./AndorsTrail/gradlew
|
||||||
|
- name: Build with Gradle
|
||||||
|
uses: gradle/gradle-build-action@v2.3.2
|
||||||
|
with:
|
||||||
|
arguments: build
|
||||||
|
build-root-directory: ./AndorsTrail
|
||||||
3
AndorsTrail/.gitignore
vendored
3
AndorsTrail/.gitignore
vendored
@@ -40,6 +40,9 @@ gradle-app.setting
|
|||||||
# Cache of project
|
# Cache of project
|
||||||
.gradletasknamecache
|
.gradletasknamecache
|
||||||
|
|
||||||
|
|
||||||
|
local.properties
|
||||||
|
|
||||||
# Eclipse Gradle plugin generated files
|
# Eclipse Gradle plugin generated files
|
||||||
# Eclipse Core
|
# Eclipse Core
|
||||||
.project
|
.project
|
||||||
|
|||||||
6
AndorsTrail/.idea/compiler.xml
generated
6
AndorsTrail/.idea/compiler.xml
generated
@@ -1,6 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<project version="4">
|
|
||||||
<component name="CompilerConfiguration">
|
|
||||||
<bytecodeTargetLevel target="11" />
|
|
||||||
</component>
|
|
||||||
</project>
|
|
||||||
20
AndorsTrail/.idea/gradle.xml
generated
20
AndorsTrail/.idea/gradle.xml
generated
@@ -1,20 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<project version="4">
|
|
||||||
<component name="GradleMigrationSettings" migrationVersion="1" />
|
|
||||||
<component name="GradleSettings">
|
|
||||||
<option name="linkedExternalProjectsSettings">
|
|
||||||
<GradleProjectSettings>
|
|
||||||
<option name="testRunner" value="GRADLE" />
|
|
||||||
<option name="distributionType" value="DEFAULT_WRAPPED" />
|
|
||||||
<option name="externalProjectPath" value="$PROJECT_DIR$" />
|
|
||||||
<option name="gradleJvm" value="1.8" />
|
|
||||||
<option name="modules">
|
|
||||||
<set>
|
|
||||||
<option value="$PROJECT_DIR$" />
|
|
||||||
<option value="$PROJECT_DIR$/app" />
|
|
||||||
</set>
|
|
||||||
</option>
|
|
||||||
</GradleProjectSettings>
|
|
||||||
</option>
|
|
||||||
</component>
|
|
||||||
</project>
|
|
||||||
25
AndorsTrail/.idea/jarRepositories.xml
generated
25
AndorsTrail/.idea/jarRepositories.xml
generated
@@ -1,25 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<project version="4">
|
|
||||||
<component name="RemoteRepositoriesConfiguration">
|
|
||||||
<remote-repository>
|
|
||||||
<option name="id" value="central" />
|
|
||||||
<option name="name" value="Maven Central repository" />
|
|
||||||
<option name="url" value="https://repo1.maven.org/maven2" />
|
|
||||||
</remote-repository>
|
|
||||||
<remote-repository>
|
|
||||||
<option name="id" value="jboss.community" />
|
|
||||||
<option name="name" value="JBoss Community repository" />
|
|
||||||
<option name="url" value="https://repository.jboss.org/nexus/content/repositories/public/" />
|
|
||||||
</remote-repository>
|
|
||||||
<remote-repository>
|
|
||||||
<option name="id" value="BintrayJCenter" />
|
|
||||||
<option name="name" value="BintrayJCenter" />
|
|
||||||
<option name="url" value="https://jcenter.bintray.com/" />
|
|
||||||
</remote-repository>
|
|
||||||
<remote-repository>
|
|
||||||
<option name="id" value="Google" />
|
|
||||||
<option name="name" value="Google" />
|
|
||||||
<option name="url" value="https://dl.google.com/dl/android/maven2/" />
|
|
||||||
</remote-repository>
|
|
||||||
</component>
|
|
||||||
</project>
|
|
||||||
10
AndorsTrail/.idea/misc.xml
generated
10
AndorsTrail/.idea/misc.xml
generated
@@ -1,10 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<project version="4">
|
|
||||||
<component name="ExternalStorageConfigurationManager" enabled="true" />
|
|
||||||
<component name="ProjectRootManager" version="2" languageLevel="JDK_11" project-jdk-name="11" project-jdk-type="JavaSDK">
|
|
||||||
<output url="file://$PROJECT_DIR$/build/classes" />
|
|
||||||
</component>
|
|
||||||
<component name="ProjectType">
|
|
||||||
<option name="id" value="Android" />
|
|
||||||
</component>
|
|
||||||
</project>
|
|
||||||
6
AndorsTrail/.idea/vcs.xml
generated
6
AndorsTrail/.idea/vcs.xml
generated
@@ -1,6 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<project version="4">
|
|
||||||
<component name="VcsDirectoryMappings">
|
|
||||||
<mapping directory="$PROJECT_DIR$/.." vcs="Git" />
|
|
||||||
</component>
|
|
||||||
</project>
|
|
||||||
@@ -7,10 +7,7 @@
|
|||||||
android:versionName="0.8.2"
|
android:versionName="0.8.2"
|
||||||
android:installLocation="auto"
|
android:installLocation="auto"
|
||||||
>
|
>
|
||||||
<uses-sdk
|
|
||||||
android:minSdkVersion="4"
|
|
||||||
android:targetSdkVersion="30"
|
|
||||||
/>
|
|
||||||
|
|
||||||
<supports-screens
|
<supports-screens
|
||||||
android:smallScreens="true"
|
android:smallScreens="true"
|
||||||
@@ -38,7 +35,7 @@
|
|||||||
<activity
|
<activity
|
||||||
android:name="com.gpl.rpg.AndorsTrail.activity.StartScreenActivity"
|
android:name="com.gpl.rpg.AndorsTrail.activity.StartScreenActivity"
|
||||||
android:clearTaskOnLaunch="true"
|
android:clearTaskOnLaunch="true"
|
||||||
>
|
android:exported="true">
|
||||||
<intent-filter>
|
<intent-filter>
|
||||||
<action android:name="android.intent.action.MAIN" />
|
<action android:name="android.intent.action.MAIN" />
|
||||||
<category android:name="android.intent.category.LAUNCHER" />
|
<category android:name="android.intent.category.LAUNCHER" />
|
||||||
@@ -46,7 +43,6 @@
|
|||||||
</activity>
|
</activity>
|
||||||
<activity
|
<activity
|
||||||
android:name="com.gpl.rpg.AndorsTrail.activity.MainActivity"
|
android:name="com.gpl.rpg.AndorsTrail.activity.MainActivity"
|
||||||
android:label="@string/app_name"
|
|
||||||
android:theme="@style/AndorsTrailTheme_Blue.NoBackground"
|
android:theme="@style/AndorsTrailTheme_Blue.NoBackground"
|
||||||
/>
|
/>
|
||||||
<activity android:name="com.gpl.rpg.AndorsTrail.activity.HeroinfoActivity" />
|
<activity android:name="com.gpl.rpg.AndorsTrail.activity.HeroinfoActivity" />
|
||||||
|
|||||||
@@ -2,6 +2,7 @@ package com.gpl.rpg.AndorsTrail.controller;
|
|||||||
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
|
import android.os.Build;
|
||||||
import android.util.SparseIntArray;
|
import android.util.SparseIntArray;
|
||||||
import android.view.KeyEvent;
|
import android.view.KeyEvent;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
@@ -98,28 +99,36 @@ public final class InputController implements OnClickListener, OnLongClickListen
|
|||||||
|
|
||||||
// Keys mapping to UP_LEFT
|
// Keys mapping to UP_LEFT
|
||||||
key = KEY_MOVE_UP_LEFT;
|
key = KEY_MOVE_UP_LEFT;
|
||||||
keyMap.put(KeyEvent.KEYCODE_DPAD_UP_LEFT, key);
|
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
|
||||||
|
keyMap.put(KeyEvent.KEYCODE_DPAD_UP_LEFT, key);
|
||||||
|
}
|
||||||
keyMap.put(KeyEvent.KEYCODE_NUMPAD_7, key);
|
keyMap.put(KeyEvent.KEYCODE_NUMPAD_7, key);
|
||||||
keyMap.put(KeyEvent.KEYCODE_7, key);
|
keyMap.put(KeyEvent.KEYCODE_7, key);
|
||||||
keyMap.put(KeyEvent.KEYCODE_MOVE_HOME, key);
|
keyMap.put(KeyEvent.KEYCODE_MOVE_HOME, key);
|
||||||
|
|
||||||
// Keys mapping to UP_RIGHT
|
// Keys mapping to UP_RIGHT
|
||||||
key = KEY_MOVE_UP_RIGHT;
|
key = KEY_MOVE_UP_RIGHT;
|
||||||
keyMap.put(KeyEvent.KEYCODE_DPAD_UP_RIGHT, key);
|
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
|
||||||
|
keyMap.put(KeyEvent.KEYCODE_DPAD_UP_RIGHT, key);
|
||||||
|
}
|
||||||
keyMap.put(KeyEvent.KEYCODE_NUMPAD_9, key);
|
keyMap.put(KeyEvent.KEYCODE_NUMPAD_9, key);
|
||||||
keyMap.put(KeyEvent.KEYCODE_9, key);
|
keyMap.put(KeyEvent.KEYCODE_9, key);
|
||||||
keyMap.put(KeyEvent.KEYCODE_PAGE_UP, key);
|
keyMap.put(KeyEvent.KEYCODE_PAGE_UP, key);
|
||||||
|
|
||||||
// Keys mapping to DOWN_LEFT
|
// Keys mapping to DOWN_LEFT
|
||||||
key = KEY_MOVE_DOWN_LEFT;
|
key = KEY_MOVE_DOWN_LEFT;
|
||||||
keyMap.put(KeyEvent.KEYCODE_DPAD_DOWN_LEFT, key);
|
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
|
||||||
|
keyMap.put(KeyEvent.KEYCODE_DPAD_DOWN_LEFT, key);
|
||||||
|
}
|
||||||
keyMap.put(KeyEvent.KEYCODE_NUMPAD_1, key);
|
keyMap.put(KeyEvent.KEYCODE_NUMPAD_1, key);
|
||||||
keyMap.put(KeyEvent.KEYCODE_1, key);
|
keyMap.put(KeyEvent.KEYCODE_1, key);
|
||||||
keyMap.put(KeyEvent.KEYCODE_MOVE_END, key);
|
keyMap.put(KeyEvent.KEYCODE_MOVE_END, key);
|
||||||
|
|
||||||
// Keys mapping to DOWN_RIGHT
|
// Keys mapping to DOWN_RIGHT
|
||||||
key = KEY_MOVE_DOWN_RIGHT;
|
key = KEY_MOVE_DOWN_RIGHT;
|
||||||
keyMap.put(KeyEvent.KEYCODE_DPAD_DOWN_RIGHT, key);
|
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
|
||||||
|
keyMap.put(KeyEvent.KEYCODE_DPAD_DOWN_RIGHT, key);
|
||||||
|
}
|
||||||
keyMap.put(KeyEvent.KEYCODE_NUMPAD_3, key);
|
keyMap.put(KeyEvent.KEYCODE_NUMPAD_3, key);
|
||||||
keyMap.put(KeyEvent.KEYCODE_3, key);
|
keyMap.put(KeyEvent.KEYCODE_3, key);
|
||||||
keyMap.put(KeyEvent.KEYCODE_PAGE_DOWN, key);
|
keyMap.put(KeyEvent.KEYCODE_PAGE_DOWN, key);
|
||||||
|
|||||||
@@ -19,6 +19,7 @@ import com.gpl.rpg.AndorsTrail.model.actor.MonsterType;
|
|||||||
import com.gpl.rpg.AndorsTrail.model.item.ItemType;
|
import com.gpl.rpg.AndorsTrail.model.item.ItemType;
|
||||||
import com.gpl.rpg.AndorsTrail.model.map.PredefinedMap;
|
import com.gpl.rpg.AndorsTrail.model.map.PredefinedMap;
|
||||||
import com.gpl.rpg.AndorsTrail.model.quest.Quest;
|
import com.gpl.rpg.AndorsTrail.model.quest.Quest;
|
||||||
|
import com.gpl.rpg.AndorsTrail.util.HashMapHelper;
|
||||||
|
|
||||||
public final class GameStatistics {
|
public final class GameStatistics {
|
||||||
private int deaths = 0;
|
private int deaths = 0;
|
||||||
@@ -36,10 +37,10 @@ public final class GameStatistics {
|
|||||||
|
|
||||||
public void addMonsterKill(MonsterType monsterType) {
|
public void addMonsterKill(MonsterType monsterType) {
|
||||||
// Track monster kills by type ID, for savegame file
|
// Track monster kills by type ID, for savegame file
|
||||||
killedMonstersByTypeID.put(monsterType.id, killedMonstersByTypeID.getOrDefault((monsterType.id), 0) + 1);
|
killedMonstersByTypeID.put(monsterType.id, getNumberOfKillsForMonsterType(monsterType.id) + 1);
|
||||||
|
|
||||||
// Also track by name, for statistics display (multiple IDs w/same name don't matter to player)
|
// Also track by name, for statistics display (multiple IDs w/same name don't matter to player)
|
||||||
killedMonstersByName.put(monsterType.name, killedMonstersByName.getOrDefault(monsterType.name, 0) + 1);
|
killedMonstersByName.put(monsterType.name, getNumberOfKillsForMonsterName(monsterType.name) + 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void addPlayerDeath(int lostExp) {
|
public void addPlayerDeath(int lostExp) {
|
||||||
@@ -50,8 +51,7 @@ public final class GameStatistics {
|
|||||||
}
|
}
|
||||||
public void addItemUsage(ItemType type) {
|
public void addItemUsage(ItemType type) {
|
||||||
final String n = type.id;
|
final String n = type.id;
|
||||||
if (!usedItems.containsKey(n)) usedItems.put(n, 1);
|
usedItems.put(n, HashMapHelper.getOrDefault(usedItems, n,0) + 1);
|
||||||
else usedItems.put(n, usedItems.get(n) + 1);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public int getDeaths() {
|
public int getDeaths() {
|
||||||
@@ -73,15 +73,11 @@ public final class GameStatistics {
|
|||||||
public boolean isDead() { return !hasUnlimitedLives() && getLivesLeft() < 1; }
|
public boolean isDead() { return !hasUnlimitedLives() && getLivesLeft() < 1; }
|
||||||
|
|
||||||
public int getNumberOfKillsForMonsterType(String monsterTypeID) {
|
public int getNumberOfKillsForMonsterType(String monsterTypeID) {
|
||||||
Integer v = killedMonstersByTypeID.get(monsterTypeID);
|
return HashMapHelper.getOrDefault(killedMonstersByTypeID, monsterTypeID, 0);
|
||||||
if (v == null) return 0;
|
|
||||||
return v;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public int getNumberOfKillsForMonsterName(String monsterName) {
|
public int getNumberOfKillsForMonsterName(String monsterName) {
|
||||||
Integer v = killedMonstersByName.get(monsterName);
|
return HashMapHelper.getOrDefault(killedMonstersByName, monsterName, 0);
|
||||||
if (v == null) return 0;
|
|
||||||
return v;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getTop5MostCommonlyKilledMonsters(WorldContext world, Resources res) {
|
public String getTop5MostCommonlyKilledMonsters(WorldContext world, Resources res) {
|
||||||
@@ -144,20 +140,15 @@ public final class GameStatistics {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public int getNumberOfUsedItems() {
|
public int getNumberOfUsedItems() {
|
||||||
int result = 0;
|
return HashMapHelper.sumIntegerValues(usedItems);
|
||||||
for (int v : usedItems.values()) result += v;
|
|
||||||
return result;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public int getNumberOfTimesItemHasBeenUsed(String itemId) {
|
public int getNumberOfTimesItemHasBeenUsed(String itemId) {
|
||||||
if (!usedItems.containsKey(itemId)) return 0;
|
return HashMapHelper.getOrDefault(usedItems, itemId, 0);
|
||||||
return usedItems.get(itemId);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public int getNumberOfKilledMonsters() {
|
public int getNumberOfKilledMonsters() {
|
||||||
int result = 0;
|
return HashMapHelper.sumIntegerValues(killedMonstersByTypeID);
|
||||||
for (int v : killedMonstersByTypeID.values()) result += v;
|
|
||||||
return result;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private static final Comparator<Entry<String, Integer>> descendingValueComparator = new Comparator<Entry<String, Integer>>() {
|
private static final Comparator<Entry<String, Integer>> descendingValueComparator = new Comparator<Entry<String, Integer>>() {
|
||||||
@@ -186,7 +177,7 @@ public final class GameStatistics {
|
|||||||
// Also track by name, for statistics display (multiple IDs w/same name don't matter to player)
|
// Also track by name, for statistics display (multiple IDs w/same name don't matter to player)
|
||||||
MonsterType t = world.monsterTypes.getMonsterType(id);
|
MonsterType t = world.monsterTypes.getMonsterType(id);
|
||||||
|
|
||||||
if (t != null) killedMonstersByName.put(t.name, killedMonstersByName.getOrDefault(t.name, 0) + value);
|
if (t != null) killedMonstersByName.put(t.name, getNumberOfKillsForMonsterName(t.name) + value);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (fileversion <= 17) return;
|
if (fileversion <= 17) return;
|
||||||
|
|||||||
@@ -0,0 +1,16 @@
|
|||||||
|
package com.gpl.rpg.AndorsTrail.util;
|
||||||
|
|
||||||
|
import java.util.HashMap;
|
||||||
|
|
||||||
|
public final class HashMapHelper {
|
||||||
|
public static <K,V> V getOrDefault(HashMap<K,V> map, K key, V defaultValue) {
|
||||||
|
V v = map.get(key);
|
||||||
|
return v == null ? defaultValue : v;
|
||||||
|
}
|
||||||
|
public static <K> Integer sumIntegerValues(HashMap<K,Integer> map) {
|
||||||
|
int sum = 0;
|
||||||
|
for (Integer v : map.values()) sum += v;
|
||||||
|
return sum;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -1,7 +0,0 @@
|
|||||||
## This file must *NOT* be checked into Version Control Systems,
|
|
||||||
# as it contains information specific to your local configuration.
|
|
||||||
#
|
|
||||||
# Location of the SDK. This is only used by Gradle.
|
|
||||||
#
|
|
||||||
#Sun Sep 25 12:50:59 CEST 2022
|
|
||||||
sdk.dir=C\:\\Users\\chris\\AppData\\Local\\Android\\Sdk
|
|
||||||
Reference in New Issue
Block a user