Пример #1
0
        public static Weapon creatRandomLevelWeapon(int level, IFriendly creator = null, float qualityBonus = 0)
        {
            int         numberOfWeponShape = WeaponShapeMasterManager.getInstance().getNumberOfShapes();
            int         shpeRand           = Random.Range(0, numberOfWeponShape);
            WeaponShape shape = WeaponShapeMasterManager.getInstance().getShapeFromId(shpeRand);

            var          weponMaterials = ItemMaterialMasterManager.getInstance().getMaterialFromLevel(level);
            int          materialRand   = Random.Range(0, weponMaterials.Count);
            ItemMaterial material       = weponMaterials[materialRand];

            if (creator == null)
            {
                float dex         = material.getQuality() / 20;
                float diffculty   = shape.getCreatDifficulty();
                float baseQuality = material.getQuality();
                qualityBonus = dex / 2;

                float quality = weaponQualityCaliculate(dex, diffculty, baseQuality, qualityBonus);
                return(new Weapon(shape, material, quality));
            }
            else
            {
                return(creatWeaopn(shape, material, creator, qualityBonus));
            }
        }
Пример #2
0
        /// <summary>
        /// 武器を生成します
        /// </summary>
        /// <returns>生成した武器</returns>
        /// <param name="shape">武器の形状</param>
        /// <param name="material">武器の素材</param>
        /// <param name="creator">武器の作成者</param>
        /// <param name="qualityBonus">品質の補正値</param>
        public static Weapon creatWeaopn(WeaponShape shape, ItemMaterial material, IFriendly creator, float qualityBonus)
        {
            float dex         = creator.getFriendlyAbility(FriendlyAbility.DEX);
            float diffculty   = shape.getCreatDifficulty();
            float baseQuality = material.getQuality();

            float quality = weaponQualityCaliculate(dex, diffculty, baseQuality, qualityBonus);

            return(new Weapon(shape, material, quality));
        }
Пример #3
0
 /// <summary>
 /// コンストラクタ
 /// </summary>
 public Weapon(WeaponShape shape, ItemMaterial material, float quality)
 {
     CLASSIFICATION_CODE = shape.getId() + material.getId();
     BASE_ATTACK         = shape.getAttack();
     RANGE          = shape.getRange();
     BASE_VALUE     = material.getItemValue() + shape.getValue();
     MASS           = shape.getMass() + material.getMass();
     BASE_HIT       = shape.getHit();
     NAME           = material.getName() + "の" + shape.getName();
     BASE_DELAY     = shape.getDelay();
     TYPE           = shape.getWeaponType();
     CONSUMABILITY  = material.getConsumability();
     this.quality   = quality;
     DESCRIPTION    = material.getAdditionalDescription() + shape.getAdditionalDescription();
     FLAVOR_TEXT    = material.getAdditionalFlavor() + shape.getAdditionalFlavor();
     WEAPON_ABILITY = WeaponTypeHelper.getTypeAbility(TYPE);
 }