Beispiel #1
0
 void InitializePools(SpawnSpec spec)
 {
     for (int i = 0; i < spec.ships.Length; i++)
     {
         InitializePools(spec.ships[i].spec, false);
     }
 }
Beispiel #2
0
    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);
    }
Beispiel #3
0
 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);
     }
 }
Beispiel #4
0
 public override bool ShouldSpawn(SpawnSpec spec)
 {
     return(true);
 }
Beispiel #5
0
 public abstract bool ShouldSpawn(SpawnSpec spec);
Beispiel #6
0
 public abstract bool Modify(SpawnSpec spec);