It is currently 16 Apr 2024, 20:23
   
Text Size

MAGE Join the developers

Moderators: North, BetaSteward, noxx, jeffwadsworth, JayDi, TheElk801, LevelX, CCGHQ Admins

Re: MAGE Join the developers

Postby MarcoMarin » 22 Mar 2016, 21:14

Thanks! 1 question about the tracker: There are color coded cards, all pending for implementation.. What does gray/white/teal mean? or are these just to separate the rows better?

About the memory, it didn't work at first.. I'd guess the "execute goals: clean install" would call on both of those, which correspond to each (build has an execute goal of "install"). But I set that on Mage Root as well and it worked.

Which suggests an idea (for the future, since it's not urgent), to separate sets into groups of 9-15 sets (3-5 blocks), specially as they become complete (and need not be recompiled often). If magic doesn't die, that's probably the most scalable option to accommodate new cards.:)

Alright! I'll be out of town tomorrow but I'll begin to rip on Thursday.
MarcoMarin
 
Posts: 32
Joined: 20 Mar 2016, 07:49
Has thanked: 16 times
Been thanked: 2 times

Re: MAGE Join the developers

Postby MarcoMarin » 23 Mar 2016, 00:14

Coded my first card! Just to get the drill down. Sindbad.

Tested and it works. (non-implemented cards doesn't download images? or was it just a coincidence? I had to make it try again :))

Can't push the commits tho.. tried making a Github account (user: Marco-Marin) to no avail. I guess you must add me to permissions.
MarcoMarin
 
Posts: 32
Joined: 20 Mar 2016, 07:49
Has thanked: 16 times
Been thanked: 2 times

Re: MAGE Join the developers

Postby MarcoMarin » 25 Mar 2016, 00:10

Hi, here is a summary of today's work: Oubliette, Serendib Djinn, Cyclone.

Except that with Cyclone, I'm stuck trying to add a new Counter Type Symbol (wind), I've added it right beside all others, but compilation fails. (clean build and all)

Below are more details and more technical questions that may help speed up the getting used to the code. Thanks for any clarification.
| Open
Oubliette. I need someone to test whether this condition of "returning aura/counters/tapped" when oubliette leaves play. I'd assume it's the default behavior for exiled cards, since the examples I saw had no apparent code for it.

Why the extra step of creating a filter, when a card like Unsummon does "targetCreature" directly? any advantages for say, presenting the user with the choice or something?

Serendib Djinn: There is no "TargetControlledLandPermanent", so I tried to combine controlled permanent with LandPermanent. Need testing.

I may have inadvertently altered LordOfThePit, I'm not sure my attempts to revert the revision history worked. How can I be sure? Although it doesn't seem to have marked it for alterations. How can I revert mistakes in the future?

FilterLandPermanent have other overloaded versions which suggests it may be wise to pass the string "Land" to its superclass version. I tried the vanilla version, no strings, so please someone test if having no lands kills the Djinn as expected in any possible context.

Cyclone. It's probably safe to assume I must manually add the counter type constant, so I did. It didn't work though, compilation complained about missing symbol.

Also, another overload on DoIfCostPaid, to add an ELSE effect (that is, if the Cost is not paid) would have been quite useful. :) I don't see how I can use the return value of false, if I'm adding this effect on the constructor?

Is there a way to create mana costs from the converted mana total? (specially if its mono color) looked for how khalni hydra was implemented (lucky me I saw this card couple days back :) I really don't know any cards from mirage onwards) but it's auto-generated so it goes manually. I did a for loop =/
MarcoMarin
 
Posts: 32
Joined: 20 Mar 2016, 07:49
Has thanked: 16 times
Been thanked: 2 times

Re: MAGE Join the developers

Postby escplan9 » 25 Mar 2016, 02:08

Your pushes will only go to your local (origin) repository. You then create a pull request from there to the forked remote (upstream) repository that is XMage.

https://help.github.com/articles/config ... or-a-fork/
https://help.github.com/articles/syncing-a-fork/

If you're unfamiliar with what to do, those should give you a good starting point.

If you have it setup right, it'll look similar to this:
Code: Select all
C:\Users\Derek\Documents\NetBeansProjects\mage>git remote -v
origin  https://github.com/drmDev/mage (fetch)
origin  https://github.com/drmDev/mage (push)
upstream        https://github.com/magefree/mage.git (fetch)
upstream        https://github.com/magefree/mage.git (push)
Then when you have new code, you merge in the current code from the remote to your local repository, then push your changes to your local repository. It should go similar to this:

Code: Select all
git fetch upstream
git checkout master
git merge upstream/master
git commit -m "merge"
git push
git add (new file)
git commit -m "new file msg"
git push
Then when you go to your local repository (I have mine on github), I just click Create Pull Request and that's all. You'll then see in the XMage git your Pull Request. The higher level developers here will look it over and merge it into the XMage default branch if it checks out okay.

Hope I explained it well enough...
escplan9
 
Posts: 257
Joined: 10 Aug 2015, 22:38
Has thanked: 26 times
Been thanked: 40 times

Re: MAGE Join the developers

Postby MarcoMarin » 25 Mar 2016, 09:12

Nice! It took me a while to figure out why I'd need another local repo and how could I even request a pull for the official project #-o .. but I get it now. 8) Thanks.

I was also forgetting the crucial commit step. :oops: But I'll postpone the pull request for after someone help me fix the CounterType problem, since it's breaking compilation. (Edit: it doesn't show the xMage repo to compare when I try to create a Pull request :?: )

In the meantime the higher lvls can already check it out at: https://github.com/Marco-Marin/mage/

Onwards. :twisted:
MarcoMarin
 
Posts: 32
Joined: 20 Mar 2016, 07:49
Has thanked: 16 times
Been thanked: 2 times

Re: MAGE Join the developers

Postby kiranearitachi » 27 Mar 2016, 16:24

For some reason I am missing the main classes when I go to run the server and client.
kiranearitachi
 
Posts: 12
Joined: 01 Jul 2014, 22:23
Has thanked: 0 time
Been thanked: 0 time

Re: MAGE Join the developers

Postby fireshoes » 27 Mar 2016, 16:32

Like "NoClassDefFound"? That is the problem I am having since yesterday when I reinstalled.
User avatar
fireshoes
 
Posts: 536
Joined: 20 Aug 2014, 03:51
Has thanked: 201 times
Been thanked: 49 times

Re: MAGE Join the developers

Postby kiranearitachi » 27 Mar 2016, 17:20

no i cant run the server or client at all
Attachments
server.PNG
kiranearitachi
 
Posts: 12
Joined: 01 Jul 2014, 22:23
Has thanked: 0 time
Been thanked: 0 time

Re: MAGE Join the developers

Postby MarcoMarin » 29 Mar 2016, 19:18

Alright, with this new batch of cards (10 unique, 22 total), I brought Arabian Nights from 67.95% to 91.03%.

It's COMPLETE, except for the cards which need new code for rules, such as antes, playing a subgame, grabbing a card from outside the game (how would that even work, lol), library history(Jandor's Ring but sounds generally useful to have such a feature), and -- most importantly -- because many cards need it: BANDING.

And also for spjspj seems to be coding Guardian Beast. :) Let me know if you wanna move on to something else, in case you didn't begin it yet?

If the devs want to implement BANDING now, I can lend some help, which would be an opportunity to have another dev know the code enough to help out later. I know C/C++/JS so if only the Java infrastructure is set (not unlike what we do with the gen-cards script), I can code away whatever you guys need.

I also fixed the Counters problem! It would be nice to try a Pull Request now, if only I knew how. :'( :cry:

Do the forked project have to add my repo as a contributor for the option to appear on my side? (I noticed many contributors there)

I'll only be able to test them more thoroughly once my friend can get the patch from updating his client.

Finally: A few more technical questions that came up while coding these cards, for anyone willing to speed up my Card Coding abilities so we finish this project faster. :)

| Open
ghazban = (!tie ok?), ide warns of possible null pointer dereference.. should I worry that the card will be removed while the effect is on the stack and the game may not handle it elegantly? (coincidence: this card had a very similar logic to the previous uncoded one, maybe there is a pattern here to add a built-in function: check for ties/lowest/biggest in some predicate.. power/life/etc.. basically SORT into a filter would be very convenient)

YdwenEfreet, needs testing whether anything else is needed to unblock the attacker or if removing from combat and capping max blocks at zero is enough.

Abu Jafar, the text is not quite clear if the effect lingers longer than combat ("blockING" seem to suggest it doesn't) but it also suggests if, for example, I kill it with a bolt, even if the other creature is weaker(0/1) and can't take damage say, it would die as well. (so not simply a deathtouch effect?)

Jihad, can it have 2 separate enterTheBattleField triggers, or must I combine it somehow? Also need some testing upon death, cause it's not quite immediate (waiting for step change)..

Aladdin's Lamp: Back then you could lose by drawing too many cards. Heroes Podium doesnt seem to allow this (it check the min between deck and draws). Should I replace this with a lose condition?; card.moveToZone, has a flag which in the declaration file is described as IfZone.. does this mean it's context dependent? For example, sending to the top vs the bottom of the library?; Heroes Podium also doesnt seem to reveal the card to other players? (I've seen in a flag in a draw function for this but those don't seem to have it?)

Sandals of Abdallah: The way I got the target to be tracked is weird, since it doesn't get assigned as the card come into play it may be null, depending on how the engine works.. Although, Stone Giant seems to get away with it :)

Pyramids: back in the day "destruction" was not technically "damage", hopefully "preventing all damage" (as per modern description)will work nowadays?

MagneticMountain: to make it reiterate the choice I tried checking if the last choice went through, then I call a copy of the effect itself to ask the next one. But this doesn't seem to work because super doesn't call apply()?! so I had to create a new predicate for something simple: Tapped... But I still copy the effect, hope it works :)
MarcoMarin
 
Posts: 32
Joined: 20 Mar 2016, 07:49
Has thanked: 16 times
Been thanked: 2 times

Re: MAGE Join the developers

Postby Doctor Weird » 29 Mar 2016, 22:05

I'm not on the dev team, mind you, but I saw a couple of things on your post that I thought I would reply to.

MarcoMarin wrote:Abu Jafar, the text is not quite clear if the effect lingers longer than combat ("blockING" seem to suggest it doesn't) but it also suggests if, for example, I kill it with a bolt, even if the other creature is weaker(0/1) and can't take damage say, it would die as well. (so not simply a deathtouch effect?)
I could be understanding your point wrong here, but Abu Ja'far's ability is definitely not a Deathtouch effect. The "blocking or blocking by it" does mean it only lasts for combat, as by the time Main Phase 2 starts there are no longer any blockers (basically, in XMage terms, this is when the arrows indicating blockers disappear from the table). If Abu dies (destroyed, lethal damage, sacrifice, etc., basically "put into your graveyard from play" in old terms) it will bury any blockers/blocked creatures assigned to him, it doesn't matter how it died, even if you Lightning Bolt your own Abu before the damage is exchanged between creatures in combat, it still drags them with him. Abu does not need to ever touch the other creature(s), they just need to be assigned to him during combat for him to bring them down.

MarcoMarin wrote:Jihad, can it have 2 separate enterTheBattleField triggers, or must I combine it somehow?
If it causes the game to put two separate triggers on the stack then yes, you definitely need to combine it; otherwise this would allow for players to play things in between the choosing of the color and the opponent, which would open way for all sorts of messy stuff to happen.

MarcoMarin wrote:Aladdin's Lamp: Back then you could lose by drawing too many cards. Heroes Podium doesnt seem to allow this
Your point probably went right over my head, because I don't get how Heroes' Podium has anything to do with drawing; and you still lose (and always have lost) by not being able to draw a card from your library when required, which I'm pretty sure is just handled by the general rules of the game on XMage, not by a card's code in specific.

MarcoMarin wrote:Pyramids: back in the day "destruction" was not technically "damage", hopefully "preventing all damage" (as per modern description)will work nowadays?
Again, I'm either reading your point wrong or you are understanding the current oracle text of the card wrong (it is indeed a weird card when you first read it in today's terms). Destruction and damage are still two different things, and at no point does Pyramids prevent any damage. What it does is place a replacement effect that waits "in the air" until the land is about to be destroyed or the turn ends. If the land would be destroyed instead it isn't and all damage is removed from it. The removal of damage is done in place of the destruction, and because if the land was animated somehow (e.g.: Living Lands) then not removing the damage from it would cause it to be destroyed again right after it was saved, because it still had lethal damage on top of it (if it had any). This is, in some ways, similar to how regeneration will prevent a creature from dying and also remove all damage it gathered so far this turn, in order to not have it die right after being regenerated, because state based effects are constantly checked.

MarcoMarin wrote:such as antes
I don't really see this working with XMage, and seeing how even official paper Magic has seemingly given up on the ante mechanic years ago and only wishes it never existed in the first place, it might be less trouble to just do like them and pretend ante cards are not a real thing anymore.

MarcoMarin wrote:grabbing a card from outside the game (how would that even work, lol)
Depends, but the practice is usually to go for the sideboard (take the more recent Spawnsire of Ulamog as an example). Remember that cards in exile (old "removed from the game") don't count as "outside the game" since exile is its own zone.

MarcoMarin wrote:If the devs want to implement BANDING now
Oh dear lord, you're giving me a form of mild PTSD with that and I'm sure I could just hear a faint collective shiver going down the spine of many Magic judges of old at the mere mention of that ability. I don't think the poor devs deserve such a harsh punishment as to try and implement Banding, haha.
Doctor Weird
 
Posts: 180
Joined: 25 May 2015, 01:33
Has thanked: 7 times
Been thanked: 52 times

Re: MAGE Join the developers

Postby MarcoMarin » 30 Mar 2016, 15:55

Thanks Dr.Weird. I'll try to remember it when I test them. It was only my 1st week with the code so it's bound to be lots of bugs :) But I learned lots and the pace and quality will surely improve.

Below are more details:

> " it doesn't matter how it died, even if you Lightning Bolt your own Abu before the damage is exchanged"
Yes, but does it matter WHEN it died? what if I wait until just before the end step and THEN bolt him? Are they still going with him?
> which would open way for all sorts of messy stuff to happen.
I agree. I'm more worried about only 1 of the effects happening, either only the 1st one or by the 2nd one overwriting the 1st.. I'm still to test it but since the card isn't created yet (this is done in its constructor) I doubt separation occurs.
> because I don't get how Heroes' Podium has anything to do with drawing
It uses the same function I used to probe the top of the library.. the thing is Heroes Podium was quite careful not to use it on more cards than the library currently has.
> handled by the general rules of the game on XMage
Yes, which is probably why it was so careful. tho IRL I wonder what if the players pays more, since the card doesnt limit this.. tho maybe simply "looking at" doesn't kill anybody ;)
> would cause it to be destroyed again
Precisely, I was trying to get away with only 1 function: to remove all damage :) The new rulings text suggested I could (but only if vanilla 'destruction' was also cleared by it).. hmm, maybe I could use only regeneration then, although this is probably the opposite problem: if it's not a "living land" then it will probably be ignored. I guess I'll not be able to cut corners here. =/
> it might be less trouble to just do like them and pretend ante cards are not a real thing anymore.
I agree :) Maybe after we get the whole collection down and are feeling bored, lol
> but the practice is usually to go for the sideboard
It's the only viable alternative I see. Otherwise, here in the digital world would be just like taking ANY card from the entire game, hahaha
> such a harsh punishment as to try and implement Banding, haha.
hahahahaha I think I may have blocked the trauma.. I have only a slight recollection of those problems :)

I was thinking of setting up something simplistic, just "temporarily" of course (hehehe, until someone complains, aka "indefinitely"), like simply giving the damage redirection rights to the attacker and be done with it. But most importantly have the ability be a canonical one in the code (and allow a 1 line code to add it, check if it is active even if not "working", etc), this would enable cards like Camel there to at least exist and work with its other effects. :)

It would also be a good excuse for the devs to teach/guide me in how to go about it, so in the future I may be more useful when new stuff come up, or debugging existing stuff, and simply know my way through the code better with obvious advantages.

Meanwhile I'll proceed full steam ahead towards Antiquities and leave these for when I get around to test stuff, possibly this weekend.

Cool! Now that I see at least someone may be reading those, I'll be more careful on writing it.. possibly posting them in the "card implementation" thread? :) Thanks!
MarcoMarin
 
Posts: 32
Joined: 20 Mar 2016, 07:49
Has thanked: 16 times
Been thanked: 2 times

Re: MAGE Join the developers

Postby Doctor Weird » 30 Mar 2016, 17:37

MarcoMarin wrote:Yes, but does it matter WHEN it died? what if I wait until just before the end step and THEN bolt him? Are they still going with him?
Yes, it does matter. As I said above, once the combat phase is over (and the second main phase begins) there are no longer any blockers assigned to anyone, so any creatures who were previously blocking or being blocked by Abu no longer qualify as blockers/blocked by him. Once damage calculations are done and combat ends any creatures still left standing "clock out" from blocking assignments. If you Bolt your Abu after combat already ended he won't destroy anything as he's no longer blocking or being blocked, since we're no longer in combat. For Abu's ability to trigger he must currently have blockers/blocked creatures as he dies.

MarcoMarin wrote:It uses the same function I used to probe the top of the library.. the thing is Heroes Podium was quite careful not to use it on more cards than the library currently has.

Yes, which is probably why it was so careful. tho IRL I wonder what if the players pays more, since the card doesnt limit this.. tho maybe simply "looking at" doesn't kill anybody ;)
This is probably why I wasn't getting it (that and because I'm not looking at any card code and how it does things), but when a card tells you to look at the top # of your library and you have less than # you simply look at as many as you can (meaning all of them), with no consequence, because looking at the top cards of your library is not the same as drawing. When a card tells you to draw 3 cards and you can only draw, say, 2 cards, you lose the game. When a card tells you to look at the top 3 cards of your library and you only have 2, you just look at those 2, with no harm or penalty. Heroes' Podium never tells you to draw, it tells you to put something in your hand, which is not the same thing, for the lose condition to trigger you must be told to draw specifically.

Total guess here, because I'm neither looking at it neither do I know how it's usually done, but my guess is that Heroes' Podium and other cards that look at X top cards have built-in checks for how many cards are in your library so they don't cause errors when someone pays for more than what they have left to look at, not because it would cause a game loss.

In Aladdin's Lamp case, let's say you have 0 cards left in your library, now you activate it for 1 mana during your upkeep, before your draw step; the replacement effect is now hanging in the air, waiting for your next draw or for the turn to end; your draw step comes along, but because of the Lamp's ability your draw gets replaced with you looking at the top 1 card of your library, you have none, so you look at nothing and put nothing on the bottom of your library in a random order (shuffling those non-existing cards very neatly) and 1 nothing on the top, then comes the sucker punch: the Lamp orders you to now draw a card, you cannot, so you lose the game.

Basically, Aladdin's Lamp can't really be used to save oneself from losing to an empty library, unlike something like Tomorrow, Azami's Familiar, which can, because it replaces all your draws with something that never involves the act of "drawing" (wording is key here, as "putting in your hand from library" is not the same as "draw").

Two final things on the Lamp, because as with so many old Magic cards some people get really confused by them when compared to today's more simplistic and streamlined mechanics: If you activate the Lamp and then play a, let's say, Ancestral Recall, the Lamp affects the first of your three draws and then you immediately draw your other 2 without any interruptions, meaning nothing can be played or go on the stack between the 1 and the other 2 cards, since they're all still part of Ancestral Recall being resolved, it's just that the first draw of the three happens to involve the whole look-at-X-and-put-all-but-one-on-the-bottom-and-then-draw song and dance.

And just as it says on the card rulings on Gatherer, if you happen to have two Lamps and activate them both, the second one will replace the draw caused by the first. It's a bit confusing at first but basically, with the two abilities hanging in the air, your next draw will be replaced by the first Lamp, but by the time that first Lamp is finishing it will itself call for a draw, and the second hanging ability triggers, making you do another peek and choose again.

Okay, I'll stop now, I could easily go on all day with the convoluted examples of this card's mechanics. No wonder they stopped printing crazy wacky cards like this so long ago, they're nightmare fuel as far as rulings go, haha.

MarcoMarin wrote:Precisely, I was trying to get away with only 1 function: to remove all damage :) The new rulings text suggested I could (but only if vanilla 'destruction' was also cleared by it).. hmm, maybe I could use only regeneration then, although this is probably the opposite problem: if it's not a "living land" then it will probably be ignored. I guess I'll not be able to cut corners here. =/
Never cut corners with these things, always causes problems later on. If a card is ruled one way then there's a definite good reason for it and any slight shortcut can cause unforeseen consequences.

A land wouldn't be ignored, since lands can be regenerated too (Reknit), but Pyramids doesn't regenerate, so don't use that (regenerating something makes you tap it, Pyramids isn't meant to do that; Pyramids saves a land from Befoul, but if you make it a simple regenerate effect it no longer does, etc. etc.).

But if I were you and had no idea how to implement the second option of Pyramids' ability I would start by looking at how XMage does regeneration, because if you look at it you will see that regeneration does the same as that artifact and more, so it's possible you could use the bits and pieces you need without the ones you don't.

Regeneration:
"The next time this permanent would be destroyed this turn, it isn't. Instead tap it, remove all damage from it, and remove it from combat."

See how that sounds a whole lot like what Pyramids is meant to do?

MarcoMarin wrote:Cool! Now that I see at least someone may be reading those, I'll be more careful on writing it.. possibly posting them in the "card implementation" thread? :) Thanks!
No worries, I'm sure most of the devs read whatever you will post here and will be glad to help if they can, they might just not have the free time to post endless replies like this random guy here does, because they already burn enough time as it is doing the hard work. :D
Doctor Weird
 
Posts: 180
Joined: 25 May 2015, 01:33
Has thanked: 7 times
Been thanked: 52 times

Re: MAGE Join the developers

Postby MarcoMarin » 04 Apr 2016, 16:39

> For Abu's ability to trigger
Yes, that present continuous (i think is that tense called in english?) seemed to suggest that. :)

> with no consequence, because looking at the top cards of your library is not the same as drawing.
Yep.. which suggests that function would have consequences, unless the programmer was being unnecessarily careful (or maybe future proofing the code?).
> Total guess here
Good one, it's quite likely. Of course, if a Dev could chime in, we'd not need to speculate :) But that's ok, as I see more and more cards, I'll suss it all out (eventually =/) and can go back and fix any bugs I make whilst still learning..

> because as with so many old Magic cards some people get really confused by them when compared to today's more simplistic and streamlined mechanics
hehe, btw, like I mentioned before, I'm also an old timer.. (although I was never a judge or anything and never really thought of the most devious complications, like banding I guess, lol).. BUT, everything you said made perfect sense to me, I'm now left wondering how people who've only seen the newer mechanics would think of these things :) Maybe they'd think they could interrupt the Ancestral Recall?

> No wonder they stopped printing crazy wacky cards like this so long ago, they're nightmare fuel as far as rulings go, haha.
hahaha..
hmmm.. that's very interesting to know actually. I wonder what kinds of untapped, but potentially fun, mechanics they leave out because of this. I have a couple designs for CCG's myself, I wonder what would take, beyond proper marketing of course, to disrupt MTG nowadays. 'Cause back then, the competition was mostly copy cats (and blizzard doesn't seem to have made their history homework, what a crappy design), except for the rare gems of mechanics that was simply ignored due to MTG first mover advantage.
> Never cut corners with these things, [-X
hehe, sure.. I meant in the same sense you suggest later.. avoiding having to go after the bits and pieces, if the bricks are already made. :)

> endless replies like this random guy here does
haha, thanks dude :) Let me know of other important threads I may be missing here, cause I haven't looked much. (I don't wanna pollute this thread if there is already a discussion about something I may be writing here)

hey! btw, made my first 'requested' card :) Artifact Possession, maybe the Devs will take a look at my code now and tell me how to do a Pull Request.. someone may be eagerly awaiting for that one card. :wink:

And also a dozen other cards on the Antiquities set.. now comes the harder ones it seems, stuff with delayed triggers that actually add and/or remove abilities from other cards subject to all sorts of conditions. :S Wish me luck.
MarcoMarin
 
Posts: 32
Joined: 20 Mar 2016, 07:49
Has thanked: 16 times
Been thanked: 2 times

Re: MAGE Join the developers

Postby Doctor Weird » 04 Apr 2016, 18:21

Most of the obvious threads are pinned and near the top, so they're hard to miss, you can probably get an idea just by looking at the titles on the main XMage forum and the Developers Talk sub-forum. I don't think anyone would mind if you, say, had a problem with one specific thing or card and made a new thread with your question, so long as you don't spam threads I think you should be fine. But hey, don't take my word as law, I'm just a forum user here, not a mod, for all I know someone reading this might even be thinking that I shouldn't even be posting here because I'm not a developer, who knows.

The thing about being used to old cards is getting lost on the retcons and rule changes that happened over the years. As the game evolved and the need for new stuff to be created grew while at the same time having to ensure everything is backwards compatible the game got a lot more complex, even if some people look at today's cards and think they're too linear and unoriginal when compared to the old stuff, when they were more free to go nuts and create weird concepts without much care. I can't imagine the increasing amount of work it must take these days to make sure every single card made will not open the door to unpredictable effects and contradictions with the rules. It's no wonder a simple card game like Magic has a rule book of hundreds upon hundreds of rules that could rival some legal documents used in courts of law, haha.

Anyway, point being, when in doubt, ask, whether it's a Java thing or a simple rule/game mechanic thing, either a dev with the knowledge or me (in case of the latter) should be able to give you a hand.
Doctor Weird
 
Posts: 180
Joined: 25 May 2015, 01:33
Has thanked: 7 times
Been thanked: 52 times

Re: MAGE Join the developers

Postby escplan9 » 07 Apr 2016, 21:50

MarcoMarin, I looked at your github: https://github.com/Marco-Marin/mage

I'm only familiar with creating pull requests from a forked repository. Yours is not forked from XMage. For instance, compare how mine looks to yours:
https://github.com/drmDev/mage

"drmDev/mage forked from magefree/mage"

To fork a repository, go to XMage git:
https://github.com/magefree/mage

And click on the Fork button in the top-right. I'm not sure how to resolve the issue with your current repo given its current status. I would need to do some googling to figure it out - or more likely, I would just save my changes (the cards added) locally on my hard drive, delete my github repository (see https://help.github.com/articles/deleting-a-repository/), then start over by going to XMage git and clicking Fork. Then you can go back with adding in your changes files, committing and pushing them to your local repo. And then you should see a "Create Pull Request" button on your local repo that will match against the XMage git. After that, you should be set for all further changes you want to make.

Hope this helps.
escplan9
 
Posts: 257
Joined: 10 Aug 2015, 22:38
Has thanked: 26 times
Been thanked: 40 times

PreviousNext

Return to Developers Talk

Who is online

Users browsing this forum: No registered users and 9 guests


Who is online

In total there are 9 users online :: 0 registered, 0 hidden and 9 guests (based on users active over the past 10 minutes)
Most users ever online was 4143 on 23 Jan 2024, 08:21

Users browsing this forum: No registered users and 9 guests

Login Form