Пример #1
0
        private void rmdir(string[] cmdLine)
        {
            if (cmdLine.Length < 2)
            {
                Console.WriteLine("Usage: rmdir [directory]");
                Console.WriteLine("Example: rmdir SubDir");
                return;
            }

            string targetDir = "";

            if (!curDirectory.Equals("/"))
            {
                targetDir = curDirectory + "/";
            }
            targetDir += combineCmdArg(cmdLine);

            InventoryFolder iFolder = AgentInventory.getFolder(targetDir);

            if (iFolder == null)
            {
                Console.WriteLine("Could not find directory: " + targetDir);
                return;
            }
            else
            {
                iFolder.Delete();
            }
        }
Пример #2
0
 public void AddNewAgentsInventory(AgentInventory agentInventory)
 {
     if (!this._agentsInventory.ContainsKey(agentInventory.AgentID))
     {
         this._agentsInventory.Add(agentInventory.AgentID, agentInventory);
     }
 }
Пример #3
0
        private string GetClientsInventory(string request, string path, string param)
        {
            string[] line;
            string   delimStr = "/";

            char[] delimiter = delimStr.ToCharArray();
            string responseString;

            responseString = " <p> Listing Inventory </p>";

            line = path.Split(delimiter);
            if (line.Length > 2)
            {
                if (line[1] == "ClientInventory")
                {
                    AgentInventory inven = this._inventoryCache.GetAgentsInventory(new libsecondlife.LLUUID(line[2]));
                    responseString += " <p> Client: " + inven.AgentID.ToStringHyphenated() + " </p>";
                    if (inven != null)
                    {
                        foreach (InventoryItem item in inven.InventoryItems.Values)
                        {
                            responseString += "<p> InventoryItem: ";
                            responseString += item.Name + " , " + item.ItemID + " , " + item.Type + " , " + item.FolderID + " , " + item.AssetID + " , " + item.Description;
                            responseString += "</p>";
                        }
                    }
                }
            }
            return(responseString);
        }
Пример #4
0
        private void ls(string[] cmdLine)
        {
            Console.WriteLine("Contents of: " + curDirectory);
            Console.WriteLine("--------------------------------------------------");
            if (!curDirectory.Equals("/"))
            {
                Console.WriteLine("..");
            }

            InventoryFolder iFolder = AgentInventory.getFolder(curDirectory);

            foreach (InventoryBase ib in iFolder.alContents)
            {
                if (ib is InventoryFolder)
                {
                    InventoryFolder folder = (InventoryFolder)ib;
                    Console.WriteLine(TYPE_DIR + folder.Name);
                }
                else
                {
                    InventoryItem item = (InventoryItem)ib;
                    Console.WriteLine(TYPE_ITEM + item.Name);
                }
            }
        }
Пример #5
0
    void Update()
    {
        // Hide if the agent died.
        if (!_agent)
        {
            BroadcastMessage("Hide", this, SendMessageOptions.DontRequireReceiver);
            gameObject.SetActive(false);
            return;
        }

        AgentAttributes attributes = _agent.GetComponent <AgentAttributes> ();

        gameIDVal.text = attributes.ID.ToString();

        AgentInventory inventory = _agent.GetComponent <AgentInventory> ();

        capacityVal.text = inventory.carryCount.ToString() + " / " + inventory.capacity.ToString();

        Health health = _agent.GetComponent <Health> ();

        hpVal.text = health.GetCurrentHealth() + " / " + health.GetInitialHealth();

        statusVal.text = _agent.GetComponent <AgentStates> ().GetStatusString();
        taskVal.text   = _agent.GetComponent <AgentStates> ().GetTaskString();

        Attack attack = _agent.GetComponent <Attack> ();

        attackRangeVal.text = attack.GetAttackRadius().ToString();
        damageVal.text      = attack.GetDamage().ToString();
    }
Пример #6
0
        /// <summary>
        /// Add an Item in the agent inventory
        /// </summary>
        public UsableItem AddItemInInventory(AgentInventory inventory, CraftingChoice choice)
        {
            UsableItem itemToAdd = GetUsableItemByCraftingChoice(choice);

            inventory.AddItem(itemToAdd);

            return(itemToAdd);
        }
Пример #7
0
    // Use this for initialization
    void Awake()
    {
        navHelper = GetComponent <NavAgentHelper> ();
        state     = GetComponent <AgentStates> ();
        inventory = GetComponent <AgentInventory> ();
        agentBase = GameObject.FindWithTag("AntHill");

        _resourceManager = FindObjectOfType(typeof(ResourceManager)) as ResourceManager;
    }
Пример #8
0
        public void Init()
        {
            adventurerSystemBehaviour = GameObject.FindObjectOfType <AdventurerSystemBehaviour>();
            adventurerSystem          = adventurerSystemBehaviour.system;

            SpawnAgents();

            //Get Adventurer Agent
            getAdventurerAgent = GameObject.FindObjectOfType <GetCurrentAdventurerAgent>();
            adventurerAgent    = getAdventurerAgent.CurrentAgent;

            //Generate travelSubsystem of the adventurerSystem
            travelSubsystem = adventurerSystem.travelSubsystem;
            travelSubsystem.Start();
            adventurerSystem.travelSubsystem = travelSubsystem;

            //Request System
            requestShopSystemBehaviour = GameObject.FindObjectOfType <RequestShopSystemBehaviour>();
            requestShopSystem          = requestShopSystemBehaviour.system;
            requestSystem = requestShopSystem.requestSystem;
            requestSystem.Start();

            //Generate PlayerFighterData of the adventurerAgent
            adventurerAgent.gameObject.GetComponent <AdventurerFighterData>().Start();
            //Generate adventurerInventory of the adventurerAgent
            adventurerInventory = adventurerAgent.adventurerInventory;
            //Generate agentInventory of the adventurerAgent
            adventurerAgentInventory = adventurerAgent.inventory;
            adventurerAgent.ResetEconomyAgent();
            //Generate AdventurerRequestTaker
            adventurerAgent.requestTaker.Start();


            //Get ShopAgent
            getShopAgent = GameObject.FindObjectOfType <GetCurrentShopAgent>();
            shopAgent    = getShopAgent.CurrentAgent;
            shopAgent.shopInput.Awake();
            shopAgent.agentInventory.ResetInventory();
            shopAgent.craftingInventory.ResetInventory();
            shopAgent.wallet.Reset();

            //ShopSystem
            shopCraftingSystemBehaviour = GameObject.FindObjectOfType <ShopCraftingSystemBehaviour>();
            shopCraftingSystemBehaviour.Start();
            agentShopSubSystem = shopCraftingSystemBehaviour.system.shopSubSubSystem;
            craftingSubSystem  = shopCraftingSystemBehaviour.system.craftingSubSubSystem;

            //ResetSystem
            environmentReset = GameObject.FindObjectOfType <EnvironmentReset>();
            environmentReset.Start();

            //Config
            configSystem = GameObject.FindObjectOfType <EconomyProject.Scripts.ConfigSystem>();
            configSystem.Start();
        }
Пример #9
0
        public AgentInventory FetchAgentsInventory(LLUUID agentID, IUserServer userserver)
        {
            AgentInventory res = null;

            if (!this._agentsInventory.ContainsKey(agentID))
            {
                res = userserver.RequestAgentsInventory(agentID);
                this._agentsInventory.Add(agentID, res);
            }
            return(res);
        }
Пример #10
0
        //IUserServer implementation
        public AgentInventory RequestAgentsInventory(LLUUID agentID)
        {
            AgentInventory aInventory = null;

            if (this.userAccounts)
            {
                aInventory = this.userManager.GetUsersInventory(agentID);
            }

            return(aInventory);
        }
Пример #11
0
        public void FetchInventoryDescendents(SimClient userInfo, FetchInventoryDescendentsPacket FetchDescend)
        {
            if (this._agentsInventory.ContainsKey(userInfo.AgentID))
            {
                AgentInventory agentInventory = this._agentsInventory[userInfo.AgentID];
                if (FetchDescend.InventoryData.FetchItems)
                {
                    if (agentInventory.InventoryFolders.ContainsKey(FetchDescend.InventoryData.FolderID))
                    {
                        InventoryFolder            Folder  = agentInventory.InventoryFolders[FetchDescend.InventoryData.FolderID];
                        InventoryDescendentsPacket Descend = new InventoryDescendentsPacket();
                        Descend.AgentData.AgentID     = userInfo.AgentID;
                        Descend.AgentData.OwnerID     = Folder.OwnerID;
                        Descend.AgentData.FolderID    = FetchDescend.InventoryData.FolderID;
                        Descend.AgentData.Descendents = Folder.Items.Count;
                        Descend.AgentData.Version     = Folder.Items.Count;


                        Descend.ItemData = new InventoryDescendentsPacket.ItemDataBlock[Folder.Items.Count];
                        for (int i = 0; i < Folder.Items.Count; i++)
                        {
                            InventoryItem Item = Folder.Items[i];
                            Descend.ItemData[i]               = new InventoryDescendentsPacket.ItemDataBlock();
                            Descend.ItemData[i].ItemID        = Item.ItemID;
                            Descend.ItemData[i].AssetID       = Item.AssetID;
                            Descend.ItemData[i].CreatorID     = Item.CreatorID;
                            Descend.ItemData[i].BaseMask      = FULL_MASK_PERMISSIONS;
                            Descend.ItemData[i].CreationDate  = 1000;
                            Descend.ItemData[i].Description   = _enc.GetBytes(Item.Description + "\0");
                            Descend.ItemData[i].EveryoneMask  = FULL_MASK_PERMISSIONS;
                            Descend.ItemData[i].Flags         = 1;
                            Descend.ItemData[i].FolderID      = Item.FolderID;
                            Descend.ItemData[i].GroupID       = new LLUUID("00000000-0000-0000-0000-000000000000");
                            Descend.ItemData[i].GroupMask     = FULL_MASK_PERMISSIONS;
                            Descend.ItemData[i].InvType       = Item.InvType;
                            Descend.ItemData[i].Name          = _enc.GetBytes(Item.Name + "\0");
                            Descend.ItemData[i].NextOwnerMask = FULL_MASK_PERMISSIONS;
                            Descend.ItemData[i].OwnerID       = Item.OwnerID;
                            Descend.ItemData[i].OwnerMask     = FULL_MASK_PERMISSIONS;
                            Descend.ItemData[i].SalePrice     = 100;
                            Descend.ItemData[i].SaleType      = 0;
                            Descend.ItemData[i].Type          = Item.Type;
                            Descend.ItemData[i].CRC           = libsecondlife.Helpers.InventoryCRC(1000, 0, Descend.ItemData[i].InvType, Descend.ItemData[i].Type, Descend.ItemData[i].AssetID, Descend.ItemData[i].GroupID, 100, Descend.ItemData[i].OwnerID, Descend.ItemData[i].CreatorID, Descend.ItemData[i].ItemID, Descend.ItemData[i].FolderID, FULL_MASK_PERMISSIONS, 1, FULL_MASK_PERMISSIONS, FULL_MASK_PERMISSIONS, FULL_MASK_PERMISSIONS);
                        }

                        userInfo.OutPacket(Descend);
                    }
                }
                else
                {
                    Console.WriteLine("fetch subfolders");
                }
            }
        }
Пример #12
0
        private void cd(string[] cmdLine)
        {
            if (cmdLine.Length < 2)
            {
                Console.WriteLine("Usage: cd [directory]");
                Console.WriteLine("Example: cd /Notecards");
                return;
            }

            string targetDir = "";

            if (cmdLine[1].Equals(".."))
            {
                targetDir = curDirectory.Substring(0, curDirectory.LastIndexOf("/"));
            }
            else if (cmdLine[1].StartsWith("/"))
            {
                targetDir += combineCmdArg(cmdLine);
            }
            else
            {
                if (!curDirectory.Equals("/"))
                {
                    targetDir = curDirectory + "/";
                }

                targetDir += combineCmdArg(cmdLine);
            }
            Console.WriteLine("Changing directory to: " + targetDir);


            InventoryFolder iFolder = AgentInventory.getFolder(targetDir);

            if (iFolder == null)
            {
                Console.WriteLine("Could not find directory: " + targetDir);
                return;
            }
            else
            {
                if (targetDir.StartsWith("/"))
                {
                    curDirectory = targetDir;
                }
                else
                {
                    curDirectory = "/" + targetDir;
                }
            }
        }
Пример #13
0
        public void FetchInventory(SimClient userInfo, FetchInventoryPacket FetchItems)
        {
            if (this._agentsInventory.ContainsKey(userInfo.AgentID))
            {
                AgentInventory agentInventory = this._agentsInventory[userInfo.AgentID];

                for (int i = 0; i < FetchItems.InventoryData.Length; i++)
                {
                    if (agentInventory.InventoryItems.ContainsKey(FetchItems.InventoryData[i].ItemID))
                    {
                        InventoryItem             Item           = agentInventory.InventoryItems[FetchItems.InventoryData[i].ItemID];
                        FetchInventoryReplyPacket InventoryReply = new FetchInventoryReplyPacket();
                        InventoryReply.AgentData.AgentID              = userInfo.AgentID;
                        InventoryReply.InventoryData                  = new FetchInventoryReplyPacket.InventoryDataBlock[1];
                        InventoryReply.InventoryData[0]               = new FetchInventoryReplyPacket.InventoryDataBlock();
                        InventoryReply.InventoryData[0].ItemID        = Item.ItemID;
                        InventoryReply.InventoryData[0].AssetID       = Item.AssetID;
                        InventoryReply.InventoryData[0].CreatorID     = Item.CreatorID;
                        InventoryReply.InventoryData[0].BaseMask      = FULL_MASK_PERMISSIONS;
                        InventoryReply.InventoryData[0].CreationDate  = (int)(DateTime.UtcNow - new DateTime(1970, 1, 1)).TotalSeconds;
                        InventoryReply.InventoryData[0].Description   = _enc.GetBytes(Item.Description + "\0");
                        InventoryReply.InventoryData[0].EveryoneMask  = FULL_MASK_PERMISSIONS;
                        InventoryReply.InventoryData[0].Flags         = 0;
                        InventoryReply.InventoryData[0].FolderID      = Item.FolderID;
                        InventoryReply.InventoryData[0].GroupID       = new LLUUID("00000000-0000-0000-0000-000000000000");
                        InventoryReply.InventoryData[0].GroupMask     = FULL_MASK_PERMISSIONS;
                        InventoryReply.InventoryData[0].InvType       = Item.InvType;
                        InventoryReply.InventoryData[0].Name          = _enc.GetBytes(Item.Name + "\0");
                        InventoryReply.InventoryData[0].NextOwnerMask = FULL_MASK_PERMISSIONS;
                        InventoryReply.InventoryData[0].OwnerID       = Item.OwnerID;
                        InventoryReply.InventoryData[0].OwnerMask     = FULL_MASK_PERMISSIONS;
                        InventoryReply.InventoryData[0].SalePrice     = 100;
                        InventoryReply.InventoryData[0].SaleType      = 0;
                        InventoryReply.InventoryData[0].Type          = Item.Type;
                        InventoryReply.InventoryData[0].CRC           = libsecondlife.Helpers.InventoryCRC(1000, 0, InventoryReply.InventoryData[0].InvType, InventoryReply.InventoryData[0].Type, InventoryReply.InventoryData[0].AssetID, InventoryReply.InventoryData[0].GroupID, 100, InventoryReply.InventoryData[0].OwnerID, InventoryReply.InventoryData[0].CreatorID, InventoryReply.InventoryData[0].ItemID, InventoryReply.InventoryData[0].FolderID, FULL_MASK_PERMISSIONS, 1, FULL_MASK_PERMISSIONS, FULL_MASK_PERMISSIONS, FULL_MASK_PERMISSIONS);
                        userInfo.OutPacket(InventoryReply);
                    }
                }
            }
        }
Пример #14
0
        /********************************************Adventurer*********************************************/

        /// <summary>
        /// Debug Adventurer Agents items in inventory
        /// </summary>
        public void DebugItemsInInventory(AdventurerAgent agent)
        {
            AgentInventory inventory = agent.inventory;

            Debug.Log("Number of Items : " + inventory.Items.Count);
            foreach (KeyValuePair <string, List <UsableItem> > item in inventory.Items)
            {
                Debug.Log("item : " + item.Key
                          + "\n item list count: " + item.Value.Count
                          );

                foreach (UsableItem usableItem in item.Value)
                {
                    Debug.Log("usableItem name : " + usableItem.itemDetails.itemName
                              + "\n baseDurability: " + usableItem.itemDetails.baseDurability
                              + "\n durability : " + usableItem.itemDetails.durability
                              + "\n damage : " + usableItem.itemDetails.damage
                              + "\n unBreakable : " + usableItem.itemDetails.unBreakable
                              + "\n Broken : " + usableItem.itemDetails.Broken
                              );
                }
            }
        }
Пример #15
0
        private void mkdir(string[] cmdLine)
        {
            if (cmdLine.Length < 2)
            {
                Console.WriteLine("Usage: mkdir [directory]");
                Console.WriteLine("Example: mkdir SubDir");
                return;
            }

            string targetDir = combineCmdArg(cmdLine);

            InventoryFolder iFolder = AgentInventory.getFolder(curDirectory);

            InventoryFolder newFolder = iFolder.CreateFolder(targetDir);

            if (newFolder != null)
            {
                Console.WriteLine("Directory created: " + targetDir);
            }
            else
            {
                Console.WriteLine("Error creating directory: " + targetDir);
            }
        }
Пример #16
0
 public bool UpdateAgentsInventory(LLUUID agentID, AgentInventory inventory)
 {
     return(true);
 }
Пример #17
0
        public bool PurchaseItems(EconomyWallet shopAgentWallet, UsableItemDetails itemDetails, EconomyWallet adventurerAgentWallet, AgentInventory inventory)
        {
            var price = _stockPrices[itemDetails.itemName];

            int GetStock()
            {
                return(_shopItems[itemDetails.itemName].Count);
            }

            if (adventurerAgentWallet.Money <= price)
            {
                Debug.Log("Not enough money : wallet " + adventurerAgentWallet.Money + "- price " + price);
                return(false);
            }

            if (GetStock() <= 0)
            {
                Debug.Log("Not enough stock");
                return(false);
            }

            inventory.AddItem(_shopItems[itemDetails.itemName][0]);
            _shopItems[itemDetails.itemName].RemoveAt(0);

            _stockPrices[itemDetails.itemName] = price;

            if (GetStock() <= 0)
            {
                _stockPrices.Remove(itemDetails.itemName);
                _shopItems.Remove(itemDetails.itemName);
                _previousPrices[itemDetails.itemName] = price;
            }
            adventurerAgentWallet.SpendMoney(price);
            shopAgentWallet.EarnMoney(price);

            return(true);
        }
Пример #18
0
    internal float AnimationSpeed = 1.0f;                                //How fast the animations should play.
    #endregion

    void Awake()
    {
        //Cache our frequent lookups.
        Transform = GetComponent<Transform>();
        Self = gameObject;

        //Get our basic components.
        Animation = GetComponent<Animation>();
        NavAgent = GetComponent<NavMeshAgent>();
        ViewController = GetComponent<HeadLookController>();
        CharDetails = GetComponent<CharacterDetails>();

        NavAgent.enabled = false;   //We disable the nav agent, so that we can move the Agent to its starting position (Moving with NavAgent enabled causes path finding and we simply want to "place" them at the start.) 
   
        if(!StaticDemo)
            Transform.position = BedTarget.position;    //Place the agent at the start.

        MoveDirection = Transform.TransformDirection(Vector3.forward);  //Get their initial facing direction.

        //Add the basic animation info.
        AnimationKeys = new Dictionary<string, string>();
        AnimationKeys.Add("run", "VB_Run");
        AnimationKeys.Add("walk", "VB_Walk");
        AnimationKeys.Add("idle", "VB_Idle");
        AnimationKeys.Add("greet", "VB_Greeting");
        AnimationKeys.Add("talk", "VB_Talk");

        Inventory = new AgentInventory(this);
    }
        public void PurchaseItem(ShopAgent shopAgent, UsableItemDetails item, EconomyWallet wallet, AgentInventory inventory)
        {
            var shop    = GetShop(shopAgent);
            var success = shop.PurchaseItems(shopAgent.wallet, item, wallet, inventory);

            if (success)
            {
                OverviewVariables.SoldItem();

                if (item.itemName == endItem.itemDetails.itemName)
                {
                    //resetScript.ResetScript();
                }
            }
            Refresh();
        }