Merge pull request #1 from WagicProject/master
Update fork with original
@@ -21,7 +21,7 @@ before_install:
|
|||||||
export ANDROID="android-sdk-linux/tools/android" &&
|
export ANDROID="android-sdk-linux/tools/android" &&
|
||||||
if [ `uname -m` = x86_64 ]; then sudo apt-get install -qq --force-yes libgd2-xpm ia32-libs ia32-libs-multiarch jq; fi &&
|
if [ `uname -m` = x86_64 ]; then sudo apt-get install -qq --force-yes libgd2-xpm ia32-libs ia32-libs-multiarch jq; fi &&
|
||||||
wget http://dl.google.com/android/ndk/android-ndk-r9-linux-x86_64.tar.bz2 -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.0.2-linux.tgz -nv;
|
wget http://dl.google.com/android/android-sdk_r24.3.4-linux.tgz -nv;
|
||||||
fi
|
fi
|
||||||
# Building for Qt here
|
# Building for Qt here
|
||||||
- if [ "$BUILD_Qt" == "YES" ]; then
|
- if [ "$BUILD_Qt" == "YES" ]; then
|
||||||
@@ -37,9 +37,9 @@ install:
|
|||||||
fi
|
fi
|
||||||
- if [ "$BUILD_ANDROID" == "YES" ]; then
|
- if [ "$BUILD_ANDROID" == "YES" ]; then
|
||||||
tar --absolute-names -jxf android-ndk-r9-linux-x86_64.tar.bz2 &&
|
tar --absolute-names -jxf android-ndk-r9-linux-x86_64.tar.bz2 &&
|
||||||
tar -zxf android-sdk_r24.0.2-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 --filter tools,platform-tools,build-tools-21.1.2,android-10 --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 pip install pyjavaproperties
|
- sudo pip install pyjavaproperties
|
||||||
- sudo pip install github3.py
|
- sudo pip install github3.py
|
||||||
|
|||||||
@@ -178,8 +178,6 @@ private:
|
|||||||
float mSpacing;
|
float mSpacing;
|
||||||
|
|
||||||
PIXEL_TYPE mColor;
|
PIXEL_TYPE mColor;
|
||||||
int mBlend;
|
|
||||||
|
|
||||||
int mBase;
|
int mBase;
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -598,8 +598,6 @@ private:
|
|||||||
GLint prog2_positionLoc;
|
GLint prog2_positionLoc;
|
||||||
GLint prog2_texCoordLoc;
|
GLint prog2_texCoordLoc;
|
||||||
GLint prog2_colorLoc;
|
GLint prog2_colorLoc;
|
||||||
// MVP matrix
|
|
||||||
ESMatrix prog2_mvpMatrix;
|
|
||||||
// Uniform locations
|
// Uniform locations
|
||||||
GLint prog2_mvpLoc;
|
GLint prog2_mvpLoc;
|
||||||
|
|
||||||
@@ -612,13 +610,11 @@ private:
|
|||||||
int mCurrentTextureFormat;
|
int mCurrentTextureFormat;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifdef PSP
|
||||||
bool mVsync;
|
bool mVsync;
|
||||||
|
int mTexCounter;
|
||||||
|
#endif
|
||||||
int mSwizzle;
|
int mSwizzle;
|
||||||
int mTexCounter;
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
int mCurrentTextureFilter;
|
int mCurrentTextureFilter;
|
||||||
|
|
||||||
int mCurrTexBlendSrc;
|
int mCurrTexBlendSrc;
|
||||||
|
|||||||
@@ -258,7 +258,9 @@ private:
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
int mVolume;
|
int mVolume;
|
||||||
|
#ifndef IOS
|
||||||
int mMusicVolume;
|
int mMusicVolume;
|
||||||
|
#endif
|
||||||
int mSampleVolume;
|
int mSampleVolume;
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -18,12 +18,11 @@ using namespace std;
|
|||||||
|
|
||||||
#define MID_POINT_THRESHOLD 1.0f
|
#define MID_POINT_THRESHOLD 1.0f
|
||||||
|
|
||||||
|
|
||||||
//////////////////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////////////////
|
||||||
/// Position of a single dot on screen.
|
/// Position of a single dot on screen.
|
||||||
///
|
///
|
||||||
//////////////////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////////////////
|
||||||
class Point
|
class JPoint
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
|
|
||||||
@@ -34,13 +33,13 @@ public:
|
|||||||
/// @param _y - Y position.
|
/// @param _y - Y position.
|
||||||
///
|
///
|
||||||
//////////////////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////////////////
|
||||||
Point(float _x, float _y) { x = _x; y = _y; }
|
JPoint(float _x, float _y) { x = _x; y = _y; }
|
||||||
|
|
||||||
//////////////////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////////////////
|
||||||
/// Constructor, set position to default (0.0f, 0.0f)
|
/// Constructor, set position to default (0.0f, 0.0f)
|
||||||
///
|
///
|
||||||
//////////////////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////////////////
|
||||||
Point() { x = 0.0f; y = 0.0f; }
|
JPoint() { x = 0.0f; y = 0.0f; }
|
||||||
|
|
||||||
float x; ///< X position.
|
float x; ///< X position.
|
||||||
float y; ///< Y position.
|
float y; ///< Y position.
|
||||||
@@ -95,7 +94,7 @@ public:
|
|||||||
/// @param pt - Control point.
|
/// @param pt - Control point.
|
||||||
///
|
///
|
||||||
//////////////////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////////////////
|
||||||
void AddControlPoint(const Point &pt);
|
void AddControlPoint(const JPoint &pt);
|
||||||
|
|
||||||
//////////////////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////////////////
|
||||||
/// Get a control point of the spline.
|
/// Get a control point of the spline.
|
||||||
@@ -105,7 +104,7 @@ public:
|
|||||||
/// @return Control point.
|
/// @return Control point.
|
||||||
///
|
///
|
||||||
//////////////////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////////////////
|
||||||
void GetControlPoint(Point &point, int index);
|
void GetControlPoint(JPoint &point, int index);
|
||||||
|
|
||||||
//////////////////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////////////////
|
||||||
/// Work out all pixels of the spline.
|
/// Work out all pixels of the spline.
|
||||||
@@ -128,7 +127,7 @@ public:
|
|||||||
/// @return Position of the desire point.
|
/// @return Position of the desire point.
|
||||||
///
|
///
|
||||||
//////////////////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////////////////
|
||||||
void PointOnCurve(Point &out, float t, const Point &p0, const Point &p1, const Point &p2, const Point &p3);
|
void PointOnCurve(JPoint &out, float t, const JPoint &p0, const JPoint &p1, const JPoint &p2, const JPoint &p3);
|
||||||
|
|
||||||
//////////////////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////////////////
|
||||||
/// Get a number of pixels for this spline.
|
/// Get a number of pixels for this spline.
|
||||||
@@ -146,7 +145,7 @@ public:
|
|||||||
/// @return Position of the desire point.
|
/// @return Position of the desire point.
|
||||||
///
|
///
|
||||||
//////////////////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////////////////
|
||||||
void GetPixel(Point &point, int index);
|
void GetPixel(JPoint &point, int index);
|
||||||
|
|
||||||
//////////////////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////////////////
|
||||||
/// Render the spline to screen.
|
/// Render the spline to screen.
|
||||||
@@ -156,8 +155,8 @@ public:
|
|||||||
|
|
||||||
private:
|
private:
|
||||||
|
|
||||||
vector<Point> mMidPoints;
|
vector<JPoint> mMidPoints;
|
||||||
vector<Point> mPixels;
|
vector<JPoint> mPixels;
|
||||||
int mCount;
|
int mCount;
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -311,9 +311,7 @@ namespace boost
|
|||||||
|
|
||||||
#include <QMutex>
|
#include <QMutex>
|
||||||
#include <QThread>
|
#include <QThread>
|
||||||
|
#include <QSharedPointer>
|
||||||
#include <boost/bind.hpp>
|
|
||||||
#include <boost/shared_ptr.hpp>
|
|
||||||
|
|
||||||
#include "../include/JLogger.h"
|
#include "../include/JLogger.h"
|
||||||
|
|
||||||
@@ -420,23 +418,25 @@ namespace boost
|
|||||||
virtual void run() = 0;
|
virtual void run() = 0;
|
||||||
};
|
};
|
||||||
|
|
||||||
typedef boost::shared_ptr<detail::thread_data_base> thread_data_ptr;
|
|
||||||
|
|
||||||
template<typename F>
|
typedef QSharedPointer<detail::thread_data_base> thread_data_ptr;
|
||||||
|
|
||||||
|
template<typename F, typename A1>
|
||||||
class thread_data : public detail::thread_data_base
|
class thread_data : public detail::thread_data_base
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
thread_data(F f_) : f(f_)
|
thread_data(F f_, A1 a1_) : f(f_), a1(a1_)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
void run()
|
void run()
|
||||||
{
|
{
|
||||||
f();
|
f(a1);
|
||||||
}
|
}
|
||||||
|
|
||||||
private:
|
private:
|
||||||
F f;
|
F f;
|
||||||
|
A1 a1;
|
||||||
|
|
||||||
void operator=(thread_data&);
|
void operator=(thread_data&);
|
||||||
thread_data(thread_data&);
|
thread_data(thread_data&);
|
||||||
@@ -493,7 +493,7 @@ namespace boost
|
|||||||
}
|
}
|
||||||
|
|
||||||
template <class F,class A1>
|
template <class F,class A1>
|
||||||
thread(F f, A1 a1) : mThreadInfo(make_thread_info(boost::bind(boost::type<void>(), f, a1)))
|
thread(F f, A1 a1) : mThreadInfo(make_thread_info(f, a1))
|
||||||
{
|
{
|
||||||
mpThread = new threadImpl(mThreadInfo);
|
mpThread = new threadImpl(mThreadInfo);
|
||||||
LOG("Calling start func");
|
LOG("Calling start func");
|
||||||
@@ -510,10 +510,10 @@ namespace boost
|
|||||||
}
|
}
|
||||||
|
|
||||||
private:
|
private:
|
||||||
template<typename F>
|
template<typename F, typename A1>
|
||||||
static inline detail::thread_data_ptr make_thread_info(F f)
|
static inline detail::thread_data_ptr make_thread_info(F f, A1 a1)
|
||||||
{
|
{
|
||||||
return detail::thread_data_ptr(new detail::thread_data<F>(f));
|
return detail::thread_data_ptr(new detail::thread_data<F, A1>(f, a1));
|
||||||
}
|
}
|
||||||
|
|
||||||
detail::thread_data_ptr mThreadInfo;
|
detail::thread_data_ptr mThreadInfo;
|
||||||
|
|||||||
@@ -38,6 +38,12 @@ The content that users should not be touching.
|
|||||||
#include <QDir>
|
#include <QDir>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
/*
|
||||||
|
#ifdef IOS
|
||||||
|
#include <Foundation/Foundation.h>
|
||||||
|
#endif
|
||||||
|
*/
|
||||||
|
|
||||||
JFileSystem* JFileSystem::mInstance = NULL;
|
JFileSystem* JFileSystem::mInstance = NULL;
|
||||||
|
|
||||||
JZipCache::JZipCache()
|
JZipCache::JZipCache()
|
||||||
@@ -248,7 +254,7 @@ void JFileSystem::clearZipCache()
|
|||||||
|
|
||||||
bool JFileSystem::AttachZipFile(const string &zipfile, char *password /* = NULL */)
|
bool JFileSystem::AttachZipFile(const string &zipfile, char *password /* = NULL */)
|
||||||
{
|
{
|
||||||
if (mZipAvailable && mZipFile != NULL)
|
if (mZipAvailable && mZipFile.is_open())
|
||||||
{
|
{
|
||||||
if (mZipFileName != zipfile)
|
if (mZipFileName != zipfile)
|
||||||
DetachZipFile(); // close the previous zip file
|
DetachZipFile(); // close the previous zip file
|
||||||
|
|||||||
@@ -71,7 +71,7 @@ bool JSpline::Load(const char *filename, float xscale, float yscale)
|
|||||||
element->QueryFloatAttribute("x", &xx);
|
element->QueryFloatAttribute("x", &xx);
|
||||||
element->QueryFloatAttribute("y", &yy);
|
element->QueryFloatAttribute("y", &yy);
|
||||||
|
|
||||||
Point pt(xx*xscale, yy*yscale);
|
JPoint pt(xx*xscale, yy*yscale);
|
||||||
AddControlPoint(pt);
|
AddControlPoint(pt);
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -84,7 +84,7 @@ bool JSpline::Load(const char *filename, float xscale, float yscale)
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
void JSpline::PointOnCurve(Point &out, float t, const Point &p0, const Point &p1, const Point &p2, const Point &p3)
|
void JSpline::PointOnCurve(JPoint &out, float t, const JPoint &p0, const JPoint &p1, const JPoint &p2, const JPoint &p3)
|
||||||
{
|
{
|
||||||
float t2 = t * t;
|
float t2 = t * t;
|
||||||
float t3 = t2 * t;
|
float t3 = t2 * t;
|
||||||
@@ -113,8 +113,8 @@ void JSpline::GeneratePixels()
|
|||||||
x = mMidPoints[1].x;
|
x = mMidPoints[1].x;
|
||||||
y = mMidPoints[1].y;
|
y = mMidPoints[1].y;
|
||||||
|
|
||||||
Point newPt(x, y);
|
JPoint newPt(x, y);
|
||||||
Point extraPt;
|
JPoint extraPt;
|
||||||
|
|
||||||
mPixels.push_back(newPt);
|
mPixels.push_back(newPt);
|
||||||
|
|
||||||
@@ -151,13 +151,13 @@ void JSpline::GeneratePixels()
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void JSpline::AddControlPoint(const Point &pt)
|
void JSpline::AddControlPoint(const JPoint &pt)
|
||||||
{
|
{
|
||||||
mMidPoints.push_back(pt);
|
mMidPoints.push_back(pt);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void JSpline::GetControlPoint(Point &point, int index)
|
void JSpline::GetControlPoint(JPoint &point, int index)
|
||||||
{
|
{
|
||||||
if (index < (int)mMidPoints.size())
|
if (index < (int)mMidPoints.size())
|
||||||
{
|
{
|
||||||
@@ -167,7 +167,7 @@ void JSpline::GetControlPoint(Point &point, int index)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void JSpline::GetPixel(Point &point, int index)
|
void JSpline::GetPixel(JPoint &point, int index)
|
||||||
{
|
{
|
||||||
if (index < (int)mPixels.size())
|
if (index < (int)mPixels.size())
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -10,5 +10,6 @@ void resumeGame();
|
|||||||
@property (nonatomic, retain) id eaglView;
|
@property (nonatomic, retain) id eaglView;
|
||||||
@property (nonatomic, retain) UITextField *inputField;
|
@property (nonatomic, retain) UITextField *inputField;
|
||||||
@property (nonatomic, assign) BOOL bannerIsVisible;
|
@property (nonatomic, assign) BOOL bannerIsVisible;
|
||||||
|
- (void)toggleKeyboardWithState: (NSString *) initialText;
|
||||||
|
|
||||||
@end
|
@end
|
||||||
|
|||||||
@@ -53,28 +53,28 @@
|
|||||||
|
|
||||||
- (void)viewWillAppear:(BOOL)animated {
|
- (void)viewWillAppear:(BOOL)animated {
|
||||||
NSLog(@"EAGL ViewController - view Will Appear");
|
NSLog(@"EAGL ViewController - view Will Appear");
|
||||||
[self.view resumeGame];
|
[(id)self.view resumeGame];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
- (void)viewWillDisappear:(BOOL)animated
|
- (void)viewWillDisappear:(BOOL)animated
|
||||||
{
|
{
|
||||||
[self.view pauseGame];
|
[(id)self.view pauseGame];
|
||||||
}
|
}
|
||||||
|
|
||||||
- (void)pauseGame
|
- (void)pauseGame
|
||||||
{
|
{
|
||||||
[self.view pauseGame];
|
[(id)self.view pauseGame];
|
||||||
}
|
}
|
||||||
|
|
||||||
- (void)resumeGame
|
- (void)resumeGame
|
||||||
{
|
{
|
||||||
[self.view resumeGame];
|
[(id)self.view resumeGame];
|
||||||
}
|
}
|
||||||
|
|
||||||
- (void)endGame
|
- (void)endGame
|
||||||
{
|
{
|
||||||
[self.view endGame];
|
[(id)self.view endGame];
|
||||||
}
|
}
|
||||||
|
|
||||||
- (void)viewDidAppear:(BOOL)animated {
|
- (void)viewDidAppear:(BOOL)animated {
|
||||||
|
|||||||
@@ -337,7 +337,7 @@
|
|||||||
|
|
||||||
- (void)applicationWillTerminate:(UIApplication *)application
|
- (void)applicationWillTerminate:(UIApplication *)application
|
||||||
{
|
{
|
||||||
[self.glViewController.view destroyGame];
|
[(id)self.glViewController.view destroyGame];
|
||||||
}
|
}
|
||||||
|
|
||||||
- (void)initializeKeyboard: (id) initialState
|
- (void)initializeKeyboard: (id) initialState
|
||||||
|
|||||||
@@ -7,6 +7,7 @@
|
|||||||
#include <winsock.h>
|
#include <winsock.h>
|
||||||
#include <fcntl.h>
|
#include <fcntl.h>
|
||||||
#elif LINUX
|
#elif LINUX
|
||||||
|
#include <unistd.h>
|
||||||
#include <sys/types.h>
|
#include <sys/types.h>
|
||||||
#include <sys/socket.h>
|
#include <sys/socket.h>
|
||||||
#include <netinet/in.h>
|
#include <netinet/in.h>
|
||||||
|
|||||||
@@ -87,13 +87,13 @@ static void init_keys(const char* passwd,unsigned long* pkeys,const unsigned lon
|
|||||||
# define ZCR_SEED2 3141592654UL /* use PI as default pattern */
|
# define ZCR_SEED2 3141592654UL /* use PI as default pattern */
|
||||||
# endif
|
# endif
|
||||||
|
|
||||||
static int crypthead(passwd, buf, bufSize, pkeys, pcrc_32_tab, crcForCrypting)
|
static int crypthead(
|
||||||
const char *passwd; /* password string */
|
const char *passwd, /* password string */
|
||||||
unsigned char *buf; /* where to write header */
|
unsigned char *buf, /* where to write header */
|
||||||
int bufSize;
|
int bufSize,
|
||||||
unsigned long* pkeys;
|
unsigned long* pkeys,
|
||||||
const unsigned long* pcrc_32_tab;
|
const unsigned long* pcrc_32_tab,
|
||||||
unsigned long crcForCrypting;
|
unsigned long crcForCrypting)
|
||||||
{
|
{
|
||||||
int n; /* index in random header */
|
int n; /* index in random header */
|
||||||
int t; /* temporary */
|
int t; /* temporary */
|
||||||
|
|||||||
@@ -65,10 +65,10 @@ int ZCALLBACK ferror_file_func OF((
|
|||||||
voidpf stream));
|
voidpf stream));
|
||||||
|
|
||||||
|
|
||||||
voidpf ZCALLBACK fopen_file_func (opaque, filename, mode)
|
voidpf ZCALLBACK fopen_file_func (
|
||||||
voidpf opaque;
|
voidpf opaque,
|
||||||
const char* filename;
|
const char* filename,
|
||||||
int mode;
|
int mode)
|
||||||
{
|
{
|
||||||
FILE* file = NULL;
|
FILE* file = NULL;
|
||||||
const char* mode_fopen = NULL;
|
const char* mode_fopen = NULL;
|
||||||
@@ -87,11 +87,11 @@ voidpf ZCALLBACK fopen_file_func (opaque, filename, mode)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
uLong ZCALLBACK fread_file_func (opaque, stream, buf, size)
|
uLong ZCALLBACK fread_file_func (
|
||||||
voidpf opaque;
|
voidpf opaque,
|
||||||
voidpf stream;
|
voidpf stream,
|
||||||
void* buf;
|
void* buf,
|
||||||
uLong size;
|
uLong size)
|
||||||
{
|
{
|
||||||
uLong ret;
|
uLong ret;
|
||||||
ret = (uLong)fread(buf, 1, (size_t)size, (FILE *)stream);
|
ret = (uLong)fread(buf, 1, (size_t)size, (FILE *)stream);
|
||||||
@@ -99,31 +99,31 @@ uLong ZCALLBACK fread_file_func (opaque, stream, buf, size)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
uLong ZCALLBACK fwrite_file_func (opaque, stream, buf, size)
|
uLong ZCALLBACK fwrite_file_func (
|
||||||
voidpf opaque;
|
voidpf opaque,
|
||||||
voidpf stream;
|
voidpf stream,
|
||||||
const void* buf;
|
const void* buf,
|
||||||
uLong size;
|
uLong size)
|
||||||
{
|
{
|
||||||
uLong ret;
|
uLong ret;
|
||||||
ret = (uLong)fwrite(buf, 1, (size_t)size, (FILE *)stream);
|
ret = (uLong)fwrite(buf, 1, (size_t)size, (FILE *)stream);
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
long ZCALLBACK ftell_file_func (opaque, stream)
|
long ZCALLBACK ftell_file_func (
|
||||||
voidpf opaque;
|
voidpf opaque,
|
||||||
voidpf stream;
|
voidpf stream)
|
||||||
{
|
{
|
||||||
long ret;
|
long ret;
|
||||||
ret = ftell((FILE *)stream);
|
ret = ftell((FILE *)stream);
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
long ZCALLBACK fseek_file_func (opaque, stream, offset, origin)
|
long ZCALLBACK fseek_file_func (
|
||||||
voidpf opaque;
|
voidpf opaque,
|
||||||
voidpf stream;
|
voidpf stream,
|
||||||
uLong offset;
|
uLong offset,
|
||||||
int origin;
|
int origin)
|
||||||
{
|
{
|
||||||
int fseek_origin=0;
|
int fseek_origin=0;
|
||||||
long ret;
|
long ret;
|
||||||
@@ -145,26 +145,26 @@ long ZCALLBACK fseek_file_func (opaque, stream, offset, origin)
|
|||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
int ZCALLBACK fclose_file_func (opaque, stream)
|
int ZCALLBACK fclose_file_func (
|
||||||
voidpf opaque;
|
voidpf opaque,
|
||||||
voidpf stream;
|
voidpf stream)
|
||||||
{
|
{
|
||||||
int ret;
|
int ret;
|
||||||
ret = fclose((FILE *)stream);
|
ret = fclose((FILE *)stream);
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
int ZCALLBACK ferror_file_func (opaque, stream)
|
int ZCALLBACK ferror_file_func (
|
||||||
voidpf opaque;
|
voidpf opaque,
|
||||||
voidpf stream;
|
voidpf stream)
|
||||||
{
|
{
|
||||||
int ret;
|
int ret;
|
||||||
ret = ferror((FILE *)stream);
|
ret = ferror((FILE *)stream);
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
void fill_fopen_filefunc (pzlib_filefunc_def)
|
void fill_fopen_filefunc (
|
||||||
zlib_filefunc_def* pzlib_filefunc_def;
|
zlib_filefunc_def* pzlib_filefunc_def)
|
||||||
{
|
{
|
||||||
pzlib_filefunc_def->zopen_file = fopen_file_func;
|
pzlib_filefunc_def->zopen_file = fopen_file_func;
|
||||||
pzlib_filefunc_def->zread_file = fread_file_func;
|
pzlib_filefunc_def->zread_file = fread_file_func;
|
||||||
|
|||||||
@@ -168,10 +168,7 @@ local int unzlocal_getByte OF((
|
|||||||
voidpf filestream,
|
voidpf filestream,
|
||||||
int *pi));
|
int *pi));
|
||||||
|
|
||||||
local int unzlocal_getByte(pzlib_filefunc_def,filestream,pi)
|
local int unzlocal_getByte(const zlib_filefunc_def* pzlib_filefunc_def,voidpf filestream,int *pi)
|
||||||
const zlib_filefunc_def* pzlib_filefunc_def;
|
|
||||||
voidpf filestream;
|
|
||||||
int *pi;
|
|
||||||
{
|
{
|
||||||
unsigned char c;
|
unsigned char c;
|
||||||
int err = (int)ZREAD(*pzlib_filefunc_def,filestream,&c,1);
|
int err = (int)ZREAD(*pzlib_filefunc_def,filestream,&c,1);
|
||||||
@@ -198,10 +195,7 @@ local int unzlocal_getShort OF((
|
|||||||
voidpf filestream,
|
voidpf filestream,
|
||||||
uLong *pX));
|
uLong *pX));
|
||||||
|
|
||||||
local int unzlocal_getShort (pzlib_filefunc_def,filestream,pX)
|
local int unzlocal_getShort (const zlib_filefunc_def* pzlib_filefunc_def,voidpf filestream,uLong *pX)
|
||||||
const zlib_filefunc_def* pzlib_filefunc_def;
|
|
||||||
voidpf filestream;
|
|
||||||
uLong *pX;
|
|
||||||
{
|
{
|
||||||
uLong x ;
|
uLong x ;
|
||||||
int i;
|
int i;
|
||||||
@@ -226,10 +220,7 @@ local int unzlocal_getLong OF((
|
|||||||
voidpf filestream,
|
voidpf filestream,
|
||||||
uLong *pX));
|
uLong *pX));
|
||||||
|
|
||||||
local int unzlocal_getLong (pzlib_filefunc_def,filestream,pX)
|
local int unzlocal_getLong (const zlib_filefunc_def* pzlib_filefunc_def,voidpf filestream,uLong *pX)
|
||||||
const zlib_filefunc_def* pzlib_filefunc_def;
|
|
||||||
voidpf filestream;
|
|
||||||
uLong *pX;
|
|
||||||
{
|
{
|
||||||
uLong x ;
|
uLong x ;
|
||||||
int i;
|
int i;
|
||||||
@@ -259,9 +250,7 @@ local int unzlocal_getLong (pzlib_filefunc_def,filestream,pX)
|
|||||||
|
|
||||||
|
|
||||||
/* My own strcmpi / strcasecmp */
|
/* My own strcmpi / strcasecmp */
|
||||||
local int strcmpcasenosensitive_internal (fileName1,fileName2)
|
local int strcmpcasenosensitive_internal (const char* fileName1,const char* fileName2)
|
||||||
const char* fileName1;
|
|
||||||
const char* fileName2;
|
|
||||||
{
|
{
|
||||||
for (;;)
|
for (;;)
|
||||||
{
|
{
|
||||||
@@ -302,10 +291,7 @@ local int strcmpcasenosensitive_internal (fileName1,fileName2)
|
|||||||
(like 1 on Unix, 2 on Windows)
|
(like 1 on Unix, 2 on Windows)
|
||||||
|
|
||||||
*/
|
*/
|
||||||
extern int ZEXPORT unzStringFileNameCompare (fileName1,fileName2,iCaseSensitivity)
|
extern int ZEXPORT unzStringFileNameCompare (const char* fileName1,const char* fileName2,int iCaseSensitivity)
|
||||||
const char* fileName1;
|
|
||||||
const char* fileName2;
|
|
||||||
int iCaseSensitivity;
|
|
||||||
{
|
{
|
||||||
if (iCaseSensitivity==0)
|
if (iCaseSensitivity==0)
|
||||||
iCaseSensitivity=CASESENSITIVITYDEFAULTVALUE;
|
iCaseSensitivity=CASESENSITIVITYDEFAULTVALUE;
|
||||||
@@ -328,9 +314,7 @@ local uLong unzlocal_SearchCentralDir OF((
|
|||||||
const zlib_filefunc_def* pzlib_filefunc_def,
|
const zlib_filefunc_def* pzlib_filefunc_def,
|
||||||
voidpf filestream));
|
voidpf filestream));
|
||||||
|
|
||||||
local uLong unzlocal_SearchCentralDir(pzlib_filefunc_def,filestream)
|
local uLong unzlocal_SearchCentralDir(const zlib_filefunc_def* pzlib_filefunc_def,voidpf filestream)
|
||||||
const zlib_filefunc_def* pzlib_filefunc_def;
|
|
||||||
voidpf filestream;
|
|
||||||
{
|
{
|
||||||
unsigned char* buf;
|
unsigned char* buf;
|
||||||
uLong uSizeFile;
|
uLong uSizeFile;
|
||||||
@@ -394,9 +378,7 @@ local uLong unzlocal_SearchCentralDir(pzlib_filefunc_def,filestream)
|
|||||||
Else, the return value is a unzFile Handle, usable with other function
|
Else, the return value is a unzFile Handle, usable with other function
|
||||||
of this unzip package.
|
of this unzip package.
|
||||||
*/
|
*/
|
||||||
extern unzFile ZEXPORT unzOpen2 (path, pzlib_filefunc_def)
|
extern unzFile ZEXPORT unzOpen2 (const char *path, zlib_filefunc_def* pzlib_filefunc_def)
|
||||||
const char *path;
|
|
||||||
zlib_filefunc_def* pzlib_filefunc_def;
|
|
||||||
{
|
{
|
||||||
unz_s us;
|
unz_s us;
|
||||||
unz_s *s;
|
unz_s *s;
|
||||||
@@ -497,8 +479,7 @@ extern unzFile ZEXPORT unzOpen2 (path, pzlib_filefunc_def)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
extern unzFile ZEXPORT unzOpen (path)
|
extern unzFile ZEXPORT unzOpen (const char *path)
|
||||||
const char *path;
|
|
||||||
{
|
{
|
||||||
return unzOpen2(path, NULL);
|
return unzOpen2(path, NULL);
|
||||||
}
|
}
|
||||||
@@ -508,8 +489,7 @@ extern unzFile ZEXPORT unzOpen (path)
|
|||||||
If there is files inside the .Zip opened with unzipOpenCurrentFile (see later),
|
If there is files inside the .Zip opened with unzipOpenCurrentFile (see later),
|
||||||
these files MUST be closed with unzipCloseCurrentFile before call unzipClose.
|
these files MUST be closed with unzipCloseCurrentFile before call unzipClose.
|
||||||
return UNZ_OK if there is no problem. */
|
return UNZ_OK if there is no problem. */
|
||||||
extern int ZEXPORT unzClose (file)
|
extern int ZEXPORT unzClose (unzFile file)
|
||||||
unzFile file;
|
|
||||||
{
|
{
|
||||||
unz_s* s;
|
unz_s* s;
|
||||||
if (file==NULL)
|
if (file==NULL)
|
||||||
@@ -529,9 +509,7 @@ extern int ZEXPORT unzClose (file)
|
|||||||
Write info about the ZipFile in the *pglobal_info structure.
|
Write info about the ZipFile in the *pglobal_info structure.
|
||||||
No preparation of the structure is needed
|
No preparation of the structure is needed
|
||||||
return UNZ_OK if there is no problem. */
|
return UNZ_OK if there is no problem. */
|
||||||
extern int ZEXPORT unzGetGlobalInfo (file,pglobal_info)
|
extern int ZEXPORT unzGetGlobalInfo (unzFile file,unz_global_info *pglobal_info)
|
||||||
unzFile file;
|
|
||||||
unz_global_info *pglobal_info;
|
|
||||||
{
|
{
|
||||||
unz_s* s;
|
unz_s* s;
|
||||||
if (file==NULL)
|
if (file==NULL)
|
||||||
@@ -545,9 +523,7 @@ extern int ZEXPORT unzGetGlobalInfo (file,pglobal_info)
|
|||||||
/*
|
/*
|
||||||
Translate date/time from Dos format to tm_unz (readable more easilty)
|
Translate date/time from Dos format to tm_unz (readable more easilty)
|
||||||
*/
|
*/
|
||||||
local void unzlocal_DosDateToTmuDate (ulDosDate, ptm)
|
local void unzlocal_DosDateToTmuDate (uLong ulDosDate, tm_unz* ptm)
|
||||||
uLong ulDosDate;
|
|
||||||
tm_unz* ptm;
|
|
||||||
{
|
{
|
||||||
uLong uDate;
|
uLong uDate;
|
||||||
uDate = (uLong)(ulDosDate>>16);
|
uDate = (uLong)(ulDosDate>>16);
|
||||||
@@ -574,21 +550,16 @@ local int unzlocal_GetCurrentFileInfoInternal OF((unzFile file,
|
|||||||
char *szComment,
|
char *szComment,
|
||||||
uLong commentBufferSize));
|
uLong commentBufferSize));
|
||||||
|
|
||||||
local int unzlocal_GetCurrentFileInfoInternal (file,
|
local int unzlocal_GetCurrentFileInfoInternal (
|
||||||
pfile_info,
|
unzFile file,
|
||||||
pfile_info_internal,
|
unz_file_info *pfile_info,
|
||||||
szFileName, fileNameBufferSize,
|
unz_file_info_internal *pfile_info_internal,
|
||||||
extraField, extraFieldBufferSize,
|
char *szFileName,
|
||||||
szComment, commentBufferSize)
|
uLong fileNameBufferSize,
|
||||||
unzFile file;
|
void *extraField,
|
||||||
unz_file_info *pfile_info;
|
uLong extraFieldBufferSize,
|
||||||
unz_file_info_internal *pfile_info_internal;
|
char *szComment,
|
||||||
char *szFileName;
|
uLong commentBufferSize)
|
||||||
uLong fileNameBufferSize;
|
|
||||||
void *extraField;
|
|
||||||
uLong extraFieldBufferSize;
|
|
||||||
char *szComment;
|
|
||||||
uLong commentBufferSize;
|
|
||||||
{
|
{
|
||||||
unz_s* s;
|
unz_s* s;
|
||||||
unz_file_info file_info;
|
unz_file_info file_info;
|
||||||
@@ -746,19 +717,15 @@ local int unzlocal_GetCurrentFileInfoInternal (file,
|
|||||||
No preparation of the structure is needed
|
No preparation of the structure is needed
|
||||||
return UNZ_OK if there is no problem.
|
return UNZ_OK if there is no problem.
|
||||||
*/
|
*/
|
||||||
extern int ZEXPORT unzGetCurrentFileInfo (file,
|
extern int ZEXPORT unzGetCurrentFileInfo (
|
||||||
pfile_info,
|
unzFile file,
|
||||||
szFileName, fileNameBufferSize,
|
unz_file_info *pfile_info,
|
||||||
extraField, extraFieldBufferSize,
|
char *szFileName,
|
||||||
szComment, commentBufferSize)
|
uLong fileNameBufferSize,
|
||||||
unzFile file;
|
void *extraField,
|
||||||
unz_file_info *pfile_info;
|
uLong extraFieldBufferSize,
|
||||||
char *szFileName;
|
char *szComment,
|
||||||
uLong fileNameBufferSize;
|
uLong commentBufferSize)
|
||||||
void *extraField;
|
|
||||||
uLong extraFieldBufferSize;
|
|
||||||
char *szComment;
|
|
||||||
uLong commentBufferSize;
|
|
||||||
{
|
{
|
||||||
return unzlocal_GetCurrentFileInfoInternal(file,pfile_info,NULL,
|
return unzlocal_GetCurrentFileInfoInternal(file,pfile_info,NULL,
|
||||||
szFileName,fileNameBufferSize,
|
szFileName,fileNameBufferSize,
|
||||||
@@ -770,8 +737,7 @@ extern int ZEXPORT unzGetCurrentFileInfo (file,
|
|||||||
Set the current file of the zipfile to the first file.
|
Set the current file of the zipfile to the first file.
|
||||||
return UNZ_OK if there is no problem
|
return UNZ_OK if there is no problem
|
||||||
*/
|
*/
|
||||||
extern int ZEXPORT unzGoToFirstFile (file)
|
extern int ZEXPORT unzGoToFirstFile (unzFile file)
|
||||||
unzFile file;
|
|
||||||
{
|
{
|
||||||
int err=UNZ_OK;
|
int err=UNZ_OK;
|
||||||
unz_s* s;
|
unz_s* s;
|
||||||
@@ -792,8 +758,7 @@ extern int ZEXPORT unzGoToFirstFile (file)
|
|||||||
return UNZ_OK if there is no problem
|
return UNZ_OK if there is no problem
|
||||||
return UNZ_END_OF_LIST_OF_FILE if the actual file was the latest.
|
return UNZ_END_OF_LIST_OF_FILE if the actual file was the latest.
|
||||||
*/
|
*/
|
||||||
extern int ZEXPORT unzGoToNextFile (file)
|
extern int ZEXPORT unzGoToNextFile (unzFile file)
|
||||||
unzFile file;
|
|
||||||
{
|
{
|
||||||
unz_s* s;
|
unz_s* s;
|
||||||
int err;
|
int err;
|
||||||
@@ -826,10 +791,7 @@ extern int ZEXPORT unzGoToNextFile (file)
|
|||||||
UNZ_OK if the file is found. It becomes the current file.
|
UNZ_OK if the file is found. It becomes the current file.
|
||||||
UNZ_END_OF_LIST_OF_FILE if the file is not found
|
UNZ_END_OF_LIST_OF_FILE if the file is not found
|
||||||
*/
|
*/
|
||||||
extern int ZEXPORT unzLocateFile (file, szFileName, iCaseSensitivity)
|
extern int ZEXPORT unzLocateFile (unzFile file, const char *szFileName, int iCaseSensitivity)
|
||||||
unzFile file;
|
|
||||||
const char *szFileName;
|
|
||||||
int iCaseSensitivity;
|
|
||||||
{
|
{
|
||||||
unz_s* s;
|
unz_s* s;
|
||||||
int err;
|
int err;
|
||||||
@@ -905,9 +867,7 @@ typedef struct unz_file_pos_s
|
|||||||
} unz_file_pos;
|
} unz_file_pos;
|
||||||
*/
|
*/
|
||||||
|
|
||||||
extern int ZEXPORT unzGetFilePos(file, file_pos)
|
extern int ZEXPORT unzGetFilePos(unzFile file, unz_file_pos* file_pos)
|
||||||
unzFile file;
|
|
||||||
unz_file_pos* file_pos;
|
|
||||||
{
|
{
|
||||||
unz_s* s;
|
unz_s* s;
|
||||||
|
|
||||||
@@ -923,9 +883,7 @@ extern int ZEXPORT unzGetFilePos(file, file_pos)
|
|||||||
return UNZ_OK;
|
return UNZ_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
extern int ZEXPORT unzGoToFilePos(file, file_pos)
|
extern int ZEXPORT unzGoToFilePos(unzFile file, unz_file_pos*file_pos)
|
||||||
unzFile file;
|
|
||||||
unz_file_pos* file_pos;
|
|
||||||
{
|
{
|
||||||
unz_s* s;
|
unz_s* s;
|
||||||
int err;
|
int err;
|
||||||
@@ -959,13 +917,11 @@ extern int ZEXPORT unzGoToFilePos(file, file_pos)
|
|||||||
store in *piSizeVar the size of extra info in local header
|
store in *piSizeVar the size of extra info in local header
|
||||||
(filename and size of extra field data)
|
(filename and size of extra field data)
|
||||||
*/
|
*/
|
||||||
local int unzlocal_CheckCurrentFileCoherencyHeader (s,piSizeVar,
|
local int unzlocal_CheckCurrentFileCoherencyHeader (
|
||||||
poffset_local_extrafield,
|
unz_s* s,
|
||||||
psize_local_extrafield)
|
uInt* piSizeVar,
|
||||||
unz_s* s;
|
uLong *poffset_local_extrafield,
|
||||||
uInt* piSizeVar;
|
uInt *psize_local_extrafield)
|
||||||
uLong *poffset_local_extrafield;
|
|
||||||
uInt *psize_local_extrafield;
|
|
||||||
{
|
{
|
||||||
uLong uMagic,uData,uFlags;
|
uLong uMagic,uData,uFlags;
|
||||||
uLong size_filename;
|
uLong size_filename;
|
||||||
@@ -1050,12 +1006,12 @@ local int unzlocal_CheckCurrentFileCoherencyHeader (s,piSizeVar,
|
|||||||
Open for reading data the current file in the zipfile.
|
Open for reading data the current file in the zipfile.
|
||||||
If there is no error and the file is opened, the return value is UNZ_OK.
|
If there is no error and the file is opened, the return value is UNZ_OK.
|
||||||
*/
|
*/
|
||||||
extern int ZEXPORT unzOpenCurrentFile3 (file, method, level, raw, password)
|
extern int ZEXPORT unzOpenCurrentFile3 (
|
||||||
unzFile file;
|
unzFile file,
|
||||||
int* method;
|
int* method,
|
||||||
int* level;
|
int* level,
|
||||||
int raw;
|
int raw,
|
||||||
const char* password;
|
const char* password)
|
||||||
{
|
{
|
||||||
int err=UNZ_OK;
|
int err=UNZ_OK;
|
||||||
uInt iSizeVar;
|
uInt iSizeVar;
|
||||||
@@ -1136,7 +1092,7 @@ extern int ZEXPORT unzOpenCurrentFile3 (file, method, level, raw, password)
|
|||||||
pfile_in_zip_read_info->stream.zalloc = (alloc_func)0;
|
pfile_in_zip_read_info->stream.zalloc = (alloc_func)0;
|
||||||
pfile_in_zip_read_info->stream.zfree = (free_func)0;
|
pfile_in_zip_read_info->stream.zfree = (free_func)0;
|
||||||
pfile_in_zip_read_info->stream.opaque = (voidpf)0;
|
pfile_in_zip_read_info->stream.opaque = (voidpf)0;
|
||||||
pfile_in_zip_read_info->stream.next_in = (voidpf)0;
|
pfile_in_zip_read_info->stream.next_in = (Bytef*)0;
|
||||||
pfile_in_zip_read_info->stream.avail_in = 0;
|
pfile_in_zip_read_info->stream.avail_in = 0;
|
||||||
|
|
||||||
err=inflateInit2(&pfile_in_zip_read_info->stream, -MAX_WBITS);
|
err=inflateInit2(&pfile_in_zip_read_info->stream, -MAX_WBITS);
|
||||||
@@ -1195,24 +1151,21 @@ extern int ZEXPORT unzOpenCurrentFile3 (file, method, level, raw, password)
|
|||||||
return UNZ_OK;
|
return UNZ_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
extern int ZEXPORT unzOpenCurrentFile (file)
|
extern int ZEXPORT unzOpenCurrentFile (unzFile file)
|
||||||
unzFile file;
|
|
||||||
{
|
{
|
||||||
return unzOpenCurrentFile3(file, NULL, NULL, 0, NULL);
|
return unzOpenCurrentFile3(file, NULL, NULL, 0, NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
extern int ZEXPORT unzOpenCurrentFilePassword (file, password)
|
extern int ZEXPORT unzOpenCurrentFilePassword (unzFile file, const char* password)
|
||||||
unzFile file;
|
|
||||||
const char* password;
|
|
||||||
{
|
{
|
||||||
return unzOpenCurrentFile3(file, NULL, NULL, 0, password);
|
return unzOpenCurrentFile3(file, NULL, NULL, 0, password);
|
||||||
}
|
}
|
||||||
|
|
||||||
extern int ZEXPORT unzOpenCurrentFile2 (file,method,level,raw)
|
extern int ZEXPORT unzOpenCurrentFile2 (
|
||||||
unzFile file;
|
unzFile file,
|
||||||
int* method;
|
int* method,
|
||||||
int* level;
|
int* level,
|
||||||
int raw;
|
int raw)
|
||||||
{
|
{
|
||||||
return unzOpenCurrentFile3(file, method, level, raw, NULL);
|
return unzOpenCurrentFile3(file, method, level, raw, NULL);
|
||||||
}
|
}
|
||||||
@@ -1227,10 +1180,10 @@ extern int ZEXPORT unzOpenCurrentFile2 (file,method,level,raw)
|
|||||||
return <0 with error code if there is an error
|
return <0 with error code if there is an error
|
||||||
(UNZ_ERRNO for IO error, or zLib error for uncompress error)
|
(UNZ_ERRNO for IO error, or zLib error for uncompress error)
|
||||||
*/
|
*/
|
||||||
extern int ZEXPORT unzReadCurrentFile (file, buf, len)
|
extern int ZEXPORT unzReadCurrentFile(
|
||||||
unzFile file;
|
unzFile file,
|
||||||
voidp buf;
|
voidp buf,
|
||||||
unsigned len;
|
unsigned len)
|
||||||
{
|
{
|
||||||
int err=UNZ_OK;
|
int err=UNZ_OK;
|
||||||
uInt iRead = 0;
|
uInt iRead = 0;
|
||||||
@@ -1388,8 +1341,7 @@ extern int ZEXPORT unzReadCurrentFile (file, buf, len)
|
|||||||
/*
|
/*
|
||||||
Give the current position in uncompressed data
|
Give the current position in uncompressed data
|
||||||
*/
|
*/
|
||||||
extern z_off_t ZEXPORT unztell (file)
|
extern z_off_t ZEXPORT unztell (unzFile file)
|
||||||
unzFile file;
|
|
||||||
{
|
{
|
||||||
unz_s* s;
|
unz_s* s;
|
||||||
file_in_zip_read_info_s* pfile_in_zip_read_info;
|
file_in_zip_read_info_s* pfile_in_zip_read_info;
|
||||||
@@ -1408,8 +1360,7 @@ extern z_off_t ZEXPORT unztell (file)
|
|||||||
/*
|
/*
|
||||||
return 1 if the end of file was reached, 0 elsewhere
|
return 1 if the end of file was reached, 0 elsewhere
|
||||||
*/
|
*/
|
||||||
extern int ZEXPORT unzeof (file)
|
extern int ZEXPORT unzeof (unzFile file)
|
||||||
unzFile file;
|
|
||||||
{
|
{
|
||||||
unz_s* s;
|
unz_s* s;
|
||||||
file_in_zip_read_info_s* pfile_in_zip_read_info;
|
file_in_zip_read_info_s* pfile_in_zip_read_info;
|
||||||
@@ -1441,10 +1392,10 @@ extern int ZEXPORT unzeof (file)
|
|||||||
the return value is the number of bytes copied in buf, or (if <0)
|
the return value is the number of bytes copied in buf, or (if <0)
|
||||||
the error code
|
the error code
|
||||||
*/
|
*/
|
||||||
extern int ZEXPORT unzGetLocalExtrafield (file,buf,len)
|
extern int ZEXPORT unzGetLocalExtrafield (
|
||||||
unzFile file;
|
unzFile file,
|
||||||
voidp buf;
|
voidp buf,
|
||||||
unsigned len;
|
unsigned len)
|
||||||
{
|
{
|
||||||
unz_s* s;
|
unz_s* s;
|
||||||
file_in_zip_read_info_s* pfile_in_zip_read_info;
|
file_in_zip_read_info_s* pfile_in_zip_read_info;
|
||||||
@@ -1492,8 +1443,7 @@ extern int ZEXPORT unzGetLocalExtrafield (file,buf,len)
|
|||||||
Close the file in zip opened with unzipOpenCurrentFile
|
Close the file in zip opened with unzipOpenCurrentFile
|
||||||
Return UNZ_CRCERROR if all the file was read but the CRC is not good
|
Return UNZ_CRCERROR if all the file was read but the CRC is not good
|
||||||
*/
|
*/
|
||||||
extern int ZEXPORT unzCloseCurrentFile (file)
|
extern int ZEXPORT unzCloseCurrentFile (unzFile file)
|
||||||
unzFile file;
|
|
||||||
{
|
{
|
||||||
int err=UNZ_OK;
|
int err=UNZ_OK;
|
||||||
|
|
||||||
@@ -1535,12 +1485,11 @@ extern int ZEXPORT unzCloseCurrentFile (file)
|
|||||||
uSizeBuf is the size of the szComment buffer.
|
uSizeBuf is the size of the szComment buffer.
|
||||||
return the number of byte copied or an error code <0
|
return the number of byte copied or an error code <0
|
||||||
*/
|
*/
|
||||||
extern int ZEXPORT unzGetGlobalComment (file, szComment, uSizeBuf)
|
extern int ZEXPORT unzGetGlobalComment (
|
||||||
unzFile file;
|
unzFile file,
|
||||||
char *szComment;
|
char *szComment,
|
||||||
uLong uSizeBuf;
|
uLong uSizeBuf)
|
||||||
{
|
{
|
||||||
int err=UNZ_OK;
|
|
||||||
unz_s* s;
|
unz_s* s;
|
||||||
uLong uReadThis ;
|
uLong uReadThis ;
|
||||||
if (file==NULL)
|
if (file==NULL)
|
||||||
@@ -1567,8 +1516,7 @@ extern int ZEXPORT unzGetGlobalComment (file, szComment, uSizeBuf)
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* Additions by RX '2004 */
|
/* Additions by RX '2004 */
|
||||||
extern uLong ZEXPORT unzGetOffset (file)
|
extern uLong ZEXPORT unzGetOffset (unzFile file)
|
||||||
unzFile file;
|
|
||||||
{
|
{
|
||||||
unz_s* s;
|
unz_s* s;
|
||||||
|
|
||||||
@@ -1583,9 +1531,9 @@ extern uLong ZEXPORT unzGetOffset (file)
|
|||||||
return s->pos_in_central_dir;
|
return s->pos_in_central_dir;
|
||||||
}
|
}
|
||||||
|
|
||||||
extern int ZEXPORT unzSetOffset (file, pos)
|
extern int ZEXPORT unzSetOffset (
|
||||||
unzFile file;
|
unzFile file,
|
||||||
uLong pos;
|
uLong pos)
|
||||||
{
|
{
|
||||||
unz_s* s;
|
unz_s* s;
|
||||||
int err;
|
int err;
|
||||||
|
|||||||
@@ -172,8 +172,7 @@ local linkedlist_datablock_internal* allocate_new_datablock()
|
|||||||
return ldi;
|
return ldi;
|
||||||
}
|
}
|
||||||
|
|
||||||
local void free_datablock(ldi)
|
local void free_datablock(linkedlist_datablock_internal* ldi)
|
||||||
linkedlist_datablock_internal* ldi;
|
|
||||||
{
|
{
|
||||||
while (ldi!=NULL)
|
while (ldi!=NULL)
|
||||||
{
|
{
|
||||||
@@ -183,24 +182,24 @@ local void free_datablock(ldi)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
local void init_linkedlist(ll)
|
local void init_linkedlist(
|
||||||
linkedlist_data* ll;
|
linkedlist_data* ll)
|
||||||
{
|
{
|
||||||
ll->first_block = ll->last_block = NULL;
|
ll->first_block = ll->last_block = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
local void free_linkedlist(ll)
|
local void free_linkedlist(
|
||||||
linkedlist_data* ll;
|
linkedlist_data* ll)
|
||||||
{
|
{
|
||||||
free_datablock(ll->first_block);
|
free_datablock(ll->first_block);
|
||||||
ll->first_block = ll->last_block = NULL;
|
ll->first_block = ll->last_block = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
local int add_data_in_datablock(ll,buf,len)
|
local int add_data_in_datablock(
|
||||||
linkedlist_data* ll;
|
linkedlist_data* ll,
|
||||||
const void* buf;
|
const void* buf,
|
||||||
uLong len;
|
uLong len)
|
||||||
{
|
{
|
||||||
linkedlist_datablock_internal* ldi;
|
linkedlist_datablock_internal* ldi;
|
||||||
const unsigned char* from_copy;
|
const unsigned char* from_copy;
|
||||||
@@ -263,11 +262,11 @@ local int add_data_in_datablock(ll,buf,len)
|
|||||||
|
|
||||||
local int ziplocal_putValue OF((const zlib_filefunc_def* pzlib_filefunc_def,
|
local int ziplocal_putValue OF((const zlib_filefunc_def* pzlib_filefunc_def,
|
||||||
voidpf filestream, uLong x, int nbByte));
|
voidpf filestream, uLong x, int nbByte));
|
||||||
local int ziplocal_putValue (pzlib_filefunc_def, filestream, x, nbByte)
|
local int ziplocal_putValue (
|
||||||
const zlib_filefunc_def* pzlib_filefunc_def;
|
const zlib_filefunc_def* pzlib_filefunc_def,
|
||||||
voidpf filestream;
|
voidpf filestream,
|
||||||
uLong x;
|
uLong x,
|
||||||
int nbByte;
|
int nbByte)
|
||||||
{
|
{
|
||||||
unsigned char buf[4];
|
unsigned char buf[4];
|
||||||
int n;
|
int n;
|
||||||
@@ -291,10 +290,10 @@ local int ziplocal_putValue (pzlib_filefunc_def, filestream, x, nbByte)
|
|||||||
}
|
}
|
||||||
|
|
||||||
local void ziplocal_putValue_inmemory OF((void* dest, uLong x, int nbByte));
|
local void ziplocal_putValue_inmemory OF((void* dest, uLong x, int nbByte));
|
||||||
local void ziplocal_putValue_inmemory (dest, x, nbByte)
|
local void ziplocal_putValue_inmemory (
|
||||||
void* dest;
|
void* dest,
|
||||||
uLong x;
|
uLong x,
|
||||||
int nbByte;
|
int nbByte)
|
||||||
{
|
{
|
||||||
unsigned char* buf=(unsigned char*)dest;
|
unsigned char* buf=(unsigned char*)dest;
|
||||||
int n;
|
int n;
|
||||||
@@ -315,9 +314,9 @@ local void ziplocal_putValue_inmemory (dest, x, nbByte)
|
|||||||
/****************************************************************************/
|
/****************************************************************************/
|
||||||
|
|
||||||
|
|
||||||
local uLong ziplocal_TmzDateToDosDate(ptm,dosDate)
|
local uLong ziplocal_TmzDateToDosDate(
|
||||||
const tm_zip* ptm;
|
const tm_zip* ptm,
|
||||||
uLong dosDate;
|
uLong dosDate)
|
||||||
{
|
{
|
||||||
uLong year = (uLong)ptm->tm_year;
|
uLong year = (uLong)ptm->tm_year;
|
||||||
if (year>1980)
|
if (year>1980)
|
||||||
@@ -337,10 +336,10 @@ local int ziplocal_getByte OF((
|
|||||||
voidpf filestream,
|
voidpf filestream,
|
||||||
int *pi));
|
int *pi));
|
||||||
|
|
||||||
local int ziplocal_getByte(pzlib_filefunc_def,filestream,pi)
|
local int ziplocal_getByte(
|
||||||
const zlib_filefunc_def* pzlib_filefunc_def;
|
const zlib_filefunc_def* pzlib_filefunc_def,
|
||||||
voidpf filestream;
|
voidpf filestream,
|
||||||
int *pi;
|
int *pi)
|
||||||
{
|
{
|
||||||
unsigned char c;
|
unsigned char c;
|
||||||
int err = (int)ZREAD(*pzlib_filefunc_def,filestream,&c,1);
|
int err = (int)ZREAD(*pzlib_filefunc_def,filestream,&c,1);
|
||||||
@@ -367,10 +366,10 @@ local int ziplocal_getShort OF((
|
|||||||
voidpf filestream,
|
voidpf filestream,
|
||||||
uLong *pX));
|
uLong *pX));
|
||||||
|
|
||||||
local int ziplocal_getShort (pzlib_filefunc_def,filestream,pX)
|
local int ziplocal_getShort (
|
||||||
const zlib_filefunc_def* pzlib_filefunc_def;
|
const zlib_filefunc_def* pzlib_filefunc_def,
|
||||||
voidpf filestream;
|
voidpf filestream,
|
||||||
uLong *pX;
|
uLong *pX)
|
||||||
{
|
{
|
||||||
uLong x ;
|
uLong x ;
|
||||||
int i;
|
int i;
|
||||||
@@ -395,10 +394,10 @@ local int ziplocal_getLong OF((
|
|||||||
voidpf filestream,
|
voidpf filestream,
|
||||||
uLong *pX));
|
uLong *pX));
|
||||||
|
|
||||||
local int ziplocal_getLong (pzlib_filefunc_def,filestream,pX)
|
local int ziplocal_getLong (
|
||||||
const zlib_filefunc_def* pzlib_filefunc_def;
|
const zlib_filefunc_def* pzlib_filefunc_def,
|
||||||
voidpf filestream;
|
voidpf filestream,
|
||||||
uLong *pX;
|
uLong *pX)
|
||||||
{
|
{
|
||||||
uLong x ;
|
uLong x ;
|
||||||
int i;
|
int i;
|
||||||
@@ -437,9 +436,9 @@ local uLong ziplocal_SearchCentralDir OF((
|
|||||||
const zlib_filefunc_def* pzlib_filefunc_def,
|
const zlib_filefunc_def* pzlib_filefunc_def,
|
||||||
voidpf filestream));
|
voidpf filestream));
|
||||||
|
|
||||||
local uLong ziplocal_SearchCentralDir(pzlib_filefunc_def,filestream)
|
local uLong ziplocal_SearchCentralDir(
|
||||||
const zlib_filefunc_def* pzlib_filefunc_def;
|
const zlib_filefunc_def* pzlib_filefunc_def,
|
||||||
voidpf filestream;
|
voidpf filestream)
|
||||||
{
|
{
|
||||||
unsigned char* buf;
|
unsigned char* buf;
|
||||||
uLong uSizeFile;
|
uLong uSizeFile;
|
||||||
@@ -496,11 +495,11 @@ local uLong ziplocal_SearchCentralDir(pzlib_filefunc_def,filestream)
|
|||||||
#endif /* !NO_ADDFILEINEXISTINGZIP*/
|
#endif /* !NO_ADDFILEINEXISTINGZIP*/
|
||||||
|
|
||||||
/************************************************************/
|
/************************************************************/
|
||||||
extern zipFile ZEXPORT zipOpen2 (pathname, append, globalcomment, pzlib_filefunc_def)
|
extern zipFile ZEXPORT zipOpen2 (
|
||||||
const char *pathname;
|
const char *pathname,
|
||||||
int append;
|
int append,
|
||||||
zipcharpc* globalcomment;
|
zipcharpc* globalcomment,
|
||||||
zlib_filefunc_def* pzlib_filefunc_def;
|
zlib_filefunc_def* pzlib_filefunc_def)
|
||||||
{
|
{
|
||||||
zip_internal ziinit;
|
zip_internal ziinit;
|
||||||
zip_internal* zi;
|
zip_internal* zi;
|
||||||
@@ -615,7 +614,7 @@ extern zipFile ZEXPORT zipOpen2 (pathname, append, globalcomment, pzlib_filefunc
|
|||||||
|
|
||||||
if (size_comment>0)
|
if (size_comment>0)
|
||||||
{
|
{
|
||||||
ziinit.globalcomment = ALLOC(size_comment+1);
|
ziinit.globalcomment = (char*)ALLOC(size_comment+1);
|
||||||
if (ziinit.globalcomment)
|
if (ziinit.globalcomment)
|
||||||
{
|
{
|
||||||
size_comment = ZREAD(ziinit.z_filefunc, ziinit.filestream,ziinit.globalcomment,size_comment);
|
size_comment = ZREAD(ziinit.z_filefunc, ziinit.filestream,ziinit.globalcomment,size_comment);
|
||||||
@@ -680,35 +679,30 @@ extern zipFile ZEXPORT zipOpen2 (pathname, append, globalcomment, pzlib_filefunc
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
extern zipFile ZEXPORT zipOpen (pathname, append)
|
extern zipFile ZEXPORT zipOpen (
|
||||||
const char *pathname;
|
const char *pathname,
|
||||||
int append;
|
int append)
|
||||||
{
|
{
|
||||||
return zipOpen2(pathname,append,NULL,NULL);
|
return zipOpen2(pathname,append,NULL,NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
extern int ZEXPORT zipOpenNewFileInZip3 (file, filename, zipfi,
|
extern int ZEXPORT zipOpenNewFileInZip3 (
|
||||||
extrafield_local, size_extrafield_local,
|
zipFile file,
|
||||||
extrafield_global, size_extrafield_global,
|
const char* filename,
|
||||||
comment, method, level, raw,
|
const zip_fileinfo* zipfi,
|
||||||
windowBits, memLevel, strategy,
|
const void* extrafield_local,
|
||||||
password, crcForCrypting)
|
uInt size_extrafield_local,
|
||||||
zipFile file;
|
const void* extrafield_global,
|
||||||
const char* filename;
|
uInt size_extrafield_global,
|
||||||
const zip_fileinfo* zipfi;
|
const char* comment,
|
||||||
const void* extrafield_local;
|
int method,
|
||||||
uInt size_extrafield_local;
|
int level,
|
||||||
const void* extrafield_global;
|
int raw,
|
||||||
uInt size_extrafield_global;
|
int windowBits,
|
||||||
const char* comment;
|
int memLevel,
|
||||||
int method;
|
int strategy,
|
||||||
int level;
|
const char* password,
|
||||||
int raw;
|
uLong crcForCrypting)
|
||||||
int windowBits;
|
|
||||||
int memLevel;
|
|
||||||
int strategy;
|
|
||||||
const char* password;
|
|
||||||
uLong crcForCrypting;
|
|
||||||
{
|
{
|
||||||
zip_internal* zi;
|
zip_internal* zi;
|
||||||
uInt size_filename;
|
uInt size_filename;
|
||||||
@@ -896,21 +890,18 @@ extern int ZEXPORT zipOpenNewFileInZip3 (file, filename, zipfi,
|
|||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
|
|
||||||
extern int ZEXPORT zipOpenNewFileInZip2(file, filename, zipfi,
|
extern int ZEXPORT zipOpenNewFileInZip2(
|
||||||
extrafield_local, size_extrafield_local,
|
zipFile file,
|
||||||
extrafield_global, size_extrafield_global,
|
const char* filename,
|
||||||
comment, method, level, raw)
|
const zip_fileinfo* zipfi,
|
||||||
zipFile file;
|
const void* extrafield_local,
|
||||||
const char* filename;
|
uInt size_extrafield_local,
|
||||||
const zip_fileinfo* zipfi;
|
const void* extrafield_global,
|
||||||
const void* extrafield_local;
|
uInt size_extrafield_global,
|
||||||
uInt size_extrafield_local;
|
const char* comment,
|
||||||
const void* extrafield_global;
|
int method,
|
||||||
uInt size_extrafield_global;
|
int level,
|
||||||
const char* comment;
|
int raw)
|
||||||
int method;
|
|
||||||
int level;
|
|
||||||
int raw;
|
|
||||||
{
|
{
|
||||||
return zipOpenNewFileInZip3 (file, filename, zipfi,
|
return zipOpenNewFileInZip3 (file, filename, zipfi,
|
||||||
extrafield_local, size_extrafield_local,
|
extrafield_local, size_extrafield_local,
|
||||||
@@ -920,20 +911,17 @@ extern int ZEXPORT zipOpenNewFileInZip2(file, filename, zipfi,
|
|||||||
NULL, 0);
|
NULL, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
extern int ZEXPORT zipOpenNewFileInZip (file, filename, zipfi,
|
extern int ZEXPORT zipOpenNewFileInZip (
|
||||||
extrafield_local, size_extrafield_local,
|
zipFile file,
|
||||||
extrafield_global, size_extrafield_global,
|
const char* filename,
|
||||||
comment, method, level)
|
const zip_fileinfo* zipfi,
|
||||||
zipFile file;
|
const void* extrafield_local,
|
||||||
const char* filename;
|
uInt size_extrafield_local,
|
||||||
const zip_fileinfo* zipfi;
|
const void* extrafield_global,
|
||||||
const void* extrafield_local;
|
uInt size_extrafield_global,
|
||||||
uInt size_extrafield_local;
|
const char* comment,
|
||||||
const void* extrafield_global;
|
int method,
|
||||||
uInt size_extrafield_global;
|
int level)
|
||||||
const char* comment;
|
|
||||||
int method;
|
|
||||||
int level;
|
|
||||||
{
|
{
|
||||||
return zipOpenNewFileInZip2 (file, filename, zipfi,
|
return zipOpenNewFileInZip2 (file, filename, zipfi,
|
||||||
extrafield_local, size_extrafield_local,
|
extrafield_local, size_extrafield_local,
|
||||||
@@ -941,8 +929,8 @@ extern int ZEXPORT zipOpenNewFileInZip (file, filename, zipfi,
|
|||||||
comment, method, level, 0);
|
comment, method, level, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
local int zipFlushWriteBuffer(zi)
|
local int zipFlushWriteBuffer(
|
||||||
zip_internal* zi;
|
zip_internal* zi)
|
||||||
{
|
{
|
||||||
int err=ZIP_OK;
|
int err=ZIP_OK;
|
||||||
|
|
||||||
@@ -963,10 +951,10 @@ local int zipFlushWriteBuffer(zi)
|
|||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
|
|
||||||
extern int ZEXPORT zipWriteInFileInZip (file, buf, len)
|
extern int ZEXPORT zipWriteInFileInZip (
|
||||||
zipFile file;
|
zipFile file,
|
||||||
const void* buf;
|
const void* buf,
|
||||||
unsigned len;
|
unsigned len)
|
||||||
{
|
{
|
||||||
zip_internal* zi;
|
zip_internal* zi;
|
||||||
int err=ZIP_OK;
|
int err=ZIP_OK;
|
||||||
@@ -978,9 +966,9 @@ extern int ZEXPORT zipWriteInFileInZip (file, buf, len)
|
|||||||
if (zi->in_opened_file_inzip == 0)
|
if (zi->in_opened_file_inzip == 0)
|
||||||
return ZIP_PARAMERROR;
|
return ZIP_PARAMERROR;
|
||||||
|
|
||||||
zi->ci.stream.next_in = (void*)buf;
|
zi->ci.stream.next_in = (Bytef*)buf;
|
||||||
zi->ci.stream.avail_in = len;
|
zi->ci.stream.avail_in = len;
|
||||||
zi->ci.crc32 = crc32(zi->ci.crc32,buf,len);
|
zi->ci.crc32 = crc32(zi->ci.crc32,(const Bytef*)buf,len);
|
||||||
|
|
||||||
while ((err==ZIP_OK) && (zi->ci.stream.avail_in>0))
|
while ((err==ZIP_OK) && (zi->ci.stream.avail_in>0))
|
||||||
{
|
{
|
||||||
@@ -1028,10 +1016,10 @@ extern int ZEXPORT zipWriteInFileInZip (file, buf, len)
|
|||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
|
|
||||||
extern int ZEXPORT zipCloseFileInZipRaw (file, uncompressed_size, crc32)
|
extern int ZEXPORT zipCloseFileInZipRaw (
|
||||||
zipFile file;
|
zipFile file,
|
||||||
uLong uncompressed_size;
|
uLong uncompressed_size,
|
||||||
uLong crc32;
|
uLong crc32)
|
||||||
{
|
{
|
||||||
zip_internal* zi;
|
zip_internal* zi;
|
||||||
uLong compressed_size;
|
uLong compressed_size;
|
||||||
@@ -1124,15 +1112,15 @@ extern int ZEXPORT zipCloseFileInZipRaw (file, uncompressed_size, crc32)
|
|||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
|
|
||||||
extern int ZEXPORT zipCloseFileInZip (file)
|
extern int ZEXPORT zipCloseFileInZip (
|
||||||
zipFile file;
|
zipFile file)
|
||||||
{
|
{
|
||||||
return zipCloseFileInZipRaw (file,0,0);
|
return zipCloseFileInZipRaw (file,0,0);
|
||||||
}
|
}
|
||||||
|
|
||||||
extern int ZEXPORT zipClose (file, global_comment)
|
extern int ZEXPORT zipClose (
|
||||||
zipFile file;
|
zipFile file,
|
||||||
const char* global_comment;
|
const char* global_comment)
|
||||||
{
|
{
|
||||||
zip_internal* zi;
|
zip_internal* zi;
|
||||||
int err = 0;
|
int err = 0;
|
||||||
|
|||||||
@@ -42,7 +42,6 @@ filesystem * filesystem::pCurrentFS = NULL;
|
|||||||
std::vector<filesystem::pooledBuffer *> filesystem::m_Buffers;
|
std::vector<filesystem::pooledBuffer *> filesystem::m_Buffers;
|
||||||
|
|
||||||
static const int STORED = 0;
|
static const int STORED = 0;
|
||||||
static const int DEFLATED = 8;
|
|
||||||
|
|
||||||
//////////////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////////////
|
||||||
// Construction/Destruction
|
// Construction/Destruction
|
||||||
|
|||||||
@@ -4,6 +4,14 @@
|
|||||||
# - All section names are case-sensitive.
|
# - All section names are case-sensitive.
|
||||||
# - Section names should be unique on each level.
|
# - Section names should be unique on each level.
|
||||||
|
|
||||||
|
# branches to build
|
||||||
|
branches:
|
||||||
|
# blacklist
|
||||||
|
except:
|
||||||
|
- travis_mac_osx
|
||||||
|
# Do not build on tags (GitHub only)
|
||||||
|
skip_tags: true
|
||||||
|
|
||||||
#---------------------------------#
|
#---------------------------------#
|
||||||
# environment configuration #
|
# environment configuration #
|
||||||
#---------------------------------#
|
#---------------------------------#
|
||||||
|
|||||||
|
Before Width: | Height: | Size: 33 KiB After Width: | Height: | Size: 46 KiB |
BIN
projects/mtg/bin/Res/graphics/miconslarge.png
Normal file
|
After Width: | Height: | Size: 146 KiB |
@@ -13,6 +13,8 @@ auto=flashbackrule
|
|||||||
auto=retracerule
|
auto=retracerule
|
||||||
auto=suspendrule
|
auto=suspendrule
|
||||||
auto=morphrule
|
auto=morphrule
|
||||||
|
auto=payzerorule
|
||||||
|
auto=overloadrule
|
||||||
auto=attackrule
|
auto=attackrule
|
||||||
auto=blockrule
|
auto=blockrule
|
||||||
auto=combattriggerrule
|
auto=combattriggerrule
|
||||||
|
|||||||
@@ -12,6 +12,8 @@ auto=flashbackrule
|
|||||||
auto=retracerule
|
auto=retracerule
|
||||||
auto=suspendrule
|
auto=suspendrule
|
||||||
auto=morphrule
|
auto=morphrule
|
||||||
|
auto=payzerorule
|
||||||
|
auto=overloadrule
|
||||||
auto=attackrule
|
auto=attackrule
|
||||||
auto=blockrule
|
auto=blockrule
|
||||||
auto=combattriggerrule
|
auto=combattriggerrule
|
||||||
|
|||||||
@@ -16,7 +16,8 @@ auto=flashbackrule
|
|||||||
auto=retracerule
|
auto=retracerule
|
||||||
auto=suspendrule
|
auto=suspendrule
|
||||||
auto=morphrule
|
auto=morphrule
|
||||||
auto=playfromgraveyardrule
|
auto=payzerorule
|
||||||
|
auto=overloadrule
|
||||||
auto=attackrule
|
auto=attackrule
|
||||||
auto=blockrule
|
auto=blockrule
|
||||||
auto=combattriggerrule
|
auto=combattriggerrule
|
||||||
|
|||||||
1324
projects/mtg/bin/Res/sets/DTK/_cards.dat
Normal file
21
projects/mtg/bin/Res/sets/DTK/booster.txt
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
<PACK name="Dragons of Tarkir" type="Booster" pool="all set:DTK;" price="700">
|
||||||
|
<slot copies="1">
|
||||||
|
<random_card>rarity:mythic;</random_card>
|
||||||
|
<random_card>rarity:rare;</random_card>
|
||||||
|
<random_card>rarity:rare;</random_card>
|
||||||
|
<random_card>rarity:rare;</random_card>
|
||||||
|
<random_card>rarity:rare;</random_card>
|
||||||
|
<random_card>rarity:rare;</random_card>
|
||||||
|
<random_card>rarity:rare;</random_card>
|
||||||
|
<random_card>rarity:rare;</random_card>
|
||||||
|
</slot>
|
||||||
|
<slot copies="3">
|
||||||
|
<random_card>rarity:uncommon;</random_card>
|
||||||
|
</slot>
|
||||||
|
<slot copies="1">
|
||||||
|
<random_card>rarity:special;</random_card>
|
||||||
|
</slot>
|
||||||
|
<slot copies="10">
|
||||||
|
<random_card>rarity:common;</random_card>
|
||||||
|
</slot>
|
||||||
|
</PACK>
|
||||||
934
projects/mtg/bin/Res/sets/FRF/_cards.dat
Normal file
@@ -0,0 +1,934 @@
|
|||||||
|
[meta]
|
||||||
|
author=Wagic Team
|
||||||
|
year=2015
|
||||||
|
[/meta]
|
||||||
|
[card]
|
||||||
|
primitive=Abzan Advantage
|
||||||
|
id=391781
|
||||||
|
rarity=C
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Abzan Beastmaster
|
||||||
|
id=391782
|
||||||
|
rarity=U
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Abzan Kin-Guard
|
||||||
|
id=391783
|
||||||
|
rarity=U
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Abzan Runemark
|
||||||
|
id=391784
|
||||||
|
rarity=C
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Abzan Skycaptain
|
||||||
|
id=391785
|
||||||
|
rarity=C
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Ainok Guide
|
||||||
|
id=391786
|
||||||
|
rarity=C
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Alesha, Who Smiles at Death
|
||||||
|
id=391787
|
||||||
|
rarity=R
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Alesha's Vanguard
|
||||||
|
id=391788
|
||||||
|
rarity=C
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Ambush Krotiq
|
||||||
|
id=391789
|
||||||
|
rarity=C
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Ancestral Vengeance
|
||||||
|
id=391790
|
||||||
|
rarity=C
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Arashin Cleric
|
||||||
|
id=391791
|
||||||
|
rarity=C
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Arashin War Beast
|
||||||
|
id=391792
|
||||||
|
rarity=U
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Arcbond
|
||||||
|
id=391793
|
||||||
|
rarity=R
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Archers of Qarsi
|
||||||
|
id=391794
|
||||||
|
rarity=C
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Archfiend of Depravity
|
||||||
|
id=391795
|
||||||
|
rarity=R
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Atarka, World Render
|
||||||
|
id=391796
|
||||||
|
rarity=R
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Aven Skirmisher
|
||||||
|
id=391797
|
||||||
|
rarity=C
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Aven Surveyor
|
||||||
|
id=391798
|
||||||
|
rarity=C
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Bathe in Dragonfire
|
||||||
|
id=391799
|
||||||
|
rarity=C
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Battle Brawler
|
||||||
|
id=391800
|
||||||
|
rarity=U
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Battlefront Krushok
|
||||||
|
id=391801
|
||||||
|
rarity=U
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Bloodfell Caves
|
||||||
|
id=391802
|
||||||
|
rarity=C
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Bloodfire Enforcers
|
||||||
|
id=391803
|
||||||
|
rarity=U
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Blossoming Sands
|
||||||
|
id=391804
|
||||||
|
rarity=C
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Break Through the Line
|
||||||
|
id=391805
|
||||||
|
rarity=U
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Brutal Hordechief
|
||||||
|
id=391806
|
||||||
|
rarity=M
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Cached Defenses
|
||||||
|
id=391807
|
||||||
|
rarity=U
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Channel Harm
|
||||||
|
id=391808
|
||||||
|
rarity=U
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Citadel Siege
|
||||||
|
id=391809
|
||||||
|
rarity=R
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Cloudform
|
||||||
|
id=391810
|
||||||
|
rarity=U
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Collateral Damage
|
||||||
|
id=391811
|
||||||
|
rarity=C
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Crucible of the Spirit Dragon
|
||||||
|
id=391812
|
||||||
|
rarity=R
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Crux of Fate
|
||||||
|
id=391813
|
||||||
|
rarity=R
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Cunning Strike
|
||||||
|
id=391814
|
||||||
|
rarity=C
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Daghatar the Adamant
|
||||||
|
id=391815
|
||||||
|
rarity=R
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Dark Deal
|
||||||
|
id=391816
|
||||||
|
rarity=U
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Defiant Ogre
|
||||||
|
id=391817
|
||||||
|
rarity=C
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Destructor Dragon
|
||||||
|
id=391818
|
||||||
|
rarity=U
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Diplomacy of the Wastes
|
||||||
|
id=391819
|
||||||
|
rarity=U
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Dismal Backwater
|
||||||
|
id=391820
|
||||||
|
rarity=C
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Douse in Gloom
|
||||||
|
id=391821
|
||||||
|
rarity=C
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Dragon Bell Monk
|
||||||
|
id=391822
|
||||||
|
rarity=C
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Dragonrage
|
||||||
|
id=391823
|
||||||
|
rarity=U
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Dragonscale General
|
||||||
|
id=391824
|
||||||
|
rarity=R
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Dromoka, the Eternal
|
||||||
|
id=391825
|
||||||
|
rarity=R
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Elite Scaleguard
|
||||||
|
id=391826
|
||||||
|
rarity=U
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Enhanced Awareness
|
||||||
|
id=391827
|
||||||
|
rarity=C
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Ethereal Ambush
|
||||||
|
id=391828
|
||||||
|
rarity=C
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Fascination
|
||||||
|
id=391829
|
||||||
|
rarity=U
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Fearsome Awakening
|
||||||
|
id=391830
|
||||||
|
rarity=U
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Feral Krushok
|
||||||
|
id=391831
|
||||||
|
rarity=C
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Fierce Invocation
|
||||||
|
id=391832
|
||||||
|
rarity=C
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Flamerush Rider
|
||||||
|
id=391833
|
||||||
|
rarity=R
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Flamewake Phoenix
|
||||||
|
id=391834
|
||||||
|
rarity=R
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Forest
|
||||||
|
id=391836
|
||||||
|
rarity=C
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Formless Nurturing
|
||||||
|
id=391837
|
||||||
|
rarity=C
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Friendly Fire
|
||||||
|
id=391838
|
||||||
|
rarity=U
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Frontier Mastodon
|
||||||
|
id=391839
|
||||||
|
rarity=C
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Frontier Siege
|
||||||
|
id=391840
|
||||||
|
rarity=R
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Frost Walker
|
||||||
|
id=391841
|
||||||
|
rarity=U
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Fruit of the First Tree
|
||||||
|
id=391842
|
||||||
|
rarity=U
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Ghastly Conscription
|
||||||
|
id=391843
|
||||||
|
rarity=M
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Goblin Boom Keg
|
||||||
|
id=391844
|
||||||
|
rarity=U
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Goblin Heelcutter
|
||||||
|
id=391845
|
||||||
|
rarity=C
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Gore Swine
|
||||||
|
id=391846
|
||||||
|
rarity=C
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Grave Strength
|
||||||
|
id=391847
|
||||||
|
rarity=U
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Great-Horn Krushok
|
||||||
|
id=391848
|
||||||
|
rarity=C
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Grim Contest
|
||||||
|
id=391849
|
||||||
|
rarity=C
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Gurmag Angler
|
||||||
|
id=391850
|
||||||
|
rarity=C
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Harsh Sustenance
|
||||||
|
id=391851
|
||||||
|
rarity=C
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Hero's Blade
|
||||||
|
id=391852
|
||||||
|
rarity=U
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Hewed Stone Retainers
|
||||||
|
id=391853
|
||||||
|
rarity=U
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Honor's Reward
|
||||||
|
id=391854
|
||||||
|
rarity=U
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Hooded Assassin
|
||||||
|
id=391855
|
||||||
|
rarity=C
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Humble Defector
|
||||||
|
id=391856
|
||||||
|
rarity=U
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Hungering Yeti
|
||||||
|
id=391857
|
||||||
|
rarity=U
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Hunt the Weak
|
||||||
|
id=391858
|
||||||
|
rarity=C
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Island
|
||||||
|
id=391859
|
||||||
|
rarity=C
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Jeskai Barricade
|
||||||
|
id=391861
|
||||||
|
rarity=U
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Jeskai Infiltrator
|
||||||
|
id=391862
|
||||||
|
rarity=R
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Jeskai Runemark
|
||||||
|
id=391863
|
||||||
|
rarity=C
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Jeskai Sage
|
||||||
|
id=391864
|
||||||
|
rarity=C
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Jungle Hollow
|
||||||
|
id=391865
|
||||||
|
rarity=C
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Kolaghan, the Storm's Fury
|
||||||
|
id=391866
|
||||||
|
rarity=R
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Lightform
|
||||||
|
id=391867
|
||||||
|
rarity=U
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Lightning Shrieker
|
||||||
|
id=391868
|
||||||
|
rarity=C
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Lotus Path Djinn
|
||||||
|
id=391869
|
||||||
|
rarity=C
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Lotus-Eye Mystics
|
||||||
|
id=391870
|
||||||
|
rarity=U
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Map the Wastes
|
||||||
|
id=391871
|
||||||
|
rarity=C
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Marang River Prowler
|
||||||
|
id=391872
|
||||||
|
rarity=U
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Mardu Runemark
|
||||||
|
id=391873
|
||||||
|
rarity=C
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Mardu Scout
|
||||||
|
id=391874
|
||||||
|
rarity=C
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Mardu Shadowspear
|
||||||
|
id=391875
|
||||||
|
rarity=U
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Mardu Strike Leader
|
||||||
|
id=391876
|
||||||
|
rarity=R
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Mardu Woe-Reaper
|
||||||
|
id=391877
|
||||||
|
rarity=U
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Mastery of the Unseen
|
||||||
|
id=391878
|
||||||
|
rarity=R
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Merciless Executioner
|
||||||
|
id=391879
|
||||||
|
rarity=U
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Mindscour Dragon
|
||||||
|
id=391880
|
||||||
|
rarity=U
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Mistfire Adept
|
||||||
|
id=391881
|
||||||
|
rarity=U
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Mob Rule
|
||||||
|
id=391882
|
||||||
|
rarity=R
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Monastery Mentor
|
||||||
|
id=391883
|
||||||
|
rarity=M
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Monk Token
|
||||||
|
id=-391883
|
||||||
|
rarity=T
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Monastery Siege
|
||||||
|
id=391884
|
||||||
|
rarity=R
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Mountain
|
||||||
|
id=391885
|
||||||
|
rarity=C
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Neutralizing Blast
|
||||||
|
id=391887
|
||||||
|
rarity=U
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Noxious Dragon
|
||||||
|
id=391888
|
||||||
|
rarity=U
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Ojutai, Soul of Winter
|
||||||
|
id=391889
|
||||||
|
rarity=R
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Orc Sureshot
|
||||||
|
id=391890
|
||||||
|
rarity=U
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Outpost Siege
|
||||||
|
id=391891
|
||||||
|
rarity=R
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Palace Siege
|
||||||
|
id=391892
|
||||||
|
rarity=R
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Pilgrim of the Fires
|
||||||
|
id=391893
|
||||||
|
rarity=U
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Plains
|
||||||
|
id=391895
|
||||||
|
rarity=C
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Pressure Point
|
||||||
|
id=391896
|
||||||
|
rarity=C
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Pyrotechnics
|
||||||
|
id=391897
|
||||||
|
rarity=U
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Qarsi High Priest
|
||||||
|
id=391898
|
||||||
|
rarity=U
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Rageform
|
||||||
|
id=391899
|
||||||
|
rarity=U
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Rakshasa's Disdain
|
||||||
|
id=391900
|
||||||
|
rarity=C
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Rally the Ancestors
|
||||||
|
id=391901
|
||||||
|
rarity=R
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Reach of Shadows
|
||||||
|
id=391902
|
||||||
|
rarity=C
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Reality Shift
|
||||||
|
id=391903
|
||||||
|
rarity=U
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Refocus
|
||||||
|
id=391904
|
||||||
|
rarity=C
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Renowned Weaponsmith
|
||||||
|
id=391905
|
||||||
|
rarity=U
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Return to the Earth
|
||||||
|
id=391906
|
||||||
|
rarity=C
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Rite of Undoing
|
||||||
|
id=391907
|
||||||
|
rarity=U
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Rugged Highlands
|
||||||
|
id=391908
|
||||||
|
rarity=C
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Ruthless Instincts
|
||||||
|
id=391909
|
||||||
|
rarity=U
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Sage-Eye Avengers
|
||||||
|
id=391911
|
||||||
|
rarity=R
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Sage's Reverie
|
||||||
|
id=391910
|
||||||
|
rarity=U
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Sandblast
|
||||||
|
id=391912
|
||||||
|
rarity=C
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Sandsteppe Mastodon
|
||||||
|
id=391913
|
||||||
|
rarity=R
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Sandsteppe Outcast
|
||||||
|
id=391914
|
||||||
|
rarity=C
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Scoured Barrens
|
||||||
|
id=391915
|
||||||
|
rarity=C
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Scroll of the Masters
|
||||||
|
id=391916
|
||||||
|
rarity=R
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Shaman of the Great Hunt
|
||||||
|
id=391917
|
||||||
|
rarity=M
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Shamanic Revelation
|
||||||
|
id=391918
|
||||||
|
rarity=R
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Shifting Loyalties
|
||||||
|
id=391919
|
||||||
|
rarity=U
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Shockmaw Dragon
|
||||||
|
id=391920
|
||||||
|
rarity=U
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Shu Yun, the Silent Tempest
|
||||||
|
id=391921
|
||||||
|
rarity=R
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Sibsig Host
|
||||||
|
id=391922
|
||||||
|
rarity=C
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Sibsig Muckdraggers
|
||||||
|
id=391923
|
||||||
|
rarity=U
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Silumgar, the Drifting Death
|
||||||
|
id=391924
|
||||||
|
rarity=R
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Smoldering Efreet
|
||||||
|
id=391925
|
||||||
|
rarity=C
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Soul Summons
|
||||||
|
id=391926
|
||||||
|
rarity=C
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Soulfire Grand Master
|
||||||
|
id=391927
|
||||||
|
rarity=M
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Soulflayer
|
||||||
|
id=391928
|
||||||
|
rarity=R
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Sudden Reclamation
|
||||||
|
id=391929
|
||||||
|
rarity=U
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Sultai Emissary
|
||||||
|
id=391930
|
||||||
|
rarity=C
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Sultai Runemark
|
||||||
|
id=391931
|
||||||
|
rarity=C
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Sultai Skullkeeper
|
||||||
|
id=391932
|
||||||
|
rarity=C
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Supplant Form
|
||||||
|
id=391933
|
||||||
|
rarity=R
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Swamp
|
||||||
|
id=391934
|
||||||
|
rarity=C
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Swiftwater Cliffs
|
||||||
|
id=391936
|
||||||
|
rarity=C
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Tasigur, the Golden Fang
|
||||||
|
id=391937
|
||||||
|
rarity=R
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Tasigur's Cruelty
|
||||||
|
id=391938
|
||||||
|
rarity=C
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Temporal Trespass
|
||||||
|
id=391939
|
||||||
|
rarity=M
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Temur Battle Rage
|
||||||
|
id=391940
|
||||||
|
rarity=C
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Temur Runemark
|
||||||
|
id=391941
|
||||||
|
rarity=C
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Temur Sabertooth
|
||||||
|
id=391942
|
||||||
|
rarity=U
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Temur War Shaman
|
||||||
|
id=391943
|
||||||
|
rarity=R
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Thornwood Falls
|
||||||
|
id=391944
|
||||||
|
rarity=C
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Torrent Elemental
|
||||||
|
id=391945
|
||||||
|
rarity=M
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Tranquil Cove
|
||||||
|
id=391946
|
||||||
|
rarity=C
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Typhoid Rats
|
||||||
|
id=391947
|
||||||
|
rarity=C
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Ugin, the Spirit Dragon
|
||||||
|
id=391948
|
||||||
|
rarity=M
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Ugin's Construct
|
||||||
|
id=391949
|
||||||
|
rarity=U
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Valorous Stance
|
||||||
|
id=391950
|
||||||
|
rarity=U
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Vaultbreaker
|
||||||
|
id=391951
|
||||||
|
rarity=U
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Wandering Champion
|
||||||
|
id=391952
|
||||||
|
rarity=U
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=War Flare
|
||||||
|
id=391953
|
||||||
|
rarity=C
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Warden of the First Tree
|
||||||
|
id=391954
|
||||||
|
rarity=M
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Wardscale Dragon
|
||||||
|
id=391955
|
||||||
|
rarity=U
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Whisk Away
|
||||||
|
id=391956
|
||||||
|
rarity=C
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Whisperer of the Wilds
|
||||||
|
id=391957
|
||||||
|
rarity=C
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Whisperwood Elemental
|
||||||
|
id=391958
|
||||||
|
rarity=M
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Wild Slash
|
||||||
|
id=391959
|
||||||
|
rarity=U
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Wildcall
|
||||||
|
id=391960
|
||||||
|
rarity=R
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Will of the Naga
|
||||||
|
id=391961
|
||||||
|
rarity=C
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Winds of Qal Sisma
|
||||||
|
id=391962
|
||||||
|
rarity=U
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Wind-Scarred Crag
|
||||||
|
id=391963
|
||||||
|
rarity=C
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Write into Being
|
||||||
|
id=391964
|
||||||
|
rarity=C
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Yasova Dragonclaw
|
||||||
|
id=391965
|
||||||
|
rarity=R
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Forest
|
||||||
|
id=391835
|
||||||
|
rarity=C
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Island
|
||||||
|
id=391860
|
||||||
|
rarity=C
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Mountain
|
||||||
|
id=391886
|
||||||
|
rarity=C
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Plains
|
||||||
|
id=391894
|
||||||
|
rarity=C
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Swamp
|
||||||
|
id=391935
|
||||||
|
rarity=C
|
||||||
|
[/card]
|
||||||
21
projects/mtg/bin/Res/sets/FRF/booster.txt
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
<PACK name="Fate Reforged" type="Booster" pool="all set:FRF;" price="700">
|
||||||
|
<slot copies="1">
|
||||||
|
<random_card>rarity:mythic;</random_card>
|
||||||
|
<random_card>rarity:rare;</random_card>
|
||||||
|
<random_card>rarity:rare;</random_card>
|
||||||
|
<random_card>rarity:rare;</random_card>
|
||||||
|
<random_card>rarity:rare;</random_card>
|
||||||
|
<random_card>rarity:rare;</random_card>
|
||||||
|
<random_card>rarity:rare;</random_card>
|
||||||
|
<random_card>rarity:rare;</random_card>
|
||||||
|
</slot>
|
||||||
|
<slot copies="3">
|
||||||
|
<random_card>rarity:uncommon;</random_card>
|
||||||
|
</slot>
|
||||||
|
<slot copies="1">
|
||||||
|
<random_card>rarity:special;</random_card>
|
||||||
|
</slot>
|
||||||
|
<slot copies="10">
|
||||||
|
<random_card>rarity:common;</random_card>
|
||||||
|
</slot>
|
||||||
|
</PACK>
|
||||||
830
projects/mtg/bin/Res/sets/JOU/_cards.dat
Normal file
@@ -0,0 +1,830 @@
|
|||||||
|
[meta]
|
||||||
|
author=Wagic Team
|
||||||
|
year=2014
|
||||||
|
block=Theros
|
||||||
|
[/meta]
|
||||||
|
[card]
|
||||||
|
primitive=Aegis of the Gods
|
||||||
|
id=380364
|
||||||
|
rarity=R
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Aerial Formation
|
||||||
|
id=380365
|
||||||
|
rarity=C
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Agent of Erebos
|
||||||
|
id=380366
|
||||||
|
rarity=U
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Ajani, Mentor of Heroes
|
||||||
|
id=380367
|
||||||
|
rarity=M
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Ajani's Presence
|
||||||
|
id=380368
|
||||||
|
rarity=C
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Akroan Line Breaker
|
||||||
|
id=380369
|
||||||
|
rarity=U
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Akroan Mastiff
|
||||||
|
id=380370
|
||||||
|
rarity=C
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Armament of Nyx
|
||||||
|
id=380371
|
||||||
|
rarity=C
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Armory of Iroas
|
||||||
|
id=380372
|
||||||
|
rarity=U
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Aspect of Gorgon
|
||||||
|
id=380373
|
||||||
|
rarity=C
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Athreos, God of Passage
|
||||||
|
id=380374
|
||||||
|
rarity=M
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Banishing Light
|
||||||
|
id=380375
|
||||||
|
rarity=U
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Bassara Tower Archer
|
||||||
|
id=380376
|
||||||
|
rarity=U
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Battlefield Thaumaturge
|
||||||
|
id=380377
|
||||||
|
rarity=R
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Bearer of the Heavens
|
||||||
|
id=380378
|
||||||
|
rarity=R
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Bladetusk Boar
|
||||||
|
id=380379
|
||||||
|
rarity=C
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Blinding Flare
|
||||||
|
id=380380
|
||||||
|
rarity=U
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Bloodcrazed Hoplite
|
||||||
|
id=380381
|
||||||
|
rarity=C
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Brain Maggot
|
||||||
|
id=380382
|
||||||
|
rarity=U
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Cast into Darkness
|
||||||
|
id=380383
|
||||||
|
rarity=C
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Chariot of Victory
|
||||||
|
id=380384
|
||||||
|
rarity=U
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Cloaked Siren
|
||||||
|
id=380385
|
||||||
|
rarity=C
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Colossal Heroics
|
||||||
|
id=380386
|
||||||
|
rarity=U
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Consign to Dust
|
||||||
|
id=380387
|
||||||
|
rarity=U
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Countermand
|
||||||
|
id=380388
|
||||||
|
rarity=C
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Cruel Feeding
|
||||||
|
id=380389
|
||||||
|
rarity=C
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Crystalline Nautilus
|
||||||
|
id=380390
|
||||||
|
rarity=U
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Cyclops of Eternal Fury
|
||||||
|
id=380391
|
||||||
|
rarity=U
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Dakra Mystic
|
||||||
|
id=380392
|
||||||
|
rarity=U
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Daring Thief
|
||||||
|
id=380393
|
||||||
|
rarity=R
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Dawnbringer Charioteers
|
||||||
|
id=380394
|
||||||
|
rarity=R
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Deicide
|
||||||
|
id=380395
|
||||||
|
rarity=R
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Desecration Plague
|
||||||
|
id=380396
|
||||||
|
rarity=C
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Deserter's Quarters
|
||||||
|
id=380397
|
||||||
|
rarity=U
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Desperate Stand
|
||||||
|
id=380398
|
||||||
|
rarity=U
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Dictate of Erebos
|
||||||
|
id=380399
|
||||||
|
rarity=R
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Dictate of Heliod
|
||||||
|
id=380400
|
||||||
|
rarity=R
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Dictate of Karametra
|
||||||
|
id=380401
|
||||||
|
rarity=R
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Dictate of Kruphix
|
||||||
|
id=380402
|
||||||
|
rarity=R
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Dictate of the Twin Gods
|
||||||
|
id=380403
|
||||||
|
rarity=R
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Disciple of Deceit
|
||||||
|
id=380404
|
||||||
|
rarity=U
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Doomwake Giant
|
||||||
|
id=380405
|
||||||
|
rarity=R
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Dreadbringer Lampads
|
||||||
|
id=380406
|
||||||
|
rarity=C
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Eagle of the Watch
|
||||||
|
id=380407
|
||||||
|
rarity=C
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Eidolon of Blossoms
|
||||||
|
id=380408
|
||||||
|
rarity=R
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Eidolon of Rhetoric
|
||||||
|
id=380409
|
||||||
|
rarity=U
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Eidolon of the Great Revel
|
||||||
|
id=380410
|
||||||
|
rarity=R
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Extinguish All Hope
|
||||||
|
id=380411
|
||||||
|
rarity=R
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Feast of Dreams
|
||||||
|
id=380412
|
||||||
|
rarity=C
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Felhide Petrifier
|
||||||
|
id=380413
|
||||||
|
rarity=U
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Flamespeaker's Will
|
||||||
|
id=380414
|
||||||
|
rarity=C
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Fleetfeather Cockatrice
|
||||||
|
id=380415
|
||||||
|
rarity=U
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Flurry of Horns
|
||||||
|
id=380416
|
||||||
|
rarity=C
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Font of Fertility
|
||||||
|
id=380417
|
||||||
|
rarity=C
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Font of Fortunes
|
||||||
|
id=380418
|
||||||
|
rarity=C
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Font of Ire
|
||||||
|
id=380419
|
||||||
|
rarity=C
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Font of Return
|
||||||
|
id=380420
|
||||||
|
rarity=C
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Font of Vigor
|
||||||
|
id=380421
|
||||||
|
rarity=C
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Forgeborn Oreads
|
||||||
|
id=380422
|
||||||
|
rarity=U
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Gluttonous Cyclops
|
||||||
|
id=380423
|
||||||
|
rarity=C
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Gnarled Scarhide
|
||||||
|
id=380424
|
||||||
|
rarity=U
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Godhunter Octopus
|
||||||
|
id=380425
|
||||||
|
rarity=C
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Godsend
|
||||||
|
id=380426
|
||||||
|
rarity=M
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Golden Hind
|
||||||
|
id=380427
|
||||||
|
rarity=C
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Goldenhide Ox
|
||||||
|
id=380428
|
||||||
|
rarity=U
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Gold-Forged Sentinel
|
||||||
|
id=380429
|
||||||
|
rarity=U
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Grim Guardian
|
||||||
|
id=380430
|
||||||
|
rarity=C
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Hall of Triumph
|
||||||
|
id=380431
|
||||||
|
rarity=R
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Harness by Force
|
||||||
|
id=380432
|
||||||
|
rarity=R
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Harvestguard Alseids
|
||||||
|
id=380433
|
||||||
|
rarity=C
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Heroes' Bane
|
||||||
|
id=380434
|
||||||
|
rarity=R
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Hour of Need
|
||||||
|
id=380435
|
||||||
|
rarity=U
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Hubris
|
||||||
|
id=380436
|
||||||
|
rarity=C
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Humbler of Mortals
|
||||||
|
id=380437
|
||||||
|
rarity=C
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Hydra Broodmaster
|
||||||
|
id=380438
|
||||||
|
rarity=R
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Hypnotic Siren
|
||||||
|
id=380439
|
||||||
|
rarity=R
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Interpret the Signs
|
||||||
|
id=380440
|
||||||
|
rarity=U
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Iroas, God of Victory
|
||||||
|
id=380441
|
||||||
|
rarity=M
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Keranos, God of Storms
|
||||||
|
id=380442
|
||||||
|
rarity=M
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=King Macar, the Gold-Cursed
|
||||||
|
id=380443
|
||||||
|
rarity=R
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Kiora's Dismissal
|
||||||
|
id=380444
|
||||||
|
rarity=U
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Knowledge and Power
|
||||||
|
id=380445
|
||||||
|
rarity=U
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Kruphix, God of Horizons
|
||||||
|
id=380446
|
||||||
|
rarity=M
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Kruphix's Insight
|
||||||
|
id=380447
|
||||||
|
rarity=C
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Lagonna-Band Trailblazer
|
||||||
|
id=380448
|
||||||
|
rarity=C
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Launch the Fleet
|
||||||
|
id=380449
|
||||||
|
rarity=R
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Leonin Iconoclast
|
||||||
|
id=380450
|
||||||
|
rarity=U
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Lightning Diadem
|
||||||
|
id=380451
|
||||||
|
rarity=C
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Magma Spray
|
||||||
|
id=380452
|
||||||
|
rarity=C
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Mana Confluence
|
||||||
|
id=380453
|
||||||
|
rarity=R
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Market Festival
|
||||||
|
id=380454
|
||||||
|
rarity=C
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Master of the Feast
|
||||||
|
id=380455
|
||||||
|
rarity=R
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Mogis's Warhound
|
||||||
|
id=380456
|
||||||
|
rarity=U
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Mortal Obstinacy
|
||||||
|
id=380457
|
||||||
|
rarity=C
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Nature's Panoply
|
||||||
|
id=380458
|
||||||
|
rarity=C
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Nessian Game Warden
|
||||||
|
id=380459
|
||||||
|
rarity=U
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Nightmarish End
|
||||||
|
id=380460
|
||||||
|
rarity=U
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Nyx Infusion
|
||||||
|
id=380461
|
||||||
|
rarity=C
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Nyx Weaver
|
||||||
|
id=380462
|
||||||
|
rarity=U
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Nyx-Fleece Ram
|
||||||
|
id=380463
|
||||||
|
rarity=U
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Oakheart Dryads
|
||||||
|
id=380464
|
||||||
|
rarity=C
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Oppressive Rays
|
||||||
|
id=380465
|
||||||
|
rarity=C
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Oreskos Swiftclaw
|
||||||
|
id=380466
|
||||||
|
rarity=C
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Pensive Minotaur
|
||||||
|
id=380467
|
||||||
|
rarity=C
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Phalanx Formation
|
||||||
|
id=380468
|
||||||
|
rarity=U
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Pharika, God of Affliction
|
||||||
|
id=380469
|
||||||
|
rarity=M
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Pharika's Chosen
|
||||||
|
id=380470
|
||||||
|
rarity=C
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Pheres-Band Thunderhoof
|
||||||
|
id=380471
|
||||||
|
rarity=C
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Pheres-Band Warchief
|
||||||
|
id=380472
|
||||||
|
rarity=R
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Pin to the Earth
|
||||||
|
id=380473
|
||||||
|
rarity=C
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Polymorphous Rush
|
||||||
|
id=380474
|
||||||
|
rarity=R
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Prophetic Flamespeaker
|
||||||
|
id=380475
|
||||||
|
rarity=M
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Pull from the Deep
|
||||||
|
id=380476
|
||||||
|
rarity=U
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Quarry Colossus
|
||||||
|
id=380477
|
||||||
|
rarity=U
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Ravenous Leucrocota
|
||||||
|
id=380478
|
||||||
|
rarity=C
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Renowned Weaver
|
||||||
|
id=380479
|
||||||
|
rarity=C
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Reprisal
|
||||||
|
id=380480
|
||||||
|
rarity=U
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Returned Reveler
|
||||||
|
id=380481
|
||||||
|
rarity=C
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Revel of the Fallen God
|
||||||
|
id=380482
|
||||||
|
rarity=R
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Reviving Melody
|
||||||
|
id=380483
|
||||||
|
rarity=U
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Riddle of Lightning
|
||||||
|
id=380484
|
||||||
|
rarity=U
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Riptide Chimera
|
||||||
|
id=380485
|
||||||
|
rarity=U
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Rise of Eagles
|
||||||
|
id=380486
|
||||||
|
rarity=C
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Ritual of the Returned
|
||||||
|
id=380487
|
||||||
|
rarity=U
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Rollick of Abandon
|
||||||
|
id=380488
|
||||||
|
rarity=U
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Rotted Hulk
|
||||||
|
id=380489
|
||||||
|
rarity=C
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Rouse the Mob
|
||||||
|
id=380490
|
||||||
|
rarity=C
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Sage of Hours
|
||||||
|
id=380491
|
||||||
|
rarity=M
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Satyr Grovedancer
|
||||||
|
id=380492
|
||||||
|
rarity=C
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Satyr Hoplite
|
||||||
|
id=380493
|
||||||
|
rarity=C
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Scourge of Fleets
|
||||||
|
id=380494
|
||||||
|
rarity=R
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Setessan Tactics
|
||||||
|
id=380495
|
||||||
|
rarity=R
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Sightless Brawler
|
||||||
|
id=380496
|
||||||
|
rarity=U
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Sigiled Skink
|
||||||
|
id=380497
|
||||||
|
rarity=C
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Sigiled Starfish
|
||||||
|
id=380498
|
||||||
|
rarity=C
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Silence the Believers
|
||||||
|
id=380499
|
||||||
|
rarity=R
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Skybind
|
||||||
|
id=380500
|
||||||
|
rarity=R
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Skyspear Cavalry
|
||||||
|
id=380501
|
||||||
|
rarity=U
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Solidarity of Heroes
|
||||||
|
id=380502
|
||||||
|
rarity=U
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Spawn of Thraxes
|
||||||
|
id=380503
|
||||||
|
rarity=R
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Spirespine
|
||||||
|
id=380504
|
||||||
|
rarity=U
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Spite of Mogis
|
||||||
|
id=380505
|
||||||
|
rarity=U
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Spiteful Blow
|
||||||
|
id=380506
|
||||||
|
rarity=U
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Squelching Leeches
|
||||||
|
id=380507
|
||||||
|
rarity=U
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Starfall
|
||||||
|
id=380508
|
||||||
|
rarity=C
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Stonewise Fortifier
|
||||||
|
id=380509
|
||||||
|
rarity=C
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Stormchaser Chimera
|
||||||
|
id=380510
|
||||||
|
rarity=U
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Strength from the Fallen
|
||||||
|
id=380511
|
||||||
|
rarity=U
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Supply-Line Cranes
|
||||||
|
id=380512
|
||||||
|
rarity=C
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Swarmborn Giant
|
||||||
|
id=380513
|
||||||
|
rarity=U
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Temple of Epiphany
|
||||||
|
id=380514
|
||||||
|
rarity=R
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Temple of Malady
|
||||||
|
id=380515
|
||||||
|
rarity=R
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Tethmos High Priest
|
||||||
|
id=380516
|
||||||
|
rarity=U
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Thassa's Devourer
|
||||||
|
id=380517
|
||||||
|
rarity=C
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Thassa's Ire
|
||||||
|
id=380518
|
||||||
|
rarity=U
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Thoughtrender Lamia
|
||||||
|
id=380519
|
||||||
|
rarity=U
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Tormented Thoughts
|
||||||
|
id=380520
|
||||||
|
rarity=U
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Triton Cavalry
|
||||||
|
id=380521
|
||||||
|
rarity=U
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Triton Shorestalker
|
||||||
|
id=380522
|
||||||
|
rarity=C
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Twinflame
|
||||||
|
id=380523
|
||||||
|
rarity=R
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Underworld Coinsmith
|
||||||
|
id=380524
|
||||||
|
rarity=U
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=War-Wing Siren
|
||||||
|
id=380525
|
||||||
|
rarity=C
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Whitewater Naiads
|
||||||
|
id=380526
|
||||||
|
rarity=U
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Wildfire Cerberus
|
||||||
|
id=380527
|
||||||
|
rarity=U
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
primitive=Worst Fears
|
||||||
|
id=380528
|
||||||
|
rarity=M
|
||||||
|
[/card]
|
||||||
21
projects/mtg/bin/Res/sets/JOU/booster.txt
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
<PACK name="Journey Into Nyx" type="Booster" pool="all set:JOU;" price="700">
|
||||||
|
<slot copies="1">
|
||||||
|
<random_card>rarity:mythic;</random_card>
|
||||||
|
<random_card>rarity:rare;</random_card>
|
||||||
|
<random_card>rarity:rare;</random_card>
|
||||||
|
<random_card>rarity:rare;</random_card>
|
||||||
|
<random_card>rarity:rare;</random_card>
|
||||||
|
<random_card>rarity:rare;</random_card>
|
||||||
|
<random_card>rarity:rare;</random_card>
|
||||||
|
<random_card>rarity:rare;</random_card>
|
||||||
|
</slot>
|
||||||
|
<slot copies="3">
|
||||||
|
<random_card>rarity:uncommon;</random_card>
|
||||||
|
</slot>
|
||||||
|
<slot copies="1">
|
||||||
|
<random_card>rarity:special;</random_card>
|
||||||
|
</slot>
|
||||||
|
<slot copies="10">
|
||||||
|
<random_card>rarity:common;</random_card>
|
||||||
|
</slot>
|
||||||
|
</PACK>
|
||||||
1354
projects/mtg/bin/Res/sets/KTK/_cards.dat
Normal file
21
projects/mtg/bin/Res/sets/KTK/booster.txt
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
<PACK name="Khans of Tarkir" type="Booster" pool="all set:KTK;" price="700">
|
||||||
|
<slot copies="1">
|
||||||
|
<random_card>rarity:mythic;</random_card>
|
||||||
|
<random_card>rarity:rare;</random_card>
|
||||||
|
<random_card>rarity:rare;</random_card>
|
||||||
|
<random_card>rarity:rare;</random_card>
|
||||||
|
<random_card>rarity:rare;</random_card>
|
||||||
|
<random_card>rarity:rare;</random_card>
|
||||||
|
<random_card>rarity:rare;</random_card>
|
||||||
|
<random_card>rarity:rare;</random_card>
|
||||||
|
</slot>
|
||||||
|
<slot copies="3">
|
||||||
|
<random_card>rarity:uncommon;</random_card>
|
||||||
|
</slot>
|
||||||
|
<slot copies="1">
|
||||||
|
<random_card>rarity:special;</random_card>
|
||||||
|
</slot>
|
||||||
|
<slot copies="10">
|
||||||
|
<random_card>rarity:common;</random_card>
|
||||||
|
</slot>
|
||||||
|
</PACK>
|
||||||
@@ -1513,8 +1513,3 @@ primitive=Zephyr Net
|
|||||||
id=142357
|
id=142357
|
||||||
rarity=C
|
rarity=C
|
||||||
[/card]
|
[/card]
|
||||||
[card]
|
|
||||||
primitive=Avatar Token
|
|
||||||
id=-140233
|
|
||||||
rarity=T
|
|
||||||
[/card]
|
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ rarity=C
|
|||||||
[card]
|
[card]
|
||||||
primitive=Accorder's Shield
|
primitive=Accorder's Shield
|
||||||
id=370581
|
id=370581
|
||||||
rarity=C
|
rarity=U
|
||||||
[/card]
|
[/card]
|
||||||
[card]
|
[card]
|
||||||
primitive=Accursed Spirit
|
primitive=Accursed Spirit
|
||||||
@@ -31,7 +31,7 @@ rarity=C
|
|||||||
[card]
|
[card]
|
||||||
primitive=Air Servant
|
primitive=Air Servant
|
||||||
id=370688
|
id=370688
|
||||||
rarity=C
|
rarity=U
|
||||||
[/card]
|
[/card]
|
||||||
[card]
|
[card]
|
||||||
primitive=Ajani, Caller of the Pride
|
primitive=Ajani, Caller of the Pride
|
||||||
@@ -121,7 +121,7 @@ rarity=C
|
|||||||
[card]
|
[card]
|
||||||
primitive=Blur Sliver
|
primitive=Blur Sliver
|
||||||
id=370593
|
id=370593
|
||||||
rarity=U
|
rarity=C
|
||||||
[/card]
|
[/card]
|
||||||
[card]
|
[card]
|
||||||
primitive=Bogbrew Witch
|
primitive=Bogbrew Witch
|
||||||
@@ -156,7 +156,7 @@ rarity=C
|
|||||||
[card]
|
[card]
|
||||||
primitive=Bubbling Cauldron
|
primitive=Bubbling Cauldron
|
||||||
id=370661
|
id=370661
|
||||||
rarity=R
|
rarity=U
|
||||||
[/card]
|
[/card]
|
||||||
[card]
|
[card]
|
||||||
primitive=Burning Earth
|
primitive=Burning Earth
|
||||||
@@ -261,7 +261,7 @@ rarity=R
|
|||||||
[card]
|
[card]
|
||||||
primitive=Darksteel Forge
|
primitive=Darksteel Forge
|
||||||
id=370734
|
id=370734
|
||||||
rarity=R
|
rarity=M
|
||||||
[/card]
|
[/card]
|
||||||
[card]
|
[card]
|
||||||
primitive=Darksteel Ingot
|
primitive=Darksteel Ingot
|
||||||
@@ -326,7 +326,7 @@ rarity=R
|
|||||||
[card]
|
[card]
|
||||||
primitive=Doom Blade
|
primitive=Doom Blade
|
||||||
id=370609
|
id=370609
|
||||||
rarity=C
|
rarity=U
|
||||||
[/card]
|
[/card]
|
||||||
[card]
|
[card]
|
||||||
primitive=Door of Destinies
|
primitive=Door of Destinies
|
||||||
@@ -339,6 +339,11 @@ id=370660
|
|||||||
rarity=U
|
rarity=U
|
||||||
[/card]
|
[/card]
|
||||||
[card]
|
[card]
|
||||||
|
primitive=Dragon Egg Dragon
|
||||||
|
id=-370660
|
||||||
|
rarity=T
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
primitive=Dragon Hatchling
|
primitive=Dragon Hatchling
|
||||||
id=370717
|
id=370717
|
||||||
rarity=C
|
rarity=C
|
||||||
@@ -431,7 +436,7 @@ rarity=C
|
|||||||
[card]
|
[card]
|
||||||
primitive=Fortify
|
primitive=Fortify
|
||||||
id=370712
|
id=370712
|
||||||
rarity=U
|
rarity=C
|
||||||
[/card]
|
[/card]
|
||||||
[card]
|
[card]
|
||||||
primitive=Frost Breath
|
primitive=Frost Breath
|
||||||
@@ -581,7 +586,7 @@ rarity=R
|
|||||||
[card]
|
[card]
|
||||||
primitive=Kalonian Hydra
|
primitive=Kalonian Hydra
|
||||||
id=370766
|
id=370766
|
||||||
rarity=R
|
rarity=M
|
||||||
[/card]
|
[/card]
|
||||||
[card]
|
[card]
|
||||||
primitive=Kalonian Tusker
|
primitive=Kalonian Tusker
|
||||||
@@ -591,7 +596,7 @@ rarity=U
|
|||||||
[card]
|
[card]
|
||||||
primitive=Lava Axe
|
primitive=Lava Axe
|
||||||
id=370595
|
id=370595
|
||||||
rarity=
|
rarity=C
|
||||||
[/card]
|
[/card]
|
||||||
[card]
|
[card]
|
||||||
primitive=Lay of the Land
|
primitive=Lay of the Land
|
||||||
@@ -619,8 +624,8 @@ id=370740
|
|||||||
rarity=R
|
rarity=R
|
||||||
[/card]
|
[/card]
|
||||||
[card]
|
[card]
|
||||||
primitive=Zombie Token
|
primitive=Liliana's Reaver Zombie
|
||||||
id=-339967
|
id=-370740
|
||||||
rarity=T
|
rarity=T
|
||||||
[/card]
|
[/card]
|
||||||
[card]
|
[card]
|
||||||
@@ -736,7 +741,7 @@ rarity=R
|
|||||||
[card]
|
[card]
|
||||||
primitive=Nightwing Shade
|
primitive=Nightwing Shade
|
||||||
id=370705
|
id=370705
|
||||||
rarity=U
|
rarity=C
|
||||||
[/card]
|
[/card]
|
||||||
[card]
|
[card]
|
||||||
primitive=Oath of the Ancient Wood
|
primitive=Oath of the Ancient Wood
|
||||||
@@ -831,7 +836,7 @@ rarity=R
|
|||||||
[card]
|
[card]
|
||||||
primitive=Quag Sickness
|
primitive=Quag Sickness
|
||||||
id=370714
|
id=370714
|
||||||
rarity=U
|
rarity=C
|
||||||
[/card]
|
[/card]
|
||||||
[card]
|
[card]
|
||||||
primitive=Quicken
|
primitive=Quicken
|
||||||
@@ -846,7 +851,7 @@ rarity=C
|
|||||||
[card]
|
[card]
|
||||||
primitive=Ratchet Bomb
|
primitive=Ratchet Bomb
|
||||||
id=370623
|
id=370623
|
||||||
rarity=C
|
rarity=R
|
||||||
[/card]
|
[/card]
|
||||||
[card]
|
[card]
|
||||||
primitive=Regathan Firecat
|
primitive=Regathan Firecat
|
||||||
@@ -896,7 +901,7 @@ rarity=R
|
|||||||
[card]
|
[card]
|
||||||
primitive=Scourge of Valkas
|
primitive=Scourge of Valkas
|
||||||
id=370584
|
id=370584
|
||||||
rarity=R
|
rarity=M
|
||||||
[/card]
|
[/card]
|
||||||
[card]
|
[card]
|
||||||
primitive=Scroll Thief
|
primitive=Scroll Thief
|
||||||
@@ -951,7 +956,7 @@ rarity=M
|
|||||||
[card]
|
[card]
|
||||||
primitive=Shimmering Grotto
|
primitive=Shimmering Grotto
|
||||||
id=370631
|
id=370631
|
||||||
rarity=C
|
rarity=U
|
||||||
[/card]
|
[/card]
|
||||||
[card]
|
[card]
|
||||||
primitive=Shivan Dragon
|
primitive=Shivan Dragon
|
||||||
@@ -1031,6 +1036,7 @@ rarity=U
|
|||||||
[card]
|
[card]
|
||||||
primitive=Staff of the Mind Magus
|
primitive=Staff of the Mind Magus
|
||||||
id=370676
|
id=370676
|
||||||
|
rarity=U
|
||||||
[/card]
|
[/card]
|
||||||
[card]
|
[card]
|
||||||
primitive=Staff of the Wild Magus
|
primitive=Staff of the Wild Magus
|
||||||
@@ -1105,7 +1111,7 @@ rarity=R
|
|||||||
[card]
|
[card]
|
||||||
primitive=Thunder Strike
|
primitive=Thunder Strike
|
||||||
id=370607
|
id=370607
|
||||||
rarity=U
|
rarity=C
|
||||||
[/card]
|
[/card]
|
||||||
[card]
|
[card]
|
||||||
primitive=Tidebinder Mage
|
primitive=Tidebinder Mage
|
||||||
@@ -1115,7 +1121,7 @@ rarity=R
|
|||||||
[card]
|
[card]
|
||||||
primitive=Time Ebb
|
primitive=Time Ebb
|
||||||
id=370641
|
id=370641
|
||||||
rarity=R
|
rarity=C
|
||||||
[/card]
|
[/card]
|
||||||
[card]
|
[card]
|
||||||
primitive=Tome Scour
|
primitive=Tome Scour
|
||||||
@@ -1215,7 +1221,7 @@ rarity=R
|
|||||||
[card]
|
[card]
|
||||||
primitive=Windreader Sphinx
|
primitive=Windreader Sphinx
|
||||||
id=370810
|
id=370810
|
||||||
rarity=U
|
rarity=M
|
||||||
[/card]
|
[/card]
|
||||||
[card]
|
[card]
|
||||||
primitive=Windstorm
|
primitive=Windstorm
|
||||||
@@ -1243,8 +1249,8 @@ id=370619
|
|||||||
rarity=R
|
rarity=R
|
||||||
[/card]
|
[/card]
|
||||||
[card]
|
[card]
|
||||||
primitive=Zombie Token
|
primitive=Xathrid Necromancer Zombie
|
||||||
id=-339968
|
id=-370619
|
||||||
rarity=T
|
rarity=T
|
||||||
[/card]
|
[/card]
|
||||||
[card]
|
[card]
|
||||||
|
|||||||
1445
projects/mtg/bin/Res/sets/M15/_cards.dat
Normal file
1391
projects/mtg/bin/Res/sets/ORI/_cards.dat
Normal file
@@ -1,5 +1,16 @@
|
|||||||
grade=borderline
|
grade=borderline
|
||||||
[card]
|
[card]
|
||||||
|
name=Arrogant Wurm
|
||||||
|
abilities=trample,madness
|
||||||
|
autoexile=restriction{discarded} pay({2}{G}) name(pay 2G to cast) activate name(pay 2G to cast) castcard(normal)?name(put in graveyard) moveto(ownergraveyard)
|
||||||
|
text=Trample -- Madness {2}{G} (If you discard this card, you may cast it for its madness cost instead of putting it into your graveyard.)
|
||||||
|
mana={3}{G}{G}
|
||||||
|
type=Creature
|
||||||
|
subtype=Wurm
|
||||||
|
power=4
|
||||||
|
toughness=4
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
name=Autumn Willow
|
name=Autumn Willow
|
||||||
abilities=opponentshroud,shroud
|
abilities=opponentshroud,shroud
|
||||||
auto={G}:-shroud
|
auto={G}:-shroud
|
||||||
@@ -24,6 +35,50 @@ power=2
|
|||||||
toughness=2
|
toughness=2
|
||||||
[/card]
|
[/card]
|
||||||
[card]
|
[card]
|
||||||
|
name=Basking Rootwalla
|
||||||
|
abilities=madness
|
||||||
|
autoexile=restriction{discarded} pay({0}) name(pay 0 to cast) activate name(pay 0 to cast) castcard(normal)?name(put in graveyard) moveto(ownergraveyard)
|
||||||
|
auto={1}{G}:2/2 limit:1
|
||||||
|
text={1}{G}: Basking Rootwalla gets +2/+2 until end of turn. Activate this ability only once each turn. -- Madness {0} (If you discard this card, you may cast it for its madness cost instead of putting it into your graveyard.)
|
||||||
|
mana={G}
|
||||||
|
type=Creature
|
||||||
|
subtype=Lizard
|
||||||
|
power=1
|
||||||
|
toughness=1
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
name=Big Game Hunter
|
||||||
|
abilities=madness
|
||||||
|
autoexile=restriction{discarded} pay({B}) name(pay B to cast) activate name(pay B to cast) castcard(normal)?name(put in graveyard) moveto(ownergraveyard)
|
||||||
|
auto=bury target(creature[power>=4])
|
||||||
|
text=When Big Game Hunter enters the battlefield, destroy target creature with power 4 or greater. It can't be regenerated. -- Madness {B} (If you discard this card, you may cast it for its madness cost instead of putting it into your graveyard.)
|
||||||
|
mana={1}{B}{B}
|
||||||
|
type=Creature
|
||||||
|
subtype=Human Rebel Assassin
|
||||||
|
power=1
|
||||||
|
toughness=1
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
name=Call to the Netherworld
|
||||||
|
abilities=madness
|
||||||
|
autoexile=restriction{discarded} pay({0}) name(pay 0 to cast) activate name(pay 0 to cast) castcard(normal)?name(put in graveyard) moveto(ownergraveyard)
|
||||||
|
target=creature[black]|myGraveyard
|
||||||
|
auto=moveTo(myHand)
|
||||||
|
text=Return target black creature card from your graveyard to your hand. -- Madness {0} (If you discard this card, you may cast it for its madness cost instead of putting it into your graveyard.)
|
||||||
|
mana={B}
|
||||||
|
type=Sorcery
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
name=Cemetery Puca
|
||||||
|
text=Whenever a creature is put into a graveyard from the battlefield, you may pay {1}. If you do, Cemetery Puca becomes a copy of that creature and gains this ability.
|
||||||
|
auto=@movedto(creature|graveyard) from(battlefield):all(trigger[from]) pay[[{1}]] copy
|
||||||
|
mana={1}{UB}{UB}
|
||||||
|
type=Creature
|
||||||
|
subtype=Shapeshifter
|
||||||
|
power=1
|
||||||
|
toughness=2
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
name=Cinder Seer
|
name=Cinder Seer
|
||||||
auto={2}{r}{t}:target(creature,Player) damage:type:*[red]:myhand
|
auto={2}{r}{t}:target(creature,Player) damage:type:*[red]:myhand
|
||||||
text={2}{R}, {T}: Reveal any number of red cards in your hand. Cinder Seer deals X damage to target creature or player, where X is the number of cards revealed this way.
|
text={2}{R}, {T}: Reveal any number of red cards in your hand. Cinder Seer deals X damage to target creature or player, where X is the number of cards revealed this way.
|
||||||
@@ -44,6 +99,59 @@ mana={1}{B}{G}
|
|||||||
type=Instant
|
type=Instant
|
||||||
[/card]
|
[/card]
|
||||||
[card]
|
[card]
|
||||||
|
name=Cryptoplasm
|
||||||
|
auto=@each my upkeep:may copy target(other creature|battlefield)
|
||||||
|
text=At the beginning of your upkeep, you may have Cryptoplasm become a copy of another target creature. If you do, Cryptoplasm gains this ability.
|
||||||
|
mana={1}{U}{U}
|
||||||
|
type=Creature
|
||||||
|
subtype=Shapeshifter
|
||||||
|
power=2
|
||||||
|
toughness=2
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
name=Dark Withering
|
||||||
|
abilities=madness
|
||||||
|
autoexile=restriction{discarded} pay({B}) name(pay B to cast) activate name(pay B to cast) castcard(normal)?name(put in graveyard) moveto(ownergraveyard)
|
||||||
|
target=creature[-black]
|
||||||
|
auto=destroy
|
||||||
|
text=Destroy target nonblack creature. -- Madness {B} (If you discard this card, you may cast it for its madness cost instead of putting it into your graveyard.)
|
||||||
|
mana={4}{B}{B}
|
||||||
|
type=Instant
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
name=Dimir Doppelganger
|
||||||
|
auto={1}{U}{B}:target(creature|graveyard) moveto(exile) and!(copy)!
|
||||||
|
text={1}{U}{B}: Exile target creature card from a graveyard. Dimir Doppelganger becomes a copy of that card and gains this ability.
|
||||||
|
mana={1}{U}{B}
|
||||||
|
type=Creature
|
||||||
|
subtype=Shapeshifter
|
||||||
|
power=0
|
||||||
|
toughness=2
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
name=Distortion Strike
|
||||||
|
target=creature
|
||||||
|
auto=1/0
|
||||||
|
auto=unblockable
|
||||||
|
auto=if rebound then transforms((,newability[moveto(exile)],newability[phaseaction[my upkeep once checkex] activate may activate castcard(restricted)]))
|
||||||
|
mana={U}
|
||||||
|
type=Sorcery
|
||||||
|
text=Target creature gets +1/+0 until end of turn and is unblockable this turn. Rebound (If you cast this spell from your hand, exile it as it resolves. At the beginning of your next upkeep, you may cast this card from exile without paying its mana cost.)
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
name=Emerge Unscathed
|
||||||
|
target=creature|mybattlefield
|
||||||
|
auto=choice name(green) transforms((,newability[protection from green])) ueot
|
||||||
|
auto=choice name(red) transforms((,newability[protection from red])) ueot
|
||||||
|
auto=choice name(blue) transforms((,newability[protection from blue])) ueot
|
||||||
|
auto=choice name(black) transforms((,newability[protection from black])) ueot
|
||||||
|
auto=choice name(white) transforms((,newability[protection from white])) ueot
|
||||||
|
auto=if rebound then transforms((,newability[moveto(exile)],newability[phaseaction[my upkeep once checkex] activate may activate castcard(restricted)]))
|
||||||
|
mana={W}
|
||||||
|
type=Instant
|
||||||
|
text=Target creature you control gains protection from the color of your choice until end of turn. Rebound (If you cast this spell from your hand, exile it as it resolves. At the beginning of your next upkeep, you may cast this card from exile without paying its mana cost.)
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
name=Feral Hydra
|
name=Feral Hydra
|
||||||
type=Creature
|
type=Creature
|
||||||
subtype=Hydra Beast
|
subtype=Hydra Beast
|
||||||
@@ -56,6 +164,26 @@ auto={3}:counter(1/1)
|
|||||||
#Not all player can use ability
|
#Not all player can use ability
|
||||||
[/card]
|
[/card]
|
||||||
[card]
|
[card]
|
||||||
|
name=Fiery Temper
|
||||||
|
abilities=madness
|
||||||
|
autoexile=restriction{discarded} pay({R}) name(pay R to cast) activate name(pay R to cast) castcard(normal)?name(put in graveyard) moveto(ownergraveyard)
|
||||||
|
target=creature,player
|
||||||
|
auto=damage:3
|
||||||
|
text=Fiery Temper deals 3 damage to target creature or player. -- Madness {R} (If you discard this card, you may cast it for its madness cost instead of putting it into your graveyard.)
|
||||||
|
mana={1}{R}{R}
|
||||||
|
type=Instant
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
name=Frantic Purification
|
||||||
|
abilities=madness
|
||||||
|
autoexile=restriction{discarded} pay({W}) name(pay W to cast) activate name(pay W to cast) castcard(normal)?name(put in graveyard) moveto(ownergraveyard)
|
||||||
|
target=enchantment
|
||||||
|
auto=destroy
|
||||||
|
text=Destroy target enchantment. -- Madness {W} (If you discard this card, you may cast it for its madness cost instead of putting it into your graveyard.)
|
||||||
|
mana={2}{W}
|
||||||
|
type=Instant
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
name=Ghastly Remains
|
name=Ghastly Remains
|
||||||
auto=foreach(zombie|myhand) counter(1/1,1)
|
auto=foreach(zombie|myhand) counter(1/1,1)
|
||||||
autograveyard={B}{B}{B}:moveTo(myhand) myUpkeepOnly
|
autograveyard={B}{B}{B}:moveTo(myhand) myUpkeepOnly
|
||||||
@@ -77,6 +205,18 @@ power=4
|
|||||||
toughness=4
|
toughness=4
|
||||||
[/card]
|
[/card]
|
||||||
[card]
|
[card]
|
||||||
|
name=Gorgon Recluse
|
||||||
|
abilities=madness
|
||||||
|
autoexile=restriction{discarded} pay({B}{B}) name(pay BB to cast) activate name(pay BB to cast) castcard(normal)?name(put in graveyard) moveto(ownergraveyard)
|
||||||
|
auto=@combat(blocked,blocking) source(this) from(creature):all(trigger[from]) phaseaction[combatends once] destroy
|
||||||
|
text=Whenever Gorgon Recluse blocks or becomes blocked by a nonblack creature, destroy that creature at end of combat. -- Madness {B}{B} (If you discard this card, you may cast it for its madness cost instead of putting it into your graveyard.)
|
||||||
|
mana={3}{B}{B}
|
||||||
|
type=Creature
|
||||||
|
subtype=Gorgon
|
||||||
|
power=2
|
||||||
|
toughness=4
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
name=Govern the Guildless
|
name=Govern the Guildless
|
||||||
target=creature[-multicolor]
|
target=creature[-multicolor]
|
||||||
auto=moveto(mybattlefield)
|
auto=moveto(mybattlefield)
|
||||||
@@ -86,15 +226,15 @@ mana={5}{U}
|
|||||||
type=Sorcery
|
type=Sorcery
|
||||||
[/card]
|
[/card]
|
||||||
[card]
|
[card]
|
||||||
name=Gravecrawler
|
name=Ichor Slick
|
||||||
abilities=cantblock
|
abilities=madness
|
||||||
autograveyard=aslongas(zombie|myBattlefield) {B}:name(cast from graveyard) activate name(cast from graveyard) castcard(normal) assorcery
|
autoexile=restriction{discarded} pay({3}{B}) name(pay 3B to cast) activate name(pay 3B to cast) castcard(normal)?name(put in graveyard) moveto(ownergraveyard)
|
||||||
text=Gravecrawler can't block. -- You may cast Gravecrawler from your graveyard as long as you control a Zombie.
|
target=creature
|
||||||
mana={B}
|
auto=-3/-3
|
||||||
type=Creature
|
autohand=__CYCLING__({2})
|
||||||
subtype=Zombie
|
text=Target creature gets -3/-3 until end of turn. -- Cycling {2} ({2}, Discard this card: Draw a card.) -- Madness {3}{B} (If you discard this card, you may cast it for its madness cost instead of putting it into your graveyard.)
|
||||||
power=2
|
mana={2}{B}
|
||||||
toughness=1
|
type=Sorcery
|
||||||
[/card]
|
[/card]
|
||||||
[card]
|
[card]
|
||||||
name=Ivy Seer
|
name=Ivy Seer
|
||||||
@@ -160,6 +300,23 @@ power=1
|
|||||||
toughness=1
|
toughness=1
|
||||||
[/card]
|
[/card]
|
||||||
[card]
|
[card]
|
||||||
|
name=Nomads' Assembly
|
||||||
|
auto=token(Kor Soldier,Creature Kor Soldier,1/1,white)*type:creature:mybattlefield
|
||||||
|
auto=if rebound then transforms((,newability[moveto(exile)],newability[phaseaction[my upkeep once checkex] activate may activate castcard(restricted)]))
|
||||||
|
mana={4}{W}{W}
|
||||||
|
type=Sorcery
|
||||||
|
text=Put a 1/1 white Kor Soldier creature token onto the battlefield for each creature you control. Rebound (If you cast this spell from your hand, exile it as it resolves. At the beginning of your next upkeep, you may cast this card from exile without paying its mana cost.)
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
name=Obsessive Search
|
||||||
|
abilities=madness
|
||||||
|
autoexile=restriction{discarded} pay({U}) name(pay U to cast) activate name(pay U to cast) castcard(normal)?name(put in graveyard) moveto(ownergraveyard)
|
||||||
|
auto=draw:1 controller
|
||||||
|
text=Draw a card. -- Madness {U} (If you discard this card, you may cast it for its madness cost instead of putting it into your graveyard.)
|
||||||
|
mana={U}
|
||||||
|
type=Instant
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
name=Ogre Marauder
|
name=Ogre Marauder
|
||||||
text=Whenever Ogre Marauder attacks, it gains "Ogre Marauder can't be blocked" until end of turn unless defending player sacrifices a creature.
|
text=Whenever Ogre Marauder attacks, it gains "Ogre Marauder can't be blocked" until end of turn unless defending player sacrifices a creature.
|
||||||
auto=@combat(attacking) source(this):ability$!name(choose one) if type(creature|mybattlefield)~morethan~0 then choice sacrifice notatarget(creature|mybattlefield) _ choice all(mystored) unblockable ueot!$ opponent
|
auto=@combat(attacking) source(this):ability$!name(choose one) if type(creature|mybattlefield)~morethan~0 then choice sacrifice notatarget(creature|mybattlefield) _ choice all(mystored) unblockable ueot!$ opponent
|
||||||
@@ -170,6 +327,24 @@ power=3
|
|||||||
toughness=1
|
toughness=1
|
||||||
[/card]
|
[/card]
|
||||||
[card]
|
[card]
|
||||||
|
name=Prey's Vengeance
|
||||||
|
target=creature
|
||||||
|
auto=2/2
|
||||||
|
auto=if rebound then transforms((,newability[moveto(exile)],newability[phaseaction[my upkeep once checkex] activate may activate castcard(restricted)]))
|
||||||
|
mana={G}
|
||||||
|
type=Instant
|
||||||
|
text=Target creature gets +2/+2 until end of turn. Rebound (If you cast this spell from your hand, exile it as it resolves. At the beginning of your next upkeep, you may cast this card from exile without paying its mana cost.)
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
name=Psychotic Haze
|
||||||
|
abilities=madness
|
||||||
|
autoexile=restriction{discarded} pay({1}{B}) name(pay 1B to cast) activate name(pay 1B to cast) castcard(normal)?name(put in graveyard) moveto(ownergraveyard)
|
||||||
|
auto=damage:1 all(creature,player)
|
||||||
|
text=Psychotic Haze deals 1 damage to each creature and each player. -- Madness {1}{B} (If you discard this card, you may cast it for its madness cost instead of putting it into your graveyard.)
|
||||||
|
mana={2}{B}{B}
|
||||||
|
type=Instant
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
name=Rakdos Augermage
|
name=Rakdos Augermage
|
||||||
abilities=first strike
|
abilities=first strike
|
||||||
auto={T}:name(target opponent) target(opponent) donothing && all(this) transforms((,newability[ability$!name(discard) reject notatarget(*|opponenthand)!$ targetedplayer && ability$!name(discard) reject notatarget(*|opponenthand)!$ controller])) assorcery
|
auto={T}:name(target opponent) target(opponent) donothing && all(this) transforms((,newability[ability$!name(discard) reject notatarget(*|opponenthand)!$ targetedplayer && ability$!name(discard) reject notatarget(*|opponenthand)!$ controller])) assorcery
|
||||||
@@ -189,6 +364,26 @@ mana={X}{X}{U}
|
|||||||
type=Sorcery
|
type=Sorcery
|
||||||
[/card]
|
[/card]
|
||||||
[card]
|
[card]
|
||||||
|
name=Reckless Wurm
|
||||||
|
abilities=trample,madness
|
||||||
|
autoexile=restriction{discarded} pay({2}{R}) name(pay 2R to cast) activate name(pay 2R to cast) castcard(normal)?name(put in graveyard) moveto(ownergraveyard)
|
||||||
|
text=Trample -- Madness {2}{R} (If you discard this card, you may cast it for its madness cost instead of putting it into your graveyard.)
|
||||||
|
mana={3}{R}{R}
|
||||||
|
type=Creature
|
||||||
|
subtype=Wurm
|
||||||
|
power=4
|
||||||
|
toughness=4
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
name=Recurring Insight
|
||||||
|
target=opponent
|
||||||
|
auto=draw:type:*:targetedpersonshand controller
|
||||||
|
auto=if rebound then transforms((,newability[moveto(exile)],newability[phaseaction[my upkeep once checkex] activate may activate castcard(restricted)]))
|
||||||
|
mana={4}{U}{U}
|
||||||
|
type=Sorcery
|
||||||
|
text=Draw cards equal to the number of cards in target opponent's hand. Rebound (If you cast this spell from your hand, exile it as it resolves. At the beginning of your next upkeep, you may cast this card from exile without paying its mana cost.)
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
name=Sacellum Godspeaker
|
name=Sacellum Godspeaker
|
||||||
auto={T}:foreach(creaure[power>4]|myhand) add{G}
|
auto={T}:foreach(creaure[power>4]|myhand) add{G}
|
||||||
text={T}: Reveal any number of creature cards with power 5 or greater from your hand. Add {G} to your mana pool for each card revealed this way.
|
text={T}: Reveal any number of creature cards with power 5 or greater from your hand. Add {G} to your mana pool for each card revealed this way.
|
||||||
@@ -247,6 +442,83 @@ mana={G}{W}
|
|||||||
type=Instant
|
type=Instant
|
||||||
[/card]
|
[/card]
|
||||||
[card]
|
[card]
|
||||||
|
name=Staggershock
|
||||||
|
target=creature,player
|
||||||
|
auto=damage:2
|
||||||
|
auto=if rebound then transforms((,newability[moveto(exile)],newability[phaseaction[my upkeep once checkex] activate may activate castcard(restricted)]))
|
||||||
|
mana={2}{R}
|
||||||
|
type=Instant
|
||||||
|
text=Staggershock deals 2 damage to target creature or player. Rebound (If you cast this spell from your hand, exile it as it resolves. At the beginning of your next upkeep, you may cast this card from exile without paying its mana cost.)
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
name=Strength of Isolation
|
||||||
|
abilities=madness
|
||||||
|
autoexile=restriction{discarded} pay({W}) name(pay W to cast) activate name(pay W to cast) castcard(normal)?name(put in graveyard) moveto(ownergraveyard)
|
||||||
|
target=creature
|
||||||
|
auto=1/2
|
||||||
|
auto=protection from black
|
||||||
|
text=Enchant creature -- Enchanted creature gets +1/+2 and has protection from black. -- Madness {W} (If you discard this card, you may cast it for its madness cost instead of putting it into your graveyard.)
|
||||||
|
mana={1}{W}
|
||||||
|
type=Enchantment
|
||||||
|
subtype=Aura
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
name=Strength of Lunacy
|
||||||
|
abilities=madness
|
||||||
|
autoexile=restriction{discarded} pay({B}) name(pay B to cast) activate name(pay B to cast) castcard(normal)?name(put in graveyard) moveto(ownergraveyard)
|
||||||
|
target=creature
|
||||||
|
auto=2/1
|
||||||
|
auto=protection from white
|
||||||
|
text=Enchant creature -- Enchanted creature gets +2/+1 and has protection from white. -- Madness {B} (If you discard this card, you may cast it for its madness cost instead of putting it into your graveyard.)
|
||||||
|
mana={1}{B}
|
||||||
|
type=Enchantment
|
||||||
|
subtype=Aura
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
name=Surreal Memoir
|
||||||
|
auto=moverandom(instant) from(mygraveyard) to(myhand)
|
||||||
|
auto=if rebound then transforms((,newability[moveto(exile)],newability[phaseaction[my upkeep once checkex] activate may activate castcard(restricted)]))
|
||||||
|
mana={3}{R}
|
||||||
|
type=Sorcery
|
||||||
|
text=Return an instant card at random from your graveyard to your hand. Rebound (If you cast this spell from your hand, exile it as it resolves. At the beginning of your next upkeep, you may cast this card from exile without paying its mana cost.)
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
name=Survival Cache
|
||||||
|
auto=life:2 controller
|
||||||
|
auto=if compare(lifetotal)~morethan~compare(opponentlifetotal) then draw:1 controller
|
||||||
|
auto=if rebound then transforms((,newability[moveto(exile)],newability[phaseaction[my upkeep once checkex] activate may activate castcard(restricted)]))
|
||||||
|
mana={2}{W}
|
||||||
|
type=Sorcery
|
||||||
|
text=You gain 2 life. Then if you have more life than an opponent, draw a card. Rebound (If you cast this spell from your hand, exile it as it resolves. At the beginning of your next upkeep, you may cast this card from exile without paying its mana cost.)
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
name=Thespian's Stage
|
||||||
|
auto={T}:Add{1}
|
||||||
|
auto={2}{T}:copy target(land|battlefield)
|
||||||
|
text={T}: Add {1} to your mana pool. -- {2}, {T}: Thespian's Stage becomes a copy of target land and gains this ability.
|
||||||
|
type=Land
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
name=Unstable Shapeshifter
|
||||||
|
auto=@movedto(other creature|battlefield):all(trigger[from]) copy
|
||||||
|
text=Whenever another creature enters the battlefield, Unstable Shapeshifter becomes a copy of that creature and gains this ability.
|
||||||
|
mana={3}{U}
|
||||||
|
type=Creature
|
||||||
|
subtype=Shapeshifter
|
||||||
|
power=0
|
||||||
|
toughness=1
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
|
name=Virulent Swipe
|
||||||
|
target=creature
|
||||||
|
auto=2/0
|
||||||
|
auto=deathtouch
|
||||||
|
auto=if rebound then transforms((,newability[moveto(exile)],newability[phaseaction[my upkeep once checkex] activate may activate castcard(restricted)]))
|
||||||
|
mana={B}
|
||||||
|
type=Instant
|
||||||
|
text=Target creature gets +2/+0 and gains deathtouch until end of turn. Rebound (If you cast this spell from your hand, exile it as it resolves. At the beginning of your next upkeep, you may cast this card from exile without paying its mana cost.)
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
name=Zombie Brute
|
name=Zombie Brute
|
||||||
abilities=trample
|
abilities=trample
|
||||||
auto=foreach(zombie|myhand) counter(1/1,1)
|
auto=foreach(zombie|myhand) counter(1/1,1)
|
||||||
|
|||||||
46
projects/mtg/bin/Res/test/CDA#1.txt
Normal file
@@ -0,0 +1,46 @@
|
|||||||
|
#Testing CDA Tarmogoyf vs Godhead of Awe
|
||||||
|
#Godhead of Awe makes other creatures 1/1 on layer 7b
|
||||||
|
#Tarmogoyf's CDA ability is on layer 7a so it will be overriden
|
||||||
|
#by Godhead of Awe. Giant Growth's ability is on layer 7c so
|
||||||
|
#the +3/+3 bonus is intact. :)
|
||||||
|
[INIT]
|
||||||
|
FIRSTMAIN
|
||||||
|
[PLAYER1]
|
||||||
|
inplay:Concordant Crossroads, Godhead of Awe, Forest
|
||||||
|
hand:Tarmogoyf, Giant Growth
|
||||||
|
graveyard:mountain, lightning bolt, grizzly bear
|
||||||
|
manapool:{1}{G}
|
||||||
|
[PLAYER2]
|
||||||
|
[DO]
|
||||||
|
Tarmogoyf
|
||||||
|
next
|
||||||
|
next
|
||||||
|
Tarmogoyf
|
||||||
|
next
|
||||||
|
eot
|
||||||
|
eot
|
||||||
|
#untap
|
||||||
|
next
|
||||||
|
#upkeep
|
||||||
|
next
|
||||||
|
#draw
|
||||||
|
next
|
||||||
|
#main1
|
||||||
|
Forest
|
||||||
|
Giant Growth
|
||||||
|
Tarmogoyf
|
||||||
|
next
|
||||||
|
#combat begin
|
||||||
|
next
|
||||||
|
#attackers
|
||||||
|
Tarmogoyf
|
||||||
|
eot
|
||||||
|
[ASSERT]
|
||||||
|
UNTAP
|
||||||
|
[PLAYER1]
|
||||||
|
inplay:Concordant Crossroads, Godhead of Awe, Tarmogoyf, Forest
|
||||||
|
graveyard:mountain, lightning bolt, grizzly bear, Giant Growth
|
||||||
|
manapool:{0}
|
||||||
|
[PLAYER2]
|
||||||
|
life:15
|
||||||
|
[END]
|
||||||
38
projects/mtg/bin/Res/test/CDA#2.txt
Normal file
@@ -0,0 +1,38 @@
|
|||||||
|
#Testing CDA Turn to Frog vs Krosan Cloudscraper
|
||||||
|
#Krosan Cloudscraper that is turned into frog with 1 damage
|
||||||
|
#from Lightning Dart must die because when you change
|
||||||
|
#the power and toughness into 1/1, the 1 point of damage
|
||||||
|
#is taken into account...
|
||||||
|
[INIT]
|
||||||
|
FIRSTMAIN
|
||||||
|
[PLAYER1]
|
||||||
|
inplay:Krosan Cloudscraper
|
||||||
|
[PLAYER2]
|
||||||
|
inplay:Mountain, Plains, Swamp, Island
|
||||||
|
hand:Lightning Dart, Turn to Frog
|
||||||
|
[DO]
|
||||||
|
next
|
||||||
|
next
|
||||||
|
Krosan Cloudscraper
|
||||||
|
next
|
||||||
|
no
|
||||||
|
yes
|
||||||
|
Mountain
|
||||||
|
Plains
|
||||||
|
Lightning Dart
|
||||||
|
Krosan Cloudscraper
|
||||||
|
Swamp
|
||||||
|
Island
|
||||||
|
Turn to Frog
|
||||||
|
Krosan Cloudscraper
|
||||||
|
endinterruption
|
||||||
|
eot
|
||||||
|
[ASSERT]
|
||||||
|
UNTAP
|
||||||
|
[PLAYER1]
|
||||||
|
graveyard:Krosan Cloudscraper
|
||||||
|
[PLAYER2]
|
||||||
|
inplay:Mountain, Plains, Swamp, Island
|
||||||
|
graveyard:Lightning Dart, Turn to Frog
|
||||||
|
life:20
|
||||||
|
[END]
|
||||||
28
projects/mtg/bin/Res/test/ExchangeController.txt
Normal file
@@ -0,0 +1,28 @@
|
|||||||
|
#Hypnotic Specter vs Control Magic
|
||||||
|
#The opponent of the current controller of Hypnotic Specter
|
||||||
|
#Must discard at random when combat damage is dealt...
|
||||||
|
[INIT]
|
||||||
|
FIRSTMAIN
|
||||||
|
[PLAYER1]
|
||||||
|
hand:Control Magic
|
||||||
|
inplay:Concordant Crossroads
|
||||||
|
manapool:{B}{B}{U}{U}
|
||||||
|
[PLAYER2]
|
||||||
|
inplay:Hypnotic Specter
|
||||||
|
hand:Forest
|
||||||
|
[DO]
|
||||||
|
Control Magic
|
||||||
|
Hypnotic Specter
|
||||||
|
next
|
||||||
|
next
|
||||||
|
Hypnotic Specter
|
||||||
|
next
|
||||||
|
eot
|
||||||
|
[ASSERT]
|
||||||
|
UNTAP
|
||||||
|
[PLAYER1]
|
||||||
|
inplay:Control Magic, Hypnotic Specter, Concordant Crossroads
|
||||||
|
[PLAYER2]
|
||||||
|
graveyard:Forest
|
||||||
|
life:18
|
||||||
|
[END]
|
||||||
28
projects/mtg/bin/Res/test/Gravebane_Zombie.txt
Normal file
@@ -0,0 +1,28 @@
|
|||||||
|
#Testing Gravebane Zombie
|
||||||
|
#after gravebane zombie dies, activate archivist
|
||||||
|
#and you must draw gravebane zombie if its on the top
|
||||||
|
#of your library
|
||||||
|
[INIT]
|
||||||
|
FIRSTMAIN
|
||||||
|
[PLAYER1]
|
||||||
|
inplay:Gravebane Zombie, Archivist
|
||||||
|
hand:Wrecking Ball
|
||||||
|
library:mountain, plains, swamp
|
||||||
|
manapool:{2}{R}{B}
|
||||||
|
[PLAYER2]
|
||||||
|
[DO]
|
||||||
|
Wrecking Ball
|
||||||
|
Gravebane Zombie
|
||||||
|
Archivist
|
||||||
|
[ASSERT]
|
||||||
|
FIRSTMAIN
|
||||||
|
[PLAYER1]
|
||||||
|
inplay:Archivist
|
||||||
|
library:mountain, plains, swamp
|
||||||
|
hand:Gravebane Zombie
|
||||||
|
graveyard:Wrecking Ball
|
||||||
|
manapool:{0}
|
||||||
|
life:20
|
||||||
|
[PLAYER2]
|
||||||
|
life:20
|
||||||
|
[END]
|
||||||
29
projects/mtg/bin/Res/test/PTInstant.txt
Normal file
@@ -0,0 +1,29 @@
|
|||||||
|
# BUG..cast tundra wolves with soul warden in play, kill soul warden with last gasp, you still get a life because the spell resolved
|
||||||
|
# first before Soul Warden goes to graveyard.
|
||||||
|
[INIT]
|
||||||
|
FIRSTMAIN
|
||||||
|
[PLAYER1]
|
||||||
|
hand:Tundra Wolves
|
||||||
|
manapool:{W}
|
||||||
|
inplay:Soul Warden
|
||||||
|
life:20
|
||||||
|
[PLAYER2]
|
||||||
|
manapool:{B}{B}
|
||||||
|
hand:Last Gasp
|
||||||
|
[DO]
|
||||||
|
Tundra Wolves
|
||||||
|
no
|
||||||
|
yes
|
||||||
|
Last Gasp
|
||||||
|
Soul Warden
|
||||||
|
endinterruption
|
||||||
|
[ASSERT]
|
||||||
|
FIRSTMAIN
|
||||||
|
[PLAYER1]
|
||||||
|
graveyard:Soul Warden
|
||||||
|
inplay:Tundra Wolves
|
||||||
|
life:20
|
||||||
|
[PLAYER2]
|
||||||
|
graveyard:Last Gasp
|
||||||
|
life:20
|
||||||
|
[END]
|
||||||
47
projects/mtg/bin/Res/test/PT_M15_errata.txt
Normal file
@@ -0,0 +1,47 @@
|
|||||||
|
#Testing Turn to Frog to Serra Angel with Crusade in play.
|
||||||
|
#M15 uses base power template, so setting the power/toughness.
|
||||||
|
#only affects the base or original power/toughness.
|
||||||
|
#Turn to Frog makes Serra Angel a 1/1 blue frog... latest pull
|
||||||
|
#request from GIT fixes the issue of Serra Angel dying
|
||||||
|
#from crusade because of invalid reduction of P/T :)
|
||||||
|
#
|
||||||
|
#First attack is 1/1 blue Serra Angel unaffected by Crusade
|
||||||
|
#Second attack is 5/5 Serra Angel affected by Crusade :)
|
||||||
|
[INIT]
|
||||||
|
FIRSTMAIN
|
||||||
|
[PLAYER1]
|
||||||
|
inplay:Serra Angel, Crusade
|
||||||
|
hand:Turn to Frog
|
||||||
|
manapool:{1}{U}
|
||||||
|
[PLAYER2]
|
||||||
|
[DO]
|
||||||
|
Turn to Frog
|
||||||
|
Serra Angel
|
||||||
|
next
|
||||||
|
next
|
||||||
|
Serra Angel
|
||||||
|
next
|
||||||
|
eot
|
||||||
|
eot
|
||||||
|
#untap
|
||||||
|
next
|
||||||
|
#upkeep
|
||||||
|
next
|
||||||
|
#draw
|
||||||
|
next
|
||||||
|
#main1
|
||||||
|
next
|
||||||
|
#combat begin
|
||||||
|
next
|
||||||
|
#attackers
|
||||||
|
Serra Angel
|
||||||
|
eot
|
||||||
|
[ASSERT]
|
||||||
|
UNTAP
|
||||||
|
[PLAYER1]
|
||||||
|
inplay:Serra Angel, Crusade
|
||||||
|
graveyard:Turn to Frog
|
||||||
|
manapool:{0}
|
||||||
|
[PLAYER2]
|
||||||
|
life:14
|
||||||
|
[END]
|
||||||
41
projects/mtg/bin/Res/test/PT_M15_errata2.txt
Normal file
@@ -0,0 +1,41 @@
|
|||||||
|
#Testing Turn to Frog to Serra Angel with Glorious Anthem in play.
|
||||||
|
#First attack is 2/2 blue Serra Angel affected by Glorious Anthem
|
||||||
|
#Second attack is 5/5 Serra Angel affected by Glorious Anthem :)
|
||||||
|
[INIT]
|
||||||
|
FIRSTMAIN
|
||||||
|
[PLAYER1]
|
||||||
|
inplay:Serra Angel, Glorious Anthem
|
||||||
|
hand:Turn to Frog
|
||||||
|
manapool:{1}{U}
|
||||||
|
[PLAYER2]
|
||||||
|
[DO]
|
||||||
|
Turn to Frog
|
||||||
|
Serra Angel
|
||||||
|
next
|
||||||
|
next
|
||||||
|
Serra Angel
|
||||||
|
next
|
||||||
|
eot
|
||||||
|
eot
|
||||||
|
#untap
|
||||||
|
next
|
||||||
|
#upkeep
|
||||||
|
next
|
||||||
|
#draw
|
||||||
|
next
|
||||||
|
#main1
|
||||||
|
next
|
||||||
|
#combat begin
|
||||||
|
next
|
||||||
|
#attackers
|
||||||
|
Serra Angel
|
||||||
|
eot
|
||||||
|
[ASSERT]
|
||||||
|
UNTAP
|
||||||
|
[PLAYER1]
|
||||||
|
inplay:Serra Angel, Glorious Anthem
|
||||||
|
graveyard:Turn to Frog
|
||||||
|
manapool:{0}
|
||||||
|
[PLAYER2]
|
||||||
|
life:13
|
||||||
|
[END]
|
||||||
36
projects/mtg/bin/Res/test/PTswitch.txt
Normal file
@@ -0,0 +1,36 @@
|
|||||||
|
#Testing PT Switch. Windreaver and Screaming Fury... Layer 7e
|
||||||
|
#A 1/3 creature is given +0/+1 by an effect. Then another effect switches the
|
||||||
|
#creature’s power and toughness. Its new power and toughness is 4/1. A new effect gives
|
||||||
|
#the creature +5/+0. Its “unswitched” power and toughness would be 6/4, so its actual
|
||||||
|
#power and toughness is 4/6.
|
||||||
|
[INIT]
|
||||||
|
FIRSTMAIN
|
||||||
|
[PLAYER1]
|
||||||
|
hand:Screaming Fury
|
||||||
|
inplay:Windreaver, Mountain, Plains, Swamp, Island, Forest
|
||||||
|
[PLAYER2]
|
||||||
|
[DO]
|
||||||
|
Plains
|
||||||
|
Windreaver
|
||||||
|
choice 1
|
||||||
|
Island
|
||||||
|
Windreaver
|
||||||
|
choice 0
|
||||||
|
Mountain
|
||||||
|
Forest
|
||||||
|
Swamp
|
||||||
|
Screaming Fury
|
||||||
|
Windreaver
|
||||||
|
next
|
||||||
|
next
|
||||||
|
Windreaver
|
||||||
|
next
|
||||||
|
eot
|
||||||
|
[ASSERT]
|
||||||
|
UNTAP
|
||||||
|
[PLAYER1]
|
||||||
|
inplay:Windreaver, Mountain, Plains, Swamp, Island, Forest
|
||||||
|
graveyard:Screaming Fury
|
||||||
|
[PLAYER2]
|
||||||
|
life:16
|
||||||
|
[END]
|
||||||
@@ -16,6 +16,9 @@ choice 0
|
|||||||
choice 0
|
choice 0
|
||||||
choice 0
|
choice 0
|
||||||
180595
|
180595
|
||||||
|
choice 0
|
||||||
|
180595
|
||||||
|
choice 1
|
||||||
eot
|
eot
|
||||||
[ASSERT]
|
[ASSERT]
|
||||||
untap
|
untap
|
||||||
|
|||||||
@@ -210,6 +210,8 @@ Call_to_Heel_1.txt
|
|||||||
Call_to_Heel_2.txt
|
Call_to_Heel_2.txt
|
||||||
castle.txt
|
castle.txt
|
||||||
cathodion.txt
|
cathodion.txt
|
||||||
|
CDA#1.txt
|
||||||
|
CDA#2.txt
|
||||||
celestial_mantle.txt
|
celestial_mantle.txt
|
||||||
celestial_purge.txt
|
celestial_purge.txt
|
||||||
celestial_sword.txt
|
celestial_sword.txt
|
||||||
@@ -309,10 +311,12 @@ evil_presence3.txt
|
|||||||
evil_presence_i647.txt
|
evil_presence_i647.txt
|
||||||
evil_presence_i647_2.txt
|
evil_presence_i647_2.txt
|
||||||
exaltedsourcekilled.txt
|
exaltedsourcekilled.txt
|
||||||
|
ExchangeController.txt
|
||||||
executioners_swing.txt
|
executioners_swing.txt
|
||||||
executioners_swing2.txt
|
executioners_swing2.txt
|
||||||
executioners_swing3.txt
|
executioners_swing3.txt
|
||||||
explore.txt
|
explore.txt
|
||||||
|
exquisite_blood_i953.txt
|
||||||
Faceless_Butcher.txt
|
Faceless_Butcher.txt
|
||||||
fading.txt
|
fading.txt
|
||||||
fangren_pathcutter.txt
|
fangren_pathcutter.txt
|
||||||
@@ -345,6 +349,7 @@ foratog.txt
|
|||||||
force_of_nature.txt
|
force_of_nature.txt
|
||||||
force_of_nature2.txt
|
force_of_nature2.txt
|
||||||
force_of_nature3.txt
|
force_of_nature3.txt
|
||||||
|
formidable.txt
|
||||||
fountain_of_youth.txt
|
fountain_of_youth.txt
|
||||||
Frogmite.txt
|
Frogmite.txt
|
||||||
fungus_sliver.txt
|
fungus_sliver.txt
|
||||||
@@ -372,6 +377,7 @@ goblin_lackey4.txt
|
|||||||
goblin_offensive.txt
|
goblin_offensive.txt
|
||||||
goblin_razerunners.txt
|
goblin_razerunners.txt
|
||||||
golgari_germination_i153.txt
|
golgari_germination_i153.txt
|
||||||
|
Gravebane_Zombie.txt
|
||||||
gravedigger.txt
|
gravedigger.txt
|
||||||
gravity_well.txt
|
gravity_well.txt
|
||||||
gravity_well2.txt
|
gravity_well2.txt
|
||||||
@@ -438,6 +444,7 @@ kudzu_i168.txt
|
|||||||
Lethargy_Trap.txt
|
Lethargy_Trap.txt
|
||||||
Lethargy_Trap2.txt
|
Lethargy_Trap2.txt
|
||||||
leveler.txt
|
leveler.txt
|
||||||
|
leyline_of_the_void.txt
|
||||||
lhurgoyf.txt
|
lhurgoyf.txt
|
||||||
liability.txt
|
liability.txt
|
||||||
library_of_alexandria1.txt
|
library_of_alexandria1.txt
|
||||||
@@ -520,6 +527,7 @@ pillory_of_the_sleepless2_i188.txt
|
|||||||
pillory_of_the_sleepless3_i188.txt
|
pillory_of_the_sleepless3_i188.txt
|
||||||
pillory_of_the_sleepless4_i188.txt
|
pillory_of_the_sleepless4_i188.txt
|
||||||
plague_rats.txt
|
plague_rats.txt
|
||||||
|
pledge_protection.txt
|
||||||
plumes_of_peace_i260.txt
|
plumes_of_peace_i260.txt
|
||||||
pouncing_jaguar_i425.txt
|
pouncing_jaguar_i425.txt
|
||||||
power_armor.txt
|
power_armor.txt
|
||||||
@@ -529,6 +537,10 @@ protomatter_powder.txt
|
|||||||
prowess_of_the_fair.txt
|
prowess_of_the_fair.txt
|
||||||
prowess_of_the_fair2.txt
|
prowess_of_the_fair2.txt
|
||||||
prowess_of_the_fair3.txt
|
prowess_of_the_fair3.txt
|
||||||
|
PTInstant.txt
|
||||||
|
PTswitch.txt
|
||||||
|
PT_M15_errata.txt
|
||||||
|
PT_M15_errata2.txt
|
||||||
pygmy_troll.txt
|
pygmy_troll.txt
|
||||||
pyknite_i426.txt
|
pyknite_i426.txt
|
||||||
pyroclasm.txt
|
pyroclasm.txt
|
||||||
@@ -566,6 +578,7 @@ Rending_Vines2.txt
|
|||||||
resounding_roar.txt
|
resounding_roar.txt
|
||||||
resurrection.txt
|
resurrection.txt
|
||||||
resuscitate_i210.txt
|
resuscitate_i210.txt
|
||||||
|
restinpeace.txt
|
||||||
righteous_cause.txt
|
righteous_cause.txt
|
||||||
rise_from_the_grave.txt
|
rise_from_the_grave.txt
|
||||||
river_kelpie2_i335.txt
|
river_kelpie2_i335.txt
|
||||||
@@ -654,6 +667,7 @@ thallid.txt
|
|||||||
the_tabernacle_at_pendrell_vale.txt
|
the_tabernacle_at_pendrell_vale.txt
|
||||||
thelon_of_havenwood.txt
|
thelon_of_havenwood.txt
|
||||||
threaten.txt
|
threaten.txt
|
||||||
|
thraximundar.txt
|
||||||
throne_of_bone.txt
|
throne_of_bone.txt
|
||||||
thunder-thrash_elder.txt
|
thunder-thrash_elder.txt
|
||||||
tidal_warrior_i646.txt
|
tidal_warrior_i646.txt
|
||||||
@@ -661,6 +675,8 @@ tidal_warrior_i649.txt
|
|||||||
tidal_warrior_i652.txt
|
tidal_warrior_i652.txt
|
||||||
Timely_Reinforcements.txt
|
Timely_Reinforcements.txt
|
||||||
titanic_ultimatum.txt
|
titanic_ultimatum.txt
|
||||||
|
tokenizer.txt
|
||||||
|
tokenizer2.txt
|
||||||
torture.txt
|
torture.txt
|
||||||
tranquil_domain.txt
|
tranquil_domain.txt
|
||||||
turn_to_slag.txt
|
turn_to_slag.txt
|
||||||
|
|||||||
@@ -23,6 +23,7 @@ firstmain
|
|||||||
[PLAYER1]
|
[PLAYER1]
|
||||||
inplay:Aegis of the Meek,Steppe Lynx,Savannah Lions,Courier Hawk
|
inplay:Aegis of the Meek,Steppe Lynx,Savannah Lions,Courier Hawk
|
||||||
graveyard:Swords to Plowshares
|
graveyard:Swords to Plowshares
|
||||||
|
exile:Raging Goblin
|
||||||
life:22
|
life:22
|
||||||
[PLAYER2]
|
[PLAYER2]
|
||||||
[END]
|
[END]
|
||||||
|
|||||||
@@ -16,6 +16,7 @@ Angry Mob
|
|||||||
firstmain
|
firstmain
|
||||||
[PLAYER1]
|
[PLAYER1]
|
||||||
graveyard:Swords to Plowshares
|
graveyard:Swords to Plowshares
|
||||||
|
exile:Angry Mob
|
||||||
life:25
|
life:25
|
||||||
[PLAYER2]
|
[PLAYER2]
|
||||||
inplay:1373,1374,1375
|
inplay:1373,1374,1375
|
||||||
|
|||||||
@@ -19,6 +19,7 @@ Angry Mob
|
|||||||
[ASSERT]
|
[ASSERT]
|
||||||
firstmain
|
firstmain
|
||||||
[PLAYER1]
|
[PLAYER1]
|
||||||
|
exile:Angry Mob
|
||||||
graveyard:Swords to Plowshares,Boomerang
|
graveyard:Swords to Plowshares,Boomerang
|
||||||
life:24
|
life:24
|
||||||
[PLAYER2]
|
[PLAYER2]
|
||||||
|
|||||||
@@ -22,6 +22,7 @@ Angry Mob
|
|||||||
[ASSERT]
|
[ASSERT]
|
||||||
firstmain
|
firstmain
|
||||||
[PLAYER1]
|
[PLAYER1]
|
||||||
|
exile:Angry Mob
|
||||||
life:22
|
life:22
|
||||||
[PLAYER2]
|
[PLAYER2]
|
||||||
inplay:1373,1374,1375,Plains
|
inplay:1373,1374,1375,Plains
|
||||||
|
|||||||
@@ -25,6 +25,7 @@ Angry Mob
|
|||||||
[ASSERT]
|
[ASSERT]
|
||||||
firstmain
|
firstmain
|
||||||
[PLAYER1]
|
[PLAYER1]
|
||||||
|
exile:Angry Mob
|
||||||
life:22
|
life:22
|
||||||
[PLAYER2]
|
[PLAYER2]
|
||||||
inplay:1373,1374,1375,Plains
|
inplay:1373,1374,1375,Plains
|
||||||
|
|||||||
@@ -29,6 +29,7 @@ Angry Mob
|
|||||||
[ASSERT]
|
[ASSERT]
|
||||||
firstmain
|
firstmain
|
||||||
[PLAYER1]
|
[PLAYER1]
|
||||||
|
exile:Angry Mob
|
||||||
life:22
|
life:22
|
||||||
[PLAYER2]
|
[PLAYER2]
|
||||||
inplay:1373,1374,Plains
|
inplay:1373,1374,Plains
|
||||||
|
|||||||
@@ -23,6 +23,7 @@ Angry Mob
|
|||||||
[ASSERT]
|
[ASSERT]
|
||||||
firstmain
|
firstmain
|
||||||
[PLAYER1]
|
[PLAYER1]
|
||||||
|
exile:Angry Mob
|
||||||
inplay:Plains
|
inplay:Plains
|
||||||
graveyard:Swords to Plowshares
|
graveyard:Swords to Plowshares
|
||||||
life:25
|
life:25
|
||||||
|
|||||||
@@ -22,6 +22,7 @@ Angry Mob
|
|||||||
firstmain
|
firstmain
|
||||||
[PLAYER1]
|
[PLAYER1]
|
||||||
graveyard:Swords to Plowshares,Annex,Demystify
|
graveyard:Swords to Plowshares,Annex,Demystify
|
||||||
|
exile:Angry Mob
|
||||||
life:25
|
life:25
|
||||||
[PLAYER2]
|
[PLAYER2]
|
||||||
inplay:1373,1374,1375
|
inplay:1373,1374,1375
|
||||||
|
|||||||
@@ -15,4 +15,5 @@ FIRSTMAIN
|
|||||||
graveyard:183055
|
graveyard:183055
|
||||||
manapool:{0}
|
manapool:{0}
|
||||||
[PLAYER2]
|
[PLAYER2]
|
||||||
|
exile:184994
|
||||||
[END]
|
[END]
|
||||||
@@ -28,6 +28,7 @@ graveyard:1194
|
|||||||
manapool:{0}
|
manapool:{0}
|
||||||
life:24
|
life:24
|
||||||
[PLAYER2]
|
[PLAYER2]
|
||||||
|
exile:1366
|
||||||
graveyard:1367
|
graveyard:1367
|
||||||
inplay:1397
|
inplay:1397
|
||||||
manapool:{0}
|
manapool:{0}
|
||||||
|
|||||||
@@ -19,6 +19,7 @@ Grizzly Bears
|
|||||||
[ASSERT]
|
[ASSERT]
|
||||||
combatattackers
|
combatattackers
|
||||||
[PLAYER1]
|
[PLAYER1]
|
||||||
|
exile:Grizzly Bears
|
||||||
inplay:Cranial Plating,Rod of Ruin
|
inplay:Cranial Plating,Rod of Ruin
|
||||||
graveyard:Swords to Plowshares
|
graveyard:Swords to Plowshares
|
||||||
life:24
|
life:24
|
||||||
|
|||||||
@@ -2,6 +2,15 @@
|
|||||||
#DESC: Tests whether Curiosity works correctly
|
#DESC: Tests whether Curiosity works correctly
|
||||||
#DESC: when cast on an opponent's creature
|
#DESC: when cast on an opponent's creature
|
||||||
#DESC: http://code.google.com/p/wagic/issues/detail?id=217
|
#DESC: http://code.google.com/p/wagic/issues/detail?id=217
|
||||||
|
#
|
||||||
|
#revised...10-22-2015...kevlahnota
|
||||||
|
#2/1/2007 You draw one card each time the enchanted creature damages the opponent. This is not one card per point of damage.
|
||||||
|
#2/1/2007 If put on your opponent's creature, you do not draw a card when that creature damages you. The creature has to damage your opponent in order to have this work.
|
||||||
|
#2/1/2007 Drawing a card is optional. If you forget, you can't go back later and do it, even if it is something you normally do.
|
||||||
|
#9/22/2011 "You" refers to the controller of Curiosity, which may be different from the controller of the enchanted creature."An opponent" refers to an opponent of Curiosity's controller.
|
||||||
|
#9/22/2011 Any damage dealt by the enchanted creature to an opponent will cause Curiosity to trigger, not just combat damage.
|
||||||
|
#9/22/2011 Curiosity doesn't trigger if the enchanted creature deals damage to a planeswalker controlled by an opponent.
|
||||||
|
#
|
||||||
[INIT]
|
[INIT]
|
||||||
firstmain
|
firstmain
|
||||||
[PLAYER1]
|
[PLAYER1]
|
||||||
@@ -29,7 +38,7 @@ next
|
|||||||
combatend
|
combatend
|
||||||
[PLAYER1]
|
[PLAYER1]
|
||||||
inplay:Curiosity
|
inplay:Curiosity
|
||||||
hand:Island
|
library:Island
|
||||||
life:14
|
life:14
|
||||||
[PLAYER2]
|
[PLAYER2]
|
||||||
inplay:Craw Wurm
|
inplay:Craw Wurm
|
||||||
|
|||||||
@@ -19,6 +19,7 @@ endinterruption
|
|||||||
[ASSERT]
|
[ASSERT]
|
||||||
FIRSTMAIN
|
FIRSTMAIN
|
||||||
[PLAYER1]
|
[PLAYER1]
|
||||||
|
exile:grizzly bears
|
||||||
graveyard:fists of ironwood
|
graveyard:fists of ironwood
|
||||||
life:22
|
life:22
|
||||||
[PLAYER2]
|
[PLAYER2]
|
||||||
|
|||||||
@@ -17,6 +17,7 @@ endinterruption
|
|||||||
[ASSERT]
|
[ASSERT]
|
||||||
FIRSTMAIN
|
FIRSTMAIN
|
||||||
[PLAYER1]
|
[PLAYER1]
|
||||||
|
exile:bad moon
|
||||||
manapool:{0}
|
manapool:{0}
|
||||||
life:20
|
life:20
|
||||||
[PLAYER2]
|
[PLAYER2]
|
||||||
|
|||||||
33
projects/mtg/bin/Res/test/formidable.txt
Normal file
@@ -0,0 +1,33 @@
|
|||||||
|
#Testing Atarka Beastbreaker,Stampeding Elk Herd -- Formidable
|
||||||
|
#Atarka Beastbreaker will become 6/6, and then attacks along with Stampeding Elk Herd, trample effect will trigger
|
||||||
|
#then p2 will block with Steel Wall, p2 must have 13 life...
|
||||||
|
[INIT]
|
||||||
|
COMBATATTACKERS
|
||||||
|
[PLAYER1]
|
||||||
|
inplay:Atarka Beastbreaker,Krosan Tusker,Stampeding Elk Herd
|
||||||
|
manapool:{4}{G}
|
||||||
|
[PLAYER2]
|
||||||
|
inplay:Steel Wall
|
||||||
|
life:20
|
||||||
|
[DO]
|
||||||
|
Atarka Beastbreaker
|
||||||
|
choice 1
|
||||||
|
Atarka Beastbreaker
|
||||||
|
Stampeding Elk Herd
|
||||||
|
next
|
||||||
|
Steel Wall
|
||||||
|
#blockers
|
||||||
|
next
|
||||||
|
#combatdamage 2
|
||||||
|
next
|
||||||
|
next
|
||||||
|
#endofcombat 2
|
||||||
|
[ASSERT]
|
||||||
|
COMBATEND
|
||||||
|
[PLAYER1]
|
||||||
|
inplay:Atarka Beastbreaker,Krosan Tusker,Stampeding Elk Herd
|
||||||
|
manapool:{0}
|
||||||
|
[PLAYER2]
|
||||||
|
graveyard:Steel Wall
|
||||||
|
life:13
|
||||||
|
[END]
|
||||||
@@ -26,6 +26,7 @@ secondmain
|
|||||||
[PLAYER1]
|
[PLAYER1]
|
||||||
inplay:Plains
|
inplay:Plains
|
||||||
graveyard:Swords to Plowshares
|
graveyard:Swords to Plowshares
|
||||||
|
exile:Frost Giant
|
||||||
life:28
|
life:28
|
||||||
[PLAYER2]
|
[PLAYER2]
|
||||||
graveyard:Suntail Hawk,Scryb Sprites,Raging Goblin
|
graveyard:Suntail Hawk,Scryb Sprites,Raging Goblin
|
||||||
|
|||||||
@@ -18,6 +18,7 @@ Jayemdae Tome
|
|||||||
[ASSERT]
|
[ASSERT]
|
||||||
firstmain
|
firstmain
|
||||||
[PLAYER1]
|
[PLAYER1]
|
||||||
|
exile:Jayemdae Tome
|
||||||
graveyard:Karn's Touch,Swords to Plowshares
|
graveyard:Karn's Touch,Swords to Plowshares
|
||||||
life:24
|
life:24
|
||||||
[PLAYER2]
|
[PLAYER2]
|
||||||
|
|||||||
@@ -11,6 +11,7 @@ leveler
|
|||||||
[ASSERT]
|
[ASSERT]
|
||||||
FIRSTMAIN
|
FIRSTMAIN
|
||||||
[PLAYER1]
|
[PLAYER1]
|
||||||
|
exile:swamp,mountain
|
||||||
inplay:leveler
|
inplay:leveler
|
||||||
[PLAYER2]
|
[PLAYER2]
|
||||||
[END]
|
[END]
|
||||||
26
projects/mtg/bin/Res/test/leyline_of_the_void.txt
Normal file
@@ -0,0 +1,26 @@
|
|||||||
|
#Testing Leyline of the Void vs Darksteel Colossus and Black Sun's Zenith
|
||||||
|
#Darksteel Colossus must be on owners library
|
||||||
|
[INIT]
|
||||||
|
FIRSTMAIN
|
||||||
|
[PLAYER1]
|
||||||
|
inplay:Leyline of the Void, Forbidden Orchard
|
||||||
|
hand:Black Sun's Zenith
|
||||||
|
manapool:{B}{B}{B}{B}{B}{B}{B}{B}{B}{B}{B}{B}{B}{B}
|
||||||
|
[PLAYER2]
|
||||||
|
inplay:Darksteel Colossus
|
||||||
|
library:Mountain
|
||||||
|
[DO]
|
||||||
|
Forbidden Orchard
|
||||||
|
choice 2
|
||||||
|
Black Sun's Zenith
|
||||||
|
[ASSERT]
|
||||||
|
FIRSTMAIN
|
||||||
|
[PLAYER1]
|
||||||
|
inplay:Leyline of the Void, Forbidden Orchard
|
||||||
|
library:Black Sun's Zenith
|
||||||
|
manapool:{0}
|
||||||
|
life:20
|
||||||
|
[PLAYER2]
|
||||||
|
library:Mountain, Darksteel Colossus
|
||||||
|
life:20
|
||||||
|
[END]
|
||||||
@@ -16,4 +16,5 @@ FIRSTMAIN
|
|||||||
inplay:necrogenesis,*
|
inplay:necrogenesis,*
|
||||||
manapool:{0}
|
manapool:{0}
|
||||||
[PLAYER2]
|
[PLAYER2]
|
||||||
|
exile:1250
|
||||||
[END]
|
[END]
|
||||||
46
projects/mtg/bin/Res/test/pledge_protection.txt
Normal file
@@ -0,0 +1,46 @@
|
|||||||
|
#Testing Protection
|
||||||
|
#702.16c A permanent or player with protection can’t be enchanted by Auras that have the stated
|
||||||
|
#quality. Such Auras attached to the permanent or player with protection will be put into their
|
||||||
|
#owners’ graveyards as a state-based action.
|
||||||
|
#
|
||||||
|
#702.16d A permanent with protection can’t be equipped by Equipment that have the stated quality
|
||||||
|
#or fortified by Fortifications that have the stated quality. Such Equipment or Fortifications
|
||||||
|
#become unattached from that permanent as a state-based action, but remain on the battlefield.
|
||||||
|
[INIT]
|
||||||
|
FIRSTMAIN
|
||||||
|
[PLAYER1]
|
||||||
|
hand:Pledge of Loyalty, Shuko, Holy Strength, Shifting Sky
|
||||||
|
inplay:Crimson Acolyte
|
||||||
|
manapool:{W}{W}{W}{W}{U}{U}{U}
|
||||||
|
[PLAYER2]
|
||||||
|
[DO]
|
||||||
|
Holy Strength
|
||||||
|
Crimson Acolyte
|
||||||
|
#crimson acolyte becomes 2/3
|
||||||
|
Shuko
|
||||||
|
Shuko
|
||||||
|
Crimson Acolyte
|
||||||
|
#crimson acolyte becomes 3/3
|
||||||
|
Pledge of Loyalty
|
||||||
|
Crimson Acolyte
|
||||||
|
#crimson acolyte becomes 2/1 since you have white permanents, pledge of loyalty grants protection from white
|
||||||
|
#holy strength is put into the graveyard as state based action :)
|
||||||
|
Shifting Sky
|
||||||
|
choice 0
|
||||||
|
choice 2
|
||||||
|
#after casting shifting sky, choose the color red, and all nonland permanents becomes red
|
||||||
|
#since shuko becomes red and crimson has protection from red, it will be unattached
|
||||||
|
#as state based action, pledge of loyalty stays on the creature :)
|
||||||
|
next
|
||||||
|
next
|
||||||
|
Crimson Acolyte
|
||||||
|
next
|
||||||
|
eot
|
||||||
|
[ASSERT]
|
||||||
|
UNTAP
|
||||||
|
[PLAYER1]
|
||||||
|
inplay:Crimson Acolyte, Pledge of Loyalty, Shuko, Shifting Sky
|
||||||
|
graveyard:Holy Strength
|
||||||
|
[PLAYER2]
|
||||||
|
life:19
|
||||||
|
[END]
|
||||||
23
projects/mtg/bin/Res/test/restinpeace.txt
Normal file
@@ -0,0 +1,23 @@
|
|||||||
|
#Testing Rest in Peace vs Disenchant
|
||||||
|
#Rest in Peace should be exiled while Disenchant must be put
|
||||||
|
#in the owner's graveyard..
|
||||||
|
[INIT]
|
||||||
|
FIRSTMAIN
|
||||||
|
[PLAYER1]
|
||||||
|
inplay:Rest in Peace
|
||||||
|
hand:Disenchant
|
||||||
|
manapool:{W}{W}
|
||||||
|
[PLAYER2]
|
||||||
|
[DO]
|
||||||
|
Disenchant
|
||||||
|
Rest in Peace
|
||||||
|
[ASSERT]
|
||||||
|
FIRSTMAIN
|
||||||
|
[PLAYER1]
|
||||||
|
graveyard:Disenchant
|
||||||
|
manapool:{0}
|
||||||
|
exile:Rest in Peace
|
||||||
|
life:20
|
||||||
|
[PLAYER2]
|
||||||
|
life:20
|
||||||
|
[END]
|
||||||
@@ -16,5 +16,6 @@ FIRSTMAIN
|
|||||||
graveyard:1367
|
graveyard:1367
|
||||||
manapool:{0}
|
manapool:{0}
|
||||||
[PLAYER2]
|
[PLAYER2]
|
||||||
|
exile:141935
|
||||||
life:23
|
life:23
|
||||||
[END]
|
[END]
|
||||||
@@ -25,6 +25,7 @@ next
|
|||||||
[assert]
|
[assert]
|
||||||
secondmain
|
secondmain
|
||||||
[player1]
|
[player1]
|
||||||
|
exile:fungusaur
|
||||||
inplay:Thelon Of Havenwood,Thallid,Deathspore Thallid,forest,swamp
|
inplay:Thelon Of Havenwood,Thallid,Deathspore Thallid,forest,swamp
|
||||||
[player2]
|
[player2]
|
||||||
life:14
|
life:14
|
||||||
|
|||||||
20
projects/mtg/bin/Res/test/thraximundar.txt
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
#Bug: thraximundar ability must resolve first... and survives
|
||||||
|
[INIT]
|
||||||
|
FIRSTMAIN
|
||||||
|
[PLAYER1]
|
||||||
|
inplay:thraximundar,bloodfire colossus
|
||||||
|
manapool:{R}
|
||||||
|
[PLAYER2]
|
||||||
|
[DO]
|
||||||
|
bloodfire colossus
|
||||||
|
choice 0
|
||||||
|
[ASSERT]
|
||||||
|
FIRSTMAIN
|
||||||
|
[PLAYER1]
|
||||||
|
graveyard:bloodfire colossus
|
||||||
|
inplay:thraximundar
|
||||||
|
manapool:{0}
|
||||||
|
life:14
|
||||||
|
[PLAYER2]
|
||||||
|
life:14
|
||||||
|
[END]
|
||||||
29
projects/mtg/bin/Res/test/tokenizer.txt
Normal file
@@ -0,0 +1,29 @@
|
|||||||
|
# Testing Tokenizer - Parallel Lives (ISD) 249662
|
||||||
|
# Dragon Fodder (ALA) 174936
|
||||||
|
# text=Put two 1/1 red Goblin creature tokens into play.
|
||||||
|
# Tokens must be 2.. since there are no tokenizer.
|
||||||
|
[INIT]
|
||||||
|
FIRSTMAIN
|
||||||
|
[PLAYER1]
|
||||||
|
hand:174936
|
||||||
|
manapool:{R}{1}
|
||||||
|
inplay:249662
|
||||||
|
[PLAYER2]
|
||||||
|
hand:Demystify
|
||||||
|
manapool:{W}
|
||||||
|
[DO]
|
||||||
|
174936
|
||||||
|
no
|
||||||
|
yes
|
||||||
|
Demystify
|
||||||
|
249662
|
||||||
|
endinterruption
|
||||||
|
[ASSERT]
|
||||||
|
FIRSTMAIN
|
||||||
|
[PLAYER1]
|
||||||
|
graveyard:249662,174936
|
||||||
|
inplay:-174936,-174936
|
||||||
|
[PLAYER2]
|
||||||
|
graveyard:Demystify
|
||||||
|
life:20
|
||||||
|
[END]
|
||||||
27
projects/mtg/bin/Res/test/tokenizer2.txt
Normal file
@@ -0,0 +1,27 @@
|
|||||||
|
# Testing Tokenizer - Parallel Lives (ISD) 249662
|
||||||
|
# Dragon Fodder (ALA) 174936
|
||||||
|
# text=Put two 1/1 red Goblin creature tokens into play.
|
||||||
|
# Tokens must be 8.. since there are two tokenizer... original value
|
||||||
|
# is 2 with first tokenizer it will become 4, with the second tokenizer
|
||||||
|
# the value will be 8...
|
||||||
|
[INIT]
|
||||||
|
FIRSTMAIN
|
||||||
|
[PLAYER1]
|
||||||
|
hand:174936
|
||||||
|
manapool:{R}{1}
|
||||||
|
inplay:249662,249662
|
||||||
|
[PLAYER2]
|
||||||
|
inplay:plains
|
||||||
|
hand:Demystify
|
||||||
|
[DO]
|
||||||
|
174936
|
||||||
|
[ASSERT]
|
||||||
|
FIRSTMAIN
|
||||||
|
[PLAYER1]
|
||||||
|
graveyard:174936
|
||||||
|
inplay:249662,249662,-174936,-174936,-174936,-174936,-174936,-174936,-174936,-174936
|
||||||
|
[PLAYER2]
|
||||||
|
hand:Demystify
|
||||||
|
inplay:plains
|
||||||
|
life:20
|
||||||
|
[END]
|
||||||
@@ -24,6 +24,7 @@ next
|
|||||||
[ASSERT]
|
[ASSERT]
|
||||||
CLEANUP
|
CLEANUP
|
||||||
[PLAYER1]
|
[PLAYER1]
|
||||||
|
exile:Dregscape Zombie
|
||||||
inplay:129754
|
inplay:129754
|
||||||
[PLAYER2]
|
[PLAYER2]
|
||||||
graveyard:Grizzly Bears
|
graveyard:Grizzly Bears
|
||||||
|
|||||||
|
Before Width: | Height: | Size: 124 KiB After Width: | Height: | Size: 125 KiB |
|
Before Width: | Height: | Size: 14 KiB After Width: | Height: | Size: 28 KiB |
|
Before Width: | Height: | Size: 40 KiB After Width: | Height: | Size: 46 KiB |
|
Before Width: | Height: | Size: 69 KiB After Width: | Height: | Size: 76 KiB |
|
Before Width: | Height: | Size: 36 KiB After Width: | Height: | Size: 51 KiB |
|
Before Width: | Height: | Size: 54 KiB After Width: | Height: | Size: 54 KiB |
|
Before Width: | Height: | Size: 47 KiB After Width: | Height: | Size: 49 KiB |
|
Before Width: | Height: | Size: 13 KiB After Width: | Height: | Size: 36 KiB |
|
Before Width: | Height: | Size: 21 KiB After Width: | Height: | Size: 24 KiB |
201
projects/mtg/iOS/Makefile
Normal file
@@ -0,0 +1,201 @@
|
|||||||
|
export ARCHS = armv7 armv7s
|
||||||
|
export TARGET = iphone:clang:latest:8.0
|
||||||
|
|
||||||
|
include ../../../theos/makefiles/common.mk
|
||||||
|
|
||||||
|
APPLICATION_NAME = wagic
|
||||||
|
wagic_FILES = ../../../JGE/src/iOS/main.m\
|
||||||
|
../../../JGE/src/iOS/wagicAppDelegate.m\
|
||||||
|
../../../JGE/src/iOS/ES2Renderer.m\
|
||||||
|
../../../JGE/src/iOS/EAGLView.m\
|
||||||
|
../../../JGE/src/iOS/EAGLViewController.m\
|
||||||
|
../../../JGE/src/iOS/JSfx.cpp\
|
||||||
|
../../../JGE/src/pc/JGfx.cpp\
|
||||||
|
../iOS/UI/WagicDownloadProgressViewController.m\
|
||||||
|
../iOS/asi-http-request/ASIAuthenticationDialog.m\
|
||||||
|
../iOS/asi-http-request/ASIDataCompressor.m\
|
||||||
|
../iOS/asi-http-request/ASIDataDecompressor.m\
|
||||||
|
../iOS/asi-http-request/ASIDownloadCache.m\
|
||||||
|
../iOS/asi-http-request/ASIFormDataRequest.m\
|
||||||
|
../iOS/asi-http-request/ASIHTTPRequest.m\
|
||||||
|
../iOS/asi-http-request/ASIInputStream.m\
|
||||||
|
../iOS/asi-http-request/ASINetworkQueue.m\
|
||||||
|
../iOS/SoundManager/SoundManager.m\
|
||||||
|
../iOS/SoundManager/MyOpenALSupport.c\
|
||||||
|
../iOS/Reachability/Reachability/Reachability.m\
|
||||||
|
../../../JGE/src/unzip/unzip.c\
|
||||||
|
../../../JGE/src/unzip/zip.c\
|
||||||
|
../../../JGE/src/unzip/ioapi.c\
|
||||||
|
../iOS/ZipArchive/ZipArchive.mm\
|
||||||
|
../src/SimpleMenu.cpp\
|
||||||
|
../src/AbilityParser.cpp\
|
||||||
|
../src/ActionElement.cpp\
|
||||||
|
../src/ActionLayer.cpp\
|
||||||
|
../src/ActionStack.cpp\
|
||||||
|
../src/AIHints.cpp\
|
||||||
|
../src/AIMomirPlayer.cpp\
|
||||||
|
../src/AIPlayer.cpp\
|
||||||
|
../src/AIPlayerBaka.cpp\
|
||||||
|
../src/AIStats.cpp\
|
||||||
|
../src/AllAbilities.cpp\
|
||||||
|
../src/CardDescriptor.cpp\
|
||||||
|
../src/CardDisplay.cpp\
|
||||||
|
../src/CardGui.cpp\
|
||||||
|
../src/CardPrimitive.cpp\
|
||||||
|
../src/CardSelector.cpp\
|
||||||
|
../src/CarouselDeckView.cpp\
|
||||||
|
../src/Closest.cpp\
|
||||||
|
../src/Counters.cpp\
|
||||||
|
../src/Credits.cpp\
|
||||||
|
../src/Damage.cpp\
|
||||||
|
../src/DamagerDamaged.cpp\
|
||||||
|
../src/DeckDataWrapper.cpp\
|
||||||
|
../src/DeckEditorMenu.cpp\
|
||||||
|
../src/DeckManager.cpp\
|
||||||
|
../src/DeckMenu.cpp\
|
||||||
|
../src/DeckMenuItem.cpp\
|
||||||
|
../src/DeckMetaData.cpp\
|
||||||
|
../src/DeckStats.cpp\
|
||||||
|
../src/DeckView.cpp\
|
||||||
|
../src/DuelLayers.cpp\
|
||||||
|
../src/ExtraCost.cpp\
|
||||||
|
../src/GameApp.cpp\
|
||||||
|
../src/GameLauncher.cpp\
|
||||||
|
../src/GameObserver.cpp\
|
||||||
|
../src/GameOptions.cpp\
|
||||||
|
../src/GameStateAwards.cpp\
|
||||||
|
../src/GameState.cpp\
|
||||||
|
../src/GameStateDeckViewer.cpp\
|
||||||
|
../src/GameStateDuel.cpp\
|
||||||
|
../src/GameStateMenu.cpp\
|
||||||
|
../src/GameStateOptions.cpp\
|
||||||
|
../src/GameStateShop.cpp\
|
||||||
|
../src/GameStateStory.cpp\
|
||||||
|
../src/GameStateTransitions.cpp\
|
||||||
|
../src/GridDeckView.cpp\
|
||||||
|
../src/GuiAvatars.cpp\
|
||||||
|
../src/GuiBackground.cpp\
|
||||||
|
../src/GuiCardsController.cpp\
|
||||||
|
../src/GuiCombat.cpp\
|
||||||
|
../src/GuiFrame.cpp\
|
||||||
|
../src/GuiHand.cpp\
|
||||||
|
../src/GuiLayers.cpp\
|
||||||
|
../src/GuiMana.cpp\
|
||||||
|
../src/GuiPhaseBar.cpp\
|
||||||
|
../src/GuiPlay.cpp\
|
||||||
|
../src/GuiStatic.cpp\
|
||||||
|
../src/IconButton.cpp\
|
||||||
|
../src/InteractiveButton.cpp\
|
||||||
|
../src/ManaCost.cpp\
|
||||||
|
../src/ManaCostHybrid.cpp\
|
||||||
|
../src/MenuItem.cpp\
|
||||||
|
../src/ModRules.cpp\
|
||||||
|
../src/MTGAbility.cpp\
|
||||||
|
../src/MTGCard.cpp\
|
||||||
|
../src/MTGCardInstance.cpp\
|
||||||
|
../src/MTGDeck.cpp\
|
||||||
|
../src/MTGDefinitions.cpp\
|
||||||
|
../src/MTGGamePhase.cpp\
|
||||||
|
../src/MTGGameZones.cpp\
|
||||||
|
../src/MTGPack.cpp\
|
||||||
|
../src/MTGRules.cpp\
|
||||||
|
../src/ObjectAnalytics.cpp\
|
||||||
|
../src/OptionItem.cpp\
|
||||||
|
../src/PhaseRing.cpp\
|
||||||
|
../src/Player.cpp\
|
||||||
|
../src/PlayerData.cpp\
|
||||||
|
../src/PlayGuiObject.cpp\
|
||||||
|
../src/PlayGuiObjectController.cpp\
|
||||||
|
../src/PlayRestrictions.cpp\
|
||||||
|
../src/Pos.cpp\
|
||||||
|
../src/PriceList.cpp\
|
||||||
|
../src/ReplacementEffects.cpp\
|
||||||
|
../src/Rules.cpp\
|
||||||
|
../src/SimpleButton.cpp\
|
||||||
|
../src/SimpleMenu.cpp\
|
||||||
|
../src/SimpleMenuItem.cpp\
|
||||||
|
../src/SimplePad.cpp\
|
||||||
|
../src/SimplePopup.cpp\
|
||||||
|
../src/StoryFlow.cpp\
|
||||||
|
../src/Subtypes.cpp\
|
||||||
|
../src/StyleManager.cpp\
|
||||||
|
../src/TargetChooser.cpp\
|
||||||
|
../src/TargetsList.cpp\
|
||||||
|
../src/Tasks.cpp\
|
||||||
|
../src/TextScroller.cpp\
|
||||||
|
../src/ThisDescriptor.cpp\
|
||||||
|
../src/Token.cpp\
|
||||||
|
../src/Translate.cpp\
|
||||||
|
../src/TranslateKeys.cpp\
|
||||||
|
../src/Trash.cpp\
|
||||||
|
../src/utils.cpp\
|
||||||
|
../src/WCachedResource.cpp\
|
||||||
|
../src/WDataSrc.cpp\
|
||||||
|
../src/WEvent.cpp\
|
||||||
|
../src/WFilter.cpp\
|
||||||
|
../src/WFont.cpp\
|
||||||
|
../src/WGui.cpp\
|
||||||
|
../src/WResourceManager.cpp \
|
||||||
|
../src/AIPlayerBakaB.cpp \
|
||||||
|
../src/TestSuiteAI.cpp\
|
||||||
|
../../../JGE/src/Encoding.cpp\
|
||||||
|
../../../JGE/src/JAnimator.cpp\
|
||||||
|
../../../JGE/src/JApp.cpp\
|
||||||
|
../../../JGE/src/JDistortionMesh.cpp\
|
||||||
|
../../../JGE/src/JFileSystem.cpp\
|
||||||
|
../../../JGE/src/JGameObject.cpp\
|
||||||
|
../../../JGE/src/JGE.cpp\
|
||||||
|
../../../JGE/src/JGui.cpp\
|
||||||
|
../../../JGE/src/JLogger.cpp\
|
||||||
|
../../../JGE/src/JLBFont.cpp\
|
||||||
|
../../../JGE/src/JOBJModel.cpp\
|
||||||
|
../../../JGE/src/JParticle.cpp\
|
||||||
|
../../../JGE/src/JParticleEffect.cpp\
|
||||||
|
../../../JGE/src/JParticleEmitter.cpp\
|
||||||
|
../../../JGE/src/JParticleSystem.cpp\
|
||||||
|
../../../JGE/src/JResourceManager.cpp\
|
||||||
|
../../../JGE/src/JSpline.cpp\
|
||||||
|
../../../JGE/src/JSprite.cpp\
|
||||||
|
../../../JGE/src/Vector2D.cpp\
|
||||||
|
../../../JGE/src/tinyxml/tinystr.cpp\
|
||||||
|
../../../JGE/src/tinyxml/tinyxml.cpp\
|
||||||
|
../../../JGE/src/tinyxml/tinyxmlerror.cpp\
|
||||||
|
../../../JGE/src/tinyxml/tinyxmlparser.cpp\
|
||||||
|
../../../JGE/src/hge/hgecolor.cpp\
|
||||||
|
../../../JGE/src/hge/hgedistort.cpp\
|
||||||
|
../../../JGE/src/hge/hgefont.cpp\
|
||||||
|
../../../JGE/src/hge/hgeparticle.cpp\
|
||||||
|
../../../JGE/src/hge/hgerect.cpp\
|
||||||
|
../../../JGE/src/hge/hgevector.cpp\
|
||||||
|
../../../JGE/src/zipFS/zfsystem.cpp\
|
||||||
|
../../../JGE/src/zipFS/ziphdr.cpp\
|
||||||
|
../../../JGE/src/zipFS/zstream.cpp\
|
||||||
|
../../../Boost/lib/pthread/once.cpp\
|
||||||
|
../../../Boost/lib/pthread/thread.cpp\
|
||||||
|
|
||||||
|
|
||||||
|
wagic_LDFLAGS = -lz
|
||||||
|
wagic_FRAMEWORKS = UIKit CoreGraphics OpenGLES Foundation CFNetwork MobileCoreServices AVFoundation OpenAL AudioToolbox QuartzCore SystemConfiguration
|
||||||
|
include ../../../theos/makefiles/application.mk
|
||||||
|
|
||||||
|
ADDITIONAL_CFLAGS = -I ../include\
|
||||||
|
-I ../../../JGE/include\
|
||||||
|
-I ../../../JGE/src/unzip\
|
||||||
|
-I ../../../JGE/src/zipFS\
|
||||||
|
-I ../../../JGE/Dependencies/include\
|
||||||
|
-I ../../../Boost\
|
||||||
|
-I ../../../JGE/src/iOS\
|
||||||
|
-I ../iOS/UI\
|
||||||
|
-I ../iOS/Reachability/Reachability\
|
||||||
|
-I ../iOS/asi-http-request\
|
||||||
|
-I ../iOS/ZipArchive\
|
||||||
|
-I ../iOS/SoundManager\
|
||||||
|
-DIOS -D__arm__ -DTIXML_USE_STL -DVERSION=\"$(GIT_VERSION)\"\
|
||||||
|
-Wno-parentheses-equality -Wno-delete-non-virtual-dtor\
|
||||||
|
-Wno-tautological-undefined-compare -Wno-undefined-bool-conversion\
|
||||||
|
-Wno-visibility -Wno-deprecated-declarations -Wno-non-literal-null-conversion\
|
||||||
|
-Wno-format -Wno-distributed-object-modifiers -Wno-missing-braces\
|
||||||
|
-Wno-unused-const-variable -Wno-unused-function -Wno-unknown-warning-option\
|
||||||
|
-x objective-c++
|
||||||
|
|
||||||
|
_THEOS_TARGET_ONLY_OBJCFLAGS :=""
|
||||||
@@ -180,7 +180,7 @@ static void logNetworkStatus_(const char *name, int line, NetworkStatus status)
|
|||||||
#define logNetworkStatus(status)
|
#define logNetworkStatus(status)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@interface Reachability (private)
|
@interface Reachability ()
|
||||||
|
|
||||||
- (NetworkStatus) networkStatusForFlags: (SCNetworkReachabilityFlags) flags;
|
- (NetworkStatus) networkStatusForFlags: (SCNetworkReachabilityFlags) flags;
|
||||||
|
|
||||||