Merge pull request #1 from WagicProject/master
Update fork with original
@@ -21,7 +21,7 @@ before_install:
|
||||
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 &&
|
||||
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
|
||||
# Building for Qt here
|
||||
- if [ "$BUILD_Qt" == "YES" ]; then
|
||||
@@ -37,9 +37,9 @@ install:
|
||||
fi
|
||||
- if [ "$BUILD_ANDROID" == "YES" ]; then
|
||||
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 &&
|
||||
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
|
||||
- sudo pip install pyjavaproperties
|
||||
- sudo pip install github3.py
|
||||
|
||||
@@ -178,8 +178,6 @@ private:
|
||||
float mSpacing;
|
||||
|
||||
PIXEL_TYPE mColor;
|
||||
int mBlend;
|
||||
|
||||
int mBase;
|
||||
|
||||
};
|
||||
|
||||
@@ -598,8 +598,6 @@ private:
|
||||
GLint prog2_positionLoc;
|
||||
GLint prog2_texCoordLoc;
|
||||
GLint prog2_colorLoc;
|
||||
// MVP matrix
|
||||
ESMatrix prog2_mvpMatrix;
|
||||
// Uniform locations
|
||||
GLint prog2_mvpLoc;
|
||||
|
||||
@@ -612,13 +610,11 @@ private:
|
||||
int mCurrentTextureFormat;
|
||||
#endif
|
||||
|
||||
#ifdef PSP
|
||||
bool mVsync;
|
||||
|
||||
int mTexCounter;
|
||||
#endif
|
||||
int mSwizzle;
|
||||
int mTexCounter;
|
||||
|
||||
|
||||
|
||||
int mCurrentTextureFilter;
|
||||
|
||||
int mCurrTexBlendSrc;
|
||||
|
||||
@@ -258,7 +258,9 @@ private:
|
||||
#endif
|
||||
|
||||
int mVolume;
|
||||
#ifndef IOS
|
||||
int mMusicVolume;
|
||||
#endif
|
||||
int mSampleVolume;
|
||||
|
||||
|
||||
|
||||
@@ -18,12 +18,11 @@ using namespace std;
|
||||
|
||||
#define MID_POINT_THRESHOLD 1.0f
|
||||
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
/// Position of a single dot on screen.
|
||||
///
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
class Point
|
||||
class JPoint
|
||||
{
|
||||
public:
|
||||
|
||||
@@ -34,13 +33,13 @@ public:
|
||||
/// @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)
|
||||
///
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
Point() { x = 0.0f; y = 0.0f; }
|
||||
JPoint() { x = 0.0f; y = 0.0f; }
|
||||
|
||||
float x; ///< X position.
|
||||
float y; ///< Y position.
|
||||
@@ -95,7 +94,7 @@ public:
|
||||
/// @param pt - Control point.
|
||||
///
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
void AddControlPoint(const Point &pt);
|
||||
void AddControlPoint(const JPoint &pt);
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
/// Get a control point of the spline.
|
||||
@@ -105,7 +104,7 @@ public:
|
||||
/// @return Control point.
|
||||
///
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
void GetControlPoint(Point &point, int index);
|
||||
void GetControlPoint(JPoint &point, int index);
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
/// Work out all pixels of the spline.
|
||||
@@ -128,7 +127,7 @@ public:
|
||||
/// @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.
|
||||
@@ -146,7 +145,7 @@ public:
|
||||
/// @return Position of the desire point.
|
||||
///
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
void GetPixel(Point &point, int index);
|
||||
void GetPixel(JPoint &point, int index);
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
/// Render the spline to screen.
|
||||
@@ -156,8 +155,8 @@ public:
|
||||
|
||||
private:
|
||||
|
||||
vector<Point> mMidPoints;
|
||||
vector<Point> mPixels;
|
||||
vector<JPoint> mMidPoints;
|
||||
vector<JPoint> mPixels;
|
||||
int mCount;
|
||||
|
||||
};
|
||||
|
||||
@@ -311,9 +311,7 @@ namespace boost
|
||||
|
||||
#include <QMutex>
|
||||
#include <QThread>
|
||||
|
||||
#include <boost/bind.hpp>
|
||||
#include <boost/shared_ptr.hpp>
|
||||
#include <QSharedPointer>
|
||||
|
||||
#include "../include/JLogger.h"
|
||||
|
||||
@@ -420,23 +418,25 @@ namespace boost
|
||||
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
|
||||
{
|
||||
public:
|
||||
thread_data(F f_) : f(f_)
|
||||
thread_data(F f_, A1 a1_) : f(f_), a1(a1_)
|
||||
{
|
||||
}
|
||||
|
||||
void run()
|
||||
{
|
||||
f();
|
||||
f(a1);
|
||||
}
|
||||
|
||||
private:
|
||||
F f;
|
||||
A1 a1;
|
||||
|
||||
void operator=(thread_data&);
|
||||
thread_data(thread_data&);
|
||||
@@ -493,7 +493,7 @@ namespace boost
|
||||
}
|
||||
|
||||
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);
|
||||
LOG("Calling start func");
|
||||
@@ -510,10 +510,10 @@ namespace boost
|
||||
}
|
||||
|
||||
private:
|
||||
template<typename F>
|
||||
static inline detail::thread_data_ptr make_thread_info(F f)
|
||||
template<typename F, typename A1>
|
||||
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;
|
||||
|
||||
@@ -38,6 +38,12 @@ The content that users should not be touching.
|
||||
#include <QDir>
|
||||
#endif
|
||||
|
||||
/*
|
||||
#ifdef IOS
|
||||
#include <Foundation/Foundation.h>
|
||||
#endif
|
||||
*/
|
||||
|
||||
JFileSystem* JFileSystem::mInstance = NULL;
|
||||
|
||||
JZipCache::JZipCache()
|
||||
@@ -248,7 +254,7 @@ void JFileSystem::clearZipCache()
|
||||
|
||||
bool JFileSystem::AttachZipFile(const string &zipfile, char *password /* = NULL */)
|
||||
{
|
||||
if (mZipAvailable && mZipFile != NULL)
|
||||
if (mZipAvailable && mZipFile.is_open())
|
||||
{
|
||||
if (mZipFileName != zipfile)
|
||||
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("y", &yy);
|
||||
|
||||
Point pt(xx*xscale, yy*yscale);
|
||||
JPoint pt(xx*xscale, yy*yscale);
|
||||
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 t3 = t2 * t;
|
||||
@@ -113,8 +113,8 @@ void JSpline::GeneratePixels()
|
||||
x = mMidPoints[1].x;
|
||||
y = mMidPoints[1].y;
|
||||
|
||||
Point newPt(x, y);
|
||||
Point extraPt;
|
||||
JPoint newPt(x, y);
|
||||
JPoint extraPt;
|
||||
|
||||
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);
|
||||
}
|
||||
|
||||
|
||||
void JSpline::GetControlPoint(Point &point, int index)
|
||||
void JSpline::GetControlPoint(JPoint &point, int index)
|
||||
{
|
||||
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())
|
||||
{
|
||||
|
||||
@@ -10,5 +10,6 @@ void resumeGame();
|
||||
@property (nonatomic, retain) id eaglView;
|
||||
@property (nonatomic, retain) UITextField *inputField;
|
||||
@property (nonatomic, assign) BOOL bannerIsVisible;
|
||||
- (void)toggleKeyboardWithState: (NSString *) initialText;
|
||||
|
||||
@end
|
||||
|
||||
@@ -53,28 +53,28 @@
|
||||
|
||||
- (void)viewWillAppear:(BOOL)animated {
|
||||
NSLog(@"EAGL ViewController - view Will Appear");
|
||||
[self.view resumeGame];
|
||||
[(id)self.view resumeGame];
|
||||
}
|
||||
|
||||
|
||||
- (void)viewWillDisappear:(BOOL)animated
|
||||
{
|
||||
[self.view pauseGame];
|
||||
[(id)self.view pauseGame];
|
||||
}
|
||||
|
||||
- (void)pauseGame
|
||||
{
|
||||
[self.view pauseGame];
|
||||
[(id)self.view pauseGame];
|
||||
}
|
||||
|
||||
- (void)resumeGame
|
||||
{
|
||||
[self.view resumeGame];
|
||||
[(id)self.view resumeGame];
|
||||
}
|
||||
|
||||
- (void)endGame
|
||||
{
|
||||
[self.view endGame];
|
||||
[(id)self.view endGame];
|
||||
}
|
||||
|
||||
- (void)viewDidAppear:(BOOL)animated {
|
||||
|
||||
@@ -337,7 +337,7 @@
|
||||
|
||||
- (void)applicationWillTerminate:(UIApplication *)application
|
||||
{
|
||||
[self.glViewController.view destroyGame];
|
||||
[(id)self.glViewController.view destroyGame];
|
||||
}
|
||||
|
||||
- (void)initializeKeyboard: (id) initialState
|
||||
|
||||
@@ -7,6 +7,7 @@
|
||||
#include <winsock.h>
|
||||
#include <fcntl.h>
|
||||
#elif LINUX
|
||||
#include <unistd.h>
|
||||
#include <sys/types.h>
|
||||
#include <sys/socket.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 */
|
||||
# endif
|
||||
|
||||
static int crypthead(passwd, buf, bufSize, pkeys, pcrc_32_tab, crcForCrypting)
|
||||
const char *passwd; /* password string */
|
||||
unsigned char *buf; /* where to write header */
|
||||
int bufSize;
|
||||
unsigned long* pkeys;
|
||||
const unsigned long* pcrc_32_tab;
|
||||
unsigned long crcForCrypting;
|
||||
static int crypthead(
|
||||
const char *passwd, /* password string */
|
||||
unsigned char *buf, /* where to write header */
|
||||
int bufSize,
|
||||
unsigned long* pkeys,
|
||||
const unsigned long* pcrc_32_tab,
|
||||
unsigned long crcForCrypting)
|
||||
{
|
||||
int n; /* index in random header */
|
||||
int t; /* temporary */
|
||||
|
||||
@@ -65,10 +65,10 @@ int ZCALLBACK ferror_file_func OF((
|
||||
voidpf stream));
|
||||
|
||||
|
||||
voidpf ZCALLBACK fopen_file_func (opaque, filename, mode)
|
||||
voidpf opaque;
|
||||
const char* filename;
|
||||
int mode;
|
||||
voidpf ZCALLBACK fopen_file_func (
|
||||
voidpf opaque,
|
||||
const char* filename,
|
||||
int mode)
|
||||
{
|
||||
FILE* file = 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)
|
||||
voidpf opaque;
|
||||
voidpf stream;
|
||||
void* buf;
|
||||
uLong size;
|
||||
uLong ZCALLBACK fread_file_func (
|
||||
voidpf opaque,
|
||||
voidpf stream,
|
||||
void* buf,
|
||||
uLong size)
|
||||
{
|
||||
uLong ret;
|
||||
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)
|
||||
voidpf opaque;
|
||||
voidpf stream;
|
||||
const void* buf;
|
||||
uLong size;
|
||||
uLong ZCALLBACK fwrite_file_func (
|
||||
voidpf opaque,
|
||||
voidpf stream,
|
||||
const void* buf,
|
||||
uLong size)
|
||||
{
|
||||
uLong ret;
|
||||
ret = (uLong)fwrite(buf, 1, (size_t)size, (FILE *)stream);
|
||||
return ret;
|
||||
}
|
||||
|
||||
long ZCALLBACK ftell_file_func (opaque, stream)
|
||||
voidpf opaque;
|
||||
voidpf stream;
|
||||
long ZCALLBACK ftell_file_func (
|
||||
voidpf opaque,
|
||||
voidpf stream)
|
||||
{
|
||||
long ret;
|
||||
ret = ftell((FILE *)stream);
|
||||
return ret;
|
||||
}
|
||||
|
||||
long ZCALLBACK fseek_file_func (opaque, stream, offset, origin)
|
||||
voidpf opaque;
|
||||
voidpf stream;
|
||||
uLong offset;
|
||||
int origin;
|
||||
long ZCALLBACK fseek_file_func (
|
||||
voidpf opaque,
|
||||
voidpf stream,
|
||||
uLong offset,
|
||||
int origin)
|
||||
{
|
||||
int fseek_origin=0;
|
||||
long ret;
|
||||
@@ -145,26 +145,26 @@ long ZCALLBACK fseek_file_func (opaque, stream, offset, origin)
|
||||
return ret;
|
||||
}
|
||||
|
||||
int ZCALLBACK fclose_file_func (opaque, stream)
|
||||
voidpf opaque;
|
||||
voidpf stream;
|
||||
int ZCALLBACK fclose_file_func (
|
||||
voidpf opaque,
|
||||
voidpf stream)
|
||||
{
|
||||
int ret;
|
||||
ret = fclose((FILE *)stream);
|
||||
return ret;
|
||||
}
|
||||
|
||||
int ZCALLBACK ferror_file_func (opaque, stream)
|
||||
voidpf opaque;
|
||||
voidpf stream;
|
||||
int ZCALLBACK ferror_file_func (
|
||||
voidpf opaque,
|
||||
voidpf stream)
|
||||
{
|
||||
int ret;
|
||||
ret = ferror((FILE *)stream);
|
||||
return ret;
|
||||
}
|
||||
|
||||
void fill_fopen_filefunc (pzlib_filefunc_def)
|
||||
zlib_filefunc_def* pzlib_filefunc_def;
|
||||
void fill_fopen_filefunc (
|
||||
zlib_filefunc_def* pzlib_filefunc_def)
|
||||
{
|
||||
pzlib_filefunc_def->zopen_file = fopen_file_func;
|
||||
pzlib_filefunc_def->zread_file = fread_file_func;
|
||||
|
||||
@@ -168,10 +168,7 @@ local int unzlocal_getByte OF((
|
||||
voidpf filestream,
|
||||
int *pi));
|
||||
|
||||
local int unzlocal_getByte(pzlib_filefunc_def,filestream,pi)
|
||||
const zlib_filefunc_def* pzlib_filefunc_def;
|
||||
voidpf filestream;
|
||||
int *pi;
|
||||
local int unzlocal_getByte(const zlib_filefunc_def* pzlib_filefunc_def,voidpf filestream,int *pi)
|
||||
{
|
||||
unsigned char c;
|
||||
int err = (int)ZREAD(*pzlib_filefunc_def,filestream,&c,1);
|
||||
@@ -198,10 +195,7 @@ local int unzlocal_getShort OF((
|
||||
voidpf filestream,
|
||||
uLong *pX));
|
||||
|
||||
local int unzlocal_getShort (pzlib_filefunc_def,filestream,pX)
|
||||
const zlib_filefunc_def* pzlib_filefunc_def;
|
||||
voidpf filestream;
|
||||
uLong *pX;
|
||||
local int unzlocal_getShort (const zlib_filefunc_def* pzlib_filefunc_def,voidpf filestream,uLong *pX)
|
||||
{
|
||||
uLong x ;
|
||||
int i;
|
||||
@@ -226,10 +220,7 @@ local int unzlocal_getLong OF((
|
||||
voidpf filestream,
|
||||
uLong *pX));
|
||||
|
||||
local int unzlocal_getLong (pzlib_filefunc_def,filestream,pX)
|
||||
const zlib_filefunc_def* pzlib_filefunc_def;
|
||||
voidpf filestream;
|
||||
uLong *pX;
|
||||
local int unzlocal_getLong (const zlib_filefunc_def* pzlib_filefunc_def,voidpf filestream,uLong *pX)
|
||||
{
|
||||
uLong x ;
|
||||
int i;
|
||||
@@ -259,9 +250,7 @@ local int unzlocal_getLong (pzlib_filefunc_def,filestream,pX)
|
||||
|
||||
|
||||
/* My own strcmpi / strcasecmp */
|
||||
local int strcmpcasenosensitive_internal (fileName1,fileName2)
|
||||
const char* fileName1;
|
||||
const char* fileName2;
|
||||
local int strcmpcasenosensitive_internal (const char* fileName1,const char* fileName2)
|
||||
{
|
||||
for (;;)
|
||||
{
|
||||
@@ -302,10 +291,7 @@ local int strcmpcasenosensitive_internal (fileName1,fileName2)
|
||||
(like 1 on Unix, 2 on Windows)
|
||||
|
||||
*/
|
||||
extern int ZEXPORT unzStringFileNameCompare (fileName1,fileName2,iCaseSensitivity)
|
||||
const char* fileName1;
|
||||
const char* fileName2;
|
||||
int iCaseSensitivity;
|
||||
extern int ZEXPORT unzStringFileNameCompare (const char* fileName1,const char* fileName2,int iCaseSensitivity)
|
||||
{
|
||||
if (iCaseSensitivity==0)
|
||||
iCaseSensitivity=CASESENSITIVITYDEFAULTVALUE;
|
||||
@@ -328,9 +314,7 @@ local uLong unzlocal_SearchCentralDir OF((
|
||||
const zlib_filefunc_def* pzlib_filefunc_def,
|
||||
voidpf filestream));
|
||||
|
||||
local uLong unzlocal_SearchCentralDir(pzlib_filefunc_def,filestream)
|
||||
const zlib_filefunc_def* pzlib_filefunc_def;
|
||||
voidpf filestream;
|
||||
local uLong unzlocal_SearchCentralDir(const zlib_filefunc_def* pzlib_filefunc_def,voidpf filestream)
|
||||
{
|
||||
unsigned char* buf;
|
||||
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
|
||||
of this unzip package.
|
||||
*/
|
||||
extern unzFile ZEXPORT unzOpen2 (path, pzlib_filefunc_def)
|
||||
const char *path;
|
||||
zlib_filefunc_def* pzlib_filefunc_def;
|
||||
extern unzFile ZEXPORT unzOpen2 (const char *path, zlib_filefunc_def* pzlib_filefunc_def)
|
||||
{
|
||||
unz_s us;
|
||||
unz_s *s;
|
||||
@@ -497,8 +479,7 @@ extern unzFile ZEXPORT unzOpen2 (path, pzlib_filefunc_def)
|
||||
}
|
||||
|
||||
|
||||
extern unzFile ZEXPORT unzOpen (path)
|
||||
const char *path;
|
||||
extern unzFile ZEXPORT unzOpen (const char *path)
|
||||
{
|
||||
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),
|
||||
these files MUST be closed with unzipCloseCurrentFile before call unzipClose.
|
||||
return UNZ_OK if there is no problem. */
|
||||
extern int ZEXPORT unzClose (file)
|
||||
unzFile file;
|
||||
extern int ZEXPORT unzClose (unzFile file)
|
||||
{
|
||||
unz_s* s;
|
||||
if (file==NULL)
|
||||
@@ -529,9 +509,7 @@ extern int ZEXPORT unzClose (file)
|
||||
Write info about the ZipFile in the *pglobal_info structure.
|
||||
No preparation of the structure is needed
|
||||
return UNZ_OK if there is no problem. */
|
||||
extern int ZEXPORT unzGetGlobalInfo (file,pglobal_info)
|
||||
unzFile file;
|
||||
unz_global_info *pglobal_info;
|
||||
extern int ZEXPORT unzGetGlobalInfo (unzFile file,unz_global_info *pglobal_info)
|
||||
{
|
||||
unz_s* s;
|
||||
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)
|
||||
*/
|
||||
local void unzlocal_DosDateToTmuDate (ulDosDate, ptm)
|
||||
uLong ulDosDate;
|
||||
tm_unz* ptm;
|
||||
local void unzlocal_DosDateToTmuDate (uLong ulDosDate, tm_unz* ptm)
|
||||
{
|
||||
uLong uDate;
|
||||
uDate = (uLong)(ulDosDate>>16);
|
||||
@@ -574,21 +550,16 @@ local int unzlocal_GetCurrentFileInfoInternal OF((unzFile file,
|
||||
char *szComment,
|
||||
uLong commentBufferSize));
|
||||
|
||||
local int unzlocal_GetCurrentFileInfoInternal (file,
|
||||
pfile_info,
|
||||
pfile_info_internal,
|
||||
szFileName, fileNameBufferSize,
|
||||
extraField, extraFieldBufferSize,
|
||||
szComment, commentBufferSize)
|
||||
unzFile file;
|
||||
unz_file_info *pfile_info;
|
||||
unz_file_info_internal *pfile_info_internal;
|
||||
char *szFileName;
|
||||
uLong fileNameBufferSize;
|
||||
void *extraField;
|
||||
uLong extraFieldBufferSize;
|
||||
char *szComment;
|
||||
uLong commentBufferSize;
|
||||
local int unzlocal_GetCurrentFileInfoInternal (
|
||||
unzFile file,
|
||||
unz_file_info *pfile_info,
|
||||
unz_file_info_internal *pfile_info_internal,
|
||||
char *szFileName,
|
||||
uLong fileNameBufferSize,
|
||||
void *extraField,
|
||||
uLong extraFieldBufferSize,
|
||||
char *szComment,
|
||||
uLong commentBufferSize)
|
||||
{
|
||||
unz_s* s;
|
||||
unz_file_info file_info;
|
||||
@@ -746,19 +717,15 @@ local int unzlocal_GetCurrentFileInfoInternal (file,
|
||||
No preparation of the structure is needed
|
||||
return UNZ_OK if there is no problem.
|
||||
*/
|
||||
extern int ZEXPORT unzGetCurrentFileInfo (file,
|
||||
pfile_info,
|
||||
szFileName, fileNameBufferSize,
|
||||
extraField, extraFieldBufferSize,
|
||||
szComment, commentBufferSize)
|
||||
unzFile file;
|
||||
unz_file_info *pfile_info;
|
||||
char *szFileName;
|
||||
uLong fileNameBufferSize;
|
||||
void *extraField;
|
||||
uLong extraFieldBufferSize;
|
||||
char *szComment;
|
||||
uLong commentBufferSize;
|
||||
extern int ZEXPORT unzGetCurrentFileInfo (
|
||||
unzFile file,
|
||||
unz_file_info *pfile_info,
|
||||
char *szFileName,
|
||||
uLong fileNameBufferSize,
|
||||
void *extraField,
|
||||
uLong extraFieldBufferSize,
|
||||
char *szComment,
|
||||
uLong commentBufferSize)
|
||||
{
|
||||
return unzlocal_GetCurrentFileInfoInternal(file,pfile_info,NULL,
|
||||
szFileName,fileNameBufferSize,
|
||||
@@ -770,8 +737,7 @@ extern int ZEXPORT unzGetCurrentFileInfo (file,
|
||||
Set the current file of the zipfile to the first file.
|
||||
return UNZ_OK if there is no problem
|
||||
*/
|
||||
extern int ZEXPORT unzGoToFirstFile (file)
|
||||
unzFile file;
|
||||
extern int ZEXPORT unzGoToFirstFile (unzFile file)
|
||||
{
|
||||
int err=UNZ_OK;
|
||||
unz_s* s;
|
||||
@@ -792,8 +758,7 @@ extern int ZEXPORT unzGoToFirstFile (file)
|
||||
return UNZ_OK if there is no problem
|
||||
return UNZ_END_OF_LIST_OF_FILE if the actual file was the latest.
|
||||
*/
|
||||
extern int ZEXPORT unzGoToNextFile (file)
|
||||
unzFile file;
|
||||
extern int ZEXPORT unzGoToNextFile (unzFile file)
|
||||
{
|
||||
unz_s* s;
|
||||
int err;
|
||||
@@ -826,10 +791,7 @@ extern int ZEXPORT unzGoToNextFile (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
|
||||
*/
|
||||
extern int ZEXPORT unzLocateFile (file, szFileName, iCaseSensitivity)
|
||||
unzFile file;
|
||||
const char *szFileName;
|
||||
int iCaseSensitivity;
|
||||
extern int ZEXPORT unzLocateFile (unzFile file, const char *szFileName, int iCaseSensitivity)
|
||||
{
|
||||
unz_s* s;
|
||||
int err;
|
||||
@@ -905,9 +867,7 @@ typedef struct unz_file_pos_s
|
||||
} unz_file_pos;
|
||||
*/
|
||||
|
||||
extern int ZEXPORT unzGetFilePos(file, file_pos)
|
||||
unzFile file;
|
||||
unz_file_pos* file_pos;
|
||||
extern int ZEXPORT unzGetFilePos(unzFile file, unz_file_pos* file_pos)
|
||||
{
|
||||
unz_s* s;
|
||||
|
||||
@@ -923,9 +883,7 @@ extern int ZEXPORT unzGetFilePos(file, file_pos)
|
||||
return UNZ_OK;
|
||||
}
|
||||
|
||||
extern int ZEXPORT unzGoToFilePos(file, file_pos)
|
||||
unzFile file;
|
||||
unz_file_pos* file_pos;
|
||||
extern int ZEXPORT unzGoToFilePos(unzFile file, unz_file_pos*file_pos)
|
||||
{
|
||||
unz_s* s;
|
||||
int err;
|
||||
@@ -959,13 +917,11 @@ extern int ZEXPORT unzGoToFilePos(file, file_pos)
|
||||
store in *piSizeVar the size of extra info in local header
|
||||
(filename and size of extra field data)
|
||||
*/
|
||||
local int unzlocal_CheckCurrentFileCoherencyHeader (s,piSizeVar,
|
||||
poffset_local_extrafield,
|
||||
psize_local_extrafield)
|
||||
unz_s* s;
|
||||
uInt* piSizeVar;
|
||||
uLong *poffset_local_extrafield;
|
||||
uInt *psize_local_extrafield;
|
||||
local int unzlocal_CheckCurrentFileCoherencyHeader (
|
||||
unz_s* s,
|
||||
uInt* piSizeVar,
|
||||
uLong *poffset_local_extrafield,
|
||||
uInt *psize_local_extrafield)
|
||||
{
|
||||
uLong uMagic,uData,uFlags;
|
||||
uLong size_filename;
|
||||
@@ -1050,12 +1006,12 @@ local int unzlocal_CheckCurrentFileCoherencyHeader (s,piSizeVar,
|
||||
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.
|
||||
*/
|
||||
extern int ZEXPORT unzOpenCurrentFile3 (file, method, level, raw, password)
|
||||
unzFile file;
|
||||
int* method;
|
||||
int* level;
|
||||
int raw;
|
||||
const char* password;
|
||||
extern int ZEXPORT unzOpenCurrentFile3 (
|
||||
unzFile file,
|
||||
int* method,
|
||||
int* level,
|
||||
int raw,
|
||||
const char* password)
|
||||
{
|
||||
int err=UNZ_OK;
|
||||
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.zfree = (free_func)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;
|
||||
|
||||
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;
|
||||
}
|
||||
|
||||
extern int ZEXPORT unzOpenCurrentFile (file)
|
||||
unzFile file;
|
||||
extern int ZEXPORT unzOpenCurrentFile (unzFile file)
|
||||
{
|
||||
return unzOpenCurrentFile3(file, NULL, NULL, 0, NULL);
|
||||
}
|
||||
|
||||
extern int ZEXPORT unzOpenCurrentFilePassword (file, password)
|
||||
unzFile file;
|
||||
const char* password;
|
||||
extern int ZEXPORT unzOpenCurrentFilePassword (unzFile file, const char* password)
|
||||
{
|
||||
return unzOpenCurrentFile3(file, NULL, NULL, 0, password);
|
||||
}
|
||||
|
||||
extern int ZEXPORT unzOpenCurrentFile2 (file,method,level,raw)
|
||||
unzFile file;
|
||||
int* method;
|
||||
int* level;
|
||||
int raw;
|
||||
extern int ZEXPORT unzOpenCurrentFile2 (
|
||||
unzFile file,
|
||||
int* method,
|
||||
int* level,
|
||||
int raw)
|
||||
{
|
||||
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
|
||||
(UNZ_ERRNO for IO error, or zLib error for uncompress error)
|
||||
*/
|
||||
extern int ZEXPORT unzReadCurrentFile (file, buf, len)
|
||||
unzFile file;
|
||||
voidp buf;
|
||||
unsigned len;
|
||||
extern int ZEXPORT unzReadCurrentFile(
|
||||
unzFile file,
|
||||
voidp buf,
|
||||
unsigned len)
|
||||
{
|
||||
int err=UNZ_OK;
|
||||
uInt iRead = 0;
|
||||
@@ -1388,8 +1341,7 @@ extern int ZEXPORT unzReadCurrentFile (file, buf, len)
|
||||
/*
|
||||
Give the current position in uncompressed data
|
||||
*/
|
||||
extern z_off_t ZEXPORT unztell (file)
|
||||
unzFile file;
|
||||
extern z_off_t ZEXPORT unztell (unzFile file)
|
||||
{
|
||||
unz_s* s;
|
||||
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
|
||||
*/
|
||||
extern int ZEXPORT unzeof (file)
|
||||
unzFile file;
|
||||
extern int ZEXPORT unzeof (unzFile file)
|
||||
{
|
||||
unz_s* s;
|
||||
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 error code
|
||||
*/
|
||||
extern int ZEXPORT unzGetLocalExtrafield (file,buf,len)
|
||||
unzFile file;
|
||||
voidp buf;
|
||||
unsigned len;
|
||||
extern int ZEXPORT unzGetLocalExtrafield (
|
||||
unzFile file,
|
||||
voidp buf,
|
||||
unsigned len)
|
||||
{
|
||||
unz_s* s;
|
||||
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
|
||||
Return UNZ_CRCERROR if all the file was read but the CRC is not good
|
||||
*/
|
||||
extern int ZEXPORT unzCloseCurrentFile (file)
|
||||
unzFile file;
|
||||
extern int ZEXPORT unzCloseCurrentFile (unzFile file)
|
||||
{
|
||||
int err=UNZ_OK;
|
||||
|
||||
@@ -1535,12 +1485,11 @@ extern int ZEXPORT unzCloseCurrentFile (file)
|
||||
uSizeBuf is the size of the szComment buffer.
|
||||
return the number of byte copied or an error code <0
|
||||
*/
|
||||
extern int ZEXPORT unzGetGlobalComment (file, szComment, uSizeBuf)
|
||||
unzFile file;
|
||||
char *szComment;
|
||||
uLong uSizeBuf;
|
||||
extern int ZEXPORT unzGetGlobalComment (
|
||||
unzFile file,
|
||||
char *szComment,
|
||||
uLong uSizeBuf)
|
||||
{
|
||||
int err=UNZ_OK;
|
||||
unz_s* s;
|
||||
uLong uReadThis ;
|
||||
if (file==NULL)
|
||||
@@ -1567,8 +1516,7 @@ extern int ZEXPORT unzGetGlobalComment (file, szComment, uSizeBuf)
|
||||
}
|
||||
|
||||
/* Additions by RX '2004 */
|
||||
extern uLong ZEXPORT unzGetOffset (file)
|
||||
unzFile file;
|
||||
extern uLong ZEXPORT unzGetOffset (unzFile file)
|
||||
{
|
||||
unz_s* s;
|
||||
|
||||
@@ -1583,9 +1531,9 @@ extern uLong ZEXPORT unzGetOffset (file)
|
||||
return s->pos_in_central_dir;
|
||||
}
|
||||
|
||||
extern int ZEXPORT unzSetOffset (file, pos)
|
||||
unzFile file;
|
||||
uLong pos;
|
||||
extern int ZEXPORT unzSetOffset (
|
||||
unzFile file,
|
||||
uLong pos)
|
||||
{
|
||||
unz_s* s;
|
||||
int err;
|
||||
|
||||
@@ -172,8 +172,7 @@ local linkedlist_datablock_internal* allocate_new_datablock()
|
||||
return ldi;
|
||||
}
|
||||
|
||||
local void free_datablock(ldi)
|
||||
linkedlist_datablock_internal* ldi;
|
||||
local void free_datablock(linkedlist_datablock_internal* ldi)
|
||||
{
|
||||
while (ldi!=NULL)
|
||||
{
|
||||
@@ -183,24 +182,24 @@ local void free_datablock(ldi)
|
||||
}
|
||||
}
|
||||
|
||||
local void init_linkedlist(ll)
|
||||
linkedlist_data* ll;
|
||||
local void init_linkedlist(
|
||||
linkedlist_data* ll)
|
||||
{
|
||||
ll->first_block = ll->last_block = NULL;
|
||||
}
|
||||
|
||||
local void free_linkedlist(ll)
|
||||
linkedlist_data* ll;
|
||||
local void free_linkedlist(
|
||||
linkedlist_data* ll)
|
||||
{
|
||||
free_datablock(ll->first_block);
|
||||
ll->first_block = ll->last_block = NULL;
|
||||
}
|
||||
|
||||
|
||||
local int add_data_in_datablock(ll,buf,len)
|
||||
linkedlist_data* ll;
|
||||
const void* buf;
|
||||
uLong len;
|
||||
local int add_data_in_datablock(
|
||||
linkedlist_data* ll,
|
||||
const void* buf,
|
||||
uLong len)
|
||||
{
|
||||
linkedlist_datablock_internal* ldi;
|
||||
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,
|
||||
voidpf filestream, uLong x, int nbByte));
|
||||
local int ziplocal_putValue (pzlib_filefunc_def, filestream, x, nbByte)
|
||||
const zlib_filefunc_def* pzlib_filefunc_def;
|
||||
voidpf filestream;
|
||||
uLong x;
|
||||
int nbByte;
|
||||
local int ziplocal_putValue (
|
||||
const zlib_filefunc_def* pzlib_filefunc_def,
|
||||
voidpf filestream,
|
||||
uLong x,
|
||||
int nbByte)
|
||||
{
|
||||
unsigned char buf[4];
|
||||
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 (dest, x, nbByte)
|
||||
void* dest;
|
||||
uLong x;
|
||||
int nbByte;
|
||||
local void ziplocal_putValue_inmemory (
|
||||
void* dest,
|
||||
uLong x,
|
||||
int nbByte)
|
||||
{
|
||||
unsigned char* buf=(unsigned char*)dest;
|
||||
int n;
|
||||
@@ -315,9 +314,9 @@ local void ziplocal_putValue_inmemory (dest, x, nbByte)
|
||||
/****************************************************************************/
|
||||
|
||||
|
||||
local uLong ziplocal_TmzDateToDosDate(ptm,dosDate)
|
||||
const tm_zip* ptm;
|
||||
uLong dosDate;
|
||||
local uLong ziplocal_TmzDateToDosDate(
|
||||
const tm_zip* ptm,
|
||||
uLong dosDate)
|
||||
{
|
||||
uLong year = (uLong)ptm->tm_year;
|
||||
if (year>1980)
|
||||
@@ -337,10 +336,10 @@ local int ziplocal_getByte OF((
|
||||
voidpf filestream,
|
||||
int *pi));
|
||||
|
||||
local int ziplocal_getByte(pzlib_filefunc_def,filestream,pi)
|
||||
const zlib_filefunc_def* pzlib_filefunc_def;
|
||||
voidpf filestream;
|
||||
int *pi;
|
||||
local int ziplocal_getByte(
|
||||
const zlib_filefunc_def* pzlib_filefunc_def,
|
||||
voidpf filestream,
|
||||
int *pi)
|
||||
{
|
||||
unsigned char c;
|
||||
int err = (int)ZREAD(*pzlib_filefunc_def,filestream,&c,1);
|
||||
@@ -367,10 +366,10 @@ local int ziplocal_getShort OF((
|
||||
voidpf filestream,
|
||||
uLong *pX));
|
||||
|
||||
local int ziplocal_getShort (pzlib_filefunc_def,filestream,pX)
|
||||
const zlib_filefunc_def* pzlib_filefunc_def;
|
||||
voidpf filestream;
|
||||
uLong *pX;
|
||||
local int ziplocal_getShort (
|
||||
const zlib_filefunc_def* pzlib_filefunc_def,
|
||||
voidpf filestream,
|
||||
uLong *pX)
|
||||
{
|
||||
uLong x ;
|
||||
int i;
|
||||
@@ -395,10 +394,10 @@ local int ziplocal_getLong OF((
|
||||
voidpf filestream,
|
||||
uLong *pX));
|
||||
|
||||
local int ziplocal_getLong (pzlib_filefunc_def,filestream,pX)
|
||||
const zlib_filefunc_def* pzlib_filefunc_def;
|
||||
voidpf filestream;
|
||||
uLong *pX;
|
||||
local int ziplocal_getLong (
|
||||
const zlib_filefunc_def* pzlib_filefunc_def,
|
||||
voidpf filestream,
|
||||
uLong *pX)
|
||||
{
|
||||
uLong x ;
|
||||
int i;
|
||||
@@ -437,9 +436,9 @@ local uLong ziplocal_SearchCentralDir OF((
|
||||
const zlib_filefunc_def* pzlib_filefunc_def,
|
||||
voidpf filestream));
|
||||
|
||||
local uLong ziplocal_SearchCentralDir(pzlib_filefunc_def,filestream)
|
||||
const zlib_filefunc_def* pzlib_filefunc_def;
|
||||
voidpf filestream;
|
||||
local uLong ziplocal_SearchCentralDir(
|
||||
const zlib_filefunc_def* pzlib_filefunc_def,
|
||||
voidpf filestream)
|
||||
{
|
||||
unsigned char* buf;
|
||||
uLong uSizeFile;
|
||||
@@ -496,11 +495,11 @@ local uLong ziplocal_SearchCentralDir(pzlib_filefunc_def,filestream)
|
||||
#endif /* !NO_ADDFILEINEXISTINGZIP*/
|
||||
|
||||
/************************************************************/
|
||||
extern zipFile ZEXPORT zipOpen2 (pathname, append, globalcomment, pzlib_filefunc_def)
|
||||
const char *pathname;
|
||||
int append;
|
||||
zipcharpc* globalcomment;
|
||||
zlib_filefunc_def* pzlib_filefunc_def;
|
||||
extern zipFile ZEXPORT zipOpen2 (
|
||||
const char *pathname,
|
||||
int append,
|
||||
zipcharpc* globalcomment,
|
||||
zlib_filefunc_def* pzlib_filefunc_def)
|
||||
{
|
||||
zip_internal ziinit;
|
||||
zip_internal* zi;
|
||||
@@ -615,7 +614,7 @@ extern zipFile ZEXPORT zipOpen2 (pathname, append, globalcomment, pzlib_filefunc
|
||||
|
||||
if (size_comment>0)
|
||||
{
|
||||
ziinit.globalcomment = ALLOC(size_comment+1);
|
||||
ziinit.globalcomment = (char*)ALLOC(size_comment+1);
|
||||
if (ziinit.globalcomment)
|
||||
{
|
||||
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)
|
||||
const char *pathname;
|
||||
int append;
|
||||
extern zipFile ZEXPORT zipOpen (
|
||||
const char *pathname,
|
||||
int append)
|
||||
{
|
||||
return zipOpen2(pathname,append,NULL,NULL);
|
||||
}
|
||||
|
||||
extern int ZEXPORT zipOpenNewFileInZip3 (file, filename, zipfi,
|
||||
extrafield_local, size_extrafield_local,
|
||||
extrafield_global, size_extrafield_global,
|
||||
comment, method, level, raw,
|
||||
windowBits, memLevel, strategy,
|
||||
password, crcForCrypting)
|
||||
zipFile file;
|
||||
const char* filename;
|
||||
const zip_fileinfo* zipfi;
|
||||
const void* extrafield_local;
|
||||
uInt size_extrafield_local;
|
||||
const void* extrafield_global;
|
||||
uInt size_extrafield_global;
|
||||
const char* comment;
|
||||
int method;
|
||||
int level;
|
||||
int raw;
|
||||
int windowBits;
|
||||
int memLevel;
|
||||
int strategy;
|
||||
const char* password;
|
||||
uLong crcForCrypting;
|
||||
extern int ZEXPORT zipOpenNewFileInZip3 (
|
||||
zipFile file,
|
||||
const char* filename,
|
||||
const zip_fileinfo* zipfi,
|
||||
const void* extrafield_local,
|
||||
uInt size_extrafield_local,
|
||||
const void* extrafield_global,
|
||||
uInt size_extrafield_global,
|
||||
const char* comment,
|
||||
int method,
|
||||
int level,
|
||||
int raw,
|
||||
int windowBits,
|
||||
int memLevel,
|
||||
int strategy,
|
||||
const char* password,
|
||||
uLong crcForCrypting)
|
||||
{
|
||||
zip_internal* zi;
|
||||
uInt size_filename;
|
||||
@@ -896,21 +890,18 @@ extern int ZEXPORT zipOpenNewFileInZip3 (file, filename, zipfi,
|
||||
return err;
|
||||
}
|
||||
|
||||
extern int ZEXPORT zipOpenNewFileInZip2(file, filename, zipfi,
|
||||
extrafield_local, size_extrafield_local,
|
||||
extrafield_global, size_extrafield_global,
|
||||
comment, method, level, raw)
|
||||
zipFile file;
|
||||
const char* filename;
|
||||
const zip_fileinfo* zipfi;
|
||||
const void* extrafield_local;
|
||||
uInt size_extrafield_local;
|
||||
const void* extrafield_global;
|
||||
uInt size_extrafield_global;
|
||||
const char* comment;
|
||||
int method;
|
||||
int level;
|
||||
int raw;
|
||||
extern int ZEXPORT zipOpenNewFileInZip2(
|
||||
zipFile file,
|
||||
const char* filename,
|
||||
const zip_fileinfo* zipfi,
|
||||
const void* extrafield_local,
|
||||
uInt size_extrafield_local,
|
||||
const void* extrafield_global,
|
||||
uInt size_extrafield_global,
|
||||
const char* comment,
|
||||
int method,
|
||||
int level,
|
||||
int raw)
|
||||
{
|
||||
return zipOpenNewFileInZip3 (file, filename, zipfi,
|
||||
extrafield_local, size_extrafield_local,
|
||||
@@ -920,20 +911,17 @@ extern int ZEXPORT zipOpenNewFileInZip2(file, filename, zipfi,
|
||||
NULL, 0);
|
||||
}
|
||||
|
||||
extern int ZEXPORT zipOpenNewFileInZip (file, filename, zipfi,
|
||||
extrafield_local, size_extrafield_local,
|
||||
extrafield_global, size_extrafield_global,
|
||||
comment, method, level)
|
||||
zipFile file;
|
||||
const char* filename;
|
||||
const zip_fileinfo* zipfi;
|
||||
const void* extrafield_local;
|
||||
uInt size_extrafield_local;
|
||||
const void* extrafield_global;
|
||||
uInt size_extrafield_global;
|
||||
const char* comment;
|
||||
int method;
|
||||
int level;
|
||||
extern int ZEXPORT zipOpenNewFileInZip (
|
||||
zipFile file,
|
||||
const char* filename,
|
||||
const zip_fileinfo* zipfi,
|
||||
const void* extrafield_local,
|
||||
uInt size_extrafield_local,
|
||||
const void* extrafield_global,
|
||||
uInt size_extrafield_global,
|
||||
const char* comment,
|
||||
int method,
|
||||
int level)
|
||||
{
|
||||
return zipOpenNewFileInZip2 (file, filename, zipfi,
|
||||
extrafield_local, size_extrafield_local,
|
||||
@@ -941,8 +929,8 @@ extern int ZEXPORT zipOpenNewFileInZip (file, filename, zipfi,
|
||||
comment, method, level, 0);
|
||||
}
|
||||
|
||||
local int zipFlushWriteBuffer(zi)
|
||||
zip_internal* zi;
|
||||
local int zipFlushWriteBuffer(
|
||||
zip_internal* zi)
|
||||
{
|
||||
int err=ZIP_OK;
|
||||
|
||||
@@ -963,10 +951,10 @@ local int zipFlushWriteBuffer(zi)
|
||||
return err;
|
||||
}
|
||||
|
||||
extern int ZEXPORT zipWriteInFileInZip (file, buf, len)
|
||||
zipFile file;
|
||||
const void* buf;
|
||||
unsigned len;
|
||||
extern int ZEXPORT zipWriteInFileInZip (
|
||||
zipFile file,
|
||||
const void* buf,
|
||||
unsigned len)
|
||||
{
|
||||
zip_internal* zi;
|
||||
int err=ZIP_OK;
|
||||
@@ -978,9 +966,9 @@ extern int ZEXPORT zipWriteInFileInZip (file, buf, len)
|
||||
if (zi->in_opened_file_inzip == 0)
|
||||
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.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))
|
||||
{
|
||||
@@ -1028,10 +1016,10 @@ extern int ZEXPORT zipWriteInFileInZip (file, buf, len)
|
||||
return err;
|
||||
}
|
||||
|
||||
extern int ZEXPORT zipCloseFileInZipRaw (file, uncompressed_size, crc32)
|
||||
zipFile file;
|
||||
uLong uncompressed_size;
|
||||
uLong crc32;
|
||||
extern int ZEXPORT zipCloseFileInZipRaw (
|
||||
zipFile file,
|
||||
uLong uncompressed_size,
|
||||
uLong crc32)
|
||||
{
|
||||
zip_internal* zi;
|
||||
uLong compressed_size;
|
||||
@@ -1124,15 +1112,15 @@ extern int ZEXPORT zipCloseFileInZipRaw (file, uncompressed_size, crc32)
|
||||
return err;
|
||||
}
|
||||
|
||||
extern int ZEXPORT zipCloseFileInZip (file)
|
||||
zipFile file;
|
||||
extern int ZEXPORT zipCloseFileInZip (
|
||||
zipFile file)
|
||||
{
|
||||
return zipCloseFileInZipRaw (file,0,0);
|
||||
}
|
||||
|
||||
extern int ZEXPORT zipClose (file, global_comment)
|
||||
zipFile file;
|
||||
const char* global_comment;
|
||||
extern int ZEXPORT zipClose (
|
||||
zipFile file,
|
||||
const char* global_comment)
|
||||
{
|
||||
zip_internal* zi;
|
||||
int err = 0;
|
||||
|
||||
@@ -42,7 +42,6 @@ filesystem * filesystem::pCurrentFS = NULL;
|
||||
std::vector<filesystem::pooledBuffer *> filesystem::m_Buffers;
|
||||
|
||||
static const int STORED = 0;
|
||||
static const int DEFLATED = 8;
|
||||
|
||||
//////////////////////////////////////////////////////////////////////
|
||||
// Construction/Destruction
|
||||
|
||||
@@ -4,6 +4,14 @@
|
||||
# - All section names are case-sensitive.
|
||||
# - 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 #
|
||||
#---------------------------------#
|
||||
|
||||
|
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=suspendrule
|
||||
auto=morphrule
|
||||
auto=payzerorule
|
||||
auto=overloadrule
|
||||
auto=attackrule
|
||||
auto=blockrule
|
||||
auto=combattriggerrule
|
||||
|
||||
@@ -12,6 +12,8 @@ auto=flashbackrule
|
||||
auto=retracerule
|
||||
auto=suspendrule
|
||||
auto=morphrule
|
||||
auto=payzerorule
|
||||
auto=overloadrule
|
||||
auto=attackrule
|
||||
auto=blockrule
|
||||
auto=combattriggerrule
|
||||
|
||||
@@ -16,7 +16,8 @@ auto=flashbackrule
|
||||
auto=retracerule
|
||||
auto=suspendrule
|
||||
auto=morphrule
|
||||
auto=playfromgraveyardrule
|
||||
auto=payzerorule
|
||||
auto=overloadrule
|
||||
auto=attackrule
|
||||
auto=blockrule
|
||||
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
|
||||
rarity=C
|
||||
[/card]
|
||||
[card]
|
||||
primitive=Avatar Token
|
||||
id=-140233
|
||||
rarity=T
|
||||
[/card]
|
||||
|
||||
@@ -11,7 +11,7 @@ rarity=C
|
||||
[card]
|
||||
primitive=Accorder's Shield
|
||||
id=370581
|
||||
rarity=C
|
||||
rarity=U
|
||||
[/card]
|
||||
[card]
|
||||
primitive=Accursed Spirit
|
||||
@@ -31,7 +31,7 @@ rarity=C
|
||||
[card]
|
||||
primitive=Air Servant
|
||||
id=370688
|
||||
rarity=C
|
||||
rarity=U
|
||||
[/card]
|
||||
[card]
|
||||
primitive=Ajani, Caller of the Pride
|
||||
@@ -121,7 +121,7 @@ rarity=C
|
||||
[card]
|
||||
primitive=Blur Sliver
|
||||
id=370593
|
||||
rarity=U
|
||||
rarity=C
|
||||
[/card]
|
||||
[card]
|
||||
primitive=Bogbrew Witch
|
||||
@@ -156,7 +156,7 @@ rarity=C
|
||||
[card]
|
||||
primitive=Bubbling Cauldron
|
||||
id=370661
|
||||
rarity=R
|
||||
rarity=U
|
||||
[/card]
|
||||
[card]
|
||||
primitive=Burning Earth
|
||||
@@ -261,7 +261,7 @@ rarity=R
|
||||
[card]
|
||||
primitive=Darksteel Forge
|
||||
id=370734
|
||||
rarity=R
|
||||
rarity=M
|
||||
[/card]
|
||||
[card]
|
||||
primitive=Darksteel Ingot
|
||||
@@ -326,7 +326,7 @@ rarity=R
|
||||
[card]
|
||||
primitive=Doom Blade
|
||||
id=370609
|
||||
rarity=C
|
||||
rarity=U
|
||||
[/card]
|
||||
[card]
|
||||
primitive=Door of Destinies
|
||||
@@ -339,6 +339,11 @@ id=370660
|
||||
rarity=U
|
||||
[/card]
|
||||
[card]
|
||||
primitive=Dragon Egg Dragon
|
||||
id=-370660
|
||||
rarity=T
|
||||
[/card]
|
||||
[card]
|
||||
primitive=Dragon Hatchling
|
||||
id=370717
|
||||
rarity=C
|
||||
@@ -431,7 +436,7 @@ rarity=C
|
||||
[card]
|
||||
primitive=Fortify
|
||||
id=370712
|
||||
rarity=U
|
||||
rarity=C
|
||||
[/card]
|
||||
[card]
|
||||
primitive=Frost Breath
|
||||
@@ -581,7 +586,7 @@ rarity=R
|
||||
[card]
|
||||
primitive=Kalonian Hydra
|
||||
id=370766
|
||||
rarity=R
|
||||
rarity=M
|
||||
[/card]
|
||||
[card]
|
||||
primitive=Kalonian Tusker
|
||||
@@ -591,7 +596,7 @@ rarity=U
|
||||
[card]
|
||||
primitive=Lava Axe
|
||||
id=370595
|
||||
rarity=
|
||||
rarity=C
|
||||
[/card]
|
||||
[card]
|
||||
primitive=Lay of the Land
|
||||
@@ -619,8 +624,8 @@ id=370740
|
||||
rarity=R
|
||||
[/card]
|
||||
[card]
|
||||
primitive=Zombie Token
|
||||
id=-339967
|
||||
primitive=Liliana's Reaver Zombie
|
||||
id=-370740
|
||||
rarity=T
|
||||
[/card]
|
||||
[card]
|
||||
@@ -736,7 +741,7 @@ rarity=R
|
||||
[card]
|
||||
primitive=Nightwing Shade
|
||||
id=370705
|
||||
rarity=U
|
||||
rarity=C
|
||||
[/card]
|
||||
[card]
|
||||
primitive=Oath of the Ancient Wood
|
||||
@@ -831,7 +836,7 @@ rarity=R
|
||||
[card]
|
||||
primitive=Quag Sickness
|
||||
id=370714
|
||||
rarity=U
|
||||
rarity=C
|
||||
[/card]
|
||||
[card]
|
||||
primitive=Quicken
|
||||
@@ -846,7 +851,7 @@ rarity=C
|
||||
[card]
|
||||
primitive=Ratchet Bomb
|
||||
id=370623
|
||||
rarity=C
|
||||
rarity=R
|
||||
[/card]
|
||||
[card]
|
||||
primitive=Regathan Firecat
|
||||
@@ -896,7 +901,7 @@ rarity=R
|
||||
[card]
|
||||
primitive=Scourge of Valkas
|
||||
id=370584
|
||||
rarity=R
|
||||
rarity=M
|
||||
[/card]
|
||||
[card]
|
||||
primitive=Scroll Thief
|
||||
@@ -951,7 +956,7 @@ rarity=M
|
||||
[card]
|
||||
primitive=Shimmering Grotto
|
||||
id=370631
|
||||
rarity=C
|
||||
rarity=U
|
||||
[/card]
|
||||
[card]
|
||||
primitive=Shivan Dragon
|
||||
@@ -1031,6 +1036,7 @@ rarity=U
|
||||
[card]
|
||||
primitive=Staff of the Mind Magus
|
||||
id=370676
|
||||
rarity=U
|
||||
[/card]
|
||||
[card]
|
||||
primitive=Staff of the Wild Magus
|
||||
@@ -1105,7 +1111,7 @@ rarity=R
|
||||
[card]
|
||||
primitive=Thunder Strike
|
||||
id=370607
|
||||
rarity=U
|
||||
rarity=C
|
||||
[/card]
|
||||
[card]
|
||||
primitive=Tidebinder Mage
|
||||
@@ -1115,7 +1121,7 @@ rarity=R
|
||||
[card]
|
||||
primitive=Time Ebb
|
||||
id=370641
|
||||
rarity=R
|
||||
rarity=C
|
||||
[/card]
|
||||
[card]
|
||||
primitive=Tome Scour
|
||||
@@ -1215,7 +1221,7 @@ rarity=R
|
||||
[card]
|
||||
primitive=Windreader Sphinx
|
||||
id=370810
|
||||
rarity=U
|
||||
rarity=M
|
||||
[/card]
|
||||
[card]
|
||||
primitive=Windstorm
|
||||
@@ -1243,8 +1249,8 @@ id=370619
|
||||
rarity=R
|
||||
[/card]
|
||||
[card]
|
||||
primitive=Zombie Token
|
||||
id=-339968
|
||||
primitive=Xathrid Necromancer Zombie
|
||||
id=-370619
|
||||
rarity=T
|
||||
[/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
|
||||
[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
|
||||
abilities=opponentshroud,shroud
|
||||
auto={G}:-shroud
|
||||
@@ -24,6 +35,50 @@ power=2
|
||||
toughness=2
|
||||
[/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
|
||||
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.
|
||||
@@ -44,6 +99,59 @@ mana={1}{B}{G}
|
||||
type=Instant
|
||||
[/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
|
||||
type=Creature
|
||||
subtype=Hydra Beast
|
||||
@@ -56,6 +164,26 @@ auto={3}:counter(1/1)
|
||||
#Not all player can use ability
|
||||
[/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
|
||||
auto=foreach(zombie|myhand) counter(1/1,1)
|
||||
autograveyard={B}{B}{B}:moveTo(myhand) myUpkeepOnly
|
||||
@@ -77,6 +205,18 @@ power=4
|
||||
toughness=4
|
||||
[/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
|
||||
target=creature[-multicolor]
|
||||
auto=moveto(mybattlefield)
|
||||
@@ -86,15 +226,15 @@ mana={5}{U}
|
||||
type=Sorcery
|
||||
[/card]
|
||||
[card]
|
||||
name=Gravecrawler
|
||||
abilities=cantblock
|
||||
autograveyard=aslongas(zombie|myBattlefield) {B}:name(cast from graveyard) activate name(cast from graveyard) castcard(normal) assorcery
|
||||
text=Gravecrawler can't block. -- You may cast Gravecrawler from your graveyard as long as you control a Zombie.
|
||||
mana={B}
|
||||
type=Creature
|
||||
subtype=Zombie
|
||||
power=2
|
||||
toughness=1
|
||||
name=Ichor Slick
|
||||
abilities=madness
|
||||
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)
|
||||
target=creature
|
||||
auto=-3/-3
|
||||
autohand=__CYCLING__({2})
|
||||
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.)
|
||||
mana={2}{B}
|
||||
type=Sorcery
|
||||
[/card]
|
||||
[card]
|
||||
name=Ivy Seer
|
||||
@@ -160,6 +300,23 @@ power=1
|
||||
toughness=1
|
||||
[/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
|
||||
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
|
||||
@@ -170,6 +327,24 @@ power=3
|
||||
toughness=1
|
||||
[/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
|
||||
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
|
||||
@@ -189,6 +364,26 @@ mana={X}{X}{U}
|
||||
type=Sorcery
|
||||
[/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
|
||||
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.
|
||||
@@ -247,6 +442,83 @@ mana={G}{W}
|
||||
type=Instant
|
||||
[/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
|
||||
abilities=trample
|
||||
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
|
||||
180595
|
||||
choice 0
|
||||
180595
|
||||
choice 1
|
||||
eot
|
||||
[ASSERT]
|
||||
untap
|
||||
|
||||
@@ -210,6 +210,8 @@ Call_to_Heel_1.txt
|
||||
Call_to_Heel_2.txt
|
||||
castle.txt
|
||||
cathodion.txt
|
||||
CDA#1.txt
|
||||
CDA#2.txt
|
||||
celestial_mantle.txt
|
||||
celestial_purge.txt
|
||||
celestial_sword.txt
|
||||
@@ -309,10 +311,12 @@ evil_presence3.txt
|
||||
evil_presence_i647.txt
|
||||
evil_presence_i647_2.txt
|
||||
exaltedsourcekilled.txt
|
||||
ExchangeController.txt
|
||||
executioners_swing.txt
|
||||
executioners_swing2.txt
|
||||
executioners_swing3.txt
|
||||
explore.txt
|
||||
exquisite_blood_i953.txt
|
||||
Faceless_Butcher.txt
|
||||
fading.txt
|
||||
fangren_pathcutter.txt
|
||||
@@ -345,6 +349,7 @@ foratog.txt
|
||||
force_of_nature.txt
|
||||
force_of_nature2.txt
|
||||
force_of_nature3.txt
|
||||
formidable.txt
|
||||
fountain_of_youth.txt
|
||||
Frogmite.txt
|
||||
fungus_sliver.txt
|
||||
@@ -372,6 +377,7 @@ goblin_lackey4.txt
|
||||
goblin_offensive.txt
|
||||
goblin_razerunners.txt
|
||||
golgari_germination_i153.txt
|
||||
Gravebane_Zombie.txt
|
||||
gravedigger.txt
|
||||
gravity_well.txt
|
||||
gravity_well2.txt
|
||||
@@ -438,6 +444,7 @@ kudzu_i168.txt
|
||||
Lethargy_Trap.txt
|
||||
Lethargy_Trap2.txt
|
||||
leveler.txt
|
||||
leyline_of_the_void.txt
|
||||
lhurgoyf.txt
|
||||
liability.txt
|
||||
library_of_alexandria1.txt
|
||||
@@ -520,6 +527,7 @@ pillory_of_the_sleepless2_i188.txt
|
||||
pillory_of_the_sleepless3_i188.txt
|
||||
pillory_of_the_sleepless4_i188.txt
|
||||
plague_rats.txt
|
||||
pledge_protection.txt
|
||||
plumes_of_peace_i260.txt
|
||||
pouncing_jaguar_i425.txt
|
||||
power_armor.txt
|
||||
@@ -529,6 +537,10 @@ protomatter_powder.txt
|
||||
prowess_of_the_fair.txt
|
||||
prowess_of_the_fair2.txt
|
||||
prowess_of_the_fair3.txt
|
||||
PTInstant.txt
|
||||
PTswitch.txt
|
||||
PT_M15_errata.txt
|
||||
PT_M15_errata2.txt
|
||||
pygmy_troll.txt
|
||||
pyknite_i426.txt
|
||||
pyroclasm.txt
|
||||
@@ -566,6 +578,7 @@ Rending_Vines2.txt
|
||||
resounding_roar.txt
|
||||
resurrection.txt
|
||||
resuscitate_i210.txt
|
||||
restinpeace.txt
|
||||
righteous_cause.txt
|
||||
rise_from_the_grave.txt
|
||||
river_kelpie2_i335.txt
|
||||
@@ -654,6 +667,7 @@ thallid.txt
|
||||
the_tabernacle_at_pendrell_vale.txt
|
||||
thelon_of_havenwood.txt
|
||||
threaten.txt
|
||||
thraximundar.txt
|
||||
throne_of_bone.txt
|
||||
thunder-thrash_elder.txt
|
||||
tidal_warrior_i646.txt
|
||||
@@ -661,6 +675,8 @@ tidal_warrior_i649.txt
|
||||
tidal_warrior_i652.txt
|
||||
Timely_Reinforcements.txt
|
||||
titanic_ultimatum.txt
|
||||
tokenizer.txt
|
||||
tokenizer2.txt
|
||||
torture.txt
|
||||
tranquil_domain.txt
|
||||
turn_to_slag.txt
|
||||
|
||||
@@ -23,6 +23,7 @@ firstmain
|
||||
[PLAYER1]
|
||||
inplay:Aegis of the Meek,Steppe Lynx,Savannah Lions,Courier Hawk
|
||||
graveyard:Swords to Plowshares
|
||||
exile:Raging Goblin
|
||||
life:22
|
||||
[PLAYER2]
|
||||
[END]
|
||||
|
||||
@@ -16,6 +16,7 @@ Angry Mob
|
||||
firstmain
|
||||
[PLAYER1]
|
||||
graveyard:Swords to Plowshares
|
||||
exile:Angry Mob
|
||||
life:25
|
||||
[PLAYER2]
|
||||
inplay:1373,1374,1375
|
||||
|
||||
@@ -19,6 +19,7 @@ Angry Mob
|
||||
[ASSERT]
|
||||
firstmain
|
||||
[PLAYER1]
|
||||
exile:Angry Mob
|
||||
graveyard:Swords to Plowshares,Boomerang
|
||||
life:24
|
||||
[PLAYER2]
|
||||
|
||||
@@ -22,6 +22,7 @@ Angry Mob
|
||||
[ASSERT]
|
||||
firstmain
|
||||
[PLAYER1]
|
||||
exile:Angry Mob
|
||||
life:22
|
||||
[PLAYER2]
|
||||
inplay:1373,1374,1375,Plains
|
||||
|
||||
@@ -25,6 +25,7 @@ Angry Mob
|
||||
[ASSERT]
|
||||
firstmain
|
||||
[PLAYER1]
|
||||
exile:Angry Mob
|
||||
life:22
|
||||
[PLAYER2]
|
||||
inplay:1373,1374,1375,Plains
|
||||
|
||||
@@ -29,6 +29,7 @@ Angry Mob
|
||||
[ASSERT]
|
||||
firstmain
|
||||
[PLAYER1]
|
||||
exile:Angry Mob
|
||||
life:22
|
||||
[PLAYER2]
|
||||
inplay:1373,1374,Plains
|
||||
|
||||
@@ -23,6 +23,7 @@ Angry Mob
|
||||
[ASSERT]
|
||||
firstmain
|
||||
[PLAYER1]
|
||||
exile:Angry Mob
|
||||
inplay:Plains
|
||||
graveyard:Swords to Plowshares
|
||||
life:25
|
||||
|
||||
@@ -22,6 +22,7 @@ Angry Mob
|
||||
firstmain
|
||||
[PLAYER1]
|
||||
graveyard:Swords to Plowshares,Annex,Demystify
|
||||
exile:Angry Mob
|
||||
life:25
|
||||
[PLAYER2]
|
||||
inplay:1373,1374,1375
|
||||
|
||||
@@ -15,4 +15,5 @@ FIRSTMAIN
|
||||
graveyard:183055
|
||||
manapool:{0}
|
||||
[PLAYER2]
|
||||
exile:184994
|
||||
[END]
|
||||
@@ -28,6 +28,7 @@ graveyard:1194
|
||||
manapool:{0}
|
||||
life:24
|
||||
[PLAYER2]
|
||||
exile:1366
|
||||
graveyard:1367
|
||||
inplay:1397
|
||||
manapool:{0}
|
||||
|
||||
@@ -19,6 +19,7 @@ Grizzly Bears
|
||||
[ASSERT]
|
||||
combatattackers
|
||||
[PLAYER1]
|
||||
exile:Grizzly Bears
|
||||
inplay:Cranial Plating,Rod of Ruin
|
||||
graveyard:Swords to Plowshares
|
||||
life:24
|
||||
|
||||
@@ -2,6 +2,15 @@
|
||||
#DESC: Tests whether Curiosity works correctly
|
||||
#DESC: when cast on an opponent's creature
|
||||
#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]
|
||||
firstmain
|
||||
[PLAYER1]
|
||||
@@ -29,7 +38,7 @@ next
|
||||
combatend
|
||||
[PLAYER1]
|
||||
inplay:Curiosity
|
||||
hand:Island
|
||||
library:Island
|
||||
life:14
|
||||
[PLAYER2]
|
||||
inplay:Craw Wurm
|
||||
|
||||
@@ -19,6 +19,7 @@ endinterruption
|
||||
[ASSERT]
|
||||
FIRSTMAIN
|
||||
[PLAYER1]
|
||||
exile:grizzly bears
|
||||
graveyard:fists of ironwood
|
||||
life:22
|
||||
[PLAYER2]
|
||||
|
||||
@@ -17,6 +17,7 @@ endinterruption
|
||||
[ASSERT]
|
||||
FIRSTMAIN
|
||||
[PLAYER1]
|
||||
exile:bad moon
|
||||
manapool:{0}
|
||||
life:20
|
||||
[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]
|
||||
inplay:Plains
|
||||
graveyard:Swords to Plowshares
|
||||
exile:Frost Giant
|
||||
life:28
|
||||
[PLAYER2]
|
||||
graveyard:Suntail Hawk,Scryb Sprites,Raging Goblin
|
||||
|
||||
@@ -18,6 +18,7 @@ Jayemdae Tome
|
||||
[ASSERT]
|
||||
firstmain
|
||||
[PLAYER1]
|
||||
exile:Jayemdae Tome
|
||||
graveyard:Karn's Touch,Swords to Plowshares
|
||||
life:24
|
||||
[PLAYER2]
|
||||
|
||||
@@ -11,6 +11,7 @@ leveler
|
||||
[ASSERT]
|
||||
FIRSTMAIN
|
||||
[PLAYER1]
|
||||
exile:swamp,mountain
|
||||
inplay:leveler
|
||||
[PLAYER2]
|
||||
[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,*
|
||||
manapool:{0}
|
||||
[PLAYER2]
|
||||
exile:1250
|
||||
[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
|
||||
manapool:{0}
|
||||
[PLAYER2]
|
||||
exile:141935
|
||||
life:23
|
||||
[END]
|
||||
@@ -25,6 +25,7 @@ next
|
||||
[assert]
|
||||
secondmain
|
||||
[player1]
|
||||
exile:fungusaur
|
||||
inplay:Thelon Of Havenwood,Thallid,Deathspore Thallid,forest,swamp
|
||||
[player2]
|
||||
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]
|
||||
CLEANUP
|
||||
[PLAYER1]
|
||||
exile:Dregscape Zombie
|
||||
inplay:129754
|
||||
[PLAYER2]
|
||||
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)
|
||||
#endif
|
||||
|
||||
@interface Reachability (private)
|
||||
@interface Reachability ()
|
||||
|
||||
- (NetworkStatus) networkStatusForFlags: (SCNetworkReachabilityFlags) flags;
|
||||
|
||||