void GenerateRoom(DunGen.Room roomBase) { // pick a room template from the floor; var roomTemplateKey = tpd.RollMap(env.roomTemplateChances); var roomTemplate = JSONResource.Get <RoomTemplate>(roomTemplateKey); var roomGenerator = new RoomGenerator(env, roomTemplate, roomBase); env.rooms.Add(roomGenerator.CreateRoom()); }
void ParseSingleConfig(JSONNode config) { var type = config["type"].Value; switch (type) { case Setting.type: JSONResource.Cache <Setting>(config); break; case SlotType.type: SlotType.Cache(config); break; case EquipmentDesignation.type: EquipmentDesignation.Cache(config); break; case EquipmentType.type: EquipmentType.Cache(config); break; case ConsumableTemplate.type: JSONResource.Cache <ConsumableTemplate>(config); break; case EnvironmentTemplate.type: JSONResource.Cache <EnvironmentTemplate>(config); break; case Environment.type: JSONResource.Cache <Environment>(config); break; case RoomTemplate.type: JSONResource.Cache <RoomTemplate>(config); break; case MobTemplate.type: JSONResource.Cache <MobTemplate>(config); break; case InteractionTemplate.type: JSONResource.Cache <InteractionTemplate>(config); break; case Rarity.type: Rarity.Cache(config); break; default: Debug.LogWarning(string.Format("Failed to load {0} {1}", config["type"], config["key"])); break; } }
void GenerateInteractible(Tile tile) { var interactibleTemplateKey = tpd.RollMap(env.interactibleChances); var interactibleTemplate = JSONResource.Get <InteractionTemplate>(interactibleTemplateKey); var interactibleGenerator = new InteractionGenerator(interactibleTemplate); var interactible = interactibleGenerator.Generate(); var randomTile = room.RandomOpenTile(); interactible.position = randomTile.position; InteractibleStore.Save(interactible); randomTile.Occupy(Constants.interactibleContentKey, interactible.id); }
void GenerateMob(Tile tile) { var mobTemplateKey = tpd.RollMap(env.mobChances); var mobTemplate = JSONResource.Get <MobTemplate>(mobTemplateKey); var mobGenerator = new MobGenerator(mobTemplate); var mob = mobGenerator.Generate(); var randomTile = room.RandomOpenTile(); mob.position = randomTile.position; MobStore.Save(mob); randomTile.Occupy(Constants.mobContentKey, mob.id); }
public void Enter() { var interactionTemplateKey = sim.currentEnvironment.enterInteractionTemplateKey; var interactionTemplate = JSONResource.Get <InteractionTemplate>(interactionTemplateKey); if (interactionTemplate == null) { return; } var interaction = InteractionGenerator.Generate(interactionTemplate); sim.SetInteraction(interaction); var interactionProcessor = new InteractionProcessor(sim); interactionProcessor.Start(); }