5 Commits

Author SHA1 Message Date
xawotihs
a2f510bbd5 Still trying to repair cross compilation 2019-09-07 22:47:45 +02:00
xawotihs
4605d38982 Including cinttypes only when supported by compiler 2019-09-07 21:44:43 +02:00
xawotihs
d9452b02d9 Adds <cinttypes> for definition of uint64_t 2019-09-07 21:32:22 +02:00
xawotihs
1cfee14caa Put back <stdint.h> to avoid having to change the android compilation options 2019-09-07 20:27:05 +02:00
xawotihs
fd3777f08e Now compile with VS2019 2019-09-07 19:46:15 +02:00
475 changed files with 209810 additions and 326084 deletions

View File

@@ -35,8 +35,8 @@ before_install:
if [ `uname -m` = x86_64 ]; then if [ `uname -m` = x86_64 ]; then
sudo dpkg --add-architecture i386 && sudo apt-get update && sudo dpkg --add-architecture i386 && sudo apt-get update &&
sudo apt-get install -qq --force-yes libgd2-xpm-dev libc6-i386 lib32stdc++6 lib32gcc1 lib32ncurses5 lib32z1 jq ant; fi && sudo apt-get install -qq --force-yes libgd2-xpm-dev libc6-i386 lib32stdc++6 lib32gcc1 lib32ncurses5 lib32z1 jq ant; fi &&
wget https://dl.google.com/android/repository/android-ndk-r22-linux-x86_64.zip -nv && wget http://dl.google.com/android/ndk/android-ndk-r9-linux-x86_64.tar.bz2 -nv &&
wget http://dl.google.com/android/android-sdk_r24.4.1-linux.tgz -nv; wget http://dl.google.com/android/android-sdk_r24.3.4-linux.tgz -nv;
fi fi
install: install:
@@ -44,16 +44,22 @@ install:
tar -x --xz -f sdk.lzma; tar -x --xz -f sdk.lzma;
fi fi
- if [ "$BUILD_ANDROID" == "YES" ]; then - if [ "$BUILD_ANDROID" == "YES" ]; then
unzip android-ndk-r22-linux-x86_64.zip && tar --absolute-names -jxf android-ndk-r9-linux-x86_64.tar.bz2 &&
tar -zxf android-sdk_r24.4.1-linux.tgz && tar -zxf android-sdk_r24.3.4-linux.tgz &&
$ANDROID list sdk --extended -a && $ANDROID list sdk --extended -a &&
echo yes | $ANDROID update sdk -a -t tools,platform-tools,build-tools-23.0.1,android-23 --no-ui --force --no-https; echo yes | $ANDROID update sdk -a -t tools,platform-tools,build-tools-23.0.1,android-10 --no-ui --force --no-https;
fi fi
- sudo python -m easy_install --upgrade pyOpenSSL - sudo python -m easy_install --upgrade pyOpenSSL
- sudo pip install pyjavaproperties - sudo pip install pyjavaproperties
- sudo pip install github3.py - sudo pip install github3.py
- sudo pip install cpp-coveralls - sudo pip install cpp-coveralls
env:
global:
- secure: "EBzr1+qjQsOhn0s+tcFmXR1jP9B0xiOSXuXbRXWZ1OEHNvp8+A5/pS84LYVFlaZqmxr5dApxvPtwhgLIUbQ3EPXm8LpC3KgSD4dS+9/QMbxhe5TK4oczgFRGcDTMJQZsCzhOh7hp3tbcbJg5Gp+VT7aFjFQSHDGwhzSJXsXwh/8="
- secure: "X5dTQfofqAutnXxmu11Ep2MQ5QYnMN8m0AITRtwymhEF2UclcOudI1+skPtuhAGbWQnSO+lhunV3cvMfw2/Ml3k/VDz6VdFSKFrzAu7ja1VLJfcxr7chi0s8q30pVBb66tGydjIBac3B+RQyqgmZQW1frbRrhC/kPFQ6wPWOJdQ="
- secure: "T97NUPnxCpVZ/c5HH0zfo0FO3DPSRMSmze58ubW5EUTZOjAMtEt+OFdsrNZvUTCugUj2M1agtonZbAbczpaAL+lgZcHDgXgWMkfO0pMnsWX1yyCNqMuE/iTMpJr/xsLQeyWlftWjJLsseQU45abZsd1XVmda/G+ZhrDLF1y55SA="
script: "tools/travis-script.sh" script: "tools/travis-script.sh"
after_success: after_success:

View File

@@ -20,7 +20,7 @@ namespace boost {
enum xtime_clock_types enum xtime_clock_types
{ {
TIME_UTC_=1 TIME_UTC=1
// TIME_TAI, // TIME_TAI,
// TIME_MONOTONIC, // TIME_MONOTONIC,
// TIME_PROCESS, // TIME_PROCESS,
@@ -68,7 +68,7 @@ inline xtime get_xtime(boost::system_time const& abs_time)
inline int xtime_get(struct xtime* xtp, int clock_type) inline int xtime_get(struct xtime* xtp, int clock_type)
{ {
if (clock_type == TIME_UTC_) if (clock_type == TIME_UTC)
{ {
*xtp=get_xtime(get_system_time()); *xtp=get_xtime(get_system_time());
return clock_type; return clock_type;

View File

@@ -350,7 +350,7 @@ namespace boost
cond.timed_wait(lock, xt); cond.timed_wait(lock, xt);
# endif # endif
xtime cur; xtime cur;
xtime_get(&cur, TIME_UTC_); xtime_get(&cur, TIME_UTC);
if (xtime_cmp(xt, cur) <= 0) if (xtime_cmp(xt, cur) <= 0)
return; return;
} }
@@ -365,7 +365,7 @@ namespace boost
BOOST_VERIFY(!pthread_yield()); BOOST_VERIFY(!pthread_yield());
# else # else
xtime xt; xtime xt;
xtime_get(&xt, TIME_UTC_); xtime_get(&xt, TIME_UTC);
sleep(xt); sleep(xt);
# endif # endif
} }

View File

@@ -20,8 +20,8 @@ const int NANOSECONDS_PER_MICROSECOND = 1000;
inline void to_time(int milliseconds, boost::xtime& xt) inline void to_time(int milliseconds, boost::xtime& xt)
{ {
int res = 0; int res = 0;
res = boost::xtime_get(&xt, boost::TIME_UTC_); res = boost::xtime_get(&xt, boost::TIME_UTC);
BOOST_ASSERT(res == boost::TIME_UTC_); BOOST_ASSERT(res == boost::TIME_UTC);
xt.sec += (milliseconds / MILLISECONDS_PER_SECOND); xt.sec += (milliseconds / MILLISECONDS_PER_SECOND);
xt.nsec += ((milliseconds % MILLISECONDS_PER_SECOND) * xt.nsec += ((milliseconds % MILLISECONDS_PER_SECOND) *
@@ -57,8 +57,8 @@ inline void to_timespec_duration(const boost::xtime& xt, timespec& ts)
{ {
boost::xtime cur; boost::xtime cur;
int res = 0; int res = 0;
res = boost::xtime_get(&cur, boost::TIME_UTC_); res = boost::xtime_get(&cur, boost::TIME_UTC);
BOOST_ASSERT(res == boost::TIME_UTC_); BOOST_ASSERT(res == boost::TIME_UTC);
if (boost::xtime_cmp(xt, cur) <= 0) if (boost::xtime_cmp(xt, cur) <= 0)
{ {
@@ -88,8 +88,8 @@ inline void to_duration(boost::xtime xt, int& milliseconds)
{ {
boost::xtime cur; boost::xtime cur;
int res = 0; int res = 0;
res = boost::xtime_get(&cur, boost::TIME_UTC_); res = boost::xtime_get(&cur, boost::TIME_UTC);
BOOST_ASSERT(res == boost::TIME_UTC_); BOOST_ASSERT(res == boost::TIME_UTC);
if (boost::xtime_cmp(xt, cur) <= 0) if (boost::xtime_cmp(xt, cur) <= 0)
milliseconds = 0; milliseconds = 0;
@@ -110,8 +110,8 @@ inline void to_microduration(boost::xtime xt, int& microseconds)
{ {
boost::xtime cur; boost::xtime cur;
int res = 0; int res = 0;
res = boost::xtime_get(&cur, boost::TIME_UTC_); res = boost::xtime_get(&cur, boost::TIME_UTC);
BOOST_ASSERT(res == boost::TIME_UTC_); BOOST_ASSERT(res == boost::TIME_UTC);
if (boost::xtime_cmp(xt, cur) <= 0) if (boost::xtime_cmp(xt, cur) <= 0)
microseconds = 0; microseconds = 0;

View File

@@ -474,7 +474,7 @@
#ifndef PNG_VERSION_INFO_ONLY #ifndef PNG_VERSION_INFO_ONLY
/* include the compression library's header */ /* include the compression library's header */
#include "../include/zlib.h" #include "zlib.h"
#endif #endif
/* include all user configurable info, including optional assembler routines */ /* include all user configurable info, including optional assembler routines */

View File

@@ -84,7 +84,7 @@ OBJS = $(GENERIC_OBJS) $(LINUX_OBJS)
TARGET_LIB = libjge.a TARGET_LIB = libjge.a
TARGET_HGE = libhgetools.a TARGET_HGE = libhgetools.a
INCDIR = $(shell freetype-config --cflags 2> /dev/null) -I/usr/X11/include -I/usr/include/boost -Isrc/zipFS -Iinclude/ INCDIR = $(shell freetype-config --cflags 2> /dev/null) -I/usr/X11/include -I/usr/include/boost -Isrc/zipFS -Iinclude/
CXXFLAGS += -DLINUX -DNETWORK_SUPPORT $(FMOD) CXXFLAGS += -DLINUX $(FMOD)
CXXFLAGS += $(INCDIR) CXXFLAGS += $(INCDIR)
LIBDIR = lib/linux LIBDIR = lib/linux
endif endif

View File

@@ -25,6 +25,7 @@ std::string ToHex(T* pointer)
#ifdef LINUX #ifdef LINUX
#define OutputDebugString(val) (std::cerr << val); #define OutputDebugString(val) (std::cerr << val);
#define OutputDebugStringA(val) (std::cerr << val);
#endif #endif
#ifdef _DEBUG #ifdef _DEBUG

View File

@@ -394,7 +394,6 @@ class JGE
void SetJNIEnv(JNIEnv * env, jclass cls); void SetJNIEnv(JNIEnv * env, jclass cls);
void sendJNICommand(std::string command); void sendJNICommand(std::string command);
std::string getFileSystemLocation(); std::string getFileSystemLocation();
std::string getFileUserFolderPath();
#endif #endif
protected: protected:

View File

@@ -30,7 +30,6 @@ const int kInfoMenuID = -200;
const int kRandomPlayerMenuID = -11; const int kRandomPlayerMenuID = -11;
const int kRandomAIPlayerMenuID = -12; const int kRandomAIPlayerMenuID = -12;
const int kEvilTwinMenuID = -14; const int kEvilTwinMenuID = -14;
const int kCommanderMenuID = -33;
class JGuiListener class JGuiListener
{ {

View File

@@ -2,7 +2,6 @@
#define _JSOCKET_H_ #define _JSOCKET_H_
#include <queue> #include <queue>
#include "Threading.h"
using namespace std; using namespace std;
#define SERVER_PORT 5001 #define SERVER_PORT 5001

View File

@@ -26,8 +26,16 @@
#include "JAudio.h" #include "JAudio.h"
#else #else
#ifdef IOS
#include <tr1/cstdint>
#else
#include <stdint.h> #include <stdint.h>
//#include <cstdint>
#endif
//#include <stdint.h>
//the MSC version might only define _MSC_STDINT_H_
//and that might cause redefinition of standard types
//#define _STDINT_H_
#endif #endif
@@ -140,9 +148,14 @@ typedef uint32_t u32;
#include <GLES/gl.h> #include <GLES/gl.h>
#include <GLES/glext.h> #include <GLES/glext.h>
#elif defined (WIN32) || defined (LINUX) #elif defined (WIN32) || defined (LINUX)
#if defined(__APPLE__)
#include <OpenGL/gl.h>
#include <OpenGL/glu.h>
#else
#include <GL/gl.h> #include <GL/gl.h>
#include <GL/glu.h> #include <GL/glu.h>
#endif #endif
#endif
#else #else
#include <QtOpenGL> #include <QtOpenGL>
#endif #endif

View File

@@ -1,7 +1,7 @@
#ifndef THREADING_H #ifndef THREADING_H
#define THREADING_H #define THREADING_H
#if !defined(PSP) && !defined(QT_CONFIG) && !(__cplusplus > 199711L) #if !defined(PSP) && !defined(QT_CONFIG) && !(__cplusplus > 199711L) && !(_MSC_VER >= 1700)
#include <boost/date_time.hpp> #include <boost/date_time.hpp>
#ifdef WIN32 #ifdef WIN32
@@ -537,7 +537,7 @@ namespace boost
} }
} }
#elif (__cplusplus > 199711L) #elif (__cplusplus > 199711L) || (_MSC_VER >= 1700)
#include <thread> #include <thread>
#include <mutex> #include <mutex>

View File

@@ -131,11 +131,10 @@ JFileSystem::JFileSystem(const string & _userPath, const string & _systemPath)
systemPath = [[documentsDirectory stringByAppendingString: @"/Res/"] cStringUsingEncoding:1]; systemPath = [[documentsDirectory stringByAppendingString: @"/Res/"] cStringUsingEncoding:1];
#elif defined (ANDROID) #elif defined (ANDROID)
userPath = JGE::GetInstance()->getFileUserFolderPath(); userPath = JGE::GetInstance()->getFileSystemLocation();
systemPath = JGE::GetInstance()->getFileSystemLocation(); systemPath = "";
DebugTrace("User path " << userPath); DebugTrace("User path " << userPath);
DebugTrace("System path " << systemPath);
#elif defined (QT_CONFIG) #elif defined (QT_CONFIG)
QDir sysDir(RESDIR); QDir sysDir(RESDIR);
@@ -260,7 +259,6 @@ void JFileSystem::clearZipCache()
bool JFileSystem::AttachZipFile(const string &zipfile, char *password /* = NULL */) bool JFileSystem::AttachZipFile(const string &zipfile, char *password /* = NULL */)
{ {
#ifndef WIN32
if (mZipAvailable && mZipFile.is_open()) if (mZipAvailable && mZipFile.is_open())
{ {
if (mZipFileName != zipfile) if (mZipFileName != zipfile)
@@ -268,7 +266,7 @@ bool JFileSystem::AttachZipFile(const string &zipfile, char *password /* = NULL
else else
return true; return true;
} }
#endif
mZipFileName = zipfile; mZipFileName = zipfile;
mPassword = password; mPassword = password;

View File

@@ -668,7 +668,7 @@ string JGE::getFileSystemLocation()
if (env == NULL) if (env == NULL)
{ {
DebugTrace("An Error Occurred in getting the JNI Environment whie trying to get the system folder location. Defaulting to /mnt/sdcard/net.wagic.app/Wagic"); DebugTrace("An Error Occurred in getting the JNI Environment whie trying to get the system folder location. Defaulting to /mnt/sdcard/net.wagic.app/Wagic");
return "/mnt/sdcard/Wagic/Res"; return "/mnt/sdcard/Wagic";
}; };
jclass jniClass = env->FindClass("org/libsdl/app/SDLActivity"); jclass jniClass = env->FindClass("org/libsdl/app/SDLActivity");
@@ -677,36 +677,7 @@ string JGE::getFileSystemLocation()
if (methodId == 0) if (methodId == 0)
{ {
DebugTrace("An Error Occurred in getting the JNI methodID for getSystemFolderPath. Defaulting to /mnt/sdcard/Wagic"); DebugTrace("An Error Occurred in getting the JNI methodID for getSystemFolderPath. Defaulting to /mnt/sdcard/Wagic");
return "/mnt/sdcard/Wagic/Res"; return "/mnt/sdcard/Wagic";
};
jstring systemPath = (jstring) env->CallStaticObjectMethod(jniClass, methodId);
// Now convert the Java String to C++ char array
const char* cstr = env->GetStringUTFChars(systemPath, 0);
string retVal (cstr);
env->ReleaseStringUTFChars(systemPath, cstr);
env->DeleteLocalRef(systemPath);
return retVal;
}
string JGE::getFileUserFolderPath()
{
JNIEnv * env = getJNIEnv();
if (env == NULL)
{
DebugTrace("An Error Occurred in getting the JNI Environment whie trying to get the system folder location. Defaulting to /mnt/sdcard/net.wagic.app/Wagic");
return "/mnt/sdcard/Wagic/User";
};
jclass jniClass = env->FindClass("org/libsdl/app/SDLActivity");
jmethodID methodId = env->GetStaticMethodID( jniClass, "getUserFolderPath", "()Ljava/lang/String;");
if (methodId == 0)
{
DebugTrace("An Error Occurred in getting the JNI methodID for getSystemFolderPath. Defaulting to /mnt/sdcard/Wagic");
return "/mnt/sdcard/Wagic/User";
}; };
jstring systemPath = (jstring) env->CallStaticObjectMethod(jniClass, methodId); jstring systemPath = (jstring) env->CallStaticObjectMethod(jniClass, methodId);

View File

@@ -4,6 +4,8 @@
*/ */
#define __STDC_LIMIT_MACROS
#include "../include/DebugRoutines.h" #include "../include/DebugRoutines.h"
#include "../include/JNetwork.h" #include "../include/JNetwork.h"

View File

@@ -18,11 +18,6 @@
#include <stdexcept> #include <stdexcept>
#include <iostream> #include <iostream>
#include <math.h> #include <math.h>
#ifndef WIN32
#include <unistd.h>
#endif
#include <stdio.h>
#include <stdlib.h>
#if (defined FORCE_GLES) #if (defined FORCE_GLES)
#undef GL_ES_VERSION_2_0 #undef GL_ES_VERSION_2_0
@@ -58,7 +53,6 @@ JGameLauncher* g_launcher = NULL;
#ifdef ANDROID #ifdef ANDROID
JNIEnv * mJNIEnv = NULL; JNIEnv * mJNIEnv = NULL;
jclass * mJNIClass = NULL; jclass * mJNIClass = NULL;
int SDL_ResumeSyncTime = 0;
#endif #endif
class SdlApp; class SdlApp;
@@ -84,7 +78,6 @@ extern "C" void Java_org_libsdl_app_SDLActivity_nativeResume(
{ {
if (!g_engine) if (!g_engine)
return; return;
SDL_ResumeSyncTime = 100000;
g_engine->Resume(); g_engine->Resume();
} }
@@ -143,18 +136,10 @@ public:
if(!g_engine->IsPaused()) if(!g_engine->IsPaused())
OnEvent(&Event); OnEvent(&Event);
} }
if(!g_engine->IsPaused()){ if(!g_engine->IsPaused())
#ifdef ANDROID
// Fix for SDL crash on resuming Android app from background.
if(SDL_ResumeSyncTime){
usleep(SDL_ResumeSyncTime);
SDL_ResumeSyncTime = 0;
}
#endif
OnUpdate(); OnUpdate();
} }
} }
}
OnCleanup(); OnCleanup();

View File

@@ -185,12 +185,6 @@ JMusic *JSoundSystem::LoadMusic(const char *fileName)
result = (*engineEngine)->CreateAudioPlayer(engineEngine, &music->playerObject, &audioSrc, &audioSnk, 2, ids, req); result = (*engineEngine)->CreateAudioPlayer(engineEngine, &music->playerObject, &audioSrc, &audioSnk, 2, ids, req);
DebugTrace("result " << result); DebugTrace("result " << result);
if(result == SL_RESULT_MEMORY_FAILURE){
delete music;
mCurrentMusic = NULL;
return NULL;
}
// realize the player // realize the player
result = (*music->playerObject)->Realize(music->playerObject, SL_BOOLEAN_FALSE); result = (*music->playerObject)->Realize(music->playerObject, SL_BOOLEAN_FALSE);
DebugTrace("result " << result); DebugTrace("result " << result);
@@ -309,12 +303,6 @@ JSample *JSoundSystem::LoadSample(const char *fileName)
1, ids, req); 1, ids, req);
DebugTrace("result " << result); DebugTrace("result " << result);
if(result == SL_RESULT_MEMORY_FAILURE){
delete sample;
mCurrentSample = NULL;
return NULL;
}
// realize the player // realize the player
result = (*sample->playerObject)->Realize(sample->playerObject, SL_BOOLEAN_FALSE); result = (*sample->playerObject)->Realize(sample->playerObject, SL_BOOLEAN_FALSE);
DebugTrace("result " << result); DebugTrace("result " << result);

View File

@@ -1,10 +1,14 @@
#define __STDC_LIMIT_MACROS
#include "../../include/DebugRoutines.h"
#include "Threading.h"
#include <errno.h> #include <errno.h>
#ifdef WIN32 #ifdef WIN32
#pragma comment(lib,"WSOCK32.LIB") #pragma comment(lib,"WSOCK32.LIB")
#include <stdio.h> #include <stdio.h>
#include <conio.h> #include <conio.h>
#include <winsock.h> #include <winsock.h>
#include <winsock.h>
#include <fcntl.h> #include <fcntl.h>
#elif LINUX #elif LINUX
#include <unistd.h> #include <unistd.h>
@@ -16,7 +20,6 @@
#endif //WINDOWS #endif //WINDOWS
#include "../../include/JSocket.h" #include "../../include/JSocket.h"
#include "../../include/DebugRoutines.h"
JSocket::JSocket(string ipAddr) JSocket::JSocket(string ipAddr)
@@ -48,9 +51,7 @@ JSocket::JSocket(string ipAddr)
#ifdef WIN32 #ifdef WIN32
unsigned int addr_dest = inet_addr(ipAddr.c_str()); unsigned int addr_dest = inet_addr(ipAddr.c_str());
hostentptr = gethostbyaddr((char*) &addr_dest, 4, AF_INET); hostentptr=gethostbyaddr((char*) &addr_dest, 4, AF_INET);
if (hostentptr == NULL)
hostentptr = gethostbyname(ipAddr.c_str()); // Fix for Windows if IP Address cannot be resolved.
#elif LINUX #elif LINUX
hostentptr = gethostbyname(ipAddr.c_str()); hostentptr = gethostbyname(ipAddr.c_str());
#endif #endif

View File

@@ -1,7 +1,7 @@
#Wagic the Homebrew #Wagic the Homebrew
[![Build Status](https://travis-ci.com/WagicProject/wagic.png?branch=master)](https://travis-ci.com/WagicProject/wagic) [![Build Status](https://travis-ci.org/WagicProject/wagic.png?branch=master)](https://travis-ci.org/WagicProject/wagic)
[![Build status](https://ci.appveyor.com/api/projects/status/7j4fbr6m62aqej59/branch/master)](https://ci.appveyor.com/project/xawotihs/wagic/branch/master) [![Build status](https://ci.appveyor.com/api/projects/status/7j4fbr6m62aqej59/branch/master)](https://ci.appveyor.com/project/xawotihs/wagic/branch/master)
[![Coverage Status](https://coveralls.io/repos/WagicProject/wagic/badge.png?branch=master)](https://coveralls.io/r/WagicProject/wagic?branch=master) [![Coverage Status](https://coveralls.io/repos/WagicProject/wagic/badge.png?branch=master)](https://coveralls.io/r/WagicProject/wagic?branch=master)

View File

@@ -1,28 +1,16 @@
<?xml version="1.0" encoding="utf-8" standalone="no"?> <?xml version="1.0" encoding="utf-8" standalone="no"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" <manifest xmlns:android="http://schemas.android.com/apk/res/android" android:versionCode="0201" android:versionName="@string/app_version" package="net.wagic.app">
android:versionCode="0231" <uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS"/>
android:installLocation="preferExternal" <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
android:versionName="@string/app_version" <uses-permission android:name="android.permission.INTERNET"/>
package="net.wagic.app"> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" /> <application android:icon="@drawable/icon" android:label="@string/app_name" android:theme="@android:style/Theme.NoTitleBar.Fullscreen">
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <activity android:debuggable="false" android:configChanges="keyboard|keyboardHidden|orientation" android:label="@string/app_name" android:name="org.libsdl.app.SDLActivity" android:screenOrientation="sensorLandscape">
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<application android:icon="@drawable/icon"
android:label="@string/app_name"
android:theme="@android:style/Theme.NoTitleBar.Fullscreen">
<activity android:debuggable="false"
android:configChanges="keyboard|keyboardHidden|orientation"
android:label="@string/app_name"
android:name="org.libsdl.app.SDLActivity"
android:screenOrientation="sensorLandscape">
<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"/>
</intent-filter> </intent-filter>
</activity> </activity>
</application> </application>
<uses-sdk android:minSdkVersion="10" <uses-sdk android:minSdkVersion="10" android:targetSdkVersion="10"/>
android:targetSdkVersion="29" />
</manifest> </manifest>

View File

@@ -8,4 +8,4 @@
# project structure. # project structure.
# Project target. # Project target.
target=android-23 target=android-10

View File

@@ -12,7 +12,7 @@ BOOST_PATH := $(MY_WAGIC_ROOT)/Boost
JPEG_PATH := $(JGE_PATH)/Dependencies/libjpeg JPEG_PATH := $(JGE_PATH)/Dependencies/libjpeg
PNG_PATH := $(JGE_PATH)/Dependencies/libpng PNG_PATH := $(JGE_PATH)/Dependencies/libpng
LOCAL_CFLAGS += -DLINUX -DANDROID -DSDL_CONFIG -DNETWORK_SUPPORT LOCAL_CFLAGS += -DLINUX -DANDROID -DSDL_CONFIG
LOCAL_CFLAGS += -D_STLP_USE_SIMPLE_NODE_ALLOC -DTIXML_USE_STL LOCAL_CFLAGS += -D_STLP_USE_SIMPLE_NODE_ALLOC -DTIXML_USE_STL
LOCAL_CFLAGS += -D__arm__ -D_REENTRANT -D_GLIBCXX__PTHREADS LOCAL_CFLAGS += -D__arm__ -D_REENTRANT -D_GLIBCXX__PTHREADS
LOCAL_STATIC_LIBRARIES := libpng libjpeg LOCAL_STATIC_LIBRARIES := libpng libjpeg
@@ -133,7 +133,6 @@ LOCAL_SRC_FILES := $(SDL_PATH)/src/main/android/SDL_android_main.cpp \
$(MTG_PATH)/src/WFilter.cpp \ $(MTG_PATH)/src/WFilter.cpp \
$(MTG_PATH)/src/WFont.cpp \ $(MTG_PATH)/src/WFont.cpp \
$(MTG_PATH)/src/WGui.cpp \ $(MTG_PATH)/src/WGui.cpp \
$(MTG_PATH)/src/WParsedInt.cpp \
$(MTG_PATH)/src/WResourceManager.cpp \ $(MTG_PATH)/src/WResourceManager.cpp \
$(MTG_PATH)/src/DeckView.cpp \ $(MTG_PATH)/src/DeckView.cpp \
$(MTG_PATH)/src/CarouselDeckView.cpp \ $(MTG_PATH)/src/CarouselDeckView.cpp \

View File

@@ -1,8 +1,8 @@
APP_PROJECT_PATH := $(call my-dir)/.. APP_PROJECT_PATH := $(call my-dir)/..
APP_CPPFLAGS += -frtti -fexceptions APP_CPPFLAGS += -frtti -fexceptions
APP_ABI := armeabi-v7a APP_ABI := armeabi armeabi-v7a
#APP_ABI := x86 # mainly for emulators #APP_ABI := x86 # mainly for emulators
APP_STL := c++_static APP_STL := gnustl_static
APP_MODULES := libpng libjpeg main SDL APP_MODULES := libpng libjpeg main SDL
#APP_OPTIM is 'release' by default #APP_OPTIM is 'release' by default

View File

@@ -11,4 +11,4 @@
#proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt #proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt
# Project target. # Project target.
target=android-23 target=android-10

View File

@@ -4,7 +4,6 @@
android:id="@+id/mainLayout" android:id="@+id/mainLayout"
android:layout_width="fill_parent" android:layout_width="fill_parent"
android:layout_height="fill_parent" android:layout_height="fill_parent"
android:keepScreenOn="true"
> >
<TextView <TextView
android:layout_width="fill_parent" android:layout_width="fill_parent"

View File

@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<resources> <resources>
<string name="app_name">Wagic</string> <string name="app_name">Wagic</string>
<string name="app_version">0.23.1</string> <string name="app_version">0.20.1</string>
<string name="info_text">All Rights Reserved.</string> <string name="info_text">Wagic v0.20.1\\nAll Rights Reserved.</string>
</resources> </resources>

View File

@@ -16,7 +16,7 @@ public class DeckImporter
String message = ""; String message = "";
String deck = ""; String deck = "";
String deckname = ""; String deckname = "";
String prefix = ""; String prefix = "#SB:";
int cardcount = 0; int cardcount = 0;
if(f.exists() && !f.isDirectory()) if(f.exists() && !f.isDirectory())
{ {
@@ -36,14 +36,7 @@ public class DeckImporter
{ {
String line = scanner.nextLine(); String line = scanner.nextLine();
line = line.trim(); line = line.trim();
if (line.equals("")) { if (!line.equals("") && cardcount < 61) // don't write out blank lines
line = scanner.nextLine();
if (line.equals("")) {
line = scanner.nextLine();
prefix = "#SB:"; // Sideboard started from next card (we assumed that there are 2 blank lines from main deck and sideboard).
}
}
if (!line.equals("")) // don't write out blank lines
{ {
String[] slines = line.split("\\s+"); String[] slines = line.split("\\s+");
String arranged = ""; String arranged = "";
@@ -57,35 +50,33 @@ public class DeckImporter
{ {
arranged = arranged.substring(5); arranged = arranged.substring(5);
slines[1] = slines[1].replaceAll("\\[", "").replaceAll("\\]", ""); slines[1] = slines[1].replaceAll("\\[", "").replaceAll("\\]", "");
deck += prefix + arranged + " (" + renameSet(slines[1]) + ") * " + slines[0] + "\n"; deck += arranged + " (" + renameSet(slines[1]) + ") * " + slines[0] + "\n";
} else } else
{ {
deck += prefix + arranged + "(*) * " + slines[0] + "\n"; deck += arranged + "(*) * " + slines[0] + "\n";
} }
cardcount += Integer.parseInt(slines[0]); cardcount += Integer.parseInt(slines[0]);
} }
} }
} }
File profile = new File(activePath + "/User/settings/options.txt"); File profile = new File(activePath + "/Res/settings/options.txt");
String profileName = "Default";
if (profile.exists() && !profile.isDirectory()) if (profile.exists() && !profile.isDirectory())
profileName = getActiveProfile(profile); {
File rootDecks = null; String profileName = getActiveProfile(profile);
if (!profileName.equalsIgnoreCase("Default")) if (profileName != "Missing!")
rootDecks = new File(activePath + "/User/profiles/" + profileName); {
else File rootProfiles = new File(activePath + "/Res/profiles/" + profileName);
rootDecks = new File(activePath + "/User/player/"); if (rootProfiles.exists() && rootProfiles.isDirectory())
if (rootDecks.exists() && rootDecks.isDirectory())
{ {
//save deck //save deck
int countdeck = 1; int countdeck = 1;
File[] files = rootDecks.listFiles(); File[] files = rootProfiles.listFiles();
for (int i = 0; i < files.length; i++) for (int i = 0; i < files.length; i++)
{//check if there is available deck... {//check if there is available deck...
if (files[i].getName().startsWith("deck")) if (files[i].getName().startsWith("deck"))
countdeck++; countdeck++;
} }
File toSave = new File(rootDecks + "/deck" + countdeck + ".txt"); File toSave = new File(rootProfiles + "/deck" + countdeck + ".txt");
try try
{ {
FileOutputStream fop = new FileOutputStream(toSave); FileOutputStream fop = new FileOutputStream(toSave);
@@ -100,14 +91,19 @@ public class DeckImporter
fop.write(contentInBytes); fop.write(contentInBytes);
fop.flush(); fop.flush();
fop.close(); fop.close();
message = "The deck has been successfully imported as: " + toSave.getName() + "\n" + cardcount + " total cards in this deck\n\n" + deck; message = "Import Deck Success!\n" + cardcount + " total cards in this deck\n\n" + deck;
} catch (IOException e) } catch (IOException e)
{ {
message = e.getMessage(); message = e.getMessage();
} }
} else } else
{ {
message = "Problem opening decks folder: " + rootDecks.getAbsolutePath(); message = "Missing Folder!";
}
}
} else
{
message = "Invalid Profile!";
} }
} else } else
{ {
@@ -147,12 +143,12 @@ public class DeckImporter
} }
else else
{ {
return "Default"; return "Missing!";
} }
} }
catch(IOException e) catch(IOException e)
{ {
return "Default"; return "Missing!";
} }
return name; return name;
} }

File diff suppressed because it is too large Load Diff

View File

@@ -23,7 +23,7 @@ public class StorageOptions
public static int count = 0; public static int count = 0;
public static String defaultMountPoint; public static String defaultMountPoint;
public static void determineStorageOptions(android.content.Context mContext) public static void determineStorageOptions()
{ {
initializeMountPoints(); initializeMountPoints();
if (findForcemount()){ if (findForcemount()){
@@ -36,16 +36,6 @@ public class StorageOptions
} }
compareMountsWithVold(); compareMountsWithVold();
testAndCleanMountsList(); testAndCleanMountsList();
File[] externalStorageVolumes = mContext.getExternalFilesDirs("");
for(int i = 0; i < externalStorageVolumes.length; i++){
mMounts.add(externalStorageVolumes[i].getAbsolutePath());
}
for(int i = 0; i < mMounts.size(); i++){
for(int j = 0; j < mMounts.size(); j++){
if(i!=j && mMounts.get(i).startsWith(mMounts.get(j)))
mMounts.remove(i);
}
}
setProperties(); setProperties();
} }
@@ -274,22 +264,22 @@ public class StorageOptions
for (String path : mMounts) for (String path : mMounts)
{//with forcemount menu {//with forcemount menu
if ("/mnt/sdcard".equalsIgnoreCase(path) || "/storage/sdcard0".equalsIgnoreCase(path)) if ("/mnt/sdcard".equalsIgnoreCase(path) || "/storage/sdcard0".equalsIgnoreCase(path))
mLabels.add("Internal SD " + "[" + path + "/]"); mLabels.add("Internal SD " + "[" + path + "]");
else if (path.contains("emulated")) else if (path.contains("emulated"))
mLabels.add("Emulated SD " + " [" + path + "/]"); mLabels.add("Emulated SD " + " [" + path + "]");
else else
mLabels.add("External SD " + " [" + path + "/]"); mLabels.add("External SD " + " [" + path + "]");
} }
} }
else else
{ {
for (String path : mMounts) for (String path : mMounts)
{ {
// TODO: /mnt/sdcard and emulated are assumed to always mean internal storage. Use this comparison until there is a better way to do this // TODO: /mnt/sdcard is assumed to always mean internal storage. Use this comparison until there is a better way to do this
if ("/mnt/sdcard".equalsIgnoreCase(path) || path.contains("emulated")) if ("/mnt/sdcard".equalsIgnoreCase(path))
mLabels.add("Built-in Storage " + "[" + path + "/]"); mLabels.add("Built-in Storage");
else else
mLabels.add("External SD Card " + "[" + path + "/]"); mLabels.add("External SD Card " + i++);
} }
} }

File diff suppressed because it is too large Load Diff

View File

@@ -27,7 +27,7 @@ OBJS = objs/InteractiveButton.o objs/AbilityParser.o objs/ActionElement.o\
objs/ThisDescriptor.o objs/Token.o objs/Translate.o objs/TranslateKeys.o\ objs/ThisDescriptor.o objs/Token.o objs/Translate.o objs/TranslateKeys.o\
objs/Trash.o objs/utils.o objs/WEvent.o objs/WResourceManager.o\ objs/Trash.o objs/utils.o objs/WEvent.o objs/WResourceManager.o\
objs/WCachedResource.o objs/WDataSrc.o objs/WGui.o objs/WFilter.o objs/Tasks.o\ objs/WCachedResource.o objs/WDataSrc.o objs/WGui.o objs/WFilter.o objs/Tasks.o\
objs/WFont.o objs/WParsedInt.o objs/CarouselDeckView.o objs/GridDeckView.o objs/DeckView.o objs/WFont.o objs/CarouselDeckView.o objs/GridDeckView.o objs/DeckView.o
DEPS = $(patsubst objs/%.o, deps/%.d, $(OBJS)) DEPS = $(patsubst objs/%.o, deps/%.d, $(OBJS))
RESULT = $(shell psp-config --psp-prefix 2> Makefile.cache) RESULT = $(shell psp-config --psp-prefix 2> Makefile.cache)
@@ -82,7 +82,7 @@ OBJS += objs/TestSuiteAI.o
INCDIR = -I../../JGE/include -I../../JGE/src -I/usr/X11/include -I../../projects/mtg/include -I/usr/include/boost -I../../JGE/src/zipFS INCDIR = -I../../JGE/include -I../../JGE/src -I/usr/X11/include -I../../projects/mtg/include -I/usr/include/boost -I../../JGE/src/zipFS
LIBDIR = -L../../JGE/lib/linux -L../../JGE -L/usr/X11/lib LIBDIR = -L../../JGE/lib/linux -L../../JGE -L/usr/X11/lib
LIBS = -ljge -lfreetype -ljpeg -lgif -lpng -lz -lm -lstdc++ -lhgetools -lGL -lGLU -lX11 -lpthread $(FMOD) LIBS = -ljge -lfreetype -ljpeg -lgif -lpng -lz -lm -lstdc++ -lhgetools -lGL -lGLU -lX11 -lpthread $(FMOD)
CFLAGS = $(INCDIR) -DLINUX -DNETWORK_SUPPORT -DUSE_PRECOMPILED_HEADERS=1 -DTIXML_USE_STL -Wno-nonnull-compare CFLAGS = $(INCDIR) -DLINUX -DUSE_PRECOMPILED_HEADERS=1 -DTIXML_USE_STL -Wno-nonnull-compare
ASFLAGS = $(CXXFLAGS) ASFLAGS = $(CXXFLAGS)
@@ -93,7 +93,7 @@ OBJS += objs/TestSuiteAI.o
INCDIR = -I../../JGE/include -I../../JGE/src -I/usr/X11/include -I../../projects/mtg/include -I../../Boost -I../../JGE/src/zipFS INCDIR = -I../../JGE/include -I../../JGE/src -I/usr/X11/include -I../../projects/mtg/include -I../../Boost -I../../JGE/src/zipFS
LIBDIR = -L../../JGE/lib/linux -L../../JGE -L/usr/X11/lib -L../../Boost/lib LIBDIR = -L../../JGE/lib/linux -L../../JGE -L/usr/X11/lib -L../../Boost/lib
LIBS = -ljge -lfreetype -ljpeg -lgif -lpng -lz -lm -lstdc++ -lhgetools -lGL -lGLU -lX11 -lboost_thread $(FMOD) LIBS = -ljge -lfreetype -ljpeg -lgif -lpng -lz -lm -lstdc++ -lhgetools -lGL -lGLU -lX11 -lboost_thread $(FMOD)
CFLAGS = $(INCDIR) -DLINUX -DNETWORK_SUPPORT -DUSE_PRECOMPILED_HEADERS=1 -Wno-nonnull-compare CFLAGS = $(INCDIR) -DLINUX -DUSE_PRECOMPILED_HEADERS=1 -Wno-nonnull-compare
ASFLAGS = $(CXXFLAGS) ASFLAGS = $(CXXFLAGS)

Binary file not shown.

Before

Width:  |  Height:  |  Size: 156 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 50 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 50 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 50 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 50 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 40 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 42 KiB

After

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 76 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 122 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 55 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 142 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 128 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 34 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 32 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 33 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 50 KiB

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -1,81 +0,0 @@
name=Commander Format
unlock=prx_commander
[INIT]
mode=commander
#MTG Game specific rules
auto=bonusrule
auto=putinplayrule
auto=kickerrule
auto=alternativecostrule
auto=buybackrule
auto=flashbackrule
auto=retracerule
auto=suspendrule
auto=morphrule
auto=payzerorule
auto=overloadrule
auto=attackrule
auto=attackcostrule
auto=blockrule
auto=blockcostrule
auto=combattriggerrule
auto=legendrule
auto=planeswalkerrule
auto=planeswalkerdamage
auto=planeswalkerattack
auto=tokencleanuprule
auto=persistrule
auto=vampirerule
auto=unearthrule
auto=lifelinkrule
auto=deathtouchrule
auto=soulbondrule
auto=dredgerule
auto=bestowrule
[PLAYERS]
life:40
offerinterruptonphase=draw
auto=ability$!all(*[iscommander]|myzones) moveto(mycommandzone)!$ controller
auto=shuffle
auto=draw:7
auto=sethand:7
auto=@each my draw:draw:1
auto=maxPlay(land)1
#Lands Mana Rules
auto=lord(Plains[-noactivatedability;-nomanaability;-notapability;land]|MyBattlefield) {T}:Add{W}
auto=lord(Island[-noactivatedability;-nomanaability;-notapability;land]|MyBattlefield) {T}:Add{U}
auto=lord(Swamp[-noactivatedability;-nomanaability;-notapability;land]|MyBattlefield) {T}:Add{B}
auto=lord(Mountain[-noactivatedability;-nomanaability;-notapability;land]|MyBattlefield) {T}:Add{R}
auto=lord(Forest[-noactivatedability;-nomanaability;-notapability;land]|MyBattlefield) {T}:Add{G}
#Mana Empties from manapool at the end of each phase
auto=@each untap:removeMana(*)
auto=@each upkeep:removeMana(*)
auto=@each draw:removeMana(*)
auto=@each firstmain:removeMana(*)
auto=@each combatbegins:removeMana(*)
auto=@each attackers:removeMana(*)
auto=@each blockers:removeMana(*)
auto=@each combatdamage:removeMana(*)
auto=@each combatEnds:removeMana(*)
auto=@each secondmain:removeMana(*)
auto=@each end:removeMana(*)
auto=@each cleanup:removeMana(*)
#Monarch rule
auto=@each my endofturn restriction{compare(pmonarch)~morethan~0}:draw:1
#reset Creature damage at the cleanup phase
auto=@each cleanup:all(*|myBattlefield) resetDamage
#Commander put back rule
auto=@movedTo(*[iscommander]|mygraveyard):may name(Put back to command zone) ability$!name(Put back to command zone) name(Put back to command zone) target(*[iscommander;fresh]|mygraveyard) moveto(mycommandzone)!$ controller
auto=@movedTo(*[iscommander]|myexile):may name(Put back to command zone) ability$!name(Put back to command zone) name(Put back to command zone) target(*[iscommander;fresh]|myexile) moveto(mycommandzone)!$ controller
auto=@movedTo(*[iscommander]|mylibrary):may name(Put back to command zone) ability$!name(Put back to command zone) name(Put back to command zone) target(*[iscommander;fresh]|mylibrary) moveto(mycommandzone)!$ controller
auto=@movedTo(*[iscommander]|myhand):may name(Put back to command zone) ability$!name(Put back to command zone) name(Put back to command zone) target(*[iscommander;fresh]|myhand) moveto(mycommandzone)!$ controller

View File

@@ -39,7 +39,7 @@ unlock_condition=type(land|myBattlefield)~morethan~18
[award] [award]
name=Paradise name=Paradise
id=prx_paradise id=prx_paradise
unlock_img=paradise_unlocked.png unlock_img=
unlock_text=Birds of Paradise Mode Unlocked unlock_text=Birds of Paradise Mode Unlocked
teaser=Utopia! Bring me down to the Paradise City. teaser=Utopia! Bring me down to the Paradise City.
Lands you control have "{T}: Add one mana of any color." Lands you control have "{T}: Add one mana of any color."
@@ -50,28 +50,28 @@ unlock_condition=type(Birds of Paradise|mybattlefield)~morethan~0
[award] [award]
name=Morinfen Mode name=Morinfen Mode
id=prx_morinfen id=prx_morinfen
unlock_img=morinfen_unlocked.png unlock_img=
unlock_text=Morinfen Mode Unlocked unlock_text=Morinfen Mode Unlocked
teaser="I looked into its eyes, and its soul was so empty I saw no reflection, no light there." — Crovax teaser="I looked into its eyes, and its soul was so empty I saw no reflection, no light there." — Crovax
At the beginning of your upkeep, you lose 1 life for each permanent you control. At the beginning of your upkeep, you lose 1 life for each permanent you control.
trophyroom_text=Won with less than 5 life. trophyroom_text=Won with less than 5 life.
unlock_condition=this(controllerlife < 5) unlock_condition=this(controllerlife<=6)
[/award] [/award]
[award] [award]
name=Horde name=Horde
id=prx_horde id=prx_horde
unlock_img=horde_unlocked.png unlock_img=
unlock_text=Tribal Horde Mode Unlocked unlock_text=Tribal Horde Mode Unlocked
teaser="From shards and splinters I call forth my living horde." -Molimo, maro-sorcerer teaser="From shards and splinters I call forth my living horde." -Molimo, maro-sorcerer
trophyroom_text=Won with more than 25 life. trophyroom_text=Won with more than 25 life.
unlock_condition=this(controllerlife > 25) unlock_condition=this(controllerlife>=26)
[/award] [/award]
[award] [award]
name=False God name=False God
id=prx_karona id=prx_karona
unlock_img=falsegod_unlocked.png unlock_img=
unlock_text=False God Mode Unlocked unlock_text=False God Mode Unlocked
teaser=At the beginning of your upkeep, exchange control of a permanent you control chosen at random and a permanent target opponent controls chosen at random. teaser=At the beginning of your upkeep, exchange control of a permanent you control chosen at random and a permanent target opponent controls chosen at random.
trophyroom_text=Devotion to red more than 7. trophyroom_text=Devotion to red more than 7.
@@ -81,7 +81,7 @@ unlock_condition=this(variable{type:manar}>7)
[award] [award]
name=Titania Mode name=Titania Mode
id=prx_titania id=prx_titania
unlock_img=titania_unlocked.png unlock_img=
unlock_text=Titania Mode Unlocked unlock_text=Titania Mode Unlocked
teaser=Voice of the Argoth forest, defender of its creatures, and enforcer of its laws, Titania is literally an aspect of the forest itself. teaser=Voice of the Argoth forest, defender of its creatures, and enforcer of its laws, Titania is literally an aspect of the forest itself.
You may play an additional land on each of your turns. You may play an additional land on each of your turns.
@@ -89,12 +89,3 @@ trophyroom_text=Devotion to green more than 7.
unlock_condition=this(variable{type:manag}>7) unlock_condition=this(variable{type:manag}>7)
[/award] [/award]
[award]
name=Commander Format
id=prx_commander
unlock_img=commander_unlocked.png
unlock_text=Commander Format Unlocked
teaser=Do you think you can dominate over other commanders? Take a big challenge in the commander format.
trophyroom_text=Win a game with 40 or more life and with less cards in your graveyard than your opponent.
unlock_condition=type(*|mygraveyard)~lessthan~type(*|opponentgraveyard),this(controllerlife > 39)
[/award]

View File

@@ -9,6 +9,5 @@ life:20
auto=shuffle auto=shuffle
auto=draw:7 auto=draw:7
auto=@each my upkeep:if type(creature[manacost<=3]|mylibrary)~lessthan~1 then moverandom(creature[manacost<=4]) from(library) to(battlefield) auto=@each my upkeep:if type(creature[manacost<=2]|mylibrary)~lessthan~1 then moverandom(creature[manacost<=4]) from(library) to(battlefield)
auto=@each my upkeep:if type(creature[manacost<=2]|mylibrary)~lessthan~1 then moverandom(creature[manacost<=3]) from(library) to(battlefield)
auto=@each my upkeep:moverandom(creature[manacost<=2]) from(library) to(battlefield) auto=@each my upkeep:moverandom(creature[manacost<=2]) from(library) to(battlefield)

View File

@@ -68,8 +68,5 @@ auto=@each secondmain:removeMana(*)
auto=@each end:removeMana(*) auto=@each end:removeMana(*)
auto=@each cleanup:removeMana(*) auto=@each cleanup:removeMana(*)
#Monarch rule
auto=@each my endofturn restriction{compare(pmonarch)~morethan~0}:draw:1
#reset Creature damage at the cleanup phase #reset Creature damage at the cleanup phase
auto=@each cleanup:all(*|myBattlefield) resetDamage auto=@each cleanup:all(*|myBattlefield) resetDamage

View File

@@ -11,6 +11,6 @@ auto=draw:7
auto=lord(*[-noactivatedability;-nomanaability;-notapability;land]|MyBattlefield) {T}:Add{W} auto=lord(*[-noactivatedability;-nomanaability;-notapability;land]|MyBattlefield) {T}:Add{W}
auto=lord(*[-noactivatedability;-nomanaability;-notapability;land]|MyBattlefield) {T}:Add{U} auto=lord(*[-noactivatedability;-nomanaability;-notapability;land]|MyBattlefield) {T}:Add{U}
auto=lord(*[-noactivatedability;-nomanaability;-notapability;land]|MyBattlefield) {T}:Add{B}
auto=lord(*[-noactivatedability;-nomanaability;-notapability;land]|MyBattlefield) {T}:Add{R} auto=lord(*[-noactivatedability;-nomanaability;-notapability;land]|MyBattlefield) {T}:Add{R}
auto=lord(*[-noactivatedability;-nomanaability;-notapability;land]|MyBattlefield) {T}:Add{B}
auto=lord(*[-noactivatedability;-nomanaability;-notapability;land]|MyBattlefield) {T}:Add{G} auto=lord(*[-noactivatedability;-nomanaability;-notapability;land]|MyBattlefield) {T}:Add{G}

View File

@@ -1,9 +1,8 @@
[meta] [meta]
author=Wagic Team author=Wagic Team
name=Tenth Edition name=Tenth Edition
orderindex=COR-A.10E year=2007
year=2007-07-13 total=383
total=384
[/meta] [/meta]
[card] [card]
primitive=Abundance primitive=Abundance
@@ -1920,8 +1919,3 @@ primitive=Youthful Knight
id=129790 id=129790
rarity=C rarity=C
[/card] [/card]
[card]
primitive=Zombie
id=-4143881
rarity=T
[/card]

View File

@@ -1,8 +1,7 @@
[meta] [meta]
author=Wagic Team author=Wagic Team
name=Unlimited Edition name=Unlimited Edition
orderindex=COR-2.2ED year=1993
year=1993-12-01
total=302 total=302
[/meta] [/meta]
[card] [card]

File diff suppressed because it is too large Load Diff

View File

@@ -1,9 +1,8 @@
[meta] [meta]
author=Wagic Team author=Wagic Team
name=Fourth Edition name=Fourth Edition
orderindex=COR-4.4ED year=1995
year=1995-04-01 total=378
total=379
[/meta] [/meta]
[card] [card]
primitive=Abomination primitive=Abomination

View File

@@ -2,9 +2,8 @@
author=Wagic Team author=Wagic Team
name=Fifth Dawn name=Fifth Dawn
block=Mirrodin block=Mirrodin
orderindex=EXP-X.5DN year=2004
year=2004-06-04 total=165
total=166
[/meta] [/meta]
[card] [card]
primitive=Abuna's Chant primitive=Abuna's Chant

View File

@@ -1,8 +1,7 @@
[meta] [meta]
author=Wagic Team author=Wagic Team
name=Fifth Edition name=Fifth Edition
orderindex=COR-5.5ED year=1997
year=1997-03-24
total=449 total=449
[/meta] [/meta]
[card] [card]

View File

@@ -1,8 +1,7 @@
[meta] [meta]
author=Wagic Team author=Wagic Team
name=Classic Sixth Edition name=Classic Sixth Edition
orderindex=COR-6.6ED year=1999
year=1999-04-21
total=350 total=350
[/meta] [/meta]
[card] [card]

View File

@@ -1,8 +1,7 @@
[meta] [meta]
author=Wagic Team author=Wagic Team
name=Seventh Edition name=Seventh Edition
orderindex=COR-7.7ED year=2001
year=2001-04-11
total=350 total=350
[/meta] [/meta]
[card] [card]

View File

@@ -1,8 +1,7 @@
[meta] [meta]
author=Wagic Team author=Wagic Team
name=Eighth Edition name=Eighth Edition
orderindex=COR-8.8ED year=2003
year=2003-07-28
total=357 total=357
[/meta] [/meta]
[card] [card]

View File

@@ -1,8 +1,7 @@
[meta] [meta]
author=Wagic Team author=Wagic Team
name=Ninth Edition name=Ninth Edition
orderindex=COR-9.9ED year=2005
year=2005-07-29
total=359 total=359
[/meta] [/meta]
[card] [card]

View File

@@ -1,7 +1,6 @@
[meta] [meta]
author=Wagic Team author=Wagic Team
name=Masters 25 name=Masters 25
orderindex=REP-B.A25
year=2018-03-16 year=2018-03-16
total=249 total=249
[/meta] [/meta]

View File

@@ -1,9 +1,7 @@
[meta] [meta]
author=Wagic Team author=Wagic Team
name=Aether Revolt name=Aether Revolt
block=Kaladesh year=2017
orderindex=EXP-ZZ4.AER
year=2017-01-20
total=194 total=194
[/meta] [/meta]
[card] [card]

View File

@@ -1,8 +1,6 @@
[meta] [meta]
author=Wagic Team author=Wagic Team
name=Amonkhet name=Amonkhet
block=Amonkhet
orderindex=EXP-ZZ5.AKH
year=2017-04-28 year=2017-04-28
total=287 total=287
[/meta] [/meta]
@@ -1052,77 +1050,152 @@ id=426911
rarity=U rarity=U
[/card] [/card]
[card] [card]
primitive=Dusk // Dawn primitive=Dusk
id=426912 id=426912
rarity=R rarity=R
[/card] [/card]
[card] [card]
primitive=Commit // Memory primitive=Dawn
id=426912
rarity=R
[/card]
[card]
primitive=Commit
id=426913 id=426913
rarity=R rarity=R
[/card] [/card]
[card] [card]
primitive=Never // Return primitive=Memory
id=426913
rarity=R
[/card]
[card]
primitive=Never
id=426914 id=426914
rarity=R rarity=R
[/card] [/card]
[card] [card]
primitive=Insult // Injury primitive=Return
id=426914
rarity=R
[/card]
[card]
primitive=Insult
id=426915 id=426915
rarity=R rarity=R
[/card] [/card]
[card] [card]
primitive=Mouth // Feed primitive=Injury
id=426915
rarity=R
[/card]
[card]
primitive=Mouth
id=426916 id=426916
rarity=R rarity=R
[/card] [/card]
[card] [card]
primitive=Start // Finish primitive=Feed
id=426916
rarity=R
[/card]
[card]
primitive=Start
id=426917 id=426917
rarity=U rarity=U
[/card] [/card]
[card] [card]
primitive=Reduce // Rubble primitive=Finish
id=426917
rarity=U
[/card]
[card]
primitive=Reduce
id=426918 id=426918
rarity=U rarity=U
[/card] [/card]
[card] [card]
primitive=Destined // Lead primitive=Rubble
id=426918
rarity=U
[/card]
[card]
primitive=Destined
id=426919 id=426919
rarity=U rarity=U
[/card] [/card]
[card] [card]
primitive=Onward // Victory primitive=Lead
id=426919
rarity=U
[/card]
[card]
primitive=Onward
id=426920 id=426920
rarity=U rarity=U
[/card] [/card]
[card] [card]
primitive=Spring // Mind primitive=Victory
id=426920
rarity=U
[/card]
[card]
primitive=Spring
id=426921 id=426921
rarity=U rarity=U
[/card] [/card]
[card] [card]
primitive=Prepare // Fight primitive=Mind
id=426921
rarity=U
[/card]
[card]
primitive=Prepare
id=426922 id=426922
rarity=R rarity=R
[/card] [/card]
[card] [card]
primitive=Failure // Comply primitive=Fight
id=426922
rarity=R
[/card]
[card]
primitive=Failure
id=426923 id=426923
rarity=R rarity=R
[/card] [/card]
[card] [card]
primitive=Rags // Riches primitive=Comply
id=426923
rarity=R
[/card]
[card]
primitive=Rags
id=426924 id=426924
rarity=R rarity=R
[/card] [/card]
[card] [card]
primitive=Cut // Ribbons primitive=Riches
id=426924
rarity=R
[/card]
[card]
primitive=Cut
id=426925 id=426925
rarity=R rarity=R
[/card] [/card]
[card] [card]
primitive=Heaven // Earth primitive=Ribbons
id=426925
rarity=R
[/card]
[card]
primitive=Heaven
id=426926
rarity=R
[/card]
[card]
primitive=Earth
id=426926 id=426926
rarity=R rarity=R
[/card] [/card]

File diff suppressed because it is too large Load Diff

View File

@@ -1,10 +1,9 @@
[meta] [meta]
author=Wagic Team author=Wagic Team
name=Shards of Alara name=Shards of Alara
block=Alara block=Shards of Alara
orderindex=EXP-ZD.ALA year=2008
year=2008-10-03 total=249
total=250
[/meta] [/meta]
[card] [card]
primitive=Ad Nauseam primitive=Ad Nauseam

View File

@@ -1,10 +1,9 @@
[meta] [meta]
author=Wagic Team author=Wagic Team
name=Alliances name=Alliances
orderindex=EXP-8.ALL
block=Ice Age block=Ice Age
year=1996-06-10 year=1996
total=201 total=199
[/meta] [/meta]
[card] [card]
primitive=Aesthir Glider primitive=Aesthir Glider

View File

@@ -1,262 +0,0 @@
[meta]
author=Wagic Team
name=Arena New Player Experience
orderindex=PRO-Z.ANA
year=2018-07-14
total=51
[/meta]
[card]
primitive=Goblin
id=-16787
rarity=T
[/card]
[card]
primitive=Spirit
id=-16759
rarity=T
[/card]
[card]
primitive=Angelic Reward
id=16755
rarity=U
[/card]
[card]
primitive=Blinding Radiance
id=16757
rarity=U
[/card]
[card]
primitive=Confront the Assault
id=16759
rarity=U
[/card]
[card]
primitive=Inspiring Commander
id=16760
rarity=R
[/card]
[card]
primitive=Knight's Pledge
id=16761
rarity=C
[/card]
[card]
primitive=Loxodon Line Breaker
id=16762
rarity=C
[/card]
[card]
primitive=Sanctuary Cat
id=16763
rarity=C
[/card]
[card]
primitive=Serra Angel
id=16764
rarity=U
[/card]
[card]
primitive=Shrine Keeper
id=16765
rarity=C
[/card]
[card]
primitive=Spiritual Guardian
id=16766
rarity=C
[/card]
[card]
primitive=Tactical Advantage
id=16767
rarity=C
[/card]
[card]
primitive=Take Vengeance
id=16768
rarity=C
[/card]
[card]
primitive=Divination
id=16769
rarity=C
[/card]
[card]
primitive=Overflowing Insight
id=16770
rarity=M
[/card]
[card]
primitive=River's Favor
id=16771
rarity=C
[/card]
[card]
primitive=Shorecomber Crab
id=16772
rarity=C
[/card]
[card]
primitive=Titanic Pelagosaur
id=16773
rarity=U
[/card]
[card]
primitive=Waterknot
id=16774
rarity=C
[/card]
[card]
primitive=Zephyr Gull
id=16775
rarity=C
[/card]
[card]
primitive=Altar's Reap
id=16776
rarity=C
[/card]
[card]
primitive=Ambition's Cost
id=16777
rarity=U
[/card]
[card]
primitive=Cruel Cut
id=16778
rarity=C
[/card]
[card]
primitive=Miasmic Mummy
id=16779
rarity=C
[/card]
[card]
primitive=Nimble Pilferer
id=16780
rarity=C
[/card]
[card]
primitive=Renegade Demon
id=16781
rarity=C
[/card]
[card]
primitive=Rise from the Grave
id=16782
rarity=U
[/card]
[card]
primitive=Soulhunter Rakshasa
id=16783
rarity=R
[/card]
[card]
primitive=Chaos Maw
id=16784
rarity=R
[/card]
[card]
primitive=Doublecast
id=16785
rarity=U
[/card]
[card]
primitive=Goblin Bruiser
id=16786
rarity=U
[/card]
[card]
primitive=Goblin Gang Leader
id=16787
rarity=U
[/card]
[card]
primitive=Goblin Grenade
id=16788
rarity=U
[/card]
[card]
primitive=Ogre Painbringer
id=16789
rarity=R
[/card]
[card]
primitive=Raging Goblin
id=16790
rarity=C
[/card]
[card]
primitive=Seismic Rupture
id=16791
rarity=U
[/card]
[card]
primitive=Volcanic Dragon
id=16792
rarity=U
[/card]
[card]
primitive=Feral Roar
id=16793
rarity=C
[/card]
[card]
primitive=Rumbling Baloth
id=16794
rarity=C
[/card]
[card]
primitive=Treetop Warden
id=16795
rarity=C
[/card]
[card]
primitive=Plains
id=16796
rarity=C
[/card]
[card]
primitive=Island
id=16797
rarity=C
[/card]
[card]
primitive=Swamp
id=16798
rarity=C
[/card]
[card]
primitive=Mountain
id=16799
rarity=C
[/card]
[card]
primitive=Forest
id=16800
rarity=C
[/card]
[card]
primitive=Plains
id=16801
rarity=C
[/card]
[card]
primitive=Island
id=16802
rarity=C
[/card]
[card]
primitive=Swamp
id=16803
rarity=C
[/card]
[card]
primitive=Mountain
id=16804
rarity=C
[/card]
[card]
primitive=Forest
id=16805
rarity=C
[/card]

View File

@@ -1,612 +0,0 @@
[meta]
author=Wagic Team
name=Arena Beginner Set
orderindex=PRO-Z8.ANB
year=2020-08-13
total=121
[/meta]
[card]
primitive=Goblin
id=-294806
rarity=T
[/card]
[card]
primitive=Goblin
id=-294790
rarity=T
[/card]
[card]
primitive=Goblin
id=-294789
rarity=T
[/card]
[card]
primitive=Cat
id=-294732
rarity=T
[/card]
[card]
primitive=Spirit
id=-294725
rarity=T
[/card]
[card]
primitive=Angel of Vitality
id=294720
rarity=U
[/card]
[card]
primitive=Angelic Guardian
id=294721
rarity=R
[/card]
[card]
primitive=Angelic Reward
id=294722
rarity=U
[/card]
[card]
primitive=Bond of Discipline
id=294723
rarity=U
[/card]
[card]
primitive=Charmed Stray
id=294724
rarity=C
[/card]
[card]
primitive=Confront the Assault
id=294725
rarity=U
[/card]
[card]
primitive=Fencing Ace
id=294726
rarity=C
[/card]
[card]
primitive=Goring Ceratops
id=294727
rarity=R
[/card]
[card]
primitive=Hallowed Priest
id=294728
rarity=U
[/card]
[card]
primitive=Impassioned Orator
id=294729
rarity=C
[/card]
[card]
primitive=Inspiring Commander
id=294730
rarity=R
[/card]
[card]
primitive=Knight's Pledge
id=294731
rarity=C
[/card]
[card]
primitive=Leonin Warleader
id=294732
rarity=R
[/card]
[card]
primitive=Loxodon Line Breaker
id=294733
rarity=C
[/card]
[card]
primitive=Moorland Inquisitor
id=294734
rarity=C
[/card]
[card]
primitive=Pacifism
id=294735
rarity=C
[/card]
[card]
primitive=Sanctuary Cat
id=294736
rarity=C
[/card]
[card]
primitive=Serra Angel
id=294737
rarity=U
[/card]
[card]
primitive=Shrine Keeper
id=294738
rarity=C
[/card]
[card]
primitive=Soulmender
id=294739
rarity=C
[/card]
[card]
primitive=Spiritual Guardian
id=294740
rarity=C
[/card]
[card]
primitive=Tactical Advantage
id=294741
rarity=C
[/card]
[card]
primitive=Air Elemental
id=294742
rarity=U
[/card]
[card]
primitive=Armored Whirl Turtle
id=294743
rarity=C
[/card]
[card]
primitive=Cloudkin Seer
id=294744
rarity=C
[/card]
[card]
primitive=Coral Merfolk
id=294745
rarity=C
[/card]
[card]
primitive=Frilled Sea Serpent
id=294746
rarity=C
[/card]
[card]
primitive=Glint
id=294747
rarity=C
[/card]
[card]
primitive=Octoprophet
id=294748
rarity=C
[/card]
[card]
primitive=Overflowing Insight
id=294749
rarity=R
[/card]
[card]
primitive=Riddlemaster Sphinx
id=294750
rarity=R
[/card]
[card]
primitive=River's Favor
id=294751
rarity=C
[/card]
[card]
primitive=Sleep
id=294752
rarity=U
[/card]
[card]
primitive=Soulblade Djinn
id=294753
rarity=R
[/card]
[card]
primitive=Sworn Guardian
id=294754
rarity=C
[/card]
[card]
primitive=Unsummon
id=294755
rarity=C
[/card]
[card]
primitive=Wall of Runes
id=294756
rarity=C
[/card]
[card]
primitive=Warden of Evos Isle
id=294757
rarity=U
[/card]
[card]
primitive=Waterkin Shaman
id=294758
rarity=C
[/card]
[card]
primitive=Waterknot
id=294759
rarity=C
[/card]
[card]
primitive=Windreader Sphinx
id=294760
rarity=R
[/card]
[card]
primitive=Windstorm Drake
id=294761
rarity=U
[/card]
[card]
primitive=Winged Words
id=294762
rarity=C
[/card]
[card]
primitive=Zephyr Gull
id=294763
rarity=C
[/card]
[card]
primitive=Bad Deal
id=294764
rarity=U
[/card]
[card]
primitive=Compound Fracture
id=294765
rarity=C
[/card]
[card]
primitive=Cruel Cut
id=294766
rarity=C
[/card]
[card]
primitive=Demon of Loathing
id=294767
rarity=R
[/card]
[card]
primitive=Eternal Thirst
id=294768
rarity=U
[/card]
[card]
primitive=Krovikan Scoundrel
id=294769
rarity=C
[/card]
[card]
primitive=Malakir Cullblade
id=294770
rarity=U
[/card]
[card]
primitive=Mardu Outrider
id=294771
rarity=R
[/card]
[card]
primitive=Murder
id=294772
rarity=U
[/card]
[card]
primitive=Nightmare
id=294773
rarity=R
[/card]
[card]
primitive=Nimble Pilferer
id=294774
rarity=C
[/card]
[card]
primitive=Raise Dead
id=294775
rarity=C
[/card]
[card]
primitive=Sanitarium Skeleton
id=294776
rarity=C
[/card]
[card]
primitive=Savage Gorger
id=294777
rarity=C
[/card]
[card]
primitive=Scathe Zombies
id=294778
rarity=C
[/card]
[card]
primitive=Sengir Vampire
id=294779
rarity=U
[/card]
[card]
primitive=Skeleton Archer
id=294780
rarity=C
[/card]
[card]
primitive=Soulhunter Rakshasa
id=294781
rarity=R
[/card]
[card]
primitive=Typhoid Rats
id=294782
rarity=C
[/card]
[card]
primitive=Unlikely Aid
id=294783
rarity=C
[/card]
[card]
primitive=Vampire Opportunist
id=294784
rarity=C
[/card]
[card]
primitive=Witch's Familiar
id=294785
rarity=C
[/card]
[card]
primitive=Bombard
id=294786
rarity=C
[/card]
[card]
primitive=Burn Bright
id=294787
rarity=C
[/card]
[card]
primitive=Fearless Halberdier
id=294788
rarity=C
[/card]
[card]
primitive=Goblin Gang Leader
id=294789
rarity=U
[/card]
[card]
primitive=Goblin Gathering
id=294790
rarity=C
[/card]
[card]
primitive=Goblin Trashmaster
id=294791
rarity=R
[/card]
[card]
primitive=Goblin Tunneler
id=294792
rarity=C
[/card]
[card]
primitive=Hurloon Minotaur
id=294793
rarity=C
[/card]
[card]
primitive=Immortal Phoenix
id=294794
rarity=R
[/card]
[card]
primitive=Inescapable Blaze
id=294795
rarity=U
[/card]
[card]
primitive=Maniacal Rage
id=294796
rarity=C
[/card]
[card]
primitive=Molten Ravager
id=294797
rarity=C
[/card]
[card]
primitive=Nest Robber
id=294798
rarity=C
[/card]
[card]
primitive=Ogre Battledriver
id=294799
rarity=R
[/card]
[card]
primitive=Raging Goblin
id=294800
rarity=C
[/card]
[card]
primitive=Raid Bombardment
id=294801
rarity=U
[/card]
[card]
primitive=Reduce to Ashes
id=294802
rarity=C
[/card]
[card]
primitive=Shock
id=294803
rarity=C
[/card]
[card]
primitive=Siege Dragon
id=294804
rarity=R
[/card]
[card]
primitive=Storm Strike
id=294805
rarity=C
[/card]
[card]
primitive=Tin Street Cadet
id=294806
rarity=C
[/card]
[card]
primitive=Volcanic Dragon
id=294807
rarity=U
[/card]
[card]
primitive=Affectionate Indrik
id=294808
rarity=U
[/card]
[card]
primitive=Baloth Packhunter
id=294809
rarity=C
[/card]
[card]
primitive=Charging Badger
id=294810
rarity=C
[/card]
[card]
primitive=Colossal Majesty
id=294811
rarity=U
[/card]
[card]
primitive=Epic Proportions
id=294812
rarity=R
[/card]
[card]
primitive=Feral Roar
id=294813
rarity=C
[/card]
[card]
primitive=Generous Stray
id=294814
rarity=C
[/card]
[card]
primitive=Gigantosaurus
id=294815
rarity=R
[/card]
[card]
primitive=Greenwood Sentinel
id=294816
rarity=C
[/card]
[card]
primitive=Ilysian Caryatid
id=294817
rarity=C
[/card]
[card]
primitive=Jungle Delver
id=294818
rarity=C
[/card]
[card]
primitive=Prized Unicorn
id=294819
rarity=U
[/card]
[card]
primitive=Rabid Bite
id=294820
rarity=C
[/card]
[card]
primitive=Rampaging Brontodon
id=294821
rarity=R
[/card]
[card]
primitive=Rumbling Baloth
id=294822
rarity=C
[/card]
[card]
primitive=Sentinel Spider
id=294823
rarity=U
[/card]
[card]
primitive=Stony Strength
id=294824
rarity=C
[/card]
[card]
primitive=Titanic Growth
id=294825
rarity=C
[/card]
[card]
primitive=Treetop Warden
id=294826
rarity=C
[/card]
[card]
primitive=Wildwood Patrol
id=294827
rarity=C
[/card]
[card]
primitive=Woodland Mystic
id=294828
rarity=C
[/card]
[card]
primitive=World Shaper
id=294829
rarity=R
[/card]
[card]
primitive=Evolving Wilds
id=294830
rarity=C
[/card]
[card]
primitive=Forest
id=294831
rarity=C
[/card]
[card]
primitive=Island
id=294832
rarity=C
[/card]
[card]
primitive=Mountain
id=294833
rarity=C
[/card]
[card]
primitive=Plains
id=294834
rarity=C
[/card]
[card]
primitive=Swamp
id=294835
rarity=C
[/card]

View File

@@ -2,8 +2,7 @@
author=Wagic Team author=Wagic Team
name=Apocalypse name=Apocalypse
block=Invasion block=Invasion
orderindex=EXP-O.APC year=2001
year=2001-06-04
total=143 total=143
[/meta] [/meta]
[card] [card]

View File

@@ -1,10 +1,9 @@
[meta] [meta]
author=Wagic Team author=Wagic Team
name=Alara Reborn name=Alara Reborn
block=Alara block=Shards of Alara
orderindex=EXP-ZF.ARB year=2009
year=2009-04-30 total=145
total=146
[/meta] [/meta]
[card] [card]
primitive=Anathemancer primitive=Anathemancer

View File

@@ -1,8 +1,7 @@
[meta] [meta]
author=Wagic Team author=Wagic Team
name=Archenemy name=Archenemy
orderindex=COM-2.ARC year=2010
year=2010-06-18
total=150 total=150
[/meta] [/meta]
[card] [card]

View File

@@ -1,8 +1,7 @@
[meta] [meta]
author=Wagic Team author=Wagic Team
name=Arabian Nights name=Arabian Nights
orderindex=EXP-1.ARN year=1993
year=1993-12-17
total=92 total=92
[/meta] [/meta]
[card] [card]

View File

@@ -1,452 +0,0 @@
[meta]
author=Wagic Team
name=Anthologies
orderindex=REP-2.ATH
year=1998-11-01
total=89
[/meta]
[card]
primitive=Goblin
id=-295861
rarity=T
[/card]
[card]
primitive=Goblin
id=-295856
rarity=T
[/card]
[card]
primitive=Pegasus
id=-295832
rarity=T
[/card]
[card]
primitive=Pegasus
id=-295831
rarity=T
[/card]
[card]
primitive=Armageddon
id=295820
rarity=R
[/card]
[card]
primitive=Armored Pegasus
id=295821
rarity=C
[/card]
[card]
primitive=Benalish Knight
id=295822
rarity=C
[/card]
[card]
primitive=Combat Medic
id=295823
rarity=C
[/card]
[card]
primitive=Disenchant
id=295824
rarity=C
[/card]
[card]
primitive=Freewind Falcon
id=295825
rarity=C
[/card]
[card]
primitive=Icatian Javelineers
id=295826
rarity=C
[/card]
[card]
primitive=Infantry Veteran
id=295827
rarity=C
[/card]
[card]
primitive=Order of the White Shield
id=295828
rarity=U
[/card]
[card]
primitive=Pacifism
id=295829
rarity=C
[/card]
[card]
primitive=Pegasus Charger
id=295830
rarity=C
[/card]
[card]
primitive=Pegasus Stampede
id=295831
rarity=U
[/card]
[card]
primitive=Sacred Mesa
id=295832
rarity=R
[/card]
[card]
primitive=Samite Healer
id=295833
rarity=C
[/card]
[card]
primitive=Serra Angel
id=295834
rarity=U
[/card]
[card]
primitive=Swords to Plowshares
id=295835
rarity=U
[/card]
[card]
primitive=Warrior's Honor
id=295836
rarity=C
[/card]
[card]
primitive=White Knight
id=295837
rarity=U
[/card]
[card]
primitive=Youthful Knight
id=295838
rarity=C
[/card]
[card]
primitive=Black Knight
id=295839
rarity=U
[/card]
[card]
primitive=Cuombajj Witches
id=295840
rarity=C
[/card]
[card]
primitive=Feast of the Unicorn
id=295841
rarity=C
[/card]
[card]
primitive=Hymn to Tourach
id=295842
rarity=C
[/card]
[card]
primitive=Hypnotic Specter
id=295843
rarity=U
[/card]
[card]
primitive=Ihsan's Shade
id=295844
rarity=U
[/card]
[card]
primitive=Knight of Stromgald
id=295845
rarity=U
[/card]
[card]
primitive=Terror
id=295846
rarity=C
[/card]
[card]
primitive=Unholy Strength
id=295847
rarity=C
[/card]
[card]
primitive=Fireball
id=295848
rarity=C
[/card]
[card]
primitive=Goblin Balloon Brigade
id=295849
rarity=C
[/card]
[card]
primitive=Goblin Digging Team
id=295850
rarity=C
[/card]
[card]
primitive=Goblin Grenade
id=295851
rarity=C
[/card]
[card]
primitive=Goblin Hero
id=295852
rarity=C
[/card]
[card]
primitive=Goblin King
id=295853
rarity=R
[/card]
[card]
primitive=Goblin Matron
id=295854
rarity=U
[/card]
[card]
primitive=Goblin Mutant
id=295855
rarity=U
[/card]
[card]
primitive=Goblin Offensive
id=295856
rarity=U
[/card]
[card]
primitive=Goblin Recruiter
id=295857
rarity=U
[/card]
[card]
primitive=Goblin Snowman
id=295858
rarity=U
[/card]
[card]
primitive=Goblin Tinkerer
id=295859
rarity=C
[/card]
[card]
primitive=Goblin Vandal
id=295860
rarity=C
[/card]
[card]
primitive=Goblin Warrens
id=295861
rarity=R
[/card]
[card]
primitive=Lightning Bolt
id=295862
rarity=C
[/card]
[card]
primitive=Mogg Fanatic
id=295863
rarity=C
[/card]
[card]
primitive=Mogg Flunkies
id=295864
rarity=C
[/card]
[card]
primitive=Mogg Raider
id=295865
rarity=C
[/card]
[card]
primitive=Pyrokinesis
id=295866
rarity=U
[/card]
[card]
primitive=Pyrotechnics
id=295867
rarity=C
[/card]
[card]
primitive=Raging Goblin
id=295868
rarity=U
[/card]
[card]
primitive=Uthden Troll
id=295869
rarity=U
[/card]
[card]
primitive=Volcanic Dragon
id=295870
rarity=R
[/card]
[card]
primitive=Canopy Spider
id=295871
rarity=C
[/card]
[card]
primitive=Carnivorous Plant
id=295872
rarity=C
[/card]
[card]
primitive=Erhnam Djinn
id=295873
rarity=U
[/card]
[card]
primitive=Giant Growth
id=295874
rarity=C
[/card]
[card]
primitive=Giant Spider
id=295875
rarity=C
[/card]
[card]
primitive=Gorilla Chieftain
id=295876
rarity=C
[/card]
[card]
primitive=Hurricane
id=295877
rarity=U
[/card]
[card]
primitive=Llanowar Elves
id=295878
rarity=C
[/card]
[card]
primitive=Mirri, Cat Warrior
id=295879
rarity=R
[/card]
[card]
primitive=Overrun
id=295880
rarity=U
[/card]
[card]
primitive=Scavenger Folk
id=295881
rarity=C
[/card]
[card]
primitive=Spectral Bears
id=295882
rarity=U
[/card]
[card]
primitive=Woolly Spider
id=295883
rarity=C
[/card]
[card]
primitive=Lady Orca
id=295884
rarity=U
[/card]
[card]
primitive=Ranger en-Vec
id=295885
rarity=U
[/card]
[card]
primitive=Aesthir Glider
id=295886
rarity=C
[/card]
[card]
primitive=Jalum Tome
id=295887
rarity=U
[/card]
[card]
primitive=Nevinyrral's Disk
id=295888
rarity=R
[/card]
[card]
primitive=Serrated Arrows
id=295889
rarity=C
[/card]
[card]
primitive=Brushland
id=295890
rarity=R
[/card]
[card]
primitive=Drifting Meadow
id=295891
rarity=C
[/card]
[card]
primitive=Pendelhaven
id=295892
rarity=U
[/card]
[card]
primitive=Polluted Mire
id=295893
rarity=C
[/card]
[card]
primitive=Slippery Karst
id=295894
rarity=C
[/card]
[card]
primitive=Smoldering Crater
id=295895
rarity=C
[/card]
[card]
primitive=Strip Mine
id=295896
rarity=R
[/card]
[card]
primitive=Plains
id=295897
rarity=C
[/card]
[card]
primitive=Plains
id=295898
rarity=C
[/card]
[card]
primitive=Swamp
id=295899
rarity=C
[/card]
[card]
primitive=Swamp
id=295900
rarity=C
[/card]
[card]
primitive=Mountain
id=295901
rarity=C
[/card]
[card]
primitive=Mountain
id=295902
rarity=C
[/card]
[card]
primitive=Forest
id=295903
rarity=C
[/card]
[card]
primitive=Forest
id=295904
rarity=C
[/card]

View File

@@ -1,8 +1,7 @@
[meta] [meta]
author=Wagic Team author=Wagic Team
name=Antiquities name=Antiquities
orderindex=EXP-2.ATQ year=1994
year=1994-03-04
total=100 total=100
[/meta] [/meta]
[card] [card]

View File

@@ -1,8 +1,8 @@
[meta] [meta]
author=Wagic Team author=Wagic Team
name=Duel Decks: Ajani vs. Nicol Bolas name=Duel Decks: Ajani vs. Nicol Bolas
orderindex=DUE-9.DDH block=Duel
year=2011-09-02 year=2011
total=80 total=80
[/meta] [/meta]
[card] [card]

View File

@@ -2,9 +2,8 @@
author=Wagic Team author=Wagic Team
name=Avacyn Restored name=Avacyn Restored
block=Innistrad block=Innistrad
orderindex=EXP-ZO.AVR year=2012
year=2012-05-04 total=244
total=246
[/meta] [/meta]
[card] [card]
primitive=Abundant Growth primitive=Abundant Growth

View File

@@ -1,7 +1,6 @@
[meta] [meta]
author=Wagic Team author=Wagic Team
name=Battlebond name=Battlebond
orderindex=COM-H.BBD
year=2018-06-08 year=2018-06-08
total=256 total=256
[/meta] [/meta]

View File

@@ -2,8 +2,7 @@
author=Wagic Team author=Wagic Team
name=Battle for Zendikar name=Battle for Zendikar
block=Battle for Zendikar block=Battle for Zendikar
orderindex=EXP-ZY.BFZ year=2015
year=2015-10-02
total=299 total=299
[/meta] [/meta]
[card] [card]

Some files were not shown because too many files have changed in this diff Show More