public bool isStepFinished() { StatusCheckable[] s = new StatusCheckable[statuses.Keys.Count]; statuses.Keys.CopyTo(s, 0); for (int i = 0; i < s.Length; i++) { bool test; statuses.TryGetValue(s[i], out test); if (!test) { return(false); } else { if (s[i].GetType().Equals(typeof(ActionCheckable))) { ActionCheckable ac = ((ActionCheckable)s[i]); if (spawnLocations.Count == commands.Count && commands.Count > 0 && (ac.getRequiredAction().getActionType() == ActionType.KILL || ac.getRequiredAction().getActionType() == ActionType.PICKED_UP_OBJECT)) { WorldMap.RemoveStarAt(spawnLocations[i].x, spawnLocations[i].y); } } } } return(true); }
public float getPercentComplete() { if (statuses.Count > 1) { int totalStatuses = statuses.Count; int tempCount = 0; foreach (StatusCheckable s in statuses.Keys) { bool test; statuses.TryGetValue(s, out test); if (test) { tempCount++; } } return((float)tempCount / (float)totalStatuses); } else if (statuses.Count == 1) { foreach (KeyValuePair <StatusCheckable, bool> kvp in statuses) { if (kvp.Key.GetType().Equals(typeof(ActionCheckable))) { ActionCheckable ac = (ActionCheckable)kvp.Key; return(ac.GetPercentComplete()); } else { return(0); } } } else { return(-1f); } return(0f); }
/** * creates and returns a status checkable built from the given protocol */ public StatusCheckable getStatusCheckableFromProtocol(StatusCheckableProtocol protocol) { if (protocol.HasAction) { ActionCheckable act = new ActionCheckable(); act.setFromProtocol(protocol); return(act); } else if (protocol.HasLevel) { LevelCheckable level = new LevelCheckable(); level.setFromProtocol(protocol); return(level); } else if (protocol.HasTier) { TierCheckable tier = new TierCheckable(); tier.setFromProtocol(protocol); return(tier); } else if (protocol.HasQuest) { QuestFinishedCheckable quest = new QuestFinishedCheckable(); quest.setFromProtocol(protocol); return(quest); } else if (protocol.HasNumAreas) { NumAreasCheckable areas = new NumAreasCheckable(); areas.setFromProtocol(protocol); return(areas); } MasterDriver.Instance.log("Could not load Status Checkable from protobuf, status type may not be implemented yet."); return(null); }