public void CallFromDeck(Card c, fieldPositions p)
 {
     Game.playerDeck.RemoveFromDeck(c);
     Game.field.Call(c, p);
     c.CheckAbilities(CardState.CallFromDeck, c);
     Game.field.CheckAbilitiesExcept(c.pos, CardState.CallFromDeck_NotMe, c);
     Game.SendPacket(GameAction.PLAY_CARD_FROM_DECK, c.cardID, (int)Util.TranformToEnemyPosition(c.pos));
     c.TurnUp();
 }
    public void ReturnToHand(Card c)
    {
        bool bIsVanguard = c.IsVanguard();
        fieldPositions cardPos = c.pos;
        Game.SendPacket(GameAction.RETURN_FROM_FIELD_TO_HAND, c.pos);
        Game.field.RemoveFrom(c.pos);
        Game.playerHand.AddToHand(c);
        if(!bIsVanguard)
        {
            c.CheckAbilities(CardState.HandFromRear);

            //Game.GameChat.AddChatMessage("ADMIN", c.name + " returns to hand." + " " + cardPos);

            Game.field.CheckAbilitiesExcept(cardPos, CardState.HandFromRear_NotMe, c);
        }
    }
 public void StandUnit(Card card)
 {
     card.bBecomeStandThisTurn = true;
     card.Stand();
     Game.SendPacket(GameAction.STAND_UNIT, card.pos);
     card.CheckAbilities(CardState.Stand, card);
     Game.field.CheckAbilitiesExcept(card.pos, CardState.Stand_NotMe, card);
 }
    public void RestUnit(Card card)
    {
        Game.LastRest = card;

        card.Rest();
        Game.SendPacket(GameAction.REST_UNIT, card.pos);

        card.CheckAbilities(CardState.Rest);
        Game.field.CheckAbilitiesExcept(card.pos, CardState.Rest_NotMe);
    }
    public void RetireUnit(Card card)
    {
        if(!card.bCanBeRetireByEffects)
        {
            SelectAnimField(card);
            return;
        }

        Game.field.ClearZone(card.pos);
        Game.field.AddToDropZone(card);
        Game.SendPacket(GameAction.SEND_TO_DROPZONE, card.pos);

        if(!card.IsVanguard())
        {
            Game.field.CheckAbilitiesExcept(card.pos, CardState.UnitSendToDropZoneFromRC, card);
            card.CheckAbilities(CardState.DropZoneFromRC);
        }
    }
 public void ReturnToHand(Card c)
 {
     bool bIsVanguard = c.IsVanguard();
     Game.SendPacket(GameAction.RETURN_FROM_FIELD_TO_HAND, c.pos);
     Game.field.RemoveFrom(c.pos);
     Game.playerHand.AddToHand(c);
     if(!bIsVanguard)
     {
         c.CheckAbilities(CardState.HandFromRear);
         Game.field.CheckAbilitiesExcept(c.pos, CardState.HandFromRear_NotMe, c);
     }
 }
    public void Remove(Card c, bool myGuardian = false)
    {
        cards.Remove(c);
        game.CardToAttack.extraShield -= c.shield;

        if(myGuardian)
        {
            field.AddToDropZone(c);
            c.CheckAbilities(CardState.DropZoneFromGC);
            field.CheckAbilities(CardState.DropZoneFromGC_NotMe, c);
            if(c.bSentinel)
            {
                bPerfectGuard = false;
                game.CardToAttack.bCanBeHit = true;
            }
        }
        else
        {
            enemyField.AddToDropZone(c, false);
        }
    }
    public void RetireUnit(Card card)
    {
        if(!card.IsVanguard())
        {
            card.CheckAbilities(CardState.DropZoneFromRC);
        }

        field.ClearZone(card.pos);
        field.AddToDropZone(card);
        SendPacket(GameAction.SEND_TO_DROPZONE, card.pos);
    }
    public void CallFromDrop(Card card, fieldPositions p)
    {
        field.RemoveFromDropzone(card);
        field.Call(card, p);

        LastCallFromDrop = card;

        card.CheckAbilities(CardState.CallFromDrop);
        field.CheckAbilitiesExcept(card.pos, CardState.CallFromDrop_NotMe);

        SendPacket(GameAction.PLAY_CARD_FROM_DROP, card.cardID, p);
    }
    void BoostUnit(Card c)
    {
        //C: Attacer
        //B: Booster

        Card b = field.GetCardAt(BackRow(c.pos));
        c.IncreasePower(b.GetPower());
        SendPacket(GameAction.POWER_INCREASE, c.pos, b.GetPower());
        b.boostedUnit = c;
        b.Rest();
        SendPacket(GameAction.REST_UNIT, b.pos);
        b.CheckAbilities(CardState.Boost);
        c.IsBoostedBy = b;

        SendPacket (GameAction.BOOST, c.pos);
        c.CheckAbilities(CardState.IsBoosted);

        //bEffectOnGoing = false;
        //bConfirmBoost = true;
        BoostUnit();
    }
Exemple #11
0
    public void Call(Card card, fieldPositions pos)
    {
        _Game.SendGameChatMessage(card.name + ", Call!", ChatTab.GAME);
        _Game.UnitsCalled.Add(card);
        _Game.LastCall = card;

        //Reseting current status.
        ResetCard(card);

        card._Coord = CardCoord.FIELD;
        card.pos = pos;

        if(pos == fieldPositions.FRONT_GUARD_LEFT)
        {
            if(Left_Front != null)
            {
                AddToDropZone(RemoveFrom(pos));
            }

            Left_Front = card;
            Left_Front.GetGameObject().transform.position    = fieldInfo.GetPosition((int)fieldPositions.FRONT_GUARD_LEFT);
            Left_Front.GetGameObject().transform.eulerAngles = fieldInfo.GetCardRotation();
            FrontLeftPower.text = card.GetPower() + "";
        }
        else if(pos == fieldPositions.FRONT_GUARD_RIGHT)
        {
            if(Right_Front != null)
            {
                Debug.Log("Adding to DropZone");
                AddToDropZone(RemoveFrom(pos));
            }

            Right_Front = card;
            Right_Front.GetGameObject().transform.position    = fieldInfo.GetPosition((int)fieldPositions.FRONT_GUARD_RIGHT);
            Right_Front.GetGameObject().transform.eulerAngles = fieldInfo.GetCardRotation();
            FrontRightPower.text = card.GetPower() + "";
        }
        else if(pos == fieldPositions.REAR_GUARD_CENTER)
        {
            if(Center_Rear != null)
                AddToDropZone(RemoveFrom(pos));

            Center_Rear = card;
            Center_Rear.GetGameObject().transform.position    = fieldInfo.GetPosition((int)fieldPositions.REAR_GUARD_CENTER);
            Center_Rear.GetGameObject().transform.eulerAngles = fieldInfo.GetCardRotation();
            RearCenterPower.text = card.GetPower() + "";
        }
        else if(pos == fieldPositions.REAR_GUARD_LEFT)
        {
            if(Left_Rear != null)
                AddToDropZone(RemoveFrom(pos));

            Left_Rear = card;
            Left_Rear.GetGameObject().transform.position    = fieldInfo.GetPosition((int)fieldPositions.REAR_GUARD_LEFT);
            Left_Rear.GetGameObject().transform.eulerAngles = fieldInfo.GetCardRotation();
            RearLeftPower.text = card.GetPower() + "";
        }
        else if(pos == fieldPositions.REAR_GUARD_RIGHT)
        {
            if(Right_Rear != null)
                AddToDropZone(RemoveFrom(pos));

            Right_Rear = card;
            Right_Rear.GetGameObject().transform.position    = fieldInfo.GetPosition((int)fieldPositions.REAR_GUARD_RIGHT);
            Right_Rear.GetGameObject().transform.eulerAngles = fieldInfo.GetCardRotation();
            RearRightPower.text = card.GetPower() + "";
        }

        card.CheckAbilities(CardState.Call);
        LastUnitCalled = card;
        CheckAbilities(CardState.Call_NotMe, card);

        CallAnimation(card);
    }
Exemple #12
0
    public void Ride(Card card, bool bActiveEvents = true)
    {
        _Game.SendGameChatMessage(card.name + ", Ride!", ChatTab.GAME);

        //Reseting current status.
        ResetCard(card);

        if(Soul.Count > 0)
        {
            Soul[Soul.Count - 1].SetIsVanguard(false);
            Soul[Soul.Count - 1]._Coord = CardCoord.SOUL;
            lastVanguard = Soul[Soul.Count - 1];
        }

        Soul.Add (card);
        card._Coord = CardCoord.FIELD;
        card.SetIsVanguard(true);
        Vanguard = card;

        //Vanguard.GetGameObject().transform.position = fieldInfo.GetPosition((int)fieldPositions.VANGUARD_CIRCLE) + delta * (Soul.Count - 1);
        //Vanguard.GetGameObject().transform.eulerAngles = fieldInfo.GetCardRotation();

        Vanguard.MoveAndRotate(fieldInfo.GetPosition((int)fieldPositions.VANGUARD_CIRCLE) + delta * (Soul.Count - 1), fieldInfo.GetCardRotation());

        VanguardPower.text = card.GetPower() + "";
        card.pos = fieldPositions.VANGUARD_CIRCLE;

        CallAnimation(card);
        FixSoulPosition();

        if(Soul.Count > 1 && bActiveEvents)
        {
            Soul[Soul.Count - 2].CheckAbilities(CardState.RideAboveIt);
            Soul[Soul.Count - 2].CheckAbilities(CardState.LeaveField);
        }

        CheckAbilitiesDrop(CardState.DropZone_Ride);
        CheckAbilitiesSoul(CardState.Soul_Ride);

        if(bActiveEvents)
        {
            CheckAbilitiesExcept(card.pos, CardState.Ride_NotMe, card);
            card.CheckAbilities(CardState.Ride);
        }
    }