static void Main(string[] args) { #region console anpassen Console.Title = "MMOTA - Pre-Alpha"; Console.WindowWidth = 100; #endregion #region objekte erstellen functions func = new functions(); loops loops = new loops(); Player spieler = new Player(); Story story = new Story(); #endregion #region wohnung Level wohnung = func.createWohnung(spieler,story); spieler.Raum.printInfo(); #endregion while (1 == 1) { Console.WriteLine(""); Console.Write(">>"); string input = Console.ReadLine(); if (input == "exit") return; if (input == "serial") func.serialize(spieler); func.interpretInput(input, spieler); story.story_listener(spieler); } }
public Level createWohnung(Player spieler,Story story) { Level level = new Level(); Raum wohnzimmer = new Raum(); Raum bad = new Raum(); Raum schlafzimmer = new Raum(); Raum flur = new Raum(); Raum kuche = new Raum(); Raum arbeitszimmer = new Raum(); #region Flur flur.nebenraume[1] = wohnzimmer; #region objekte Objekt tuer = new Objekt(); flur.addObjekt(tuer, "Tür","Meine Haustüre. Sie hat einige Kratzer an den Seiten, Ich sollte sie wohl nicht mehr so zuschlagen."); Objekt garderobe = new Objekt(); flur.addObjekt(garderobe,"Garderobe","Die Garderobe, gut gefüllt mit meinen Mänteln und Schuhen. Ich sollte sie mal wieder aufräumen...Moment, da liegt etwas...ein Schlüssel!"); garderobe.BeschreibungTook = "Immernoch meine Garderobe, immernoch gefüllt mit Mänteln und Schuhen und immernoch unordentlich..."; Objekt schluessel = new Objekt(); flur.addObjekt(schluessel, "Schlüssel", "Ein kleiner, rostiger Schlüssel."); schluessel.isTake = true; schluessel.isVisible = false; Objekt kl_tisch = new Objekt(); flur.addObjekt(kl_tisch, "kl.Tisch", "Ein kleiner Tisch mitsamt meiner Vase drauf. Die Blume ist vertrocknet...brauch man mehr als nur Dünger?"); Objekt portrait = new Objekt(); flur.addObjekt(portrait, "Bild", "Das Bild zeigt eine alte Frau, die gekrümmt auf einem Stuhl sitzt. Sie sieht traurig aus und hat tiefe Augenringe, sie scheint Angst zu haben..."); #endregion #region useable pairs schluessel.addUseablePair(schluessel, tuer); #endregion level.AddRoom(flur, "Flur"); #region listeners story.addListenerObjekt(tuer,false); story.addListenerObjekt(garderobe, false); #endregion #endregion #region wohnzimmer wohnzimmer.nebenraume[0] = kuche; wohnzimmer.nebenraume[1] = schlafzimmer; wohnzimmer.nebenraume[2] = arbeitszimmer; wohnzimmer.nebenraume[3] = flur; level.AddRoom(wohnzimmer, "Wohnzimmer"); #endregion spieler.Raum = flur; return level; }
public void story_listener(Player spieler) { /*Jetzt wirds lustig... * Also, die Scheiße hier schaut sich nach jeder abgelaufenen * Aktion Schlüssselvariablen an (die ihr hier bitte reinschreibt!!!) * und wenn diese sich so wie ihr es hier reingeschrieben habt * verändern, wird die Aktion ausgelöst! Soweit klar? Einfach ein Filter * damit ihr euch nicht mehr ins Hemd machen müsst und alle Sachen versaut * und irgendwo im QC versteckt! */ #region schlüssel im schrank nach looked @ flur if (spieler.Raum.raumname == "Flur") { if (spieler.Raum.objekte["Garderobe"].isLooked) { if (!m_hashappend[spieler.Raum.objekte["Garderobe"]]) { spieler.Raum.objekte["Schlüssel"].isVisible = true; } } } #endregion #region schlüssel tür @ flur if (spieler.Raum.raumname == "Flur") { if (spieler.Raum.objekte["Tür"].isUsed) { if (!m_hashappend[spieler.Raum.objekte["Tür"]]) { Console.WriteLine(""); Console.WriteLine("Ich versuche meine Tür aufzuschließen. Der Schlüssel klemmt...Ich drücke härter und er bricht durch.\nJetzt hängt der Rest des Schlüssels drin...Mist!"); spieler.deleteObjektfromInventar(spieler.inventar["Schlüssel"]); m_hashappend[spieler.Raum.objekte["Tür"]] = true; spieler.Raum.objekte["Tür"].Beschreibung = "Meine Tür mitsamt abgebrochenem Schlüssel."; return; } } } #endregion }
public void printInventar(Player spieler) { Console.WriteLine("Objekte im Inventar:\n"); for (int i = 0; i < this.m_inventar.Count; i++) Console.WriteLine("-"+m_inventar.ElementAt(i).Key.ToString()); }
public void interpretInput(string input,Player spieler) { #region keywords string[] keywords = {"use","look","take","move","roominfo","inventar"}; #endregion if (input == "") Console.WriteLine("Bitte gib etwas ein!"); string[] words = input.Split(' '); // use x with y => use,x,with,y in array if (keywords.Contains(words[0].ToString())) { #region roominfo if (words[0] == "roominfo") { spieler.Raum.printInfo(); return; } #endregion #region inventar if (words[0] == "inventar") { spieler.printInventar(spieler); return; } #endregion if (words.Length > 1) { #region look if (words[0] == "look") { if (spieler.Raum.objekte.Keys.Contains(words[1])) { Console.WriteLine(spieler.Raum.objekte[words[1]].Beschreibung.ToString()); spieler.Raum.objekte[words[1]].isLooked = true; return; } } #endregion #region move if (words[0] == "move") { Dictionary<string,int> himmel = new Dictionary<string,int>(); himmel.Add("Norden",0); himmel.Add("Osten",1); himmel.Add("Süden",2); himmel.Add("Westen",3); if (himmel.ContainsKey(words[1])) { if (spieler.Raum.nebenraume[himmel[words[1]]] != null) { spieler.Raum = spieler.Raum.nebenraume[himmel[words[1]]]; spieler.Raum.printInfo(); } else Console.WriteLine("Dieser Raum existiert nicht."); } else Console.WriteLine("Das ist echt keine Himmelsrichtung!"); return; } #endregion #region take if (words[0] == "take") { if (spieler.Raum.objekte.ContainsKey(words[1])) { if (spieler.inventar.ContainsKey(words[1])) { Console.WriteLine("Du hast das bereits im Inventar."); return; } else{ if (spieler.Raum.objekte[words[1]].isTake) { if (spieler.Raum.objekte[words[1]].isVisible) { spieler.addObjekttoInventar(spieler.Raum.objekte[words[1]]); spieler.Raum.objekte[words[1]].isTook = true; spieler.Raum.objekte[words[1]].isVisible = false; Console.WriteLine(words[1] + " aufgenommen."); return; } } else { Console.WriteLine("Das kann Ich nicht nehmen!"); return; } } } else { Console.WriteLine("Objekt ist im aktuellen Raum nicht vorhanden."); return; } } #endregion #region use if (words[0] == "use") { if (words.Length == 3) { if (spieler.inventar.ContainsKey(words[1]) || (spieler.Raum.objekte[words[1]].isUseableifNOTInventar == true)) { if (spieler.Raum.objekte.ContainsKey(words[2]) || spieler.inventar.ContainsKey(words[2])) { if (spieler.inventar.ContainsKey(words[1])) spieler.inventar[words[1]].useWith(spieler.Raum.objekte[words[2]]); else spieler.Raum.objekte[words[1]].useWith(spieler.Raum.objekte[words[2]]); } else Console.WriteLine(words[2].ToString() + " befindet sich weder im Inventar noch im Raum!"); } else Console.WriteLine(words[1].ToString() + " befindet sich nicht im Inventar!"); } else Console.WriteLine("Da fehlt jetzt irgendwie was..."); } #endregion } else { Console.WriteLine("Bitte gib ein zweites Argument ein!"); } } else { Console.WriteLine(words[0].ToString() + " ist ein unbekannter Begriff."); } }
public void serialize(Player obj) { XmlSerializer ser = new XmlSerializer(typeof(Player)); FileStream fs = new FileStream(@"ser.xml", FileMode.Create); ser.Serialize(fs, obj); fs.Close(); }