private MapEventModel getRandomEvent(int x, int y) { var rewardType = getRewardType(); MapEventModel mem = new MapEventModel() { eventData = getRandomEventData(), rewardType = rewardType, rewardValue = getRewardValue(rewardType), x = x, y = y }; return(mem); }
public void removeEvent(MapEventModel e) { List <MapEventModel> toRemove = new List <MapEventModel>(); List <Coordinate> toCheck = new List <Coordinate>(); foreach (MapEventModel mem in events) { if (mem.uniq == e.uniq) { toRemove.Add(mem); toCheck.Add(new Coordinate() { x = mem.x, y = mem.y }); } } while (toCheck.Count != 0) { Coordinate current = toCheck[0]; toCheck.RemoveAt(0); foreach (MapEventModel mem in events) { if (toRemove.Contains(mem)) { continue; } var xDiff = Math.Abs(mem.x - current.x); var yDiff = Math.Abs(mem.y - current.y); if (xDiff + yDiff == 1) //If it is exactly one space away { toRemove.Add(mem); toCheck.Add(new Coordinate() { x = mem.x, y = mem.y }); } } } foreach (MapEventModel mem in toRemove) { events.Remove(mem); } }
public void removeEvent(MapEventModel e) { List<MapEventModel> toRemove = new List<MapEventModel>(); List<Coordinate> toCheck = new List<Coordinate>(); foreach (MapEventModel mem in events) { if (mem.uniq == e.uniq) { toRemove.Add(mem); toCheck.Add(new Coordinate() { x = mem.x, y = mem.y }); } } while (toCheck.Count != 0) { Coordinate current = toCheck[0]; toCheck.RemoveAt(0); foreach (MapEventModel mem in events) { if (toRemove.Contains(mem)) { continue; } var xDiff = Math.Abs(mem.x - current.x); var yDiff = Math.Abs(mem.y - current.y); if (xDiff + yDiff == 1) //If it is exactly one space away { toRemove.Add(mem); toCheck.Add(new Coordinate() { x = mem.x, y = mem.y }); } } } foreach(MapEventModel mem in toRemove) { events.Remove(mem); } }
public void addEvent(MapEventModel e) { e.eventId = events.Count; events.Add(e); }
public static void processEvent(MapEventModel currentEvent, PlayerModel player, ref List <ClientMessage> messageQueue) { switch (currentEvent.rewardType) { case MapDataClasses.ClientEvent.RewardType.Objective: string returnValue = ObjectiveDirector.completeObjective(player, currentEvent.eventData.objective); if (returnValue != string.Empty) { messageQueue.Add(new ClientMessage() { message = returnValue, type = ClientMessage.ClientMessageType.Message }); messageQueue.Add(new ClientMessage() { type = ClientMessage.ClientMessageType.RefreshMap }); } break; case MapDataClasses.ClientEvent.RewardType.XP: messageQueue.Add(new ClientMessage() { message = "All characters have gained " + currentEvent.rewardValue.ToString() + " XP!", type = ClientMessage.ClientMessageType.Message }); messageQueue.Add(new ClientMessage() { type = ClientMessage.ClientMessageType.RefreshMap }); List <string> results = PlayerDataManager.givePartyXP(player, currentEvent.rewardValue); foreach (string s in results) { messageQueue.Add(new ClientMessage() { message = s }); } break; case MapDataClasses.ClientEvent.RewardType.CP: messageQueue.Add(new ClientMessage() { message = "All characters have gained " + currentEvent.rewardValue.ToString() + " CP!", type = ClientMessage.ClientMessageType.Message }); messageQueue.Add(new ClientMessage() { type = ClientMessage.ClientMessageType.RefreshMap }); List <string> cpResults = PlayerDataManager.givePartyCP(player, currentEvent.rewardValue); foreach (string s in cpResults) { messageQueue.Add(new ClientMessage() { message = s }); } break; case MapDataClasses.ClientEvent.RewardType.Gold: messageQueue.Add(new ClientMessage() { message = "You have found " + currentEvent.rewardValue.ToString() + " GP!", type = ClientMessage.ClientMessageType.Message }); messageQueue.Add(new ClientMessage() { type = ClientMessage.ClientMessageType.RefreshMap }); PlayerDataManager.givePartyGP(player, currentEvent.rewardValue); break; } player.getActiveParty().location.eventCollection.removeEvent(currentEvent); player.getActiveParty().location.activeEvent = null; }
private MapEventModel getRandomEvent(int x, int y) { var rewardType = getRewardType(); MapEventModel mem = new MapEventModel() { eventData = getRandomEventData(), rewardType = rewardType, rewardValue = getRewardValue(rewardType), x = x, y = y }; return mem; }