TF's "Pick a Card" spell [League of Legends]

Level 8
Joined
Apr 30, 2010
Messages
329
i need this spell for my map..

when the unit use this ability, 3 cards shuffled every second until the unit press the ability back to pick the card.. every cards have their on advantage.. blue card; +mana and dealt the most damage, red card; slow the enemies in AoE and dealt moderate damage, gold card;stun and dealt the least damage..

http://www.youtube.com/watch?v=L-58fCku8bA watch this video at 0:22, that's the requested spell..

you can replace the cards model with any sfx that you want, i can edit it by myself.. i wanted the projectile to be same as the chosen card,

e.g: if i pick red card, i throw red card..

NOT LIKE THIS: e.g: if i pick blue card, i throw black card, if i pick gold card, i throw black card.

i don't need it in mui... i know this spell is hard to make...
 
Level 8
Joined
Apr 30, 2010
Messages
329
man, if it's easy, i'll do it on my own..

i already said, it was on 0:21 in the vid.. 3 cards appear on his head. big card... click the spell again and it's stop shuffling the cards.. i'll get sceeny for my vincent model..

edit: 0:32 was better i guess
edit2:
model size 151kb, texture size 27..
weapon from http://www.hiveworkshop.com/forums/...tgun-207589/?prev=search=cerberus&d=list&r=20

here's the screeny.. it was half ripped model... the cape,head,and texture was the ripped parts... it is fully animated..
 

Attachments

  • sdadsadas.png
    sdadsadas.png
    193.3 KB · Views: 104
  • sdsadasdas.png
    sdsadasdas.png
    313.5 KB · Views: 89
Last edited:
Level 17
Joined
Jan 21, 2006
Messages
2,545
I watched 30 seconds of the video straight before starting to fast-forward, and never did I see any kind of card effect...

Oh. Okay. It's actually most definitely not at 21 or 22 seconds, it's at 30 seconds. Not to mention the effect is so fast you can barely even see it other than the star that appears afterwards.

What exactly are we supposed to do with the model of the gun that you just posted?

--oh.. that's a reward? Rofl.

--okay, I'm almost done. So far there is no effect associated with the cards when they are thrown, it simply says "red card", "blue card", or "yellow card".
 

Attachments

  • CardAbility.w3x
    38.7 KB · Views: 53
Last edited:
Level 15
Joined
Aug 20, 2009
Messages
1,542
o.o

i remember making something for you, but you dont give me anything after all that hardwork long ago.

btw, easily do-able with simple hashtable.

why so hard :S

3 hashtable to be used :

String - Card State ("Red" --> "Blue" --> "Yellow" --> "Red")
Real - Remaining Buff Duration (Probably 5000 milisecond) (When 5000 ms ends, remove buff and remove card throw ability, enable back card shuffle)
Real - Card Interval Change. (every 1500 milisecond / card state)

Every 0.03, reduce every real by 30. when card interval reach 0, change card state.
When remaining buff duration reach 0, remove ability and buff.

5 skills to be used :
Instant Thunder Clap, that give yourself a "Shuffle" Buff with 3600 duration and give you a card throw abilities, disable when used.
Single target no effect channel (For Card Throwing) (Simply let dummy do the effect, so you dont have to ruin your targetting)
Storm Bolt (Yellow Card Effect Dummy)
Frost Nova (Red Card Effect Dummy)
Mana Burn (Blue Card Effect Dummy) or you could simply trigger this.
 
Level 17
Joined
Jan 21, 2006
Messages
2,545
Not sure if you noticed, but I've already supplied a WIP for his request. It is mostly done.

I've actually made a change. Now the unit will cycle through abilities for Select Red Card, Select Blue Card and Select Yellow Card so that these abilities can be replaced. This should allow you to customize which ability happens when, without having to use a projectile library.

why so hard :S

3 hashtable to be used :

Describing how to do something and actually doing it are two different things.

String - Card State ("Red" --> "Blue" --> "Yellow" --> "Red")
Real - Remaining Buff Duration (Probably 5000 milisecond) (When 5000 ms ends, remove buff and remove card throw ability, enable back card shuffle)
Real - Card Interval Change. (every 1500 milisecond / card state)

This is completely meaningless. If you're trying to tell him how he can do it, writing arrows from string to string isn't specific enough. That is where the implementation becomes hard. Anybody with half a brain can see that the state of the card should cycle (that's how he's described the problem) but actually enforcing a structure that does that is the difficult part...

Also your specifications of milliseconds are completely irrelevant.
 

Attachments

  • CardAbility.w3x
    39.4 KB · Views: 48
Level 15
Joined
Aug 20, 2009
Messages
1,542
^you should not remove/add abilities.

its harder to target, since the targeting will be gone when abilities are removed.

:S

TF doesn't stop his actions either when he used his "Shuffle" Spell.

I think berserk is better for that, as it provides buff too like in the original game.
 
Level 17
Joined
Jan 21, 2006
Messages
2,545
Actually you're right. If the user wants that done then they can just use a dummy-unit and take into consideration which card was pulled at that time.

This takes away the possibility for different targeting-types on each spell, though. I'll switch it back.

Okay, well actually this version of things is just like what I initially posted (there are 2 uploads) --the second one is with the constantly changing abilities and the other is with a static ability (not changing).

Anyways, at this point in time I'm waiting to hear what should happen should one of the cards be used. So far it is can potentially be Red, Blue, or Yellow, but the selection of the card does not actually do anything (other than print a message as to what card was selected by the unit).
 
Level 15
Joined
Aug 20, 2009
Messages
1,542
sorry about the milisecond, its irrelevant here ofcourse :S

^That use of milisecond is the best for animation user like me.

Just finished making some cinematic spells.

where you would want a specific animation every single time at a specific amount of time, modifieable with animation speed eg(Zombie with 2 second birth animation) : 2000 - (30 x anim speed/100.)

which lets him finish the animation at any Animation speed you wanted. at the right time.

And with that, i am also able to manipulate his animation speed however i want between the interval.
while correctly finishing at the right time.

add me up if you wanted to see what im making :p

****************************************************************************

About the cards

RED --> AoE damage + Slow around the primary target.
Blue --> Damage + Gives him mana
Yellow --> Stuns enemy single target.
 
Level 17
Joined
Jan 21, 2006
Messages
2,545
Okay, well that's all swell but this isn't a cinematic. Anyways, you made me think of a problem that this has. It doesn't go away when the unit dies. I should probably catch this problem.

--sweet. I can just do an is-unit-dead check on the shuffle timer. Good enough?
 
Level 15
Joined
Aug 20, 2009
Messages
1,542
^The card shuffle ends after 2 cycles or 3, its a specific duration, with a buff showing it.

probably you would want a floating text telling him the remaining time of shuffling before it ends.

when it ends, the ability Shuffle went to CD. (Enabling disabling easily do this) (Removing will reset the cooldown so BEWARE! :D)

and TF doesn't stop his action while using Pick a card, (He can activate this with channeling spell or walking to chase enemy down).

so i guess you should use berserk.
 
Level 17
Joined
Jan 21, 2006
Messages
2,545
^The card shuffle ends after 2 cycles or 3, its a specific duration, with a buff showing it.

probably you would want a floating text telling him the remaining time of shuffling before it ends.

when it ends, the ability Shuffle went to CD. (Enabling disabling easily do this) (Removing will reset the cooldown so BEWARE! :D)

Where are you getting this "ends after 2 cycles or 3" information from?

I doubt you would want a floating text in addition to a buff art that displays how much time is left from 1 second... that's just an enormous clutter of information when its not necessary at all.

And yes, I know that removing an ability will reset its cooldown. That's why I don't remove the main ability.
 
Level 15
Joined
Aug 20, 2009
Messages
1,542
^I am a 1800 elo League of legends player, game mechanics is all in me.

The timer is necessary, While playing TF, you would want to always check how much remaining time you have. (Shown in buff).

but since wc3 don't show buff duration, floating text will do it.

The shuffle only goes on CD when you have thrown the card, so it wont allow him to double stun (it only has 5 sec cd on the skill.)

The first card shuffled is a "Wild Card", giving you random card to start from.

and the first card interval is probably only 0.1 sec, where players want to gamble by double tapping. while the rest has 0.6 interval.
 
Level 17
Joined
Jan 21, 2006
Messages
2,545
^I am a 1800 elo League of legends player, game mechanics is all in me.

The timer is necessary, While playing TF, you would want to always check how much remaining time you have. (Shown in buff).

but since wc3 don't show buff duration, floating text will do it.

The shuffle only goes on CD when you have thrown the card, so it wont allow him to double stun (it only has 5 sec cd on the skill.)

This isn't LoL, this is Warcraft. Why are you trying to tell me how to make this ability when you didn't even start the thread? I mean, okay if you trying to help him out but right now it seems like you're just pretending you know exactly what he wants.

but since wc3 don't show buff duration, floating text will do it

That is such a bad idea.
 
Level 17
Joined
Jan 21, 2006
Messages
2,545
JASS:
function Trig_Pick_a_Card_Conditions takes nothing returns boolean
    if ( not ( GetSpellAbilityId() == 'A000' ) ) then
        return false
    endif
    return true
endfunction

function Trig_Pick_a_Card_Actions takes nothing returns nothing
    call SetPlayerAbilityAvailableBJ( false, 'A000', GetOwningPlayer(GetTriggerUnit()) )
    set udg_TempUnit = GetTriggerUnit()
    set udg_CardState = GetRandomInt(1, 3)
    set udg_NextCardInterval = 600.00
    set udg_ShufflingDuration = 11000.00
    // You can load level value for level purposes
    call SaveIntegerBJ( GetUnitAbilityLevelSwapped(GetSpellAbilityId(), GetTriggerUnit()), StringHashBJ("Level"), GetHandleIdBJ(GetTriggerUnit()), udg_TF_Hash )
    // You can load level value for level purposes
    call SaveRealBJ( udg_NextCardInterval, StringHashBJ("NextInterval"), GetHandleIdBJ(GetTriggerUnit()), udg_TF_Hash )
    call SaveRealBJ( udg_ShufflingDuration, StringHashBJ("ShuffleDuration"), GetHandleIdBJ(GetTriggerUnit()), udg_TF_Hash )
    call SaveIntegerBJ( udg_CardState, StringHashBJ("CardState"), GetHandleIdBJ(GetTriggerUnit()), udg_TF_Hash )
    call CreateTextTagUnitBJ( R2SW(( udg_ShufflingDuration / 1000.00 ), 1, 2), udg_TempUnit, 0, 10, udg_TagRed[udg_CardState], udg_TagGreen[udg_CardState], udg_TagBlue[udg_CardState], 0 )
    set udg_ShuffleTag = GetLastCreatedTextTag()
    call SaveTextTagHandleBJ( udg_ShuffleTag, StringHashBJ("ShuffleTag"), GetHandleIdBJ(GetTriggerUnit()), udg_TF_Hash )
    call GroupAddUnitSimple( udg_TempUnit, udg_ShuffleGroup )
    call EnableTrigger( gg_trg_Shuffle_Periodic )
    call UnitAddAbilityBJ( udg_CardValue[udg_CardState], udg_TempUnit )
    call AddSpecialEffectTargetUnitBJ( "overhead", udg_TempUnit, udg_CardSFX[udg_CardState] )
    call SaveEffectHandleBJ( GetLastCreatedEffectBJ(), StringHashBJ("CardSFX"), GetHandleIdBJ(GetTriggerUnit()), udg_TF_Hash )
endfunction

//===========================================================================
function InitTrig_Pick_a_Card takes nothing returns nothing
    set gg_trg_Pick_a_Card = CreateTrigger(  )
    call TriggerRegisterAnyUnitEventBJ( gg_trg_Pick_a_Card, EVENT_PLAYER_UNIT_SPELL_EFFECT )
    call TriggerAddCondition( gg_trg_Pick_a_Card, Condition( function Trig_Pick_a_Card_Conditions ) )
    call TriggerAddAction( gg_trg_Pick_a_Card, function Trig_Pick_a_Card_Actions )
endfunction

JASS:
function Trig_Hold_a_Card_Func009C takes nothing returns boolean
    if ( ( GetSpellAbilityId() == 'A002' ) ) then
        return true
    endif
    if ( ( GetSpellAbilityId() == 'A001' ) ) then
        return true
    endif
    if ( ( GetSpellAbilityId() == 'A003' ) ) then
        return true
    endif
    return false
endfunction

function Trig_Hold_a_Card_Conditions takes nothing returns boolean
    if ( not Trig_Hold_a_Card_Func009C() ) then
        return false
    endif
    return true
endfunction

function Trig_Hold_a_Card_Actions takes nothing returns nothing
    call IssueImmediateOrderBJ( GetTriggerUnit(), "stop" )
    set udg_NextCardInterval = LoadRealBJ(StringHashBJ("NextInterval"), GetHandleIdBJ(GetTriggerUnit()), udg_TF_Hash)
    set udg_ShufflingDuration = LoadRealBJ(StringHashBJ("ShuffleDuration"), GetHandleIdBJ(GetTriggerUnit()), udg_TF_Hash)
    set udg_CardState = LoadIntegerBJ(StringHashBJ("CardState"), GetHandleIdBJ(GetTriggerUnit()), udg_TF_Hash)
    set udg_NextCardInterval = ( udg_NextCardInterval + udg_ShufflingDuration )
    call SaveRealBJ( udg_NextCardInterval, StringHashBJ("NextInterval"), GetHandleIdBJ(GetTriggerUnit()), udg_TF_Hash )
    call UnitRemoveAbilityBJ( udg_CardValue[udg_CardState], GetTriggerUnit() )
    call UnitAddAbilityBJ( udg_CardThrow[udg_CardState], GetTriggerUnit() )
endfunction

//===========================================================================
function InitTrig_Hold_a_Card takes nothing returns nothing
    set gg_trg_Hold_a_Card = CreateTrigger(  )
    call TriggerRegisterAnyUnitEventBJ( gg_trg_Hold_a_Card, EVENT_PLAYER_UNIT_SPELL_CAST )
    call TriggerAddCondition( gg_trg_Hold_a_Card, Condition( function Trig_Hold_a_Card_Conditions ) )
    call TriggerAddAction( gg_trg_Hold_a_Card, function Trig_Hold_a_Card_Actions )
endfunction

JASS:
function Trig_Throw_a_Card_Func011C takes nothing returns boolean
    if ( ( GetSpellAbilityId() == 'A005' ) ) then
        return true
    endif
    if ( ( GetSpellAbilityId() == 'A004' ) ) then
        return true
    endif
    if ( ( GetSpellAbilityId() == 'A006' ) ) then
        return true
    endif
    return false
endfunction

function Trig_Throw_a_Card_Conditions takes nothing returns boolean
    if ( not Trig_Throw_a_Card_Func011C() ) then
        return false
    endif
    return true
endfunction

function Trig_Throw_a_Card_Func007Func002Func002C takes nothing returns boolean
    if ( not ( udg_CardState == 3 ) ) then
        return false
    endif
    return true
endfunction

function Trig_Throw_a_Card_Func007Func002C takes nothing returns boolean
    if ( not ( udg_CardState == 2 ) ) then
        return false
    endif
    return true
endfunction

function Trig_Throw_a_Card_Func007C takes nothing returns boolean
    if ( not ( udg_CardState == 1 ) ) then
        return false
    endif
    return true
endfunction

function Trig_Throw_a_Card_Actions takes nothing returns nothing
    set udg_CardState = LoadIntegerBJ(StringHashBJ("CardState"), GetHandleIdBJ(GetTriggerUnit()), udg_TF_Hash)
    set udg_ShufflingDuration = LoadRealBJ(StringHashBJ("ShuffleDuration"), GetHandleIdBJ(GetTriggerUnit()), udg_TF_Hash)
    set udg_TempPoint = GetUnitLoc(GetTriggerUnit())
    call CreateNUnitsAtLoc( 1, 'hpea', GetOwningPlayer(GetTriggerUnit()), udg_TempPoint, GetUnitFacing(GetTriggerUnit()) )
    call UnitAddAbilityBJ( udg_CardSkill[LoadIntegerBJ(StringHashBJ("CardState"), GetHandleIdBJ(GetTriggerUnit()), udg_TF_Hash)], GetLastCreatedUnit() )
    call UnitApplyTimedLifeBJ( 1.00, 'BTLF', GetLastCreatedUnit() )
    if ( Trig_Throw_a_Card_Func007C() ) then
        call IssueTargetOrderBJ( GetLastCreatedUnit(), "manaburn", GetSpellTargetUnit() )
    else
        if ( Trig_Throw_a_Card_Func007Func002C() ) then
            call IssueTargetOrderBJ( GetLastCreatedUnit(), "frostnova", GetSpellTargetUnit() )
        else
            if ( Trig_Throw_a_Card_Func007Func002Func002C() ) then
                call IssueTargetOrderBJ( GetLastCreatedUnit(), "firebolt", GetSpellTargetUnit() )
            else
            endif
        endif
    endif
    call RemoveLocation(udg_TempPoint)
    set udg_ShufflingDuration = 0.00
    call SaveRealBJ( udg_ShufflingDuration, StringHashBJ("ShuffleDuration"), GetHandleIdBJ(GetTriggerUnit()), udg_TF_Hash )
endfunction

//===========================================================================
function InitTrig_Throw_a_Card takes nothing returns nothing
    set gg_trg_Throw_a_Card = CreateTrigger(  )
    call TriggerRegisterAnyUnitEventBJ( gg_trg_Throw_a_Card, EVENT_PLAYER_UNIT_SPELL_EFFECT )
    call TriggerAddCondition( gg_trg_Throw_a_Card, Condition( function Trig_Throw_a_Card_Conditions ) )
    call TriggerAddAction( gg_trg_Throw_a_Card, function Trig_Throw_a_Card_Actions )
endfunction

JASS:
function Trig_Shuffle_Periodic_Func001Func001Func007Func005C takes nothing returns boolean
    if ( not ( udg_CardState > 3 ) ) then
        return false
    endif
    return true
endfunction

function Trig_Shuffle_Periodic_Func001Func001Func007C takes nothing returns boolean
    if ( not ( udg_NextCardInterval > 0.00 ) ) then
        return false
    endif
    return true
endfunction

function Trig_Shuffle_Periodic_Func001Func001Func009C takes nothing returns boolean
    if ( not ( udg_ShufflingDuration > 0.00 ) ) then
        return false
    endif
    return true
endfunction

function Trig_Shuffle_Periodic_Func001Func001A takes nothing returns nothing
    set udg_TempUnit = GetEnumUnit()
    set udg_CardState = LoadIntegerBJ(StringHashBJ("CardState"), GetHandleIdBJ(GetEnumUnit()), udg_TF_Hash)
    set udg_NextCardInterval = LoadRealBJ(StringHashBJ("NextInterval"), GetHandleIdBJ(GetEnumUnit()), udg_TF_Hash)
    set udg_ShufflingDuration = LoadRealBJ(StringHashBJ("ShuffleDuration"), GetHandleIdBJ(GetEnumUnit()), udg_TF_Hash)
    set udg_ShuffleTag = LoadTextTagHandleBJ(StringHashBJ("ShuffleTag"), GetHandleIdBJ(GetEnumUnit()), udg_TF_Hash)
    set udg_BuffSFX = LoadEffectHandleBJ(StringHashBJ("CardSFX"), GetHandleIdBJ(GetEnumUnit()), udg_TF_Hash)
    if ( Trig_Shuffle_Periodic_Func001Func001Func007C() ) then
        set udg_NextCardInterval = ( udg_NextCardInterval - 30.00 )
    else
        set udg_NextCardInterval = 1200.00
        call UnitRemoveAbilityBJ( udg_CardValue[udg_CardState], udg_TempUnit )
        call DestroyEffectBJ( udg_BuffSFX )
        set udg_CardState = ( udg_CardState + 1 )
        if ( Trig_Shuffle_Periodic_Func001Func001Func007Func005C() ) then
            set udg_CardState = 1
            call SaveEffectHandleBJ( GetLastCreatedEffectBJ(), StringHashBJ("CardSFX"), GetHandleIdBJ(GetEnumUnit()), udg_TF_Hash )
        else
        endif
        call SetTextTagColorBJ( udg_ShuffleTag, udg_TagRed[udg_CardState], udg_TagGreen[udg_CardState], udg_TagBlue[udg_CardState], 0 )
        call AddSpecialEffectTargetUnitBJ( "overhead", udg_TempUnit, udg_CardSFX[udg_CardState] )
        call SaveEffectHandleBJ( GetLastCreatedEffectBJ(), StringHashBJ("CardSFX"), GetHandleIdBJ(GetEnumUnit()), udg_TF_Hash )
        call UnitAddAbilityBJ( udg_CardValue[udg_CardState], udg_TempUnit )
    endif
    call SetTextTagPosUnitBJ( udg_ShuffleTag, udg_TempUnit, 0 )
    if ( Trig_Shuffle_Periodic_Func001Func001Func009C() ) then
        set udg_ShufflingDuration = ( udg_ShufflingDuration - 30.00 )
        call SetTextTagTextBJ( udg_ShuffleTag, R2SW(( udg_ShufflingDuration / 1000.00 ), 1, 2), 10 )
    else
        call SetTextTagTextBJ( udg_ShuffleTag, "TRIGSTR_056", 10 )
        call SetTextTagPermanentBJ( udg_ShuffleTag, false )
        call SetTextTagLifespanBJ( udg_ShuffleTag, 5 )
        call SetTextTagFadepointBJ( udg_ShuffleTag, 1.00 )
        call SetTextTagVelocityBJ( udg_ShuffleTag, 40.00, 180.00 )
        call DestroyEffectBJ( udg_BuffSFX )
        call UnitRemoveBuffBJ( 'B000', udg_TempUnit )
        call UnitRemoveAbilityBJ( udg_CardValue[udg_CardState], udg_TempUnit )
        call UnitRemoveAbilityBJ( udg_CardThrow[udg_CardState], udg_TempUnit )
        call GroupRemoveUnitSimple( udg_TempUnit, udg_ShuffleGroup )
        call SetPlayerAbilityAvailableBJ( true, 'A000', GetOwningPlayer(udg_TempUnit) )
    endif
    call SaveRealBJ( udg_NextCardInterval, StringHashBJ("NextInterval"), GetHandleIdBJ(GetEnumUnit()), udg_TF_Hash )
    call SaveRealBJ( udg_ShufflingDuration, StringHashBJ("ShuffleDuration"), GetHandleIdBJ(GetEnumUnit()), udg_TF_Hash )
    call SaveIntegerBJ( udg_CardState, StringHashBJ("CardState"), GetHandleIdBJ(GetEnumUnit()), udg_TF_Hash )
endfunction

function Trig_Shuffle_Periodic_Func001C takes nothing returns boolean
    if ( not ( IsUnitGroupEmptyBJ(udg_ShuffleGroup) == false ) ) then
        return false
    endif
    return true
endfunction

function Trig_Shuffle_Periodic_Actions takes nothing returns nothing
    if ( Trig_Shuffle_Periodic_Func001C() ) then
        call ForGroupBJ( udg_ShuffleGroup, function Trig_Shuffle_Periodic_Func001Func001A )
    else
        call DisableTrigger( GetTriggeringTrigger() )
    endif
endfunction

//===========================================================================
function InitTrig_Shuffle_Periodic takes nothing returns nothing
    set gg_trg_Shuffle_Periodic = CreateTrigger(  )
    call DisableTrigger( gg_trg_Shuffle_Periodic )
    call TriggerRegisterTimerEventPeriodic( gg_trg_Shuffle_Periodic, 0.03 )
    call TriggerAddAction( gg_trg_Shuffle_Periodic, function Trig_Shuffle_Periodic_Actions )
endfunction
 
Level 15
Joined
Aug 20, 2009
Messages
1,542
^What are you trying to imply :S
Im very lazy yeah,
and converting it to jass will make ANY GUI look messy.

Im just trying to make how it works in league, changes A + Click to a different skill. with each different card state.

yes i suck at triggers, but i am a cinematic maker fyi.

and yes, my triggers does not leak, nor lag.

my triggers does things as efficient as possible in GUI,
(except for the pick unit part. where i get lazy.)

Try to read the system. all it does is assign values for Shuffle periodic.
its very simple to understand for anyone that reads it.
 
Level 17
Joined
Jan 21, 2006
Messages
2,545
Yea, I understood it. I see what you changed, too (though I think the floating text is kind of distracting and unnecessary).

I want to see what the author has to say because there's no point in going further into this than necessary. If he finds yours acceptable then it doesn't really matter --but you could have made it before I started (especially since you are familiar with the game) and saved me the time in deciphering what he wants.
 
Level 8
Joined
Apr 30, 2010
Messages
329
okay, thanks guy for helping me, i think the floating text is unnecessary but i think it's okay..
can u re-set the timer when he picks the card..i think it's bit odd because the caster need to press A or W and click on target.. anyway, i still appreciates your works... thanks for spent time on my request
i will send both of u the model.. i'm still fix its walk animation..
 
Level 8
Joined
Apr 30, 2010
Messages
329
when tf pick a card, the timer will be reset to 15 more sec etc...

and

unit attacked,
unit has buff red card equal to true.
create a dummy for tf on point bla bla bla
set bla bla bla = last created unit
add bla bla bla ability
add exp timer
pick every unit on 350 matching bla bla bla
tf dmg picked unit blablabla
order bla bla to sorcerers - slow picked unit
remove red card buff from tf
 
Top