public static ShieldBase GetItem(long objNo, bool isRandomValue)
    {
        TableShieldData data = Array.Find(Table, i => i.ObjNo == objNo);
        ShieldBase      item = new ShieldBase();

        item.Initialize();
        if (GameStateInformation.IsEnglish == false)
        {
            item.DisplayName = data.DisplayName;
            item.Description = data.Description;
        }
        else
        {
            item.DisplayName = data.DisplayNameEn;
            item.Description = data.DescriptionEn;
        }
        item.ApType            = data.ApType;
        item.ObjNo             = data.ObjNo;
        item.ShieldBaseDefense = data.Defense;
        item.ThrowDexterity    = data.ThrowDexterity;

        if (isRandomValue == false)
        {
            return(item);
        }
        QualifyInformation q = TableQualify.GetRandomName(data.Level);

        item.DisplayNameBefore      = q.Name;
        item.DisplayNameBeforeObjNo = q.ObjNo;
        item.StrengthValue          = CommonFunction.ConvergenceRandom(data.StrengthAddStart, data.StrengthAddContinue, data.StrengthnAddReduce);
        int optioncount = CommonFunction.ConvergenceRandom(data.OptionAddStart, data.OptionAddContinue, data.OptionAddReduce);
        int index       = 0;

        for (int i = 0; i < optioncount; i++)
        {
            //30回回して終わらなかったら強制終了
            if (index > 30)
            {
                break;
            }
            index++;
            uint       rnd    = CommonFunction.GetRandomUInt32();
            BaseOption newOpt = TableOptionCommon.GetValue(OptionBaseType.Shield, rnd, data.OptionPowStart, data.OptionPowContinue, data.OptionPowReduce);

            //同じオプションがすでに含まれていたらもう一度算出
            if (CommonFunction.IsNull(newOpt) == true)
            {
                i--;
                continue;
            }
            BaseOption containOpt = item.Options.Find(o => o.ObjNo == newOpt.ObjNo);
            if (CommonFunction.IsNull(containOpt) == false)
            {
                i--;
                continue;
            }
            item.Options.Add(newOpt);
        }
        return(item);
    }
Esempio n. 2
0
        public static BaseItem ToBaseItem(SaveItemData d)
        {
            BaseItem t = TableItemIncidence.GetItemObjNo(d.it, d.on, false);

            QualifyInformation qi = TableQualify.GetValue(d.bnn);

            t.DisplayNameBeforeObjNo = qi.ObjNo;
            t.DisplayNameBefore      = qi.Name;
            t.StrengthValue          = d.sv;
            t.SortNo = d.sn;
            //t.IsBug = d.bb;
            t.IsEquip = d.be;

            if (t.IType == ItemType.Bag)
            {
                ((BagBase)t).MaxGap = d.cnt;
            }
            else if (t.IType == ItemType.Ball)
            {
                ((BallBase)t).RestCount = d.cnt;
            }

            //オプション
            if (CommonFunction.IsNull(d.ops) == false && d.ops.Length > 0)
            {
                List <BaseOption> ops = new List <BaseOption>();
                foreach (SaveOptionData o in d.ops)
                {
                    ops.Add(ToBaseOption(o));
                }
                t.Options = ops;
            }

            return(t);
        }
Esempio n. 3
0
    public static QualifyInformation GetRandomName(int level)
    {
        TableQualifyData[] targets = Array.FindAll(table, i => i.Level == level);
        TableQualifyData   tar     = targets[UnityEngine.Random.Range(0, targets.Length)];
        QualifyInformation r       = new QualifyInformation();

        AttackValue(r, tar);

        return(r);
    }
Esempio n. 4
0
    private static void AttackValue(QualifyInformation r, TableQualifyData tar)
    {
        r.ObjNo = tar.ObjNo;

        if (GameStateInformation.IsEnglish == false)
        {
            r.Name = tar.Name;
        }
        else
        {
            r.Name = tar.NameEn;
        }
    }
Esempio n. 5
0
    public static QualifyInformation GetValue(ushort objno)
    {
        TableQualifyData tar = Array.Find(table, i => i.ObjNo == objno);

        QualifyInformation r = new QualifyInformation();

        if (CommonFunction.IsNull(tar) == true)
        {
            return(r);
        }
        AttackValue(r, tar);

        return(r);
    }
Esempio n. 6
0
    public override bool ForceEquip(BaseCharacter target)
    {
        //装備中にする
        IsEquip = true;

        //盗人なら汚名を付与
        if (RType == RingType.Thief && string.IsNullOrEmpty(target.DisplayNameBefore) == true)
        {
            QualifyInformation bname = TableQualify.GetRandomName(1);
            target.DisplayNameBefore      = bname.Name;
            target.DisplayNameBeforeObjNo = bname.ObjNo;
        }

        return(true);
    }