示例#1
0
 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);
 }
示例#2
0
 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);
 }
示例#3
0
    /**
     * 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);
    }