Exemple #1
0
 public void Identify(UserDO userDO)
 {
     var props = new Traits();
     foreach (var prop in GetProperties(userDO))
         props.Add(prop.Key, prop.Value);
     
     Analytics.Client.Identify(userDO.Id, props);
 }
Exemple #2
0
        internal Identify(string userId,
		                  Traits traits, 
						  Options options)
	
			: base("identify", userId, options)
        {
            this.Traits = traits ?? new Traits();
        }
        internal Identify(string userId,
		                  Traits traits, 
						  Options options)
	
			: base("identify", options)
        {
			UserId = userId;
            Traits = traits ?? new Traits();
        }
Exemple #4
0
 internal Group(string userId,
     string groupId,
     Traits traits,
     Options options)
     : base("group", userId, options)
 {
     this.GroupId = groupId;
     this.Traits = traits ?? new Traits();
 }
		internal Group(string userId, 
					   string groupId,
					   Traits traits, 
					   Options options)
			: base("group", options)
        {
			UserId = userId;
			GroupId = groupId;
			Traits = traits ?? new Traits();
        }
 public static Traits MapNewApplicationNoGuarantor(Customer tenant, string applicationReference, string shortURl)
 {
     var traits = new Traits
     {
         {"email", tenant.Email},
         {"tenantMobileNumber", tenant.TelephoneNumber },
         {"hasGuarantor", "false"},
         {"applicationReference", applicationReference},
         {"tenantFirstName", tenant.KnownAs}
     };
     return traits;
 }
 public void ChangeTrait(Traits _trait)
 {
     this.trait = _trait;
 }
                public static Traits operator +(Traits a, Traits b)
                {
                    Traits r = new Traits();

                    r.str = a.str + b.str;
                    r.dex = a.dex + b.dex;
                    r.intel = a.intel + b.intel;
                    r.wis = a.wis + b.wis;
                    r.spd = a.spd + b.spd;
                    r.con = a.con + b.con;

                    return r;
                }
Exemple #9
0
        protected string SetTraits(SimDescription me, IEnumerable <SimTrait.Item> choices)
        {
            string result = Name + Common.NewLine + me.FullName;

            bool success = false;

            foreach (SimTrait.Item selection in choices)
            {
                if (me.TraitManager.HasElement(selection.Value))
                {
                    continue;
                }

                Trait selected = TraitManager.GetTraitFromDictionary(selection.Value);
                if (selected != null)
                {
                    if (!selected.TraitValidForAgeSpecies(CASUtils.CASAGSAvailabilityFlagsFromCASAgeGenderFlags(CASAgeGenderFlags.Adult | me.Species)))
                    {
                        continue;
                    }

                    if (me.mSpendableHappiness < selected.Score)
                    {
                        continue;
                    }

                    me.mSpendableHappiness -= selected.Score;

                    result += Common.NewLine + "  " + selected.TraitName(me.IsFemale);

                    success = true;

                    if (Traits.IsObjectBaseReward(selected.Guid))
                    {
                        if (me.Household == null)
                        {
                            continue;
                        }

                        if (me.CreatedSim == null)
                        {
                            continue;
                        }

                        HudModel hudModel = Sims3.UI.Responder.Instance.HudModel as HudModel;
                        if (hudModel != null)
                        {
                            bool showTNS          = SimTypes.IsSelectable(me);
                            bool inHouseInventory = false;
                            Sim  rewardedSim      = me.CreatedSim;
                            hudModel.GiveRewardObjects(me.CreatedSim, selected.Guid, selected.ProductVersion, ref showTNS, ref inHouseInventory, ref rewardedSim);
                        }
                    }
                    else
                    {
                        switch (selected.Guid)
                        {
                        case TraitNames.ForeverYoung:
                            me.AgingEnabled = false;
                            break;

                        default:
                            if (selected.Guid == TraitNames.SuperVampire)
                            {
                                me.AgingEnabled = false;
                            }

                            if (!me.AddTrait(selected))
                            {
                                me.mSpendableHappiness += selected.Score;
                            }
                            break;
                        }
                    }
                }
            }

            if (!success)
            {
                result += Common.NewLine + "  " + Common.Localize(GetTitlePrefix() + ":None");
            }

            return(result);
        }
Exemple #10
0
 /// <summary>
 /// Identifying a visitor ties all of their actions to an ID you
 /// recognize and records visitor traits you can segment by.
 /// </summary>
 ///
 /// <param name="userId">The visitor's identifier after they log in, or you know
 /// who they are. By
 /// explicitly identifying a user, you tie all of their actions to their identity.</param>
 ///
 /// <param name="traits">A dictionary with keys like "email", "name", “subscriptionPlan” or
 /// "friendCount”. You can segment your users by any trait you record.
 /// Pass in values in key-value format. String key, then its value
 /// { String, Integer, Boolean, Double, or Date are acceptable types for a value. } </param>
 ///
 /// <param name="timestamp">  If this event happened in the past, the timestamp
 /// can be used to designate when the identification happened. Careful with this one,
 /// if it just happened, leave it null.</param>
 ///
 public void Identify(string userId, Traits traits, DateTime?timestamp)
 {
     Identify(userId, traits, timestamp, null);
 }
Exemple #11
0
        public void DoesNotThrowAndCanGetItem()
        {
            var provider = Traits.CreateProvider(this);

            var fakeParent = CreateFakeParent();
            var result     = provider.CreateItem(ID.NewID, ID.NewID.ToString(), ID.NewID, fakeParent, Traits.CreateCallContext(this));

            Assert.That(result, Is.True);
        }
Exemple #12
0
        public override void CalculateTraits()
        {
            #region policz biale i czarne piksele
            int WhitePixels = 0;
            int BlackPixels = 0;
            int cw1         = 0;
            int cw2         = 0;
            int cw3         = 0;
            int cw4         = 0;

            double u00 = 0;

            for (int i = 0; i < 28; ++i)
            {
                for (int j = 0; j < 28; ++j)
                {
                    if ((i < 14) && (j < 14) && (PixelsBW[i, j] == 1))
                    {
                        cw1++;
                    }
                    if ((i >= 14) && (j < 14) && (PixelsBW[i, j] == 1))
                    {
                        cw2++;
                    }
                    if ((i < 14) && (j >= 14) && (PixelsBW[i, j] == 1))
                    {
                        cw3++;
                    }
                    if ((i >= 14) && (j >= 14) && (PixelsBW[i, j] == 1))
                    {
                        cw4++;
                    }
                    if (PixelsBW[i, j] == 0)
                    {
                        WhitePixels++;
                    }
                    else
                    {
                        BlackPixels++;
                    }

                    u00 += PixelsBW[i, j];
                }
            }

            double u10 = 0;
            double u01 = 0;

            for (int i = 0; i < 28; ++i)
            {
                for (int j = 0; j < 28; ++j)
                {
                    u10 += i * PixelsBW[i, j];
                    u01 += j * PixelsBW[i, j];
                }
            }

            u10 = u10 / u00;
            u01 = u01 / u00;

            double u20 = 0;
            double u02 = 0;
            double u11 = 0;

            for (int i = 0; i < 28; ++i)
            {
                for (int j = 0; j < 28; ++j)
                {
                    u20 += (i - u10) * (i - u10) * PixelsBW[i, j];
                    u02 += (j - u01) * (j - u01) * PixelsBW[i, j];
                    u11 += (i - u10) * (j - u01) * PixelsBW[i, j];
                }
            }

            u20 = u20 / u00;
            u02 = u02 / u00;
            u11 = u11 / u00;

            #endregion

            #region znajdz obszary
            int WhiteGroupsCount = 0;
            int BlackGroupsCount = 0;


            for (int i = 0; i < 28; ++i)
            {
                for (int j = 0; j < 28; ++j)
                {
                    IfAlreadyChecked[i, j] = false;
                }
            }

            for (int i = 0; i < 28; ++i)
            {
                for (int j = 0; j < 28; ++j)
                {
                    if (IfAlreadyChecked[i, j] == false)
                    {
                        FirstInGroup = PixelsBW[i, j];
                        stack.Push(new XY(i, j));
                        while (stack.Count != 0)
                        {
                            XY pixel = stack.Pop();
                            IfAlreadyChecked[pixel.X, pixel.Y] = true;
                            RegionCheckNeighbours(pixel.X, pixel.Y);
                        }
                        if (FirstInGroup == 0)
                        {
                            WhiteGroupsCount++;
                        }
                        else
                        {
                            BlackGroupsCount++;
                        }
                    }
                }
            }

            stack.Clear();
            #endregion

            // 1. ilosc bialych pikseli
            // Traits.Add(WhitePixels);
            // 2. ilosc czarnych piskeli
            //  Traits.Add(BlackPixels);
            // 3. ilosc okienek (H)
            Traits.Add((WhiteGroupsCount - 1) * 10);
            // 4. ilosc czarnych obiektow (C)
            Traits.Add((BlackGroupsCount) * 10);
            // 5. liczba eulera (C-H)
            Traits.Add((BlackGroupsCount - (WhiteGroupsCount - 1)) * 10);
            // 6. stosunek czerni do bieli 1./2.
            //   Traits.Add(WhitePixels / BlackPixels);
            Traits.Add(cw1);
            Traits.Add(cw2);
            Traits.Add(cw3);
            Traits.Add(cw4);
            Traits.Add(u00);
            Traits.Add(u10);
            Traits.Add(u01);
            Traits.Add(u20);
            Traits.Add(u02);
            Traits.Add(u11);
        }
Exemple #13
0
    void Awake()
    {
        JCounter = new int[1];
        jointDictionary = new Dictionary<int[],GameObject> ();
        traits = Traits.Instance;
        traits.build ();

        print (defaultJoint);

        if (defaultJoint == null)
            defaultJointExists = false;

        trait = new Trait ();
        trait.makeDefault ();

        //make an invisible root joint
        //		Trait rootTrait = new Trait ();
        //		rootTrait.makeDefault ();
        //		rootTrait.jointMesh = null;
        //		rootTrait.ballMesh = null;
        //		root = TREEUtils.JointFactory (rootTrait);
        //		root.name = "root";
        //		root = makeRoot();
        Joint j = this.gameObject.AddComponent<Joint> ();
        Trait rootTrait = new Trait ();
        rootTrait.makeDefault ();
        rootTrait.jointMesh = null;
        rootTrait.ballMesh = null;
        j.trait = rootTrait;
        this.name = "root";
        root = this.gameObject;
        //		root.transform.parent = transform;
    }
 public List <Trait> GetHouse(int index) => Traits.Skip(index).TakeEvery(5).ToList();
 public Trait GetTrait(Traits pTrait)
 {
     return(_traits[pTrait]);
 }
Exemple #16
0
        private void InitializeLog()
        {
            SerilogAdapter = new SerilogAdapter(ReadLogger(), Section.Log.Level);

            Traits.InitializeLog(SerilogAdapter);
        }
        public int HasIndex(Trait trait1, int index)
        {
            var index1 = Traits.IndexOf(trait1) % NumHouses;

            return(Math.Abs(index1 - index));
        }
Exemple #18
0
 public CardState(int hp, TraitModel trait)
 {
     HP = hp;
     Traits.Add(trait);
 }
Exemple #19
0
 public static IEnumerable<int2> Tiles(Actor a, Traits.Building building)
 {
     return Tiles( a.Info.Name, a.Info.Traits.Get<BuildingInfo>(), a.Location );
 }
Exemple #20
0
 public override string Generate(Queue <string> generationQueue)
 => _gen($"{string.Join(", ", InterpretQueue(generationQueue, _map).Select(x => x.Generate()))}", Traits.IsNull() ? "" : Traits.Generate());
Exemple #21
0
            public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer)
            {
                JObject jo = JObject.Load(reader);

                string eventType = jo["type"].Value <string>();

                switch (eventType)
                {
                case "track":
                {
                    string     userId     = jo["userId"].Value <string>();
                    string     eventName  = jo["event"].Value <string>();
                    Properties properties = jo["properties"].ToObject <Properties>();
                    Options    options    = jo["properties"].ToObject <Options>();

                    return(new Track(userId, eventName, properties, options));
                }

                case "screen":
                {
                    string     userId     = jo["userId"].Value <string>();
                    string     name       = jo["name"].Value <string>();
                    string     category   = jo["category"].Value <string>();
                    Properties properties = jo["properties"].ToObject <Properties>();
                    Options    options    = jo["properties"].ToObject <Options>();

                    return(new Screen(userId, name, category, properties, options));
                }

                case "page":
                {
                    string     userId     = jo["userId"].Value <string>();
                    string     name       = jo["name"].Value <string>();
                    string     category   = jo["category"].Value <string>();
                    Properties properties = jo["properties"].ToObject <Properties>();
                    Options    options    = jo["properties"].ToObject <Options>();

                    return(new Page(userId, name, category, properties, options));
                }

                case "identify":
                {
                    string  userId  = jo["userId"].Value <string>();
                    Traits  traits  = jo["traits"].ToObject <Traits>();
                    Options options = jo["properties"].ToObject <Options>();

                    return(new Identify(userId, traits, options));
                }

                case "group":
                {
                    string  userId  = jo["userId"].Value <string>();
                    string  groupId = jo["groupId"].Value <string>();
                    Traits  traits  = jo["traits"].ToObject <Traits>();
                    Options options = jo["properties"].ToObject <Options>();

                    return(new Group(userId, groupId, traits, options));
                }

                case "alias":
                {
                    string  previousId = jo["previousId"].Value <string>();
                    string  userId     = jo["userId"].Value <string>();
                    Options options    = jo["properties"].ToObject <Options>();

                    return(new Alias(previousId, userId, options));
                }

                default:
                    return(null);
                }
            }
Exemple #22
0
 public static void Identify(RudderClient client, Traits traits, RudderOptions options)
 {
     client.Identify("user", traits, options);
     RudderAnalytics.Client.Flush();
 }
Exemple #23
0
 public Task SetTraits(Traits traits)
 {
     this.traits = traits;
     return(TaskDone.Done);
 }
Exemple #24
0
 public override int GetHashCode() => (Traits.GetHashCode() * 759523) ^ base.GetHashCode();
Exemple #25
0
 /// <summary>
 /// The `group` method lets you associate a user with a group. Be it a company,
 /// organization, account, project, team or whatever other crazy name you came up
 /// with for the same concept! It also lets you record custom traits about the
 /// group, like industry or number of employees.
 /// </summary>
 ///
 /// <param name="userId">The visitor's database identifier after they log in, or you know
 /// who they are. By explicitly grouping a user, you tie all of their actions to their group.</param>
 ///
 /// <param name="groupId">The group's database identifier after they log in, or you know
 /// who they are.</param>
 ///
 /// <param name="traits">A dictionary with group keys like "name", “subscriptionPlan”.
 /// You can segment your users by any trait you record. Pass in values in key-value format.
 /// String key, then its value { String, Integer, Boolean, Double, or Date are acceptable types for a value. } </param>
 ///
 public void Group(string userId, string groupId, Traits traits)
 {
     Group(userId, groupId, traits, null);
 }
Exemple #26
0
 public ComponentDescriptorStub(string componentId, object component, Traits traits)
 {
     this.componentId = componentId;
     this.component   = component;
     this.traits      = traits;
 }
Exemple #27
0
 /// <summary>
 /// Identifying a visitor ties all of their actions to an ID you
 /// recognize and records visitor traits you can segment by.
 /// </summary>
 ///
 /// <param name="userId">The visitor's identifier after they log in, or you know
 /// who they are. By
 /// explicitly identifying a user, you tie all of their actions to their identity.</param>
 ///
 /// <param name="traits">A dictionary with keys like "email", "name", “subscriptionPlan” or
 /// "friendCount”. You can segment your users by any trait you record.
 /// Pass in values in key-value format. String key, then its value
 /// { String, Integer, Boolean, Double, or Date are acceptable types for a value. } </param>
 ///
 public void Identify(string userId, Traits traits)
 {
     Identify(userId, traits, null, null);
 }
        /// <summary>
        /// Create virtual FileModel objects from Abc bytecode
        /// </summary>
        /// <param name="abcs"></param>
        /// <param name="path"></param>
        /// <param name="context"></param>
        public static void Convert(ContentParser parser, PathModel path, IASContext context)
        {
            path.Files.Clear();
            inSWF = Path.GetExtension(path.Path).ToLower() == ".swf";

            // extract documentation
            ParseDocumentation(parser);

            // extract models
            FileModel privateClasses = new FileModel(Path.Combine(path.Path, "__Private.as"));

            privateClasses.Version = 3;
            privateClasses.Package = "private";
            genericTypes           = new Dictionary <string, FileModel>();
            imports = new Dictionary <string, string>();

            foreach (Abc abc in parser.Abcs)
            {
                // types
                foreach (Traits trait in abc.classes)
                {
                    Traits instance = trait.itraits;
                    if (instance == null)
                    {
                        continue;
                    }
                    imports.Clear();

                    FileModel model = new FileModel("");
                    model.Context    = context;
                    model.Package    = reSafeChars.Replace(instance.name.uri, "_");
                    model.HasPackage = true;
                    string filename = reSafeChars.Replace(trait.name.ToString(), "_").TrimEnd('$');
                    filename       = Path.Combine(model.Package.Replace('.', Path.DirectorySeparatorChar), filename);
                    model.FileName = Path.Combine(path.Path, filename);
                    model.Version  = 3;

                    ClassModel type = new ClassModel();
                    model.Classes = new List <ClassModel>();
                    model.Classes.Add(type);
                    type.InFile = model;

                    type.Type = instance.name.ToTypeString();
                    type.Name = instance.name.localName;

                    thisDocs = GetDocs(model.Package);
                    if (thisDocs != null)
                    {
                        docPath = (model.Package.Length > 0 ? model.Package + ":" : "globalClassifier:") + type.Name;
                        if (thisDocs.ContainsKey(docPath))
                        {
                            DocItem doc = thisDocs[docPath];
                            setDoc(doc, type);
                            if (doc.Meta != null)
                            {
                                model.MetaDatas = doc.Meta;
                            }
                        }
                        if (model.Package.Length == 0)
                        {
                            docPath = type.Name;
                        }
                    }

                    if (instance.baseName.uri == model.Package)
                    {
                        type.ExtendsType = ImportType(instance.baseName.localName);
                    }
                    else
                    {
                        type.ExtendsType = ImportType(instance.baseName);
                    }

                    if (instance.interfaces != null && instance.interfaces.Length > 0)
                    {
                        type.Implements = new List <string>();
                        foreach (QName name in instance.interfaces)
                        {
                            type.Implements.Add(ImportType(name));
                        }
                    }

                    if (model.Package == "private")
                    {
                        model.Package  = "";
                        type.Access    = Visibility.Private;
                        type.Namespace = "private";
                    }
                    else if (model.Package == "__AS3__.vec")
                    {
                        model.Package  = "";
                        type.Access    = Visibility.Private;
                        type.Namespace = "private";
                        string genType = type.Name;
                        if (type.Name.IndexOf("$") > 0)
                        {
                            string[] itype = type.Name.Split('$');
                            genType        = itype[0];
                            type.Name      = itype[0] + "$" + itype[1];
                            type.IndexType = itype[1];
                        }
                        if (genericTypes.ContainsKey(genType))
                        {
                            model.Classes.Clear();
                            type.InFile = genericTypes[genType];
                            genericTypes[genType].Classes.Add(type);
                        }
                        else
                        {
                            genericTypes[genType] = model;
                        }
                    }
                    else if (type.Name.StartsWith("_"))
                    {
                        type.Access    = Visibility.Private;
                        type.Namespace = "private";
                    }
                    else
                    {
                        type.Access    = Visibility.Public;
                        type.Namespace = "public";
                    }

                    type.Flags = FlagType.Class;
                    if (instance.flags == TraitMember.Function)
                    {
                        type.Flags |= FlagType.Interface;
                    }

                    type.Members = GetMembers(trait.members, FlagType.Static, instance.name);
                    type.Members.Add(GetMembers(instance.members, FlagType.Dynamic, instance.name));

                    if ((type.Flags & FlagType.Interface) > 0)
                    {
                        // TODO properly support interface multiple inheritance
                        type.ExtendsType = null;
                        if (type.Implements != null && type.Implements.Count > 0)
                        {
                            type.ExtendsType = type.Implements[0];
                            type.Implements.RemoveAt(0);
                            if (type.Implements.Count == 0)
                            {
                                type.Implements = null;
                            }
                        }

                        foreach (MemberModel member in type.Members)
                        {
                            member.Access    = Visibility.Public;
                            member.Namespace = "";
                        }
                    }

                    // constructor
                    if (instance.init != null && (type.Flags & FlagType.Interface) == 0)
                    {
                        List <MemberInfo> temp   = new List <MemberInfo>(new MemberInfo[] { instance.init });
                        MemberList        result = GetMembers(temp, 0, instance.name);
                        if (result.Count > 0)
                        {
                            MemberModel ctor = result[0];
                            ctor.Flags    |= FlagType.Constructor;
                            ctor.Access    = Visibility.Public;
                            ctor.Type      = type.Type;
                            ctor.Namespace = "public";
                            type.Members.Merge(result);
                            type.Constructor = ctor.Name;
                        }
                        result = null;
                        temp   = null;
                    }
                    else
                    {
                        type.Constructor = type.Name;
                    }

                    if (type.Access == Visibility.Private)
                    {
                        model       = privateClasses;
                        type.InFile = model;
                    }

                    if (model.Classes.Count > 0 || model.Members.Count > 0)
                    {
                        AddImports(model, imports);
                        path.AddFile(model);
                    }
                }

                // packages
                if (abc.scripts == null)
                {
                    continue;
                }
                foreach (Traits trait in abc.scripts)
                {
                    FileModel model = null;
                    foreach (MemberInfo info in trait.members)
                    {
                        if (info.kind == TraitMember.Class)
                        {
                            continue;
                        }

                        MemberModel member = GetMember(info, 0);
                        if (member == null)
                        {
                            continue;
                        }

                        if (model == null || model.Package != info.name.uri)
                        {
                            AddImports(model, imports);

                            string package  = info.name.uri ?? "";
                            string filename = package.Length > 0 ? "package.as" : "toplevel.as";
                            filename = Path.Combine(package.Replace('.', Path.DirectorySeparatorChar), filename);
                            filename = Path.Combine(path.Path, filename);
                            if (path.HasFile(filename))
                            {
                                model = path.GetFile(filename);
                            }
                            else
                            {
                                model            = new FileModel("");
                                model.Context    = context;
                                model.Package    = package;
                                model.HasPackage = true;
                                model.FileName   = filename;
                                model.Version    = 3;
                                path.AddFile(model);
                            }
                        }

                        thisDocs = GetDocs(model.Package);
                        if (thisDocs != null)
                        {
                            docPath = "globalOperation:" + (model.Package.Length > 0 ? model.Package + ":" : "")
                                      + member.Name;
                            if (member.Access == Visibility.Public && !String.IsNullOrEmpty(member.Namespace) &&
                                member.Namespace != "public")
                            {
                                docPath += member.Namespace + ":";
                            }
                            if ((member.Flags & FlagType.Setter) > 0)
                            {
                                docPath += ":set";
                            }
                            else if ((member.Flags & FlagType.Getter) > 0)
                            {
                                docPath += ":get";
                            }

                            if (thisDocs.ContainsKey(docPath))
                            {
                                setDoc(thisDocs[docPath], member);
                            }
                        }

                        member.InFile         = model;
                        member.IsPackageLevel = true;
                        model.Members.Add(member);
                    }

                    AddImports(model, imports);
                }
            }

            if (privateClasses.Classes.Count > 0)
            {
                path.AddFile(privateClasses);
            }

            // some SWCs need manual fixes
            CustomFixes(path);

            // fake SWC (like 'playerglobal_rb.swc', only provides documentation)
            if (path.Files.Count == 1)
            {
                foreach (FileModel model in path.Files.Values)
                {
                    if (model.GetPublicClass().QualifiedName == "Empty")
                    {
                        path.Files.Clear();
                        break;
                    }
                }
            }
        }
Exemple #29
0
 /// <summary>
 /// Identifying a visitor ties all of their actions to an ID you
 /// recognize and records visitor traits you can segment by.
 /// </summary>
 ///
 /// <param name="userId">The visitor's identifier after they log in, or you know
 /// who they are. By
 /// explicitly identifying a user, you tie all of their actions to their identity.</param>
 ///
 /// <param name="traits">A dictionary with keys like "email", "name", “subscriptionPlan” or
 /// "friendCount”. You can segment your users by any trait you record.
 /// Pass in values in key-value format. String key, then its value
 /// { String, Integer, Boolean, Double, or Date are acceptable types for a value. } </param>
 ///
 /// <param name="context"> A dictionary with additional information thats related to the visit.
 /// Examples are userAgent, and IP address of the visitor.
 /// Feel free to pass in null if you don't have this information.</param>
 ///
 public void Identify(string userId, Traits traits, Context context)
 {
     Identify(userId, traits, null, context);
 }
Exemple #30
0
            public _Pokemon(PokemonTranslator pokemonTranslator, PokemonAvailability._Pokemon _availability, Traits traits, _Stats._MaxStats maxStats) :
                base(pokemonTranslator.Id, pokemonTranslator.Name, pokemonTranslator.Form)
            {
                family       = pokemonTranslator.CandyType;
                buddy_km     = (int)pokemonTranslator.PokemonSettings.km_buddy_distance;
                gender_ratio = pokemonTranslator.GenderRatio;
                rarity       = pokemonTranslator.Rarity;
                shiny        = _availability.shiny;
                ditto        = traits.CanBeDitto(pokemonTranslator);
                var egg = traits.GetEgg(pokemonTranslator);

                availability = (egg != null && string.Equals(_availability.availability, PokeConstants.Availability.HatchOnly)) ?
                               string.Format(PokeConstants.Availability.HatchOnlyFormat, egg.type) :
                               _availability.availability;

                Type = new PokeTypes(pokemonTranslator.Type1, pokemonTranslator.Type2);

                if (pokemonTranslator.EvolvesFromId > 0)
                {
                    EvolvesFrom = new EvolvesFrom(pokemonTranslator);
                }

                Stats = new _Stats(
                    new _Stats.IVScore(pokemonTranslator.PokemonSettings.stats.base_attack, pokemonTranslator.PokemonSettings.stats.base_defense, pokemonTranslator.PokemonSettings.stats.base_stamina),
                    new _Stats.Variation(pokemonTranslator.PokemonSettings.pokedex_height_m, pokemonTranslator.PokemonSettings.pokedex_height_m),
                    new _Stats.Variation(pokemonTranslator.PokemonSettings.pokedex_weight_kg, pokemonTranslator.PokemonSettings.pokedex_weight_kg),
                    new _Stats._Rates(Math.Min(pokemonTranslator.PokemonSettings.encounter.base_capture_rate, 1.0f), pokemonTranslator.PokemonSettings.encounter.base_flee_rate, pokemonTranslator.PokemonSettings.encounter.attack_probability, pokemonTranslator.PokemonSettings.encounter.dodge_probability),
                    maxStats);
            }
Exemple #31
0
 public void Dispose()
 {
     foreach (var r in AbilityRules.ToArray())
     {
         r.Dispose();
     }
     foreach (var sos in StellarObjectSizes.ToArray())
     {
         sos.Dispose();
     }
     foreach (var x in StellarAbilityTemplates.ToArray())
     {
         x.Dispose();
     }
     foreach (var sot in StellarObjectTemplates.ToArray())
     {
         sot.Dispose();
     }
     foreach (var t in Traits.ToArray())
     {
         t.Dispose();
     }
     foreach (var t in Technologies.ToArray())
     {
         t.Dispose();
     }
     foreach (var f in FacilityTemplates.ToArray())
     {
         f.Dispose();
     }
     foreach (var h in Hulls.ToArray())
     {
         h.Dispose();
     }
     foreach (var c in ComponentTemplates.ToArray())
     {
         c.Dispose();
     }
     foreach (var m in Mounts.ToArray())
     {
         m.Dispose();
     }
     foreach (var sst in StarSystemTemplates.ToArray())
     {
         sst.Dispose();
     }
     foreach (var gt in GalaxyTemplates.ToArray())
     {
         gt.Dispose();
     }
     foreach (var h in HappinessModels.ToArray())
     {
         h.Dispose();
     }
     foreach (var c in Cultures.ToArray())
     {
         c.Dispose();
     }
     foreach (var ai in EmpireAIs.ToArray())
     {
         ai.Dispose();
     }
     if (this == Current)
     {
         Current = null;
     }
 }
Exemple #32
0
 public Task SetTraits(Traits traits)
 {
     this.traits = traits;
     return TaskDone.Done;
 }
                public static Traits operator -(Traits a, Traits b)
                {
                    Traits r = new Traits();

                    r.str = a.str - b.str;
                    r.dex = a.dex - b.dex;
                    r.intel = a.intel - b.intel;
                    r.wis = a.wis - b.wis;
                    r.spd = a.spd - b.spd;
                    r.con = a.con - b.con;

                    return r;
                }
        /// <summary>
        /// Identifying a visitor ties all of their actions to an ID you
        /// recognize and records visitor traits you can segment by.
        /// </summary>
        ///
        /// <param name="userId">The visitor's identifier after they log in, or you know
        /// who they are. By
        /// explicitly identifying a user, you tie all of their actions to their identity.</param>
        ///
        /// <param name="traits">A dictionary with keys like "email", "name", “subscriptionPlan” or
        /// "friendCount”. You can segment your users by any trait you record.
        /// Pass in values in key-value format. String key, then its value
        /// { String, Integer, Boolean, Double, or Date are acceptable types for a value. } </param>
        ///
		/// <param name="options">Options allowing you to set timestamp, anonymousId, target integrations,
		/// and the context of th emessage.</param>
        ///
		public void Identify(string userId, Traits traits, Options options)
        {
			if (String.IsNullOrEmpty(userId))
				throw new InvalidOperationException("Please supply a valid userId to Identify.");

			Enqueue(new Identify(userId, traits, options));
        }
Exemple #35
0
        protected IEnumerable <SimTrait.Item> GetChoices(SimDescription me, int max)
        {
            List <SimTrait.Item> allOptions = new List <SimTrait.Item>();

            foreach (Trait trait in TraitManager.GetDictionaryTraits)
            {
                if (!trait.IsReward)
                {
                    continue;
                }

                if (me != null)
                {
                    if (mPreviousChoices.ContainsKey(trait.Guid))
                    {
                        continue;
                    }

                    if (me.TraitManager.HasElement(trait.Guid))
                    {
                        continue;
                    }
                    else if (!trait.TraitValidForAgeSpecies(CASUtils.CASAGSAvailabilityFlagsFromCASAgeGenderFlags(CASAgeGenderFlags.Adult | me.Species)))
                    {
                        continue;
                    }

                    switch (trait.Guid)
                    {
                    case TraitNames.ForeverYoung:
                        if (!me.AgingEnabled)
                        {
                            continue;
                        }
                        break;
                    }
                }

                if (Traits.IsObjectBaseReward(trait.Guid))
                {
                    if ((me != null) && (me.CreatedSim == null))
                    {
                        continue;
                    }
                }

                allOptions.Add(new SimTrait.Item(trait.Guid, trait.Score));
            }

            if (allOptions.Count == 0)
            {
                return(null);
            }

            string title = Name;

            if (me != null)
            {
                title = me.FullName + Common.NewLine + Common.LocalizeEAString(false, "Ui/Caption/HUD/RewardTraitsShopDialog:Available", new object[] { (int)me.mSpendableHappiness });
            }

            CommonSelection <SimTrait.Item> .Results selection = new CommonSelection <SimTrait.Item>(Name, title, allOptions).SelectMultiple(max);
            if ((selection == null) || (selection.Count == 0))
            {
                return(null);
            }

            if (me != null)
            {
                foreach (SimTrait.Item item in selection)
                {
                    mPreviousChoices[item.Value] = true;
                }
            }

            return(selection);
        }
		/// <summary>
		/// The `group` method lets you associate a user with a group. Be it a company, 
		/// organization, account, project, team or whatever other crazy name you came up 
		/// with for the same concept! It also lets you record custom traits about the 
		/// group, like industry or number of employees.
		/// </summary>
		///
		/// <param name="userId">The visitor's database identifier after they log in, or you know
		/// who they are. By explicitly grouping a user, you tie all of their actions to their group.</param>
		///
		/// <param name="groupId">The group's database identifier after they log in, or you know
		/// who they are.</param>
		///
		/// <param name="traits">A dictionary with group keys like "name", “subscriptionPlan”. 
		/// You can segment your users by any trait you record. Pass in values in key-value format. 
		/// String key, then its value { String, Integer, Boolean, Double, or Date are acceptable types for a value. } </param>
		///
		/// <param name="options">Options allowing you to set timestamp, anonymousId, target integrations,
		/// and the context of th emessage.</param>
		///
		public void Group(string userId, string groupId, Traits traits, Options options)
		{
			if (String.IsNullOrEmpty(userId))
				throw new InvalidOperationException("Please supply a valid userId to call #Group.");

			if (String.IsNullOrEmpty(groupId))
				throw new InvalidOperationException("Please supply a valid groupId to call #Group.");

			Enqueue(new Group(userId, groupId, traits, options));
		}
        /// <summary>
        /// Identifying a visitor ties all of their actions to an ID you
        /// recognize and records visitor traits you can segment by.
        /// </summary>
        ///
        /// <param name="userId">The visitor's identifier after they log in, or you know
        /// who they are. By
        /// explicitly identifying a user, you tie all of their actions to their identity.</param>
        ///
        /// <param name="traits">A dictionary with keys like "email", "name", “subscriptionPlan” or
        /// "friendCount”. You can segment your users by any trait you record.
        /// Pass in values in key-value format. String key, then its value
        /// { String, Integer, Boolean, Double, or Date are acceptable types for a value. } </param>
        ///
		/// <param name="options">Options allowing you to set timestamp, anonymousId, target integrations,
		/// and the context of th emessage.</param>
        ///
		public void Identify(string userId, Traits traits, Options options)
        {
            EnsureId(userId, options);

            Enqueue(new Identify(userId, traits, options));
        }
        public void Load(JSONCharakter jsonCharakter, List <ITalent> talentListe)
        {
            #region Nullprüfungen
            if (jsonCharakter == null)
            {
                throw new ArgumentNullException(nameof(jsonCharakter));
            }
            else if (talentListe == null)
            {
                throw new ArgumentNullException(nameof(talentListe));
            }
            if (jsonCharakter.MotherLanguages == null)
            {
                jsonCharakter.MotherLanguages = new Dictionary <Guid, bool>();
            }
            if (jsonCharakter.DeductionTalent == null)
            {
                jsonCharakter.DeductionTalent = new Dictionary <Guid, Guid>();
            }
            #endregion
            CreateNew(jsonCharakter.ID);
            Name = jsonCharakter.Name;
            #region Attribute Laden
            foreach (var item in jsonCharakter.AttributeBaseValue.Keys)
            {
                Attribute.SetAKTValue(item, jsonCharakter.AttributeBaseValue[item]);
            }
            #endregion
            #region Values Laden
            if (jsonCharakter.SettableValues != null)
            {
                foreach (var item in jsonCharakter.SettableValues)
                {
                    var settableValue = Values.UsedValues.Where(x => x.Name == item.Key).FirstOrDefault();
                    if (settableValue != null && typeof(AbstractSettableValue).IsAssignableFrom(settableValue.GetType()))
                    {
                        Values.SetAKTValue((AbstractSettableValue)settableValue, item.Value);
                    }
                }
            }
            #endregion
            #region Resources Laden
            //kein Laden notwendig
            #endregion
            #region Traits Laden
            if (jsonCharakter.Traits != null)
            {
                foreach (var item in jsonCharakter.Traits)
                {
                    var trait = new Trait
                    {
                        TraitType   = item.TraitType,
                        Description = item.Description,
                        GP          = item.GP,
                        Title       = item.Title,
                        Value       = item.Value,
                        APEarned    = item.APEarned,
                        APInvest    = item.APInvest
                    };
                    foreach (var innerItems in item.AttributeValues)
                    {
                        trait.SetValue(innerItems.Key, innerItems.Value);
                    }
                    foreach (var innerItems in item.ValueValues)
                    {
                        var value = GetValue(innerItems.Key);
                        if (value != null)
                        {
                            trait.SetValue(value, innerItems.Value);
                        }
                    }
                    foreach (var innerItems in item.ResourceValues)
                    {
                        var res = GetResource(innerItems.Key);
                        if (res != null)
                        {
                            trait.SetValue(res, innerItems.Value);
                        }
                    }

                    foreach (var innerItems in item.TawBonus)
                    {
                        var talent = talentListe.Where(x => x.ID == innerItems.Key).FirstOrDefault();
                        if (talent != null)
                        {
                            trait.SetTaWBonus(talent, innerItems.Value);
                        }
                    }
                    foreach (var innerItems in item.AtBonus)
                    {
                        var talent = talentListe.Where(x => x.ID == innerItems.Key).FirstOrDefault();
                        if (talent != null && typeof(AbstractTalentFighting).IsAssignableFrom(talent.GetType()))
                        {
                            trait.SetATBonus((AbstractTalentFighting)talent, innerItems.Value);
                        }
                    }
                    foreach (var innerItems in item.PaBonus)
                    {
                        var talent = talentListe.Where(x => x.ID == innerItems.Key).FirstOrDefault();
                        if (talent != null && typeof(AbstractTalentFighting).IsAssignableFrom(talent.GetType()))
                        {
                            trait.SetPABonus((AbstractTalentFighting)talent, innerItems.Value);
                        }
                    }
                    if (item.BLBonus != null)
                    {
                        foreach (var innerItems in item.BLBonus)
                        {
                            var talent = talentListe.Where(x => x.ID == innerItems.Key).FirstOrDefault();
                            if (talent != null && typeof(AbstractTalentFighting).IsAssignableFrom(talent.GetType()))
                            {
                                trait.SetBLBonus((AbstractTalentFighting)talent, innerItems.Value);
                            }
                        }
                    }

                    Traits.AddTrait(trait);
                }
            }
            #endregion
            #region Talente Laden
            foreach (var item in jsonCharakter.TalentTAW)
            {
                var talent = talentListe.Where(x => x.ID == item.Key).FirstOrDefault();
                if (talent != null)
                {
                    Talente.SetTAW(talent, item.Value);
                }
                else
                {
                    TalentMissing(jsonCharakter, item.Key);
                }
            }
            foreach (var item in jsonCharakter.TalentAT)
            {
                var talent = talentListe.Where(x => x.ID == item.Key).FirstOrDefault();
                if (talent != null && typeof(AbstractTalentFighting).IsAssignableFrom(talent.GetType()))
                {
                    Talente.SetFightingValue(FightingValue.Attacke, (AbstractTalentFighting)talent, item.Value);
                }
                else
                {
                    TalentMissing(jsonCharakter, item.Key);
                }
            }
            foreach (var item in jsonCharakter.TalentPA)
            {
                var talent = talentListe.Where(x => x.ID == item.Key).FirstOrDefault();
                if (talent != null && typeof(AbstractTalentFighting).IsAssignableFrom(talent.GetType()))
                {
                    Talente.SetFightingValue(FightingValue.Parade, (AbstractTalentFighting)talent, item.Value);
                }
                else
                {
                    TalentMissing(jsonCharakter, item.Key);
                }
            }
            if (jsonCharakter.TalentBL != null)
            {
                foreach (var item in jsonCharakter.TalentBL)
                {
                    var talent = talentListe.Where(x => x.ID == item.Key).FirstOrDefault();
                    if (talent != null && typeof(AbstractTalentFighting).IsAssignableFrom(talent.GetType()))
                    {
                        Talente.SetFightingValue(FightingValue.Blocken, (AbstractTalentFighting)talent, item.Value);
                    }
                    else
                    {
                        TalentMissing(jsonCharakter, item.Key);
                    }
                }
            }
            foreach (var item in jsonCharakter.MotherLanguages)
            {
                var talent = talentListe.Where(x => x.ID == item.Key).FirstOrDefault();
                Talente.SetMother((TalentSpeaking)talent, item.Value);
            }
            foreach (var item in jsonCharakter.DeductionTalent)
            {
                try
                {
                    var talent           = talentListe.Where(x => x.ID == item.Key).FirstOrDefault();
                    var talentDeductions = talent.Deductions.Where(x => x.GetType().IsAssignableFrom(typeof(TalentDeductionTalent))).Cast <TalentDeductionTalent>().ToList();
                    var deduction        = talentDeductions.Where(x => x.Talent.ID == item.Value).FirstOrDefault();
                    Talente.SetDeduction(talent, deduction);
                }
                catch (Exception ex)
                {
                    LogStrings.LogString(LogLevel.ErrorLog, "Fehler beim Laden einer Deduction: " + item.Key + " " + item.Value);
                }
            }
            #endregion
            #region Descriptoren Laden
            foreach (var item in jsonCharakter.Descriptors)
            {
                this.Descriptions.AddDescripton(new Descriptor
                {
                    Priority         = item.Priority,
                    DescriptionText  = item.DescriptionText,
                    DescriptionTitle = item.DescriptionTitle
                });
            }
            #endregion
            #region Money
            #region Money
            if (jsonCharakter.Money != null)
            {
                var money = jsonCharakter.Money;
                Money.Bank = money.Bank;
                Money.D    = money.D;
                Money.H    = money.H;
                Money.K    = money.K;
                Money.S    = money.S;
            }
            #endregion
            #endregion
            #region Anderes Laden
            Other.APEarned   = jsonCharakter.AktAP;
            Other.APInvested = jsonCharakter.InvestAP;
            #endregion
        }
Exemple #39
0
 public Drawback(IObjectStore data) : this()
 {
     Name      = data.GetString("name");
     Weighting = data.GetInteger("weight");
     Traits.Add(data.GetListOptional("traits"));
 }
 /// <summary>
 /// Constructor
 /// </summary>
 public CountryResponse(Continent continent       = null, Country country = null, Model.MaxMind maxMind = null,
                        Country registeredCountry = null, RepresentedCountry representedCountry = null, Traits traits = null)
     : base(continent, country, maxMind, registeredCountry, representedCountry, traits)
 {
 }
 /// <summary>
 /// Identifying a visitor ties all of their actions to an ID you
 /// recognize and records visitor traits you can segment by.
 /// </summary>
 ///
 /// <param name="userId">The visitor's identifier after they log in, or you know
 /// who they are. By
 /// explicitly identifying a user, you tie all of their actions to their identity.</param>
 ///
 /// <param name="traits">A dictionary with keys like "email", "name", “subscriptionPlan” or
 /// "friendCount”. You can segment your users by any trait you record.
 /// Pass in values in key-value format. String key, then its value
 /// { String, Integer, Boolean, Double, or Date are acceptable types for a value. } </param>
 ///
 public void Identify(string userId, Traits traits)
 {
     Identify(userId, traits, null);
 }
 public static Box Aabb(Segment seg, Traits traits)
 {
     return(Aabb(seg[0], seg[1], traits.Unit));
 }
		/// <summary>
		/// The `group` method lets you associate a user with a group. Be it a company, 
		/// organization, account, project, team or whatever other crazy name you came up 
		/// with for the same concept! It also lets you record custom traits about the 
		/// group, like industry or number of employees.
		/// </summary>
		///
		/// <param name="userId">The visitor's database identifier after they log in, or you know
		/// who they are. By explicitly grouping a user, you tie all of their actions to their group.</param>
		///
		/// <param name="groupId">The group's database identifier after they log in, or you know
		/// who they are.</param>
		///
		/// <param name="traits">A dictionary with group keys like "name", “subscriptionPlan”. 
		/// You can segment your users by any trait you record. Pass in values in key-value format. 
		/// String key, then its value { String, Integer, Boolean, Double, or Date are acceptable types for a value. } </param>
		///
		public void Group(string userId, string groupId, Traits traits)
		{
			Group (userId, groupId, traits, null);
		}
 public static Box Aabb(Linestring linestring, Traits traits)
 {
     return(Aabb(linestring, false, traits.Unit));
 }
 public static Box Envelope(Segment seg, Traits traits)
 {
     return(Envelope(seg[0], seg[1], traits));
 }
Exemple #46
0
 public void AddTrait(Trait t)
 {
     Traits.Add(t);
     AreModifiedAttributesCurrent = false;
 }
		private static void UpdateSegmentIOInformationOnThisUser()
		{
			_traits = new Traits()
			{
				{"lastName", _userInfo.LastName},
				{"firstName", _userInfo.FirstName},
				{"Email", _userInfo.Email},
				{"UILanguage", _userInfo.UILanguageCode},
	            //segmentio collects this in context, but doesn't seem to convey it to MixPanel
	            {"$browser", GetOperatingSystemLabel()}
			};
			foreach (var property in _userInfo.OtherProperties)
			{
				if (!string.IsNullOrWhiteSpace(property.Value))
					_traits.Add(property.Key, property.Value);
			}

			if (!AllowTracking)
				return;

			Segment.Analytics.Client.Identify(AnalyticsSettings.Default.IdForAnalytics, _traits, _options);
		}
Exemple #48
0
 public Task SetTraits(Traits traits)
 {
     throw new NotImplementedException();
 }