Beispiel #1
0
 public void zz_CopyAndPaste(CardFunction card)
 {
     if (dedicate(card.getCompany()))
     {
         Services.playerBuffManager.GainNewBuff(new CopyAndPaste(), 1);
     }
 }
Beispiel #2
0
 public void zz_Effect_ChangeIP(CardFunction card)
 {
     if (dedicate(card.getCompany()))
     {
         Services.actionManager.LowerDecompressCost(10);
     }
 }
Beispiel #3
0
 public void zz_FileRecovery(CardFunction card)
 {
     if (dedicate(card.getCompany()))
     {
         Services.statsManager.GainHp(8);
     }
 }
Beispiel #4
0
        private void InitializeCardProperties()
        {
            GetParam(Regs.SPC_PCITYP, out cardType);
            GetParam(Regs.SPC_MIINST_MINADCLOCK, out minSampleRate);
            GetParam(Regs.SPC_MIINST_MAXADCLOCK, out maxSampleRate);
            GetParam(Regs.SPC_MIINST_MODULES, out moduleCount);
            GetParam(Regs.SPC_MIINST_CHPERMODULE, out maxChannels);
            GetParam(Regs.SPC_MIINST_BYTESPERSAMPLE, out bytesPerSample);

            int fncType;

            GetParam(Regs.SPC_FNCTYPE, out fncType);
            switch (fncType)
            {
            case Regs.SPCM_TYPE_AI: cardFunction = CardFunction.AnalogIn; break;

            case Regs.SPCM_TYPE_AO: cardFunction = CardFunction.AnalogOut; break;

            case Regs.SPCM_TYPE_DI: cardFunction = CardFunction.DigitalIn; break;

            case Regs.SPCM_TYPE_DO: cardFunction = CardFunction.DigitalOut; break;

            case Regs.SPCM_TYPE_DIO: cardFunction = CardFunction.DigitalIO; break;
            }
        }
Beispiel #5
0
 public CardThreading()
 {
     CardChecking = new CardFunction(CardCk);
     CardReading  = new CardFunction(CardRead);
     CardWriting  = new CardFunction(CardWrite);
     CardReseting = new CardFunction(CardReset);
 }
Beispiel #6
0
 public void CheckInitial(CardFunction card)
 {
     if (Services.actionManager.AttackField.Count == 0)
     {
         card.initial = true;
     }
 }
Beispiel #7
0
 public void CheckSequence(CardFunction card)
 {
     if (Services.actionManager.AttackField.Count >= 3)
     {
         card.sequence = true;
     }
 }
Beispiel #8
0
 public void zz_DiskStorage(CardFunction card)
 {
     if (dedicate(card.getCompany()))
     {
         Services.actionManager.GenerateCardAddToHand(wipe);
     }
 }
Beispiel #9
0
 public void zz_initialDraw2(CardFunction card)
 {
     if (card.initial)
     {
         zz_Draw_Cards(2);
         card.initial = false;
     }
 }
Beispiel #10
0
 public void zz_initialDealExtra(CardFunction card)
 {
     if (card.initial)
     {
         zz_Deal_Damage(2 * Services.actionManager.AttackField.Count);
         card.initial = false;
     }
 }
Beispiel #11
0
 public void zz_OffenseUplink(CardFunction card)
 {
     if (card.sequence)
     {
         zz_Deal_Damage(8);
         card.sequence = false;
     }
 }
Beispiel #12
0
 public void zz_SecurityUplink(CardFunction card)
 {
     if (card.sequence)
     {
         zz_Effect_GainArmor(10);
         card.sequence = false;
     }
 }
Beispiel #13
0
 public void zz_reallocateMemory(CardFunction card)
 {
     zz_Deal_Damage(7);
     if (dedicate(card.getCompany()))
     {
         Services.resourceManager.GainAttackBar(15);
     }
 }
 public void Zz_OneCardInHand(CardFunction card)
 {
     if (checkCurrentCanPlay(card.GetComponent <CardFunction>()))
     {
         if (Services.actionManager.PlayerHand.Count != 1)
         {
             card.GetComponent <CardFunction>().canBePlayed = false;
         }
     }
 }
 public void zz_NoCardInAttackField(CardFunction card)
 {
     if (checkCurrentCanPlay(card.GetComponent <CardFunction>()))
     {
         if (Services.actionManager.AttackField.Count > 0)
         {
             card.GetComponent <CardFunction>().canBePlayed = false;
         }
     }
 }
Beispiel #16
0
    private bool dedicate(Card.CardCompany company)
    {
        CardFunction temp = Services.actionManager.DrawCard();

        if (temp != null)
        {
            return(temp.getCompany() == company);
        }
        return(false);
    }
Beispiel #17
0
 public void zz_Effect_BatchedWipe(CardFunction card)
 {
     if (card.sequence)
     {
         card.sequence = false;
         for (int i = 0; i < Services.actionManager.AttackField.Count; i++)
         {
             Services.actionManager.GenerateCardAddToHand(wipe);
         }
     }
 }
Beispiel #18
0
 public void AddToDrawPile(CardFunction card)
 {
     if (card.getKeywords() != null && card.getKeywords().Contains(Card.Keywords.priority))
     {
         Debug.Log("priority");
         PriorityDeck.Add(card);
     }
     DrawDeck.Add(card);
     card.gameObject.transform.position = drawDeck.position;
     //StartCoroutine(MoveFromTo(card.transform, card.transform.position, drawPile.position, 50)); should cards move towards the draw position or just instantly be there?
 }
Beispiel #19
0
 public void zz_Dedicate_burn(CardFunction card)
 {
     if (dedicate(card.getCompany()))
     {
         Services.actionManager.currentTargetEnemy.GainNewBuff(new Burn(), 8);
     }
     else
     {
         Services.actionManager.currentTargetEnemy.GainNewBuff(new Burn(), 4);
     }
 }
Beispiel #20
0
    public GameObject IDtoGameobeject(int ID) //輸入ID就可以抓到卡牌
    {
        int[]        cardIDmanager = CardIDManager(ID);
        Color        color         = cardColor[cardIDmanager[0]];
        CardFunction cardfunction  = cardFunctions[cardIDmanager[1]];
        int          repeatTimes   = cardIDmanager[2];
        string       CardName      = "Card_" + color.ToString() + " " + cardfunction.ToString() + " " + repeatTimes.ToString();
        GameObject   TheCard       = GameObject.Find(CardName);

        return(TheCard);
    }
Beispiel #21
0
 public void zz_Dedicate_harden(CardFunction card)
 {
     if (dedicate(card.getCompany()))
     {
         Services.playerBuffManager.GainNewBuff(new Evasion(), 1);
     }
     else
     {
         Services.statsManager.GainArmor(6);
     }
 }
Beispiel #22
0
 public void AddToHand(CardFunction card)
 {
     if (PlayerHand.Count <= playerHandMaxSize - 1)
     {
         PlayerHand.Add(card);
         card.gameObject.GetComponent <SortingGroup>().sortingOrder = PlayerHand.IndexOf(card);
     }
     else
     {
         AddToDiscardPile(card);
     }
 }
Beispiel #23
0
 public void zz_RiskyArchive(CardFunction card)
 {
     if (card.initial)
     {
         zz_GainRedMana(50);
         card.initial = false;
     }
     else
     {
         zz_GainRedMana(20);
     }
 }
    public void PressChooseButton()
    {
        GameObject a = Instantiate(currentSelectCard.gameObject);

        AddToRunReck(a.GetComponent <CardFunction>());
        currentSelectCard = null;
        draftLeft--;
        if (draftLeft == 0)
        {
            ChangeState(new BeforeCombat(this));
        }
        else if (draftLeft > 0)
        {
            ChangeState(new Reward(this));
        }
    }
Beispiel #25
0
    void AddNewCard(Color color, CardFunction cardfunction, int ID, int repeatTimes) //新增一張牌
    {
        GameObject card = Instantiate(Resources.Load <GameObject>("Prefabs/TheCard"));

        card.GetComponent <Card>().color        = color;
        card.GetComponent <Card>().CardFunction = cardfunction;
        card.GetComponent <Card>().ID           = ID;
        card.name = "Card_" + color.ToString() + " " + cardfunction.ToString() + " " + repeatTimes.ToString();
        card.GetComponent <Card>().cardState = CardState.InDeck;

        GameObject graphic = Instantiate(Resources.Load <GameObject>("Prefabs/Pattern"));

        graphic.GetComponent <SpriteRenderer>().sprite = Resources.Load <Sprite>("graphic/" + color.ToString() + cardfunction.ToString());
        graphic.transform.SetParent(card.transform);
        graphic.transform.localPosition = new Vector3(0, 0, -0.1f);
        graphic.transform.eulerAngles   = new Vector3(0, 180, 0);
    }
Beispiel #26
0
 public void PlayCard(CardFunction card)
 {
     if (currentTargetEnemy == null)
     {
         //Pop up
         Services.visualEffectManager.PlayErrorPopUp("Please select a target first!");
     }
     else if (card.CanPlay())
     {
         Services.resourceManager.ConsumeDrawBar(card.GetDrawCost());
         Services.resourceManager.ConsumeAttackBar(card.GetAttackCost());
         card.Played();
         PlayerHand.Remove(card);
         Services.eventManager.Fire(new PlayerPlayCardEvent(card));
         UpdateCardCanPlay();
     }
 }
Beispiel #27
0
    private bool CheckBan() //確認上一家是否禁止自己出牌
    {
        bool         result       = false;
        GameObject   LastCard     = gameManager.IDtoGameobeject(gameManager.LastCardID);
        CardState    cardState    = LastCard.GetComponent <Card>().cardState;
        CardFunction cardFunction = LastCard.GetComponent <Card>().CardFunction;

        if (cardState == CardState.Played) //先確認功能牌尚未發揮作用
        {
            if ((cardFunction == CardFunction.DrawTwo || cardFunction == CardFunction.Skip) || cardFunction == CardFunction.WildDrawFour)
            {
                gameManager.BanAction();

                float[]    NameToPosition = gameManager.Name_To_Position(name);
                float      Xpos           = NameToPosition[0];
                float      Ypos           = NameToPosition[1];
                GameObject Stop           = Instantiate(Resources.Load <GameObject>("Prefabs/Stop"));
                Stop.transform.localPosition = new Vector3(Xpos, Ypos, -2f);
                StartCoroutine(WaitForDestroy("Stop(Clone)"));

                switch (cardFunction)
                {
                case CardFunction.DrawTwo:
                    SoundEffect.PlusTwoVoice();
                    EnergyManager(2);
                    break;

                case CardFunction.WildDrawFour:
                    SoundEffect.PlusFourVoice();
                    EnergyManager(4);
                    break;

                case CardFunction.Skip:
                    SoundEffect.StopVoice();
                    EnergyManager(1);
                    break;
                }

                result = true;
            }
        }
        return(result);
    }
Beispiel #28
0
    private void CheckReverse() //確認是否打出迴轉
    {
        GameObject   LastCard     = gameManager.IDtoGameobeject(gameManager.LastCardID);
        CardState    cardState    = LastCard.GetComponent <Card>().cardState;
        CardFunction cardFunction = LastCard.GetComponent <Card>().CardFunction;

        if (cardFunction == CardFunction.Reverse) //先確認功能牌尚未發揮作用
        {
            if (cardState == CardState.Played)
            {
                Debug.Log("Reverse");
                turnScript.ChangeOrder(order);
                LastCard.GetComponent <Card>().cardState = CardState.Used;
                GameObject Rotation = Instantiate(Resources.Load <GameObject>("Prefabs/Rotation"));
                Rotation.transform.localPosition = new Vector3(0, 0, -8f);
                StartCoroutine(WaitForDestroy("Rotation(Clone)"));
                SoundEffect.ReverseVoice();
            }
        }
    }
Beispiel #29
0
    private void DrawCardAction() //依照功能牌,進行抽卡
    {
        GameObject   LastCard     = gameManager.IDtoGameobeject(gameManager.LastCardID);
        CardFunction cardFunction = LastCard.GetComponent <Card>().CardFunction;

        if (cardFunction == CardFunction.DrawTwo)
        {
            for (int i = 1; i <= 2; i++)
            {
                DrawCard();
            }
        }
        else if (cardFunction == CardFunction.WildDrawFour)
        {
            for (int i = 1; i <= 4; i++)
            {
                DrawCard();
            }
        }
    }
Beispiel #30
0
    IEnumerator AttackCoroutine()
    {
        while (AttackField.Count != 0)
        {
            CardFunction card = AttackField[0];
            card.TriggerEffect();
            AttackField.RemoveAt(0);
            yield return(new WaitForSeconds(1.0f));
        }

        Debug.Log("end attack");
        //currentTargetEnemy.TakeDamage(Services.statsManager.GetCurrentAttackDmg());
        Services.combatManager.ContinueTimeCycle();
        attacking = false;
        //Services.statsManager.LoseAllTempAttack();
        currentAttackCost = attackActionCost;
        UpdateBasicActionCostDisplay();
        attackButton.interactable = true;

        UpdateCardCanPlay();
        yield return(null);
    }