예제 #1
0
 public void PickUp(PlannerPlayer playerObj)
 {
     if (itemAt != null)
     {
         itemAt = null;
         playerObj.playerInventory.Add(this);
         onInventory = playerObj;
     }
 }
    public List <string> GetDefinitionInit()
    {
        List <string> def = new List <string> ();

        if (type == ObstacleType.enemy)
        {
            foreach (PlannerPoi item in enemyAt)
            {
                def.Add("(enemy-at " + name + " " + item.name + ")");
            }
            for (int i = 0; i < enemyEdgeStart.Count; i++)
            {
                PlannerPoi edgeStart = enemyEdgeStart [i];
                PlannerPoi edgeEnd   = enemyEdgeEnd [i];
                def.Add("(enemy-edge " + name + " " + edgeStart.name + " " + edgeEnd.name + ")");
            }
        }
        if (blocked)
        {
            def.Add("(blocked " + name + ")");
        }
        if (open)
        {
            def.Add("(open " + name + ")");
        }
        if (type == ObstacleType.door)
        {
            foreach (PlannerItem item in doorRune)
            {
                if (item.type == ItemType.rune)
                {
                    def.Add("(door-rune " + name + " " + item.name + ")");
                }
            }
        }
        if (type == ObstacleType.rollable)
        {
            if (rollableLocked)
            {
                def.Add("(rollable-locked " + name + ")");
            }
            if (rollableOpen)
            {
                def.Add("(rollable-open " + name + ")");
            }
        }
        return(def);
    }
예제 #3
0
 public void Drop(PlannerPlayer playerObj, PlannerPoi poiObj)
 {
     if (itemAt == null)
     {
         itemAt      = poiObj;
         onInventory = null;
         for (int i = 0; i < playerObj.playerInventory.Count; i++)
         {
             if (this.name.Equals(playerObj.playerInventory [i].name))
             {
                 playerObj.playerInventory.RemoveAt(i);
                 break;
             }
         }
     }
 }
예제 #4
0
 protected void OnTriggerStay2D(Collider2D other)
 {
     if (GameObjectIsPOI(other.gameObject))
     {
         PlannerPoi newPoi = other.GetComponent <PlannerPoi>();
         if (!playerObj.playerAt.name.Equals(newPoi.name))
         {
             Debug.Log("Change OK: " + newPoi.name);
             playerObj.playerAt = newPoi;
             playerObj.luring   = false;
             if (newPoi.araña != null && this.characterId == 0)
             {
                 playerObj.luring     = true;
                 newPoi.araña.blocked = false;
                 newPoi.araña.open    = true;
             }
             Planner planner = FindObjectOfType <Planner>();
             planner.Monitor();
         }
     }
 }
예제 #5
0
    public List <string> GetDefinitionInit()
    {
        List <string> def = new List <string> ();

        foreach (PlannerPoi item in routeTo)
        {
            def.Add("(route-to " + name + " " + item.name + ")");
        }
        for (int i = 0; i < routeBlockPoi.Count; i++)
        {
            PlannerPoi      itemOut = routeBlockPoi [i];
            PlannerObstacle itemIn  = routeBlockObstacle [i];
            def.Add("(route-block " + name + " " + itemOut.name + " " + itemIn.name + ")");
        }
        for (int i = 0; i < doorRoutePoi.Count; i++)
        {
            PlannerPoi      itemOut = doorRoutePoi [i];
            PlannerObstacle itemIn  = doorRouteObstacle [i];
            def.Add("(door-route " + name + " " + itemOut.name + " " + itemIn.name + ")");
        }
        return(def);
    }