Exemplo n.º 1
0
    private void InitCard(ref List <CardDeckSettingData> settingDataList, ref List <CharacterCard> inGameDataList, bool isPlayerTeam)
    {
        ObjectPoolManager objectPoolMgr = GameObject.Find("CharacterCardPool").GetComponent <ObjectPoolManager>();

        for (int i = 0; i < settingDataList.Count; ++i)
        {
            CharacterCard settingCardPrefab = settingDataList[i].CardPrefab.GetComponent <CharacterCard>();
            CharacterCard inGameCardObject  = objectPoolMgr.GetObject().GetComponent <CharacterCard>();

            // 카드에 나오는 캐릭터 스프라이트를 바꿔준다.
            SpriteRenderer settingPortraitSpr  = settingCardPrefab.m_PortraitRenderer;
            SpriteRenderer inGamePortraitSpr   = inGameCardObject.m_PortraitRenderer;
            SpriteRenderer inGameBackgroundSpr = inGameCardObject.m_BackgroundRenderer;
            inGamePortraitSpr.sprite  = settingPortraitSpr.sprite;
            inGameBackgroundSpr.color = new Color(1.0f, 1.0f, 1.0f, 0.0f);

            inGameCardObject.IsPlayerTeam  = isPlayerTeam;
            inGameCardObject.m_HealthPoint = settingCardPrefab.m_HealthPoint;
            inGameCardObject.m_AttackPoint = (settingDataList[i].IsDefensiveCard) ? (int)(settingCardPrefab.m_AttackPoint * 0.5f)
                                                                    : settingCardPrefab.m_AttackPoint;
            inGameCardObject.m_Speed         = settingCardPrefab.m_Speed;
            inGameCardObject.IsDefensiveCard = settingDataList[i].IsDefensiveCard;
            inGameCardObject.ResetStatus();

            StartCoroutine(inGameCardObject.UpdateCardStatus());

            inGameDataList.Add(inGameCardObject);
        }
    }
Exemplo n.º 2
0
 private void SyncCardWithSlot(ref List <CharacterCard> targetCardList, ref List <CardSlot> cardSlotList)
 {
     for (int i = 0; i < targetCardList.Count; ++i)
     {
         CharacterCard targetCardObject = targetCardList[i];
         for (int j = 0; j < cardSlotList.Count; ++j)
         {
             int      rowOfSlot      = (j / 2) + 1;
             CardSlot cardSlotObject = cardSlotList[j];
             if (cardSlotObject.SlotObject == null)
             {
                 targetCardObject.transform.position = cardSlotObject.SlotPosition;
                 cardSlotObject.SlotObject           = targetCardObject;
                 break;
             }
             else
             {
                 if (targetCardObject == cardSlotObject.SlotObject)
                 {
                     targetCardObject.transform.position = cardSlotObject.SlotPosition;
                     break;
                 }
             }
         }
     }
 }
Exemplo n.º 3
0
    private void GoingToNextTurn()
    {
        AdjustExecuteOrder();

        if (m_CurrentTurnCard.CurrentCardStatus == CharacterCard.CardStatus.TurnActionEnded)
        {
            if (m_CurrentCardIndex < m_TurnExecuteOrder.Count - 1)
            {
                m_CurrentTurnCard.ForceQuitVisualizeEffect();
                m_CurrentTurnCard = m_TurnExecuteOrder[++m_CurrentCardIndex];
                m_ActionListener(OccuredActionState.TurnActionEnd);
            }
            else
            {
                // 하나의 페이즈가 끝날 때마다, 턴에 관련된 모든 상태를 초기화한다.
                // 추후, 디버프나, 버프 같은 상태이상의 지속시간 소비부분도 이 부분에서 결정한다.
                for (int i = 0; i < m_TurnExecuteOrder.Count; ++i)
                {
                    m_TurnExecuteOrder[i].PhaseEndAction();
                    m_CurrentTurnCard.ForceQuitVisualizeEffect();
                }

                m_CurrentTurnCard  = m_TurnExecuteOrder[0];
                m_CurrentCardIndex = 0;

                m_ActionListener(OccuredActionState.PhaseEnded);
            }
        }
    }
Exemplo n.º 4
0
    public override void Cancel(BaseScene.INPUT_TYPE type, JoystickManager.JOYSTICK_KEY_STATE keyState, JoystickManager.PLAYER_INDEX player)
    {
        Sounder.instance.Play("返回按键");
        if (keyState != JoystickManager.JOYSTICK_KEY_STATE.KEY_DOWN)
        {
            return;
        }

        if (alert.gameObject.activeSelf)
        {
            alert.gameObject.SetActive(false);
            return;
        }


        Sounder.instance.Play("返回按键");
        if (downloading)
        {
            confirm.Show(() =>
            {
                if (info != null)
                {
                    JLoader.instance.Remove(info);
                    info = null;
                    CharacterCard card = cards[characterIndex];
                    card.UpdateProgress(-1);
                    downloading = false;
                }
            }, "正在下载,要取消吗?");
        }
        else
        {
            BackToSongList();
        }
    }
Exemplo n.º 5
0
    public void ConfirmEnhance()
    {
        int    totalExp    = 0;
        string finalString = "";

        for (int i = 0; i < cards.Length; i++)
        {
            CharacterCard tempCard = cards[i].GetComponent <AddCardButtonHandler>().Card;
            if (tempCard != null)
            {
                totalExp   += GlobalManager.LocalUser.ComputeTotalExpFromCard(tempCard);
                finalString = finalString == "" ? finalString += tempCard.UID : finalString += "," + tempCard.UID;
            }
        }

        if (totalExp > 0)
        {
            base.parent.tabParent.OpenMainLoader(true);
            WWWForm form = new WWWForm();             //here you create a new form connection
            form.AddField("userId", GlobalManager.LocalUser.UID);
            form.AddField("cardId", parent.enhanceBaseCard.UID);
            form.AddField("enhanceCardIdList", finalString);
            form.AddField("goldReduce", 200);

            NetworkHandler.self.ResultDelegate += ServerRequestCallback;
            NetworkHandler.self.ErrorDelegate  += ServerRequestError;
            NetworkHandler.self.ServerRequest(GlobalManager.NetworkSettings.GetFullURL(GlobalManager.RequestType.ENHANCE), form);
        }
        else
        {
            // show popup -- no card to enhance
        }
    }
Exemplo n.º 6
0
 public Crime
     (CharacterCard characterC, LocationCard locationC, ObjectCard objectC)
 {
     this.characterCard = characterC;
     this.locationCard  = locationC;
     this.objectCard    = objectC;
 }
Exemplo n.º 7
0
    private IEnumerator DoDamage()
    {
        // Get all cards currently in play.
        Card[] allCardsInPlay = GameObject.FindObjectsOfType <Card>();

        // This while loop will run FOREVER until this coroutine is stopped.
        while (true)
        {
            // Wait so many seconds before this character attacks (again)
            yield return(new WaitForSeconds(this.stats.timeBetweenAttacks));

            // Tell other card(s) to take damage from this card.
            for (int i = 0; i < allCardsInPlay.Length; i++)
            {
                CharacterCard characterCard = allCardsInPlay[i] as CharacterCard;

                // If characterCard is null then is a non-character so don't tell it to take damage.
                if (characterCard == null)
                {
                    continue;
                }

                // Don't damage self!
                if (characterCard == this)
                {
                    continue;
                }

                // Tell other character that this character wants to damage it.
                characterCard.TakeDamage(this);
            }
        }
    }
Exemplo n.º 8
0
 public void Set(string name, Card.Factions faction, Player p, int def)
 {
     //allows the card to not need to be played
     //may move to intermitent "token character" class
     //also kinda depricated
     card = new CharacterCard(name, 0, 0, faction, p, 0, 0, 0, def);
 }
    public static int SortByName(CharacterCard go1, CharacterCard go2)
    {
        string name1 = GlobalManager.GameSettings.csObj.characterProperties[go1.cardNumber - 1].characterName;
        string name2 = GlobalManager.GameSettings.csObj.characterProperties[go2.cardNumber - 1].characterName;

        return(name1.CompareTo(name2));
    }
Exemplo n.º 10
0
 public override void Cancel(BaseScene.INPUT_TYPE type, JoystickManager.JOYSTICK_KEY_STATE keyState, JoystickManager.PLAYER_INDEX player)
 {
     if (hasSelect)
     {
         return;
     }
     Sounder.instance.Play("返回按键");
     if (downloading)
     {
         confirm.Show(() => {
             if (info != null)
             {
                 JLoader.instance.Remove(info);
                 info = null;
                 CharacterCard card = cards[index - 1];
                 card.UpdateProgress(-1);
                 downloading = false;
             }
         }, "正在下载,要取消吗?");
     }
     else
     {
         LoadLevel("Prop", false);
     }
 }
        public static int ComputeTotalExpFromCard(CharacterCard card)
        {
            int baseExp = 0;

            if (GameSettings.csObj.characterProperties[card.cardNumber - 1].rarity == 1)
            {
                baseExp = 500;
            }
            else if (GameSettings.csObj.characterProperties[card.cardNumber - 1].rarity == 2)
            {
                baseExp = 1000;
            }
            else if (GameSettings.csObj.characterProperties[card.cardNumber - 1].rarity == 3)
            {
                baseExp = 5000;
            }
            else if (GameSettings.csObj.characterProperties[card.cardNumber - 1].rarity == 4)
            {
                baseExp = 10000;
            }
            else if (GameSettings.csObj.characterProperties[card.cardNumber - 1].rarity == 5)
            {
                baseExp = 20000;
            }

            int currentExp = card.experience + ComputeCardLevelTotalExp(card.level - 1);

            return(baseExp + (int)((float)currentExp * 0.1f));
        }
    public static int SortByCost(CharacterCard go1, CharacterCard go2)
    {
        int cost1 = (int)GlobalManager.GameSettings.csObj.characterProperties[go1.cardNumber - 1].unitCost;
        int cost2 = (int)GlobalManager.GameSettings.csObj.characterProperties[go2.cardNumber - 1].unitCost;

        return(cost1.CompareTo(cost2));
    }
    public static int SortByHitPoint(CharacterCard go1, CharacterCard go2)
    {
        int totalHitPoint1 = (int)GlobalManager.GameSettings.csObj.characterProperties[go1.cardNumber - 1].maxHitPoint + (int)(go1.level * GlobalManager.GameSettings.csObj.characterProperties[go1.cardNumber - 1].hitPointIncreament);
        int totalHitPoint2 = (int)GlobalManager.GameSettings.csObj.characterProperties[go2.cardNumber - 1].maxHitPoint + (int)(go2.level * GlobalManager.GameSettings.csObj.characterProperties[go2.cardNumber - 1].hitPointIncreament);

        return(totalHitPoint1.CompareTo(totalHitPoint2));
    }
    private void SpawnLocalUserInventory()
    {
        Transform parent     = this.transform.Find("ScrollView/Inventory List Holder");
        int       currentRow = 0;
        int       currentCol = 0;

        GlobalManager.SortInventory();

        for (int i = 0; i < GlobalManager.UICard.localUserCardInventory.Count + 1; i++)
        {
            Vector3    pos    = Vector3.zero;
            GameObject holder = Instantiate(deckObj, Vector3.zero, Quaternion.identity) as GameObject;
            holder.name             = "Inventory_" + (i + 1);
            holder.transform.parent = parent;

            if (i % totalCol == 0 && i != 0)
            {
                currentRow++;
            }
            pos.x = ((currentCol * deckDimension.x) + (deckDimension.x / 2)) + (currentCol * 25f);
            pos.y = (((currentRow * deckDimension.y) + (deckDimension.y / 2)) + (currentRow * 40f)) * -1;

            holder.transform.localPosition = pos;
            holder.transform.localScale    = holder.transform.lossyScale;
            holder.AddComponent <UIDragScrollView>();
            UIEventListener.Get(holder).onClick += ButtonHandler;

            if (i == 0)
            {
                holder.GetComponent <UICardScript>().Card = null;
            }
            else
            {
                CharacterCard tempCardObj = GlobalManager.UICard.localUserCardInventory[i - 1];
                holder.GetComponent <UICardScript>().Card           = tempCardObj;
                holder.GetComponent <UICardScript>().inventoryIndex = i - 1;
                holder.GetComponent <UICardScript>().SortType       = GlobalManager.cardSorting;

                for (int j = 0; j < 6; j++)
                {
                    if (GlobalManager.UICard.localUserCardDeck[j] != null)
                    {
                        if (tempCardObj.UID == GlobalManager.UICard.localUserCardDeck[j].UID)
                        {
                            holder.GetComponent <UIButton>().isEnabled = false;
                            break;
                        }
                    }
                }
            }

            currentCol++;
            if (currentCol >= totalCol)
            {
                currentCol = 0;
            }
        }

        parent.GetComponent <UIWidget>().SetDimensions((int)scrollPanel.bounds.size.x, (int)scrollPanel.bounds.size.y);
    }
    // sorting functions
    public static int SortByDamage(CharacterCard go1, CharacterCard go2)
    {
        int totalDamage1 = (int)GlobalManager.GameSettings.csObj.characterProperties[go1.cardNumber - 1].damage + (int)(go1.level * GlobalManager.GameSettings.csObj.characterProperties[go1.cardNumber - 1].damageIncreament);
        int totalDamage2 = (int)GlobalManager.GameSettings.csObj.characterProperties[go2.cardNumber - 1].damage + (int)(go2.level * GlobalManager.GameSettings.csObj.characterProperties[go2.cardNumber - 1].damageIncreament);

        return(totalDamage1.CompareTo(totalDamage2));
    }
Exemplo n.º 16
0
    void Start()
    {
        Global.init(() => {
            List <int> random = new List <int>();
            for (int i = 0; i < cards.Length; i++)
            {
                CharacterCard card = cards[i];
                card.data          = Global.CHARACTER_TABLE[i + 1];
                card.gameObject.SetActive(true);
                card.SetIndex(i + 1);
                if (card.GetCanSelect() && (i + 1) != DataUtils.characterID)
                {
                    random.Add(i + 1);
                }
            }
            int r         = random[Random.Range(0, random.Count)];
            string filter = "";
            for (int i = 0; i < random.Count; i++)
            {
                filter += random[i] + ",";
            }
            SelectCard(r);
            okBtnSelectFrame.gameObject.SetActive(true);

            if (DataUtils.runingAutoMode)
            {
                Invoke("AutoGoNext", 3);
            }
        });
    }
    private void InventoryServerRequestCallback(string result)
    {
        NetworkHandler.self.ResultDelegate -= InventoryServerRequestCallback;
        NetworkHandler.self.ErrorDelegate  -= InventoryServerRequestError;
        parent.tabParent.OpenMainLoader(false);

        var N = JSONNode.Parse(result);

        //Debug.Log("callback: " + N["userId"]);

        if (N["cardDeck"].AsArray.Count > 0)
        {
            // save all inventory details
            GlobalManager.UICard.localUserCardInventory.Clear();
            for (int i = 0; i < N["cardDeck"].AsArray.Count; i++)
            {
                CharacterCard cardObj = new CharacterCard();
                cardObj.UID            = N["cardDeck"][i]["cardId"].AsInt;
                cardObj.experience     = N["cardDeck"][i]["cardExperience"].AsInt;
                cardObj.cardNumber     = N["cardDeck"][i]["cardNumber"].AsInt + 1;
                cardObj.level          = N["cardDeck"][i]["cardLevel"].AsInt;
                cardObj.rarity         = GlobalManager.GameSettings.csObj.characterProperties[cardObj.cardNumber - 1].rarity;
                cardObj.inventoryIndex = i;

                GlobalManager.UICard.localUserCardInventory.Add(cardObj);
            }

            parent.OpenSubPage(3);
        }
        else
        {
            // no user -- show register popup
            //loader.SetActive(false);
        }
    }
    protected override void DoChanceCardEffect()
    {
        // Get all cards currently in play.
        Card[] allCardsInPlay = GameObject.FindObjectsOfType <Card>();

        // Set health to 0 on each (If a character card)
        for (int i = 0; i < allCardsInPlay.Length; i++)
        {
            CharacterCard characterCard = allCardsInPlay[i] as CharacterCard;
            if (characterCard != null)
            {
                // Multiply stats.
                characterCard.stats.power              *= this.powerModifier;
                characterCard.stats.health             *= this.healthModifer;
                characterCard.stats.timeBetweenAttacks *= this.timeBetweenAttacksModifier;

                // Clamp stats.
                characterCard.stats.power              = Mathf.Max(characterCard.stats.power, 0f);
                characterCard.stats.health             = Mathf.Max(characterCard.stats.health, 0f);
                characterCard.stats.timeBetweenAttacks = Mathf.Max(characterCard.stats.timeBetweenAttacks, 0.1f);   // Leave a little time between attacks?

                // Set card effect color.
                characterCard.SetCardColor(this.colorCharacterCard);
            }
        }
    }
Exemplo n.º 19
0
    public override void OnEquiped(CharacterCard toCharacterCard)
    {
        //告知角色被装备该装备,如果已有装备则删除以后装备和BUFF
        toCharacterCard.RequestEquipWeapon(this);

        //添加BUFF
        toCharacterCard.AddState(equipmentState, this);
    }
Exemplo n.º 20
0
 public void Set(CharacterCard card)
 {
     this.card = card;
     ClearBuffs();
     wounds = 0;
     GetComponent <CharacterDisp>().Start();
     GetComponent <CharacterDisp>().Disp();
 }
Exemplo n.º 21
0
    public override void OnUse(CharacterCard toCard, string skillAppendData)
    {
        JsonData skillData = JsonMapper.ToObject(skillAppendData);
        int damage = Convert.ToInt32(skillData["damage"].ToString());
        int energy = Convert.ToInt32(skillData["energy"].ToString());

        toCard.ExpendEnergy(energy);//消耗能量
        toCard.GetDamage(damage);//造成伤害
    }
Exemplo n.º 22
0
    public void SetCharacter(int character)
    {
        this.character = (CharacterCard)character;
        Hashtable table = new Hashtable();

        table[(byte)1] = myID;
        table[(byte)2] = character;
        gameManager.gameClient.SendEvent(10, table, true, false);
    }
Exemplo n.º 23
0
 // Use this for initialization
 void Awake()
 {
     _currentScreen = CurrentScreen.None;
     _creditsPanel  = GetComponentInChildren <CreditsPanelScript>(true);
     _broughtPanel  = GetComponentInChildren <BroughtPanelScript>(true);
     _characterCard = GetComponentInChildren <CharacterCard>(true);
     _titleScreen   = GetComponentInChildren <TitleScreenGraphic>(true);
     _timeLeft      = _titleScreenDuration;
     _audioSource   = GetComponent <AudioSource>();
 }
Exemplo n.º 24
0
 public void SpawnNewCards(List <BattleCharacter> characters)
 {
     foreach (BattleCharacter c in characters)
     {
         CharacterCard card = Instantiate(characterCardPrefab, playerCardPanel).GetComponent <CharacterCard>();
         card.InitCard(c);
         card.UpdateCardColor(balancedColor);
         characterCards.Add(card);
     }
 }
Exemplo n.º 25
0
    private void DownloadVideo()
    {
        if (downloading)
        {
            return;
        }

        CharacterCard card = cards[characterIndex];

        card.undownload.gameObject.SetActive(false);

        if (Global.isAllResLocal)
        {
            downloading = false;
            if (confirm.gameObject.activeSelf)
            {
                confirm.gameObject.SetActive(false);
            }
            SetCharacter(characterIndex, true);
            return;
        }

        if (!Global.instance.CheckVideoDownload(card.data))
        {
            downloading = true;
            info        = Global.instance.DownloadVideo(card.data, (per) =>
            {
                if (per == -1)
                {
                    downloading = false;
                    alert.Show("网络异常或磁盘容量不足");
                    Sounder.instance.Play("BAD音效");
                    if (confirm.gameObject.activeSelf)
                    {
                        confirm.gameObject.SetActive(false);
                    }
                }
                else if (per == 1)
                {
                    downloading = false;
                    alert.Show("加载成功!");
                    if (confirm.gameObject.activeSelf)
                    {
                        confirm.gameObject.SetActive(false);
                    }
                }
                card.UpdateProgress(per);
            });
        }
        else
        {
            SetCharacter(characterIndex, true);
        }
    }
Exemplo n.º 26
0
    void InstantiateDollCard(DollData.DollInfo doll)
    {
        CharacterCard newButton = Instantiate(dollButtonPrefab, container);
        string        productID = doll.productID;
        string        nameKey   = doll.nameKey;
        Sprite        image     = doll.previewImage;

        newButton.Init(doll.dollType, nameKey, productID, image);
        newButton.Setup();
        normalDollCards.Add(newButton);
    }
Exemplo n.º 27
0
    // Use this for initialization
    void Start()
    {
        okBtnFrame.SetActive(true);
        DataUtils.isAutoMode     = false;
        DataUtils.runingAutoMode = false;

        curItem = okBtn;
        //初始化设置
        Global.init(() =>
        {
            for (int i = 0; i < propCards.Length; i++)
            {
                if (Global.PROP_TABLE.ContainsKey(i + 1))
                {
                    propCards[i].SetData(Global.PROP_TABLE[i + 1]);
                    switch (i)
                    {
                    case 0:
                    case 1:
                    case 2:
                        propCards[i].SetBuy(DataUtils.correntPropCount == ((i + 1) * 5)); //纠正道具
                        break;

                    case 3:
                    case 4:
                    case 5:
                        propCards[i].SetBuy(DataUtils.lifeType == (Global.LIFE_TYPE)(i - 2));    //血量道具
                        break;
                    }
                }
            }

            //===================character


            for (int i = 0; i < cards.Length; i++)
            {
                CharacterCard card = cards[i];
                card.data          = Global.CHARACTER_TABLE[i + 1];
                card.gameObject.SetActive(true);
                card.SetIndex(i);
            }

            //随机操作丢到了DataUtils里去了..从SongList过来之前已经随机好了.确保每次进游戏都是选的不同的人.
            int r          = DataUtils.characterID;
            characterIndex = r - 1;
            SetCharacter(r - 1);

            if (Guide.instance != null)
            {
                Guide.instance.Show();
            }
        });
    }
Exemplo n.º 28
0
        public void ShouldAssignCharacterCardToPlayer()
        {
            const CharactersEnum expectedResult = CharactersEnum.Pacifist;
            var player = new Player();

            Assert.IsNull(player.CharacterCard);
            var characterCard = new CharacterCard(CharactersEnum.Pacifist);

            player.AssignCharacterCard(characterCard);
            Assert.AreEqual(expectedResult, player.CharacterCard.Character);
        }
Exemplo n.º 29
0
    // Use this for initialization
    void Awake()
    {
        int a = Random.Range(1, 13);

        character = CharacterCard.CharacterCards.Find((x) => {
            return(x.cardId == a);
        });
        GameObject.Find("Canvas/Card/Name").GetComponent <Text> ().text    = character.name;
        GameObject.Find("Canvas/Card/Alias").GetComponent <Text> ().text   = character.alias;
        GameObject.Find("Canvas/Card/Quality").GetComponent <Text> ().text = character.quality.ToString();
    }
Exemplo n.º 30
0
    public override void OnEquiped(CharacterCard toCharacterCard)
    {
        //告知角色被装备该装备,如果已有装备则删除以后装备和BUFF
        toCharacterCard.RequestEquipJewelry(this);

        //添加BUFF
        if (equipmentState != null)
        {
            toCharacterCard.AddState(equipmentState, this);
        }
    }
Exemplo n.º 31
0
        public void GetIconClasses_Should_ReturnCorrectClasses_When_ClanIsPhoenix_And_TypeIsCharacter()
        {
            const string expected = "d-none d-sm-inline-block fa fa-fw fa-user fg-dark-phoenix";
            var          card     = new CharacterCard {
                Clan = Clan.Phoenix
            };
            var viewModel = new CardsListViewModel();

            var result = viewModel.GetIconClasses(card);

            result.Should().Be(expected);
        }
Exemplo n.º 32
0
        public void GetCost_Should_ReturnCostOfCard_When_CardHasCosts()
        {
            const int cost = 2;
            var       card = new CharacterCard {
                Cost = cost
            };
            var viewModel = new CardsListViewModel();

            var result = viewModel.GetCost(card);

            result.Should().Be(cost.ToString());
        }
Exemplo n.º 33
0
 public Player(CharacterCard card, Vector2 pos, int[] loyalty, string deckUrl)
 {
     //cards
     deck = new Deck(deckUrl, new XmlCardLoader("Cards.xml"), this);
     hand = new List <Card>();
     //resources
     manaPerTurn  = baseManaPerTurn;
     this.loyalty = loyalty;
     //avatar
     card.Owner = this;
     this.card  = card;
     MakeAvatar(pos);
 }
Exemplo n.º 34
0
 /// <summary>
 /// 设置该状态的所有者
 /// </summary>
 public void SetOwnerCard(CharacterCard ownerCard)
 {
     this.ownerCard = ownerCard;
 }
Exemplo n.º 35
0
    public override void OnUse(CharacterCard toCard, string skillAppendData)
    {
        ApplyAppendData(skillAppendData);

        toCard.AddState(this, null);
    }
Exemplo n.º 36
0
    /// <summary>
    /// 召唤选中的角色卡
    /// </summary>
    public void SummonCharacterUp(CharacterCard card, GameManager.GameSide side)
    {
        LogsSystem.Instance.Print(string.Format("{0}召唤{1}上场", side.ToString(), card.GetCardName()));

        //召唤卡片到场上
        string path = string.Format("UI Root/Background/GamePanel/{0}side/CardGrid", side.ToString());
        GameObject parent = GameObject.Find(path);
        GameObject prefab = Resources.Load<GameObject>("CharacterCard");
        GameObject go = NGUITools.AddChild(parent, prefab);
        CardContainer container = go.GetComponent<CardContainer>();
        container.SetCardData(card, true);
        parent.GetComponent<UIGrid>().Reposition();
    }
Exemplo n.º 37
0
 public void AddCharacterCard(CharacterCard card, GameSide side)
 {
     if (side == GameSide.Our)
     {
         OurCharacterCard.Add(card.GetCardInfo().cardUUID, card);
     }
     else
     {
         EnemyCharacterCard.Add(card.GetCardInfo().cardUUID, card);
     }
 }
Exemplo n.º 38
0
    public void RequestUseSkill(Skill skill, CharacterCard from, CharacterCard to)
    {
        //构建封包
        UseSkillData detailData = new UseSkillData();
        detailData.operatePlayerPosition = playerRoomData.allocPosition;
        detailData.operatePlayerUid = this.playerInfo.uid;
        detailData.operatePlayerUUID = this.playerInfo.UUID;
        detailData.fromCardUUID = from.GetCardUUID();
        detailData.toCardUUID = to.GetCardUUID();
        detailData.skillID = skill.GetSkillID();
        detailData.skillCommonName = skill.GetSkillCommonName();
        detailData.skillAppendData = skill.GetSkillAppendData();//----------暂时没有任何内容

        GameData data = new GameData();
        data.operateCode = OperateCode.UseSkill;
        data.roomID = playerRoomData.roomID;
        data.operateData = JsonCoding<UseSkillData>.encode(detailData);

        GameClient.Instance.SendToServer(data);
    }
Exemplo n.º 39
0
    /// <summary>
    /// 向服务器发送普通攻击请求
    /// </summary>
    public void RequestCharacterAttack(CharacterCard from, CharacterCard to)
    {
        string fromCardUUID = from.GetCardUUID();
        string toCardUUID = to.GetCardUUID();

        AttackData detailData = new AttackData();
        detailData.fromCardUUID = fromCardUUID;
        detailData.toCardUUID = toCardUUID;
        detailData.operatePlayerPosition = playerRoomData.allocPosition;
        detailData.operatePlayerUid = Global.Instance.playerInfo.uid;
        detailData.operatePlayerUUID = Global.Instance.playerInfo.UUID;

        GameData data = new GameData();
        data.operateCode = OperateCode.Attack;
        data.roomID = playerRoomData.roomID;
        data.operateData = JsonCoding<AttackData>.encode(detailData);

        GameClient.Instance.SendToServer(data);
    }
Exemplo n.º 40
0
    /// <summary>
    /// 向服务器请求添加英雄卡到场上
    /// </summary>
    public void RequestAddCharacterCard(CharacterCard character, GameSide side, string cardUUID)
    {
        //发送到远程服务器
        SummonCharacterData detailData = new SummonCharacterData();
        detailData.cardInfo = character.GetCardInfo();//获取卡片信息
        detailData.cardUUID = cardUUID;
        detailData.operatePlayerPosition = playerRoomData.allocPosition;
        detailData.operatePlayerUid = Global.Instance.playerInfo.uid;
        detailData.operatePlayerUUID = Global.Instance.playerInfo.UUID;

        GameData data = new GameData();
        data.operateCode = OperateCode.SummonCharacter;
        data.roomID = playerRoomData.roomID;
        data.operateData = JsonCoding<SummonCharacterData>.encode(detailData);

        GameClient.Instance.SendToServer(data);
    }
    /// <summary>
    /// 当角色发动普通攻击时
    /// </summary>
    /// <param name="targetCharacter">攻击对象</param>
    /// <param name="damage">伤害值</param>
    public void OnCharacterAttack(CharacterCard targetCharacter, int damage)
    {
        GameObject target = targetCharacter.container.gameObject;
        //播放动画
        Hashtable args = new Hashtable();
        args.Add("amount", target.transform.position - container.transform.position);
        args.Add("time", 1f);

        iTween.PunchPosition(container.gameObject, args);

        targetCharacter.GetDamage(damage);

        //状态回调
        if (cardState.Count != 0)
        {
            foreach (KeyValuePair<StateSkill, Card> pair in cardState)
            {
                pair.Key.OnCharacterAttack();//向下调用事件
                if (cardState.Count == 0) { break; }
            }
        }
    }
Exemplo n.º 42
0
 /// <summary>
 /// 只能被服务器返回的响应调用
 /// 技能来源必为技能拥有者(skillOwner)
 /// toCard为施法对象可以为null,
 /// skillAppendData为附加数据(伤害等,格式为JSON)
 /// </summary>
 public abstract void OnUse(CharacterCard toCard, string skillAppendData);
Exemplo n.º 43
0
 /// <summary>
 /// 当装备被装备时调用该函数
 /// 因为装备类型不一定所以需要由装备发起调用
 /// </summary>
 public virtual void OnEquiped(CharacterCard toCharacterCard) { }
Exemplo n.º 44
0
 /// <summary>
 /// 当装备被卸下时调用
 /// 删除buff
 /// </summary>
 public virtual void OnUnequiped(CharacterCard toCharacterCard)
 {
     if (this.equipmentState != null)
         toCharacterCard.RemoveState(this.equipmentState);
 }