private void DoAddFriendRequest(string f1, string f2)
    {
        if (!dMyRequests.ContainsKey(f1))
        {
            dMyRequests.Add(f1, new Dictionary <string, AFriend>());
        }
        if (dMyRequests[f1].ContainsKey(f2))
        {
            return;
        }
        if (!dRequestedMe.ContainsKey(f2))
        {
            dRequestedMe.Add(f2, new Dictionary <string, AFriend>());
        }
        var f = new AFriend(f1, f2, f1);

        dMyRequests[f1].Add(f2, f);
        dRequestedMe[f2].Add(f1, f);
    }
    private void DoAddFriend(string f1, string f2)
    {
        if (!dFriends.ContainsKey(f1))
        {
            dFriends.Add(f1, new Dictionary <string, AFriend>());
        }
        if (!dFriends.ContainsKey(f2))
        {
            dFriends.Add(f2, new Dictionary <string, AFriend>());
        }
        var f = new AFriend(f1, f2);

        if (!dFriends[f1].ContainsKey(f2))
        {
            dFriends[f1].Add(f2, f);
        }
        if (!dFriends[f2].ContainsKey(f1))
        {
            dFriends[f2].Add(f1, f);
        }

        if (dMyRequests.ContainsKey(f1) && dMyRequests[f1].ContainsKey(f2))
        {
            dMyRequests[f1].Remove(f2);
        }
        if (dMyRequests.ContainsKey(f2) && dMyRequests[f2].ContainsKey(f1))
        {
            dMyRequests[f2].Remove(f1);
        }
        if (dRequestedMe.ContainsKey(f1) && dRequestedMe[f1].ContainsKey(f2))
        {
            dRequestedMe[f1].Remove(f2);
        }
        if (dRequestedMe.ContainsKey(f2) && dRequestedMe[f2].ContainsKey(f1))
        {
            dRequestedMe[f2].Remove(f1);
        }
    }
    public static string ToJson(string avatarname, List <AFriend> friends)
    {
        var lfriends = new List <List <string> >();

        foreach (var f in friends)
        {
            var fn    = f.OnGetFriendName(avatarname);
            var finfo = AFriend.OnGetFriendInfo(fn);
            if (finfo == null)
            {
                AOutput.LogError("Cannot find friend info of " + fn);
                continue;
            }
            var fs = new List <string>();
            fs.Add(InfoNameDefs.AvatarName);
            fs.Add(fn);
            fs.Add(InfoNameDefs.AvatarHead);
            fs.Add(finfo.head.ToString());
            fs.Add("accid");
            fs.Add(finfo.accid);
            lfriends.Add(fs);
        }
        return(AWebServerUtils.ToJsonArray(lfriends.ToArray()));
    }
Esempio n. 4
0
 public void setTarget(AFriend target)
 {
     _friendTarget = target;
 }
Esempio n. 5
0
    private bool changeTarget()
    {
        int bestTarget = -1; // means no target
        int bestScore = 1000;
        int myX = (int)transform.position.x;
        int myY = (int)transform.position.y;
        Vector2 myPosition = new Vector2(myX, myY);

        // if there is atleast 1 friend, then checking and returning index
        if (!(LevelManager.friendsSpawned.Count < 1))
        {
            //print("trying to change target");
            //looking for best target
            for (int i = 0; i < LevelManager.friendsSpawned.Count; i++)
            {

                AFriend potentialTarget = LevelManager.friendsSpawned[i];

                Vector2 potentialTargetPosition = new Vector2(
                                                                (int)potentialTarget.transform.position.x,
                                                                    (int)potentialTarget.transform.position.y);

                int score = MapCalc.GetMinCost(myPosition, potentialTargetPosition);

                if (score < bestScore)
                {
                    bestScore = score;
                    bestTarget = i;
                }
            }

            // better to add try catch, cause some of the enemies might try to swap into unexisting char
            try
            {
                _friendTarget = LevelManager.friendsSpawned[bestTarget];
            } catch (Exception e)
            {
                print("ERROR!" + e.StackTrace);
            }

            return true;
        }

        return false;
    }
Esempio n. 6
0
    private void createFriend(AFriend friend, Vector2 pos)
    {
        if (MapManager.mapArray[(int)pos.x, (int)pos.y] == null)
        {
            AFriend instance = Instantiate(friend, pos, Quaternion.identity) as AFriend;

            instance.transform.SetParent(friendsHolder.transform);

            MapManager.mapArray[(int)pos.x, (int)pos.y] = instance;
            friendsSpawned.Add(instance);

        }
    }