1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162 |
- /// <reference path="../Forest.ts" />
- import CentaurCoordinates = Forest.CentaurCoordinates;
- module Forest{
- export let CentaurCoordinates = Forest.rnc.generate(-4,-3, 1, 4);
- export let CentaurVillageSouthwestWall = new RoomRandom("Around the Centaur Village - Southwest", false, true);
- export let CentaurVillageNorthwestWall = new RoomRandom("The Centaur Village - North Gates", false, true);
- export let CentaurVillageWestWall = new RoomRandom("Around the Centaur Village - West", false, true);
- export let CentaurVillageNorthWall = new RoomRandom("Around the Centaur Village - North", false, true);
- export let CentaurVillageNortheastWall = new RoomRandom("Around the Centaur Village - Northeast", false, true);
- export let CentaurVillageEastWall = new RoomRandom("Around the Centaur Village - East", false, true);
- export let CentaurVillageSoutheastGates = new RoomRandom("The Centaur Village - Eastern Gates", false, true);
- export let CentaurVillageSouthWall = new RoomRandom("Around the Centaur Village - South", false, true);
- CentaurVillageSouthwestWall.mapRoom(CentaurVillageWestWall, Direction.NORTH);
- CentaurVillageWestWall.mapRoom(CentaurVillageNorthwestWall, Direction.NORTH);
- CentaurVillageNorthwestWall.mapRoom(CentaurVillageNorthWall, Direction.EAST);
- CentaurVillageNorthWall.mapRoom(CentaurVillageNortheastWall, Direction.EAST);
- CentaurVillageNortheastWall.mapRoom(CentaurVillageEastWall, Direction.SOUTH);
- CentaurVillageEastWall.mapRoom(CentaurVillageSoutheastGates, Direction.SOUTH);
- CentaurVillageSoutheastGates.mapRoom(CentaurVillageSouthWall, Direction.WEST);
- CentaurVillageSouthWall.mapRoom(CentaurVillageSouthwestWall, Direction.WEST);
- export let CentaurVillageWalls = [CentaurVillageSouthwestWall, CentaurVillageWestWall, CentaurVillageNorthWall, CentaurVillageNortheastWall, CentaurVillageEastWall, CentaurVillageNorthwestWall, CentaurVillageSouthWall];
- }
- Forest.region.place(Forest.CentaurVillageSoutheastGates);
- Forest.CentaurVillageSoutheastGates.backgroundImage = "roomCentaurVillage";
- Forest.CentaurVillageWalls.forEach(wall => {
- Forest.region.place(wall);
- wall.backgroundImage = "roomCentaurVillage";
- });
- RegionRandom.rulebookAfterPlaceRoom.addRule(new Rule({
- name : "After placing the Forest.CentaurVillageSoutheastGates",
- code : (runner : RulebookRunner<RandomizingRoomOptions>) => {
- // Place the rest of the village
- let map = runner.noun.map;
- let southeast = map.getCoordinates(runner.noun.room);
- let center = [southeast[0] - 1, southeast[1] + 1];
- map.map(Forest.CentaurVillageNorthwestWall, center[0] -1 , center[1] + 1) ;
- map.map(Forest.CentaurVillageNorthWall, center[0], center[1] + 1) ;
- map.map(Forest.CentaurVillageNortheastWall, center[0] + 1, center[1] + 1) ;
- map.map(Forest.CentaurVillageWestWall, center[0] - 1, center[1]);
- map.block(center[0], center[1]);
- map.map(Forest.CentaurVillageEastWall, center[0] + 1, center[1]) ;
- map.map(Forest.CentaurVillageSouthWall, center[0], center[1] - 1) ;
- map.map(Forest.CentaurVillageSouthwestWall, center[0] - 1, center[1] - 1);
- },
- conditions : (runner : RulebookRunner<RandomizingRoomOptions>) => {
- return runner.noun.room == Forest.CentaurVillageSoutheastGates;
- }
- }));
- Forest.CentaurVillageSoutheastGates.trickyCode = (options : TrickyOptions) => {
- while (!options.map.isFreeSquare(Forest.CentaurCoordinates[0] - 1, Forest.CentaurCoordinates[1] + 1, 1)) {
- Forest.CentaurCoordinates[0] -= 1;
- }
- return options.x == Forest.CentaurCoordinates[0] && options.y == Forest.CentaurCoordinates[1];
- };
|