public void removeMessage() { this.m = null; }
public void setMessage(Message m) { this.m = m; }
private void playGame(GameTime gameTime) { if(playstate != PlayState.WAITFORNPC && playstate != PlayState.MESSAGE) catchInput(gameTime, false); Tile playertile = map.getPlayerTile(); int currenttime = (int)gameTime.TotalGameTime.TotalMilliseconds; if (playstate == PlayState.WAITFORNPC) { if(DEBUG) Console.WriteLine("WAITING FOR NPC!"); Event e = currentevent; String questid = e.getProperty("questid"); if (!party.questInProgressOrCompleted(questid)) { String model = e.getProperty("npctexture"); String spawnx = e.getProperty("x"); String spawny = e.getProperty("y"); String goalx = e.getProperty("goalx"); String goaly = e.getProperty("goaly"); int goalxint = Convert.ToInt32(goalx); int goalyint = Convert.ToInt32(goaly); /* String questid = e.getProperty("questid"); String questreturnmap = e.getProperty("questret"); String questretx = e.getProperty("questretx"); String questrety = e.getProperty("questrety"); */ map.addNPC(model, Convert.ToInt32(spawnx), Convert.ToInt32(spawny), toolmap.getTool("PRINCESS")); Tile npc = map.getNPC(model); if (npc != null) { if (goalxint == npc.getMapX() && goalyint == npc.getMapY()) { if(DEBUG) Console.WriteLine("Made it to the goal.. NPC"); //String questid = e.getProperty("questid"); String questreturnmap = e.getProperty("questret"); String questretx = e.getProperty("questretx"); String questrety = e.getProperty("questrety"); Event newev = new Event(); newev.setEventType(EventType.NPCQUEST); newev.addProperty("npctexture", model); newev.addProperty("questid", questid); newev.addProperty("questret", questreturnmap); newev.addProperty("questretx", questretx); newev.addProperty("questrety", questrety); addToEventQueue(newev); } //havent reached goal yet... else if ((currenttime - lastmonstermove) > MONSTER_MOVE_DELAY) { Tile astartile = null; Tile best = processAStar(map.getTileAt(goalxint, goalyint), npc); if (best != null) { astartile = best; Tile next = getNextStep(best); map.setNPCLocation(model, next); map.refreshTiles(); edited = true; } else Console.WriteLine("Best is null!"); lastmonstermove = currenttime; } } else { playstate = PlayState.WORLD; } } else { playstate = PlayState.WORLD; } } else if (playstate == PlayState.INVENTORY) { KeyboardState kb = Keyboard.GetState(); if(kb.IsKeyDown(Keys.Space)) { playstate = PlayState.WORLD; } } else if (playstate == PlayState.NPCQUEST) { if (DEBUG) Console.WriteLine("Entered PlayGame NPCQUEST Section"); Event e = currentevent; String model = e.getProperty("npctexture"); String questid = e.getProperty("questid"); String questreturnmap = e.getProperty("questret"); String questretx = e.getProperty("questretx"); String questrety = e.getProperty("questrety"); if (DEBUG) { Console.WriteLine("party already done quest??? -> " + party.questInProgressOrCompleted(questid)); } if (quests.ContainsKey(questid) && !party.questInProgressOrCompleted(questid)) { if (DEBUG) Console.WriteLine("Quest can proceeed!"); Quest q = quests[questid]; party.addQuest(q); Event x = new Event(); x.setEventType(EventType.MESSAGE); x.addProperty("text", q.getQuestText()); x.addProperty("removenpconcomplete", model); addToEventQueue(x); TileMap returnmap = getMap(q.getReturnMap(), -1, -1); Event j = new Event(); j.setEventType(EventType.QUESTRETURN); j.addProperty("questid", q.getQuestID()); returnmap.addTileEvent(j, q.getReturnX(), q.getReturnY()); } } else if (playstate == PlayState.MESSAGE) { if (!setmessage) { String text = currentevent.getProperty("text"); Message m = new Message(text, whitepixel, font); map.setMessage(m); setmessage = true; } KeyboardState kb = Keyboard.GetState(); if (kb.IsKeyDown(Keys.Space)) { setmessage = false; playstate = PlayState.WORLD; map.removeMessage(); String removenpcid = currentevent.getProperty("removenpconcomplete"); if (removenpcid != null) map.removeNPC(removenpcid); } //Console.WriteLine("Would Be Printing: " + text); } else { map.tryMonsterSpawn(currenttime); Tile[] monsters = map.getMonsters(); if ((currenttime - lastmonstermove) > MONSTER_MOVE_DELAY) { for (int i = 0; i < monsters.Length && playstate == PlayState.WORLD; i++) { Tile astartile = null; Tile best = processAStar(playertile, monsters[i]); if (best != null) { astartile = best; Tile next = getNextStep(best); map.setMonsterLocation(i, next); map.refreshTiles(); edited = true; } else Console.WriteLine("Best is null!"); } lastmonstermove = currenttime; } } }