本文整理汇总了Java中org.openyu.commons.lang.NumberHelper.randomWin方法的典型用法代码示例。如果您正苦于以下问题:Java NumberHelper.randomWin方法的具体用法?Java NumberHelper.randomWin怎么用?Java NumberHelper.randomWin使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类org.openyu.commons.lang.NumberHelper
的用法示例。
在下文中一共展示了NumberHelper.randomWin方法的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: randomEnhance
import org.openyu.commons.lang.NumberHelper; //导入方法依赖的package包/类
/**
* 機率強化/安全強化
*
* @param item
* @param enhanceFactor
* @return
*/
protected boolean randomEnhance(Item item, EnhanceFactor enhanceFactor) {
boolean result = false;
//
if (item == null || enhanceFactor == null) {
return result;
}
// 安全強化等級, +1-3,不會爆掉, > +3才有機率爆掉
EnhanceLevel safeEnhanceLevel = getSafeEnhanceLevel(item);
// 機率強化,當強化> +3 以上,會有機率性失敗
if (safeEnhanceLevel == null || enhanceFactor.getId().getValue() > safeEnhanceLevel.getValue()) {
result = NumberHelper.randomWin(enhanceFactor.getProbability());
}
// 安全強化,當強化<= +3,一定會成功,此為+3為強化安定值
else {
result = true;
}
return result;
}
示例2: calcProducts
import org.openyu.commons.lang.NumberHelper; //导入方法依赖的package包/类
/**
* 計算種子產出數量
*
* @param land
* @param seed
* @return
*/
public Map<String, Integer> calcProducts(Land land, Seed seed) {
Map<String, Integer> result = new LinkedHashMap<String, Integer>();
// 原產出數量
Map<String, Integer> origItems = seed.getProducts();
//
AttributeGroup attributeGroup = land.getAttributeGroup();
int output = attributeGroup.getFinal(AttributeType.MANOR_OUTPUT);// 2
double criticalRatio = ratio(attributeGroup.getFinal(AttributeType.MANOR_CRITICAL_RATE));// 0.3
double criticalQutputRatio = ratio(attributeGroup.getFinal(AttributeType.MANOR_CRITICAL_OUTPUT_RATE));// 0.3
//
for (Map.Entry<String, Integer> entry : origItems.entrySet()) {
String itemId = entry.getKey();
int amount = entry.getValue();
int newQuality = 0;
// 暴擊
if (NumberHelper.randomWin(criticalRatio)) {
newQuality = amount + (int) (output * (1 + criticalQutputRatio));
} else {
newQuality = amount + output;
}
//
result.put(itemId, newQuality);
}
return result;
}
示例3: useRoleExpThing
import org.openyu.commons.lang.NumberHelper; //导入方法依赖的package包/类
/**
* 使用增加經驗道具
*
* @param sendable
* @param role
* @param item
* 道具
* @param amount
* 數量
* @return
*/
public ErrorType useRoleExpThing(boolean sendable, Role role, Item item, int amount) {
ErrorType result = ErrorType.NO_ERROR;
// 道具不存在
if (item == null) {
result = ErrorType.ITEM_NOT_EXIST;
} else {
// 消耗的道具
RoleExpThing thing = (RoleExpThing) item;
long exp = 0L;
// 多個道具
for (int i = 0; i < amount; i++) {
// 成功
boolean success = NumberHelper.randomWin(thing.getProbability());
if (success) {
exp += thing.getExp();
}
}
//
if (exp > 0) {
// 發送到ROLE處理
sendChangeExp(role, exp);
}
// 移除消耗的道具
decreaseItemWithUniqueId(sendable, role, thing.getUniqueId(), amount);
}
return result;
}
示例4: useRoleSpThing
import org.openyu.commons.lang.NumberHelper; //导入方法依赖的package包/类
/**
* 使用增加技魂(sp)道具
*
* @param sendable
* @param role
* @param item
* @param amount
* @return
*/
public ErrorType useRoleSpThing(boolean sendable, Role role, Item item, int amount) {
ErrorType result = ErrorType.NO_ERROR;
// 道具不存在
if (item == null) {
result = ErrorType.ITEM_NOT_EXIST;
} else {
// 消耗的道具
RoleSpThing thing = (RoleSpThing) item;
long sp = 0L;
// 多個道具
for (int i = 0; i < amount; i++) {
// 成功
boolean success = NumberHelper.randomWin(thing.getProbability());
if (success) {
sp += thing.getSp();
}
}
//
if (sp > 0) {
sendChangeSp(role, sp);
}
// 移除消耗的道具
decreaseItemWithUniqueId(sendable, role, thing.getUniqueId(), amount);
}
return result;
}
示例5: useRoleGoldThing
import org.openyu.commons.lang.NumberHelper; //导入方法依赖的package包/类
/**
* 使用增加金幣道具
*
* @param sendable
* @param role
* @param item
* 道具
* @param amount
* 數量
* @return
*/
public ErrorType useRoleGoldThing(boolean sendable, Role role, Item item, int amount) {
ErrorType result = ErrorType.NO_ERROR;
// 道具不存在
if (item == null) {
result = ErrorType.ITEM_NOT_EXIST;
} else {
// 消耗的道具
RoleGoldThing thing = (RoleGoldThing) item;
long gold = 0L;
// 多個道具
for (int i = 0; i < amount; i++) {
// 成功
boolean success = NumberHelper.randomWin(thing.getProbability());
if (success) {
gold += thing.getGold();
}
}
//
if (gold > 0) {
sendChangeGold(role, gold, GoldType.ITEM_ROLE_GOLD_THING);
}
// 移除消耗的道具
decreaseItemWithUniqueId(sendable, role, thing.getUniqueId(), amount);
}
return result;
}
示例6: useRoleFameThing
import org.openyu.commons.lang.NumberHelper; //导入方法依赖的package包/类
/**
* 使用增加聲望道具
*
* @param sendable
* @param role
* @param item
* 道具
* @param amount
* 數量
* @return
*/
public ErrorType useRoleFameThing(boolean sendable, Role role, Item item, int amount) {
ErrorType result = ErrorType.NO_ERROR;
// 道具不存在
if (item == null) {
result = ErrorType.ITEM_NOT_EXIST;
} else {
// 消耗的道具
RoleFameThing thing = (RoleFameThing) item;
int fame = 0;
// 多個道具
for (int i = 0; i < amount; i++) {
// 成功
boolean success = NumberHelper.randomWin(thing.getProbability());
if (success) {
fame += thing.getFame();
}
}
//
if (fame > 0) {
sendChangeFame(role, fame);
}
// 移除消耗的道具
decreaseItemWithUniqueId(sendable, role, thing.getUniqueId(), amount);
}
return result;
}