WIP: Gain relationship points by talking
This commit is contained in:
parent
762337cc6d
commit
eeabe601dd
33
npc.lua
33
npc.lua
@ -338,6 +338,16 @@ local function reset_gift_timer(self, clicker_name)
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
-- Resets the relationshop decrease timer
|
||||||
|
local function reset_relationship_decrease_timer(self, clicker_name)
|
||||||
|
for i = 1, #self.relationships do
|
||||||
|
if self.relationships[i].name == clicker_name then
|
||||||
|
self.relationships[i].relationship_decrease_timer_value = 0
|
||||||
|
return
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
-- Gifts functions
|
-- Gifts functions
|
||||||
---------------------------------------------------------------------------------------
|
---------------------------------------------------------------------------------------
|
||||||
|
|
||||||
@ -363,6 +373,8 @@ local function show_receive_gift_reaction(self, item_name, modifier, clicker_nam
|
|||||||
phase = "phase"..string.char(number_code)
|
phase = "phase"..string.char(number_code)
|
||||||
end
|
end
|
||||||
-- Send message
|
-- Send message
|
||||||
|
-- TODO: There might be an error with getting the message...
|
||||||
|
minetest.log("Item_name: "..dump(item_name)..", sex: "..dump(self.sex)..", phase: "..dump(phase))
|
||||||
local message_to_send = npc.get_response_for_favorite_item(item_name, self.sex, phase)
|
local message_to_send = npc.get_response_for_favorite_item(item_name, self.sex, phase)
|
||||||
minetest.chat_send_player(clicker_name, message_to_send)
|
minetest.chat_send_player(clicker_name, message_to_send)
|
||||||
-- Disliked items reactions
|
-- Disliked items reactions
|
||||||
@ -515,8 +527,20 @@ local function receive_gift(self, clicker)
|
|||||||
return true
|
return true
|
||||||
end
|
end
|
||||||
|
|
||||||
-- Chat functions
|
-- Relationships are slowly increased by talking, increases by +0.2.
|
||||||
|
-- Talking to married NPC increases relationship by +1
|
||||||
|
local function dialogue_relationship_update(self, clicker_name)
|
||||||
|
local modifier = 0.2
|
||||||
|
if self.is_married_to ~= nil and clicker_name == self.is_married_to then
|
||||||
|
modifier = 1
|
||||||
|
end
|
||||||
|
-- Update relationship
|
||||||
|
update_relationship(self, clicker_name, modifier)
|
||||||
|
|
||||||
|
reset_relationship_decrease_timer(self, clicker_name)
|
||||||
|
end
|
||||||
|
|
||||||
|
-- Chat functions
|
||||||
local function start_chat(self, clicker)
|
local function start_chat(self, clicker)
|
||||||
local name = npc.get_entity_name(clicker)
|
local name = npc.get_entity_name(clicker)
|
||||||
-- Married player can tell NPC to follow or to stay at a given place
|
-- Married player can tell NPC to follow or to stay at a given place
|
||||||
@ -605,16 +629,13 @@ mobs:register_mob("advanced_npc:npc", {
|
|||||||
-- Get item name
|
-- Get item name
|
||||||
local item = minetest.registered_items[item:get_name()]
|
local item = minetest.registered_items[item:get_name()]
|
||||||
local item_name = item.description
|
local item_name = item.description
|
||||||
minetest.log(dump(npc.dialogue.POSITIVE_GIFT_ANSWER_PREFIX))
|
|
||||||
minetest.log(dump(item_name))
|
|
||||||
-- Show dialogue to confirm that player is giving item as gift
|
-- Show dialogue to confirm that player is giving item as gift
|
||||||
npc.dialogue.show_yes_no_dialogue(
|
npc.dialogue.show_yes_no_dialogue(
|
||||||
"Do you want to give "..item_name.." to "..self.nametag.."?",
|
"Do you want to give "..item_name.." to "..self.nametag.."?",
|
||||||
npc.dialogue.POSITIVE_GIFT_ANSWER_PREFIX..item_name,
|
npc.dialogue.POSITIVE_GIFT_ANSWER_PREFIX..item_name,
|
||||||
function()
|
function()
|
||||||
if receive_gift(self, clicker) == false then
|
receive_gift(self, clicker)
|
||||||
npc.dialogue.start_dialogue(self, clicker)
|
|
||||||
end
|
|
||||||
end,
|
end,
|
||||||
npc.dialogue.NEGATIVE_ANSWER_LABEL,
|
npc.dialogue.NEGATIVE_ANSWER_LABEL,
|
||||||
function()
|
function()
|
||||||
|
Loading…
Reference in New Issue
Block a user