예제 #1
0
    public static ArtifactTypes CastATortifact <T>(this T input)
    {
        string inputstring = "";

        try
        {
            inputstring = input.ToString();
        }
        catch (Exception e)
        {
            Debug.Log(e);
            Debug.Log("Input is not a defined Enum");
        }
        if (inputstring.Length != 0)
        {
            try
            {
                ArtifactTypes returnvalue;
                ArtifactTypes artifact = (ArtifactTypes)Enum.Parse(typeof(ArtifactTypes), inputstring);
                if (Enum.IsDefined(typeof(ArtifactTypes), artifact))
                {
                    returnvalue = artifact;
                    return(returnvalue);
                }
            }
            catch (ArgumentException)
            {
                Debug.Log(input + "is not an Artifact Type");
            }
        }
        return(ArtifactTypes.NULL);
    }
예제 #2
0
    public static T1 CastFromArtifact <T1>(this ArtifactTypes input, T1 defaultvalue)
    {
        string inputstring = "";

        try
        {
            inputstring = input.ToString();
        }
        catch (Exception e)
        {
            Debug.Log(e);
            Debug.Log("Input is not a defined Enum");
        }
        if (inputstring.Length != 0)
        {
            try
            {
                T1 returnvalue;
                T1 artifact = (T1)Enum.Parse(typeof(T1), inputstring);
                if (Enum.IsDefined(typeof(T1), artifact))
                {
                    returnvalue = artifact;
                    return(returnvalue);
                }
            }
            catch (ArgumentException)
            {
                Debug.Log(input + "is not of proper Type");
            }
        }
        return(defaultvalue);
    }
예제 #3
0
 /// <summary>
 /// Instantiates an instance of <see cref="ProxiesBuilder"/>
 /// </summary>
 /// <param name="templateLoader"></param>
 /// <param name="artifacts">The discovered types of artifacts in the Bounded Context's assemblies</param>
 /// <param name="artifactTypes"></param>
 /// <param name="buildMessages"></param>
 public ProxiesBuilder(TemplateLoader templateLoader, Type[] artifacts, ArtifactTypes artifactTypes, IBuildMessages buildMessages)
 {
     _templateLoader = templateLoader;
     _artifacts      = artifacts;
     _artifactTypes  = artifactTypes;
     _buildMessages  = buildMessages;
 }
예제 #4
0
 private void Start()
 {
     this.mCurrentArtifactParam = DataSource.FindDataOfClass <ArtifactParam>(((Component)this).get_gameObject(), (ArtifactParam)null);
     this.mCurrentArtifactData  = DataSource.FindDataOfClass <ArtifactData>(((Component)this).get_gameObject(), (ArtifactData)null);
     this.mCurrentUnit          = DataSource.FindDataOfClass <UnitData>(((Component)this).get_gameObject(), (UnitData)null);
     this.mCurrentEquipSlot     = DataSource.FindDataOfClass <ArtifactTypes>(((Component)this).get_gameObject(), ArtifactTypes.None);
     this.mCurrentJob           = DataSource.FindDataOfClass <JobData>(((Component)this).get_gameObject(), (JobData)null);
     if (this.mCurrentArtifactParam == null)
     {
         this.mCurrentArtifactParam           = ArtifactDetailWindow.s_ArtifactParam;
         ArtifactDetailWindow.s_ArtifactParam = (ArtifactParam)null;
         if (this.mCurrentArtifactParam != null)
         {
             DataSource.Bind <ArtifactParam>(((Component)this).get_gameObject(), this.mCurrentArtifactParam);
         }
     }
     if (this.mCurrentArtifactParam == null && this.mCurrentArtifactData != null)
     {
         this.mCurrentArtifactParam = this.mCurrentArtifactData.ArtifactParam;
     }
     if (this.mCurrentArtifactParam == null)
     {
         return;
     }
     ArtifactSetList.SetSelectedArtifactParam(this.mCurrentArtifactParam);
     this.RefreshView();
 }
        /// <summary>
        /// Instantiates an instance of <see cref="ArtifactsConfigurationBuilder"/>
        /// </summary>
        /// <param name="artifacts">The discovered types of artifacts in the Bounded Context's assemblies</param>
        /// <param name="currentArtifactsConfiguration">The current <see cref="ArtifactsConfiguration"/> that will be used as a base for building a valid updated configuration that is returned from Build</param>
        /// <param name="artifactTypes">A list of <see cref="ArtifactType"/> which represents the different artifact types</param>
        /// <param name="buildMessages"></param>
        public ArtifactsConfigurationBuilder(Type[] artifacts, ArtifactsConfiguration currentArtifactsConfiguration, ArtifactTypes artifactTypes, IBuildMessages buildMessages)
        {
            _artifacts     = artifacts;
            _buildMessages = buildMessages;

            _artifactTypes = artifactTypes;
            _currentArtifactsConfiguration = currentArtifactsConfiguration;
        }
예제 #6
0
 /// <summary>
 /// Simply calls <see cref="ArtifactType.PushAsync(IEnumerable{ArtifactPush})"/> on each <see cref="ArtifactTypes"/>
 /// with their correct typed artifacts.
 /// </summary>
 public Task PushArtifactsAsync(IEnumerable <ArtifactPush>?pushes = null)
 {
     if (pushes == null)
     {
         pushes = GetArtifactPushList();
     }
     return(Task.WhenAll(ArtifactTypes.Select(t => t.PushAsync(pushes.Where(a => a.Feed.ArtifactType == t)))));
 }
예제 #7
0
 /// <summary>
 /// Simply calls <see cref="ArtifactType.PushAsync(IEnumerable{ArtifactPush})"/> on each <see cref="ArtifactTypes"/>
 /// with their correct typed artifacts.
 /// </summary>
 public void PushArtifacts(IEnumerable <ArtifactPush> pushes = null)
 {
     if (pushes == null)
     {
         pushes = GetArtifactPushList();
     }
     Task[] tasks = ArtifactTypes.Select(t => t.PushAsync(pushes.Where(a => a.Feed.ArtifactType == t))).ToArray();
     Task.WaitAll(tasks);
 }
예제 #8
0
 public static int GetArtifactSlotIndex(ArtifactTypes type)
 {
     for (int index = 0; index < JobData.ARTIFACT_SLOT_TYPES.Length; ++index)
     {
         if (type == JobData.ARTIFACT_SLOT_TYPES[index])
         {
             return(index);
         }
     }
     return(-1);
 }
 /// <summary>
 /// Gets a read only list of all the pushes of artifacts for all <see cref="ArtifactType"/>.
 /// </summary>
 /// <param name="reset">
 /// True to recompute the list from all <see cref="ArtifactType.GetPushListAsync(bool)"/>
 /// (without reseting them).
 /// </param>
 /// <returns>The set of pushes.</returns>
 public IReadOnlyList <ArtifactPush> GetArtifactPushList(bool reset = false)
 {
     if (_artifactPushes == null || reset)
     {
         _artifactPushes = new List <ArtifactPush>();
         var tasks = ArtifactTypes.Select(f => f.GetPushListAsync()).ToArray();
         Task.WaitAll(tasks);
         foreach (var p in tasks.Select(t => t.Result))
         {
             _artifactPushes.AddRange(p);
         }
     }
     return(_artifactPushes);
 }
예제 #10
0
        private string[] SetEquipArtifactFilters(ArtifactData data, ArtifactTypes type = ArtifactTypes.None)
        {
            List <string> stringList         = new List <string>();
            int           jobIndex           = this.mCurrentUnit.JobIndex;
            UnitData      unitDataByUniqueId = MonoSingleton <GameManager> .GetInstanceDirect().Player.FindUnitDataByUniqueID(this.mCurrentUnit.UniqueID);

            if (unitDataByUniqueId == null)
            {
                return(stringList.ToArray());
            }
            JobData job = unitDataByUniqueId.Jobs[jobIndex];

            ArtifactData[] artifactDatas = job.ArtifactDatas;
            for (int index = 0; index < RarityParam.MAX_RARITY; ++index)
            {
                stringList.Add("RARE:" + (object)index);
            }
            if (artifactDatas != null)
            {
                for (int index = 0; index < artifactDatas.Length; ++index)
                {
                    if (artifactDatas[index] != null && (data == null || (long)artifactDatas[index].UniqueID != (long)data.UniqueID))
                    {
                        stringList.Add("SAME:" + artifactDatas[index].ArtifactParam.iname);
                    }
                }
            }
            for (int index = 0; index < job.ArtifactDatas.Length; ++index)
            {
                ArtifactData artifactData = job.ArtifactDatas[index];
                if (artifactData == null || artifactData.ArtifactParam.type == ArtifactTypes.Accessory)
                {
                    stringList.Add("TYPE:" + (object)(index + 1));
                }
                else if (artifactData.ArtifactParam.type == type)
                {
                    stringList.Add("TYPE:" + (object)(index + 1));
                }
            }
            return(stringList.ToArray());
        }
예제 #11
0
 public bool Deserialize(JSON_ArtifactParam json)
 {
     if (json == null)
     {
         return(false);
     }
     this.iname     = json.iname;
     this.name      = json.name;
     this.expr      = json.expr;
     this.flavor    = json.flavor;
     this.spec      = json.spec;
     this.asset     = json.asset;
     this.voice     = json.voice;
     this.icon      = json.icon;
     this.tag       = json.tag;
     this.type      = (ArtifactTypes)json.type;
     this.rareini   = json.rini;
     this.raremax   = json.rmax;
     this.kakera    = json.kakera;
     this.maxnum    = json.maxnum;
     this.is_create = json.notsmn == 0;
     this.skills    = (string[])null;
     if (json.skills != null)
     {
         this.skills = new string[json.skills.Length];
         for (int index = 0; index < json.skills.Length; ++index)
         {
             this.skills[index] = json.skills[index];
         }
     }
     Array.Clear((Array)this.equip_effects, 0, this.equip_effects.Length);
     this.equip_effects[0] = json.equip1;
     this.equip_effects[1] = json.equip2;
     this.equip_effects[2] = json.equip3;
     this.equip_effects[3] = json.equip4;
     this.equip_effects[4] = json.equip5;
     Array.Clear((Array)this.attack_effects, 0, this.attack_effects.Length);
     this.attack_effects[0] = json.attack1;
     this.attack_effects[1] = json.attack2;
     this.attack_effects[2] = json.attack3;
     this.attack_effects[3] = json.attack4;
     this.attack_effects[4] = json.attack5;
     this.abil_inames       = (string[])null;
     this.abil_levels       = (int[])null;
     this.abil_rareties     = (int[])null;
     this.abil_shows        = (int[])null;
     this.abil_conds        = (string[])null;
     if (json.abils != null && json.ablvs != null && (json.abrares != null && json.abshows != null) && (json.abconds != null && json.abils.Length == json.ablvs.Length && (json.abils.Length == json.abrares.Length && json.abils.Length == json.abshows.Length)) && json.abils.Length == json.abconds.Length)
     {
         this.abil_inames   = new string[json.abils.Length];
         this.abil_levels   = new int[json.ablvs.Length];
         this.abil_rareties = new int[json.abrares.Length];
         this.abil_shows    = new int[json.abshows.Length];
         this.abil_conds    = new string[json.abconds.Length];
         for (int index = 0; index < json.ablvs.Length; ++index)
         {
             this.abil_inames[index]   = json.abils[index];
             this.abil_levels[index]   = json.ablvs[index];
             this.abil_rareties[index] = json.abrares[index];
             this.abil_shows[index]    = json.abshows[index];
             this.abil_conds[index]    = json.abconds[index];
         }
     }
     this.kcoin             = json.kc;
     this.tcoin             = json.tc;
     this.acoin             = json.ac;
     this.mcoin             = json.mc;
     this.pcoin             = json.pp;
     this.buy               = json.buy;
     this.sell              = json.sell;
     this.enhance_cost      = json.ecost;
     this.condition_lv      = json.eqlv;
     this.condition_sex     = (ESex)json.sex;
     this.condition_birth   = json.birth;
     this.condition_element = (EElement)json.elem;
     this.condition_units   = (string[])null;
     this.condition_jobs    = (string[])null;
     this.condition_raremin = (OInt)json.eqrmin;
     this.condition_raremax = (OInt)json.eqrmax;
     if (json.units != null && json.units.Length > 0)
     {
         this.condition_units = new string[json.units.Length];
         for (int index = 0; index < json.units.Length; ++index)
         {
             this.condition_units[index] = json.units[index];
         }
     }
     if (json.jobs != null && json.jobs.Length > 0)
     {
         this.condition_jobs = new string[json.jobs.Length];
         for (int index = 0; index < json.jobs.Length; ++index)
         {
             this.condition_jobs[index] = json.jobs[index];
         }
     }
     return(true);
 }
예제 #12
0
        public static object[] FilterArtifacts(object[] artifacts, string[] filter)
        {
            if (filter == null)
            {
                return(artifacts);
            }
            int           num1       = 0;
            int           num2       = 0;
            bool          flag1      = false;
            List <string> stringList = new List <string>();
            string        s          = (string)null;

            for (int index = 0; index < filter.Length; ++index)
            {
                if (ArtifactList.GetValue(filter[index], "RARE:", ref s))
                {
                    int result;
                    if (int.TryParse(s, out result))
                    {
                        num1 |= 1 << result;
                    }
                }
                else if (ArtifactList.GetValue(filter[index], "TYPE:", ref s))
                {
                    try
                    {
                        ArtifactTypes artifactTypes = (ArtifactTypes)Enum.Parse(typeof(ArtifactTypes), s, true);
                        num2 |= 1 << (int)(artifactTypes & (ArtifactTypes)31 & (ArtifactTypes)31);
                    }
                    catch
                    {
                        if (GameUtility.IsDebugBuild)
                        {
                            Debug.LogError((object)("Unknown element type: " + s));
                        }
                    }
                }
                else if (ArtifactList.GetValue(filter[index], "FAV:", ref s))
                {
                    flag1 = true;
                }
                else if (ArtifactList.GetValue(filter[index], "SAME:", ref s))
                {
                    stringList.Add(s);
                }
            }
            List <ArtifactData> artifactDataList = new List <ArtifactData>();

            for (int index = 0; index < artifacts.Length; ++index)
            {
                artifactDataList.Add(artifacts[index] as ArtifactData);
            }
            for (int index1 = artifactDataList.Count - 1; index1 >= 0; --index1)
            {
                ArtifactData artifactData = artifactDataList[index1];
                if (flag1 && !artifactData.IsFavorite)
                {
                    artifactDataList.RemoveAt(index1);
                }
                else
                {
                    bool flag2 = false;
                    for (int index2 = 0; index2 < stringList.Count; ++index2)
                    {
                        if (artifactData.ArtifactParam.iname == stringList[index2])
                        {
                            flag2 = true;
                            break;
                        }
                    }
                    if (flag2 || (1 << (int)artifactData.Rarity & num1) == 0 || (1 << (int)(artifactData.ArtifactParam.type & (ArtifactTypes)31) & num2) == 0)
                    {
                        artifactDataList.RemoveAt(index1);
                    }
                }
            }
            return(artifactDataList.ConvertAll <object>((Converter <ArtifactData, object>)(o => (object)o)).ToArray());
        }
예제 #13
0
        private void OnSelect(ArtifactData artifact, ArtifactTypes type = ArtifactTypes.None)
        {
            // ISSUE: object of a compiler-generated type is created
            // ISSUE: variable of a compiler-generated type
            ArtifactSlots.\u003COnSelect\u003Ec__AnonStorey2FC selectCAnonStorey2Fc = new ArtifactSlots.\u003COnSelect\u003Ec__AnonStorey2FC();
            if (artifact != null)
            {
                PlayerData player = MonoSingleton <GameManager> .GetInstanceDirect().Player;

                UnitData unit = (UnitData)null;
                JobData  job  = (JobData)null;
                if (player.FindOwner(artifact, out unit, out job))
                {
                    for (int slot = 0; slot < job.Artifacts.Length; ++slot)
                    {
                        if (job.Artifacts[slot] == (long)artifact.UniqueID)
                        {
                            job.SetEquipArtifact(slot, (ArtifactData)null);
                            break;
                        }
                    }
                }
            }
            // ISSUE: reference to a compiler-generated field
            selectCAnonStorey2Fc.view_artifact_datas = new List <ArtifactData>()
            {
                DataSource.FindDataOfClass <ArtifactData>(((Component)this.ArtifactSlot).get_gameObject(), (ArtifactData)null),
                DataSource.FindDataOfClass <ArtifactData>(((Component)this.ArtifactSlot2).get_gameObject(), (ArtifactData)null),
                DataSource.FindDataOfClass <ArtifactData>(((Component)this.ArtifactSlot3).get_gameObject(), (ArtifactData)null)
            }.ToArray();
            int artifactSlotIndex = JobData.GetArtifactSlotIndex(type);
            List <ArtifactData> artifactDataList1 = new List <ArtifactData>((IEnumerable <ArtifactData>) this.mCurrentUnit.CurrentJob.ArtifactDatas);

            // ISSUE: reference to a compiler-generated field
            if (artifactDataList1.Count != selectCAnonStorey2Fc.view_artifact_datas.Length)
            {
                return;
            }
            // ISSUE: object of a compiler-generated type is created
            // ISSUE: variable of a compiler-generated type
            ArtifactSlots.\u003COnSelect\u003Ec__AnonStorey2FD selectCAnonStorey2Fd = new ArtifactSlots.\u003COnSelect\u003Ec__AnonStorey2FD();
            // ISSUE: reference to a compiler-generated field
            selectCAnonStorey2Fd.\u003C\u003Ef__ref\u0024764 = selectCAnonStorey2Fc;
            // ISSUE: reference to a compiler-generated field
            // ISSUE: reference to a compiler-generated field
            // ISSUE: reference to a compiler-generated field
            // ISSUE: reference to a compiler-generated field
            for (selectCAnonStorey2Fd.i = 0; selectCAnonStorey2Fd.i < selectCAnonStorey2Fc.view_artifact_datas.Length; ++selectCAnonStorey2Fd.i)
            {
                // ISSUE: reference to a compiler-generated field
                // ISSUE: reference to a compiler-generated field
                // ISSUE: reference to a compiler-generated method
                if (selectCAnonStorey2Fc.view_artifact_datas[selectCAnonStorey2Fd.i] != null && artifactDataList1.Find(new Predicate <ArtifactData>(selectCAnonStorey2Fd.\u003C\u003Em__30A)) == null)
                {
                    return;
                }
            }
            // ISSUE: reference to a compiler-generated field
            selectCAnonStorey2Fc.view_artifact_datas[artifactSlotIndex] = artifact;
            List <ArtifactData> artifactDataList2 = new List <ArtifactData>();

            for (int slot = 0; slot < this.mCurrentUnit.CurrentJob.ArtifactDatas.Length; ++slot)
            {
                this.mCurrentUnit.CurrentJob.SetEquipArtifact(slot, (ArtifactData)null);
            }
            // ISSUE: reference to a compiler-generated field
            for (int index = 0; index < selectCAnonStorey2Fc.view_artifact_datas.Length; ++index)
            {
                // ISSUE: reference to a compiler-generated field
                if (selectCAnonStorey2Fc.view_artifact_datas[index] != null)
                {
                    // ISSUE: reference to a compiler-generated field
                    if (selectCAnonStorey2Fc.view_artifact_datas[index].ArtifactParam.type == ArtifactTypes.Accessory)
                    {
                        // ISSUE: reference to a compiler-generated field
                        artifactDataList2.Add(selectCAnonStorey2Fc.view_artifact_datas[index]);
                    }
                    else
                    {
                        // ISSUE: reference to a compiler-generated field
                        // ISSUE: reference to a compiler-generated field
                        this.mCurrentUnit.CurrentJob.SetEquipArtifact(JobData.GetArtifactSlotIndex(selectCAnonStorey2Fc.view_artifact_datas[index].ArtifactParam.type), selectCAnonStorey2Fc.view_artifact_datas[index]);
                    }
                }
            }
            for (int index = 0; index < artifactDataList2.Count; ++index)
            {
                for (int slot = 0; slot < this.mCurrentUnit.CurrentJob.ArtifactDatas.Length; ++slot)
                {
                    if (this.mCurrentUnit.CurrentJob.ArtifactDatas[slot] == null)
                    {
                        this.mCurrentUnit.CurrentJob.SetEquipArtifact(slot, artifactDataList2[index]);
                        break;
                    }
                }
            }
            this.mCurrentUnit.UpdateArtifact(this.mCurrentUnit.JobIndex, true);
            Network.RequestAPI((WebAPI) new ReqArtifactSet(this.mCurrentUnit.UniqueID, this.mCurrentUnit.CurrentJob.UniqueID, this.mCurrentUnit.CurrentJob.Artifacts, new Network.ResponseCallback(this.OnArtifactSetResult)), false);
        }
예제 #14
0
        private void OnClick(GenericSlot slot, bool interactable)
        {
            if (!interactable)
            {
                return;
            }
            GameObject gameObject1 = AssetManager.Load <GameObject>(ArtifactSlots.ArtiSelectPath);

            if (UnityEngine.Object.op_Equality((UnityEngine.Object)gameObject1, (UnityEngine.Object)null))
            {
                return;
            }
            GameObject gameObject2 = (GameObject)UnityEngine.Object.Instantiate <GameObject>((M0)gameObject1);

            if (UnityEngine.Object.op_Equality((UnityEngine.Object)gameObject2, (UnityEngine.Object)null))
            {
                return;
            }
            ArtifactWindow component = (ArtifactWindow)gameObject2.GetComponent <ArtifactWindow>();

            if (UnityEngine.Object.op_Equality((UnityEngine.Object)component, (UnityEngine.Object)null))
            {
                return;
            }
            if (UnityEngine.Object.op_Inequality((UnityEngine.Object)slot, (UnityEngine.Object)null))
            {
                if (UnityEngine.Object.op_Equality((UnityEngine.Object)slot, (UnityEngine.Object) this.ArtifactSlot))
                {
                    component.SelectArtifactSlot = ArtifactTypes.Arms;
                }
                else if (UnityEngine.Object.op_Equality((UnityEngine.Object)slot, (UnityEngine.Object) this.ArtifactSlot2))
                {
                    component.SelectArtifactSlot = ArtifactTypes.Armor;
                }
                else if (UnityEngine.Object.op_Equality((UnityEngine.Object)slot, (UnityEngine.Object) this.ArtifactSlot3))
                {
                    component.SelectArtifactSlot = ArtifactTypes.Accessory;
                }
            }
            component.OnEquip = new ArtifactWindow.EquipEvent(this.OnSelect);
            component.SetOwnerUnit(this.mCurrentUnit, this.mCurrentUnit.JobIndex);
            if (!UnityEngine.Object.op_Inequality((UnityEngine.Object)component.ArtifactList, (UnityEngine.Object)null))
            {
                return;
            }
            if (component.ArtifactList.TestOwner != this.mCurrentUnit)
            {
                component.ArtifactList.TestOwner = this.mCurrentUnit;
            }
            ArtifactData dataOfClass = DataSource.FindDataOfClass <ArtifactData>(((Component)slot).get_gameObject(), (ArtifactData)null);
            long         iid         = 0;

            if (this.mCurrentUnit.CurrentJob.Artifacts != null)
            {
                long num = (long)(dataOfClass == null ? (OLong)0L : dataOfClass.UniqueID);
                for (int index = 0; index < this.mCurrentUnit.CurrentJob.Artifacts.Length; ++index)
                {
                    if (this.mCurrentUnit.CurrentJob.Artifacts[index] != 0L & this.mCurrentUnit.CurrentJob.Artifacts[index] == num)
                    {
                        iid = this.mCurrentUnit.CurrentJob.Artifacts[index];
                        break;
                    }
                }
            }
            ArtifactData artifactData = (ArtifactData)null;

            if (iid != 0L)
            {
                artifactData = MonoSingleton <GameManager> .Instance.Player.FindArtifactByUniqueID(iid);
            }
            if (artifactData != null)
            {
                component.ArtifactList.SetSelection((object[])new ArtifactData[1]
                {
                    artifactData
                }, true, true);
            }
            else
            {
                component.ArtifactList.SetSelection((object[])new ArtifactData[0], true, true);
            }
            ArtifactTypes type = dataOfClass == null ? ArtifactTypes.None : dataOfClass.ArtifactParam.type;

            component.ArtifactList.FiltersPriority = this.SetEquipArtifactFilters(dataOfClass, type);
        }
예제 #15
0
        private void OnSelect(ArtifactData artifact, ArtifactTypes type = ArtifactTypes.None)
        {
            if (artifact != null)
            {
                PlayerData player = MonoSingleton <GameManager> .GetInstanceDirect().Player;

                UnitData unit = (UnitData)null;
                JobData  job1 = (JobData)null;
                if (player.FindOwner(artifact, out unit, out job1))
                {
                    for (int slot = 0; slot < job1.Artifacts.Length; ++slot)
                    {
                        if (job1.Artifacts[slot] == (long)artifact.UniqueID)
                        {
                            job1.SetEquipArtifact(slot, (ArtifactData)null);
                            break;
                        }
                    }
                    if (this.mCurrentUnit.UniqueID == unit.UniqueID)
                    {
                        JobData jobData = (JobData)null;
                        foreach (JobData job2 in this.mCurrentUnit.Jobs)
                        {
                            if (job2.UniqueID == job1.UniqueID)
                            {
                                jobData = job2;
                            }
                        }
                        if (jobData != null)
                        {
                            for (int slot = 0; slot < jobData.Artifacts.Length; ++slot)
                            {
                                if (jobData.Artifacts[slot] == (long)artifact.UniqueID)
                                {
                                    jobData.SetEquipArtifact(slot, (ArtifactData)null);
                                    break;
                                }
                            }
                        }
                    }
                }
            }
            ArtifactData[] view_artifact_datas = new List <ArtifactData>()
            {
                DataSource.FindDataOfClass <ArtifactData>(((Component)this.ArtifactSlot).get_gameObject(), (ArtifactData)null),
                DataSource.FindDataOfClass <ArtifactData>(((Component)this.ArtifactSlot2).get_gameObject(), (ArtifactData)null),
                DataSource.FindDataOfClass <ArtifactData>(((Component)this.ArtifactSlot3).get_gameObject(), (ArtifactData)null)
            }.ToArray();
            int artifactSlotIndex = JobData.GetArtifactSlotIndex(type);
            List <ArtifactData> artifactDataList1 = new List <ArtifactData>((IEnumerable <ArtifactData>) this.mCurrentUnit.CurrentJob.ArtifactDatas);

            if (artifactDataList1.Count != view_artifact_datas.Length)
            {
                return;
            }
            for (int i = 0; i < view_artifact_datas.Length; ++i)
            {
                if (view_artifact_datas[i] != null && artifactDataList1.Find((Predicate <ArtifactData>)(x =>
                {
                    if (x != null)
                    {
                        return((long)x.UniqueID == (long)view_artifact_datas[i].UniqueID);
                    }
                    return(false);
                })) == null)
                {
                    return;
                }
            }
            view_artifact_datas[artifactSlotIndex] = artifact;
            List <ArtifactData> artifactDataList2 = new List <ArtifactData>();

            for (int slot = 0; slot < this.mCurrentUnit.CurrentJob.ArtifactDatas.Length; ++slot)
            {
                this.mCurrentUnit.CurrentJob.SetEquipArtifact(slot, (ArtifactData)null);
            }
            for (int index = 0; index < view_artifact_datas.Length; ++index)
            {
                if (view_artifact_datas[index] != null)
                {
                    if (view_artifact_datas[index].ArtifactParam.type == ArtifactTypes.Accessory)
                    {
                        artifactDataList2.Add(view_artifact_datas[index]);
                    }
                    else
                    {
                        this.mCurrentUnit.CurrentJob.SetEquipArtifact(JobData.GetArtifactSlotIndex(view_artifact_datas[index].ArtifactParam.type), view_artifact_datas[index]);
                    }
                }
            }
            for (int index = 0; index < artifactDataList2.Count; ++index)
            {
                for (int slot = 0; slot < this.mCurrentUnit.CurrentJob.ArtifactDatas.Length; ++slot)
                {
                    if (this.mCurrentUnit.CurrentJob.ArtifactDatas[slot] == null)
                    {
                        this.mCurrentUnit.CurrentJob.SetEquipArtifact(slot, artifactDataList2[index]);
                        break;
                    }
                }
            }
            this.mCurrentUnit.UpdateArtifact(this.mCurrentUnit.JobIndex, true, true);
            Network.RequestAPI((WebAPI) new ReqArtifactSet(this.mCurrentUnit.UniqueID, this.mCurrentUnit.CurrentJob.UniqueID, this.mCurrentUnit.CurrentJob.Artifacts, new Network.ResponseCallback(this.OnArtifactSetResult)), false);
        }
예제 #16
0
 /// <summary>
 /// Initializes a new instance of the <see cref="ArtifactsConfigurationHandler"/> class.
 /// </summary>
 /// <param name="configurationManager"><see cref="IArtifactsConfigurationManager"/> for working with the configuration.</param>
 /// <param name="artifactTypes">A list of <see cref="ArtifactType"/> which represents the different artifact types.</param>
 /// <param name="buildMessages"><see cref="IBuildMessages"/> for build message output.</param>
 public ArtifactsConfigurationHandler(IArtifactsConfigurationManager configurationManager, ArtifactTypes artifactTypes, IBuildMessages buildMessages)
 {
     _configurationManager = configurationManager;
     _artifactTypes        = artifactTypes;
     _buildMessages        = buildMessages;
 }
예제 #17
0
        private static void Main(string[] arguments)
        {
            if (arguments.Length < 1)
            {
                MessageBox.Show("API key was not provided.", "Error", MessageBoxButtons.OK);
                return;
            }
            string importancePresetIdToUse = "default";

            if (arguments.Length > 1)
            {
                importancePresetIdToUse = arguments[1];
            }
            string directoryName         = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location) ?? string.Empty;
            string importancePresetsFile = Path.Combine(directoryName, "importance-presets.txt");

            if (!File.Exists(importancePresetsFile))
            {
                MessageBox.Show($"Could not find importance-presets.txt file at the provided location: {importancePresetsFile}.", "Error", MessageBoxButtons.OK);
                return;
            }
            Dictionary <string, ArtifactImportancePreset> importancePresets = new Dictionary <string, ArtifactImportancePreset>();

            foreach (string line in File.ReadAllLines(importancePresetsFile))
            {
                string[] importancePresetData = line.Split(";");
                string   importancePresetId   = importancePresetData[0];
                Dictionary <ArtifactType, Dictionary <ArtifactStat, ArtifactImportanceFactor> > importancePresetMainStatFactors = new Dictionary <ArtifactType, Dictionary <ArtifactStat, ArtifactImportanceFactor> >();
                Dictionary <ArtifactType, Dictionary <ArtifactStat, ArtifactImportanceFactor> > importancePresetSubStatFactors  = new Dictionary <ArtifactType, Dictionary <ArtifactStat, ArtifactImportanceFactor> >();
                for (int importancePresetStatFactorDataIndex = 1; importancePresetStatFactorDataIndex < importancePresetData.Length; importancePresetStatFactorDataIndex++)
                {
                    string       importancePresetStatFactorData         = importancePresetData[importancePresetStatFactorDataIndex];
                    ArtifactType?importancePresetStatFactorArtifactType = ArtifactTypes.Parse(importancePresetStatFactorData.Split("@")[0]);
                    if (importancePresetStatFactorArtifactType == null)
                    {
                        continue;
                    }
                    Dictionary <ArtifactStat, ArtifactImportanceFactor> importancePresetMainStatFactor = new Dictionary <ArtifactStat, ArtifactImportanceFactor>();
                    for (int importancePresetMainStatFactorDataIndex = 1; importancePresetMainStatFactorDataIndex < importancePresetStatFactorData.Split("@").Length; importancePresetMainStatFactorDataIndex++)
                    {
                        string       importancePresetMainStatFactorData         = importancePresetStatFactorData.Split("@")[importancePresetMainStatFactorDataIndex];
                        ArtifactStat?importancePresetMainStatFactorArtifactStat = ArtifactStats.ParseExact(importancePresetMainStatFactorData.Split(":")[0]);
                        if (importancePresetMainStatFactorArtifactStat == null)
                        {
                            continue;
                        }
                        double importancePresetMainStatFactorValue = double.Parse(importancePresetMainStatFactorData.Split(":")[1]);
                        importancePresetMainStatFactor.Add(importancePresetMainStatFactorArtifactStat, new ArtifactImportanceFactor(importancePresetMainStatFactorValue));
                    }
                    Dictionary <ArtifactStat, ArtifactImportanceFactor> importancePresetSubStatFactor = new Dictionary <ArtifactStat, ArtifactImportanceFactor>();
                    for (int importancePresetSubStatFactorDataIndex = 1; importancePresetSubStatFactorDataIndex < importancePresetStatFactorData.Split("&").Length; importancePresetSubStatFactorDataIndex++)
                    {
                        string       importancePresetSubStatFactorData         = importancePresetStatFactorData.Split("&")[importancePresetSubStatFactorDataIndex];
                        ArtifactStat?importancePresetSubStatFactorArtifactStat = ArtifactStats.ParseExact(importancePresetSubStatFactorData.Split(":")[0]);
                        if (importancePresetSubStatFactorArtifactStat == null)
                        {
                            continue;
                        }
                        double[] importancePresetSubStatFactorValues = new double[4];
                        for (int importancePresetSubStatFactorValueIndex = 0; importancePresetSubStatFactorValueIndex < 4; importancePresetSubStatFactorValueIndex++)
                        {
                            importancePresetSubStatFactorValues[importancePresetSubStatFactorValueIndex] = double.Parse(importancePresetSubStatFactorData.Split(":")[1].Split(",")[importancePresetSubStatFactorValueIndex]);
                        }
                        importancePresetSubStatFactor.Add(importancePresetSubStatFactorArtifactStat, new ArtifactImportanceFactor(importancePresetSubStatFactorValues));
                    }
                    importancePresetMainStatFactors.Add(importancePresetStatFactorArtifactType, importancePresetMainStatFactor);
                    importancePresetSubStatFactors.Add(importancePresetStatFactorArtifactType, importancePresetSubStatFactor);
                }
                importancePresets.Add(importancePresetId.ToLower(), new ArtifactImportancePreset(importancePresetId, importancePresetMainStatFactors, importancePresetSubStatFactors));
            }
            if (!importancePresets.ContainsKey(importancePresetIdToUse.ToLower()))
            {
                MessageBox.Show($"Could not find an importance preset with the provided name: {importancePresetIdToUse}.", "Error", MessageBoxButtons.OK);
                return;
            }
            ArtifactImportancePreset importancePresetToUse = importancePresets[importancePresetIdToUse.ToLower()];
            string filePath      = string.Empty;
            string fileExtension = string.Empty;

            using (OpenFileDialog openFileDialog = new OpenFileDialog())
            {
                openFileDialog.InitialDirectory = "C:\\";
                openFileDialog.Filter           = "JPG files (*.jpg)|*.jpg|PNG files (*.png)|*.png|All image files (*.jpg;*.png)|*.jpg;*.png";
                openFileDialog.FilterIndex      = 2;
                openFileDialog.RestoreDirectory = true;
                if (openFileDialog.ShowDialog() == DialogResult.OK)
                {
                    filePath      = openFileDialog.FileName;
                    fileExtension = Path.GetExtension(filePath)[1..];
예제 #18
0
 /// <summary>
 /// Initializes a new instance of the <see cref="ProxiesHandler"/> class.
 /// </summary>
 /// <param name="templateLoader"><see cref="TemplateLoader"/> for loading templates.</param>
 /// <param name="artifactTypes">All <see cref="ArtifactTypes"/>.</param>
 /// <param name="buildMessages"><see cref="IBuildMessages"/> for outputting build messages.</param>
 public ProxiesHandler(TemplateLoader templateLoader, ArtifactTypes artifactTypes, IBuildMessages buildMessages)
 {
     _templateLoader = templateLoader;
     _artifactTypes  = artifactTypes;
     _buildMessages  = buildMessages;
 }