It is currently 21 Jun 2018, 02:59
   
Text Size

Changes in 1.3 - and Question about Abilities on stack...

Moderators: Malban, CCGHQ Admins

Changes in 1.3 - and Question about Abilities on stack...

Postby Malban » 31 Mar 2011, 12:37

JPortal - Changes
-----------------
-----------------

Release 1.3 - despite the small number difference to 1.2a will be a MAJOR release.
It will include many (to the user invisible) changes that have great impact on the internal workings of
the game.

JPortal was originally designed to play Portal cards - NOT all MTG cards.

In order to move on with JPortal I had to redesign certain parts. Many of these
changes are implemented in V1.3 - not all mind you - but a rather big lot.

Some changes:

Mana Pooling
------------
Befor -
you had to pay a card "after" you played it. For that reason it was possible to
collect the mana for paymnet of a card AFTER you played it out.

Now -
You have to have the mana in the pool befor you play a card in order to be able to
pay the playing out.

It does not seem like that big a difference, especially since I still allow mana generation of Basic Lands
"on the fly" - which means you are still able to fill the mana pool from basic lands
after you played out a card.
For "Portal"-Players no visble change occured. Conceptionally it does make a difference in
the inner workings of JPortal.

Since Mana generation (see below) is now an activated ability. Such an ability goes on the stack.
After the stack is resolved the activation takes place. This means the man is only available AFTER
resolving the stack.
But - in order to play or activate a card, and to be able to put it on the stack you must pay for it
BEFOREHAND. Thus if you want to play/activate a card it is not possibly to pay for it with mana generated
AFTER the payment is needed, which somehow does make sense.
(Right now Basic lands have "direct" mana generation, they do not go on stack - don´t know if that is allright - comments anybody?
But the playing is smoother this way :-))

Mana Burn
---------
Not implemented yet - but will come as an option in 1.3.

Cards can not be tapped anymore
-------------------------------
This might sound strange for any "Portalers" out there.
But I think the correct view of things in MTG is:

You can activate cards. To activate a card you have some sort of payment for the activation.
Tapping a card is (sometimes) the payment (or part of it) to activate it.
For that reason, player can not tap cards any longer but only activate cards. If cards
have the "paymenttype" "TAP", and the card is untapped - it will be tapped "by the game" not by the
player.

For that reason it is not longer possible to untap a just tapped basic land.
In general it is possible to activate an ability - but it is not possible to "unactivate" an ability.

Think befor you do something :-)!

For the cards supported now no upkeep has to be payed - and no decision is made whether cards should be untapped in
the corresponding phase. But in order to work ahead an think ahead. The "UNTAP" in the UNTAP Phase is implemented
exactly the same way.

You can find corresponding Card scripts in the correspoding card scripting corner.

CARD_ACTIVATION_POSSIBLE_KEY
CARD_ACTIVATION_PAYMENT_KEY
CARD_ACTIVATION_KEY

Each time a card is activated these scripts are called.
1) is it at all possible to activate the card NOW (well this is not allways called, if a card is identified not to be activatable
at all - nothing is done)
2) pay the card (TAP or Mana...)
3) Do what ever the action of activation might be

for scirpts of type 1. and 2. Templates exsists. So not much must be done here. If later on you have other payments like sacrifice "bla".
than the script must be implemented for the corresping card especially.

Note:
In order to have some sort of standardization I implemented Basic Lands as cards that have an activated ability once per turn
with the cost of "TAP" and the activation result of 1 colored mana.
I am not sure if that is 100% MTG correct - future will tell. As of now it works just fine.

As a secondary result. Many Portal cards with abilities had a text like "Only activate in your attackers phase, befor you declare any attacker".
This is implemented exactly as it reads now. Since that is very easy to do with a special "CARD_ACTIVATION_POSSIBLE_KEY" script.
Befor you could play out those cards at any time during the attackers phase, not only at the beginning!

UI
--
In order to do the above, I decided to change the mouse button meanings.
Now it goes as follows;

LEFT CLICK
-> targets a card in any way, playes out a card appoints an attacker or a blocker

RIGHT CLICK
-> activates cards (also activates (former taps) lands)

MIDDLE CLICK (or alternatively SHIFT LEFT CLICK)
-> sends the card to the information panel

SHIFT RIGHT CLICK (not changed)
-> expands graveyard an libraries (and shrinks them again)

ALT RIGHT CLICK (you probably did not use that) (not changed)
-> PAUSE the game

Artifact and Enchantments
-------------------------
Are new to JPortal. They are displayed in the battlefield like creatures.
Enchantments that are set to a creature are put on that creature.

Creatures are displayed (as befor) left bounded in the battlefield display.

"global" enchantments - or artifacts are displayed right bounded in the battlefield display, this way
you can discern the visually.

Stack - Abilities on stack
--------------------------
If anybody reads this - please comment - if that is correct how I implemented it ... read on...

Implementation of Abilities now goes as follows:

a) check whether card has an ability
b) check whether playing out the ability is allowed
c) pay for the ability
d) put the ability on stack
... game goes on
... stack is about to be resolved...
e) play out the "meaning" of the card

This sounds correct - and is what I implemented. But its playing is a bit unexpected.
Example:

I have a "Goblin" with 1/1 (Power toughness). The opponent decided he doesn´t like my "Goblin" and throws something at it, which does 2 damage
(doesn´t really matter what - lets say he casts a Pyroclasm...).

The "Pyroclasm" is on stack. And since since I like the poor "Goblin" so much and I have two "Samite Healer" in play, I decide to
protect the poor sod.
(
Samite Healer
{T}: Prevent the next 1 damage that would be dealt to target creature or player this turn.
)
That is what I do...

a1) check that first Samite Healer has an ability
b1) check that I can play it now
c1) pay it (TAP)
d1) put it on stack

... and do the same with my second Samite Healer

a2) check that second Samite Healer has an ability
b2) check that I can play it now
c2) pay it (TAP)
d2) put it on stack

My opponent is baffled and passes the stack - so do I and now it is resolved.

e2) The game asks me NOW (NOT befor) to point to a being I want to protect with my second Samite Healer
e1) The game asks me NOW (NOT befor) to point to a being I want to protect with my first Samite Healer

e0) The Pyroclasm destroys both healers - but the Goblin is saved, since he was protected from 2 damage points.

...


tbc

Malban
Homepage of JPortal: http://jportalgame.de/
Malban
DEVELOPER
 
Posts: 84
Joined: 26 Apr 2010, 14:11
Has thanked: 0 time
Been thanked: 12 times

Return to JPortal Documentation

Who is online

Users browsing this forum: No registered users and 1 guest


Who is online

In total there is 1 user online :: 0 registered, 0 hidden and 1 guest (based on users active over the past 10 minutes)
Most users ever online was 279 on 11 Jul 2013, 22:03

Users browsing this forum: No registered users and 1 guest

Login Form