mirror of
https://github.com/infinitefusion/infinitefusion-e18.git
synced 2025-12-07 13:15:01 +00:00
127 lines
2.8 KiB
Ruby
127 lines
2.8 KiB
Ruby
class HairMartAdapter < OutfitsMartAdapter
|
|
DEFAULT_NAME = "[unknown]"
|
|
DEFAULT_DESCRIPTION = "A hairstyle for trainers."
|
|
|
|
POSSIBLE_VERSIONS = (1..9).to_a
|
|
|
|
def initialize(stock = nil, isShop = nil)
|
|
super
|
|
@version = getCurrentHairVersion().to_i
|
|
@worn_hat = $Trainer.hat
|
|
@hat_visible=false
|
|
@removable = true
|
|
end
|
|
|
|
def switchVersion(item, delta=1)
|
|
pbSEPlay("GUI party switch", 80, 100)
|
|
newVersion = @version+ delta
|
|
lastVersion = findLastHairVersion(item.id)
|
|
newVersion = lastVersion if newVersion <= 0
|
|
newVersion = 1 if newVersion > lastVersion
|
|
@version = newVersion
|
|
end
|
|
|
|
def toggleEvent(item)
|
|
pbSEPlay("GUI storage put down", 80, 100)
|
|
toggleHatVisibility()
|
|
end
|
|
|
|
def toggleText()
|
|
text = ""
|
|
text << "Color: L / R\n"
|
|
text << "Hat: D\n"
|
|
|
|
end
|
|
|
|
def toggleHatVisibility()
|
|
@hat_visible = !@hat_visible
|
|
end
|
|
|
|
def getPrice(item, selling = nil)
|
|
return 0 if !@isShop
|
|
trainerStyleID = getSplitHairFilenameAndVersionFromID($Trainer.hair)[0]
|
|
return 0 if item == trainerStyleID
|
|
return nil if itemOwned(item)
|
|
return item.price.to_i
|
|
end
|
|
|
|
def getDisplayPrice(item, selling = nil)
|
|
trainerStyleID = getSplitHairFilenameAndVersionFromID($Trainer.hair)[0]
|
|
return "-" if item == trainerStyleID
|
|
super
|
|
end
|
|
|
|
def getCurrentHairVersion()
|
|
begin
|
|
return getSplitHairFilenameAndVersionFromID($Trainer.hair)[0]
|
|
rescue
|
|
return 1
|
|
end
|
|
end
|
|
|
|
def getCurrentHairId(itemId)
|
|
return getFullHairId(itemId, @version)
|
|
end
|
|
|
|
def getName(item)
|
|
return item.id
|
|
end
|
|
|
|
def getDisplayName(item)
|
|
return getName(item) if !item.name
|
|
return item.name
|
|
end
|
|
|
|
def getDescription(item)
|
|
return DEFAULT_DESCRIPTION if !item.description
|
|
return item.description
|
|
end
|
|
|
|
def getItemIcon(item)
|
|
return Settings::BACK_ITEM_ICON_PATH if !item
|
|
itemId = getCurrentHairId(item.id)
|
|
return getOverworldHatFilename(item.id)
|
|
end
|
|
|
|
def updateTrainerPreview(item, previewWindow)
|
|
return if !item
|
|
displayed_hat = @hat_visible ? @worn_hat : nil
|
|
previewWindow.hat=displayed_hat
|
|
$Trainer.hat = displayed_hat
|
|
itemId = getCurrentHairId(item.id)
|
|
echoln itemId
|
|
previewWindow.hair = itemId
|
|
$Trainer.hair = itemId
|
|
pbRefreshSceneMap
|
|
previewWindow.updatePreview()
|
|
end
|
|
|
|
def addItem(item)
|
|
itemId = getCurrentHairId(item.id)
|
|
|
|
changed_clothes = obtainNewHairstyle(itemId)
|
|
if changed_clothes
|
|
@worn_clothes = itemId
|
|
end
|
|
end
|
|
|
|
def get_current_clothes()
|
|
return $Trainer.hair
|
|
end
|
|
|
|
def putOnOutfit(item)
|
|
itemFullId = getCurrentHairId(item.id)
|
|
putOnHair(item.id, @version)
|
|
@worn_clothes = itemFullId
|
|
end
|
|
|
|
def reset_player_clothes()
|
|
$Trainer.hair = @worn_clothes
|
|
$Trainer.hat = @worn_hat
|
|
end
|
|
|
|
def get_unlocked_items_list()
|
|
return $Trainer.unlocked_hairstyles
|
|
end
|
|
end
|