public void AddPlat() { if (++_iPlatIndex > BattleManager.GetInst().Stairs) { return; } BattleFieldData field = BattleManager.GetInst().GetFieldData(_iPlatIndex); BattlePlat plat = ResourceMgr.PopBox(SceneId, field.Type); plat.Index = _iPlatIndex; plat.X = field.X; plat.Y = field.Y; plat.m_Transform.SetParent(ForegroundTran); plat.m_Transform.localPosition = new Vector3(field.X, field.Y, 0f); plat.m_Transform.localScale = Vector3.one; if (field.Item > 0) { string itemId = ConfigData.GetValue("Scene_Common", SceneId.ToString(), string.Format("Item{0}", field.Item)); if (itemId != "-1") { int id = int.Parse(itemId); BattleItem item = ResourceMgr.PopItem(id); item.Type = id; item.m_Transform.SetParent(plat.m_Transform, false); } } _dicPlat.Add(_iPlatIndex, plat); }
private void LoadFieldData(bool loadItem) { _lstFieldData.Clear(); float x, y, lastY = 0; int type = 0, item = 0; BattleFieldData data = new BattleFieldData(0, 0, 0, 0); _lstFieldData.Add(data); for (int i = 0; i < Stairs; ++i) { x = _rand.Next(-5, 6) / 2f; y = lastY - _rand.Next(4, 8) / 2f; type = _rand.Next(0, ApplicationConst.iPlatTypeCount); item = loadItem && _rand.Next(0, 100) < 10 ? _rand.Next(1, 2) : 0; lastY = y; data = new BattleFieldData(x, y, type, item); _lstFieldData.Add(data); } }