コード例 #1
0
    private void SetSpecialItem(GameProp item)
    {
        switch (item.Type)
        {
        case "a4e7":
            itemCondition.ExtendsRounds += System.Convert.ToInt32(item.Value);
            break;

        case "a4e14":
            itemCondition.KillPromote += item.Value;
            break;

        case "a4e16":
            itemCondition.BloodSucking += item.Value;
            break;

        case "a4e12":
            itemCondition.Revive = item;
            break;

        case "a4e13":
            itemCondition.FullBloodItems.Add(item);
            break;
        }
    }
コード例 #2
0
ファイル: RetreatAMode.cs プロジェクト: howelllucas/Project
 private void CollectingProp(GameProp prop, GameObject obj)
 {
     if (obj == m_PropNode)
     {
         BroadPlotTips(1);
     }
 }
コード例 #3
0
ファイル: ItemRender.cs プロジェクト: MolloSama/krakenGame
    // Use this for initialization
    void Start()
    {
        int chance = 20;

        if (GlobalVariable.HasFightScenes.Contains(GlobalVariable.currentScene))
        {
            chance = 0;
        }
        if (GlobalVariable.Chance(chance))
        {
            List <GameProp> allBattleItems = new List <GameProp>();
            foreach (GameProp item in GlobalVariable.AllGameItems.Values)
            {
                if (!item.Type.Equals("a4e17"))
                {
                    allBattleItems.Add(item);
                }
            }
            int      randomIndex = Random.Range(0, allBattleItems.Count);
            GameProp randomItem  = allBattleItems[randomIndex];
            GlobalVariable.BattleItems.Add(randomItem);
            Transform itemImg = transform.Find("itemImg");
            itemImg.GetComponent <SpriteRenderer>().sprite = Resources.Load <Sprite>("item/" + randomItem.SerialNumber);
            Transform itemName = transform.Find("itemName");
            itemName.GetComponent <TextMesh>().text = randomItem.Name;
            Transform itemDescription = transform.Find("itemDescription");
            string    description     = randomItem.Description;
            itemDescription.GetComponent <TextMesh>().text = Regex.Replace(description, @"\S{13}", "$0\r\n");;
        }
    }
コード例 #4
0
ファイル: ItemCondition.cs プロジェクト: MolloSama/krakenGame
 public ItemCondition()
 {
     ExtendsRounds  = 0;
     KillPromote    = 0;
     BloodSucking   = 0;
     FullBloodItems = new List <GameProp>();
     Revive         = null;
 }
コード例 #5
0
    public void SetItem(GameProp t)
    {
        info = t;
        ChangeSprite();
        InventoryItem item = GetComponentInChildren <InventoryItem>();

        item.Item = t;
    }
コード例 #6
0
 private void GainProp(GameProp prop, GameObject obj)
 {
     if (m_NpcProp.gameObject == obj)
     {
         m_CollectFightNpcPlayer = m_NpcProp.GetFightNpcPlayer();
         ShowNewPlot(m_NewPlotId, PlotCallBack);
     }
 }
コード例 #7
0
 private void GainProp(GameProp prop, GameObject obj)
 {
     if (prop == m_GameProp)
     {
         BroadPlotTips(3);
         EndTask();
     }
 }
コード例 #8
0
        private void CollectingProp(GameProp prop, GameObject obj)
        {
            int index = m_Props.FindIndex(l => l == obj);

            if (index >= 0)
            {
                BroadPlotTips(2);
            }
        }
コード例 #9
0
 private void GainProp(GameProp prop, GameObject obj)
 {
     if (obj == m_PropNode)
     {
         BroadPlotTips(2);
         //BroadPlotTips(4);
         m_StartCountDown = true;
         m_TriggerNode.gameObject.SetActive(true);
         m_PropEffectNode.SetActive(true);
     }
 }
コード例 #10
0
ファイル: PlaySkill.cs プロジェクト: MolloSama/krakenGame
 void LoadSkill(GameProp skillProp)
 {
     setMonsterHide();
     skill                 = Instantiate(skillPane, transform.position + new Vector3(-1f, 1.5f, 0), Quaternion.identity);
     skillName             = skill.transform.Find("skill-name").GetComponent <TextMesh>();
     skillDescription      = skill.transform.Find("skill-description").GetComponent <TextMesh>();
     skillIcon             = skill.transform.Find("skill-icon").GetComponent <SpriteRenderer>();
     skillName.text        = skillProp.Name;
     skillDescription.text = Regex.Replace(skillProp.Description, @"\S{8}", "$0\r\n");
     skillIcon.sprite      = Resources.Load <Sprite>("skill/" + skillProp.SerialNumber);
 }
コード例 #11
0
 private void InitializeItem()
 {
     currentPage = 0;
     for (int i = 0; i < GlobalVariable.BattleItems.Count; ++i)
     {
         GameProp   itemProp = DeepCopy(GlobalVariable.BattleItems[i]);
         GameObject item     = Instantiate(itemPrefab, itemFirstPosition.position +
                                           new Vector3(0.2f * i, 0, 0), Quaternion.identity);
         itemSpriteReflect.Add(itemProp, item);
         item.GetComponent <SpriteRenderer>().sprite = Resources.Load <Sprite>("item/" + itemProp.SerialNumber);
         EffectPropertyItem(itemProp);
         EffectStatusItem(itemProp);
         SetSpecialItem(itemProp);
     }
 }
コード例 #12
0
    public void ClickCard()
    {
        GameProp card = handCards[CardAction.currentIndex];

        if (card.TargetQuantity == 1)
        {
            RenderMonster.needClickMonster = true;
            SetTip("请选择要攻击的目标");
        }
        else
        {
            RenderMonster.needClickMonster = false;
            selectedMonster = null;
            SetTip("请出牌");
        }
    }
コード例 #13
0
    private void EffectStatusItem(GameProp item)
    {
        switch (item.Type)
        {
        case "a4e3":
            AddStatus(kraken, item.StatusIcon, item.ConsecutiveRounds, item.Value, krakenPosition.position);
            break;

        case "a4e5":
            AddStatus(kraken, item.StatusIcon, item.ConsecutiveRounds, item.Value, Vector3.zero);
            break;

        case "a4e11":
            AddStatus(kraken, item.StatusIcon, item.ConsecutiveRounds, 0.1f, Vector3.zero);
            break;
        }
    }
コード例 #14
0
 private void GainProp(GameProp prop, GameObject obj)
 {
     if (m_Props.Contains(obj))
     {
         m_Props.Remove(obj);
         int leftCount = m_TargetPropCount - m_Props.Count;
         BroadTargetTips(0, leftCount.ToString(), m_TargetPropCount.ToString());
         BroadPlotTips(leftCount);
         if (m_Props.Count == 0)
         {
             EndTask();
         }
         else
         {
             SetTsf();
         }
     }
 }
コード例 #15
0
    public bool PlayCard()
    {
        GameProp card = handCards[CardAction.currentIndex];

        if (currentEnergy - card.EnergyConsumption < 0)
        {
            SetTip("精力不足");
            return(false);
        }
        else
        {
            currentEnergy -= card.EnergyConsumption;
            energy.transform.DOMoveY(energy.transform.position.y - card.EnergyConsumption * 0.35f, 1f);
            KrakenRound(card);
            RemoveCard();
            handCards.Remove(CardAction.currentIndex);
            return(true);
        }
    }
コード例 #16
0
    private void EffectPropertyItem(GameProp item)
    {
        switch (item.Type)
        {
        case "a4e1":
            kraken.AttactPower += krakenBaseAttact * item.Value;
            break;

        case "a4e2":
            kraken.DefensivePower += krakenBaseDefend * item.Value;
            break;

        case "a4e4":
            krakenMaxHealth   += Mathf.RoundToInt(krakenMaxHealth * item.Value);
            kraken.BloodVolume = krakenMaxHealth;
            break;

        case "a4e6":
            kraken.AttactPower    += krakenBaseAttact * item.Value;
            kraken.DefensivePower -= krakenBaseDefend * item.Value;
            break;

        case "a4e9":
            escape.demarcationline += System.Convert.ToInt32(item.Value * 100);
            break;

        case "a4e10":
            kraken.AttactPower    += krakenBaseAttact * item.Value;
            kraken.DefensivePower += krakenBaseDefend * item.Value;
            break;

        case "a4e11":
            kraken.AttactPower += krakenBaseAttact * item.Value;
            break;

        case "a4e15":
            kraken.DefensivePower += krakenBaseDefend * item.Value;
            krakenMaxHealth       -= Mathf.RoundToInt(krakenMaxHealth * 0.5f);
            kraken.BloodVolume     = krakenMaxHealth;
            break;
        }
    }
コード例 #17
0
ファイル: SkillSelect.cs プロジェクト: MolloSama/krakenGame
 public void SetSkill(GameProp prop)
 {
     skill = prop;
     if (skill != null)
     {
         transform.Find("skill").GetComponent <SpriteRenderer>().sprite = Resources.Load <Sprite>("skill/" + skill.SerialNumber);
         skillOnGrid.Add(gameObject);
         foreach (GameProp t in GlobalVariable.FightSkills)
         {
             if (t != null && t.SerialNumber.Equals(skill.SerialNumber))
             {
                 transform.Find("skill").GetComponent <SpriteRenderer>().material = Resources.Load <Material>("materials/SpriteGray");
             }
         }
     }
     else
     {
         transform.Find("skill").GetComponent <SpriteRenderer>().sprite = Resources.Load <Sprite>("Objects/base");
     }
 }
コード例 #18
0
    // Use this for initialization
    void Start()
    {
        int count = Random.Range(1, 4);

        if (GlobalVariable.HasFightScenes.Contains(GlobalVariable.currentScene))
        {
            if (GlobalVariable.Chance(50))
            {
                count = 1;
            }
            else
            {
                count = 0;
            }
        }
        for (int i = 0; i < count; ++i)
        {
            GameObject card = Instantiate(cardPrefab,
                                          cardStartPosition.position + new Vector3(i * 4.65f, 0, 0), Quaternion.identity);
            card.transform.parent = transform;
            int           randomIndex = Random.Range(0, GlobalVariable.AllCards.Keys.Count);
            List <string> keys        = new List <string>(GlobalVariable.AllCards.Keys);
            GameProp      randomCard  = GlobalVariable.AllCards[keys[randomIndex]];
            Transform     skillText   = card.transform.Find("skill-text");
            string        description = randomCard.Description;
            skillText.GetComponent <TextMesh>().text = Regex.Replace(description, @"\S{8}", "$0\r\n");
            SpriteRenderer cardStyle = card.transform.Find("card-style").GetComponent <SpriteRenderer>();
            Sprite         style     = Resources.Load <Sprite>("cardStyle/" +
                                                               randomCard.Type.Substring(0, 2) + randomCard.EnergyConsumption);
            cardStyle.sprite = style;
            Transform cardName = card.transform.Find("card-name");
            cardName.GetComponent <TextMesh>().text = randomCard.Name;
            SpriteRenderer cardRawImg = card.transform.Find("card-raw-img").GetComponent <SpriteRenderer>();
            Sprite         rawImg     = Resources.Load <Sprite>("cardRawImg/" + randomCard.SerialNumber);
            cardRawImg.sprite       = rawImg;
            cardRawImg.sortingOrder = cardStyle.sortingOrder + 1;
            GlobalVariable.ExistingCards.Add(randomCard);
        }
    }
コード例 #19
0
    IEnumerator AddOneCard(Vector3 lastCardEndPosition)
    {
        GameObject card = Instantiate(cardPrefab,
                                      cardStartPosition.position, Quaternion.identity);

        handCardsSprite.Add(card.GetComponent <CardAction>().index, card);

        int      randomIndex = Random.Range(0, cardGroup.Count);
        GameProp randomCard  = cardGroup[randomIndex];

        handCards.Add(card.GetComponent <CardAction>().index, randomCard);
        cardGroup.Remove(randomCard);

        Transform skillText   = card.transform.Find("skill-text");
        string    description = randomCard.Description;

        skillText.GetComponent <TextMesh>().text = Regex.Replace(description, @"\S{8}", "$0\r\n");
        SpriteRenderer cardStyle = card.transform.Find("card-style").GetComponent <SpriteRenderer>();
        Sprite         style     = Resources.Load <Sprite>("cardStyle/" +
                                                           randomCard.Type.Substring(0, 2) + randomCard.EnergyConsumption);

        cardStyle.sprite = style;
        Transform cardName = card.transform.Find("card-name");

        cardName.GetComponent <TextMesh>().text = randomCard.Name;
        SpriteRenderer cardRawImg = card.transform.Find("card-raw-img").GetComponent <SpriteRenderer>();
        Sprite         rawImg     = Resources.Load <Sprite>("cardRawImg/" + randomCard.SerialNumber);

        cardRawImg.sprite       = rawImg;
        cardStyle.sortingOrder  = ++orderIndex;
        cardRawImg.sortingOrder = orderIndex + 1;

        yield return(new WaitForSeconds(0.3f));

        card.transform.DOMove(lastCardEndPosition, 0.5f).OnComplete(() => {
            isAnimationEnd = true;
            isDrawCard     = false;
        });
    }
コード例 #20
0
ファイル: CardSelect.cs プロジェクト: MolloSama/krakenGame
 public void LoadCard(GameProp temp, int t)
 {
     gameProp = new CardProp(temp, t);
 }
コード例 #21
0
ファイル: CardSelect.cs プロジェクト: MolloSama/krakenGame
 public CardProp(GameProp t, int a)
 {
     gameProp = t;
     index    = a;
 }
コード例 #22
0
    IEnumerator MonsterRound()
    {
        foreach (Monster monster in monsters)
        {
            int      randomIndex = Random.Range(0, monster.SkillList.Count);
            GameProp skill       = monster.SkillList[randomIndex];
            Status   status;
            int      demage;
            //Debug.Log(skill.Name+" "+skill.Description);
            switch (skill.Type)
            {
            case "a1b1":
                demage = GetDamageValue(monster.AttactPower * skill.Value,
                                        kraken, skill.Attribute);
                ReduceBlood(kraken, demage);
                GetGameObjectByMonster(monster).transform.DOShakePosition(1f, 0.07f);
                if ((status = HaveReboundStatus(kraken.StatusList)) != null)
                {
                    ReduceBlood(monster, System.Convert.ToInt32(demage * status.Value));
                }
                StartCoroutine(PlayCardAnimation(skill.SerialNumber, krakenPosition));
                yield return(new WaitForSeconds(1f));

                break;

            case "a1b2":
                demage = GetDamageValue(monster.AttactPower * skill.Value,
                                        kraken, skill.Attribute);
                ReduceBlood(kraken, demage);
                EffectPropertyStatus(kraken,
                                     AddStatus(kraken, skill.StatusIcon, skill.ConsecutiveRounds, skill.Value,
                                               krakenPosition.position));
                GetGameObjectByMonster(monster).transform.DOShakePosition(1f);
                if ((status = HaveReboundStatus(kraken.StatusList)) != null)
                {
                    ReduceBlood(monster, System.Convert.ToInt32(demage * status.Value));
                }
                yield return(new WaitForSeconds(1f));

                break;

            case "a1b5":
                if (skill.TargetQuantity == 0)
                {
                    int value = System.Convert.ToInt32(skill.Value * GlobalVariable.
                                                       AllMonsters[monster.SerialNumber].BloodVolume);
                    AddBlood(monster, value);
                }
                else if (skill.TargetQuantity == 7)
                {
                    foreach (Monster m in monsters)
                    {
                        int value = System.Convert.ToInt32(skill.Value * GlobalVariable.
                                                           AllMonsters[m.SerialNumber].BloodVolume);
                        AddBlood(monster, value);
                    }
                }
                break;

            case "a2c1":
                EffectPropertyStatus(kraken,
                                     AddStatus(kraken, skill.StatusIcon, skill.ConsecutiveRounds, skill.Value,
                                               krakenPosition.position));
                break;

            case "a2c2":
                if (skill.TargetQuantity == 0)
                {
                    EffectPropertyStatus(monster,
                                         AddStatus(monster, skill.StatusIcon, skill.ConsecutiveRounds, skill.Value,
                                                   GetGameObjectByMonster(monster).transform.position));
                }
                else if (skill.TargetQuantity == 7)
                {
                    foreach (Monster m in monsters)
                    {
                        EffectPropertyStatus(m,
                                             AddStatus(m, skill.StatusIcon, skill.ConsecutiveRounds, skill.Value,
                                                       GetGameObjectByMonster(m).transform.position));
                    }
                }
                break;
            }
            JudegStatus(monster, GetGameObjectByMonster(monster).transform.position);
        }
        isMonsterRoundOver = true;
    }
コード例 #23
0
    public void KrakenRound(GameProp card)
    {
        Status status;

        switch (card.Type)
        {
        case "a1b1":
            if (card.TargetQuantity == 1)
            {
                int demage = GetDamageValue(kraken.AttactPower * card.Value,
                                            selectedMonster, card.Attribute);
                ReduceBlood(selectedMonster, demage);
                if ((status = HaveReboundStatus(selectedMonster.StatusList)) != null)
                {
                    ReduceBlood(kraken, System.Convert.ToInt32(demage * status.Value));
                }
                if (itemCondition.BloodSucking != 0)
                {
                    AddBlood(kraken, System.Convert.ToInt32(demage * itemCondition.BloodSucking));
                }
                StartCoroutine(PlayCardAnimation(card.SerialNumber,
                                                 GetGameObjectByMonster(selectedMonster).transform));
            }
            else if (card.TargetQuantity == 6)
            {
                StartCoroutine(PlayCardAnimation(card.SerialNumber,
                                                 monstersPosition5.transform));
                foreach (Monster monster in monsters)
                {
                    int demage = GetDamageValue(kraken.AttactPower * card.Value,
                                                monster, monster.Attribute);
                    ReduceBlood(monster, demage);
                    if ((status = HaveReboundStatus(monster.StatusList)) != null)
                    {
                        ReduceBlood(kraken, System.Convert.ToInt32(demage * status.Value));
                    }
                    if (itemCondition.BloodSucking != 0)
                    {
                        AddBlood(kraken, System.Convert.ToInt32(demage * itemCondition.BloodSucking));
                    }
                }
            }
            else
            {
                StartCoroutine(PlayCardAnimation(card.SerialNumber,
                                                 monstersPosition5.transform));
                for (int i = 1; i <= card.TargetQuantity; ++i)
                {
                    int     randomIndex = Random.Range(0, monsters.Count);
                    Monster monster     = monsters[randomIndex];
                    int     demage      = GetDamageValue(kraken.AttactPower * card.Value,
                                                         monster, monster.Attribute);
                    ReduceBlood(monster, demage);
                    if ((status = HaveReboundStatus(monster.StatusList)) != null)
                    {
                        ReduceBlood(kraken, System.Convert.ToInt32(demage * status.Value));
                    }
                    if (itemCondition.BloodSucking != 0)
                    {
                        AddBlood(kraken, System.Convert.ToInt32(demage * itemCondition.BloodSucking));
                    }
                }
            }
            break;

        case "a1b2":
            if (card.TargetQuantity == 1)
            {
                int demage = GetDamageValue(kraken.AttactPower * card.Value,
                                            selectedMonster, card.Attribute);
                EffectPropertyStatus(selectedMonster,
                                     AddStatus(selectedMonster, card.StatusIcon, card.ConsecutiveRounds, card.Value,
                                               GetGameObjectByMonster(selectedMonster).transform.position));
                StartCoroutine(PlayCardAnimation(card.SerialNumber,
                                                 GetGameObjectByMonster(selectedMonster).transform));
                ReduceBlood(selectedMonster, demage);
                if ((status = HaveReboundStatus(selectedMonster.StatusList)) != null)
                {
                    ReduceBlood(kraken, System.Convert.ToInt32(demage * status.Value));
                }
                if (itemCondition.BloodSucking != 0)
                {
                    AddBlood(kraken, System.Convert.ToInt32(demage * itemCondition.BloodSucking));
                }
            }
            else if (card.TargetQuantity == 6)
            {
                StartCoroutine(PlayCardAnimation(card.SerialNumber,
                                                 monstersPosition5.transform));
                foreach (Monster monster in monsters)
                {
                    int demage = GetDamageValue(kraken.AttactPower * card.Value,
                                                monster, monster.Attribute);
                    EffectPropertyStatus(monster,
                                         AddStatus(monster, card.StatusIcon, card.ConsecutiveRounds, card.Value,
                                                   GetGameObjectByMonster(monster).transform.position));
                    ReduceBlood(monster, demage);
                    if ((status = HaveReboundStatus(monster.StatusList)) != null)
                    {
                        ReduceBlood(kraken, demage);
                    }
                    if (itemCondition.BloodSucking != 0)
                    {
                        AddBlood(kraken, System.Convert.ToInt32(demage * itemCondition.BloodSucking));
                    }
                }
            }
            else
            {
                StartCoroutine(PlayCardAnimation(card.SerialNumber,
                                                 monstersPosition5.transform));
                for (int i = 1; i <= card.TargetQuantity; ++i)
                {
                    int     randomIndex = Random.Range(0, monsters.Count);
                    Monster monster     = monsters[randomIndex];
                    int     demage      = GetDamageValue(kraken.AttactPower * card.Value,
                                                         monster, monster.Attribute);
                    EffectPropertyStatus(monster,
                                         AddStatus(monster, card.StatusIcon, card.ConsecutiveRounds, card.Value,
                                                   GetGameObjectByMonster(monster).transform.position));
                    ReduceBlood(monster, demage);
                    if ((status = HaveReboundStatus(monster.StatusList)) != null)
                    {
                        ReduceBlood(kraken, System.Convert.ToInt32(demage * status.Value));
                    }
                    if (itemCondition.BloodSucking != 0)
                    {
                        AddBlood(kraken, System.Convert.ToInt32(demage * itemCondition.BloodSucking));
                    }
                }
            }
            break;

        case "a1b3":
            isDrawCard = true;
            StartCoroutine(PlayCardAnimation(card.SerialNumber,
                                             krakenPosition));
            StartCoroutine(WaitForRemoveCard(1.7f));
            break;

        case "a1b4":
            StartCoroutine(PlayCardAnimation(card.SerialNumber,
                                             krakenPosition));
            int energyValue = int.Parse(card.Value.ToString());
            if (currentEnergy + energyValue >= maxEnergy)
            {
                SetEnergyFull();
            }
            else
            {
                currentEnergy += energyValue;
                energy.transform.DOMoveY(energy.transform.position.y + energyValue * 0.35f, 1f);
            }
            break;

        case "a1b5":
            StartCoroutine(PlayCardAnimation(card.SerialNumber,
                                             krakenPosition));
            AddBlood(kraken, System.Convert.ToInt32(card.Value * krakenMaxHealth));
            if (kraken.BloodVolume > krakenMaxHealth)
            {
                kraken.BloodVolume = krakenMaxHealth;
            }
            break;

        case "a2c1":
            if (card.TargetQuantity == 1)
            {
                StartCoroutine(PlayCardAnimation(card.SerialNumber,
                                                 GetGameObjectByMonster(selectedMonster).transform));
                EffectPropertyStatus(selectedMonster,
                                     AddStatus(selectedMonster, card.StatusIcon, card.ConsecutiveRounds, card.Value,
                                               GetGameObjectByMonster(selectedMonster).transform.position));
            }
            else
            {
                StartCoroutine(PlayCardAnimation(card.SerialNumber,
                                                 monstersPosition5.transform));
                for (int i = 1; i <= card.TargetQuantity; ++i)
                {
                    int     randomIndex = Random.Range(0, monsters.Count);
                    Monster monster     = monsters[randomIndex];
                    EffectPropertyStatus(monster,
                                         AddStatus(monster, card.StatusIcon, card.ConsecutiveRounds, card.Value,
                                                   GetGameObjectByMonster(monster).transform.position));
                }
            }
            break;

        case "a2c2":
            StartCoroutine(PlayCardAnimation(card.SerialNumber,
                                             krakenPosition));
            EffectPropertyStatus(kraken,
                                 AddStatus(kraken, card.StatusIcon, card.ConsecutiveRounds,
                                           card.Value, krakenPosition.position));
            break;

        case "a3d1":
            StartCoroutine(PlayCardAnimation(card.SerialNumber,
                                             krakenPosition));
            EffectPropertyStatus(kraken,
                                 AddStatus(kraken, card.StatusIcon, card.ConsecutiveRounds,
                                           card.Value, krakenPosition.position));
            break;
        }
    }
コード例 #24
0
 public ObjectItem(GameProp t, int p)
 {
     gameProp = t;
     num      = p;
 }