public void CreateFassionMonster(int monsterId, Vector3 position) { EZ.Data.MonsterItem monsterItem = Global.gApp.gGameData.MosterData.Get(monsterId); Monster monster = m_WaveMgr.CreateMonster(monsterItem, true); monster.transform.position = position; m_Monsters.Add(monster); monster.Init(m_MainPlayer, this, monsterItem); m_MonsterCount++; }
private bool CreateScenePointMonsterImp(MonsterItem monsterItem, GameObject bornNode) { Monster monster = m_WaveMgr.CreateMonster(monsterItem); if (monster != null) { Vector3 position = bornNode.transform.position; position.z = 0; monster.transform.position = position; m_Monsters.Add(monster); monster.Init(m_MainPlayer, this, monsterItem); return(true); } else { AddRoundRoleMonsterInfo(monsterItem); return(false); } }
private bool CreateSceneAreatMonsterImp(MonsterItem monsterItem, GameObject bornNode) { Monster monster = m_WaveMgr.CreateMonster(monsterItem); if (monster != null) { Vector3 localScale = bornNode.transform.localScale; float x = Random.Range(-0.5f, 0.5f); float y = Random.Range(-0.5f, 0.5f); Vector3 posOffset = new Vector3(localScale.x * x, localScale.y * y, 0); Vector3 position = bornNode.transform.position + posOffset; position.z = 0; monster.transform.position = position; m_Monsters.Add(monster); monster.Init(m_MainPlayer, this, monsterItem); return(true); } else { AddRoundRoleMonsterInfo(monsterItem); return(false); } }
//lockExterAdd = true lock push item to RoundRoleMonsterInfo and call CreateMonsterFromCacheInfo limit by frameCreate count private bool CreateRoundMonsterImp(MonsterItem monsterItem, BornNode bornNode, bool lockExterAdd = false) { if (bornNode.GetIsOutMap()) { Monster monster = null; if (!lockExterAdd) { monster = m_WaveMgr.CreateMonster(monsterItem); } else { monster = m_WaveMgr.CreateMonsterFromCacheInfo(monsterItem); } if (monster != null) { Vector3 position = bornNode.transform.position; position.z = 0; monster.transform.position = position; m_Monsters.Add(monster); monster.Init(m_MainPlayer, this, monsterItem); return(true); } else { if (!lockExterAdd) { AddRoundRoleMonsterInfo(monsterItem); return(false); } } } else { int count = m_RoundRoleBornNodes.Length; int symbol = Random.Range(0, 1000); int bornIndex = Random.Range(0, count); if (symbol > 500) { symbol = 1; } else { symbol = -1; bornIndex += count; } for (int i = 0; i < count; i++) { int newIndex = bornIndex % count; BornNode newNode = m_RoundRoleBornNodes[newIndex]; if (newNode.GetIsOutMap()) { Monster monster = null; if (!lockExterAdd) { monster = m_WaveMgr.CreateMonster(monsterItem); } else { monster = m_WaveMgr.CreateMonsterFromCacheInfo(monsterItem); } if (monster != null) { Vector3 position = newNode.transform.position; position.z = 0; monster.transform.position = position; m_Monsters.Add(monster); monster.Init(m_MainPlayer, this, monsterItem); return(true); } else { if (!lockExterAdd) { AddRoundRoleMonsterInfo(monsterItem); } return(false); } } bornIndex += symbol; } } if (!lockExterAdd) { AddRoundRoleMonsterInfo(monsterItem); } return(false); }