public TotemDataset Clone()
    {
        TotemDataset totemDataset = new TotemDataset(totemName, sprite, radius, durationTime, pastingTime
                                                     , affectMyUnit, affectEnemy, buff.Clone());

        return(totemDataset);
    }
    public void LoadTotemDataFromJson(JsonTotem[] jsonTotems)
    {
        foreach (var jsonTotem in jsonTotems)
        {
            Buff buff = new Buff(
                (BuffType)System.Enum.Parse(typeof(BuffType), jsonTotem.buff_type),
                (jsonTotem.buff_positive == 1 ? true : false),
                jsonTotem.buff_name,
                jsonTotem.buff_desc,
                jsonTotem.buff_amount,
                (jsonTotem.buff_tick_time == 0) ? 0 : jsonTotem.buff_tick_time + 0.1f,
                jsonTotem.buff_tick_time,
                jsonTotem.buff_tick_time
                );

            TotemDataset totemDataset = new TotemDataset(
                jsonTotem.totem_name,
                Images[jsonTotem.sprite_name],
                jsonTotem.radius,
                jsonTotem.duration_time,
                0,
                (jsonTotem.affect_myunit == 1 ? true : false),
                (jsonTotem.affect_enemy == 1 ? true : false),
                buff
                );

            totemDatas.Add(totemDataset.totemName, totemDataset);
        }
    }
Esempio n. 3
0
    public void OnPointerDown(PointerEventData eventData)
    {
        totemInfo.gameObject.SetActive(true);
        totemInfo.transform.position = gameObject.transform.position;
        dragCheck = false;

        if (name == "buff_dotheal")
        {
            go = totem.CreateTotemOrNull("도트힐토템1");
            go.gameObject.SetActive(false);
            tempTotemDataset = go.GetComponent <Totem>().totemDataset;
            var orgAmount = tempTotemDataset.buff.orgAmount;
            tempTotemDataset.buff.amount = Mathf.Pow(orgAmount + spawnManger.stage, 1 + spawnManger.stage * 0.01f); // 임시 수식;
        }
        else if (name == "buff_attackup")
        {
            go = totem.CreateTotemOrNull("공격력토템1");
            go.gameObject.SetActive(false);
            tempTotemDataset = go.GetComponent <Totem>().totemDataset;
            var orgAmount = tempTotemDataset.buff.orgAmount;
            tempTotemDataset.buff.amount = Mathf.Pow(orgAmount + spawnManger.stage / 2, 1 + spawnManger.stage * 0.01f); // 임시 수식;
        }
        else if (name == "buff_dotdamage")
        {
            go = totem.CreateTotemOrNull("도트데미지토템1");
            go.transform.position = position;
            go.gameObject.SetActive(false);
            tempTotemDataset = go.GetComponent <Totem>().totemDataset;
            var orgAmount = tempTotemDataset.buff.orgAmount;
            tempTotemDataset.buff.amount = Mathf.Pow(orgAmount + spawnManger.stage * 5, 1 + spawnManger.stage * 0.01f); // 임시 수식;
        }
        else if (name == "buff_speeddown")
        {
            go = totem.CreateTotemOrNull("스피드저하토템1");
            go.transform.position = position;
            go.gameObject.SetActive(false);
            tempTotemDataset = go.GetComponent <Totem>().totemDataset;
            // 스피드 저하는 0.5 = 속도 50%저하 이런식이므로 다른것과는 아예 다른방식으로 접근하시길
            //go.GetComponent<Totem>().totemDataset.buff.amount = Mathf.Floor(Mathf.Pow(go.GetComponent<Totem>().totemDataset.buff.amount, 1.0f + 0.01f * (SpawnManger.stage - 1))); // 임시 수식;
            //tempTotemDataset.buff.amount += ((spawnManger.stage-1) / 100f); // 임시 수식;
            var orgAmount = tempTotemDataset.buff.orgAmount + spawnManger.stage / 2 * 0.009f;
            tempTotemDataset.buff.amount = orgAmount; // 임시 수식;
        }
        else if (name == "buff_defendup")
        {
            go = totem.CreateTotemOrNull("방어력토템1");
            go.transform.position = position;
            go.gameObject.SetActive(false);
            tempTotemDataset = go.GetComponent <Totem>().totemDataset;
            var orgAmount = tempTotemDataset.buff.orgAmount;
            tempTotemDataset.buff.amount = orgAmount + spawnManger.stage * 4; // 임시 수식;
        }
        SetTotemInfo();
    }
    public void Init(TotemDataset totemDataset)
    {
        StopAllCoroutines();
        this.totemDataset = totemDataset;

        placementCheck = false;

        totemSpriteRenderer.sprite = totemDataset.sprite;

        ellipse = new Ellipse(transform, totemDataset.radius);
        rangeCircle.transform.localScale = new Vector3(totemDataset.radius / 2.5f, totemDataset.radius / 2.5f, 1);

        if (totemDataset.buff.isPositive)
        {
            Color color = positiveColor;
            bottomCircle.color = color;
            color.a            = rangeCircle.color.a;
            rangeCircle.color  = color;
        }
        else
        {
            Color color = negativeColor;
            bottomCircle.color = color;
            color.a            = rangeCircle.color.a;
            rangeCircle.color  = color;
        }

        gameObject.SetActive(true);

        /*
         * if (totemDataset.buff.durationTime == 0)
         *  StartCoroutine(totemPassiveCoroutine());
         * else
         *  StartCoroutine(totemActiveCoroutine());
         */
    }