コード例 #1
0
        public override IEnumerable <object> Run()
        {
            ChannelMember member = base.Entity.FindMember(base.Operation.CID);

            if (member == null || member.SharingInfo == null)
            {
                base.Finished = true;
                yield return(new FailMessage("[SharingResponseProcessor] member.SharingInfo")
                {
                    Reason = FailMessage.ReasonCode.LogicalFail
                });
            }
            else if (!base.Operation.Accept)
            {
                member.SharingInfo = null;
            }
            else
            {
                AddStatusEffect op = new AddStatusEffect
                {
                    Type       = member.SharingInfo.StatusEffect,
                    Level      = member.SharingInfo.EffectLevel,
                    RemainTime = member.SharingInfo.DurationSec
                };
                member.CharacterConn.RequestOperation(op);
            }
            yield break;
        }
コード例 #2
0
        // Token: 0x0600001E RID: 30 RVA: 0x000029E0 File Offset: 0x00000BE0
        public static AddStatusEffect AddStatusEffectChance(ImbueEffectPreset effect, int chance, string statusEffectName)
        {
            AddStatusEffect addStatusEffect = effect.transform.Find("Effects").gameObject.AddComponent <AddStatusEffect>();

            addStatusEffect.SetChanceToContract(chance);
            addStatusEffect.Status = ResourcesPrefabManager.Instance.GetStatusEffectPrefab(statusEffectName);
            addStatusEffect.OverrideEffectCategory = EffectSynchronizer.EffectCategories.Hit;
            return(addStatusEffect);
        }
コード例 #3
0
        public void Save(dynamic Data)
        {
            AddStatusEffect EffectData = (AddStatusEffect)Data;

            EffectData.StatusEffect = (VPTU.BattleManager.Data.Status_Afflictions)Status_Effects.SelectedItem;
            //EffectData.StatusExpiry_Method = (object)Expiry_Method.SelectedItem;
            EffectData.StatusExpiry_Time       = (int)Expiry_Turns.Value;
            EffectData.StatusEffect_Force      = (bool)Effect_Forced.IsChecked;
            EffectData.StatusEffect_Persistant = (bool)Effect_Persistant.IsChecked;
        }
コード例 #4
0
        public void Load(dynamic Data)
        {
            AddStatusEffect EffectData = (AddStatusEffect)Data;

            try { Status_Effects.SelectedItem = EffectData.StatusEffect; } catch { }
            //try { Expiry_Method.SelectedItem = EffectData.StatusExpiry_Method; } catch{ }
            try { Expiry_Turns.Value = EffectData.StatusExpiry_Time; } catch { }
            try { Effect_Forced.IsChecked = EffectData.StatusEffect_Force; } catch { }
            try { Effect_Persistant.IsChecked = EffectData.StatusEffect_Persistant; } catch { }
        }
コード例 #5
0
        public Effect ParseEffect(string effectConfig)
        {
            Effect effect = null;

            if (!string.IsNullOrEmpty(effectConfig) && effectConfig.Contains("="))
            {
                var arr        = effectConfig.Split('=');
                var effectType = arr[0];
                var effectId   = arr[1];
                if (effectType == "Damage")
                {
                    var damageEffectConfig = ConfigHelper.Get <SkillDamageEffectConfig>(int.Parse(effectId));
                    var damageEffect       = new DamageEffect();
                    effect = damageEffect;
                    damageEffect.DamageValueFormula = damageEffectConfig.ValueFormula;
                    damageEffect.TriggerProbability = damageEffectConfig.Probability;
                    if (damageEffectConfig.Target == "自身")
                    {
                        damageEffect.AddSkillEffectTargetType = AddSkillEffetTargetType.Self;
                    }
                    if (damageEffectConfig.Target == "技能目标")
                    {
                        damageEffect.AddSkillEffectTargetType = AddSkillEffetTargetType.SkillTarget;
                    }
                    if (damageEffectConfig.Type == "魔法伤害")
                    {
                        damageEffect.DamageType = DamageType.Magic;
                    }
                    if (damageEffectConfig.Type == "物理伤害")
                    {
                        damageEffect.DamageType = DamageType.Physic;
                    }
                    if (damageEffectConfig.Type == "真实伤害")
                    {
                        damageEffect.DamageType = DamageType.Real;
                    }
                }
                if (effectType == "AddStatus")
                {
                    var addStatusEffectConfig = ConfigHelper.Get <SkillAddStatusEffectConfig>(int.Parse(effectId));
                    var addStatusEffect       = new AddStatusEffect();
                    effect = addStatusEffect;
                    addStatusEffect.AddStatus = Resources.Load <StatusConfigObject>($"StatusConfigs/Status_{addStatusEffectConfig.StatusID}");
                    if (addStatusEffect.AddStatus == null)
                    {
                        addStatusEffect.AddStatus = Resources.Load <StatusConfigObject>($"StatusConfigs/BaseStatus/Status_{addStatusEffectConfig.StatusID}");
                    }
                    addStatusEffect.Duration = (uint)(float.Parse(addStatusEffectConfig.Duration) * 1000);
                    ParseParam(addStatusEffectConfig.Param1);
                    ParseParam(addStatusEffectConfig.Param2);
                    void ParseParam(string paramStr)
                    {
                        if (!string.IsNullOrEmpty(paramStr))
                        {
                            arr = paramStr.Split('=');
                            addStatusEffect.Params.Add(arr[0], arr[1]);
                        }
                    }
                }
            }
            else
            {
                effect = new CustomEffect()
                {
                    CustomEffectType = effectConfig
                };
            }
            return(effect);
        }
コード例 #6
0
 public AddStatusEffectWrapper(AddStatusEffect line)
 {
     AddStatusEffectLine = line;
 }