Cow_Life_Sim_RPG/NPCs/Beach/Whale/Whale.gd

57 lines
1.9 KiB
GDScript

extends NPC
var wetWustardItem
func _ready():
dialogueResource = load("res://NPCs/Beach/Whale/Whale.dialogue")
wetWustardItem = preload("res://Items/Foods/Condiments/Wustard.gd").new()
wetWustardItem.set_modification(Item.modifications.Wet)
MessageManager.messageSent.connect(message_spoken)
func message_spoken(message:String):
message = message.to_lower().strip_edges()
if message.contains("i got the stuff") or message.contains("i've got the stuff") or message.contains("i have got the stuff") or message.contains("i have the stuff"):
if distance_check():
if wet_wustard_count() == 0:
MessageManager.addMessage("You do not", self, "Herbert", Color.YELLOW)
elif wet_wustard_count() < 5:
MessageManager.addMessage("Not enough", self, "Herbert", Color.YELLOW)
else:
MessageManager.addMessage("I'll be taking that >:)", self, "Herbert", Color.YELLOW)
take_wet_wustard()
give_silica_gel()
func give_silica_gel():
var silicaGelPacketItem = preload("res://Items/Artificial/Products/SilicaGelPacket.gd").new()
InventoryManager.add_item_to_inventory(silicaGelPacketItem)
MessageManager.item_popup(silicaGelPacketItem.duplicate())
func distance_check():
var maxTradeDistance = 600
var distance = global_position.distance_to(GameVariables.player.global_position)
if distance < maxTradeDistance:
return true
else:
return false
func wet_wustard_count():
var amountHad = InventoryManager.get_item_count(wetWustardItem)
return amountHad
func wet_wustard_check():
if InventoryManager.check_if_in_inventory(wetWustardItem):
return true
else:
return false
func take_wet_wustard():
var wetWustardCount = wet_wustard_count()
InventoryManager.remove_item_from_inventory(wetWustardItem, wetWustardCount)
LevelManager.get_skill("appreciating").experience_event("Herbert", "gave wustard to", 140)
if wetWustardCount >= 50:
AchievementManager.complete_achievement("Wustard Whale")
func give_knowledge():
LevelManager.add_XP("swimming", 187)