Example #1
0
    public GridObject CreateBuilding(string templateID)
    {
        GridObject template = TemplateManager.Instance.Get <PurchasableObject>(templateID);

        if (template != null)
        {
            PurchasableObject buildingData = (PurchasableObject)template;
            if (buildingData != null)
            {
                if (HasResource(buildingData.BuildingCost.ResourceCost.Type, buildingData.BuildingCost.ResourceCost.Amount))
                {
                    GridObject gridObject = TemplateManager.Instance.Spawn <GridObject>(template);
                    gridObject.UID = GetNewUID(gridObject);
                    return(gridObject);
                }
                ShowMessage("Not enough Cash!");
            }
            else
            {
                Debug.LogError("Can not create building '" + templateID + "' because it is not of type 'BaseBuilding'.");
            }
        }

        return(null);
    }
    public static void Create()
    {
        PurchasableObject asset = ScriptableObject.CreateInstance <PurchasableObject>();

        AssetDatabase.CreateAsset(asset, "Assets/NewPurchasableObject.asset");
        AssetDatabase.SaveAssets();
        EditorUtility.FocusProjectWindow();
        Selection.activeObject = asset;
    }
Example #3
0
 public void MakePurchase(PurchasableObject obj)
 {
     for (var i = 0; i < Available.ObjectList.Count; i++)
     {
         PurchasableObject availableObject = Available.ObjectList[i];
         if (availableObject == obj && Cash.Value >= availableObject.Value)
         {
             Cash.Value -= availableObject.Value;
             Purchased.ObjectList.Add(obj);
             Available.ObjectList.Remove(availableObject);
             MadePurchase.Invoke();
         }
     }
 }
Example #4
0
 public void MakePurchase(PurchasableObject obj)
 {
     for (var i = 0; i < Available.ObjectList.Count; i++) //For each of the objects available in our object list...
     {
         PurchasableObject availableObject = Available.ObjectList[i] as PurchasableObject;
         ;            if (availableObject == obj && Cash.Value >= availableObject.Value) //If the object is a available...
         {
             Cash.Value -= availableObject.Value;                                        //Subtracts our Cash amount after purchasing
             Purchased.ObjectList.Add(obj);                                              //Purchase it
             Available.ObjectList.Remove(availableObject);                               //Remove it from available objects
             MadePurchase.Invoke();                                                      //Anything we want. What happens after purchasing!
         }
     }
 }
Example #5
0
    public void MakePurchase(PurchasableObject obj)
    {
        Debug.Log("test");
        for (var i = 0; i < Available.ObjectList.Count; i++)
        {
            var availableObject = Available.ObjectList[i];

            if (availableObject != obj || Cash.Value < availableObject.Value)
            {
                continue;
            }
            Cash.Value -= availableObject.Value;
            Purchased.ObjectList.Add(obj);

            if (availableObject.Perpetual)
            {
                Available.ObjectList.Remove(availableObject);
            }
            MadePurchase.Invoke();
        }
    }
Example #6
0
        /// <summary>
        /// User clicked on an item in the list containing available heads and bodies.
        /// </summary>
        private void LstHeads_SelectedIndexChanged(object sender, EventArgs e)
        {
            if (m_Skeleton == null)
            {
                m_Skeleton = new Skeleton(this.Device, ContentManager.GetResourceFromLongID(0x100000005));
                m_Skeleton.AssignChildren(ref m_Skeleton);
            }

            foreach(KeyValuePair<ulong, string> Pair in ContentManager.Resources)
            {
                if ((string)LstHeads.SelectedItem == Pair.Value)
                {
                    //HAndGroup files are used to group together different hand meshes and textures.
                    if (Pair.Value.Contains(".hag"))
                    {
                        Hag HandGroup = new Hag(ContentManager.GetResourceFromLongID(Pair.Key));

                        m_CurrentAppearance = new Appearance(ContentManager.GetResourceFromLongID(
                            HandGroup.Appearances[0]));

                        LstAppearances.Items.Clear();

                        foreach (ulong AppearanceID in HandGroup.Appearances)
                            LstAppearances.Items.Add(AppearanceID);

                        List<Binding> Bindings = new List<Binding>();

                        foreach (ulong BindingID in m_CurrentAppearance.BindingIDs)
                            Bindings.Add(new Binding(ContentManager.GetResourceFromLongID(BindingID)));

                        m_Tex = Texture2D.FromFile(this.Device, new MemoryStream(
                            ContentManager.GetResourceFromLongID(Bindings[0].TextureAssetID)));

                        m_CurrentMesh = new Mesh(ContentManager.GetResourceFromLongID(Bindings[0].MeshAssetID), false);
                        LoadMesh(m_CurrentMesh);
                    }
                    else
                    {
                        PurchasableObject PO = new PurchasableObject(ContentManager.GetResourceFromLongID(Pair.Key));

                        m_CurrentOutfit = new Outfit(ContentManager.GetResourceFromLongID(PO.OutfitID));
                        m_CurrentAppearance = new Appearance(
                            ContentManager.GetResourceFromLongID(m_CurrentOutfit.LightAppearanceID));

                        LstAppearances.Items.Clear();
                        LstAppearances.Items.Add(m_CurrentOutfit.LightAppearanceID);
                        LstAppearances.Items.Add(m_CurrentOutfit.MediumAppearanceID);
                        LstAppearances.Items.Add(m_CurrentOutfit.DarkAppearanceID);

                        List<Binding> Bindings = new List<Binding>();

                        foreach (ulong BindingID in m_CurrentAppearance.BindingIDs)
                            Bindings.Add(new Binding(ContentManager.GetResourceFromLongID(BindingID)));

                        m_Tex = Texture2D.FromFile(this.Device, new MemoryStream(
                            ContentManager.GetResourceFromLongID(Bindings[0].TextureAssetID)));

                        //The file selected was most likely a body-mesh, so apply the adult skeleton to it.
                        if (Pair.Value.Contains("bodies"))
                        {
                            m_CurrentMesh = new Mesh(ContentManager.GetResourceFromLongID(Bindings[0].MeshAssetID), true);
                            m_CurrentMesh.TransformVertices2(m_Skeleton.Bones[0], ref mSimpleEffect);
                            m_CurrentMesh.BlendVertices2();
                            LoadMesh(m_CurrentMesh);
                        }
                        else
                        {
                            m_CurrentMesh = new Mesh(ContentManager.GetResourceFromLongID(Bindings[0].MeshAssetID), false);
                            LoadMesh(m_CurrentMesh);
                        }
                    }

                    m_LoadComplete = true;
                }
            }
        }