Exemplo n.º 1
0
 def dequip(self):
     if not self.is_equipped:
         return
     self.is_equipped = False
     Messages.new(
         'Dequipped ' + self.owner.name + ' from ' + self.slot_str + '.',
         libtcod.light_yellow)
Exemplo n.º 2
0
    def _date_edited(self):
        """
        Date fields were edited. Check their content for invalid date ranges.
        :return:
        """
        if self.ui.startDatetimeEdit.date() == self.ui.endDatetimeEdit.date():
            self.ui.startDatetimeEdit.setStyleSheet(
                "background-color: #FC9DB7;")
            self.ui.endDatetimeEdit.setStyleSheet("background-color: #FC9DB7;")
            self.statusBar().showMessage(Messages.start_end_date_warning(),
                                         5000)
            self.ui.downloadButton.setEnabled(False)
        else:
            self.ui.startDatetimeEdit.setStyleSheet("background-color: white;")
            self.ui.endDatetimeEdit.setStyleSheet("background-color: white;")
            self.ui.downloadButton.setEnabled(True)

            if self.ui.endDatetimeEdit.date() < self.ui.startDatetimeEdit.date(
            ):
                self.ui.endDatetimeEdit.setStyleSheet(
                    "background-color: #FC9DB7;")
                self.statusBar().showMessage(Messages.end_date_warning(), 5000)
                self.ui.downloadButton.setEnabled(False)
            else:
                self.ui.endDatetimeEdit.setStyleSheet(
                    "background-color: white;")
                self.statusBar().showMessage("", 50)
                self.ui.downloadButton.setEnabled(True)
Exemplo n.º 3
0
    def inspect(self):
        if self.owner.equipment:
            item = self.owner.equipment
            stats_list = []
            if item.power_bonus != 0:
                stats_list.append(str(item.power_bonus) + ' Power')
            if item.defense_bonus != 0:
                stats_list.append(str(item.defense_bonus) + ' Defense')
            if item.armor_bonus != 0:
                stats_list.append(str(item.armor_bonus) + ' AC')
            if item.magic_bonus != 0:
                stats_list.append(str(item.magic_bonus) + ' Magic')
            if item.max_hp_bonus != 0:
                stats_list.append(str(item.max_hp_bonus) + ' Max HP')
            if item.max_mana_bonus != 0:
                stats_list.append(str(item.max_mana_bonus) + ' Max Mana')
            if item.fighting_bonus != 0:
                stats_list.append(str(item.fighting_bonus) + ' Fighting')
            if item.shielding_bonus != 0:
                stats_list.append(str(item.shielding_bonus) + ' Shielding')
            if item.conjuring_bonus != 0:
                stats_list.append(str(item.conjuring_bonus) + ' Conjuring')
            if item.archery_bonus != 0:
                stats_list.append(str(item.archery_bonus) + ' Archery')
            if item.hexes_bonus != 0:
                stats_list.append(str(item.hexes_bonus) + ' Hexes')
            if item.evasion_bonus != 0:
                stats_list.append(str(item.evasion_bonus) + ' Evasion')
            if item.accuracy_bonus != 0:
                stats_list.append(str(item.accuracy_bonus) + ' Accuracy')
            if item.speed_bonus != 0:
                stats_list.append(str(item.speed_bonus) + ' Speed')
            if item.dmg_reduction_bonus != 0:
                stats_list.append('all physical damage taken reduced by ' +
                                  str(item.dmg_reduction_bonus))
            if item.heal_kill_bonus != 0:
                stats_list.append('chance to restore health or mana on kill')
            if item.magic_resist_bonus != 0:
                stats_list.append(
                    str(item.magic_resist_bonus * 100) +
                    ' %% magic Resistance')
            if item.lifesteal_bonus != 0:
                stats_list.append(str(item.lifesteal_bonus) + ' lifesteal')

            string = ', '.join(stats_list)
        else:
            string = ''

            youseea = 'You see a'
        if self.owner.name[0] in 'aeiouAEIOU':
            youseea += 'n '
        else:
            youseea += ' '
        if string != '':
            text = youseea + self.owner.name + '. ' + self.description + ' It yields ' + string + '.'
        else:
            text = youseea + self.owner.name + '. ' + self.description
            Messages.new(text, libtcod.light_gray)
Exemplo n.º 4
0
 def equip(self):
     assert self.owner.inventory is not None, 'cannot equip item without an inventory!'
     old_equip = self.owner.inventory.get_equipped_in_slot(self.slot)
     if old_equip is not None:
         old_equip.dequip()
     self.is_equipped = True
     Messages.new(
         'Equipped ' + self.owner.name + ' on ' + self.slot_str + '.',
         libtcod.light_green)
Exemplo n.º 5
0
 def drop(self, player):
     self.owner.inventory.items.remove(self.owner)
     self.owner.x = player.x
     self.owner.y = player.y
     youdroppeda = 'You dropped a'
     if self.owner.name[0] in 'aeiouAEIOU':
         youdroppeda += 'n '
     else:
         youdroppeda += ' '
     if self.owner.equipment:
         self.owner.equipment.dequip()
     Messages.new(youdroppeda + self.owner.name + '.', libtcod.yellow)
Exemplo n.º 6
0
 def use(self, player):
     if self.owner.equipment:
         if not self.owner.equipment.prof_restriction:
             self.owner.equipment.toggle_equip()
         elif player.prof not in self.owner.equipment.prof_restriction:
             Messages.new('You cannot make use of this item!', libtcod.red)
         else:
             self.owner.equipment.toggle_equip()
     elif self.use_function is None:
         Messages.new('The ' + self.owner.name + ' cannot be used.')
     elif self.use_function() != 'cancelled':
         self.owner.inventory.items.remove(self.owner)
     elif self.spellname is not None:
         raise NotImplementedError(
             'append_spell(spellname) not implemented')
Exemplo n.º 7
0
    def monster_death(monster_entity):

        Messages.new('You have slain the ' + monster_entity.name + '!', libtcod.orange)

        monster_entity.char = 'x'
        monster_entity.color = libtcod.dark_red
        monster_entity.blocks = False
        monster_entity.fighter = None
        monster_entity.ai = None
        monster_entity.name = 'remains of ' + monster_entity.name
        monster_entity.send_to_back(DeathFunctions.world.objects)

        try:
            monster_entity.timeobj.release()
        except AttributeError:
            print('Tried to release ' + monster_entity.name + ' but no time component found!')
def set_apikey(app, settings):
    key = QInputDialog.getText(app, QCoreApplication.translate("setapikeyheading", "Aseta tunnisteavain"),
                               Messages.set_apikey_dialog(), text=app.api.get_apikey())
    if key[1]:
        # todo: tänne kutsu oikeaan paikkaan
        apikey = key[0].strip()
        settings.setValue("apikey", apikey)
        app.api.set_apikey(apikey)
Exemplo n.º 9
0
    def _background_fmicatalogue_error(self, err):
        """
        Handle errors which happened in fmi catalogue retrieval background thread. This is a
        error callback function provided for BackgroundTask class on construction.
        :param err:
        :return:
        """
        if err.error_code == 'NODATASETS':
            self.show_error_alerts(Messages.no_datasets_found())
        elif err.error_code == 'METADATA_RETRIEVAL':
            self.show_error_alerts(Messages.fmicatalogue_error())
        else:
            self.show_error_alerts(Messages.unknown_error() + str(err))

        self._current_available_datasets = None
        self._current_selected_dataset = None
        self.ui.dataSelectionCombobox.clear()
        self._set_ui_controls_status()
Exemplo n.º 10
0
 def _updates_information_retrieved(self, result):
     self.thread.quit()
     if result['status'] == 'success':
         # Update version info to the dialog
         their_version = result['their_version']
         self.ui.newVersion_label.setText(self.ui.newVersion_label.text() +
                                          their_version)
     else:
         self.ui.newVersion_label.setText(self.ui.newVersion_label.text() +
                                          Messages.failed_to_get_version())
    def begin_download(self, request_params, request_function):
        self.progressDialog = QProgressDialog(self.parent, Qt.WindowSystemMenuHint | Qt.WindowTitleHint)
        self.progressDialog.setWindowTitle(Messages.downloading_weatherdata())
        self.progressDialog.setAutoClose(False)
        self.progressDialog.setCancelButton(None)
        self.progressDialog.setLabelText(Messages.downloading_weatherdata())
        self.progressDialog.open()
        self.progressDialog.setValue(0)

        self.request_params = request_params
        self.worker = DownloadWorker(request_params, request_function)
        self.worker.threadUpdateSignal.connect(self._update_progress_bar)
        self.worker.threadExceptionSignal.connect(self._loading_failed)
        self.worker.threadResultsSignal.connect(self._process_finished)
        self.worker.threadChangeTaskSignal.connect(self._change_progress_dialog)

        self.thread = QThread()
        self.worker.moveToThread(self.thread)
        self.thread.started.connect(self.worker.download_data)
        self.thread.start()
Exemplo n.º 12
0
 def _choose_place_to_save_data(self, dataframe):
     paths = QStandardPaths.standardLocations(0)
     if len(paths) > 0:
         path = paths[0]
     else:
         path = ""
     filename = QFileDialog.getSaveFileName(
         self, Messages.save_weatherdata_csv(), path + "/weather_data.csv",
         "Comma separated values CSV (*.csv);;All files (*)")
     if filename[0] != "":
         self._save_to_csv(dataframe, filename[0])
Exemplo n.º 13
0
    def save_data_to_csv(self, dataframe, request_params):
        start_date = datetime.strftime(request_params['starttime'], '%Y-%m-%d')
        end_date = datetime.strftime(request_params['endtime'], '%Y-%m-%d')

        paths = QStandardPaths.standardLocations(0)
        if len(paths) > 0:
            path = paths[0]
        else:
            path = ""
        filename = QFileDialog.getSaveFileName(
            self.app, Messages.save_weatherdata_csv(),
            "{}/fmisid-{}_{}_to_{}_weather_data.csv".format(
                path, request_params['fmisid'], start_date,
                end_date), "Comma separated values CSV (*.csv);;All files (*)")
        if filename[0] != "":
            self._save_to_csv(dataframe, filename[0])
    def _loading_failed(self, error):
        self.progressDialog.cancel()

        try:
            raise error
        except RequestException as e:
            if e.error_code == 400:
                # command to ask data probably invalid or there is a problem with current station
                self.parent.show_error_alerts(Messages.weatherstation_error() + str(e))
            else:
                self.parent.show_error_alerts(Messages.unknown_error() + str(e))
        except InvalidApikeyException:
                # apikey is invalid
                self.parent.show_error_alerts(Messages.request_failed_error())
        except NoDataException:
            self.parent.show_error_alerts(Messages.date_not_found_error())
        except QueryLimitException as e:
            self.parent.show_error_alerts(Messages.query_limit_error().format(e.wait_time))
        except Exception as e:
            self.parent.show_error_alerts(Messages.unknown_error() + str(e))
Exemplo n.º 15
0
 def _change_to_parsing(self):
     self.threadChangeTaskSignal.emit(Messages.parsing_weatherdata())
Exemplo n.º 16
0
 def _load_api_settings(self, app):
     stored_apikey = self.value("apikey")
     if stored_apikey is not None:
         app.api.set_apikey(stored_apikey)
     else:
         app.statusBar().showMessage(Messages.set_apikey_message(), 0)
Exemplo n.º 17
0
 def player_death(player_entity):
     Messages.new('You have died!', libtcod.red)
     player_entity.char = 'X'
     player_entity.color = libtcod.dark_red
     DeathFunctions.world.game_state = GameState.PLAYER_DEAD