private void RoomReward() { if (roomIndexListArr[curIndex][0].clear) { return; } int middle = (int)System.Math.Truncate((double)(roomIndexListArr[curIndex].Count / 2)); TileInfo info = roomIndexListArr[curIndex][middle]; if (info.roomType == ROOMTYPE.HALLWAY) { byte[] consumItemperArr = new byte[] { 40, 40, 20 }; int random = Random.Range(0, 100); int curpercent = 0; for (int i = 0; i < 3; i++) { int _x = Random.Range(-3, 4); int _z = Random.Range(-3, 4); curpercent += consumItemperArr[i]; if (random < curpercent) { switch (i) { case 0: consumItemperArr = new byte[] { 59, 30, 7, 3, 1 }; random = Random.Range(0, 100); curpercent = 0; for (int x = 0; x < 5; x++) { _x = Random.Range(-3, 4); _z = Random.Range(-3, 4); curpercent += consumItemperArr[i]; if (random < curpercent) { byte _coin = 0; switch (x) { case 0: _coin = 1; break; case 1: _coin = 2; break; case 2: _coin = 5; break; } for (int s = 0; s < _coin; s++) { GameObject obj = ResourceManager.Instance.GetDropItem(DISPOITEM.COIN); GameObject coin = Instantiate(obj, new Vector3(info.position.x + _x, 2, info.position.y + _z), Quaternion.identity); ConsumItem conitem = coin.AddComponent <ConsumItem>(); conitem.consumitem = DROPITEM.COIN; coin.transform.SetParent(roomIndexListArr[curIndex][0].obTile.transform); } } } break; case 1: random = Random.Range(0, 100); if (random < 95) { GameObject obj = ResourceManager.Instance.GetDropItem(DISPOITEM.KEY); GameObject _key = Instantiate(obj, new Vector3(info.position.x + _x, 2, info.position.y + _z), Quaternion.identity); ConsumItem conitem = _key.AddComponent <ConsumItem>(); conitem.consumitem = DROPITEM.KEYS; _key.transform.SetParent(roomIndexListArr[curIndex][0].obTile.transform); } else { GameObject obj = ResourceManager.Instance.GetDropItem(DISPOITEM.MASTERKEY); GameObject _masterkey = Instantiate(obj, new Vector3(info.position.x + _x, 2, info.position.y + _z), Quaternion.identity); ConsumItem conitem = _masterkey.AddComponent <ConsumItem>(); conitem.consumitem = DROPITEM.MASTERKEY; _masterkey.transform.SetParent(roomIndexListArr[curIndex][0].obTile.transform); } break; } } } } }
private void SpawnConsumItem() { byte[] consumItemperArr; int random = Random.Range(0, 100); int curpercent = 0; if (random < 40) { random = Random.Range(0, 100); for (int i = 0; i < 3; i++) { consumItemperArr = new byte[] { 50, 30, 20 }; curpercent += consumItemperArr[i]; if (random < curpercent) { switch (i) { case 0: consumItemperArr = new byte[] { 89, 7, 4 }; random = Random.Range(0, 100); curpercent = 0; for (int x = 0; x < 3; x++) { curpercent += consumItemperArr[i]; if (random < curpercent) { byte _coin = 0; switch (x) { case 0: _coin = 1; break; case 1: _coin = 2; break; case 2: _coin = 5; break; } for (int _x = 0; _x < _coin; _x++) { GameObject obj = ResourceManager.Instance.GetDropItem(DISPOITEM.COIN); GameObject coin = Instantiate(obj, new Vector3(transform.position.x, 2, transform.position.z), Quaternion.identity); ConsumItem conitem = coin.AddComponent <ConsumItem>(); conitem.consumitem = DROPITEM.COIN; } return; } } return; case 1: random = Random.Range(0, 100); if (random < 99) { GameObject obj = ResourceManager.Instance.GetDropItem(DISPOITEM.KEY); GameObject _key = Instantiate(obj, new Vector3(transform.position.x, 2, transform.position.z), Quaternion.identity); ConsumItem conitem = _key.AddComponent <ConsumItem>(); conitem.consumitem = DROPITEM.KEYS; } else { GameObject obj = ResourceManager.Instance.GetDropItem(DISPOITEM.MASTERKEY); GameObject _masterkey = Instantiate(obj, new Vector3(transform.position.x, 2, transform.position.z), Quaternion.identity); ConsumItem conitem = _masterkey.AddComponent <ConsumItem>(); conitem.consumitem = DROPITEM.MASTERKEY; } return; case 2: consumItemperArr = new byte[] { 89, 7, 4 }; random = Random.Range(0, 100); curpercent = 0; for (int y = 0; y < 3; y++) { curpercent += consumItemperArr[i]; if (random < curpercent) { byte _bean = 0; switch (y) { case 0: _bean = 1; break; case 1: _bean = 2; break; case 2: _bean = 5; break; } for (int _y = 0; _y < _bean; _y++) { GameObject obj = ResourceManager.Instance.GetDropItem(DISPOITEM.BEAN); GameObject coin = Instantiate(obj, new Vector3(transform.position.x, 2, transform.position.z), Quaternion.identity); ConsumItem conitem = coin.AddComponent <ConsumItem>(); conitem.consumitem = DROPITEM.BEANS; } } } return; } } } } }
private void GetSkillInput() { if (Input.GetKey(ScenesManager.Instance.optionInfo.run) && ScenesManager.Instance.CheckScene() != "Lobby" && stat.hp > 10) { if (stat.stamina > 0) { stat.stamina -= Time.deltaTime; stat.speed = stat.runspeed; } else { stat.stamina = 0; stat.speed = 1; } } else { if (stat.hp > 10) { stat.speed = 1; } else { stat.speed = 0.5f; } if (stat.stamina <= 20) { stat.stamina += Time.deltaTime / 3; } else { stat.stamina = 20; } } float _itemrecharge = (float)stat.curItemStack / (float)stat.curItemMax; if (Input.GetKeyDown(ScenesManager.Instance.optionInfo.recharge) && _itemrecharge >= 1) { GameObject[] effects = Resources.LoadAll <GameObject>("Effect/"); stat.curItemStack = 0; switch (stat.curItemIndex) { case 1: anim.SetTrigger("Fire"); GameObject areaskill = Instantiate(curItemSkill, new Vector3(transform.position.x, transform.position.y + 0.2f, transform.position.z), Quaternion.identity); areaskill.transform.SetParent(transform); WideAreaSkill wide = areaskill.GetComponent <WideAreaSkill>(); wide.SetSkillPreset("Monster", 20, 3f); stopAllMove = true; Invoke("InvincibleOff", 2.1f); break; case 2: GameObject butterfly = Instantiate(effects[10], transform.position, Quaternion.identity); butterfly.transform.SetParent(transform); if (stat.hp + 3 <= stat.maxHp) { stat.hp += 3; } else { stat.hp = stat.maxHp; } if (stat.mentality + 2 <= stat.maxMentality) { stat.mentality += 2; } else { stat.mentality = stat.maxMentality; } break; case 3: GameObject perfume = Instantiate(effects[11], transform.position, Quaternion.identity); perfume.transform.SetParent(transform); StartCoroutine(SkillPerfume(0, 5)); break; case 4: GameObject magicwallet = Instantiate(effects[12], transform.position, Quaternion.identity); magicwallet.transform.SetParent(transform); for (int i = 0; i < Random.Range(1, 6); i++) { int x = Random.Range(-3, 4); int z = Random.Range(-3, 4); GameObject obj = ResourceManager.Instance.GetDropItem(DISPOITEM.COIN); GameObject coin = Instantiate(obj, new Vector3(transform.position.x + x, 2, transform.position.z + z), Quaternion.identity); ConsumItem conitem = coin.AddComponent <ConsumItem>(); conitem.consumitem = DROPITEM.COIN; } break; case 5: GameObject raindow = Instantiate(effects[13], transform.position, Quaternion.identity); raindow.transform.SetParent(transform); if (stat.hp + 10 <= stat.maxHp) { stat.hp += 10; } else { stat.hp = stat.maxHp; } if (stat.mentality + 5 <= stat.maxMentality) { stat.mentality += 5; } else { stat.mentality = stat.maxMentality; } break; case 6: anim.SetTrigger("Lightning"); GameObject lightning = Instantiate(effects[14], new Vector3(transform.position.x, 5, transform.position.z), transform.rotation); lightning.transform.SetParent(transform); GameObject[] Monsters = GameObject.FindGameObjectsWithTag("Monster"); for (int i = 0; i < Monsters.Length; i++) { Monsters[i].GetComponent <Monster>().MonGetDamage(5); } break; } } if (Input.GetKeyDown(ScenesManager.Instance.optionInfo.disposable) && stat.curDispoItemIndex != 255) { Debug.Log("일회용 아이템 사용!"); if (_itemrecharge != 1) { switch (stat.curDispoItemIndex) { case 1: stat.curItemStack = stat.curItemMax; stat.curDispoItemIndex = 255; break; } } } }
private void SpawnHealItem() { byte[] consumItemperArr; int random = Random.Range(0, 100); int curpercent = 0; if (random < 10) { random = Random.Range(0, 100); for (int i = 0; i < 3; i++) { consumItemperArr = new byte[] { 45, 45, 10 }; curpercent += consumItemperArr[i]; if (random < curpercent) { switch (i) { case 0: random = Random.Range(0, 100); for (int _x = 0; _x < 3; _x++) { consumItemperArr = new byte[] { 75, 25, 10 }; curpercent += consumItemperArr[i]; if (random < curpercent) { GameObject obj = ResourceManager.Instance.GetDropItem(DISPOITEM.HP); switch (i) { case 0: GameObject s = Instantiate(obj, new Vector3(transform.position.x, 2, transform.position.z), Quaternion.identity); ConsumItem _s = s.AddComponent <ConsumItem>(); _s.consumitem = DROPITEM.HPS; return; case 1: GameObject m = Instantiate(obj, new Vector3(transform.position.x, 2, transform.position.z), Quaternion.identity); ConsumItem _m = m.AddComponent <ConsumItem>(); _m.consumitem = DROPITEM.HPM; return; case 2: GameObject l = Instantiate(obj, new Vector3(transform.position.x, 2, transform.position.z), Quaternion.identity); ConsumItem _l = l.AddComponent <ConsumItem>(); _l.consumitem = DROPITEM.HPL; return; } } } break; case 1: random = Random.Range(0, 100); for (int _x = 0; _x < 3; _x++) { consumItemperArr = new byte[] { 75, 25, 10 }; curpercent += consumItemperArr[i]; if (random < curpercent) { GameObject obj = ResourceManager.Instance.GetDropItem(DISPOITEM.MENTAL); switch (i) { case 0: GameObject s = Instantiate(obj, new Vector3(transform.position.x, 2, transform.position.z), Quaternion.identity); ConsumItem _s = s.AddComponent <ConsumItem>(); _s.consumitem = DROPITEM.MENTALS; return; case 1: GameObject m = Instantiate(obj, new Vector3(transform.position.x, 2, transform.position.z), Quaternion.identity); ConsumItem _m = m.AddComponent <ConsumItem>(); _m.consumitem = DROPITEM.MENTALM; return; case 2: GameObject l = Instantiate(obj, new Vector3(transform.position.x, 2, transform.position.z), Quaternion.identity); ConsumItem _l = l.AddComponent <ConsumItem>(); _l.consumitem = DROPITEM.MENTALL; return; } } } break; case 2: random = Random.Range(0, 100); for (int _x = 0; _x < 3; _x++) { consumItemperArr = new byte[] { 80, 16, 4 }; curpercent += consumItemperArr[i]; if (random < curpercent) { GameObject obj = ResourceManager.Instance.GetDropItem(DISPOITEM.HEALALL); switch (i) { case 0: GameObject s = Instantiate(obj, new Vector3(transform.position.x, 2, transform.position.z), Quaternion.identity); ConsumItem _s = s.AddComponent <ConsumItem>(); _s.consumitem = DROPITEM.TOTALHEALS; return; case 1: GameObject m = Instantiate(obj, new Vector3(transform.position.x, 2, transform.position.z), Quaternion.identity); ConsumItem _m = m.AddComponent <ConsumItem>(); _m.consumitem = DROPITEM.TOTALHEALM; return; case 2: GameObject l = Instantiate(obj, new Vector3(transform.position.x, 2, transform.position.z), Quaternion.identity); ConsumItem _l = l.AddComponent <ConsumItem>(); _l.consumitem = DROPITEM.TOTALHEALL; return; } } } break; } } } } }
private void CheckDropItem(Collider other) { ConsumItem _consumitem = other.GetComponent <ConsumItem>(); switch (_consumitem.consumitem) { case DROPITEM.COIN: if (stat.coin < 100) { stat.coin++; } break; case DROPITEM.KEYS: if (stat.roomKeys < 100) { stat.roomKeys++; } break; case DROPITEM.MASTERKEY: stat.roomKeys = 100; break; case DROPITEM.BEANS: if (stat.beans < 100) { stat.beans++; } break; case DROPITEM.HPS: if (stat.hp + 3 <= stat.maxHp) { stat.hp += 3; } else { stat.hp = stat.maxHp; } break; case DROPITEM.HPM: if (stat.hp + 5 <= stat.maxHp) { stat.hp += 5; } else { stat.hp = stat.maxHp; } break; case DROPITEM.HPL: if (stat.hp + 10 <= stat.maxHp) { stat.hp += 10; } else { stat.hp = stat.maxHp; } break; case DROPITEM.MENTALS: if (stat.mentality + 0.5f <= stat.maxMentality) { stat.mentality += 0.5f; } else { stat.mentality = stat.maxMentality; } break; case DROPITEM.MENTALM: if (stat.mentality + 1.0f <= stat.maxMentality) { stat.mentality += 1.0f; } else { stat.mentality = stat.maxMentality; } break; case DROPITEM.MENTALL: if (stat.mentality + 5.0f <= stat.maxMentality) { stat.mentality += 5.0f; } else { stat.mentality = stat.maxMentality; } break; case DROPITEM.TOTALHEALS: if (stat.hp + 3 <= stat.maxHp) { stat.hp += 3; } else { stat.hp = stat.maxHp; } if (stat.mentality + 1.0f <= stat.maxMentality) { stat.mentality += 1.0f; } else { stat.mentality = stat.maxMentality; } break; case DROPITEM.TOTALHEALM: if (stat.hp + 5 <= stat.maxHp) { stat.hp += 5; } else { stat.hp = stat.maxHp; } if (stat.mentality + 3.0f <= stat.maxMentality) { stat.mentality += 3.0f; } else { stat.mentality = stat.maxMentality; } break; case DROPITEM.TOTALHEALL: if (stat.hp + 20 <= stat.maxHp) { stat.hp += 20; } else { stat.hp = stat.maxHp; } if (stat.mentality + 10.0f <= stat.maxMentality) { stat.mentality += 10.0f; } else { stat.mentality = stat.maxMentality; } break; } byte[] arr = new byte[] { 0, 1, 1, 1, 2, 2, 2, 3, 3, 3, 2, 2, 2 }; GameObject[] effects = Resources.LoadAll <GameObject>("Effect/"); GameObject effect = Instantiate(effects[arr[(byte)_consumitem.consumitem]], transform.position, Quaternion.identity); effect.transform.SetParent(transform); Destroy(effect, 2.5f); Destroy(other.gameObject); }