public void Add(InteractiveObj iObj)
    {
        ObjectInteraction oi = iObj.OnCloseEnough;

        switch (oi.interactionType)
        {
        case ObjectInteraction.InteractionType.Unique:
            Insert(iObj);
            break;

        case ObjectInteraction.InteractionType.Accumulate:
        {
            bool          inserted             = false;
            CustomGameObj cgo                  = iObj.gameObject.GetComponent <CustomGameObj> ();
            CustomGameObj.CustomObjectType cot = CustomGameObj.CustomObjectType.Invalid;
            if (cgo != null)
            {
                cot = cgo.objectType;                         // type
            }
            for (int i = 0; i < inventoryItems.Count; i++)
            {
                CustomGameObj cgoi = inventoryItems[i].item.GetComponent <CustomGameObj> ();
                CustomGameObj.CustomObjectType coti = CustomGameObj.CustomObjectType.Invalid;
                if (cgoi != null)
                {
                    coti = cgoi.objectType;               // type
                }
                if (cot == coti)                          //accumulate
                {
                    inventoryItems [i].quantity++;
                    //deal with mission token
                    MissionToken mt = iObj.gameObject.GetComponent <MissionToken> ();
                    if (mt != null)
                    {
                        missionMgr.Add(mt);
                        iObj.gameObject.SetActive(false);
                        inserted = true;
                        break;
                    }
                }                //if(cot == coti)
            }                    //for (

            if (!inserted)
            {
                Insert(iObj);
            }
        }        //accumulate
        break;
        }        //switch
    }
    public void Insert(InteractiveObj iObj)
    {
        InventoryItem ii = new InventoryItem();

        ii.item     = iObj.gameObject;
        ii.quantity = 1;
        ii.item.SetActive(false);
        inventoryItems.Add(ii);
        //TODO: MissionMgr

        MissionToken mt = ii.item.GetComponent <MissionToken>();

        if (mt != null)
        {
            Debug.Log("In InventoryMgr.Insert: mt=");
            Debug.Log(mt);
            missionMgr.Add(mt);
        }
    }
    public List <MissionToken> missionTokens = new List <MissionToken>(); //run time part

    public void Add(MissionToken mt)
    {
        Debug.Log("In MissionMgr.Add:");
        Debug.Log(mt);

        bool uniqueToken = true;

        for (int i = 0; i < missionTokens.Count; i++)
        {
            if (missionTokens [i].id == mt.id)
            {
                uniqueToken = false;
                break;
            }
        }
        if (uniqueToken)
        {
            missionTokens.Add(mt);
        }
        ValidateAll();
    }
Example #4
0
    // add a new mission to the list of missions.
    public void AddMission(MissionToken mt)
    {
        bool uniquetoken = true;
        if (missionTokens != null) {

            // check all the mission tokens, and make sure this one is not there.
            // TODO: what is there no find in list?
            // if (missionTokens.Exists(mt)) ?? MTL
            for (int i=0; i<missionTokens.Count; i++) {
                if (missionTokens[i].GetInstanceID == mt.id) {
                    // duplicate token found, so abort the insert
                    uniqueToken = false;
                    break;
                }
            }
        }

        // insert if unique.
        if (uniquetoken) {
            missionTokens.Add(mt);
        }
    }