Commit b4811957ab7c18194deff9e2514ea3bfd0c80bda

Authored by DarkGod
1 parent 8be12f8a

Fixed callbackOnFoo on multi-level passive talents

... ... @@ -3431,15 +3431,18 @@ end
3431 3431 -- @param t_id the id of the talent to learn
3432 3432 -- @return true if the talent was learnt, nil and an error message otherwise
3433 3433 function _M:learnTalent(t_id, force, nb, extra)
  3434 + local just_learnt = not self:knowTalent(tid)
3434 3435 if not engine.interface.ActorTalents.learnTalent(self, t_id, force, nb) then return false end
3435 3436
3436 3437 -- If we learned a spell, get mana, if you learned a technique get stamina, if we learned a wild gift, get power
3437 3438 local t = _M.talents_def[t_id]
3438 3439
3439   - for event, store in pairs(sustainCallbackCheck) do
3440   - if t[event] and t.mode ~= "sustained" then
3441   - self[store] = self[store] or {}
3442   - self[store][t_id] = "talent"
  3440 + if just_learnt then
  3441 + for event, store in pairs(sustainCallbackCheck) do
  3442 + if t[event] and t.mode ~= "sustained" then
  3443 + self[store] = self[store] or {}
  3444 + self[store][t_id] = "talent"
  3445 + end
3443 3446 end
3444 3447 end
3445 3448
... ... @@ -3600,10 +3603,12 @@ function _M:unlearnTalent(t_id, nb, no_unsustain, extra)
3600 3603
3601 3604 local t = _M.talents_def[t_id]
3602 3605
3603   - for event, store in pairs(sustainCallbackCheck) do
3604   - if t[event] and t.mode ~= "sustained" then
3605   - self[store][t_id] = nil
3606   - if not next(self[store]) then self[store] = nil end
  3606 + if not self:knowTalent(t_id) then
  3607 + for event, store in pairs(sustainCallbackCheck) do
  3608 + if t[event] and t.mode ~= "sustained" then
  3609 + self[store][t_id] = nil
  3610 + if not next(self[store]) then self[store] = nil end
  3611 + end
3607 3612 end
3608 3613 end
3609 3614
... ...
... ... @@ -968,6 +968,27 @@ dirt = { method="road", marker="road",
968 968 default2={add_mos={{image="terrain/road_dirt/road_end_a_03.png"}}, min=1, max=1},
969 969 default8={add_mos={{image="terrain/road_dirt/road_end_a_04.png"}}, min=1, max=1},
970 970 },
  971 +wooden_barricade = { method="road", marker="barricade",
  972 + default82={add_mos={{image="terrain/road_dirt/road_vertical_a_%02d.png"}}, min=1, max=3},
  973 + default46={add_mos={{image="terrain/road_dirt/road_horizontal_a_%02d.png"}}, min=1, max=3},
  974 +
  975 + default8246={add_mos={{image="terrain/road_dirt/road_cross_a_%02d.png"}}, min=1, max=1},
  976 +
  977 + default846={add_mos={{image="terrain/road_dirt/road_t_section_c_%02d.png"}}, min=1, max=1},
  978 + default246={add_mos={{image="terrain/road_dirt/road_t_section_a_%02d.png"}}, min=1, max=1},
  979 + default824={add_mos={{image="terrain/road_dirt/road_t_section_b_%02d.png"}}, min=1, max=1},
  980 + default826={add_mos={{image="terrain/road_dirt/road_t_section_d_%02d.png"}}, min=1, max=1},
  981 +
  982 + default84={add_mos={{image="terrain/road_dirt/road_turn_c_%02d.png"}}, min=1, max=2},
  983 + default86={add_mos={{image="terrain/road_dirt/road_turn_d_%02d.png"}}, min=1, max=2},
  984 + default26={add_mos={{image="terrain/road_dirt/road_turn_a_%02d.png"}}, min=1, max=2},
  985 + default24={add_mos={{image="terrain/road_dirt/road_turn_b_%02d.png"}}, min=1, max=2},
  986 +
  987 + default4={add_mos={{image="terrain/road_dirt/road_end_a_02.png"}}, min=1, max=1},
  988 + default6={add_mos={{image="terrain/road_dirt/road_end_a_01.png"}}, min=1, max=1},
  989 + default2={add_mos={{image="terrain/road_dirt/road_end_a_03.png"}}, min=1, max=1},
  990 + default8={add_mos={{image="terrain/road_dirt/road_end_a_04.png"}}, min=1, max=1},
  991 +},
971 992 }
972 993 _M.generic_roads_defs = defs
973 994
... ...