public void Cmd_UCE_WarpTravelroute(int index) { if (UCE_myTravelrouteArea) { int price = 0; List <UCE_Travelroute> travelroutesAvailable = UCE_TravelroutesVisibleForPlayer(); UCE_Travelroute targetTravelroute = travelroutesAvailable[index]; string name = ""; if (targetTravelroute.teleportationTarget.Valid) { name = targetTravelroute.teleportationTarget.name; } if (!string.IsNullOrWhiteSpace(name) && UCE_travelroutes.Any(t => t.name == name)) { #if _iMMOHONORSHOP if (!UCE_checkHonorCost(index)) { return; } UCE_payHonorCost(index); #endif price = UCE_getTravelCost(index); if (gold >= price) { gold -= price; targetTravelroute.teleportationTarget.OnTeleport(this); } } } }
// ----------------------------------------------------------------------------------- // UCE_getTravelCost // ----------------------------------------------------------------------------------- #if _iMMOHONORSHOP public bool UCE_checkHonorCost(int index) { bool valid = false; if (UCE_myTravelrouteArea) { List <UCE_Travelroute> travelroutesAvailable = UCE_TravelroutesVisibleForPlayer(); UCE_Travelroute targetTravelroute = travelroutesAvailable[index]; if (targetTravelroute != null) { if (targetTravelroute.currencyCost.Length == 0) { return(true); } foreach (UCE_HonorShopCurrencyCost currency in targetTravelroute.currencyCost) { int price = (int)(targetTravelroute.teleportationTarget.getDistance(UCE_myTravelrouteArea.transform) * currency.amount); if (UCE_GetHonorCurrency(currency.honorCurrency) >= price) { valid = true; } else { valid = false; break; } } } } return(valid); }
// ----------------------------------------------------------------------------------- // UCE_getTravelCost // ----------------------------------------------------------------------------------- public int UCE_getTravelCost(int index) { int price = 0; if (UCE_myTravelrouteArea) { List <UCE_Travelroute> travelroutesAvailable = UCE_TravelroutesVisibleForPlayer(); UCE_Travelroute targetTravelroute = travelroutesAvailable[index]; if (targetTravelroute != null && targetTravelroute.GoldPricePerUnit > 0) { price = (int)(targetTravelroute.teleportationTarget.getDistance(UCE_myTravelrouteArea.transform) * targetTravelroute.GoldPricePerUnit); } } return(price); }
// ----------------------------------------------------------------------------------- // UCE_getTravelCost // ----------------------------------------------------------------------------------- #if _iMMOHONORSHOP public void UCE_payHonorCost(int index) { if (UCE_myTravelrouteArea) { List <UCE_Travelroute> travelroutesAvailable = UCE_TravelroutesVisibleForPlayer(); UCE_Travelroute targetTravelroute = travelroutesAvailable[index]; if (targetTravelroute != null) { foreach (UCE_HonorShopCurrencyCost currency in targetTravelroute.currencyCost) { int price = (int)(targetTravelroute.teleportationTarget.getDistance(UCE_myTravelrouteArea.transform) * currency.amount); UCE_AddHonorCurrency(currency.honorCurrency, price * -1); } } } }