public int CheckItemKnowledgeCount(WorldStateSymbol symbol)
 {
     if (HasItemLookup.ContainsKey(symbol))
     {
         return(HasItemLookup[symbol].ItemCount);
     }
     return(0);
 }
 public bool CheckItemKnowledge(WorldStateSymbol symbol)
 {
     if (HasItemLookup.ContainsKey(symbol))
     {
         if (HasItemLookup[symbol].ItemCount > 0)
         {
             return(true);
         }
     }
     return(false);
 }
 public void AddToItemKnowledge(WorldStateSymbol symbol)
 {
     if (!HasItemLookup.ContainsKey(symbol))
     {
         HasItemLookup.Add(symbol, new InventoryItemStatus(0));
     }
     if (HasItemLookup[symbol].ItemCount == 0)
     {
         WorldStateVariableChanged.Invoke(this, new WsSymbolChangedEventArgs(symbol, true));
     }
     HasItemLookup[symbol].ItemCount++;
 }
    public void RemoveFromItemKnowledge(WorldStateSymbol symbol)
    {
        if (HasItemLookup.ContainsKey(symbol))
        {
            HasItemLookup[symbol].ItemCount--;

            if (HasItemLookup[symbol].ItemCount <= 0)
            {
                WorldStateVariableChanged.Invoke(this, new WsSymbolChangedEventArgs(symbol, false));
            }
        }
    }
    public EnterDoor_Action(GameObject owner) : base(owner)
    {
        ID = ActionID.OpenDoor;

        PreConditions = new WorldStateSymbol[]
        {
        };

        Effects = new WorldStateSymbol[]
        {
        };
    }
    public EnterPortal_Action(GameObject owner) : base(owner)
    {
        ID = ActionID.EnterPortal;

        PreConditions = new WorldStateSymbol[]
        {
            WorldStateSymbol.PortalLocated
        };

        Effects = new WorldStateSymbol[]
        {
            WorldStateSymbol.CanWin,
        };
    }
    public OpenChest_Action(GameObject owner) : base(owner)
    {
        ID = ActionID.OpenChest;

        PreConditions = new WorldStateSymbol[]
        {
            WorldStateSymbol.AvailableChest
        };

        Effects = new WorldStateSymbol[]
        {
            WorldStateSymbol.LootableItem
        };
    }
    public Drink_Action(GameObject owner) : base(owner)
    {
        ID = ActionID.Drink;

        PreConditions = new WorldStateSymbol[]
        {
            WorldStateSymbol.HasPotion,
        };

        Effects = new WorldStateSymbol[]
        {
            WorldStateSymbol.IsHealed,
        };
    }
Beispiel #9
0
    public PickupItem_Action(GameObject owner) : base(owner)
    {
        ID = ActionID.PickupItem;

        PreConditions = new WorldStateSymbol[]
        {
            WorldStateSymbol.LootableItem
        };

        Effects = new WorldStateSymbol[]
        {
            WorldStateSymbol.HasItem,
            WorldStateSymbol.HasPotion,
            WorldStateSymbol.HasKey,
            WorldStateSymbol.HasMeleeWeapon
        };
    }
    public Explore_Action(GameObject owner) : base(owner)
    {
        ID = ActionID.Explore;

        PreConditions = new WorldStateSymbol[]
        {
            WorldStateSymbol.RoomUnexplored
        };

        Effects = new WorldStateSymbol[]
        {
            WorldStateSymbol.RoomExplored,
            WorldStateSymbol.AvailableChest,
            WorldStateSymbol.AvailableEnemy,
        };
        //interactionRange = 0.5f;
    }
    public OpenDoor_Action(GameObject owner) : base(owner)
    {
        ID = ActionID.OpenDoor;

        PreConditions = new WorldStateSymbol[]
        {
            WorldStateSymbol.HasKey
        };

        Effects = new WorldStateSymbol[]
        {
            WorldStateSymbol.Progress,
            WorldStateSymbol.AvailableChest,
            WorldStateSymbol.AvailableEnemy,
        };

        cost = 11;
    }
    public MeeleAttack_Action(GameObject owner) : base(owner)
    {
        ID = ActionID.MeeleAttack;

        PreConditions = new WorldStateSymbol[]
        {
            WorldStateSymbol.MeleeEquiped,
            WorldStateSymbol.AvailableEnemy,
        };

        Effects = new WorldStateSymbol[]
        {
            WorldStateSymbol.EnemyDead,
            WorldStateSymbol.LootableItem
        };

        interactionRange = 0.5f;
    }
Beispiel #13
0
 public Action_Goap(GameObject owner)
 {
     Effects       = new WorldStateSymbol[0];
     PreConditions = new WorldStateSymbol[0];
     this.owner    = owner;
 }
 public WsSymbolChangedEventArgs(WorldStateSymbol symbol, bool value)
 {
     Symbol = symbol;
     Value  = value;
 }