private void CreateMonsterGroup(SpwanPointIds spwanID, IList <MonsterData> group) { if (group == null || group.Count == 0) { return; } foreach (MonsterData monster in group) { CreateMonsterEntity(spwanID, monster); } }
private MonsterEntity2D CreateMonsterEntity(SpwanPointIds pointID, MonsterData monsterData) { SpwanPoint2D point = null; if (monsterData.isBoss) { point = mapWrapper.bossSpawnPoints[UnityEngine.Random.Range(0, mapWrapper.bossSpawnPoints.Count)]; } else { IList <SpwanPoint2D> points = null; mapWrapper.monsterSpawnPoints.TryGetValue(pointID, out points); if (points.Count != 0) { point = points[UnityEngine.Random.Range(0, points.Count)]; } } if (point == null) { return(null); } MonsterEntity2D entity = ResourceUtils.GetComponent <MonsterEntity2D>(GlobalDefinitions.RESOURCE_PATH_MONSTER + monsterData.resourceID); entity.BindData(monsterData); entity.OnDispose = () => { monsters.Remove(entity); }; LayerManager.GetInstance().AddObject(entity.transform); monsters.Add(entity); entity.transform.position += point.transform.position; entity.direction = point.direction; if (point.direction == Vector2.right) { entity.Flip(); } return(entity); }
public IList <MonsterData> GetJoinMonsters(SpwanPointIds pointID) { Func <IList <MonsterData>, int, IList <MonsterData> > TakeMonsters = (IList <MonsterData> monsters, int joinCount) => { IList <MonsterData> results = monsters.Take <MonsterData>(joinCount).ToList(); foreach (MonsterData monster in results) { monsters.Remove(monster); } return(results); }; List <MonsterData> joins = new List <MonsterData>(); if (pointID == SpwanPointIds.A) { joins.AddRange(TakeMonsters(monstersA, joinCount)); } else if (pointID == SpwanPointIds.B) { joins.AddRange(TakeMonsters(monstersB, joinCount)); } else if (pointID == SpwanPointIds.C) { joins.AddRange(TakeMonsters(monstersC, joinCount)); } else if (pointID == SpwanPointIds.D) { joins.AddRange(TakeMonsters(monstersD, joinCount)); } else if (pointID == SpwanPointIds.E) { joins.AddRange(TakeMonsters(monstersE, joinCount)); } return(joins); }