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); } }
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()); */ }