Ejemplo n.º 1
0
 def skill_FireSurroundBlast1(self, _data, _range):
     for i in range(0, 8):
         _x = int(self.FACE_TO[i][0] * _range + self.pos_pixel_x)
         _y = int(self.FACE_TO[i][1] * _range + self.pos_pixel_y)
         _data.environment.units.append(environment.Unit('SkillFireSurroundBlast1', _data.dictionary))
         _data.environment.units[-1].pos_pixel_x = _x
         _data.environment.units[-1].pos_pixel_y = _y
         _data.environment.units[-1].data['knock_point_x'] = self.pos_pixel_x
         _data.environment.units[-1].data['knock_point_y'] = self.pos_pixel_y
     self.skill_FireBall(_data)
Ejemplo n.º 2
0
 def script_map_fire(self, _data):
     if _data.frames % 2 == 0:
         self.image_index += 1
         if self.image_index == 7:
             _data.environment.units.append(environment.Unit('SkillMapFire1', _data.dictionary))
             _data.environment.units[-1].pos_pixel_x = self.pos_pixel_x
             _data.environment.units[-1].pos_pixel_y = self.pos_pixel_y
             _data.environment.units[-1].data['del_frame'] = _data.frames + 90
         if self.image_index >= self.have_img:
             _data.del_unit(self)
             return
         self.image = self.images[self.image_index]
Ejemplo n.º 3
0
 def script_fire_storm(self, _data):
     if _data.frames % 4 == 0:
         self.image_index += 1
         if self.image_index >= self.have_img:
             _data.environment.units.append(environment.Unit('SkillFireStorm2', _data.dictionary))
             _data.environment.units[-1].pos_pixel_x = self.pos_pixel_x
             _data.environment.units[-1].pos_pixel_y = self.pos_pixel_y
             _data.environment.units[-1].data['alert_distance'] = 2000
             _data.environment.units[-1].data['speed'] = 6
             _data.environment.units[-1].data['attack'] = 20
             _data.environment.units[-1].data['attack_cd'] = False
             _data.del_unit(self)
             return
         self.image = self.images[self.image_index]
Ejemplo n.º 4
0
 def skill_FireStorm(self, _data):
     if not self.data['FireStorm'] :
         return
     _res = _data.frames - self.data['FireStormSF']
     if _res == 0:
         self.pause_move = True
         common_methods.CommonMethods.handle_mixer('spl Fire Storm', _data)
         for i in range(0, 4):
             _data.environment.units.append(environment.Unit('SkillFireStorm1', _data.dictionary))
             _data.environment.units[-1].pos_pixel_x = self.pos_pixel_x + random.choice([-1, 1]) * random.randint(200, 400)
             _data.environment.units[-1].pos_pixel_y = self.pos_pixel_y + random.choice([-1, 1]) * random.randint(150, 300)
         self.data['FireStormCD'] = True
     elif _res == 50:
         common_methods.CommonMethods.handle_mixer('spl Fire Storm', _data)
         for i in range(0, 4):
             _data.environment.units.append(environment.Unit('SkillFireStorm1', _data.dictionary))
             _data.environment.units[-1].pos_pixel_x = self.pos_pixel_x + random.choice([-1, 1]) * random.randint(200, 400)
             _data.environment.units[-1].pos_pixel_y = self.pos_pixel_y + random.choice([-1, 1]) * random.randint(150, 300)
     elif _res == 91:
         self.pause_move = False
     elif _res == 360:
         self.data['FireStorm'] = False
         self.data['FireStormCD'] = False
Ejemplo n.º 5
0
 def script_fire_surround_blast(self, _data):
     if _data.frames % 2 == 0:
         self.image_index += 1
         if self.image_index >= self.have_img:
             _data.environment.units.append(environment.Unit('SkillFireSurroundBlast2', _data.dictionary))
             _data.environment.units[-1].pos_pixel_x = self.pos_pixel_x
             _data.environment.units[-1].pos_pixel_y = self.pos_pixel_y
             _data.environment.units[-1].data['attack'] = 20
             _data.environment.units[-1].data['attack_cd'] = False
             _data.environment.units[-1].data['knock_point_x'] = self.data['knock_point_x']
             _data.environment.units[-1].data['knock_point_y'] = self.data['knock_point_y']
             _data.del_unit(self)
             return
         self.image = self.images[self.image_index]
Ejemplo n.º 6
0
 def script_map_fire_1(self, _data):
     if _data.frames % 30 == 6:
         for i in range(0, 6):
             _data.environment.units.append(environment.Unit('SkillMapFire2', _data.dictionary))
             _data.environment.units[-1].pos_pixel_x = self.pos_pixel_x
             _data.environment.units[-1].pos_pixel_y = self.pos_pixel_y
             _data.environment.units[-1].data['del_frame'] = _data.frames + 60
             _x = random.randint(-3, 3)
             _y = random.randint(-3, 3)
             _side_length =  math.hypot(_x, _y) + 0.1
             _data.environment.units[-1].data['speed_x'] = int(_x / _side_length * 10)
             _data.environment.units[-1].data['speed_y'] = int(_y / _side_length * 10)
             _data.environment.units[-1].data['alert_distance'] = 2000
             _data.environment.units[-1].data['attack'] = 20
             _data.environment.units[-1].data['attack_cd'] = False
Ejemplo n.º 7
0
 def script_fire_ball(self, _data):
     if _data.frames % 2 == 0:
         self.image_index += 1
         if self.image_index >= self.have_img:
             _data.environment.units.append(environment.Unit('SkillFireBall2', _data.dictionary))
             _data.environment.units[-1].pos_pixel_x = self.pos_pixel_x
             _data.environment.units[-1].pos_pixel_y = self.pos_pixel_y
             _data.environment.units[-1].data['alert_distance'] = 2000
             _data.environment.units[-1].data['speed'] = 10
             _data.environment.units[-1].data['attack'] = 20
             _data.environment.units[-1].data['attack_cd'] = False
             _data.environment.units[-1].data['del_frame'] = _data.frames + 30
             _data.environment.units[-1].data['knock_point_x'] = self.pos_pixel_x
             _data.environment.units[-1].data['knock_point_y'] = self.pos_pixel_y
             _data.del_unit(self)
             return
         self.image = self.images[self.image_index]
Ejemplo n.º 8
0
 def skill_FireBall(self, _data):
     if not self.data['FireBall'] :
         return
     _res = _data.frames - self.data['FireBallSF']
     if _res == 0:
         _data.environment.units.append(environment.Unit('SkillFireBall1', _data.dictionary))
         _data.environment.units[-1].pos_pixel_x = _data.player.pos_pixel_x
         _data.environment.units[-1].pos_pixel_y = _data.player.pos_pixel_y + 40
         _data.environment.units[-1].data['knock_point_x'] = self.pos_pixel_x
         _data.environment.units[-1].data['knock_point_y'] = self.pos_pixel_y
         common_methods.CommonMethods.handle_mixer('spl Ready2', _data)
         self.data['FireBallCD'] = True
     elif _res == 20:
         common_methods.CommonMethods.handle_mixer('spl Fire Ball', _data)
     elif _res == 80:
         self.data['FireBall'] = False
         self.data['FireBallCD'] = False
Ejemplo n.º 9
0
 def skill_SmallFire(self, _data):
     if not self.data['SmallFire'] :
         return
     _res = _data.frames - self.data['SmallFireSF']
     if _res == 0:
         _data.environment.units.append(environment.Unit('SkillSmallFire', _data.dictionary))
         _data.environment.units[-1].pos_pixel_x = int((5 * _data.player.pos_pixel_x + self.pos_pixel_x) / 6)
         _data.environment.units[-1].pos_pixel_y = int((5 * _data.player.pos_pixel_y + self.pos_pixel_y) / 6 + 40)
         _data.environment.units[-1].data['knock_point_x'] = self.pos_pixel_x
         _data.environment.units[-1].data['knock_point_y'] = self.pos_pixel_y
         self.data['SmallFireCD'] = True
         self.pause_move = True
         common_methods.CommonMethods.handle_interact('dmspl Boom.1', _data)
     elif _res == 30:
         self.pause_move = False
     elif _res == 80:
         self.data['SmallFire'] = False
         self.data['SmallFireCD'] = False
Ejemplo n.º 10
0
 def skill_MapFire(self, _data):
     if not self.data['MapFire'] :
         return
     _res = _data.frames - self.data['MapFireSF']
     if _res == 0:
         common_methods.CommonMethods.handle_mixer('spl Map Fire', _data)
         for i in range(0, 4):
             _data.environment.units.append(environment.Unit('SkillMapFire', _data.dictionary))
             _data.environment.units[-1].pos_pixel_x = _data.player.pos_pixel_x + random.randint(-400, 400)
             _data.environment.units[-1].pos_pixel_y = _data.player.pos_pixel_y + random.randint(-300, 300)
         self.data['MapFireCD'] = True
         self.pause_move = True
     elif _res == 50:
         common_methods.CommonMethods.handle_mixer('spl Map Fire', _data)
     elif _res == 90:
         self.pause_move = False
     elif _res == 1080:
         self.data['MapFire'] = False
         self.data['MapFireCD'] = False
Ejemplo n.º 11
0
    def handle_effect(_effect_str, _data):
        if _effect_str[0:3] == 'nul':  # 无效果
            return
        elif _effect_str[0:3] == 'bct':  # 将本Block替换为xxx
            _data.environment.block[_data.player.pos_matrix_x][_data.player.pos_matrix_y] = \
                environment.Block(_effect_str[4:], _data.dictionary.block_dict)
            return
        elif _effect_str[0:3] == 'bcf':  # 将玩家面对的Block替换为xxx
            _data.environment.block[_data.player.next_pos_matrix_x][_data.player.next_pos_matrix_y] = \
                environment.Block(_effect_str[4:], _data.dictionary.block_dict)
            return
        elif _effect_str[0:3] == 'pgi':  # 玩家得到xxx(item)
            _data.player.add_item(_effect_str[4:])
            return
        elif _effect_str[0:3] == 'psi':  # 玩家的xxx(item)数量-1
            _data.player.sub_item(_effect_str[4:])
            return
        elif _effect_str[0:3] == 'php':  # 玩家的hp = hp + xxx
            _data.player.add_hp(int(_effect_str[4:]))
            return
        elif _effect_str[0:3] == 'psp':  # 玩家的sp = hp + xxx
            _data.player.add_sp(int(_effect_str[4:]))
            return
        elif _effect_str[0:3] == 'pmb':  # 玩家move by
            _strs = _effect_str[4:].split(',')
            _data.player.pos_pixel_x += int(_strs[0])
            _data.player.pos_pixel_y += int(_strs[1])
            return
        elif _effect_str[0:3] == 'pmt':  # 玩家move to
            _strs = _effect_str[4:].split(',')
            _data.player.pos_pixel_x = int(_strs[0])
            _data.player.pos_pixel_y = int(_strs[1])
            return
        elif _effect_str[0:3] == 'pca':  # 玩家近身攻击xxx,yyy
            _strs = _effect_str[4:].split(',')
            _data.player_close_attack(int(_strs[0]), int(_strs[1]))
            return
        elif _effect_str[0:3] == 'ptt':  # 将玩家转移至xxx
            if _effect_str[4:] != 'home':
                _data.next_environment = _effect_str[4:] + '_environment'
                mx, my = _data.hell_environment.units[
                    0].pos_pixel_x - 600, _data.hell_environment.units[
                        0].pos_pixel_y - 600
                _data.player_next_pos_pixel_x, _data.player_next_pos_pixel_y = mx, my
            else:
                key = str(_data.player.pos_matrix_x) + ',' + str(
                    _data.player.pos_matrix_y)
                _data.player_next_pos_pixel_x = 320
                _data.player_next_pos_pixel_y = 160
                if key in _data.home_index_dict:
                    _data.next_environment = 'homes[' + str(
                        _data.home_index_dict[key]) + ']'
                else:
                    _data.create_home(
                        _data.player.pos_matrix_x, _data.player.pos_matrix_y,
                        _data.environment.block[_data.player.pos_matrix_x][
                            _data.player.pos_matrix_y].name)
                    _data.next_environment = 'homes[' + str(
                        _data.home_index_dict[key]) + ']'
            _data.transforming = True
            return
        elif _effect_str[0:3] == 'uio':  # 开关显示ui
            if _effect_str[4:] == 'box':
                _data.show_box_ui = ~_data.show_box_ui
            return
        elif _effect_str[0:3] == 'ugt':  # 在玩家位置创建unit
            _data.environment.units.append(
                environment.Unit(_effect_str[4:], _data.dictionary))
            _data.environment.units[-1].pos_pixel_x = _data.player.pos_pixel_x
            _data.environment.units[-1].pos_pixel_y = _data.player.pos_pixel_y
            return
        elif _effect_str[0:3] == 'ugf':  # 在玩家面对位置创建unit
            _data.environment.units.append(
                environment.Unit(_effect_str[4:], _data.dictionary))
            _data.environment.units[
                -1].pos_pixel_x = _data.player.pos_pixel_x + _data.player.FACE_TO[
                    _data.player.face_to_index][0] * 40
            _data.environment.units[
                -1].pos_pixel_y = _data.player.pos_pixel_y + _data.player.FACE_TO[
                    _data.player.face_to_index][1] * 40
            return
        elif _effect_str[0:3] == 'uga':  # 在指定位置创建unit
            _strs = _effect_str[4:].split(',')
            _data.environment.units.append(
                environment.Unit(_strs[0], _data.dictionary))
            _data.environment.units[-1].pos_pixel_x = int(_strs[1])
            _data.environment.units[-1].pos_pixel_y = int(_strs[2])
            return

        print("Error:effect string not exist")