Copyright (c) 2008-2015 GIANTS Software GmbH, Confidential, All Rights Reserved.
This document is to be published solely by ls-mods.de
1 | -- CoinTelescopeTrigger class |
2 | -- |
3 | -- Copyright (C) GIANTS Software GmbH, Confidential, All Rights Reserved. |
4 | |
5 | CoinTelescopeTrigger = {} |
6 | |
7 | local CoinTelescopeTrigger_mt = Class(CoinTelescopeTrigger); |
8 | |
9 | function CoinTelescopeTrigger:onCreate(id) |
10 | g_currentMission:addUpdateable(CoinTelescopeTrigger:new(id)); |
11 | --print("Created CoinTelescopeTrigger, id: ", id); |
12 | end; |
13 | |
14 | function CoinTelescopeTrigger:new(name) |
15 | local self = {}; |
16 | setmetatable(self, CoinTelescopeTrigger_mt); |
17 | |
18 | self.triggerId = name; |
19 | if g_currentMission:getIsClient() then |
20 | addTrigger(name, "triggerCallback", self); |
21 | end; |
22 | |
23 | |
24 | |
25 | self.coinTelescopeCamera = getChildAt(name, 0); |
26 | self.time = 0; |
27 | |
28 | self.activateText = g_i18n:getText("UseBinoculars"); |
29 | |
30 | self.objectActivate = false; |
31 | self.isEnabled = true; |
32 | |
33 | return self; |
34 | end; |
35 | |
36 | function CoinTelescopeTrigger:delete() |
37 | if g_currentMission:getIsClient() then |
38 | removeTrigger(self.triggerId); |
39 | g_currentMission:removeActivatableObject(self); |
40 | end; |
41 | end; |
42 | |
43 | function CoinTelescopeTrigger:getIsActivatable() |
44 | return self.isEnabled; |
45 | end; |
46 | |
47 | function CoinTelescopeTrigger:drawActivate() |
48 | return; |
49 | end; |
50 | |
51 | function CoinTelescopeTrigger:onActivateObject() |
52 | g_currentMission:addSharedMoney(-5, "other"); |
53 | g_currentMission.isPlayerFrozen = true; |
54 | g_currentMission:addSpecialCamera(self.coinTelescopeCamera); |
55 | setCamera(self.coinTelescopeCamera); |
56 | self.time = 6000; |
57 | self.objectActivated = false; |
58 | end; |
59 | |
60 | function CoinTelescopeTrigger:update(dt) |
61 | if (self.isEnabled and self.time > 0) then |
62 | self.time = self.time - dt; |
63 | |
64 | if InputBinding.hasEvent(InputBinding.SKIP_MESSAGE_BOX) then |
65 | self.time = 0; |
66 | end; |
67 | |
68 | g_currentMission.telescopeActive = true; |
69 | if self.time <= 0 then |
70 | self.time = 0; |
71 | g_currentMission:removeSpecialCamera(self.coinTelescopeCamera); |
72 | g_currentMission.telescopeActive = false; |
73 | g_currentMission.isPlayerFrozen = false; |
74 | end; |
75 | end; |
76 | |
77 | end; |
78 | |
79 | function CoinTelescopeTrigger:triggerCallback(triggerId, otherId, onEnter, onLeave, onStay) |
80 | if self.isEnabled then |
81 | if onEnter or onLeave then |
82 | if g_currentMission.controlPlayer and g_currentMission.player ~= nil and otherId == g_currentMission.player.rootNode then |
83 | if onEnter then |
84 | if not self.objectActivated then |
85 | g_currentMission:addActivatableObject(self); |
86 | self.objectActivated = true; |
87 | end |
88 | else |
89 | if self.objectActivated then |
90 | g_currentMission:removeActivatableObject(self); |
91 | self.objectActivated = false; |
92 | end |
93 | end; |
94 | end; |
95 | end; |
96 | end; |
97 | end;
|
Copyright (c) 2008-2015 GIANTS Software GmbH, Confidential, All Rights Reserved.
This document is to be published solely by ls-mods.de