Пример #1
0
 protected virtual void Awake()
 {
     effectGraphic               = EffectGraphic.NewEffectGraphic(this);
     TransformManager            = GetComponentInChildren <TransformManager>();
     statChangePropogator.Source = Stats;
     Stats.AddType(StatType.BaseGoldCost);
     Stats.AddType(StatType.GoldCost);
     Stats.AddType(StatType.BaseManaCost);
     Stats.AddType(StatType.ManaCost);
     Stats.SetValue(StatType.CardType, CardType);
 }
Пример #2
0
    public static EffectGraphic get(RectTransform rectTrans)
    {
        if (rectTrans == null)
        {
            return(null);
        }
        EffectGraphic effect = rectTrans.GetComponent <EffectGraphic>();

        if (!effect)
        {
            effect = rectTrans.gameObject.AddComponent <EffectGraphic>();
        }
        return(effect);
    }
 IEnumerator showGraphicCoroutine(EffectGraphic graphic, AnimationCommand cmd)
 {
     timePassed = 0;
     showGraphic(graphic);
     while (timePassed < DISPLAY_TIME)
     {
         newX = remainingTimeDefaultWidth - remainingTimeDefaultWidth * timePassed / DISPLAY_TIME;
         cachedV2.Set(newX, remainingTimeGraphic.size.y);
         remainingTimeGraphic.size = cachedV2;
         timePassed += Time.deltaTime * timePassedCoeff;
         yield return(null);
     }
     cvGameObject.SetActive(false);
     cmd.finished = true;
 }
    private void showGraphic(EffectGraphic graphic)
    {
        switch (graphic)
        {
        case CardEffectGraphic g:
            showCardEffectGraphic(g);
            break;

        case TextEffectGraphic g:
            showTextEffectGraphic(g);
            break;

        default:
            throw new Exception("Unexpected graphic type");
        }
    }
Пример #5
0
 public static void fillEffectGraphicMesh(this RectTransform rectTrans, Vector3[] vertexPosition, Vector2[] vertexUV, Color[] vertexColors, int[] vertexIndices)
 {
     if (rectTrans != null)
     {
         if (vertexColors != null)
         {
             Color32[] colors = new Color32[vertexColors.Length];
             for (int index = 0, length = colors.Length; index < length; index++)
             {
                 colors[index] = vertexColors[index];
             }
             EffectGraphic.get(rectTrans).fillVertextData(vertexPosition, vertexUV, colors, vertexIndices);
         }
         else
         {
             EffectGraphic.get(rectTrans).fillVertextData(vertexPosition, vertexUV, null, vertexIndices);
         }
     }
 }
Пример #6
0
    // Add a new randomly generated skillGem
    public void AddSkillGem()
    {
        int randomNum = UnityEngine.Random.Range(1, MAX_GEMTYPE_COUNT);

        // Since skillGem category is based on range of ints, check which gem should be created whether
        // randomNum is less than or equal to the category num
        int  randomTier = UnityEngine.Random.Range(0, 100);
        Tier tier       = Tier.common;

        if (randomTier <= 5)
        {
            tier = Tier.legendary;
        }
        else if (randomTier <= 25)
        {
            tier = Tier.unique;
        }
        else if (randomTier <= 60)
        {
            tier = Tier.rare;
        }

        SkillGemType gemType = (SkillGemType)Enum.ToObject(typeof(SkillGemType), randomNum);
        string       gemName = ((SkillGemType)randomNum).ToString();

        Debug.Log("Generating " + tier + " " + gemName);
        if (randomNum <= (int)SkillGemCategory.elementGem)
        {
            // Grab random castEffect and hitEffect
            EffectsList   effectsList = GetEffectsList(tier);
            EffectGraphic effect      = effectsList.RandomEffect;

            string castEffect = "", hitEffect = "";
            castEffect = effect.cast.name;
            hitEffect  = effect.hit.name;
            ElementGem gem = new ElementGem(gemName,
                                            "Random generated skillGem",
                                            "",
                                            tier,
                                            ItemType.skillGem,
                                            gemType,
                                            effect.castOffset,
                                            castEffect,
                                            hitEffect);
            Player.instance.inventory.AddItem(gem, 1);
        }
        else if (randomNum <= (int)SkillGemCategory.damageEffect)
        {
            float min = UnityEngine.Random.Range(1, 100);
            float max = min + UnityEngine.Random.Range(3, 50);

            EffectGem gem = new EffectGem(gemName,
                                          "Random generated skillGem",
                                          "",
                                          tier,
                                          ItemType.skillGem,
                                          gemType,
                                          new Damage(min, max, 1, false));
            Player.instance.inventory.AddItem(gem, 1);
        }
        else if (randomNum <= (int)SkillGemCategory.healEffect)
        {
            EffectGem gem = new EffectGem(gemName,
                                          "Random generated skillGem",
                                          "",
                                          tier,
                                          ItemType.skillGem,
                                          gemType,
                                          new Heal(UnityEngine.Random.Range(10, 100), false));
            Player.instance.inventory.AddItem(gem, 1);
        }
        else if (randomNum <= (int)SkillGemCategory.buffEffect)
        {
            EffectGem gem = new EffectGem(gemName,
                                          "Random generated skillGem",
                                          "",
                                          tier,
                                          ItemType.skillGem,
                                          gemType,
                                          new Buff(false,
                                                   60,
                                                   new AttributeStats(),
                                                   new CharStats(),
                                                   new CombatStats()));
            Player.instance.inventory.AddItem(gem, 1);
        }
        else if (randomNum <= (int)SkillGemCategory.statusEffect)
        {
            EffectGem gem = new EffectGem(gemName,
                                          "Random generated skillGem",
                                          "",
                                          tier,
                                          ItemType.skillGem,
                                          gemType,
                                          new StatusEffect());
            Player.instance.inventory.AddItem(gem, 1);
        }

        GenerateList();
    }
 public AnimationCommand(EffectGraphic graphic, EffectGraphicsView view)
 {
     this.graphic = graphic;
     this.view    = view;
 }
 public void AddToQueue(EffectGraphic newGraphic)
 {
     InformativeAnimationsQueue.Instance.AddAnimation(new AnimationCommand(newGraphic, this));
 }