126 lines
No EOL
4.4 KiB
Text
126 lines
No EOL
4.4 KiB
Text
|
|
|
|
--' Ìåíòàëüíîå ñîñòîÿíèå òåëà
|
|
--' ìû óæå íàõîäèìñÿ â íåîáõîäèìîì ñîñòîÿíèè?
|
|
class "eva_state_mgr_mental" (property_evaluator)
|
|
function eva_state_mgr_mental:__init(name, st) super (nil, name)
|
|
self.st = st
|
|
end
|
|
function eva_state_mgr_mental:evaluate()
|
|
return (state_lib.states[self.st.target_state].mental == nil) or
|
|
(state_lib.states[self.st.target_state].mental == self.object:target_mental_state())
|
|
end
|
|
--' íóæíî ëè íàì áûòü â ñîñòîÿíèè FREE
|
|
class "eva_state_mgr_mental_free" (property_evaluator)
|
|
function eva_state_mgr_mental_free:__init(name, st) super (nil, name)
|
|
self.st = st
|
|
end
|
|
function eva_state_mgr_mental_free:evaluate()
|
|
return state_lib.states[self.st.target_state].mental == anim.free
|
|
end
|
|
--' íàõîäèìñÿ ëè ìû ñåé÷àñ âî FREE
|
|
class "eva_state_mgr_mental_free_now" (property_evaluator)
|
|
function eva_state_mgr_mental_free_now:__init(name, st) super (nil, name)
|
|
self.st = st
|
|
end
|
|
function eva_state_mgr_mental_free_now:evaluate()
|
|
return self.object:target_mental_state() == anim.free
|
|
end
|
|
|
|
|
|
--' íóæíî ëè íàì áûòü â ñîñòîÿíèè DANGER
|
|
class "eva_state_mgr_mental_danger" (property_evaluator)
|
|
function eva_state_mgr_mental_danger:__init(name, st) super (nil, name)
|
|
self.st = st
|
|
end
|
|
function eva_state_mgr_mental_danger:evaluate()
|
|
return state_lib.states[self.st.target_state].mental == anim.danger
|
|
end
|
|
--' íàõîäèìñÿ ëè ìû ñåé÷àñ â
|
|
class "eva_state_mgr_mental_danger_now" (property_evaluator)
|
|
function eva_state_mgr_mental_danger_now:__init(name, st) super (nil, name)
|
|
self.st = st
|
|
end
|
|
function eva_state_mgr_mental_danger_now:evaluate()
|
|
return self.object:target_mental_state() == anim.danger
|
|
end
|
|
|
|
--' íóæíî ëè íàì áûòü â ñîñòîÿíèè PANIC
|
|
class "eva_state_mgr_mental_panic" (property_evaluator)
|
|
function eva_state_mgr_mental_panic:__init(name, st) super (nil, name)
|
|
self.st = st
|
|
end
|
|
function eva_state_mgr_mental_panic:evaluate()
|
|
return state_lib.states[self.st.target_state].mental == anim.panic
|
|
end
|
|
--' íàõîäèìñÿ ëè ìû ñåé÷àñ â PANIC
|
|
class "eva_state_mgr_mental_panic_now" (property_evaluator)
|
|
function eva_state_mgr_mental_panic_now:__init(name, st) super (nil, name)
|
|
self.st = st
|
|
end
|
|
function eva_state_mgr_mental_panic_now:evaluate()
|
|
return self.object:target_mental_state() == anim.panic
|
|
end
|
|
|
|
|
|
--' Âêëþ÷àåì ñâîáîäíîå ñîñòîÿíèå
|
|
class "act_state_mgr_mental_free" (action_base)
|
|
function act_state_mgr_mental_free:__init(name) super (nil, name)
|
|
end
|
|
function act_state_mgr_mental_free:initialize()
|
|
action_base.initialize(self)
|
|
-- printf("BEFORE")
|
|
-- local sight_type = self.object:sight_params()
|
|
-- if sight_type.m_object ~= nil then
|
|
-- printf("@@@sight_obj %s", sight_type.m_object:id())
|
|
-- end
|
|
-- printf("@@@sight_vest %s %s %s", sight_type.m_vector.x, sight_type.m_vector.y, sight_type.m_vector.z)
|
|
-- printf("@@@sight_type %s", tostring(sight_type.m_sight_type))
|
|
self.object:set_mental_state(anim.free)
|
|
-- printf("AFTER")
|
|
local sight_type = self.object:sight_params()
|
|
if sight_type.m_object ~= nil then
|
|
-- printf("@@@sight_obj %s", sight_type.m_object:id())
|
|
end
|
|
-- printf("@@@sight_vest %s %s %s", sight_type.m_vector.x, sight_type.m_vector.y, sight_type.m_vector.z)
|
|
-- printf("@@@sight_type %s", tostring(sight_type.m_sight_type))
|
|
end
|
|
function act_state_mgr_mental_free:execute()
|
|
action_base.execute(self)
|
|
self.object:set_mental_state(anim.free)
|
|
end
|
|
function act_state_mgr_mental_free:finalize()
|
|
action_base.finalize(self)
|
|
end
|
|
|
|
--' Âêëþ÷àåì âîçáóæäåííîå ñîñòîÿíèå
|
|
class "act_state_mgr_mental_danger" (action_base)
|
|
function act_state_mgr_mental_danger:__init(name) super (nil, name)
|
|
end
|
|
function act_state_mgr_mental_danger:initialize()
|
|
action_base.initialize(self)
|
|
self.object:set_mental_state(anim.danger)
|
|
end
|
|
function act_state_mgr_mental_danger:execute()
|
|
action_base.execute(self)
|
|
self.object:set_mental_state(anim.danger)
|
|
end
|
|
function act_state_mgr_mental_danger:finalize()
|
|
action_base.finalize(self)
|
|
end
|
|
|
|
--' Âêëþ÷àåì ïàíè÷åñêîå ñîñòîÿíèå
|
|
class "act_state_mgr_mental_panic" (action_base)
|
|
function act_state_mgr_mental_panic:__init(name) super (nil, name)
|
|
end
|
|
function act_state_mgr_mental_panic:initialize()
|
|
action_base.initialize(self)
|
|
self.object:set_mental_state(anim.panic)
|
|
end
|
|
function act_state_mgr_mental_panic:execute()
|
|
action_base.execute(self)
|
|
self.object:set_mental_state(anim.panic)
|
|
end
|
|
function act_state_mgr_mental_panic:finalize()
|
|
action_base.finalize(self)
|
|
end |