物価上昇を加味した装備品購入実行条件

なおCvRandomEventInterface.pyのcanbuyweaponYsneckless()において経験値条件を削除する場合はコメントアウト周りに変更が必要。

なおCvRandomEventInterface.pyのcanbuyweaponYsneckless()において経験値条件を削除する場合はコメントアウト周りに変更が必要。

def enabledYsEventBuyWeapon(argsList):
	pCaster, pPlot, eSpell = argsList
	pPlayer = gc.getPlayer(pCaster.getOwner())
	
	rate = pPlayer.calculateInflationRate()
	iGoldLow = 50 * (100 + rate) / 100
	iGoldMid = 200 * (100 + rate) / 100
	iGoldHigh = 1600 * (100 + rate) / 100
	iGoldNeckless = 100 * (100 + rate) / 100
	
	if pPlayer.getGold() >= iGoldLow:
		if not pCaster.isHasPromotion(gc.getInfoTypeForString('PROMOTION_YSSWORD3')):
			if pPlayer.getNumAvailableBonuses(gc.getInfoTypeForString('BONUS_COPPER')) > 0:
				if pPlayer.getGold() >= iGoldHigh:
					return True
				if pPlayer.getGold() >= iGoldMid and not pCaster.isHasPromotion(gc.getInfoTypeForString('PROMOTION_YSSWORD2')):
					return True
			if not pCaster.isHasPromotion(gc.getInfoTypeForString('PROMOTION_YSSWORD2'))\
			   and not pCaster.isHasPromotion(gc.getInfoTypeForString('PROMOTION_YSSWORD1')):
				return True
		if not pCaster.isHasPromotion(gc.getInfoTypeForString('PROMOTION_YSARMOR3')):
			if pPlayer.getNumAvailableBonuses(gc.getInfoTypeForString('BONUS_MARBLE')) > 0:
				if pPlayer.getGold() >= iGoldHigh:
					return True
				if pPlayer.getGold() >= iGoldMid and not pCaster.isHasPromotion(gc.getInfoTypeForString('PROMOTION_YSARMOR2')):
					return True
			if not pCaster.isHasPromotion(gc.getInfoTypeForString('PROMOTION_YSARMOR2'))\
			   and not pCaster.isHasPromotion(gc.getInfoTypeForString('PROMOTION_YSARMOR1')):
				return True
		if not pCaster.isHasPromotion(gc.getInfoTypeForString('PROMOTION_YSSHIELD3')):
			if pPlayer.getNumAvailableBonuses(gc.getInfoTypeForString('BONUS_GOLD')) > 0:
				if pPlayer.getGold() >= iGoldHigh:
					return True
				if pPlayer.getGold() >= iGoldMid and not pCaster.isHasPromotion(gc.getInfoTypeForString('PROMOTION_YSSHIELD2')):
					return True
			if not pCaster.isHasPromotion(gc.getInfoTypeForString('PROMOTION_YSSHIELD2'))\
			   and not pCaster.isHasPromotion(gc.getInfoTypeForString('PROMOTION_YSSHIELD1')):
				return True
		if not pCaster.isHasPromotion(gc.getInfoTypeForString('PROMOTION_YSNECKLESS'))\
		   and pPlayer.getNumAvailableBonuses(gc.getInfoTypeForString('BONUS_GEMS')) > 0\
		   and pPlayer.getGold() >= iGoldNeckless and pCaster.getExperience() >= 20:
		   ##and pPlayer.getGold() >= iGoldNeckless:
			return True
	return False