void InitializePools(SpawnSpec spec) { for (int i = 0; i < spec.ships.Length; i++) { InitializePools(spec.ships[i].spec, false); } }
public override bool Modify(SpawnSpec spec) { MultiMap <GridSpace> spawnable = new MultiMap <GridSpace>(); spec.Room.DrawAll(Draw.If <GridSpace>((g) => g.Spawnable).IfThen(Draw.AddTo(spawnable))); Value2D <GridSpace> space; if (!spawnable.GetRandom(spec.Random, out space)) { return(false); } BigBoss.DungeonMaster.SpawnNPC(space.val, space.val.Theme.Keywords); return(true); }
void ForcePopulateLevel(Level l) { l.Populated = true; foreach (Container2D <GridSpace> room in l.RoomMaps) { MultiMap <GridSpace> roomMap = new MultiMap <GridSpace>(); room.DrawAll((arr, x, y) => { roomMap[x, y] = l[x, y]; return(true); }); SpawnSpec spec = new SpawnSpec(Probability.SpawnRand, roomMap); SpawnModifier mod = SpawnModifier.GetMod(); mod.Modify(spec); } }
public override bool ShouldSpawn(SpawnSpec spec) { return(true); }
public abstract bool ShouldSpawn(SpawnSpec spec);
public abstract bool Modify(SpawnSpec spec);