20 Commits

Author SHA1 Message Date
xawotihs
a2f510bbd5 Still trying to repair cross compilation 2019-09-07 22:47:45 +02:00
xawotihs
4605d38982 Including cinttypes only when supported by compiler 2019-09-07 21:44:43 +02:00
xawotihs
d9452b02d9 Adds <cinttypes> for definition of uint64_t 2019-09-07 21:32:22 +02:00
xawotihs
1cfee14caa Put back <stdint.h> to avoid having to change the android compilation options 2019-09-07 20:27:05 +02:00
xawotihs
fd3777f08e Now compile with VS2019 2019-09-07 19:46:15 +02:00
Xawotihs
a27216c317 Deactivating mac/ios build as currently broken 2019-09-05 22:24:33 +02:00
xawotihs
8315acbe86 Removed death_grasp.txt and ai/goblin_artillery.txt from the testsuite (see issue#1023) 2019-09-04 22:39:41 +02:00
Xawotihs
7a2f23db45 Using trusty dist as it seems the only one supported for Android. 2019-09-04 16:01:50 +02:00
Xawotihs
711f52e5ce Updating JDK to 7 2019-09-03 23:15:48 +02:00
Xawotihs
0cf8c1a970 Installing ant for android build 2019-09-03 22:40:11 +02:00
Xawotihs
2750b34b4f Trying to fix python dependencies 2019-09-03 22:24:39 +02:00
xawotihs
b023dd89b6 - Should remove an error with the PSP compiler 2019-09-03 22:09:44 +02:00
Eduardo
3d9526a1dd Commander Anthology (CMA) Correction 2019-05-08 16:37:47 -05:00
Eduardo
1b8157ef0e Merge branch 'master' of https://github.com/WagicProject/wagic 2019-05-05 21:17:22 -05:00
Eduardo
8d20fd6483 Fixes to primitives 2019-05-05 21:17:15 -05:00
Eduardo
66741957c3 Revert "Fixes to primitives"
This reverts commit eb7d8850f4.
2019-05-05 21:14:27 -05:00
Eduardo
eb7d8850f4 Fixes to primitives 2019-05-05 21:13:48 -05:00
Eduardo MG
934b9d2856 Delete CM1.zip 2019-05-04 15:57:56 -05:00
Eduardo MG
0af443b753 Commander's Arsenal (CM1)
Commander's Arsenal (CM1) had the wrong name, this is the correct name and set code.
2019-05-04 15:53:57 -05:00
Eduardo MG
41e160ae34 War of the Spark _cards.dat 2019-05-01 17:57:12 -05:00
21 changed files with 3298 additions and 110 deletions

View File

@@ -1,4 +1,5 @@
language: cpp
dist: trusty
branches:
except:
- latest-master
@@ -9,9 +10,9 @@ before_install:
- export BUILD_Qt=YES
- export BUILD_MAC=NO
# Only building on Mac when not handling pull request
- if [ "$TRAVIS_PULL_REQUEST" == "false" ]; then
export BUILD_MAC=YES;
fi
# - if [ "$TRAVIS_PULL_REQUEST" == "false" ]; then
# export BUILD_MAC=YES;
# fi
- sudo apt-get update -qq
# Building for PSP here
- if [ "$BUILD_PSP" == "YES" ]; then
@@ -33,7 +34,7 @@ before_install:
export ANDROID="android-sdk-linux/tools/android" &&
if [ `uname -m` = x86_64 ]; then
sudo dpkg --add-architecture i386 && sudo apt-get update &&
sudo apt-get install -qq --force-yes libgd2-xpm-dev libc6-i386 lib32stdc++6 lib32gcc1 lib32ncurses5 lib32z1 jq; fi &&
sudo apt-get install -qq --force-yes libgd2-xpm-dev libc6-i386 lib32stdc++6 lib32gcc1 lib32ncurses5 lib32z1 jq ant; 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.3.4-linux.tgz -nv;
fi
@@ -48,6 +49,7 @@ install:
$ANDROID list sdk --extended -a &&
echo yes | $ANDROID update sdk -a -t tools,platform-tools,build-tools-23.0.1,android-10 --no-ui --force --no-https;
fi
- sudo python -m easy_install --upgrade pyOpenSSL
- sudo pip install pyjavaproperties
- sudo pip install github3.py
- sudo pip install cpp-coveralls

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@@ -1,10 +1,14 @@
#define __STDC_LIMIT_MACROS
#include "../../include/DebugRoutines.h"
#include "Threading.h"
#include <errno.h>
#ifdef WIN32
#pragma comment(lib,"WSOCK32.LIB")
#include <stdio.h>
#include <conio.h>
#include <winsock.h>
#include <winsock.h>
#include <fcntl.h>
#elif LINUX
#include <unistd.h>
@@ -16,7 +20,6 @@
#endif //WINDOWS
#include "../../include/JSocket.h"
#include "../../include/DebugRoutines.h"
JSocket::JSocket(string ipAddr)

View File

@@ -0,0 +1,96 @@
[meta]
author=Wagic Team
name=Commander's Arsenal
year=2012
total=18
[/meta]
[card]
primitive=Chaos Warp
id=338441
rarity=R
[/card]
[card]
primitive=Command Tower
id=338442
rarity=C
[/card]
[card]
primitive=Decree of Pain
id=338453
rarity=R
[/card]
[card]
primitive=Desertion
id=338454
rarity=R
[/card]
[card]
primitive=Diaochan, Artful Beauty
id=338449
rarity=R
[/card]
[card]
primitive=Dragonlair Spider
id=338446
rarity=R
[/card]
[card]
primitive=Duplicant
id=338451
rarity=R
[/card]
[card]
primitive=Edric, Spymaster of Trest
id=338443
rarity=R
[/card]
[card]
primitive=Kaalia of the Vast
id=338444
rarity=M
[/card]
[card]
primitive=Loyal Retainers
id=338450
rarity=U
[/card]
[card]
primitive=Maelstrom Wanderer
id=338447
rarity=M
[/card]
[card]
primitive=Mind's Eye
id=338452
rarity=R
[/card]
[card]
primitive=Mirari's Wake
id=338455
rarity=R
[/card]
[card]
primitive=Rhystic Study
id=338457
rarity=C
[/card]
[card]
primitive=Scroll Rack
id=338458
rarity=R
[/card]
[card]
primitive=Sylvan Library
id=338456
rarity=R
[/card]
[card]
primitive=The Mimeoplasm
id=338445
rarity=M
[/card]
[card]
primitive=Vela the Night-Clad
id=338448
rarity=M
[/card]

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -2278,7 +2278,7 @@ type=Artifact
[card]
name=Rhonas's Monument
auto=lord(creature[green]|mycastingzone) altercost(colorless,-1)
auto=@movedto(creature|mystack):target(creature|mybattlefield) 2/2 ueot && trample ueot
auto=@movedto(creature|mystack):target(creature|mybattlefield) transforms((,newability[2/2 ueot],newability[trample ueot]))
text=Green creature spells you cast cost {1} less to cast. -- Whenever you cast a creature spell, target creature you control gets +2/+2 and gains trample until end of turn.
mana={3}
type=Legendary Artifact

View File

@@ -288,7 +288,7 @@ auto=draw:7 opponent
auto=moveto(mylibrary) all(*|myhand)
auto=moveto(mylibrary) all(*|mygraveyard) && shuffle
auto=draw:7 controller
auto=moveto(exile) all(this)
auto=moveto(exile)
text=Assist (Another player can pay up to {5} of this spell's cost.) -- Each player shuffles their hand and graveyard into their library, then draws seven cards. Exile Game Plan.
mana={5}{U}
type=Sorcery

View File

@@ -238,7 +238,8 @@ toughness=2
[card]
name=Unbreakable Formation
auto=if compare(restriction{assorcery}~morethan~0) then all(creature|myBattlefield) counter(1/1) else
auto=if compare(restriction{assorcery}~morethan~0) then all(creature|myBattlefield) counter(1/1)
auto=if compare(restriction{assorcery}~morethan~0) then all(creature|myBattlefield) vigilance
auto=all(creature|myBattlefield) indestructible ueot
text=Creatures you control gain indestructible until end of turn. -- Addendum — If you cast this spell during your main phase, put a +1/+1 counter on each of those creatures and they gain vigilance until end of turn.
mana={2}{W}

View File

@@ -501,7 +501,9 @@ subtype=Davriel
[card]
name=Deathsprout
target=creature
auto=destroy and!(moveTo(myBattlefield) and!(tap(noevent))! target(land[basic]|myLibrary))!
auto=destroy
aicode=activate moveTo(myBattlefield) and!(tap(noevent))! target(*[basic]|myLibrary)
auto=name(search card) reveal:plibrarycount optionone name(choose card) target(*[basic]|reveal) moveto(ownerlibrary) and!( becomes(tobecast) ueot )! optiononeend optiontwo name(put back) target(<1>*|reveal) moveto(ownerlibrary) and!( all(*|reveal) moveto(ownerlibrary) and!(shuffle)! )! optiontwoend afterrevealed all(tobecast|mylibrary) moveto(ownerlibrary) and!(moveTo(myBattlefield) and!(tap(noevent))!)! afterrevealedend revealend
text=Destroy target creature. Search your library for a basic land card, put it onto the battlefield tapped, then shuffle your library.
mana={1}{B}{B}{G}
type=Instant

View File

@@ -150,7 +150,7 @@ toughness=3
[card]
name=Imperial Lancer
auto=aslongas type(dinosaur|mybattlefield)~morethan~0 double strike
auto=aslongas(dinosaur|mybattlefield) double strike
text=Imperial Lancer has double strike as long as you control a Dinosaur.
mana={W}
type=Creature
@@ -601,7 +601,7 @@ toughness=2
name=Lookout's Dispersal
target=*|stack
auto=name(counter spell) target(*|stack) transforms((,newability[pay[[{2}]] name(pay 2 mana) donothing?fizzle])) forever
autohand=aslongas type(pirate|mybattlefield)~morethan~0 altercost(colorless,-1)
autohand=aslongas(pirate|mybattlefield) altercost(colorless,-1)
text=Lookout's Dispersal costs {1} less to cast if you control a Pirate. -- Counter target spell unless its controller pays {4}.
mana={2}{U}
type=Instant
@@ -725,7 +725,7 @@ type=Legendary Land
[card]
name=Shaper Apprentice
auto=aslongas type(other merfolk|mybattlefield)~morethan~0 then flying
auto=aslongas(other merfolk|mybattlefield) flying
text=Shaper Apprentice has flying as long as you control another Merfolk.
mana={1}{U}
type=Creature
@@ -1004,7 +1004,7 @@ toughness=4
[card]
name=Desperate Castaways
auto=aslongas type(artifact|mybattlefield) ~lessthan~ 0 then cantattack
auto=aslongas(artifact|mybattlefield)<1 cantattack
text=Desperate Castaways can't attack unless you control an artifact.
mana={1}{B}
type=Creature
@@ -1372,7 +1372,6 @@ toughness=2
[card]
name=Captivating Crew
abilities=haste
auto={3}{R}:target(creature) untap && haste && alias=129767
text={3}{R}: Gain control of target creature an opponent controls until end of turn. Untap that creature. It gains haste until end of turn. Activate this ability only any time you could cast a sorcery.
mana={3}{R}
@@ -1454,7 +1453,7 @@ toughness=2
[card]
name=Headstrong Brute
abilities=cantblock
auto=aslongas type(other pirate|mybattlefield)~morethan~0 then menace
auto=aslongas(other pirate|mybattlefield) menace
text=Headstrong Brute can't block. -- Headstrong Brute has menace as long as you control another Pirate.
mana={2}{R}
type=Creature
@@ -1642,8 +1641,8 @@ subtype=Aura
[card]
name=Thrash of Raptors
auto=aslongas type(dinosaur|mybattlefield)~morethan~0 then 2/0
auto=aslongas type(dinosaur|mybattlefield)~morethan~0 then trample
auto=aslongas(other dinosaur|mybattlefield) 2/0
auto=aslongas(other dinosaur|mybattlefield) trample
text=As long as you control another Dinosaur, Thrash of Raptors gets +2/+0 and has trample.
mana={3}{R}
type=Creature
@@ -1951,7 +1950,7 @@ toughness=1
[card]
name=Kumena's Speaker
auto=aslongas type(other merfolk,island|mybattlefield)~morethan~0 then 1/1
auto=aslongas(other merfolk,island|mybattlefield) 1/1
text=Kumena's Speaker gets +1/+1 as long as you control another Merfolk or an Island.
mana={G}
type=Creature
@@ -2629,8 +2628,8 @@ type=Sorcery
[card]
name=Jace's Sentinel
auto=aslongas type(jace|mybattlefield)~morethan~0 then 1/0
auto=aslongas type(jace|mybattlefield)~morethan~0 then unblockable
auto=aslongas(jace|mybattlefield) 1/0
auto=aslongas(jace|mybattlefield) unblockable
text=As long as you control a Jace planeswalker, Jace's Sentinel gets +1/+0 and can't be blocked.
mana={1}{U}
type=Creature

View File

@@ -15273,8 +15273,9 @@ toughness=2
[/card]
[card]
name=Brood Birthing
auto=aslongas(eldrazi spawn|myBattlefield) token(Eldrazi Spawn,Creature Eldrazi Spawn,0/1) and!( transforms((,newability[{S}:Add{1}])) forever )!*3
text=If you control at least one 0/1 Eldrazi Spawn creature token, put three 0/1 colorless Eldrazi Spawn creature tokens onto the battlefield. They have "Sacrifice this creature: Add {1} to your mana pool."
auto=aslongas(eldrazi spawn|myBattlefield) token(Eldrazi Spawn,Creature Eldrazi Spawn,0/1) and!( transforms((,newability[{S}:Add{1}])) forever )!*2
auto=token(Eldrazi Spawn,Creature Eldrazi Spawn,0/1) and!( transforms((,newability[{S}:Add{1}])) forever )!
text=If you control an Eldrazi Spawn, create three 0/1 colorless Eldrazi Spawn creature tokens. They have "Sacrifice this creature: Add {C}." Otherwise, create one of those tokens.
mana={1}{R}
type=Sorcery
[/card]
@@ -19978,7 +19979,7 @@ toughness=1
[card]
name=Cinder Shade
auto={B}:1/1
auto={R}{S}:target(other creature) dynamicability<!powerstrike>!
auto={R}{S}:target(other creature) dynamicability<!powerstrike!>
text={B}: Cinder Shade gets +1/+1 until end of turn. -- {R}, Sacrifice Cinder Shade: Cinder Shade deals damage equal to its power to target creature.
mana={1}{B}{R}
type=Creature
@@ -67813,7 +67814,7 @@ toughness=7
name=Liturgy of Blood
target=creature
auto=destroy
auto=add{B}{B}{B}
auto=add{B}{B}{B} controller
text=Destroy target creature. Add {B}{B}{B} to your mana pool.
mana={3}{B}{B}
type=Sorcery
@@ -68039,7 +68040,7 @@ toughness=1
[/card]
[card]
name=Llanowar Empath
auto=scry:2 scrycore choice name(Choose creature) target(creature|reveal) moveto(myhand) scrycoreend scryend
auto=scry:2 scrycore choice name(Choose creature) target(<1>creature|reveal) moveto(myhand) scrycoreend scryend
text=When Llanowar Empath enters the battlefield, scry 2, then reveal the top card of your library. If it's a creature card, put it into your hand. (To scry 2, look at the top two cards of your library, then put any number of them on the bottom of your library and the rest on top in any order.)
mana={3}{G}
type=Creature
@@ -69587,6 +69588,7 @@ type=Sorcery
[/card]
[card]
name=Madcap Skills
target=creature
auto=teach(creature) +3/0
auto=teach(creature) menace
text=Enchant creature -- Enchanted creature gets +3/+0 and can't be blocked except by two or more creatures.
@@ -81177,7 +81179,7 @@ toughness=1
[/card]
[card]
name=Noyan Dar, Roil Shaper
auto=@movedto(*[instant;sorcery]|mystack):may target(land|mybattlefield) transforms((Elemental Creature,newability[counter(1/1,3)],newability[haste])) forever
auto=@movedto(*[instant;sorcery]|mystack):may target(land|mybattlefield) transforms((Elemental Creature,newability[counter(1/1.3)],newability[haste])) forever
text=Whenever you cast an instant or sorcery spell, you may put three +1/+1 counters on target land you control. If you do, that land becomes a 0/0 Elemental creature with haste that's still a land.
mana={3}{W}{U}
type=Legendary Creature
@@ -106315,7 +106317,7 @@ type=Instant
[/card]
[card]
name=Sin Collector
auto=target(opponent) reveal:type:*:targetedpersonshand revealzone(targetedpersonshand) optionone name(choose card) notatarget(<1>*[instant;sorcery]|reveal) moveto(exile) optiononeend optiontwo name(put back) target(<1>*|reveal) moveto(ownerhand) and!( all(*|reveal) moveto(ownerhand) )! optiontwoend revealend
auto=target(opponent) reveal:type:*:targetedpersonshand revealzone(targetedpersonshand) optionone name(choose card) notatarget(<1>*[instant;sorcery]|reveal) moveto(exile) optiononeend optiontwo all(*|reveal) moveto(ownerhand) optiontwoend revealend
text=When Sin Collector enters the battlefield target opponent reveals his or her hand. You choose an instant or a sorcery card from it and exile that card.
mana={1}{W}{B}
type=Creature

View File

@@ -264,7 +264,6 @@ dauntless_escort.txt
dauthi_embrace.txt
dawn_of_the_dead.txt
deadshot.txt
death_grasp.txt
death_ward.txt
decree_of_justice.txt
defense_of_the_heart.txt
@@ -739,5 +738,4 @@ momir/overcost.txt
########################
#AI Tests
########################
ai/goblin_artillery.txt
ai/proliferate_simple.txt

View File

@@ -1,6 +1,9 @@
#ifndef PRECOMPILEDHEADER_H
#define PRECOMPILEDHEADER_H
#define __STDC_LIMIT_MACROS
#include <algorithm>
#include <fstream>
#include <iostream>
@@ -21,11 +24,6 @@
#include "GameOptions.h"
#if !defined(WP8) && !defined(QT_CONFIG)
#include <boost/shared_ptr.hpp>
#include <boost/scoped_ptr.hpp>
#endif
#if defined (WP8) || defined (IOS) || defined (ANDROID) || defined (QT_CONFIG) || defined (SDL_CONFIG)
#define TOUCH_ENABLED
#endif

View File

@@ -1,7 +1,7 @@
#ifndef WRESOURCE_FWD_H
#define WRESOURCE_FWD_H
#if (__cplusplus > 199711L)
#if (__cplusplus > 199711L) || (_MSC_VER >= 1700)
#include <memory>
typedef std::shared_ptr<JQuad> JQuadPtr;
#elif defined(QT_CONFIG)

View File

@@ -1,3 +1,4 @@
#include "PrecompiledHeader.h"
#include "DeckView.h"
#include "GameOptions.h"

View File

@@ -4574,7 +4574,7 @@ int AbilityFactory::abilityEfficiency(MTGAbility * a, Player * p, int mode, Targ
if (AAMover * aam = dynamic_cast<AAMover *>(a))
{
MTGGameZone * z = aam->destinationZone(target);
if (tc && tc->targetsZone(p->game->library) || tc && tc->targetsZone(p->game->graveyard) || tc && tc->targetsZone(p->game->hand))
if ((tc && tc->targetsZone(p->game->library)) || (tc && tc->targetsZone(p->game->graveyard)) || (tc && tc->targetsZone(p->game->hand)))
{
if (z == p->game->hand || z == p->game->inPlay)
return BAKA_EFFECT_GOOD;