public FollowerData GetRandomFollower(bool includeGlobal) { List <FollowerDrop> drops = includeGlobal ? Drops.Concat(GlobalFollowerDrops.GlobalDrops).ToList() : Drops; if (drops.Count == 0) { return(null); } int sum = drops.Sum(t => t.DropChance); int rand = Random.Range(0, sum); int count = 0; foreach (var t in drops) { count += t.DropChance; if (rand < count) { FollowerData data = Object.Instantiate(t.Follower); if (data is EnemyData) { EnemyData d = data as EnemyData; d.Level = Mathf.RoundToInt(Random.value * (t.MaxLevel - t.MinLevel) + t.MinLevel); data = d; } data.AfterCreated(); return(data); } } return(drops.Last().Follower); }
public void DropEnemy() { FollowerData data = Instantiate(AllFollowers.ElementAt(EnemyDropdown.value)); if (data is EnemyData) { ((EnemyData)data).Level = int.Parse(EnemyLevel.text); } data.AfterCreated(); CurrentFollowers.Add(data); }
public FollowerData GetFollower(FollowerData enemy, bool includeGlobal) { List <FollowerDrop> drops = includeGlobal ? Drops.Concat(GlobalFollowerDrops.GlobalDrops).ToList() : Drops; foreach (var drop in drops) { if (drop.Follower == enemy) { FollowerData data = Object.Instantiate(drop.Follower); if (data is EnemyData) { EnemyData d = data as EnemyData; d.Level = Mathf.RoundToInt(Random.value * (drop.MaxLevel - drop.MinLevel) + drop.MinLevel); data = d; } data.AfterCreated(); return(data); } } return(null); }