from ..infobar import InfoBar
from ..obstacles import ObstacleManager
from ..events import SceneChangeEvent
-from ..utils import debug_timer, shadowed_text
+from ..utils import debug_timer, shadowed_text, write_save_file
from ..loader import loader
+from ..sound import sound
from ..transforms import Overlay, Alpha, ColourWedges
from ..constants import SCREEN_SIZE, FONTS, FPS, NIGHT_HOURS_PER_TICK, DEBUG
self._draw_you_lose(gamestate)
elif gamestate.harvested >= gamestate.turnip_target:
self._draw_you_win(gamestate)
+ else:
+ write_save_file(gamestate.serialize())
self._ending = False
def _draw_you_lose(self, gamestate):
tools.append(tool)
x += step
+ tools.append(ImageButton(
+ '32', 'remove.png', name='remove light', pos=(x, y)))
+ x += step
+
tools.append(ImageButton(
'32', 'default_cursor.png', name='reset tool', pos=(x, y)))
self._turnips.append(turnip)
gamestate.seeds -= 1
except TurnipInvalidPosition:
- # TODO: Add error sound or something
- pass
+ sound.play_sound("beep_kind.ogg")
def _update_light_angle(self, pos, gamestate):
# Update the angle of the given light
ev.pos, pygame.display.get_surface())
# Bail if we're too close to an existing light, obstacle or turnip
if check_space_for_light(self._space, pos, max_distance=25):
+ sound.play_sound("beep_kind.ogg")
return
gamestate.seeds -= cost
cfg["position"] = pos
gamestate.station["lights"].append(cfg)
self._lights.add_light(cfg)
+ def _remove_light(self, ev):
+ light = self._lights.nearest(ev.pos, surfpos=True, max_distance=25.0)
+ if light:
+ self._lights.remove_light(light)
+
def event(self, ev, gamestate):
if self._ending:
return
self._set_cursor(
'seed', transform=Alpha(alpha=172))
self._clear_light_toolbar()
+ elif self._tool.name == 'remove light':
+ self._set_cursor(
+ 'remove', transform=Alpha(alpha=172))
+ self._clear_light_toolbar()
elif self._tool.name == 'light':
self._unset_cursor()
self._draw_light_toolbar(
if self._tool:
if self._tool.name == "seed":
self._place_seed(gamestate, ev)
+ elif self._tool.name == "remove light":
+ self._remove_light(ev)
elif self._tool.name == "light" and self._light_colors:
self._place_light(
gamestate, self._tool.light_config,