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); }
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); }
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); }
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; } }
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); }
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); }