1
0
Fork 0

EncounterGenerator added

master
MrMcX vor 8 Jahren
Ursprung 68e110d706
Commit 35315e7d5e

@ -3,4 +3,4 @@ do.depend=false
do.jar=true do.jar=true
javac.debug=true javac.debug=true
javadoc.preview=true javadoc.preview=true
user.properties.file=/home/mosers/.netbeans/8.1/build.properties user.properties.file=C:\\Users\\MrMcX\\AppData\\Roaming\\NetBeans\\8.1\\build.properties

@ -0,0 +1,102 @@
/*
* The MIT License
*
* Copyright 2016 MrMcX.
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
* THE SOFTWARE.
*/
package eu.smoser.dungeongenerator.dungeon.objects;
import eu.smoser.dungeongenerator.dungeon.Dungeon;
import eu.smoser.dungeongenerator.util.Dice;
/**
*
* @author MrMcX
*/
public class Encounters extends ADungeonObject{
public Encounters(int num, Dungeon.Type type){
descString = "";
for(int i = 1; i <= num; i++){
descString += i + ": " + Encounter(type) + "\n";
}
}
public static String Encounter(Dungeon.Type type){
if(Dungeon.Natural(type)){
switch(Dice.Roll(20, 1)){
case 1: return "Ein Höhlenbewohner behauptet, er sei der Häuptling eines ganzen Stammes und bietet den Helden die Freundschaft an. In Wirklichkeit ist er nur ein unbedeutender Kundschafter, der keinerlei Befehlsgewalt hat, nachdem er die Helden zum Stamm geführt hat.";
case 2: return "Ein kleines Höhlenogermädchen wird von einer Riesenamöbe angegriffen.";
case 3: return "Eine Abenteurergruppe, bestehend aus einem Thorwaler und drei Tulamiden, hat sich in dieser Höhle verschanzt. Sie sind schwer verletzt, ausgehungert und wollen nur noch aus dem Dungeon entkommen.";
case 4: return "Ein tulamidischer Elementarist hat seine Kraft nicht mehr unter Kontrolle. Wahnsinnig zaubert er einen elementaren Zauberspruch nach dem anderen – anscheinend mit einer unbegrenzten Fülle an Astralpunkten.";
case 5: return "Vier Höhlenbewohner versuchen ihren Häuptling zu befreien, der in eine Gesteinsspalte gerutscht und nun eingeklemmt ist.";
case 6: return "Der Großteil dieser Höhle wird von einem tiefen Teich eingenommen. Im klaren Wasser ist ein Tunnel zu entdecken. Darin herrscht allerdings ein starker Sog, der einen in den See einer Nachbarhöhle zieht, aus der es keinen weiteren Ausgang gibt.";
case 7: return "Eine weiße, blinde Schlange greift den ersten Helden an, der die Höhle betritt.";
case 8: return "Ein Grolmhändler bietet seine Waren feil. Die Preise sind exorbitant hoch und sein Sortiment ist äußerst beschränkt.";
case 9: return "Ein völlig untypischer Wühlschrat folgt der stärksten Lichtquelle in dieser Höhle.";
case 10: return "Vier Höhlenspinnen haben einen völlig verängstigten Kobold in einer Ecke in die Enge getrieben.";
case 11: return "Eine etwa katzengroße Sphinx thront auf einem kleinen Basaltpodest. Wenn die Helden freundlich auftreten, wird sie eine kryptische und zu diesem Zeitpunkt völlig unverständliche Weissagung von sich geben.";
case 12: return "Ein Höhlenoger sitzt hier und lässt niemanden durch, der ihm nicht 5 Dukaten gibt. Unglücklicherweise kann er nur bis zwei zählen.";
case 13: return "Eine aus 5 Personen bestehende zwergische Prospektorengruppe macht hier gerade Rast. Sie sind auf der Suche nach erzhaltigen Kavernen, in die sie ihre Gänge treiben können.";
case 14: return "An der Decke der Höhle klettert ein Wühlschrat umher, der anscheinend Kristalle erntet.";
case 15: return "Der komplette Boden dieser Höhle sowie die Wände wimmeln nur so vor Glutlingen. Gibt es hier ein Durchkommen?";
case 16: return "Ein kleiner Drache liegt in einer der Ecken der Kaverne und rührt sich nicht. Ob er schläft?";
case 17: return "Im Raum liegt eine eisenverstärkte Truhe, aufgebrochen und anscheinend von woanders hierher geschleppt. Sie ist leer – neben ihr liegen zwei kleine Aschehäufchen.";
case 18: return "Die Höhle ist völlig mit Eis bedeckt, obwohl es gar nicht so kalt ist.";
case 19: return "Die Höhle scheint sich zu drehen, wenn man sie betritt. Nach jeweils 5 angefangenen KR ist eine Orientierungs-Probe notwendig, jeweils um einen Punkt mehr als die vorherige erschwert. Gelingt die Probe nicht, verliert man jegliche Orientierung.";
case 20: return "Ein Höhlendrache sitzt auf seinem Hort, hinter ihm befindet sich ein weiterer Ausgang nach draußen. Er bietet den Helden die Hälfte seines Schatzes an, wenn sie das gesamte Gebäude von Ungeziefer befreien können. Natürlich wird er das Versprechen nicht halten.";
}
} else {
switch(Dice.Roll(20, 1)){
case 1: return "Ein verletzter Höhlenbewohner bittet die Helden, ihn zurück zu seiner Heimat zu bringen. Er weiß nicht, was er hier tut und warum er verletzt ist.";
case 2: return "Auf einem Pergament im Raum findet sich ein Teil der Anlage skizziert.";
case 3: return "Ein Gestaltwandler beobachtet die Gruppe schon länger und erwartet sie in diesem Raum in Gestalt des stärksten Helden der Gruppe oder eines vertrauten Freundes.";
case 4: return Dice.Roll(6, 1) + " Glutlinge laben sich am frischen Leichnam eines in eine Robe gekleideten Andergasters.";
case 5: return "Was macht ein waschechter Pirat hier? Das weiß er selber nicht. Eben noch befand er sich auf seinem Schiff auf dem Meer der Sieben Winde.";
case 6: return "Wolfsratten haben sich hier eingenistet. Ihr Fell scheint aus reinem Gold zu bestehen.";
case 7: return "In der Höhle befinden sich unterschiedliche Monster, die anscheinend wie bei einer Schwarmintelligenz gegen die Helden zusammenarbeiten: " + EnemyList(Dice.Roll(6, 2), type);
case 8: return "Ein Grautier galoppiert panisch an den Helden vorbei. Es hat eine Art Satteltasche, in der sich die Ausrüstung eines Aves-Geweihten befindet. Auch 15 Silberdukatenfinden sich in einem kleinen Lederbeutel. In einem Raum ganz in der Nähe befindet sich sein toter Besitzer.";
case 9: return "Ein tulamidischer und sehr zerstreuter Magier, der vergessen hat, was er hier suchte, rennt an der Abenteurergruppe vorbei. Er ist sehr dankbar, wenn ihm geholfen wird, seinen spitzen Hut wiederzufinden und wieder an den Ausgang zu gelangen.";
case 10: return "Zwei von vier steinernen Verzierungen auf einem Sims in diesem Raum erweisen sich als Gargyle. Diese sind aber nicht auf Kampf aus, sondern wollen nur von den Helden erfahren, was sich an der Oberfläche in den letzten Jahren alles abgespielt hat.";
case 11: return "Diese Höhle wird von einem angeketteten Oger bewacht, der nicht mehr weiß, wer ihn hier angekettet hat.";
case 12: return "In der Höhle hat sich ein Kobold breit gemacht, der partout nichts davon wissen will, dass er hier völlig fehl am Platz ist. Er spricht nur in Reimen und verlangt das auch von den Helden.";
case 13: return "Die Sensenfalle war wohl zu kompliziert für den mittelreichischen Einbrecher, der tot auf dem Boden liegt. Immerhin hat er die tückische Falle für die Helden entschärft.";
case 14: return "Das Skelett eines nostrianischen Gelehrten kämpft in der Höhle einen verzweifelten Kampf gegen den Geist eines andergastischen Adligen. Beide haben wichtige Informationen für die Helden – wenn sie mal voneinander ablassen würden.";
case 15: return "Eine Gruppe Fasarer Magiestudenten hat sich total verlaufen und selbst durch Teleportationsversuche wurde es nicht besser.";
case 16: return "Zwei Höhlenspinnen kämpfen um den Kadaver einer fast dackelgroßen Ratte.";
case 17: return "Eine Gruppe von " + Dice.Roll(20, 1) + " Vampirfledermäusen hat einen einzeln reisenden Thorwaler Krieger überwältigt und mit Tollwut infiziert.";
case 18: return "Ein Grolmhändler bietet seine Waren feil. Die Preise sind exorbitant hoch und sein Sortiment ist äußerst beschränkt.";
case 19: return "Aus diesem Raum kommt man nur hinaus, wenn man ihn rückwärts wieder verlässt. Alle anderen Versuche landen direkt wieder im gleichen Raum.";
case 20: return "Ein Höhlendrache sitzt auf seinem Hort, hinter ihm befindet sich ein weiterer Ausgang nach draußen. Er bietet den Helden die Hälfte seines Schatzes an, wenn sie das gesamte Gebäude von Ungeziefer befreien können. Natürlich wird er das Versprechen nicht halten.";
}
}
return "";
}
private static String EnemyList(int num, Dungeon.Type type){
String out = "";
for(int i = 0; i < num; i++){
out += new Enemy(type).toString();
if(i < (num - 1)){
out += ", ";
}
}
return out;
}
}

@ -24,7 +24,6 @@
package eu.smoser.dungeongenerator.dungeon.objects; package eu.smoser.dungeongenerator.dungeon.objects;
import eu.smoser.dungeongenerator.dungeon.Dungeon; import eu.smoser.dungeongenerator.dungeon.Dungeon;
import eu.smoser.dungeongenerator.dungeon.objects.ADungeonObject;
import eu.smoser.dungeongenerator.util.Dice; import eu.smoser.dungeongenerator.util.Dice;
/** /**

@ -129,11 +129,11 @@ public class Treasure extends ADungeonObject{
case 13: case 13:
case 14: return Gem(); case 14: return Gem();
case 15: case 15:
case 16: return Coins() + " und " + Jewelry(); case 16: return Coins() + "; " + Jewelry();
case 17: case 17:
case 18: return Coins() + " und " + Gem(); case 18: return Coins() + "; " + Gem();
case 19: return Jewelry() + " und " + Gem(); case 19: return Jewelry() + "; " + Gem();
case 20: return Coins() + ", " + Jewelry() + " und " + Gem(); case 20: return Coins() + "; " + Jewelry() + "; " + Gem();
} }
return ""; return "";
} }
@ -181,8 +181,8 @@ public class Treasure extends ADungeonObject{
case 13: case 13:
case 14: return Material() + "-Ring"; case 14: return Material() + "-Ring";
case 15: return Material() + "-Armreif mit eingearbeitetem " + Gem(); case 15: return Material() + "-Armreif mit eingearbeitetem " + Gem();
case 16: return Material() + "-Brosche besetzt mit " + Dice.Roll(6, 1) + Gem(); case 16: return Material() + "-Brosche besetzt mit " + Dice.Roll(6, 1) + " " + Gem();
case 17: return Material() + "-Diadem besetzt mit " + Dice.Roll(6, 1) + Gem(); case 17: return Material() + "-Diadem besetzt mit " + Dice.Roll(6, 1) + " " + Gem();
case 18: return Material() + "-Kette mit Anhänger mit einem " + Gem(); case 18: return Material() + "-Kette mit Anhänger mit einem " + Gem();
case 19: return Material() + "-Ohrring mit einem " + Gem(); case 19: return Material() + "-Ohrring mit einem " + Gem();
case 20: return Material() + "-Ring mit einem " + Gem(); case 20: return Material() + "-Ring mit einem " + Gem();
@ -251,7 +251,7 @@ public class Treasure extends ADungeonObject{
case 6: return Dice.Roll(6, 1) + " Karat"; case 6: return Dice.Roll(6, 1) + " Karat";
case 7: case 7:
case 8: case 8:
case 9: return (Dice.Roll(6, 1)/2) + " Karat"; case 9: return (int) Math.ceil(Dice.Roll(6, 1)/2f) + " Karat";
case 10: return (Dice.Roll(6, 3)+3) + " Karat"; case 10: return (Dice.Roll(6, 3)+3) + " Karat";
case 11: return Dice.Roll(6, 5) + " Karat"; case 11: return Dice.Roll(6, 5) + " Karat";
case 12: return (Dice.Roll(20, 1)+10) + " Karat"; case 12: return (Dice.Roll(20, 1)+10) + " Karat";

@ -29,6 +29,14 @@
<EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="jMenuTreasureActionPerformed"/> <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="jMenuTreasureActionPerformed"/>
</Events> </Events>
</MenuItem> </MenuItem>
<MenuItem class="javax.swing.JMenuItem" name="jMenuEncounters">
<Properties>
<Property name="text" type="java.lang.String" value="Neue Zufallsbegegnungen"/>
</Properties>
<Events>
<EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="jMenuEncountersActionPerformed"/>
</Events>
</MenuItem>
<Menu class="javax.swing.JMenu" name="jMenuDescription"> <Menu class="javax.swing.JMenu" name="jMenuDescription">
<Properties> <Properties>
<Property name="text" type="java.lang.String" value="Beschreibung exportieren"/> <Property name="text" type="java.lang.String" value="Beschreibung exportieren"/>

@ -111,6 +111,7 @@ public class DungeonGeneratorUI extends javax.swing.JFrame {
jMenu = new javax.swing.JMenu(); jMenu = new javax.swing.JMenu();
jMenuNew = new javax.swing.JMenuItem(); jMenuNew = new javax.swing.JMenuItem();
jMenuTreasure = new javax.swing.JMenuItem(); jMenuTreasure = new javax.swing.JMenuItem();
jMenuEncounters = new javax.swing.JMenuItem();
jMenuDescription = new javax.swing.JMenu(); jMenuDescription = new javax.swing.JMenu();
jMenuDescTxt = new javax.swing.JMenuItem(); jMenuDescTxt = new javax.swing.JMenuItem();
jMenuDescPdf = new javax.swing.JMenuItem(); jMenuDescPdf = new javax.swing.JMenuItem();
@ -239,6 +240,14 @@ public class DungeonGeneratorUI extends javax.swing.JFrame {
}); });
jMenu.add(jMenuTreasure); jMenu.add(jMenuTreasure);
jMenuEncounters.setText("Neue Zufallsbegegnungen");
jMenuEncounters.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jMenuEncountersActionPerformed(evt);
}
});
jMenu.add(jMenuEncounters);
jMenuDescription.setText("Beschreibung exportieren"); jMenuDescription.setText("Beschreibung exportieren");
jMenuDescription.setEnabled(false); jMenuDescription.setEnabled(false);
jMenuDescription.addActionListener(new java.awt.event.ActionListener() { jMenuDescription.addActionListener(new java.awt.event.ActionListener() {
@ -659,6 +668,11 @@ public class DungeonGeneratorUI extends javax.swing.JFrame {
treasureGenerator.setVisible(true); treasureGenerator.setVisible(true);
}//GEN-LAST:event_jMenuTreasureActionPerformed }//GEN-LAST:event_jMenuTreasureActionPerformed
private void jMenuEncountersActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuEncountersActionPerformed
JFrame encounters = new EncounterGenerator();
encounters.setVisible(true);
}//GEN-LAST:event_jMenuEncountersActionPerformed
private void CreateGraphPDF(File file) throws BadElementException, IOException, DocumentException { private void CreateGraphPDF(File file) throws BadElementException, IOException, DocumentException {
Document document = new Document(PageSize.A4); Document document = new Document(PageSize.A4);
Image image = Image.getInstance(mxCellRenderer.createBufferedImage(mGraphComponent.getGraph(), null, 10, Color.WHITE, true, null), Color.WHITE); Image image = Image.getInstance(mxCellRenderer.createBufferedImage(mGraphComponent.getGraph(), null, 10, Color.WHITE, true, null), Color.WHITE);
@ -767,6 +781,7 @@ public class DungeonGeneratorUI extends javax.swing.JFrame {
private javax.swing.JMenuItem jMenuDescPdf; private javax.swing.JMenuItem jMenuDescPdf;
private javax.swing.JMenuItem jMenuDescTxt; private javax.swing.JMenuItem jMenuDescTxt;
private javax.swing.JMenu jMenuDescription; private javax.swing.JMenu jMenuDescription;
private javax.swing.JMenuItem jMenuEncounters;
private javax.swing.JMenu jMenuGraph; private javax.swing.JMenu jMenuGraph;
private javax.swing.JMenuItem jMenuGraphGml; private javax.swing.JMenuItem jMenuGraphGml;
private javax.swing.JMenuItem jMenuGraphPdf; private javax.swing.JMenuItem jMenuGraphPdf;

@ -0,0 +1,140 @@
<?xml version="1.0" encoding="UTF-8" ?>
<Form version="1.5" maxVersion="1.9" type="org.netbeans.modules.form.forminfo.JFrameFormInfo">
<Properties>
<Property name="defaultCloseOperation" type="int" value="2"/>
<Property name="title" type="java.lang.String" value="Zufallsbegegnungen generieren"/>
<Property name="minimumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
<Dimension value="[800, 600]"/>
</Property>
<Property name="name" type="java.lang.String" value="Zufallsbegegnungen" noResource="true"/>
</Properties>
<SyntheticProperties>
<SyntheticProperty name="formSizePolicy" type="int" value="1"/>
<SyntheticProperty name="generateCenter" type="boolean" value="false"/>
</SyntheticProperties>
<AuxValues>
<AuxValue name="FormSettings_autoResourcing" type="java.lang.Integer" value="0"/>
<AuxValue name="FormSettings_autoSetComponentName" type="java.lang.Boolean" value="false"/>
<AuxValue name="FormSettings_generateFQN" type="java.lang.Boolean" value="true"/>
<AuxValue name="FormSettings_generateMnemonicsCode" type="java.lang.Boolean" value="false"/>
<AuxValue name="FormSettings_i18nAutoMode" type="java.lang.Boolean" value="false"/>
<AuxValue name="FormSettings_layoutCodeTarget" type="java.lang.Integer" value="1"/>
<AuxValue name="FormSettings_listenerGenerationStyle" type="java.lang.Integer" value="0"/>
<AuxValue name="FormSettings_variablesLocal" type="java.lang.Boolean" value="false"/>
<AuxValue name="FormSettings_variablesModifier" type="java.lang.Integer" value="2"/>
<AuxValue name="designerSize" type="java.awt.Dimension" value="-84,-19,0,5,115,114,0,18,106,97,118,97,46,97,119,116,46,68,105,109,101,110,115,105,111,110,65,-114,-39,-41,-84,95,68,20,2,0,2,73,0,6,104,101,105,103,104,116,73,0,5,119,105,100,116,104,120,112,0,0,1,44,0,0,1,-43"/>
</AuxValues>
<Layout class="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout"/>
<SubComponents>
<Component class="javax.swing.JButton" name="jButtonStart">
<Properties>
<Property name="text" type="java.lang.String" value="Zufallsbegegnungen starten"/>
</Properties>
<Events>
<EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="jButtonStartActionPerformed"/>
</Events>
<Constraints>
<Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout" value="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout$BorderConstraintsDescription">
<BorderConstraints direction="Last"/>
</Constraint>
</Constraints>
</Component>
<Container class="javax.swing.JPanel" name="jPanel1">
<Constraints>
<Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout" value="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout$BorderConstraintsDescription">
<BorderConstraints direction="First"/>
</Constraint>
</Constraints>
<Layout class="org.netbeans.modules.form.compat2.layouts.DesignGridLayout">
<Property name="columns" type="int" value="7"/>
<Property name="rows" type="int" value="1"/>
</Layout>
<SubComponents>
<Component class="javax.swing.Box$Filler" name="filler1">
<Properties>
<Property name="maximumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
<Dimension value="[32767, 0]"/>
</Property>
</Properties>
<AuxValues>
<AuxValue name="classDetails" type="java.lang.String" value="Box.Filler.HorizontalGlue"/>
</AuxValues>
</Component>
<Component class="javax.swing.JSpinner" name="jSpinner">
<Properties>
<Property name="model" type="javax.swing.SpinnerModel" editor="org.netbeans.modules.form.editors2.SpinnerModelEditor">
<SpinnerModel initial="1" minimum="1" numberType="java.lang.Integer" stepSize="1" type="number"/>
</Property>
</Properties>
</Component>
<Component class="javax.swing.JLabel" name="jLabel1">
<Properties>
<Property name="horizontalAlignment" type="int" value="0"/>
<Property name="text" type="java.lang.String" value="Begegnungen"/>
</Properties>
</Component>
<Component class="javax.swing.Box$Filler" name="filler3">
<Properties>
<Property name="maximumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
<Dimension value="[32767, 0]"/>
</Property>
</Properties>
<AuxValues>
<AuxValue name="classDetails" type="java.lang.String" value="Box.Filler.HorizontalGlue"/>
</AuxValues>
</Component>
<Component class="javax.swing.JLabel" name="jLabel2">
<Properties>
<Property name="text" type="java.lang.String" value="Dungeonart"/>
</Properties>
</Component>
<Component class="javax.swing.JComboBox" name="jCombo">
<Properties>
<Property name="model" type="javax.swing.ComboBoxModel" editor="org.netbeans.modules.form.editors2.ComboBoxModelEditor">
<StringArray count="2">
<StringItem index="0" value="Nat&#xfc;rlich"/>
<StringItem index="1" value="K&#xfc;nstlich"/>
</StringArray>
</Property>
</Properties>
<AuxValues>
<AuxValue name="JavaCodeGenerator_TypeParameters" type="java.lang.String" value="&lt;String&gt;"/>
</AuxValues>
</Component>
<Component class="javax.swing.Box$Filler" name="filler2">
<Properties>
<Property name="maximumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
<Dimension value="[32767, 0]"/>
</Property>
</Properties>
<AuxValues>
<AuxValue name="classDetails" type="java.lang.String" value="Box.Filler.HorizontalGlue"/>
</AuxValues>
</Component>
</SubComponents>
</Container>
<Container class="javax.swing.JScrollPane" name="jScrollPane1">
<AuxValues>
<AuxValue name="autoScrollPane" type="java.lang.Boolean" value="true"/>
</AuxValues>
<Constraints>
<Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout" value="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout$BorderConstraintsDescription">
<BorderConstraints direction="Center"/>
</Constraint>
</Constraints>
<Layout class="org.netbeans.modules.form.compat2.layouts.support.JScrollPaneSupportLayout"/>
<SubComponents>
<Component class="javax.swing.JTextArea" name="jText">
<Properties>
<Property name="columns" type="int" value="20"/>
<Property name="rows" type="int" value="5"/>
</Properties>
</Component>
</SubComponents>
</Container>
</SubComponents>
</Form>

@ -0,0 +1,158 @@
/*
* The MIT License
*
* Copyright 2016 MrMcX.
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
* THE SOFTWARE.
*/
package eu.smoser.dungeongenerator.main;
import eu.smoser.dungeongenerator.dungeon.Dungeon;
import eu.smoser.dungeongenerator.dungeon.objects.Encounters;
/**
*
* @author MrMcX
*/
public class EncounterGenerator extends javax.swing.JFrame {
/**
* Creates new form EncounterGenerator
*/
public EncounterGenerator() {
initComponents();
}
/**
* This method is called from within the constructor to initialize the form.
* WARNING: Do NOT modify this code. The content of this method is always
* regenerated by the Form Editor.
*/
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
private void initComponents() {
jButtonStart = new javax.swing.JButton();
jPanel1 = new javax.swing.JPanel();
filler1 = new javax.swing.Box.Filler(new java.awt.Dimension(0, 0), new java.awt.Dimension(0, 0), new java.awt.Dimension(32767, 0));
jSpinner = new javax.swing.JSpinner();
jLabel1 = new javax.swing.JLabel();
filler3 = new javax.swing.Box.Filler(new java.awt.Dimension(0, 0), new java.awt.Dimension(0, 0), new java.awt.Dimension(32767, 0));
jLabel2 = new javax.swing.JLabel();
jCombo = new javax.swing.JComboBox<>();
filler2 = new javax.swing.Box.Filler(new java.awt.Dimension(0, 0), new java.awt.Dimension(0, 0), new java.awt.Dimension(32767, 0));
jScrollPane1 = new javax.swing.JScrollPane();
jText = new javax.swing.JTextArea();
setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
setTitle("Zufallsbegegnungen generieren");
setMinimumSize(new java.awt.Dimension(800, 600));
setName("Zufallsbegegnungen"); // NOI18N
jButtonStart.setText("Zufallsbegegnungen starten");
jButtonStart.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButtonStartActionPerformed(evt);
}
});
getContentPane().add(jButtonStart, java.awt.BorderLayout.PAGE_END);
jPanel1.setLayout(new java.awt.GridLayout(1, 7));
jPanel1.add(filler1);
jSpinner.setModel(new javax.swing.SpinnerNumberModel(1, 1, null, 1));
jPanel1.add(jSpinner);
jLabel1.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
jLabel1.setText("Begegnungen");
jPanel1.add(jLabel1);
jPanel1.add(filler3);
jLabel2.setText("Dungeonart");
jPanel1.add(jLabel2);
jCombo.setModel(new javax.swing.DefaultComboBoxModel<>(new String[] { "Natürlich", "Künstlich" }));
jPanel1.add(jCombo);
jPanel1.add(filler2);
getContentPane().add(jPanel1, java.awt.BorderLayout.PAGE_START);
jText.setColumns(20);
jText.setRows(5);
jScrollPane1.setViewportView(jText);
getContentPane().add(jScrollPane1, java.awt.BorderLayout.CENTER);
pack();
}// </editor-fold>//GEN-END:initComponents
private void jButtonStartActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButtonStartActionPerformed
Encounters e = new Encounters((int) jSpinner.getValue(), jCombo.getSelectedItem().equals("Natürlich") ? Dungeon.Type.NATURAL : Dungeon.Type.ARTIFICIAL);
jText.setText(e.toString());
}//GEN-LAST:event_jButtonStartActionPerformed
/**
* @param args the command line arguments
*/
public static void main(String args[]) {
/* Set the Nimbus look and feel */
//<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) ">
/* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel.
* For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html
*/
try {
for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
if ("Nimbus".equals(info.getName())) {
javax.swing.UIManager.setLookAndFeel(info.getClassName());
break;
}
}
} catch (ClassNotFoundException ex) {
java.util.logging.Logger.getLogger(EncounterGenerator.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (InstantiationException ex) {
java.util.logging.Logger.getLogger(EncounterGenerator.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (IllegalAccessException ex) {
java.util.logging.Logger.getLogger(EncounterGenerator.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (javax.swing.UnsupportedLookAndFeelException ex) {
java.util.logging.Logger.getLogger(EncounterGenerator.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
}
//</editor-fold>
/* Create and display the form */
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new EncounterGenerator().setVisible(true);
}
});
}
// Variables declaration - do not modify//GEN-BEGIN:variables
private javax.swing.Box.Filler filler1;
private javax.swing.Box.Filler filler2;
private javax.swing.Box.Filler filler3;
private javax.swing.JButton jButtonStart;
private javax.swing.JComboBox<String> jCombo;
private javax.swing.JLabel jLabel1;
private javax.swing.JLabel jLabel2;
private javax.swing.JPanel jPanel1;
private javax.swing.JScrollPane jScrollPane1;
private javax.swing.JSpinner jSpinner;
private javax.swing.JTextArea jText;
// End of variables declaration//GEN-END:variables
}

@ -3,6 +3,7 @@
<Form version="1.5" maxVersion="1.9" type="org.netbeans.modules.form.forminfo.JFrameFormInfo"> <Form version="1.5" maxVersion="1.9" type="org.netbeans.modules.form.forminfo.JFrameFormInfo">
<Properties> <Properties>
<Property name="defaultCloseOperation" type="int" value="2"/> <Property name="defaultCloseOperation" type="int" value="2"/>
<Property name="title" type="java.lang.String" value="Sch&#xe4;tze generieren"/>
<Property name="minimumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor"> <Property name="minimumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
<Dimension value="[800, 600]"/> <Dimension value="[800, 600]"/>
</Property> </Property>
@ -21,6 +22,7 @@
<AuxValue name="FormSettings_listenerGenerationStyle" type="java.lang.Integer" value="0"/> <AuxValue name="FormSettings_listenerGenerationStyle" type="java.lang.Integer" value="0"/>
<AuxValue name="FormSettings_variablesLocal" type="java.lang.Boolean" value="false"/> <AuxValue name="FormSettings_variablesLocal" type="java.lang.Boolean" value="false"/>
<AuxValue name="FormSettings_variablesModifier" type="java.lang.Integer" value="2"/> <AuxValue name="FormSettings_variablesModifier" type="java.lang.Integer" value="2"/>
<AuxValue name="designerSize" type="java.awt.Dimension" value="-84,-19,0,5,115,114,0,18,106,97,118,97,46,97,119,116,46,68,105,109,101,110,115,105,111,110,65,-114,-39,-41,-84,95,68,20,2,0,2,73,0,6,104,101,105,103,104,116,73,0,5,119,105,100,116,104,120,112,0,0,1,44,0,0,1,-112"/>
</AuxValues> </AuxValues>
<Layout class="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout"/> <Layout class="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout"/>
@ -94,9 +96,10 @@
<Layout class="org.netbeans.modules.form.compat2.layouts.support.JScrollPaneSupportLayout"/> <Layout class="org.netbeans.modules.form.compat2.layouts.support.JScrollPaneSupportLayout"/>
<SubComponents> <SubComponents>
<Component class="javax.swing.JTextField" name="jText"> <Component class="javax.swing.JTextArea" name="jText">
<Properties> <Properties>
<Property name="editable" type="boolean" value="false"/> <Property name="columns" type="int" value="20"/>
<Property name="rows" type="int" value="5"/>
</Properties> </Properties>
</Component> </Component>
</SubComponents> </SubComponents>

@ -54,9 +54,10 @@ public class TreasureGenerator extends javax.swing.JFrame {
jLabel1 = new javax.swing.JLabel(); jLabel1 = new javax.swing.JLabel();
filler2 = new javax.swing.Box.Filler(new java.awt.Dimension(0, 0), new java.awt.Dimension(0, 0), new java.awt.Dimension(32767, 0)); filler2 = new javax.swing.Box.Filler(new java.awt.Dimension(0, 0), new java.awt.Dimension(0, 0), new java.awt.Dimension(32767, 0));
jScrollPane1 = new javax.swing.JScrollPane(); jScrollPane1 = new javax.swing.JScrollPane();
jText = new javax.swing.JTextField(); jText = new javax.swing.JTextArea();
setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE); setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
setTitle("Schätze generieren");
setMinimumSize(new java.awt.Dimension(800, 600)); setMinimumSize(new java.awt.Dimension(800, 600));
jButtonStart.setText("Schatz generieren"); jButtonStart.setText("Schatz generieren");
@ -80,7 +81,8 @@ public class TreasureGenerator extends javax.swing.JFrame {
getContentPane().add(jPanel1, java.awt.BorderLayout.PAGE_START); getContentPane().add(jPanel1, java.awt.BorderLayout.PAGE_START);
jText.setEditable(false); jText.setColumns(20);
jText.setRows(5);
jScrollPane1.setViewportView(jText); jScrollPane1.setViewportView(jText);
getContentPane().add(jScrollPane1, java.awt.BorderLayout.CENTER); getContentPane().add(jScrollPane1, java.awt.BorderLayout.CENTER);
@ -91,7 +93,7 @@ public class TreasureGenerator extends javax.swing.JFrame {
private void jButtonStartActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButtonStartActionPerformed private void jButtonStartActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButtonStartActionPerformed
String text = ""; String text = "";
for(int i = 1; i <= (int) jSpinner.getValue(); i++){ for(int i = 1; i <= (int) jSpinner.getValue(); i++){
text += i + ": " + Treasure.DetailedTreasure() + "\n\n"; text += i + " Handvoll:\n" + Treasure.DetailedTreasure() + "\n\n";
} }
jText.setText(text); jText.setText(text);
}//GEN-LAST:event_jButtonStartActionPerformed }//GEN-LAST:event_jButtonStartActionPerformed
@ -139,6 +141,6 @@ public class TreasureGenerator extends javax.swing.JFrame {
private javax.swing.JPanel jPanel1; private javax.swing.JPanel jPanel1;
private javax.swing.JScrollPane jScrollPane1; private javax.swing.JScrollPane jScrollPane1;
private javax.swing.JSpinner jSpinner; private javax.swing.JSpinner jSpinner;
private javax.swing.JTextField jText; private javax.swing.JTextArea jText;
// End of variables declaration//GEN-END:variables // End of variables declaration//GEN-END:variables
} }

Laden…
Abbrechen
Speichern