selfcast

Discute about general card coding keyword, ask questions and get answer about the mechanism, about the guideline, the direction we want to go...etc...
Locked
rawsugar
Posts: 228
Joined: Wed Aug 11, 2010 11:05 am

selfcast

Post by rawsugar »

any way to make a target: player spell target only caster? I want to play against a deck i made w 4 beacons of immortality but atm it targets opponent.
I tried removing the target made game collapse.
Tried target: controller but couldn't find any target, and finally target: player controller had no effect.
alternatively could someone post the coding for beacon of immortality? might be able to figure something out from that.
this would be nifty for a number of spells if there is/were to be an easy way to modify spells this way. There are quite a few spells that the AI doesn't quite get.
abrasax
Posts: 976
Joined: Wed Oct 15, 2008 7:46 am
Location: Switzerland

Re: selfcast

Post by abrasax »

Hi,

Beacon of immortality is partly hardcoded, the target line however is coded in the mtg.txt within your primtives folder, if you change it on your local copy it will also affect your game and not only the AI.

Code: Select all

[card]
name=Beacon of Immortality
target=player
alias=130553
text=Double target player's life total. Shuffle Beacon of Immortality into its owner's library.
mana={5}{W}
type=Instant
[/card]
The "alias" line make reference to an alias coded directly in the source code of the game, and cannot be modified without C++ coding.

Normally chaging the line "target=player" to "target=controller" should do the trick... maybe your issue was related to the fact that you put ":" instead of "=" in your code. Anyway there is no card that currently use such line of code so it might not be supported at all (however I don't see why since target=opponent is reported working...)

If it really doesn't work you can alternatively try the following with no assurance at all (in fact I really doubt) that it would work
target=player,-opponent
or
target=player[-opponent]

Good luck

Abra
We need your Help !!!
New to wagic ? Be sure to check the following :

Bug report: Bug reporting
Help us: Add cards & Compiling.
Customize: Themes FAQ, All images thread, Abra's Mediafire folder
Zethfox
Posts: 3029
Joined: Thu Jun 10, 2010 11:28 pm

Re: selfcast

Post by Zethfox »

auto=life:lifetotal <---this would be you

auto=life:opponentlifetotal <---this would be for opponent...


so if you wanted it to always double the "casters" of the card, use auto=life:lifetotal

this card can actually be fully soft coded.

enjoy.
abrasax
Posts: 976
Joined: Wed Oct 15, 2008 7:46 am
Location: Switzerland

Re: selfcast

Post by abrasax »

Hi zeth,

Apart from the fact that you are absolutely right and this is much more elegant solution to the problem of rawsugar, I would be against the softcoding of this card, since if you want to code it with lifetotal keyword you will need to remove the target line and use a choice() coding style, that I would consider as a workaround, since it could be that card that have "whenever you are the target" or "you cannot be the target"... etc... should not be triggered by a choice() coding style... at least that how it is suppose to be, please feel free to change it if you think that this would not impact the game at all, since we want to reduce the overall number of hardcoded line (when not all of them at least for the alias)...

So rawsugar... you should open your mtg.txt, find beacon of immortality and replace the existing code by:

Code: Select all

[card]
name=Beacon of Immortality
auto=life:lifetotal
auto=moveto(mylibrary) && shuffle
text=Double target player's life total. Shuffle Beacon of Immortality into its owner's library.
mana={5}{W}
type=Instant
[/card]
that should do the trick...

Grüssi

Abra
We need your Help !!!
New to wagic ? Be sure to check the following :

Bug report: Bug reporting
Help us: Add cards & Compiling.
Customize: Themes FAQ, All images thread, Abra's Mediafire folder
Zethfox
Posts: 3029
Joined: Thu Jun 10, 2010 11:28 pm

Re: selfcast

Post by Zethfox »

i will be creating a method to return targetted varibles to Wparsedint so it can determine lifetotal that way, when i do add this lifetotal will be useable with target= line. which would make it 100%, its not really highest on my proirity list tho, im fine with it being hardcoded for right now. until then.
rawsugar
Posts: 228
Joined: Wed Aug 11, 2010 11:05 am

Re: selfcast

Post by rawsugar »

hey all, thx for the replies.
without target the game crashes and =controller cant find target. The best solution so far has been

target=player[-opponent]
auto=life:lifetotal

this does the trick which is weird since i can still cast it on opponent but apparently AI cant/doesnt
it does cause some few bugs tho, some graphic glitches and about 10% chance of a fizzle. But it works so thx:)

btw the deck is
4 lifeburst 1W gain 4 life+4 for each lifeburst in gy
4 sunspring expedition W and landfall*3 gain 8 life
4 lone missionary 1W 2/1 gain 4 life
4 kitchen finks 2W 3/2 etc
4 beacon of immortality
4 meekstone
4 day of judgment
4 wrath of god
4 armageddon clock 6 each upkeep put counter deals 1 dmg pr counter to both players
20 plains
4 kabira crossroads (white land) comes into play tapped, gain 2 life

its fun to play and dang hard to beat:) (unless ofc youre playing a deplete deck...pretty much rapes this deck obviously...and ofc 4 destroy artifacts will render it unable to damage. But I at least dont include such in most of my decks)
Locked