Ejemplo n.º 1
0
        /// <summary>
        ///  Gives a mob a permission to place a given Tile.
        /// </summary>
        public void AssignBuildPermissionTile(IEntity mob, int range, string tileType, string alignOption)
        {
            var newPermission = new PlacementInformation
            {
                MobUid          = mob.Uid,
                Range           = range,
                IsTile          = true,
                TileType        = _tileDefinitionManager[tileType].TileId,
                PlacementOption = alignOption
            };

            IEnumerable <PlacementInformation> mobPermissions = from PlacementInformation permission in BuildPermissions
                                                                where permission.MobUid == mob.Uid
                                                                select permission;

            if (mobPermissions.Any()) //Already has one? Revoke the old one and add this one.
            {
                RevokeAllBuildPermissions(mob);
                BuildPermissions.Add(newPermission);
            }
            else
            {
                BuildPermissions.Add(newPermission);
            }
        }
Ejemplo n.º 2
0
        /// <summary>
        ///  Removes all building Permissions for given mob.
        /// </summary>
        public void RevokeAllBuildPermissions(IEntity mob)
        {
            var mobPermissions = BuildPermissions
                                 .Where(permission => permission.MobUid == mob.Uid)
                                 .ToList();

            if (mobPermissions.Count != 0)
            {
                BuildPermissions.RemoveAll(x => mobPermissions.Contains(x));
            }
        }