Ejemplo n.º 1
0
    def calculate_potency(self, agent, max_potency):
        _die = 1
        if hasattr(agent, "skills"):
            _die += agent.skills.get_skill("First Aid").get_rank()

        _roll = do_d10_roll(_die, 0)
        _difficulty = do_d10_roll(4, 0)
        _potency = int((float(_roll) / float(_difficulty)) * max_potency) + 1
        if _potency > max_potency:
            _potency = max_potency
        if _potency < 5:
            _potency = 5

        return _potency
Ejemplo n.º 2
0
    def handle_stealth_check(self, player):
        _loudness = do_d10_roll(1,1)
        _roll = player.stealth_roll()
        _roll = int(round(_roll / 10.0))
        _volume = _loudness - _roll
        if _roll < 1:
            _roll = 1

        _radius = 6 - _roll
        if _radius < 1:
            _radius = 1
        
        _noise = Noise(_volume, player, player.row, player.col, 'walking')
        self.monsters_react_to_noise(_radius, _noise)
Ejemplo n.º 3
0
 def use_item(self):
     try:
         _p = self.dm.player
         _sw = self.pick_software(_p, _p.software.get_menu(), 'Which program?')
         
         if _sw.executing:
             self.dui.display_message("You terminate the " + _sw.get_name() + '.')
             _sw.terminate(self, _p)
         elif _p.software.is_category_running(_sw.category):
             self.dui.display_message("You cannot start that process.")              
         else:
             if not _sw.decrypted:
                 _crypto = _p.skills.get_skill('Crypto').get_rank()
                 _crypto_roll = do_d10_roll(_crypto, _p.get_intuition_bonus())
                 _sw_roll = do_d10_roll(_sw.level, 0)
                 _sw.decrypted = _crypto_roll > _sw_roll
                 
             _sw.execute(self.dm, _p)
             if not (_sw.category == 'mp3' or _sw.category == 'datafile'):
                 self.dui.display_message("You start the " + _sw.get_name() + '.')    
     except NonePicked:
         self.dui.clear_msg_line()
         self.dui.display_message('Never mind.')
Ejemplo n.º 4
0
 def attempt_to_hack_trap(self, player, tile, row, col):
     _hack = player.skills.get_skill("Hacking").get_rank() + 1
     _roll = do_d10_roll(_hack, 0) + player.get_intuition_bonus()
     
     if _roll < 3:
         _msg = 'You set off ' + tile.get_name() + '!'
         self.dm.alert_player(player.row, player.col, _msg)
         raise TrapSetOff()
     elif _roll > 15:
         _tf = TerrainFactory()
         self.map[row][col] = _tf.get_terrain_tile(CYBERSPACE_FLOOR)
         _msg = "You delete " + tile.get_name() + "."
         self.dm.alert_player(player.row, player.col, _msg)
     else:
         _msg = "You aren't able to alter the code fabric."
         self.dm.alert_player(player.row, player.col, _msg)
Ejemplo n.º 5
0
 def stealth_roll(self):
     _dice = 1 + self.skills.get_skill('Stealth').get_rank()
     _mod = sum(_con[0][1] for _con in self.conditions if _con[0][0] == 'sneaky')
     _mod += self.get_coordination_bonus()
     
     return do_d10_roll(_dice, _mod)