Commit fe623ddf9803a4f06aea860804fae7158624e4f8

Authored by DarkGod
1 parent 4b5402a2

Added game:shakeScreen()

... ... @@ -36,7 +36,7 @@ end
36 36
37 37 function _M:easing(time, easing, txt, ...)
38 38 self:easingSimple(time, easing, txt, ...)
39   - game.logPlayer(game.player, "%s", txt:toString())
  39 + game.logPlayer(game.player, txt, ...)
40 40 end
41 41
42 42 function _M:saySimple(time, txt, ...)
... ...
... ... @@ -161,6 +161,11 @@ function _M:runReal()
161 161
162 162 self.zone_font = FontPackage:get("zone")
163 163
  164 + self.shake_time = nil
  165 + self.shake_force = 0
  166 + self.shake_x = 0
  167 + self.shake_y = 0
  168 +
164 169 self.inited = true
165 170
166 171 if self.level and self.level.map then
... ... @@ -1721,6 +1726,11 @@ function _M:updateFOV()
1721 1726 self.player:playerFOV()
1722 1727 end
1723 1728
  1729 +function _M:shakeScreen(time, force)
  1730 + self.shake_time = time
  1731 + self.shake_force = force
  1732 +end
  1733 +
1724 1734 function _M:displaySeensMap(map, x, y, nb_keyframe)
1725 1735 map._map:drawSeensTexture(x, y)
1726 1736 end
... ... @@ -1730,6 +1740,18 @@ function _M:displayMap(nb_keyframes, prev_fbo)
1730 1740 if self.level and self.level.map and self.level.map.finished then
1731 1741 local map = self.level.map
1732 1742
  1743 + if self.shake_time then
  1744 + if self.shake_time <= 0 then
  1745 + self.shake_time = nil
  1746 + self.shake_x = 0
  1747 + self.shake_y = 0
  1748 + else
  1749 + self.shake_time = self.shake_time - nb_keyframes
  1750 + self.shake_x = self.shake_x + rng.range(-self.shake_force, self.shake_force)
  1751 + self.shake_y = self.shake_y + rng.range(-self.shake_force, self.shake_force)
  1752 + end
  1753 + end
  1754 +
1733 1755 -- Display the map and compute FOV for the player if needed
1734 1756 local changed = map.changed
1735 1757 if changed then self:updateFOV() end
... ... @@ -1764,7 +1786,7 @@ function _M:displayMap(nb_keyframes, prev_fbo)
1764 1786 self.fbo2:use(false, prev_fbo)
1765 1787
1766 1788 _2DNoise:bind(1, false)
1767   - self.fbo2:postEffects(self.fbo, prev_fbo, map.display_x, map.display_y, map.viewport.width, map.viewport.height, unpack(self.posteffects_use))
  1789 + self.fbo2:postEffects(self.fbo, prev_fbo, map.display_x + self.shake_x, map.display_y + self.shake_y, map.viewport.width, map.viewport.height, unpack(self.posteffects_use))
1768 1790 if self.target then self.target:display(nil, nil, prev_fbo, nb_keyframes) end
1769 1791
1770 1792 -- Basic display; no FBOs
... ...
... ... @@ -261,16 +261,17 @@ function _M:makeNewTrees(g, kindsdefs, max_trees, basedir)
261 261 local treeid = treedef[1]
262 262 local parts = treedef[2]
263 263 if not parts.tall then parts.tall = 0 end
  264 + if not parts.alltall then parts.alltall = 0 else parts.tall = parts.alltall end
264 265
265 266 local scale = rng.float(0.5 + inb / 6, 1)
266 267 local x = rng.float(-1 / 3 * nb / 3, 1 / 3 * nb / 3)
267 268 local y = rng.float(-1 / 5 * nb / 3, 1 / 4 * nb / 3)
268 269
269 270 for i = 1, #parts - 1 do
270   - mos[#mos+1] = {image=basedir..treeid.."_"..getname(parts[i])..".png", display_x=x, display_y=y, display_w=scale, display_h=scale}
  271 + mos[#mos+1] = {image=basedir..treeid.."_"..getname(parts[i])..".png", display_x=x, display_y=y + scale * parts.alltall, display_w=scale, display_h=scale * (1 - parts.alltall)}
271 272 end
272 273 if parts.base then
273   - basemos[#basemos+1] = {image=basedir..treeid.."_"..getname(parts.base)..".png", display_x=x, display_y=y, display_w=scale, display_h=scale}
  274 + basemos[#basemos+1] = {image=basedir..treeid.."_"..getname(parts.base)..".png", display_x=x, display_y=y + scale * parts.alltall, display_w=scale, display_h=scale * (1 - parts.tall)}
274 275 end
275 276 if parts.adds then
276 277 local name = parts.adds[1]
... ...
... ... @@ -33,5 +33,5 @@ return {
33 33 resetargs = {
34 34 tick_start = function() return core.game.getFrameTime() end,
35 35 },
36   - clone = false,
  36 + clone = true,
37 37 }
... ...