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